@lokascript/compilation-service 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
@@ -2862,7 +2862,7 @@ var CompilationService = class _CompilationService {
2862
2862
  initValidation({
2863
2863
  validateSemanticResult: semantic.validateSemanticResult
2864
2864
  });
2865
- const aot = await import("./dist-BDTQTYGC.js");
2865
+ const aot = await import("./dist-6EMM5HXE.js");
2866
2866
  const compiler = aot.createCompiler();
2867
2867
  initBridge(
2868
2868
  {
@@ -3503,4 +3503,4 @@ export {
3503
3503
  SvelteRenderer,
3504
3504
  CompilationService
3505
3505
  };
3506
- //# sourceMappingURL=chunk-XOAPC6M5.js.map
3506
+ //# sourceMappingURL=chunk-AMTQUPKJ.js.map
@@ -24,7 +24,7 @@ function convertCoreASTToAOT(node) {
24
24
  return node;
25
25
  }
26
26
  async function createCoreParserAdapter() {
27
- const core = await import("./dist-SO754VTX.js");
27
+ const core = await import("./dist-OK2I5ODH.js");
28
28
  const api = core.hyperscript ?? core.default ?? core;
29
29
  if (!api?.compileSync) {
30
30
  throw new Error(
@@ -55,4 +55,4 @@ export {
55
55
  convertCoreASTToAOT,
56
56
  createCoreParserAdapter
57
57
  };
58
- //# sourceMappingURL=chunk-QQLDIJOC.js.map
58
+ //# sourceMappingURL=chunk-PEL4Z7TK.js.map
@@ -2,11 +2,11 @@ import {
2
2
  CoreParserAdapter,
3
3
  convertCoreASTToAOT,
4
4
  createCoreParserAdapter
5
- } from "./chunk-QQLDIJOC.js";
5
+ } from "./chunk-PEL4Z7TK.js";
6
6
  import "./chunk-GBPMR66W.js";
7
7
  export {
8
8
  CoreParserAdapter,
9
9
  convertCoreASTToAOT,
10
10
  createCoreParserAdapter
11
11
  };
12
- //# sourceMappingURL=core-parser-adapter-W5UPZR4X-7CPPQMOH.js.map
12
+ //# sourceMappingURL=core-parser-adapter-W5UPZR4X-QSTMJ42V.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CoreParserAdapter,
3
3
  createCoreParserAdapter
4
- } from "./chunk-QQLDIJOC.js";
4
+ } from "./chunk-PEL4Z7TK.js";
5
5
  import {
6
6
  SemanticParserAdapter,
7
7
  createSemanticAdapter
@@ -4407,7 +4407,7 @@ async function compileHyperscript(code, options) {
4407
4407
  async function createMultilingualCompiler() {
4408
4408
  const compiler = new AOTCompiler();
4409
4409
  try {
4410
- const { createCoreParserAdapter: createCoreParserAdapter2 } = await import("./core-parser-adapter-W5UPZR4X-7CPPQMOH.js");
4410
+ const { createCoreParserAdapter: createCoreParserAdapter2 } = await import("./core-parser-adapter-W5UPZR4X-QSTMJ42V.js");
4411
4411
  compiler.setParser(await createCoreParserAdapter2());
4412
4412
  } catch {
4413
4413
  }
@@ -4460,4 +4460,4 @@ export {
4460
4460
  sanitizeSelector,
4461
4461
  scanFiles
4462
4462
  };
4463
- //# sourceMappingURL=dist-BDTQTYGC.js.map
4463
+ //# sourceMappingURL=dist-6EMM5HXE.js.map
@@ -3736,6 +3736,9 @@ function parseToggleCommand(ctx, identifierNode) {
3736
3736
  if (classArg && mode !== void 0 && classArg.expression) {
3737
3737
  args.push(classArg.expression);
3738
3738
  modifiers["as"] = literalModifier(mode);
3739
+ } else if (classArg?.type === "binaryExpression" && classArg.operator === "of" && classArg.left?.type === "selector" && typeof classArg.left.value === "string" && classArg.left.value.startsWith("*") && classArg.right) {
3740
+ args.push(classArg.left);
3741
+ modifiers["on"] = classArg.right;
3739
3742
  } else if (classArg) {
3740
3743
  args.push(classArg);
3741
3744
  }
@@ -25084,7 +25087,7 @@ function updateDebugStats(event) {
25084
25087
  }
25085
25088
  stats.averageConfidence = stats.confidenceHistory.reduce((a, b) => a + b, 0) / stats.confidenceHistory.length;
25086
25089
  }
25087
- var VERSION = "3.2.0";
25090
+ var VERSION = "3.3.0";
25088
25091
  function createHistorySwap(config2) {
25089
25092
  const { target, strategy = "morph", useViewTransition = false, fetchOptions = {}, transformUrl, onBeforeFetch, onAfterSwap, onError } = config2;
25090
25093
  const resolveTarget = () => {
@@ -27674,4 +27677,4 @@ export {
27674
27677
  toCoreAST,
27675
27678
  validatePartialContent
27676
27679
  };
27677
- //# sourceMappingURL=dist-SO754VTX.js.map
27680
+ //# sourceMappingURL=dist-OK2I5ODH.js.map