@hyperfixi/patterns-reference 3.2.0 → 3.3.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.3.0] - 2026-10-02
11
+
12
+ The first publication of `@hyperfixi/engine`, the hyperscript engine meant to replace the one
13
+ in `@hyperfixi/core`, and the example gallery moved onto it.
14
+
15
+ ### Added
16
+
17
+ - **`@hyperfixi/engine` is published.** A hyperscript engine written against upstream
18
+ `_hyperscript`'s source, with upstream's own test suite as the acceptance oracle (1,401 of
19
+ 1,467 tests; the 66 known failures are upstream's internal API, sockets and workers). It
20
+ ships `dist/hyperfixi-hs.js`, a script-tag bundle of hyperscript and nothing else, 34.1 KB
21
+ gzipped, which 36 of the repository's example pages now load instead of `hyperfixi.js`. It
22
+ keeps two forms upstream lacks, `new X(...)` and `toggle <element>`; the other hyperfixi-only
23
+ forms are not in it. It is typed (`tsc --strict`, no `any`), built from modules, and exposes
24
+ upstream's public API shape plus one hook, `addSourceTransform`, which
25
+ `@lokascript/hyperscript-adapter` uses to run the 24 languages on it.
26
+
27
+ ### Changed
28
+
29
+ - **Examples and docs are written in upstream `_hyperscript`'s spelling** wherever upstream has
30
+ one: `put Y into X` for the `swap` strategies, `debounced at 300ms`, `matches`, `set X's @a`,
31
+ `increment #count's textContent` (core counted in a bare `#count`; upstream does not),
32
+ `on mutation of childList from #x`, `my offsetLeft` in place of `measure x`. The multilingual
33
+ reader still accepts the old forms; the renderer writes upstream's. Corpus rows follow.
34
+ - **`@lokascript/semantic` renders `repeat for x in xs index i`** (was `with index`) and
35
+ `tell X show` (was `tell X to show`), upstream's spellings.
36
+ - **The examples' bundle loader** takes a per-page default (`data-default="hs"`), and `?bundle=hs`
37
+ switches any page to the engine bundle.
38
+
39
+ ### Fixed
40
+
41
+ - **`@hyperfixi/core`**: `toggle *display of X` parsed and then threw.
42
+ - **Hybrid bundles (`hyperfixi-hx.js`)**: `increment` / `decrement` of a possessive wrote only
43
+ style properties; `increment #count's textContent` evaluated to the text and threw on
44
+ `querySelectorAll('0')`. They now write the property.
45
+ - **`@lokascript/semantic`**: a template-literal URL in a Korean handler was read as a custom
46
+ event name.
47
+
10
48
  ## [3.2.0] - 2026-09-30
11
49
 
12
50
  A correctness release for multilingual hyperscript. The semantic parser behind
@@ -861,7 +899,9 @@ _Synchronized version release. See git history for details._
861
899
  - npm access token stored in GitHub Secrets
862
900
  - 2FA recommended for npm organization
863
901
 
864
- [Unreleased]: https://github.com/codetalcott/hyperfixi/compare/v3.1.0...HEAD
902
+ [Unreleased]: https://github.com/codetalcott/hyperfixi/compare/v3.3.0...HEAD
903
+ [3.3.0]: https://github.com/codetalcott/hyperfixi/compare/v3.2.0...v3.3.0
904
+ [3.2.0]: https://github.com/codetalcott/hyperfixi/compare/v3.1.0...v3.2.0
865
905
  [3.1.0]: https://github.com/codetalcott/hyperfixi/compare/v3.0.0...v3.1.0
866
906
  [2.10.0]: https://github.com/codetalcott/hyperfixi/compare/v2.9.0...v2.10.0
867
907
  [2.9.0]: https://github.com/codetalcott/hyperfixi/compare/v2.8.0...v2.9.0
@@ -5,7 +5,7 @@
5
5
  "hyperscript": "upstream _hyperscript parse with zero recovered errors (extensions loaded: socket, worker, eventsource, component); parse-level for plain sources",
6
6
  "html": "HTML-markup patterns: every _= / hx-live / script-tag source, including those inside component template bodies, verified on both legs; template components rendered on both legs (non-empty, nothing logged or thrown); hx-live/sse-*/ws-* markup is hyperfixi-only (blocks the upstream claim) and earns its lokascript credit only by running in dist/hyperfixi-hx-v4.js (sse events swap into hx-target, ws-send reaches the socket, hx-live re-renders); a row with no source earns no credit"
7
7
  },
