@neocompose/cli 0.10.4 → 0.10.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 +33 -0
- package/dist/neo.mjs +98 -38
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.6] - 2026-07-26
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Derive the member id that carries one type argument of a constructed
|
|
8
|
+
generic, instead of reading it off the pulled record. `List<NeoAnimationChildOverride<NeoObjectBase>>`
|
|
9
|
+
binds its entry's parameter to a hidden member with no source syntax of its
|
|
10
|
+
own, so a workspace pushing without `neo/obj/` re-minted it under a
|
|
11
|
+
`__pending__:generic-argument:` id and created a second record. The id is now
|
|
12
|
+
a function of the slot that owns it -- the declaring member or class, plus
|
|
13
|
+
the parameter being bound -- which is the same fix `0.10.0` applied to entry
|
|
14
|
+
members. Argument members that already exist move onto the derivation
|
|
15
|
+
through P39's reconciler.
|
|
16
|
+
|
|
17
|
+
## [0.10.5] - 2026-07-26
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Stop writing a second `@id` above every static and project-root initializer.
|
|
22
|
+
A member owns exactly one value row, so that row's identity is a function of
|
|
23
|
+
the declaration the annotation sat under and never needed to be authored.
|
|
24
|
+
`neo pull` now emits the binding without it, and lowering resolves the row
|
|
25
|
+
itself. An `@id` left in a file is accepted while it agrees with the row the
|
|
26
|
+
member already owns, so existing workspaces keep working until their next
|
|
27
|
+
pull; one that disagrees is rejected rather than pushing a create for a
|
|
28
|
+
second row.
|
|
29
|
+
- Derive the row id for a binding that does not have one yet, instead of
|
|
30
|
+
minting it. A member declared for the first time has no durable id to derive
|
|
31
|
+
from, so it carries a `__pending__:member-value:` token that resolves to the
|
|
32
|
+
derivation once the push assigns the member; the server re-derives it rather
|
|
33
|
+
than accepting the client's answer. Rows that already exist keep the ids
|
|
34
|
+
they were minted with -- P39 moves those onto the derivation.
|
|
35
|
+
|
|
3
36
|
## [0.10.4] - 2026-07-26
|
|
4
37
|
|
|
5
38
|
### Fixed
|
package/dist/neo.mjs
CHANGED
|
@@ -28860,6 +28860,22 @@ var init_entry_member_id = __esm({
|
|
|
28860
28860
|
}
|
|
28861
28861
|
});
|
|
28862
28862
|
|
|
28863
|
+
// ../src/models/members/generic-argument-member-id.ts
|
|
28864
|
+
function derivedGenericArgumentMemberId(parentRecordId, genericParamId) {
|
|
28865
|
+
return v5_default(
|
|
28866
|
+
`${encodeURIComponent(parentRecordId)}:${encodeURIComponent(genericParamId)}`,
|
|
28867
|
+
NEO_GENERIC_ARGUMENT_MEMBER_NAMESPACE
|
|
28868
|
+
);
|
|
28869
|
+
}
|
|
28870
|
+
var NEO_GENERIC_ARGUMENT_MEMBER_NAMESPACE;
|
|
28871
|
+
var init_generic_argument_member_id = __esm({
|
|
28872
|
+
"../src/models/members/generic-argument-member-id.ts"() {
|
|
28873
|
+
"use strict";
|
|
28874
|
+
init_dist_node();
|
|
28875
|
+
NEO_GENERIC_ARGUMENT_MEMBER_NAMESPACE = "6a4e1d38-9b52-5c0f-8d71-3e2a7f4b6c19";
|
|
28876
|
+
}
|
|
28877
|
+
});
|
|
28878
|
+
|
|
28863
28879
|
// src/project-source/lower-members.ts
|
|
28864
28880
|
function lowerClass(context, declaration) {
|
|
28865
28881
|
const id2 = materializedId(declaration, "class", declaration.name);
|
|
@@ -29355,13 +29371,7 @@ function lowerFieldMember(context, ownerClass, declaration, id2, commonInput, ba
|
|
|
29355
29371
|
classId,
|
|
29356
29372
|
...partial ? { partial: true } : {},
|
|
29357
29373
|
schemaKeyOrder: base?.kind === "class" ? base.schemaKeyOrder : null,
|
|
29358
|
-
classArguments: lowerClassArguments(
|
|
29359
|
-
context,
|
|
29360
|
-
ownerClass,
|
|
29361
|
-
id2,
|
|
29362
|
-
fieldType,
|
|
29363
|
-
base
|
|
29364
|
-
)
|
|
29374
|
+
classArguments: lowerClassArguments(context, ownerClass, id2, fieldType)
|
|
29365
29375
|
};
|
|
29366
29376
|
}
|
|
29367
29377
|
throw new Error(
|
|
@@ -29921,7 +29931,7 @@ function genericParameterName(context, genericParamId) {
|
|
|
29921
29931
|
}
|
|
29922
29932
|
return "object";
|
|
29923
29933
|
}
|
|
29924
|
-
function lowerClassArguments(context, ownerClass, ownerMemberId, type
|
|
29934
|
+
function lowerClassArguments(context, ownerClass, ownerMemberId, type) {
|
|
29925
29935
|
const classId = context.classIdsByName.get(type.name);
|
|
29926
29936
|
if (!classId) return {};
|
|
29927
29937
|
const parameters = [
|
|
@@ -29937,12 +29947,7 @@ function lowerClassArguments(context, ownerClass, ownerMemberId, type, base) {
|
|
|
29937
29947
|
result[parameterId] = { kind: "generic", genericParamId: ownerParameter };
|
|
29938
29948
|
continue;
|
|
29939
29949
|
}
|
|
29940
|
-
const
|
|
29941
|
-
const pulledMember = pulledBinding?.kind === "member" ? context.baseMembers.get(pulledBinding.memberId) : void 0;
|
|
29942
|
-
const memberId = pulledBinding?.kind === "member" && pulledMember !== void 0 && JSON.stringify(manifestTypeForMember(context, pulledMember)) === JSON.stringify(argumentType) ? pulledBinding.memberId : pendingDerivedId(
|
|
29943
|
-
"generic-argument",
|
|
29944
|
-
`${ownerMemberId}:${parameterId}`
|
|
29945
|
-
);
|
|
29950
|
+
const memberId = derivedGenericArgumentMemberId(ownerMemberId, parameterId);
|
|
29946
29951
|
result[parameterId] = { kind: "member", memberId };
|
|
29947
29952
|
lowerGenericArgument(
|
|
29948
29953
|
context,
|
|
@@ -29962,7 +29967,6 @@ function lowerExtendsBindings(context, declaration, baseClassId, argumentsValue)
|
|
|
29962
29967
|
];
|
|
29963
29968
|
const result = {};
|
|
29964
29969
|
const declarationId = materializedId(declaration, "class", declaration.name);
|
|
29965
|
-
const pulledClass = context.baseClasses.get(declarationId);
|
|
29966
29970
|
for (const [[parameterName, parameterId], argumentType] of zip(
|
|
29967
29971
|
parameters,
|
|
29968
29972
|
argumentsValue
|
|
@@ -29972,11 +29976,7 @@ function lowerExtendsBindings(context, declaration, baseClassId, argumentsValue)
|
|
|
29972
29976
|
result[parameterId] = { kind: "generic", genericParamId: local };
|
|
29973
29977
|
continue;
|
|
29974
29978
|
}
|
|
29975
|
-
const
|
|
29976
|
-
const memberId = pulledBinding?.kind === "member" ? pulledBinding.memberId : pendingDerivedId(
|
|
29977
|
-
"generic-argument",
|
|
29978
|
-
`${declarationId}:${parameterId}`
|
|
29979
|
-
);
|
|
29979
|
+
const memberId = derivedGenericArgumentMemberId(declarationId, parameterId);
|
|
29980
29980
|
result[parameterId] = { kind: "member", memberId };
|
|
29981
29981
|
lowerGenericArgument(
|
|
29982
29982
|
context,
|
|
@@ -30100,9 +30100,6 @@ function resolveQualifiedMemberId(context, expression) {
|
|
|
30100
30100
|
);
|
|
30101
30101
|
return member === void 0 ? null : materializedId(member, "member", `${sourceClass.name}.${member.name}`);
|
|
30102
30102
|
}
|
|
30103
|
-
function pendingDerivedId(kind, ownerId) {
|
|
30104
|
-
return `__pending__:${kind}:${encodeURIComponent(ownerId)}`;
|
|
30105
|
-
}
|
|
30106
30103
|
function hasAnnotation(annotations, name) {
|
|
30107
30104
|
return annotation(annotations, name) !== void 0;
|
|
30108
30105
|
}
|
|
@@ -30306,6 +30303,7 @@ var init_lower_members = __esm({
|
|
|
30306
30303
|
init_lower_support();
|
|
30307
30304
|
init_ui_action_source();
|
|
30308
30305
|
init_entry_member_id();
|
|
30306
|
+
init_generic_argument_member_id();
|
|
30309
30307
|
UNSET_LIST_COLUMN_WIDTH = -1;
|
|
30310
30308
|
primitiveMemberKinds = /* @__PURE__ */ new Set([
|
|
30311
30309
|
"null",
|
|
@@ -35770,7 +35768,7 @@ function worldAnimationChildOverrideBindingMemberId(classId) {
|
|
|
35770
35768
|
WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAMESPACE
|
|
35771
35769
|
);
|
|
35772
35770
|
}
|
|
35773
|
-
var WORLD_SORTING_LAYERS_MEMBER_ID, WORLD_SORTING_LAYER_ENTRY_MEMBER_ID, WORLD_SORTING_LAYER_NAME_MEMBER_ID, WORLD_LAYER_NAME_MEMBER_ID, WORLD_LAYER_SORTING_LAYER_MEMBER_ID, WORLD_LAYER_SORTING_ORDER_MEMBER_ID, WORLD_SORTING_ORDER_MIN, WORLD_SORTING_ORDER_MAX, WORLD_GRID_CHILDREN_MEMBER_ID, WORLD_GRID_CHILDREN_ENTRY_MEMBER_ID, WORLD_ASSET_NAME_MEMBER_ID, WORLD_TILE_SPRITE_MEMBER_ID, WORLD_OBJECT_BASE_NAME_MEMBER_ID, WORLD_OBJECT_BASE_POSITION_MEMBER_ID, WORLD_OBJECT_BASE_SIZE_MEMBER_ID, WORLD_SPRITE_OBJECT_NAME_MEMBER_ID, WORLD_SPRITE_OBJECT_SPRITE_MEMBER_ID, WORLD_OBJECT_CHILDREN_MEMBER_ID, WORLD_OBJECT_CHILDREN_ENTRY_MEMBER_ID, WORLD_OBJECT_COLLIDER_MEMBER_ID, WORLD_OBJECT_PLACEMENT_TILES_MEMBER_ID, WORLD_OBJECT_PLACEMENT_TILES_ENTRY_MEMBER_ID, WORLD_OBJECT_PLACEMENT_TILE_CELL_MEMBER_ID, WORLD_TILE_INSTANCE_CELL_MEMBER_ID, WORLD_TILE_LAYER_LINK_LAYER_MEMBER_ID, WORLD_TILE_LAYER_LINK_TILES_MEMBER_ID, WORLD_TILE_LAYER_LINK_TILE_ENTRY_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_LAYER_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_OBJECTS_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_OBJECT_ENTRY_MEMBER_ID, WORLD_TILE_SMART_TILE_SCHEMA_KEY, WORLD_TILE_SMART_TILE_MEMBER_ID, WORLD_SMART_TILE_DEFAULT_COLLIDER_SCHEMA_KEY, WORLD_SMART_TILE_DEFAULT_COLLIDER_MEMBER_ID, WORLD_SMART_TILE_RULES_SCHEMA_KEY, WORLD_SMART_TILE_RULES_MEMBER_ID, WORLD_SMART_TILE_RULES_ENTRY_MEMBER_ID, WORLD_SMART_TILE_RULE_NEIGHBORS_SCHEMA_KEY, WORLD_SMART_TILE_RULE_NEIGHBORS_MEMBER_ID, WORLD_SMART_TILE_RULE_NEIGHBORS_ENTRY_MEMBER_ID, WORLD_SMART_TILE_RULE_SPRITES_SCHEMA_KEY, WORLD_SMART_TILE_RULE_SPRITES_MEMBER_ID, WORLD_SMART_TILE_RULE_SPRITES_ENTRY_MEMBER_ID, WORLD_SMART_TILE_RULE_OUTPUT_SCHEMA_KEY, WORLD_SMART_TILE_RULE_OUTPUT_MEMBER_ID, WORLD_SMART_TILE_RULE_COLLIDER_SCHEMA_KEY, WORLD_SMART_TILE_RULE_COLLIDER_MEMBER_ID, WORLD_SMART_TILE_RULE_TRANSFORM_SCHEMA_KEY, WORLD_SMART_TILE_RULE_TRANSFORM_MEMBER_ID, WORLD_SMART_TILE_RULE_MIN_ANIMATION_SPEED_SCHEMA_KEY, WORLD_SMART_TILE_RULE_MIN_ANIMATION_SPEED_MEMBER_ID, WORLD_SMART_TILE_RULE_MAX_ANIMATION_SPEED_SCHEMA_KEY, WORLD_SMART_TILE_RULE_MAX_ANIMATION_SPEED_MEMBER_ID, WORLD_SMART_TILE_NEIGHBOR_CELL_SCHEMA_KEY, WORLD_SMART_TILE_NEIGHBOR_CELL_MEMBER_ID, WORLD_SMART_TILE_NEIGHBOR_CONDITION_SCHEMA_KEY, WORLD_SMART_TILE_NEIGHBOR_CONDITION_MEMBER_ID, WORLD_SMART_TILE_CONDITION_ENUM_ID, WORLD_SMART_TILE_OUTPUT_ENUM_ID, WORLD_SMART_TILE_COLLIDER_ENUM_ID, WORLD_SMART_TILE_TRANSFORM_ENUM_ID, WORLD_SMART_TILE_CONDITION_THIS_OPTION_ID, WORLD_SMART_TILE_OUTPUT_SINGLE_OPTION_ID, WORLD_SMART_TILE_COLLIDER_SPRITE_OPTION_ID, WORLD_SMART_TILE_TRANSFORM_FIXED_OPTION_ID, WORLD_ANIMATION_CLIP_TARGET_PARAM_ID, WORLD_ANIMATION_FRAME_TARGET_PARAM_ID, WORLD_ANIMATION_CHILD_OVERRIDE_ENTRY_PARAM_ID, WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAME, WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAMESPACE, WORLD_ANIMATION_CLIP_FPS_MEMBER_ID, WORLD_ANIMATION_CLIP_DURATION_MEMBER_ID, WORLD_ANIMATION_CLIP_FRAMES_MEMBER_ID, WORLD_ANIMATION_CLIP_FRAMES_ENTRY_MEMBER_ID, WORLD_ANIMATION_CLIP_TRACKS_MEMBER_ID, WORLD_ANIMATION_CLIP_TRACKS_ENTRY_MEMBER_ID, WORLD_ANIMATION_FRAME_INDEX_MEMBER_ID, WORLD_ANIMATION_FRAME_OVERRIDES_MEMBER_ID, WORLD_ANIMATION_FRAME_CHILD_OVERRIDES_MEMBER_ID, WORLD_ANIMATION_FRAME_CHILD_OVERRIDES_ENTRY_MEMBER_ID, WORLD_ANIMATION_FRAME_ACTIONS_MEMBER_ID, WORLD_ANIMATION_FRAME_ACTIONS_ENTRY_MEMBER_ID, WORLD_ANIMATION_CHILD_OVERRIDE_CHILD_MEMBER_ID, WORLD_ANIMATION_CHILD_OVERRIDE_OVERRIDES_MEMBER_ID, WORLD_ANIMATION_CHILD_TRACK_CHILD_MEMBER_ID, WORLD_ANIMATION_CHILD_TRACK_CLIP_KEY_MEMBER_ID, WORLD_ANIMATION_CHILD_TRACK_START_FRAME_MEMBER_ID, WORLD_ANIMATION_OBJECT_BASE_BINDING_MEMBER_ID, WORLD_SYSTEM_CLASS_DEFINITIONS,
|
|
35771
|
+
var WORLD_SORTING_LAYERS_MEMBER_ID, WORLD_SORTING_LAYER_ENTRY_MEMBER_ID, WORLD_SORTING_LAYER_NAME_MEMBER_ID, WORLD_LAYER_NAME_MEMBER_ID, WORLD_LAYER_SORTING_LAYER_MEMBER_ID, WORLD_LAYER_SORTING_ORDER_MEMBER_ID, WORLD_SORTING_ORDER_MIN, WORLD_SORTING_ORDER_MAX, WORLD_GRID_CHILDREN_MEMBER_ID, WORLD_GRID_CHILDREN_ENTRY_MEMBER_ID, WORLD_ASSET_NAME_MEMBER_ID, WORLD_TILE_SPRITE_MEMBER_ID, WORLD_OBJECT_BASE_NAME_MEMBER_ID, WORLD_OBJECT_BASE_POSITION_MEMBER_ID, WORLD_OBJECT_BASE_SIZE_MEMBER_ID, WORLD_SPRITE_OBJECT_NAME_MEMBER_ID, WORLD_SPRITE_OBJECT_SPRITE_MEMBER_ID, WORLD_OBJECT_CHILDREN_MEMBER_ID, WORLD_OBJECT_CHILDREN_ENTRY_MEMBER_ID, WORLD_OBJECT_COLLIDER_MEMBER_ID, WORLD_OBJECT_PLACEMENT_TILES_MEMBER_ID, WORLD_OBJECT_PLACEMENT_TILES_ENTRY_MEMBER_ID, WORLD_OBJECT_PLACEMENT_TILE_CELL_MEMBER_ID, WORLD_TILE_INSTANCE_CELL_MEMBER_ID, WORLD_TILE_LAYER_LINK_LAYER_MEMBER_ID, WORLD_TILE_LAYER_LINK_TILES_MEMBER_ID, WORLD_TILE_LAYER_LINK_TILE_ENTRY_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_LAYER_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_OBJECTS_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_OBJECT_ENTRY_MEMBER_ID, WORLD_TILE_SMART_TILE_SCHEMA_KEY, WORLD_TILE_SMART_TILE_MEMBER_ID, WORLD_SMART_TILE_DEFAULT_COLLIDER_SCHEMA_KEY, WORLD_SMART_TILE_DEFAULT_COLLIDER_MEMBER_ID, WORLD_SMART_TILE_RULES_SCHEMA_KEY, WORLD_SMART_TILE_RULES_MEMBER_ID, WORLD_SMART_TILE_RULES_ENTRY_MEMBER_ID, WORLD_SMART_TILE_RULE_NEIGHBORS_SCHEMA_KEY, WORLD_SMART_TILE_RULE_NEIGHBORS_MEMBER_ID, WORLD_SMART_TILE_RULE_NEIGHBORS_ENTRY_MEMBER_ID, WORLD_SMART_TILE_RULE_SPRITES_SCHEMA_KEY, WORLD_SMART_TILE_RULE_SPRITES_MEMBER_ID, WORLD_SMART_TILE_RULE_SPRITES_ENTRY_MEMBER_ID, WORLD_SMART_TILE_RULE_OUTPUT_SCHEMA_KEY, WORLD_SMART_TILE_RULE_OUTPUT_MEMBER_ID, WORLD_SMART_TILE_RULE_COLLIDER_SCHEMA_KEY, WORLD_SMART_TILE_RULE_COLLIDER_MEMBER_ID, WORLD_SMART_TILE_RULE_TRANSFORM_SCHEMA_KEY, WORLD_SMART_TILE_RULE_TRANSFORM_MEMBER_ID, WORLD_SMART_TILE_RULE_MIN_ANIMATION_SPEED_SCHEMA_KEY, WORLD_SMART_TILE_RULE_MIN_ANIMATION_SPEED_MEMBER_ID, WORLD_SMART_TILE_RULE_MAX_ANIMATION_SPEED_SCHEMA_KEY, WORLD_SMART_TILE_RULE_MAX_ANIMATION_SPEED_MEMBER_ID, WORLD_SMART_TILE_NEIGHBOR_CELL_SCHEMA_KEY, WORLD_SMART_TILE_NEIGHBOR_CELL_MEMBER_ID, WORLD_SMART_TILE_NEIGHBOR_CONDITION_SCHEMA_KEY, WORLD_SMART_TILE_NEIGHBOR_CONDITION_MEMBER_ID, WORLD_SMART_TILE_CONDITION_ENUM_ID, WORLD_SMART_TILE_OUTPUT_ENUM_ID, WORLD_SMART_TILE_COLLIDER_ENUM_ID, WORLD_SMART_TILE_TRANSFORM_ENUM_ID, WORLD_SMART_TILE_CONDITION_THIS_OPTION_ID, WORLD_SMART_TILE_OUTPUT_SINGLE_OPTION_ID, WORLD_SMART_TILE_COLLIDER_SPRITE_OPTION_ID, WORLD_SMART_TILE_TRANSFORM_FIXED_OPTION_ID, WORLD_ANIMATION_CLIP_TARGET_PARAM_ID, WORLD_ANIMATION_FRAME_TARGET_PARAM_ID, WORLD_ANIMATION_CHILD_OVERRIDE_ENTRY_PARAM_ID, WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAME, WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAMESPACE, WORLD_ANIMATION_CLIP_FPS_MEMBER_ID, WORLD_ANIMATION_CLIP_DURATION_MEMBER_ID, WORLD_ANIMATION_CLIP_FRAMES_MEMBER_ID, WORLD_ANIMATION_CLIP_FRAMES_ENTRY_MEMBER_ID, WORLD_ANIMATION_CLIP_TRACKS_MEMBER_ID, WORLD_ANIMATION_CLIP_TRACKS_ENTRY_MEMBER_ID, WORLD_ANIMATION_FRAME_INDEX_MEMBER_ID, WORLD_ANIMATION_FRAME_OVERRIDES_MEMBER_ID, WORLD_ANIMATION_FRAME_CHILD_OVERRIDES_MEMBER_ID, WORLD_ANIMATION_FRAME_CHILD_OVERRIDES_ENTRY_MEMBER_ID, WORLD_ANIMATION_FRAME_ACTIONS_MEMBER_ID, WORLD_ANIMATION_FRAME_ACTIONS_ENTRY_MEMBER_ID, WORLD_ANIMATION_CHILD_OVERRIDE_CHILD_MEMBER_ID, WORLD_ANIMATION_CHILD_OVERRIDE_OVERRIDES_MEMBER_ID, WORLD_ANIMATION_CHILD_TRACK_CHILD_MEMBER_ID, WORLD_ANIMATION_CHILD_TRACK_CLIP_KEY_MEMBER_ID, WORLD_ANIMATION_CHILD_TRACK_START_FRAME_MEMBER_ID, WORLD_ANIMATION_OBJECT_BASE_BINDING_MEMBER_ID, WORLD_SYSTEM_CLASS_DEFINITIONS, WORLD_SYSTEM_ANIMATION_KINDS, WORLD_SYSTEM_ALL_KINDS, WORLD_SYSTEM_SCHEMA_FIELD_SITES_BY_MEMBER_ID;
|
|
35774
35772
|
var init_world_system_classes = __esm({
|
|
35775
35773
|
"../src/models/classes/world-system-classes.ts"() {
|
|
35776
35774
|
"use strict";
|
|
@@ -35779,6 +35777,7 @@ var init_world_system_classes = __esm({
|
|
|
35779
35777
|
init_core();
|
|
35780
35778
|
init_dist_node();
|
|
35781
35779
|
init_entry_member_id();
|
|
35780
|
+
init_generic_argument_member_id();
|
|
35782
35781
|
WORLD_SORTING_LAYERS_MEMBER_ID = "7ec79ef8-a216-407f-8886-9f770bc9895b";
|
|
35783
35782
|
WORLD_SORTING_LAYER_ENTRY_MEMBER_ID = derivedEntryMemberId(
|
|
35784
35783
|
WORLD_SORTING_LAYERS_MEMBER_ID
|
|
@@ -35880,7 +35879,10 @@ var init_world_system_classes = __esm({
|
|
|
35880
35879
|
WORLD_ANIMATION_CHILD_TRACK_CHILD_MEMBER_ID = "29abc85e-2d38-4cef-a200-88915d176d06";
|
|
35881
35880
|
WORLD_ANIMATION_CHILD_TRACK_CLIP_KEY_MEMBER_ID = "2c816624-0281-46d3-9ed5-d20bd43519f4";
|
|
35882
35881
|
WORLD_ANIMATION_CHILD_TRACK_START_FRAME_MEMBER_ID = "5af60692-74a0-45ea-a9ba-747854989b2a";
|
|
35883
|
-
WORLD_ANIMATION_OBJECT_BASE_BINDING_MEMBER_ID =
|
|
35882
|
+
WORLD_ANIMATION_OBJECT_BASE_BINDING_MEMBER_ID = derivedGenericArgumentMemberId(
|
|
35883
|
+
WORLD_ANIMATION_FRAME_CHILD_OVERRIDES_ENTRY_MEMBER_ID,
|
|
35884
|
+
WORLD_ANIMATION_CHILD_OVERRIDE_ENTRY_PARAM_ID
|
|
35885
|
+
);
|
|
35884
35886
|
WORLD_SYSTEM_CLASS_DEFINITIONS = [
|
|
35885
35887
|
{
|
|
35886
35888
|
name: "NeoTileGrid",
|
|
@@ -36090,10 +36092,8 @@ var init_world_system_classes = __esm({
|
|
|
36090
36092
|
{
|
|
36091
36093
|
memberId: "ec5b5d5e-7053-4378-87d1-9cceec30ff1a",
|
|
36092
36094
|
memberKind: "vector2",
|
|
36093
|
-
// Offsets share Unity's BoxCollider2D model: cells from the
|
|
36094
|
-
// object's origin-cell corner, so (0.5, 0.5) centers a 1×1
|
|
36095
|
-
// collider on the origin cell.
|
|
36096
36095
|
defaultValue: { x: 0.5, y: 0.5 },
|
|
36096
|
+
docsText: "Offset from the object's origin-cell corner, measured in cells, matching Unity's BoxCollider2D model. (0.5, 0.5) centers a 1x1 collider on the origin cell.",
|
|
36097
36097
|
name: "Offset",
|
|
36098
36098
|
required: false,
|
|
36099
36099
|
schemaKey: "offset"
|
|
@@ -36667,12 +36667,25 @@ var init_world_system_classes = __esm({
|
|
|
36667
36667
|
worldKind: NeoWorldSystemClassKind.AnimationChildTrack
|
|
36668
36668
|
}
|
|
36669
36669
|
];
|
|
36670
|
-
|
|
36670
|
+
WORLD_SYSTEM_ANIMATION_KINDS = /* @__PURE__ */ new Set([
|
|
36671
36671
|
NeoWorldSystemClassKind.AnimationClip,
|
|
36672
36672
|
NeoWorldSystemClassKind.AnimationFrame,
|
|
36673
36673
|
NeoWorldSystemClassKind.AnimationChildOverride,
|
|
36674
36674
|
NeoWorldSystemClassKind.AnimationChildTrack
|
|
36675
36675
|
]);
|
|
36676
|
+
WORLD_SYSTEM_ALL_KINDS = new Set(
|
|
36677
|
+
WORLD_SYSTEM_CLASS_DEFINITIONS.map((definition2) => definition2.worldKind)
|
|
36678
|
+
);
|
|
36679
|
+
WORLD_SYSTEM_SCHEMA_FIELD_SITES_BY_MEMBER_ID = new Map(
|
|
36680
|
+
WORLD_SYSTEM_CLASS_DEFINITIONS.flatMap(
|
|
36681
|
+
(definition2) => (definition2.schemaFields ?? []).map(
|
|
36682
|
+
(field) => [
|
|
36683
|
+
field.memberId,
|
|
36684
|
+
{ worldKind: definition2.worldKind, schemaKey: field.schemaKey }
|
|
36685
|
+
]
|
|
36686
|
+
)
|
|
36687
|
+
)
|
|
36688
|
+
);
|
|
36676
36689
|
}
|
|
36677
36690
|
});
|
|
36678
36691
|
|
|
@@ -42179,6 +42192,27 @@ var init_dialogue_sources = __esm({
|
|
|
42179
42192
|
}
|
|
42180
42193
|
});
|
|
42181
42194
|
|
|
42195
|
+
// ../src/models/members/member-value-id.ts
|
|
42196
|
+
function derivedMemberValueId(memberId) {
|
|
42197
|
+
return v5_default(memberId, NEO_MEMBER_VALUE_NAMESPACE);
|
|
42198
|
+
}
|
|
42199
|
+
function pendingMemberValueId(pendingMemberId) {
|
|
42200
|
+
return `${PENDING_MEMBER_VALUE_PREFIX}${encodeURIComponent(pendingMemberId)}`;
|
|
42201
|
+
}
|
|
42202
|
+
function pendingMemberValueMemberId(token) {
|
|
42203
|
+
if (!token.startsWith(PENDING_MEMBER_VALUE_PREFIX)) return null;
|
|
42204
|
+
return decodeURIComponent(token.slice(PENDING_MEMBER_VALUE_PREFIX.length));
|
|
42205
|
+
}
|
|
42206
|
+
var NEO_MEMBER_VALUE_NAMESPACE, PENDING_MEMBER_VALUE_PREFIX;
|
|
42207
|
+
var init_member_value_id = __esm({
|
|
42208
|
+
"../src/models/members/member-value-id.ts"() {
|
|
42209
|
+
"use strict";
|
|
42210
|
+
init_dist_node();
|
|
42211
|
+
NEO_MEMBER_VALUE_NAMESPACE = "7f2b9c14-58d6-5a07-b3e1-4c9d0a6f8b25";
|
|
42212
|
+
PENDING_MEMBER_VALUE_PREFIX = "__pending__:member-value:";
|
|
42213
|
+
}
|
|
42214
|
+
});
|
|
42215
|
+
|
|
42182
42216
|
// src/project-source/value-sources.ts
|
|
42183
42217
|
function inferredGenericClassBinding(classId) {
|
|
42184
42218
|
return `${INFERRED_GENERIC_CLASS_PREFIX}${classId}`;
|
|
@@ -42240,7 +42274,10 @@ function emitStoredValueBindingSourcesV4(records2, memberIds, options) {
|
|
|
42240
42274
|
initializers.set(
|
|
42241
42275
|
memberId,
|
|
42242
42276
|
emitValue(context, member, member.valueId, {
|
|
42243
|
-
|
|
42277
|
+
definitionSite: true,
|
|
42278
|
+
// The row is `derivedMemberValueId(memberId)` and the declaration
|
|
42279
|
+
// above it already carries `@id(memberId)`.
|
|
42280
|
+
writeIdentity: false,
|
|
42244
42281
|
targetTyped: options.targetTypedRoot === true,
|
|
42245
42282
|
visited
|
|
42246
42283
|
})
|
|
@@ -42689,8 +42726,8 @@ function lowerStoredBinding(context, binding, memberValueIds, seeds) {
|
|
|
42689
42726
|
preserveReboundValue(context, currentValueId, referenced, binding);
|
|
42690
42727
|
return;
|
|
42691
42728
|
}
|
|
42692
|
-
const
|
|
42693
|
-
|
|
42729
|
+
const valueId = currentValueId ?? memberValueId(binding.memberId);
|
|
42730
|
+
assertAuthoredBindingIdMatches(expression, binding, valueId);
|
|
42694
42731
|
memberValueIds.set(binding.memberId, valueId);
|
|
42695
42732
|
if (currentValueId === valueId) {
|
|
42696
42733
|
const existingReconstructedKeys = new Set(context.reconstructed.keys());
|
|
@@ -42738,6 +42775,16 @@ function lowerStoredBinding(context, binding, memberValueIds, seeds) {
|
|
|
42738
42775
|
const seed = lowerStaticSeed(context, member, expression, binding, valueId);
|
|
42739
42776
|
seeds.set(binding.memberId, { ...seed, valueId });
|
|
42740
42777
|
}
|
|
42778
|
+
function assertAuthoredBindingIdMatches(expression, binding, valueId) {
|
|
42779
|
+
const authoredId = annotatedValue(expression).id;
|
|
42780
|
+
if (authoredId === null || authoredId === valueId) return;
|
|
42781
|
+
throw new Error(
|
|
42782
|
+
`Binding ${binding.label} is annotated with value id ${authoredId}, but the member owns value ${valueId}. Remove the @id \u2014 \`neo pull\` rewrites this file without it.`
|
|
42783
|
+
);
|
|
42784
|
+
}
|
|
42785
|
+
function memberValueId(memberId) {
|
|
42786
|
+
return isPendingId(memberId) ? pendingMemberValueId(memberId) : derivedMemberValueId(memberId);
|
|
42787
|
+
}
|
|
42741
42788
|
function reconstructedOrStateValue(context, valueId) {
|
|
42742
42789
|
return context.reconstructed.get(`value:${valueId}`)?.fileFields ?? valueBase(context, valueId);
|
|
42743
42790
|
}
|
|
@@ -44429,7 +44476,7 @@ function projectMainLocaleFromState(state) {
|
|
|
44429
44476
|
}
|
|
44430
44477
|
function emitValue(context, member, valueId, options) {
|
|
44431
44478
|
const externalSymbol = context.symbolsByValueId.get(valueId);
|
|
44432
|
-
if (!options.
|
|
44479
|
+
if (!options.definitionSite && externalSymbol !== void 0) {
|
|
44433
44480
|
return externalSymbol;
|
|
44434
44481
|
}
|
|
44435
44482
|
if (options.visited.has(valueId)) {
|
|
@@ -44453,7 +44500,7 @@ function emitValue(context, member, valueId, options) {
|
|
|
44453
44500
|
options.targetTyped ?? false,
|
|
44454
44501
|
options.environment
|
|
44455
44502
|
);
|
|
44456
|
-
const prefix = options.
|
|
44503
|
+
const prefix = options.writeIdentity ? `@id(${quote4(valueId)})
|
|
44457
44504
|
` : "";
|
|
44458
44505
|
return `${prefix}${expression}`;
|
|
44459
44506
|
}
|
|
@@ -44537,7 +44584,8 @@ function classValue(context, member, value, visited, targetTyped, outerEnvironme
|
|
|
44537
44584
|
fields.push(
|
|
44538
44585
|
`${key} = ${emitValue(context, emittedChildMember, childId, {
|
|
44539
44586
|
environment,
|
|
44540
|
-
|
|
44587
|
+
definitionSite: !context.symbolsByValueId.has(childId),
|
|
44588
|
+
writeIdentity: !context.symbolsByValueId.has(childId) && context.referencedValueIds.has(childId),
|
|
44541
44589
|
visited
|
|
44542
44590
|
})}`
|
|
44543
44591
|
);
|
|
@@ -44845,7 +44893,8 @@ ${ids.map(
|
|
|
44845
44893
|
(id2) => indentNeoSourceNonEmptyLines(
|
|
44846
44894
|
emitValue(context, entryMember, id2, {
|
|
44847
44895
|
environment,
|
|
44848
|
-
|
|
44896
|
+
definitionSite: context.symbolsByValueId.get(id2) === void 0,
|
|
44897
|
+
writeIdentity: context.symbolsByValueId.get(id2) === void 0,
|
|
44849
44898
|
visited
|
|
44850
44899
|
}),
|
|
44851
44900
|
2
|
|
@@ -44871,7 +44920,8 @@ ${entries.flatMap(
|
|
|
44871
44920
|
indentNeoSourceNonEmptyLines(
|
|
44872
44921
|
`${quote4(key)}: ${emitValue(context, entryMember, id2, {
|
|
44873
44922
|
environment,
|
|
44874
|
-
|
|
44923
|
+
definitionSite: !context.symbolsByValueId.has(id2),
|
|
44924
|
+
writeIdentity: !context.symbolsByValueId.has(id2) && context.referencedValueIds.has(id2),
|
|
44875
44925
|
visited
|
|
44876
44926
|
})}`,
|
|
44877
44927
|
2
|
|
@@ -45088,6 +45138,7 @@ var init_value_sources = __esm({
|
|
|
45088
45138
|
init_lower_members();
|
|
45089
45139
|
init_source_format();
|
|
45090
45140
|
init_world_system_classes();
|
|
45141
|
+
init_member_value_id();
|
|
45091
45142
|
INFERRED_GENERIC_CLASS_PREFIX = "__inferred_class__:";
|
|
45092
45143
|
MEMBER_KIND_DICTIONARY = 5;
|
|
45093
45144
|
MEMBER_KIND_LIST = 6;
|
|
@@ -45217,7 +45268,8 @@ function validateProjectRootEnvelopeV4(state, analysis) {
|
|
|
45217
45268
|
const expression = parseExpression(slot.initializer);
|
|
45218
45269
|
const annotation2 = expression.kind === "annotated" ? expression.annotations.find((entry) => entry.name === "id") : void 0;
|
|
45219
45270
|
const authoredValueId = annotation2?.args[0];
|
|
45220
|
-
if (authoredValueId
|
|
45271
|
+
if (authoredValueId === void 0) return;
|
|
45272
|
+
if (authoredValueId.kind !== "litString" || authoredValueId.value !== memberData.valueId) {
|
|
45221
45273
|
throw new Error(
|
|
45222
45274
|
`Root value root.${expected.name} must retain stable value id ${memberData.valueId}.`
|
|
45223
45275
|
);
|
|
@@ -66552,6 +66604,13 @@ function assignPendingIds(changes, staticValueSeeds, reconstructed3) {
|
|
|
66552
66604
|
const assign = (pendingId2) => {
|
|
66553
66605
|
const existing = assigned.get(pendingId2);
|
|
66554
66606
|
if (existing !== void 0) return existing;
|
|
66607
|
+
const memberLocator = pendingMemberValueMemberId(pendingId2);
|
|
66608
|
+
if (memberLocator !== null) {
|
|
66609
|
+
const memberId = isPendingId(memberLocator) ? assign(memberLocator) : memberLocator;
|
|
66610
|
+
const derived = derivedMemberValueId(memberId);
|
|
66611
|
+
assigned.set(pendingId2, derived);
|
|
66612
|
+
return derived;
|
|
66613
|
+
}
|
|
66555
66614
|
const fresh = randomUUID5();
|
|
66556
66615
|
assigned.set(pendingId2, fresh);
|
|
66557
66616
|
return fresh;
|
|
@@ -68569,6 +68628,7 @@ var init_push = __esm({
|
|
|
68569
68628
|
init_project_documents();
|
|
68570
68629
|
init_workspace_status();
|
|
68571
68630
|
init_lower_support();
|
|
68631
|
+
init_member_value_id();
|
|
68572
68632
|
init_source_diagnostics();
|
|
68573
68633
|
init_projection();
|
|
68574
68634
|
init_project_file_push();
|