@neocompose/cli 0.75.0 → 0.75.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/dist/neo.mjs CHANGED
@@ -41,7 +41,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
41
41
  mod
42
42
  ));
43
43
 
44
- // ../src/models/members/member-storage.ts
44
+ // ../packages/models/src/members/member-storage.ts
45
45
  function isMemberStorageKind(value) {
46
46
  return value === 0 /* Inherit */ || value === 1 /* Immutable */ || value === 2 /* Save */ || value === 3 /* Session */ || value === 4 /* Writable */ || value === 5 /* User */;
47
47
  }
@@ -103,7 +103,7 @@ function isChildStorageAllowed(context, child2) {
103
103
  }
104
104
  var MemberStorageKind;
105
105
  var init_member_storage = __esm({
106
- "../src/models/members/member-storage.ts"() {
106
+ "../packages/models/src/members/member-storage.ts"() {
107
107
  "use strict";
108
108
  MemberStorageKind = /* @__PURE__ */ ((MemberStorageKind3) => {
109
109
  MemberStorageKind3[MemberStorageKind3["Inherit"] = 0] = "Inherit";
@@ -117,51 +117,50 @@ var init_member_storage = __esm({
117
117
  }
118
118
  });
119
119
 
120
- // ../src/models/members/member-kind-enum.ts
120
+ // ../packages/models/src/members/member-kind-enum.ts
121
121
  var MemberKind;
122
122
  var init_member_kind_enum = __esm({
123
- "../src/models/members/member-kind-enum.ts"() {
124
- "use strict";
125
- MemberKind = /* @__PURE__ */ ((MemberKind13) => {
126
- MemberKind13[MemberKind13["Null"] = 0] = "Null";
127
- MemberKind13[MemberKind13["Bool"] = 1] = "Bool";
128
- MemberKind13[MemberKind13["Int"] = 2] = "Int";
129
- MemberKind13[MemberKind13["String"] = 3] = "String";
130
- MemberKind13[MemberKind13["Float"] = 4] = "Float";
131
- MemberKind13[MemberKind13["Dictionary"] = 5] = "Dictionary";
132
- MemberKind13[MemberKind13["List"] = 6] = "List";
133
- MemberKind13[MemberKind13["Class"] = 7] = "Class";
134
- MemberKind13[MemberKind13["Enum"] = 8] = "Enum";
135
- MemberKind13[MemberKind13["Lookup"] = 9] = "Lookup";
136
- MemberKind13[MemberKind13["NSProperty"] = 10] = "NSProperty";
137
- MemberKind13[MemberKind13["Sprite"] = 11] = "Sprite";
138
- MemberKind13[MemberKind13["Audio"] = 12] = "Audio";
139
- MemberKind13[MemberKind13["Function"] = 13] = "Function";
140
- MemberKind13[MemberKind13["Vector2"] = 14] = "Vector2";
141
- MemberKind13[MemberKind13["Vector2Int"] = 15] = "Vector2Int";
142
- MemberKind13[MemberKind13["Vector3"] = 16] = "Vector3";
143
- MemberKind13[MemberKind13["Vector3Int"] = 17] = "Vector3Int";
144
- MemberKind13[MemberKind13["DialogueLookup"] = 18] = "DialogueLookup";
145
- MemberKind13[MemberKind13["Color"] = 19] = "Color";
146
- MemberKind13[MemberKind13["Decimal"] = 20] = "Decimal";
147
- MemberKind13[MemberKind13["Generic"] = 21] = "Generic";
148
- MemberKind13[MemberKind13["Interface"] = 22] = "Interface";
149
- MemberKind13[MemberKind13["NSFunction"] = 23] = "NSFunction";
150
- MemberKind13[MemberKind13["FunctionRef"] = 24] = "FunctionRef";
151
- MemberKind13[MemberKind13["NSDelegate"] = 25] = "NSDelegate";
152
- MemberKind13[MemberKind13["NSAction"] = 26] = "NSAction";
153
- MemberKind13[MemberKind13["Variant"] = 27] = "Variant";
154
- return MemberKind13;
123
+ "../packages/models/src/members/member-kind-enum.ts"() {
124
+ "use strict";
125
+ MemberKind = /* @__PURE__ */ ((MemberKind12) => {
126
+ MemberKind12[MemberKind12["Null"] = 0] = "Null";
127
+ MemberKind12[MemberKind12["Bool"] = 1] = "Bool";
128
+ MemberKind12[MemberKind12["Int"] = 2] = "Int";
129
+ MemberKind12[MemberKind12["String"] = 3] = "String";
130
+ MemberKind12[MemberKind12["Float"] = 4] = "Float";
131
+ MemberKind12[MemberKind12["Dictionary"] = 5] = "Dictionary";
132
+ MemberKind12[MemberKind12["List"] = 6] = "List";
133
+ MemberKind12[MemberKind12["Class"] = 7] = "Class";
134
+ MemberKind12[MemberKind12["Enum"] = 8] = "Enum";
135
+ MemberKind12[MemberKind12["Lookup"] = 9] = "Lookup";
136
+ MemberKind12[MemberKind12["NSProperty"] = 10] = "NSProperty";
137
+ MemberKind12[MemberKind12["Sprite"] = 11] = "Sprite";
138
+ MemberKind12[MemberKind12["Audio"] = 12] = "Audio";
139
+ MemberKind12[MemberKind12["Function"] = 13] = "Function";
140
+ MemberKind12[MemberKind12["Vector2"] = 14] = "Vector2";
141
+ MemberKind12[MemberKind12["Vector2Int"] = 15] = "Vector2Int";
142
+ MemberKind12[MemberKind12["Vector3"] = 16] = "Vector3";
143
+ MemberKind12[MemberKind12["Vector3Int"] = 17] = "Vector3Int";
144
+ MemberKind12[MemberKind12["DialogueLookup"] = 18] = "DialogueLookup";
145
+ MemberKind12[MemberKind12["Color"] = 19] = "Color";
146
+ MemberKind12[MemberKind12["Decimal"] = 20] = "Decimal";
147
+ MemberKind12[MemberKind12["Generic"] = 21] = "Generic";
148
+ MemberKind12[MemberKind12["Interface"] = 22] = "Interface";
149
+ MemberKind12[MemberKind12["NSFunction"] = 23] = "NSFunction";
150
+ MemberKind12[MemberKind12["FunctionRef"] = 24] = "FunctionRef";
151
+ MemberKind12[MemberKind12["NSDelegate"] = 25] = "NSDelegate";
152
+ MemberKind12[MemberKind12["NSAction"] = 26] = "NSAction";
153
+ MemberKind12[MemberKind12["Variant"] = 27] = "Variant";
154
+ return MemberKind12;
155
155
  })(MemberKind || {});
156
156
  }
157
157
  });
158
158
 
159
- // ../src/models/members/member-kind-taxonomy.ts
159
+ // ../packages/models/src/members/member-kind-taxonomy.ts
160
160
  var STORED, BINDABLE, TAXONOMY, ALL_MEMBER_KINDS, DIRECT_MEMBER_KINDS, hasTrait, isVectorMemberKind, memberKindSupportsStorage, memberKindOwnsStoredValue;
161
161
  var init_member_kind_taxonomy = __esm({
162
- "../src/models/members/member-kind-taxonomy.ts"() {
162
+ "../packages/models/src/members/member-kind-taxonomy.ts"() {
163
163
  "use strict";
164
- init_member_kind_enum();
165
164
  STORED = 1 /* Storage */ | 2 /* OwnsValue */;
166
165
  BINDABLE = STORED | 4 /* Binding */;
167
166
  TAXONOMY = {
@@ -264,7 +263,7 @@ var init_member_kind_taxonomy = __esm({
264
263
  }
265
264
  });
266
265
 
267
- // ../src/models/members/member-subtree-distribution.ts
266
+ // ../packages/models/src/members/member-subtree-distribution.ts
268
267
  function isNeoSubtreeDistributionKind(value) {
269
268
  return value === 0 /* Sparse */ || value === 1 /* Packed */;
270
269
  }
@@ -296,9 +295,8 @@ function memberKindSupportsDistribution(kind) {
296
295
  }
297
296
  var AUTOMATIC_MEMBER_DISTRIBUTION, PACKED;
298
297
  var init_member_subtree_distribution = __esm({
299
- "../src/models/members/member-subtree-distribution.ts"() {
298
+ "../packages/models/src/members/member-subtree-distribution.ts"() {
300
299
  "use strict";
301
- init_member_kind_enum();
302
300
  init_member_kind_taxonomy();
303
301
  AUTOMATIC_MEMBER_DISTRIBUTION = {
304
302
  /** A stored null has no growth axis. */
@@ -372,6 +370,7 @@ var init_member_subtree_distribution = __esm({
372
370
  var regex_default;
373
371
  var init_regex = __esm({
374
372
  "../node_modules/uuid/dist-node/regex.js"() {
373
+ "use strict";
375
374
  regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
376
375
  }
377
376
  });
@@ -383,6 +382,7 @@ function validate(uuid) {
383
382
  var validate_default;
384
383
  var init_validate = __esm({
385
384
  "../node_modules/uuid/dist-node/validate.js"() {
385
+ "use strict";
386
386
  init_regex();
387
387
  validate_default = validate;
388
388
  }
@@ -399,6 +399,7 @@ function parse(uuid) {
399
399
  var parse_default;
400
400
  var init_parse = __esm({
401
401
  "../node_modules/uuid/dist-node/parse.js"() {
402
+ "use strict";
402
403
  init_validate();
403
404
  parse_default = parse;
404
405
  }
@@ -411,6 +412,7 @@ function unsafeStringify(arr, offset = 0) {
411
412
  var byteToHex;
412
413
  var init_stringify = __esm({
413
414
  "../node_modules/uuid/dist-node/stringify.js"() {
415
+ "use strict";
414
416
  byteToHex = [];
415
417
  for (let i2 = 0; i2 < 256; ++i2) {
416
418
  byteToHex.push((i2 + 256).toString(16).slice(1));
@@ -425,6 +427,7 @@ function rng() {
425
427
  var rnds8;
426
428
  var init_rng = __esm({
427
429
  "../node_modules/uuid/dist-node/rng.js"() {
430
+ "use strict";
428
431
  rnds8 = new Uint8Array(16);
429
432
  }
430
433
  });
@@ -468,6 +471,7 @@ function v35(version, hash, value, namespace, buf, offset) {
468
471
  var DNS, URL2;
469
472
  var init_v35 = __esm({
470
473
  "../node_modules/uuid/dist-node/v35.js"() {
474
+ "use strict";
471
475
  init_parse();
472
476
  init_stringify();
473
477
  DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
@@ -505,6 +509,7 @@ function _v4(options, buf, offset) {
505
509
  var v4_default;
506
510
  var init_v4 = __esm({
507
511
  "../node_modules/uuid/dist-node/v4.js"() {
512
+ "use strict";
508
513
  init_rng();
509
514
  init_stringify();
510
515
  v4_default = v4;
@@ -524,6 +529,7 @@ function sha1(bytes) {
524
529
  var sha1_default;
525
530
  var init_sha1 = __esm({
526
531
  "../node_modules/uuid/dist-node/sha1.js"() {
532
+ "use strict";
527
533
  sha1_default = sha1;
528
534
  }
529
535
  });
@@ -535,6 +541,7 @@ function v5(value, namespace, buf, offset) {
535
541
  var v5_default;
536
542
  var init_v5 = __esm({
537
543
  "../node_modules/uuid/dist-node/v5.js"() {
544
+ "use strict";
538
545
  init_sha1();
539
546
  init_v35();
540
547
  v5.DNS = DNS;
@@ -546,13 +553,14 @@ var init_v5 = __esm({
546
553
  // ../node_modules/uuid/dist-node/index.js
547
554
  var init_dist_node = __esm({
548
555
  "../node_modules/uuid/dist-node/index.js"() {
556
+ "use strict";
549
557
  init_parse();
550
558
  init_v4();
551
559
  init_v5();
552
560
  }
553
561
  });
554
562
 
555
- // ../src/models/project/project-root-members.ts
563
+ // ../packages/models/src/project/project-root-members.ts
556
564
  function projectRootMemberIds(project) {
557
565
  return PROJECT_ROOTS.map((root) => project[root.projectField]);
558
566
  }
@@ -582,9 +590,8 @@ function projectRootMembersInDisplayOrder(project) {
582
590
  }
583
591
  var PROJECT_ROOTS;
584
592
  var init_project_root_members = __esm({
585
- "../src/models/project/project-root-members.ts"() {
593
+ "../packages/models/src/project/project-root-members.ts"() {
586
594
  "use strict";
587
- init_member_storage();
588
595
  PROJECT_ROOTS = [
589
596
  {
590
597
  key: "Assets",
@@ -618,7 +625,7 @@ var init_project_root_members = __esm({
618
625
  }
619
626
  });
620
627
 
621
- // ../src/models/core/structural-narrow.ts
628
+ // ../packages/models/src/core/structural-narrow.ts
622
629
  function isObject(value) {
623
630
  if (typeof value !== "object") return false;
624
631
  return value !== null;
@@ -678,19 +685,19 @@ function setOwnField(record7, key, value) {
678
685
  });
679
686
  }
680
687
  var init_structural_narrow = __esm({
681
- "../src/models/core/structural-narrow.ts"() {
688
+ "../packages/models/src/core/structural-narrow.ts"() {
682
689
  "use strict";
683
690
  }
684
691
  });
685
692
 
686
- // ../src/models/core/world-system-kinds.generated.ts
693
+ // ../packages/models/src/core/world-system-kinds.generated.ts
687
694
  function isNeoWorldSystemClassKind(value) {
688
695
  if (typeof value !== "string") return false;
689
696
  return NEO_WORLD_SYSTEM_CLASS_KIND_VALUES.has(value);
690
697
  }
691
698
  var NeoWorldSystemClassKind, NEO_WORLD_SYSTEM_CLASS_KIND_VALUES;
692
699
  var init_world_system_kinds_generated = __esm({
693
- "../src/models/core/world-system-kinds.generated.ts"() {
700
+ "../packages/models/src/core/world-system-kinds.generated.ts"() {
694
701
  "use strict";
695
702
  NeoWorldSystemClassKind = {
696
703
  CellPattern: "cellPattern",
@@ -733,7 +740,7 @@ var init_world_system_kinds_generated = __esm({
733
740
  }
734
741
  });
735
742
 
736
- // ../src/models/core/core-types.ts
743
+ // ../packages/models/src/core/core-types.ts
737
744
  function isWithId(value) {
738
745
  return typeof value?.id === "string";
739
746
  }
@@ -766,7 +773,7 @@ function isWithName(value) {
766
773
  }
767
774
  var SystemDisallowedOperation, SystemProtectionKind;
768
775
  var init_core_types = __esm({
769
- "../src/models/core/core-types.ts"() {
776
+ "../packages/models/src/core/core-types.ts"() {
770
777
  "use strict";
771
778
  init_world_system_kinds_generated();
772
779
  SystemDisallowedOperation = {
@@ -799,7 +806,7 @@ var init_core_types = __esm({
799
806
  }
800
807
  });
801
808
 
802
- // ../src/models/docs-text.ts
809
+ // ../packages/models/src/docs-text.ts
803
810
  function isValidDocsText(value) {
804
811
  if (value === void 0) return true;
805
812
  if (typeof value !== "string") return false;
@@ -807,14 +814,14 @@ function isValidDocsText(value) {
807
814
  }
808
815
  var DOCS_TEXT_MAX_UTF8_BYTES, textEncoder;
809
816
  var init_docs_text = __esm({
810
- "../src/models/docs-text.ts"() {
817
+ "../packages/models/src/docs-text.ts"() {
811
818
  "use strict";
812
819
  DOCS_TEXT_MAX_UTF8_BYTES = 16384;
813
820
  textEncoder = new TextEncoder();
814
821
  }
815
822
  });
816
823
 
817
- // ../src/models/members/float32.ts
824
+ // ../packages/models/src/members/float32.ts
818
825
  function isFloat32(value) {
819
826
  return typeof value === "number" && Number.isFinite(value) && Math.fround(value) === value;
820
827
  }
@@ -850,7 +857,7 @@ function float32Text(value) {
850
857
  return String(value);
851
858
  }
852
859
  var init_float32 = __esm({
853
- "../src/models/members/float32.ts"() {
860
+ "../packages/models/src/members/float32.ts"() {
854
861
  "use strict";
855
862
  }
856
863
  });
@@ -1897,7 +1904,7 @@ var init_project_source_identifiers = __esm({
1897
1904
  }
1898
1905
  });
1899
1906
 
1900
- // ../src/models/project-source-identifiers.ts
1907
+ // ../packages/models/src/project-source-identifiers.ts
1901
1908
  function isValidGeneratedIdentifier(value) {
1902
1909
  return typeof value === "string" && isGeneratedCSharpIdentifier(value) && !isGeneratedCSharpReservedKeyword(value);
1903
1910
  }
@@ -1911,14 +1918,14 @@ function isValidProjectBindingIdentifier(value) {
1911
1918
  return isValidGeneratedIdentifier(value) && isValidNeoProjectBindingIdentifier(value);
1912
1919
  }
1913
1920
  var init_project_source_identifiers2 = __esm({
1914
- "../src/models/project-source-identifiers.ts"() {
1921
+ "../packages/models/src/project-source-identifiers.ts"() {
1915
1922
  "use strict";
1916
1923
  init_generated_csharp_identifiers();
1917
1924
  init_project_source_identifiers();
1918
1925
  }
1919
1926
  });
1920
1927
 
1921
- // ../src/models/schema-identifiers.ts
1928
+ // ../packages/models/src/schema-identifiers.ts
1922
1929
  function isValidSchemaAuthoredIdentifier(value) {
1923
1930
  return isValidProjectSourceIdentifier(value);
1924
1931
  }
@@ -1929,7 +1936,7 @@ function isValidSchemaBindingIdentifier(value) {
1929
1936
  return isValidProjectBindingIdentifier(value);
1930
1937
  }
1931
1938
  var init_schema_identifiers = __esm({
1932
- "../src/models/schema-identifiers.ts"() {
1939
+ "../packages/models/src/schema-identifiers.ts"() {
1933
1940
  "use strict";
1934
1941
  init_project_source_identifiers2();
1935
1942
  }
@@ -1962,7 +1969,7 @@ var init_strict_ir = __esm({
1962
1969
  }
1963
1970
  });
1964
1971
 
1965
- // ../src/models/neoscript/neoscript-compiler-revision.ts
1972
+ // ../packages/models/src/neoscript/neoscript-compiler-revision.ts
1966
1973
  function isAcceptedNeoScriptCompilerRevision(stamp, rollout = ACTIVE_NEOSCRIPT_COMPILER_REVISION_ROLLOUT) {
1967
1974
  if (stamp === NEOSCRIPT_COMPILER_REVISION) return true;
1968
1975
  if (rollout === null) return false;
@@ -2029,7 +2036,7 @@ function isCompiledBodyShape(object2) {
2029
2036
  }
2030
2037
  var ACTIVE_NEOSCRIPT_COMPILER_REVISION_ROLLOUT;
2031
2038
  var init_neoscript_compiler_revision = __esm({
2032
- "../src/models/neoscript/neoscript-compiler-revision.ts"() {
2039
+ "../packages/models/src/neoscript/neoscript-compiler-revision.ts"() {
2033
2040
  "use strict";
2034
2041
  init_strict_ir();
2035
2042
  ACTIVE_NEOSCRIPT_COMPILER_REVISION_ROLLOUT = // <neoscript-compiler-revision-rollout>
@@ -2037,10 +2044,10 @@ var init_neoscript_compiler_revision = __esm({
2037
2044
  }
2038
2045
  });
2039
2046
 
2040
- // ../src/models/neoscript/neoscript-types.ts
2047
+ // ../packages/models/src/neoscript/neoscript-types.ts
2041
2048
  var NS_TYPE_UNKNOWN, NS_TYPE_VOID, NSAssignmentOperator, NSWritability, NSCollectionMutation;
2042
2049
  var init_neoscript_types = __esm({
2043
- "../src/models/neoscript/neoscript-types.ts"() {
2050
+ "../packages/models/src/neoscript/neoscript-types.ts"() {
2044
2051
  "use strict";
2045
2052
  NS_TYPE_UNKNOWN = "Unknown";
2046
2053
  NS_TYPE_VOID = "Void";
@@ -2078,7 +2085,7 @@ var init_neoscript_types = __esm({
2078
2085
  }
2079
2086
  });
2080
2087
 
2081
- // ../src/models/neoscript/neoscript-guards.ts
2088
+ // ../packages/models/src/neoscript/neoscript-guards.ts
2082
2089
  function isNSTypeInfoBase(value) {
2083
2090
  const v = value;
2084
2091
  return typeof v === "object" && v !== null && typeof v.type === "number" && v.type in MemberKind && typeof v.required === "boolean";
@@ -3223,7 +3230,7 @@ function isNSVoidBody(value) {
3223
3230
  }
3224
3231
  var NS_STRING_OPS, NS_DECIMAL_OPS, NS_MATH_OPS;
3225
3232
  var init_neoscript_guards = __esm({
3226
- "../src/models/neoscript/neoscript-guards.ts"() {
3233
+ "../packages/models/src/neoscript/neoscript-guards.ts"() {
3227
3234
  "use strict";
3228
3235
  init_neoscript_compiler_revision();
3229
3236
  init_member_kind_enum();
@@ -3260,7 +3267,7 @@ var init_neoscript_guards = __esm({
3260
3267
  }
3261
3268
  });
3262
3269
 
3263
- // ../src/models/neoscript/parameter-defaults.ts
3270
+ // ../packages/models/src/neoscript/parameter-defaults.ts
3264
3271
  function parameterHasDefault(argument2) {
3265
3272
  return argument2.defaultValue !== void 0;
3266
3273
  }
@@ -3306,12 +3313,12 @@ function callableParameters(overload) {
3306
3313
  }));
3307
3314
  }
3308
3315
  var init_parameter_defaults = __esm({
3309
- "../src/models/neoscript/parameter-defaults.ts"() {
3316
+ "../packages/models/src/neoscript/parameter-defaults.ts"() {
3310
3317
  "use strict";
3311
3318
  }
3312
3319
  });
3313
3320
 
3314
- // ../src/models/neoscript/type-info-equality.ts
3321
+ // ../packages/models/src/neoscript/type-info-equality.ts
3315
3322
  function typeInfosInvariantlyEqual(left, right) {
3316
3323
  if (left.type !== right.type) return false;
3317
3324
  if (left.required !== right.required) return false;
@@ -3362,14 +3369,13 @@ function typeInfosInvariantlyEqual(left, right) {
3362
3369
  return true;
3363
3370
  }
3364
3371
  var init_type_info_equality = __esm({
3365
- "../src/models/neoscript/type-info-equality.ts"() {
3372
+ "../packages/models/src/neoscript/type-info-equality.ts"() {
3366
3373
  "use strict";
3367
- init_member_kind_enum();
3368
3374
  init_neoscript_types();
3369
3375
  }
3370
3376
  });
3371
3377
 
3372
- // ../src/common/collections.ts
3378
+ // ../packages/models/src/common/collections.ts
3373
3379
  function indexById(records3) {
3374
3380
  const indexed = /* @__PURE__ */ new Map();
3375
3381
  for (const record7 of records3) indexed.set(record7.id, record7);
@@ -3394,12 +3400,12 @@ async function forEachConcurrently(items, limit, work) {
3394
3400
  );
3395
3401
  }
3396
3402
  var init_collections = __esm({
3397
- "../src/common/collections.ts"() {
3403
+ "../packages/models/src/common/collections.ts"() {
3398
3404
  "use strict";
3399
3405
  }
3400
3406
  });
3401
3407
 
3402
- // ../src/models/classes/classes.ts
3408
+ // ../packages/models/src/classes/classes.ts
3403
3409
  function isAbstractClass(value) {
3404
3410
  return value?.modifier === 1 /* Abstract */;
3405
3411
  }
@@ -3594,7 +3600,7 @@ function isNeoSchemaClass(value) {
3594
3600
  }
3595
3601
  var RETIRED_CONSTRUCTOR_PROJECTIONS_FIELD;
3596
3602
  var init_classes = __esm({
3597
- "../src/models/classes/classes.ts"() {
3603
+ "../packages/models/src/classes/classes.ts"() {
3598
3604
  "use strict";
3599
3605
  init_collections();
3600
3606
  init_core_types();
@@ -3604,7 +3610,7 @@ var init_classes = __esm({
3604
3610
  }
3605
3611
  });
3606
3612
 
3607
- // ../src/models/members/structured-leaf-fields.ts
3613
+ // ../packages/models/src/members/structured-leaf-fields.ts
3608
3614
  function isStructuredLeafKind(kind) {
3609
3615
  return Object.prototype.hasOwnProperty.call(STRUCTURED_LEAF_FIELDS, kind);
3610
3616
  }
@@ -3689,9 +3695,8 @@ function structuredLeafFieldViolation(type, value) {
3689
3695
  }
3690
3696
  var STRUCTURED_LEAF_FIELDS, STRUCTURED_LEAF_PARTIAL_KEY;
3691
3697
  var init_structured_leaf_fields = __esm({
3692
- "../src/models/members/structured-leaf-fields.ts"() {
3698
+ "../packages/models/src/members/structured-leaf-fields.ts"() {
3693
3699
  "use strict";
3694
- init_member_kind_enum();
3695
3700
  init_float32();
3696
3701
  STRUCTURED_LEAF_FIELDS = {
3697
3702
  [11 /* Sprite */]: [
@@ -3727,7 +3732,7 @@ var init_structured_leaf_fields = __esm({
3727
3732
  }
3728
3733
  });
3729
3734
 
3730
- // ../src/models/members/member-kinds.ts
3735
+ // ../packages/models/src/members/member-kinds.ts
3731
3736
  function isFunctionEffectKind(value) {
3732
3737
  return value === 0 /* None */ || value === 1 /* Auto */;
3733
3738
  }
@@ -4915,7 +4920,7 @@ function isAnyMemberAuthoredOrCompiled(value) {
4915
4920
  }
4916
4921
  var FunctionArgumentReservedNames, ListKind, CHAIN_RESOLVED_OPTIONAL_MEMBER_FIELDS, MEMBER_ACCESS_KINDS, DECIMAL_STRING_PATTERN, DECIMAL_MAX_SIGNIFICANT_DIGITS, DECIMAL_MAX_SCALE;
4917
4922
  var init_member_kinds = __esm({
4918
- "../src/models/members/member-kinds.ts"() {
4923
+ "../packages/models/src/members/member-kinds.ts"() {
4919
4924
  "use strict";
4920
4925
  init_structural_narrow();
4921
4926
  init_core_types();
@@ -4939,10 +4944,10 @@ var init_member_kinds = __esm({
4939
4944
  "root",
4940
4945
  "context"
4941
4946
  ]);
4942
- ListKind = /* @__PURE__ */ ((ListKind3) => {
4943
- ListKind3[ListKind3["Ordered"] = 0] = "Ordered";
4944
- ListKind3[ListKind3["Unordered"] = 1] = "Unordered";
4945
- return ListKind3;
4947
+ ListKind = /* @__PURE__ */ ((ListKind2) => {
4948
+ ListKind2[ListKind2["Ordered"] = 0] = "Ordered";
4949
+ ListKind2[ListKind2["Unordered"] = 1] = "Unordered";
4950
+ return ListKind2;
4946
4951
  })(ListKind || {});
4947
4952
  CHAIN_RESOLVED_OPTIONAL_MEMBER_FIELDS = [
4948
4953
  "storageKey",
@@ -4974,7 +4979,7 @@ var init_member_kinds = __esm({
4974
4979
  }
4975
4980
  });
4976
4981
 
4977
- // ../src/models/project/project-schema-index.ts
4982
+ // ../packages/models/src/project/project-schema-index.ts
4978
4983
  function append(map, key, value) {
4979
4984
  const values = map.get(key);
4980
4985
  if (values === void 0) map.set(key, [value]);
@@ -5031,7 +5036,7 @@ function projectSchemaIndexFor(source, revision = EMPTY_REVISION) {
5031
5036
  }
5032
5037
  var CircularInheritanceError, ProjectSchemaIndex, EMPTY_STRING_SET, EMPTY_REVISION, projectSchemaIndexEpoch, projectSchemaIndexes, ABSENT_COLLECTION;
5033
5038
  var init_project_schema_index = __esm({
5034
- "../src/models/project/project-schema-index.ts"() {
5039
+ "../packages/models/src/project/project-schema-index.ts"() {
5035
5040
  "use strict";
5036
5041
  init_member_kinds();
5037
5042
  CircularInheritanceError = class extends Error {
@@ -5208,7 +5213,7 @@ var init_project_schema_index = __esm({
5208
5213
  }
5209
5214
  });
5210
5215
 
5211
- // ../src/models/classes/inheritance.ts
5216
+ // ../packages/models/src/classes/inheritance.ts
5212
5217
  function indexClasses(classes) {
5213
5218
  return projectSchemaIndexFor({ classes, members: NO_MEMBERS });
5214
5219
  }
@@ -5520,7 +5525,7 @@ function addDependentMemberIds(memberIds, members) {
5520
5525
  }
5521
5526
  var UnresolvedMemberInheritanceError, NO_CLASSES, NO_MEMBERS, resolvedClassSchemas;
5522
5527
  var init_inheritance = __esm({
5523
- "../src/models/classes/inheritance.ts"() {
5528
+ "../packages/models/src/classes/inheritance.ts"() {
5524
5529
  "use strict";
5525
5530
  init_member_kinds();
5526
5531
  init_structural_narrow();
@@ -5543,7 +5548,7 @@ var init_inheritance = __esm({
5543
5548
  }
5544
5549
  });
5545
5550
 
5546
- // ../src/models/system-record-id.ts
5551
+ // ../packages/models/src/system-record-id.ts
5547
5552
  function isSystemRecordId(id2) {
5548
5553
  return id2.startsWith(SYSTEM_RECORD_ID_PREFIX);
5549
5554
  }
@@ -5580,7 +5585,7 @@ function inSystemRecordNamespaceOf(ownerId, derivedId) {
5580
5585
  }
5581
5586
  var SYSTEM_RECORD_ID_PREFIX, RECORD_ID_PATTERN;
5582
5587
  var init_system_record_id = __esm({
5583
- "../src/models/system-record-id.ts"() {
5588
+ "../packages/models/src/system-record-id.ts"() {
5584
5589
  "use strict";
5585
5590
  SYSTEM_RECORD_ID_PREFIX = "system_";
5586
5591
  RECORD_ID_PATTERN = new RegExp(
@@ -5589,15 +5594,11 @@ var init_system_record_id = __esm({
5589
5594
  }
5590
5595
  });
5591
5596
 
5592
- // ../src/models/classes/world-system-classes.generated.ts
5597
+ // ../packages/models/src/classes/world-system-classes.generated.ts
5593
5598
  var WORLD_GRID_CHILDREN_MEMBER_ID, WORLD_GRID_CHILDREN_ENTRY_MEMBER_ID, WORLD_OBJECT_BASE_ENABLED_SCHEMA_KEY, WORLD_OBJECT_CHILDREN_MEMBER_ID, WORLD_OBJECT_CHILDREN_ENTRY_MEMBER_ID, WORLD_OBJECT_COLLIDER_SCHEMA_KEY, WORLD_COLLIDER_SIZE_SCHEMA_KEY, WORLD_COLLIDER_OFFSET_SCHEMA_KEY, WORLD_COLLIDER_IS_TRIGGER_SCHEMA_KEY, WORLD_SORTING_GROUP_SORT_AT_ROOT_SCHEMA_KEY, WORLD_SORTING_GROUP_SORT_POINT_SCHEMA_KEY, WORLD_SPRITE_MASK_INTERACTION_ENUM_ID, WORLD_SPRITE_MASK_INTERACTION_NONE_OPTION_ID, WORLD_SPRITE_MASK_INTERACTION_VISIBLE_INSIDE_OPTION_ID, WORLD_SPRITE_MASK_INTERACTION_VISIBLE_OUTSIDE_OPTION_ID, WORLD_OBJECT_PLACEMENT_TILES_MEMBER_ID, WORLD_OBJECT_PLACEMENT_TILES_ENTRY_MEMBER_ID, WORLD_PLACEMENT_TILE_CELL_MEMBER_ID, WORLD_TILE_CELL_MEMBER_ID, WORLD_TILE_LAYER_LINK_TILES_MEMBER_ID, WORLD_TILE_LAYER_LINK_TILE_ENTRY_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_OBJECTS_MEMBER_ID, WORLD_OBJECT_LAYER_LINK_OBJECT_ENTRY_MEMBER_ID, WORLD_TILE_SMART_TILE_SCHEMA_KEY, WORLD_SMART_TILE_DEFAULT_COLLIDER_SCHEMA_KEY, WORLD_SMART_TILE_RULES_SCHEMA_KEY, WORLD_SMART_TILE_RULE_NEIGHBORS_SCHEMA_KEY, WORLD_SMART_TILE_RULE_SPRITES_SCHEMA_KEY, WORLD_SMART_TILE_RULE_OUTPUT_SCHEMA_KEY, WORLD_SMART_TILE_RULE_COLLIDER_SCHEMA_KEY, WORLD_SMART_TILE_RULE_TRANSFORM_SCHEMA_KEY, WORLD_SMART_TILE_RULE_MIN_ANIMATION_SPEED_SCHEMA_KEY, WORLD_SMART_TILE_RULE_MAX_ANIMATION_SPEED_SCHEMA_KEY, WORLD_SMART_TILE_NEIGHBOR_CELL_SCHEMA_KEY, WORLD_SMART_TILE_NEIGHBOR_CONDITION_SCHEMA_KEY, WORLD_ANIMATION_CLIP_TARGET_PARAM_ID, WORLD_ANIMATION_CHILD_OVERRIDE_ENTRY_PARAM_ID, WORLD_ANIMATION_CLIP_FPS_MEMBER_ID, WORLD_ANIMATION_CLIP_DURATION_MEMBER_ID, WORLD_ANIMATION_CLIP_FRAMES_MEMBER_ID, WORLD_ANIMATION_CLIP_TRACKS_MEMBER_ID, WORLD_ANIMATION_FRAME_BASE_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_CHILD_OVERRIDE_SELECTOR_MEMBER_ID, WORLD_ANIMATION_CHILD_OVERRIDE_REFRESH_MEMBER_ID, WORLD_ANIMATION_CHILD_OVERRIDE_OVERRIDES_MEMBER_ID, WORLD_ANIMATION_TRACK_SELECTOR_MEMBER_ID, WORLD_ANIMATION_TRACK_REFRESH_MEMBER_ID, WORLD_ANIMATION_TRACK_START_FRAME_MEMBER_ID, WORLD_ANIMATION_TRACK_DIRECTION_MEMBER_ID, WORLD_ANIMATION_TRACK_OFFSET_START_INDEX_MEMBER_ID, WORLD_ANIMATION_TRACK_OFFSET_END_INDEX_MEMBER_ID, WORLD_ANIMATION_CHILD_TRACK_CLIP_KEY_MEMBER_ID, WORLD_ANIMATION_SEGMENT_DURATION_MEMBER_ID, WORLD_ANIMATION_SEGMENT_FRAMES_MEMBER_ID, WORLD_ANIMATION_SEGMENT_TRACK_CHILD_PARAM_ID, WORLD_ANIMATION_SEGMENT_TRACK_VALUE_PARAM_ID, WORLD_PLAY_DIRECTION_ENUM_ID, WORLD_SELECTOR_REFRESH_ON_LOAD_OPTION_ID, WORLD_SELECTOR_REFRESH_PER_FRAME_OPTION_ID, WORLD_PLAY_DIRECTION_FORWARD_OPTION_ID, WORLD_PLAY_DIRECTION_REVERSE_OPTION_ID, WORLD_SYSTEM_CLASS_DEFINITIONS;
5594
5599
  var init_world_system_classes_generated = __esm({
5595
- "../src/models/classes/world-system-classes.generated.ts"() {
5600
+ "../packages/models/src/classes/world-system-classes.generated.ts"() {
5596
5601
  "use strict";
5597
- init_member_storage();
5598
- init_member_subtree_distribution();
5599
- init_classes();
5600
- init_member_kinds();
5601
5602
  WORLD_GRID_CHILDREN_MEMBER_ID = "system_98578ba3-a70e-4397-9283-996a898d44c8";
5602
5603
  WORLD_GRID_CHILDREN_ENTRY_MEMBER_ID = "system_c86da069-7ef9-5693-a54b-5c331755fde9";
5603
5604
  WORLD_OBJECT_BASE_ENABLED_SCHEMA_KEY = "Enabled";
@@ -7603,7 +7604,7 @@ var init_world_system_classes_generated = __esm({
7603
7604
  }
7604
7605
  });
7605
7606
 
7606
- // ../src/models/core/deep-clone-plain-data.ts
7607
+ // ../packages/models/src/core/deep-clone-plain-data.ts
7607
7608
  function deepClonePlainData(value) {
7608
7609
  return clonePlain(value, "$", /* @__PURE__ */ new Set());
7609
7610
  }
@@ -7651,13 +7652,13 @@ function clonePlain(value, path, visiting) {
7651
7652
  }
7652
7653
  }
7653
7654
  var init_deep_clone_plain_data = __esm({
7654
- "../src/models/core/deep-clone-plain-data.ts"() {
7655
+ "../packages/models/src/core/deep-clone-plain-data.ts"() {
7655
7656
  "use strict";
7656
7657
  init_structural_narrow();
7657
7658
  }
7658
7659
  });
7659
7660
 
7660
- // ../src/models/classes/world-system-classes.ts
7661
+ // ../packages/models/src/classes/world-system-classes.ts
7661
7662
  function worldAnimationChildOverrideBindingMemberId(classId) {
7662
7663
  return inSystemRecordNamespaceOf(
7663
7664
  classId,
@@ -7708,16 +7709,11 @@ function animationFamilyClassKinds(classes) {
7708
7709
  }
7709
7710
  var WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAME, WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAMESPACE, WORLD_SYSTEM_CLASS_DEFINITION_BY_KIND, WORLD_SYSTEM_ANIMATION_KIND_MARKER, WORLD_SYSTEM_ANIMATION_KINDS, GENERIC_WORLD_SYSTEM_CLASS_KINDS, WORLD_SYSTEM_ALL_KINDS, WORLD_SYSTEM_SCHEMA_FIELD_SITES_BY_MEMBER_ID;
7710
7711
  var init_world_system_classes = __esm({
7711
- "../src/models/classes/world-system-classes.ts"() {
7712
+ "../packages/models/src/classes/world-system-classes.ts"() {
7712
7713
  "use strict";
7713
- init_classes();
7714
- init_member_kinds();
7715
- init_neoscript_types();
7716
- init_core_types();
7717
7714
  init_dist_node();
7718
7715
  init_system_record_id();
7719
7716
  init_world_system_classes_generated();
7720
- init_deep_clone_plain_data();
7721
7717
  init_world_system_classes_generated();
7722
7718
  WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAME = "NeoAnimationChildBinding";
7723
7719
  WORLD_ANIMATION_CHILD_OVERRIDE_BINDING_MEMBER_NAMESPACE = "2048c3bb-8ae5-51cc-a1dc-15178cc41865";
@@ -7756,7 +7752,7 @@ var init_world_system_classes = __esm({
7756
7752
  }
7757
7753
  });
7758
7754
 
7759
- // ../src/models/classes/generics.ts
7755
+ // ../packages/models/src/classes/generics.ts
7760
7756
  function resolveGenericEnv(classId, classes, draft) {
7761
7757
  const index = classIndexFor(classes);
7762
7758
  let byClass = genericBindingsByClassIndex.get(index);
@@ -8564,7 +8560,7 @@ function isAnimationChildOverrideEntrySlot(slotMember, members) {
8564
8560
  }
8565
8561
  var genericBindingsByClassIndex;
8566
8562
  var init_generics = __esm({
8567
- "../src/models/classes/generics.ts"() {
8563
+ "../packages/models/src/classes/generics.ts"() {
8568
8564
  "use strict";
8569
8565
  init_member_kinds();
8570
8566
  init_neoscript_guards();
@@ -8626,7 +8622,7 @@ var init_value_graph = __esm({
8626
8622
  }
8627
8623
  });
8628
8624
 
8629
- // ../src/models/members/instance-provenance.ts
8625
+ // ../packages/models/src/members/instance-provenance.ts
8630
8626
  function replaceLiteralValueClass(value, classId) {
8631
8627
  const next = { ...value, classId };
8632
8628
  for (const field of LITERAL_INSTANCE_IDENTITY_FIELDS) {
@@ -8665,7 +8661,7 @@ function carriesCompleteConstructionRecipe(value) {
8665
8661
  }
8666
8662
  var LITERAL_INSTANCE_IDENTITY_FIELDS;
8667
8663
  var init_instance_provenance = __esm({
8668
- "../src/models/members/instance-provenance.ts"() {
8664
+ "../packages/models/src/members/instance-provenance.ts"() {
8669
8665
  "use strict";
8670
8666
  init_value_graph();
8671
8667
  init_member_kinds();
@@ -8680,7 +8676,7 @@ var init_instance_provenance = __esm({
8680
8676
  }
8681
8677
  });
8682
8678
 
8683
- // ../src/models/members/unordered-list-membership.ts
8679
+ // ../packages/models/src/members/unordered-list-membership.ts
8684
8680
  function buildUnorderedListMembershipIndex(values) {
8685
8681
  const membersByContainerId = /* @__PURE__ */ new Map();
8686
8682
  for (const candidate of values) {
@@ -8738,13 +8734,13 @@ function assertUnorderedListContainerIsPresent(parentValue) {
8738
8734
  }
8739
8735
  }
8740
8736
  var init_unordered_list_membership = __esm({
8741
- "../src/models/members/unordered-list-membership.ts"() {
8737
+ "../packages/models/src/members/unordered-list-membership.ts"() {
8742
8738
  "use strict";
8743
8739
  init_member_kinds();
8744
8740
  }
8745
8741
  });
8746
8742
 
8747
- // ../src/models/members/read-only-members.ts
8743
+ // ../packages/models/src/members/read-only-members.ts
8748
8744
  function concreteDeclaringGenericEnv(memberId, classes) {
8749
8745
  const env = resolveDeclaringClassGenericEnv(memberId, classes);
8750
8746
  const concrete = new Map(
@@ -9352,16 +9348,13 @@ function genericEnvironmentKey(env) {
9352
9348
  }
9353
9349
  var READ_ONLY_SYNTHETIC_VALUE_ID_PREFIX;
9354
9350
  var init_read_only_members = __esm({
9355
- "../src/models/members/read-only-members.ts"() {
9351
+ "../packages/models/src/members/read-only-members.ts"() {
9356
9352
  "use strict";
9357
9353
  init_project_root_members();
9358
9354
  init_inheritance();
9359
- init_classes();
9360
9355
  init_project_schema_index();
9361
9356
  init_generics();
9362
9357
  init_member_kinds();
9363
- init_instance_provenance();
9364
- init_member_storage();
9365
9358
  init_unordered_list_membership();
9366
9359
  init_dist_node();
9367
9360
  init_classes();
@@ -9369,7 +9362,7 @@ var init_read_only_members = __esm({
9369
9362
  }
9370
9363
  });
9371
9364
 
9372
- // ../src/models/members/member-value-id.ts
9365
+ // ../packages/models/src/members/member-value-id.ts
9373
9366
  function derivedMemberValueId(memberId) {
9374
9367
  return inSystemRecordNamespaceOf(
9375
9368
  memberId,
@@ -9425,7 +9418,7 @@ function pendingMemberValueMemberId(token) {
9425
9418
  }
9426
9419
  var NEO_MEMBER_VALUE_NAMESPACE, NEO_VIRTUAL_VALUE_NAMESPACE, virtualNamespaceBytes, virtualIdentityEncoder, SURROGATE_CODE_UNIT, PENDING_VIRTUAL_VALUE_PREFIX, PENDING_MEMBER_VALUE_PREFIX;
9427
9420
  var init_member_value_id = __esm({
9428
- "../src/models/members/member-value-id.ts"() {
9421
+ "../packages/models/src/members/member-value-id.ts"() {
9429
9422
  "use strict";
9430
9423
  init_dist_node();
9431
9424
  init_system_record_id();
@@ -9439,7 +9432,7 @@ var init_member_value_id = __esm({
9439
9432
  }
9440
9433
  });
9441
9434
 
9442
- // ../src/models/members/packed-value-encoding.ts
9435
+ // ../packages/models/src/members/packed-value-encoding.ts
9443
9436
  function isPackedValueEnvelope(value) {
9444
9437
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
9445
9438
  return false;
@@ -9870,7 +9863,7 @@ function registerEdge(edges, ownerId, childId) {
9870
9863
  }
9871
9864
  var PACKED_VALUE_ENTRY_KEY, PackedValueEncodingError, NO_CHILDREN, NO_EDGES, NO_POSITIONS, PACKED_ENTRY_FORBIDDEN_FIELDS;
9872
9865
  var init_packed_value_encoding = __esm({
9873
- "../src/models/members/packed-value-encoding.ts"() {
9866
+ "../packages/models/src/members/packed-value-encoding.ts"() {
9874
9867
  "use strict";
9875
9868
  init_instance_provenance();
9876
9869
  init_member_kinds();
@@ -9893,7 +9886,7 @@ var init_packed_value_encoding = __esm({
9893
9886
  }
9894
9887
  });
9895
9888
 
9896
- // ../src/models/members/member-storage-key.ts
9889
+ // ../packages/models/src/members/member-storage-key.ts
9897
9890
  function normalizeStorageKeyDeclaration(declaration) {
9898
9891
  if (declaration === void 0 || declaration === null) {
9899
9892
  return STORAGE_KEY_INHERIT;
@@ -9928,7 +9921,7 @@ function resolveMapKeyForCreatedValue(args) {
9928
9921
  }
9929
9922
  var MAIN_STORAGE_PARTITION, STORAGE_KEY_INHERIT, STORAGE_KEY_ALL, PARENT_CLASS_TEMPLATE_TOKEN;
9930
9923
  var init_member_storage_key = __esm({
9931
- "../src/models/members/member-storage-key.ts"() {
9924
+ "../packages/models/src/members/member-storage-key.ts"() {
9932
9925
  "use strict";
9933
9926
  MAIN_STORAGE_PARTITION = "main";
9934
9927
  STORAGE_KEY_INHERIT = "inherit";
@@ -9937,7 +9930,7 @@ var init_member_storage_key = __esm({
9937
9930
  }
9938
9931
  });
9939
9932
 
9940
- // ../src/models/members/storage-partitions.ts
9933
+ // ../packages/models/src/members/storage-partitions.ts
9941
9934
  function resolveDeclaredStorageKey(members, member) {
9942
9935
  const resolved = resolveMember(member, members);
9943
9936
  return normalizeStorageKeyDeclaration(resolved.storageKey);
@@ -10046,7 +10039,7 @@ function referencedValueIdCandidates(value) {
10046
10039
  return [];
10047
10040
  }
10048
10041
  var init_storage_partitions = __esm({
10049
- "../src/models/members/storage-partitions.ts"() {
10042
+ "../packages/models/src/members/storage-partitions.ts"() {
10050
10043
  "use strict";
10051
10044
  init_inheritance();
10052
10045
  init_member_storage_key();
@@ -10054,7 +10047,7 @@ var init_storage_partitions = __esm({
10054
10047
  }
10055
10048
  });
10056
10049
 
10057
- // ../src/models/core/auth-ownership-types.ts
10050
+ // ../packages/models/src/core/auth-ownership-types.ts
10058
10051
  function isActorIdentifier(value) {
10059
10052
  if (typeof value !== "object") return false;
10060
10053
  if (value === null) return false;
@@ -10067,7 +10060,7 @@ function isActorKind(value) {
10067
10060
  }
10068
10061
  var ActorKind;
10069
10062
  var init_auth_ownership_types = __esm({
10070
- "../src/models/core/auth-ownership-types.ts"() {
10063
+ "../packages/models/src/core/auth-ownership-types.ts"() {
10071
10064
  "use strict";
10072
10065
  ActorKind = {
10073
10066
  /**
@@ -10086,9 +10079,9 @@ var init_auth_ownership_types = __esm({
10086
10079
  }
10087
10080
  });
10088
10081
 
10089
- // ../src/models/core/index.ts
10082
+ // ../packages/models/src/core/index.ts
10090
10083
  var init_core = __esm({
10091
- "../src/models/core/index.ts"() {
10084
+ "../packages/models/src/core/index.ts"() {
10092
10085
  "use strict";
10093
10086
  init_core_types();
10094
10087
  init_auth_ownership_types();
@@ -10096,7 +10089,7 @@ var init_core = __esm({
10096
10089
  }
10097
10090
  });
10098
10091
 
10099
- // ../src/models/members/member-change-listeners.ts
10092
+ // ../packages/models/src/members/member-change-listeners.ts
10100
10093
  function editChangeListenerSet(explicit, inherited, edit, options = { inheritedComplete: true }) {
10101
10094
  if (edit.kind === "reset") {
10102
10095
  return explicit === void 0 ? { changed: false } : { changed: true, targets: void 0 };
@@ -10206,7 +10199,7 @@ function defaultSourceWithListeners(row, graph) {
10206
10199
  }
10207
10200
  var authoredListenerIndexes, declarationListenerMetadata;
10208
10201
  var init_member_change_listeners = __esm({
10209
- "../src/models/members/member-change-listeners.ts"() {
10202
+ "../packages/models/src/members/member-change-listeners.ts"() {
10210
10203
  "use strict";
10211
10204
  init_core();
10212
10205
  init_member_kinds();
@@ -10215,7 +10208,7 @@ var init_member_change_listeners = __esm({
10215
10208
  }
10216
10209
  });
10217
10210
 
10218
- // ../src/models/constructors/constructors.ts
10211
+ // ../packages/models/src/constructors/constructors.ts
10219
10212
  function hasRejectedConstructorKey(value) {
10220
10213
  return REJECTED_CONSTRUCTOR_KEYS.some((key) => value[key] !== void 0);
10221
10214
  }
@@ -10357,7 +10350,7 @@ function constructorActionParameterId(constructor2, index) {
10357
10350
  }
10358
10351
  var REJECTED_CONSTRUCTOR_KEYS;
10359
10352
  var init_constructors = __esm({
10360
- "../src/models/constructors/constructors.ts"() {
10353
+ "../packages/models/src/constructors/constructors.ts"() {
10361
10354
  "use strict";
10362
10355
  init_core_types();
10363
10356
  init_docs_text();
@@ -10375,15 +10368,15 @@ var init_constructors = __esm({
10375
10368
  }
10376
10369
  });
10377
10370
 
10378
- // ../src/models/constructors/index.ts
10371
+ // ../packages/models/src/constructors/index.ts
10379
10372
  var init_constructors2 = __esm({
10380
- "../src/models/constructors/index.ts"() {
10373
+ "../packages/models/src/constructors/index.ts"() {
10381
10374
  "use strict";
10382
10375
  init_constructors();
10383
10376
  }
10384
10377
  });
10385
10378
 
10386
- // ../src/models/classes/construction-requirements.ts
10379
+ // ../packages/models/src/classes/construction-requirements.ts
10387
10380
  function requiredMembersForConstruction(classId, document, classArguments2) {
10388
10381
  return unsettledMembers(
10389
10382
  classId,
@@ -10617,10 +10610,9 @@ function resolveConstructionTypeArguments(typeArguments, document) {
10617
10610
  return bindings;
10618
10611
  }
10619
10612
  var init_construction_requirements = __esm({
10620
- "../src/models/classes/construction-requirements.ts"() {
10613
+ "../packages/models/src/classes/construction-requirements.ts"() {
10621
10614
  "use strict";
10622
10615
  init_type_info_equality();
10623
- init_classes();
10624
10616
  init_inheritance();
10625
10617
  init_generics();
10626
10618
  init_constructors2();
@@ -10629,7 +10621,7 @@ var init_construction_requirements = __esm({
10629
10621
  }
10630
10622
  });
10631
10623
 
10632
- // ../src/models/unity/unity-import-settings.ts
10624
+ // ../packages/models/src/unity/unity-import-settings.ts
10633
10625
  function buildDefaultUnityTexture2DImportSettings() {
10634
10626
  return {
10635
10627
  type: "texture-2d" /* Texture2D */,
@@ -11274,7 +11266,7 @@ function isUnityAudioSampleRateSetting(value) {
11274
11266
  }
11275
11267
  var UNITY_TEXTURE_2D_OVERRIDE_PATHS, UNITY_AUDIO_CLIP_OVERRIDE_PATHS;
11276
11268
  var init_unity_import_settings = __esm({
11277
- "../src/models/unity/unity-import-settings.ts"() {
11269
+ "../packages/models/src/unity/unity-import-settings.ts"() {
11278
11270
  "use strict";
11279
11271
  init_core_types();
11280
11272
  init_structural_narrow();
@@ -11334,7 +11326,7 @@ var init_unity_import_settings = __esm({
11334
11326
  }
11335
11327
  });
11336
11328
 
11337
- // ../src/models/files/file-types.ts
11329
+ // ../packages/models/src/files/file-types.ts
11338
11330
  function isProjectFileType(value) {
11339
11331
  if (value === "image" /* Image */) return true;
11340
11332
  if (value === "audio" /* Audio */) return true;
@@ -11409,7 +11401,7 @@ function isSha256(value) {
11409
11401
  return isString(value) && /^[a-f0-9]{64}$/u.test(value);
11410
11402
  }
11411
11403
  var init_file_types = __esm({
11412
- "../src/models/files/file-types.ts"() {
11404
+ "../packages/models/src/files/file-types.ts"() {
11413
11405
  "use strict";
11414
11406
  init_core_types();
11415
11407
  init_structural_narrow();
@@ -11417,7 +11409,7 @@ var init_file_types = __esm({
11417
11409
  }
11418
11410
  });
11419
11411
 
11420
- // ../src/models/files/file-member-utils.ts
11412
+ // ../packages/models/src/files/file-member-utils.ts
11421
11413
  function resolveProjectFileTextureSettings(file, textureTemplates) {
11422
11414
  if (file.fileType !== "image" /* Image */) return null;
11423
11415
  const existing = file.unityTextureSettings;
@@ -11490,16 +11482,15 @@ function isPlainObject(value) {
11490
11482
  return !Array.isArray(value);
11491
11483
  }
11492
11484
  var init_file_member_utils = __esm({
11493
- "../src/models/files/file-member-utils.ts"() {
11485
+ "../packages/models/src/files/file-member-utils.ts"() {
11494
11486
  "use strict";
11495
11487
  init_unity_import_settings();
11496
- init_file_types();
11497
11488
  }
11498
11489
  });
11499
11490
 
11500
- // ../src/models/files/index.ts
11491
+ // ../packages/models/src/files/index.ts
11501
11492
  var init_files = __esm({
11502
- "../src/models/files/index.ts"() {
11493
+ "../packages/models/src/files/index.ts"() {
11503
11494
  "use strict";
11504
11495
  init_file_types();
11505
11496
  init_file_member_utils();
@@ -11518,7 +11509,7 @@ var init_pending_id = __esm({
11518
11509
  }
11519
11510
  });
11520
11511
 
11521
- // ../src/models/enum/enum-types.ts
11512
+ // ../packages/models/src/enum/enum-types.ts
11522
11513
  function isValidEnumOptionId(id2) {
11523
11514
  if (typeof id2 !== "string" || id2.length === 0) return false;
11524
11515
  return OPTION_ID_REGEX.test(withoutSystemRecordIdPrefix(id2));
@@ -11596,7 +11587,7 @@ function isProspectiveEnum(value) {
11596
11587
  }
11597
11588
  var OPTION_ID_REGEX;
11598
11589
  var init_enum_types = __esm({
11599
- "../src/models/enum/enum-types.ts"() {
11590
+ "../packages/models/src/enum/enum-types.ts"() {
11600
11591
  "use strict";
11601
11592
  init_pending_id();
11602
11593
  init_core_types();
@@ -11607,15 +11598,15 @@ var init_enum_types = __esm({
11607
11598
  }
11608
11599
  });
11609
11600
 
11610
- // ../src/models/enum/index.ts
11601
+ // ../packages/models/src/enum/index.ts
11611
11602
  var init_enum = __esm({
11612
- "../src/models/enum/index.ts"() {
11603
+ "../packages/models/src/enum/index.ts"() {
11613
11604
  "use strict";
11614
11605
  init_enum_types();
11615
11606
  }
11616
11607
  });
11617
11608
 
11618
- // ../src/models/members/stored-value-shape.ts
11609
+ // ../packages/models/src/members/stored-value-shape.ts
11619
11610
  function entersAnimationOverrideGraph(memberId) {
11620
11611
  return ANIMATION_OVERRIDE_GRAPH_MEMBER_IDS.has(memberId);
11621
11612
  }
@@ -11727,7 +11718,7 @@ function leafIssue(leaf, shape, value) {
11727
11718
  }
11728
11719
  var ANIMATION_OVERRIDE_GRAPH_MEMBER_IDS;
11729
11720
  var init_stored_value_shape = __esm({
11730
- "../src/models/members/stored-value-shape.ts"() {
11721
+ "../packages/models/src/members/stored-value-shape.ts"() {
11731
11722
  "use strict";
11732
11723
  init_world_system_classes();
11733
11724
  init_member_kinds();
@@ -11740,7 +11731,7 @@ var init_stored_value_shape = __esm({
11740
11731
  }
11741
11732
  });
11742
11733
 
11743
- // ../src/models/members/build-default-member-value.ts
11734
+ // ../packages/models/src/members/build-default-member-value.ts
11744
11735
  function descendPositionThroughMember(position, memberId) {
11745
11736
  if (position.insideAnimationOverrideGraph) return position;
11746
11737
  if (!entersAnimationOverrideGraph(memberId)) return position;
@@ -13062,7 +13053,7 @@ function validateAudioMemberValue(document, member, body) {
13062
13053
  }
13063
13054
  var DECLARATION_DEFAULT_POSITION, SPRITE_FILE_ID_KEY;
13064
13055
  var init_build_default_member_value = __esm({
13065
- "../src/models/members/build-default-member-value.ts"() {
13056
+ "../packages/models/src/members/build-default-member-value.ts"() {
13066
13057
  "use strict";
13067
13058
  init_member_value_id();
13068
13059
  init_member_change_listeners();
@@ -13087,16 +13078,14 @@ var init_build_default_member_value = __esm({
13087
13078
  }
13088
13079
  });
13089
13080
 
13090
- // ../src/models/members/enum-reference-sites.ts
13081
+ // ../packages/models/src/members/enum-reference-sites.ts
13091
13082
  var init_enum_reference_sites = __esm({
13092
- "../src/models/members/enum-reference-sites.ts"() {
13083
+ "../packages/models/src/members/enum-reference-sites.ts"() {
13093
13084
  "use strict";
13094
- init_inheritance();
13095
- init_member_kinds();
13096
13085
  }
13097
13086
  });
13098
13087
 
13099
- // ../src/models/members/effective-distribution.ts
13088
+ // ../packages/models/src/members/effective-distribution.ts
13100
13089
  function declaredMemberDistribution(memberId, members) {
13101
13090
  return walkExtendsMemberChain(memberId, members, (a) => {
13102
13091
  const distribution = a.distribution;
@@ -13126,7 +13115,7 @@ function effectiveMemberDistribution(member, members, env) {
13126
13115
  );
13127
13116
  }
13128
13117
  var init_effective_distribution = __esm({
13129
- "../src/models/members/effective-distribution.ts"() {
13118
+ "../packages/models/src/members/effective-distribution.ts"() {
13130
13119
  "use strict";
13131
13120
  init_member_kinds();
13132
13121
  init_member_subtree_distribution();
@@ -13135,7 +13124,7 @@ var init_effective_distribution = __esm({
13135
13124
  }
13136
13125
  });
13137
13126
 
13138
- // ../src/models/members/list-indexes.ts
13127
+ // ../packages/models/src/members/list-indexes.ts
13139
13128
  function validateListIndexDefinitions(ctx, listMember) {
13140
13129
  const errors = [];
13141
13130
  let list;
@@ -13416,11 +13405,10 @@ function dedupeErrors(errors) {
13416
13405
  });
13417
13406
  }
13418
13407
  var init_list_indexes = __esm({
13419
- "../src/models/members/list-indexes.ts"() {
13408
+ "../packages/models/src/members/list-indexes.ts"() {
13420
13409
  "use strict";
13421
13410
  init_member_kinds();
13422
13411
  init_effective_distribution();
13423
- init_member_subtree_distribution();
13424
13412
  init_structural_narrow();
13425
13413
  init_generics();
13426
13414
  init_inheritance();
@@ -13428,7 +13416,7 @@ var init_list_indexes = __esm({
13428
13416
  }
13429
13417
  });
13430
13418
 
13431
- // ../src/models/members/effective-storage.ts
13419
+ // ../packages/models/src/members/effective-storage.ts
13432
13420
  function declaredMemberStorage(memberId, members) {
13433
13421
  const declared = walkExtendsMemberChain(memberId, members, (a) => {
13434
13422
  const storage = a.storage;
@@ -13618,7 +13606,7 @@ function validateDocumentStorage(ctx) {
13618
13606
  }
13619
13607
  var EffectiveStorageResolver;
13620
13608
  var init_effective_storage = __esm({
13621
- "../src/models/members/effective-storage.ts"() {
13609
+ "../packages/models/src/members/effective-storage.ts"() {
13622
13610
  "use strict";
13623
13611
  init_member_storage();
13624
13612
  init_member_kinds();
@@ -13851,7 +13839,7 @@ var init_effective_storage = __esm({
13851
13839
  }
13852
13840
  });
13853
13841
 
13854
- // ../src/models/members/effective-member-docs.ts
13842
+ // ../packages/models/src/members/effective-member-docs.ts
13855
13843
  function effectiveMemberDocsText(memberId, membersById) {
13856
13844
  const visited = /* @__PURE__ */ new Set();
13857
13845
  let currentId = memberId;
@@ -13874,22 +13862,21 @@ function isMembersMap(value) {
13874
13862
  return value instanceof Map;
13875
13863
  }
13876
13864
  var init_effective_member_docs = __esm({
13877
- "../src/models/members/effective-member-docs.ts"() {
13865
+ "../packages/models/src/members/effective-member-docs.ts"() {
13878
13866
  "use strict";
13879
13867
  }
13880
13868
  });
13881
13869
 
13882
- // ../src/models/members/value-responses.ts
13870
+ // ../packages/models/src/members/value-responses.ts
13883
13871
  var init_value_responses = __esm({
13884
- "../src/models/members/value-responses.ts"() {
13872
+ "../packages/models/src/members/value-responses.ts"() {
13885
13873
  "use strict";
13886
- init_instance_provenance();
13887
13874
  }
13888
13875
  });
13889
13876
 
13890
- // ../src/models/members/index.ts
13877
+ // ../packages/models/src/members/index.ts
13891
13878
  var init_members = __esm({
13892
- "../src/models/members/index.ts"() {
13879
+ "../packages/models/src/members/index.ts"() {
13893
13880
  "use strict";
13894
13881
  init_member_storage();
13895
13882
  init_member_subtree_distribution();
@@ -13910,7 +13897,7 @@ var init_members = __esm({
13910
13897
  }
13911
13898
  });
13912
13899
 
13913
- // ../src/runtime/neoscript/debug.ts
13900
+ // ../packages/neoscript-runtime/src/neoscript/debug.ts
13914
13901
  function snapshotNeoScriptFrames(state) {
13915
13902
  const frames = state.frames.slice(-64).reverse().map((frame) => Object.freeze({ ...frame }));
13916
13903
  if (state.frames.length > 64)
@@ -13974,9 +13961,8 @@ function formatDebugFloat(value) {
13974
13961
  return `${sign}${digits.slice(0, point)}.${digits.slice(point)}`;
13975
13962
  }
13976
13963
  var init_debug = __esm({
13977
- "../src/runtime/neoscript/debug.ts"() {
13964
+ "../packages/neoscript-runtime/src/neoscript/debug.ts"() {
13978
13965
  "use strict";
13979
- init_members();
13980
13966
  }
13981
13967
  });
13982
13968
 
@@ -14053,6 +14039,30 @@ var init_source_text = __esm({
14053
14039
  });
14054
14040
 
14055
14041
  // ../packages/neoscript-language/src/lexer.ts
14042
+ function neoScriptLiteralContinuationLines(source) {
14043
+ const lines = /* @__PURE__ */ new Set();
14044
+ if (!source.includes("\n")) return lines;
14045
+ for (const token of lex(source).roots) {
14046
+ if (token.kind !== "string") continue;
14047
+ for (let line = token.range.start.line + 1; line <= token.range.end.line; line++)
14048
+ lines.add(line);
14049
+ }
14050
+ return lines;
14051
+ }
14052
+ function sameNeoScriptTokens(left, right, comments = "all") {
14053
+ if (left === right) return true;
14054
+ const a = lex(left);
14055
+ const b = lex(right);
14056
+ if (a.diagnostics.length > 0 || b.diagnostics.length > 0) return false;
14057
+ const significant = (token) => comments === "all" || token.kind !== "comment" || token.raw.startsWith("///") || token.raw.startsWith("/*");
14058
+ const spelling = (token) => token.kind === "comment" ? token.raw.trimEnd().split(/\r\n|\r|\n/u).map((line) => line.trim()).join("\n") : token.raw;
14059
+ const leftTokens = a.roots.filter(significant);
14060
+ const rightTokens = b.roots.filter(significant);
14061
+ return leftTokens.length === rightTokens.length && leftTokens.every((token, index) => {
14062
+ const other = rightTokens[index];
14063
+ return other !== void 0 && token.kind === other.kind && spelling(token) === spelling(other);
14064
+ });
14065
+ }
14056
14066
  function lex(sourceValue) {
14057
14067
  const source = new SourceText(sourceValue);
14058
14068
  const tokens = [];
@@ -20200,22 +20210,23 @@ var init_syntax = __esm({
20200
20210
  });
20201
20211
 
20202
20212
  // ../packages/neoscript-language/src/formatter.ts
20213
+ function neoScriptIndentUnit(options = {}) {
20214
+ return options.insertSpaces === false ? " " : " ".repeat(options.tabSize ?? DEFAULT_NEO_SCRIPT_FORMAT_OPTIONS.tabSize);
20215
+ }
20203
20216
  function formatNeoScript(text, options = {}) {
20204
- const tabSize = options.tabSize ?? 2;
20205
- const indentUnit = options.insertSpaces === false ? " " : " ".repeat(tabSize);
20217
+ const indentUnit = neoScriptIndentUnit(options);
20206
20218
  if (options.kind === "definition") text = hoistLocalValueIds(text);
20207
- const lines = text.replace(/\r\n/g, "\n").split("\n");
20208
- const normalizedText = lines.join("\n");
20219
+ const originalEndings = text.match(/\r\n|\r|\n/g) ?? [];
20220
+ const lines = text.split(/\r\n|\r|\n/);
20221
+ const normalizedText = text.replace(/\r(?!\n)/g, "\n");
20209
20222
  const syntax = analyzeNeoScriptSyntax(
20210
20223
  normalizedText,
20211
20224
  options.kind === "definition" ? "function" : options.kind ?? inferDocumentKind(text)
20212
20225
  );
20213
- const splitCatchText = splitSameLineCatchClauses(
20214
- normalizedText,
20215
- syntax.lexed.tokens
20216
- );
20217
- if (splitCatchText !== normalizedText)
20218
- return formatNeoScript(splitCatchText, options);
20226
+ const splitCatchText = splitSameLineCatchClauses(text, syntax.lexed.tokens);
20227
+ if (splitCatchText !== text) return formatNeoScript(splitCatchText, options);
20228
+ const literalContinuations = /* @__PURE__ */ new Set();
20229
+ const literalNewlines = /* @__PURE__ */ new Set();
20219
20230
  const delimiterTokensByLine = /* @__PURE__ */ new Map();
20220
20231
  const tokensByLine = /* @__PURE__ */ new Map();
20221
20232
  const lambdaBraceOffsets = /* @__PURE__ */ new Set();
@@ -20225,6 +20236,12 @@ function formatNeoScript(text, options = {}) {
20225
20236
  let annotationDepth = 0;
20226
20237
  let previousSignificantToken = null;
20227
20238
  for (const token of syntax.lexed.tokens) {
20239
+ if (token.kind === "string") {
20240
+ for (let line = token.range.start.line; line < token.range.end.line; line++) {
20241
+ literalNewlines.add(line);
20242
+ literalContinuations.add(line + 1);
20243
+ }
20244
+ }
20228
20245
  if (token.kind !== "comment" && token.kind !== "eof") {
20229
20246
  if (token.kind === "punctuation" && token.text === "{" && previousSignificantToken?.kind === "operator" && previousSignificantToken.text === "=>") {
20230
20247
  lambdaBraceOffsets.add(token.start);
@@ -20261,10 +20278,12 @@ function formatNeoScript(text, options = {}) {
20261
20278
  let preceding;
20262
20279
  for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
20263
20280
  const rawLine = lines[lineIndex] ?? "";
20264
- const trimmedEnd = rawLine.replace(/[ \t]+$/g, "");
20281
+ const trimmedEnd = options.trimTrailingWhitespace === false || literalNewlines.has(lineIndex) ? rawLine : rawLine.replace(/[ \t]+$/g, "");
20265
20282
  const content = trimmedEnd.trimStart();
20266
20283
  if (content.length === 0) {
20267
- formatted.push("");
20284
+ formatted.push(
20285
+ options.trimTrailingWhitespace === false || literalContinuations.has(lineIndex) || literalNewlines.has(lineIndex) ? rawLine : ""
20286
+ );
20268
20287
  continue;
20269
20288
  }
20270
20289
  const firstContentCharacter = trimmedEnd.length - content.length;
@@ -20289,8 +20308,10 @@ function formatNeoScript(text, options = {}) {
20289
20308
  if (leadingClosers.length === 0 && (first !== void 0 && continuationOperator(first) && preceding !== void 0 && canEndExpression(preceding) || preceding !== void 0 && continuationOperator(preceding)))
20290
20309
  continuations.add(leadingState.at(-1)?.openingOffset ?? -1);
20291
20310
  const lineDepth = depth + sectionDepth + continuations.size;
20292
- const normalized = normalizeControlHeaderSpacing(content);
20293
- formatted.push(`${indentUnit.repeat(lineDepth)}${normalized}`);
20311
+ const normalized = first?.range.start.character === firstContentCharacter ? normalizeControlHeaderSpacing(content) : content;
20312
+ formatted.push(
20313
+ literalContinuations.has(lineIndex) ? trimmedEnd : `${indentUnit.repeat(lineDepth)}${normalized}`
20314
+ );
20294
20315
  for (const token of lineTokens) {
20295
20316
  applyDelimiterToken(delimiters, token, lambdaBraceOffsets);
20296
20317
  }
@@ -20303,11 +20324,16 @@ function formatNeoScript(text, options = {}) {
20303
20324
  }
20304
20325
  }
20305
20326
  }
20306
- while (formatted.length > 1 && formatted[formatted.length - 1] === "") {
20327
+ while (formatted.length > 1 && formatted[formatted.length - 1] === "" && !literalContinuations.has(formatted.length - 1)) {
20307
20328
  formatted.pop();
20308
20329
  }
20309
- const newline = options.finalNewline === false ? "" : "\n";
20310
- return formatted.join("\n") + newline;
20330
+ const eol = options.endOfLine ?? DEFAULT_NEO_SCRIPT_FORMAT_OPTIONS.endOfLine;
20331
+ const newline = options.finalNewline === false ? "" : eol;
20332
+ return formatted.map((line, index) => {
20333
+ if (index === formatted.length - 1) return line;
20334
+ const ending = literalNewlines.has(index) ? originalEndings[index] ?? eol : eol;
20335
+ return line + ending;
20336
+ }).join("") + newline;
20311
20337
  }
20312
20338
  function formattingEdit(text, options) {
20313
20339
  const formatted = formatNeoScript(text, options);
@@ -20324,10 +20350,7 @@ function normalizeControlHeaderSpacing(content) {
20324
20350
  /^}\s*while\s*\(/,
20325
20351
  "} while ("
20326
20352
  );
20327
- const withCatchFilterSpace = withDoWhileSpace.replace(
20328
- /\)\s*when\s*\(/,
20329
- ") when ("
20330
- );
20353
+ const withCatchFilterSpace = withDoWhileSpace.startsWith("catch") ? withDoWhileSpace.replace(/\)\s*when\s*\(/, ") when (") : withDoWhileSpace;
20331
20354
  if (!withCatchFilterSpace.startsWith("foreach ("))
20332
20355
  return withCatchFilterSpace;
20333
20356
  return withCatchFilterSpace.replace(/\s+in\s+/, " in ");
@@ -20581,6 +20604,7 @@ ${text.slice(start, valueStart).trimEnd()} `
20581
20604
  function canEndExpression(token) {
20582
20605
  return token.kind === "identifier" || token.kind === "integer" || token.kind === "float" || token.kind === "string" || [")", "]", "}", "true", "false", "null"].includes(token.text);
20583
20606
  }
20607
+ var DEFAULT_NEO_SCRIPT_FORMAT_OPTIONS;
20584
20608
  var init_formatter = __esm({
20585
20609
  "../packages/neoscript-language/src/formatter.ts"() {
20586
20610
  "use strict";
@@ -20589,6 +20613,12 @@ var init_formatter = __esm({
20589
20613
  init_executable_parser();
20590
20614
  init_source_text();
20591
20615
  init_syntax();
20616
+ DEFAULT_NEO_SCRIPT_FORMAT_OPTIONS = {
20617
+ tabSize: 2,
20618
+ insertSpaces: true,
20619
+ finalNewline: true,
20620
+ endOfLine: "\n"
20621
+ };
20592
20622
  }
20593
20623
  });
20594
20624
 
@@ -22844,7 +22874,6 @@ function visitPointerPatternBindings(pointer, visit) {
22844
22874
  var init_neoscript_pattern_bindings = __esm({
22845
22875
  "../src/models/neoscript/neoscript-pattern-bindings.ts"() {
22846
22876
  "use strict";
22847
- init_neoscript_types();
22848
22877
  }
22849
22878
  });
22850
22879
 
@@ -22901,7 +22930,7 @@ var init_cell_pattern = __esm({
22901
22930
  }
22902
22931
  });
22903
22932
 
22904
- // ../src/models/variants/variant-member.ts
22933
+ // ../packages/models/src/variants/variant-member.ts
22905
22934
  function neoVariantSystemClass(classes, lookup = false) {
22906
22935
  const declared = classes.find(
22907
22936
  (item) => item.system?.worldKind === (lookup ? NeoWorldSystemClassKind.LookupVariant : NeoWorldSystemClassKind.Variant)
@@ -22941,15 +22970,14 @@ function variantMemberDeclaredTypeInfo(member, systemClass) {
22941
22970
  };
22942
22971
  }
22943
22972
  var init_variant_member = __esm({
22944
- "../src/models/variants/variant-member.ts"() {
22973
+ "../packages/models/src/variants/variant-member.ts"() {
22945
22974
  "use strict";
22946
22975
  init_core_types();
22947
- init_member_kind_enum();
22948
22976
  init_member_kinds();
22949
22977
  }
22950
22978
  });
22951
22979
 
22952
- // ../src/models/interfaces/interface-graph.ts
22980
+ // ../packages/models/src/interfaces/interface-graph.ts
22953
22981
  function resolveInterfaceClosure(interfaceId, interfaces) {
22954
22982
  const byId = new Map(
22955
22983
  interfaces.map((neoInterface) => [neoInterface.id, neoInterface])
@@ -23002,7 +23030,7 @@ function classImplementsInterface(classId, interfaceId, classes, interfaces) {
23002
23030
  }
23003
23031
  var CircularInterfaceExtensionError;
23004
23032
  var init_interface_graph = __esm({
23005
- "../src/models/interfaces/interface-graph.ts"() {
23033
+ "../packages/models/src/interfaces/interface-graph.ts"() {
23006
23034
  "use strict";
23007
23035
  init_inheritance();
23008
23036
  CircularInterfaceExtensionError = class extends Error {
@@ -23020,7 +23048,7 @@ var init_interface_graph = __esm({
23020
23048
  }
23021
23049
  });
23022
23050
 
23023
- // ../src/models/neoscript/type-info-compatibility.ts
23051
+ // ../packages/models/src/neoscript/type-info-compatibility.ts
23024
23052
  function isTypeInfoAssignable(from, to, context) {
23025
23053
  if (to.type === NS_TYPE_UNKNOWN) return true;
23026
23054
  if (from.type === NS_TYPE_UNKNOWN) return false;
@@ -23057,9 +23085,8 @@ function isTypeInfoAssignable(from, to, context) {
23057
23085
  return typeInfosInvariantlyEqual(normalizedFrom, to);
23058
23086
  }
23059
23087
  var init_type_info_compatibility = __esm({
23060
- "../src/models/neoscript/type-info-compatibility.ts"() {
23088
+ "../packages/models/src/neoscript/type-info-compatibility.ts"() {
23061
23089
  "use strict";
23062
- init_member_kind_enum();
23063
23090
  init_type_info_equality();
23064
23091
  init_inheritance();
23065
23092
  init_interface_graph();
@@ -23067,9 +23094,9 @@ var init_type_info_compatibility = __esm({
23067
23094
  }
23068
23095
  });
23069
23096
 
23070
- // ../src/models/neoscript/index.ts
23097
+ // ../packages/models/src/neoscript/index.ts
23071
23098
  var init_neoscript = __esm({
23072
- "../src/models/neoscript/index.ts"() {
23099
+ "../packages/models/src/neoscript/index.ts"() {
23073
23100
  "use strict";
23074
23101
  init_neoscript_types();
23075
23102
  init_neoscript_guards();
@@ -25492,7 +25519,7 @@ var init_unity_member_signatures = __esm({
25492
25519
  }
25493
25520
  });
25494
25521
 
25495
- // ../src/models/project/project-types.ts
25522
+ // ../packages/models/src/project/project-types.ts
25496
25523
  function isProject(value) {
25497
25524
  const v = value;
25498
25525
  return typeof v?.name === "string" && typeof v?.id === "string" && isProjectOwner(v.owner) && isActorIdentifier(v.author) && typeof v?.createdAt === "number" && typeof v?.updatedAt === "number" && typeof v?.rootAssetsMemberId === "string" && typeof v?.rootSaveFileMemberId === "string" && typeof v?.rootSessionMemberId === "string" && typeof v?.rootUserMemberId === "string" && isOptionalNullableString2(v.defaultPriorityGroupId) && isOptionalNullableString2(v.defaultTextureTemplateId) && isOptionalNullableString2(v.defaultAudioClipTemplateId) && isProjectExportSettingsOrEmpty(v.exportSettings);
@@ -25521,13 +25548,13 @@ function isUnityExportSettingsOrEmpty(value) {
25521
25548
  return (namespaceValue === void 0 || namespaceValue === null || typeof namespaceValue === "string") && (singletonValue === void 0 || singletonValue === null || typeof singletonValue === "boolean");
25522
25549
  }
25523
25550
  var init_project_types = __esm({
25524
- "../src/models/project/project-types.ts"() {
25551
+ "../packages/models/src/project/project-types.ts"() {
25525
25552
  "use strict";
25526
25553
  init_auth_ownership_types();
25527
25554
  }
25528
25555
  });
25529
25556
 
25530
- // ../src/models/project/project-version-types.ts
25557
+ // ../packages/models/src/project/project-version-types.ts
25531
25558
  function isProjectVersionBumpKind(value) {
25532
25559
  if (value === ProjectVersionBumpKind.Patch) return true;
25533
25560
  if (value === ProjectVersionBumpKind.Minor) return true;
@@ -25760,10 +25787,9 @@ function isStringArray(value) {
25760
25787
  }
25761
25788
  var ProjectVersionBumpKind, ProjectRecordKind, ProjectVersionTransactionOperation, ProjectVersionRecordOperation;
25762
25789
  var init_project_version_types = __esm({
25763
- "../src/models/project/project-version-types.ts"() {
25790
+ "../packages/models/src/project/project-version-types.ts"() {
25764
25791
  "use strict";
25765
25792
  init_core_types();
25766
- init_auth_ownership_types();
25767
25793
  init_structural_narrow();
25768
25794
  ProjectVersionBumpKind = {
25769
25795
  Patch: "patch",
@@ -25816,7 +25842,7 @@ var init_project_version_types = __esm({
25816
25842
  }
25817
25843
  });
25818
25844
 
25819
- // ../src/models/project/project-migration-types.ts
25845
+ // ../packages/models/src/project/project-migration-types.ts
25820
25846
  function isProjectMigration(value) {
25821
25847
  if (typeof value !== "object" || value === null) return false;
25822
25848
  const migration = value;
@@ -25835,13 +25861,13 @@ function isProjectMigration(value) {
25835
25861
  return isNumber(migration.updatedAt);
25836
25862
  }
25837
25863
  var init_project_migration_types = __esm({
25838
- "../src/models/project/project-migration-types.ts"() {
25864
+ "../packages/models/src/project/project-migration-types.ts"() {
25839
25865
  "use strict";
25840
25866
  init_structural_narrow();
25841
25867
  }
25842
25868
  });
25843
25869
 
25844
- // ../src/models/project/internal-record-relations.ts
25870
+ // ../packages/models/src/project/internal-record-relations.ts
25845
25871
  function collectProjectDocumentRelationEndpoints(document) {
25846
25872
  const result = [
25847
25873
  ...optionalEndpoint("project", document.project),
@@ -26421,7 +26447,7 @@ function optionalEndpoint(recordKind, record7) {
26421
26447
  }
26422
26448
  var InternalRecordRelationKind, INTERNAL_RECORD_RELATION_KIND_CONTRACTS;
26423
26449
  var init_internal_record_relations = __esm({
26424
- "../src/models/project/internal-record-relations.ts"() {
26450
+ "../packages/models/src/project/internal-record-relations.ts"() {
26425
26451
  "use strict";
26426
26452
  init_collections();
26427
26453
  init_classes();
@@ -26540,24 +26566,23 @@ var init_internal_record_relations = __esm({
26540
26566
  }
26541
26567
  });
26542
26568
 
26543
- // ../src/models/project/internal-record-relation-head-projection.ts
26569
+ // ../packages/models/src/project/internal-record-relation-head-projection.ts
26544
26570
  var init_internal_record_relation_head_projection = __esm({
26545
- "../src/models/project/internal-record-relation-head-projection.ts"() {
26571
+ "../packages/models/src/project/internal-record-relation-head-projection.ts"() {
26546
26572
  "use strict";
26547
- init_project_version_types();
26548
26573
  }
26549
26574
  });
26550
26575
 
26551
- // ../src/models/project/initial-class-internal-record-relation.ts
26576
+ // ../packages/models/src/project/initial-class-internal-record-relation.ts
26552
26577
  var init_initial_class_internal_record_relation = __esm({
26553
- "../src/models/project/initial-class-internal-record-relation.ts"() {
26578
+ "../packages/models/src/project/initial-class-internal-record-relation.ts"() {
26554
26579
  "use strict";
26555
26580
  }
26556
26581
  });
26557
26582
 
26558
- // ../src/models/project/index.ts
26583
+ // ../packages/models/src/project/index.ts
26559
26584
  var init_project = __esm({
26560
- "../src/models/project/index.ts"() {
26585
+ "../packages/models/src/project/index.ts"() {
26561
26586
  "use strict";
26562
26587
  init_project_types();
26563
26588
  init_project_schema_index();
@@ -27023,7 +27048,6 @@ var init_schema_source_validation = __esm({
27023
27048
  init_project_document_inheritance_validation();
27024
27049
  init_member_access_modifier_validation();
27025
27050
  init_list_indexes();
27026
- init_member_kinds();
27027
27051
  init_project();
27028
27052
  init_source_diagnostics();
27029
27053
  init_lower_support();
@@ -41358,7 +41382,7 @@ var init_project_source_construction_diagnostics = __esm({
41358
41382
  "ambiguous-constructor-call": "error",
41359
41383
  /**
41360
41384
  * P65 §1.3. A defaulted parameter declared before a non-defaulted one.
41361
- * The code string is shared with `src/models/neoscript/parameter-defaults.ts`
41385
+ * The code string is shared with `packages/models/src/neoscript/parameter-defaults.ts`
41362
41386
  * so the push guards and the compiler name one rule identically.
41363
41387
  */
41364
41388
  "default-before-required-parameter": "error",
@@ -51797,7 +51821,7 @@ var init_registry = __esm({
51797
51821
  "../packages/manifest/schema-contract/registry.mjs"() {
51798
51822
  "use strict";
51799
51823
  PROJECT_SCHEMA_CONTRACT = Object.freeze({
51800
- cliVersion: "0.75.0",
51824
+ cliVersion: "0.75.1",
51801
51825
  projectFileUploadBatchSize: 32,
51802
51826
  documentRecords: {
51803
51827
  member: {
@@ -53587,18 +53611,18 @@ var init_migration_files = __esm({
53587
53611
  }
53588
53612
  });
53589
53613
 
53590
- // ../src/models/dialogue/dialogue-source-identifiers.ts
53614
+ // ../packages/models/src/dialogue/dialogue-source-identifiers.ts
53591
53615
  function isDialogueSourceIdentifier(value) {
53592
53616
  return isValidProjectSourceIdentifier(value);
53593
53617
  }
53594
53618
  var init_dialogue_source_identifiers = __esm({
53595
- "../src/models/dialogue/dialogue-source-identifiers.ts"() {
53619
+ "../packages/models/src/dialogue/dialogue-source-identifiers.ts"() {
53596
53620
  "use strict";
53597
53621
  init_project_source_identifiers2();
53598
53622
  }
53599
53623
  });
53600
53624
 
53601
- // ../src/models/dialogue/dialogue-source-names.ts
53625
+ // ../packages/models/src/dialogue/dialogue-source-names.ts
53602
53626
  function dialogueSourceNameFromDisplayName(displayName, fallback) {
53603
53627
  const preferred = sourceNameTokens(displayName ?? "");
53604
53628
  const fallbackTokens = sourceNameTokens(fallback);
@@ -53626,7 +53650,7 @@ function inferredDialogueDisplayName(sourceName, kind) {
53626
53650
  }
53627
53651
  var DialogueSourceNameAllocator;
53628
53652
  var init_dialogue_source_names = __esm({
53629
- "../src/models/dialogue/dialogue-source-names.ts"() {
53653
+ "../packages/models/src/dialogue/dialogue-source-names.ts"() {
53630
53654
  "use strict";
53631
53655
  init_dialogue_source_identifiers();
53632
53656
  DialogueSourceNameAllocator = class {
@@ -55176,6 +55200,7 @@ function safeParse(schema, input, config$1) {
55176
55200
  var store$4, DEFAULT_CONFIG, store$3, store$2, store$1, EMOJI_REGEX, ABORT_EARLY_CONFIG;
55177
55201
  var init_dist = __esm({
55178
55202
  "../node_modules/valibot/dist/index.mjs"() {
55203
+ "use strict";
55179
55204
  DEFAULT_CONFIG = {
55180
55205
  lang: void 0,
55181
55206
  message: void 0,
@@ -56000,6 +56025,7 @@ function parse2(schema, input, config$1) {
56000
56025
  var store$42, DEFAULT_CONFIG2, ValiError, EMOJI_REGEX2;
56001
56026
  var init_dist2 = __esm({
56002
56027
  "node_modules/valibot/dist/index.mjs"() {
56028
+ "use strict";
56003
56029
  DEFAULT_CONFIG2 = {
56004
56030
  lang: void 0,
56005
56031
  message: void 0,
@@ -61302,7 +61328,7 @@ var init_projection = __esm({
61302
61328
  }
61303
61329
  });
61304
61330
 
61305
- // ../src/models/classes/constructor-parameter-settlement.ts
61331
+ // ../packages/models/src/classes/constructor-parameter-settlement.ts
61306
61332
  function createConstructorSettlementResolver(view) {
61307
61333
  const classesById = new Map(
61308
61334
  view.classes.map((schemaClass2) => [schemaClass2.id, schemaClass2])
@@ -61435,12 +61461,12 @@ function asRecord(value) {
61435
61461
  return value;
61436
61462
  }
61437
61463
  var init_constructor_parameter_settlement = __esm({
61438
- "../src/models/classes/constructor-parameter-settlement.ts"() {
61464
+ "../packages/models/src/classes/constructor-parameter-settlement.ts"() {
61439
61465
  "use strict";
61440
61466
  }
61441
61467
  });
61442
61468
 
61443
- // ../src/models/dialogue/dialogue-group-types.ts
61469
+ // ../packages/models/src/dialogue/dialogue-group-types.ts
61444
61470
  function isOptionalNullableString3(value) {
61445
61471
  if (value === void 0) return true;
61446
61472
  if (value === null) return true;
@@ -61488,14 +61514,14 @@ function isAnyDialogueGroup(value) {
61488
61514
  return isStandardDialogueGroupBase(value) || isLookupDialogueGroupBase(value) || isFolderDialogueGroupBase(value);
61489
61515
  }
61490
61516
  var init_dialogue_group_types = __esm({
61491
- "../src/models/dialogue/dialogue-group-types.ts"() {
61517
+ "../packages/models/src/dialogue/dialogue-group-types.ts"() {
61492
61518
  "use strict";
61493
61519
  init_core_types();
61494
61520
  init_logic_types();
61495
61521
  }
61496
61522
  });
61497
61523
 
61498
- // ../src/models/dialogue/logic-types.ts
61524
+ // ../packages/models/src/dialogue/logic-types.ts
61499
61525
  function isNSBoolGetter2(value) {
61500
61526
  if (!isNSGetter(value)) return false;
61501
61527
  if (value.typeInfo.type !== 1 /* Bool */) return false;
@@ -61679,12 +61705,9 @@ function isDialogueGroupType2(value) {
61679
61705
  return value === 0 /* Standard */ || value === 1 /* Lookup */ || value === 2 /* Folder */;
61680
61706
  }
61681
61707
  var init_logic_types = __esm({
61682
- "../src/models/dialogue/logic-types.ts"() {
61708
+ "../packages/models/src/dialogue/logic-types.ts"() {
61683
61709
  "use strict";
61684
- init_member_kind_enum();
61685
61710
  init_neoscript_guards();
61686
- init_neoscript_types();
61687
- init_dialogue_group_types();
61688
61711
  init_dialogue_source_identifiers();
61689
61712
  }
61690
61713
  });
@@ -61936,8 +61959,6 @@ function asRecord2(value) {
61936
61959
  var init_neo_script_derived_bodies = __esm({
61937
61960
  "../src/database/neo-script-derived-bodies.ts"() {
61938
61961
  "use strict";
61939
- init_members();
61940
- init_logic_types();
61941
61962
  init_strict_ir();
61942
61963
  init_packed_value_encoding();
61943
61964
  }
@@ -62175,7 +62196,6 @@ var init_reference_target_types = __esm({
62175
62196
  init_project2();
62176
62197
  init_codecs();
62177
62198
  init_document_adapters();
62178
- init_members();
62179
62199
  init_projection();
62180
62200
  init_value_comparison();
62181
62201
  init_stored_value_placements();
@@ -62452,7 +62472,7 @@ var init_reference_target_types = __esm({
62452
62472
  }
62453
62473
  });
62454
62474
 
62455
- // ../src/models/localization/localization-types.ts
62475
+ // ../packages/models/src/localization/localization-types.ts
62456
62476
  function memberValueLocalizedTextLink(valueId) {
62457
62477
  return {
62458
62478
  kind: "member-value",
@@ -62793,7 +62813,7 @@ function isNullableStringArray(value) {
62793
62813
  }
62794
62814
  var PROJECT_LOCALIZATION_CONFIG_ID, DEFAULT_PROJECT_LOCALE, DEFAULT_LOCALIZATION_STATUS_IDS, DEFAULT_LOCALIZATION_STATUS_SLUGS, LOCALIZED_TEXT_LINK_KINDS;
62795
62815
  var init_localization_types = __esm({
62796
- "../src/models/localization/localization-types.ts"() {
62816
+ "../packages/models/src/localization/localization-types.ts"() {
62797
62817
  "use strict";
62798
62818
  init_core_types();
62799
62819
  init_structural_narrow();
@@ -62873,7 +62893,10 @@ function quoteNeoString(value) {
62873
62893
  }
62874
62894
  function indentNeoSource(value, spaces) {
62875
62895
  const prefix = " ".repeat(spaces);
62876
- return value.split("\n").map((line) => line.length > 0 ? `${prefix}${line}` : line).join("\n");
62896
+ const literalLines = neoScriptLiteralContinuationLines(value);
62897
+ return value.split("\n").map(
62898
+ (line, index) => line.length > 0 && !literalLines.has(index) ? `${prefix}${line}` : line
62899
+ ).join("\n");
62877
62900
  }
62878
62901
  function formatNeoNumber(value) {
62879
62902
  if (!Number.isFinite(value)) {
@@ -62903,6 +62926,7 @@ function invariantCaseKey(value) {
62903
62926
  var init_source_format = __esm({
62904
62927
  "src/project-source/source-format.ts"() {
62905
62928
  "use strict";
62929
+ init_lexer();
62906
62930
  init_float32();
62907
62931
  init_machine_strings();
62908
62932
  }
@@ -66159,7 +66183,10 @@ function normalizeBodySource(source) {
66159
66183
  const trimmed = source.trim();
66160
66184
  const lines = trimmed.split("\n");
66161
66185
  if (lines.length < 2) return trimmed;
66162
- const continuations = lines.slice(1).filter((line) => line.trim().length > 0);
66186
+ const literalLines = neoScriptLiteralContinuationLines(trimmed);
66187
+ const continuations = lines.slice(1).filter(
66188
+ (line, index) => !literalLines.has(index + 1) && line.trim().length > 0
66189
+ );
66163
66190
  if (continuations.length === 0) return trimmed;
66164
66191
  const common = Math.min(
66165
66192
  ...continuations.map((line) => line.length - line.trimStart().length)
@@ -66167,7 +66194,10 @@ function normalizeBodySource(source) {
66167
66194
  if (common === 0) return trimmed;
66168
66195
  return [
66169
66196
  lines[0],
66170
- ...lines.slice(1).map((line) => line.trim().length === 0 ? "" : line.slice(common))
66197
+ ...lines.slice(1).map((line, index) => {
66198
+ if (literalLines.has(index + 1)) return line;
66199
+ return line.trim().length === 0 ? "" : line.slice(common);
66200
+ })
66171
66201
  ].join("\n");
66172
66202
  }
66173
66203
  function normalizeInitializerSource(source) {
@@ -66338,6 +66368,7 @@ var normalizedInitializers, normalizedInitializerCharacters, MAX_NORMALIZED_INIT
66338
66368
  var init_init_source = __esm({
66339
66369
  "src/project-source/init-source.ts"() {
66340
66370
  "use strict";
66371
+ init_lexer();
66341
66372
  init_value_comparison();
66342
66373
  normalizedInitializers = /* @__PURE__ */ new Map();
66343
66374
  normalizedInitializerCharacters = 0;
@@ -66543,12 +66574,12 @@ function innerBody(body) {
66543
66574
  }
66544
66575
  function preserveEquivalentBody(authored, base) {
66545
66576
  if (base === void 0) return authored;
66546
- const normalize = (value) => value.split("\n").map((line) => line.trim()).filter((line) => line.length > 0).join("\n");
66547
- return normalize(authored) === normalize(base ?? "") ? base : authored;
66577
+ return sameNeoScriptTokens(authored, base ?? "") ? base : authored;
66548
66578
  }
66549
66579
  var init_lower_constructors = __esm({
66550
66580
  "src/project-source/lower-constructors.ts"() {
66551
66581
  "use strict";
66582
+ init_lexer();
66552
66583
  init_pending_id();
66553
66584
  init_declared_constructors();
66554
66585
  init_required_constructor_id();
@@ -66620,7 +66651,6 @@ var MEMBER_KIND_SOURCE_TYPE_NAMES, MEMBER_KIND_NUMBERS, SOURCE_TYPE_NAME_BY_MEMB
66620
66651
  var init_member_kind_type_names = __esm({
66621
66652
  "src/project-source/member-kind-type-names.ts"() {
66622
66653
  "use strict";
66623
- init_members();
66624
66654
  MEMBER_KIND_SOURCE_TYPE_NAMES = {
66625
66655
  null: "null",
66626
66656
  bool: "bool",
@@ -69213,8 +69243,7 @@ function functionBodySource(body, isVoid2) {
69213
69243
  function preserveEquivalentCode(authored, base) {
69214
69244
  if (authored === null) return null;
69215
69245
  if (base !== null && base !== void 0) {
69216
- const normalize = (value) => value.split("\n").map((line) => line.trim()).filter((line) => line.length > 0).join("\n");
69217
- if (normalize(authored) === normalize(base)) return base;
69246
+ if (sameNeoScriptTokens(authored, base)) return base;
69218
69247
  }
69219
69248
  return authored;
69220
69249
  }
@@ -69380,6 +69409,7 @@ var UNSET_LIST_COLUMN_WIDTH, EMPTY_GENERIC_TYPE_ENVIRONMENT, STRUCTURED_LEAF_COM
69380
69409
  var init_lower_members = __esm({
69381
69410
  "src/project-source/lower-members.ts"() {
69382
69411
  "use strict";
69412
+ init_lexer();
69383
69413
  init_initializer_reference_spellings();
69384
69414
  init_listener_sources();
69385
69415
  init_project_source_ast();
@@ -69531,7 +69561,6 @@ var init_project_file_registry = __esm({
69531
69561
  "use strict";
69532
69562
  init_language_spec();
69533
69563
  init_project_source_identifiers();
69534
- init_files();
69535
69564
  PROJECT_FILE_REGISTRIES = [
69536
69565
  {
69537
69566
  fileType: "image" /* Image */,
@@ -71245,7 +71274,6 @@ var init_supplemental_records = __esm({
71245
71274
  init_project_source_parser();
71246
71275
  init_strict_ir();
71247
71276
  init_declaration_path();
71248
- init_dialogue_group_types();
71249
71277
  init_value_comparison();
71250
71278
  init_projection();
71251
71279
  init_emitter();
@@ -71907,7 +71935,7 @@ function conditionProjectionMatches(context, prior, body) {
71907
71935
  prior.getter,
71908
71936
  context.sourceSchema.uiActionResolver(alias, bindingNames)
71909
71937
  );
71910
- if (projected !== null && normalizeSourceCode(body) === normalizeSourceCode(projected)) {
71938
+ if (projected !== null && sameNeoScriptTokens(body, projected)) {
71911
71939
  return true;
71912
71940
  }
71913
71941
  }
@@ -71926,7 +71954,7 @@ function lowerActionLogic(context, prior, fn, fallbackCode, inline, useId, uiRes
71926
71954
  const code = functionCode(fn) ?? fallbackCode;
71927
71955
  if (prior?.type === 0) {
71928
71956
  const projected = uiActionSource(prior.action, uiResolver);
71929
- if (projected !== null && normalizeSourceCode(code) === normalizeSourceCode(projected)) {
71957
+ if (projected !== null && sameNeoScriptTokens(code, projected)) {
71930
71958
  return prior;
71931
71959
  }
71932
71960
  }
@@ -73010,13 +73038,11 @@ function sourceFunctionForPrior(context, prior) {
73010
73038
  }
73011
73039
  function isCanonicalProjectedCode(authoredCode, priorCode, context) {
73012
73040
  if (typeof priorCode !== "string") return false;
73013
- return normalizeSourceCode(authoredCode) === normalizeSourceCode(
73041
+ return sameNeoScriptTokens(
73042
+ authoredCode,
73014
73043
  rewritePulledThis(priorCode, context.sourcePrimaryAlias)
73015
73044
  );
73016
73045
  }
73017
- function normalizeSourceCode(code) {
73018
- return code.replaceAll("\r\n", "\n").trim().split("\n").map((line) => line.trim()).join("\n");
73019
- }
73020
73046
  function rewritePulledThis(code, alias) {
73021
73047
  return rewriteNeoScriptThisReceiver(code, alias);
73022
73048
  }
@@ -73272,6 +73298,7 @@ var SourceSchemaIndex;
73272
73298
  var init_dialogue_lower = __esm({
73273
73299
  "src/project-source/dialogue-lower.ts"() {
73274
73300
  "use strict";
73301
+ init_lexer();
73275
73302
  init_lower_support();
73276
73303
  init_dialogue_source_names();
73277
73304
  init_dialogue_group_paths();
@@ -73282,7 +73309,6 @@ var init_dialogue_lower = __esm({
73282
73309
  init_executable_parser();
73283
73310
  init_strict_ir();
73284
73311
  init_localization_types();
73285
- init_members();
73286
73312
  init_neoscript();
73287
73313
  init_value_comparison();
73288
73314
  init_projection();
@@ -73290,7 +73316,6 @@ var init_dialogue_lower = __esm({
73290
73316
  init_ui_action_source();
73291
73317
  init_source_format();
73292
73318
  init_supplemental_records();
73293
- init_dialogue_group_types();
73294
73319
  SourceSchemaIndex = class {
73295
73320
  classesByName;
73296
73321
  classesById;
@@ -73573,10 +73598,10 @@ var init_dialogue_lower = __esm({
73573
73598
  }
73574
73599
  });
73575
73600
 
73576
- // ../src/runtime/neoscript/NSGetterRuntimeError.ts
73601
+ // ../packages/neoscript-runtime/src/neoscript/NSGetterRuntimeError.ts
73577
73602
  var NSGetterRuntimeError, UncompiledInitializerRuntimeError;
73578
73603
  var init_NSGetterRuntimeError = __esm({
73579
- "../src/runtime/neoscript/NSGetterRuntimeError.ts"() {
73604
+ "../packages/neoscript-runtime/src/neoscript/NSGetterRuntimeError.ts"() {
73580
73605
  "use strict";
73581
73606
  init_runtime_source();
73582
73607
  NSGetterRuntimeError = class extends Error {
@@ -75314,7 +75339,7 @@ var init_project_schema_manifest = __esm({
75314
75339
  }
75315
75340
  });
75316
75341
 
75317
- // ../src/models/interfaces/interface-types.ts
75342
+ // ../packages/models/src/interfaces/interface-types.ts
75318
75343
  function isInterfacePropertyMember(member) {
75319
75344
  return member.kind === void 0 || member.kind === 0 /* Property */;
75320
75345
  }
@@ -75430,7 +75455,7 @@ function getInterfaceMemberKeyOrder(neoInterface) {
75430
75455
  return result;
75431
75456
  }
75432
75457
  var init_interface_types = __esm({
75433
- "../src/models/interfaces/interface-types.ts"() {
75458
+ "../packages/models/src/interfaces/interface-types.ts"() {
75434
75459
  "use strict";
75435
75460
  init_core_types();
75436
75461
  init_neoscript_types();
@@ -75441,7 +75466,7 @@ var init_interface_types = __esm({
75441
75466
  }
75442
75467
  });
75443
75468
 
75444
- // ../src/models/dialogue/dialogue-group-language.ts
75469
+ // ../packages/models/src/dialogue/dialogue-group-language.ts
75445
75470
  function dialogueGroupLanguageContract(group) {
75446
75471
  return {
75447
75472
  id: group.id,
@@ -75481,10 +75506,9 @@ function lookupEntry(collectionMemberId, memberById2, classById) {
75481
75506
  }
75482
75507
  var KINDS;
75483
75508
  var init_dialogue_group_language = __esm({
75484
- "../src/models/dialogue/dialogue-group-language.ts"() {
75509
+ "../packages/models/src/dialogue/dialogue-group-language.ts"() {
75485
75510
  "use strict";
75486
75511
  init_members();
75487
- init_dialogue_group_types();
75488
75512
  KINDS = {
75489
75513
  [0 /* Standard */]: "standard",
75490
75514
  [1 /* Lookup */]: "lookup",
@@ -77058,10 +77082,10 @@ var init_neoscript_language_context_adapter = __esm({
77058
77082
  }
77059
77083
  });
77060
77084
 
77061
- // ../src/common/overlay-readonly-map.ts
77085
+ // ../packages/neoscript-runtime/src/internal/overlay-readonly-map.ts
77062
77086
  var OverlayReadonlyMap;
77063
77087
  var init_overlay_readonly_map = __esm({
77064
- "../src/common/overlay-readonly-map.ts"() {
77088
+ "../packages/neoscript-runtime/src/internal/overlay-readonly-map.ts"() {
77065
77089
  "use strict";
77066
77090
  OverlayReadonlyMap = class {
77067
77091
  constructor(parent, own) {
@@ -77104,7 +77128,7 @@ var init_overlay_readonly_map = __esm({
77104
77128
  }
77105
77129
  });
77106
77130
 
77107
- // ../src/runtime/neoscript/initializer-dependencies.ts
77131
+ // ../packages/neoscript-runtime/src/neoscript/initializer-dependencies.ts
77108
77132
  function materializeInitializerDependencies(pending, materialize) {
77109
77133
  const active = /* @__PURE__ */ new Set();
77110
77134
  for (const rootId of pending) {
@@ -77137,7 +77161,7 @@ function materializeInitializerDependencies(pending, materialize) {
77137
77161
  }
77138
77162
  var PendingInitializerDependency;
77139
77163
  var init_initializer_dependencies = __esm({
77140
- "../src/runtime/neoscript/initializer-dependencies.ts"() {
77164
+ "../packages/neoscript-runtime/src/neoscript/initializer-dependencies.ts"() {
77141
77165
  "use strict";
77142
77166
  init_NSGetterRuntimeError();
77143
77167
  PendingInitializerDependency = class extends NSGetterRuntimeError {
@@ -77150,7 +77174,7 @@ var init_initializer_dependencies = __esm({
77150
77174
  }
77151
77175
  });
77152
77176
 
77153
- // ../src/models/members/lookup-declared-type.ts
77177
+ // ../packages/models/src/members/lookup-declared-type.ts
77154
77178
  function lookupDeclaredTypeInfo2(member, collectionTypeInfo) {
77155
77179
  if (collectionTypeInfo === null) return null;
77156
77180
  if (collectionTypeInfo.type !== 6 /* List */ && collectionTypeInfo.type !== 5 /* Dictionary */) {
@@ -77172,14 +77196,13 @@ function lookupDeclaredTypeInfo2(member, collectionTypeInfo) {
77172
77196
  };
77173
77197
  }
77174
77198
  var init_lookup_declared_type = __esm({
77175
- "../src/models/members/lookup-declared-type.ts"() {
77199
+ "../packages/models/src/members/lookup-declared-type.ts"() {
77176
77200
  "use strict";
77177
- init_member_kind_enum();
77178
77201
  init_member_kinds();
77179
77202
  }
77180
77203
  });
77181
77204
 
77182
- // ../src/database/member-declared-type-info.ts
77205
+ // ../packages/neoscript-runtime/src/values/member-declared-type-info.ts
77183
77206
  function resolveMemberDeclaredTypeInfo(member, members) {
77184
77207
  return resolveMemberDeclaredTypeInfoInternal(member, members, /* @__PURE__ */ new Set());
77185
77208
  }
@@ -77296,7 +77319,7 @@ function resolveMemberDeclaredTypeInfoInternal(member, members, seen) {
77296
77319
  };
77297
77320
  }
77298
77321
  var init_member_declared_type_info = __esm({
77299
- "../src/database/member-declared-type-info.ts"() {
77322
+ "../packages/neoscript-runtime/src/values/member-declared-type-info.ts"() {
77300
77323
  "use strict";
77301
77324
  init_members();
77302
77325
  init_lookup_declared_type();
@@ -77306,7 +77329,7 @@ var init_member_declared_type_info = __esm({
77306
77329
  }
77307
77330
  });
77308
77331
 
77309
- // ../src/database/value-row-owner-members.ts
77332
+ // ../packages/neoscript-runtime/src/values/value-row-owner-members.ts
77310
77333
  function valueIdsWithSourceChains(targetValueIds, valuesById) {
77311
77334
  const result = new Set(targetValueIds);
77312
77335
  for (const targetId of targetValueIds) {
@@ -77842,7 +77865,7 @@ function findOwningMembersForValues(document, valueIds, additionalRoots, travers
77842
77865
  return owners;
77843
77866
  }
77844
77867
  var init_value_row_owner_members = __esm({
77845
- "../src/database/value-row-owner-members.ts"() {
77868
+ "../packages/neoscript-runtime/src/values/value-row-owner-members.ts"() {
77846
77869
  "use strict";
77847
77870
  init_members();
77848
77871
  init_inheritance();
@@ -77851,7 +77874,7 @@ var init_value_row_owner_members = __esm({
77851
77874
  }
77852
77875
  });
77853
77876
 
77854
- // ../src/database/constructor-argument-ownership.ts
77877
+ // ../packages/neoscript-runtime/src/values/constructor-argument-ownership.ts
77855
77878
  function resolveSemanticOwnerMembersForValues(document, targetValueIds, additionalRoots, rootOwners, rootKinds) {
77856
77879
  const result = /* @__PURE__ */ new Map();
77857
77880
  if (targetValueIds.size === 0) return result;
@@ -78174,7 +78197,7 @@ function indexChildrenByContainerId(rows) {
78174
78197
  }
78175
78198
  var MaterializedValueGraphContext;
78176
78199
  var init_constructor_argument_ownership = __esm({
78177
- "../src/database/constructor-argument-ownership.ts"() {
78200
+ "../packages/neoscript-runtime/src/values/constructor-argument-ownership.ts"() {
78178
78201
  "use strict";
78179
78202
  init_constructor_parameter_settlement();
78180
78203
  init_generics();
@@ -78468,7 +78491,7 @@ var init_constructor_argument_ownership = __esm({
78468
78491
  }
78469
78492
  });
78470
78493
 
78471
- // ../src/models/members/stored-value-placement-index.ts
78494
+ // ../packages/models/src/members/stored-value-placement-index.ts
78472
78495
  function buildStoredValuePlacementIndex(args) {
78473
78496
  return createStoredValuePlacementTraversal(args)();
78474
78497
  }
@@ -78837,7 +78860,7 @@ function isStringRecord5(value) {
78837
78860
  return Object.values(value).every((item) => typeof item === "string");
78838
78861
  }
78839
78862
  var init_stored_value_placement_index = __esm({
78840
- "../src/models/members/stored-value-placement-index.ts"() {
78863
+ "../packages/models/src/members/stored-value-placement-index.ts"() {
78841
78864
  "use strict";
78842
78865
  init_inheritance();
78843
78866
  init_constructor_parameter_settlement();
@@ -78847,7 +78870,7 @@ var init_stored_value_placement_index = __esm({
78847
78870
  }
78848
78871
  });
78849
78872
 
78850
- // ../src/runtime/neoscript/unattributable-reads.ts
78873
+ // ../packages/neoscript-runtime/src/neoscript/unattributable-reads.ts
78851
78874
  function ownershipChainRead(kind, rowId) {
78852
78875
  return `${kind}:${rowId}`;
78853
78876
  }
@@ -78870,7 +78893,7 @@ function classifyUnattributableRead(reason) {
78870
78893
  }
78871
78894
  var OWNERSHIP_CHAIN_PREFIXES, CONTAINER_ENTRIES_PREFIX, OWNERSHIP_CHAIN_READ;
78872
78895
  var init_unattributable_reads = __esm({
78873
- "../src/runtime/neoscript/unattributable-reads.ts"() {
78896
+ "../packages/neoscript-runtime/src/neoscript/unattributable-reads.ts"() {
78874
78897
  "use strict";
78875
78898
  OWNERSHIP_CHAIN_PREFIXES = [
78876
78899
  "generic-parent-resolution:",
@@ -78886,13 +78909,13 @@ var init_unattributable_reads = __esm({
78886
78909
  }
78887
78910
  });
78888
78911
 
78889
- // ../src/runtime/world-grid-query-reads.ts
78912
+ // ../packages/neoscript-runtime/src/world-grid-query-reads.ts
78890
78913
  function worldGridQueryReadKey(read) {
78891
78914
  return read.kind === "placement" ? JSON.stringify([read.kind, read.valueId]) : JSON.stringify([read.kind, read.gridId, read.cell.x, read.cell.y]);
78892
78915
  }
78893
78916
  var WorldGridQueryReadSet;
78894
78917
  var init_world_grid_query_reads = __esm({
78895
- "../src/runtime/world-grid-query-reads.ts"() {
78918
+ "../packages/neoscript-runtime/src/world-grid-query-reads.ts"() {
78896
78919
  "use strict";
78897
78920
  init_collections();
78898
78921
  WorldGridQueryReadSet = class {
@@ -78917,7 +78940,7 @@ var init_world_grid_query_reads = __esm({
78917
78940
  }
78918
78941
  });
78919
78942
 
78920
- // ../src/runtime/neoscript/initializer-context.ts
78943
+ // ../packages/neoscript-runtime/src/neoscript/initializer-context.ts
78921
78944
  function initializerEvaluatorCacheKey(document) {
78922
78945
  return document.evaluatorCache?.key ?? document;
78923
78946
  }
@@ -78926,9 +78949,8 @@ function initializerEvaluatorCacheRevision(document) {
78926
78949
  }
78927
78950
  var InitializerReadSet;
78928
78951
  var init_initializer_context = __esm({
78929
- "../src/runtime/neoscript/initializer-context.ts"() {
78952
+ "../packages/neoscript-runtime/src/neoscript/initializer-context.ts"() {
78930
78953
  "use strict";
78931
- init_collections();
78932
78954
  init_unattributable_reads();
78933
78955
  init_world_grid_query_reads();
78934
78956
  InitializerReadSet = class {
@@ -78970,21 +78992,21 @@ var init_initializer_context = __esm({
78970
78992
  }
78971
78993
  });
78972
78994
 
78973
- // ../src/runtime/declaration-default-source.ts
78995
+ // ../packages/neoscript-runtime/src/declaration-default-source.ts
78974
78996
  function declarationDefaultSource(id2, stored, resolveGraph) {
78975
78997
  if (stored !== null && !isCollapseStampedInstanceRoot(stored)) return stored;
78976
78998
  const graph = resolveGraph(id2);
78977
78999
  return defaultSourceWithListeners(graph?.rowsById.get(id2) ?? stored, graph);
78978
79000
  }
78979
79001
  var init_declaration_default_source = __esm({
78980
- "../src/runtime/declaration-default-source.ts"() {
79002
+ "../packages/neoscript-runtime/src/declaration-default-source.ts"() {
78981
79003
  "use strict";
78982
79004
  init_instance_provenance();
78983
79005
  init_member_change_listeners();
78984
79006
  }
78985
79007
  });
78986
79008
 
78987
- // ../src/runtime/listener-write-index.ts
79009
+ // ../packages/neoscript-runtime/src/listener-write-index.ts
78988
79010
  function listenerWritesByOwner(state) {
78989
79011
  if (state === void 0) return empty;
78990
79012
  let index = indexes.get(state);
@@ -79007,14 +79029,14 @@ function changeListenerWriteEdit(write) {
79007
79029
  }
79008
79030
  var indexes, empty;
79009
79031
  var init_listener_write_index = __esm({
79010
- "../src/runtime/listener-write-index.ts"() {
79032
+ "../packages/neoscript-runtime/src/listener-write-index.ts"() {
79011
79033
  "use strict";
79012
79034
  indexes = /* @__PURE__ */ new WeakMap();
79013
79035
  empty = /* @__PURE__ */ new Map();
79014
79036
  }
79015
79037
  });
79016
79038
 
79017
- // ../src/runtime/neoscript/typed-aggregate-row-references.ts
79039
+ // ../packages/neoscript-runtime/src/neoscript/typed-aggregate-row-references.ts
79018
79040
  function visitTypedAggregateRowReferences(value, rawType, visitor) {
79019
79041
  visitor.beforeVisit?.();
79020
79042
  const pending = [{ value, type: rawType }];
@@ -79040,13 +79062,12 @@ function visitTypedAggregateRowReferences(value, rawType, visitor) {
79040
79062
  }
79041
79063
  }
79042
79064
  var init_typed_aggregate_row_references = __esm({
79043
- "../src/runtime/neoscript/typed-aggregate-row-references.ts"() {
79065
+ "../packages/neoscript-runtime/src/neoscript/typed-aggregate-row-references.ts"() {
79044
79066
  "use strict";
79045
- init_members();
79046
79067
  }
79047
79068
  });
79048
79069
 
79049
- // ../src/runtime/neoscript/cell-pattern.ts
79070
+ // ../packages/neoscript-runtime/src/neoscript/cell-pattern.ts
79050
79071
  function integer2(value, name, minimum = -2147483648) {
79051
79072
  if (typeof value !== "number" || !Number.isInteger(value)) {
79052
79073
  throw new TypeError(`${name} must be an integer.`);
@@ -79241,14 +79262,14 @@ function evaluateCellPatternNative(memberId, receiver, args, ctx) {
79241
79262
  }
79242
79263
  }
79243
79264
  var init_cell_pattern2 = __esm({
79244
- "../src/runtime/neoscript/cell-pattern.ts"() {
79265
+ "../packages/neoscript-runtime/src/neoscript/cell-pattern.ts"() {
79245
79266
  "use strict";
79246
79267
  init_cell_pattern();
79247
79268
  init_member_kinds();
79248
79269
  }
79249
79270
  });
79250
79271
 
79251
- // ../src/models/classes/world-layer-link-target.ts
79272
+ // ../packages/models/src/classes/world-layer-link-target.ts
79252
79273
  function validateWorldLayerLinkClassTargets(args) {
79253
79274
  const relationResolver = createEffectiveClassRelationResolver(args);
79254
79275
  const worldKindsByClassId = indexWorldSystemClassKinds(
@@ -79387,17 +79408,16 @@ function resolveWorldLayerLinkTarget(args) {
79387
79408
  };
79388
79409
  }
79389
79410
  var init_world_layer_link_target = __esm({
79390
- "../src/models/classes/world-layer-link-target.ts"() {
79411
+ "../packages/models/src/classes/world-layer-link-target.ts"() {
79391
79412
  "use strict";
79392
79413
  init_classes();
79393
79414
  init_core();
79394
79415
  init_internal_record_relations();
79395
- init_project_version_types();
79396
79416
  init_classes();
79397
79417
  }
79398
79418
  });
79399
79419
 
79400
- // ../src/runtime/world-grid-query.ts
79420
+ // ../packages/neoscript-runtime/src/world-grid-query.ts
79401
79421
  function getWorldGridQueryIndex(source) {
79402
79422
  const previous = indexes2.get(source.cacheKey);
79403
79423
  if (previous !== void 0 && sameRevision(previous.revision, source.revision))
@@ -79638,7 +79658,7 @@ function checkedCoordinate(value) {
79638
79658
  }
79639
79659
  var WorldGridQueryError, MissingWorldObjectPlacementError, indexes2, building, WorldGridQueryIndex;
79640
79660
  var init_world_grid_query = __esm({
79641
- "../src/runtime/world-grid-query.ts"() {
79661
+ "../packages/neoscript-runtime/src/world-grid-query.ts"() {
79642
79662
  "use strict";
79643
79663
  init_classes();
79644
79664
  init_world_layer_link_target();
@@ -79753,7 +79773,7 @@ var init_world_grid_query = __esm({
79753
79773
  }
79754
79774
  });
79755
79775
 
79756
- // ../src/runtime/neoscript/getter-subscriptions.ts
79776
+ // ../packages/neoscript-runtime/src/neoscript/getter-subscriptions.ts
79757
79777
  function* readKeys(reads) {
79758
79778
  yield* reads.valueIds;
79759
79779
  yield* reads.containerIds;
@@ -79762,7 +79782,7 @@ function* readKeys(reads) {
79762
79782
  }
79763
79783
  var NeoScriptGetterSubscription, NO_SUBSCRIPTIONS, staticReadKey, NeoScriptGetterSubscriptions;
79764
79784
  var init_getter_subscriptions = __esm({
79765
- "../src/runtime/neoscript/getter-subscriptions.ts"() {
79785
+ "../packages/neoscript-runtime/src/neoscript/getter-subscriptions.ts"() {
79766
79786
  "use strict";
79767
79787
  init_initializer_context();
79768
79788
  NeoScriptGetterSubscription = class {
@@ -79898,7 +79918,7 @@ var init_getter_subscriptions = __esm({
79898
79918
  }
79899
79919
  });
79900
79920
 
79901
- // ../src/models/decimal/decimal-math.ts
79921
+ // ../packages/models/src/decimal/decimal-math.ts
79902
79922
  function pow10(exponent) {
79903
79923
  return TEN ** BigInt(exponent);
79904
79924
  }
@@ -80154,7 +80174,7 @@ function floatFromDecimalString(value) {
80154
80174
  }
80155
80175
  var DecimalOverflowError, DecimalDivisionByZeroError, DecimalDigitsRangeError, DecimalNonFiniteError, DecimalClampRangeError, MATH_CLAMP_RANGE_MESSAGE, TEN;
80156
80176
  var init_decimal_math = __esm({
80157
- "../src/models/decimal/decimal-math.ts"() {
80177
+ "../packages/models/src/decimal/decimal-math.ts"() {
80158
80178
  "use strict";
80159
80179
  init_member_kinds();
80160
80180
  DecimalOverflowError = class extends Error {
@@ -80172,15 +80192,15 @@ var init_decimal_math = __esm({
80172
80192
  }
80173
80193
  });
80174
80194
 
80175
- // ../src/models/decimal/index.ts
80195
+ // ../packages/models/src/decimal/index.ts
80176
80196
  var init_decimal = __esm({
80177
- "../src/models/decimal/index.ts"() {
80197
+ "../packages/models/src/decimal/index.ts"() {
80178
80198
  "use strict";
80179
80199
  init_decimal_math();
80180
80200
  }
80181
80201
  });
80182
80202
 
80183
- // ../src/models/members/read-class-member.ts
80203
+ // ../packages/models/src/members/read-class-member.ts
80184
80204
  function readClassMember(args) {
80185
80205
  const { member, schemaKey } = args;
80186
80206
  const declaration = member.kind !== 10 /* NSProperty */ && member.defaultValue != null ? member.defaultValue : void 0;
@@ -80199,16 +80219,16 @@ function readClassMember(args) {
80199
80219
  return { kind: "missing" };
80200
80220
  }
80201
80221
  var init_read_class_member = __esm({
80202
- "../src/models/members/read-class-member.ts"() {
80222
+ "../packages/models/src/members/read-class-member.ts"() {
80203
80223
  "use strict";
80204
80224
  init_member_kinds();
80205
80225
  }
80206
80226
  });
80207
80227
 
80208
- // ../src/runtime/neoscript/NeoScriptScope.ts
80228
+ // ../packages/neoscript-runtime/src/neoscript/NeoScriptScope.ts
80209
80229
  var NeoScriptScope;
80210
80230
  var init_NeoScriptScope = __esm({
80211
- "../src/runtime/neoscript/NeoScriptScope.ts"() {
80231
+ "../packages/neoscript-runtime/src/neoscript/NeoScriptScope.ts"() {
80212
80232
  "use strict";
80213
80233
  NeoScriptScope = class {
80214
80234
  constructor(parent = null, initialBindings) {
@@ -80284,7 +80304,7 @@ var init_NeoScriptScope = __esm({
80284
80304
  }
80285
80305
  });
80286
80306
 
80287
- // ../src/runtime/neoscript/evaluateNSGetter.ts
80307
+ // ../packages/neoscript-runtime/src/neoscript/evaluateNSGetter.ts
80288
80308
  function isCatchableNeoScriptRuntimeError(error) {
80289
80309
  return error instanceof NSGetterRuntimeError && !(error instanceof UncompiledInitializerRuntimeError) && !(error instanceof PendingInitializerDependency) && !(error instanceof NonCatchableNSGetterRuntimeError);
80290
80310
  }
@@ -91828,7 +91848,7 @@ function collectionEntryUsesReferenceResolution(collection, key, ctx) {
91828
91848
  }
91829
91849
  var DELEGATE_LEXICAL_THIS, DELEGATE_LEXICAL_ROOT, NonCatchableNSGetterRuntimeError, NativeFunctionDelegateUnavailableError, CorruptNeoScriptIRError, NeoScriptResourceLimitError, NeoScriptWallClockTimeoutError, DEFAULT_NEO_SCRIPT_EXECUTION_BUDGET_LIMITS, liveListIndexesByProject, evaluatorOwnershipCachesByBase, MAX_CONSTRUCTION_DEPTH, MAX_LOOP_ITERATIONS, resolutionCacheByMembers, NO_SCHEMA_REVISION, LazyValueOverlay, READONLY_FOREACH_BINDING_ERROR, READONLY_CATCH_BINDING_ERROR, DIALOGUE_CONTEXT_PARAMETER_ID, NS_MATH_OP_NAMES, DOUBLE_INTEGRAL_MAGNITUDE, EMPTY_SUPPLIED_CONSTRUCTOR_FIELDS;
91830
91850
  var init_evaluateNSGetter = __esm({
91831
- "../src/runtime/neoscript/evaluateNSGetter.ts"() {
91851
+ "../packages/neoscript-runtime/src/neoscript/evaluateNSGetter.ts"() {
91832
91852
  "use strict";
91833
91853
  init_debug();
91834
91854
  init_core();
@@ -92041,7 +92061,7 @@ var init_evaluateNSGetter = __esm({
92041
92061
  }
92042
92062
  });
92043
92063
 
92044
- // ../src/runtime/neoscript/evaluateInitializer.ts
92064
+ // ../packages/neoscript-runtime/src/neoscript/evaluateInitializer.ts
92045
92065
  function sharedHeadlessResolver(overlay) {
92046
92066
  const base = overlay.base;
92047
92067
  if (base.databaseVM !== void 0) return void 0;
@@ -92635,7 +92655,7 @@ function evaluateMemberInitializer(args) {
92635
92655
  }
92636
92656
  var evaluatorLookupsByDocument, headlessResolversByLookupKey, indexedEvaluatorLookupsByDocument;
92637
92657
  var init_evaluateInitializer = __esm({
92638
- "../src/runtime/neoscript/evaluateInitializer.ts"() {
92658
+ "../packages/neoscript-runtime/src/neoscript/evaluateInitializer.ts"() {
92639
92659
  "use strict";
92640
92660
  init_NSGetterRuntimeError();
92641
92661
  init_declaration_default_source();
@@ -92655,7 +92675,7 @@ var init_evaluateInitializer = __esm({
92655
92675
  }
92656
92676
  });
92657
92677
 
92658
- // ../src/database/initializer-identifiers.ts
92678
+ // ../packages/neoscript-runtime/src/values/initializer-identifiers.ts
92659
92679
  function initializerReferencedIdentifiers(source) {
92660
92680
  let expression;
92661
92681
  try {
@@ -92688,13 +92708,13 @@ function initializerReferencesAnyIdentifier(source, names) {
92688
92708
  return false;
92689
92709
  }
92690
92710
  var init_initializer_identifiers = __esm({
92691
- "../src/database/initializer-identifiers.ts"() {
92711
+ "../packages/neoscript-runtime/src/values/initializer-identifiers.ts"() {
92692
92712
  "use strict";
92693
92713
  init_executable_parser();
92694
92714
  }
92695
92715
  });
92696
92716
 
92697
- // ../src/runtime/initializer-materialization.ts
92717
+ // ../packages/neoscript-runtime/src/initializer-materialization.ts
92698
92718
  function declarationInitializerContext(document) {
92699
92719
  const key = initializerEvaluatorCacheKey(document);
92700
92720
  const revision = initializerEvaluatorCacheRevision(document);
@@ -92925,7 +92945,7 @@ function materializeMemberDefaultValue(args) {
92925
92945
  }
92926
92946
  var declarationInitializerContextByDocument;
92927
92947
  var init_initializer_materialization = __esm({
92928
- "../src/runtime/initializer-materialization.ts"() {
92948
+ "../packages/neoscript-runtime/src/initializer-materialization.ts"() {
92929
92949
  "use strict";
92930
92950
  init_unattributable_reads();
92931
92951
  init_deep_clone_plain_data();
@@ -92941,7 +92961,7 @@ var init_initializer_materialization = __esm({
92941
92961
  }
92942
92962
  });
92943
92963
 
92944
- // ../src/runtime/virtual-instance-graph.ts
92964
+ // ../packages/neoscript-runtime/src/virtual-instance-graph.ts
92945
92965
  function buildVirtualInstanceMaterializedIndex(args) {
92946
92966
  const rowsById = new Map(
92947
92967
  (args.materializedRows ?? args.document.values).map((row) => [row.id, row])
@@ -95976,14 +95996,13 @@ function assertStoredConstructionStamp(root, classId = root.classId) {
95976
95996
  }
95977
95997
  var KEPT_ROW_SAMPLE_LIMIT, CORPUS_SCANNING_MEMBER_KINDS, VirtualExpansionUnsupportedError, ROOT_PATH, OpenGenericComparisonError, SYNTHETIC_LINEAGE_PREFIXES, resolverDocumentsByDocument;
95978
95998
  var init_virtual_instance_graph = __esm({
95979
- "../src/runtime/virtual-instance-graph.ts"() {
95999
+ "../packages/neoscript-runtime/src/virtual-instance-graph.ts"() {
95980
96000
  "use strict";
95981
96001
  init_listener_endpoint_projection();
95982
96002
  init_overlay_readonly_map();
95983
96003
  init_member_change_listeners();
95984
96004
  init_initializer_dependencies();
95985
96005
  init_constructor_argument_ownership();
95986
- init_classes();
95987
96006
  init_constructor_parameter_settlement();
95988
96007
  init_generics();
95989
96008
  init_inheritance();
@@ -95992,10 +96011,8 @@ var init_virtual_instance_graph = __esm({
95992
96011
  init_members();
95993
96012
  init_instance_provenance();
95994
96013
  init_member_value_id();
95995
- init_packed_value_encoding();
95996
96014
  init_stored_value_placement_index();
95997
96015
  init_unordered_list_membership();
95998
- init_neoscript_types();
95999
96016
  init_neoscript_guards();
96000
96017
  init_project_schema_index();
96001
96018
  init_initializer_context();
@@ -96021,7 +96038,7 @@ var init_virtual_instance_graph = __esm({
96021
96038
  }
96022
96039
  });
96023
96040
 
96024
- // ../src/runtime/listener-endpoint-projection.ts
96041
+ // ../packages/neoscript-runtime/src/listener-endpoint-projection.ts
96025
96042
  function projectListenerEndpoint(args) {
96026
96043
  const { descriptor } = args;
96027
96044
  if (!descriptor.pathKey.startsWith("$/")) return void 0;
@@ -96048,7 +96065,7 @@ function projectListenerEndpoint(args) {
96048
96065
  return claim(descriptor.pathKey) === args.id ? node : void 0;
96049
96066
  }
96050
96067
  var init_listener_endpoint_projection = __esm({
96051
- "../src/runtime/listener-endpoint-projection.ts"() {
96068
+ "../packages/neoscript-runtime/src/listener-endpoint-projection.ts"() {
96052
96069
  "use strict";
96053
96070
  init_virtual_instance_graph();
96054
96071
  }
@@ -96655,7 +96672,7 @@ var init_listener_emission = __esm({
96655
96672
  }
96656
96673
  });
96657
96674
 
96658
- // ../src/runtime/effective-value-comparison.ts
96675
+ // ../packages/neoscript-runtime/src/effective-value-comparison.ts
96659
96676
  function createEffectiveValueComparator() {
96660
96677
  const pairs = /* @__PURE__ */ new WeakMap();
96661
96678
  const keys = /* @__PURE__ */ new WeakMap();
@@ -96736,7 +96753,7 @@ function effectiveValuesEqual(left, right) {
96736
96753
  return createEffectiveValueComparator()(left, right) === 0;
96737
96754
  }
96738
96755
  var init_effective_value_comparison = __esm({
96739
- "../src/runtime/effective-value-comparison.ts"() {
96756
+ "../packages/neoscript-runtime/src/effective-value-comparison.ts"() {
96740
96757
  "use strict";
96741
96758
  }
96742
96759
  });
@@ -97020,7 +97037,7 @@ var init_compile = __esm({
97020
97037
  }
97021
97038
  });
97022
97039
 
97023
- // ../src/database/variant-value-graph.ts
97040
+ // ../packages/neoscript-runtime/src/values/variant-value-graph.ts
97024
97041
  function variantRootMemberId(variantId) {
97025
97042
  return `variant-root:${variantId}`;
97026
97043
  }
@@ -97220,10 +97237,9 @@ function withVariantPlacementRoots(document) {
97220
97237
  }
97221
97238
  var NO_PLACEMENT_ROOTS, VARIANT_ROOT_POSITION;
97222
97239
  var init_variant_value_graph = __esm({
97223
- "../src/database/variant-value-graph.ts"() {
97240
+ "../packages/neoscript-runtime/src/values/variant-value-graph.ts"() {
97224
97241
  "use strict";
97225
97242
  init_members();
97226
- init_classes();
97227
97243
  init_core();
97228
97244
  init_constructor_argument_ownership();
97229
97245
  NO_PLACEMENT_ROOTS = [];
@@ -97233,7 +97249,7 @@ var init_variant_value_graph = __esm({
97233
97249
  }
97234
97250
  });
97235
97251
 
97236
- // ../src/models/variants/variants.ts
97252
+ // ../packages/models/src/variants/variants.ts
97237
97253
  function isNonEmptyString2(value) {
97238
97254
  if (typeof value !== "string") return false;
97239
97255
  return value.length > 0;
@@ -97265,7 +97281,7 @@ function isNeoClassVariantFolder(value) {
97265
97281
  }
97266
97282
  var NEO_VARIANT_INITIALIZE_SCHEMA_KEY, NEO_VARIANT_APPLY_SCHEMA_KEY, NEO_VARIANT_OVERRIDES_SCHEMA_KEY, NEO_VARIANT_CHILD_OVERRIDES_SCHEMA_KEY;
97267
97283
  var init_variants = __esm({
97268
- "../src/models/variants/variants.ts"() {
97284
+ "../packages/models/src/variants/variants.ts"() {
97269
97285
  "use strict";
97270
97286
  NEO_VARIANT_INITIALIZE_SCHEMA_KEY = "Initialize";
97271
97287
  NEO_VARIANT_APPLY_SCHEMA_KEY = "Apply";
@@ -97274,7 +97290,7 @@ var init_variants = __esm({
97274
97290
  }
97275
97291
  });
97276
97292
 
97277
- // ../src/database/canonical-json.ts
97293
+ // ../packages/neoscript-runtime/src/values/canonical-json.ts
97278
97294
  function canonicalJsonStringify(value) {
97279
97295
  return JSON.stringify(toCanonicalJsonValue(value));
97280
97296
  }
@@ -97319,13 +97335,13 @@ function toCanonicalJsonValue(value) {
97319
97335
  return canonicalObject;
97320
97336
  }
97321
97337
  var init_canonical_json = __esm({
97322
- "../src/database/canonical-json.ts"() {
97338
+ "../packages/neoscript-runtime/src/values/canonical-json.ts"() {
97323
97339
  "use strict";
97324
97340
  init_value_comparison();
97325
97341
  }
97326
97342
  });
97327
97343
 
97328
- // ../src/runtime/effective-value-reader.ts
97344
+ // ../packages/neoscript-runtime/src/effective-value-reader.ts
97329
97345
  function rootReadScope(document) {
97330
97346
  const cached = rootReadScopes.get(document);
97331
97347
  if (cached !== void 0 && cached.members === document.members && cached.values === document.values && cached.variants === document.variants) {
@@ -97601,7 +97617,7 @@ function isAggregateTypeInfo2(type) {
97601
97617
  }
97602
97618
  var rootReadScopes, EffectiveValueReader;
97603
97619
  var init_effective_value_reader = __esm({
97604
- "../src/runtime/effective-value-reader.ts"() {
97620
+ "../packages/neoscript-runtime/src/effective-value-reader.ts"() {
97605
97621
  "use strict";
97606
97622
  init_canonical_json();
97607
97623
  init_effective_value_comparison();
@@ -98009,7 +98025,7 @@ var init_effective_value_reader = __esm({
98009
98025
  }
98010
98026
  });
98011
98027
 
98012
- // ../src/runtime/virtual-instance-values.ts
98028
+ // ../packages/neoscript-runtime/src/virtual-instance-values.ts
98013
98029
  function expandStoredInstance2(args) {
98014
98030
  return expandStoredInstance({
98015
98031
  ...args,
@@ -98035,7 +98051,7 @@ function resolveStoredClassValue2(args) {
98035
98051
  });
98036
98052
  }
98037
98053
  var init_virtual_instance_values = __esm({
98038
- "../src/runtime/virtual-instance-values.ts"() {
98054
+ "../packages/neoscript-runtime/src/virtual-instance-values.ts"() {
98039
98055
  "use strict";
98040
98056
  init_evaluateInitializer();
98041
98057
  init_virtual_instance_graph();
@@ -98131,9 +98147,7 @@ function compileDelegateClosureValue(code, signature) {
98131
98147
  var init_compile_delegate_closure = __esm({
98132
98148
  "../src/database/neoscript/compile-delegate-closure.ts"() {
98133
98149
  "use strict";
98134
- init_members();
98135
98150
  init_neoscript_guards();
98136
- init_neoscript_types();
98137
98151
  init_compile();
98138
98152
  }
98139
98153
  });
@@ -98977,7 +98991,7 @@ var init_document_initializer_compiler = __esm({
98977
98991
  }
98978
98992
  });
98979
98993
 
98980
- // ../src/runtime/materialize-values.ts
98994
+ // ../packages/neoscript-runtime/src/materialize-values.ts
98981
98995
  function materializeInitializerValue2(args) {
98982
98996
  return materializeInitializerValue({
98983
98997
  ...args,
@@ -98985,7 +98999,7 @@ function materializeInitializerValue2(args) {
98985
98999
  });
98986
99000
  }
98987
99001
  var init_materialize_values = __esm({
98988
- "../src/runtime/materialize-values.ts"() {
99002
+ "../packages/neoscript-runtime/src/materialize-values.ts"() {
98989
99003
  "use strict";
98990
99004
  init_evaluateInitializer();
98991
99005
  init_initializer_materialization();
@@ -99113,7 +99127,7 @@ var init_project_read_base = __esm({
99113
99127
  }
99114
99128
  });
99115
99129
 
99116
- // ../src/models/dialogue/dialogue-types.ts
99130
+ // ../packages/models/src/dialogue/dialogue-types.ts
99117
99131
  function isNonArrayObject(value) {
99118
99132
  if (!isRequiredType(value, isObject)) return false;
99119
99133
  return !Array.isArray(value);
@@ -99410,18 +99424,17 @@ function isDialogue(value) {
99410
99424
  return isDialogueProps(value);
99411
99425
  }
99412
99426
  var init_dialogue_types2 = __esm({
99413
- "../src/models/dialogue/dialogue-types.ts"() {
99427
+ "../packages/models/src/dialogue/dialogue-types.ts"() {
99414
99428
  "use strict";
99415
99429
  init_core_types();
99416
99430
  init_structural_narrow();
99417
- init_member_kind_enum();
99418
99431
  init_logic_types();
99419
99432
  init_neoscript_guards();
99420
99433
  init_dialogue_source_identifiers();
99421
99434
  }
99422
99435
  });
99423
99436
 
99424
- // ../src/models/dialogue/priority-types.ts
99437
+ // ../packages/models/src/dialogue/priority-types.ts
99425
99438
  function isPriorityTypeBase(value) {
99426
99439
  const v = value;
99427
99440
  if (typeof v !== "object") return false;
@@ -99462,7 +99475,7 @@ function isPriorityGroup(value) {
99462
99475
  }
99463
99476
  var DEFAULT_PRIORITY_OPTION_IDS, DefaultPriorityGroup;
99464
99477
  var init_priority_types = __esm({
99465
- "../src/models/dialogue/priority-types.ts"() {
99478
+ "../packages/models/src/dialogue/priority-types.ts"() {
99466
99479
  "use strict";
99467
99480
  init_core_types();
99468
99481
  DEFAULT_PRIORITY_OPTION_IDS = {
@@ -100755,7 +100768,7 @@ var init_project_document_read = __esm({
100755
100768
  }
100756
100769
  });
100757
100770
 
100758
- // ../src/models/localization/localized-text-create-envelope.ts
100771
+ // ../packages/models/src/localization/localized-text-create-envelope.ts
100759
100772
  function completeLocalizedTextCreateEnvelope(data, config) {
100760
100773
  const text = asUnknownRecord(data);
100761
100774
  if (text === null) return data;
@@ -100810,7 +100823,7 @@ function asUnknownRecord(value) {
100810
100823
  return value;
100811
100824
  }
100812
100825
  var init_localized_text_create_envelope = __esm({
100813
- "../src/models/localization/localized-text-create-envelope.ts"() {
100826
+ "../packages/models/src/localization/localized-text-create-envelope.ts"() {
100814
100827
  "use strict";
100815
100828
  init_localization_types();
100816
100829
  }
@@ -101626,7 +101639,6 @@ var init_neo_script_recompile_scope = __esm({
101626
101639
  init_lexer();
101627
101640
  init_generated_csharp_identifiers();
101628
101641
  init_dialogue_group_language();
101629
- init_member_kind_enum();
101630
101642
  init_member_kinds();
101631
101643
  init_inheritance();
101632
101644
  init_effective_storage();
@@ -102614,7 +102626,6 @@ var UNIVERSAL_SEARCH_MAX_SUBTITLE_BYTES, utf8Encoder;
102614
102626
  var init_universal_search_projection = __esm({
102615
102627
  "../src/models/search/universal-search-projection.ts"() {
102616
102628
  "use strict";
102617
- init_classes();
102618
102629
  UNIVERSAL_SEARCH_MAX_SUBTITLE_BYTES = 512;
102619
102630
  utf8Encoder = new TextEncoder();
102620
102631
  }
@@ -103015,7 +103026,6 @@ var init_valueHeadPlacementGraph = __esm({
103015
103026
  init_classes();
103016
103027
  init_member_kinds();
103017
103028
  init_universal_search_projection();
103018
- init_member_kinds();
103019
103029
  }
103020
103030
  });
103021
103031
 
@@ -103896,7 +103906,6 @@ var init_packed_value_write_fold = __esm({
103896
103906
  init_project();
103897
103907
  init_member_kinds();
103898
103908
  init_effective_distribution();
103899
- init_member_subtree_distribution();
103900
103909
  init_packed_value_encoding();
103901
103910
  init_canonical_json();
103902
103911
  init_constructor_argument_ownership();
@@ -104127,9 +104136,6 @@ var init_project_version_relation_sweep_trigger = __esm({
104127
104136
  var init_packed_root_merge = __esm({
104128
104137
  "../src/database/packed-root-merge.ts"() {
104129
104138
  "use strict";
104130
- init_member_kinds();
104131
- init_packed_value_encoding();
104132
- init_project();
104133
104139
  }
104134
104140
  });
104135
104141
 
@@ -104148,8 +104154,6 @@ var init_immediate_commit_rules = __esm({
104148
104154
  "../src/database/immediate-commit-rules.ts"() {
104149
104155
  "use strict";
104150
104156
  init_core();
104151
- init_member_kinds();
104152
- init_packed_value_encoding();
104153
104157
  init_packed_root_merge();
104154
104158
  init_project_record_semantics();
104155
104159
  WORLD_LAYER_LINK_KINDS = /* @__PURE__ */ new Set([
@@ -107045,7 +107049,6 @@ var init_project_commit_preparation_scoped_loader = __esm({
107045
107049
  init_primary_localized_text_writes();
107046
107050
  init_localization_types();
107047
107051
  init_member_localization();
107048
- init_member_kind_enum();
107049
107052
  init_members();
107050
107053
  init_inheritance();
107051
107054
  init_core();
@@ -107371,7 +107374,6 @@ var init_dialogue_context_resolver = __esm({
107371
107374
  "../src/models/dialogue-context-resolver.ts"() {
107372
107375
  "use strict";
107373
107376
  init_member_kinds();
107374
- init_dialogue_group_types();
107375
107377
  init_neoscript_types();
107376
107378
  }
107377
107379
  });
@@ -107725,7 +107727,6 @@ function isPrimitiveTextVariableType(typeInfo) {
107725
107727
  var init_dialogue_logic_compile_pure = __esm({
107726
107728
  "../src/database/dialogue-logic-compile-pure.ts"() {
107727
107729
  "use strict";
107728
- init_members();
107729
107730
  init_logic_types();
107730
107731
  init_neoscript();
107731
107732
  init_dialogue_context_resolver2();
@@ -107733,15 +107734,14 @@ var init_dialogue_logic_compile_pure = __esm({
107733
107734
  }
107734
107735
  });
107735
107736
 
107736
- // ../src/runtime/neoscript/index.ts
107737
+ // ../packages/neoscript-runtime/src/neoscript/index.ts
107737
107738
  var init_neoscript2 = __esm({
107738
- "../src/runtime/neoscript/index.ts"() {
107739
+ "../packages/neoscript-runtime/src/neoscript/index.ts"() {
107739
107740
  "use strict";
107740
107741
  init_NSGetterRuntimeError();
107741
107742
  init_evaluateNSGetter();
107742
107743
  init_evaluateInitializer();
107743
107744
  init_initializer_context();
107744
- init_getter_subscriptions();
107745
107745
  }
107746
107746
  });
107747
107747
 
@@ -109114,7 +109114,7 @@ var init_project_migration_member_listeners = __esm({
109114
109114
  }
109115
109115
  });
109116
109116
 
109117
- // ../src/runtime/tile-class-conversion.ts
109117
+ // ../packages/neoscript-runtime/src/tile-class-conversion.ts
109118
109118
  function planTileClassConversion(args) {
109119
109119
  if (args.storedRoot.classId === args.targetClassId) {
109120
109120
  return { nextRoot: args.storedRoot, creates: [] };
@@ -109172,7 +109172,7 @@ function record6(value) {
109172
109172
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
109173
109173
  }
109174
109174
  var init_tile_class_conversion = __esm({
109175
- "../src/runtime/tile-class-conversion.ts"() {
109175
+ "../packages/neoscript-runtime/src/tile-class-conversion.ts"() {
109176
109176
  "use strict";
109177
109177
  init_instance_provenance();
109178
109178
  init_virtual_instance_values();
@@ -109440,15 +109440,8 @@ function compileProjectMigrationAction(document, migration) {
109440
109440
  var init_project_migration_runner = __esm({
109441
109441
  "../src/database/project-migration-runner.ts"() {
109442
109442
  "use strict";
109443
- init_evaluateNSGetter();
109444
109443
  init_project_migration_member_listeners();
109445
109444
  init_compiler_adapter();
109446
- init_neoscript2();
109447
- init_members();
109448
- init_packed_value_encoding();
109449
- init_project_root_members();
109450
- init_virtual_instance_values();
109451
- init_tile_class_conversion();
109452
109445
  init_project_version_intents();
109453
109446
  init_compile_ns_property();
109454
109447
  init_project_migration_created_values();
@@ -109774,11 +109767,6 @@ var SourceBodyCompileError, VOID_ACTION_TYPE_INFO, BOOL_TYPE_INFO, STRING_TYPE_I
109774
109767
  var init_general_function_call_ir_source_recompile = __esm({
109775
109768
  "../src/database/general-function-call-ir-source-recompile.ts"() {
109776
109769
  "use strict";
109777
- init_members();
109778
- init_core();
109779
- init_dialogue_types2();
109780
- init_logic_types();
109781
- init_inheritance();
109782
109770
  init_project_content_hash();
109783
109771
  init_project_document_read();
109784
109772
  init_compile_ns_property();
@@ -109786,7 +109774,6 @@ var init_general_function_call_ir_source_recompile = __esm({
109786
109774
  init_dialogue_logic_compile_pure();
109787
109775
  init_project_migration_runner();
109788
109776
  init_compiler_adapter();
109789
- init_neoscript();
109790
109777
  init_dialogue_node_index();
109791
109778
  init_strict_ir();
109792
109779
  init_neo_script_derived_bodies();
@@ -116588,7 +116575,6 @@ var init_user_delegate_target_validation = __esm({
116588
116575
  "../src/database/user-delegate-target-validation.ts"() {
116589
116576
  "use strict";
116590
116577
  init_member_kinds();
116591
- init_member_storage();
116592
116578
  init_effective_storage();
116593
116579
  init_project_root_members();
116594
116580
  init_project_schema_index();
@@ -116684,7 +116670,6 @@ var init_animation_clips = __esm({
116684
116670
  init_member_kinds();
116685
116671
  init_structured_leaf_fields();
116686
116672
  init_effective_storage();
116687
- init_member_storage();
116688
116673
  init_neoscript_types();
116689
116674
  init_neoscript_guards();
116690
116675
  init_members();
@@ -118258,7 +118243,6 @@ var init_projectVariantValidation = __esm({
118258
118243
  "use strict";
118259
118244
  init_generated_csharp_identifiers();
118260
118245
  init_project_source_variants();
118261
- init_classes();
118262
118246
  VARIANT_WORLD_KIND = "variant";
118263
118247
  VARIANT_FOLDER_WORLD_KIND = "variantFolder";
118264
118248
  LOOKUP_VARIANT_WORLD_KIND = "lookupVariant";
@@ -120836,7 +120820,6 @@ var init_projectInterfaceValidation = __esm({
120836
120820
  init_generated_csharp_identifiers();
120837
120821
  init_project_source_identifiers();
120838
120822
  init_classes();
120839
- init_interface_types();
120840
120823
  init_member_kinds();
120841
120824
  init_float32();
120842
120825
  init_stored_value_shape();
@@ -121469,8 +121452,6 @@ var SYSTEM_OWNED_OPERATIONS;
121469
121452
  var init_reserved_record_id_validation = __esm({
121470
121453
  "../src/database/reserved-record-id-validation.ts"() {
121471
121454
  "use strict";
121472
- init_system_record_id();
121473
- init_world_system_classes();
121474
121455
  SYSTEM_OWNED_OPERATIONS = /* @__PURE__ */ new Set([
121475
121456
  "migration",
121476
121457
  "version-create"
@@ -134039,7 +134020,6 @@ var init_value_sources = __esm({
134039
134020
  init_constructor_argument_ownership();
134040
134021
  init_compile();
134041
134022
  init_variant_value_graph();
134042
- init_classes();
134043
134023
  init_world_system_classes();
134044
134024
  init_members();
134045
134025
  init_instance_provenance();
@@ -139215,8 +139195,12 @@ ${statements.join("\n")}
139215
139195
  STATIC_MEMBER_OWNERSHIP_RECOVERY_SOURCE
139216
139196
  );
139217
139197
  }
139198
+ const formatSource = options.formatSource;
139218
139199
  return {
139219
- files,
139200
+ files: formatSource ? files.map((file) => ({
139201
+ ...file,
139202
+ content: formatSource(file.path, file.content)
139203
+ })) : files,
139220
139204
  recordFiles,
139221
139205
  materializedConstructors,
139222
139206
  materializedConstructorOverrideKeys,
@@ -143473,6 +143457,7 @@ var init_dialogue_status_cache = __esm({
143473
143457
  // node_modules/ignore/index.js
143474
143458
  var require_ignore = __commonJS({
143475
143459
  "node_modules/ignore/index.js"(exports, module) {
143460
+ "use strict";
143476
143461
  function makeArray(subject) {
143477
143462
  return Array.isArray(subject) ? subject : [subject];
143478
143463
  }
@@ -145965,6 +145950,52 @@ var init_status_output = __esm({
145965
145950
  }
145966
145951
  });
145967
145952
 
145953
+ // ../packages/neoscript-language/src/node-format-options.ts
145954
+ import { parseSync } from "editorconfig";
145955
+ function readNeoScriptFormatOptions(path, fallback = {}, cache) {
145956
+ const config = parseSync(path, cache ? { cache } : {});
145957
+ const indentSize = config.indent_size === "tab" ? config.tab_width : config.indent_size;
145958
+ const options = {
145959
+ ...DEFAULT_NEO_SCRIPT_FORMAT_OPTIONS,
145960
+ ...fallback,
145961
+ ...config.indent_style === "tab" || config.indent_style === "space" ? { insertSpaces: config.indent_style === "space" } : {},
145962
+ ...typeof indentSize === "number" && Number.isInteger(indentSize) && indentSize > 0 && indentSize <= 100 ? { tabSize: indentSize } : {},
145963
+ ...config.end_of_line === "lf" ? { endOfLine: "\n" } : {},
145964
+ ...config.end_of_line === "crlf" ? { endOfLine: "\r\n" } : {},
145965
+ ...config.end_of_line === "cr" ? { endOfLine: "\r" } : {},
145966
+ ...typeof config.insert_final_newline === "boolean" ? { finalNewline: config.insert_final_newline } : {},
145967
+ ...typeof config.trim_trailing_whitespace === "boolean" ? { trimTrailingWhitespace: config.trim_trailing_whitespace } : {}
145968
+ };
145969
+ return options;
145970
+ }
145971
+ function createNeoScriptFormatOptionsResolver() {
145972
+ const cache = /* @__PURE__ */ new Map();
145973
+ return (path, fallback) => readNeoScriptFormatOptions(path, fallback, cache);
145974
+ }
145975
+ var init_node_format_options = __esm({
145976
+ "../packages/neoscript-language/src/node-format-options.ts"() {
145977
+ "use strict";
145978
+ init_formatter();
145979
+ }
145980
+ });
145981
+
145982
+ // src/project-source/workspace-format.ts
145983
+ import { join as join10 } from "node:path";
145984
+ function createWorkspaceSourceFormatter(root) {
145985
+ const optionsFor = createNeoScriptFormatOptionsResolver();
145986
+ return (path, source) => formatNeoScript(source, {
145987
+ ...optionsFor(join10(root, path)),
145988
+ kind: "definition"
145989
+ });
145990
+ }
145991
+ var init_workspace_format = __esm({
145992
+ "src/project-source/workspace-format.ts"() {
145993
+ "use strict";
145994
+ init_formatter();
145995
+ init_node_format_options();
145996
+ }
145997
+ });
145998
+
145968
145999
  // src/project-source/project-file-source-preservation.ts
145969
146000
  function applySourceEdits(source, edits, start = 0, end = source.length) {
145970
146001
  const chunks = [];
@@ -155049,6 +155080,7 @@ function gzipSync(data, opts) {
155049
155080
  var require2, _a, Worker4, isMarkedAsUntransferable, u8, u16, i32, fleb, fdeb, clim, freb, _a, fl, revfl, _b, fd, revfd, rev, x, i, hMap, flt, i, i, i, i, fdt, i, flm, fdm, shft, slc, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, deo, et, dflt, crct, crc, dopt, wbytes, gzh, gzhl, td, tds;
155050
155081
  var init_esm = __esm({
155051
155082
  "../node_modules/fflate/esm/index.mjs"() {
155083
+ "use strict";
155052
155084
  require2 = createRequire("/");
155053
155085
  try {
155054
155086
  _a = require2("worker_threads"), Worker4 = _a.Worker, isMarkedAsUntransferable = _a.isMarkedAsUntransferable;
@@ -155615,7 +155647,6 @@ var init_client_commit_transport = __esm({
155615
155647
  var init_project_version_semver = __esm({
155616
155648
  "../src/database/project-version-semver.ts"() {
155617
155649
  "use strict";
155618
- init_project();
155619
155650
  }
155620
155651
  });
155621
155652
 
@@ -155624,10 +155655,8 @@ var ProjectVersionBumpRequiredError;
155624
155655
  var init_project_version_compatibility = __esm({
155625
155656
  "../src/database/project-version-compatibility.ts"() {
155626
155657
  "use strict";
155627
- init_project();
155628
155658
  init_project_version_semver();
155629
155659
  init_project_version_intents();
155630
- init_internal_record_relations();
155631
155660
  ProjectVersionBumpRequiredError = class extends Error {
155632
155661
  response;
155633
155662
  constructor(response) {
@@ -156029,25 +156058,25 @@ var init_client_commit_submit = __esm({
156029
156058
  import { spawn } from "node:child_process";
156030
156059
  import { createHash as createHash9 } from "node:crypto";
156031
156060
  import { existsSync as existsSync9, readFileSync as readFileSync12, readdirSync as readdirSync3 } from "node:fs";
156032
- import { join as join10, relative as relative5, sep as sep5 } from "node:path";
156061
+ import { join as join11, relative as relative5, sep as sep5 } from "node:path";
156033
156062
  function fingerprintPushInputs(workspace, options = {}) {
156034
156063
  const paths = /* @__PURE__ */ new Set([
156035
- join10(workspace.root, "neo.json"),
156064
+ join11(workspace.root, "neo.json"),
156036
156065
  ...listProjectSourceFilesV4(workspace.root),
156037
156066
  ...options.includeTests === false ? [] : listProjectTestFilesV1(workspace.root),
156038
- ...workspace.config.unityConfigPath === void 0 ? [] : [join10(workspace.root, workspace.config.unityConfigPath)]
156067
+ ...workspace.config.unityConfigPath === void 0 ? [] : [join11(workspace.root, workspace.config.unityConfigPath)]
156039
156068
  ]);
156040
156069
  const visitManaged = (directory) => {
156041
156070
  if (!existsSync9(directory)) return;
156042
156071
  for (const entry of readdirSync3(directory, { withFileTypes: true })) {
156043
156072
  if (entry.isSymbolicLink()) continue;
156044
- const path = join10(directory, entry.name);
156073
+ const path = join11(directory, entry.name);
156045
156074
  if (entry.isDirectory()) visitManaged(path);
156046
156075
  else if (entry.isFile()) paths.add(path);
156047
156076
  }
156048
156077
  };
156049
- visitManaged(join10(workspace.root, "Files", "Images"));
156050
- visitManaged(join10(workspace.root, "Files", "AudioClips"));
156078
+ visitManaged(join11(workspace.root, "Files", "Images"));
156079
+ visitManaged(join11(workspace.root, "Files", "AudioClips"));
156051
156080
  const hash = createHash9("sha256");
156052
156081
  for (const path of [...paths].sort()) {
156053
156082
  const name = relative5(workspace.root, path).split(sep5).join("/");
@@ -156226,7 +156255,7 @@ import {
156226
156255
  writeFileSync as writeFileSync10
156227
156256
  } from "node:fs";
156228
156257
  import { tmpdir } from "node:os";
156229
- import { join as join11 } from "node:path";
156258
+ import { join as join12 } from "node:path";
156230
156259
  async function pullProjectBinariesV4(args) {
156231
156260
  const resolvePath = createWorkspaceSourcePathResolver(args.workspace.root);
156232
156261
  const plans = /* @__PURE__ */ new Map();
@@ -156292,7 +156321,7 @@ async function pullProjectBinariesV4(args) {
156292
156321
  try {
156293
156322
  const stagedPaths = /* @__PURE__ */ new Map();
156294
156323
  if (downloads.length > 0) {
156295
- stagingDirectory = mkdtempSync(join11(tmpdir(), "neo-pull-files-"));
156324
+ stagingDirectory = mkdtempSync(join12(tmpdir(), "neo-pull-files-"));
156296
156325
  const directory = stagingDirectory;
156297
156326
  const client = args.client ?? NeoApiClient.forBaseUrl(args.workspace.config.apiBaseUrl);
156298
156327
  await mapWithConcurrency(
@@ -156310,7 +156339,7 @@ async function pullProjectBinariesV4(args) {
156310
156339
  `Project file ${plan.fileId} content changed while pull was in progress (${plan.remoteDigest} -> ${response.sha256}). Pull again against a stable version head.`
156311
156340
  );
156312
156341
  }
156313
- const stagedPath = join11(directory, String(index));
156342
+ const stagedPath = join12(directory, String(index));
156314
156343
  writeFileSync10(stagedPath, response.bytes);
156315
156344
  stagedPaths.set(plan.fileId, stagedPath);
156316
156345
  }
@@ -156479,7 +156508,7 @@ function fileName(data) {
156479
156508
  }
156480
156509
  function removePreviousConflict(root, state) {
156481
156510
  if (state?.conflict?.artifactPath === void 0) return;
156482
- rmSync6(join11(root, state.conflict.artifactPath), { force: true });
156511
+ rmSync6(join12(root, state.conflict.artifactPath), { force: true });
156483
156512
  }
156484
156513
  var DOWNLOAD_CONCURRENCY;
156485
156514
  var init_project_file_pull = __esm({
@@ -156496,7 +156525,7 @@ var init_project_file_pull = __esm({
156496
156525
  });
156497
156526
 
156498
156527
  // src/project-source/project-file-push.ts
156499
- import { join as join12 } from "node:path";
156528
+ import { join as join13 } from "node:path";
156500
156529
  import { readFileSync as readFileSync14 } from "node:fs";
156501
156530
  import { randomUUID as randomUUID4 } from "node:crypto";
156502
156531
  async function cleanupRejectedProjectFilePushesV4(args) {
@@ -156560,7 +156589,7 @@ function prepareProjectFilePushesV4(args) {
156560
156589
  `Project file ${recordId} has upload bytes but its source change has no record data.`
156561
156590
  );
156562
156591
  }
156563
- const absolute = join12(args.workspace.root, binary.path);
156592
+ const absolute = join13(args.workspace.root, binary.path);
156564
156593
  const bytes = new Uint8Array(readFileSync14(absolute));
156565
156594
  const digest2 = sha256Bytes(bytes);
156566
156595
  if (binary.localSha256 !== null && digest2 !== binary.localSha256) {
@@ -157187,9 +157216,7 @@ function collectNeoScriptFileReferences(roots, files) {
157187
157216
  var init_neoscript_file_references = __esm({
157188
157217
  "../src/models/exports/neoscript-file-references.ts"() {
157189
157218
  "use strict";
157190
- init_member_kind_enum();
157191
157219
  init_neoscript_guards();
157192
- init_neoscript_types();
157193
157220
  }
157194
157221
  });
157195
157222
 
@@ -157563,6 +157590,7 @@ function parseNumberSkeleton(tokens) {
157563
157590
  var DATE_TIME_REGEX, WHITE_SPACE_REGEX, FRACTION_PRECISION_REGEX, SIGNIFICANT_PRECISION_REGEX, INTEGER_WIDTH_REGEX, CONCISE_INTEGER_WIDTH_REGEX;
157564
157591
  var init_icu_skeleton_parser = __esm({
157565
157592
  "../node_modules/@formatjs/icu-skeleton-parser/index.js"() {
157593
+ "use strict";
157566
157594
  DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;
157567
157595
  WHITE_SPACE_REGEX = /[\t-\r \x85\u200E\u200F\u2028\u2029]/i;
157568
157596
  FRACTION_PRECISION_REGEX = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g;
@@ -157741,6 +157769,7 @@ function parse3(message, opts = {}) {
157741
157769
  var ErrorKind, SPACE_SEPARATOR_REGEX, IDENTIFIER_PREFIX_REGEX, timeData, SPACE_SEPARATOR_START_REGEX, SPACE_SEPARATOR_END_REGEX, hasNativeFromEntries, hasTrimStart, hasTrimEnd, fromEntries, trimStart, trimEnd, IDENTIFIER_PREFIX_RE, Parser2;
157742
157770
  var init_icu_messageformat_parser = __esm({
157743
157771
  "../node_modules/@formatjs/icu-messageformat-parser/index.js"() {
157772
+ "use strict";
157744
157773
  init_icu_skeleton_parser();
157745
157774
  ErrorKind = /* @__PURE__ */ (function(ErrorKind2) {
157746
157775
  ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_CLOSING_BRACE"] = 1] = "EXPECT_ARGUMENT_CLOSING_BRACE";
@@ -160510,7 +160539,6 @@ var init_project_unity_export_utils = __esm({
160510
160539
  init_classes();
160511
160540
  init_generics();
160512
160541
  init_core();
160513
- init_files();
160514
160542
  init_localization_types();
160515
160543
  init_members();
160516
160544
  init_project_unity_localization_smart_format();
@@ -160582,7 +160610,7 @@ var init_project_unity_export_utils = __esm({
160582
160610
  }
160583
160611
  });
160584
160612
 
160585
- // ../src/models/interfaces/interface-conformance.ts
160613
+ // ../packages/models/src/interfaces/interface-conformance.ts
160586
160614
  function functionsCompatible(left, right) {
160587
160615
  if (!isInterfaceFunctionMember(left) || !isInterfaceFunctionMember(right)) {
160588
160616
  return false;
@@ -160993,10 +161021,9 @@ function resolveMemberImplementation(schemaClass2, group, context) {
160993
161021
  return { state: "conforming", member, schemaEntry };
160994
161022
  }
160995
161023
  var init_interface_conformance = __esm({
160996
- "../src/models/interfaces/interface-conformance.ts"() {
161024
+ "../packages/models/src/interfaces/interface-conformance.ts"() {
160997
161025
  "use strict";
160998
161026
  init_member_kinds();
160999
- init_member_storage();
161000
161027
  init_classes();
161001
161028
  init_generics();
161002
161029
  init_inheritance();
@@ -168877,7 +168904,6 @@ var init_generate_unity_classes = __esm({
168877
168904
  init_interface_types();
168878
168905
  init_interface_graph();
168879
168906
  init_internal_record_relations();
168880
- init_dialogue_group_types();
168881
168907
  init_inheritance();
168882
168908
  init_neoscript();
168883
168909
  init_unity_codegen_docs();
@@ -169057,7 +169083,6 @@ function buildProjectUnityExport(document, metadata, fileReferenceCache) {
169057
169083
  var init_project_version_contracts = __esm({
169058
169084
  "../src/database/project-version-contracts.ts"() {
169059
169085
  "use strict";
169060
- init_project();
169061
169086
  init_project_unity_export_utils();
169062
169087
  init_unity_codegen_docs();
169063
169088
  init_generate_unity_classes();
@@ -169065,7 +169090,7 @@ var init_project_version_contracts = __esm({
169065
169090
  }
169066
169091
  });
169067
169092
 
169068
- // ../src/models/dialogue/dialogue-diagnostics.ts
169093
+ // ../packages/models/src/dialogue/dialogue-diagnostics.ts
169069
169094
  function buildDialogueSemanticDiagnostics(args) {
169070
169095
  const context = buildDialogueSemanticDiagnosticContext(args);
169071
169096
  const diagnostics = args.dialogues.flatMap(
@@ -171424,7 +171449,7 @@ function optionLabel(option) {
171424
171449
  return option.id;
171425
171450
  }
171426
171451
  var init_dialogue_diagnostics = __esm({
171427
- "../src/models/dialogue/dialogue-diagnostics.ts"() {
171452
+ "../packages/models/src/dialogue/dialogue-diagnostics.ts"() {
171428
171453
  "use strict";
171429
171454
  init_members();
171430
171455
  init_inheritance();
@@ -171432,9 +171457,6 @@ var init_dialogue_diagnostics = __esm({
171432
171457
  init_interface_types();
171433
171458
  init_interface_graph();
171434
171459
  init_neoscript();
171435
- init_dialogue_types2();
171436
- init_dialogue_group_types();
171437
- init_logic_types();
171438
171460
  init_core();
171439
171461
  init_lookup_declared_type();
171440
171462
  init_members();
@@ -172201,7 +172223,6 @@ var init_project_unity_export_diagnostics = __esm({
172201
172223
  "use strict";
172202
172224
  init_project_world_placement_bindings();
172203
172225
  init_dialogue_diagnostics();
172204
- init_dialogue_types2();
172205
172226
  init_members();
172206
172227
  init_core_types();
172207
172228
  init_inheritance();
@@ -172606,14 +172627,14 @@ var init_local_export_preparation = __esm({
172606
172627
  // src/unity-export-artifacts.ts
172607
172628
  import { createHash as createHash11 } from "node:crypto";
172608
172629
  import { readFileSync as readFileSync15 } from "node:fs";
172609
- import { join as join13 } from "node:path";
172630
+ import { join as join14 } from "node:path";
172610
172631
  function hashBytes(bytes) {
172611
172632
  return createHash11("sha256").update(bytes).digest("hex");
172612
172633
  }
172613
172634
  function readUnityExportArtifact(root, hash) {
172614
172635
  if (!/^[a-f0-9]{64}$/.test(hash)) return void 0;
172615
172636
  try {
172616
- const content = readFileSync15(join13(root, ARTIFACTS_PATH, hash));
172637
+ const content = readFileSync15(join14(root, ARTIFACTS_PATH, hash));
172617
172638
  return hashBytes(content) === hash ? content : void 0;
172618
172639
  } catch {
172619
172640
  return void 0;
@@ -172855,10 +172876,10 @@ import {
172855
172876
  unlinkSync as unlinkSync2,
172856
172877
  writeFileSync as writeFileSync11
172857
172878
  } from "node:fs";
172858
- import { basename as basename2, dirname as dirname9, join as join14 } from "node:path";
172879
+ import { basename as basename2, dirname as dirname9, join as join15 } from "node:path";
172859
172880
  function writeUnityFile(path, content) {
172860
172881
  mkdirSync10(dirname9(path), { recursive: true });
172861
- const temporary = join14(
172882
+ const temporary = join15(
172862
172883
  dirname9(path),
172863
172884
  `.${basename2(path)}.${randomUUID5()}.tmp`
172864
172885
  );
@@ -172924,7 +172945,7 @@ function readManifest(path, content = readFileIfExists(path)) {
172924
172945
  return { projectId: data.projectId, codegenRevision, files };
172925
172946
  }
172926
172947
  function unityGeneratedOutputHashes(directory, projectId) {
172927
- const manifestPath = join14(directory, MANIFEST_FILE);
172948
+ const manifestPath = join15(directory, MANIFEST_FILE);
172928
172949
  const manifestBytes = readFileIfExists(manifestPath);
172929
172950
  if (manifestBytes === null) return null;
172930
172951
  const manifest = readManifest(manifestPath, manifestBytes);
@@ -172935,7 +172956,7 @@ function unityGeneratedOutputHashes(directory, projectId) {
172935
172956
  hashes.set(manifestPath, sha256(manifestBytes));
172936
172957
  for (const file of manifest.files) {
172937
172958
  if (file.hash === null) return null;
172938
- const path = join14(directory, file.path);
172959
+ const path = join15(directory, file.path);
172939
172960
  const bytes = readFileIfExists(path);
172940
172961
  if (bytes === null || sha256(bytes) !== file.hash) return null;
172941
172962
  hashes.set(path, file.hash);
@@ -172961,7 +172982,7 @@ function planUnityGeneratedFiles(directory, projectId, files) {
172961
172982
  if (file.content.trim().length === 0)
172962
172983
  throw new Error(`Empty generated C# file: ${file.path}`);
172963
172984
  }
172964
- const manifestPath = join14(directory, MANIFEST_FILE);
172985
+ const manifestPath = join15(directory, MANIFEST_FILE);
172965
172986
  const manifest = readManifest(manifestPath);
172966
172987
  const previousFiles = manifest?.files ?? [];
172967
172988
  const previousById = new Map(previousFiles.map((file) => [file.id, file]));
@@ -172974,23 +172995,23 @@ function planUnityGeneratedFiles(directory, projectId, files) {
172974
172995
  if (incomingById.get(file.id)?.path === file.path && manifest?.projectId === projectId)
172975
172996
  continue;
172976
172997
  operations.push(
172977
- [join14(directory, file.path), null],
172978
- [join14(directory, file.path + ".meta"), null]
172998
+ [join15(directory, file.path), null],
172999
+ [join15(directory, file.path + ".meta"), null]
172979
173000
  );
172980
173001
  }
172981
173002
  operations.push(
172982
- [join14(directory, "NeoGeneratedTypes.cs"), null],
172983
- [join14(directory, "NeoGeneratedTypes.cs.meta"), null]
173003
+ [join15(directory, "NeoGeneratedTypes.cs"), null],
173004
+ [join15(directory, "NeoGeneratedTypes.cs.meta"), null]
172984
173005
  );
172985
173006
  for (const file of files) {
172986
173007
  const old = manifest?.projectId === projectId ? previousById.get(file.id) : void 0;
172987
- const path = join14(directory, file.path);
173008
+ const path = join15(directory, file.path);
172988
173009
  if (old !== void 0 && old.path !== file.path) {
172989
173010
  if (!previousPaths.has(file.path.toLowerCase()) && (existsSync11(path) || existsSync11(path + ".meta")))
172990
173011
  throw new Error(
172991
173012
  `Generated rename destination is not owned by the manifest: ${file.path}`
172992
173013
  );
172993
- const meta = join14(directory, old.path + ".meta");
173014
+ const meta = join15(directory, old.path + ".meta");
172994
173015
  operations.push([
172995
173016
  path + ".meta",
172996
173017
  existsSync11(meta) ? readFileSync16(meta, "utf8") : null
@@ -173069,7 +173090,7 @@ var init_unity_generated_files = __esm({
173069
173090
  // src/export-cache.ts
173070
173091
  import { createHash as createHash14 } from "node:crypto";
173071
173092
  import { readFileSync as readFileSync17, readdirSync as readdirSync4, rmSync as rmSync8 } from "node:fs";
173072
- import { basename as basename3, dirname as dirname10, join as join15, relative as relative6, sep as sep6 } from "node:path";
173093
+ import { basename as basename3, dirname as dirname10, join as join16, relative as relative6, sep as sep6 } from "node:path";
173073
173094
  function readIfExists(path) {
173074
173095
  try {
173075
173096
  return readFileSync17(path);
@@ -173080,10 +173101,10 @@ function readIfExists(path) {
173080
173101
  }
173081
173102
  }
173082
173103
  function isManagedOutput(path, target, jsonDirectories) {
173083
- if (path === join15(target.projectJsonDirectory, "project.json")) return true;
173104
+ if (path === join16(target.projectJsonDirectory, "project.json")) return true;
173084
173105
  if (jsonDirectories.has(dirname10(path)) && basename3(path).endsWith(".json"))
173085
173106
  return true;
173086
- if (path === join15(target.generatedTypesDirectory, "NeoGeneratedFiles.json"))
173107
+ if (path === join16(target.generatedTypesDirectory, "NeoGeneratedFiles.json"))
173087
173108
  return true;
173088
173109
  const generated = relative6(target.generatedTypesDirectory, path).split(sep6).join("/");
173089
173110
  return /^Generated\/[a-zA-Z0-9_%./-]+\.g\.cs$/.test(generated) && generated.split("/").every((part) => part !== "." && part !== ".." && part !== "");
@@ -173178,7 +173199,7 @@ function jsonFiles(directory) {
173178
173199
  function readReceipt(root) {
173179
173200
  try {
173180
173201
  const cache = JSON.parse(
173181
- readFileSync17(join15(root, CACHE_PATH), "utf8")
173202
+ readFileSync17(join16(root, CACHE_PATH), "utf8")
173182
173203
  );
173183
173204
  if (!isObjectRecord2(cache) || typeof cache.hash !== "string") return null;
173184
173205
  if (!isReceipt(cache.receipt)) return null;
@@ -173292,7 +173313,7 @@ var init_export_cache = __esm({
173292
173313
  if (receipt.inputHash !== inputHash) return null;
173293
173314
  if (receipt.exportStateHash !== exportStateHash(state)) return null;
173294
173315
  const directories = /* @__PURE__ */ new Set([
173295
- join15(target.projectJsonDirectory, "Partitions"),
173316
+ join16(target.projectJsonDirectory, "Partitions"),
173296
173317
  target.localizationResourcesDirectory,
173297
173318
  target.localizationStreamingAssetsDirectory
173298
173319
  ]);
@@ -173316,7 +173337,7 @@ var init_export_cache = __esm({
173316
173337
  for (const directory of receipt.jsonDirectories) {
173317
173338
  const expected = new Set(directory.files);
173318
173339
  for (const file of jsonFiles(directory.path))
173319
- if (!expected.has(file)) deletes.push(join15(directory.path, file));
173340
+ if (!expected.has(file)) deletes.push(join16(directory.path, file));
173320
173341
  }
173321
173342
  } catch {
173322
173343
  return null;
@@ -173333,7 +173354,7 @@ var init_export_cache = __esm({
173333
173354
  retained.add(output.hash);
173334
173355
  if (previousHashes.has(output.hash) && !this.artifactsIncomplete)
173335
173356
  continue;
173336
- const artifact = join15(root, ARTIFACTS_PATH, output.hash);
173357
+ const artifact = join16(root, ARTIFACTS_PATH, output.hash);
173337
173358
  const cached = readIfExists(artifact);
173338
173359
  if (cached !== void 0 && hashBytes(cached) === output.hash) continue;
173339
173360
  const content = contents.get(output.path) ?? readIfExists(output.path);
@@ -173341,7 +173362,7 @@ var init_export_cache = __esm({
173341
173362
  writeUnityFile(artifact, content);
173342
173363
  }
173343
173364
  writeUnityFile(
173344
- join15(root, CACHE_PATH),
173365
+ join16(root, CACHE_PATH),
173345
173366
  JSON.stringify({
173346
173367
  hash: hashBytes(JSON.stringify(receipt)),
173347
173368
  receipt
@@ -173349,7 +173370,7 @@ var init_export_cache = __esm({
173349
173370
  );
173350
173371
  for (const hash of previousHashes)
173351
173372
  if (!retained.has(hash))
173352
- rmSync8(join15(root, ARTIFACTS_PATH, hash), { force: true });
173373
+ rmSync8(join16(root, ARTIFACTS_PATH, hash), { force: true });
173353
173374
  this.artifactsIncomplete = false;
173354
173375
  this.root = root;
173355
173376
  this.receipt = receipt;
@@ -173360,9 +173381,9 @@ var init_export_cache = __esm({
173360
173381
 
173361
173382
  // src/export-state.ts
173362
173383
  import { existsSync as existsSync12, readFileSync as readFileSync18 } from "node:fs";
173363
- import { join as join16 } from "node:path";
173384
+ import { join as join17 } from "node:path";
173364
173385
  function readExportState(root) {
173365
- const path = join16(root, EXPORT_STATE_FILE);
173386
+ const path = join17(root, EXPORT_STATE_FILE);
173366
173387
  if (!existsSync12(path)) return null;
173367
173388
  const parsed = JSON.parse(readFileSync18(path, "utf8"));
173368
173389
  if (typeof parsed !== "object" || parsed === null) {
@@ -173430,7 +173451,7 @@ function readStringMap(path, field, value) {
173430
173451
  return map;
173431
173452
  }
173432
173453
  function writeExportState(root, state) {
173433
- const path = join16(root, EXPORT_STATE_FILE);
173454
+ const path = join17(root, EXPORT_STATE_FILE);
173434
173455
  const content = `${JSON.stringify(state)}
173435
173456
  `;
173436
173457
  if (existsSync12(path) && readFileSync18(path, "utf8") === content) return;
@@ -173442,7 +173463,7 @@ var init_export_state = __esm({
173442
173463
  "use strict";
173443
173464
  init_value_comparison();
173444
173465
  init_unity_generated_files();
173445
- EXPORT_STATE_FILE = join16(".neo", "export.json");
173466
+ EXPORT_STATE_FILE = join17(".neo", "export.json");
173446
173467
  }
173447
173468
  });
173448
173469
 
@@ -173510,7 +173531,6 @@ var RECORD_BOOKKEEPING, CONSTRUCTOR_BODIES;
173510
173531
  var init_unity_codegen_fingerprint = __esm({
173511
173532
  "src/unity-codegen-fingerprint.ts"() {
173512
173533
  "use strict";
173513
- init_member_kind_enum();
173514
173534
  init_unity_codegen_revision();
173515
173535
  init_compiler();
173516
173536
  init_registry();
@@ -173536,11 +173556,11 @@ import {
173536
173556
  readdirSync as readdirSync5,
173537
173557
  statSync as statSync3
173538
173558
  } from "node:fs";
173539
- import { dirname as dirname11, join as join17, relative as relative7, resolve as resolve3, sep as sep7 } from "node:path";
173559
+ import { dirname as dirname11, join as join18, relative as relative7, resolve as resolve3, sep as sep7 } from "node:path";
173540
173560
  async function resolveUnityExportTarget(workspace, unityProject) {
173541
173561
  if (unityProject !== null) {
173542
173562
  const root = resolve3(unityProject);
173543
- if (!isDirectory(join17(root, "Assets"))) {
173563
+ if (!isDirectory(join18(root, "Assets"))) {
173544
173564
  throw new Error(
173545
173565
  `--unity-project "${root}" is not a Unity project: it has no Assets/ folder.`
173546
173566
  );
@@ -173564,7 +173584,7 @@ ${candidates.map((path) => ` ${path}`).join("\n")}`
173564
173584
  const assetPath = resolve3(workspace.root, linked);
173565
173585
  const root = findAncestor(
173566
173586
  dirname11(assetPath),
173567
- (directory) => isDirectory(join17(directory, "Assets"))
173587
+ (directory) => isDirectory(join18(directory, "Assets"))
173568
173588
  );
173569
173589
  if (root === null) {
173570
173590
  throw new Error(
@@ -173578,7 +173598,7 @@ ${candidates.map((path) => ` ${path}`).join("\n")}`
173578
173598
  async function linkDetectedConfigAsset(workspace) {
173579
173599
  const root = findAncestor(
173580
173600
  workspace.root,
173581
- (directory) => isDirectory(join17(directory, "Assets")) && existsSync13(join17(directory, "ProjectSettings", "ProjectVersion.txt"))
173601
+ (directory) => isDirectory(join18(directory, "Assets")) && existsSync13(join18(directory, "ProjectSettings", "ProjectVersion.txt"))
173582
173602
  );
173583
173603
  if (root === null) {
173584
173604
  throw new Error(
@@ -173591,7 +173611,7 @@ async function linkDetectedConfigAsset(workspace) {
173591
173611
  );
173592
173612
  const linkLine = (path) => `"unityConfigPath": "${relativeConfigPath(workspace.root, path)}"`;
173593
173613
  if (candidates.length === 0) {
173594
- const found = assets.length === 0 ? `no NeoComposeConfig asset under "${join17(root, "Assets")}"` : `NeoComposeConfig assets for other projects:
173614
+ const found = assets.length === 0 ? `no NeoComposeConfig asset under "${join18(root, "Assets")}"` : `NeoComposeConfig assets for other projects:
173595
173615
  ${assets.map((path) => ` ${path}`).join("\n")}`;
173596
173616
  throw new Error(
173597
173617
  `"${NEO_CONFIG_FILE}" has no "unityConfigPath", and the Unity project "${root}" has ${found}
@@ -173642,7 +173662,7 @@ function readUnityExportTarget(unityProjectRoot, configAssetPath) {
173642
173662
  `Unity config asset "${configAssetPath}" field "${name}": ${normalized.error}`
173643
173663
  );
173644
173664
  }
173645
- return join17(unityProjectRoot, normalized);
173665
+ return join18(unityProjectRoot, normalized);
173646
173666
  };
173647
173667
  const streaming = field("useStreamingAssetsForNonMainLocales");
173648
173668
  if (streaming !== "0" && streaming !== "1") {
@@ -173705,7 +173725,7 @@ function findConfigAssets(unityProjectRoot) {
173705
173725
  const visit = (directory) => {
173706
173726
  for (const entry of readdirSync5(directory, { withFileTypes: true })) {
173707
173727
  if (entry.name.startsWith(".")) continue;
173708
- const path = join17(directory, entry.name);
173728
+ const path = join18(directory, entry.name);
173709
173729
  if (entry.isDirectory()) {
173710
173730
  if (!entry.name.endsWith("~")) visit(path);
173711
173731
  continue;
@@ -173726,7 +173746,7 @@ function findConfigAssets(unityProjectRoot) {
173726
173746
  }
173727
173747
  }
173728
173748
  };
173729
- visit(join17(unityProjectRoot, "Assets"));
173749
+ visit(join18(unityProjectRoot, "Assets"));
173730
173750
  return found.sort();
173731
173751
  }
173732
173752
  function findAncestor(start, matches) {
@@ -173763,7 +173783,7 @@ __export(export_exports, {
173763
173783
  });
173764
173784
  import { createHash as createHash16, randomUUID as randomUUID6 } from "node:crypto";
173765
173785
  import { existsSync as existsSync14, readFileSync as readFileSync20, readdirSync as readdirSync6 } from "node:fs";
173766
- import { join as join18 } from "node:path";
173786
+ import { join as join19 } from "node:path";
173767
173787
  async function runExport(workspace, options, session) {
173768
173788
  const inputs = exportInputs(workspace);
173769
173789
  const target = await resolveUnityExportTarget(
@@ -173949,7 +173969,7 @@ async function exportUnityProject(args) {
173949
173969
  const read2 = lap();
173950
173970
  let schemaSkew2 = null;
173951
173971
  for (const { path, content, current } of cached.writes) {
173952
- if (path === join18(target.projectJsonDirectory, "project.json"))
173972
+ if (path === join19(target.projectJsonDirectory, "project.json"))
173953
173973
  schemaSkew2 = replacedSchemaVersion(current, content);
173954
173974
  writeUnityFile(path, content);
173955
173975
  }
@@ -174092,18 +174112,18 @@ ${errors.map((error) => ` ${formatDiagnostic(error)}`).join("\n")}`
174092
174112
  const planned = /* @__PURE__ */ new Set([
174093
174113
  ...dataFileBytes.keys(),
174094
174114
  ...localizationFiles.writes.keys(),
174095
- join18(target.generatedTypesDirectory, "NeoGeneratedFiles.json")
174115
+ join19(target.generatedTypesDirectory, "NeoGeneratedFiles.json")
174096
174116
  ]);
174097
174117
  const staleFiles = [
174098
174118
  ...staleJsonFiles(
174099
- join18(target.projectJsonDirectory, PARTITIONS_DIRECTORY),
174119
+ join19(target.projectJsonDirectory, PARTITIONS_DIRECTORY),
174100
174120
  planned
174101
174121
  ),
174102
174122
  ...localizationFiles.directories.flatMap(
174103
174123
  (directory) => staleJsonFiles(directory, planned)
174104
174124
  )
174105
174125
  ];
174106
- const projectJsonPath = join18(target.projectJsonDirectory, PROJECT_JSON_FILE);
174126
+ const projectJsonPath = join19(target.projectJsonDirectory, PROJECT_JSON_FILE);
174107
174127
  let schemaSkew = null;
174108
174128
  onPhase(`Writing changed files into ${target.unityProjectRoot}\u2026`);
174109
174129
  const written = [];
@@ -174186,7 +174206,7 @@ ${errors.map((error) => ` ${formatDiagnostic(error)}`).join("\n")}`
174186
174206
  outputHashes: dataFileHashes,
174187
174207
  generatedOutputHashes: currentGeneratedOutputs ?? /* @__PURE__ */ new Map(),
174188
174208
  jsonDirectories: [
174189
- join18(target.projectJsonDirectory, PARTITIONS_DIRECTORY),
174209
+ join19(target.projectJsonDirectory, PARTITIONS_DIRECTORY),
174190
174210
  ...localizationFiles.directories
174191
174211
  ],
174192
174212
  localChanges: source.localChanges,
@@ -174283,19 +174303,19 @@ function planDataFiles(target, metadata, unityExport) {
174283
174303
  ];
174284
174304
  const files = /* @__PURE__ */ new Map();
174285
174305
  files.set(
174286
- join18(target.projectJsonDirectory, MAIN_PARTITION_FILE),
174306
+ join19(target.projectJsonDirectory, MAIN_PARTITION_FILE),
174287
174307
  JSON.stringify(values, null, 4)
174288
174308
  );
174289
174309
  for (const key of Object.keys(valuePartitions).sort(compareOrdinal)) {
174290
174310
  const file = `${PARTITIONS_DIRECTORY}/${partitionFileName(key)}`;
174291
174311
  partitions.push({ key, file });
174292
174312
  files.set(
174293
- join18(target.projectJsonDirectory, file),
174313
+ join19(target.projectJsonDirectory, file),
174294
174314
  JSON.stringify(valuePartitions[key], null, 4)
174295
174315
  );
174296
174316
  }
174297
174317
  files.set(
174298
- join18(target.projectJsonDirectory, PROJECT_JSON_FILE),
174318
+ join19(target.projectJsonDirectory, PROJECT_JSON_FILE),
174299
174319
  JSON.stringify({ metadata, partitions, ...schema }, null, 4)
174300
174320
  );
174301
174321
  return files;
@@ -174321,7 +174341,7 @@ function planLocalizationFiles(target, unityExport, args) {
174321
174341
  for (const file of files) {
174322
174342
  if (!isSafeLocalizationFileName(file.fileName)) continue;
174323
174343
  const directory = target.useStreamingAssetsForNonMainLocales && file.locale !== mainLocale ? target.localizationStreamingAssetsDirectory : target.localizationResourcesDirectory;
174324
- writes.set(join18(directory, file.fileName), file.content);
174344
+ writes.set(join19(directory, file.fileName), file.content);
174325
174345
  }
174326
174346
  return {
174327
174347
  writes,
@@ -174343,7 +174363,7 @@ function staleJsonFiles(directory, planned) {
174343
174363
  const stale = [];
174344
174364
  for (const entry of readdirSync6(directory, { withFileTypes: true })) {
174345
174365
  if (!entry.isFile() || !entry.name.endsWith(".json")) continue;
174346
- const path = join18(directory, entry.name);
174366
+ const path = join19(directory, entry.name);
174347
174367
  if (!planned.has(path)) stale.push(path);
174348
174368
  }
174349
174369
  return stale;
@@ -174366,8 +174386,8 @@ function replacedSchemaVersion(current, next) {
174366
174386
  return schemaVersion === PROJECT_UNITY_EXPORT_SCHEMA_VERSION ? null : schemaVersion;
174367
174387
  }
174368
174388
  function writeSidecar(unityProjectRoot, args) {
174369
- const directory = join18(unityProjectRoot, "Library", "NeoCompose");
174370
- const path = join18(directory, "export.json");
174389
+ const directory = join19(unityProjectRoot, "Library", "NeoCompose");
174390
+ const path = join19(directory, "export.json");
174371
174391
  if (args.nothingWritten && existsSync14(path)) {
174372
174392
  let current;
174373
174393
  try {
@@ -174375,7 +174395,7 @@ function writeSidecar(unityProjectRoot, args) {
174375
174395
  } catch {
174376
174396
  current = null;
174377
174397
  }
174378
- const ingestedPath = join18(directory, "export.ingested");
174398
+ const ingestedPath = join19(directory, "export.ingested");
174379
174399
  if (typeof current === "object" && current !== null && "exportId" in current && typeof current.exportId === "string" && JSON.stringify({ ...current, exportId: args.sidecar.exportId }) === JSON.stringify(args.sidecar) && existsSync14(ingestedPath) && readFileSync20(ingestedPath, "utf8").trim() === current.exportId) {
174380
174400
  return false;
174381
174401
  }
@@ -174570,7 +174590,7 @@ var init_identity_ledger = __esm({
174570
174590
 
174571
174591
  // src/commands/push-body-diagnostics.ts
174572
174592
  import { existsSync as existsSync15, readFileSync as readFileSync21 } from "node:fs";
174573
- import { join as join19 } from "node:path";
174593
+ import { join as join20 } from "node:path";
174574
174594
  function createNeoScriptBodySourceLocator(workspace, status) {
174575
174595
  const textByFile = /* @__PURE__ */ new Map();
174576
174596
  return {
@@ -174592,7 +174612,7 @@ function createNeoScriptBodySourceLocator(workspace, status) {
174592
174612
  textOf(file) {
174593
174613
  const cached = textByFile.get(file);
174594
174614
  if (cached !== void 0) return cached;
174595
- const path = join19(workspace.root, file);
174615
+ const path = join20(workspace.root, file);
174596
174616
  const text = existsSync15(path) ? readFileSync21(path, "utf8") : null;
174597
174617
  textByFile.set(file, text);
174598
174618
  return text;
@@ -174758,7 +174778,7 @@ import {
174758
174778
  readFileSync as readFileSync22,
174759
174779
  statSync as statSync4
174760
174780
  } from "node:fs";
174761
- import { join as join20, relative as relative8, sep as sep8 } from "node:path";
174781
+ import { join as join21, relative as relative8, sep as sep8 } from "node:path";
174762
174782
  function assignPendingIds(changes, authoredValueSeeds, reconstructed3, previousLedger = {}) {
174763
174783
  const assigned = /* @__PURE__ */ new Map();
174764
174784
  const minted = /* @__PURE__ */ new Map();
@@ -175287,7 +175307,7 @@ ${blockingErrors.map((error) => ` ${error.message}`).join("\n")}`
175287
175307
  binaryChanges: status.binaryChanges ?? []
175288
175308
  });
175289
175309
  const hasSourceBodies = (status.sourceSnapshot?.analysis.compiledBodies.length ?? 0) > 0;
175290
- if (status.changes.length === 0 && status.authoredValueSeeds.size === 0 && (!hasSourceBodies || purpose === "export" /* Export */)) {
175310
+ if (status.changes.length === 0 && status.authoredValueSeeds.size === 0 && options.forceRecompile !== true && (!hasSourceBodies || purpose !== "evaluation" /* Evaluation */)) {
175291
175311
  return status;
175292
175312
  }
175293
175313
  const initConversions = status.initConversions ?? [];
@@ -175310,6 +175330,7 @@ ${blockingErrors.map((error) => ` ${error.message}`).join("\n")}`
175310
175330
  const bodySourceLocator = createNeoScriptBodySourceLocator(workspace, status);
175311
175331
  const compileContext = compileSchema === null ? null : prepareCompleteNeoScriptBodyChanges(workspace, status, compileSchema, {
175312
175332
  completeSweep: options.forceRecompile === true,
175333
+ refreshSourceLocations: purpose === "evaluation" /* Evaluation */,
175313
175334
  bodySourceLocator
175314
175335
  });
175315
175336
  const now = candidateTimestamp(purpose);
@@ -175412,7 +175433,7 @@ async function pushWorkspace(workspace, options, preparationOverride, confirmed
175412
175433
  );
175413
175434
  }
175414
175435
  if (options.noVerify !== true) {
175415
- const preparedBuildDir = configuredHook === void 0 ? void 0 : join20(
175436
+ const preparedBuildDir = configuredHook === void 0 ? void 0 : join21(
175416
175437
  workspace.root,
175417
175438
  ".neo",
175418
175439
  "test-build",
@@ -175429,7 +175450,7 @@ async function pushWorkspace(workspace, options, preparationOverride, confirmed
175429
175450
  const documentJson = JSON.stringify(candidate.document);
175430
175451
  mkdirSync11(preparedBuildDir, { recursive: true });
175431
175452
  writeFileSync12(
175432
- join20(preparedBuildDir, "candidate.json"),
175453
+ join21(preparedBuildDir, "candidate.json"),
175433
175454
  `${JSON.stringify({
175434
175455
  version: 1,
175435
175456
  projectFingerprint: `sha256:${preparedLocal.source.sourceHash}`,
@@ -176807,7 +176828,7 @@ function authoredMemberFormsByFile(root, alternates) {
176807
176828
  for (const alternate of alternates) {
176808
176829
  let existing = contents.get(alternate.path);
176809
176830
  if (existing === void 0) {
176810
- const absolute = join20(root, alternate.path);
176831
+ const absolute = join21(root, alternate.path);
176811
176832
  existing = existsSync16(absolute) ? readFileSync22(absolute, "utf8") : null;
176812
176833
  contents.set(alternate.path, existing);
176813
176834
  }
@@ -176878,20 +176899,20 @@ function rewriteFilesFromState(workspace, records3 = new Map(
176878
176899
  const authoredSources = new Map(
176879
176900
  sourceSnapshot?.inputs.map((input) => [input.uri, input.text])
176880
176901
  );
176902
+ const formatSource = createWorkspaceSourceFormatter(workspace.root);
176881
176903
  const files = result.files.map((file) => {
176882
176904
  const preserved = preservedSourceFiles.get(file.path);
176883
176905
  if (preserved !== void 0 && preservedFileMatchesEmission(preserved, file.content)) {
176884
176906
  return { ...file, content: preserved };
176885
176907
  }
176886
- const path = join20(workspace.root, file.path);
176908
+ const path = join21(workspace.root, file.path);
176887
176909
  const authored = preserved ?? authoredSources.get(file.path) ?? (existsSync16(path) ? readFileSync22(path, "utf8") : void 0);
176888
- return {
176889
- ...file,
176890
- content: restoreAuthoredMemberForms(
176891
- authored === void 0 ? file.content : preserveProjectFileRegistrySource(authored, file.content, records3),
176892
- authoredForms.get(file.path) ?? []
176893
- )
176894
- };
176910
+ const restored = restoreAuthoredMemberForms(
176911
+ authored === void 0 ? file.content : preserveProjectFileRegistrySource(authored, file.content, records3),
176912
+ authoredForms.get(file.path) ?? []
176913
+ );
176914
+ const content = authored !== void 0 && sameNeoScriptTokens(authored, restored, "documentation") ? authored : formatSource(file.path, restored);
176915
+ return { ...file, content };
176895
176916
  });
176896
176917
  const finalInputs = files.map((file) => {
176897
176918
  const kind = neoProjectSourceKind(file.path, file.content);
@@ -177437,6 +177458,12 @@ function compileNSFunctionChange(context, memberData, locator) {
177437
177458
  }
177438
177459
  function prepareCompleteNeoScriptBodyChanges(workspace, status, schema, options = {}) {
177439
177460
  const completeSweep = options.completeSweep ?? false;
177461
+ const refreshSourceLocations = completeSweep || options.refreshSourceLocations === true;
177462
+ const changedSources = new Set(
177463
+ status.changes.map(
177464
+ (change) => recordStateKey(change.recordKind, change.recordId)
177465
+ )
177466
+ );
177440
177467
  const context = createPostPushCompileContext(schema);
177441
177468
  const locator = options.bodySourceLocator ?? createNeoScriptBodySourceLocator(workspace, status);
177442
177469
  const bodyKey = (owner, name, unit) => JSON.stringify([owner, name, unit]);
@@ -177482,6 +177509,8 @@ function prepareCompleteNeoScriptBodyChanges(workspace, status, schema, options
177482
177509
  ]) {
177483
177510
  for (const row of records3) {
177484
177511
  if (typeof row.id !== "string") continue;
177512
+ if (!refreshSourceLocations && !changedSources.has(recordStateKey(kind, row.id)))
177513
+ continue;
177485
177514
  const owner = kind === "constructor" ? context.classesById.get(String(row.classId)) : context.ownersByMemberId.get(row.id);
177486
177515
  if (typeof owner?.name !== "string") continue;
177487
177516
  const sources2 = {};
@@ -177868,6 +177897,8 @@ var compileNSVoidBody2, compileNSFunction2, compileNSGetter2, compileNSSetter2,
177868
177897
  var init_push = __esm({
177869
177898
  "src/commands/push.ts"() {
177870
177899
  "use strict";
177900
+ init_workspace_format();
177901
+ init_lexer();
177871
177902
  init_dialogue_group_symbols();
177872
177903
  init_dialogue_source_diagnostic();
177873
177904
  init_lower_constructors();
@@ -178664,7 +178695,7 @@ import {
178664
178695
  rmSync as rmSync10,
178665
178696
  writeFileSync as writeFileSync13
178666
178697
  } from "node:fs";
178667
- import { dirname as dirname12, join as join21, relative as relative9, sep as sep9 } from "node:path";
178698
+ import { dirname as dirname12, join as join22, relative as relative9, sep as sep9 } from "node:path";
178668
178699
  function prepareWorkspaceResetV4(workspace, document, options = {}) {
178669
178700
  const emissionRecords = options.regenerateSourceNames ? regenerateDialogueSourceNamesV4(document.records) : document.records;
178670
178701
  const layoutWorkspace = workspaceForSourceLayoutV4(workspace, document);
@@ -178678,6 +178709,7 @@ function prepareWorkspaceResetV4(workspace, document, options = {}) {
178678
178709
  dialogueGroupSymbols
178679
178710
  );
178680
178711
  const emitted = emitProjectDocumentFilesV4(emissionRecords, {
178712
+ formatSource: createWorkspaceSourceFormatter(workspace.root),
178681
178713
  localValues,
178682
178714
  dialogueGroupSymbols,
178683
178715
  binaryPaths: workspaceBinaryPathsV4(workspace, status?.binaryFiles),
@@ -178705,10 +178737,10 @@ function resetWorkspaceToProjectSourcesV4(workspace, document, options = {}) {
178705
178737
  rmSync10(resolveSourcePath(path), { force: true });
178706
178738
  }
178707
178739
  for (const file of LEGACY_ROOT_FILES) {
178708
- rmSync10(join21(workspace.root, file), { force: true });
178740
+ rmSync10(join22(workspace.root, file), { force: true });
178709
178741
  }
178710
178742
  for (const privatePath of LEGACY_PRIVATE_PATHS) {
178711
- rmSync10(join21(workspace.root, privatePath), { recursive: true, force: true });
178743
+ rmSync10(join22(workspace.root, privatePath), { recursive: true, force: true });
178712
178744
  }
178713
178745
  for (const file of emitted.files) {
178714
178746
  const absolute = resolveSourcePath(file.path);
@@ -178779,6 +178811,7 @@ var LEGACY_ROOT_FILES, LEGACY_PRIVATE_PATHS;
178779
178811
  var init_reset = __esm({
178780
178812
  "src/project-source/reset.ts"() {
178781
178813
  "use strict";
178814
+ init_workspace_format();
178782
178815
  init_dialogue_group_symbols();
178783
178816
  init_language_spec();
178784
178817
  init_source_layout();
@@ -179276,6 +179309,7 @@ async function finishFormat4Pull(args) {
179276
179309
  workspace,
179277
179310
  layoutStatus?.binaryFiles
179278
179311
  );
179312
+ const formatSource = createWorkspaceSourceFormatter(workspace.root);
179279
179313
  const localResult = emitProjectDocumentFilesV4(
179280
179314
  candidateValueRecordsForEmissionV4(
179281
179315
  localRecords,
@@ -179283,6 +179317,7 @@ async function finishFormat4Pull(args) {
179283
179317
  workspace.config.projectId
179284
179318
  ),
179285
179319
  {
179320
+ formatSource,
179286
179321
  localValues,
179287
179322
  binaryPaths,
179288
179323
  recordFiles,
@@ -179294,7 +179329,13 @@ async function finishFormat4Pull(args) {
179294
179329
  }
179295
179330
  const serverResult = conflictCount === 0 ? null : emitProjectDocumentFilesV4(
179296
179331
  buildEmitRecordSet(document, plans, "server"),
179297
- { recordFiles, localValues, binaryPaths, dialogueGroupSymbols }
179332
+ {
179333
+ formatSource,
179334
+ recordFiles,
179335
+ localValues,
179336
+ binaryPaths,
179337
+ dialogueGroupSymbols
179338
+ }
179298
179339
  );
179299
179340
  const resolveSourcePath = createWorkspaceSourcePathResolver(workspace.root);
179300
179341
  if (!destructive && Object.keys(workspace.state.records).length === 0) {
@@ -179778,6 +179819,7 @@ function composeProspectivePullRecord(recordKind, recordId, data, serverRecord)
179778
179819
  var init_pull = __esm({
179779
179820
  "src/commands/pull.ts"() {
179780
179821
  "use strict";
179822
+ init_workspace_format();
179781
179823
  init_dialogue_group_symbols();
179782
179824
  init_project_file_source_preservation();
179783
179825
  init_push();
@@ -179815,7 +179857,7 @@ __export(init_exports, {
179815
179857
  runInit: () => runInit
179816
179858
  });
179817
179859
  import { existsSync as existsSync19, mkdirSync as mkdirSync14, readFileSync as readFileSync25, writeFileSync as writeFileSync15 } from "node:fs";
179818
- import { join as join22, resolve as resolve4 } from "node:path";
179860
+ import { join as join23, resolve as resolve4 } from "node:path";
179819
179861
  async function runInit(options) {
179820
179862
  let projectId = options.projectId;
179821
179863
  let projects = [];
@@ -179912,8 +179954,8 @@ async function runInit(options) {
179912
179954
  }) : "neo";
179913
179955
  }
179914
179956
  const root = resolve4(directory);
179915
- if (existsSync19(join22(root, NEO_CONFIG_FILE))) {
179916
- throw new Error(`"${join22(root, NEO_CONFIG_FILE)}" already exists.`);
179957
+ if (existsSync19(join23(root, NEO_CONFIG_FILE))) {
179958
+ throw new Error(`"${join23(root, NEO_CONFIG_FILE)}" already exists.`);
179917
179959
  }
179918
179960
  mkdirSync14(root, { recursive: true });
179919
179961
  await acquireWorkspaceLock(root, "init");
@@ -179939,7 +179981,7 @@ async function runInit(options) {
179939
179981
  });
179940
179982
  }
179941
179983
  function ensurePrivateStateIgnored(root) {
179942
- const path = join22(root, ".gitignore");
179984
+ const path = join23(root, ".gitignore");
179943
179985
  const existing = existsSync19(path) ? readFileSync25(path, "utf8") : "";
179944
179986
  if (existing.split(/\r?\n/u).some((line) => line.trim() === ".neo/" || line.trim() === ".neo")) {
179945
179987
  return;
@@ -180910,7 +180952,6 @@ var init_project_integrity = __esm({
180910
180952
  "use strict";
180911
180953
  init_member_storage_key();
180912
180954
  init_system_record_id();
180913
- init_member_kind_enum();
180914
180955
  init_value_comparison();
180915
180956
  init_stored_value_placements();
180916
180957
  UNORDERED_MEMBERSHIP_KEY = "(container)";
@@ -181287,7 +181328,7 @@ var init_neoscript_language_adapter = __esm({
181287
181328
  }
181288
181329
  });
181289
181330
 
181290
- // ../src/models/members/member-change-listener-patches.ts
181331
+ // ../packages/models/src/members/member-change-listener-patches.ts
181291
181332
  function validateChangeListenerOwnerPatches(patches) {
181292
181333
  if (patches.length === 0)
181293
181334
  throw new Error("A listener patch must edit at least one owner.");
@@ -181345,7 +181386,7 @@ function applyChangeListenerOwnerPatches(current, patches) {
181345
181386
  return Object.keys(next).length === 0 ? void 0 : next;
181346
181387
  }
181347
181388
  var init_member_change_listener_patches = __esm({
181348
- "../src/models/members/member-change-listener-patches.ts"() {
181389
+ "../packages/models/src/members/member-change-listener-patches.ts"() {
181349
181390
  "use strict";
181350
181391
  init_core();
181351
181392
  init_member_kinds();
@@ -181624,13 +181665,13 @@ var init_game_save_record_read2 = __esm({
181624
181665
  }
181625
181666
  });
181626
181667
 
181627
- // ../src/models/save-overlay-resolution.ts
181668
+ // ../packages/models/src/save-overlay-resolution.ts
181628
181669
  function isRemovedEntry(entry) {
181629
181670
  return typeof entry === "object" && entry !== null && Reflect.get(entry, "mark") === REMOVED_MARK;
181630
181671
  }
181631
181672
  var REMOVED_MARK;
181632
181673
  var init_save_overlay_resolution = __esm({
181633
- "../src/models/save-overlay-resolution.ts"() {
181674
+ "../packages/models/src/save-overlay-resolution.ts"() {
181634
181675
  "use strict";
181635
181676
  REMOVED_MARK = "removed";
181636
181677
  }
@@ -183200,8 +183241,6 @@ var init_script = __esm({
183200
183241
  init_save_overlay_resolution();
183201
183242
  init_members();
183202
183243
  init_neoscript();
183203
- init_dialogue_types2();
183204
- init_logic_types();
183205
183244
  init_dialogue_logic_compile_pure();
183206
183245
  init_project_migration_runner();
183207
183246
  init_inheritance();
@@ -183249,7 +183288,7 @@ import {
183249
183288
  basename as basename4,
183250
183289
  dirname as dirname14,
183251
183290
  isAbsolute as isAbsolute3,
183252
- join as join23,
183291
+ join as join24,
183253
183292
  relative as relative10,
183254
183293
  resolve as resolve5,
183255
183294
  sep as sep10
@@ -183462,7 +183501,7 @@ function preparedHookCandidate(workspace) {
183462
183501
  );
183463
183502
  }
183464
183503
  const parsed = JSON.parse(
183465
- readFileSync27(join23(directory, "candidate.json"), "utf8")
183504
+ readFileSync27(join24(directory, "candidate.json"), "utf8")
183466
183505
  );
183467
183506
  if (!isRecord12(parsed)) {
183468
183507
  throw new NeoTestPreparedCandidateError(
@@ -183519,7 +183558,7 @@ function fingerprintTestCandidateInputs(workspace) {
183519
183558
  }
183520
183559
  function testCandidateCachePath(workspace, inputFingerprint) {
183521
183560
  const cacheKey = createHash18("sha256").update(inputFingerprint).digest("hex");
183522
- return join23(
183561
+ return join24(
183523
183562
  workspace.root,
183524
183563
  ".neo",
183525
183564
  "test-build",
@@ -183544,7 +183583,7 @@ function cachedTestCandidate(workspace, inputFingerprint) {
183544
183583
  }
183545
183584
  if (typeof parsed.documentSha256 !== "string") return null;
183546
183585
  const documentJson = readFileSync27(
183547
- join23(dirname14(candidatePath), "document.json"),
183586
+ join24(dirname14(candidatePath), "document.json"),
183548
183587
  "utf8"
183549
183588
  );
183550
183589
  if (createHash18("sha256").update(documentJson).digest("hex") !== parsed.documentSha256) {
@@ -183565,7 +183604,7 @@ function cacheTestCandidate(workspace, inputFingerprint, candidate) {
183565
183604
  const documentJson = JSON.stringify(candidate.document);
183566
183605
  const documentSha256 = createHash18("sha256").update(documentJson).digest("hex");
183567
183606
  const candidatePath = testCandidateCachePath(workspace, inputFingerprint);
183568
- atomicWrite(join23(dirname14(candidatePath), "document.json"), documentJson);
183607
+ atomicWrite(join24(dirname14(candidatePath), "document.json"), documentJson);
183569
183608
  atomicWrite(
183570
183609
  candidatePath,
183571
183610
  JSON.stringify({
@@ -183632,7 +183671,7 @@ function compileSpec(workspace, compile, absolutePath, projectCompilationHash2)
183632
183671
  const source = readFileSync27(absolutePath, "utf8");
183633
183672
  const sourceHash = createHash18("sha256").update(source).digest("hex");
183634
183673
  const artifactHash = createHash18("sha256").update(path).update("\0").update(sourceHash).digest("hex");
183635
- const artifactPath = join23(
183674
+ const artifactPath = join24(
183636
183675
  workspace.root,
183637
183676
  ".neo",
183638
183677
  "test-build",
@@ -184502,7 +184541,7 @@ function testBuildFiles(root) {
184502
184541
  const visit = (directory) => {
184503
184542
  for (const entry of readdirSync7(directory, { withFileTypes: true })) {
184504
184543
  if (entry.isSymbolicLink()) continue;
184505
- const path = join23(directory, entry.name);
184544
+ const path = join24(directory, entry.name);
184506
184545
  if (entry.isDirectory()) visit(path);
184507
184546
  else if (entry.isFile()) {
184508
184547
  const stats = statSync5(path);
@@ -184563,7 +184602,7 @@ function formatStatusCounts(passed, failed, total, skipped = 0) {
184563
184602
  async function runTest(workspace, options, dependencies = {}) {
184564
184603
  const started = Date.now();
184565
184604
  const performanceStarted = performance.now();
184566
- const testBuildRoot = join23(workspace.root, ".neo", "test-build");
184605
+ const testBuildRoot = join24(workspace.root, ".neo", "test-build");
184567
184606
  maintainNeoTestBuildCache(testBuildRoot);
184568
184607
  const startedAt = new Date(started).toISOString();
184569
184608
  let projectFingerprint = null;
@@ -184748,7 +184787,7 @@ async function runTest(workspace, options, dependencies = {}) {
184748
184787
  }))
184749
184788
  };
184750
184789
  atomicWrite(
184751
- join23(workspace.root, ".neo", "test-build", "v1", "manifest.json"),
184790
+ join24(workspace.root, ".neo", "test-build", "v1", "manifest.json"),
184752
184791
  `${JSON.stringify(buildManifest, null, 2)}
184753
184792
  `
184754
184793
  );
@@ -184852,7 +184891,7 @@ async function runTest(workspace, options, dependencies = {}) {
184852
184891
  if (options.outputFile !== null) {
184853
184892
  try {
184854
184893
  atomicWrite(
184855
- isAbsolute3(options.outputFile) ? options.outputFile : join23(workspace.root, options.outputFile),
184894
+ isAbsolute3(options.outputFile) ? options.outputFile : join24(workspace.root, options.outputFile),
184856
184895
  serialized
184857
184896
  );
184858
184897
  } catch (error) {
@@ -184997,7 +185036,6 @@ var init_test = __esm({
184997
185036
  init_project2();
184998
185037
  init_test_prelude();
184999
185038
  init_strict_ir();
185000
- init_members();
185001
185039
  init_neoscript2();
185002
185040
  init_evaluator_lookups();
185003
185041
  init_neoscript_language_adapter();
@@ -185085,7 +185123,7 @@ import {
185085
185123
  existsSync as existsSync21,
185086
185124
  readFileSync as readFileSync28
185087
185125
  } from "node:fs";
185088
- import { extname as extname2, isAbsolute as isAbsolute4, join as join24, relative as relative11, sep as sep11 } from "node:path";
185126
+ import { extname as extname2, isAbsolute as isAbsolute4, join as join25, relative as relative11, sep as sep11 } from "node:path";
185089
185127
  function inspectNeoDoctor(workspace) {
185090
185128
  const formatCompatible = workspace.config.formatVersion === CURRENT_FORMAT_VERSION;
185091
185129
  const compiler = inspectCompilerContract();
@@ -185204,7 +185242,7 @@ function inspectSourceContract(workspace) {
185204
185242
  }
185205
185243
  }
185206
185244
  function inspectExtensionContract(root) {
185207
- const cachePath2 = join24(root, PROJECT_SOURCE_ANALYSIS_V4_CACHE_PATH);
185245
+ const cachePath2 = join25(root, PROJECT_SOURCE_ANALYSIS_V4_CACHE_PATH);
185208
185246
  if (!existsSync21(cachePath2)) {
185209
185247
  return {
185210
185248
  id: NEO_VSCODE_EXTENSION_ID,
@@ -185288,7 +185326,7 @@ function inspectTrackedBinary(root, record7, errors) {
185288
185326
  `Project file ${record7.recordId} has an invalid SHA-256 base digest.`
185289
185327
  );
185290
185328
  }
185291
- const absolute = join24(root, path);
185329
+ const absolute = join25(root, path);
185292
185330
  if (existsSync21(absolute) && !canAccess(absolute, fsConstants.R_OK)) {
185293
185331
  errors.push(`Tracked project file ${path} is not readable.`);
185294
185332
  }
@@ -186077,7 +186115,7 @@ __export(migrate_exports, {
186077
186115
  });
186078
186116
  import { randomUUID as randomUUID10 } from "node:crypto";
186079
186117
  import { existsSync as existsSync22, mkdirSync as mkdirSync16, readFileSync as readFileSync29, writeFileSync as writeFileSync17 } from "node:fs";
186080
- import { join as join25, relative as relative12 } from "node:path";
186118
+ import { join as join26, relative as relative12 } from "node:path";
186081
186119
  async function runMigrate(workspace, subcommand, positional, targetRef, json, dependencies = {}) {
186082
186120
  if (subcommand === "new") {
186083
186121
  const name = positional[0];
@@ -186086,7 +186124,7 @@ async function runMigrate(workspace, subcommand, positional, targetRef, json, de
186086
186124
  "Usage: neo migrate new <name> [--target <ClassName|project>]"
186087
186125
  );
186088
186126
  }
186089
- const migrationsDir = join25(workspace.root, "Migrations");
186127
+ const migrationsDir = join26(workspace.root, "Migrations");
186090
186128
  mkdirSync16(migrationsDir, { recursive: true });
186091
186129
  let nextOrder = 1;
186092
186130
  for (const path of listProjectSourceFilesV4(workspace.root)) {
@@ -186100,7 +186138,7 @@ async function runMigrate(workspace, subcommand, positional, targetRef, json, de
186100
186138
  nextOrder = Math.max(nextOrder, Number(migration.fileFields.order) + 1);
186101
186139
  }
186102
186140
  const relPath = migrationFileName(nextOrder, name);
186103
- const absolute = join25(workspace.root, relPath);
186141
+ const absolute = join26(workspace.root, relPath);
186104
186142
  if (existsSync22(absolute)) {
186105
186143
  throw new Error(`"${relPath}" already exists.`);
186106
186144
  }
@@ -188343,68 +188381,53 @@ var init_branch = __esm({
188343
188381
  }
188344
188382
  });
188345
188383
 
188346
- // ../src/models/localization/localization-import.ts
188384
+ // ../packages/models/src/localization/localization-import.ts
188347
188385
  var init_localization_import = __esm({
188348
- "../src/models/localization/localization-import.ts"() {
188386
+ "../packages/models/src/localization/localization-import.ts"() {
188349
188387
  "use strict";
188350
188388
  }
188351
188389
  });
188352
188390
 
188353
- // ../src/models/dialogue/dialogue-lookup-candidates.ts
188391
+ // ../packages/models/src/dialogue/dialogue-lookup-candidates.ts
188354
188392
  var init_dialogue_lookup_candidates = __esm({
188355
- "../src/models/dialogue/dialogue-lookup-candidates.ts"() {
188393
+ "../packages/models/src/dialogue/dialogue-lookup-candidates.ts"() {
188356
188394
  "use strict";
188357
188395
  }
188358
188396
  });
188359
188397
 
188360
- // ../src/models/dialogue/dialogue-record-split.ts
188398
+ // ../packages/models/src/dialogue/dialogue-record-split.ts
188361
188399
  var init_dialogue_record_split = __esm({
188362
- "../src/models/dialogue/dialogue-record-split.ts"() {
188400
+ "../packages/models/src/dialogue/dialogue-record-split.ts"() {
188363
188401
  "use strict";
188364
- init_dialogue_types2();
188365
188402
  }
188366
188403
  });
188367
188404
 
188368
- // ../src/models/dialogue/dialogue-localized-text-links.ts
188405
+ // ../packages/models/src/dialogue/dialogue-localized-text-links.ts
188369
188406
  var init_dialogue_localized_text_links = __esm({
188370
- "../src/models/dialogue/dialogue-localized-text-links.ts"() {
188407
+ "../packages/models/src/dialogue/dialogue-localized-text-links.ts"() {
188371
188408
  "use strict";
188372
- init_localized_text_create_envelope();
188373
- init_localization_types();
188374
- init_dialogue_types2();
188375
188409
  }
188376
188410
  });
188377
188411
 
188378
- // ../src/models/dialogue/dialogue-db-response-types.ts
188412
+ // ../packages/models/src/dialogue/dialogue-db-response-types.ts
188379
188413
  var init_dialogue_db_response_types = __esm({
188380
- "../src/models/dialogue/dialogue-db-response-types.ts"() {
188381
- "use strict";
188382
- init_dialogue_group_types();
188383
- init_priority_types();
188384
- }
188385
- });
188386
-
188387
- // ../src/common/error-message.ts
188388
- var init_error_message = __esm({
188389
- "../src/common/error-message.ts"() {
188414
+ "../packages/models/src/dialogue/dialogue-db-response-types.ts"() {
188390
188415
  "use strict";
188391
188416
  }
188392
188417
  });
188393
188418
 
188394
- // ../src/models/dialogue/dialogue-triggering.ts
188419
+ // ../packages/models/src/dialogue/dialogue-triggering.ts
188395
188420
  var DEFAULT_RECENCY_HALF_LIFE_SECONDS;
188396
188421
  var init_dialogue_triggering = __esm({
188397
- "../src/models/dialogue/dialogue-triggering.ts"() {
188422
+ "../packages/models/src/dialogue/dialogue-triggering.ts"() {
188398
188423
  "use strict";
188399
- init_error_message();
188400
- init_dialogue_group_types();
188401
188424
  DEFAULT_RECENCY_HALF_LIFE_SECONDS = 60 * 60 * 24;
188402
188425
  }
188403
188426
  });
188404
188427
 
188405
- // ../src/models/dialogue/index.ts
188428
+ // ../packages/models/src/dialogue/index.ts
188406
188429
  var init_dialogue = __esm({
188407
- "../src/models/dialogue/index.ts"() {
188430
+ "../packages/models/src/dialogue/index.ts"() {
188408
188431
  "use strict";
188409
188432
  init_dialogue_types2();
188410
188433
  init_dialogue_source_identifiers();
@@ -188421,17 +188444,16 @@ var init_dialogue = __esm({
188421
188444
  }
188422
188445
  });
188423
188446
 
188424
- // ../src/models/localization/localization-export.ts
188447
+ // ../packages/models/src/localization/localization-export.ts
188425
188448
  var init_localization_export = __esm({
188426
- "../src/models/localization/localization-export.ts"() {
188449
+ "../packages/models/src/localization/localization-export.ts"() {
188427
188450
  "use strict";
188428
- init_localization_types();
188429
188451
  }
188430
188452
  });
188431
188453
 
188432
- // ../src/models/localization/index.ts
188454
+ // ../packages/models/src/localization/index.ts
188433
188455
  var init_localization2 = __esm({
188434
- "../src/models/localization/index.ts"() {
188456
+ "../packages/models/src/localization/index.ts"() {
188435
188457
  "use strict";
188436
188458
  init_localization_types();
188437
188459
  init_localization_export();
@@ -188440,29 +188462,52 @@ var init_localization2 = __esm({
188440
188462
  }
188441
188463
  });
188442
188464
 
188443
- // ../src/models/unity/unity-sprite-slices.ts
188465
+ // ../packages/models/src/unity/unity-sprite-slices.ts
188444
188466
  var init_unity_sprite_slices = __esm({
188445
- "../src/models/unity/unity-sprite-slices.ts"() {
188467
+ "../packages/models/src/unity/unity-sprite-slices.ts"() {
188446
188468
  "use strict";
188447
188469
  }
188448
188470
  });
188449
188471
 
188450
- // ../src/models/unity/index.ts
188472
+ // ../packages/models/src/unity/index.ts
188451
188473
  var init_unity = __esm({
188452
- "../src/models/unity/index.ts"() {
188474
+ "../packages/models/src/unity/index.ts"() {
188453
188475
  "use strict";
188454
188476
  init_unity_import_settings();
188455
188477
  init_unity_sprite_slices();
188456
188478
  }
188457
188479
  });
188458
188480
 
188481
+ // ../src/models/project/project-types.ts
188482
+ var init_project_types2 = __esm({
188483
+ "../src/models/project/project-types.ts"() {
188484
+ "use strict";
188485
+ init_project_types();
188486
+ }
188487
+ });
188488
+
188489
+ // ../src/models/project/project-version-types.ts
188490
+ var init_project_version_types2 = __esm({
188491
+ "../src/models/project/project-version-types.ts"() {
188492
+ "use strict";
188493
+ init_project_version_types();
188494
+ }
188495
+ });
188496
+
188497
+ // ../src/models/project/index.ts
188498
+ var init_project3 = __esm({
188499
+ "../src/models/project/index.ts"() {
188500
+ "use strict";
188501
+ init_project();
188502
+ init_project_types2();
188503
+ init_project_version_types2();
188504
+ }
188505
+ });
188506
+
188459
188507
  // ../src/models/wiki/wiki-types.ts
188460
188508
  var init_wiki_types = __esm({
188461
188509
  "../src/models/wiki/wiki-types.ts"() {
188462
188510
  "use strict";
188463
- init_core_types();
188464
- init_auth_ownership_types();
188465
- init_structural_narrow();
188466
188511
  }
188467
188512
  });
188468
188513
 
@@ -188478,8 +188523,6 @@ var init_wiki = __esm({
188478
188523
  var init_interface_reference_sites = __esm({
188479
188524
  "../src/models/interfaces/interface-reference-sites.ts"() {
188480
188525
  "use strict";
188481
- init_member_kinds();
188482
- init_interface_types();
188483
188526
  }
188484
188527
  });
188485
188528
 
@@ -188487,11 +188530,6 @@ var init_interface_reference_sites = __esm({
188487
188530
  var init_interface_validation = __esm({
188488
188531
  "../src/models/interfaces/interface-validation.ts"() {
188489
188532
  "use strict";
188490
- init_member_kinds();
188491
- init_schema_identifiers();
188492
- init_interface_conformance();
188493
- init_interface_graph();
188494
- init_interface_types();
188495
188533
  }
188496
188534
  });
188497
188535
 
@@ -188514,7 +188552,7 @@ var init_models = __esm({
188514
188552
  init_dialogue();
188515
188553
  init_localization2();
188516
188554
  init_unity();
188517
- init_project();
188555
+ init_project3();
188518
188556
  init_wiki();
188519
188557
  init_interfaces();
188520
188558
  }
@@ -188790,11 +188828,9 @@ var init_project_localization_service = __esm({
188790
188828
  "use strict";
188791
188829
  init_localizable_member_value_writes();
188792
188830
  init_member_localization();
188793
- init_localization_import();
188794
188831
  init_packed_value_encoding();
188795
188832
  init_inheritance();
188796
188833
  init_members();
188797
- init_core();
188798
188834
  init_primary_localized_text_writes();
188799
188835
  init_models();
188800
188836
  init_project_version_intents();
@@ -189057,10 +189093,10 @@ var init_content = __esm({
189057
189093
  }
189058
189094
  });
189059
189095
 
189060
- // ../src/runtime/member-change-listener-runtime.ts
189096
+ // ../packages/neoscript-runtime/src/member-change-listener-runtime.ts
189061
189097
  var EMPTY, MemberChangeListenerRuntime;
189062
189098
  var init_member_change_listener_runtime = __esm({
189063
- "../src/runtime/member-change-listener-runtime.ts"() {
189099
+ "../packages/neoscript-runtime/src/member-change-listener-runtime.ts"() {
189064
189100
  "use strict";
189065
189101
  init_core();
189066
189102
  init_listener_write_index();
@@ -190140,7 +190176,6 @@ var init_dialogue_dryrun_listeners = __esm({
190140
190176
  "use strict";
190141
190177
  init_listener_write_index();
190142
190178
  init_evaluateNSGetter();
190143
- init_members();
190144
190179
  init_member_change_listeners();
190145
190180
  init_member_change_listener_runtime();
190146
190181
  init_initializer_replay();
@@ -191366,7 +191401,7 @@ __export(dev_exports, {
191366
191401
  runDev: () => runDev
191367
191402
  });
191368
191403
  import { readdirSync as readdirSync8, statSync as statSync6, watch } from "node:fs";
191369
- import { basename as basename5, dirname as dirname15, join as join26, resolve as resolve6 } from "node:path";
191404
+ import { basename as basename5, dirname as dirname15, join as join27, resolve as resolve6 } from "node:path";
191370
191405
  import { emitKeypressEvents } from "node:readline";
191371
191406
  async function runDev(root, loadWorkspace2, options) {
191372
191407
  const session = new UnityExportSession({ reusePersistedReceipt: false });
@@ -191477,7 +191512,7 @@ function countsAsExportInput(root, relativePath, event, directories) {
191477
191512
  if (relativePath.split("/").some((part) => NEO_PROJECT_IGNORED_DIRECTORY_NAMES.has(part)))
191478
191513
  return false;
191479
191514
  if (event === "rename") {
191480
- if (statSync6(join26(root, relativePath), {
191515
+ if (statSync6(join27(root, relativePath), {
191481
191516
  throwIfNoEntry: false
191482
191517
  })?.isDirectory()) {
191483
191518
  directories.add(relativePath);
@@ -191498,7 +191533,7 @@ function countsAsExportInput(root, relativePath, event, directories) {
191498
191533
  function rememberDirectories(root, relativePath, directories) {
191499
191534
  let entries;
191500
191535
  try {
191501
- entries = readdirSync8(join26(root, relativePath), { withFileTypes: true });
191536
+ entries = readdirSync8(join27(root, relativePath), { withFileTypes: true });
191502
191537
  } catch (error) {
191503
191538
  if (error instanceof Error && "code" in error) {
191504
191539
  if (error.code === "ENOENT") return;
@@ -191556,7 +191591,7 @@ __export(resolve_exports, {
191556
191591
  runResolve: () => runResolve
191557
191592
  });
191558
191593
  import { readFileSync as readFileSync31, rmSync as rmSync13, writeFileSync as writeFileSync18 } from "node:fs";
191559
- import { join as join27, relative as relative13 } from "node:path";
191594
+ import { join as join28, relative as relative13 } from "node:path";
191560
191595
  function runResolve(workspace, side) {
191561
191596
  const sources2 = readResolvedProjectSourcesV4(workspace.root, side);
191562
191597
  const marked = sources2.filter((file) => file.marked);
@@ -191579,12 +191614,12 @@ function runResolve(workspace, side) {
191579
191614
  const conflict2 = binary?.conflict;
191580
191615
  if (binary === void 0 || conflict2 === void 0) continue;
191581
191616
  binary.path = declaredPaths.get(state.recordId) ?? binary.path;
191582
- const destination = join27(workspace.root, binary.path);
191617
+ const destination = join28(workspace.root, binary.path);
191583
191618
  if (side === "theirs") {
191584
191619
  if (conflict2.remoteSha256 !== null && conflict2.artifactPath !== void 0) {
191585
191620
  writeVerifiedBinaryDownloadV4(
191586
191621
  destination,
191587
- readFileSync31(join27(workspace.root, conflict2.artifactPath)),
191622
+ readFileSync31(join28(workspace.root, conflict2.artifactPath)),
191588
191623
  conflict2.remoteSha256
191589
191624
  );
191590
191625
  binary.sha256 = conflict2.remoteSha256;
@@ -191594,7 +191629,7 @@ function runResolve(workspace, side) {
191594
191629
  }
191595
191630
  }
191596
191631
  if (conflict2.artifactPath !== void 0) {
191597
- rmSync13(join27(workspace.root, conflict2.artifactPath), { force: true });
191632
+ rmSync13(join28(workspace.root, conflict2.artifactPath), { force: true });
191598
191633
  }
191599
191634
  delete binary.conflict;
191600
191635
  resolvedBinaries += 1;
@@ -191975,7 +192010,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
191975
192010
  async function main() {
191976
192011
  const args = parseArgs(process.argv.slice(2));
191977
192012
  if (args.command === "--version") {
191978
- console.log("0.75.0");
192013
+ console.log("0.75.1");
191979
192014
  return;
191980
192015
  }
191981
192016
  if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {