@microtronics/studio-cli 1.2.0 → 1.3.0-alpha.0

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.
@@ -2002,7 +2002,7 @@ export declare namespace Dependencies {
2002
2002
  partInstalls: string[];
2003
2003
  };
2004
2004
  /**
2005
- * Normalize the `dist/blo` and `dist/pov/details` `package.json` files of every already-installed library
2005
+ * Normalize the `dist/blo`, `dist/pov/details` and `dist/dlo` `package.json` files of every already-installed library
2006
2006
  * reachable from the consumer's `libraryDependencies`/`libraryDevDependencies` (version stamping and
2007
2007
  * stripping of npm-invalid Studio-library dependency entries), walking each library's own
2008
2008
  * `libraryDependencies`/`libraryDevDependencies` transitively.
@@ -2024,7 +2024,7 @@ export declare namespace Dependencies {
2024
2024
  */
2025
2025
  export function validateMinimumBackendVersion(cwd: URI, fs: LocalFS, logger: Log.Logger): Promise<void>;
2026
2026
  /**
2027
- * Install npm dependencies in pov and blo working paths if they exist and contain a package.json.
2027
+ * Install npm dependencies in pov, blo and dlo working paths if they exist and contain a package.json.
2028
2028
  * This ensures that a single `studio install` command sets up the entire project.
2029
2029
  * If the root package.json declares npm workspaces that cover a part, the install is done once at the
2030
2030
  * project root using `npm install` instead of separately for each covered part; parts not covered by a
@@ -2043,11 +2043,13 @@ export declare namespace Dependencies {
2043
2043
  * @param cwd
2044
2044
  * @param fs
2045
2045
  * @param apmPart currently only dlo and dfiles are supported
2046
+ * @param production - set to true to exclude libraryDevDependencies, e.g. dlo-test - a dev-only
2047
+ * library must never be force-included into the shipped app (see getAll)
2046
2048
  */
2047
- export function getApmPartDependencies(cwd: URI, fs: LocalFS, apmPart: APM.Part.dlo | APM.Part.dfiles): Promise<APMPartLibrary[]>;
2049
+ export function getApmPartDependencies(cwd: URI, fs: LocalFS, apmPart: APM.Part.dlo | APM.Part.dfiles, production?: boolean): Promise<APMPartLibrary[]>;
2048
2050
  /**
2049
- * Link a library's blo/pov exports into the consuming project's part package.json files.
2050
- * After a library is extracted, check if it exports blo or pov parts and add `file:` references.
2051
+ * Link a library's blo/pov/dlo exports into the consuming project's part package.json files.
2052
+ * After a library is extracted, check if it exports blo, pov or dlo parts and add `file:` references.
2051
2053
  * @param cwd
2052
2054
  * @param fs
2053
2055
  * @param logger
@@ -2056,7 +2058,7 @@ export declare namespace Dependencies {
2056
2058
  */
2057
2059
  export function linkLibraryApmParts(cwd: URI, fs: LocalFS, logger: Log.Logger, libraryName: string, development?: boolean): Promise<void>;
2058
2060
  /**
2059
- * Unlink a library's blo/pov exports from the consuming project's part package.json files.
2061
+ * Unlink a library's blo/pov/dlo exports from the consuming project's part package.json files.
2060
2062
  * Removes `file:` references that were added by linkLibraryApmParts.
2061
2063
  * @param cwd
2062
2064
  * @param fs
@@ -2553,12 +2555,27 @@ export declare namespace DLO {
2553
2555
  export type FileSequencer = DloFileSequencer;
2554
2556
  export const PreCompiler: typeof DloPreCompiler;
2555
2557
  export type PreCompiler = DloPreCompiler;
2558
+ /** True for files pawncc compiles directly: the app main file and every *.spec.dlo. */
2559
+ export function isDloRootFile(filePath: string, manifest?: Manifest.Manifest): boolean;
2560
+ /** True for a DLO unit-test spec: `*.spec.dlo`, compiled as its own translation unit. */
2561
+ export function isDloSpecFile(filePath: string): boolean;
2562
+ /**
2563
+ * `DLO_TEST_SPEC=1` (and, if the spec source itself defines `TEST_OWN_MAIN`, `TEST_OWN_MAIN=1`
2564
+ * too) - the pawncc positional defines a `*.spec.dlo` compile needs so dlo-test.inc exposes its
2565
+ * EXPECT_* macros and `main()`. Empty for anything that is not a spec root.
2566
+ */
2567
+ export function getSpecCompileDefines(filePath: string, source?: string): string[];
2556
2568
  /**
2557
2569
  * The DLO Compiler
2558
2570
  */
