@penvhq/launcher 0.10.0 → 0.11.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.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,5 @@
1
- import { Environment, PenvError, ManifestEngine, PackageKind } from '@penvhq/core';
1
+ import { Environment, PenvError, ManifestEngine, PackageKind, Manifest } from '@penvhq/core';
2
+ import { InstallRuntime } from '@penvhq/cli/install';
2
3
 
3
4
  /**
4
5
  * Every byte penv downloads comes through here.
@@ -225,6 +226,10 @@ declare function bundledEngine(): Engine;
225
226
 
226
227
  /** The command that materializes everything the manifest pins. */
227
228
  declare const INSTALL_COMMAND = "penv install";
229
+ /** The command that moves the engine pin, with no version: whatever `latest` points at. */
230
+ declare const UPGRADE_COMMAND = "penv upgrade";
231
+ /** The flag that answers `upgrade`'s one question ahead of time. */
232
+ declare const YES_FLAG = "--yes";
228
233
  /** How long a package outside the official scope must have existed. */
229
234
  declare const MIN_PACKAGE_AGE_DAYS = 7;
230
235
  /** The flag that overrides {@link MIN_PACKAGE_AGE_DAYS}, and only that. */
@@ -323,10 +328,16 @@ declare class OfficialRegistryError extends PenvError {
323
328
  readonly name = "OfficialRegistryError";
324
329
  constructor(name: string, registry: string);
325
330
  }
326
- /** The registry could not be read at all. */
331
+ /**
332
+ * The registry could not be read at all.
333
+ *
334
+ * `retry` is the command that would repeat this resolution. Two commands read a
335
+ * release — `add` and `upgrade` — and a refusal that named the wrong one would
336
+ * send the reader to a command that answers a different question.
337
+ */
327
338
  declare class RegistryUnreadableError extends PenvError {
328
339
  readonly name = "RegistryUnreadableError";
329
- constructor(name: string, url: string, detail: string);
340
+ constructor(name: string, url: string, detail: string, retry?: string);
330
341
  }
331
342
  /** The registry has no such package. */
