@neocompose/cli 0.81.4 → 0.81.5

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,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.81.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 051ab67: Fix generated C# Clone interface implementations for immutable classes that
8
+ inherit generic writable classes. Re-export to regenerate affected clients.
9
+
3
10
  ## 0.81.4
4
11
 
5
12
  ### Patch Changes
package/dist/neo.mjs CHANGED
@@ -54647,7 +54647,7 @@ var init_registry = __esm({
54647
54647
  "../packages/manifest/schema-contract/registry.mjs"() {
54648
54648
  "use strict";
54649
54649
  PROJECT_SCHEMA_CONTRACT = Object.freeze({
54650
- cliVersion: "0.81.4",
54650
+ cliVersion: "0.81.5",
54651
54651
  projectFileUploadBatchSize: 32,
54652
54652
  documentRecords: {
54653
54653
  member: {
@@ -95044,6 +95044,40 @@ var init_effective_value_reader = __esm({
95044
95044
  }
95045
95045
  }
95046
95046
  classDefaultRows = /* @__PURE__ */ new Map();
95047
+ /** Prefer the stored field; expand a sparse construction only if that field is absent. */
95048
+ classFieldRow(valueId, schemaKey, placement) {
95049
+ if (this.deletedIds.has(valueId)) return void 0;
95050
+ this.placements.set(valueId, placement);
95051
+ this.context.readTracking?.valueIds.add(valueId);
95052
+ const mode = this.mode(valueId);
95053
+ const row = mode === "partial" ? this.rawRow(valueId) : this.effectiveRows.get(valueId) ?? this.rawRow(valueId);
95054
+ if (row === void 0 || !isStringRecord6(row.value)) return void 0;
95055
+ const classId = row.classId ?? (isMemberClassBase(placement) ? placement.classId : void 0);
95056
+ if (classId === void 0) return void 0;
95057
+ const entry = this.schema(classId).find(
95058
+ (entry2) => entry2.schemaKey === schemaKey
95059
+ );
95060
+ if (entry?.memberId == null) return void 0;
95061
+ const rawMember = this.memberForId(entry.memberId);
95062
+ if (rawMember === null) return void 0;
95063
+ const env = this.graph.genericEnvironmentForRow(row, placement);
95064
+ const member = substituteMember(rawMember, env, this.document.members);
95065
+ const slot = readClassMember({
95066
+ member,
95067
+ schemaKey,
95068
+ record: row.value,
95069
+ expandedRecord: () => {
95070
+ const expanded = this.row(valueId, void 0, placement)?.value;
95071
+ return isStringRecord6(expanded) ? expanded : null;
95072
+ },
95073
+ mode
95074
+ });
95075
+ if (slot.kind === "declaration") return this.declarationRow(member, env);
95076
+ if (slot.kind !== "value" || typeof slot.value !== "string")
95077
+ return void 0;
95078
+ this.context.readTracking?.valueIds.add(slot.value);
95079
+ return this.row(slot.value, void 0, member);
95080
+ }
95047
95081
  /** A row projection for editors that follow child ids through sparse class records. */
95048
95082
  rowWithClassDefaults(valueId) {
95049
95083
  const cached = this.classDefaultRows.get(valueId);
@@ -173030,7 +173064,11 @@ function generateNeoSchemaClassClass(ctx, classId) {
173030
173064
  classDef,
173031
173065
  memberEnv
173032
173066
  );
173033
- const projectedAncestorCloneAdapters = hasWritableFamily ? generateProjectedAncestorCloneAdapters(ctx, classDef, genericEnv) : [];
173067
+ const projectedAncestorCloneAdapters = generateProjectedAncestorCloneAdapters(
173068
+ ctx,
173069
+ classDef,
173070
+ genericEnv
173071
+ );
173034
173072
  const familyAdapters = [
173035
173073
  ...projectedAncestorCloneAdapters,
173036
173074
  ...projectedAncestorCloneAdapters.length > 0 && (explicitFunctionAdapters.length > 0 || inheritedPropertyAdapters.length > 0) ? [""] : [],
@@ -182123,7 +182161,7 @@ var UNITY_CODEGEN_REVISION;
182123
182161
  var init_unity_codegen_revision = __esm({
182124
182162
  "../src/models/exports/unity-codegen-revision.ts"() {
182125
182163
  "use strict";
182126
- UNITY_CODEGEN_REVISION = "d4026a3848848c8507d45dd54b6d31c1a0588b17b64c35e3fe9b25c89eb2fc05";
182164
+ UNITY_CODEGEN_REVISION = "c3d56ed8b41f473d0023ec967df2a4f75507b760551edf58026f5163ee546006";
182127
182165
  }
182128
182166
  });
182129
182167
 
@@ -202015,7 +202053,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
202015
202053
  async function main() {
202016
202054
  const args = parseArgs(process.argv.slice(2));
202017
202055
  if (args.command === "--version") {
202018
- console.log("0.81.4");
202056
+ console.log("0.81.5");
202019
202057
  return;
202020
202058
  }
202021
202059
  if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
@@ -59638,7 +59638,7 @@ var INITIALIZER_KEY_PLACEHOLDER = new RegExp(
59638
59638
 
59639
59639
  // ../packages/manifest/schema-contract/registry.mjs
59640
59640
  var PROJECT_SCHEMA_CONTRACT = Object.freeze({
59641
- cliVersion: "0.81.4",
59641
+ cliVersion: "0.81.5",
59642
59642
  projectFileUploadBatchSize: 32,
59643
59643
  documentRecords: {
59644
59644
  member: {
@@ -61479,7 +61479,7 @@ var SCRIPT_COLLECTION_READERS = {
61479
61479
  };
61480
61480
 
61481
61481
  // ../src/models/exports/unity-codegen-revision.ts
61482
- var UNITY_CODEGEN_REVISION = "d4026a3848848c8507d45dd54b6d31c1a0588b17b64c35e3fe9b25c89eb2fc05";
61482
+ var UNITY_CODEGEN_REVISION = "c3d56ed8b41f473d0023ec967df2a4f75507b760551edf58026f5163ee546006";
61483
61483
 
61484
61484
  // src/export-cache.ts
61485
61485
  var CACHE_BUILD = JSON.stringify([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.81.4",
3
+ "version": "0.81.5",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@ description: >-
9
9
  `@neocompose/cli` or `node cli/bin/neo.mjs` in the neo-compose repository.
10
10
  ---
11
11
 
12
- <!-- reviewed-through-cli: 0.81.4 -->
12
+ <!-- reviewed-through-cli: 0.81.5 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -129,7 +129,7 @@ wrappers.
129
129
  The marker near the top of `SKILL.md` must exactly match the package version:
130
130
 
131
131
  ```html
132
- <!-- reviewed-through-cli: 0.81.4 -->
132
+ <!-- reviewed-through-cli: 0.81.5 -->
133
133
  ```
134
134
 
135
135
  The quoted version above is checked too, so this instruction cannot go stale
@@ -327,7 +327,8 @@ changed, skips codegen when its schema inputs are unchanged, and writes
327
327
  `Library/NeoCompose/export.json` last for Unity to ingest. Repeated exports
328
328
  verify current inputs and output bytes before reusing the last successful
329
329
  export; changed or missing outputs are regenerated. Edited content is validated
330
- even when C# generation is skipped.
330
+ even when C# generation is skipped. After a CLI code-generation fix, run
331
+ `neo export` again; generator revision changes invalidate cached C# output.
331
332
 
332
333
  - A clean working copy exports the pulled head. Diagnostic location differences
333
334
  alone, including line shifts after push inserts ids, do not make it local.