/*! * @license * Copyright Squiz Australia Pty Ltd. All Rights Reserved. */ export const SUPPORTED_RUNTIME_IMAGES = ['node:20', 'node:24'] as const; // Default for jobs that pre-date runtime image support. export const LEGACY_RUNTIME_IMAGE = 'node:20'; export const RECOMMENDED_RUNTIME_IMAGE = 'node:24'; // Still runnable but rejected on new uploads. export const DEPRECATED_RUNTIME_IMAGES: readonly string[] = []; export const getRuntimeImageOrDefault = (image: string | null | undefined): string => image === null || image === undefined ? LEGACY_RUNTIME_IMAGE : image; export const isSupportedRuntimeImage = (image: string): boolean => (SUPPORTED_RUNTIME_IMAGES as readonly string[]).includes(image); export const isDeprecatedRuntimeImage = (image: string): boolean => DEPRECATED_RUNTIME_IMAGES.includes(image); export const getRuntimeImagesMetadata = () => ({ supportedRuntimeImages: [...SUPPORTED_RUNTIME_IMAGES], deprecatedRuntimeImages: [...DEPRECATED_RUNTIME_IMAGES], recommendedRuntimeImage: RECOMMENDED_RUNTIME_IMAGE, });