@neocompose/cli 0.7.2 → 0.7.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 +7 -0
- package/dist/neo.mjs +30 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
- Document the final relation-only world layer-link contract and keep the
|
|
8
8
|
format-4 Hello World corpus free of the retired value-side binding field.
|
|
9
9
|
|
|
10
|
+
## [0.7.3] - 2026-07-22
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Keep sparse member fields sparse during push-time NeoScript recompilation so
|
|
15
|
+
`isReadOnly: false` does not create phantom changes rejected by trusted lowering.
|
|
16
|
+
|
|
10
17
|
## [0.7.2] - 2026-07-22
|
|
11
18
|
|
|
12
19
|
### Fixed
|
package/dist/neo.mjs
CHANGED
|
@@ -64311,13 +64311,28 @@ function prepareCompleteNeoScriptBodyChanges(workspace, status, schema, options
|
|
|
64311
64311
|
if (typeof compiled.id !== "string") continue;
|
|
64312
64312
|
const explicit = changesById.get(compiled.id);
|
|
64313
64313
|
if (explicit !== void 0) {
|
|
64314
|
-
explicit.nextData
|
|
64314
|
+
if (explicit.nextData === void 0) {
|
|
64315
|
+
throw new Error(
|
|
64316
|
+
`Cannot attach compiled NeoScript for deleted member "${compiled.id}".`
|
|
64317
|
+
);
|
|
64318
|
+
}
|
|
64319
|
+
explicit.nextData = mergeCompiledNeoScriptBody(
|
|
64320
|
+
explicit.nextData,
|
|
64321
|
+
compiled
|
|
64322
|
+
);
|
|
64315
64323
|
continue;
|
|
64316
64324
|
}
|
|
64317
64325
|
if (!completeSweep) continue;
|
|
64318
64326
|
const key = recordStateKey("member", compiled.id);
|
|
64319
64327
|
const base = workspace.state.records[key];
|
|
64320
|
-
if (base === void 0
|
|
64328
|
+
if (base === void 0) continue;
|
|
64329
|
+
if (!isObjectRecord2(base.data)) {
|
|
64330
|
+
throw new Error(
|
|
64331
|
+
`Cannot attach compiled NeoScript for member "${compiled.id}": its base record is not an object.`
|
|
64332
|
+
);
|
|
64333
|
+
}
|
|
64334
|
+
const nextData = mergeCompiledNeoScriptBody(base.data, compiled);
|
|
64335
|
+
if (canonicallyEqual(base.data, nextData)) continue;
|
|
64321
64336
|
const reconstructed3 = status.reconstructed.get(key);
|
|
64322
64337
|
if (reconstructed3 === void 0) {
|
|
64323
64338
|
throw new Error(
|
|
@@ -64329,7 +64344,7 @@ function prepareCompleteNeoScriptBodyChanges(workspace, status, schema, options
|
|
|
64329
64344
|
recordKind: "member",
|
|
64330
64345
|
recordId: compiled.id,
|
|
64331
64346
|
file: reconstructed3.file,
|
|
64332
|
-
nextData
|
|
64347
|
+
nextData,
|
|
64333
64348
|
baseData: base.data,
|
|
64334
64349
|
baseContentHash: base.contentHash,
|
|
64335
64350
|
casBaseHash: base.conflictServerHash ?? base.contentHash
|
|
@@ -64338,6 +64353,18 @@ function prepareCompleteNeoScriptBodyChanges(workspace, status, schema, options
|
|
|
64338
64353
|
changesById.set(compiled.id, cascadeChange);
|
|
64339
64354
|
}
|
|
64340
64355
|
}
|
|
64356
|
+
function mergeCompiledNeoScriptBody(persisted, compiled) {
|
|
64357
|
+
const next = { ...persisted };
|
|
64358
|
+
const fields = compiled.kind === 10 ? ["getter", "setter"] : ["action"];
|
|
64359
|
+
for (const field of fields) {
|
|
64360
|
+
if (compiled[field] === void 0) {
|
|
64361
|
+
delete next[field];
|
|
64362
|
+
} else {
|
|
64363
|
+
next[field] = compiled[field];
|
|
64364
|
+
}
|
|
64365
|
+
}
|
|
64366
|
+
return next;
|
|
64367
|
+
}
|
|
64341
64368
|
function workspaceChangesRequireCompleteBodySweep(changes) {
|
|
64342
64369
|
for (const change of changes) {
|
|
64343
64370
|
if (change.recordKind === "class" || change.recordKind === "enum" || change.recordKind === "interface") {
|