smbls 3.14.866 → 3.14.868

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 (57) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -1
  3. package/dist/smbls.cjs +46 -46
  4. package/dist/smbls.cjs.map +3 -3
  5. package/dist/{smbls.core.chunk-HYGLSJJB.esm.js → smbls.core.chunk-B72EPN2L.esm.js} +2 -2
  6. package/dist/smbls.core.chunk-IHNNCNLW.esm.js +7 -0
  7. package/dist/smbls.core.chunk-IHNNCNLW.esm.js.map +6 -0
  8. package/dist/{smbls.core.chunk-MORLSKB4.esm.js → smbls.core.chunk-LY32SZOH.esm.js} +2 -2
  9. package/dist/smbls.core.chunk-LY32SZOH.esm.js.map +6 -0
  10. package/dist/{smbls.core.chunk-YIXEOEZS.esm.js → smbls.core.chunk-NHQQDUJ3.esm.js} +3 -3
  11. package/dist/smbls.core.chunk-NHQQDUJ3.esm.js.map +1 -0
  12. package/dist/smbls.core.chunk-SNW2SEOM.esm.js +27 -0
  13. package/dist/smbls.core.chunk-SNW2SEOM.esm.js.map +1 -0
  14. package/dist/smbls.core.chunk-Z6DVDXMT.esm.js +36 -0
  15. package/dist/smbls.core.chunk-Z6DVDXMT.esm.js.map +1 -0
  16. package/dist/{smbls.core.dropdown-W4QIYPK7.esm.js → smbls.core.dropdown-DJZEKNS6.esm.js} +2 -2
  17. package/dist/smbls.core.esm.js +1 -1
  18. package/dist/smbls.core.fetch-5URUVJ5L.esm.js +2 -0
  19. package/dist/{smbls.core.fetch-GOGUESDX.esm.js.map → smbls.core.fetch-5URUVJ5L.esm.js.map} +1 -1
  20. package/dist/{smbls.core.fetchOnCreate-QLHX55QG.esm.js → smbls.core.fetchOnCreate-7FNAFIP4.esm.js} +2 -2
  21. package/dist/{smbls.core.inspect-SYAAEZ7D.esm.js → smbls.core.inspect-Y5QXKWRQ.esm.js} +2 -2
  22. package/dist/smbls.core.keepVisitorInput-MRB3FHBL.esm.js +2 -0
  23. package/dist/smbls.core.keepVisitorInput-MRB3FHBL.esm.js.map +6 -0
  24. package/dist/{smbls.core.lazyParts-SCMFZZ3N.esm.js → smbls.core.lazyParts-B5FBGKIT.esm.js} +2 -2
  25. package/dist/{smbls.core.lazyParts-SCMFZZ3N.esm.js.map → smbls.core.lazyParts-B5FBGKIT.esm.js.map} +1 -1
  26. package/dist/{smbls.core.sync-YPW74VQZ.esm.js → smbls.core.sync-Y3WMY6ED.esm.js} +2 -2
  27. package/dist/smbls.core.windows-LAXVRVVV.esm.js +2 -0
  28. package/dist/smbls.core.windows-LAXVRVVV.esm.js.map +6 -0
  29. package/dist/smbls.embed.iife.js +1 -1
  30. package/dist/smbls.embed.iife.js.map +1 -1
  31. package/dist/smbls.esm.js +46 -46
  32. package/dist/smbls.esm.js.map +1 -1
  33. package/dist/smbls.iife-string.js +2 -2
  34. package/dist/smbls.iife.js +1 -1
  35. package/dist/smbls.iife.js.map +1 -1
  36. package/dist/smbls.server-utils.esm.js +9 -9
  37. package/dist/smbls.server-utils.esm.js.map +2 -2
  38. package/dist/smbls.socket-io-client.esm.js +1 -1
  39. package/dist/smbls.socket-io-client.esm.js.map +2 -2
  40. package/dist/smbls.tree-shake.json +6 -5
  41. package/package.json +8 -8
  42. package/dist/smbls.core.chunk-MORLSKB4.esm.js.map +0 -6
  43. package/dist/smbls.core.chunk-QPEX7F3Q.esm.js +0 -7
  44. package/dist/smbls.core.chunk-QPEX7F3Q.esm.js.map +0 -6
  45. package/dist/smbls.core.chunk-S5KEP7B2.esm.js +0 -36
  46. package/dist/smbls.core.chunk-S5KEP7B2.esm.js.map +0 -1
  47. package/dist/smbls.core.chunk-UWCFOTOU.esm.js +0 -27
  48. package/dist/smbls.core.chunk-UWCFOTOU.esm.js.map +0 -1
  49. package/dist/smbls.core.chunk-YIXEOEZS.esm.js.map +0 -1
  50. package/dist/smbls.core.fetch-GOGUESDX.esm.js +0 -2
  51. package/dist/smbls.core.windows-YPYGQTXH.esm.js +0 -2
  52. package/dist/smbls.core.windows-YPYGQTXH.esm.js.map +0 -6
  53. /package/dist/{smbls.core.chunk-HYGLSJJB.esm.js.map → smbls.core.chunk-B72EPN2L.esm.js.map} +0 -0
  54. /package/dist/{smbls.core.dropdown-W4QIYPK7.esm.js.map → smbls.core.dropdown-DJZEKNS6.esm.js.map} +0 -0
  55. /package/dist/{smbls.core.fetchOnCreate-QLHX55QG.esm.js.map → smbls.core.fetchOnCreate-7FNAFIP4.esm.js.map} +0 -0
  56. /package/dist/{smbls.core.inspect-SYAAEZ7D.esm.js.map → smbls.core.inspect-Y5QXKWRQ.esm.js.map} +0 -0
  57. /package/dist/{smbls.core.sync-YPW74VQZ.esm.js.map → smbls.core.sync-Y3WMY6ED.esm.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # smbls
2
2
 
3
+ ## 3.14.868
4
+
5
+ ### Patch Changes
6
+
7
+ - fc45ef2: The smbls bundle (dist ESM/CJS/IIFE, and the runtime the hosted renderer inlines) carries the r16 element and helmet changes: faceWait reads styles once per animation frame, with one frame per window (XMA #850), and helmet's `extractMetadata` finds the page by the key the router mounted (K4). smbls lists `@symbo.ls/element`, `@symbo.ls/utils` and `@symbo.ls/helmet` as devDependencies (it bundles them), so their changesets alone do not bump it.
8
+ - b5a504c: The router never throws on an address with a malformed escape. `/compare/100%` (a `%` without two hex digits after it) is an address a visitor can type; the router decoded each param with a bare `decodeURIComponent`, threw `URIError` in `onRenderRouter`, and the page never rendered its route. The raw segment is now the param, as the served head reads it (`@symbo.ls/utils` getPageMetadata) and as the early fetch already guards. A well-formed escape still decodes. `smbls` bundles the router, so its bundle is bumped too.
9
+
10
+ ## 3.14.867
11
+
12
+ ### Patch Changes
13
+
14
+ - d8e2dff: XMA follow-ups (r15).
15
+
16
+ - faceWait: an element with no box is held (it asks for no face) until it gets one, so the frame its box comes in never paints the fallback face (Firefox); a `display: contents` element counts as drawn when its text is. A `class` / `style` / `lang` write that changes a waiting element's font checks it again, read once per animation frame and only where the write reaches a waiting element; `el.checkFaces()` checks again after a change no attribute shows. Every list `el.facesReady()` resolves with carries `late`: a promise of the faces that came after the cap, or null.
17
+ - `el.getAdoption()` answers before the element's node is made: `onInit` and a create-time query's `transform` read `'adopted'` / `'replaced'` / `null` as the node will get it.
18
+ - A `.ttf` / `.otf` / `.eot` design-system font is written with the CSS format name (`truetype`, `opentype`, `embedded-opentype`); `format('ttf')` made Chrome drop the face.
19
+ - The visitor's-input kit of a replace boot is a lazy module: a code-splitting build (`smbls/core`) keeps it in a file of its own, which a hydrating page never requests; a page built to be replaced starts its load at the boot's first step.
20
+ - `fetch.early` requests given as data are made at build time; `fetch.early.inline` puts the early script in the page with its CSP hash. The runner writes the early script after `<meta charset>`.
21
+
3
22
  ## 3.14.866
4
23
 
5
24
  ### Patch Changes
package/README.md CHANGED
@@ -375,7 +375,7 @@ A failure rejects with an `Error` that has `code`, `specifier` and `retryable`.
375
375
  Rules for a page that should stay lazy:
376
376
 
377
377
  - Write only the on-demand form; no static `import … from '@symbo.ls/sdk'` anywhere in the page's parts (app, libraries, kits).
378
- - Name the specifier nowhere else inside a function body — frank publishes body comments and strings as written, and any other mention makes the page inline the SDK (it still works: the marker then answers from the registry).
378
+ - Quote the specifier nowhere else in the page's parts — frank publishes body comments and strings as written, and any other quoted `'@symbo.ls/sdk'` (a string literal, a code sample in copy) makes the page inline the SDK (it still works: the marker then answers from the registry). A mention in prose reads nothing: a comment or copy such as `npm install @symbo.ls/sdk` keeps the page lazy.
379
379
  - Push with a CLI whose frank has the marker. An older frank publishes the `import()` as written, and a browser cannot resolve that bare private specifier.
380
380
 
381
381
  ## SEO metadata