@neocompose/cli 0.63.0 → 0.64.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.63.0",
3
+ "version": "0.64.1",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@ description: >-
9
9
  `@neocompose/cli` or `node cli/bin/neo.mjs` in the neo-compose repository.
10
10
  ---
11
11
 
12
- <!-- reviewed-through-cli: 0.63.0 -->
12
+ <!-- reviewed-through-cli: 0.64.1 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -110,7 +110,7 @@ wrappers.
110
110
  The marker near the top of `SKILL.md` must exactly match the package version:
111
111
 
112
112
  ```html
113
- <!-- reviewed-through-cli: 0.63.0 -->
113
+ <!-- reviewed-through-cli: 0.64.1 -->
114
114
  ```
115
115
 
116
116
  The quoted version above is checked too, so this instruction cannot go stale
@@ -48,7 +48,7 @@ keeps its meaning.
48
48
 
49
49
  In a void context — a `void` function, a setter, or a void delegate — `=> expr`
50
50
  is an expression statement rather than a return, so the expression must do
51
- something: a call such as `void Ping() => this.OnChanged();`, or an assignment
51
+ something: a call such as `void Ping() => this.OnUpdated();`, or an assignment
52
52
  such as `set(int value) => this.Raw = value;`. An expression whose value would
53
53
  simply be discarded is rejected with a diagnostic that names the block body as
54
54
  the fix.
@@ -106,11 +106,11 @@ migration, and text-variable bodies against that same source transaction, so
106
106
  new declarations do not depend on a prior push or a network fetch.
107
107
 
108
108
  Inside an inline Class body, unqualified names resolve against that Class;
109
- invoke delegate and action members directly with `Selector()` or `OnChanged()`.
109
+ invoke delegate and action members directly with `Selector()` or `OnUpdated()`.
110
110
  Spell a zero-argument action as bare `NeoAction`; type arguments name action
111
111
  parameters, so `NeoAction<void>` is invalid rather than a zero-argument alias.
112
112
  Clear every subscribed listener from a stored action with
113
- `this.OnChanged.Clear()`. `Clear()` is a mutating statement and follows the
113
+ `this.OnUpdated.Clear()`. `Clear()` is a mutating statement and follows the
114
114
  action member's effective storage and writability. Only the action's declaring
115
115
  class and derived classes may invoke it or call `Clear()`; public external
116
116
  callers may subscribe and unsubscribe with `+=` and `-=` but cannot raise or
@@ -131,10 +131,16 @@ so it must call or assign. A dictionary-literal body needs parentheses,
131
131
  List<Item> ready = this.Items.Where((item) => item.Count > 0);
132
132
  ```
133
133
 
134
+ `==`, `!=`, `Contains`, `IndexOf`, and `Remove` compare Class, interface,
135
+ List, Set, and Dictionary values by identity: two reads of one stored value are
136
+ equal, and two values with identical fields are not. Primitives, enums,
137
+ vectors, and media references compare by value. The static type decides, so an
138
+ unconstrained generic `T` compares by value.
139
+
134
140
  Calling `Equals(other)` on a non-null generic value dynamically uses the
135
141
  runtime Class's one-argument `Equals` Function or NSFunction when it returns
136
142
  `bool`, including the effective override. Values without that member fall back
137
- to ordinary NeoScript equality.
143
+ to value equality.
138
144
 
139
145
  Object initializers are available in method bodies and `.spec.neo` tests:
140
146
 
@@ -240,7 +246,7 @@ other collection callbacks.
240
246
 
241
247
  Use `items.IndexOf(value)` to return the zero-based index of the first equal
242
248
  list entry, or `-1` when the value is absent. `IndexOf` is list-only and uses
243
- the same value/reference equality as `Contains`.
249
+ the same equality as `Contains`.
244
250
 
245
251
  Use `items.Insert(index, value)` to insert an entry into a writable ordered
246
252
  list. The index may range from zero through `items.Count`; the count appends