Files
Dominik Ferber e1d377c453 refactor(flags): extract framework-agnostic shared/ module
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>
2026-06-25 15:22:35 +03:00
..
2026-06-17 16:22:35 +03:00