8
- "lokascriptVersion": "3.1.1",
8
+ "lokascriptVersion": "3.2.0",
9
9
  "hyperscriptVersion": "0.9.93"
10
10
  },
11
11
  "engines": {
@@ -13,13 +13,13 @@
13
13
  "accordion-toggle": "both",
14
14
  "add-class-basic": "both",
15
15
  "add-class-to-other": "both",
16
- "announce-screen-reader": "lokascript",
16
+ "announce-screen-reader": "both",
17
17
  "append-content": "both",
18
18
  "async-block": null,
19
19
  "beep-debug-expression": "both",
20
20
  "behavior-draggable": "both",
21
21
  "behavior-removable": "both",
22
- "behavior-resizable": "lokascript",
22
+ "behavior-resizable": "both",
23
23
  "behavior-sortable": "both",
24
24
  "bind-auto-detect": "both",
25
25
  "bind-explicit-property": "both",
@@ -47,7 +47,7 @@
47
47
  "document-ready": "both",
48
48
  "dropdown-close-outside": "both",
49
49
  "dropdown-toggle": "both",
50
- "event-debounce": "lokascript",
50
+ "event-debounce": "both",
51
51
  "event-from-elsewhere": "both",
52
52
  "event-key-combo": "both",
53
53
  "event-once": "both",
@@ -85,7 +85,7 @@
85
85
  "increment-by-amount": "both",
86
86
  "increment-counter": "both",
87
87
  "input-char-count": "both",
88
- "input-clear": "lokascript",
88
+ "input-clear": "both",
89
89
  "input-mirror": "both",
90
90
  "input-validation": "both",
91
91
  "install-behavior": "both",
@@ -111,7 +111,7 @@
111
111
  "multiple-events": "both",
112
112
  "next-element": "both",
113
113
  "on-custom-event-receive": "both",
114
- "optional-chaining-possessive": "lokascript",
114
+ "optional-chaining-possessive": "both",
115
115
  "pick-text-range": "both",
116
116
  "previous-element": "both",
117
117
  "put-after": "both",
@@ -146,14 +146,14 @@
146
146
  "socket-send": "both",
147
147
  "sse-connect-swap": "lokascript",
148
148
  "sse-multi-event": "lokascript",
149
- "stagger-animation": "lokascript",
149
+ "stagger-animation": "both",
150
150
  "swap-content": "both",
151
151
  "swap-view-transition": "lokascript",
152
- "tabs-aria": "lokascript",
152
+ "tabs-aria": "both",
153
153
  "tabs-basic": "both",
154
154
  "tabs-content": "both",
155
155
  "take-class-from-siblings": "both",
156
- "tell-command": "lokascript",
156
+ "tell-command": "both",
157
157
  "tell-other-element": "both",
158
158
  "template-literal-interpolation": "both",
159
159
  "template-literal-list-build": "both",
@@ -167,7 +167,7 @@
167
167
  "transition-transform": "both",
168
168
  "trigger-event": "both",
169
169
  "two-way-binding": "both",
170
- "unless-condition": "lokascript",
170
+ "unless-condition": "both",
171
171
  "wait-for-event": "both",
172
172
  "wait-then": "both",
173
173
  "when-multiple-changes": "both",
@@ -197,8 +197,7 @@
197
197
  },
198
198
  "announce-screen-reader": {
199
199
  "lokascript": true,
200
- "hyperscript": false,
201
- "hyperscriptError": "Expected event name"
200
+ "hyperscript": true
202
201
  },
203
202
  "append-content": {
204
203
  "lokascript": true,
@@ -224,8 +223,7 @@
224
223
  },
225
224
  "behavior-resizable": {
226
225
  "lokascript": true,
227
- "hyperscript": false,
228
- "hyperscriptError": "You must parenthesize math operations with different operators"
226
+ "hyperscript": true
229
227
  },
