@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 +41 -1
- package/data/engine-verification.json +19 -28
- package/data/patterns.db +0 -0
- package/data/patterns.db.stamp +1 -1
- package/package.json +6 -6
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.
|
|
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.
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
149
|
+
"stagger-animation": "both",
|
|
150
150
|
"swap-content": "both",
|
|
151
151
|
"swap-view-transition": "lokascript",
|
|
152
|
-
"tabs-aria": "
|
|
152
|
+
"tabs-aria": "both",
|
|
153
153
|
"tabs-basic": "both",
|
|
154
154
|
"tabs-content": "both",
|
|
155
155
|
"take-class-from-siblings": "both",
|
|
156
|
-
"tell-command": "
|
|
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": "
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
package/data/patterns.db.stamp
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
e0e64deb40ab4c8f93381ac427d4026e193bb4c3f8e7492c4e9b88af2f2100ff
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperfixi/patterns-reference",
|
|
3
|
-
"version": "3.
|
|
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.
|
|
68
|
+
"@lokascript/semantic": "^3.3.0",
|
|
69
69
|
"better-sqlite3": "^13.0.3"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@hyperfixi/components": "^3.
|
|
73
|
-
"@hyperfixi/core": "^3.
|
|
74
|
-
"@hyperfixi/reactivity": "^3.
|
|
75
|
-
"@hyperfixi/realtime": "^3.
|
|
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",
|