@neocompose/cli 0.16.1 → 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.
- package/CHANGELOG.md +32 -0
- package/dist/neo.mjs +6080 -3775
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
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
|
+
|
|
3
35
|
## [0.16.1] - 2026-07-30
|
|
4
36
|
|
|
5
37
|
### Fixed
|