@neocompose/cli 0.10.2 → 0.10.3
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 +12 -0
- package/dist/neo.mjs +3 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.3] - 2026-07-25
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Stop writing `isReadOnly: false` onto members that never carried the field.
|
|
8
|
+
Absent is how false is spelled, but document normalization materialized the
|
|
9
|
+
full-member default, so any member record that changed for another reason
|
|
10
|
+
pushed an explicit `isReadOnly: false` with it. The explicit value is kept
|
|
11
|
+
only where it has something to overwrite -- a record that already carries
|
|
12
|
+
the field, which is how dropping `readonly` from a declaration reaches the
|
|
13
|
+
server.
|
|
14
|
+
|
|
3
15
|
## [0.10.2] - 2026-07-25
|
|
4
16
|
|
|
5
17
|
### Fixed
|
package/dist/neo.mjs
CHANGED
|
@@ -1356,6 +1356,9 @@ function composeDocumentRecord(recordKind, recordId, authoredFields, baseRecord)
|
|
|
1356
1356
|
const base = partitionDocumentFields(recordKind, baseRecord.data);
|
|
1357
1357
|
Object.assign(data, base.derived, base.volatile);
|
|
1358
1358
|
}
|
|
1359
|
+
if (recordKind === "member" && data.isReadOnly === false && !Object.prototype.hasOwnProperty.call(baseRecord?.data ?? {}, "isReadOnly")) {
|
|
1360
|
+
delete data.isReadOnly;
|
|
1361
|
+
}
|
|
1359
1362
|
return { recordKind, recordId, data };
|
|
1360
1363
|
}
|
|
1361
1364
|
function assertOnlyAuthoredFields(recordKind, fields) {
|