@hyperfixi/testing-framework 4.7.0 → 5.0.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.
Files changed (2) hide show
  1. package/CHANGELOG.md +76 -1
  2. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -7,6 +7,79 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [5.0.0] - 2026-10-17
11
+
12
+ A renumber for everything but `@lokascript/framework`, whose classic DSL engine is removed: every
13
+ other package is unchanged in its API, and `@lokascript/domains` 4.2.1+ accepts 5.0.
14
+
15
+ ### Removed (BREAKING)
16
+
17
+ - **`@lokascript/framework`: the classic DSL engine** (domains rethink Phase 6; M3 (e): one
18
+ matcher). Every DSL reads on the core engine, which every kept domain has used since domains 4.2.0
19
+ (bdd's own suite and its gate read the same on it, 0 cases moved). Gone: `PatternMatcher`,
20
+ `patternMatcher`, `matchPattern`, `matchBest` and the `./core/pattern-matching` subpath (and
21
+ `PatternMatcher` from `./parsing`); the classic generator, `generatePattern`,
22
+ `generatePatternVariants` and `GeneratorConfig`. `createMultilingualDSL` defaults to the core;
23
+ `engine: 'core'` is still accepted and changes nothing, so the domains build unchanged, while
24
+ `engine: 'classic'` throws, naming what replaced it. Kept: the schema renderer
25
+ (`createDomainRenderer`, `createSchemaRenderer`, the domains' renderer kit), `PatternGenLanguageProfile`
26
+ and `sortRolesByWordOrder` (now in `generation/profile.ts`), and the value helpers the stock reader
27
+ uses (`isTypeCompatible`, `getPossessiveReference` & co., now in `core/matching`, still exported
28
+ from the root).
29
+
30
+ ### Changed
31
+
32
+ - **`@hyperfixi/mcp-server`: on `@lokascript/domains` 4.2.1, without bdd's tools** (domains rethink
33
+ Phase 5, D6). `parse_bdd`, `compile_bdd`, `validate_bdd` and `translate_bdd` and the multi-step
34
+ bdd scenario handling are gone: behaviorspec reads bdd's preconditions, actions and assertions
35
+ (`given #button is visible`, `when user presses 'Enter'`, `expect #title text Welcome`), and the
36
+ server creates its registry with `createDomainRegistry({ omit: ['bdd'] })`. 98 tools defined, 93
37
+ listed by default (102 and 97). From domains 4.2.0 the domain tools also refuse what their DSL does
38
+ not read (no domain gate case accepts leftover input), and `parse_learn` & co. read and write
39
+ learn's commanding sentence with semantic.
40
+
41
+ ### Fixed
42
+
43
+ - **`@hyperfixi/server-bridge` reads a fetch's method from upstream's options.** It read the method
44
+ only from 2.x's `via POST`, so a route written in the engine's syntax, such as
45
+ `fetch /api/x with {method:'POST'}`, was generated as GET. It now reads `with {method:'POST'}`,
46
+ `with method:'POST'` or a bare `{method:'POST'}`, with `as` before or after them (`as an html`
47
+ too); `via` is still read. Measured on lokascript-examples' cross-domain and flow-playground
48
+ pages: 3 POST routes read as GET, all POST now.
49
+
50
+ ## [4.8.0] - 2026-10-16
51
+
52
+ ### Added
53
+
54
+ - **`@lokascript/intent` / `@lokascript/framework`: a role's word list, `RoleSpec.words`** (domains
55
+ rethink Phase 5). Per language, with `'*'` for every language; the core engine (`engine: 'core'`)
56
+ reads such a slot only from one of its words, compared lower-cased, so a word the grammar does not
57
+ know is left unread and the input refused, instead of read as the value. It is for a domain's fixed
58
+ words: behaviorspec's `when clicks zzqx` read actor `clicks`, action `zzqx`, and compiled to a
59
+ comment. The schema-pattern generator carries the pattern language's list on the role token
60
+ (`RolePatternToken.words`); a grammar that lists no words generates the same patterns. The classic
61
+ engine and semantic ignore it.
62
+ - **`@lokascript/framework/testing/gate`: `GateFixture.commands`**, commands the gate writes besides
63
+ the generated ones, where one role's value depends on another's (behaviorspec's
64
+ `[given subject:#box value:visible]` beside `[given subject:viewport value:1024x768]`).
65
+ - **`@lokascript/framework`: `UnreadInputError.hint`.** Where the last word a parse read as a value is
66
+ followed by another bare word, the refusal adds `if "buy milk" is one value, quote it` (todo's
67
+ `add buy milk to groceries`, whose item is quoted).
68
+
69
+ ### Changed
70
+
71
+ - **`@lokascript/framework/testing/gate`: leftover input read into a role is `pass`.** An unknown word
72
+ after a command used to be `silent` wherever the parse accepted it. It is `pass` when the parse is
73
+ the text's own with the word in one role (an open-text role extended by it, sql's
74
+ `where active zzqx`, or a role the text left empty, todo's `list zzqx`) and the word reaches the
75
+ compiled code; `refused` when the input stops compiling; `silent` otherwise (read as something
76
+ else, or the word goes nowhere). `readsWord` is exported. On the domains (domains 4.1.0, this
77
+ framework packed): 74 leftover cases accepted → read, 0 worse, 0 parses moved.
78
+ - **`@lokascript/framework`: the stock reader's optional slot does not read a marker the rest of the
79
+ pattern owes**, through its optional groups, as a required slot already does not read the marker
80
+ next to it (behaviorspec's `when user types into #search`, whose typed text is optional and has no
81
+ marker). No domain parse moves.
82
+
10
83
  ## [4.7.0] - 2026-10-16
