tosijs-ui 1.15.0 → 1.15.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,76 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.15.2
4
+
5
+ ### The `tjs-lang` peer admits 0.14.x (#182)
6
+
7
+ **Upgrade before, or together with, tjs-lang 0.14.0** — if you install with npm and have
8
+ `tjs-lang` installed.
9
+
10
+ The optional peer was `^0.13.1`, and a caret on a `0.x` version admits patches only, so it
11
+ could not reach 0.14.0. An optional peer is only optional when it is *absent*: when it is
12
+ present and out of range, npm 7+ fails the install with `ERESOLVE`. It is now
13
+ `^0.13.1 || ^0.14.0`. bun resolves either way, which is why nothing here surfaced it; tjs-lang's
14
+ own pre-release review found it (the same defect as #98, one minor later).
15
+
16
+ Verified against `tjs-lang@0.14.0-rc.0` before widening: typecheck, build, unit, Playwright on
17
+ all three engines (the whole doc-test tier included) and the haltija lane all pass against it.
18
+ The one break 0.14.0 names, runtime types becoming callable, touches nothing here: no tosijs-ui
19
+ code handles a tjs runtime type.
20
+
21
+ The live-example CDN pin and the dev dependency stay on 0.13.13 until 0.14.0 is final, so a
22
+ published doc site keeps fetching the version it was built and tested against.
23
+
24
+ ### The installed `bin/docs.ts` shim resolves its import
25
+
26
+ The back-compat shim for `extractDocs` importers re-exported from `../src/…`, and `src/` is not
27
+ in the published package, so since the doc-site system moved into `tosijs-ui/site` (June) it
28
+ threw `Cannot find module` for every installed consumer. It now re-exports from `dist/`, so
29
+ running it with `bun` or importing it by file path works. The bare specifier
30
+ `'tosijs-ui/bin/docs'` still does not resolve (the `exports` map sends it to `dist/`), and never
31
+ has since that map was added. **Use `tosijs-ui/site`** — it was never affected.
32
+
33
+ Found by a release check that had been silently skipping; it runs now.
34
+
35
+ ### `tosijs-tunnel`, `tosijs-deploy`, `tosijs-caddy-install`, `tosijs-release-notes`: import spelling only
36
+
37
+ These bins now import `./resolve-site-config.ts` with its extension instead of relying on Bun's
38
+ extension probing, so each relative specifier names a file that is in the package. **No
39
+ behaviour moved:** the same module is loaded, and nothing in argument handling, ports, hosts,
40
+ secrets or what they write was touched. The diff is the import line in each file. Found by the
41
+ same check.
42
+
43
+ ## 1.15.1
44
+
45
+ ### Doc-test failures reported the wrong line — the same wrong line, every time (#142)
46
+
47
+ Reported by an adopter converting a WebGL project to test fences: two failures in two
48
+ *different* blocks both named `(line 114)`. Reproduced in Chromium — blocks failing at lines 2
49
+ and 10 both reported **131**.
50
+
51
+ Nothing was being recognised as the user's frame, so the first bundle frame won and every
52
+ failure named one constant wrong line. The cause is narrow and unlucky: the only mechanism was
53
+ a list of bundle filenames to skip, it matched a bare `/iife.js`, and a doc site serves
54
+ `/iife.js?v=<hash>` — the cache-busting stamp — which the `$` anchor rejects. It also never
55
+ listed `hydrate.js`, which is the bundle an *adopter's* site actually loads. So on a real doc
56
+ site nothing was skipped at all.
57
+
58
+ The user's frame is now identified **positively**, by the `sourceURL` the code was tagged with,
59
+ which is immune to query strings, to bundle names we did not anticipate, and to whatever an
60
+ adopter calls theirs. The exclusion list survives as a fallback for untagged stacks, now
61
+ matching on the path with any query or fragment stripped. When a tag is expected and no tagged
62
+ frame exists — WebKit routinely produces none — it reports **nothing** rather than guessing.
63
+
64
+ The reporter's framing was right and is worth keeping: *a wrong line is worse than none,
65
+ because it sends you confidently to the wrong place.*
66
+
67
+ ### `toBeCloseTo`, `toBeGreaterThanOrEqual`, `toBeLessThanOrEqual` in doc tests (#142)
68
+
69
+ Also from that report. Everything renderer-shaped is floats — intensities, densities, bounding
70
+ boxes — and without `toBeCloseTo` they were writing `Math.round(x * 1e6) / 1e6` at every
71
+ assertion. Jest's semantics exactly, so the habit transfers: `digits` is decimal places and the
72
+ tolerance is half a unit in the last one. All three compose with `.not`.
73
+
3
74
  ## 1.15.0
4
75
 
5
76
  ### `save-to-source` wrote edits into the wrong fence, silently
@@ -38,7 +38,7 @@ import {
38
38
  parseArgv,
39
39
  resolvePreviewHost,
40
40
  resolveSiteConfig,
41
- } from './resolve-site-config'
41
+ } from './resolve-site-config.ts'
42
42
 
43
43
  const { has, flag } = parseArgv(process.argv.slice(2), {
44
44
  bin: 'tosijs-caddy-install',
@@ -33,12 +33,12 @@ import {
33
33
  registerCaddyFragment,
34
34
  resolvePreviewHost,
35
35
  parseArgv,
36
- } from './resolve-site-config'
36
+ } from './resolve-site-config.ts'
37
37
  import {
38
38
  resolveSiteConfig,
39
39
  isSafeRemotePath,
40
40
  safeRemoteRoots,
41
- } from './resolve-site-config'
41
+ } from './resolve-site-config.ts'
42
42
 
43
43
  const { has, flag } = parseArgv(process.argv.slice(2), {
44
44
  bin: 'tosijs-deploy',
package/bin/docs.ts CHANGED
@@ -7,4 +7,11 @@
7
7
  //
8
8
  // No `/*#` doc block here on purpose: the documented copy lives in the real
9
9
  // module, so the doc extractor surfaces it once (avoiding a slug collision).
10
- export * from '../src/doc-system/site/docs'
10
+ //
11
+ // It must point into dist/, not src/: src/ is not in package.json#files, so the src path
12
+ // resolved only inside this repo and the shim was broken for every consumer from the move
13
+ // (2026-06-14) until 1.15.2. Found by release-doctor's shipped-relative-specifier check.
14
+ // Note the bare `'tosijs-ui/bin/docs'` spelling above does NOT resolve: the exports map's
15
+ // `./*` wildcard sends it to dist/bin/docs.js. Only a file path or `bun bin/docs.ts` reaches
16
+ // this file. See TODO.md.
17
+ export * from '../dist/doc-system/site/docs.js'
@@ -73,7 +73,7 @@ import {
73
73
  lastVersionTag,
74
74
  } from '../dist/doc-system/release-notes.js'
75
75
 
76
- import { parseArgv } from './resolve-site-config'
76
+ import { parseArgv } from './resolve-site-config.ts'
77
77
 
78
78
  // ── CLI ──────────────────────────────────────────────────────────────────────
79
79
 
package/bin/tunnel.ts CHANGED
@@ -39,7 +39,7 @@ import {
39
39
  resolveSiteConfig,
40
40
  resolveTunnelLocalPort,
41
41
  parseArgv,
42
- } from './resolve-site-config'
42
+ } from './resolve-site-config.ts'
43
43
 
44
44
  const { has, flag } = parseArgv(process.argv.slice(2), {
45
45
  bin: 'tosijs-tunnel',
File without changes