mirror of
https://github.com/vercel/flags.git
synced 2026-09-19 03:49:23 +08:00
e1d377c453
Both flags/next and flags/sveltekit implemented the same flag pipeline twice and had drifted. This lifts the parts that are framework-agnostic (or trivially so) into src/shared/, with each framework keeping thin wrappers for its differences. Zero public API change — the generated .d.ts for flags, flags/next and flags/sveltekit are byte-identical. - shared/seal.ts: sealHeaders/sealCookies/transformToHeaders (was duplicated in next/evaluate.ts and sveltekit/index.ts) - shared/overrides.ts: readOverrides + memoized decrypt; SvelteKit now gets the override memoization Next already had. Removes next/overrides.ts. - shared/precompute.ts: combine/serialize/deserialize/generatePermutations + getPrecomputed core. Frameworks keep wrappers for secret defaulting and the getPrecomputed(flag) vs getPrecomputed(key) signatures. - shared/discovery.ts: shared authorize -> 401-or-data -> version-header control flow behind createFlagsDiscoveryEndpoint. Named "shared" rather than "core" to avoid confusion with the separate @vercel/flags-core package. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>