Merge main

This commit is contained in:
Chris Tate
2026-10-19 08:31:43 -05:00
493 changed files with 18735 additions and 4583 deletions
@@ -49,6 +49,7 @@ export interface EarlyExecutableNativeFeatures {
/** Omitted is the historical release posture. */
optimization?: "dev" | "speed";
workers?: boolean;
youngNursery?: boolean;
regex: boolean;
copying: boolean;
textDecoderLegacy: boolean;
@@ -112,6 +113,8 @@ export interface EarlyExecutableCacheOptions {
windowsSubsystem?: "gui";
/** Omitted unless --detached-exit is set. */
detachedExit?: true;
/** Omitted unless SCRIPTC_YOUNG_NURSERY=1 (backend/young-nursery.ts). */
youngNursery?: true;
npmStatic: readonly string[] | "auto" | null;
/** Raw manifest identity: path and bytes. Native archives remain under the
* stricter native cache's independent dependency validation. */
@@ -202,7 +205,8 @@ function validNativeFeatures(value: unknown): value is EarlyExecutableNativeFeat
(native.optimization === undefined ||
native.optimization === "dev" ||
native.optimization === "speed") &&
(native.workers === undefined || typeof native.workers === "boolean"),
(native.workers === undefined || typeof native.workers === "boolean") &&
(native.youngNursery === undefined || typeof native.youngNursery === "boolean"),
);
}
@@ -223,6 +227,7 @@ function cacheKey(options: EarlyExecutableCacheOptions): string {
...(options.strip ? ["strip"] : []),
...(options.windowsSubsystem === "gui" ? ["windows-subsystem-gui"] : []),
...(options.detachedExit ? ["detached-exit"] : []),
...(options.youngNursery ? ["young-nursery"] : []),
options.npmStatic === null
? "<npm-static-off>"
: options.npmStatic === "auto"
@@ -262,6 +267,7 @@ function routeKey(options: Omit<EarlyExecutableRouteOptions, "nativeEnvironment"
if (options.strip) hash.update("strip\0");
if (options.windowsSubsystem === "gui") hash.update("windows-subsystem-gui\0");
if (options.detachedExit) hash.update("detached-exit\0");
if (options.youngNursery) hash.update("young-nursery\0");
hash
.update(
options.npmStatic === null