@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.
- package/CHANGELOG.md +76 -1
- 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/
|
|
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": "
|
|
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": "^
|
|
61
|
-
"@lokascript/compilation-service": "^
|
|
62
|
-
"@lokascript/i18n": "^
|
|
63
|
-
"@lokascript/semantic": "^
|
|
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": "^
|
|
76
|
-
"@lokascript/hyperscript-adapter": "^
|
|
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",
|