@neocompose/cli 0.34.2 → 0.35.1
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 +44 -0
- package/dist/neo.mjs +627 -181
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +5 -4
- package/skills/neocompose-cli/references/animation-and-world-authoring.md +16 -5
- package/skills/neocompose-cli/references/cli-development.md +1 -1
- package/skills/neocompose-cli/references/neoscript.md +44 -0
- package/skills/neocompose-cli/references/values-identities-and-references.md +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.35.1] - 2026-08-19
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Treat `Partial<T>` values as sparse deltas throughout lowering and emission,
|
|
8
|
+
without invoking or reconstructing `T`'s required constructor.
|
|
9
|
+
- Materialize complete Unity defaults for template-less image and audio
|
|
10
|
+
registry entries instead of writing an invalid template override shape.
|
|
11
|
+
- Keep declarations inside variant delegate closures out of the global-child
|
|
12
|
+
registry, so separate `initialize` and `apply` closures may reuse local names.
|
|
13
|
+
|
|
14
|
+
## [0.35.0] - 2026-08-19
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- P72 expression bodies: write `=> expr;` wherever a body is a single
|
|
19
|
+
expression — getter-only properties (`bool HasVisited => this.Count > 0;`),
|
|
20
|
+
an accessor inside a property block (`get => ...;`, `set(int value) => ...;`),
|
|
21
|
+
functions (`bool Ready(int level) => this.Level >= level;`), and lambdas
|
|
22
|
+
(`(x) => x * 2`). It is pure sugar: the desugared block compiles to the same
|
|
23
|
+
instruction stream, and diagnostics point at the authored expression. In a
|
|
24
|
+
void context the expression is a statement, so it must call or assign; an
|
|
25
|
+
expression whose value would be discarded is refused with a diagnostic that
|
|
26
|
+
names the block body as the fix.
|
|
27
|
+
- The `=>` reads as an expression body only where it directly follows a member
|
|
28
|
+
name or a parameter list's `)`, so a NeoFlow destination arrow after an `=`
|
|
29
|
+
initializer (`override Trigger Trigger = new(...) => Welcome;`) is unchanged.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- `neo pull` and `neo push` canonicalize a stored body to `=> expr;` when its
|
|
34
|
+
authored spelling is exactly one `return` statement that fits on one line;
|
|
35
|
+
every other body, and every setter, re-emits as a block. A push preserves the
|
|
36
|
+
form already on disk for members it did not otherwise rewrite, so authoring a
|
|
37
|
+
one-line getter in longhand stays byte-identical through a push.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- VS Code highlighting no longer claims the identifier after every `=>` as a
|
|
42
|
+
NeoFlow destination. The destination scope now requires the NeoFlow shape —
|
|
43
|
+
an arrow after `)`, a single non-keyword identifier, then `;` — so calls,
|
|
44
|
+
`this.` chains, types, and `get`/`set` keywords inside expression bodies keep
|
|
45
|
+
their own scopes.
|
|
46
|
+
|
|
3
47
|
## [0.34.2] - 2026-08-19
|
|
4
48
|
|
|
5
49
|
### Fixed
|