@neocompose/cli 0.60.1 → 0.60.2
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
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.60.2] - 2026-09-29
|
|
4
|
+
|
|
5
|
+
- A List field that overrides an abstract List getter can be pushed. List overrides no longer redeclare indexes in their records.
|
|
6
|
+
- `@index` on a List override reports an error at the member's source location. Declare indexes on the original List member.
|
|
7
|
+
|
|
3
8
|
## [0.60.1] - 2026-09-28
|
|
4
9
|
|
|
5
10
|
- When push checks which classes a variant reference or a class-typed default may select, it finds the class's subclasses from one parent-to-children index. Before, it rescanned every class once per level of inheritance.
|
package/dist/neo.mjs
CHANGED
|
@@ -39446,12 +39446,14 @@ function memberToDocumentFields(member, baseData3) {
|
|
|
39446
39446
|
if (member.listKind === "unordered" || isOverride) {
|
|
39447
39447
|
fields.listKind = member.listKind === "unordered" ? 1 : 0;
|
|
39448
39448
|
}
|
|
39449
|
-
|
|
39450
|
-
|
|
39451
|
-
|
|
39452
|
-
|
|
39453
|
-
|
|
39454
|
-
|
|
39449
|
+
if (!isOverride) {
|
|
39450
|
+
fields.indexes = member.indexes.map(
|
|
39451
|
+
(index) => omitUndefined({
|
|
39452
|
+
schemaKey: index.schemaKey,
|
|
39453
|
+
kind: index.unique ? 1 : void 0
|
|
39454
|
+
})
|
|
39455
|
+
);
|
|
39456
|
+
}
|
|
39455
39457
|
fields.columnSettings = member.columns.map(
|
|
39456
39458
|
(column) => omitUndefined({
|
|
39457
39459
|
memberKey: column.memberKey,
|
|
@@ -40465,7 +40467,6 @@ var init_codecs = __esm({
|
|
|
40465
40467
|
"minValue",
|
|
40466
40468
|
"maxValue",
|
|
40467
40469
|
"decimalPoints",
|
|
40468
|
-
"indexes",
|
|
40469
40470
|
"columnSettings",
|
|
40470
40471
|
"schemaKeyOrder",
|
|
40471
40472
|
"classArguments",
|
|
@@ -111546,7 +111547,7 @@ function lowerClass(context, declaration) {
|
|
|
111546
111547
|
}
|
|
111547
111548
|
function lowerMember(context, ownerClass, declaration, id2, owner) {
|
|
111548
111549
|
const member = lowerMemberKind(context, ownerClass, declaration, id2, owner);
|
|
111549
|
-
assertListAnnotationPlacement(ownerClass, declaration, member
|
|
111550
|
+
assertListAnnotationPlacement(ownerClass, declaration, member);
|
|
111550
111551
|
return member;
|
|
111551
111552
|
}
|
|
111552
111553
|
function lowerMemberKind(context, ownerClass, declaration, id2, owner) {
|
|
@@ -112208,8 +112209,16 @@ function memberKeyArgument(value, ownerClass, declaration) {
|
|
|
112208
112209
|
}
|
|
112209
112210
|
return expression.name;
|
|
112210
112211
|
}
|
|
112211
|
-
function assertListAnnotationPlacement(ownerClass, declaration,
|
|
112212
|
-
|
|
112212
|
+
function assertListAnnotationPlacement(ownerClass, declaration, member) {
|
|
112213
|
+
const loweredKind = member.kind;
|
|
112214
|
+
if (loweredKind === "list") {
|
|
112215
|
+
if (member.overrideOf !== null && hasAnnotation2(declaration.annotations, "index")) {
|
|
112216
|
+
throw new Error(
|
|
112217
|
+
`@index on ${ownerClass.name}.${declaration.name} cannot be declared on an override; indexes are inherited from the declaring List.`
|
|
112218
|
+
);
|
|
112219
|
+
}
|
|
112220
|
+
return;
|
|
112221
|
+
}
|
|
112213
112222
|
if (hasAnnotation2(declaration.annotations, "index")) {
|
|
112214
112223
|
throw new Error(
|
|
112215
112224
|
`@index on ${ownerClass.name}.${declaration.name} is only valid on a List member; this declaration lowers to a ${loweredKind} member.`
|
|
@@ -142451,7 +142460,7 @@ var init_registry2 = __esm({
|
|
|
142451
142460
|
"schema-contract/registry.mjs"() {
|
|
142452
142461
|
"use strict";
|
|
142453
142462
|
PROJECT_SCHEMA_CONTRACT = Object.freeze({
|
|
142454
|
-
cliVersion: "0.60.
|
|
142463
|
+
cliVersion: "0.60.2",
|
|
142455
142464
|
projectFileUploadBatchSize: 32,
|
|
142456
142465
|
documentRecords: {
|
|
142457
142466
|
member: {
|
|
@@ -151103,7 +151112,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
|
|
|
151103
151112
|
async function main() {
|
|
151104
151113
|
const args = parseArgs(process.argv.slice(2));
|
|
151105
151114
|
if (args.command === "--version") {
|
|
151106
|
-
console.log("0.60.
|
|
151115
|
+
console.log("0.60.2");
|
|
151107
151116
|
return;
|
|
151108
151117
|
}
|
|
151109
151118
|
if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
|
package/package.json
CHANGED
|
@@ -101,7 +101,7 @@ wrappers.
|
|
|
101
101
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
102
102
|
|
|
103
103
|
```html
|
|
104
|
-
<!-- reviewed-through-cli: 0.60.
|
|
104
|
+
<!-- reviewed-through-cli: 0.60.2 -->
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
The quoted version above is checked too, so this instruction cannot go stale
|
|
@@ -140,7 +140,10 @@ undeclared static member of such a class is Session.
|
|
|
140
140
|
`@column(member: Field, width: ..., visibility: ..., pin: ..., overflow: ...)`
|
|
141
141
|
are repeatable List annotations. `member:` is a bare field name on the entry
|
|
142
142
|
class. An index accepts a non-localizable string or single-select enum. A column
|
|
143
|
-
may target `__other__` for the default layout of subclass-added fields.
|
|
143
|
+
may target `__other__` for the default layout of subclass-added fields. Declare
|
|
144
|
+
indexes only on the original List member. Overrides inherit its indexes, and
|
|
145
|
+
`@index` on an override is a source error. A List field may override an abstract
|
|
146
|
+
List getter.
|
|
144
147
|
|
|
145
148
|
Use `.EnumCase` only when context fixes one enum type; otherwise write
|
|
146
149
|
`EnumType.Case`. Defaults and settings must be statically analyzable.
|