11
84
 
12
85
  ### Added
@@ -1821,7 +1894,9 @@ _Synchronized version release. See git history for details._
1821
1894
  - npm access token stored in GitHub Secrets
1822
1895
  - 2FA recommended for npm organization
1823
1896
 
1824
- [Unreleased]: https://github.com/codetalcott/hyperfixi/compare/v4.7.0...HEAD
1897
+ [Unreleased]: https://github.com/codetalcott/hyperfixi/compare/v5.0.0...HEAD
1898
+ [5.0.0]: https://github.com/codetalcott/hyperfixi/compare/v4.8.0...v5.0.0
1899
+ [4.8.0]: https://github.com/codetalcott/hyperfixi/compare/v4.7.0...v4.8.0
1825
1900
  [4.7.0]: https://github.com/codetalcott/hyperfixi/compare/v4.6.0...v4.7.0
1826
1901
  [4.6.0]: https://github.com/codetalcott/hyperfixi/compare/v4.5.0...v4.6.0
1827
1902
  [4.5.0]: https://github.com/codetalcott/hyperfixi/compare/v4.4.0...v4.5.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperfixi/testing-framework",
3
- "version": "4.7.0",
3
+ "version": "5.0.0",
4
4
  "description": "Cross-platform behavior testing suite for LokaScript applications",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -57,10 +57,10 @@
57
57
  "author": "LokaScript Contributors",
58
58
  "license": "MIT",
59
59
  "dependencies": {
60
- "@hyperfixi/patterns-reference": "^4.7.0",
61
- "@lokascript/compilation-service": "^4.7.0",
62
- "@lokascript/i18n": "^4.7.0",
63
- "@lokascript/semantic": "^4.7.0",
60
+ "@hyperfixi/patterns-reference": "^5.0.0",
61
+ "@lokascript/compilation-service": "^5.0.0",
62
+ "@lokascript/i18n": "^5.0.0",
63
+ "@lokascript/semantic": "^5.0.0",
64
64
  "diff": "^8.0.3",
65
65
  "esbuild": "^0.25.12",
66
66
  "happy-dom": "^20.14.5",
@@ -72,8 +72,8 @@
72
72
  "vite": "^8.3.1"
73
73
  },
74
74
  "devDependencies": {
75
- "@hyperfixi/engine": "^4.7.0",
76
- "@lokascript/hyperscript-adapter": "^4.7.0",
75
+ "@hyperfixi/engine": "^5.0.0",
76
+ "@lokascript/hyperscript-adapter": "^5.0.0",
77
77
  "@types/diff": "^5.0.0",
78
78
  "@types/node": "^26.6.3",
79
79
  "@vitest/coverage-v8": "^5.0.0",