/** * Release Asset Manifest — shared constants. * * @module release-assets/constants */ /** Current manifest body schema version. */ export declare const RELEASE_ASSET_MANIFEST_SCHEMA_VERSION: 2; /** Public asset base path served on the project's own domain (proxy-owned). */ export declare const RELEASE_ASSET_BASE_PATH: "/_vf/assets"; /** Content types permitted for release assets. */ export declare const RELEASE_ASSET_CONTENT_TYPES: Readonly<{ readonly js: "text/javascript"; readonly css: "text/css"; }>; /** File extensions supported by the immutable release asset endpoint. */ export type ReleaseAssetExtension = keyof typeof RELEASE_ASSET_CONTENT_TYPES; /** MIME types accepted for immutable release asset uploads and responses. */ export type ReleaseAssetContentType = (typeof RELEASE_ASSET_CONTENT_TYPES)[ReleaseAssetExtension]; /** Allowlist of accepted content types (upstream + upload validation). */ export declare const RELEASE_ASSET_CONTENT_TYPE_ALLOWLIST: readonly ReleaseAssetContentType[]; /** Maximum size (bytes) for a single uploaded asset (10 MB). */ export declare const RELEASE_ASSET_MAX_SIZE_BYTES: number; /** Maximum aggregate bytes retained while preparing one asset generation. */ export declare const RELEASE_ASSET_MAX_PENDING_BYTES: number; /** Work and memory bounds enforced by every manifest producer and consumer. */ export declare const RELEASE_ASSET_MANIFEST_LIMITS: Readonly<{ readonly identifierLength: 256; readonly builderVersionLength: 128; readonly manifestKeyLength: 2048; readonly styleProfileHashLength: 64; readonly cssPipelineIdentityLength: 2048; readonly coverageFailureLength: 4096; readonly moduleEntries: 20000; readonly dependencyEntries: 10000; readonly dependencySpecifiers: 40000; readonly cssEntries: 1; readonly routeEntries: 20000; readonly routeModules: 20000; readonly routeCssEntries: 1; readonly coverageFailures: 20000; readonly totalRouteReferences: 200000; }>; /** Immutable cache max-age in seconds (1 year). */ export declare const RELEASE_ASSET_IMMUTABLE_MAX_AGE_SECONDS = 31536000; /** Query param that scopes fallback module URLs to an immutable release. */ export declare const RELEASE_MODULE_VERSION_PARAM: "vf_release"; /** Query param that scopes fallback module URLs to the Veryfront runtime build. */ export declare const RELEASE_MODULE_RUNTIME_VERSION_PARAM: "vf_runtime"; /** Bounded upload concurrency when posting assets during a build. */ export declare const RELEASE_ASSET_UPLOAD_CONCURRENCY = 8; /** Env flag that enables HTML manifest consumption in production (default OFF). */ export declare const RELEASE_ASSET_MANIFEST_ENV_FLAG = "VERYFRONT_RELEASE_ASSET_MANIFEST"; /** Env flag that enables manifest dependency import-map rewrites (default OFF). */ export declare const RELEASE_ASSET_DEPENDENCY_IMPORT_MAP_ENV_FLAG = "VERYFRONT_RELEASE_ASSET_DEPENDENCY_IMPORT_MAP"; /** Env flag that enables dependency version pinning for bare npm imports (default OFF). */ export declare const DEPENDENCY_PINNING_ENV_FLAG = "VERYFRONT_DEPENDENCY_PINNING"; /** Map a 64-hex content hash + extension to its public asset URL. */ export declare function releaseAssetUrl(contentHash: string, extension: ReleaseAssetExtension): string; /** Resolve the content type for an extension, or null if not allowed. */ export declare function contentTypeForExtension(extension: string): ReleaseAssetContentType | null; /** True when the value is a valid allowlisted release asset content type. */ export declare function isAllowedReleaseAssetContentType(value: string | null | undefined): value is ReleaseAssetContentType; /** Validate a content hash is exactly 64 lowercase hex characters. */ export declare function isValidContentHash(hash: string): boolean; //# sourceMappingURL=constants.d.ts.map