@neocompose/cli 0.72.0 → 0.72.2
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 +16 -0
- package/README.md +11 -0
- package/dist/neo.mjs +101902 -98551
- package/dist/test-worker.mjs +1954 -275
- 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/skills/neocompose-cli/references/declarations-and-construction.md +7 -1
- package/skills/neocompose-cli/references/neoscript.md +4 -0
- package/skills/neocompose-cli/references/values-identities-and-references.md +3 -0
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
|
}
|
|
@@ -38356,6 +38520,7 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38356
38520
|
(candidate) => (candidate.kind === "function" || candidate.kind === "method") && candidate.name === callee.name
|
|
38357
38521
|
);
|
|
38358
38522
|
if (member) {
|
|
38523
|
+
this.validateFunctionReceiver(receiver, callee.name, optional2, pos);
|
|
38359
38524
|
if (type !== void 0) this.assertMemberAccessible(type, member, pos);
|
|
38360
38525
|
if (member.static === true) {
|
|
38361
38526
|
throw new CompileError(
|
|
@@ -38442,39 +38607,8 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38442
38607
|
}
|
|
38443
38608
|
};
|
|
38444
38609
|
}
|
|
38445
|
-
|
|
38446
|
-
|
|
38447
|
-
const scoped = scope.lookup(callee.name);
|
|
38448
|
-
const implicit = this.implicitMember(callee.name);
|
|
38449
|
-
if (scoped === null && (implicit === null || implicit.symbol.kind === "function" || implicit.symbol.kind === "method")) {
|
|
38450
|
-
return null;
|
|
38451
|
-
}
|
|
38452
|
-
const resolved = this.resolveIdentifier(callee.name, scope, callee.pos);
|
|
38453
|
-
return resolved.type.kind === "delegate" ? resolved : null;
|
|
38454
|
-
}
|
|
38455
|
-
if (callee.kind !== "member") return null;
|
|
38456
|
-
try {
|
|
38457
|
-
const resolved = this.resolveMember(
|
|
38458
|
-
callee.receiver,
|
|
38459
|
-
callee.name,
|
|
38460
|
-
scope,
|
|
38461
|
-
callee.pos,
|
|
38462
|
-
callee.optional === true,
|
|
38463
|
-
receiverValue
|
|
38464
|
-
);
|
|
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) {
|
|
38610
|
+
/** Classify callable values once before falling back to ordinary methods. */
|
|
38611
|
+
resolveCallableValueCallee(callee, scope, receiverValue) {
|
|
38478
38612
|
if (callee.kind === "ident") {
|
|
38479
38613
|
const scoped = scope.lookup(callee.name);
|
|
38480
38614
|
const implicit = this.implicitMember(callee.name);
|
|
@@ -38482,7 +38616,7 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38482
38616
|
return null;
|
|
38483
38617
|
}
|
|
38484
38618
|
const resolved = this.resolveIdentifier(callee.name, scope, callee.pos);
|
|
38485
|
-
return resolved.type.kind === "action" ? resolved : null;
|
|
38619
|
+
return resolved.type.kind === "delegate" || resolved.type.kind === "action" ? resolved : null;
|
|
38486
38620
|
}
|
|
38487
38621
|
if (callee.kind !== "member") return null;
|
|
38488
38622
|
try {
|
|
@@ -38494,7 +38628,7 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
38494
38628
|
callee.optional === true,
|
|
38495
38629
|
receiverValue
|
|
38496
38630
|
);
|
|
38497
|
-
return resolved.type.kind === "action" ? resolved : null;
|
|
38631
|
+
return resolved.type.kind === "delegate" || resolved.type.kind === "action" ? resolved : null;
|
|
38498
38632
|
} catch (error) {
|
|
38499
38633
|
if (error instanceof CompileError) return null;
|
|
38500
38634
|
throw error;
|
|
@@ -39535,12 +39669,10 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
39535
39669
|
callableSignatureForReceiver(symbol, receiver) {
|
|
39536
39670
|
let parameters = symbol.parameters ?? [];
|
|
39537
39671
|
let returnType = symbol.returnType ?? symbol.type;
|
|
39538
|
-
if (this.context.projectSourceKind !== "spec" && !(receiver?.kind === "instance" && receiver.dispatch === "base")) {
|
|
39539
|
-
return { parameters, returnType };
|
|
39540
|
-
}
|
|
39541
39672
|
if (receiver?.kind !== "instance") return { parameters, returnType };
|
|
39542
39673
|
const receiverType = receiver.expression.type;
|
|
39543
39674
|
if (receiverType.kind !== "named") return { parameters, returnType };
|
|
39675
|
+
if (!receiverType.typeArguments?.length) return { parameters, returnType };
|
|
39544
39676
|
const declaring = this.project.typeById.get(receiverType.typeId);
|
|
39545
39677
|
if (declaring === void 0) return { parameters, returnType };
|
|
39546
39678
|
parameters = parameters.map((parameter3) => ({
|
|
@@ -40444,6 +40576,21 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
40444
40576
|
callSiteId: this.nextCallSite(expression.pos)
|
|
40445
40577
|
};
|
|
40446
40578
|
}
|
|
40579
|
+
validateFunctionReceiver(receiver, name, optional2, pos) {
|
|
40580
|
+
if (optional2 && !isNullable(receiver.type)) {
|
|
40581
|
+
throw new CompileError(
|
|
40582
|
+
`\`?.\` requires an optional receiver; got ${this.describe(receiver.type)}`,
|
|
40583
|
+
pos
|
|
40584
|
+
);
|
|
40585
|
+
}
|
|
40586
|
+
const receiverType = receiver.optionalChainType ?? receiver.type;
|
|
40587
|
+
if (!optional2 && isNullable(receiverType)) {
|
|
40588
|
+
throw new CompileError(
|
|
40589
|
+
`Function '${name}' is called on ${this.describe(receiverType)}, which may be null. Use optional chaining, force-unwrapping, or a null check before calling it.`,
|
|
40590
|
+
pos
|
|
40591
|
+
);
|
|
40592
|
+
}
|
|
40593
|
+
}
|
|
40447
40594
|
resolveFunctionStatement(expression, scope) {
|
|
40448
40595
|
if (expression.kind !== "call") return null;
|
|
40449
40596
|
const receiverValue = this.callReceiver(expression.callee, scope);
|
|
@@ -40474,19 +40621,15 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
40474
40621
|
throw new Error("Base call did not produce a function call.");
|
|
40475
40622
|
return result.pointer;
|
|
40476
40623
|
}
|
|
40477
|
-
const
|
|
40624
|
+
const callable2 = this.resolveCallableValueCallee(
|
|
40478
40625
|
expression.callee,
|
|
40479
40626
|
scope,
|
|
40480
40627
|
receiverValue
|
|
40481
40628
|
);
|
|
40482
|
-
if (
|
|
40483
|
-
return this.resolveActionCall(
|
|
40629
|
+
if (callable2?.type.kind === "action") {
|
|
40630
|
+
return this.resolveActionCall(callable2, callable2.type, expression, scope);
|
|
40484
40631
|
}
|
|
40485
|
-
const delegate =
|
|
40486
|
-
expression.callee,
|
|
40487
|
-
scope,
|
|
40488
|
-
receiverValue
|
|
40489
|
-
);
|
|
40632
|
+
const delegate = callable2;
|
|
40490
40633
|
if (delegate?.type.kind === "delegate") {
|
|
40491
40634
|
const delegateType = delegate.type;
|
|
40492
40635
|
requireArgCount(
|
|
@@ -40611,12 +40754,19 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
40611
40754
|
}
|
|
40612
40755
|
}
|
|
40613
40756
|
const receiver = receiverValue();
|
|
40614
|
-
|
|
40615
|
-
|
|
40757
|
+
const memberReceiverType = neoScriptMemberLookupType(receiver.type);
|
|
40758
|
+
if (memberReceiverType.kind !== "named") return null;
|
|
40759
|
+
const type = this.project.typeById.get(memberReceiverType.typeId);
|
|
40616
40760
|
const symbol = type?.members.find(
|
|
40617
40761
|
(candidate) => (candidate.kind === "function" || candidate.kind === "method") && candidate.name === memberName
|
|
40618
40762
|
);
|
|
40619
40763
|
if (!symbol) return null;
|
|
40764
|
+
this.validateFunctionReceiver(
|
|
40765
|
+
receiver,
|
|
40766
|
+
memberName,
|
|
40767
|
+
expression.callee.optional === true,
|
|
40768
|
+
expression.pos
|
|
40769
|
+
);
|
|
40620
40770
|
if (type !== void 0) {
|
|
40621
40771
|
this.assertMemberAccessible(type, symbol, expression.pos);
|
|
40622
40772
|
}
|
|
@@ -40629,7 +40779,10 @@ var StrictNeoScriptResolver = class _StrictNeoScriptResolver {
|
|
|
40629
40779
|
this.validateCallableInContext(symbol, expression.pos);
|
|
40630
40780
|
const resolved = this.resolveCallableArguments(
|
|
40631
40781
|
symbol,
|
|
40632
|
-
{
|
|
40782
|
+
{
|
|
40783
|
+
kind: "instance",
|
|
40784
|
+
expression: memberReceiverType === receiver.type ? receiver : { ...receiver, type: memberReceiverType }
|
|
40785
|
+
},
|
|
40633
40786
|
expression.args,
|
|
40634
40787
|
scope,
|
|
40635
40788
|
expression.pos
|
|
@@ -45074,6 +45227,15 @@ function analyzerMemberById(context, id) {
|
|
|
45074
45227
|
}
|
|
45075
45228
|
return analyzerSchemaIndex(context).member(id) ?? null;
|
|
45076
45229
|
}
|
|
45230
|
+
function resolveAnalyzerMember(context, member) {
|
|
45231
|
+
const index = activeSchemaIndexByContext.get(context);
|
|
45232
|
+
if (index === void 0) return resolveMember(member, context.vm.members);
|
|
45233
|
+
const cached = index.resolvedMembers.get(member);
|
|
45234
|
+
if (cached !== void 0) return cached;
|
|
45235
|
+
const resolved = resolveMemberFromIndex(member, index.membersById);
|
|
45236
|
+
index.resolvedMembers.set(member, resolved);
|
|
45237
|
+
return resolved;
|
|
45238
|
+
}
|
|
45077
45239
|
|
|
45078
45240
|
// ../src/runtime/neoscript/neoscript-language-context-adapter.ts
|
|
45079
45241
|
var NEOSCRIPT_COMPILER_ADAPTER_REVISION = 5;
|
|
@@ -45082,6 +45244,31 @@ var UNKNOWN_TYPE = {
|
|
|
45082
45244
|
name: "unknown"
|
|
45083
45245
|
};
|
|
45084
45246
|
var storageResolverByContext = /* @__PURE__ */ new WeakMap();
|
|
45247
|
+
var dialogueProjects = /* @__PURE__ */ new WeakMap();
|
|
45248
|
+
function withDialogueContextType(project, context) {
|
|
45249
|
+
if (!context.dialogueContext) return project;
|
|
45250
|
+
let contexts = dialogueProjects.get(project);
|
|
45251
|
+
if (contexts === void 0) {
|
|
45252
|
+
contexts = /* @__PURE__ */ new Map();
|
|
45253
|
+
dialogueProjects.set(project, contexts);
|
|
45254
|
+
}
|
|
45255
|
+
const dialogueType = createDialogueContextType(context);
|
|
45256
|
+
const key = JSON.stringify(dialogueType);
|
|
45257
|
+
let scoped = contexts.get(key);
|
|
45258
|
+
if (scoped === void 0) {
|
|
45259
|
+
scoped = {
|
|
45260
|
+
...project,
|
|
45261
|
+
types: [
|
|
45262
|
+
...project.types.filter(
|
|
45263
|
+
(type) => type.id !== AnalyzerDialogueContextClassId
|
|
45264
|
+
),
|
|
45265
|
+
dialogueType
|
|
45266
|
+
]
|
|
45267
|
+
};
|
|
45268
|
+
contexts.set(key, scoped);
|
|
45269
|
+
}
|
|
45270
|
+
return scoped;
|
|
45271
|
+
}
|
|
45085
45272
|
function createNeoScriptDocumentContext(context, projectOverride) {
|
|
45086
45273
|
return withAnalyzerSchemaIndex(
|
|
45087
45274
|
context,
|
|
@@ -45089,7 +45276,7 @@ function createNeoScriptDocumentContext(context, projectOverride) {
|
|
|
45089
45276
|
);
|
|
45090
45277
|
}
|
|
45091
45278
|
function createNeoScriptDocumentContextInScope(context, projectOverride) {
|
|
45092
|
-
const project = projectOverride
|
|
45279
|
+
const project = projectOverride === void 0 ? createNeoScriptProject(context) : withDialogueContextType(projectOverride, context);
|
|
45093
45280
|
const documentKind = context.scriptKind ?? "getter";
|
|
45094
45281
|
const thisClass = context.thisClass ? namedType(context.thisClass.id, true) : void 0;
|
|
45095
45282
|
const baseClass = overrideBaseClass(context);
|
|
@@ -45303,12 +45490,15 @@ function classToLanguageType(schemaClass2, context) {
|
|
|
45303
45490
|
const record4 = analyzerMemberById(context, placement.memberId);
|
|
45304
45491
|
if (!record4) continue;
|
|
45305
45492
|
let projectedRecord = record4;
|
|
45493
|
+
let projectedBase;
|
|
45306
45494
|
try {
|
|
45307
45495
|
projectedRecord = substituteMember(
|
|
45308
45496
|
record4,
|
|
45309
45497
|
genericEnvironment,
|
|
45310
|
-
context.vm.members
|
|
45498
|
+
context.vm.members,
|
|
45499
|
+
resolveAnalyzerMember(context, record4)
|
|
45311
45500
|
);
|
|
45501
|
+
projectedBase = projectedRecord;
|
|
45312
45502
|
} catch {
|
|
45313
45503
|
}
|
|
45314
45504
|
const symbol = memberToSymbol(
|
|
@@ -45318,7 +45508,8 @@ function classToLanguageType(schemaClass2, context) {
|
|
|
45318
45508
|
placement.ownerClassId,
|
|
45319
45509
|
index,
|
|
45320
45510
|
context,
|
|
45321
|
-
genericEnvironment
|
|
45511
|
+
genericEnvironment,
|
|
45512
|
+
projectedBase
|
|
45322
45513
|
);
|
|
45323
45514
|
if (!symbol) continue;
|
|
45324
45515
|
names.add(symbol.name);
|
|
@@ -45403,7 +45594,8 @@ function constructorSignature(schemaClass2, members, context, genericEnvironment
|
|
|
45403
45594
|
const resolved = substituteMember(
|
|
45404
45595
|
record4,
|
|
45405
45596
|
genericEnvironment,
|
|
45406
|
-
context.vm.members
|
|
45597
|
+
context.vm.members,
|
|
45598
|
+
resolveAnalyzerMember(context, record4)
|
|
45407
45599
|
);
|
|
45408
45600
|
return {
|
|
45409
45601
|
required: isRequiredMember(resolved),
|
|
@@ -45429,7 +45621,8 @@ function constructorSignature(schemaClass2, members, context, genericEnvironment
|
|
|
45429
45621
|
const resolved = substituteMember(
|
|
45430
45622
|
record4,
|
|
45431
45623
|
genericEnvironment,
|
|
45432
|
-
context.vm.members
|
|
45624
|
+
context.vm.members,
|
|
45625
|
+
resolveAnalyzerMember(context, record4)
|
|
45433
45626
|
);
|
|
45434
45627
|
return {
|
|
45435
45628
|
required: isRequiredMember(resolved),
|
|
@@ -45481,10 +45674,10 @@ function canonicalMemberId(id, context) {
|
|
|
45481
45674
|
}
|
|
45482
45675
|
return resolve(id);
|
|
45483
45676
|
}
|
|
45484
|
-
function memberToSymbol(record4, schemaKey, containingClass, ownerClassId, index, context, genericEnvironment) {
|
|
45677
|
+
function memberToSymbol(record4, schemaKey, containingClass, ownerClassId, index, context, genericEnvironment, projectedBase) {
|
|
45485
45678
|
let resolved;
|
|
45486
45679
|
try {
|
|
45487
|
-
resolved =
|
|
45680
|
+
resolved = projectedBase ?? resolveAnalyzerMember(context, record4);
|
|
45488
45681
|
} catch {
|
|
45489
45682
|
return null;
|
|
45490
45683
|
}
|
|
@@ -45492,7 +45685,8 @@ function memberToSymbol(record4, schemaKey, containingClass, ownerClassId, index
|
|
|
45492
45685
|
record4,
|
|
45493
45686
|
context,
|
|
45494
45687
|
/* @__PURE__ */ new Set(),
|
|
45495
|
-
genericEnvironment
|
|
45688
|
+
genericEnvironment,
|
|
45689
|
+
resolved
|
|
45496
45690
|
);
|
|
45497
45691
|
const owner = analyzerSchemaIndex(context).class(ownerClassId);
|
|
45498
45692
|
const inheritedFrom = owner && owner.id !== containingClass.id ? {
|
|
@@ -45823,7 +46017,7 @@ function createListIndexes(context) {
|
|
|
45823
46017
|
for (const record4 of context.vm.members) {
|
|
45824
46018
|
let resolved;
|
|
45825
46019
|
try {
|
|
45826
|
-
resolved =
|
|
46020
|
+
resolved = resolveAnalyzerMember(context, record4);
|
|
45827
46021
|
} catch {
|
|
45828
46022
|
continue;
|
|
45829
46023
|
}
|
|
@@ -45853,12 +46047,12 @@ function createListIndexes(context) {
|
|
|
45853
46047
|
}
|
|
45854
46048
|
return result;
|
|
45855
46049
|
}
|
|
45856
|
-
function memberRuntimeType(record4, context, seen = /* @__PURE__ */ new Set(), genericEnvironment) {
|
|
46050
|
+
function memberRuntimeType(record4, context, seen = /* @__PURE__ */ new Set(), genericEnvironment, projectedBase) {
|
|
45857
46051
|
if (seen.has(record4.id)) return UNKNOWN_TYPE;
|
|
45858
46052
|
const nextSeen = new Set(seen).add(record4.id);
|
|
45859
46053
|
let member;
|
|
45860
46054
|
try {
|
|
45861
|
-
member =
|
|
46055
|
+
member = projectedBase ?? resolveAnalyzerMember(context, record4);
|
|
45862
46056
|
} catch {
|
|
45863
46057
|
return UNKNOWN_TYPE;
|
|
45864
46058
|
}
|
|
@@ -46105,7 +46299,12 @@ function classArguments(member, context, seen, genericEnvironment) {
|
|
|
46105
46299
|
function substituteForGenericEnvironment(member, environment, context) {
|
|
46106
46300
|
if (!environment) return member;
|
|
46107
46301
|
try {
|
|
46108
|
-
return substituteMember(
|
|
46302
|
+
return substituteMember(
|
|
46303
|
+
member,
|
|
46304
|
+
environment,
|
|
46305
|
+
context.vm.members,
|
|
46306
|
+
resolveAnalyzerMember(context, member)
|
|
46307
|
+
);
|
|
46109
46308
|
} catch {
|
|
46110
46309
|
return member;
|
|
46111
46310
|
}
|
|
@@ -46391,7 +46590,7 @@ function scriptDefinitionLocations2(memberId, context) {
|
|
|
46391
46590
|
if (!record4) return {};
|
|
46392
46591
|
let resolved;
|
|
46393
46592
|
try {
|
|
46394
|
-
resolved =
|
|
46593
|
+
resolved = resolveAnalyzerMember(context, record4);
|
|
46395
46594
|
} catch {
|
|
46396
46595
|
return {};
|
|
46397
46596
|
}
|
|
@@ -46477,7 +46676,7 @@ function virtualNeoSchemaClassHeader(schemaClass2, context) {
|
|
|
46477
46676
|
return `public ${isAbstractClass(schemaClass2) ? "abstract " : ""}partial class ${virtualCSharpIdentifier(schemaClass2.name)}${genericParameters}${inheritance}${constraints.join("")} // Neo class ${schemaClass2.id}`;
|
|
46478
46677
|
}
|
|
46479
46678
|
function virtualConstraintMemberType(member, context) {
|
|
46480
|
-
const resolved =
|
|
46679
|
+
const resolved = resolveAnalyzerMember(context, member);
|
|
46481
46680
|
switch (resolved.kind) {
|
|
46482
46681
|
case 1 /* Bool */:
|
|
46483
46682
|
return "bool";
|
|
@@ -49050,18 +49249,18 @@ function readProjectDocument(value, options = {}) {
|
|
|
49050
49249
|
"localizationConfig",
|
|
49051
49250
|
isProjectLocalizationConfig
|
|
49052
49251
|
) : readField(value, "localizationConfig", isProjectLocalizationConfig);
|
|
49053
|
-
const storedValues =
|
|
49252
|
+
const storedValues = readDocumentArrayField(value, "values", isMemberValue);
|
|
49054
49253
|
const valueBuckets = options.values === "stored" ? { values: storedValues } : projectDocumentValueBuckets(storedValues);
|
|
49055
49254
|
return {
|
|
49056
49255
|
version: readField(value, "version", isProjectVersion),
|
|
49057
|
-
versions:
|
|
49256
|
+
versions: readDocumentArrayField(value, "versions", isProjectVersion),
|
|
49058
49257
|
versionStatus: readField(value, "versionStatus", isProjectVersionStatus),
|
|
49059
|
-
versionStatuses:
|
|
49258
|
+
versionStatuses: readDocumentArrayField(
|
|
49060
49259
|
value,
|
|
49061
49260
|
"versionStatuses",
|
|
49062
49261
|
isProjectVersionStatus
|
|
49063
49262
|
),
|
|
49064
|
-
releaseChannels:
|
|
49263
|
+
releaseChannels: readDocumentArrayField(
|
|
49065
49264
|
value,
|
|
49066
49265
|
"releaseChannels",
|
|
49067
49266
|
isProjectReleaseChannel
|
|
@@ -49071,7 +49270,7 @@ function readProjectDocument(value, options = {}) {
|
|
|
49071
49270
|
value,
|
|
49072
49271
|
options.members === "authored-or-compiled" ? isAnyMemberAuthoredOrCompiled : isAnyMember
|
|
49073
49272
|
),
|
|
49074
|
-
classes:
|
|
49273
|
+
classes: readDocumentArrayField(value, "classes", isNeoSchemaClass),
|
|
49075
49274
|
constructors: readOptionalArrayField(
|
|
49076
49275
|
value,
|
|
49077
49276
|
"constructors",
|
|
@@ -49092,13 +49291,13 @@ function readProjectDocument(value, options = {}) {
|
|
|
49092
49291
|
// Retain the physical bucket after expansion for write-path comparisons.
|
|
49093
49292
|
values: valueBuckets.values,
|
|
49094
49293
|
...valueBuckets.physicalValues === void 0 ? {} : { physicalValues: valueBuckets.physicalValues },
|
|
49095
|
-
enums:
|
|
49294
|
+
enums: readDocumentArrayField(
|
|
49096
49295
|
value,
|
|
49097
49296
|
"enums",
|
|
49098
49297
|
options.identities === "prospective" ? isProspectiveEnum : isEnum
|
|
49099
49298
|
),
|
|
49100
|
-
interfaces:
|
|
49101
|
-
...options.dialogues === "omit" ? {} : { dialogues:
|
|
49299
|
+
interfaces: readDocumentArrayField(value, "interfaces", isNeoInterface),
|
|
49300
|
+
...options.dialogues === "omit" ? {} : { dialogues: readDocumentArrayField(value, "dialogues", isDialogue) },
|
|
49102
49301
|
dialogueRecords: readOptionalArrayField(
|
|
49103
49302
|
value,
|
|
49104
49303
|
"dialogueRecords",
|
|
@@ -49109,26 +49308,38 @@ function readProjectDocument(value, options = {}) {
|
|
|
49109
49308
|
"dialogueNodes",
|
|
49110
49309
|
isDialogueNodeRecord
|
|
49111
49310
|
),
|
|
49112
|
-
dialogueGroups:
|
|
49113
|
-
|
|
49114
|
-
|
|
49115
|
-
|
|
49311
|
+
dialogueGroups: readDocumentArrayField(
|
|
49312
|
+
value,
|
|
49313
|
+
"dialogueGroups",
|
|
49314
|
+
isAnyDialogueGroup
|
|
49315
|
+
),
|
|
49316
|
+
priorityGroups: readDocumentArrayField(
|
|
49317
|
+
value,
|
|
49318
|
+
"priorityGroups",
|
|
49319
|
+
isPriorityGroup
|
|
49320
|
+
),
|
|
49321
|
+
projectFiles: readDocumentArrayField(value, "projectFiles", isProjectFile),
|
|
49322
|
+
textureTemplates: readDocumentArrayField(
|
|
49116
49323
|
value,
|
|
49117
49324
|
"textureTemplates",
|
|
49118
49325
|
isUnityTexture2DImportSettingsTemplate
|
|
49119
49326
|
),
|
|
49120
|
-
audioClipTemplates:
|
|
49327
|
+
audioClipTemplates: readDocumentArrayField(
|
|
49121
49328
|
value,
|
|
49122
49329
|
"audioClipTemplates",
|
|
49123
49330
|
isUnityAudioClipImportSettingsTemplate
|
|
49124
49331
|
),
|
|
49125
49332
|
localizationConfig,
|
|
49126
|
-
localizationStatuses:
|
|
49333
|
+
localizationStatuses: readDocumentArrayField(
|
|
49127
49334
|
value,
|
|
49128
49335
|
"localizationStatuses",
|
|
49129
49336
|
isLocalizationStatus
|
|
49130
49337
|
),
|
|
49131
|
-
localizedTexts:
|
|
49338
|
+
localizedTexts: readDocumentArrayField(
|
|
49339
|
+
value,
|
|
49340
|
+
"localizedTexts",
|
|
49341
|
+
isLocalizedText
|
|
49342
|
+
),
|
|
49132
49343
|
migrations: readOptionalArrayField(value, "migrations", isProjectMigration)
|
|
49133
49344
|
};
|
|
49134
49345
|
}
|
|
@@ -49158,7 +49369,7 @@ function isHashHead(value) {
|
|
|
49158
49369
|
}
|
|
49159
49370
|
function readField(source, key, isValid) {
|
|
49160
49371
|
const value = source[key];
|
|
49161
|
-
if (isValid(value)) return value;
|
|
49372
|
+
if (frozenRecordGuard(isValid)(value)) return value;
|
|
49162
49373
|
throw new Error(
|
|
49163
49374
|
`Convex project document field "${key}" has an invalid shape.`
|
|
49164
49375
|
);
|
|
@@ -49166,11 +49377,23 @@ function readField(source, key, isValid) {
|
|
|
49166
49377
|
function readOptionalNullableField(source, key, isValid) {
|
|
49167
49378
|
const value = source[key];
|
|
49168
49379
|
if (value === void 0 || value === null) return null;
|
|
49169
|
-
if (isValid(value)) return value;
|
|
49380
|
+
if (frozenRecordGuard(isValid)(value)) return value;
|
|
49170
49381
|
throw new Error(
|
|
49171
49382
|
`Convex project document field "${key}" has an invalid shape.`
|
|
49172
49383
|
);
|
|
49173
49384
|
}
|
|
49385
|
+
var frozenRecordGuards = /* @__PURE__ */ new WeakMap();
|
|
49386
|
+
function frozenRecordGuard(isValid) {
|
|
49387
|
+
let guard = frozenRecordGuards.get(isValid);
|
|
49388
|
+
if (guard === void 0) {
|
|
49389
|
+
guard = memoizeFrozenJsonGuard(isValid);
|
|
49390
|
+
frozenRecordGuards.set(isValid, guard);
|
|
49391
|
+
}
|
|
49392
|
+
return guard;
|
|
49393
|
+
}
|
|
49394
|
+
function readDocumentArrayField(source, key, isValid) {
|
|
49395
|
+
return readArrayField(source, key, frozenRecordGuard(isValid));
|
|
49396
|
+
}
|
|
49174
49397
|
function readArrayField(source, key, isValid) {
|
|
49175
49398
|
const value = source[key];
|
|
49176
49399
|
if (!Array.isArray(value)) {
|
|
@@ -49192,10 +49415,10 @@ function describeRejectedCompilerRevision(value) {
|
|
|
49192
49415
|
}
|
|
49193
49416
|
function readOptionalArrayField(source, key, isValid) {
|
|
49194
49417
|
if (!Object.prototype.hasOwnProperty.call(source, key)) return [];
|
|
49195
|
-
return
|
|
49418
|
+
return readDocumentArrayField(source, key, isValid);
|
|
49196
49419
|
}
|
|
49197
49420
|
function readStoredMembersField(source, isValid = isAnyMember) {
|
|
49198
|
-
return
|
|
49421
|
+
return readDocumentArrayField(
|
|
49199
49422
|
source,
|
|
49200
49423
|
"members",
|
|
49201
49424
|
isValid
|
|
@@ -49482,10 +49705,20 @@ var WORLD_LAYER_LINK_KINDS = /* @__PURE__ */ new Set([
|
|
|
49482
49705
|
NeoWorldSystemClassKind.ObjectLayerLink
|
|
49483
49706
|
]);
|
|
49484
49707
|
|
|
49485
|
-
// ../
|
|
49486
|
-
|
|
49487
|
-
|
|
49488
|
-
}
|
|
49708
|
+
// ../src/database/project-snapshot-derived-edges.ts
|
|
49709
|
+
var REFERENCE_ID_PAYLOAD = canonicalJsonStringify({
|
|
49710
|
+
referenceKind: "record-id"
|
|
49711
|
+
});
|
|
49712
|
+
var REFERENCE_NAME_PAYLOAD = canonicalJsonStringify({
|
|
49713
|
+
referenceKind: "type-name"
|
|
49714
|
+
});
|
|
49715
|
+
var CONSTRUCTED_CLASS_PAYLOAD = canonicalJsonStringify({
|
|
49716
|
+
referenceKind: "constructed-class-id"
|
|
49717
|
+
});
|
|
49718
|
+
var BODY_CHILD_PAYLOAD = canonicalJsonStringify({
|
|
49719
|
+
relation: "body-child",
|
|
49720
|
+
depth: 1
|
|
49721
|
+
});
|
|
49489
49722
|
|
|
49490
49723
|
// ../src/models/project/world-content-sidecar-validation.ts
|
|
49491
49724
|
var WORLD_PLACEMENT_ASSET_KIND = /* @__PURE__ */ new Map([[NeoWorldSystemClassKind.Object, NeoWorldSystemClassKind.Object]]);
|
|
@@ -54423,6 +54656,1442 @@ var SPECIALIZED_RELATION_KINDS = /* @__PURE__ */ new Set([
|
|
|
54423
54656
|
"world.object-layer-link.target"
|
|
54424
54657
|
]);
|
|
54425
54658
|
|
|
54659
|
+
// ../packages/manifest/schema-contract/registry.mjs
|
|
54660
|
+
var PROJECT_SCHEMA_CONTRACT = Object.freeze({
|
|
54661
|
+
cliVersion: "0.72.2",
|
|
54662
|
+
projectFileUploadBatchSize: 32,
|
|
54663
|
+
documentRecords: {
|
|
54664
|
+
member: {
|
|
54665
|
+
authored: [
|
|
54666
|
+
"id",
|
|
54667
|
+
"name",
|
|
54668
|
+
"docsText",
|
|
54669
|
+
"kind",
|
|
54670
|
+
"requirement",
|
|
54671
|
+
"mutability",
|
|
54672
|
+
"modifier",
|
|
54673
|
+
"access",
|
|
54674
|
+
"defaultValue",
|
|
54675
|
+
"extendsMemberId",
|
|
54676
|
+
"system",
|
|
54677
|
+
"storage",
|
|
54678
|
+
"storageKey",
|
|
54679
|
+
// Deliberately carries no normalization rule (P76 §1): absence is the
|
|
54680
|
+
// canonical automatic setting and explicit ordinal 0 is an explicit
|
|
54681
|
+
// `.Sparse`, so `absentMeansDefault` would collapse the two states
|
|
54682
|
+
// that the whole contract exists to keep apart.
|
|
54683
|
+
"distribution",
|
|
54684
|
+
"minValue",
|
|
54685
|
+
"maxValue",
|
|
54686
|
+
"decimalPoints",
|
|
54687
|
+
"format",
|
|
54688
|
+
"searchBy",
|
|
54689
|
+
"entryMemberId",
|
|
54690
|
+
"keyKind",
|
|
54691
|
+
"keyEnumId",
|
|
54692
|
+
"listKind",
|
|
54693
|
+
"indexes",
|
|
54694
|
+
"columnSettings",
|
|
54695
|
+
"classId",
|
|
54696
|
+
"payload",
|
|
54697
|
+
"schemaKeyOrder",
|
|
54698
|
+
"classArguments",
|
|
54699
|
+
"enumId",
|
|
54700
|
+
"selection",
|
|
54701
|
+
"collectionMemberId",
|
|
54702
|
+
"collectionValueId",
|
|
54703
|
+
"declaredTypeInfo",
|
|
54704
|
+
"targetTypeInfo",
|
|
54705
|
+
"valueTypeInfo",
|
|
54706
|
+
"dialogueGroupId",
|
|
54707
|
+
"code",
|
|
54708
|
+
"setterCode",
|
|
54709
|
+
"returnTypeInfo",
|
|
54710
|
+
"argumentTypes",
|
|
54711
|
+
"dispatch",
|
|
54712
|
+
"bodyMode",
|
|
54713
|
+
// P97 §1.1. No normalization rule, like `distribution`: absence means
|
|
54714
|
+
// unset (a declaration resolves to `.None`, an override inherits) and
|
|
54715
|
+
// explicit ordinal 0 is an authored `.None` that stops inheritance.
|
|
54716
|
+
"effect",
|
|
54717
|
+
"uiAction",
|
|
54718
|
+
"templateId",
|
|
54719
|
+
"genericParamId"
|
|
54720
|
+
],
|
|
54721
|
+
derived: ["valueId", "getter", "setter", "action"],
|
|
54722
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54723
|
+
normalization: {
|
|
54724
|
+
requirement: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54725
|
+
mutability: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54726
|
+
modifier: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54727
|
+
access: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54728
|
+
defaultValue: "nullIsAbsentOnFullMember",
|
|
54729
|
+
extendsMemberId: "nullIsAbsent",
|
|
54730
|
+
system: "nullIsAbsent",
|
|
54731
|
+
storage: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54732
|
+
storageKey: "nullOrEmptyStringIsAbsentOnFullMember",
|
|
54733
|
+
minValue: "nullIsAbsentOnFullMember",
|
|
54734
|
+
maxValue: "nullIsAbsentOnFullMember",
|
|
54735
|
+
decimalPoints: "nullIsAbsentOnFullMember",
|
|
54736
|
+
format: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54737
|
+
searchBy: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54738
|
+
keyEnumId: "nullIsAbsent",
|
|
54739
|
+
keyKind: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54740
|
+
listKind: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54741
|
+
indexes: "nullOrEmptyArrayIsAbsentOnFullMember",
|
|
54742
|
+
columnSettings: "nullOrEmptyArrayIsAbsentOnFullMember",
|
|
54743
|
+
schemaKeyOrder: "nullIsAbsentOnFullMember",
|
|
54744
|
+
classArguments: "nullOrEmptyObjectIsAbsentOnFullMember",
|
|
54745
|
+
payload: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54746
|
+
selection: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54747
|
+
collectionValueId: "nullIsAbsentOnFullMember",
|
|
54748
|
+
declaredTypeInfo: "nullIsAbsentOnFullMember",
|
|
54749
|
+
targetTypeInfo: "nullIsAbsentOnFullMember",
|
|
54750
|
+
valueTypeInfo: "nullIsAbsentOnFullMember",
|
|
54751
|
+
dialogueGroupId: "nullIsAbsentOnFullMember",
|
|
54752
|
+
code: "nullIsAbsentOnFullMember",
|
|
54753
|
+
templateId: "nullIsAbsentOnFullMember",
|
|
54754
|
+
setterCode: "nullIsAbsentOnFullMember",
|
|
54755
|
+
dispatch: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54756
|
+
bodyMode: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54757
|
+
uiAction: "nullIsAbsentOnFullMember"
|
|
54758
|
+
}
|
|
54759
|
+
},
|
|
54760
|
+
class: {
|
|
54761
|
+
authored: [
|
|
54762
|
+
"id",
|
|
54763
|
+
"name",
|
|
54764
|
+
"docsText",
|
|
54765
|
+
"schema",
|
|
54766
|
+
"schemaKeyOrder",
|
|
54767
|
+
"extendsClassId",
|
|
54768
|
+
"implementsInterfaceIds",
|
|
54769
|
+
"uiVisibility",
|
|
54770
|
+
"modifier",
|
|
54771
|
+
"system",
|
|
54772
|
+
"allowedStorage",
|
|
54773
|
+
"allowedStorageKeys",
|
|
54774
|
+
"genericParams",
|
|
54775
|
+
"extendsGenericBindings",
|
|
54776
|
+
"constructorIds",
|
|
54777
|
+
"requiredConstructorId",
|
|
54778
|
+
"targetMemberId"
|
|
54779
|
+
],
|
|
54780
|
+
derived: [],
|
|
54781
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54782
|
+
normalization: {
|
|
54783
|
+
uiVisibility: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54784
|
+
modifier: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54785
|
+
targetMemberId: "nullIsAbsent",
|
|
54786
|
+
schemaKeyOrder: "nullIsAbsent",
|
|
54787
|
+
extendsClassId: "nullIsAbsent",
|
|
54788
|
+
implementsInterfaceIds: "nullOrEmptyArrayIsAbsent",
|
|
54789
|
+
system: "nullIsAbsent",
|
|
54790
|
+
allowedStorage: { kind: "absentMeansDefault", defaultValue: 0 },
|
|
54791
|
+
allowedStorageKeys: "nullIsAbsent",
|
|
54792
|
+
genericParams: "nullOrEmptyArrayIsAbsent",
|
|
54793
|
+
extendsGenericBindings: "nullOrEmptyObjectIsAbsent",
|
|
54794
|
+
constructorIds: "nullOrEmptyArrayIsAbsent",
|
|
54795
|
+
requiredConstructorId: "nullIsAbsent"
|
|
54796
|
+
}
|
|
54797
|
+
},
|
|
54798
|
+
constructor: {
|
|
54799
|
+
authored: [
|
|
54800
|
+
"id",
|
|
54801
|
+
"classId",
|
|
54802
|
+
"argumentTypes",
|
|
54803
|
+
"code",
|
|
54804
|
+
"baseArguments",
|
|
54805
|
+
"baseInitializerFields",
|
|
54806
|
+
"docsText"
|
|
54807
|
+
],
|
|
54808
|
+
derived: [
|
|
54809
|
+
"action",
|
|
54810
|
+
"compiledBaseArguments",
|
|
54811
|
+
"compiledBaseInitializerFields"
|
|
54812
|
+
],
|
|
54813
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54814
|
+
// `code` is deliberately un-normalized. P49 §1.2 gives it three states —
|
|
54815
|
+
// a body, `""` for a declared-but-empty body, and `null` for a class
|
|
54816
|
+
// header that declares no `init` block — and the last two must stay
|
|
54817
|
+
// distinct in the canonical form or `neo pull` cannot tell
|
|
54818
|
+
// `class Foo { init { } }` from `class Foo()`. `nullIsAbsent` would keep
|
|
54819
|
+
// them distinct too, but it drops the field from the written record
|
|
54820
|
+
// (`composeDocumentRecord` writes the normalized authored half), which
|
|
54821
|
+
// would make the persisted shape disagree with the domain model's
|
|
54822
|
+
// required `code: string | null`. Leaving it plain means exactly two
|
|
54823
|
+
// spellings of an empty body reach storage, never three.
|
|
54824
|
+
normalization: {
|
|
54825
|
+
baseArguments: "nullOrEmptyArrayIsAbsent",
|
|
54826
|
+
baseInitializerFields: "nullOrEmptyArrayIsAbsent"
|
|
54827
|
+
}
|
|
54828
|
+
},
|
|
54829
|
+
variant: {
|
|
54830
|
+
// P67 §2.1. A variant record names its class, its scope, and the root row
|
|
54831
|
+
// of the value graph it owns. The delegates themselves are value rows, so
|
|
54832
|
+
// the compiled `action` IR the server derives lives there, not here —
|
|
54833
|
+
// which is why this record has no derived half at all.
|
|
54834
|
+
authored: ["id", "classId", "name", "folderId", "valueId"],
|
|
54835
|
+
derived: [],
|
|
54836
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54837
|
+
// `folderId` is always written: null is the class root folder, and a
|
|
54838
|
+
// missing field would make "root" and "corrupt" the same shape.
|
|
54839
|
+
normalization: { folderId: "missingIsNull" }
|
|
54840
|
+
},
|
|
54841
|
+
"variant-folder": {
|
|
54842
|
+
// P67 §3.3. A folder's whole content is its path, which is what lets a
|
|
54843
|
+
// rename be a one-record edit that orphans nothing.
|
|
54844
|
+
authored: ["id", "classId", "path", "binding"],
|
|
54845
|
+
derived: [],
|
|
54846
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54847
|
+
normalization: { binding: "nullIsAbsent" }
|
|
54848
|
+
},
|
|
54849
|
+
interface: {
|
|
54850
|
+
authored: [
|
|
54851
|
+
"id",
|
|
54852
|
+
"name",
|
|
54853
|
+
"docsText",
|
|
54854
|
+
"members",
|
|
54855
|
+
"memberKeyOrder",
|
|
54856
|
+
"extendsInterfaceIds",
|
|
54857
|
+
"system"
|
|
54858
|
+
],
|
|
54859
|
+
derived: [],
|
|
54860
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54861
|
+
normalization: {
|
|
54862
|
+
memberKeyOrder: "nullOrEmptyArrayIsAbsent",
|
|
54863
|
+
extendsInterfaceIds: "nullOrEmptyArrayIsAbsent",
|
|
54864
|
+
system: "nullIsAbsent"
|
|
54865
|
+
}
|
|
54866
|
+
},
|
|
54867
|
+
enum: {
|
|
54868
|
+
authored: [
|
|
54869
|
+
"id",
|
|
54870
|
+
"name",
|
|
54871
|
+
"docsText",
|
|
54872
|
+
"options",
|
|
54873
|
+
"optionKeyOrder",
|
|
54874
|
+
"system"
|
|
54875
|
+
],
|
|
54876
|
+
derived: [],
|
|
54877
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54878
|
+
normalization: { system: "nullIsAbsent" }
|
|
54879
|
+
},
|
|
54880
|
+
"unity-texture-template": {
|
|
54881
|
+
authored: [
|
|
54882
|
+
"id",
|
|
54883
|
+
"name",
|
|
54884
|
+
"type",
|
|
54885
|
+
"textureType",
|
|
54886
|
+
"textureShape",
|
|
54887
|
+
"sRGBTexture",
|
|
54888
|
+
"alphaSource",
|
|
54889
|
+
"alphaIsTransparency",
|
|
54890
|
+
"nonPowerOfTwoScale",
|
|
54891
|
+
"ignorePngGamma",
|
|
54892
|
+
"readWriteEnabled",
|
|
54893
|
+
"virtualTextureOnly",
|
|
54894
|
+
"generateMipMaps",
|
|
54895
|
+
"borderMipMaps",
|
|
54896
|
+
"mipMapFiltering",
|
|
54897
|
+
"mipMapsPreserveCoverage",
|
|
54898
|
+
"alphaCutoffValue",
|
|
54899
|
+
"fadeOutMipMaps",
|
|
54900
|
+
"mipMapFadeDistanceStart",
|
|
54901
|
+
"mipMapFadeDistanceEnd",
|
|
54902
|
+
"anisoLevel",
|
|
54903
|
+
"wrapMode",
|
|
54904
|
+
"wrapModeU",
|
|
54905
|
+
"wrapModeV",
|
|
54906
|
+
"filterMode",
|
|
54907
|
+
"maxTextureSize",
|
|
54908
|
+
"resizeAlgorithm",
|
|
54909
|
+
"textureCompression",
|
|
54910
|
+
"compressionQuality",
|
|
54911
|
+
"crunchedCompression",
|
|
54912
|
+
"platformSettings",
|
|
54913
|
+
"spriteSettings",
|
|
54914
|
+
"normalMapSettings",
|
|
54915
|
+
"cookieSettings",
|
|
54916
|
+
"singleChannelSettings",
|
|
54917
|
+
"swizzle"
|
|
54918
|
+
],
|
|
54919
|
+
derived: [],
|
|
54920
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54921
|
+
normalization: {
|
|
54922
|
+
wrapModeU: "missingIsNull",
|
|
54923
|
+
wrapModeV: "missingIsNull",
|
|
54924
|
+
spriteSettings: "missingIsNull",
|
|
54925
|
+
normalMapSettings: "missingIsNull",
|
|
54926
|
+
cookieSettings: "missingIsNull",
|
|
54927
|
+
singleChannelSettings: "missingIsNull",
|
|
54928
|
+
swizzle: "missingIsNull"
|
|
54929
|
+
}
|
|
54930
|
+
},
|
|
54931
|
+
"unity-audio-clip-template": {
|
|
54932
|
+
authored: [
|
|
54933
|
+
"id",
|
|
54934
|
+
"name",
|
|
54935
|
+
"forceToMono",
|
|
54936
|
+
"normalize",
|
|
54937
|
+
"loadInBackground",
|
|
54938
|
+
"ambisonic",
|
|
54939
|
+
"loadType",
|
|
54940
|
+
"compressionFormat",
|
|
54941
|
+
"quality",
|
|
54942
|
+
"sampleRateSetting",
|
|
54943
|
+
"overrideSampleRate",
|
|
54944
|
+
"preloadAudioData"
|
|
54945
|
+
],
|
|
54946
|
+
derived: [],
|
|
54947
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54948
|
+
normalization: { overrideSampleRate: "missingIsNull" }
|
|
54949
|
+
},
|
|
54950
|
+
"localization-config": {
|
|
54951
|
+
authored: [
|
|
54952
|
+
"id",
|
|
54953
|
+
"mainLocale",
|
|
54954
|
+
"supportedLocales",
|
|
54955
|
+
"sortedStatusIds",
|
|
54956
|
+
"mainLocaleDefaultStatusId"
|
|
54957
|
+
],
|
|
54958
|
+
derived: [],
|
|
54959
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54960
|
+
normalization: {}
|
|
54961
|
+
},
|
|
54962
|
+
"localization-status": {
|
|
54963
|
+
authored: [
|
|
54964
|
+
"id",
|
|
54965
|
+
"slug",
|
|
54966
|
+
"name",
|
|
54967
|
+
"description",
|
|
54968
|
+
"color",
|
|
54969
|
+
"emoji",
|
|
54970
|
+
"archivedAt",
|
|
54971
|
+
"transitionRules",
|
|
54972
|
+
"transitionToStatusIdOnEditText",
|
|
54973
|
+
"transitionToWhenSourceBecomesStatusId",
|
|
54974
|
+
"system"
|
|
54975
|
+
],
|
|
54976
|
+
derived: [],
|
|
54977
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
54978
|
+
normalization: {
|
|
54979
|
+
description: "missingIsNull",
|
|
54980
|
+
color: "missingIsNull",
|
|
54981
|
+
emoji: "missingIsNull",
|
|
54982
|
+
archivedAt: "missingIsNull",
|
|
54983
|
+
transitionRules: "missingIsNull",
|
|
54984
|
+
transitionToStatusIdOnEditText: "missingIsNull",
|
|
54985
|
+
transitionToWhenSourceBecomesStatusId: "missingIsNull",
|
|
54986
|
+
system: "nullIsAbsent"
|
|
54987
|
+
}
|
|
54988
|
+
},
|
|
54989
|
+
"internal-record-relation": {
|
|
54990
|
+
authored: [
|
|
54991
|
+
"id",
|
|
54992
|
+
"relationKind",
|
|
54993
|
+
"sourceRecordKind",
|
|
54994
|
+
"sourceRecordId",
|
|
54995
|
+
"targetRecordKind",
|
|
54996
|
+
"targetRecordId",
|
|
54997
|
+
"orderKey"
|
|
54998
|
+
],
|
|
54999
|
+
derived: [],
|
|
55000
|
+
volatile: ["projectId", "createdAt", "updatedAt"],
|
|
55001
|
+
normalization: { orderKey: "nullIsAbsent" }
|
|
55002
|
+
}
|
|
55003
|
+
},
|
|
55004
|
+
sdkDeclarations: {
|
|
55005
|
+
attributes: {
|
|
55006
|
+
enums: {
|
|
55007
|
+
NeoStorage: [
|
|
55008
|
+
"Inherit",
|
|
55009
|
+
"Immutable",
|
|
55010
|
+
"Save",
|
|
55011
|
+
"Session",
|
|
55012
|
+
"Writable",
|
|
55013
|
+
"User"
|
|
55014
|
+
],
|
|
55015
|
+
NeoAllowedStorage: [
|
|
55016
|
+
"Any",
|
|
55017
|
+
"Immutable",
|
|
55018
|
+
"Save",
|
|
55019
|
+
"Session",
|
|
55020
|
+
"Writable",
|
|
55021
|
+
"User"
|
|
55022
|
+
],
|
|
55023
|
+
NeoListKind: ["Ordered", "Unordered"],
|
|
55024
|
+
NeoDictionaryKeyKind: ["String", "Enum"],
|
|
55025
|
+
NeoClassVisibility: ["Visible", "Hidden"],
|
|
55026
|
+
NeoSubtreeDistribution: ["Sparse", "Packed"],
|
|
55027
|
+
NeoStringFormat: ["Localized", "Plain"],
|
|
55028
|
+
NeoMemberSearchBy: ["None", "MemberKey"],
|
|
55029
|
+
NeoListIndexKind: ["Bucket", "Unique"],
|
|
55030
|
+
NeoColumnVisibility: ["Visible", "Hidden"],
|
|
55031
|
+
NeoColumnPin: ["None", "Leading"],
|
|
55032
|
+
NeoColumnOverflow: ["Clip", "Wrap"],
|
|
55033
|
+
NeoFileKind: ["Sprite", "Audio"],
|
|
55034
|
+
NeoEffectKind: ["None", "Auto"]
|
|
55035
|
+
},
|
|
55036
|
+
markers: {
|
|
55037
|
+
NeoSchemaClassAttribute: {
|
|
55038
|
+
targets: ["Class"],
|
|
55039
|
+
constructor: [
|
|
55040
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55041
|
+
],
|
|
55042
|
+
properties: [
|
|
55043
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55044
|
+
{ type: "string?", name: "Name", access: "set" },
|
|
55045
|
+
{
|
|
55046
|
+
type: "NeoClassVisibility",
|
|
55047
|
+
name: "Visibility",
|
|
55048
|
+
access: "set",
|
|
55049
|
+
default: "NeoClassVisibility.Visible"
|
|
55050
|
+
},
|
|
55051
|
+
{
|
|
55052
|
+
type: "NeoAllowedStorage",
|
|
55053
|
+
name: "AllowedStorage",
|
|
55054
|
+
access: "set",
|
|
55055
|
+
default: "NeoAllowedStorage.Any"
|
|
55056
|
+
},
|
|
55057
|
+
{ type: "string[]?", name: "AllowedStorageKeys", access: "set" }
|
|
55058
|
+
]
|
|
55059
|
+
},
|
|
55060
|
+
NeoInterfaceAttribute: {
|
|
55061
|
+
targets: ["Interface"],
|
|
55062
|
+
constructor: [
|
|
55063
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55064
|
+
],
|
|
55065
|
+
properties: [
|
|
55066
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55067
|
+
{ type: "string?", name: "Name", access: "set" }
|
|
55068
|
+
]
|
|
55069
|
+
},
|
|
55070
|
+
NeoEnumAttribute: {
|
|
55071
|
+
targets: ["Enum"],
|
|
55072
|
+
constructor: [
|
|
55073
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55074
|
+
],
|
|
55075
|
+
properties: [
|
|
55076
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55077
|
+
{ type: "string?", name: "Name", access: "set" }
|
|
55078
|
+
]
|
|
55079
|
+
},
|
|
55080
|
+
NeoIdAttribute: {
|
|
55081
|
+
targets: ["GenericParameter"],
|
|
55082
|
+
constructor: [
|
|
55083
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55084
|
+
],
|
|
55085
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55086
|
+
},
|
|
55087
|
+
NeoMemberAttribute: {
|
|
55088
|
+
targets: ["Property", "Method"],
|
|
55089
|
+
constructor: [
|
|
55090
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55091
|
+
],
|
|
55092
|
+
properties: [
|
|
55093
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55094
|
+
{ type: "string?", name: "Key", access: "set" },
|
|
55095
|
+
{ type: "string?", name: "Name", access: "set" },
|
|
55096
|
+
{
|
|
55097
|
+
type: "NeoStorage",
|
|
55098
|
+
name: "Storage",
|
|
55099
|
+
access: "set",
|
|
55100
|
+
default: "NeoStorage.Inherit"
|
|
55101
|
+
},
|
|
55102
|
+
{ type: "string?", name: "StorageKey", access: "set" },
|
|
55103
|
+
{ type: "int", name: "Order", access: "set", default: "-1" }
|
|
55104
|
+
]
|
|
55105
|
+
},
|
|
55106
|
+
NeoSystemAttribute: {
|
|
55107
|
+
targets: ["Class", "Interface", "Enum", "Property", "Method"],
|
|
55108
|
+
constructor: [
|
|
55109
|
+
{
|
|
55110
|
+
type: "NeoSystemProtectionKind",
|
|
55111
|
+
name: "kind",
|
|
55112
|
+
assigns: "Kind"
|
|
55113
|
+
}
|
|
55114
|
+
],
|
|
55115
|
+
properties: [
|
|
55116
|
+
{
|
|
55117
|
+
type: "NeoSystemProtectionKind",
|
|
55118
|
+
name: "Kind",
|
|
55119
|
+
access: "get"
|
|
55120
|
+
},
|
|
55121
|
+
{
|
|
55122
|
+
type: "NeoWorldKind",
|
|
55123
|
+
name: "WorldKind",
|
|
55124
|
+
access: "set",
|
|
55125
|
+
default: "NeoWorldKind.None"
|
|
55126
|
+
}
|
|
55127
|
+
]
|
|
55128
|
+
},
|
|
55129
|
+
NeoTextAttribute: {
|
|
55130
|
+
targets: ["Property"],
|
|
55131
|
+
properties: [
|
|
55132
|
+
{
|
|
55133
|
+
type: "NeoStringFormat",
|
|
55134
|
+
name: "Format",
|
|
55135
|
+
access: "set",
|
|
55136
|
+
default: "NeoStringFormat.Localized"
|
|
55137
|
+
},
|
|
55138
|
+
{
|
|
55139
|
+
type: "NeoMemberSearchBy",
|
|
55140
|
+
name: "SearchBy",
|
|
55141
|
+
access: "set",
|
|
55142
|
+
default: "NeoMemberSearchBy.None"
|
|
55143
|
+
}
|
|
55144
|
+
]
|
|
55145
|
+
},
|
|
55146
|
+
NeoNullAttribute: { targets: ["Property"], properties: [] },
|
|
55147
|
+
NeoNumberAttribute: {
|
|
55148
|
+
targets: ["Property"],
|
|
55149
|
+
properties: [
|
|
55150
|
+
{
|
|
55151
|
+
type: "double",
|
|
55152
|
+
name: "Min",
|
|
55153
|
+
access: "set",
|
|
55154
|
+
default: "double.NaN"
|
|
55155
|
+
},
|
|
55156
|
+
{
|
|
55157
|
+
type: "double",
|
|
55158
|
+
name: "Max",
|
|
55159
|
+
access: "set",
|
|
55160
|
+
default: "double.NaN"
|
|
55161
|
+
},
|
|
55162
|
+
{ type: "string?", name: "DecimalMin", access: "set" },
|
|
55163
|
+
{ type: "string?", name: "DecimalMax", access: "set" },
|
|
55164
|
+
{
|
|
55165
|
+
type: "int",
|
|
55166
|
+
name: "DecimalPoints",
|
|
55167
|
+
access: "set",
|
|
55168
|
+
default: "-1"
|
|
55169
|
+
}
|
|
55170
|
+
]
|
|
55171
|
+
},
|
|
55172
|
+
NeoDictionaryAttribute: {
|
|
55173
|
+
targets: ["Property"],
|
|
55174
|
+
properties: [
|
|
55175
|
+
{
|
|
55176
|
+
type: "NeoDictionaryKeyKind",
|
|
55177
|
+
name: "KeyKind",
|
|
55178
|
+
access: "set",
|
|
55179
|
+
default: "NeoDictionaryKeyKind.String"
|
|
55180
|
+
},
|
|
55181
|
+
{ type: "Type?", name: "KeyEnum", access: "set" }
|
|
55182
|
+
]
|
|
55183
|
+
},
|
|
55184
|
+
NeoListAttribute: {
|
|
55185
|
+
targets: ["Property"],
|
|
55186
|
+
properties: [
|
|
55187
|
+
{
|
|
55188
|
+
type: "NeoListKind",
|
|
55189
|
+
name: "Kind",
|
|
55190
|
+
access: "set",
|
|
55191
|
+
default: "NeoListKind.Ordered"
|
|
55192
|
+
}
|
|
55193
|
+
]
|
|
55194
|
+
},
|
|
55195
|
+
NeoEntriesAttribute: {
|
|
55196
|
+
targets: ["Class", "Property"],
|
|
55197
|
+
constructor: [
|
|
55198
|
+
{ type: "string", name: "settings", assigns: "Settings" }
|
|
55199
|
+
],
|
|
55200
|
+
properties: [{ type: "string", name: "Settings", access: "get" }]
|
|
55201
|
+
},
|
|
55202
|
+
NeoSchemaOrderAttribute: {
|
|
55203
|
+
targets: ["Class", "Property"],
|
|
55204
|
+
constructor: [
|
|
55205
|
+
{
|
|
55206
|
+
type: "string[]",
|
|
55207
|
+
name: "members",
|
|
55208
|
+
modifier: "params",
|
|
55209
|
+
assigns: "Members"
|
|
55210
|
+
}
|
|
55211
|
+
],
|
|
55212
|
+
properties: [{ type: "string[]", name: "Members", access: "get" }]
|
|
55213
|
+
},
|
|
55214
|
+
NeoIndexAttribute: {
|
|
55215
|
+
targets: ["Property"],
|
|
55216
|
+
allowMultiple: true,
|
|
55217
|
+
constructor: [{ type: "string", name: "member", assigns: "Member" }],
|
|
55218
|
+
properties: [
|
|
55219
|
+
{ type: "string", name: "Member", access: "get" },
|
|
55220
|
+
{
|
|
55221
|
+
type: "NeoListIndexKind",
|
|
55222
|
+
name: "Kind",
|
|
55223
|
+
access: "set",
|
|
55224
|
+
default: "NeoListIndexKind.Bucket"
|
|
55225
|
+
}
|
|
55226
|
+
]
|
|
55227
|
+
},
|
|
55228
|
+
NeoColumnAttribute: {
|
|
55229
|
+
targets: ["Property"],
|
|
55230
|
+
allowMultiple: true,
|
|
55231
|
+
constructor: [{ type: "string", name: "member", assigns: "Member" }],
|
|
55232
|
+
properties: [
|
|
55233
|
+
{ type: "string", name: "Member", access: "get" },
|
|
55234
|
+
{ type: "int", name: "Width", access: "set", default: "-1" },
|
|
55235
|
+
{
|
|
55236
|
+
type: "NeoColumnVisibility",
|
|
55237
|
+
name: "Visibility",
|
|
55238
|
+
access: "set",
|
|
55239
|
+
default: "NeoColumnVisibility.Visible"
|
|
55240
|
+
},
|
|
55241
|
+
{
|
|
55242
|
+
type: "NeoColumnPin",
|
|
55243
|
+
name: "Pin",
|
|
55244
|
+
access: "set",
|
|
55245
|
+
default: "NeoColumnPin.None"
|
|
55246
|
+
},
|
|
55247
|
+
{
|
|
55248
|
+
type: "NeoColumnOverflow",
|
|
55249
|
+
name: "Overflow",
|
|
55250
|
+
access: "set",
|
|
55251
|
+
default: "NeoColumnOverflow.Clip"
|
|
55252
|
+
}
|
|
55253
|
+
]
|
|
55254
|
+
},
|
|
55255
|
+
NeoLookupAttribute: {
|
|
55256
|
+
targets: ["Property"],
|
|
55257
|
+
constructor: [
|
|
55258
|
+
{
|
|
55259
|
+
type: "string",
|
|
55260
|
+
name: "collectionMember",
|
|
55261
|
+
assigns: "CollectionMember"
|
|
55262
|
+
}
|
|
55263
|
+
],
|
|
55264
|
+
properties: [
|
|
55265
|
+
{ type: "string", name: "CollectionMember", access: "get" },
|
|
55266
|
+
{ type: "string?", name: "CollectionValueMember", access: "set" }
|
|
55267
|
+
]
|
|
55268
|
+
},
|
|
55269
|
+
NeoDialogueAttribute: {
|
|
55270
|
+
targets: ["Property"],
|
|
55271
|
+
properties: [{ type: "string?", name: "Group", access: "set" }]
|
|
55272
|
+
},
|
|
55273
|
+
NeoFileAttribute: {
|
|
55274
|
+
targets: ["Property"],
|
|
55275
|
+
constructor: [{ type: "NeoFileKind", name: "kind", assigns: "Kind" }],
|
|
55276
|
+
properties: [
|
|
55277
|
+
{ type: "NeoFileKind", name: "Kind", access: "get" },
|
|
55278
|
+
{ type: "Type?", name: "Template", access: "set" }
|
|
55279
|
+
]
|
|
55280
|
+
},
|
|
55281
|
+
NeoComputedAttribute: { targets: ["Property"], properties: [] },
|
|
55282
|
+
NeoScriptAttribute: { targets: ["Method"], properties: [] },
|
|
55283
|
+
NeoFunctionAttribute: { targets: ["Method"], properties: [] },
|
|
55284
|
+
NeoEnumOptionAttribute: {
|
|
55285
|
+
targets: ["Field"],
|
|
55286
|
+
constructor: [
|
|
55287
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55288
|
+
],
|
|
55289
|
+
properties: [
|
|
55290
|
+
{ type: "string?", name: "Id", access: "get" },
|
|
55291
|
+
{ type: "string?", name: "Key", access: "set" },
|
|
55292
|
+
{ type: "string?", name: "Text", access: "set" }
|
|
55293
|
+
]
|
|
55294
|
+
},
|
|
55295
|
+
NeoTextureTemplateAttribute: {
|
|
55296
|
+
targets: ["Class", "Property"],
|
|
55297
|
+
constructor: [
|
|
55298
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55299
|
+
],
|
|
55300
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55301
|
+
},
|
|
55302
|
+
NeoAudioTemplateAttribute: {
|
|
55303
|
+
targets: ["Class", "Property"],
|
|
55304
|
+
constructor: [
|
|
55305
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55306
|
+
],
|
|
55307
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55308
|
+
},
|
|
55309
|
+
NeoLocalizationAttribute: {
|
|
55310
|
+
targets: ["Class", "Property"],
|
|
55311
|
+
constructor: [
|
|
55312
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55313
|
+
],
|
|
55314
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55315
|
+
},
|
|
55316
|
+
NeoLocalizationStatusAttribute: {
|
|
55317
|
+
targets: ["Class", "Property"],
|
|
55318
|
+
constructor: [
|
|
55319
|
+
{ type: "string?", name: "id", default: "null", assigns: "Id" }
|
|
55320
|
+
],
|
|
55321
|
+
properties: [{ type: "string?", name: "Id", access: "get" }]
|
|
55322
|
+
},
|
|
55323
|
+
NeoRegistryAttribute: { targets: ["Class"], properties: [] },
|
|
55324
|
+
NeoRelationConfigurationAttribute: {
|
|
55325
|
+
targets: ["Class"],
|
|
55326
|
+
properties: []
|
|
55327
|
+
}
|
|
55328
|
+
}
|
|
55329
|
+
},
|
|
55330
|
+
settings: {
|
|
55331
|
+
enums: {
|
|
55332
|
+
NeoProjectRecordKind: [
|
|
55333
|
+
"Project",
|
|
55334
|
+
"Member",
|
|
55335
|
+
"Value",
|
|
55336
|
+
"Class",
|
|
55337
|
+
"InternalRecordRelation",
|
|
55338
|
+
"Enum",
|
|
55339
|
+
"Interface",
|
|
55340
|
+
"Dialogue",
|
|
55341
|
+
"DialogueNode",
|
|
55342
|
+
"DialogueGroup",
|
|
55343
|
+
"PriorityGroup",
|
|
55344
|
+
"ProjectFile",
|
|
55345
|
+
"UnityTextureTemplate",
|
|
55346
|
+
"UnityAudioClipTemplate",
|
|
55347
|
+
"LocalizationConfig",
|
|
55348
|
+
"LocalizationStatus",
|
|
55349
|
+
"LocalizedText",
|
|
55350
|
+
"Migration"
|
|
55351
|
+
],
|
|
55352
|
+
NeoEntryKind: [
|
|
55353
|
+
"Null",
|
|
55354
|
+
"Boolean",
|
|
55355
|
+
"Integer",
|
|
55356
|
+
"String",
|
|
55357
|
+
"Float",
|
|
55358
|
+
"Decimal",
|
|
55359
|
+
"Vector2",
|
|
55360
|
+
"Vector2Int",
|
|
55361
|
+
"Vector3",
|
|
55362
|
+
"Vector3Int",
|
|
55363
|
+
"Color",
|
|
55364
|
+
"Dictionary",
|
|
55365
|
+
"List",
|
|
55366
|
+
"Class",
|
|
55367
|
+
"Enum",
|
|
55368
|
+
"Lookup",
|
|
55369
|
+
"DialogueLookup",
|
|
55370
|
+
"Sprite",
|
|
55371
|
+
"Audio",
|
|
55372
|
+
"Generic"
|
|
55373
|
+
],
|
|
55374
|
+
NeoSystemProtectionKind: [
|
|
55375
|
+
"WorldAuthoring",
|
|
55376
|
+
"DialogueMemorySchema",
|
|
55377
|
+
"DialogueMemoryContainer",
|
|
55378
|
+
"DialoguePriorityDefault",
|
|
55379
|
+
"PolicyImmutable",
|
|
55380
|
+
"PolicyDeleteBlocked",
|
|
55381
|
+
"ScriptRuntime"
|
|
55382
|
+
],
|
|
55383
|
+
NeoMemberRequirement: ["Optional", "Required"],
|
|
55384
|
+
NeoMemberMutability: ["Mutable", "ReadOnly"],
|
|
55385
|
+
NeoMemberModifier: ["Virtual", "Sealed", "Abstract", "Static"],
|
|
55386
|
+
NeoMemberAccess: ["Public", "Protected", "Private"],
|
|
55387
|
+
NeoMemberSelection: ["Single", "Multi"],
|
|
55388
|
+
NeoFunctionDispatch: ["Synchronous", "Asynchronous"],
|
|
55389
|
+
NeoMemberPayload: ["Full", "Partial"],
|
|
55390
|
+
NeoFunctionLogicMode: ["UI"],
|
|
55391
|
+
NeoWorldKind: [
|
|
55392
|
+
"CellPattern",
|
|
55393
|
+
"None",
|
|
55394
|
+
"TileGrid",
|
|
55395
|
+
"TileLayer",
|
|
55396
|
+
"ObjectLayer",
|
|
55397
|
+
"Tile",
|
|
55398
|
+
"ObjectBase",
|
|
55399
|
+
"LayerGroupBase",
|
|
55400
|
+
"SpriteObject",
|
|
55401
|
+
"Object",
|
|
55402
|
+
"TileLayerLink",
|
|
55403
|
+
"ObjectLayerLink",
|
|
55404
|
+
"PlacementTile",
|
|
55405
|
+
"ObjectCollider",
|
|
55406
|
+
"SortingGroup",
|
|
55407
|
+
"SortingLayer",
|
|
55408
|
+
"SmartTile",
|
|
55409
|
+
"SmartTileRule",
|
|
55410
|
+
"SmartTileNeighbor",
|
|
55411
|
+
"AnimationClip",
|
|
55412
|
+
"AnimationFrame",
|
|
55413
|
+
"AnimationChildOverride",
|
|
55414
|
+
"AnimationFrameBase",
|
|
55415
|
+
"AnimationSegmentFrame",
|
|
55416
|
+
"AnimationSegment",
|
|
55417
|
+
"SpriteAnimationSegment",
|
|
55418
|
+
"AnimationTrack",
|
|
55419
|
+
"AnimationChildTrack",
|
|
55420
|
+
"AnimationSegmentTrack",
|
|
55421
|
+
"SpriteAnimationSegmentTrack",
|
|
55422
|
+
"Variant",
|
|
55423
|
+
"VariantFolder",
|
|
55424
|
+
"LookupVariant",
|
|
55425
|
+
"LookupVariantFolder"
|
|
55426
|
+
],
|
|
55427
|
+
NeoTextureType: [
|
|
55428
|
+
"Default",
|
|
55429
|
+
"NormalMap",
|
|
55430
|
+
"EditorGuiAndLegacyGui",
|
|
55431
|
+
"Sprite",
|
|
55432
|
+
"Cursor",
|
|
55433
|
+
"Cookie",
|
|
55434
|
+
"Lightmap",
|
|
55435
|
+
"SingleChannel"
|
|
55436
|
+
],
|
|
55437
|
+
NeoSpriteMode: ["Single", "Multiple", "Polygon"],
|
|
55438
|
+
NeoSpriteMeshType: ["FullRect", "Tight"],
|
|
55439
|
+
NeoSpriteAlignment: [
|
|
55440
|
+
"Center",
|
|
55441
|
+
"TopLeft",
|
|
55442
|
+
"TopCenter",
|
|
55443
|
+
"TopRight",
|
|
55444
|
+
"LeftCenter",
|
|
55445
|
+
"RightCenter",
|
|
55446
|
+
"BottomLeft",
|
|
55447
|
+
"BottomCenter",
|
|
55448
|
+
"BottomRight",
|
|
55449
|
+
"Custom"
|
|
55450
|
+
],
|
|
55451
|
+
NeoTextureWrapMode: [
|
|
55452
|
+
"Repeat",
|
|
55453
|
+
"Clamp",
|
|
55454
|
+
"Mirror",
|
|
55455
|
+
"MirrorOnce",
|
|
55456
|
+
"PerAxis"
|
|
55457
|
+
],
|
|
55458
|
+
NeoTextureFilterMode: ["Point", "Bilinear", "Trilinear"],
|
|
55459
|
+
NeoTextureCompression: [
|
|
55460
|
+
"None",
|
|
55461
|
+
"LowQuality",
|
|
55462
|
+
"NormalQuality",
|
|
55463
|
+
"HighQuality"
|
|
55464
|
+
],
|
|
55465
|
+
NeoTextureFormat: [
|
|
55466
|
+
"Automatic",
|
|
55467
|
+
"RgbaCompressedDxt5Bc3",
|
|
55468
|
+
"RgbCompressedDxt1Bc1",
|
|
55469
|
+
"Rgba32Bit",
|
|
55470
|
+
"Rgb24Bit"
|
|
55471
|
+
],
|
|
55472
|
+
NeoAlphaSource: ["None", "InputTextureAlpha", "FromGrayScale"],
|
|
55473
|
+
NeoNonPowerOfTwoScale: ["None", "ToNearest", "ToLarger", "ToSmaller"],
|
|
55474
|
+
NeoNormalMapFiltering: ["Sharp", "Smooth"],
|
|
55475
|
+
NeoCookieLightType: ["Spot", "Directional", "Point"],
|
|
55476
|
+
NeoSingleChannelComponent: ["Alpha", "Red"],
|
|
55477
|
+
NeoTextureSwizzle: ["Red", "Green", "Blue", "Alpha", "Zero", "One"],
|
|
55478
|
+
NeoMipMapFiltering: ["Box", "Kaiser"],
|
|
55479
|
+
NeoTextureResizeAlgorithm: ["Mitchell", "Bilinear"],
|
|
55480
|
+
NeoAudioLoadType: [
|
|
55481
|
+
"DecompressOnLoad",
|
|
55482
|
+
"CompressedInMemory",
|
|
55483
|
+
"Streaming"
|
|
55484
|
+
],
|
|
55485
|
+
NeoAudioCompressionFormat: ["Pcm", "Adpcm", "Vorbis"],
|
|
55486
|
+
NeoAudioSampleRate: [
|
|
55487
|
+
"PreserveSampleRate",
|
|
55488
|
+
"OptimizeSampleRate",
|
|
55489
|
+
"OverrideSampleRate"
|
|
55490
|
+
]
|
|
55491
|
+
},
|
|
55492
|
+
classes: {
|
|
55493
|
+
NeoClassRelationDefinition: {
|
|
55494
|
+
constructors: [
|
|
55495
|
+
[{ type: "Type", name: "target", assigns: "Target" }],
|
|
55496
|
+
[
|
|
55497
|
+
{ type: "string?", name: "id", assigns: "Id" },
|
|
55498
|
+
{ type: "Type", name: "target", assigns: "Target" }
|
|
55499
|
+
]
|
|
55500
|
+
],
|
|
55501
|
+
properties: [
|
|
55502
|
+
{ type: "string?", name: "Id" },
|
|
55503
|
+
{ type: "Type", name: "Target", default: "typeof(object)" }
|
|
55504
|
+
]
|
|
55505
|
+
},
|
|
55506
|
+
NeoGridRelationSettings: [
|
|
55507
|
+
{
|
|
55508
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55509
|
+
name: "TileImports",
|
|
55510
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55511
|
+
},
|
|
55512
|
+
{
|
|
55513
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55514
|
+
name: "ObjectImports",
|
|
55515
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55516
|
+
},
|
|
55517
|
+
{
|
|
55518
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55519
|
+
name: "TileLayers",
|
|
55520
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55521
|
+
},
|
|
55522
|
+
{
|
|
55523
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55524
|
+
name: "ObjectLayers",
|
|
55525
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55526
|
+
}
|
|
55527
|
+
],
|
|
55528
|
+
NeoTileRelationSettings: [
|
|
55529
|
+
{
|
|
55530
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55531
|
+
name: "CompatibleLayers",
|
|
55532
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55533
|
+
},
|
|
55534
|
+
{ type: "NeoClassRelationDefinition?", name: "DefaultLayer" }
|
|
55535
|
+
],
|
|
55536
|
+
NeoObjectRelationSettings: [
|
|
55537
|
+
{
|
|
55538
|
+
type: "List<NeoClassRelationDefinition>",
|
|
55539
|
+
name: "CompatibleLayers",
|
|
55540
|
+
default: "new List<NeoClassRelationDefinition>()"
|
|
55541
|
+
},
|
|
55542
|
+
{ type: "NeoClassRelationDefinition?", name: "DefaultLayer" }
|
|
55543
|
+
],
|
|
55544
|
+
NeoTileLayerLinkRelationSettings: [
|
|
55545
|
+
{ type: "NeoClassRelationDefinition?", name: "TargetLayer" }
|
|
55546
|
+
],
|
|
55547
|
+
NeoObjectLayerLinkRelationSettings: [
|
|
55548
|
+
{ type: "NeoClassRelationDefinition?", name: "TargetLayer" }
|
|
55549
|
+
],
|
|
55550
|
+
NeoEntrySettings: [
|
|
55551
|
+
{ type: "string?", name: "Id" },
|
|
55552
|
+
{ type: "string", name: "Path", default: "string.Empty" },
|
|
55553
|
+
{ type: "NeoEntryKind", name: "Kind" },
|
|
55554
|
+
{
|
|
55555
|
+
type: "NeoMemberRequirement",
|
|
55556
|
+
name: "Requirement",
|
|
55557
|
+
default: "NeoMemberRequirement.Optional"
|
|
55558
|
+
},
|
|
55559
|
+
{
|
|
55560
|
+
type: "NeoMemberMutability",
|
|
55561
|
+
name: "Mutability",
|
|
55562
|
+
default: "NeoMemberMutability.Mutable"
|
|
55563
|
+
},
|
|
55564
|
+
{
|
|
55565
|
+
type: "NeoMemberModifier",
|
|
55566
|
+
name: "Modifier",
|
|
55567
|
+
default: "NeoMemberModifier.Virtual"
|
|
55568
|
+
},
|
|
55569
|
+
{
|
|
55570
|
+
type: "NeoMemberAccess",
|
|
55571
|
+
name: "Access",
|
|
55572
|
+
default: "NeoMemberAccess.Public"
|
|
55573
|
+
},
|
|
55574
|
+
{ type: "NeoMemberReference?", name: "Overrides" },
|
|
55575
|
+
{
|
|
55576
|
+
type: "NeoStorage",
|
|
55577
|
+
name: "Storage",
|
|
55578
|
+
default: "NeoStorage.Inherit"
|
|
55579
|
+
},
|
|
55580
|
+
{ type: "string?", name: "StorageKey" },
|
|
55581
|
+
{ type: "NeoValueSettings?", name: "Default" },
|
|
55582
|
+
{ type: "NeoTextSettings?", name: "Text" },
|
|
55583
|
+
{ type: "NeoNumberSettings?", name: "Number" },
|
|
55584
|
+
{ type: "NeoDictionarySettings?", name: "Dictionary" },
|
|
55585
|
+
{ type: "NeoListSettings?", name: "List" },
|
|
55586
|
+
{ type: "NeoLookupSettings?", name: "Lookup" },
|
|
55587
|
+
{ type: "NeoDialogueSettings?", name: "Dialogue" },
|
|
55588
|
+
{ type: "NeoFileSettings?", name: "File" },
|
|
55589
|
+
{ type: "NeoClassSettings?", name: "Class" },
|
|
55590
|
+
{ type: "NeoEnumSettings?", name: "Enum" },
|
|
55591
|
+
{ type: "NeoGenericSettings?", name: "Generic" },
|
|
55592
|
+
{ type: "NeoSystemSettings?", name: "System" },
|
|
55593
|
+
{
|
|
55594
|
+
type: "IReadOnlyList<NeoEntrySettings>",
|
|
55595
|
+
name: "Entries",
|
|
55596
|
+
default: "new List<NeoEntrySettings>()"
|
|
55597
|
+
}
|
|
55598
|
+
],
|
|
55599
|
+
NeoValueSettings: [
|
|
55600
|
+
{ type: "bool", name: "IsNull" },
|
|
55601
|
+
{ type: "Type?", name: "ConcreteType" },
|
|
55602
|
+
{ type: "bool?", name: "Boolean" },
|
|
55603
|
+
{ type: "long?", name: "Integer" },
|
|
55604
|
+
{ type: "double?", name: "Number" },
|
|
55605
|
+
{ type: "string?", name: "Text" },
|
|
55606
|
+
{ type: "decimal?", name: "Decimal" },
|
|
55607
|
+
{ type: "NeoVector2?", name: "Vector2" },
|
|
55608
|
+
{ type: "NeoVector2Int?", name: "Vector2Int" },
|
|
55609
|
+
{ type: "NeoVector3?", name: "Vector3" },
|
|
55610
|
+
{ type: "NeoVector3Int?", name: "Vector3Int" },
|
|
55611
|
+
{ type: "NeoColor?", name: "Color" },
|
|
55612
|
+
{ type: "NeoSprite?", name: "Sprite" },
|
|
55613
|
+
{ type: "NeoAudio?", name: "Audio" },
|
|
55614
|
+
{ type: "NeoDialogue?", name: "Dialogue" },
|
|
55615
|
+
{ type: "NeoReferenceSettings?", name: "Reference" },
|
|
55616
|
+
{ type: "string?", name: "EnumOption" },
|
|
55617
|
+
{ type: "IReadOnlyList<NeoValueSettings>?", name: "List" },
|
|
55618
|
+
{
|
|
55619
|
+
type: "IReadOnlyDictionary<string, NeoValueSettings>?",
|
|
55620
|
+
name: "Dictionary"
|
|
55621
|
+
},
|
|
55622
|
+
{
|
|
55623
|
+
type: "IReadOnlyDictionary<string, NeoValueSettings>?",
|
|
55624
|
+
name: "Object"
|
|
55625
|
+
}
|
|
55626
|
+
],
|
|
55627
|
+
NeoReferenceSettings: [
|
|
55628
|
+
{ type: "Type", name: "Type", default: "typeof(object)" },
|
|
55629
|
+
{ type: "string", name: "Id", default: "string.Empty" }
|
|
55630
|
+
],
|
|
55631
|
+
NeoTextSettings: [
|
|
55632
|
+
{
|
|
55633
|
+
type: "NeoStringFormat",
|
|
55634
|
+
name: "Format",
|
|
55635
|
+
default: "NeoStringFormat.Localized"
|
|
55636
|
+
},
|
|
55637
|
+
{
|
|
55638
|
+
type: "NeoMemberSearchBy",
|
|
55639
|
+
name: "SearchBy",
|
|
55640
|
+
default: "NeoMemberSearchBy.None"
|
|
55641
|
+
}
|
|
55642
|
+
],
|
|
55643
|
+
NeoNumberSettings: [
|
|
55644
|
+
{ type: "double?", name: "Min" },
|
|
55645
|
+
{ type: "double?", name: "Max" },
|
|
55646
|
+
{ type: "string?", name: "DecimalMin" },
|
|
55647
|
+
{ type: "string?", name: "DecimalMax" },
|
|
55648
|
+
{ type: "int?", name: "DecimalPoints" }
|
|
55649
|
+
],
|
|
55650
|
+
NeoFunctionSettings: [{ type: "NeoFunctionLogicMode", name: "Logic" }],
|
|
55651
|
+
NeoDictionarySettings: [
|
|
55652
|
+
{ type: "NeoDictionaryKeyKind", name: "KeyKind" },
|
|
55653
|
+
{ type: "Type?", name: "KeyEnum" }
|
|
55654
|
+
],
|
|
55655
|
+
NeoClassSettings: [
|
|
55656
|
+
{ type: "Type", name: "Type", default: "typeof(object)" },
|
|
55657
|
+
{ type: "IReadOnlyList<string>?", name: "SchemaOrder" },
|
|
55658
|
+
{
|
|
55659
|
+
type: "IReadOnlyDictionary<string, NeoGenericBindingSettings>?",
|
|
55660
|
+
name: "TypeArguments"
|
|
55661
|
+
}
|
|
55662
|
+
],
|
|
55663
|
+
NeoGenericBindingSettings: [
|
|
55664
|
+
{ type: "string", name: "Parameter", default: "string.Empty" },
|
|
55665
|
+
{ type: "string?", name: "GenericParameter" },
|
|
55666
|
+
{ type: "NeoEntrySettings?", name: "Member" }
|
|
55667
|
+
],
|
|
55668
|
+
NeoEnumSettings: [
|
|
55669
|
+
{ type: "Type", name: "Enum", default: "typeof(object)" },
|
|
55670
|
+
{
|
|
55671
|
+
type: "NeoMemberSelection",
|
|
55672
|
+
name: "Selection",
|
|
55673
|
+
default: "NeoMemberSelection.Single"
|
|
55674
|
+
}
|
|
55675
|
+
],
|
|
55676
|
+
NeoGenericSettings: [
|
|
55677
|
+
{ type: "string", name: "Parameter", default: "string.Empty" }
|
|
55678
|
+
],
|
|
55679
|
+
NeoLookupSettings: [
|
|
55680
|
+
{ type: "string", name: "CollectionMember", default: "string.Empty" },
|
|
55681
|
+
{ type: "string?", name: "CollectionValueMember" },
|
|
55682
|
+
{
|
|
55683
|
+
type: "NeoMemberSelection",
|
|
55684
|
+
name: "Selection",
|
|
55685
|
+
default: "NeoMemberSelection.Single"
|
|
55686
|
+
}
|
|
55687
|
+
],
|
|
55688
|
+
/**
|
|
55689
|
+
* Class-level settings. `TargetMember` names the member of another
|
|
55690
|
+
* class this class writes — schema metadata rather than row data, the
|
|
55691
|
+
* same shape `NeoLookupSettings.CollectionMember` uses to name a
|
|
55692
|
+
* collection.
|
|
55693
|
+
*/
|
|
55694
|
+
NeoClassSchemaSettings: [
|
|
55695
|
+
{ type: "string", name: "TargetMember", default: "string.Empty" }
|
|
55696
|
+
],
|
|
55697
|
+
NeoDialogueSettings: [
|
|
55698
|
+
{ type: "string?", name: "Group" },
|
|
55699
|
+
{
|
|
55700
|
+
type: "NeoMemberSelection",
|
|
55701
|
+
name: "Selection",
|
|
55702
|
+
default: "NeoMemberSelection.Single"
|
|
55703
|
+
}
|
|
55704
|
+
],
|
|
55705
|
+
NeoFileSettings: [
|
|
55706
|
+
{ type: "NeoFileKind", name: "Kind" },
|
|
55707
|
+
{ type: "Type?", name: "Template" }
|
|
55708
|
+
],
|
|
55709
|
+
NeoSystemSettings: [
|
|
55710
|
+
{
|
|
55711
|
+
type: "NeoSystemProtectionKind",
|
|
55712
|
+
name: "Kind",
|
|
55713
|
+
default: "NeoSystemProtectionKind.WorldAuthoring"
|
|
55714
|
+
},
|
|
55715
|
+
{ type: "NeoWorldKind?", name: "WorldKind" }
|
|
55716
|
+
],
|
|
55717
|
+
NeoListSettings: [
|
|
55718
|
+
{ type: "NeoListKind", name: "Kind", default: "NeoListKind.Ordered" },
|
|
55719
|
+
{
|
|
55720
|
+
type: "IReadOnlyList<NeoListIndexSettings>",
|
|
55721
|
+
name: "Indexes",
|
|
55722
|
+
default: "new List<NeoListIndexSettings>()"
|
|
55723
|
+
},
|
|
55724
|
+
{
|
|
55725
|
+
type: "IReadOnlyList<NeoListColumnSettings>",
|
|
55726
|
+
name: "Columns",
|
|
55727
|
+
default: "new List<NeoListColumnSettings>()"
|
|
55728
|
+
}
|
|
55729
|
+
],
|
|
55730
|
+
NeoListIndexSettings: [
|
|
55731
|
+
{ type: "string", name: "Member", default: "string.Empty" },
|
|
55732
|
+
{
|
|
55733
|
+
type: "NeoListIndexKind",
|
|
55734
|
+
name: "Kind",
|
|
55735
|
+
default: "NeoListIndexKind.Bucket"
|
|
55736
|
+
}
|
|
55737
|
+
],
|
|
55738
|
+
NeoListColumnSettings: [
|
|
55739
|
+
{ type: "string", name: "Member", default: "string.Empty" },
|
|
55740
|
+
{ type: "int?", name: "Width" },
|
|
55741
|
+
{
|
|
55742
|
+
type: "NeoColumnVisibility",
|
|
55743
|
+
name: "Visibility",
|
|
55744
|
+
default: "NeoColumnVisibility.Visible"
|
|
55745
|
+
},
|
|
55746
|
+
{
|
|
55747
|
+
type: "NeoColumnPin",
|
|
55748
|
+
name: "Pin",
|
|
55749
|
+
default: "NeoColumnPin.None"
|
|
55750
|
+
},
|
|
55751
|
+
{
|
|
55752
|
+
type: "NeoColumnOverflow",
|
|
55753
|
+
name: "Overflow",
|
|
55754
|
+
default: "NeoColumnOverflow.Clip"
|
|
55755
|
+
}
|
|
55756
|
+
],
|
|
55757
|
+
NeoTextureTemplateSettings: [
|
|
55758
|
+
{ type: "string", name: "Name", default: "string.Empty" },
|
|
55759
|
+
{
|
|
55760
|
+
type: "NeoTextureType",
|
|
55761
|
+
name: "TextureType",
|
|
55762
|
+
default: "NeoTextureType.Sprite"
|
|
55763
|
+
},
|
|
55764
|
+
{ type: "bool", name: "SrgbTexture", default: "true" },
|
|
55765
|
+
{
|
|
55766
|
+
type: "NeoAlphaSource",
|
|
55767
|
+
name: "AlphaSource",
|
|
55768
|
+
default: "NeoAlphaSource.InputTextureAlpha"
|
|
55769
|
+
},
|
|
55770
|
+
{ type: "bool", name: "AlphaIsTransparency", default: "true" },
|
|
55771
|
+
{ type: "NeoNonPowerOfTwoScale", name: "NonPowerOfTwoScale" },
|
|
55772
|
+
{ type: "bool", name: "IgnorePngGamma" },
|
|
55773
|
+
{ type: "bool", name: "ReadWriteEnabled" },
|
|
55774
|
+
{ type: "bool", name: "VirtualTextureOnly" },
|
|
55775
|
+
{ type: "bool", name: "GenerateMipMaps" },
|
|
55776
|
+
{ type: "bool", name: "BorderMipMaps" },
|
|
55777
|
+
{ type: "NeoMipMapFiltering", name: "MipMapFiltering" },
|
|
55778
|
+
{ type: "bool", name: "MipMapsPreserveCoverage" },
|
|
55779
|
+
{ type: "double", name: "AlphaCutoffValue", default: "0.5" },
|
|
55780
|
+
{ type: "bool", name: "FadeOutMipMaps" },
|
|
55781
|
+
{ type: "int", name: "MipMapFadeDistanceStart", default: "1" },
|
|
55782
|
+
{ type: "int", name: "MipMapFadeDistanceEnd", default: "3" },
|
|
55783
|
+
{ type: "int", name: "AnisoLevel", default: "1" },
|
|
55784
|
+
{
|
|
55785
|
+
type: "NeoTextureWrapMode",
|
|
55786
|
+
name: "WrapMode",
|
|
55787
|
+
default: "NeoTextureWrapMode.Clamp"
|
|
55788
|
+
},
|
|
55789
|
+
{ type: "NeoTextureWrapMode?", name: "WrapModeU" },
|
|
55790
|
+
{ type: "NeoTextureWrapMode?", name: "WrapModeV" },
|
|
55791
|
+
{
|
|
55792
|
+
type: "NeoTextureFilterMode",
|
|
55793
|
+
name: "FilterMode",
|
|
55794
|
+
default: "NeoTextureFilterMode.Point"
|
|
55795
|
+
},
|
|
55796
|
+
{ type: "int", name: "MaxTextureSize", default: "2048" },
|
|
55797
|
+
{ type: "NeoTextureResizeAlgorithm", name: "ResizeAlgorithm" },
|
|
55798
|
+
{ type: "NeoTextureCompression", name: "TextureCompression" },
|
|
55799
|
+
{ type: "int", name: "CompressionQuality", default: "50" },
|
|
55800
|
+
{ type: "bool", name: "CrunchedCompression" },
|
|
55801
|
+
{
|
|
55802
|
+
type: "NeoTexturePlatformSettings",
|
|
55803
|
+
name: "Platforms",
|
|
55804
|
+
default: "new()"
|
|
55805
|
+
},
|
|
55806
|
+
{ type: "NeoSpriteSettings?", name: "Sprite" },
|
|
55807
|
+
{ type: "NeoNormalMapSettings?", name: "NormalMap" },
|
|
55808
|
+
{ type: "NeoCookieSettings?", name: "Cookie" },
|
|
55809
|
+
{ type: "NeoSingleChannelSettings?", name: "SingleChannel" },
|
|
55810
|
+
{ type: "NeoSwizzleSettings?", name: "Swizzle" }
|
|
55811
|
+
],
|
|
55812
|
+
NeoTexturePlatformSettings: [
|
|
55813
|
+
{
|
|
55814
|
+
type: "NeoTexturePlatformEntry",
|
|
55815
|
+
name: "Default",
|
|
55816
|
+
default: "new()"
|
|
55817
|
+
},
|
|
55818
|
+
{
|
|
55819
|
+
type: "NeoTexturePlatformEntry",
|
|
55820
|
+
name: "Standalone",
|
|
55821
|
+
default: "new()"
|
|
55822
|
+
},
|
|
55823
|
+
{ type: "NeoTexturePlatformEntry", name: "Web", default: "new()" }
|
|
55824
|
+
],
|
|
55825
|
+
NeoTexturePlatformEntry: [
|
|
55826
|
+
{ type: "bool", name: "Override" },
|
|
55827
|
+
{ type: "int", name: "MaxTextureSize", default: "2048" },
|
|
55828
|
+
{ type: "NeoTextureResizeAlgorithm", name: "ResizeAlgorithm" },
|
|
55829
|
+
{ type: "NeoTextureFormat", name: "Format" },
|
|
55830
|
+
{ type: "NeoTextureCompression", name: "TextureCompression" },
|
|
55831
|
+
{ type: "bool", name: "CrunchedCompression" },
|
|
55832
|
+
{ type: "int", name: "CompressionQuality", default: "50" }
|
|
55833
|
+
],
|
|
55834
|
+
NeoSpriteSettings: [
|
|
55835
|
+
{
|
|
55836
|
+
type: "NeoSpriteMode",
|
|
55837
|
+
name: "Mode",
|
|
55838
|
+
default: "NeoSpriteMode.Multiple"
|
|
55839
|
+
},
|
|
55840
|
+
{ type: "double", name: "PixelsPerUnit", default: "100" },
|
|
55841
|
+
{
|
|
55842
|
+
type: "NeoSpriteMeshType",
|
|
55843
|
+
name: "MeshType",
|
|
55844
|
+
default: "NeoSpriteMeshType.Tight"
|
|
55845
|
+
},
|
|
55846
|
+
{ type: "int", name: "ExtrudeEdges", default: "1" },
|
|
55847
|
+
{ type: "NeoSpriteAlignment", name: "PivotAlignment" },
|
|
55848
|
+
{ type: "NeoVector2", name: "Pivot", default: "new(0.5, 0.5)" },
|
|
55849
|
+
{ type: "bool", name: "GeneratePhysicsShape", default: "true" },
|
|
55850
|
+
{ type: "NeoSpriteSliceSettings?", name: "Slice" }
|
|
55851
|
+
],
|
|
55852
|
+
NeoSpriteSliceSettings: [
|
|
55853
|
+
{ type: "NeoVector2", name: "PixelSize" },
|
|
55854
|
+
{ type: "NeoVector2", name: "Offset" },
|
|
55855
|
+
{ type: "NeoVector2", name: "Padding" },
|
|
55856
|
+
{ type: "bool", name: "KeepEmptyRects" },
|
|
55857
|
+
{ type: "NeoSpriteAlignment", name: "PivotAlignment" },
|
|
55858
|
+
{ type: "NeoVector2", name: "Pivot" },
|
|
55859
|
+
{ type: "NeoVector4", name: "Border" },
|
|
55860
|
+
{ type: "string", name: "NamingPattern", default: '"{0}"' },
|
|
55861
|
+
{ type: "int", name: "NamingStartIndex" },
|
|
55862
|
+
{ type: "bool", name: "ColumnMajor" }
|
|
55863
|
+
],
|
|
55864
|
+
NeoNormalMapSettings: [
|
|
55865
|
+
{ type: "bool", name: "CreateFromGrayscale" },
|
|
55866
|
+
{ type: "double", name: "Bumpiness", default: "0.25" },
|
|
55867
|
+
{
|
|
55868
|
+
type: "NeoNormalMapFiltering",
|
|
55869
|
+
name: "Filtering",
|
|
55870
|
+
default: "NeoNormalMapFiltering.Smooth"
|
|
55871
|
+
},
|
|
55872
|
+
{ type: "bool", name: "FlipGreenChannel" }
|
|
55873
|
+
],
|
|
55874
|
+
NeoCookieSettings: [{ type: "NeoCookieLightType", name: "LightType" }],
|
|
55875
|
+
NeoSingleChannelSettings: [
|
|
55876
|
+
{ type: "NeoSingleChannelComponent", name: "Component" }
|
|
55877
|
+
],
|
|
55878
|
+
NeoSwizzleSettings: [
|
|
55879
|
+
{
|
|
55880
|
+
type: "NeoTextureSwizzle",
|
|
55881
|
+
name: "R",
|
|
55882
|
+
default: "NeoTextureSwizzle.Red"
|
|
55883
|
+
},
|
|
55884
|
+
{
|
|
55885
|
+
type: "NeoTextureSwizzle",
|
|
55886
|
+
name: "G",
|
|
55887
|
+
default: "NeoTextureSwizzle.Green"
|
|
55888
|
+
},
|
|
55889
|
+
{
|
|
55890
|
+
type: "NeoTextureSwizzle",
|
|
55891
|
+
name: "B",
|
|
55892
|
+
default: "NeoTextureSwizzle.Blue"
|
|
55893
|
+
},
|
|
55894
|
+
{
|
|
55895
|
+
type: "NeoTextureSwizzle",
|
|
55896
|
+
name: "A",
|
|
55897
|
+
default: "NeoTextureSwizzle.Alpha"
|
|
55898
|
+
}
|
|
55899
|
+
],
|
|
55900
|
+
NeoAudioTemplateSettings: [
|
|
55901
|
+
{ type: "string", name: "Name", default: "string.Empty" },
|
|
55902
|
+
{ type: "bool", name: "ForceToMono" },
|
|
55903
|
+
{ type: "bool", name: "Normalize" },
|
|
55904
|
+
{ type: "bool", name: "LoadInBackground" },
|
|
55905
|
+
{ type: "bool", name: "Ambisonic" },
|
|
55906
|
+
{ type: "NeoAudioLoadType", name: "LoadType" },
|
|
55907
|
+
{
|
|
55908
|
+
type: "NeoAudioCompressionFormat",
|
|
55909
|
+
name: "CompressionFormat",
|
|
55910
|
+
default: "NeoAudioCompressionFormat.Vorbis"
|
|
55911
|
+
},
|
|
55912
|
+
{ type: "double", name: "Quality", default: "1" },
|
|
55913
|
+
{ type: "NeoAudioSampleRate", name: "SampleRate" },
|
|
55914
|
+
{ type: "int?", name: "OverrideSampleRate" },
|
|
55915
|
+
{ type: "bool", name: "PreloadAudioData", default: "true" }
|
|
55916
|
+
],
|
|
55917
|
+
NeoLocalizationSettings: [
|
|
55918
|
+
{ type: "string", name: "MainLocale", default: '"en-US"' },
|
|
55919
|
+
{
|
|
55920
|
+
type: "IReadOnlyList<NeoLocaleSettings>",
|
|
55921
|
+
name: "Locales",
|
|
55922
|
+
default: "new List<NeoLocaleSettings>()"
|
|
55923
|
+
},
|
|
55924
|
+
{
|
|
55925
|
+
type: "IReadOnlyList<string>",
|
|
55926
|
+
name: "StatusIds",
|
|
55927
|
+
default: "new List<string>()"
|
|
55928
|
+
},
|
|
55929
|
+
{
|
|
55930
|
+
type: "string",
|
|
55931
|
+
name: "MainLocaleDefaultStatus",
|
|
55932
|
+
default: "string.Empty"
|
|
55933
|
+
}
|
|
55934
|
+
],
|
|
55935
|
+
NeoLocaleSettings: [
|
|
55936
|
+
{ type: "string", name: "Locale", default: "string.Empty" },
|
|
55937
|
+
{ type: "string?", name: "SourceLocale" },
|
|
55938
|
+
{ type: "string?", name: "Name" },
|
|
55939
|
+
{ type: "int", name: "Order" },
|
|
55940
|
+
{ type: "long?", name: "ArchivedAt" }
|
|
55941
|
+
],
|
|
55942
|
+
NeoLocalizationStatusSettings: [
|
|
55943
|
+
{ type: "string", name: "Slug", default: "string.Empty" },
|
|
55944
|
+
{ type: "string", name: "Name", default: "string.Empty" },
|
|
55945
|
+
{ type: "string?", name: "Description" },
|
|
55946
|
+
{ type: "string?", name: "Color" },
|
|
55947
|
+
{ type: "string?", name: "Emoji" },
|
|
55948
|
+
{ type: "long?", name: "ArchivedAt" },
|
|
55949
|
+
{ type: "IReadOnlyList<string>?", name: "TransitionRules" },
|
|
55950
|
+
{ type: "string?", name: "TransitionOnTextEdit" },
|
|
55951
|
+
{ type: "string?", name: "TransitionWhenSourceBecomes" },
|
|
55952
|
+
{ type: "NeoSystemSettings?", name: "System" }
|
|
55953
|
+
]
|
|
55954
|
+
},
|
|
55955
|
+
records: {
|
|
55956
|
+
NeoProjectRecordReference: {
|
|
55957
|
+
kind: "readonly record struct",
|
|
55958
|
+
catalog: true,
|
|
55959
|
+
parameters: [
|
|
55960
|
+
{ type: "NeoProjectRecordKind", name: "Kind" },
|
|
55961
|
+
{ type: "string", name: "Id" }
|
|
55962
|
+
]
|
|
55963
|
+
},
|
|
55964
|
+
NeoInternalRecordRelationDefinition: {
|
|
55965
|
+
kind: "sealed record",
|
|
55966
|
+
catalog: true,
|
|
55967
|
+
parameters: [
|
|
55968
|
+
{ type: "string?", name: "Id" },
|
|
55969
|
+
{ type: "string", name: "RelationKind" },
|
|
55970
|
+
{ type: "NeoProjectRecordReference", name: "Source" },
|
|
55971
|
+
{ type: "NeoProjectRecordReference", name: "Target" }
|
|
55972
|
+
]
|
|
55973
|
+
},
|
|
55974
|
+
NeoVector2: {
|
|
55975
|
+
kind: "readonly record struct",
|
|
55976
|
+
parameters: [
|
|
55977
|
+
{ type: "double", name: "X" },
|
|
55978
|
+
{ type: "double", name: "Y" }
|
|
55979
|
+
]
|
|
55980
|
+
},
|
|
55981
|
+
NeoVector2Int: {
|
|
55982
|
+
kind: "readonly record struct",
|
|
55983
|
+
parameters: [
|
|
55984
|
+
{ type: "int", name: "X" },
|
|
55985
|
+
{ type: "int", name: "Y" }
|
|
55986
|
+
]
|
|
55987
|
+
},
|
|
55988
|
+
NeoVector3: {
|
|
55989
|
+
kind: "readonly record struct",
|
|
55990
|
+
parameters: [
|
|
55991
|
+
{ type: "double", name: "X" },
|
|
55992
|
+
{ type: "double", name: "Y" },
|
|
55993
|
+
{ type: "double", name: "Z" }
|
|
55994
|
+
]
|
|
55995
|
+
},
|
|
55996
|
+
NeoVector3Int: {
|
|
55997
|
+
kind: "readonly record struct",
|
|
55998
|
+
parameters: [
|
|
55999
|
+
{ type: "int", name: "X" },
|
|
56000
|
+
{ type: "int", name: "Y" },
|
|
56001
|
+
{ type: "int", name: "Z" }
|
|
56002
|
+
]
|
|
56003
|
+
},
|
|
56004
|
+
NeoVector4: {
|
|
56005
|
+
kind: "readonly record struct",
|
|
56006
|
+
parameters: [
|
|
56007
|
+
{ type: "double", name: "X" },
|
|
56008
|
+
{ type: "double", name: "Y" },
|
|
56009
|
+
{ type: "double", name: "Z" },
|
|
56010
|
+
{ type: "double", name: "W" }
|
|
56011
|
+
]
|
|
56012
|
+
},
|
|
56013
|
+
NeoColor: {
|
|
56014
|
+
kind: "readonly record struct",
|
|
56015
|
+
parameters: [
|
|
56016
|
+
{ type: "double", name: "R" },
|
|
56017
|
+
{ type: "double", name: "G" },
|
|
56018
|
+
{ type: "double", name: "B" },
|
|
56019
|
+
{ type: "double", name: "A" }
|
|
56020
|
+
]
|
|
56021
|
+
},
|
|
56022
|
+
NeoSprite: {
|
|
56023
|
+
kind: "sealed record",
|
|
56024
|
+
parameters: [
|
|
56025
|
+
{ type: "string", name: "FileId" },
|
|
56026
|
+
{ type: "int", name: "SliceIndex" }
|
|
56027
|
+
]
|
|
56028
|
+
},
|
|
56029
|
+
NeoAudio: {
|
|
56030
|
+
kind: "sealed record",
|
|
56031
|
+
parameters: [{ type: "string", name: "FileId" }]
|
|
56032
|
+
},
|
|
56033
|
+
NeoDialogue: {
|
|
56034
|
+
kind: "sealed record",
|
|
56035
|
+
parameters: [{ type: "string", name: "DialogueId" }]
|
|
56036
|
+
},
|
|
56037
|
+
"NeoLookup<T>": {
|
|
56038
|
+
kind: "sealed record",
|
|
56039
|
+
parameters: [{ type: "string", name: "ValueId" }]
|
|
56040
|
+
},
|
|
56041
|
+
NeoMemberReference: {
|
|
56042
|
+
kind: "readonly record struct",
|
|
56043
|
+
parameters: [{ type: "string", name: "Id" }]
|
|
56044
|
+
}
|
|
56045
|
+
},
|
|
56046
|
+
intrinsics: {
|
|
56047
|
+
Neo: [
|
|
56048
|
+
{
|
|
56049
|
+
typeParameters: "<T>",
|
|
56050
|
+
returnType: "T",
|
|
56051
|
+
name: "Ref",
|
|
56052
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56053
|
+
expression: "default!"
|
|
56054
|
+
},
|
|
56055
|
+
{
|
|
56056
|
+
typeParameters: "<T>",
|
|
56057
|
+
returnType: "NeoLookup<T>",
|
|
56058
|
+
name: "Lookup",
|
|
56059
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56060
|
+
expression: "new(id)"
|
|
56061
|
+
},
|
|
56062
|
+
{
|
|
56063
|
+
returnType: "NeoDialogue",
|
|
56064
|
+
name: "Dialogue",
|
|
56065
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56066
|
+
expression: "new(id)"
|
|
56067
|
+
},
|
|
56068
|
+
{
|
|
56069
|
+
returnType: "NeoSprite",
|
|
56070
|
+
name: "Sprite",
|
|
56071
|
+
parameters: [
|
|
56072
|
+
{ type: "string", name: "fileId" },
|
|
56073
|
+
{ type: "int", name: "sliceIndex", default: "0" }
|
|
56074
|
+
],
|
|
56075
|
+
expression: "new(fileId, sliceIndex)"
|
|
56076
|
+
},
|
|
56077
|
+
{
|
|
56078
|
+
returnType: "NeoAudio",
|
|
56079
|
+
name: "Audio",
|
|
56080
|
+
parameters: [{ type: "string", name: "fileId" }],
|
|
56081
|
+
expression: "new(fileId)"
|
|
56082
|
+
},
|
|
56083
|
+
{
|
|
56084
|
+
returnType: "NeoMemberReference",
|
|
56085
|
+
name: "Member",
|
|
56086
|
+
parameters: [{ type: "string", name: "id" }],
|
|
56087
|
+
expression: "new(id)"
|
|
56088
|
+
}
|
|
56089
|
+
]
|
|
56090
|
+
}
|
|
56091
|
+
}
|
|
56092
|
+
}
|
|
56093
|
+
});
|
|
56094
|
+
|
|
54426
56095
|
// src/project-source/workspace-status-core.ts
|
|
54427
56096
|
var ANIMATION_DOCUMENT_RECORD_KINDS = [
|
|
54428
56097
|
ProjectRecordKind.Project,
|
|
@@ -54734,6 +56403,16 @@ var WORLD_OBJECT_CONTRACT_WORLD_KINDS = /* @__PURE__ */ new Set([
|
|
|
54734
56403
|
NeoWorldSystemClassKind.SpriteObject
|
|
54735
56404
|
]);
|
|
54736
56405
|
|
|
56406
|
+
// ../src/models/exports/unity-codegen-revision.ts
|
|
56407
|
+
var UNITY_CODEGEN_REVISION = "45a0847addd4616acfc29f142556dcb2e0a27daae14d6aa456430228e66dbc07";
|
|
56408
|
+
|
|
56409
|
+
// src/export-cache.ts
|
|
56410
|
+
var CACHE_BUILD = JSON.stringify([
|
|
56411
|
+
PROJECT_SCHEMA_CONTRACT.cliVersion,
|
|
56412
|
+
NEOSCRIPT_COMPILER_REVISION,
|
|
56413
|
+
UNITY_CODEGEN_REVISION
|
|
56414
|
+
]);
|
|
56415
|
+
|
|
54737
56416
|
// src/export-state.ts
|
|
54738
56417
|
import { join } from "node:path";
|
|
54739
56418
|
var EXPORT_STATE_FILE = join(".neo", "export.json");
|