@neocompose/cli 0.81.1 → 0.81.3
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 +22 -0
- package/dist/neo.mjs +399 -184
- package/dist/test-worker.mjs +263 -133
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +1 -1
- package/skills/neocompose-cli/references/cli-development.md +1 -1
- package/skills/neocompose-cli/references/declarations-and-construction.md +13 -1
package/package.json
CHANGED
|
@@ -129,7 +129,7 @@ wrappers.
|
|
|
129
129
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
130
130
|
|
|
131
131
|
```html
|
|
132
|
-
<!-- reviewed-through-cli: 0.81.
|
|
132
|
+
<!-- reviewed-through-cli: 0.81.3 -->
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
The quoted version above is checked too, so this instruction cannot go stale
|
|
@@ -222,7 +222,10 @@ the class's own parameter, such as `public Bag<T> B = new Bag<T>();`. Such an
|
|
|
222
222
|
initializer with fields or entries, like `new Bag<T> { N = 3 }`, runs per
|
|
223
223
|
instance, since each instance closes `T` differently. A type
|
|
224
224
|
argument that wraps the parameter, such as `new Bag<List<T>>()`, is rejected.
|
|
225
|
-
Type arguments must satisfy `extends` constraints in bodies too.
|
|
225
|
+
Type arguments must satisfy `extends` constraints in bodies too. A written
|
|
226
|
+
type argument list names every parameter, so `item is Tool<Asset>` is rejected
|
|
227
|
+
when `Tool` declares two. A bare generic name, such as `item is Tool`, stays
|
|
228
|
+
allowed.
|
|
226
229
|
A type argument may be a delegate, such as `Box<NeoDelegate<int, int>>`, but
|
|
227
230
|
not a `NeoAction`, which is never a value.
|
|
228
231
|
|
|
@@ -244,6 +247,9 @@ initializer as its default. Omitted fields remain virtual and resolve through
|
|
|
244
247
|
the instance's recorded constructor or variant. They track later source-default
|
|
245
248
|
edits until that field is explicitly overridden; resetting an override makes it
|
|
246
249
|
virtual again.
|
|
250
|
+
Editing an inline child preserves the outer construction's call-site values for
|
|
251
|
+
its other fields. The child keeps that construction while its variant selection
|
|
252
|
+
matches; selecting a different variant gives it an independent recipe.
|
|
247
253
|
|
|
248
254
|
Declare a lookup member as `Reference<T>`. `public Reference<Config> Config`
|
|
249
255
|
selects one row and reads as `Config`. `public Set<Reference<Config>> Configs`
|
|
@@ -575,6 +581,12 @@ selection. Constructor arguments and member initializers must select compatible
|
|
|
575
581
|
targets too. An `NPC` lookup cannot select from `List<Quest>`, even when its
|
|
576
582
|
initializer is typed `NPC`; status reports the conflicting collection annotation.
|
|
577
583
|
|
|
584
|
+
Generic constructions can nest the same generic class, including through
|
|
585
|
+
collections, such as `Box<Box<int>>` or `Box<List<Box<int>>>`. Each `new` uses
|
|
586
|
+
its own type arguments during first push and stored replay. Editing a nested
|
|
587
|
+
constructor argument rebuilds its projected fields in place, including fields
|
|
588
|
+
stored inside a packed parent; push followed by pull leaves a clean checkout.
|
|
589
|
+
|
|
578
590
|
Schema export retains a constructed default's generic arguments, including
|
|
579
591
|
nested collection references. For example, a `NeoAnimationClip<ArmPart>`
|
|
580
592
|
default constructs `new NeoAnimationClip<ArmPart>` and its frames reference
|