@vercel/flags-core 1.9.0-da0b044-20260915081607 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,35 @@
1
1
  # @vercel/flags-core
2
2
 
3
- ## 1.9.0-da0b044-20260915081607
3
+ ## 1.9.0
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - [#498](https://github.com/vercel/flags/pull/498) [`da0b044`](https://github.com/vercel/flags/commit/da0b044c2f2efb1c61900c43f21fa21813a3ef20) Thanks [@luismeyer](https://github.com/luismeyer)! - Add a header-driven `vercel` client mode that uses request config-version timestamps instead of streaming or polling. Reuse fresh definitions, refresh in the background when the request version is up to 10 seconds newer than the cached configuration, and block for a refresh when the gap is larger. Deduplicate concurrent refreshes, allow retries after fetch failures, and discard late responses after shutdown.
7
+ - [#517](https://github.com/vercel/flags/pull/517) [`d03e4f6`](https://github.com/vercel/flags/commit/d03e4f63ed645339c6a3a312f26ee77eb4cf03ef) Thanks [@vincent-derks](https://github.com/vincent-derks)! - Accept `flags:projectId=<id>` connection strings.
8
+
9
+ - [#537](https://github.com/vercel/flags/pull/537) [`c49aab6`](https://github.com/vercel/flags/commit/c49aab65a8d5f4327552c18179b3f8d761b0f53e) Thanks [@dferber90](https://github.com/dferber90)! - Allow progressive rollouts to end at a configurable percentage using `finalPromille` (for example, `50_000` for 50%). Rollouts without this field continue to end at 100%.
10
+
11
+ ### Patch Changes
12
+
13
+ - [#396](https://github.com/vercel/flags/pull/396) [`c3026fe`](https://github.com/vercel/flags/commit/c3026fe78b527f8c4300f444751ef4f9325db50e) Thanks [@Nexory](https://github.com/Nexory)! - fix(typed-emitter): clean up empty Set from Map on last off() call
14
+
15
+ ## 1.8.3
16
+
17
+ ### Patch Changes
18
+
19
+ - [#507](https://github.com/vercel/flags/pull/507) [`c43b9d9`](https://github.com/vercel/flags/commit/c43b9d9076009a6a70ca2de55020ebcb15b1a4cc) Thanks [@luismeyer](https://github.com/luismeyer)! - Retry transient datafile fetch failures across polling, build loading, and offline fallback reads. Fetches use up to three attempts within a shared ten-second deadline that includes authentication, backoff, and body parsing. Shutdown also cancels retries during polling initialization.
20
+
21
+ - [#533](https://github.com/vercel/flags/pull/533) [`7027cb2`](https://github.com/vercel/flags/commit/7027cb271183566ee224c6a96d36cb12ce7cf2fa) Thanks [@dferber90](https://github.com/dferber90)! - Strip all occurrences of the `g` and `y` flags from regex conditions so cached regular expressions produce consistent results across users and repeated evaluations, including when both flags are present.
22
+
23
+ ## 1.8.2
24
+
25
+ ### Patch Changes
26
+
27
+ - [#497](https://github.com/vercel/flags/pull/497) [`4848877`](https://github.com/vercel/flags/commit/4848877ca60c8595745b7759e351e936d7fe5889) Thanks [@feugy](https://github.com/feugy)! - Allow passing a custom `waitUntil` function to `createClient` for background
28
+ usage and exposure reporting. Pending exposure reports are drained by
29
+ `client.shutdown()`. The Next.js conditional export uses `after` from
30
+ `next/server` by default.
31
+
32
+ - [#490](https://github.com/vercel/flags/pull/490) [`186ea50`](https://github.com/vercel/flags/commit/186ea5092b22cd3eadf136824ecb2d7293a047fd) Thanks [@AndyBitz](https://github.com/AndyBitz)! - Use the runtime-provided ingest transport when available
8
33
 
9
34
  ## 1.8.1
10
35
 
package/README.md CHANGED
@@ -33,18 +33,6 @@ export default app;
33
33
 
34
34
  Outside Vercel, pass an SDK key explicitly: `createClient(process.env.FLAGS)`.
35
35
 
36
- ### Initialization and request-scoped OIDC
37
-
38
- On Vercel, the OIDC token can be supplied through the current request context (`x-vercel-oidc-token`). It is not guaranteed to be available while modules are loading. Creating the client at module scope is safe, but starting `client.initialize()` there can attempt authentication before a request exists.
39
-
40
- Do not store a module-scope initialization promise and await it later in a handler. Calling `initialize()` starts the work immediately; awaiting the promise inside a request does not move that work into the request context. If the promise rejects, every handler awaiting that same promise will reject before reaching evaluation and its fallback handling.
41
-
42
- This also applies when definitions are embedded at build time: with OIDC authentication, the client uses the token's `project_id` claim to select the embedded definitions. An importable `@vercel/flags-definitions` module alone is not enough.
43
-
44
- For local development, `vercel env pull` writes an OIDC token to `.env.local`. If your local runner loads that file, the environment-variable fallback can make module-scope initialization appear to work, even though request-scoped authentication on a deployment requires deferring it.
45
-
46
- Explicit `await client.initialize()` is optional and can be useful when you want to wait for initialization and handle its errors yourself. Only call it once authentication is available: inside a request handler for request-scoped OIDC, or during startup when using an SDK key or an already-available environment token. For normal flag evaluation, prefer calling `evaluate()` or `bulkEvaluate()` directly in the handler.
47
-
48
36
  ## Evaluation Metrics
49
37
 
50
38
  To associate evaluation metrics with an environment, pass the