@neocompose/cli 0.16.0 → 0.17.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 (3) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/neo.mjs +6443 -3818
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.17.0] - 2026-07-31
4
+
5
+ ### Added
6
+
7
+ - Declare a class's constructor on its header, `class Foo(string bar)`. The
8
+ parameters are in scope for the entire class body, member initializers and
9
+ string interpolation alike, and the class cannot be constructed without
10
+ them. Construction logic that does not fit an initializer expression goes in
11
+ an `init { }` block, of which a class may declare at most one.
12
+ - The class header's base clause is a construction expression for the base:
13
+ `: Foo(bar: bar)` passes its arguments, `: Foo { Bar = bar }` settles its
14
+ members, and `: Foo<string>(bar: bar)` binds its type arguments. Both halves
15
+ are stored on the required constructor record and re-emitted by `neo pull`
16
+ on the header.
17
+ - `neo status` reports compiler diagnostics below error severity and its
18
+ `--json` envelope carries each diagnostic's `severity` alongside `blocking`.
19
+ A warning is surfaced and never blocks a push, a pull, or the dev watcher.
20
+
21
+ ### Changed
22
+
23
+ - Advance the project-schema contract to 3.9: a class record carries
24
+ `requiredConstructorId`, the constructor record its header parameter list
25
+ owns, and a constructor record carries `baseInitializerFields`. The required
26
+ constructor's id is derived from the class rather than authored, so it is
27
+ stable across pushes and identical on the server, and it is deliberately
28
+ absent from `constructorIds` — a class that declares one may declare no
29
+ others.
30
+ - A member initializer may no longer read a declared constructor's parameters.
31
+ The parameter belongs to that constructor's body, the same rule getters and
32
+ functions already follow; move the parameters to the class header to get the
33
+ previous behaviour with a scope the compiler can defend.
34
+
35
+ ## [0.16.1] - 2026-07-30
36
+
37
+ ### Fixed
38
+
39
+ - Lower member defaults that read their declaring class's constructor
40
+ parameters, including nested class and collection entries, while preserving
41
+ authored row identities and source-positioned diagnostics.
42
+ - Seed structural rows for newly authored class-valued members, including root
43
+ scope members, so a new object graph can be created in the same push that
44
+ declares it.
45
+ - Resolve shared collection entry types in the overriding class's concrete
46
+ generic environment. A `List<NeoAnimationSegmentFrame<SpriteInfo>>` override
47
+ now agrees with its inherited `List<NeoAnimationSegmentFrame<T>>` declaration
48
+ and generates the corresponding concrete C# property signature.
49
+
3
50
  ## [0.16.0] - 2026-07-30
4
51
 
5
52
  ### Added