@neocompose/cli 0.50.5 → 0.50.6
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,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.50.6] - 2026-09-14
|
|
4
|
+
|
|
5
|
+
- Match server preparation when adding world placements by loading their layer links and binding values without expanding unchanged placement siblings.
|
|
6
|
+
|
|
3
7
|
## [0.50.5] - 2026-09-14
|
|
4
8
|
|
|
5
9
|
- Resolve push references, rewrite assigned identities, and cascade scripted member edits without rescanning the project for each changed record. Reuse animation replay indexes and constructor validation across roots. Preserve list membership indexes when an initializer only replaces entry content.
|
package/dist/neo.mjs
CHANGED
|
@@ -95528,6 +95528,16 @@ var init_project_version_relation_sweep_trigger = __esm({
|
|
|
95528
95528
|
});
|
|
95529
95529
|
|
|
95530
95530
|
// ../src/database/project-world-placement-bindings.ts
|
|
95531
|
+
function createdWorldPlacementIds(changes) {
|
|
95532
|
+
if (changes.length === 0) return null;
|
|
95533
|
+
const ids = /* @__PURE__ */ new Set();
|
|
95534
|
+
for (const change of changes) {
|
|
95535
|
+
if (change.recordKind !== "value" || change.operation !== "create" || change.deleted === true || !hasWorldPlacementSidecar(change.nextData))
|
|
95536
|
+
return null;
|
|
95537
|
+
ids.add(change.recordId);
|
|
95538
|
+
}
|
|
95539
|
+
return ids;
|
|
95540
|
+
}
|
|
95531
95541
|
function hasWorldPlacementSidecar(value) {
|
|
95532
95542
|
if (!isPlainRecord3(value) || !isPlainRecord3(value.value)) return false;
|
|
95533
95543
|
const body = value.value;
|
|
@@ -96050,6 +96060,8 @@ function validateWorldContentSidecars(args) {
|
|
|
96050
96060
|
valuesById
|
|
96051
96061
|
});
|
|
96052
96062
|
for (const placementId of placementIds) {
|
|
96063
|
+
if (args.placementIds !== void 0 && !args.placementIds.has(placementId))
|
|
96064
|
+
continue;
|
|
96053
96065
|
const placement = valuesById.get(placementId);
|
|
96054
96066
|
if (placement === void 0) {
|
|
96055
96067
|
throw new Error(
|
|
@@ -96112,6 +96124,8 @@ function validateWorldContentSidecars(args) {
|
|
|
96112
96124
|
placementList,
|
|
96113
96125
|
containedIds
|
|
96114
96126
|
)) {
|
|
96127
|
+
if (args.placementIds !== void 0 && !args.placementIds.has(placementId))
|
|
96128
|
+
continue;
|
|
96115
96129
|
const placement = valuesById.get(placementId);
|
|
96116
96130
|
if (placement === void 0) {
|
|
96117
96131
|
throw new Error(
|
|
@@ -96133,6 +96147,8 @@ function validateWorldContentSidecars(args) {
|
|
|
96133
96147
|
}
|
|
96134
96148
|
}
|
|
96135
96149
|
for (const value of args.values) {
|
|
96150
|
+
if (args.placementIds !== void 0 && !args.placementIds.has(value.id))
|
|
96151
|
+
continue;
|
|
96136
96152
|
const record4 = valueObjectRecord(value);
|
|
96137
96153
|
if (record4 === null) continue;
|
|
96138
96154
|
if (optionalNonEmptyString(record4.assetClassId) !== null && !validatedPlacementIds.has(value.id) && !reachablePlacementIds.has(value.id)) {
|
|
@@ -103977,7 +103993,7 @@ function* prepareServerOwnedSchemaCommitPasses(args) {
|
|
|
103977
103993
|
(change) => change.recordKind === "value"
|
|
103978
103994
|
);
|
|
103979
103995
|
const hasAdditionalContractImpact = (args.additionalImpactedIds?.size ?? 0) > 0 || (args.additionalChangedValueIds?.size ?? 0) > 0;
|
|
103980
|
-
if (!hasSchemaChange && !hasMigrationChange && !hasDialogueSourceChange && !hasValueChange && !hasAdditionalContractImpact) {
|
|
103996
|
+
if (!hasSchemaChange && !hasMigrationChange && !hasDialogueSourceChange && !hasValueChange && !hasAdditionalContractImpact && (args.authoredValueSeeds?.length ?? 0) === 0) {
|
|
103981
103997
|
return authoredChanges;
|
|
103982
103998
|
}
|
|
103983
103999
|
args.passLifecycle?.("start", "neo-script-recompile-targets");
|
|
@@ -108765,6 +108781,7 @@ function assertStagedWorldContentLayerBindingsValid(current, projected, changes)
|
|
|
108765
108781
|
classes,
|
|
108766
108782
|
relations,
|
|
108767
108783
|
values: projected.values,
|
|
108784
|
+
placementIds: createdWorldPlacementIds(changes) ?? void 0,
|
|
108768
108785
|
variants: worldPlacementVariantBindings({
|
|
108769
108786
|
variants: projected.variants ?? [],
|
|
108770
108787
|
variantFolders: projected.variantFolders ?? [],
|
|
@@ -112461,6 +112478,8 @@ function worldKindByClassId(document) {
|
|
|
112461
112478
|
return result;
|
|
112462
112479
|
}
|
|
112463
112480
|
function commitPreparationWorldScopeKinds(args) {
|
|
112481
|
+
if (createdWorldPlacementIds(args.changes) !== null)
|
|
112482
|
+
return /* @__PURE__ */ new Set(["tileGrid", "tileLayerLink", "objectLayerLink"]);
|
|
112464
112483
|
const allKinds = new Set(
|
|
112465
112484
|
[...args.currentDocument.classes, ...args.postDocument.classes].flatMap(
|
|
112466
112485
|
(schemaClass2) => typeof schemaClass2.system?.worldKind === "string" ? [schemaClass2.system.worldKind] : []
|
|
@@ -112612,7 +112631,10 @@ function planCommitPreparationInitialScope(args) {
|
|
|
112612
112631
|
}
|
|
112613
112632
|
if (change.recordKind !== "localized-text") {
|
|
112614
112633
|
for (const valueId of collectStoredRecordIds(change.nextData))
|
|
112615
|
-
rememberExact("value", valueId,
|
|
112634
|
+
rememberExact("value", valueId, change.recordKind !== "value");
|
|
112635
|
+
if (change.recordKind === "value")
|
|
112636
|
+
for (const valueId of collectStoredDescendantRecordIds(change.nextData))
|
|
112637
|
+
rememberExact("value", valueId, true);
|
|
112616
112638
|
}
|
|
112617
112639
|
}
|
|
112618
112640
|
const currentTextsById = new Map(
|
|
@@ -113105,10 +113127,27 @@ function planCommitPreparationLoadedClosureScope(args) {
|
|
|
113105
113127
|
});
|
|
113106
113128
|
}
|
|
113107
113129
|
}
|
|
113130
|
+
if (args.placementCreationScope && record4.recordKind === "value" && record4.data !== null && typeof record4.data === "object") {
|
|
113131
|
+
const body = Reflect.get(record4.data, "value");
|
|
113132
|
+
if (body !== null && typeof body === "object") {
|
|
113133
|
+
for (const key of [
|
|
113134
|
+
"Children",
|
|
113135
|
+
"Tiles",
|
|
113136
|
+
"Objects",
|
|
113137
|
+
"layerOverrideValueId"
|
|
113138
|
+
])
|
|
113139
|
+
if (typeof Reflect.get(body, key) === "string")
|
|
113140
|
+
rememberExact("value", Reflect.get(body, key));
|
|
113141
|
+
}
|
|
113142
|
+
}
|
|
113108
113143
|
if (record4.includeDescendants !== false) {
|
|
113109
113144
|
for (const valueId of collectStoredRecordIds(record4.data)) {
|
|
113110
|
-
|
|
113145
|
+
if (record4.recordKind === "value") rememberExact("value", valueId);
|
|
113146
|
+
else rememberDescendant("value", valueId);
|
|
113111
113147
|
}
|
|
113148
|
+
if (record4.recordKind === "value")
|
|
113149
|
+
for (const valueId of collectStoredDescendantRecordIds(record4.data))
|
|
113150
|
+
rememberDescendant("value", valueId);
|
|
113112
113151
|
}
|
|
113113
113152
|
}
|
|
113114
113153
|
return {
|
|
@@ -113551,6 +113590,14 @@ function projectDocumentRecordsByKey(document) {
|
|
|
113551
113590
|
add("value", document.values ?? []);
|
|
113552
113591
|
return result;
|
|
113553
113592
|
}
|
|
113593
|
+
function collectStoredDescendantRecordIds(value) {
|
|
113594
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
113595
|
+
return collectStoredRecordIds(value);
|
|
113596
|
+
const descendants = [];
|
|
113597
|
+
for (const [key, entry] of Object.entries(value))
|
|
113598
|
+
if (key !== "containerId") descendants.push(entry);
|
|
113599
|
+
return collectStoredRecordIds(descendants);
|
|
113600
|
+
}
|
|
113554
113601
|
function collectStoredRecordIds(value) {
|
|
113555
113602
|
const result = /* @__PURE__ */ new Set();
|
|
113556
113603
|
const visit = (candidate) => {
|
|
@@ -114003,7 +114050,8 @@ function closeInMemoryLoadedScope(args) {
|
|
|
114003
114050
|
records: closureRecords,
|
|
114004
114051
|
rangeLimit: COMMIT_PREPARATION_SCOPE_RANGE_ROW_LIMIT,
|
|
114005
114052
|
postingLimit: COMMIT_PREPARATION_SCOPE_POSTING_ROW_LIMIT,
|
|
114006
|
-
animationSchema
|
|
114053
|
+
animationSchema,
|
|
114054
|
+
placementCreationScope: createdWorldPlacementIds(args.prepared) !== null
|
|
114007
114055
|
});
|
|
114008
114056
|
const answer = readCommitPreparationScopeInMemory({
|
|
114009
114057
|
request,
|
|
@@ -114165,6 +114213,7 @@ var init_server_preparation_preflight = __esm({
|
|
|
114165
114213
|
init_trusted_commit_verification();
|
|
114166
114214
|
init_project_version_schema_commit();
|
|
114167
114215
|
init_project_version_whole_graph_validation();
|
|
114216
|
+
init_project_world_placement_bindings();
|
|
114168
114217
|
init_projectRecordBuckets();
|
|
114169
114218
|
init_compile_ns_property();
|
|
114170
114219
|
init_valueHeadPlacementGraph();
|
|
@@ -133193,7 +133242,7 @@ var init_registry2 = __esm({
|
|
|
133193
133242
|
"schema-contract/registry.mjs"() {
|
|
133194
133243
|
"use strict";
|
|
133195
133244
|
PROJECT_SCHEMA_CONTRACT = Object.freeze({
|
|
133196
|
-
cliVersion: "0.50.
|
|
133245
|
+
cliVersion: "0.50.6",
|
|
133197
133246
|
projectFileUploadBatchSize: 32,
|
|
133198
133247
|
documentRecords: {
|
|
133199
133248
|
member: {
|
|
@@ -140409,7 +140458,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
|
|
|
140409
140458
|
async function main() {
|
|
140410
140459
|
const args = parseArgs(process.argv.slice(2));
|
|
140411
140460
|
if (args.command === "--version") {
|
|
140412
|
-
console.log("0.50.
|
|
140461
|
+
console.log("0.50.6");
|
|
140413
140462
|
return;
|
|
140414
140463
|
}
|
|
140415
140464
|
if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
|
package/package.json
CHANGED
|
@@ -88,7 +88,7 @@ wrappers.
|
|
|
88
88
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
89
89
|
|
|
90
90
|
```html
|
|
91
|
-
<!-- reviewed-through-cli: 0.50.
|
|
91
|
+
<!-- reviewed-through-cli: 0.50.6 -->
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
The quoted version above is checked too, so this instruction cannot go stale
|