230
228
  "behavior-sortable": {
231
229
  "lokascript": true,
@@ -338,8 +336,7 @@
338
336
  },
339
337
  "event-debounce": {
340
338
  "lokascript": true,
341
- "hyperscript": false,
342
- "hyperscriptError": "Unexpected Token : value"
339
+ "hyperscript": true
343
340
  },
344
341
  "event-from-elsewhere": {
345
342
  "lokascript": true,
@@ -494,8 +491,7 @@
494
491
  },
495
492
  "input-clear": {
496
493
  "lokascript": true,
497
- "hyperscript": false,
498
- "hyperscriptError": "Expected 'to' but found '<'"
494
+ "hyperscript": true
499
495
  },
500
496
  "input-mirror": {
501
497
  "lokascript": true,
@@ -601,8 +597,7 @@
601
597
  },
602
598
  "optional-chaining-possessive": {
603
599
  "lokascript": true,
604
- "hyperscript": false,
605
- "hyperscriptError": "Unexpected Token : ?"
600
+ "hyperscript": true
606
601
  },
607
602
  "pick-text-range": {
608
603
  "lokascript": true,
@@ -744,8 +739,7 @@
744
739
  },
745
740
  "stagger-animation": {
746
741
  "lokascript": true,
747
- "hyperscript": false,
748
- "hyperscriptError": "Expected 'end' but found 'with'"
742
+ "hyperscript": true
749
743
  },
750
744
  "swap-content": {
751
745
  "lokascript": true,
@@ -758,8 +752,7 @@
758
752
  },
759
753
  "tabs-aria": {
760
754
  "lokascript": true,
761
- "hyperscript": false,
762
- "hyperscriptError": "Expected event name"
755
+ "hyperscript": true
763
756
  },
764
757
  "tabs-basic": {
765
758
  "lokascript": true,
@@ -775,8 +768,7 @@
775
768
  },
776
769
  "tell-command": {
777
770
  "lokascript": true,
778
- "hyperscript": false,
779
- "hyperscriptError": "Expected 'end' but found 'to'"
771
+ "hyperscript": true
780
772
  },
781
773
  "tell-other-element": {
782
774
  "lokascript": true,
@@ -832,8 +824,7 @@
832
824
  },
833
825
  "unless-condition": {
834
826
  "lokascript": true,
835
- "hyperscript": false,
836
- "hyperscriptError": "Unexpected Token : unless"
827
+ "hyperscript": true
837
828
  },
838
829
  "wait-for-event": {
839
830
  "lokascript": true,
package/data/patterns.db CHANGED
Binary file
@@ -1 +1 @@
1
- 58560c1acbd7a107e3eb6c51f5f389097ca61685698f50752dd880c8ff79851e
1
+ e0e64deb40ab4c8f93381ac427d4026e193bb4c3f8e7492c4e9b88af2f2100ff
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperfixi/patterns-reference",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "description": "Queryable patterns database for hyperscript with multilingual translations and LLM support",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -65,14 +65,14 @@
65
65
  },
66
66
  "homepage": "https://github.com/codetalcott/hyperfixi/tree/main/packages/patterns-reference#readme",
67
67
  "dependencies": {
68
- "@lokascript/semantic": "^3.2.0",
68
+ "@lokascript/semantic": "^3.3.0",
69
69
  "better-sqlite3": "^13.0.3"
70
70
  },
71
71
  "devDependencies": {
72
- "@hyperfixi/components": "^3.2.0",
73
- "@hyperfixi/core": "^3.2.0",
74
- "@hyperfixi/reactivity": "^3.2.0",
75
- "@hyperfixi/realtime": "^3.2.0",
72
+ "@hyperfixi/components": "^3.3.0",
73
+ "@hyperfixi/core": "^3.3.0",
74
+ "@hyperfixi/reactivity": "^3.3.0",
75
+ "@hyperfixi/realtime": "^3.3.0",
76
76
  "@types/better-sqlite3": "^9.6.0",
77
77
  "@types/node": "^26.6.3",
78
78
  "hyperscript.org": "0.9.93",