@microtronics/studio-cli 1.1.0-alpha.2 → 1.1.0-alpha.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.
@@ -1972,6 +1972,19 @@ export declare namespace Dependencies {
1972
1972
  rootInstall: boolean;
1973
1973
  partInstalls: string[];
1974
1974
  };
1975
+ /**
1976
+ * Normalize the `dist/blo` and `dist/pov/details` `package.json` files of every already-installed library
1977
+ * reachable from the consumer's `libraryDependencies`/`libraryDevDependencies` (version stamping and
1978
+ * stripping of npm-invalid Studio-library dependency entries), walking each library's own
1979
+ * `libraryDependencies`/`libraryDevDependencies` transitively.
1980
+ * This fixes already-published libraries whose dist part files were never touched by a build with this fix.
1981
+ * A library not yet installed under `.studio/libdeps` is skipped silently. Errors normalizing an individual
1982
+ * library are logged and skipped - this must never break an install.
1983
+ * @param cwd
1984
+ * @param fs
1985
+ * @param logger
1986
+ */
1987
+ export function normalizeInstalledLibraryParts(cwd: URI, fs: LocalFS, logger: Log.Logger): Promise<void>;
1975
1988
  /**
1976
1989
  * Install npm dependencies in pov and blo working paths if they exist and contain a package.json.
1977
1990
  * This ensures that a single `studio install` command sets up the entire project.
@@ -2475,7 +2488,9 @@ export declare enum HttpMethod {
2475
2488
  * workspaces that cover a part, the npm dependencies are installed once at the project root instead of
2476
2489
  * separately for each covered part; parts not covered by any workspace pattern are still installed
2477
2490
  * individually. `npm install` is used instead of `npm ci` when no package-lock.json exists, or as a
2478
- * fallback when the lockfile is out of sync with package.json.
2491
+ * fallback when the lockfile is out of sync with package.json. Before that, every already-installed library's
2492
+ * `dist/blo`/`dist/pov/details` `package.json` is normalized to the library's `studio.json` version and stripped
2493
+ * of any npm dependency entries that reference other Studio libraries.
2479
2494
  *
2480
2495
  * @param {URI} cwd - The current working directory where the installation process takes place.
2481
2496
  * @param {LocalFS} fs - The file system interface used for managing files during the installation process.
@@ -2697,6 +2712,15 @@ export declare namespace Manifest {
2697
2712
  * @param fs
2698
2713
  */
2699
2714
  export function readAsBlob(cwd: URI, fs: LocalFS): Promise<Uint8Array>;
2715
+ /**
2716
+ * Read the studio.json manifest of an installed library, uncached and without the CLI's global `overwrites`
2717
+ * applied. Use this (instead of `read`) for reading manifests of installed libraries under `.studio/libdeps/`:
2718
+ * `read` returns a manifest deep-merged with CLI-flag overwrites (e.g. `--version`) meant for the current
2719
+ * project, which must never leak onto a library's own manifest.
2720
+ * @param cwd
2721
+ * @param fs
2722
+ */
2723
+ export function readRaw(cwd: URI, fs: LocalFS): Promise<Manifest>;
2700
2724
  /**
2701
2725
  * Write the manifest to the workspace
2702
2726
  * @param cwd