Commit Graph

147 Commits

Author SHA1 Message Date
github-actions[bot] 783b9efdda Version Packages (#312)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-09 12:29:55 +01:00
Luis Meyer 10c10b6aa4 Return meaningful result from prepareFlagsDefinitions (#311)
* Return meaningful result from prepareFlagsDefinitions

- Add PrepareFlagsDefinitionsResult discriminated union type that indicates whether definitions were created
- Change prepareFlagsDefinitions return type from Promise<void> to Promise<PrepareFlagsDefinitionsResult>
- Return { created: false, reason: 'no-sdk-keys' } when no SDK keys are found
- Return { created: true, sdkKeysCount: N } when definitions are successfully created
- Add tests for both return paths to verify the function communicates its result properly

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* Add changeset for prepareFlagsDefinitions result type

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-09 12:25:55 +01:00
Dominik Ferber 05a5ebfda1 Add userAgentSuffix to prepare-flags-definitions (#306)
* Replace version param with userAgentSuffix in prepare-flags-definitions

Changed the API to use a cleaner approach:
- Removed `version?: string` option in favor of `userAgentSuffix?: string`
- Now imports package version directly from package.json
- Constructs user-agent as: `@vercel/prepare-flags-definitions/{pkgVersion} {suffix}`
- Allows consumers (e.g., vercel-cli, vercel-api) to add context to the header

Added tests verifying both default and suffixed user-agent headers.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* add changeset

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-09 11:18:51 +00:00
Dominik Ferber e8539cd52a make version dynamic in tests (#304) 2026-03-06 12:02:03 +00:00
github-actions[bot] c1fbe2f19d Version Packages (#284)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-06 13:57:18 +02:00
Dominik Ferber 3f3ec2bbe2 Revert "fix main export (#302)" (#303)
This reverts commit 62afa7f64e.
2026-03-06 10:13:44 +00:00
Dominik Ferber 62afa7f64e fix main export (#302) 2026-03-06 09:42:16 +00:00
Luis Meyer 96ba1226c8 Extract @vercel/prepare-flags-definitions package (#301)
* Extract @vercel/prepare-flags-definitions package

Extract the core flag definitions preparation logic from the Vercel CLI into a standalone, reusable package. This includes:
- prepareFlagsDefinitions() function that collects SDK keys from env, fetches definitions, and writes to node_modules
- hashSdkKey() helper for SHA-256 hashing
- generateDefinitionsModule() for JS module generation with deduplication and lazy parsing

Follows repo conventions: pnpm workspaces, tsup, vitest, ES modules with CJS fallback.

* Add JSDoc comments from original CLI source

* Add inline comments from original CLI source

* Add optional output parameter with debug logging

* Add output.time for datafile fetching

* Add changeset for @vercel/prepare-flags-definitions
2026-03-06 10:10:01 +01:00
Dominik Ferber b70c2ea466 Control (#278)
* refactor

* remove retries

* simplify

* simplify options

* before

* rename DataSource to Controller

* refactor and better tests

* avoid double polling

* rename

* fix

* simplify test setup

* wip

* unify

* wip

* only track 1 read per build

* make BundledSource lazy

* clean up fallback behavior

* add mode

* mutually exclusive streaming & polling

* rely more on black box testing

* simplify

* Update CLAUDE.md

* various fixes

* add tests

* more fixes

* Update CLAUDE.md

* more fixes

* resolve more issues

* unite black box tests

* tests

* progress

* adjust

* don't report on 401s; use Response.json

* enforce min polling interval

* progress

* types

* capture all logs

* throw with prefix

* added a minimum gap of `BASE_DELAY_MS` (1 second) between connection
 attempts

* step

* progress

* use request context in tests

* add separate tests depending on context

* tests

* rm unused option

* add state machine chart

* rm sources

* use fake timers for more tests

* swap remaining tests from msw to mocked fetch

* update comments

* Update CLAUDE.md

* update comment

* fix comment

* fix types

* rm peek

* adds ping checks and sending x-revision header  (#282)

* abort on missed pings

* use revision from bundled definitions

* tests

* simplify

* send x-revsion on reconnects too

* simplify StreamSource

* rename

* rename in test

* wait for stream

* replace startBackgroundUpdates with explicit call

* Update CLAUDE.md

* restore stronger tests

* Update CLAUDE.md

* convert

* simplify tests

* fix test

* fixes

* rm state machine

* await first poll before resoliving init

* rm outdated comment

* avoid leaking _origin

* changeset

* avoid log on reconnect due to missed pings

* don't warn on missed pings

* Update event reporting for control rewrite (#289)

* Update event reporting for control rewrite

* Log ingest response

* Use string for revision

* Add retries when ingesting events

* adapt changeset

* adjust test

---------

Co-authored-by: Luis Meyer <luis.meyer@vercel.com>
Co-authored-by: Andy <AndyBitz@users.noreply.github.com>
Co-authored-by: Andy Bitz <artzbitz@gmail.com>
2026-03-06 10:05:01 +02:00
Vincent Derks 722b0d054e Added new comparators: (not_)contains and case-insensitive versions (#288)
* Added new comparators: (not_)contains and case-insensitive versions

* Switched to "ci" option instead of creating new condition for every ci-case

* Cleanup

* More cleanup

* Some more cleanup & finetuning

Made-with: Cursor

* Changeset

* Switch options key to just "i" and also allow for passing "i" as string instead of options object

* Apply suggestions from code review

* Update packages/vercel-flags-core/src/evaluate.ts

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>

* naming

* Renaming

---------

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2026-03-06 07:52:32 +02:00
Vincent Derks 689b1575f6 Flags core as normal dep (#298)
* Changed @vercel/flags-core to dependency from peerDependency

* Updated docs and skills

* More explanation

* Updated skill with singleton explanation and example

* update README

* FLAGS_SDK_KEY → FLAGS

* update skill

* update changeset

---------

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2026-03-05 12:53:04 +01:00
Vincent Derks a924044282 Fixed bug with inverted NOT_ONE_OF segment comparator (#296)
* Fixed bug with inverted NOT_ONE_OF segment comparator

* Feedback

* Changeset

* Updated unit-test
2026-03-05 10:52:50 +01:00
Luis Meyer 823bf786c1 Add CJS support for @vercel/flags-core (#283)
* Add CJS support for @vercel/flags-core

Update tsup config to build both ESM and CJS formats, and update package.json exports to use import/require conditions with separate entry points for CommonJS consumers.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* changeset

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-24 17:13:52 +01:00
github-actions[bot] fa58c6900d Version Packages (#275)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-13 15:19:35 +02:00
Dominik Ferber 7d7719a255 [@vercel/flags-core] deduplicate concurrent initialize() calls (#274)
* add shop

* wip

* fix parallel init initialize

* avoid double polling

* add tests

* rm shirt-shop-vercel

* ignore

* refactor

* rm unnecessary fix

* minimal

* changeset

* fix tests
2026-02-13 14:34:46 +02:00
Hayden Bleasel cf9ccd0076 Open Source Docs (#272)
* Scaffold Geistdocs instance

* Update biome.json

* Replace content

* Re-path docs

* Update docs package name

* Misc fixes

* Update geistdocs.tsx

* Move content to correct folder

* Start migrating custom components

* Finish migrating custom components

* Migrate existing redirects

* Remove #next suffixes from code blocks

* Migrate homepage and flags

* Remove duplicate lockfiles

* Start fixing homepage

* Replace Geist components

* Fix colors

* Improve layout

* Fix code blocks

* Fix hero

* Fix illustrations

* Fix redirect

* Fix nav links

* Patch in FrameworkSwitcher

* Bump Next.js in docs

* Delete turbo.json

* Misc fixes

* More logo fixes
2026-02-13 09:06:03 +02:00
github-actions[bot] 47806d4f89 Version Packages (#260)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-11 15:55:44 +02:00
Dominik Ferber 2bfaada64c Revert "add primed stream message support (#263)" (#270)
This reverts commit 8ae9101ba9.
2026-02-11 15:40:45 +02:00
Dominik Ferber c71729b37f add READMEs and changesets (#265)
* add READMEs

* add changesets
2026-02-11 15:23:22 +02:00
Dominik Ferber f14aea8e73 respect hashed keys (#267)
* respect hashed keys

* use cache for pending promises

* refactor

* add try/catch

* typo
2026-02-11 15:22:07 +02:00
Luis Meyer 8ae9101ba9 add primed stream message support (#263)
* add primed stream message support

Implements client-side support for version-based caching. When the client
already has the current datafile (indicated by revision), the server can
send a lightweight primed message instead of the full datafile, reducing
bandwidth. Tracks revision from datafile and sends X-Revision header on
reconnections.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* use getRevision getter for single source of truth and fix type errors

Refactors StreamConfig.revision to a getRevision getter function so
connectStream always reads the latest revision from client state instead
of tracking a separate copy. Fixes CI type-check errors in tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-11 12:51:54 +01:00
Andy 84714c3b91 [vercel-flags-core] Forward configUpdatedAt timestamp correctly (#266) 2026-02-11 12:50:07 +01:00
Luis Meyer 5e2d095863 Suppress stream abort error on intentional shutdown (#264)
When shutdown() is called on a client using FlagNetworkDataSource, the stream abort error is expected and should not be logged. The break statement still exits the loop properly.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-11 12:45:42 +01:00
Dominik Ferber d44a9229e3 pass default openfeature client (#261) 2026-02-11 12:52:29 +02:00
Luis Meyer be1a323486 Add custom fetch option to flags client (#262)
* Add custom fetch option to flags client

Allow passing a custom fetch function to createClient() for testing purposes (e.g. resolving to a different IP). Threads fetch through FlagNetworkDataSource, fetchDatafile(), and connectStream().

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* changeset

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-10 09:50:40 +01:00
Dominik Ferber 795dfd46a1 throw on declaration if flag is missing decide function (#259) 2026-02-09 13:28:41 +02:00
Dominik Ferber d8c366c484 avoid replacing datafiles with older ones (#257)
* avoid replacing datafiles with older ones

* fix types

* fix types

* fix test
2026-02-09 12:39:42 +02:00
Dominik Ferber 19d6ad394a export FallbackEntryNotFoundError and FallbackNotFoundError (#256) 2026-02-09 11:48:11 +02:00
Dominik Ferber 53149f5e81 add client (#255)
* prepare

* origin

* prepare script

* step

* redo peer deps

* wip

* continue

* every 5 secs

* connect flag network

* add shirt-shop-vercel

* upgrade

* push

* update endpoint

* add vercel getProviderData

* fix importts

* Add retries to flag network datasource (#237)

* Fix React Server Components CVE vulnerabilities (#235)

Updated dependencies to fix Next.js and React CVE vulnerabilities.

The fix-react2shell-next tool automatically updated the following packages to their secure versions:
- next
- react-server-dom-webpack
- react-server-dom-parcel  
- react-server-dom-turbopack

All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>

* Add retries to flag network datasource when stream closes

Implements automatic retry logic with exponential backoff when the flag network
stream unexpectedly closes. The stream will retry with delays increasing from
1s to a maximum of 30s, allowing the datasource to recover from temporary
network issues while falling back to bundled definitions if initial connection
fails.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* Revert package.json and pnpm-lock changes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>

* use ndjson (#238)

* try

* try

* use debugLog

* replace testkey

* never retry on 4xx

* Track FLAG_CONFIG_READ events

* update @biomejs/biome

* send user-agent, rm terminate handling, fix tests

* extract usage-tracker and add tests

* rm EdgeConfigDataSource

* export EvaluationParams and EvaluationResult

* drop edge-config dep

* drop edge config from @flags-sdk/vercel

* adapt @flags-sdk/vercel

* fix integration tests

* wip

* assert ingest requests

* race initial connection, retry in background, abort on shutdown

* rm store

* make readBundledDefinitions async

* read from @vercel/flags-definitions/definitions.json

* add ensureFallback fn

* getDefaultFlagsClient() → flagsClient

* rm process.pid

* rm webpackIgnore: true

* require fallbacks at build time on vercel only

* test in layout

* vercel-flags prepare --verbose

* rm prebuild script

* ensure fallback from instrumentation.ts

* rm last process.pid

* print warning

* Track duration and cache status for config reads

* add tests

* await stream in initialize method

* consumeStream → runStreamLoop

* replace subscribe with doInitialize

* add webpackIgnore

* make @vercel/flags-core a peer dep

* fresh start

* debug

* step

* next-connection

* avoid opening stream during builds

* undo next specific exports

* handle abort

* fake

* poc

* clean up imports

* next-js exports

* upgrade next

* move "use cache" up

* move "use cache" handling to client

* split index.default.ts and index.next-js.ts

* separate

* jsdoc

* use scoped map instead of passing ref

* move jsdoc

* rename

* keep dataSource private, clean clientMap

* reset retryCount on connection; abort on 401

* break after 10 retries

* add backoff with jitter + limit

* add usage tracking and read fallback

* refactor

* extract stream-connection, update tests

* add tests

* reduce test amount

* add perf metadata

* add BaseEvaluationResult

* getData → read

* rm shirt-shop-vercel

* drop next-connection

* update pnpm-lock

* getMetadata → getInfo

* add getDatafile

* DataSourceData → Datafile

* merge metrics into datafile

* simplify metrics

* use embed for getDatafile

* add comment

* comment

* bring shirt-shop-vercel back

* try setCacheLife

* support cache components in OpenFeature import

* use new format

* rm cli

* fix origin

* use bundler

* simplify

* ensure warning is highlighted in build logs

* warn only once

* ensureFallback → getFallbackDatafile

* improve perf

* avoid creating new objects

* fix type issues

* stop exposing createRawClient

* fix: mark stream reconnection loop as intentional fire-and-forget

Add void operator before async IIFE to explicitly indicate the floating
promise is intentional, preventing linter warnings and making the code
intent clearer to future maintainers.

* fix: handle malformed JSON in stream messages gracefully

Wrap JSON.parse in try/catch to prevent crashes from malformed server
responses. Logs a warning and skips the invalid message instead of
crashing the stream connection handler.

* fix: add bounds checking for variant index access

Add getVariant() helper that throws a descriptive error if the variant
index is out of bounds. This prevents silent undefined returns when
variant indices are invalid, making issues easier to debug in production.

* fix: prevent concurrent initialization race condition

Add initializingPromise to coordinate concurrent initialize() calls.
The fast boolean check is preserved for the hot path, while concurrent
calls during initialization now await the same promise instead of
triggering multiple initializations.

* fix: add timeout and retry logic to fetchDatafile

- Add 10-second timeout using AbortController to prevent indefinite hangs
- Add exponential backoff retry (up to 3 attempts) for transient failures
- Skip retries for 4xx client errors (except 429 rate limiting)
- Improves resilience against network issues in production

* fix: prevent race condition in ensureStream

Use local variable for abortController and store streamPromise
immediately after creation. This prevents concurrent calls from
creating multiple streams or overwriting the abort controller
before the promise is stored.

* fix: prevent race condition in read() by capturing data reference

Capture this.data reference at the start of read() to ensure consistent
state throughout the method. The onMessage callback from the stream can
update this.data during async operations, which could cause inconsistent
behavior if the reference changes mid-operation.

* comments

* add streaming connectionState

* update usage

* fix init

* try to avoid hanging promise

* update attw, add types

* get rid of unnecessary async/await

* avoid printing the warning

* distinct warnings

* don't export cachedFns

* add CLAUDE.md

* jsdoc

* clear timeout

* export Datafile

* avoid exposing data sources

* simplify

* types

* avoid dangling timeout

* more options

* tests

* allow options in createClient

* DatafileInput

* better options

* Update event tracking to use streams

* Revert "Update event tracking to use streams"

This reverts commit cff740a18c.

* fix datafile input type

* type

* handle shutdown and re-init

* defensive

* retry stream for up to 15 minutes

* Update event reporting to use ndjson for more events

* Revert "Update event reporting to use ndjson for more events"

This reverts commit f70a7bfc59.

* Add debug logs to the usage tracker

* [adapter-vercel] fix getProviderData

* [adapter-vercel] only return vercel flags from getProviderData

* fix

* rm getInfo

* rm tgz

* rm example

* rm next/connection from gitignore

* rm unused deps

* use DatafileInput type

* fix tests

* ensure pollCount > 0

* fix type issues

* fix retry logic

* upgrade @sveltejs/kit

* resolve ci issues

---------

Co-authored-by: Luis Meyer <luis.meyer@vercel.com>
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Co-authored-by: Andy Bitz <artzbitz@gmail.com>
2026-02-09 11:45:00 +02:00
Vincent Derks 170364de7e Updated rimraf to 6.1.2 (#252) 2026-02-06 11:20:48 +01:00
Vincent Derks a1b77293c5 Updated tsup to 8.5.1 (#248) 2026-02-06 10:28:32 +01:00
dependabot[bot] 1d59ce11de Bump next from 16.0.10 to 16.1.5 in /packages/flags (#247)
* Bump next from 16.0.10 to 16.1.5 in /packages/flags

Bumps [next](https://github.com/vercel/next.js) from 16.0.10 to 16.1.5.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.0.10...v16.1.5)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.1.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated lockfile

* Bump to 16.1.5 in other packages

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Derks <vincent.derks@vercel.com>
2026-02-06 10:07:56 +01:00
dependabot[bot] 51fb9fdff4 Bump vite from 6.0.3 to 6.4.1 (#245)
* Bump vite from 6.0.3 to 6.4.1

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.3 to 6.4.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.4.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.4.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Trigger CI

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Derks <vincent.derks@vercel.com>
2026-02-06 09:37:15 +01:00
dependabot[bot] 61dbb7d157 Bump vite from 6.2.5 to 6.4.1 (#244)
* Bump vite from 6.2.5 to 6.4.1

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.5 to 6.4.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.4.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.4.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Trigger CI

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Derks <vincent.derks@vercel.com>
2026-02-06 09:25:16 +01:00
dependabot[bot] a5b1f38072 Bump vitest from 2.1.8 to 2.1.9 (#242)
* Bump vitest from 2.1.8 to 2.1.9

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v2.1.9/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 2.1.9
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Trigger CI

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Derks <vincent.derks@vercel.com>
2026-02-06 09:04:01 +01:00
dependabot[bot] c571a329fa Bump vitest from 1.4.0 to 1.6.1 (#241)
* Bump vitest from 1.4.0 to 1.6.1

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.4.0 to 1.6.1.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.6.1/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 1.6.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated launchdarkly adapter vitest config to fix ESM directory import issues

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Derks <vincent.derks@vercel.com>
2026-02-06 08:55:26 +01:00
dependabot[bot] 564e494d71 Bump vite from 5.1.1 to 5.4.21 (#240)
* Bump vite from 5.1.1 to 5.4.21

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.1 to 5.4.21.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.21/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.21
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Trigger CI

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Derks <vincent.derks@vercel.com>
2026-02-05 13:52:10 +01:00
vercel[bot] 23cf50428e Fix React Server Components CVE vulnerabilities (#235)
Updated dependencies to fix Next.js and React CVE vulnerabilities.

The fix-react2shell-next tool automatically updated the following packages to their secure versions:
- next
- react-server-dom-webpack
- react-server-dom-parcel  
- react-server-dom-turbopack

All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
2025-12-12 07:20:30 +02:00
Dominik Ferber ec0d13f66f Rename Edge Middleware to Routing Middleware / Proxy (#229)
* adjust proxy export

* rename Edge Middleware to Proxy

* mv folder

* rename featureFlagsInProxy

* proxy

* Routing Functions → Routing Middleware
2025-12-05 11:51:42 +02:00
Dominik Ferber 11472542d8 rename (#228) 2025-12-05 10:14:26 +02:00
Dominik Ferber f1376294aa upgrade (#226)
* upgrade

* use as-any workaround
2025-12-04 14:27:54 +02:00
github-actions[bot] 54d39ffd05 Version Packages (#221)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-22 06:48:11 +02:00
Dominik Ferber 620974c52b rename label to note (#220)
* label -> note

* make note optional

* add changeset
2025-11-22 06:46:03 +02:00
github-actions[bot] 78bcfe6f93 Version Packages (#219)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-20 14:21:02 +02:00
Dominik Ferber 43293a3799 depend on edge-config (#218)
* depend on edge-config

* add changeset
2025-11-20 14:09:53 +02:00
github-actions[bot] bf8858051e Version Packages (#217)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-07 14:59:37 +02:00
Jeremy Dorn 0da9c49fcd [GrowthBook provider] Auto refresh flags with a stale-while-revalidate strategy (#148)
* Auto refresh features with a stale-while-revalidate strategy

* Update default cache TTL for a better developer experience

* Reduce latency for edge config

* Add changeset entry

* Treat edge config client as a singleton

* Use AsyncLocalStorage to only read from edgeConfig once per request
2025-11-07 14:49:04 +02:00
Luis Meyer b187fb3d37 Remove happykitFlagId (#216) 2025-11-07 11:31:19 +02:00
github-actions[bot] b6f52d9f10 Version Packages (#214)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-06 17:18:43 +02:00
Dominik Ferber 5f3757afc7 stop relying on workspace tsconfig (#213)
* stop relying on workspace tsconfig

closes #204

* add changeset
2025-11-06 17:06:49 +02:00