332
343
  declare class PackageUnknownError extends PenvError {
@@ -336,7 +347,7 @@ declare class PackageUnknownError extends PenvError {
336
347
  /** The package exists; the version asked for does not. */
337
348
  declare class VersionUnknownError extends PenvError {
338
349
  readonly name = "VersionUnknownError";
339
- constructor(name: string, version: string, url: string);
350
+ constructor(name: string, version: string, url: string, retry?: string);
340
351
  }
341
352
  /** The registry answered, but without a fact the manifest has to record. */
342
353
  declare class ReleaseIncompleteError extends PenvError {
@@ -401,6 +412,48 @@ declare class EnginePinMismatchError extends PenvError {
401
412
  readonly name = "EnginePinMismatchError";
402
413
  constructor(pinned: string, ran: string);
403
414
  }
415
+ /** `penv upgrade` with something other than one optional version. */
416
+ declare class UpgradeSubjectError extends PenvError {
417
+ readonly name = "UpgradeSubjectError";
418
+ constructor();
419
+ }
420
+ /** A flag `penv upgrade` does not have. */
421
+ declare class UpgradeFlagError extends PenvError {
422
+ readonly name = "UpgradeFlagError";
423
+ constructor(flag: string);
424
+ }
425
+ /** `penv upgrade` needs the registry, and `--no-download` says this run has no network. */
426
+ declare class UpgradeNoDownloadError extends PenvError {
427
+ readonly name = "UpgradeNoDownloadError";
428
+ constructor();
429
+ }
430
+ /**
431
+ * `penv upgrade` on a machine with nobody at it.
432
+ *
433
+ * Unattended, penv will move the pin only to a version somebody named and only
434
+ * with the flag that says they meant it: what upgrade rewrites is two committed
435
+ * files, and a pipeline that picks the engine is a pipeline choosing which bytes
436
+ * the project runs.
437
+ */
438
+ declare class UpgradeUnattendedError extends PenvError {
439
+ readonly name = "UpgradeUnattendedError";
440
+ constructor();
441
+ }
442
+ /** The upgrade was shown and declined. Neither committed file was touched. */
443
+ declare class UpgradeDeclinedError extends PenvError {
444
+ readonly name = "UpgradeDeclinedError";
445
+ constructor(version: string);
446
+ }
447
+ /**
448
+ * The package manager refused, so the pin stayed where it was.
449
+ *
450
+ * The dependency moves before the manifest for exactly this reason: an upgrade
451
+ * that cannot finish leaves a project pinning the engine it was already running.
452
+ */
453
+ declare class UpgradeInstallFailedError extends PenvError {
454
+ readonly name = "UpgradeInstallFailedError";
455
+ constructor(command: string);
456
+ }
404
457
  /** An installed directory with nothing runnable in it. */
405
458
  declare class EngineEntryError extends PenvError {
406
459
  readonly name = "EngineEntryError";
@@ -548,6 +601,8 @@ interface ReleaseQuery {
548
601
  readonly version?: string;
549
602
  /** Only when the package comes from somewhere other than npmjs. */
550
603
  readonly registry?: string;
604
+ /** The command that would repeat this resolution. Absent means `penv add <name>`. */
605
+ readonly retry?: string;
551
606
  readonly fetcher: Fetcher;
552
607
  }
553
608
  /** The packument's address, which an exact name can be built rather than searched. */
@@ -621,4 +676,51 @@ interface ArchiveSubject {
621
676
  /** Every regular file in an npm tarball, `package/` stripped. */
622
677
  declare function readTarball(gzipped: Uint8Array, subject: ArchiveSubject): TarEntry[];
623
678
 
624
- export { AddFlagError, AddLocalFlagError, AddLocalInCiError, AddNoDownloadError, AddNotInteractiveError, type AddOptions, AddPackageNameError, AddRegistryError, type AddResult, AddSubjectError, ArchiveError, type ArchiveSubject, BUNDLED_ENGINE_PIN, DEFAULT_REGISTRY, DEV_PIN_INTEGRITY, DEV_PIN_VERSION, DeclarationMissingError, DeclarationNotSelfContainedError, type DeclarationSubject, type Delegation, DownloadFailedError, DownloadIntegrityError, ENGINE_BIN, type Engine, EngineEntryError, EnginePinMismatchError, EnginePinUnreleasedError, ExtensionNotImportableError, type ExtensionPackage, ExtensionUnloadableError, type Fetcher, HOME_META_FILE, INSTALL_COMMAND, INTEGRITY_FILE, InstallDeclinedError, type InstallOptions, type InstallState, type Installation, LOCAL_FLAG, type LauncherIo, type LauncherOptions, LocalExtensionUnresolvedError, MIN_PACKAGE_AGE_DAYS, NPM_UPDATE_COMMAND, NoProjectError, OfficialRegistryError, PackageCorruptError, PackageMissingError, PackageTooYoungError, PackageUnknownError, type Pin, type Project, type ProviderEntry, RegistryUnreadableError, type Release, ReleaseIncompleteError, type ReleaseQuery, type Spawner, TRUST_YOUNG_FLAG, type TarEntry, TrustDeclinedError, TrustPublisherMissingError, TrustReasonMissingError, VersionUnknownError, add, assertReleasePin, bundledEngine, declarationPath, engineAt, fetchRelease, findAdoptedRoot, findProject, httpFetcher, inspectInstall, installPin, integrityOf, launcherUpdateCommand, nodeSpawner, packumentUrl, readExtensionPackage, readProviderEntries, readTarball, releaseEnginePin, renderDeclaration, runLauncher, setProviderType, tarballUrl, writeDeclaration };
679
+ /**
680
+ * `penv upgrade [version]` — the one command that moves the engine pin.
681
+ *
682
+ * It belongs to the launcher for the same reason `add` does: everything it
683
+ * writes is the launcher's. An engine cannot compute the npm integrity of its
684
+ * own tarball, and the pin is a promise about bytes, so the integrity comes from
685
+ * the registry's `dist.integrity` and from nowhere else — never hashed here, and
686
+ * never typed by a person. Before this command existed, moving the pin meant
687
+ * hand-editing a version *and* an 88-character hash into the one file whose
688
+ * whole purpose is that its bytes are verified, and a mistyped character came
689
+ * back as a supply-chain check failing closed.
690
+ *
691
+ * Two committed files move: the manifest's engine pin and the project's
692
+ * `@penvhq/penv` dependency, at the same exact version. They move together or
693
+ * not at all — one consent covers both, and the dependency lands first, so a
694
+ * package manager that refuses leaves a project still pinning the engine it was
695
+ * already running.
696
+ *
697
+ * Extensions are not touched. Each carries its own pin and its own trust
698
+ * decision, and re-pinning them because the engine moved would be penv choosing
699
+ * bytes nobody reviewed; `penv add <package>@<version>` moves one.
700
+ *
701
+ * A downgrade is an upgrade backwards and takes the same path — a pin is a pin,
702
+ * and a project that needs the engine it ran last week is not asking for
703
+ * something penv should argue with.
704
+ */
705
+
706
+ interface UpgradeOptions {
707
+ /** The tokens after `upgrade`. */
708
+ readonly argv: readonly string[];
709
+ /** The project root — the directory holding `.penv/`. */
710
+ readonly root: string;
711
+ readonly manifestFile: string;
712
+ /** The manifest as the launcher already parsed it. */
713
+ readonly manifest: Manifest;
714
+ readonly home: string;
715
+ readonly io: LauncherIo;
716
+ readonly fetcher: Fetcher;
717
+ /** The launcher's `--no-download`: this run reaches no registry at all. */
718
+ readonly noDownload?: boolean;
719
+ /** True on a CI runner, which may have a terminal and still have nobody at it. */
720
+ readonly ci?: boolean;
721
+ /** Injected in tests: how the project's dependency is installed. Never spawns there. */
722
+ readonly install?: InstallRuntime;
723
+ }
724
+ declare function upgrade(options: UpgradeOptions): Promise<void>;
725
+
726
+ export { AddFlagError, AddLocalFlagError, AddLocalInCiError, AddNoDownloadError, AddNotInteractiveError, type AddOptions, AddPackageNameError, AddRegistryError, type AddResult, AddSubjectError, ArchiveError, type ArchiveSubject, BUNDLED_ENGINE_PIN, DEFAULT_REGISTRY, DEV_PIN_INTEGRITY, DEV_PIN_VERSION, DeclarationMissingError, DeclarationNotSelfContainedError, type DeclarationSubject, type Delegation, DownloadFailedError, DownloadIntegrityError, ENGINE_BIN, type Engine, EngineEntryError, EnginePinMismatchError, EnginePinUnreleasedError, ExtensionNotImportableError, type ExtensionPackage, ExtensionUnloadableError, type Fetcher, HOME_META_FILE, INSTALL_COMMAND, INTEGRITY_FILE, InstallDeclinedError, type InstallOptions, type InstallState, type Installation, LOCAL_FLAG, type LauncherIo, type LauncherOptions, LocalExtensionUnresolvedError, MIN_PACKAGE_AGE_DAYS, NPM_UPDATE_COMMAND, NoProjectError, OfficialRegistryError, PackageCorruptError, PackageMissingError, PackageTooYoungError, PackageUnknownError, type Pin, type Project, type ProviderEntry, RegistryUnreadableError, type Release, ReleaseIncompleteError, type ReleaseQuery, type Spawner, TRUST_YOUNG_FLAG, type TarEntry, TrustDeclinedError, TrustPublisherMissingError, TrustReasonMissingError, UPGRADE_COMMAND, UpgradeDeclinedError, UpgradeFlagError, UpgradeInstallFailedError, UpgradeNoDownloadError, type UpgradeOptions, UpgradeSubjectError, UpgradeUnattendedError, VersionUnknownError, YES_FLAG, add, assertReleasePin, bundledEngine, declarationPath, engineAt, fetchRelease, findAdoptedRoot, findProject, httpFetcher, inspectInstall, installPin, integrityOf, launcherUpdateCommand, nodeSpawner, packumentUrl, readExtensionPackage, readProviderEntries, readTarball, releaseEnginePin, renderDeclaration, runLauncher, setProviderType, tarballUrl, upgrade, writeDeclaration };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { Environment, PenvError, ManifestEngine, PackageKind } from '@penvhq/core';
1
+ import { Environment, PenvError, ManifestEngine, PackageKind, Manifest } from '@penvhq/core';
2
+ import { InstallRuntime } from '@penvhq/cli/install';
2
3
 
3
4
  /**
4
5
  * Every byte penv downloads comes through here.
@@ -225,6 +226,10 @@ declare function bundledEngine(): Engine;
225
226
 
226
227
  /** The command that materializes everything the manifest pins. */
227
228
  declare const INSTALL_COMMAND = "penv install";
229
+ /** The command that moves the engine pin, with no version: whatever `latest` points at. */
230
+ declare const UPGRADE_COMMAND = "penv upgrade";
231
+ /** The flag that answers `upgrade`'s one question ahead of time. */
232
+ declare const YES_FLAG = "--yes";
228
233
  /** How long a package outside the official scope must have existed. */
229
234
  declare const MIN_PACKAGE_AGE_DAYS = 7;
230
235
  /** The flag that overrides {@link MIN_PACKAGE_AGE_DAYS}, and only that. */
@@ -323,10 +328,16 @@ declare class OfficialRegistryError extends PenvError {
323
328
  readonly name = "OfficialRegistryError";
324
329
  constructor(name: string, registry: string);
325
330
  }
326
- /** The registry could not be read at all. */
331
+ /**
332
+ * The registry could not be read at all.
333
+ *
334
+ * `retry` is the command that would repeat this resolution. Two commands read a
335
+ * release — `add` and `upgrade` — and a refusal that named the wrong one would
336
+ * send the reader to a command that answers a different question.
337
+ */
327
338
  declare class RegistryUnreadableError extends PenvError {
328
339
  readonly name = "RegistryUnreadableError";
329
- constructor(name: string, url: string, detail: string);
340
+ constructor(name: string, url: string, detail: string, retry?: string);
330
341
  }
331
342
  /** The registry has no such package. */
332
343
  declare class PackageUnknownError extends PenvError {
@@ -336,7 +347,7 @@ declare class PackageUnknownError extends PenvError {
336
347
  /** The package exists; the version asked for does not. */
337
348
  declare class VersionUnknownError extends PenvError {
338
349
  readonly name = "VersionUnknownError";
339
- constructor(name: string, version: string, url: string);
350
+ constructor(name: string, version: string, url: string, retry?: string);
340
351
  }
341
352
  /** The registry answered, but without a fact the manifest has to record. */
342
353
  declare class ReleaseIncompleteError extends PenvError {
@@ -401,6 +412,48 @@ declare class EnginePinMismatchError extends PenvError {
401
412
  readonly name = "EnginePinMismatchError";
402
413
  constructor(pinned: string, ran: string);
403
414
  }
415
+ /** `penv upgrade` with something other than one optional version. */
416
+ declare class UpgradeSubjectError extends PenvError {
417
+ readonly name = "UpgradeSubjectError";
418
+ constructor();
419
+ }
420
+ /** A flag `penv upgrade` does not have. */
421
+ declare class UpgradeFlagError extends PenvError {
422
+ readonly name = "UpgradeFlagError";
423
+ constructor(flag: string);
424
+ }
425
+ /** `penv upgrade` needs the registry, and `--no-download` says this run has no network. */
426
+ declare class UpgradeNoDownloadError extends PenvError {
427
+ readonly name = "UpgradeNoDownloadError";
428
+ constructor();
429
+ }
430
+ /**
431
+ * `penv upgrade` on a machine with nobody at it.
432
+ *
433
+ * Unattended, penv will move the pin only to a version somebody named and only
434
+ * with the flag that says they meant it: what upgrade rewrites is two committed
435
+ * files, and a pipeline that picks the engine is a pipeline choosing which bytes
436
+ * the project runs.
437
+ */
438
+ declare class UpgradeUnattendedError extends PenvError {
439
+ readonly name = "UpgradeUnattendedError";
440
+ constructor();
441
+ }
442
+ /** The upgrade was shown and declined. Neither committed file was touched. */
443
+ declare class UpgradeDeclinedError extends PenvError {
444
+ readonly name = "UpgradeDeclinedError";
445
+ constructor(version: string);
446
+ }
447
+ /**
448
+ * The package manager refused, so the pin stayed where it was.
449
+ *
450
+ * The dependency moves before the manifest for exactly this reason: an upgrade
451
+ * that cannot finish leaves a project pinning the engine it was already running.
452
+ */
453
+ declare class UpgradeInstallFailedError extends PenvError {
454
+ readonly name = "UpgradeInstallFailedError";
455
+ constructor(command: string);
456
+ }
404
457
  /** An installed directory with nothing runnable in it. */
405
458
  declare class EngineEntryError extends PenvError {
406
459
  readonly name = "EngineEntryError";
@@ -548,6 +601,8 @@ interface ReleaseQuery {
548
601
  readonly version?: string;
549
602
  /** Only when the package comes from somewhere other than npmjs. */
550
603
  readonly registry?: string;
604
+ /** The command that would repeat this resolution. Absent means `penv add <name>`. */
605
+ readonly retry?: string;
551
606
  readonly fetcher: Fetcher;
552
607
  }
553
608
  /** The packument's address, which an exact name can be built rather than searched. */
@@ -621,4 +676,51 @@ interface ArchiveSubject {
621
676
  /** Every regular file in an npm tarball, `package/` stripped. */
622
677
  declare function readTarball(gzipped: Uint8Array, subject: ArchiveSubject): TarEntry[];
623
678
 
624
- export { AddFlagError, AddLocalFlagError, AddLocalInCiError, AddNoDownloadError, AddNotInteractiveError, type AddOptions, AddPackageNameError, AddRegistryError, type AddResult, AddSubjectError, ArchiveError, type ArchiveSubject, BUNDLED_ENGINE_PIN, DEFAULT_REGISTRY, DEV_PIN_INTEGRITY, DEV_PIN_VERSION, DeclarationMissingError, DeclarationNotSelfContainedError, type DeclarationSubject, type Delegation, DownloadFailedError, DownloadIntegrityError, ENGINE_BIN, type Engine, EngineEntryError, EnginePinMismatchError, EnginePinUnreleasedError, ExtensionNotImportableError, type ExtensionPackage, ExtensionUnloadableError, type Fetcher, HOME_META_FILE, INSTALL_COMMAND, INTEGRITY_FILE, InstallDeclinedError, type InstallOptions, type InstallState, type Installation, LOCAL_FLAG, type LauncherIo, type LauncherOptions, LocalExtensionUnresolvedError, MIN_PACKAGE_AGE_DAYS, NPM_UPDATE_COMMAND, NoProjectError, OfficialRegistryError, PackageCorruptError, PackageMissingError, PackageTooYoungError, PackageUnknownError, type Pin, type Project, type ProviderEntry, RegistryUnreadableError, type Release, ReleaseIncompleteError, type ReleaseQuery, type Spawner, TRUST_YOUNG_FLAG, type TarEntry, TrustDeclinedError, TrustPublisherMissingError, TrustReasonMissingError, VersionUnknownError, add, assertReleasePin, bundledEngine, declarationPath, engineAt, fetchRelease, findAdoptedRoot, findProject, httpFetcher, inspectInstall, installPin, integrityOf, launcherUpdateCommand, nodeSpawner, packumentUrl, readExtensionPackage, readProviderEntries, readTarball, releaseEnginePin, renderDeclaration, runLauncher, setProviderType, tarballUrl, writeDeclaration };
679
+ /**
680
+ * `penv upgrade [version]` — the one command that moves the engine pin.
681
+ *
682
+ * It belongs to the launcher for the same reason `add` does: everything it
683
+ * writes is the launcher's. An engine cannot compute the npm integrity of its
684
+ * own tarball, and the pin is a promise about bytes, so the integrity comes from
685
+ * the registry's `dist.integrity` and from nowhere else — never hashed here, and
686
+ * never typed by a person. Before this command existed, moving the pin meant
687
+ * hand-editing a version *and* an 88-character hash into the one file whose
688
+ * whole purpose is that its bytes are verified, and a mistyped character came
689
+ * back as a supply-chain check failing closed.
690
+ *
691
+ * Two committed files move: the manifest's engine pin and the project's
692
+ * `@penvhq/penv` dependency, at the same exact version. They move together or
693
+ * not at all — one consent covers both, and the dependency lands first, so a
694
+ * package manager that refuses leaves a project still pinning the engine it was
695
+ * already running.
696
+ *
697
+ * Extensions are not touched. Each carries its own pin and its own trust
698
+ * decision, and re-pinning them because the engine moved would be penv choosing
699
+ * bytes nobody reviewed; `penv add <package>@<version>` moves one.
700
+ *
701
+ * A downgrade is an upgrade backwards and takes the same path — a pin is a pin,
702
+ * and a project that needs the engine it ran last week is not asking for
703
+ * something penv should argue with.
704
+ */
705
+
706
+ interface UpgradeOptions {
707
+ /** The tokens after `upgrade`. */
708
+ readonly argv: readonly string[];
709
+ /** The project root — the directory holding `.penv/`. */
710
+ readonly root: string;
711
+ readonly manifestFile: string;
712
+ /** The manifest as the launcher already parsed it. */
713
+ readonly manifest: Manifest;
714
+ readonly home: string;
715
+ readonly io: LauncherIo;
716
+ readonly fetcher: Fetcher;
717
+ /** The launcher's `--no-download`: this run reaches no registry at all. */
718
+ readonly noDownload?: boolean;
719
+ /** True on a CI runner, which may have a terminal and still have nobody at it. */
720
+ readonly ci?: boolean;
721
+ /** Injected in tests: how the project's dependency is installed. Never spawns there. */
722
+ readonly install?: InstallRuntime;
723
+ }
724
+ declare function upgrade(options: UpgradeOptions): Promise<void>;
725
+
726
+ export { AddFlagError, AddLocalFlagError, AddLocalInCiError, AddNoDownloadError, AddNotInteractiveError, type AddOptions, AddPackageNameError, AddRegistryError, type AddResult, AddSubjectError, ArchiveError, type ArchiveSubject, BUNDLED_ENGINE_PIN, DEFAULT_REGISTRY, DEV_PIN_INTEGRITY, DEV_PIN_VERSION, DeclarationMissingError, DeclarationNotSelfContainedError, type DeclarationSubject, type Delegation, DownloadFailedError, DownloadIntegrityError, ENGINE_BIN, type Engine, EngineEntryError, EnginePinMismatchError, EnginePinUnreleasedError, ExtensionNotImportableError, type ExtensionPackage, ExtensionUnloadableError, type Fetcher, HOME_META_FILE, INSTALL_COMMAND, INTEGRITY_FILE, InstallDeclinedError, type InstallOptions, type InstallState, type Installation, LOCAL_FLAG, type LauncherIo, type LauncherOptions, LocalExtensionUnresolvedError, MIN_PACKAGE_AGE_DAYS, NPM_UPDATE_COMMAND, NoProjectError, OfficialRegistryError, PackageCorruptError, PackageMissingError, PackageTooYoungError, PackageUnknownError, type Pin, type Project, type ProviderEntry, RegistryUnreadableError, type Release, ReleaseIncompleteError, type ReleaseQuery, type Spawner, TRUST_YOUNG_FLAG, type TarEntry, TrustDeclinedError, TrustPublisherMissingError, TrustReasonMissingError, UPGRADE_COMMAND, UpgradeDeclinedError, UpgradeFlagError, UpgradeInstallFailedError, UpgradeNoDownloadError, type UpgradeOptions, UpgradeSubjectError, UpgradeUnattendedError, VersionUnknownError, YES_FLAG, add, assertReleasePin, bundledEngine, declarationPath, engineAt, fetchRelease, findAdoptedRoot, findProject, httpFetcher, inspectInstall, installPin, integrityOf, launcherUpdateCommand, nodeSpawner, packumentUrl, readExtensionPackage, readProviderEntries, readTarball, releaseEnginePin, renderDeclaration, runLauncher, setProviderType, tarballUrl, upgrade, writeDeclaration };
package/dist/index.js CHANGED
@@ -42,7 +42,15 @@ import {
42
42
  TrustDeclinedError,
43
43
  TrustPublisherMissingError,
44
44
  TrustReasonMissingError,
45
+ UPGRADE_COMMAND,
46
+ UpgradeDeclinedError,
47
+ UpgradeFlagError,
48
+ UpgradeInstallFailedError,
49
+ UpgradeNoDownloadError,
50
+ UpgradeSubjectError,
51
+ UpgradeUnattendedError,
45
52
  VersionUnknownError,
53
+ YES_FLAG,
46
54
  add,
47
55
  assertReleasePin,
48
56
  bundledEngine,
@@ -66,8 +74,9 @@ import {
66
74
  runLauncher,
67
75
  setProviderType,
68
76
  tarballUrl,
77
+ upgrade,
69
78
  writeDeclaration
70
- } from "./chunk-BNUZ52VN.js";
79
+ } from "./chunk-USYQEKPW.js";
71
80
  export {
72
81
  AddFlagError,
73
82
  AddLocalFlagError,
@@ -112,7 +121,15 @@ export {
112
121
  TrustDeclinedError,
113
122
  TrustPublisherMissingError,
114
123
  TrustReasonMissingError,
124
+ UPGRADE_COMMAND,
125
+ UpgradeDeclinedError,
126
+ UpgradeFlagError,
127
+ UpgradeInstallFailedError,
128
+ UpgradeNoDownloadError,
129
+ UpgradeSubjectError,
130
+ UpgradeUnattendedError,
115
131
  VersionUnknownError,
132
+ YES_FLAG,
116
133
  add,
117
134
  assertReleasePin,
118
135
  bundledEngine,
@@ -136,6 +153,7 @@ export {
136
153
  runLauncher,
137
154
  setProviderType,
138
155
  tarballUrl,
156
+ upgrade,
139
157
  writeDeclaration
140
158
  };
141
159
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@penvhq/launcher",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "The stable penv launcher: it verifies the engine your project pins and hands over the command.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,8 +22,8 @@
22
22
  ],
23
23
  "dependencies": {
24
24
  "zod": "4.4.3",
25
- "@penvhq/cli": "0.10.0",
26
- "@penvhq/core": "0.10.0"
25
+ "@penvhq/cli": "0.11.0",
26
+ "@penvhq/core": "0.11.0"
27
27
  },
28
28
  "scripts": {
29
29
  "build": "tsup"