Commit Graph

41 Commits

Author SHA1 Message Date
Dominik Ferber 5fa72581f7 add @flags-sdk/flagsmith (#167)
* Revert "Revert "Adds Flagsmith adapter (#103)""

This reverts commit bf85f9729a.

* prepare flagsmith adapter for release

* adjust changeset

* update lockfile

* shrink readme

* provider @flags-sdk/flagsmith with correct options for Flag Explorer (#182)

* Revert "Revert "Adds Flagsmith adapter (#103)""

This reverts commit bf85f9729a.

* prepare flagsmith adapter for release

* adjust changeset

* update lockfile

* shrink readme

* feat: get-mv-options-to-build-possible-values

---------

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

* update lockfile

* Flagsmith (#186)

* Revert "Revert "Adds Flagsmith adapter (#103)""

This reverts commit bf85f9729a.

* prepare flagsmith adapter for release

* adjust changeset

* update lockfile

* shrink readme

* feat: get-mv-options-to-build-possible-values

* feat: reworked-decide-signature-and-readme

* feat: rebase

* adjust changeset

* update lockfile

* feat: reworked-decide-signature-and-readme

* feat: updated-tests

* feat: fix-pnpm-lok

---------

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

* Flagsmith (#190)

* Revert "Revert "Adds Flagsmith adapter (#103)""

This reverts commit bf85f9729a.

* prepare flagsmith adapter for release

* adjust changeset

* update lockfile

* shrink readme

* feat: get-mv-options-to-build-possible-values

* feat: reworked-decide-signature-and-readme

* feat: rebase

* adjust changeset

* update lockfile

* feat: reworked-decide-signature-and-readme

* feat: updated-tests

* feat: fix-pnpm-lok

* feat: added-documentation-for-identify

* feat: added-full-example

---------

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

* rewrite changeset

* Feat/flagsmith coercion method (#194)

* Revert "Revert "Adds Flagsmith adapter (#103)""

This reverts commit bf85f9729a.

* prepare flagsmith adapter for release

* adjust changeset

* update lockfile

* shrink readme

* feat: get-mv-options-to-build-possible-values

* feat: reworked-decide-signature-and-readme

* feat: rebase

* adjust changeset

* update lockfile

* feat: reworked-decide-signature-and-readme

* feat: updated-tests

* feat: fix-pnpm-lok

* feat: added-documentation-for-identify

* feat: added-full-example

* feat: added-type-free-coercion-method

* feat: removed-per-type-functions-in-favor-of-get-value

---------

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

* rm next-13

* esm

---------

Co-authored-by: Zaimwa9 <wadii.zaim@gmail.com>
2025-10-30 11:19:06 +02:00
Dominik Ferber ff052f0417 upgrade to @vercel/edge-config dependency (#199)
* upgrade to @vercel/edge-config dep

* update lockfile
2025-10-25 12:00:06 +03:00
Dominik Ferber 0910327c65 add next-16 tests (#195)
* add next-16 tests

* upgrade biome

* upgrade react in next-16

* tsconfig

* try with middleware.ts

* Revert "try with middleware.ts"

This reverts commit 894b6ed5ce.

* Revert "try adding executablePath"

This reverts commit a4991996fe.

* ensure x-middleware-rewrite

* test x-nextjs-cache

* rm playwright --ui

* adjust biome schema version

* disable getStaticPaths in pages router

* try chromium

* re-enable ci playwright workaround
2025-10-25 00:49:34 +03:00
Dominik Ferber f2eba9c624 upgrade pnpm (#198)
* extract @flags-sdk/utils

* init

* split package

* rename createFlagsClient to createClient

* add TODO

* wip

* add openfeature adapter

* reuse InlineDataSource

* fix type in test

* expose OpenFeature adapter

* implement OpenFeature adapter

* wip

* wip

* convert shirt-shop

* move store into flags-core

* split up data-source

* add READMEs

* upgrade to pnpm v10

* update comment

* undo example changes

* rm flags/utils

* fix biome issues

* rm status test

* tests
2025-10-25 00:13:34 +03:00
Dominik Ferber 98ad9fb352 rm @vercel/style-guide (#193)
* add format command

* drop @vercel/style-guide

* copy over rules frmo @vercel/style-guide
2025-10-17 15:31:55 +03:00
Dominik Ferber 735a6eee06 rm jest (#192) 2025-10-17 14:39:46 +03:00
Dominik Ferber ba4eec7b23 replace eslint and prettier with biome (#187)
* remove @pyra/eslint-config

* wip

* wip

* convert shirt-shop-api

* convert shirt-shop

* convert snippets

* convert next-13

* convert next-14

* convert next-15

* eslint configs

* upgrade prettier

* use eslint v9

* run prettier

* resolve type-check

* adjust eslint

* drop Next.js v13

* fix next-14

Avoid accidentally using implicitly installed eslint v8

* update lockfile

* rm @eslint/eslintrc

* add @next/eslint-plugin-next

* biome

* biome fixes

* wip

* apply formatting

* tabs

* rm prettier

* spaces

* fix svelte

* update lockfile

* single quotes

* format all

* rm eslint-disable comments

* upgrade playwright

* upgrade publint

* upgrade playwright ci workflow

* try chromium headless

* try adding executablePath
2025-10-15 23:38:17 +03:00
Dominik Ferber 48adbf2de1 [@flags-sdk/statsig] update statsig-node-lite to v0.5.2 (#184) 2025-10-13 15:33:10 +03:00
Dominik Ferber 11a57785bd rename @flags-sdk/bucket to @flags-sdk/reflag (#177)
* rename @flags-sdk/bucket to @flags-sdk/reflag

* update lockfile
2025-09-20 15:16:46 +03:00
Dominik Ferber a7b9be80db Update hypertune adapter (#172)
* Support nested flags by using the getFlagValues method. Pass a key to createSource to prevent conflicts with the getHypertune setup.

* address review comments

---------

Co-authored-by: Miraan Tabrez <miraan.tabrez@gmail.com>
2025-09-12 08:02:14 +03:00
Dominik Ferber e1def0eb34 upgrade @flags-sdk/launchdarkly (#169)
* upgrade @flags-sdk/launchdarkly

* remove unused dependencies
2025-09-11 18:54:03 +03:00
Dominik Ferber 2d88e9f244 remove @flags-sdk/happykit (#168) 2025-09-10 15:22:33 +03:00
Dominik Ferber bf85f9729a Revert "Adds Flagsmith adapter (#103)"
This reverts commit 63edc40ec8.
2025-09-09 13:42:03 +03:00
Tiago Paiva 63edc40ec8 Adds Flagsmith adapter (#103)
adds tests

fix README

fix documentation

remove asdf file

implements getFeature pattern

update README

Update packages/adapter-flagsmith/README.md

Co-authored-by: Aaron Morris <aaron@vercel.com>

address changes

implements provider

adds different methods for different types of flags

fix tests

changeset
2025-08-22 09:24:18 +03:00
Bryce 6239e2d9a7 Add GrowthBook Adapter (#133)
* initial wip adapter

* default adapter

* provider

* provider test

* tsc issues

* tsc issues

* tsc issues

* tsc

* feature type safety

* lock

* rm .js / .d.ts / .map

* fix test

* readme

* edge adapter

* readme typo

* update gb sdk ver

* lock

* lock

* fix changelog, package.json

* tighten feature() return type, remove userId from callback

* fix defaultValue handling

* fix decide typo

* Support EXPERIMENTATION_CONFIG

Co-authored-by: Romain Beauxis <romain@growthbook.io>

* sticky bucket support, readme, cleanup

* changeset

* update readme

* support client-side tracking, export types

---------

Co-authored-by: Romain Beauxis <romain@growthbook.io>
2025-06-02 16:09:22 -04:00
Aaron Morris 44bada78fb feature(adapter-posthog): Add PostHog adapter (#114)
* feature(adapter-posthog): PostHog Adapter
* pass flagValue=undefined to getFeatureFlagPayload
* Map NEXT_PUBLIC_POSTHOG_HOST to a PostHog app hostname by default, making appHost optional in getProviderData
* Do not expose synchronous client in the Adapter interface (make it async later)
* Add tests
2025-05-23 15:56:36 -04:00
Ron Cohen 1d662a731c chore(bucket): update to @bucketco/node-sdk@1.8.3 (#139)
* chore(bucket): update to @bucketco/node-sdk@1.8.3

* chore (changeset): Move package.json update to a changeset

---------

Co-authored-by: Aaron Morris <aaron@vercel.com>
2025-05-19 07:48:48 -04:00
Dominik Ferber 79b25f6aee @flags-sdk/bucket adapter (#96)
* init
* [@flags-sdk/bucket] getProviderData (#113)
* [@flags-sdk/bucket] various improvements (#121)
* Update framer-motion to motion for CI

---------

Co-authored-by: Ron Cohen <cohen1@gmail.com>
Co-authored-by: Aaron Morris <aaron@vercel.com>
2025-05-16 17:05:38 -04:00
Aaron Morris 16c928bf45 Hypertune Adapter (#125) 2025-05-14 12:28:55 -04:00
Dominik Ferber bc7944ed89 split crypto functions into dedicated functions (#126) 2025-05-02 17:45:00 +03:00
Dominik Ferber 3994336c4d style examples (#111) 2025-03-21 17:48:34 +02:00
Simon H 701f3c2bf2 Sveltekit flags enhancements (#75)
* use `$env/dynamic/private` from SvelteKit for convenience: people don't have to pass FLAGS_SECRET manually anymore then

* allow flag to be called outside of the lifecycle of the handle hook, with a request object being the key for deduplication etc

* add support for identifiers

* fix types

* new function for managing precomputed flags

* align with next.js API instead

* update example app

* lockfile

* test

* fix example

* restructure examples app

* make it two flags to show power of precompute + code

* add manual approach

* lets see if preview deployment is picked up

* change crypto usage to be usable in middleware

* make sveltekit flags pkg usable within edge middleware

* use ISR

* changeset

* enhance error message

* use static env instead of dynamic env

* bump kit

* use vercel adapter

* make sure Vite tooling is used for sveltekit entry point

---------

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2025-03-21 14:43:28 +02:00
github-actions[bot] 290c37ef21 Version Packages (#102)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-13 09:16:39 +02:00
Dominik Ferber 91338530d2 Add OpenFeature adapter (#95)
* add OpenFeature adapter

* fix tsup.config.js

* add tests

* init fn

* allow sync and async usage

* remove generics when type is known
2025-03-13 08:43:28 +02:00
Andy 2fcc446ea8 Create LaunchDarkly adapter (#2)
* Create LaunchDarkly adapter

* Update example to include a LaunchDarkly flag

* Add missing env to turbo

* Rename to defaultLaunchDarklyAdapter

* Add winter sale example for providers

* Update winter-sale

* Document usage in readme

* Allow to set the default value through the adapter

* Fix readme

* Add default value for adapter

* Make argument optional

* Add @ts-expect-error

* Add a LaunchDarkly adapter (#10)

* add ld example

* reword

* remove winter-sale example

* remove defaultValue

* use @flags-sdk/launchdarkly

* add install steps

* add changeset

* move @vercel/edge-config to peer deps

* add more secrets

* spell out name

* remove unused env var

* rename properties

* Capitalize

* Change import

* Fix more imports

* expose ldClient

* move peerDeps to real deps

* clarify Edge Config requirement in README

* remove adapter-launchdarkly snippet

* upgrade next@canary

* polish @flags-sdk/launchdarkly README

---------

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2025-03-08 09:29:26 +02:00
Dominik Ferber a5bfb13c43 extended example (#84)
* wip

* adapt nav

* store management

* ssr cart

* clean up

* fix stableId issue

* allow image sorting

* toast on ProceedToCheckoutButton

* move actions, extract components

* Add PPR to Cart (#85)

* toast on Shop now

* allow delay

* loading spinner

* wip

* fix animations

* show cart count

* Extend shirt-shop demo with dynamic flag usage (#86)

* better metadata

* wip

* move cart to api

* wip

* respect free shipping

* add example banner

* init shadcn

* reorg

* remove relative paths from components

* do not link footer

* wip

* remove shadcn setup

* api-server » shirt-shop-api

* /api/:cartId » /api/cart/:cartId

* add delayFlag desc

* fix cart count

* remove quantity

* fine tune animation

* shrink

* list envs, fix Link

* change flag names

* set cart-id from middleware

* append headers

* allow cloning

* add BACKEND_URL fallback
2025-03-04 17:05:13 +01:00
Dominik Ferber 646778643e convert summer-sale to shirt-shop (#79)
* convert summer-sale to shirt-shop

* update deps

* canary for snippets

* expect errors

* upgrade deps

* ComponentRef

* steps
2025-02-28 11:04:12 +02:00
Aaron Morris bd7e10aa39 (statsig-adapter): Release Statsig Adapter (#43)
* (statsig-adapter): Move Edge Config to peer deps, more consistent api key naming

* Move dynamic imports into initializeStatsig

* Add default adapter pattern

* Add changeset

* Add layerParameter to get config parameters from experiments in a layer

* (statsig-adapter) Focus on feature management (gates, dynamic configs), add origin, add exposure logging option

* (statsig-adapter) Update key handling and default export

* (refactoring, wip): move some runtime details out of the main implementation of the Statsig adapter

* Use statsig-node-lite

* Switch default environment variable to STATSIG_SERVER_SECRET"

* (statsig-adapter) Add readme

* Update README — Remove details on precompute, add optional peer deps to install command

* Add peerDependenciesMeta

* Update changeset text

* Refactor Statsig Adapter

Add experimentation primitives, disable exposure logging by default, identify StatsigUser instead of `{ statsigUser: StatsigUser }`

* (statsig-adapter) Update default environment variables

* use envvar: EXPERIMENTATION_CONFIG_ITEM_KEY

* Update packages/adapter-statsig/README.md

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

* Update packages/adapter-statsig/README.md

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

* Update README, docstrings

* upgrade statsig-node-lite

* remove edge config devDep

* reduce propagation time of Statsig updates

* update deps

* update lockfile

* prefix error

* simplify README

* extend package.json

* fix type

* switch example to gate

* expose types of Statsig SDK

* work around syncing issue

---------

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2025-02-26 17:03:57 +02:00
Dominik Ferber 422435c0eb rename (#68)
* @vercel-flags » flags

* update lockfile

* fix name
2025-02-20 19:54:09 +02:00
Dominik Ferber 48cbe4533b Add @flags-sdk/edge-config adapter (#57)
* add Edge Config Adapter
* add README and tests
* add changeset
* add edge config caching

---------

Co-authored-by: Aaron Morris <aaron@vercel.com>
2025-02-14 10:53:13 -05:00
Aaron Morris cf532daf20 Update flags package json (#62)
* (flags) remove index from exports

* Update tsup.config, use clean:true instead of rimraf

* Add changeset

* pnpm-lock

* update tsup config, remove unused provider entrypoints

* tsup.config: update entry format

* Add attw check in CI

* Update .changeset/tidy-schools-retire.md

---------

Co-authored-by: Dominik Ferber <dominik.ferber@gmail.com>
2025-02-14 09:45:24 +02:00
Dominik Ferber 2388982f2f bring dark mode back for snippets (#55)
* Revert "Revert "add dark mode support (#53)" (#54)"

This reverts commit 2161f4d5f1.

* switch to cssVariables: false

* bring back darkmode for DemoFlag

* fix suspense example

* fix skeleton example
2025-02-01 12:30:03 +02:00
Dominik Ferber 2161f4d5f1 Revert "add dark mode support (#53)" (#54)
This reverts commit 77d68a4a96.
2025-02-01 06:27:57 +02:00
Dominik Ferber 77d68a4a96 add dark mode support (#53) 2025-01-31 08:47:25 -05:00
Aaron Morris bdea1488af Statsig adapter (#27)
* Add a Statsig adapter
* (statsig-adapter): Update initialization
* (changeset) Add changeset entry
2025-01-20 11:39:04 -05:00
Dominik Ferber 3e5db8c96a enable ppr (#16)
PPR is required for the Suspense Fallbacks example
2025-01-10 12:45:25 -05:00
Dominik Ferber 6876875a13 remove partial-prerendering example (#15)
* remove partial-prerendering example

This is now available as a snippet, so we no longer need a dedicated application

* update lockfile
2025-01-10 19:27:33 +02:00
Dominik Ferber 1fcd4fc177 Add Pages Router examples (#12)
* upgrade next

* ensure pages router support in turbopack

* add pages router examples

* fix cards

* re-add node prefix

* remove node prefix

* fix tests

* fix pages router pages
2025-01-10 15:06:24 +02:00
Dominik Ferber 8152ef3371 split up docs (#7)
* wip

* init collection

* convert identify

* convert precompute

* convert adapters

* convert marketing-pages

* convert feature-flags-in-edge-middleware

* remove docs

* rename to snippets

* rename collection to snippets

* eslint

* list examples on landing page

* remove unused code
2024-12-18 11:27:26 +02:00
Dominik Ferber 33b661f231 update turbo 2024-12-12 15:32:19 +02:00
Dominik Ferber db89f0dfb1 Init 2024-12-12 13:01:06 +02:00