@neocompose/cli 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neo.mjs +74 -35
- package/package.json +1 -1
package/dist/neo.mjs
CHANGED
|
@@ -28256,29 +28256,38 @@ function genericConstraint(context, type) {
|
|
|
28256
28256
|
};
|
|
28257
28257
|
}
|
|
28258
28258
|
function inheritedMemberId(context, ownerClass, name) {
|
|
28259
|
-
const
|
|
28259
|
+
const directBase = ownerClass.baseTypes.find(
|
|
28260
28260
|
(entry) => context.classIdsByName.has(entry.name)
|
|
28261
28261
|
);
|
|
28262
|
-
|
|
28263
|
-
const
|
|
28264
|
-
|
|
28265
|
-
|
|
28266
|
-
|
|
28267
|
-
|
|
28268
|
-
|
|
28269
|
-
|
|
28270
|
-
|
|
28271
|
-
|
|
28272
|
-
|
|
28273
|
-
|
|
28274
|
-
|
|
28275
|
-
|
|
28276
|
-
|
|
28277
|
-
|
|
28278
|
-
|
|
28279
|
-
|
|
28280
|
-
|
|
28281
|
-
|
|
28262
|
+
let classId = directBase ? requiredName(context.classIdsByName, directBase.name, "class") : null;
|
|
28263
|
+
const visited = /* @__PURE__ */ new Set();
|
|
28264
|
+
while (classId !== null && !visited.has(classId)) {
|
|
28265
|
+
visited.add(classId);
|
|
28266
|
+
const sourceClass = context.sourceClasses.get(classId);
|
|
28267
|
+
if (sourceClass !== void 0) {
|
|
28268
|
+
const sourceMember = sourceClass.members.find(
|
|
28269
|
+
(member) => member.name === name
|
|
28270
|
+
);
|
|
28271
|
+
if (sourceMember !== void 0) {
|
|
28272
|
+
return materializedId(
|
|
28273
|
+
sourceMember,
|
|
28274
|
+
"member",
|
|
28275
|
+
`${sourceClass.name}.${sourceMember.name}`
|
|
28276
|
+
);
|
|
28277
|
+
}
|
|
28278
|
+
const sourceBase = sourceClass.baseTypes.find(
|
|
28279
|
+
(entry) => context.classIdsByName.has(entry.name)
|
|
28280
|
+
);
|
|
28281
|
+
classId = sourceBase ? requiredName(context.classIdsByName, sourceBase.name, "class") : null;
|
|
28282
|
+
continue;
|
|
28283
|
+
}
|
|
28284
|
+
const pulledClass = context.baseClasses.get(classId);
|
|
28285
|
+
if (pulledClass === void 0) return null;
|
|
28286
|
+
const memberId = pulledClass.schema[name];
|
|
28287
|
+
if (memberId !== void 0) return memberId;
|
|
28288
|
+
classId = pulledClass.extendsClassId;
|
|
28289
|
+
}
|
|
28290
|
+
return null;
|
|
28282
28291
|
}
|
|
28283
28292
|
function resolveQualifiedMemberId(context, expression) {
|
|
28284
28293
|
const match = /^([A-Za-z_][A-Za-z0-9_]*)\.([A-Za-z_][A-Za-z0-9_]*)$/.exec(
|
|
@@ -39728,6 +39737,7 @@ function lowerMemberDefaultSourcesV4(state, analysis, manifest) {
|
|
|
39728
39737
|
if (record3.recordKind === "value") pulledValueIds.add(record3.recordId);
|
|
39729
39738
|
}
|
|
39730
39739
|
const memberDefaultValues = /* @__PURE__ */ new Map();
|
|
39740
|
+
const seeds = /* @__PURE__ */ new Map();
|
|
39731
39741
|
for (const sourceClass of analysis.schema.classes) {
|
|
39732
39742
|
for (const declaration of sourceClass.members) {
|
|
39733
39743
|
if (declaration.kind !== "field" || declaration.initializer === null) {
|
|
@@ -39736,13 +39746,6 @@ function lowerMemberDefaultSourcesV4(state, analysis, manifest) {
|
|
|
39736
39746
|
if (declaration.modifiers.includes("static")) continue;
|
|
39737
39747
|
const label = `${sourceClass.name}.${declaration.name}`;
|
|
39738
39748
|
const memberId = sourceIdentityId(declaration, "member", label);
|
|
39739
|
-
const baseData3 = stateData(context, "member", memberId);
|
|
39740
|
-
if (baseData3 === null) continue;
|
|
39741
|
-
const backed = rowBackedDefaultBody(
|
|
39742
|
-
baseData3,
|
|
39743
|
-
(id2) => pulledValueIds.has(id2)
|
|
39744
|
-
);
|
|
39745
|
-
if (backed === null) continue;
|
|
39746
39749
|
const member = context.members.get(memberId);
|
|
39747
39750
|
if (member === void 0) continue;
|
|
39748
39751
|
const binding = {
|
|
@@ -39751,17 +39754,52 @@ function lowerMemberDefaultSourcesV4(state, analysis, manifest) {
|
|
|
39751
39754
|
source: declaration.source,
|
|
39752
39755
|
label
|
|
39753
39756
|
};
|
|
39754
|
-
|
|
39755
|
-
|
|
39756
|
-
|
|
39757
|
+
const baseData3 = stateData(context, "member", memberId);
|
|
39758
|
+
const backed = baseData3 === null ? null : rowBackedDefaultBody(baseData3, (id2) => pulledValueIds.has(id2));
|
|
39759
|
+
if (backed !== null && baseData3 !== null) {
|
|
39760
|
+
memberDefaultValues.set(
|
|
39761
|
+
memberId,
|
|
39762
|
+
lowerRowBackedDefault(context, member, backed, baseData3, binding)
|
|
39763
|
+
);
|
|
39764
|
+
continue;
|
|
39765
|
+
}
|
|
39766
|
+
const expression = parseCachedInitializer(
|
|
39767
|
+
context.parsedInitializers,
|
|
39768
|
+
declaration.initializer
|
|
39769
|
+
);
|
|
39770
|
+
if (!defaultRequiresOwnedRows(member, expression)) continue;
|
|
39771
|
+
const rootValueId = pendingValueId(binding, `${label}.default`);
|
|
39772
|
+
const seed = lowerStaticSeed(
|
|
39773
|
+
context,
|
|
39774
|
+
member,
|
|
39775
|
+
expression,
|
|
39776
|
+
binding,
|
|
39777
|
+
rootValueId
|
|
39757
39778
|
);
|
|
39779
|
+
seeds.set(memberId, { ...seed, valueId: rootValueId });
|
|
39780
|
+
memberDefaultValues.set(memberId, {
|
|
39781
|
+
value: seed.value,
|
|
39782
|
+
classId: seed.classId
|
|
39783
|
+
});
|
|
39758
39784
|
}
|
|
39759
39785
|
}
|
|
39760
39786
|
return {
|
|
39761
39787
|
records: [...context.reconstructed.values()],
|
|
39762
|
-
memberDefaultValues
|
|
39788
|
+
memberDefaultValues,
|
|
39789
|
+
seeds
|
|
39763
39790
|
};
|
|
39764
39791
|
}
|
|
39792
|
+
function defaultRequiresOwnedRows(member, sourceExpression) {
|
|
39793
|
+
const expression = annotatedValue(sourceExpression).expression;
|
|
39794
|
+
if (member.kind === "class") return expression.kind === "new";
|
|
39795
|
+
if (member.kind === "list") {
|
|
39796
|
+
return expression.kind === "litList" && expression.elements.length > 0;
|
|
39797
|
+
}
|
|
39798
|
+
if (member.kind === "dictionary") {
|
|
39799
|
+
return expression.kind === "litDict" && expression.entries.length > 0;
|
|
39800
|
+
}
|
|
39801
|
+
return false;
|
|
39802
|
+
}
|
|
39765
39803
|
function lowerRowBackedDefault(context, member, backed, baseData3, binding) {
|
|
39766
39804
|
const baseDefault = isObjectRecord2(baseData3.defaultValue) ? baseData3.defaultValue : {};
|
|
39767
39805
|
const storedClassId = stringOrNull(baseDefault.classId);
|
|
@@ -43737,7 +43775,8 @@ function computeWorkspaceStatus(workspace, options = {}) {
|
|
|
43737
43775
|
let staticMemberValueIds = /* @__PURE__ */ new Map();
|
|
43738
43776
|
let memberDefaults = {
|
|
43739
43777
|
records: [],
|
|
43740
|
-
memberDefaultValues: /* @__PURE__ */ new Map()
|
|
43778
|
+
memberDefaultValues: /* @__PURE__ */ new Map(),
|
|
43779
|
+
seeds: /* @__PURE__ */ new Map()
|
|
43741
43780
|
};
|
|
43742
43781
|
let projectAnalysisV4 = null;
|
|
43743
43782
|
try {
|
|
@@ -43887,7 +43926,7 @@ function computeWorkspaceStatus(workspace, options = {}) {
|
|
|
43887
43926
|
projectAnalysisV4,
|
|
43888
43927
|
manifest
|
|
43889
43928
|
);
|
|
43890
|
-
staticValueSeeds = staticValues.seeds;
|
|
43929
|
+
staticValueSeeds = new Map([...staticValues.seeds, ...memberDefaults.seeds]);
|
|
43891
43930
|
staticMemberValueIds = staticValues.memberValueIds;
|
|
43892
43931
|
const rootRecords = lowerProjectRootSourceV4(
|
|
43893
43932
|
workspace.state.records,
|
|
@@ -61778,7 +61817,7 @@ ${blockingErrors.map((error) => ` ${error.message}`).join("\n")}`
|
|
|
61778
61817
|
}
|
|
61779
61818
|
if (status.staticValueSeeds.size > 0) {
|
|
61780
61819
|
console.log(
|
|
61781
|
-
` ${color.dim(`create ${status.staticValueSeeds.size}
|
|
61820
|
+
` ${color.dim(`create ${status.staticValueSeeds.size} member value seed(s)`)}`
|
|
61782
61821
|
);
|
|
61783
61822
|
}
|
|
61784
61823
|
if (options.dryRun) return;
|