2559
2571
  export const Compiler: typeof DloCompiler;
2560
2572
  export type Compiler = DloCompiler;
2561
2573
  export const uriToMemFs: typeof uriToMemFsPath;
2574
+ /**
2575
+ * Diagnostics the DLO pre-compiler produced for the files currently cached by the WASM
2576
+ * filesystem hook - i.e. everything the last compile read.
2577
+ */
2578
+ export const getPrecompilerDiagnostics: typeof getPrecompilerDiagnostics;
2562
2579
  export const parseCompilerWarningsAndErrors: typeof parseWarningsAndErrors;
2563
2580
  /**
2564
2581
  * Generate the dlo.cfg file and write it to the .studio/auto/dlo directory
@@ -2584,10 +2601,16 @@ declare class DloCompiler {
2584
2601
  diagnostics: Diagnostics.File[];
2585
2602
  }>;
2586
2603
  /**
2587
- * Run the symbol compiler and return its output lines.
2604
+ * Run the symbol compiler and return its exit code together with its output lines.
2588
2605
  * Handles WASM-specific path patching (`.` prefix for PROXYFS, `-R` flag).
2606
+ *
2607
+ * A non-zero exit code is not treated as "no output": the lines produced up to the failure are
2608
+ * still returned, so callers can publish diagnostics from them. The dump is truncated in that
2609
+ * case though - pawncc emits no `{"type": "error"}` record in `-R` mode, so the truncation is
2610
+ * not otherwise detectable - and callers must therefore not build a symbol table from a run
2611
+ * that did not exit 0.
2589
2612
  */
2590
- getDloSymbols(mainFile: string, compileOptions: string[]): Promise<string[] | null>;
2613
+ getDloSymbols(mainFile: string, compileOptions: string[]): Promise<DloSymbolDump | null>;
2591
2614
  /**
2592
2615
  * Get a symbol compiler instance with direct disk access via CUSTOM_WASM_FS.
2593
2616
  */
@@ -2620,6 +2643,14 @@ declare class DloPreCompiler {
2620
2643
  };
2621
2644
  }
2622
2645
 
2646
+ /** Result of one `pawncc -R` symbol run: its process exit code plus everything it printed. */
2647
+ declare interface DloSymbolDump {
2648
+ /** 0 when pawncc ran to completion; anything else means the dump below is truncated. */
2649
+ exitCode: number;
2650
+ /** stdout followed by stderr, one entry per line. */
2651
+ lines: string[];
2652
+ }
2653
+
2623
2654
  /**
2624
2655
  * Thin wrapper around the private `pawncc-wasm` package (bundled into the CLI
2625
2656
  * at build time, like device-master).
@@ -2737,6 +2768,9 @@ declare enum FileType {
2737
2768
  */
2738
2769
  export declare function generateDevApmId(developmentReference: string): string;
2739
2770
 
2771
+ /** Aggregates diagnostics from live cache entries so stale/removed files never linger. */
2772
+ declare function getPrecompilerDiagnostics(): Diagnostics.File[];
2773
+
2740
2774
  export declare namespace Globals {
2741
2775
  /**
2742
2776
  * Supported ENV for the studio environment