@neocompose/cli 0.72.0 → 0.72.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/CHANGELOG.md +10 -0
- package/README.md +11 -0
- package/dist/neo.mjs +102177 -98980
- package/dist/test-worker.mjs +1924 -269
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +1 -1
- package/skills/neocompose-cli/references/cli-development.md +1 -1
- package/skills/neocompose-cli/references/commands-and-sync.md +9 -5
package/dist/test-worker.mjs
CHANGED
|
@@ -5059,6 +5059,7 @@ var ProjectSchemaIndex = class {
|
|
|
5059
5059
|
*/
|
|
5060
5060
|
resolvedMembers = /* @__PURE__ */ new WeakMap();
|
|
5061
5061
|
ancestryByClassId = /* @__PURE__ */ new Map();
|
|
5062
|
+
effectivePlacementsByClassId = /* @__PURE__ */ new Map();
|
|
5062
5063
|
ancestorIdsByClassId = /* @__PURE__ */ new Map();
|
|
5063
5064
|
get classes() {
|
|
5064
5065
|
return this.source.classes;
|
|
@@ -5114,12 +5115,19 @@ var ProjectSchemaIndex = class {
|
|
|
5114
5115
|
return chain;
|
|
5115
5116
|
}
|
|
5116
5117
|
effectiveSchemaPlacement(classId, schemaKey) {
|
|
5117
|
-
|
|
5118
|
-
|
|
5119
|
-
|
|
5118
|
+
let placements = this.effectivePlacementsByClassId.get(classId);
|
|
5119
|
+
if (placements === void 0) {
|
|
5120
|
+
const flattened = /* @__PURE__ */ new Map();
|
|
5121
|
+
for (const ownerClass of this.inheritanceChain(classId)) {
|
|
5122
|
+
for (const key of Object.keys(ownerClass.schema)) {
|
|
5123
|
+
if (!flattened.has(key) && typeof ownerClass.schema[key] === "string")
|
|
5124
|
+
flattened.set(key, { ownerClass, schemaKey: key });
|
|
5125
|
+
}
|
|
5120
5126
|
}
|
|
5127
|
+
this.effectivePlacementsByClassId.set(classId, flattened);
|
|
5128
|
+
placements = flattened;
|
|
5121
5129
|
}
|
|
5122
|
-
return null;
|
|
5130
|
+
return placements.get(schemaKey) ?? null;
|
|
5123
5131
|
}
|
|
5124
5132
|
effectiveMemberId(classId, schemaKey) {
|
|
5125
5133
|
const placement = this.effectiveSchemaPlacement(classId, schemaKey);
|
|
@@ -5223,33 +5231,12 @@ function classIndexFor(classes) {
|
|
|
5223
5231
|
function memberIndexFor(members) {
|
|
5224
5232
|
return projectSchemaIndexFor({ classes: NO_CLASSES, members }).membersById;
|
|
5225
5233
|
}
|
|
5226
|
-
function createMergeMemo() {
|
|
5227
|
-
const byClasses = /* @__PURE__ */ new WeakMap();
|
|
5228
|
-
return (classId, classIndex, memberIndex, compute) => {
|
|
5229
|
-
let byMembers = byClasses.get(classIndex);
|
|
5230
|
-
if (byMembers === void 0) {
|
|
5231
|
-
byMembers = /* @__PURE__ */ new WeakMap();
|
|
5232
|
-
byClasses.set(classIndex, byMembers);
|
|
5233
|
-
}
|
|
5234
|
-
let byClassId = byMembers.get(memberIndex);
|
|
5235
|
-
if (byClassId === void 0) {
|
|
5236
|
-
byClassId = /* @__PURE__ */ new Map();
|
|
5237
|
-
byMembers.set(memberIndex, byClassId);
|
|
5238
|
-
}
|
|
5239
|
-
const cached = byClassId.get(classId);
|
|
5240
|
-
if (cached !== void 0) return [...cached];
|
|
5241
|
-
const computed = compute();
|
|
5242
|
-
byClassId.set(classId, computed);
|
|
5243
|
-
return [...computed];
|
|
5244
|
-
};
|
|
5245
|
-
}
|
|
5246
|
-
var instanceSurfaceMemo = createMergeMemo();
|
|
5247
|
-
var storedInstanceMemo = createMergeMemo();
|
|
5248
|
-
var readOnlyMemberMemo = createMergeMemo();
|
|
5249
|
-
var staticMemberMemo = createMergeMemo();
|
|
5250
5234
|
function resolveInheritanceChain(classId, classes, draft) {
|
|
5251
5235
|
return [...indexClasses(classes).inheritanceChain(classId, draft)];
|
|
5252
5236
|
}
|
|
5237
|
+
function resolveInheritanceChainFromIndex(classId, classIndex, draft) {
|
|
5238
|
+
return resolveChainFromIndex(classId, classIndex, draft);
|
|
5239
|
+
}
|
|
5253
5240
|
function resolveChainFromIndex(classId, index, draft) {
|
|
5254
5241
|
const chain = [];
|
|
5255
5242
|
const visited = /* @__PURE__ */ new Set();
|
|
@@ -5303,50 +5290,70 @@ function mergeSchemas(chain) {
|
|
|
5303
5290
|
}
|
|
5304
5291
|
return merged;
|
|
5305
5292
|
}
|
|
5306
|
-
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5293
|
+
var resolvedClassSchemas = /* @__PURE__ */ new WeakMap();
|
|
5294
|
+
function resolvedClassSchemaFromIndexes(classId, classIndex, memberIndex) {
|
|
5295
|
+
let byMembers = resolvedClassSchemas.get(classIndex);
|
|
5296
|
+
if (byMembers === void 0) {
|
|
5297
|
+
byMembers = /* @__PURE__ */ new WeakMap();
|
|
5298
|
+
resolvedClassSchemas.set(classIndex, byMembers);
|
|
5299
|
+
}
|
|
5300
|
+
let byClass = byMembers.get(memberIndex);
|
|
5301
|
+
if (byClass === void 0) {
|
|
5302
|
+
byClass = /* @__PURE__ */ new Map();
|
|
5303
|
+
byMembers.set(memberIndex, byClass);
|
|
5304
|
+
}
|
|
5305
|
+
const cached = byClass.get(classId);
|
|
5306
|
+
if (cached !== void 0) return cached;
|
|
5307
|
+
const chain = resolveChainFromIndex(classId, classIndex);
|
|
5308
|
+
const surface = [];
|
|
5309
|
+
const stored = [];
|
|
5310
|
+
const readOnly = [];
|
|
5311
|
+
const statics = [];
|
|
5312
|
+
const surfaceByKey = /* @__PURE__ */ new Map();
|
|
5313
|
+
const storedByKey = /* @__PURE__ */ new Map();
|
|
5314
|
+
for (const entry of mergeSchemas(chain)) {
|
|
5315
|
+
const member = memberIndex.get(entry.memberId);
|
|
5316
|
+
if (member !== void 0 && isStaticMember(member)) {
|
|
5317
|
+
statics.push({ ...entry, declaringClassId: entry.ownerClassId });
|
|
5318
|
+
continue;
|
|
5319
|
+
}
|
|
5320
|
+
surface.push(entry);
|
|
5321
|
+
surfaceByKey.set(entry.schemaKey, entry);
|
|
5322
|
+
if (member !== void 0 && isReadOnlyMember(member)) readOnly.push(entry);
|
|
5323
|
+
else {
|
|
5324
|
+
stored.push(entry);
|
|
5325
|
+
storedByKey.set(entry.schemaKey, entry);
|
|
5326
|
+
}
|
|
5327
|
+
}
|
|
5328
|
+
const node = {
|
|
5329
|
+
surface,
|
|
5330
|
+
stored,
|
|
5331
|
+
readOnly,
|
|
5332
|
+
statics,
|
|
5333
|
+
surfaceByKey,
|
|
5334
|
+
storedByKey
|
|
5335
|
+
};
|
|
5336
|
+
byClass.set(classId, node);
|
|
5337
|
+
return node;
|
|
5311
5338
|
}
|
|
5312
|
-
function
|
|
5313
|
-
|
|
5339
|
+
function resolvedClassSchema(classId, classes, members) {
|
|
5340
|
+
const index = indexSchema(classes, members);
|
|
5341
|
+
return resolvedClassSchemaFromIndexes(
|
|
5314
5342
|
classId,
|
|
5315
5343
|
index.classesById,
|
|
5316
5344
|
index.membersById
|
|
5317
5345
|
);
|
|
5318
5346
|
}
|
|
5319
|
-
function
|
|
5320
|
-
return
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
)
|
|
5325
|
-
|
|
5326
|
-
if (member === void 0 || !isStaticMember(member)) {
|
|
5327
|
-
instanceEntries.push(entry);
|
|
5328
|
-
}
|
|
5329
|
-
}
|
|
5330
|
-
return instanceEntries;
|
|
5331
|
-
});
|
|
5347
|
+
function mergeInstanceSurfaceSchema(classId, classes, members) {
|
|
5348
|
+
return [...resolvedClassSchema(classId, classes, members).surface];
|
|
5349
|
+
}
|
|
5350
|
+
function mergeInstanceSurfaceSchemaFromIndexes(classId, classIndex, memberIndex) {
|
|
5351
|
+
return [
|
|
5352
|
+
...resolvedClassSchemaFromIndexes(classId, classIndex, memberIndex).surface
|
|
5353
|
+
];
|
|
5332
5354
|
}
|
|
5333
5355
|
function mergeStoredInstanceSchema(classId, classes, members) {
|
|
5334
|
-
|
|
5335
|
-
return storedInstanceMemo(
|
|
5336
|
-
classId,
|
|
5337
|
-
index.classesById,
|
|
5338
|
-
index.membersById,
|
|
5339
|
-
() => {
|
|
5340
|
-
const storedEntries = [];
|
|
5341
|
-
for (const entry of instanceSurfaceFromIndex(classId, index)) {
|
|
5342
|
-
const member = index.member(entry.memberId);
|
|
5343
|
-
if (member === void 0 || !isReadOnlyMember(member)) {
|
|
5344
|
-
storedEntries.push(entry);
|
|
5345
|
-
}
|
|
5346
|
-
}
|
|
5347
|
-
return storedEntries;
|
|
5348
|
-
}
|
|
5349
|
-
);
|
|
5356
|
+
return [...resolvedClassSchema(classId, classes, members).stored];
|
|
5350
5357
|
}
|
|
5351
5358
|
function findSchemaPlacement(memberId, classes) {
|
|
5352
5359
|
return indexClasses(classes).firstSchemaPlacement(memberId);
|
|
@@ -5377,6 +5384,9 @@ function resolveMember(member, members) {
|
|
|
5377
5384
|
index.resolvedMembers.set(member, resolved);
|
|
5378
5385
|
return resolved;
|
|
5379
5386
|
}
|
|
5387
|
+
function resolveMemberFromIndex(member, memberIndex) {
|
|
5388
|
+
return resolveMemberWithIndex(member, () => memberIndex);
|
|
5389
|
+
}
|
|
5380
5390
|
function resolveMemberWithIndex(member, memberIndex) {
|
|
5381
5391
|
const chain = [];
|
|
5382
5392
|
const visited = /* @__PURE__ */ new Set();
|
|
@@ -7488,8 +7498,9 @@ function clonePlain(value, path, visiting) {
|
|
|
7488
7498
|
);
|
|
7489
7499
|
}
|
|
7490
7500
|
const clone = {};
|
|
7491
|
-
|
|
7492
|
-
|
|
7501
|
+
const record4 = value;
|
|
7502
|
+
for (const key of Object.keys(record4)) {
|
|
7503
|
+
const child = clonePlain(record4[key], `${path}.${key}`, visiting);
|
|
7493
7504
|
if (key === "__proto__") setOwnField(clone, key, child);
|
|
7494
7505
|
else clone[key] = child;
|
|
7495
7506
|
}
|
|
@@ -7534,15 +7545,27 @@ var WORLD_SYSTEM_SCHEMA_FIELD_SITES_BY_MEMBER_ID = new Map(
|
|
|
7534
7545
|
);
|
|
7535
7546
|
|
|
7536
7547
|
// ../src/models/classes/generics.ts
|
|
7548
|
+
var genericBindingsByClassIndex = /* @__PURE__ */ new WeakMap();
|
|
7537
7549
|
function resolveGenericEnv(classId, classes, draft) {
|
|
7538
|
-
const
|
|
7539
|
-
|
|
7540
|
-
|
|
7541
|
-
|
|
7542
|
-
|
|
7550
|
+
const index = classIndexFor(classes);
|
|
7551
|
+
let byClass = genericBindingsByClassIndex.get(index);
|
|
7552
|
+
let bindings = draft === void 0 ? byClass?.get(classId) : void 0;
|
|
7553
|
+
if (bindings === void 0) {
|
|
7554
|
+
const chain = resolveInheritanceChainFromIndex(classId, index, draft);
|
|
7555
|
+
const env = /* @__PURE__ */ new Map();
|
|
7556
|
+
for (let i = 0; i < chain.length; i++) {
|
|
7557
|
+
for (const param of chain[i].genericParams ?? []) {
|
|
7558
|
+
env.set(param.id, resolveParamAtChainIndex(chain, i, param.id));
|
|
7559
|
+
}
|
|
7560
|
+
}
|
|
7561
|
+
bindings = [...env];
|
|
7562
|
+
if (draft === void 0) {
|
|
7563
|
+
byClass ??= /* @__PURE__ */ new Map();
|
|
7564
|
+
byClass.set(classId, bindings);
|
|
7565
|
+
genericBindingsByClassIndex.set(index, byClass);
|
|
7543
7566
|
}
|
|
7544
7567
|
}
|
|
7545
|
-
return
|
|
7568
|
+
return new Map(bindings.map(([id, entry]) => [id, { ...entry }]));
|
|
7546
7569
|
}
|
|
7547
7570
|
function resolveParamAtChainIndex(chain, declarerIndex, paramId) {
|
|
7548
7571
|
let cursor = paramId;
|
|
@@ -8281,6 +8304,9 @@ function buildUnorderedListMembershipIndex(values) {
|
|
|
8281
8304
|
// ../src/models/members/member-value-id.ts
|
|
8282
8305
|
var NEO_MEMBER_VALUE_NAMESPACE = "7f2b9c14-58d6-5a07-b3e1-4c9d0a6f8b25";
|
|
8283
8306
|
var NEO_VIRTUAL_VALUE_NAMESPACE = "3e8ca0b3-e3f1-5d5f-bf2f-6ab5ee3896d0";
|
|
8307
|
+
var virtualNamespaceBytes = parse_default(NEO_VIRTUAL_VALUE_NAMESPACE);
|
|
8308
|
+
var virtualIdentityEncoder = new TextEncoder();
|
|
8309
|
+
var SURROGATE_CODE_UNIT = /[\ud800-\udfff]/;
|
|
8284
8310
|
function derivedMemberValueId(memberId) {
|
|
8285
8311
|
return inSystemRecordNamespaceOf(
|
|
8286
8312
|
memberId,
|
|
@@ -8288,12 +8314,11 @@ function derivedMemberValueId(memberId) {
|
|
|
8288
8314
|
);
|
|
8289
8315
|
}
|
|
8290
8316
|
function virtualValueId(instanceRootId, sourceIdentity2) {
|
|
8317
|
+
const identity = `${withoutSystemRecordIdPrefix(instanceRootId)}:${sourceIdentity2}`;
|
|
8318
|
+
const bytes = SURROGATE_CODE_UNIT.test(identity) ? identity : virtualIdentityEncoder.encode(identity);
|
|
8291
8319
|
return inSystemRecordNamespaceOf(
|
|
8292
8320
|
instanceRootId,
|
|
8293
|
-
v5_default(
|
|
8294
|
-
`${withoutSystemRecordIdPrefix(instanceRootId)}:${sourceIdentity2}`,
|
|
8295
|
-
NEO_VIRTUAL_VALUE_NAMESPACE
|
|
8296
|
-
)
|
|
8321
|
+
v5_default(bytes, virtualNamespaceBytes)
|
|
8297
8322
|
);
|
|
8298
8323
|
}
|
|
8299
8324
|
function virtualSourceIdentityHead(sourceIdentity2) {
|
|
@@ -9047,7 +9072,7 @@ function constructionMembers(classId, context) {
|
|
|
9047
9072
|
raw,
|
|
9048
9073
|
env,
|
|
9049
9074
|
document2.members,
|
|
9050
|
-
resolveMember(raw, document2.members)
|
|
9075
|
+
document2.resolvedMember?.(raw) ?? resolveMember(raw, document2.members)
|
|
9051
9076
|
),
|
|
9052
9077
|
id: raw.id
|
|
9053
9078
|
};
|
|
@@ -10279,11 +10304,11 @@ function withIndexedDefaultValueDocument(document2, options = {}) {
|
|
|
10279
10304
|
storedInstanceSchema: (classId) => {
|
|
10280
10305
|
const cached = cache.storedSchemaByClassId.get(classId);
|
|
10281
10306
|
if (cached !== void 0) return cached;
|
|
10282
|
-
const schema =
|
|
10307
|
+
const schema = resolvedClassSchema(
|
|
10283
10308
|
classId,
|
|
10284
10309
|
document2.classes,
|
|
10285
10310
|
document2.members
|
|
10286
|
-
);
|
|
10311
|
+
).stored;
|
|
10287
10312
|
cache.storedSchemaByClassId.set(classId, schema);
|
|
10288
10313
|
return schema;
|
|
10289
10314
|
},
|
|
@@ -10308,7 +10333,7 @@ function withIndexedDefaultValueDocument(document2, options = {}) {
|
|
|
10308
10333
|
},
|
|
10309
10334
|
memberDefaultSettlesConstruction: (member, environment) => {
|
|
10310
10335
|
cache.memberDefaultConstructionChecker ??= createMemberDefaultConstructionChecker({
|
|
10311
|
-
...
|
|
10336
|
+
...indexed,
|
|
10312
10337
|
constructors: document2.constructors ?? []
|
|
10313
10338
|
});
|
|
10314
10339
|
return cache.memberDefaultConstructionChecker(member, environment);
|
|
@@ -11079,7 +11104,9 @@ function cloneDefaultValueForMemberCore(args, sourceValue) {
|
|
|
11079
11104
|
members: args.document.members,
|
|
11080
11105
|
constructors: args.document.constructors ?? [],
|
|
11081
11106
|
values: args.document.values,
|
|
11082
|
-
valueById: args.document.valueById
|
|
11107
|
+
valueById: args.document.valueById,
|
|
11108
|
+
memberById: args.document.memberById,
|
|
11109
|
+
resolvedMember: args.document.resolvedMember
|
|
11083
11110
|
},
|
|
11084
11111
|
args.genericEnv
|
|
11085
11112
|
)) {
|
|
@@ -11225,9 +11252,9 @@ function formatDefaultReferenceLocation(memberName, key) {
|
|
|
11225
11252
|
return `${memberName}[${key}]`;
|
|
11226
11253
|
}
|
|
11227
11254
|
function getSchemaEntryMap(document2, classId) {
|
|
11228
|
-
|
|
11229
|
-
|
|
11230
|
-
);
|
|
11255
|
+
const node = resolvedClassSchema(classId, document2.classes, document2.members);
|
|
11256
|
+
const entries = document2.storedInstanceSchema?.(classId);
|
|
11257
|
+
return entries === void 0 || entries === node.stored ? node.storedByKey : new Map(entries.map((entry) => [entry.schemaKey, entry]));
|
|
11231
11258
|
}
|
|
11232
11259
|
function cloneMemberValueBase(body) {
|
|
11233
11260
|
return {
|
|
@@ -13002,6 +13029,7 @@ function isRecordValue(value) {
|
|
|
13002
13029
|
}
|
|
13003
13030
|
function resolveOwnerMembersForValues(document2, targetValueIds, additionalRoots, rootOwners, rootKinds, traversalExtension) {
|
|
13004
13031
|
const resolved = /* @__PURE__ */ new Map();
|
|
13032
|
+
let complete = false;
|
|
13005
13033
|
if (targetValueIds.size === 0) return resolved;
|
|
13006
13034
|
const valuesById = new Map(document2.values.map((value) => [value.id, value]));
|
|
13007
13035
|
const membersById = new Map(
|
|
@@ -13061,7 +13089,9 @@ function resolveOwnerMembersForValues(document2, targetValueIds, additionalRoots
|
|
|
13061
13089
|
resolved.set(valueId, member);
|
|
13062
13090
|
rootOwners?.set(valueId, rootOwner);
|
|
13063
13091
|
rootKinds?.set(valueId, rootKind);
|
|
13092
|
+
complete = traversalExtension === void 0 && resolved.size === targetValueIds.size;
|
|
13064
13093
|
}
|
|
13094
|
+
if (complete) return;
|
|
13065
13095
|
if (visited.has(valueId)) return;
|
|
13066
13096
|
visited.add(valueId);
|
|
13067
13097
|
const value = valuesById.get(valueId);
|
|
@@ -13108,6 +13138,7 @@ function resolveOwnerMembersForValues(document2, targetValueIds, additionalRoots
|
|
|
13108
13138
|
);
|
|
13109
13139
|
const env = overlayStamp(instanceEnv, body.genericBindings);
|
|
13110
13140
|
for (const entry of merged) {
|
|
13141
|
+
if (complete) break;
|
|
13111
13142
|
if (entry.memberId === null) continue;
|
|
13112
13143
|
const childValueId = body.value[entry.schemaKey];
|
|
13113
13144
|
if (childValueId === void 0) continue;
|
|
@@ -13127,6 +13158,7 @@ function resolveOwnerMembersForValues(document2, targetValueIds, additionalRoots
|
|
|
13127
13158
|
const entryMember = trySubstituteMember(entryMemberRecord, entryEnv);
|
|
13128
13159
|
if (entryMember === null) return;
|
|
13129
13160
|
for (const childValueId of Object.values(body.value)) {
|
|
13161
|
+
if (complete) break;
|
|
13130
13162
|
searchRow(entryMember, childValueId, rootOwner, entryEnv, rootKind);
|
|
13131
13163
|
}
|
|
13132
13164
|
return;
|
|
@@ -13140,12 +13172,14 @@ function resolveOwnerMembersForValues(document2, targetValueIds, additionalRoots
|
|
|
13140
13172
|
if (listKindOf(member) === 1 /* Unordered */) {
|
|
13141
13173
|
if (body.id === null) return;
|
|
13142
13174
|
for (const row of rowsByContainerId.get(body.id) ?? []) {
|
|
13175
|
+
if (complete) break;
|
|
13143
13176
|
searchRow(entryMember, row.id, rootOwner, entryEnv, rootKind);
|
|
13144
13177
|
}
|
|
13145
13178
|
return;
|
|
13146
13179
|
}
|
|
13147
13180
|
if (!Array.isArray(body.value)) return;
|
|
13148
13181
|
for (const childValueId of body.value) {
|
|
13182
|
+
if (complete) break;
|
|
13149
13183
|
if (typeof childValueId !== "string") continue;
|
|
13150
13184
|
searchRow(entryMember, childValueId, rootOwner, entryEnv, rootKind);
|
|
13151
13185
|
}
|
|
@@ -13163,6 +13197,7 @@ function resolveOwnerMembersForValues(document2, targetValueIds, additionalRoots
|
|
|
13163
13197
|
);
|
|
13164
13198
|
}
|
|
13165
13199
|
for (const root of additionalRoots ?? []) {
|
|
13200
|
+
if (complete) break;
|
|
13166
13201
|
searchRootMember(
|
|
13167
13202
|
root.member,
|
|
13168
13203
|
root.valueId,
|
|
@@ -13171,10 +13206,12 @@ function resolveOwnerMembersForValues(document2, targetValueIds, additionalRoots
|
|
|
13171
13206
|
);
|
|
13172
13207
|
}
|
|
13173
13208
|
for (const member of document2.members) {
|
|
13209
|
+
if (complete) break;
|
|
13174
13210
|
if (typeof member.valueId !== "string") continue;
|
|
13175
13211
|
searchRootMember(member, member.valueId, "instance");
|
|
13176
13212
|
}
|
|
13177
13213
|
for (const member of document2.members) {
|
|
13214
|
+
if (complete) break;
|
|
13178
13215
|
const defaultBody = member.defaultValue;
|
|
13179
13216
|
if (defaultBody === void 0) continue;
|
|
13180
13217
|
if (defaultBody === null) continue;
|
|
@@ -21240,6 +21277,7 @@ function memberIdFromSyntheticDefaultValueId(valueId) {
|
|
|
21240
21277
|
}
|
|
21241
21278
|
function resolveLocalizedTextId(value, ctx) {
|
|
21242
21279
|
ctx.localizedTextDependencies?.add(value);
|
|
21280
|
+
ctx.vm.localizedTextDependencies?.add(value);
|
|
21243
21281
|
const mainLocale = ctx.vm.localizationConfig?.mainLocale;
|
|
21244
21282
|
if (mainLocale === void 0) return value;
|
|
21245
21283
|
const text = ctx.vm.databaseVM?.localizedTextById?.(value) ?? ctx.vm.localizedTexts?.find((candidate) => candidate.id === value) ?? null;
|
|
@@ -22753,11 +22791,12 @@ function validateClassConstructorDescriptor(info, ctx, requireEveryRequiredField
|
|
|
22753
22791
|
return cacheDescriptor({ schemaClass: schemaClass2, fields, instanceEnv, classArguments: classArguments2 });
|
|
22754
22792
|
}
|
|
22755
22793
|
function assertConstructorFieldSlotWritable(args) {
|
|
22756
|
-
const
|
|
22794
|
+
const index = evaluatorSchemaIndex(args.ctx);
|
|
22795
|
+
const surfaceEntry = resolvedClassSchemaFromIndexes(
|
|
22757
22796
|
args.settledClassId,
|
|
22758
|
-
|
|
22759
|
-
|
|
22760
|
-
).
|
|
22797
|
+
index.classesById,
|
|
22798
|
+
index.membersById
|
|
22799
|
+
).surfaceByKey.get(args.schemaKey);
|
|
22761
22800
|
if (surfaceEntry === void 0) return;
|
|
22762
22801
|
if (isReadOnlyMember(evalMemberById(args.ctx.vm, surfaceEntry.memberId)) !== true) {
|
|
22763
22802
|
return;
|
|
@@ -25872,12 +25911,25 @@ function cloneClassValueGraph(receiver, expectedClassId, ctx) {
|
|
|
25872
25911
|
const active = /* @__PURE__ */ new Set();
|
|
25873
25912
|
const clonedBySourceId = /* @__PURE__ */ new Map();
|
|
25874
25913
|
ctx.onUnattributableValueRead?.(`class-clone:${sourceId}`);
|
|
25875
|
-
const
|
|
25914
|
+
const priorRuntimeRows = [...ctx.__runtimeSessionValues.values()];
|
|
25915
|
+
const priorOverlayRows = [...ctx.__valueOverlay?.values() ?? []];
|
|
25916
|
+
const priorPersistedRows = ctx.__valueOverlay instanceof LazyValueOverlay ? ctx.__valueOverlay.sourceRowsSnapshot() : ctx.vm.values;
|
|
25917
|
+
const priorRemovedIds = new Set(ctx.__removedValueIds);
|
|
25876
25918
|
let constructorArgumentReferenceCounts = null;
|
|
25877
25919
|
function constructorArgumentReferenceCount(valueId) {
|
|
25878
25920
|
if (constructorArgumentReferenceCounts === null) {
|
|
25879
25921
|
constructorArgumentReferenceCounts = /* @__PURE__ */ new Map();
|
|
25880
|
-
|
|
25922
|
+
const shadowedIds = /* @__PURE__ */ new Set();
|
|
25923
|
+
const candidates = [];
|
|
25924
|
+
for (const row of [...priorRuntimeRows, ...priorOverlayRows]) {
|
|
25925
|
+
shadowedIds.add(row.id);
|
|
25926
|
+
if (!priorRemovedIds.has(row.id)) candidates.push(row);
|
|
25927
|
+
}
|
|
25928
|
+
for (const row of priorPersistedRows) {
|
|
25929
|
+
if (!shadowedIds.has(row.id) && !priorRemovedIds.has(row.id))
|
|
25930
|
+
candidates.push(row);
|
|
25931
|
+
}
|
|
25932
|
+
for (const candidate of candidates) {
|
|
25881
25933
|
for (const argument2 of ownedConstructorArgumentValues(candidate, ctx)) {
|
|
25882
25934
|
constructorArgumentReferenceCounts.set(
|
|
25883
25935
|
argument2.id,
|
|
@@ -26065,9 +26117,18 @@ function cloneClassValueGraph(receiver, expectedClassId, ctx) {
|
|
|
26065
26117
|
).id;
|
|
26066
26118
|
});
|
|
26067
26119
|
ctx.onUnattributableValueRead?.(containerEntriesRead(sourceRow.id));
|
|
26068
|
-
for (const
|
|
26069
|
-
|
|
26070
|
-
|
|
26120
|
+
for (const childId of evaluatorUnorderedListEntryIds(
|
|
26121
|
+
sourceRow.id,
|
|
26122
|
+
ctx
|
|
26123
|
+
)) {
|
|
26124
|
+
if (typeof childId !== "string") continue;
|
|
26125
|
+
const child = evalValueById(
|
|
26126
|
+
ctx,
|
|
26127
|
+
childId,
|
|
26128
|
+
ctx.__runtimeSessionValues,
|
|
26129
|
+
ctx.__valueOverlay
|
|
26130
|
+
);
|
|
26131
|
+
if (child !== null) cloneRow2(child, entryMember, id, entryTypeInfo);
|
|
26071
26132
|
}
|
|
26072
26133
|
}
|
|
26073
26134
|
}
|
|
@@ -27380,12 +27441,12 @@ function collectReturnStatements(statements) {
|
|
|
27380
27441
|
var SourceText = class {
|
|
27381
27442
|
text;
|
|
27382
27443
|
lineStarts;
|
|
27444
|
+
#lastPositionLine = 0;
|
|
27383
27445
|
constructor(text) {
|
|
27384
27446
|
this.text = text;
|
|
27385
27447
|
const starts = [0];
|
|
27386
|
-
for (let index =
|
|
27387
|
-
|
|
27388
|
-
}
|
|
27448
|
+
for (let index = text.indexOf("\n"); index !== -1; index = text.indexOf("\n", index + 1))
|
|
27449
|
+
starts.push(index + 1);
|
|
27389
27450
|
this.lineStarts = starts;
|
|
27390
27451
|
}
|
|
27391
27452
|
get lineCount() {
|
|
@@ -27393,6 +27454,11 @@ var SourceText = class {
|
|
|
27393
27454
|
}
|
|
27394
27455
|
positionAt(rawOffset) {
|
|
27395
27456
|
const offset = clamp(rawOffset, 0, this.text.length);
|
|
27457
|
+
const previousLine = this.#lastPositionLine;
|
|
27458
|
+
const previousStart = this.lineStarts[previousLine];
|
|
27459
|
+
const nextStart = this.lineStarts[previousLine + 1];
|
|
27460
|
+
if (offset >= previousStart && (nextStart === void 0 || offset < nextStart))
|
|
27461
|
+
return { line: previousLine, character: offset - previousStart };
|
|
27396
27462
|
let low = 0;
|
|
27397
27463
|
let high = this.lineStarts.length;
|
|
27398
27464
|
while (low < high) {
|
|
@@ -27402,6 +27468,7 @@ var SourceText = class {
|
|
|
27402
27468
|
else low = middle + 1;
|
|
27403
27469
|
}
|
|
27404
27470
|
const line = Math.max(0, low - 1);
|
|
27471
|
+
this.#lastPositionLine = line;
|
|
27405
27472
|
return {
|
|
27406
27473
|
line,
|
|
27407
27474
|
character: offset - (this.lineStarts[line] ?? 0)
|
|
@@ -27445,6 +27512,13 @@ var TYPE_SET = /* @__PURE__ */ new Set([
|
|
|
27445
27512
|
var OPERATORS = [...NEOSCRIPT_OPERATORS].sort(
|
|
27446
27513
|
(left, right) => right.length - left.length
|
|
27447
27514
|
);
|
|
27515
|
+
var OPERATORS_BY_FIRST_CHARACTER = /* @__PURE__ */ new Map();
|
|
27516
|
+
for (const operator of OPERATORS) {
|
|
27517
|
+
const first = operator[0];
|
|
27518
|
+
const candidates = OPERATORS_BY_FIRST_CHARACTER.get(first) ?? [];
|
|
27519
|
+
candidates.push(operator);
|
|
27520
|
+
OPERATORS_BY_FIRST_CHARACTER.set(first, candidates);
|
|
27521
|
+
}
|
|
27448
27522
|
var PUNCTUATION = /* @__PURE__ */ new Set([
|
|
27449
27523
|
";",
|
|
27450
27524
|
",",
|
|
@@ -27594,7 +27668,7 @@ function lex(sourceValue) {
|
|
|
27594
27668
|
emit(makeToken(kind, start, cursor));
|
|
27595
27669
|
continue;
|
|
27596
27670
|
}
|
|
27597
|
-
const operator =
|
|
27671
|
+
const operator = OPERATORS_BY_FIRST_CHARACTER.get(char)?.find(
|
|
27598
27672
|
(candidate) => sourceValue.startsWith(candidate, cursor)
|
|
27599
27673
|
);
|
|
27600
27674
|
if (operator) {
|
|
@@ -29352,7 +29426,7 @@ function asASTBinaryOp(text) {
|
|
|
29352
29426
|
}
|
|
29353
29427
|
function grammarTokens(lexed, start, end) {
|
|
29354
29428
|
const lexicalError = lexed.diagnostics.find(
|
|
29355
|
-
(diagnostic) => diagnostic.severity === "error" && lexed.source.offsetAt(diagnostic.range.start) >= start && lexed.source.offsetAt(diagnostic.range.start)
|
|
29429
|
+
(diagnostic) => diagnostic.severity === "error" && lexed.source.offsetAt(diagnostic.range.start) >= start && lexed.source.offsetAt(diagnostic.range.start) < end
|
|
29356
29430
|
);
|
|
29357
29431
|
if (lexicalError) {
|
|
29358
29432
|
throw new CompileError(lexicalError.message, {
|
|
@@ -29360,12 +29434,22 @@ function grammarTokens(lexed, start, end) {
|
|
|
29360
29434
|
column: lexicalError.range.start.character + 1
|
|
29361
29435
|
});
|
|
29362
29436
|
}
|
|
29363
|
-
|
|
29364
|
-
|
|
29365
|
-
|
|
29366
|
-
|
|
29367
|
-
|
|
29368
|
-
|
|
29437
|
+
let low = 0;
|
|
29438
|
+
let high = lexed.roots.length;
|
|
29439
|
+
while (low < high) {
|
|
29440
|
+
const middle = low + high >>> 1;
|
|
29441
|
+
if (lexed.roots[middle].start < start) low = middle + 1;
|
|
29442
|
+
else high = middle;
|
|
29443
|
+
}
|
|
29444
|
+
const tokens = [];
|
|
29445
|
+
for (let index = low; index < lexed.roots.length; index++) {
|
|
29446
|
+
const token = lexed.roots[index];
|
|
29447
|
+
if (token.start > end) break;
|
|
29448
|
+
if (token.kind !== "comment" && token.kind !== "eof" && token.end <= end)
|
|
29449
|
+
tokens.push(token);
|
|
29450
|
+
}
|
|
29451
|
+
tokens.push(eofToken(end, lexed.source.positionAt(end)));
|
|
29452
|
+
return tokens;
|
|
29369
29453
|
}
|
|
29370
29454
|
function eofToken(offset, position) {
|
|
29371
29455
|
return {
|
|
@@ -29863,61 +29947,11 @@ function expandStoredInstance(args) {
|
|
|
29863
29947
|
`Virtual expansion root "${args.instanceRoot.id}" is missing required constructor arguments.`
|
|
29864
29948
|
);
|
|
29865
29949
|
}
|
|
29866
|
-
const constructorArguments =
|
|
29867
|
-
|
|
29868
|
-
|
|
29869
|
-
|
|
29870
|
-
|
|
29871
|
-
if (!Object.hasOwn(storedArgs, parameterId)) {
|
|
29872
|
-
if (!typeInfo.required) return [];
|
|
29873
|
-
throw new VirtualExpansionUnsupportedError(
|
|
29874
|
-
`Virtual expansion root "${args.instanceRoot.id}" is missing creation data for constructor parameter "${typeInfo.name}" (${parameterId}).`
|
|
29875
|
-
);
|
|
29876
|
-
}
|
|
29877
|
-
return [
|
|
29878
|
-
{
|
|
29879
|
-
name: typeInfo.name,
|
|
29880
|
-
valuePointer: storedArgumentPointer(
|
|
29881
|
-
storedArgs[parameterId],
|
|
29882
|
-
typeInfo
|
|
29883
|
-
)
|
|
29884
|
-
}
|
|
29885
|
-
];
|
|
29886
|
-
});
|
|
29887
|
-
const constructionPointer = (fields = []) => typeof instanceRoot.instanceVariantId === "string" ? {
|
|
29888
|
-
type: "function" /* function */,
|
|
29889
|
-
function: {
|
|
29890
|
-
type: "variantInitialize" /* variantInitialize */,
|
|
29891
|
-
info: {
|
|
29892
|
-
variantPointer: {
|
|
29893
|
-
type: "variant" /* variant */,
|
|
29894
|
-
classId,
|
|
29895
|
-
variantId: instanceRoot.instanceVariantId,
|
|
29896
|
-
rowValueId: instanceRoot.instanceVariantRowValueId ?? null
|
|
29897
|
-
},
|
|
29898
|
-
schemaClassInfo: {
|
|
29899
|
-
type: 7 /* Class */,
|
|
29900
|
-
required: true,
|
|
29901
|
-
classId
|
|
29902
|
-
}
|
|
29903
|
-
}
|
|
29904
|
-
}
|
|
29905
|
-
} : {
|
|
29906
|
-
type: "function" /* function */,
|
|
29907
|
-
function: {
|
|
29908
|
-
type: "declaredConstructor" /* declaredConstructor */,
|
|
29909
|
-
info: {
|
|
29910
|
-
schemaClassInfo: {
|
|
29911
|
-
type: 7 /* Class */,
|
|
29912
|
-
required: true,
|
|
29913
|
-
classId
|
|
29914
|
-
},
|
|
29915
|
-
constructorId: recordedConstructorId,
|
|
29916
|
-
args: constructorArguments,
|
|
29917
|
-
fields
|
|
29918
|
-
}
|
|
29919
|
-
}
|
|
29920
|
-
};
|
|
29950
|
+
const constructorArguments = storedConstructorReplayArguments(
|
|
29951
|
+
requiredConstructor,
|
|
29952
|
+
storedArgs,
|
|
29953
|
+
instanceRoot.id
|
|
29954
|
+
);
|
|
29921
29955
|
const {
|
|
29922
29956
|
value: _value,
|
|
29923
29957
|
classId: _classId,
|
|
@@ -29939,21 +29973,15 @@ function expandStoredInstance(args) {
|
|
|
29939
29973
|
);
|
|
29940
29974
|
const replayMember = closedRootMember === rootMember ? rootMember : { ...closedRootMember, classId };
|
|
29941
29975
|
const replay = (fields) => {
|
|
29942
|
-
const
|
|
29943
|
-
|
|
29944
|
-
|
|
29945
|
-
|
|
29946
|
-
|
|
29947
|
-
|
|
29948
|
-
|
|
29949
|
-
|
|
29950
|
-
|
|
29951
|
-
typeInfo: { type: 7 /* Class */, required: true, classId }
|
|
29952
|
-
};
|
|
29953
|
-
const init = {
|
|
29954
|
-
code: `virtual-replay:${args.instanceRoot.id}`,
|
|
29955
|
-
compiled
|
|
29956
|
-
};
|
|
29976
|
+
const init = storedConstructorReplayInitializer({
|
|
29977
|
+
classId,
|
|
29978
|
+
constructorId: recordedConstructorId,
|
|
29979
|
+
arguments: constructorArguments,
|
|
29980
|
+
fields,
|
|
29981
|
+
variantId: instanceRoot.instanceVariantId,
|
|
29982
|
+
variantRowValueId: instanceRoot.instanceVariantRowValueId,
|
|
29983
|
+
code: `virtual-replay:${args.instanceRoot.id}`
|
|
29984
|
+
});
|
|
29957
29985
|
return trackMaterialization(
|
|
29958
29986
|
() => materializeInitializerValue({
|
|
29959
29987
|
evaluateInitializer: args.evaluateInitializer,
|
|
@@ -30121,11 +30149,11 @@ function resolveVirtualInstanceGraph(args) {
|
|
|
30121
30149
|
const classId = effective.classId ?? indexed.member.classId;
|
|
30122
30150
|
const constructedChildren = materialized === null ? /* @__PURE__ */ new Map() : settledAggregateChildren(materialized, classId, pathKey);
|
|
30123
30151
|
const effectiveRecord = {};
|
|
30124
|
-
const schema =
|
|
30152
|
+
const schema = resolvedClassSchema(
|
|
30125
30153
|
classId,
|
|
30126
30154
|
args.document.classes,
|
|
30127
30155
|
args.document.members
|
|
30128
|
-
);
|
|
30156
|
+
).stored;
|
|
30129
30157
|
for (const entry of schema) {
|
|
30130
30158
|
const childPath = appendVirtualValuePath(pathKey, {
|
|
30131
30159
|
kind: "class",
|
|
@@ -30560,10 +30588,10 @@ function resolveVirtualInstanceGraph(args) {
|
|
|
30560
30588
|
};
|
|
30561
30589
|
}
|
|
30562
30590
|
function mergeExpandedAndMaterializedRow(expanded, materialized) {
|
|
30563
|
-
|
|
30564
|
-
|
|
30565
|
-
|
|
30566
|
-
|
|
30591
|
+
if (materialized === null) return cloneRow(expanded);
|
|
30592
|
+
const merged = cloneRow(
|
|
30593
|
+
isLiteralValueContent(materialized) ? overlayLiteralValueContent(expanded, materialized) : { ...expanded, ...materialized }
|
|
30594
|
+
);
|
|
30567
30595
|
if (merged.sourceValueId === materialized.id) delete merged.sourceValueId;
|
|
30568
30596
|
return merged;
|
|
30569
30597
|
}
|
|
@@ -30872,11 +30900,11 @@ function indexExpansion(args) {
|
|
|
30872
30900
|
instanceEnv.set(paramId, { kind: "member", memberId });
|
|
30873
30901
|
}
|
|
30874
30902
|
}
|
|
30875
|
-
const schema =
|
|
30903
|
+
const schema = resolvedClassSchema(
|
|
30876
30904
|
classId,
|
|
30877
30905
|
args.document.classes,
|
|
30878
30906
|
args.document.members
|
|
30879
|
-
);
|
|
30907
|
+
).stored;
|
|
30880
30908
|
for (const entry of schema) {
|
|
30881
30909
|
const childId = record4[entry.schemaKey];
|
|
30882
30910
|
const childMember = membersById.get(entry.memberId);
|
|
@@ -31194,6 +31222,69 @@ function canonicalJson(value) {
|
|
|
31194
31222
|
}
|
|
31195
31223
|
return `{${Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`).join(",")}}`;
|
|
31196
31224
|
}
|
|
31225
|
+
function storedConstructorReplayArguments(constructor, storedArgs, rootId) {
|
|
31226
|
+
return constructor === null ? [] : constructor.argumentTypes.flatMap((typeInfo, index) => {
|
|
31227
|
+
const parameterId = constructorActionParameterId(constructor, index);
|
|
31228
|
+
if (!Object.hasOwn(storedArgs, parameterId)) {
|
|
31229
|
+
if (!typeInfo.required) return [];
|
|
31230
|
+
throw new VirtualExpansionUnsupportedError(
|
|
31231
|
+
`Virtual expansion root "${rootId}" is missing creation data for constructor parameter "${typeInfo.name}" (${parameterId}).`
|
|
31232
|
+
);
|
|
31233
|
+
}
|
|
31234
|
+
return [
|
|
31235
|
+
{
|
|
31236
|
+
name: typeInfo.name,
|
|
31237
|
+
valuePointer: storedArgumentPointer(
|
|
31238
|
+
storedArgs[parameterId],
|
|
31239
|
+
typeInfo
|
|
31240
|
+
)
|
|
31241
|
+
}
|
|
31242
|
+
];
|
|
31243
|
+
});
|
|
31244
|
+
}
|
|
31245
|
+
function storedConstructorReplayInitializer(args) {
|
|
31246
|
+
const schemaClassInfo = {
|
|
31247
|
+
type: 7 /* Class */,
|
|
31248
|
+
required: true,
|
|
31249
|
+
classId: args.classId,
|
|
31250
|
+
...args.typeArguments === void 0 ? {} : { typeArguments: args.typeArguments }
|
|
31251
|
+
};
|
|
31252
|
+
const pointer = typeof args.variantId === "string" ? {
|
|
31253
|
+
type: "function" /* function */,
|
|
31254
|
+
function: {
|
|
31255
|
+
type: "variantInitialize" /* variantInitialize */,
|
|
31256
|
+
info: {
|
|
31257
|
+
variantPointer: {
|
|
31258
|
+
type: "variant" /* variant */,
|
|
31259
|
+
classId: args.classId,
|
|
31260
|
+
variantId: args.variantId,
|
|
31261
|
+
rowValueId: args.variantRowValueId ?? null
|
|
31262
|
+
},
|
|
31263
|
+
schemaClassInfo
|
|
31264
|
+
}
|
|
31265
|
+
}
|
|
31266
|
+
} : {
|
|
31267
|
+
type: "function" /* function */,
|
|
31268
|
+
function: {
|
|
31269
|
+
type: "declaredConstructor" /* declaredConstructor */,
|
|
31270
|
+
info: {
|
|
31271
|
+
schemaClassInfo,
|
|
31272
|
+
constructorId: args.constructorId,
|
|
31273
|
+
args: args.arguments,
|
|
31274
|
+
fields: args.fields ?? []
|
|
31275
|
+
}
|
|
31276
|
+
}
|
|
31277
|
+
};
|
|
31278
|
+
return {
|
|
31279
|
+
code: args.code,
|
|
31280
|
+
compiled: {
|
|
31281
|
+
compilerRevision: NEOSCRIPT_COMPILER_REVISION,
|
|
31282
|
+
parameters: evaluatorEnvelopeParameters(),
|
|
31283
|
+
instructions: [{ type: "return" /* return */, pointer }],
|
|
31284
|
+
typeInfo: schemaClassInfo
|
|
31285
|
+
}
|
|
31286
|
+
};
|
|
31287
|
+
}
|
|
31197
31288
|
function storedArgumentPointer(value, typeInfo) {
|
|
31198
31289
|
if ((typeInfo.type === 7 /* Class */ || typeInfo.type === 22 /* Interface */ || typeInfo.type === 6 /* List */ || typeInfo.type === 5 /* Dictionary */) && typeof value === "string") {
|
|
31199
31290
|
return { type: "reference" /* reference */, valueId: value };
|
|
@@ -31568,6 +31659,11 @@ function createHeadlessVirtualInstanceResolver(args) {
|
|
|
31568
31659
|
return knownGraph === void 0 ? emptyRows : expandRoot(knownGraph.instanceRootId, void 0);
|
|
31569
31660
|
};
|
|
31570
31661
|
return {
|
|
31662
|
+
storedClassGraph: (rootId, member) => {
|
|
31663
|
+
expandRoot(rootId, member);
|
|
31664
|
+
const graph = graphByValueId.get(rootId);
|
|
31665
|
+
return graph?.instanceRootId === rootId ? graph : null;
|
|
31666
|
+
},
|
|
31571
31667
|
virtualInstanceRowsForValue,
|
|
31572
31668
|
valueById: (id) => expandedRowById.get(id) ?? null,
|
|
31573
31669
|
rowForValueReference: (value) => expandedRowByRecord.get(value) ?? null,
|
|
@@ -31914,6 +32010,7 @@ function evaluateMemberInitializer(args) {
|
|
|
31914
32010
|
interfaces: args.document.interfaces,
|
|
31915
32011
|
localizedTexts: args.document.localizedTexts,
|
|
31916
32012
|
localizationConfig: args.document.localizationConfig,
|
|
32013
|
+
localizedTextDependencies: args.document.localizedTextDependencies,
|
|
31917
32014
|
// P67 §4: `Variants.X.Initialize()` and the P75 variant-construction
|
|
31918
32015
|
// replay both resolve the graph through `ctx.vm.variants`; omitting
|
|
31919
32016
|
// these made every variant-constructed instance refuse with
|
|
@@ -32099,6 +32196,70 @@ function headlessVirtualInstanceLookups(document2, options = {}) {
|
|
|
32099
32196
|
return lookups;
|
|
32100
32197
|
}
|
|
32101
32198
|
|
|
32199
|
+
// ../src/common/immutable-json.ts
|
|
32200
|
+
var immutable = /* @__PURE__ */ new WeakSet();
|
|
32201
|
+
function isFrozenJsonData(value) {
|
|
32202
|
+
return immutable.has(value);
|
|
32203
|
+
}
|
|
32204
|
+
function memoizeFrozenJsonGuard(isValid) {
|
|
32205
|
+
const accepted = /* @__PURE__ */ new WeakSet();
|
|
32206
|
+
return (value) => {
|
|
32207
|
+
if (value === null || typeof value !== "object" || !isFrozenJsonData(value))
|
|
32208
|
+
return isValid(value);
|
|
32209
|
+
if (accepted.has(value)) return true;
|
|
32210
|
+
if (!isValid(value)) return false;
|
|
32211
|
+
accepted.add(value);
|
|
32212
|
+
return true;
|
|
32213
|
+
};
|
|
32214
|
+
}
|
|
32215
|
+
|
|
32216
|
+
// ../packages/manifest/src/value-comparison.ts
|
|
32217
|
+
function isObjectRecord(value) {
|
|
32218
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
32219
|
+
}
|
|
32220
|
+
|
|
32221
|
+
// ../src/database/canonical-json.ts
|
|
32222
|
+
function canonicalJsonStringify(value) {
|
|
32223
|
+
return JSON.stringify(toCanonicalJsonValue(value));
|
|
32224
|
+
}
|
|
32225
|
+
function toCanonicalJsonValue(value) {
|
|
32226
|
+
if (value === null) return null;
|
|
32227
|
+
if (value === void 0) return void 0;
|
|
32228
|
+
if (value instanceof Date) return value.toISOString();
|
|
32229
|
+
if (typeof value === "string") return value;
|
|
32230
|
+
if (typeof value === "boolean") return value;
|
|
32231
|
+
if (typeof value === "number") {
|
|
32232
|
+
if (!Number.isFinite(value)) {
|
|
32233
|
+
throw new Error("Cannot canonicalize a non-finite number.");
|
|
32234
|
+
}
|
|
32235
|
+
return value;
|
|
32236
|
+
}
|
|
32237
|
+
if (typeof value === "bigint") {
|
|
32238
|
+
throw new Error("Cannot canonicalize bigint values.");
|
|
32239
|
+
}
|
|
32240
|
+
if (typeof value === "symbol") {
|
|
32241
|
+
throw new Error("Cannot canonicalize symbol values.");
|
|
32242
|
+
}
|
|
32243
|
+
if (typeof value === "function") {
|
|
32244
|
+
throw new Error("Cannot canonicalize function values.");
|
|
32245
|
+
}
|
|
32246
|
+
if (Array.isArray(value)) {
|
|
32247
|
+
return value.map((item) => {
|
|
32248
|
+
const canonicalItem = toCanonicalJsonValue(item);
|
|
32249
|
+
if (canonicalItem === void 0) return null;
|
|
32250
|
+
return canonicalItem;
|
|
32251
|
+
});
|
|
32252
|
+
}
|
|
32253
|
+
const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
|
|
32254
|
+
const canonicalObject = {};
|
|
32255
|
+
for (const [key, entryValue] of entries) {
|
|
32256
|
+
const canonicalValue = toCanonicalJsonValue(entryValue);
|
|
32257
|
+
if (canonicalValue === void 0) continue;
|
|
32258
|
+
canonicalObject[key] = canonicalValue;
|
|
32259
|
+
}
|
|
32260
|
+
return canonicalObject;
|
|
32261
|
+
}
|
|
32262
|
+
|
|
32102
32263
|
// ../packages/neoscript-language/src/syntax-index.ts
|
|
32103
32264
|
var OPEN_TO_CLOSE = /* @__PURE__ */ new Map([
|
|
32104
32265
|
["(", ")"],
|
|
@@ -37099,7 +37260,7 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
37099
37260
|
/**
|
|
37100
37261
|
* P67 §4.1/§4.2 — `<variant>.Initialize()` and `<source>.ToVariant(<variant>)`.
|
|
37101
37262
|
*
|
|
37102
|
-
* Checked before {@link
|
|
37263
|
+
* Checked before {@link resolveCallableValueCallee} deliberately. The variant
|
|
37103
37264
|
* graph really does carry an `Initialize` member of delegate type, so the
|
|
37104
37265
|
* ordinary delegate path would resolve `.Initialize()` and run step 1 of the
|
|
37105
37266
|
* construction path while silently skipping Overrides and ChildOverrides.
|
|
@@ -38152,20 +38313,23 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38152
38313
|
receiverValue
|
|
38153
38314
|
);
|
|
38154
38315
|
if (variantCall !== null) return variantCall;
|
|
38155
|
-
const
|
|
38156
|
-
|
|
38316
|
+
const callable2 = this.resolveCallableValueCallee(
|
|
38317
|
+
callee,
|
|
38318
|
+
scope,
|
|
38319
|
+
receiverValue
|
|
38320
|
+
);
|
|
38321
|
+
if (callable2?.type.kind === "delegate") {
|
|
38157
38322
|
return this.resolveDelegateCall(
|
|
38158
|
-
|
|
38323
|
+
callable2,
|
|
38159
38324
|
argumentsList2,
|
|
38160
38325
|
scope,
|
|
38161
38326
|
pos,
|
|
38162
38327
|
callee.kind === "member" && callee.optional === true
|
|
38163
38328
|
);
|
|
38164
38329
|
}
|
|
38165
|
-
|
|
38166
|
-
if (action !== null) {
|
|
38330
|
+
if (callable2?.type.kind === "action") {
|
|
38167
38331
|
throw new CompileError(
|
|
38168
|
-
`${this.describe(
|
|
38332
|
+
`${this.describe(callable2.type)} is void and cannot be used as a value; call it as a statement instead.`,
|
|
38169
38333
|
pos
|
|
38170
38334
|
);
|
|
38171
38335
|
}
|
|
@@ -38442,7 +38606,8 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38442
38606
|
}
|
|
38443
38607
|
};
|
|
38444
38608
|
}
|
|
38445
|
-
|
|
38609
|
+
/** Classify callable values once before falling back to ordinary methods. */
|
|
38610
|
+
resolveCallableValueCallee(callee, scope, receiverValue) {
|
|
38446
38611
|
if (callee.kind === "ident") {
|
|
38447
38612
|
const scoped = scope.lookup(callee.name);
|
|
38448
38613
|
const implicit = this.implicitMember(callee.name);
|
|
@@ -38450,7 +38615,7 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38450
38615
|
return null;
|
|
38451
38616
|
}
|
|
38452
38617
|
const resolved = this.resolveIdentifier(callee.name, scope, callee.pos);
|
|
38453
|
-
return resolved.type.kind === "delegate" ? resolved : null;
|
|
38618
|
+
return resolved.type.kind === "delegate" || resolved.type.kind === "action" ? resolved : null;
|
|
38454
38619
|
}
|
|
38455
38620
|
if (callee.kind !== "member") return null;
|
|
38456
38621
|
try {
|
|
@@ -38462,39 +38627,7 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38462
38627
|
callee.optional === true,
|
|
38463
38628
|
receiverValue
|
|
38464
38629
|
);
|
|
38465
|
-
return resolved.type.kind === "delegate" ? resolved : null;
|
|
38466
|
-
} catch (error) {
|
|
38467
|
-
if (error instanceof CompileError) return null;
|
|
38468
|
-
throw error;
|
|
38469
|
-
}
|
|
38470
|
-
}
|
|
38471
|
-
/**
|
|
38472
|
-
* The action-typed sibling of {@link resolveDelegateCallee}. Kept separate
|
|
38473
|
-
* so an action never leaks into the delegate call path: an action is
|
|
38474
|
-
* statement-only, and its two call sites want opposite outcomes — the
|
|
38475
|
-
* statement path compiles it, the expression path rejects it.
|
|
38476
|
-
*/
|
|
38477
|
-
resolveActionCallee(callee, scope, receiverValue) {
|
|
38478
|
-
if (callee.kind === "ident") {
|
|
38479
|
-
const scoped = scope.lookup(callee.name);
|
|
38480
|
-
const implicit = this.implicitMember(callee.name);
|
|
38481
|
-
if (scoped === null && (implicit === null || implicit.symbol.kind === "function" || implicit.symbol.kind === "method")) {
|
|
38482
|
-
return null;
|
|
38483
|
-
}
|
|
38484
|
-
const resolved = this.resolveIdentifier(callee.name, scope, callee.pos);
|
|
38485
|
-
return resolved.type.kind === "action" ? resolved : null;
|
|
38486
|
-
}
|
|
38487
|
-
if (callee.kind !== "member") return null;
|
|
38488
|
-
try {
|
|
38489
|
-
const resolved = this.resolveMember(
|
|
38490
|
-
callee.receiver,
|
|
38491
|
-
callee.name,
|
|
38492
|
-
scope,
|
|
38493
|
-
callee.pos,
|
|
38494
|
-
callee.optional === true,
|
|
38495
|
-
receiverValue
|
|
38496
|
-
);
|
|
38497
|
-
return resolved.type.kind === "action" ? resolved : null;
|
|
38630
|
+
return resolved.type.kind === "delegate" || resolved.type.kind === "action" ? resolved : null;
|
|
38498
38631
|
} catch (error) {
|
|
38499
38632
|
if (error instanceof CompileError) return null;
|
|
38500
38633
|
throw error;
|
|
@@ -40474,19 +40607,15 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
40474
40607
|
throw new Error("Base call did not produce a function call.");
|
|
40475
40608
|
return result.pointer;
|
|
40476
40609
|
}
|
|
40477
|
-
const
|
|
40610
|
+
const callable2 = this.resolveCallableValueCallee(
|
|
40478
40611
|
expression.callee,
|
|
40479
40612
|
scope,
|
|
40480
40613
|
receiverValue
|
|
40481
40614
|
);
|
|
40482
|
-
if (
|
|
40483
|
-
return this.resolveActionCall(
|
|
40615
|
+
if (callable2?.type.kind === "action") {
|
|
40616
|
+
return this.resolveActionCall(callable2, callable2.type, expression, scope);
|
|
40484
40617
|
}
|
|
40485
|
-
const delegate =
|
|
40486
|
-
expression.callee,
|
|
40487
|
-
scope,
|
|
40488
|
-
receiverValue
|
|
40489
|
-
);
|
|
40618
|
+
const delegate = callable2;
|
|
40490
40619
|
if (delegate?.type.kind === "delegate") {
|
|
40491
40620
|
const delegateType = delegate.type;
|
|
40492
40621
|
requireArgCount(
|
|
@@ -45074,6 +45203,15 @@ function analyzerMemberById(context, id) {
|
|
|
45074
45203
|
}
|
|
45075
45204
|
return analyzerSchemaIndex(context).member(id) ?? null;
|
|
45076
45205
|
}
|
|
45206
|
+
function resolveAnalyzerMember(context, member) {
|
|
45207
|
+
const index = activeSchemaIndexByContext.get(context);
|
|
45208
|
+
if (index === void 0) return resolveMember(member, context.vm.members);
|
|
45209
|
+
const cached = index.resolvedMembers.get(member);
|
|
45210
|
+
if (cached !== void 0) return cached;
|
|
45211
|
+
const resolved = resolveMemberFromIndex(member, index.membersById);
|
|
45212
|
+
index.resolvedMembers.set(member, resolved);
|
|
45213
|
+
return resolved;
|
|
45214
|
+
}
|
|
45077
45215
|
|
|
45078
45216
|
// ../src/runtime/neoscript/neoscript-language-context-adapter.ts
|
|
45079
45217
|
var NEOSCRIPT_COMPILER_ADAPTER_REVISION = 5;
|
|
@@ -45082,6 +45220,31 @@ var UNKNOWN_TYPE = {
|
|
|
45082
45220
|
name: "unknown"
|
|
45083
45221
|
};
|
|
45084
45222
|
var storageResolverByContext = /* @__PURE__ */ new WeakMap();
|
|
45223
|
+
var dialogueProjects = /* @__PURE__ */ new WeakMap();
|
|
45224
|
+
function withDialogueContextType(project, context) {
|
|
45225
|
+
if (!context.dialogueContext) return project;
|
|
45226
|
+
let contexts = dialogueProjects.get(project);
|
|
45227
|
+
if (contexts === void 0) {
|
|
45228
|
+
contexts = /* @__PURE__ */ new Map();
|
|
45229
|
+
dialogueProjects.set(project, contexts);
|
|
45230
|
+
}
|
|
45231
|
+
const dialogueType = createDialogueContextType(context);
|
|
45232
|
+
const key = JSON.stringify(dialogueType);
|
|
45233
|
+
let scoped = contexts.get(key);
|
|
45234
|
+
if (scoped === void 0) {
|
|
45235
|
+
scoped = {
|
|
45236
|
+
...project,
|
|
45237
|
+
types: [
|
|
45238
|
+
...project.types.filter(
|
|
45239
|
+
(type) => type.id !== AnalyzerDialogueContextClassId
|
|
45240
|
+
),
|
|
45241
|
+
dialogueType
|
|
45242
|
+
]
|
|
45243
|
+
};
|
|
45244
|
+
contexts.set(key, scoped);
|
|
45245
|
+
}
|
|
45246
|
+
return scoped;
|
|
45247
|
+
}
|
|
45085
45248
|
function createNeoScriptDocumentContext(context, projectOverride) {
|
|
45086
45249
|
return withAnalyzerSchemaIndex(
|
|
45087
45250
|
context,
|
|
@@ -45089,7 +45252,7 @@ function createNeoScriptDocumentContext(context, projectOverride) {
|
|
|
45089
45252
|
);
|
|
45090
45253
|
}
|
|
45091
45254
|
function createNeoScriptDocumentContextInScope(context, projectOverride) {
|
|
45092
|
-
const project = projectOverride
|
|
45255
|
+
const project = projectOverride === void 0 ? createNeoScriptProject(context) : withDialogueContextType(projectOverride, context);
|
|
45093
45256
|
const documentKind = context.scriptKind ?? "getter";
|
|
45094
45257
|
const thisClass = context.thisClass ? namedType(context.thisClass.id, true) : void 0;
|
|
45095
45258
|
const baseClass = overrideBaseClass(context);
|
|
@@ -45303,12 +45466,15 @@ function classToLanguageType(schemaClass2, context) {
|
|
|
45303
45466
|
const record4 = analyzerMemberById(context, placement.memberId);
|
|
45304
45467
|
if (!record4) continue;
|
|
45305
45468
|
let projectedRecord = record4;
|
|
45469
|
+
let projectedBase;
|
|
45306
45470
|
try {
|
|
45307
45471
|
projectedRecord = substituteMember(
|
|
45308
45472
|
record4,
|
|
45309
45473
|
genericEnvironment,
|
|
45310
|
-
context.vm.members
|
|
45474
|
+
context.vm.members,
|
|
45475
|
+
resolveAnalyzerMember(context, record4)
|
|
45311
45476
|
);
|
|
45477
|
+
projectedBase = projectedRecord;
|
|
45312
45478
|
} catch {
|
|
45313
45479
|
}
|
|
45314
45480
|
const symbol = memberToSymbol(
|
|
@@ -45318,7 +45484,8 @@ function classToLanguageType(schemaClass2, context) {
|
|
|
45318
45484
|
placement.ownerClassId,
|
|
45319
45485
|
index,
|
|
45320
45486
|
context,
|
|
45321
|
-
genericEnvironment
|
|
45487
|
+
genericEnvironment,
|
|
45488
|
+
projectedBase
|
|
45322
45489
|
);
|
|
45323
45490
|
if (!symbol) continue;
|
|
45324
45491
|
names.add(symbol.name);
|
|
@@ -45403,7 +45570,8 @@ function constructorSignature(schemaClass2, members, context, genericEnvironment
|
|
|
45403
45570
|
const resolved = substituteMember(
|
|
45404
45571
|
record4,
|
|
45405
45572
|
genericEnvironment,
|
|
45406
|
-
context.vm.members
|
|
45573
|
+
context.vm.members,
|
|
45574
|
+
resolveAnalyzerMember(context, record4)
|
|
45407
45575
|
);
|
|
45408
45576
|
return {
|
|
45409
45577
|
required: isRequiredMember(resolved),
|
|
@@ -45429,7 +45597,8 @@ function constructorSignature(schemaClass2, members, context, genericEnvironment
|
|
|
45429
45597
|
const resolved = substituteMember(
|
|
45430
45598
|
record4,
|
|
45431
45599
|
genericEnvironment,
|
|
45432
|
-
context.vm.members
|
|
45600
|
+
context.vm.members,
|
|
45601
|
+
resolveAnalyzerMember(context, record4)
|
|
45433
45602
|
);
|
|
45434
45603
|
return {
|
|
45435
45604
|
required: isRequiredMember(resolved),
|
|
@@ -45481,10 +45650,10 @@ function canonicalMemberId(id, context) {
|
|
|
45481
45650
|
}
|
|
45482
45651
|
return resolve(id);
|
|
45483
45652
|
}
|
|
45484
|
-
function memberToSymbol(record4, schemaKey, containingClass, ownerClassId, index, context, genericEnvironment) {
|
|
45653
|
+
function memberToSymbol(record4, schemaKey, containingClass, ownerClassId, index, context, genericEnvironment, projectedBase) {
|
|
45485
45654
|
let resolved;
|
|
45486
45655
|
try {
|
|
45487
|
-
resolved =
|
|
45656
|
+
resolved = projectedBase ?? resolveAnalyzerMember(context, record4);
|
|
45488
45657
|
} catch {
|
|
45489
45658
|
return null;
|
|
45490
45659
|
}
|
|
@@ -45492,7 +45661,8 @@ function memberToSymbol(record4, schemaKey, containingClass, ownerClassId, index
|
|
|
45492
45661
|
record4,
|
|
45493
45662
|
context,
|
|
45494
45663
|
/* @__PURE__ */ new Set(),
|
|
45495
|
-
genericEnvironment
|
|
45664
|
+
genericEnvironment,
|
|
45665
|
+
resolved
|
|
45496
45666
|
);
|
|
45497
45667
|
const owner = analyzerSchemaIndex(context).class(ownerClassId);
|
|
45498
45668
|
const inheritedFrom = owner && owner.id !== containingClass.id ? {
|
|
@@ -45823,7 +45993,7 @@ function createListIndexes(context) {
|
|
|
45823
45993
|
for (const record4 of context.vm.members) {
|
|
45824
45994
|
let resolved;
|
|
45825
45995
|
try {
|
|
45826
|
-
resolved =
|
|
45996
|
+
resolved = resolveAnalyzerMember(context, record4);
|
|
45827
45997
|
} catch {
|
|
45828
45998
|
continue;
|
|
45829
45999
|
}
|
|
@@ -45853,12 +46023,12 @@ function createListIndexes(context) {
|
|
|
45853
46023
|
}
|
|
45854
46024
|
return result;
|
|
45855
46025
|
}
|
|
45856
|
-
function memberRuntimeType(record4, context, seen = /* @__PURE__ */ new Set(), genericEnvironment) {
|
|
46026
|
+
function memberRuntimeType(record4, context, seen = /* @__PURE__ */ new Set(), genericEnvironment, projectedBase) {
|
|
45857
46027
|
if (seen.has(record4.id)) return UNKNOWN_TYPE;
|
|
45858
46028
|
const nextSeen = new Set(seen).add(record4.id);
|
|
45859
46029
|
let member;
|
|
45860
46030
|
try {
|
|
45861
|
-
member =
|
|
46031
|
+
member = projectedBase ?? resolveAnalyzerMember(context, record4);
|
|
45862
46032
|
} catch {
|
|
45863
46033
|
return UNKNOWN_TYPE;
|
|
45864
46034
|
}
|
|
@@ -46105,7 +46275,12 @@ function classArguments(member, context, seen, genericEnvironment) {
|
|
|
46105
46275
|
function substituteForGenericEnvironment(member, environment, context) {
|
|
46106
46276
|
if (!environment) return member;
|
|
46107
46277
|
try {
|
|
46108
|
-
return substituteMember(
|
|
46278
|
+
return substituteMember(
|
|
46279
|
+
member,
|
|
46280
|
+
environment,
|
|
46281
|
+
context.vm.members,
|
|
46282
|
+
resolveAnalyzerMember(context, member)
|
|
46283
|
+
);
|
|
46109
46284
|
} catch {
|
|
46110
46285
|
return member;
|
|
46111
46286
|
}
|
|
@@ -46391,7 +46566,7 @@ function scriptDefinitionLocations2(memberId, context) {
|
|
|
46391
46566
|
if (!record4) return {};
|
|
46392
46567
|
let resolved;
|
|
46393
46568
|
try {
|
|
46394
|
-
resolved =
|
|
46569
|
+
resolved = resolveAnalyzerMember(context, record4);
|
|
46395
46570
|
} catch {
|
|
46396
46571
|
return {};
|
|
46397
46572
|
}
|
|
@@ -46477,7 +46652,7 @@ function virtualNeoSchemaClassHeader(schemaClass2, context) {
|
|
|
46477
46652
|
return `public ${isAbstractClass(schemaClass2) ? "abstract " : ""}partial class ${virtualCSharpIdentifier(schemaClass2.name)}${genericParameters}${inheritance}${constraints.join("")} // Neo class ${schemaClass2.id}`;
|
|
46478
46653
|
}
|
|
46479
46654
|
function virtualConstraintMemberType(member, context) {
|
|
46480
|
-
const resolved =
|
|
46655
|
+
const resolved = resolveAnalyzerMember(context, member);
|
|
46481
46656
|
switch (resolved.kind) {
|
|
46482
46657
|
case 1 /* Bool */:
|
|
46483
46658
|
return "bool";
|
|
@@ -49050,18 +49225,18 @@ function readProjectDocument(value, options = {}) {
|
|
|
49050
49225
|
"localizationConfig",
|
|
49051
49226
|
isProjectLocalizationConfig
|
|
49052
49227
|
) : readField(value, "localizationConfig", isProjectLocalizationConfig);
|
|
49053
|
-
const storedValues =
|
|
49228
|
+
const storedValues = readDocumentArrayField(value, "values", isMemberValue);
|
|
49054
49229
|
const valueBuckets = options.values === "stored" ? { values: storedValues } : projectDocumentValueBuckets(storedValues);
|
|
49055
49230
|
return {
|
|
49056
49231
|
version: readField(value, "version", isProjectVersion),
|
|
49057
|
-
versions:
|
|
49232
|
+
versions: readDocumentArrayField(value, "versions", isProjectVersion),
|
|
49058
49233
|
versionStatus: readField(value, "versionStatus", isProjectVersionStatus),
|
|
49059
|
-
versionStatuses:
|
|
49234
|
+
versionStatuses: readDocumentArrayField(
|
|
49060
49235
|
value,
|
|
49061
49236
|
"versionStatuses",
|
|
49062
49237
|
isProjectVersionStatus
|
|
49063
49238
|
),
|
|
49064
|
-
releaseChannels:
|
|
49239
|
+
releaseChannels: readDocumentArrayField(
|
|
49065
49240
|
value,
|
|
49066
49241
|
"releaseChannels",
|
|
49067
49242
|
isProjectReleaseChannel
|
|
@@ -49071,7 +49246,7 @@ function readProjectDocument(value, options = {}) {
|
|
|
49071
49246
|
value,
|
|
49072
49247
|
options.members === "authored-or-compiled" ? isAnyMemberAuthoredOrCompiled : isAnyMember
|
|
49073
49248
|
),
|
|
49074
|
-
classes:
|
|
49249
|
+
classes: readDocumentArrayField(value, "classes", isNeoSchemaClass),
|
|
49075
49250
|
constructors: readOptionalArrayField(
|
|
49076
49251
|
value,
|
|
49077
49252
|
"constructors",
|
|
@@ -49092,13 +49267,13 @@ function readProjectDocument(value, options = {}) {
|
|
|
49092
49267
|
// Retain the physical bucket after expansion for write-path comparisons.
|
|
49093
49268
|
values: valueBuckets.values,
|
|
49094
49269
|
...valueBuckets.physicalValues === void 0 ? {} : { physicalValues: valueBuckets.physicalValues },
|
|
49095
|
-
enums:
|
|
49270
|
+
enums: readDocumentArrayField(
|
|
49096
49271
|
value,
|
|
49097
49272
|
"enums",
|
|
49098
49273
|
options.identities === "prospective" ? isProspectiveEnum : isEnum
|
|
49099
49274
|
),
|
|
49100
|
-
interfaces:
|
|
49101
|
-
...options.dialogues === "omit" ? {} : { dialogues:
|
|
49275
|
+
interfaces: readDocumentArrayField(value, "interfaces", isNeoInterface),
|
|
49276
|
+
...options.dialogues === "omit" ? {} : { dialogues: readDocumentArrayField(value, "dialogues", isDialogue) },
|
|
49102
49277
|
dialogueRecords: readOptionalArrayField(
|
|
49103
49278
|
value,
|
|
49104
49279
|
"dialogueRecords",
|
|
@@ -49109,26 +49284,38 @@ function readProjectDocument(value, options = {}) {
|
|
|
49109
49284
|
"dialogueNodes",
|
|
49110
49285
|
isDialogueNodeRecord
|
|
49111
49286
|
),
|
|
49112
|
-
dialogueGroups:
|
|
49113
|
-
|
|
49114
|
-
|
|
49115
|
-
|
|
49287
|
+
dialogueGroups: readDocumentArrayField(
|
|
49288
|
+
value,
|
|
49289
|
+
"dialogueGroups",
|
|
49290
|
+
isAnyDialogueGroup
|
|
49291
|
+
),
|
|
49292
|
+
priorityGroups: readDocumentArrayField(
|
|
49293
|
+
value,
|
|
49294
|
+
"priorityGroups",
|
|
49295
|
+
isPriorityGroup
|
|
49296
|
+
),
|
|
49297
|
+
projectFiles: readDocumentArrayField(value, "projectFiles", isProjectFile),
|
|
49298
|
+
textureTemplates: readDocumentArrayField(
|
|
49116
49299
|
value,
|
|
49117
49300
|
"textureTemplates",
|
|
49118
49301
|
isUnityTexture2DImportSettingsTemplate
|
|
49119
49302
|
),
|
|
49120
|
-
audioClipTemplates:
|
|
49303
|
+
audioClipTemplates: readDocumentArrayField(
|
|
49121
49304
|
value,
|
|
49122
49305
|
"audioClipTemplates",
|
|
49123
49306
|
isUnityAudioClipImportSettingsTemplate
|
|
49124
49307
|
),
|
|
49125
49308
|
localizationConfig,
|
|
49126
|
-
localizationStatuses:
|
|
49309
|
+
localizationStatuses: readDocumentArrayField(
|
|
49127
49310
|
value,
|
|
49128
49311
|
"localizationStatuses",
|
|
49129
49312
|
isLocalizationStatus
|
|
49130
49313
|
),
|
|
49131
|
-
localizedTexts:
|
|
49314
|
+
localizedTexts: readDocumentArrayField(
|
|
49315
|
+
value,
|
|
49316
|
+
"localizedTexts",
|
|
49317
|
+
isLocalizedText
|
|
49318
|
+
),
|
|
49132
49319
|
migrations: readOptionalArrayField(value, "migrations", isProjectMigration)
|
|
49133
49320
|
};
|
|
49134
49321
|
}
|
|
@@ -49158,7 +49345,7 @@ function isHashHead(value) {
|
|
|
49158
49345
|
}
|
|
49159
49346
|
function readField(source, key, isValid) {
|
|
49160
49347
|
const value = source[key];
|
|
49161
|
-
if (isValid(value)) return value;
|
|
49348
|
+
if (frozenRecordGuard(isValid)(value)) return value;
|
|
49162
49349
|
throw new Error(
|
|
49163
49350
|
`Convex project document field "${key}" has an invalid shape.`
|
|
49164
49351
|
);
|
|
@@ -49166,11 +49353,23 @@ function readField(source, key, isValid) {
|
|
|
49166
49353
|
function readOptionalNullableField(source, key, isValid) {
|
|
49167
49354
|
const value = source[key];
|
|
49168
49355
|
if (value === void 0 || value === null) return null;
|
|
49169
|
-
if (isValid(value)) return value;
|
|
49356
|
+
if (frozenRecordGuard(isValid)(value)) return value;
|
|
49170
49357
|
throw new Error(
|
|
49171
49358
|
`Convex project document field "${key}" has an invalid shape.`
|
|
49172
49359
|
);
|
|
49173
49360
|
}
|
|
49361
|
+
var frozenRecordGuards = /* @__PURE__ */ new WeakMap();
|
|
49362
|
+
function frozenRecordGuard(isValid) {
|
|
49363
|
+
let guard = frozenRecordGuards.get(isValid);
|
|
49364
|
+
if (guard === void 0) {
|
|
49365
|
+
guard = memoizeFrozenJsonGuard(isValid);
|
|
49366
|
+
frozenRecordGuards.set(isValid, guard);
|
|
49367
|
+
}
|
|
49368
|
+
return guard;
|
|
49369
|
+
}
|
|
49370
|
+
function readDocumentArrayField(source, key, isValid) {
|
|
49371
|
+
return readArrayField(source, key, frozenRecordGuard(isValid));
|
|
49372
|
+
}
|
|
49174
49373
|
function readArrayField(source, key, isValid) {
|
|
49175
49374
|
const value = source[key];
|
|
49176
49375
|
if (!Array.isArray(value)) {
|
|
@@ -49192,10 +49391,10 @@ function describeRejectedCompilerRevision(value) {
|
|
|
49192
49391
|
}
|
|
49193
49392
|
function readOptionalArrayField(source, key, isValid) {
|
|
49194
49393
|
if (!Object.prototype.hasOwnProperty.call(source, key)) return [];
|
|
49195
|
-
return
|
|
49394
|
+
return readDocumentArrayField(source, key, isValid);
|
|
49196
49395
|
}
|
|
49197
49396
|
function readStoredMembersField(source, isValid = isAnyMember) {
|
|
49198
|
-
return
|
|
49397
|
+
return readDocumentArrayField(
|
|
49199
49398
|
source,
|
|
49200
49399
|
"members",
|
|
49201
49400
|
isValid
|
|
@@ -49482,10 +49681,20 @@ var WORLD_LAYER_LINK_KINDS = /* @__PURE__ */ new Set([
|
|
|
49482
49681
|
NeoWorldSystemClassKind.ObjectLayerLink
|
|
49483
49682
|
]);
|
|
49484
49683
|
|
|
49485
|
-
// ../
|
|
49486
|
-
|
|
49487
|
-
|
|
49488
|
-
}
|
|
49684
|
+
// ../src/database/project-snapshot-derived-edges.ts
|
|
49685
|
+
var REFERENCE_ID_PAYLOAD = canonicalJsonStringify({
|
|
49686
|
+
referenceKind: "record-id"
|
|
49687
|
+
});
|
|
49688
|
+
var REFERENCE_NAME_PAYLOAD = canonicalJsonStringify({
|
|
49689
|
+
referenceKind: "type-name"
|
|
49690
|
+
});
|
|
49691
|
+
var CONSTRUCTED_CLASS_PAYLOAD = canonicalJsonStringify({
|
|
49692
|
+
referenceKind: "constructed-class-id"
|
|
49693
|
+
});
|
|
49694
|
+
var BODY_CHILD_PAYLOAD = canonicalJsonStringify({
|
|
49695
|
+
relation: "body-child",
|
|
49696
|
+
depth: 1
|
|
49697
|
+
});
|
|
49489
49698
|
|
|
49490
49699
|
// ../src/models/project/world-content-sidecar-validation.ts
|
|
49491
49700
|
var WORLD_PLACEMENT_ASSET_KIND = /* @__PURE__ */ new Map([[NeoWorldSystemClassKind.Object, NeoWorldSystemClassKind.Object]]);
|
|
@@ -54423,6 +54632,1442 @@ var SPECIALIZED_RELATION_KINDS = /* @__PURE__ */ new Set([
|
|
|
54423
54632
|
"world.object-layer-link.target"
|
|
54424
54633
|
]);
|
|
54425
54634
|
|
|
54635
|
+
// ../packages/manifest/schema-contract/registry.mjs
|
|
54636
|
+
var PROJECT_SCHEMA_CONTRACT = Object.freeze({
|
|
54637
|
+
cliVersion: "0.72.1",
|
|
54638
|
+
projectFileUploadBatchSize: 32,
|
|
54639
|
+
documentRecords: {
|
|
54640
|
+
member: {
|
|
54641
|
+
authored: [
|
|
54642
|
+
"id",
|
|
54643
|
+
"name",
|
|
54644
|
+
"docsText",
|
|
54645
|
+
"kind",
|
|
54646
|
+
"requirement",
|
|
54647
|
+
"mutability",
|
|
54648
|
+
"modifier",
|
|
54649
|
+
"access",
|
|
54650
|
+
"defaultValue",
|
|
54651
|
+
"extendsMemberId",
|
|
54652
|
+
"system",
|
|
54653
|
+
"storage",
|
|
54654
|
+
"storageKey",
|
|
54655
|
+
// Deliberately carries no normalization rule (P76 §1): absence is the
|
|
54656
|
+
// canonical automatic setting and explicit ordinal 0 is an explicit
|
|
54657
|
+
// `.Sparse`, so `absentMeansDefault` would collapse the two states
|
|
54658
|
+
// that the whole contract exists to keep apart.
|
|
54659
|
+
"distribution",
|
|
54660
|
+
"minValue",
|
|
54661
|
+
"maxValue",
|
|
54662
|
+
"decimalPoints",
|
|
54663
|
+
"format",
|
|
54664
|
+
"searchBy",
|
|
54665
|
+
"entryMemberId",
|
|
54666
|
+
"keyKind",
|
|
54667
|
+
"keyEnumId",
|
|
54668
|
+
"listKind",
|
|
54669
|
+
"indexes",
|
|
54670
|
+
"columnSettings",
|
|
54671
|
+
"classId",
|
|
54672
|
+
"payload",
|
|
54673
|
+
"schemaKeyOrder",
|
|
54674
|
+
"classArguments",
|
|
54675
|
+
"enumId",
|
|
54676
|
+
"selection",
|
|
54677
|
+
"collectionMemberId",
|
|
54678
|
+
"collectionValueId",
|
|
54679
|
+
"declaredTypeInfo",
|
|
54680
|
+
"targetTypeInfo",
|
|
54681
|
+
"valueTypeInfo",
|
|
54682
|
+
"dialogueGroupId",
|
|
54683
|
+
"code",
|
|
54684
|
+
"setterCode",
|
|
54685
|
+
"returnTypeInfo",
|
|
54686
|
+
"argumentTypes",
|
|
54687
|
+
"dispatch",
|
|
54688
|
+
"bodyMode",
|
|
54689
|
+
// P97 §1.1. No normalization rule, like `distribution`: absence means
|
|
54690
|
+
// unset (a declaration resolves to `.None`, an override inherits) and
|
|
54691
|
+
// explicit ordinal 0 is an authored `.None` that stops inheritance.
|
|
54692
|
+
"effect",
|
|
54693
|
+
"uiAction",
|
|
54694
|
+
"templateId",
|
|
54695
|
+
"genericParamId"
|
|
54696
|
+
],
|
|
54697
|
+
derived: ["valueId", "getter", "setter", "action"],
|
|
54698
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54699
|
+
normalization: {
|
|
54700
|
+
requirement: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54701
|
+
mutability: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54702
|
+
modifier: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54703
|
+
access: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54704
|
+
defaultValue: "nullIsAbsentOnFullMember",
|
|
54705
|
+
extendsMemberId: "nullIsAbsent",
|
|
54706
|
+
system: "nullIsAbsent",
|
|
54707
|
+
storage: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54708
|
+
storageKey: "nullOrEmptyStringIsAbsentOnFullMember",
|
|
54709
|
+
minValue: "nullIsAbsentOnFullMember",
|
|
54710
|
+
maxValue: "nullIsAbsentOnFullMember",
|
|
54711
|
+
decimalPoints: "nullIsAbsentOnFullMember",
|
|
54712
|
+
format: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54713
|
+
searchBy: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54714
|
+
keyEnumId: "nullIsAbsent",
|
|
54715
|
+
keyKind: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54716
|
+
listKind: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54717
|
+
indexes: "nullOrEmptyArrayIsAbsentOnFullMember",
|
|
54718
|
+
columnSettings: "nullOrEmptyArrayIsAbsentOnFullMember",
|
|
54719
|
+
schemaKeyOrder: "nullIsAbsentOnFullMember",
|
|
54720
|
+
classArguments: "nullOrEmptyObjectIsAbsentOnFullMember",
|
|
54721
|
+
payload: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54722
|
+
selection: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54723
|
+
collectionValueId: "nullIsAbsentOnFullMember",
|
|
54724
|
+
declaredTypeInfo: "nullIsAbsentOnFullMember",
|
|
54725
|
+
targetTypeInfo: "nullIsAbsentOnFullMember",
|
|
54726
|
+
valueTypeInfo: "nullIsAbsentOnFullMember",
|
|
54727
|
+
dialogueGroupId: "nullIsAbsentOnFullMember",
|
|
54728
|
+
code: "nullIsAbsentOnFullMember",
|
|
54729
|
+
templateId: "nullIsAbsentOnFullMember",
|
|
54730
|
+
setterCode: "nullIsAbsentOnFullMember",
|
|
54731
|
+
dispatch: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54732
|
+
bodyMode: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54733
|
+
uiAction: "nullIsAbsentOnFullMember"
|
|
54734
|
+
}
|
|
54735
|
+
},
|
|
54736
|
+
class: {
|
|
54737
|
+
authored: [
|
|
54738
|
+
"id",
|
|
54739
|
+
"name",
|
|
54740
|
+
"docsText",
|
|
54741
|
+
"schema",
|
|
54742
|
+
"schemaKeyOrder",
|
|
54743
|
+
"extendsClassId",
|
|
54744
|
+
"implementsInterfaceIds",
|
|
54745
|
+
"uiVisibility",
|
|
54746
|
+
"modifier",
|
|
54747
|
+
"system",
|
|
54748
|
+
"allowedStorage",
|
|
54749
|
+
"allowedStorageKeys",
|
|
54750
|
+
"genericParams",
|
|
54751
|
+
"extendsGenericBindings",
|
|
54752
|
+
"constructorIds",
|
|
54753
|
+
"requiredConstructorId",
|
|
54754
|
+
"targetMemberId"
|
|
54755
|
+
],
|
|
54756
|
+
derived: [],
|
|
54757
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54758
|
+
normalization: {
|
|
54759
|
+
uiVisibility: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54760
|
+
modifier: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54761
|
+
targetMemberId: "nullIsAbsent",
|
|
54762
|
+
schemaKeyOrder: "nullIsAbsent",
|
|
54763
|
+
extendsClassId: "nullIsAbsent",
|
|
54764
|
+
implementsInterfaceIds: "nullOrEmptyArrayIsAbsent",
|
|
54765
|
+
system: "nullIsAbsent",
|
|
54766
|
+
allowedStorage: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54767
|
+
allowedStorageKeys: "nullIsAbsent",
|
|
54768
|
+
genericParams: "nullOrEmptyArrayIsAbsent",
|
|
54769
|
+
extendsGenericBindings: "nullOrEmptyObjectIsAbsent",
|
|
54770
|
+
constructorIds: "nullOrEmptyArrayIsAbsent",
|
|
54771
|
+
requiredConstructorId: "nullIsAbsent"
|
|
54772
|
+
}
|
|
54773
|
+
},
|
|
54774
|
+
constructor: {
|
|
54775
|
+
authored: [
|
|
54776
|
+
"id",
|
|
54777
|
+
"classId",
|
|
54778
|
+
"argumentTypes",
|
|
54779
|
+
"code",
|
|
54780
|
+
"baseArguments",
|
|
54781
|
+
"baseInitializerFields",
|
|
54782
|
+
"docsText"
|
|
54783
|
+
],
|
|
54784
|
+
derived: [
|
|
54785
|
+
"action",
|
|
54786
|
+
"compiledBaseArguments",
|
|
54787
|
+
"compiledBaseInitializerFields"
|
|
54788
|
+
],
|
|
54789
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54790
|
+
// `code` is deliberately un-normalized. P49 §1.2 gives it three states —
|
|
54791
|
+
// a body, `""` for a declared-but-empty body, and `null` for a class
|
|
54792
|
+
// header that declares no `init` block — and the last two must stay
|
|
54793
|
+
// distinct in the canonical form or `neo pull` cannot tell
|
|
54794
|
+
// `class Foo { init { } }` from `class Foo()`. `nullIsAbsent` would keep
|
|
54795
|
+
// them distinct too, but it drops the field from the written record
|
|
54796
|
+
// (`composeDocumentRecord` writes the normalized authored half), which
|
|
54797
|
+
// would make the persisted shape disagree with the domain model's
|
|
54798
|
+
// required `code: string | null`. Leaving it plain means exactly two
|
|
54799
|
+
// spellings of an empty body reach storage, never three.
|
|
54800
|
+
normalization: {
|
|
54801
|
+
baseArguments: "nullOrEmptyArrayIsAbsent",
|
|
54802
|
+
baseInitializerFields: "nullOrEmptyArrayIsAbsent"
|
|
54803
|
+
}
|
|
54804
|
+
},
|
|
54805
|
+
variant: {
|
|
54806
|
+
// P67 §2.1. A variant record names its class, its scope, and the root row
|
|
54807
|
+
// of the value graph it owns. The delegates themselves are value rows, so
|
|
54808
|
+
// the compiled `action` IR the server derives lives there, not here —
|
|
54809
|
+
// which is why this record has no derived half at all.
|
|
54810
|
+
authored: ["id", "classId", "name", "folderId", "valueId"],
|
|
54811
|
+
derived: [],
|
|
54812
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54813
|
+
// `folderId` is always written: null is the class root folder, and a
|
|
54814
|
+
// missing field would make "root" and "corrupt" the same shape.
|
|
54815
|
+
normalization: { folderId: "missingIsNull" }
|
|
54816
|
+
},
|
|
54817
|
+
"variant-folder": {
|
|
54818
|
+
// P67 §3.3. A folder's whole content is its path, which is what lets a
|
|
54819
|
+
// rename be a one-record edit that orphans nothing.
|
|
54820
|
+
authored: ["id", "classId", "path", "binding"],
|
|
54821
|
+
derived: [],
|
|
54822
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54823
|
+
normalization: { binding: "nullIsAbsent" }
|
|
54824
|
+
},
|
|
54825
|
+
interface: {
|
|
54826
|
+
authored: [
|
|
54827
|
+
"id",
|
|
54828
|
+
"name",
|
|
54829
|
+
"docsText",
|
|
54830
|
+
"members",
|
|
54831
|
+
"memberKeyOrder",
|
|
54832
|
+
"extendsInterfaceIds",
|
|
54833
|
+
"system"
|
|
54834
|
+
],
|
|
54835
|
+
derived: [],
|
|
54836
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54837
|
+
normalization: {
|
|
54838
|
+
memberKeyOrder: "nullOrEmptyArrayIsAbsent",
|
|
54839
|
+
extendsInterfaceIds: "nullOrEmptyArrayIsAbsent",
|
|
54840
|
+
system: "nullIsAbsent"
|
|
54841
|
+
}
|
|
54842
|
+
},
|
|
54843
|
+
enum: {
|
|
54844
|
+
authored: [
|
|
54845
|
+
"id",
|
|
54846
|
+
"name",
|
|
54847
|
+
"docsText",
|
|
54848
|
+
"options",
|
|
54849
|
+
"optionKeyOrder",
|
|
54850
|
+
"system"
|
|
54851
|
+
],
|
|
54852
|
+
derived: [],
|
|
54853
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54854
|
+
normalization: { system: "nullIsAbsent" }
|
|
54855
|
+
},
|
|
54856
|
+
"unity-texture-template": {
|
|
54857
|
+
authored: [
|
|
54858
|
+
"id",
|
|
54859
|
+
"name",
|
|
54860
|
+
"type",
|
|
54861
|
+
"textureType",
|
|
54862
|
+
"textureShape",
|
|
54863
|
+
"sRGBTexture",
|
|
54864
|
+
"alphaSource",
|
|
54865
|
+
"alphaIsTransparency",
|
|
54866
|
+
"nonPowerOfTwoScale",
|
|
54867
|
+
"ignorePngGamma",
|
|
54868
|
+
"readWriteEnabled",
|
|
54869
|
+
"virtualTextureOnly",
|
|
54870
|
+
"generateMipMaps",
|
|
54871
|
+
"borderMipMaps",
|
|
54872
|
+
"mipMapFiltering",
|
|
54873
|
+
"mipMapsPreserveCoverage",
|
|
54874
|
+
"alphaCutoffValue",
|
|
54875
|
+
"fadeOutMipMaps",
|
|
54876
|
+
"mipMapFadeDistanceStart",
|
|
54877
|
+
"mipMapFadeDistanceEnd",
|
|
54878
|
+
"anisoLevel",
|
|
54879
|
+
"wrapMode",
|
|
54880
|
+
"wrapModeU",
|
|
54881
|
+
"wrapModeV",
|
|
54882
|
+
"filterMode",
|
|
54883
|
+
"maxTextureSize",
|
|
54884
|
+
"resizeAlgorithm",
|
|
54885
|
+
"textureCompression",
|
|
54886
|
+
"compressionQuality",
|
|
54887
|
+
"crunchedCompression",
|
|
54888
|
+
"platformSettings",
|
|
54889
|
+
"spriteSettings",
|
|
54890
|
+
"normalMapSettings",
|
|
54891
|
+
"cookieSettings",
|
|
54892
|
+
"singleChannelSettings",
|
|
54893
|
+
"swizzle"
|
|
54894
|
+
],
|
|
54895
|
+
derived: [],
|
|
54896
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54897
|
+
normalization: {
|
|
54898
|
+
wrapModeU: "missingIsNull",
|
|
54899
|
+
wrapModeV: "missingIsNull",
|
|
54900
|
+
spriteSettings: "missingIsNull",
|
|
54901
|
+
normalMapSettings: "missingIsNull",
|
|
54902
|
+
cookieSettings: "missingIsNull",
|
|
54903
|
+
singleChannelSettings: "missingIsNull",
|
|
54904
|
+
swizzle: "missingIsNull"
|
|
54905
|
+
}
|
|
54906
|
+
},
|
|
54907
|
+
"unity-audio-clip-template": {
|
|
54908
|
+
authored: [
|
|
54909
|
+
"id",
|
|
54910
|
+
"name",
|
|
54911
|
+
"forceToMono",
|
|
54912
|
+
"normalize",
|
|
54913
|
+
"loadInBackground",
|
|
54914
|
+
"ambisonic",
|
|
54915
|
+
"loadType",
|
|
54916
|
+
"compressionFormat",
|
|
54917
|
+
"quality",
|
|
54918
|
+
"sampleRateSetting",
|
|
54919
|
+
"overrideSampleRate",
|
|
54920
|
+
"preloadAudioData"
|
|
54921
|
+
],
|
|
54922
|
+
derived: [],
|
|
54923
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54924
|
+
normalization: { overrideSampleRate: "missingIsNull" }
|
|
54925
|
+
},
|
|
54926
|
+
"localization-config": {
|
|
54927
|
+
authored: [
|
|
54928
|
+
"id",
|
|
54929
|
+
"mainLocale",
|
|
54930
|
+
"supportedLocales",
|
|
54931
|
+
"sortedStatusIds",
|
|
54932
|
+
"mainLocaleDefaultStatusId"
|
|
54933
|
+
],
|
|
54934
|
+
derived: [],
|
|
54935
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54936
|
+
normalization: {}
|
|
54937
|
+
},
|
|
54938
|
+
"localization-status": {
|
|
54939
|
+
authored: [
|
|
54940
|
+
"id",
|
|
54941
|
+
"slug",
|
|
54942
|
+
"name",
|
|
54943
|
+
"description",
|
|
54944
|
+
"color",
|
|
54945
|
+
"emoji",
|
|
54946
|
+
"archivedAt",
|
|
54947
|
+
"transitionRules",
|
|
54948
|
+
"transitionToStatusIdOnEditText",
|
|
54949
|
+
"transitionToWhenSourceBecomesStatusId",
|
|
54950
|
+
"system"
|
|
54951
|
+
],
|
|
54952
|
+
derived: [],
|
|
54953
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54954
|
+
normalization: {
|
|
54955
|
+
description: "missingIsNull",
|
|
54956
|
+
color: "missingIsNull",
|
|
54957
|
+
emoji: "missingIsNull",
|
|
54958
|
+
archivedAt: "missingIsNull",
|
|
54959
|
+
transitionRules: "missingIsNull",
|
|
54960
|
+
transitionToStatusIdOnEditText: "missingIsNull",
|
|
54961
|
+
transitionToWhenSourceBecomesStatusId: "missingIsNull",
|
|
54962
|
+
system: "nullIsAbsent"
|
|
54963
|
+
}
|
|
54964
|
+
},
|
|
54965
|
+
"internal-record-relation": {
|
|
54966
|
+
authored: [
|
|
54967
|
+
"id",
|
|
54968
|
+
"relationKind",
|
|
54969
|
+
"sourceRecordKind",
|
|
54970
|
+
"sourceRecordId",
|
|
54971
|
+
"targetRecordKind",
|
|
54972
|
+
"targetRecordId",
|
|
54973
|
+
"orderKey"
|
|
54974
|
+
],
|
|
54975
|
+
derived: [],
|
|
54976
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54977
|
+
normalization: { orderKey: "nullIsAbsent" }
|
|
54978
|
+
}
|
|
54979
|
+
},
|
|
54980
|
+
sdkDeclarations: {
|
|
54981
|
+
attributes: {
|
|
54982
|
+
enums: {
|
|
54983
|
+
NeoStorage: [
|
|
54984
|
+
"Inherit",
|
|
54985
|
+
"Immutable",
|
|
54986
|
+
"Save",
|
|
54987
|
+
"Session",
|
|
54988
|
+
"Writable",
|
|
54989
|
+
"User"
|
|
54990
|
+
],
|
|
54991
|
+
NeoAllowedStorage: [
|
|
54992
|
+
"Any",
|
|
54993
|
+
"Immutable",
|
|
54994
|
+
"Save",
|
|
54995
|
+
"Session",
|
|
54996
|
+
"Writable",
|
|
54997
|
+
"User"
|
|
54998
|
+
],
|
|
54999
|
+
NeoListKind: ["Ordered", "Unordered"],
|
|
55000
|
+
NeoDictionaryKeyKind: ["String", "Enum"],
|
|
55001
|
+
NeoClassVisibility: ["Visible", "Hidden"],
|
|
55002
|
+
NeoSubtreeDistribution: ["Sparse", "Packed"],
|
|
55003
|
+
NeoStringFormat: ["Localized", "Plain"],
|
|
55004
|
+
NeoMemberSearchBy: ["None", "MemberKey"],
|
|
55005
|
+
NeoListIndexKind: ["Bucket", "Unique"],
|
|
55006
|
+
NeoColumnVisibility: ["Visible", "Hidden"],
|
|
55007
|
+
NeoColumnPin: ["None", "Leading"],
|
|
55008
|
+
NeoColumnOverflow: ["Clip", "Wrap"],
|
|
55009
|
+
NeoFileKind: ["Sprite", "Audio"],
|
|
55010
|
+
NeoEffectKind: ["None", "Auto"]
|
|
55011
|
+
},
|
|
55012
|
+
markers: {
|
|
55013
|
+
NeoSchemaClassAttribute: {
|
|
55014
|
+
targets: ["Class"],
|
|
55015
|
+
constructor: [
|
|
55016
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55017
|
+
],
|
|
55018
|
+
properties: [
|
|
55019
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55020
|
+
{ type: "string?", name: "Name", access: "set" },
|
|
55021
|
+
{
|
|
55022
|
+
type: "NeoClassVisibility",
|
|
55023
|
+
name: "Visibility",
|
|
55024
|
+
access: "set",
|
|
55025
|
+
default: "NeoClassVisibility.Visible"
|
|
55026
|
+
},
|
|
55027
|
+
{
|
|
55028
|
+
type: "NeoAllowedStorage",
|
|
55029
|
+
name: "AllowedStorage",
|
|
55030
|
+
access: "set",
|
|
55031
|
+
default: "NeoAllowedStorage.Any"
|
|
55032
|
+
},
|
|
55033
|
+
{ type: "string[]?", name: "AllowedStorageKeys", access: "set" }
|
|
55034
|
+
]
|
|
55035
|
+
},
|
|
55036
|
+
NeoInterfaceAttribute: {
|
|
55037
|
+
targets: ["Interface"],
|
|
55038
|
+
constructor: [
|
|
55039
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55040
|
+
],
|
|
55041
|
+
properties: [
|
|
55042
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55043
|
+
{ type: "string?", name: "Name", access: "set" }
|
|
55044
|
+
]
|
|
55045
|
+
},
|
|
55046
|
+
NeoEnumAttribute: {
|
|
55047
|
+
targets: ["Enum"],
|
|
55048
|
+
constructor: [
|
|
55049
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55050
|
+
],
|
|
55051
|
+
properties: [
|
|
55052
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55053
|
+
{ type: "string?", name: "Name", access: "set" }
|
|
55054
|
+
]
|
|
55055
|
+
},
|
|
55056
|
+
NeoIdAttribute: {
|
|
55057
|
+
targets: ["GenericParameter"],
|
|
55058
|
+
constructor: [
|
|
55059
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55060
|
+
],
|
|
55061
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55062
|
+
},
|
|
55063
|
+
NeoMemberAttribute: {
|
|
55064
|
+
targets: ["Property", "Method"],
|
|
55065
|
+
constructor: [
|
|
55066
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55067
|
+
],
|
|
55068
|
+
properties: [
|
|
55069
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55070
|
+
{ type: "string?", name: "Key", access: "set" },
|
|
55071
|
+
{ type: "string?", name: "Name", access: "set" },
|
|
55072
|
+
{
|
|
55073
|
+
type: "NeoStorage",
|
|
55074
|
+
name: "Storage",
|
|
55075
|
+
access: "set",
|
|
55076
|
+
default: "NeoStorage.Inherit"
|
|
55077
|
+
},
|
|
55078
|
+
{ type: "string?", name: "StorageKey", access: "set" },
|
|
55079
|
+
{ type: "int", name: "Order", access: "set", default: "-1" }
|
|
55080
|
+
]
|
|
55081
|
+
},
|
|
55082
|
+
NeoSystemAttribute: {
|
|
55083
|
+
targets: ["Class", "Interface", "Enum", "Property", "Method"],
|
|
55084
|
+
constructor: [
|
|
55085
|
+
{
|
|
55086
|
+
type: "NeoSystemProtectionKind",
|
|
55087
|
+
name: "kind",
|
|
55088
|
+
assigns: "Kind"
|
|
55089
|
+
}
|
|
55090
|
+
],
|
|
55091
|
+
properties: [
|
|
55092
|
+
{
|
|
55093
|
+
type: "NeoSystemProtectionKind",
|
|
55094
|
+
name: "Kind",
|
|
55095
|
+
access: "get"
|
|
55096
|
+
},
|
|
55097
|
+
{
|
|
55098
|
+
type: "NeoWorldKind",
|
|
55099
|
+
name: "WorldKind",
|
|
55100
|
+
access: "set",
|
|
55101
|
+
default: "NeoWorldKind.None"
|
|
55102
|
+
}
|
|
55103
|
+
]
|
|
55104
|
+
},
|
|
55105
|
+
NeoTextAttribute: {
|
|
55106
|
+
targets: ["Property"],
|
|
55107
|
+
properties: [
|
|
55108
|
+
{
|
|
55109
|
+
type: "NeoStringFormat",
|
|
55110
|
+
name: "Format",
|
|
55111
|
+
access: "set",
|
|
55112
|
+
default: "NeoStringFormat.Localized"
|
|
55113
|
+
},
|
|
55114
|
+
{
|
|
55115
|
+
type: "NeoMemberSearchBy",
|
|
55116
|
+
name: "SearchBy",
|
|
55117
|
+
access: "set",
|
|
55118
|
+
default: "NeoMemberSearchBy.None"
|
|
55119
|
+
}
|
|
55120
|
+
]
|
|
55121
|
+
},
|
|
55122
|
+
NeoNullAttribute: { targets: ["Property"], properties: [] },
|
|
55123
|
+
NeoNumberAttribute: {
|
|
55124
|
+
targets: ["Property"],
|
|
55125
|
+
properties: [
|
|
55126
|
+
{
|
|
55127
|
+
type: "double",
|
|
55128
|
+
name: "Min",
|
|
55129
|
+
access: "set",
|
|
55130
|
+
default: "double.NaN"
|
|
55131
|
+
},
|
|
55132
|
+
{
|
|
55133
|
+
type: "double",
|
|
55134
|
+
name: "Max",
|
|
55135
|
+
access: "set",
|
|
55136
|
+
default: "double.NaN"
|
|
55137
|
+
},
|
|
55138
|
+
{ type: "string?", name: "DecimalMin", access: "set" },
|
|
55139
|
+
{ type: "string?", name: "DecimalMax", access: "set" },
|
|
55140
|
+
{
|
|
55141
|
+
type: "int",
|
|
55142
|
+
name: "DecimalPoints",
|
|
55143
|
+
access: "set",
|
|
55144
|
+
default: "-1"
|
|
55145
|
+
}
|
|
55146
|
+
]
|
|
55147
|
+
},
|
|
55148
|
+
NeoDictionaryAttribute: {
|
|
55149
|
+
targets: ["Property"],
|
|
55150
|
+
properties: [
|
|
55151
|
+
{
|
|
55152
|
+
type: "NeoDictionaryKeyKind",
|
|
55153
|
+
name: "KeyKind",
|
|
55154
|
+
access: "set",
|
|
55155
|
+
default: "NeoDictionaryKeyKind.String"
|
|
55156
|
+
},
|
|
55157
|
+
{ type: "Type?", name: "KeyEnum", access: "set" }
|
|
55158
|
+
]
|
|
55159
|
+
},
|
|
55160
|
+
NeoListAttribute: {
|
|
55161
|
+
targets: ["Property"],
|
|
55162
|
+
properties: [
|
|
55163
|
+
{
|
|
55164
|
+
type: "NeoListKind",
|
|
55165
|
+
name: "Kind",
|
|
55166
|
+
access: "set",
|
|
55167
|
+
default: "NeoListKind.Ordered"
|
|
55168
|
+
}
|
|
55169
|
+
]
|
|
55170
|
+
},
|
|
55171
|
+
NeoEntriesAttribute: {
|
|
55172
|
+
targets: ["Class", "Property"],
|
|
55173
|
+
constructor: [
|
|
55174
|
+
{ type: "string", name: "settings", assigns: "Settings" }
|
|
55175
|
+
],
|
|
55176
|
+
properties: [{ type: "string", name: "Settings", access: "get" }]
|
|
55177
|
+
},
|
|
55178
|
+
NeoSchemaOrderAttribute: {
|
|
55179
|
+
targets: ["Class", "Property"],
|
|
55180
|
+
constructor: [
|
|
55181
|
+
{
|
|
55182
|
+
type: "string[]",
|
|
55183
|
+
name: "members",
|
|
55184
|
+
modifier: "params",
|
|
55185
|
+
assigns: "Members"
|
|
55186
|
+
}
|
|
55187
|
+
],
|
|
55188
|
+
properties: [{ type: "string[]", name: "Members", access: "get" }]
|
|
55189
|
+
},
|
|
55190
|
+
NeoIndexAttribute: {
|
|
55191
|
+
targets: ["Property"],
|
|
55192
|
+
allowMultiple: true,
|
|
55193
|
+
constructor: [{ type: "string", name: "member", assigns: "Member" }],
|
|
55194
|
+
properties: [
|
|
55195
|
+
{ type: "string", name: "Member", access: "get" },
|
|
55196
|
+
{
|
|
55197
|
+
type: "NeoListIndexKind",
|
|
55198
|
+
name: "Kind",
|
|
55199
|
+
access: "set",
|
|
55200
|
+
default: "NeoListIndexKind.Bucket"
|
|
55201
|
+
}
|
|
55202
|
+
]
|
|
55203
|
+
},
|
|
55204
|
+
NeoColumnAttribute: {
|
|
55205
|
+
targets: ["Property"],
|
|
55206
|
+
allowMultiple: true,
|
|
55207
|
+
constructor: [{ type: "string", name: "member", assigns: "Member" }],
|
|
55208
|
+
properties: [
|
|
55209
|
+
{ type: "string", name: "Member", access: "get" },
|
|
55210
|
+
{ type: "int", name: "Width", access: "set", default: "-1" },
|
|
55211
|
+
{
|
|
55212
|
+
type: "NeoColumnVisibility",
|
|
55213
|
+
name: "Visibility",
|
|
55214
|
+
access: "set",
|
|
55215
|
+
default: "NeoColumnVisibility.Visible"
|
|
55216
|
+
},
|
|
55217
|
+
{
|
|
55218
|
+
type: "NeoColumnPin",
|
|
55219
|
+
name: "Pin",
|
|
55220
|
+
access: "set",
|
|
55221
|
+
default: "NeoColumnPin.None"
|
|
55222
|
+
},
|
|
55223
|
+
{
|
|
55224
|
+
type: "NeoColumnOverflow",
|
|
55225
|
+
name: "Overflow",
|
|
55226
|
+
access: "set",
|
|
55227
|
+
default: "NeoColumnOverflow.Clip"
|
|
55228
|
+
}
|
|
55229
|
+
]
|
|
55230
|
+
},
|
|
55231
|
+
NeoLookupAttribute: {
|
|
55232
|
+
targets: ["Property"],
|
|
55233
|
+
constructor: [
|
|
55234
|
+
{
|
|
55235
|
+
type: "string",
|
|
55236
|
+
name: "collectionMember",
|
|
55237
|
+
assigns: "CollectionMember"
|
|
55238
|
+
}
|
|
55239
|
+
],
|
|
55240
|
+
properties: [
|
|
55241
|
+
{ type: "string", name: "CollectionMember", access: "get" },
|
|
55242
|
+
{ type: "string?", name: "CollectionValueMember", access: "set" }
|
|
55243
|
+
]
|
|
55244
|
+
},
|
|
55245
|
+
NeoDialogueAttribute: {
|
|
55246
|
+
targets: ["Property"],
|
|
55247
|
+
properties: [{ type: "string?", name: "Group", access: "set" }]
|
|
55248
|
+
},
|
|
55249
|
+
NeoFileAttribute: {
|
|
55250
|
+
targets: ["Property"],
|
|
55251
|
+
constructor: [{ type: "NeoFileKind", name: "kind", assigns: "Kind" }],
|
|
55252
|
+
properties: [
|
|
55253
|
+
{ type: "NeoFileKind", name: "Kind", access: "get" },
|
|
55254
|
+
{ type: "Type?", name: "Template", access: "set" }
|
|
55255
|
+
]
|
|
55256
|
+
},
|
|
55257
|
+
NeoComputedAttribute: { targets: ["Property"], properties: [] },
|
|
55258
|
+
NeoScriptAttribute: { targets: ["Method"], properties: [] },
|
|
55259
|
+
NeoFunctionAttribute: { targets: ["Method"], properties: [] },
|
|
55260
|
+
NeoEnumOptionAttribute: {
|
|
55261
|
+
targets: ["Field"],
|
|
55262
|
+
constructor: [
|
|
55263
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55264
|
+
],
|
|
55265
|
+
properties: [
|
|
55266
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55267
|
+
{ type: "string?", name: "Key", access: "set" },
|
|
55268
|
+
{ type: "string?", name: "Text", access: "set" }
|
|
55269
|
+
]
|
|
55270
|
+
},
|
|
55271
|
+
NeoTextureTemplateAttribute: {
|
|
55272
|
+
targets: ["Class", "Property"],
|
|
55273
|
+
constructor: [
|
|
55274
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55275
|
+
],
|
|
55276
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55277
|
+
},
|
|
55278
|
+
NeoAudioTemplateAttribute: {
|
|
55279
|
+
targets: ["Class", "Property"],
|
|
55280
|
+
constructor: [
|
|
55281
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55282
|
+
],
|
|
55283
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55284
|
+
},
|
|
55285
|
+
NeoLocalizationAttribute: {
|
|
55286
|
+
targets: ["Class", "Property"],
|
|
55287
|
+
constructor: [
|
|
55288
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55289
|
+
],
|
|
55290
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55291
|
+
},
|
|
55292
|
+
NeoLocalizationStatusAttribute: {
|
|
55293
|
+
targets: ["Class", "Property"],
|
|
55294
|
+
constructor: [
|
|
55295
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55296
|
+
],
|
|
55297
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55298
|
+
},
|
|
55299
|
+
NeoRegistryAttribute: { targets: ["Class"], properties: [] },
|
|
55300
|
+
NeoRelationConfigurationAttribute: {
|
|
55301
|
+
targets: ["Class"],
|
|
55302
|
+
properties: []
|
|
55303
|
+
}
|
|
55304
|
+
}
|
|
55305
|
+
},
|
|
55306
|
+
settings: {
|
|
55307
|
+
enums: {
|
|
55308
|
+
NeoProjectRecordKind: [
|
|
55309
|
+
"Project",
|
|
55310
|
+
"Member",
|
|
55311
|
+
"Value",
|
|
55312
|
+
"Class",
|
|
55313
|
+
"InternalRecordRelation",
|
|
55314
|
+
"Enum",
|
|
55315
|
+
"Interface",
|
|
55316
|
+
"Dialogue",
|
|
55317
|
+
"DialogueNode",
|
|
55318
|
+
"DialogueGroup",
|
|
55319
|
+
"PriorityGroup",
|
|
55320
|
+
"ProjectFile",
|
|
55321
|
+
"UnityTextureTemplate",
|
|
55322
|
+
"UnityAudioClipTemplate",
|
|
55323
|
+
"LocalizationConfig",
|
|
55324
|
+
"LocalizationStatus",
|
|
55325
|
+
"LocalizedText",
|
|
55326
|
+
"Migration"
|
|
55327
|
+
],
|
|
55328
|
+
NeoEntryKind: [
|
|
55329
|
+
"Null",
|
|
55330
|
+
"Boolean",
|
|
55331
|
+
"Integer",
|
|
55332
|
+
"String",
|
|
55333
|
+
"Float",
|
|
55334
|
+
"Decimal",
|
|
55335
|
+
"Vector2",
|
|
55336
|
+
"Vector2Int",
|
|
55337
|
+
"Vector3",
|
|
55338
|
+
"Vector3Int",
|
|
55339
|
+
"Color",
|
|
55340
|
+
"Dictionary",
|
|
55341
|
+
"List",
|
|
55342
|
+
"Class",
|
|
55343
|
+
"Enum",
|
|
55344
|
+
"Lookup",
|
|
55345
|
+
"DialogueLookup",
|
|
55346
|
+
"Sprite",
|
|
55347
|
+
"Audio",
|
|
55348
|
+
"Generic"
|
|
55349
|
+
],
|
|
55350
|
+
NeoSystemProtectionKind: [
|
|
55351
|
+
"WorldAuthoring",
|
|
55352
|
+
"DialogueMemorySchema",
|
|
55353
|
+
"DialogueMemoryContainer",
|
|
55354
|
+
"DialoguePriorityDefault",
|
|
55355
|
+
"PolicyImmutable",
|
|
55356
|
+
"PolicyDeleteBlocked",
|
|
55357
|
+
"ScriptRuntime"
|
|
55358
|
+
],
|
|
55359
|
+
NeoMemberRequirement: ["Optional", "Required"],
|
|
55360
|
+
NeoMemberMutability: ["Mutable", "ReadOnly"],
|
|
55361
|
+
NeoMemberModifier: ["Virtual", "Sealed", "Abstract", "Static"],
|
|
55362
|
+
NeoMemberAccess: ["Public", "Protected", "Private"],
|
|
55363
|
+
NeoMemberSelection: ["Single", "Multi"],
|
|
55364
|
+
NeoFunctionDispatch: ["Synchronous", "Asynchronous"],
|
|
55365
|
+
NeoMemberPayload: ["Full", "Partial"],
|
|
55366
|
+
NeoFunctionLogicMode: ["UI"],
|
|
55367
|
+
NeoWorldKind: [
|
|
55368
|
+
"CellPattern",
|
|
55369
|
+
"None",
|
|
55370
|
+
"TileGrid",
|
|
55371
|
+
"TileLayer",
|
|
55372
|
+
"ObjectLayer",
|
|
55373
|
+
"Tile",
|
|
55374
|
+
"ObjectBase",
|
|
55375
|
+
"LayerGroupBase",
|
|
55376
|
+
"SpriteObject",
|
|
55377
|
+
"Object",
|
|
55378
|
+
"TileLayerLink",
|
|
55379
|
+
"ObjectLayerLink",
|
|
55380
|
+
"PlacementTile",
|
|
55381
|
+
"ObjectCollider",
|
|
55382
|
+
"SortingGroup",
|
|
55383
|
+
"SortingLayer",
|
|
55384
|
+
"SmartTile",
|
|
55385
|
+
"SmartTileRule",
|
|
55386
|
+
"SmartTileNeighbor",
|
|
55387
|
+
"AnimationClip",
|
|
55388
|
+
"AnimationFrame",
|
|
55389
|
+
"AnimationChildOverride",
|
|
55390
|
+
"AnimationFrameBase",
|
|
55391
|
+
"AnimationSegmentFrame",
|
|
55392
|
+
"AnimationSegment",
|
|
55393
|
+
"SpriteAnimationSegment",
|
|
55394
|
+
"AnimationTrack",
|
|
55395
|
+
"AnimationChildTrack",
|
|
55396
|
+
"AnimationSegmentTrack",
|
|
55397
|
+
"SpriteAnimationSegmentTrack",
|
|
55398
|
+
"Variant",
|
|
55399
|
+
"VariantFolder",
|
|
55400
|
+
"LookupVariant",
|
|
55401
|
+
"LookupVariantFolder"
|
|
55402
|
+
],
|
|
55403
|
+
NeoTextureType: [
|
|
55404
|
+
"Default",
|
|
55405
|
+
"NormalMap",
|
|
55406
|
+
"EditorGuiAndLegacyGui",
|
|
55407
|
+
"Sprite",
|
|
55408
|
+
"Cursor",
|
|
55409
|
+
"Cookie",
|
|
55410
|
+
"Lightmap",
|
|
55411
|
+
"SingleChannel"
|
|
55412
|
+
],
|
|
55413
|
+
NeoSpriteMode: ["Single", "Multiple", "Polygon"],
|
|
55414
|
+
NeoSpriteMeshType: ["FullRect", "Tight"],
|
|
55415
|
+
NeoSpriteAlignment: [
|
|
55416
|
+
"Center",
|
|
55417
|
+
"TopLeft",
|
|
55418
|
+
"TopCenter",
|
|
55419
|
+
"TopRight",
|
|
55420
|
+
"LeftCenter",
|
|
55421
|
+
"RightCenter",
|
|
55422
|
+
"BottomLeft",
|
|
55423
|
+
"BottomCenter",
|
|
55424
|
+
"BottomRight",
|
|
55425
|
+
"Custom"
|
|
55426
|
+
],
|
|
55427
|
+
NeoTextureWrapMode: [
|
|
55428
|
+
"Repeat",
|
|
55429
|
+
"Clamp",
|
|
55430
|
+
"Mirror",
|
|
55431
|
+
"MirrorOnce",
|
|
55432
|
+
"PerAxis"
|
|
55433
|
+
],
|
|
55434
|
+
NeoTextureFilterMode: ["Point", "Bilinear", "Trilinear"],
|
|
55435
|
+
NeoTextureCompression: [
|
|
55436
|
+
"None",
|
|
55437
|
+
"LowQuality",
|
|
55438
|
+
"NormalQuality",
|
|
55439
|
+
"HighQuality"
|
|
55440
|
+
],
|
|
55441
|
+
NeoTextureFormat: [
|
|
55442
|
+
"Automatic",
|
|
55443
|
+
"RgbaCompressedDxt5Bc3",
|
|
55444
|
+
"RgbCompressedDxt1Bc1",
|
|
55445
|
+
"Rgba32Bit",
|
|
55446
|
+
"Rgb24Bit"
|
|
55447
|
+
],
|
|
55448
|
+
NeoAlphaSource: ["None", "InputTextureAlpha", "FromGrayScale"],
|
|
55449
|
+
NeoNonPowerOfTwoScale: ["None", "ToNearest", "ToLarger", "ToSmaller"],
|
|
55450
|
+
NeoNormalMapFiltering: ["Sharp", "Smooth"],
|
|
55451
|
+
NeoCookieLightType: ["Spot", "Directional", "Point"],
|
|
55452
|
+
NeoSingleChannelComponent: ["Alpha", "Red"],
|
|
55453
|
+
NeoTextureSwizzle: ["Red", "Green", "Blue", "Alpha", "Zero", "One"],
|
|
55454
|
+
NeoMipMapFiltering: ["Box", "Kaiser"],
|
|
55455
|
+
NeoTextureResizeAlgorithm: ["Mitchell", "Bilinear"],
|
|
55456
|
+
NeoAudioLoadType: [
|
|
55457
|
+
"DecompressOnLoad",
|
|
55458
|
+
"CompressedInMemory",
|
|
55459
|
+
"Streaming"
|
|
55460
|
+
],
|
|
55461
|
+
NeoAudioCompressionFormat: ["Pcm", "Adpcm", "Vorbis"],
|
|
55462
|
+
NeoAudioSampleRate: [
|
|
55463
|
+
"PreserveSampleRate",
|
|
55464
|
+
"OptimizeSampleRate",
|
|
55465
|
+
"OverrideSampleRate"
|
|
55466
|
+
]
|
|
55467
|
+
},
|
|
55468
|
+
classes: {
|
|
55469
|
+
NeoClassRelationDefinition: {
|
|
55470
|
+
constructors: [
|
|
55471
|
+
[{ type: "Type", name: "target", assigns: "Target" }],
|
|
55472
|
+
[
|
|
55473
|
+
{ type: "string?", name: "id", assigns: "Id" },
|
|
55474
|
+
{ type: "Type", name: "target", assigns: "Target" }
|
|
55475
|
+
]
|
|
55476
|
+
],
|
|
55477
|
+
properties: [
|
|
55478
|
+
{ type: "string?", name: "Id" },
|
|
55479
|
+
{ type: "Type", name: "Target", default: "typeof(object)" }
|
|
55480
|
+
]
|
|
55481
|
+
},
|
|
55482
|
+
NeoGridRelationSettings: [
|
|
55483
|
+
{
|
|
55484
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55485
|
+
name: "TileImports",
|
|
55486
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55487
|
+
},
|
|
55488
|
+
{
|
|
55489
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55490
|
+
name: "ObjectImports",
|
|
55491
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55492
|
+
},
|
|
55493
|
+
{
|
|
55494
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55495
|
+
name: "TileLayers",
|
|
55496
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55497
|
+
},
|
|
55498
|
+
{
|
|
55499
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55500
|
+
name: "ObjectLayers",
|
|
55501
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55502
|
+
}
|
|
55503
|
+
],
|
|
55504
|
+
NeoTileRelationSettings: [
|
|
55505
|
+
{
|
|
55506
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55507
|
+
name: "CompatibleLayers",
|
|
55508
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55509
|
+
},
|
|
55510
|
+
{ type: "NeoClassRelationDefinition?", name: "DefaultLayer" }
|
|
55511
|
+
],
|
|
55512
|
+
NeoObjectRelationSettings: [
|
|
55513
|
+
{
|
|
55514
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55515
|
+
name: "CompatibleLayers",
|
|
55516
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55517
|
+
},
|
|
55518
|
+
{ type: "NeoClassRelationDefinition?", name: "DefaultLayer" }
|
|
55519
|
+
],
|
|
55520
|
+
NeoTileLayerLinkRelationSettings: [
|
|
55521
|
+
{ type: "NeoClassRelationDefinition?", name: "TargetLayer" }
|
|
55522
|
+
],
|
|
55523
|
+
NeoObjectLayerLinkRelationSettings: [
|
|
55524
|
+
{ type: "NeoClassRelationDefinition?", name: "TargetLayer" }
|
|
55525
|
+
],
|
|
55526
|
+
NeoEntrySettings: [
|
|
55527
|
+
{ type: "string?", name: "Id" },
|
|
55528
|
+
{ type: "string", name: "Path", default: "string.Empty" },
|
|
55529
|
+
{ type: "NeoEntryKind", name: "Kind" },
|
|
55530
|
+
{
|
|
55531
|
+
type: "NeoMemberRequirement",
|
|
55532
|
+
name: "Requirement",
|
|
55533
|
+
default: "NeoMemberRequirement.Optional"
|
|
55534
|
+
},
|
|
55535
|
+
{
|
|
55536
|
+
type: "NeoMemberMutability",
|
|
55537
|
+
name: "Mutability",
|
|
55538
|
+
default: "NeoMemberMutability.Mutable"
|
|
55539
|
+
},
|
|
55540
|
+
{
|
|
55541
|
+
type: "NeoMemberModifier",
|
|
55542
|
+
name: "Modifier",
|
|
55543
|
+
default: "NeoMemberModifier.Virtual"
|
|
55544
|
+
},
|
|
55545
|
+
{
|
|
55546
|
+
type: "NeoMemberAccess",
|
|
55547
|
+
name: "Access",
|
|
55548
|
+
default: "NeoMemberAccess.Public"
|
|
55549
|
+
},
|
|
55550
|
+
{ type: "NeoMemberReference?", name: "Overrides" },
|
|
55551
|
+
{
|
|
55552
|
+
type: "NeoStorage",
|
|
55553
|
+
name: "Storage",
|
|
55554
|
+
default: "NeoStorage.Inherit"
|
|
55555
|
+
},
|
|
55556
|
+
{ type: "string?", name: "StorageKey" },
|
|
55557
|
+
{ type: "NeoValueSettings?", name: "Default" },
|
|
55558
|
+
{ type: "NeoTextSettings?", name: "Text" },
|
|
55559
|
+
{ type: "NeoNumberSettings?", name: "Number" },
|
|
55560
|
+
{ type: "NeoDictionarySettings?", name: "Dictionary" },
|
|
55561
|
+
{ type: "NeoListSettings?", name: "List" },
|
|
55562
|
+
{ type: "NeoLookupSettings?", name: "Lookup" },
|
|
55563
|
+
{ type: "NeoDialogueSettings?", name: "Dialogue" },
|
|
55564
|
+
{ type: "NeoFileSettings?", name: "File" },
|
|
55565
|
+
{ type: "NeoClassSettings?", name: "Class" },
|
|
55566
|
+
{ type: "NeoEnumSettings?", name: "Enum" },
|
|
55567
|
+
{ type: "NeoGenericSettings?", name: "Generic" },
|
|
55568
|
+
{ type: "NeoSystemSettings?", name: "System" },
|
|
55569
|
+
{
|
|
55570
|
+
type: "IReadOnlyList<NeoEntrySettings>",
|
|
55571
|
+
name: "Entries",
|
|
55572
|
+
default: "new List<NeoEntrySettings>()"
|
|
55573
|
+
}
|
|
55574
|
+
],
|
|
55575
|
+
NeoValueSettings: [
|
|
55576
|
+
{ type: "bool", name: "IsNull" },
|
|
55577
|
+
{ type: "Type?", name: "ConcreteType" },
|
|
55578
|
+
{ type: "bool?", name: "Boolean" },
|
|
55579
|
+
{ type: "long?", name: "Integer" },
|
|
55580
|
+
{ type: "double?", name: "Number" },
|
|
55581
|
+
{ type: "string?", name: "Text" },
|
|
55582
|
+
{ type: "decimal?", name: "Decimal" },
|
|
55583
|
+
{ type: "NeoVector2?", name: "Vector2" },
|
|
55584
|
+
{ type: "NeoVector2Int?", name: "Vector2Int" },
|
|
55585
|
+
{ type: "NeoVector3?", name: "Vector3" },
|
|
55586
|
+
{ type: "NeoVector3Int?", name: "Vector3Int" },
|
|
55587
|
+
{ type: "NeoColor?", name: "Color" },
|
|
55588
|
+
{ type: "NeoSprite?", name: "Sprite" },
|
|
55589
|
+
{ type: "NeoAudio?", name: "Audio" },
|
|
55590
|
+
{ type: "NeoDialogue?", name: "Dialogue" },
|
|
55591
|
+
{ type: "NeoReferenceSettings?", name: "Reference" },
|
|
55592
|
+
{ type: "string?", name: "EnumOption" },
|
|
55593
|
+
{ type: "IReadOnlyList<NeoValueSettings>?", name: "List" },
|
|
55594
|
+
{
|
|
55595
|
+
type: "IReadOnlyDictionary<string, NeoValueSettings>?",
|
|
55596
|
+
name: "Dictionary"
|
|
55597
|
+
},
|
|
55598
|
+
{
|
|
55599
|
+
type: "IReadOnlyDictionary<string, NeoValueSettings>?",
|
|
55600
|
+
name: "Object"
|
|
55601
|
+
}
|
|
55602
|
+
],
|
|
55603
|
+
NeoReferenceSettings: [
|
|
55604
|
+
{ type: "Type", name: "Type", default: "typeof(object)" },
|
|
55605
|
+
{ type: "string", name: "Id", default: "string.Empty" }
|
|
55606
|
+
],
|
|
55607
|
+
NeoTextSettings: [
|
|
55608
|
+
{
|
|
55609
|
+
type: "NeoStringFormat",
|
|
55610
|
+
name: "Format",
|
|
55611
|
+
default: "NeoStringFormat.Localized"
|
|
55612
|
+
},
|
|
55613
|
+
{
|
|
55614
|
+
type: "NeoMemberSearchBy",
|
|
55615
|
+
name: "SearchBy",
|
|
55616
|
+
default: "NeoMemberSearchBy.None"
|
|
55617
|
+
}
|
|
55618
|
+
],
|
|
55619
|
+
NeoNumberSettings: [
|
|
55620
|
+
{ type: "double?", name: "Min" },
|
|
55621
|
+
{ type: "double?", name: "Max" },
|
|
55622
|
+
{ type: "string?", name: "DecimalMin" },
|
|
55623
|
+
{ type: "string?", name: "DecimalMax" },
|
|
55624
|
+
{ type: "int?", name: "DecimalPoints" }
|
|
55625
|
+
],
|
|
55626
|
+
NeoFunctionSettings: [{ type: "NeoFunctionLogicMode", name: "Logic" }],
|
|
55627
|
+
NeoDictionarySettings: [
|
|
55628
|
+
{ type: "NeoDictionaryKeyKind", name: "KeyKind" },
|
|
55629
|
+
{ type: "Type?", name: "KeyEnum" }
|
|
55630
|
+
],
|
|
55631
|
+
NeoClassSettings: [
|
|
55632
|
+
{ type: "Type", name: "Type", default: "typeof(object)" },
|
|
55633
|
+
{ type: "IReadOnlyList<string>?", name: "SchemaOrder" },
|
|
55634
|
+
{
|
|
55635
|
+
type: "IReadOnlyDictionary<string, NeoGenericBindingSettings>?",
|
|
55636
|
+
name: "TypeArguments"
|
|
55637
|
+
}
|
|
55638
|
+
],
|
|
55639
|
+
NeoGenericBindingSettings: [
|
|
55640
|
+
{ type: "string", name: "Parameter", default: "string.Empty" },
|
|
55641
|
+
{ type: "string?", name: "GenericParameter" },
|
|
55642
|
+
{ type: "NeoEntrySettings?", name: "Member" }
|
|
55643
|
+
],
|
|
55644
|
+
NeoEnumSettings: [
|
|
55645
|
+
{ type: "Type", name: "Enum", default: "typeof(object)" },
|
|
55646
|
+
{
|
|
55647
|
+
type: "NeoMemberSelection",
|
|
55648
|
+
name: "Selection",
|
|
55649
|
+
default: "NeoMemberSelection.Single"
|
|
55650
|
+
}
|
|
55651
|
+
],
|
|
55652
|
+
NeoGenericSettings: [
|
|
55653
|
+
{ type: "string", name: "Parameter", default: "string.Empty" }
|
|
55654
|
+
],
|
|
55655
|
+
NeoLookupSettings: [
|
|
55656
|
+
{ type: "string", name: "CollectionMember", default: "string.Empty" },
|
|
55657
|
+
{ type: "string?", name: "CollectionValueMember" },
|
|
55658
|
+
{
|
|
55659
|
+
type: "NeoMemberSelection",
|
|
55660
|
+
name: "Selection",
|
|
55661
|
+
default: "NeoMemberSelection.Single"
|
|
55662
|
+
}
|
|
55663
|
+
],
|
|
55664
|
+
/**
|
|
55665
|
+
* Class-level settings. `TargetMember` names the member of another
|
|
55666
|
+
* class this class writes — schema metadata rather than row data, the
|
|
55667
|
+
* same shape `NeoLookupSettings.CollectionMember` uses to name a
|
|
55668
|
+
* collection.
|
|
55669
|
+
*/
|
|
55670
|
+
NeoClassSchemaSettings: [
|
|
55671
|
+
{ type: "string", name: "TargetMember", default: "string.Empty" }
|
|
55672
|
+
],
|
|
55673
|
+
NeoDialogueSettings: [
|
|
55674
|
+
{ type: "string?", name: "Group" },
|
|
55675
|
+
{
|
|
55676
|
+
type: "NeoMemberSelection",
|
|
55677
|
+
name: "Selection",
|
|
55678
|
+
default: "NeoMemberSelection.Single"
|
|
55679
|
+
}
|
|
55680
|
+
],
|
|
55681
|
+
NeoFileSettings: [
|
|
55682
|
+
{ type: "NeoFileKind", name: "Kind" },
|
|
55683
|
+
{ type: "Type?", name: "Template" }
|
|
55684
|
+
],
|
|
55685
|
+
NeoSystemSettings: [
|
|
55686
|
+
{
|
|
55687
|
+
type: "NeoSystemProtectionKind",
|
|
55688
|
+
name: "Kind",
|
|
55689
|
+
default: "NeoSystemProtectionKind.WorldAuthoring"
|
|
55690
|
+
},
|
|
55691
|
+
{ type: "NeoWorldKind?", name: "WorldKind" }
|
|
55692
|
+
],
|
|
55693
|
+
NeoListSettings: [
|
|
55694
|
+
{ type: "NeoListKind", name: "Kind", default: "NeoListKind.Ordered" },
|
|
55695
|
+
{
|
|
55696
|
+
type: "IReadOnlyList<NeoListIndexSettings>",
|
|
55697
|
+
name: "Indexes",
|
|
55698
|
+
default: "new List<NeoListIndexSettings>()"
|
|
55699
|
+
},
|
|
55700
|
+
{
|
|
55701
|
+
type: "IReadOnlyList<NeoListColumnSettings>",
|
|
55702
|
+
name: "Columns",
|
|
55703
|
+
default: "new List<NeoListColumnSettings>()"
|
|
55704
|
+
}
|
|
55705
|
+
],
|
|
55706
|
+
NeoListIndexSettings: [
|
|
55707
|
+
{ type: "string", name: "Member", default: "string.Empty" },
|
|
55708
|
+
{
|
|
55709
|
+
type: "NeoListIndexKind",
|
|
55710
|
+
name: "Kind",
|
|
55711
|
+
default: "NeoListIndexKind.Bucket"
|
|
55712
|
+
}
|
|
55713
|
+
],
|
|
55714
|
+
NeoListColumnSettings: [
|
|
55715
|
+
{ type: "string", name: "Member", default: "string.Empty" },
|
|
55716
|
+
{ type: "int?", name: "Width" },
|
|
55717
|
+
{
|
|
55718
|
+
type: "NeoColumnVisibility",
|
|
55719
|
+
name: "Visibility",
|
|
55720
|
+
default: "NeoColumnVisibility.Visible"
|
|
55721
|
+
},
|
|
55722
|
+
{
|
|
55723
|
+
type: "NeoColumnPin",
|
|
55724
|
+
name: "Pin",
|
|
55725
|
+
default: "NeoColumnPin.None"
|
|
55726
|
+
},
|
|
55727
|
+
{
|
|
55728
|
+
type: "NeoColumnOverflow",
|
|
55729
|
+
name: "Overflow",
|
|
55730
|
+
default: "NeoColumnOverflow.Clip"
|
|
55731
|
+
}
|
|
55732
|
+
],
|
|
55733
|
+
NeoTextureTemplateSettings: [
|
|
55734
|
+
{ type: "string", name: "Name", default: "string.Empty" },
|
|
55735
|
+
{
|
|
55736
|
+
type: "NeoTextureType",
|
|
55737
|
+
name: "TextureType",
|
|
55738
|
+
default: "NeoTextureType.Sprite"
|
|
55739
|
+
},
|
|
55740
|
+
{ type: "bool", name: "SrgbTexture", default: "true" },
|
|
55741
|
+
{
|
|
55742
|
+
type: "NeoAlphaSource",
|
|
55743
|
+
name: "AlphaSource",
|
|
55744
|
+
default: "NeoAlphaSource.InputTextureAlpha"
|
|
55745
|
+
},
|
|
55746
|
+
{ type: "bool", name: "AlphaIsTransparency", default: "true" },
|
|
55747
|
+
{ type: "NeoNonPowerOfTwoScale", name: "NonPowerOfTwoScale" },
|
|
55748
|
+
{ type: "bool", name: "IgnorePngGamma" },
|
|
55749
|
+
{ type: "bool", name: "ReadWriteEnabled" },
|
|
55750
|
+
{ type: "bool", name: "VirtualTextureOnly" },
|
|
55751
|
+
{ type: "bool", name: "GenerateMipMaps" },
|
|
55752
|
+
{ type: "bool", name: "BorderMipMaps" },
|
|
55753
|
+
{ type: "NeoMipMapFiltering", name: "MipMapFiltering" },
|
|
55754
|
+
{ type: "bool", name: "MipMapsPreserveCoverage" },
|
|
55755
|
+
{ type: "double", name: "AlphaCutoffValue", default: "0.5" },
|
|
55756
|
+
{ type: "bool", name: "FadeOutMipMaps" },
|
|
55757
|
+
{ type: "int", name: "MipMapFadeDistanceStart", default: "1" },
|
|
55758
|
+
{ type: "int", name: "MipMapFadeDistanceEnd", default: "3" },
|
|
55759
|
+
{ type: "int", name: "AnisoLevel", default: "1" },
|
|
55760
|
+
{
|
|
55761
|
+
type: "NeoTextureWrapMode",
|
|
55762
|
+
name: "WrapMode",
|
|
55763
|
+
default: "NeoTextureWrapMode.Clamp"
|
|
55764
|
+
},
|
|
55765
|
+
{ type: "NeoTextureWrapMode?", name: "WrapModeU" },
|
|
55766
|
+
{ type: "NeoTextureWrapMode?", name: "WrapModeV" },
|
|
55767
|
+
{
|
|
55768
|
+
type: "NeoTextureFilterMode",
|
|
55769
|
+
name: "FilterMode",
|
|
55770
|
+
default: "NeoTextureFilterMode.Point"
|
|
55771
|
+
},
|
|
55772
|
+
{ type: "int", name: "MaxTextureSize", default: "2048" },
|
|
55773
|
+
{ type: "NeoTextureResizeAlgorithm", name: "ResizeAlgorithm" },
|
|
55774
|
+
{ type: "NeoTextureCompression", name: "TextureCompression" },
|
|
55775
|
+
{ type: "int", name: "CompressionQuality", default: "50" },
|
|
55776
|
+
{ type: "bool", name: "CrunchedCompression" },
|
|
55777
|
+
{
|
|
55778
|
+
type: "NeoTexturePlatformSettings",
|
|
55779
|
+
name: "Platforms",
|
|
55780
|
+
default: "new()"
|
|
55781
|
+
},
|
|
55782
|
+
{ type: "NeoSpriteSettings?", name: "Sprite" },
|
|
55783
|
+
{ type: "NeoNormalMapSettings?", name: "NormalMap" },
|
|
55784
|
+
{ type: "NeoCookieSettings?", name: "Cookie" },
|
|
55785
|
+
{ type: "NeoSingleChannelSettings?", name: "SingleChannel" },
|
|
55786
|
+
{ type: "NeoSwizzleSettings?", name: "Swizzle" }
|
|
55787
|
+
],
|
|
55788
|
+
NeoTexturePlatformSettings: [
|
|
55789
|
+
{
|
|
55790
|
+
type: "NeoTexturePlatformEntry",
|
|
55791
|
+
name: "Default",
|
|
55792
|
+
default: "new()"
|
|
55793
|
+
},
|
|
55794
|
+
{
|
|
55795
|
+
type: "NeoTexturePlatformEntry",
|
|
55796
|
+
name: "Standalone",
|
|
55797
|
+
default: "new()"
|
|
55798
|
+
},
|
|
55799
|
+
{ type: "NeoTexturePlatformEntry", name: "Web", default: "new()" }
|
|
55800
|
+
],
|
|
55801
|
+
NeoTexturePlatformEntry: [
|
|
55802
|
+
{ type: "bool", name: "Override" },
|
|
55803
|
+
{ type: "int", name: "MaxTextureSize", default: "2048" },
|
|
55804
|
+
{ type: "NeoTextureResizeAlgorithm", name: "ResizeAlgorithm" },
|
|
55805
|
+
{ type: "NeoTextureFormat", name: "Format" },
|
|
55806
|
+
{ type: "NeoTextureCompression", name: "TextureCompression" },
|
|
55807
|
+
{ type: "bool", name: "CrunchedCompression" },
|
|
55808
|
+
{ type: "int", name: "CompressionQuality", default: "50" }
|
|
55809
|
+
],
|
|
55810
|
+
NeoSpriteSettings: [
|
|
55811
|
+
{
|
|
55812
|
+
type: "NeoSpriteMode",
|
|
55813
|
+
name: "Mode",
|
|
55814
|
+
default: "NeoSpriteMode.Multiple"
|
|
55815
|
+
},
|
|
55816
|
+
{ type: "double", name: "PixelsPerUnit", default: "100" },
|
|
55817
|
+
{
|
|
55818
|
+
type: "NeoSpriteMeshType",
|
|
55819
|
+
name: "MeshType",
|
|
55820
|
+
default: "NeoSpriteMeshType.Tight"
|
|
55821
|
+
},
|
|
55822
|
+
{ type: "int", name: "ExtrudeEdges", default: "1" },
|
|
55823
|
+
{ type: "NeoSpriteAlignment", name: "PivotAlignment" },
|
|
55824
|
+
{ type: "NeoVector2", name: "Pivot", default: "new(0.5, 0.5)" },
|
|
55825
|
+
{ type: "bool", name: "GeneratePhysicsShape", default: "true" },
|
|
55826
|
+
{ type: "NeoSpriteSliceSettings?", name: "Slice" }
|
|
55827
|
+
],
|
|
55828
|
+
NeoSpriteSliceSettings: [
|
|
55829
|
+
{ type: "NeoVector2", name: "PixelSize" },
|
|
55830
|
+
{ type: "NeoVector2", name: "Offset" },
|
|
55831
|
+
{ type: "NeoVector2", name: "Padding" },
|
|
55832
|
+
{ type: "bool", name: "KeepEmptyRects" },
|
|
55833
|
+
{ type: "NeoSpriteAlignment", name: "PivotAlignment" },
|
|
55834
|
+
{ type: "NeoVector2", name: "Pivot" },
|
|
55835
|
+
{ type: "NeoVector4", name: "Border" },
|
|
55836
|
+
{ type: "string", name: "NamingPattern", default: '"{0}"' },
|
|
55837
|
+
{ type: "int", name: "NamingStartIndex" },
|
|
55838
|
+
{ type: "bool", name: "ColumnMajor" }
|
|
55839
|
+
],
|
|
55840
|
+
NeoNormalMapSettings: [
|
|
55841
|
+
{ type: "bool", name: "CreateFromGrayscale" },
|
|
55842
|
+
{ type: "double", name: "Bumpiness", default: "0.25" },
|
|
55843
|
+
{
|
|
55844
|
+
type: "NeoNormalMapFiltering",
|
|
55845
|
+
name: "Filtering",
|
|
55846
|
+
default: "NeoNormalMapFiltering.Smooth"
|
|
55847
|
+
},
|
|
55848
|
+
{ type: "bool", name: "FlipGreenChannel" }
|
|
55849
|
+
],
|
|
55850
|
+
NeoCookieSettings: [{ type: "NeoCookieLightType", name: "LightType" }],
|
|
55851
|
+
NeoSingleChannelSettings: [
|
|
55852
|
+
{ type: "NeoSingleChannelComponent", name: "Component" }
|
|
55853
|
+
],
|
|
55854
|
+
NeoSwizzleSettings: [
|
|
55855
|
+
{
|
|
55856
|
+
type: "NeoTextureSwizzle",
|
|
55857
|
+
name: "R",
|
|
55858
|
+
default: "NeoTextureSwizzle.Red"
|
|
55859
|
+
},
|
|
55860
|
+
{
|
|
55861
|
+
type: "NeoTextureSwizzle",
|
|
55862
|
+
name: "G",
|
|
55863
|
+
default: "NeoTextureSwizzle.Green"
|
|
55864
|
+
},
|
|
55865
|
+
{
|
|
55866
|
+
type: "NeoTextureSwizzle",
|
|
55867
|
+
name: "B",
|
|
55868
|
+
default: "NeoTextureSwizzle.Blue"
|
|
55869
|
+
},
|
|
55870
|
+
{
|
|
55871
|
+
type: "NeoTextureSwizzle",
|
|
55872
|
+
name: "A",
|
|
55873
|
+
default: "NeoTextureSwizzle.Alpha"
|
|
55874
|
+
}
|
|
55875
|
+
],
|
|
55876
|
+
NeoAudioTemplateSettings: [
|
|
55877
|
+
{ type: "string", name: "Name", default: "string.Empty" },
|
|
55878
|
+
{ type: "bool", name: "ForceToMono" },
|
|
55879
|
+
{ type: "bool", name: "Normalize" },
|
|
55880
|
+
{ type: "bool", name: "LoadInBackground" },
|
|
55881
|
+
{ type: "bool", name: "Ambisonic" },
|
|
55882
|
+
{ type: "NeoAudioLoadType", name: "LoadType" },
|
|
55883
|
+
{
|
|
55884
|
+
type: "NeoAudioCompressionFormat",
|
|
55885
|
+
name: "CompressionFormat",
|
|
55886
|
+
default: "NeoAudioCompressionFormat.Vorbis"
|
|
55887
|
+
},
|
|
55888
|
+
{ type: "double", name: "Quality", default: "1" },
|
|
55889
|
+
{ type: "NeoAudioSampleRate", name: "SampleRate" },
|
|
55890
|
+
{ type: "int?", name: "OverrideSampleRate" },
|
|
55891
|
+
{ type: "bool", name: "PreloadAudioData", default: "true" }
|
|
55892
|
+
],
|
|
55893
|
+
NeoLocalizationSettings: [
|
|
55894
|
+
{ type: "string", name: "MainLocale", default: '"en-US"' },
|
|
55895
|
+
{
|
|
55896
|
+
type: "IReadOnlyList<NeoLocaleSettings>",
|
|
55897
|
+
name: "Locales",
|
|
55898
|
+
default: "new List<NeoLocaleSettings>()"
|
|
55899
|
+
},
|
|
55900
|
+
{
|
|
55901
|
+
type: "IReadOnlyList<string>",
|
|
55902
|
+
name: "StatusIds",
|
|
55903
|
+
default: "new List<string>()"
|
|
55904
|
+
},
|
|
55905
|
+
{
|
|
55906
|
+
type: "string",
|
|
55907
|
+
name: "MainLocaleDefaultStatus",
|
|
55908
|
+
default: "string.Empty"
|
|
55909
|
+
}
|
|
55910
|
+
],
|
|
55911
|
+
NeoLocaleSettings: [
|
|
55912
|
+
{ type: "string", name: "Locale", default: "string.Empty" },
|
|
55913
|
+
{ type: "string?", name: "SourceLocale" },
|
|
55914
|
+
{ type: "string?", name: "Name" },
|
|
55915
|
+
{ type: "int", name: "Order" },
|
|
55916
|
+
{ type: "long?", name: "ArchivedAt" }
|
|
55917
|
+
],
|
|
55918
|
+
NeoLocalizationStatusSettings: [
|
|
55919
|
+
{ type: "string", name: "Slug", default: "string.Empty" },
|
|
55920
|
+
{ type: "string", name: "Name", default: "string.Empty" },
|
|
55921
|
+
{ type: "string?", name: "Description" },
|
|
55922
|
+
{ type: "string?", name: "Color" },
|
|
55923
|
+
{ type: "string?", name: "Emoji" },
|
|
55924
|
+
{ type: "long?", name: "ArchivedAt" },
|
|
55925
|
+
{ type: "IReadOnlyList<string>?", name: "TransitionRules" },
|
|
55926
|
+
{ type: "string?", name: "TransitionOnTextEdit" },
|
|
55927
|
+
{ type: "string?", name: "TransitionWhenSourceBecomes" },
|
|
55928
|
+
{ type: "NeoSystemSettings?", name: "System" }
|
|
55929
|
+
]
|
|
55930
|
+
},
|
|
55931
|
+
records: {
|
|
55932
|
+
NeoProjectRecordReference: {
|
|
55933
|
+
kind: "readonly record struct",
|
|
55934
|
+
catalog: true,
|
|
55935
|
+
parameters: [
|
|
55936
|
+
{ type: "NeoProjectRecordKind", name: "Kind" },
|
|
55937
|
+
{ type: "string", name: "Id" }
|
|
55938
|
+
]
|
|
55939
|
+
},
|
|
55940
|
+
NeoInternalRecordRelationDefinition: {
|
|
55941
|
+
kind: "sealed record",
|
|
55942
|
+
catalog: true,
|
|
55943
|
+
parameters: [
|
|
55944
|
+
{ type: "string?", name: "Id" },
|
|
55945
|
+
{ type: "string", name: "RelationKind" },
|
|
55946
|
+
{ type: "NeoProjectRecordReference", name: "Source" },
|
|
55947
|
+
{ type: "NeoProjectRecordReference", name: "Target" }
|
|
55948
|
+
]
|
|
55949
|
+
},
|
|
55950
|
+
NeoVector2: {
|
|
55951
|
+
kind: "readonly record struct",
|
|
55952
|
+
parameters: [
|
|
55953
|
+
{ type: "double", name: "X" },
|
|
55954
|
+
{ type: "double", name: "Y" }
|
|
55955
|
+
]
|
|
55956
|
+
},
|
|
55957
|
+
NeoVector2Int: {
|
|
55958
|
+
kind: "readonly record struct",
|
|
55959
|
+
parameters: [
|
|
55960
|
+
{ type: "int", name: "X" },
|
|
55961
|
+
{ type: "int", name: "Y" }
|
|
55962
|
+
]
|
|
55963
|
+
},
|
|
55964
|
+
NeoVector3: {
|
|
55965
|
+
kind: "readonly record struct",
|
|
55966
|
+
parameters: [
|
|
55967
|
+
{ type: "double", name: "X" },
|
|
55968
|
+
{ type: "double", name: "Y" },
|
|
55969
|
+
{ type: "double", name: "Z" }
|
|
55970
|
+
]
|
|
55971
|
+
},
|
|
55972
|
+
NeoVector3Int: {
|
|
55973
|
+
kind: "readonly record struct",
|
|
55974
|
+
parameters: [
|
|
55975
|
+
{ type: "int", name: "X" },
|
|
55976
|
+
{ type: "int", name: "Y" },
|
|
55977
|
+
{ type: "int", name: "Z" }
|
|
55978
|
+
]
|
|
55979
|
+
},
|
|
55980
|
+
NeoVector4: {
|
|
55981
|
+
kind: "readonly record struct",
|
|
55982
|
+
parameters: [
|
|
55983
|
+
{ type: "double", name: "X" },
|
|
55984
|
+
{ type: "double", name: "Y" },
|
|
55985
|
+
{ type: "double", name: "Z" },
|
|
55986
|
+
{ type: "double", name: "W" }
|
|
55987
|
+
]
|
|
55988
|
+
},
|
|
55989
|
+
NeoColor: {
|
|
55990
|
+
kind: "readonly record struct",
|
|
55991
|
+
parameters: [
|
|
55992
|
+
{ type: "double", name: "R" },
|
|
55993
|
+
{ type: "double", name: "G" },
|
|
55994
|
+
{ type: "double", name: "B" },
|
|
55995
|
+
{ type: "double", name: "A" }
|
|
55996
|
+
]
|
|
55997
|
+
},
|
|
55998
|
+
NeoSprite: {
|
|
55999
|
+
kind: "sealed record",
|
|
56000
|
+
parameters: [
|
|
56001
|
+
{ type: "string", name: "FileId" },
|
|
56002
|
+
{ type: "int", name: "SliceIndex" }
|
|
56003
|
+
]
|
|
56004
|
+
},
|
|
56005
|
+
NeoAudio: {
|
|
56006
|
+
kind: "sealed record",
|
|
56007
|
+
parameters: [{ type: "string", name: "FileId" }]
|
|
56008
|
+
},
|
|
56009
|
+
NeoDialogue: {
|
|
56010
|
+
kind: "sealed record",
|
|
56011
|
+
parameters: [{ type: "string", name: "DialogueId" }]
|
|
56012
|
+
},
|
|
56013
|
+
"NeoLookup<T>": {
|
|
56014
|
+
kind: "sealed record",
|
|
56015
|
+
parameters: [{ type: "string", name: "ValueId" }]
|
|
56016
|
+
},
|
|
56017
|
+
NeoMemberReference: {
|
|
56018
|
+
kind: "readonly record struct",
|
|
56019
|
+
parameters: [{ type: "string", name: "Id" }]
|
|
56020
|
+
}
|
|
56021
|
+
},
|
|
56022
|
+
intrinsics: {
|
|
56023
|
+
Neo: [
|
|
56024
|
+
{
|
|
56025
|
+
typeParameters: "<T>",
|
|
56026
|
+
returnType: "T",
|
|
56027
|
+
name: "Ref",
|
|
56028
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56029
|
+
expression: "default!"
|
|
56030
|
+
},
|
|
56031
|
+
{
|
|
56032
|
+
typeParameters: "<T>",
|
|
56033
|
+
returnType: "NeoLookup<T>",
|
|
56034
|
+
name: "Lookup",
|
|
56035
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56036
|
+
expression: "new(id)"
|
|
56037
|
+
},
|
|
56038
|
+
{
|
|
56039
|
+
returnType: "NeoDialogue",
|
|
56040
|
+
name: "Dialogue",
|
|
56041
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56042
|
+
expression: "new(id)"
|
|
56043
|
+
},
|
|
56044
|
+
{
|
|
56045
|
+
returnType: "NeoSprite",
|
|
56046
|
+
name: "Sprite",
|
|
56047
|
+
parameters: [
|
|
56048
|
+
{ type: "string", name: "fileId" },
|
|
56049
|
+
{ type: "int", name: "sliceIndex", default: "0" }
|
|
56050
|
+
],
|
|
56051
|
+
expression: "new(fileId, sliceIndex)"
|
|
56052
|
+
},
|
|
56053
|
+
{
|
|
56054
|
+
returnType: "NeoAudio",
|
|
56055
|
+
name: "Audio",
|
|
56056
|
+
parameters: [{ type: "string", name: "fileId" }],
|
|
56057
|
+
expression: "new(fileId)"
|
|
56058
|
+
},
|
|
56059
|
+
{
|
|
56060
|
+
returnType: "NeoMemberReference",
|
|
56061
|
+
name: "Member",
|
|
56062
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56063
|
+
expression: "new(id)"
|
|
56064
|
+
}
|
|
56065
|
+
]
|
|
56066
|
+
}
|
|
56067
|
+
}
|
|
56068
|
+
}
|
|
56069
|
+
});
|
|
56070
|
+
|
|
54426
56071
|
// src/project-source/workspace-status-core.ts
|
|
54427
56072
|
var ANIMATION_DOCUMENT_RECORD_KINDS = [
|
|
54428
56073
|
ProjectRecordKind.Project,
|
|
@@ -54734,6 +56379,16 @@ var WORLD_OBJECT_CONTRACT_WORLD_KINDS = /* @__PURE__ */ new Set([
|
|
|
54734
56379
|
NeoWorldSystemClassKind.SpriteObject
|
|
54735
56380
|
]);
|
|
54736
56381
|
|
|
56382
|
+
// ../src/models/exports/unity-codegen-revision.ts
|
|
56383
|
+
var UNITY_CODEGEN_REVISION = "45a0847addd4616acfc29f142556dcb2e0a27daae14d6aa456430228e66dbc07";
|
|
56384
|
+
|
|
56385
|
+
// src/export-cache.ts
|
|
56386
|
+
var CACHE_BUILD = JSON.stringify([
|
|
56387
|
+
PROJECT_SCHEMA_CONTRACT.cliVersion,
|
|
56388
|
+
NEOSCRIPT_COMPILER_REVISION,
|
|
56389
|
+
UNITY_CODEGEN_REVISION
|
|
56390
|
+
]);
|
|
56391
|
+
|
|
54737
56392
|
// src/export-state.ts
|
|
54738
56393
|
import { join } from "node:path";
|
|
54739
56394
|
var EXPORT_STATE_FILE = join(".neo", "export.json");
|