@neocompose/cli 0.33.1 → 0.33.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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.33.2] - 2026-08-19
4
+
5
+ ### Fixed
6
+
7
+ - Preserve authored non-null generic fields while projecting the local schema
8
+ manifest used by `neo script check --all`, so a `T` field read remains `T`
9
+ instead of becoming `T?` from the storage placeholder's structural flags.
10
+ - Compile prospective functions, properties, migrations, and ad-hoc scripts
11
+ against the complete project context, including declared constructors,
12
+ project files, and variants. `neo test` now resolves required Class-header
13
+ constructors instead of incorrectly falling back to their stored fields.
14
+
3
15
  ## [0.33.1] - 2026-08-19
4
16
 
5
17
  ### Fixed
package/dist/neo.mjs CHANGED
@@ -32824,7 +32824,7 @@ function memberType(member, environment, visiting, field) {
32824
32824
  return typeParameter(
32825
32825
  string2(member.genericParamId, `${field}.genericParamId`),
32826
32826
  environment,
32827
- nullable
32827
+ false
32828
32828
  );
32829
32829
  }
32830
32830
  return { ...unknownType(), nullable };
@@ -107138,6 +107138,7 @@ function createCliNeoScriptContext(options) {
107138
107138
  const members = [...options.documents.members];
107139
107139
  const vm = {
107140
107140
  project: options.documents.project,
107141
+ projectFiles: [...options.documents.projectFiles ?? []],
107141
107142
  members,
107142
107143
  classes: [...options.documents.classes],
107143
107144
  enums: [...options.documents.enums],
@@ -107157,7 +107158,9 @@ function createCliNeoScriptContext(options) {
107157
107158
  ...options.functionReturnTypeInfo ? { functionReturnTypeInfo: options.functionReturnTypeInfo } : {},
107158
107159
  ...options.functionArguments ? { functionArguments: options.functionArguments } : {},
107159
107160
  ...options.functionDeferred !== void 0 ? { functionDeferred: options.functionDeferred } : {},
107160
- ...options.functionName ? { functionName: options.functionName } : {}
107161
+ ...options.functionName ? { functionName: options.functionName } : {},
107162
+ ...options.documents.variants?.length ? { variants: [...options.documents.variants] } : {},
107163
+ ...options.documents.variantFolders?.length ? { variantFolders: [...options.documents.variantFolders] } : {}
107161
107164
  });
107162
107165
  if (!options.manifest) return compilerContext;
107163
107166
  const projection = projectSchemaManifest(options.manifest, {
@@ -107796,11 +107799,14 @@ function readDocumentArrays(raw) {
107796
107799
  }
107797
107800
  return {
107798
107801
  project: raw.project,
107802
+ projectFiles: arrayOf2("projectFiles"),
107799
107803
  members: arrayOf2("members"),
107800
107804
  classes: arrayOf2("classes"),
107801
107805
  constructors: arrayOf2("constructors"),
107802
107806
  enums: arrayOf2("enums"),
107803
107807
  interfaces: arrayOf2("interfaces"),
107808
+ variants: arrayOf2("variants"),
107809
+ variantFolders: arrayOf2("variantFolders"),
107804
107810
  values: arrayOf2("values"),
107805
107811
  dialogues: arrayOf2("dialogues"),
107806
107812
  dialogueRecords: arrayOf2("dialogueRecords"),
@@ -107808,7 +107814,6 @@ function readDocumentArrays(raw) {
107808
107814
  dialogueGroups: arrayOf2("dialogueGroups"),
107809
107815
  priorityGroups: arrayOf2("priorityGroups"),
107810
107816
  migrations: arrayOf2("migrations"),
107811
- projectFiles: arrayOf2("projectFiles"),
107812
107817
  localizationConfig: raw.localizationConfig,
107813
107818
  localizedTexts: arrayOf2("localizedTexts")
107814
107819
  };
@@ -108411,12 +108416,19 @@ async function runScript(workspace, command, options, dependencies = {}) {
108411
108416
  unit,
108412
108417
  code: source
108413
108418
  });
108414
- const compileContext = {
108419
+ const compilerProject = {
108415
108420
  project: document.project,
108421
+ projectFiles: document.projectFiles,
108416
108422
  members: document.members,
108417
108423
  classes: document.classes,
108424
+ constructors: document.constructors,
108418
108425
  enums: document.enums,
108419
108426
  interfaces: document.interfaces,
108427
+ variants: document.variants,
108428
+ variantFolders: document.variantFolders
108429
+ };
108430
+ const compileContext = {
108431
+ ...compilerProject,
108420
108432
  thisClass,
108421
108433
  returnTypeInfo: parseReturns(options.returns, document),
108422
108434
  dialogueContext: null
@@ -108465,11 +108477,7 @@ async function runScript(workspace, command, options, dependencies = {}) {
108465
108477
  }
108466
108478
  compiled = compileNeoScriptBodyOrThrow(
108467
108479
  () => compileNSFunction(source, {
108468
- project: document.project,
108469
- members: document.members,
108470
- classes: document.classes,
108471
- enums: document.enums,
108472
- interfaces: document.interfaces,
108480
+ ...compilerProject,
108473
108481
  thisClass,
108474
108482
  returnTypeInfo: nsFunctionDefinition.returnTypeInfo,
108475
108483
  argumentTypes: nsFunctionDefinition.argumentTypes,
@@ -108485,11 +108493,7 @@ async function runScript(workspace, command, options, dependencies = {}) {
108485
108493
  }
108486
108494
  compiled = compileNeoScriptBodyOrThrow(
108487
108495
  () => compileNSSetter(source, {
108488
- project: document.project,
108489
- members: document.members,
108490
- classes: document.classes,
108491
- enums: document.enums,
108492
- interfaces: document.interfaces,
108496
+ ...compilerProject,
108493
108497
  thisClass,
108494
108498
  valueTypeInfo: resolveScriptPropertyReturnTypeInfo(
108495
108499
  setterMember,
@@ -112398,10 +112402,27 @@ async function buildPostPushCompileSchema(workspace, status) {
112398
112402
  }
112399
112403
  return {
112400
112404
  project,
112405
+ projectFiles: [...bucket("project-file").values()],
112401
112406
  members: [...bucket("member").values()],
112402
112407
  classes: [...bucket("class").values()],
112408
+ constructors: [...bucket("constructor").values()],
112403
112409
  enums: [...bucket("enum").values()],
112404
- interfaces: [...bucket("interface").values()]
112410
+ interfaces: [...bucket("interface").values()],
112411
+ variants: [...bucket("variant").values()],
112412
+ variantFolders: [...bucket("variant-folder").values()]
112413
+ };
112414
+ }
112415
+ function postPushCompilerProject(schema) {
112416
+ return {
112417
+ project: schema.project,
112418
+ projectFiles: schema.projectFiles,
112419
+ members: schema.members,
112420
+ classes: schema.classes,
112421
+ constructors: schema.constructors,
112422
+ enums: schema.enums,
112423
+ interfaces: schema.interfaces,
112424
+ variants: schema.variants,
112425
+ variantFolders: schema.variantFolders
112405
112426
  };
112406
112427
  }
112407
112428
  function containingClass(schema, memberId) {
@@ -112433,11 +112454,7 @@ function compileNSPropertyChange(schema, memberData, locator) {
112433
112454
  const code = memberData.code;
112434
112455
  next.getter = compileNeoScriptBodyOrThrow(
112435
112456
  () => compileNSGetter2(code, {
112436
- project: schema.project,
112437
- members: schema.members,
112438
- classes: schema.classes,
112439
- enums: schema.enums,
112440
- interfaces: schema.interfaces,
112457
+ ...postPushCompilerProject(schema),
112441
112458
  thisClass,
112442
112459
  returnTypeInfo,
112443
112460
  dialogueContext: null,
@@ -112454,11 +112471,7 @@ function compileNSPropertyChange(schema, memberData, locator) {
112454
112471
  const setterCode = memberData.setterCode;
112455
112472
  next.setter = compileNeoScriptBodyOrThrow(
112456
112473
  () => compileNSSetter2(setterCode, {
112457
- project: schema.project,
112458
- members: schema.members,
112459
- classes: schema.classes,
112460
- enums: schema.enums,
112461
- interfaces: schema.interfaces,
112474
+ ...postPushCompilerProject(schema),
112462
112475
  thisClass,
112463
112476
  valueTypeInfo: returnTypeInfo,
112464
112477
  implicitMemberAccess: true,
@@ -112483,11 +112496,7 @@ function compileNSFunctionChange(schema, memberData, locator) {
112483
112496
  const thisClass = containingClass(schema, memberData.id);
112484
112497
  next.action = compileNeoScriptBodyOrThrow(
112485
112498
  () => compileNSFunction2(code, {
112486
- project: schema.project,
112487
- members: schema.members,
112488
- classes: schema.classes,
112489
- enums: schema.enums,
112490
- interfaces: schema.interfaces,
112499
+ ...postPushCompilerProject(schema),
112491
112500
  thisClass,
112492
112501
  returnTypeInfo: contract.returnTypeInfo,
112493
112502
  argumentTypes: contract.argumentTypes,
@@ -112827,11 +112836,7 @@ function compileMigrationAction(schema, migrationData, locator) {
112827
112836
  const code = String(migrationData.code);
112828
112837
  return compileNeoScriptBodyOrThrow(
112829
112838
  () => compileNSVoidBody2(code, {
112830
- project: schema.project,
112831
- members: schema.members,
112832
- classes: schema.classes,
112833
- enums: schema.enums,
112834
- interfaces: schema.interfaces,
112839
+ ...postPushCompilerProject(schema),
112835
112840
  thisClass,
112836
112841
  dialogueContext: null,
112837
112842
  migrationContext: true
@@ -112939,7 +112944,7 @@ var init_registry2 = __esm({
112939
112944
  PROJECT_SCHEMA_CONTRACT = Object.freeze({
112940
112945
  formatVersion: 3,
112941
112946
  contractVersion: "3.13",
112942
- cliVersion: "0.33.1",
112947
+ cliVersion: "0.33.2",
112943
112948
  projectFileUploadBatchSize: 32,
112944
112949
  documentRecords: {
112945
112950
  member: {
@@ -116812,10 +116817,14 @@ async function runPendingMigrations(workspace, client, raw, migrations, onlyRef,
116812
116817
  const compiled = pinned !== void 0 && pinned !== null ? pinned : compileNeoScriptBodyOrThrow(
116813
116818
  () => compileNSVoidBody(migrationCode, {
116814
116819
  project: document.project,
116820
+ projectFiles: document.projectFiles,
116815
116821
  members: document.members,
116816
116822
  classes: document.classes,
116823
+ constructors: document.constructors,
116817
116824
  enums: document.enums,
116818
116825
  interfaces: document.interfaces,
116826
+ variants: document.variants,
116827
+ variantFolders: document.variantFolders,
116819
116828
  thisClass,
116820
116829
  dialogueContext: null,
116821
116830
  migrationContext: true
@@ -119534,7 +119543,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
119534
119543
  async function main() {
119535
119544
  const args = parseArgs(process.argv.slice(2));
119536
119545
  if (args.command === "--version") {
119537
- console.log("0.33.1");
119546
+ console.log("0.33.2");
119538
119547
  return;
119539
119548
  }
119540
119549
  if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.33.1",
3
+ "version": "0.33.2",
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.33.1 -->
12
+ <!-- reviewed-through-cli: 0.33.2 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -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.33.1 -->
86
+ <!-- reviewed-through-cli: 0.33.2 -->
87
87
  ```
88
88
 
89
89
  The quoted version above is checked too, so this instruction cannot go stale