@neocompose/cli 0.31.9 → 0.31.10
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
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.31.10] - 2026-08-17
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Allow a normal pull to merge remote changes while local source contains new
|
|
8
|
+
members whose server-owned identity envelope has not been assigned yet.
|
|
9
|
+
- Recompile locally edited constructors after pull merge instead of rejecting
|
|
10
|
+
stale server IR compiled for their previous parameter list.
|
|
11
|
+
|
|
3
12
|
## [0.31.9] - 2026-08-17
|
|
4
13
|
|
|
5
14
|
### Added
|
package/dist/neo.mjs
CHANGED
|
@@ -95005,10 +95005,40 @@ function readPulledProjectDocumentV4(records2) {
|
|
|
95005
95005
|
const raw = structuredClone(
|
|
95006
95006
|
pulledProjectDocumentRaw(replayWorkspace(records2))
|
|
95007
95007
|
);
|
|
95008
|
-
return readProjectDocument(
|
|
95009
|
-
|
|
95010
|
-
|
|
95011
|
-
|
|
95008
|
+
return readProjectDocument(
|
|
95009
|
+
completeProspectiveMemberCreateEnvelopes(
|
|
95010
|
+
completeProspectiveLocalizedTexts(raw)
|
|
95011
|
+
),
|
|
95012
|
+
{
|
|
95013
|
+
constructors: "authored-or-compiled",
|
|
95014
|
+
identities: "prospective"
|
|
95015
|
+
}
|
|
95016
|
+
);
|
|
95017
|
+
}
|
|
95018
|
+
function completeProspectiveMemberCreateEnvelopes(raw) {
|
|
95019
|
+
const members = raw.members;
|
|
95020
|
+
if (!Array.isArray(members)) return raw;
|
|
95021
|
+
if (!members.some(isPendingMemberWithoutCreateEnvelope)) return raw;
|
|
95022
|
+
const project = raw.project;
|
|
95023
|
+
if (!isObjectRecord2(project) || typeof project.id !== "string") {
|
|
95024
|
+
throw new Error(
|
|
95025
|
+
"Pending source-authored members need the server create envelope, but the project record has no id."
|
|
95026
|
+
);
|
|
95027
|
+
}
|
|
95028
|
+
return {
|
|
95029
|
+
...raw,
|
|
95030
|
+
members: members.map(
|
|
95031
|
+
(member) => isPendingMemberWithoutCreateEnvelope(member) ? {
|
|
95032
|
+
projectId: project.id,
|
|
95033
|
+
createdAt: 0,
|
|
95034
|
+
updatedAt: 0,
|
|
95035
|
+
...member
|
|
95036
|
+
} : member
|
|
95037
|
+
)
|
|
95038
|
+
};
|
|
95039
|
+
}
|
|
95040
|
+
function isPendingMemberWithoutCreateEnvelope(value) {
|
|
95041
|
+
return isObjectRecord2(value) && typeof value.id === "string" && value.id.startsWith("__pending__:") && (typeof value.projectId !== "string" || typeof value.createdAt !== "number" || typeof value.updatedAt !== "number");
|
|
95012
95042
|
}
|
|
95013
95043
|
function completeProspectiveLocalizedTexts(raw) {
|
|
95014
95044
|
const localizedTexts = raw.localizedTexts;
|
|
@@ -104634,16 +104664,45 @@ function buildEmitRecordSet(document, plans, side) {
|
|
|
104634
104664
|
if (data === void 0) continue;
|
|
104635
104665
|
const serverRecord = document.records.get(key);
|
|
104636
104666
|
const [recordKind, recordId] = key.split(/:(.+)/, 2);
|
|
104667
|
+
const resolvedRecordKind = serverRecord?.recordKind ?? recordKind;
|
|
104668
|
+
const resolvedRecordId = serverRecord?.recordId ?? recordId;
|
|
104637
104669
|
records2.set(key, {
|
|
104638
|
-
recordKind:
|
|
104639
|
-
recordId:
|
|
104670
|
+
recordKind: resolvedRecordKind,
|
|
104671
|
+
recordId: resolvedRecordId,
|
|
104640
104672
|
contentHash: plan.serverHash,
|
|
104641
104673
|
deleted: false,
|
|
104642
|
-
data
|
|
104674
|
+
data: side === "emit" ? composeProspectivePullRecord(
|
|
104675
|
+
resolvedRecordKind,
|
|
104676
|
+
resolvedRecordId,
|
|
104677
|
+
data,
|
|
104678
|
+
serverRecord
|
|
104679
|
+
) : data
|
|
104643
104680
|
});
|
|
104644
104681
|
}
|
|
104645
104682
|
return records2;
|
|
104646
104683
|
}
|
|
104684
|
+
function composeProspectivePullRecord(recordKind, recordId, data, serverRecord) {
|
|
104685
|
+
if (!isSchemaRecordKindV4(recordKind) || !isObjectRecord2(data)) return data;
|
|
104686
|
+
let baseRecord = null;
|
|
104687
|
+
if (serverRecord !== void 0) {
|
|
104688
|
+
if (!isObjectRecord2(serverRecord.data)) {
|
|
104689
|
+
throw new Error(
|
|
104690
|
+
`Cannot compose pulled ${recordKind} record ${JSON.stringify(recordId)} because its server payload is not an object.`
|
|
104691
|
+
);
|
|
104692
|
+
}
|
|
104693
|
+
baseRecord = {
|
|
104694
|
+
recordKind,
|
|
104695
|
+
recordId,
|
|
104696
|
+
data: serverRecord.data
|
|
104697
|
+
};
|
|
104698
|
+
}
|
|
104699
|
+
return composeDocumentRecord(
|
|
104700
|
+
recordKind,
|
|
104701
|
+
recordId,
|
|
104702
|
+
partitionDocumentFields(recordKind, data).authored,
|
|
104703
|
+
baseRecord
|
|
104704
|
+
).data;
|
|
104705
|
+
}
|
|
104647
104706
|
var init_pull = __esm({
|
|
104648
104707
|
"src/commands/pull.ts"() {
|
|
104649
104708
|
"use strict";
|
|
@@ -111415,7 +111474,7 @@ var init_registry2 = __esm({
|
|
|
111415
111474
|
PROJECT_SCHEMA_CONTRACT = Object.freeze({
|
|
111416
111475
|
formatVersion: 3,
|
|
111417
111476
|
contractVersion: "3.13",
|
|
111418
|
-
cliVersion: "0.31.
|
|
111477
|
+
cliVersion: "0.31.10",
|
|
111419
111478
|
projectFileUploadBatchSize: 32,
|
|
111420
111479
|
documentRecords: {
|
|
111421
111480
|
member: {
|
|
@@ -118010,7 +118069,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
|
|
|
118010
118069
|
async function main() {
|
|
118011
118070
|
const args = parseArgs(process.argv.slice(2));
|
|
118012
118071
|
if (args.command === "--version") {
|
|
118013
|
-
console.log("0.31.
|
|
118072
|
+
console.log("0.31.10");
|
|
118014
118073
|
return;
|
|
118015
118074
|
}
|
|
118016
118075
|
if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
|
package/package.json
CHANGED
|
@@ -83,7 +83,7 @@ wrappers.
|
|
|
83
83
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
84
84
|
|
|
85
85
|
```html
|
|
86
|
-
<!-- reviewed-through-cli: 0.31.
|
|
86
|
+
<!-- reviewed-through-cli: 0.31.10 -->
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
The quoted version above is checked too, so this instruction cannot go stale
|