From a259b9097bb11ede02a019a09411a2e1151c5534 Mon Sep 17 00:00:00 2001
From: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Date: Sun, 20 Apr 2025 13:07:29 -0400
Subject: [PATCH 01/20] chore(main): release angular-sdk 0.0.13 (#1175)
---
.release-please-manifest.json | 2 +-
packages/angular/projects/angular-sdk/CHANGELOG.md | 7 +++++++
packages/angular/projects/angular-sdk/README.md | 4 ++--
packages/angular/projects/angular-sdk/package.json | 2 +-
4 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index c1da55625..b348166a2 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -5,5 +5,5 @@
"packages/web": "1.5.0",
"packages/server": "1.18.0",
"packages/shared": "1.8.0",
- "packages/angular/projects/angular-sdk": "0.0.12"
+ "packages/angular/projects/angular-sdk": "0.0.13"
}
diff --git a/packages/angular/projects/angular-sdk/CHANGELOG.md b/packages/angular/projects/angular-sdk/CHANGELOG.md
index dccda7489..60a4afcb9 100644
--- a/packages/angular/projects/angular-sdk/CHANGELOG.md
+++ b/packages/angular/projects/angular-sdk/CHANGELOG.md
@@ -1,6 +1,13 @@
# Changelog
+## [0.0.13](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.12...angular-sdk-v0.0.13) (2025-04-20)
+
+
+### 📚 Documentation
+
+* fix readme typo ([#1174](https://github.com/open-feature/js-sdk/issues/1174)) ([21a32ec](https://github.com/open-feature/js-sdk/commit/21a32ec92ecde9ec43c9d72b5921035af13448d1))
+
## [0.0.12](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.11...angular-sdk-v0.0.12) (2025-04-11)
diff --git a/packages/angular/projects/angular-sdk/README.md b/packages/angular/projects/angular-sdk/README.md
index 163c751ab..15fb5066f 100644
--- a/packages/angular/projects/angular-sdk/README.md
+++ b/packages/angular/projects/angular-sdk/README.md
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/packages/angular/projects/angular-sdk/package.json b/packages/angular/projects/angular-sdk/package.json
index f874abe88..b0b4ad17b 100644
--- a/packages/angular/projects/angular-sdk/package.json
+++ b/packages/angular/projects/angular-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@openfeature/angular-sdk",
- "version": "0.0.12",
+ "version": "0.0.13",
"description": "OpenFeature Angular SDK",
"repository": {
"type": "git",
From 4fe8d87a2e5df2cbd4086cc4f4a380e8857ed8ba Mon Sep 17 00:00:00 2001
From: Michael Beemer
Date: Wed, 23 Apr 2025 13:16:18 -0400
Subject: [PATCH 02/20] docs: Clarify the behavior of setProviderAndWait
(#1180)
## This PR
- Updates readme examples to include a try/catch around
setProviderAndWait
- Improves the setProviderAndWait JS Doc
### Related Issues
Fixes #1179
### Notes
https://cloud-native.slack.com/archives/C0344AANLA1/p1745326882304199
---------
Signed-off-by: Michael Beemer
---
packages/server/README.md | 6 +++++-
packages/server/src/open-feature.ts | 4 ++--
packages/web/README.md | 12 ++++++++++--
packages/web/src/open-feature.ts | 8 ++++----
4 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/packages/server/README.md b/packages/server/README.md
index 748e2de9c..2bc75bb48 100644
--- a/packages/server/README.md
+++ b/packages/server/README.md
@@ -75,7 +75,11 @@ yarn add @openfeature/server-sdk @openfeature/core
import { OpenFeature } from '@openfeature/server-sdk';
// Register your feature flag provider
-await OpenFeature.setProviderAndWait(new YourProviderOfChoice());
+try {
+ await OpenFeature.setProviderAndWait(new YourProviderOfChoice());
+} catch (error) {
+ console.error('Failed to initialize provider:', error);
+}
// create a new client
const client = OpenFeature.getClient();
diff --git a/packages/server/src/open-feature.ts b/packages/server/src/open-feature.ts
index 3e818af05..01decf154 100644
--- a/packages/server/src/open-feature.ts
+++ b/packages/server/src/open-feature.ts
@@ -82,7 +82,7 @@ export class OpenFeatureAPI
* Setting a provider supersedes the current provider used in new and existing unbound clients.
* @param {Provider} provider The provider responsible for flag evaluations.
* @returns {Promise}
- * @throws Uncaught exceptions thrown by the provider during initialization.
+ * @throws {Error} If the provider throws an exception during initialization.
*/
setProviderAndWait(provider: Provider): Promise;
/**
@@ -92,7 +92,7 @@ export class OpenFeatureAPI
* @param {string} domain The name to identify the client
* @param {Provider} provider The provider responsible for flag evaluations.
* @returns {Promise}
- * @throws Uncaught exceptions thrown by the provider during initialization.
+ * @throws {Error} If the provider throws an exception during initialization.
*/
setProviderAndWait(domain: string, provider: Provider): Promise;
async setProviderAndWait(domainOrProvider?: string | Provider, providerOrUndefined?: Provider): Promise {
diff --git a/packages/web/README.md b/packages/web/README.md
index 08c022fd7..cb5ca7f99 100644
--- a/packages/web/README.md
+++ b/packages/web/README.md
@@ -75,7 +75,11 @@ yarn add @openfeature/web-sdk @openfeature/core
import { OpenFeature } from '@openfeature/web-sdk';
// Register your feature flag provider
-await OpenFeature.setProviderAndWait(new YourProviderOfChoice());
+try {
+ await OpenFeature.setProviderAndWait(new YourProviderOfChoice());
+} catch (error) {
+ console.error('Failed to initialize provider:', error);
+}
// create a new client
const client = OpenFeature.getClient();
@@ -121,7 +125,11 @@ Once you've added a provider as a dependency, it can be registered with OpenFeat
To register a provider and ensure it is ready before further actions are taken, you can use the `setProviderAndWait` method as shown below:
```ts
-await OpenFeature.setProviderAndWait(new MyProvider());
+try {
+ await OpenFeature.setProviderAndWait(new MyProvider());
+} catch (error) {
+ console.error('Failed to initialize provider:', error);
+}
```
#### Synchronous
diff --git a/packages/web/src/open-feature.ts b/packages/web/src/open-feature.ts
index eb32877db..57d714a47 100644
--- a/packages/web/src/open-feature.ts
+++ b/packages/web/src/open-feature.ts
@@ -77,7 +77,7 @@ export class OpenFeatureAPI
* Setting a provider supersedes the current provider used in new and existing unbound clients.
* @param {Provider} provider The provider responsible for flag evaluations.
* @returns {Promise}
- * @throws Uncaught exceptions thrown by the provider during initialization.
+ * @throws {Error} If the provider throws an exception during initialization.
*/
setProviderAndWait(provider: Provider): Promise;
/**
@@ -87,7 +87,7 @@ export class OpenFeatureAPI
* @param {Provider} provider The provider responsible for flag evaluations.
* @param {EvaluationContext} context The evaluation context to use for flag evaluations.
* @returns {Promise}
- * @throws Uncaught exceptions thrown by the provider during initialization.
+ * @throws {Error} If the provider throws an exception during initialization.
*/
setProviderAndWait(provider: Provider, context: EvaluationContext): Promise;
/**
@@ -97,7 +97,7 @@ export class OpenFeatureAPI
* @param {string} domain The name to identify the client
* @param {Provider} provider The provider responsible for flag evaluations.
* @returns {Promise}
- * @throws Uncaught exceptions thrown by the provider during initialization.
+ * @throws {Error} If the provider throws an exception during initialization.
*/
setProviderAndWait(domain: string, provider: Provider): Promise;
/**
@@ -108,7 +108,7 @@ export class OpenFeatureAPI
* @param {Provider} provider The provider responsible for flag evaluations.
* @param {EvaluationContext} context The evaluation context to use for flag evaluations.
* @returns {Promise}
- * @throws Uncaught exceptions thrown by the provider during initialization.
+ * @throws {Error} If the provider throws an exception during initialization.
*/
setProviderAndWait(domain: string, provider: Provider, context: EvaluationContext): Promise;
async setProviderAndWait(
From 59b8fe904f053e4aa3d0c72631af34183ff54dc7 Mon Sep 17 00:00:00 2001
From: Kaushal Kapasi <91074031+kaushalkapasi@users.noreply.github.com>
Date: Thu, 24 Apr 2025 09:32:55 -0400
Subject: [PATCH 03/20] feat: adds RequireFlagsEnabled decorator (#1159)
## This PR
- Feature: Adds a `RequireFlagsEnabled` decorator to allow a simple,
reusable way to block access to a specific controller or endpoint based
on the value of a list of one, or many, boolean flags
### Notes
- Discussions on the approach & implementation are welcome!
### Follow-up Tasks
- Update OpenFeature NestJS docs to include new `RequireFlagsEnabled`
decorator & usage examples
### How to test
`npx jest --selectProject=nest`
---------
Signed-off-by: Kaushal Kapasi
Signed-off-by: Todd Baert
Co-authored-by: Todd Baert
---
packages/nest/README.md | 26 ++++-
packages/nest/src/feature.decorator.ts | 22 +---
packages/nest/src/index.ts | 1 +
.../src/require-flags-enabled.decorator.ts | 104 ++++++++++++++++++
packages/nest/src/utils.ts | 12 ++
packages/nest/test/fixtures.ts | 12 ++
packages/nest/test/open-feature-sdk.spec.ts | 95 ++++++++++++++--
packages/nest/test/test-app.ts | 67 ++++++++++-
8 files changed, 300 insertions(+), 39 deletions(-)
create mode 100644 packages/nest/src/require-flags-enabled.decorator.ts
create mode 100644 packages/nest/src/utils.ts
diff --git a/packages/nest/README.md b/packages/nest/README.md
index 931d30230..dfcd0093c 100644
--- a/packages/nest/README.md
+++ b/packages/nest/README.md
@@ -72,10 +72,10 @@ yarn add @openfeature/nestjs-sdk @openfeature/server-sdk @openfeature/core
The following list contains the peer dependencies of `@openfeature/nestjs-sdk` with its expected and compatible versions:
-* `@openfeature/server-sdk`: >=1.7.5
-* `@nestjs/common`: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
-* `@nestjs/core`: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
-* `rxjs`: ^6.0.0 || ^7.0.0 || ^8.0.0
+- `@openfeature/server-sdk`: >=1.7.5
+- `@nestjs/common`: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+- `@nestjs/core`: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+- `rxjs`: ^6.0.0 || ^7.0.0 || ^8.0.0
The minimum required version of `@openfeature/server-sdk` currently is `1.7.5`.
@@ -152,6 +152,24 @@ export class OpenFeatureTestService {
}
```
+#### Managing Controller or Route Access via Feature Flags
+
+The `RequireFlagsEnabled` decorator can be used to manage access to a controller or route based on the enabled state of a feature flag. The decorator will throw an exception if the required feature flag(s) are not enabled.
+
+```ts
+import { Controller, Get } from '@nestjs/common';
+import { RequireFlagsEnabled } from '@openfeature/nestjs-sdk';
+
+@Controller()
+export class OpenFeatureController {
+ @RequireFlagsEnabled({ flags: [{ flagKey: 'testBooleanFlag' }] })
+ @Get('/welcome')
+ public async welcome() {
+ return 'Welcome to this OpenFeature-enabled NestJS app!';
+ }
+}
+```
+
## Module additional information
### Flag evaluation context injection
diff --git a/packages/nest/src/feature.decorator.ts b/packages/nest/src/feature.decorator.ts
index c6dba0623..aa728eb5f 100644
--- a/packages/nest/src/feature.decorator.ts
+++ b/packages/nest/src/feature.decorator.ts
@@ -1,16 +1,10 @@
import { createParamDecorator, Inject } from '@nestjs/common';
-import type {
- EvaluationContext,
- EvaluationDetails,
- FlagValue,
- JsonValue} from '@openfeature/server-sdk';
-import {
- OpenFeature,
- Client,
-} from '@openfeature/server-sdk';
+import type { EvaluationContext, EvaluationDetails, FlagValue, JsonValue } from '@openfeature/server-sdk';
+import { Client } from '@openfeature/server-sdk';
import { getOpenFeatureClientToken } from './open-feature.module';
import type { Observable } from 'rxjs';
import { from } from 'rxjs';
+import { getClientForEvaluation } from './utils';
/**
* Options for injecting an OpenFeature client into a constructor.
@@ -56,16 +50,6 @@ interface FeatureProps {
context?: EvaluationContext;
}
-/**
- * Returns a domain scoped or the default OpenFeature client with the given context.
- * @param {string} domain The domain of the OpenFeature client.
- * @param {EvaluationContext} context The evaluation context of the client.
- * @returns {Client} The OpenFeature client.
- */
-function getClientForEvaluation(domain?: string, context?: EvaluationContext) {
- return domain ? OpenFeature.getClient(domain, context) : OpenFeature.getClient(context);
-}
-
/**
* Route handler parameter decorator.
*
diff --git a/packages/nest/src/index.ts b/packages/nest/src/index.ts
index 20514df86..7296307e8 100644
--- a/packages/nest/src/index.ts
+++ b/packages/nest/src/index.ts
@@ -2,5 +2,6 @@ export * from './open-feature.module';
export * from './feature.decorator';
export * from './evaluation-context-interceptor';
export * from './context-factory';
+export * from './require-flags-enabled.decorator';
// re-export the server-sdk so consumers can access that API from the nestjs-sdk
export * from '@openfeature/server-sdk';
diff --git a/packages/nest/src/require-flags-enabled.decorator.ts b/packages/nest/src/require-flags-enabled.decorator.ts
new file mode 100644
index 000000000..1888f9974
--- /dev/null
+++ b/packages/nest/src/require-flags-enabled.decorator.ts
@@ -0,0 +1,104 @@
+import type { CallHandler, ExecutionContext, HttpException, NestInterceptor } from '@nestjs/common';
+import { applyDecorators, mixin, NotFoundException, UseInterceptors } from '@nestjs/common';
+import { getClientForEvaluation } from './utils';
+import type { EvaluationContext } from '@openfeature/server-sdk';
+import type { ContextFactory } from './context-factory';
+
+type RequiredFlag = {
+ flagKey: string;
+ defaultValue?: boolean;
+};
+
+/**
+ * Options for using one or more Boolean feature flags to control access to a Controller or Route.
+ */
+interface RequireFlagsEnabledProps {
+ /**
+ * The key and default value of the feature flag.
+ * @see {@link Client#getBooleanValue}
+ */
+ flags: RequiredFlag[];
+
+ /**
+ * The exception to throw if any of the required feature flags are not enabled.
+ * Defaults to a 404 Not Found exception.
+ * @see {@link HttpException}
+ * @default new NotFoundException(`Cannot ${req.method} ${req.url}`)
+ */
+ exception?: HttpException;
+
+ /**
+ * The domain of the OpenFeature client, if a domain scoped client should be used.
+ * @see {@link OpenFeature#getClient}
+ */
+ domain?: string;
+
+ /**
+ * The {@link EvaluationContext} for evaluating the feature flag.
+ * @see {@link OpenFeature#setContext}
+ */
+ context?: EvaluationContext;
+
+ /**
+ * A factory function for creating an OpenFeature {@link EvaluationContext} from Nest {@link ExecutionContext}.
+ * For example, this can be used to get header info from an HTTP request or information from a gRPC call to be used in the {@link EvaluationContext}.
+ * @see {@link ContextFactory}
+ */
+ contextFactory?: ContextFactory;
+}
+
+/**
+ * Controller or Route permissions handler decorator.
+ *
+ * Requires that the given feature flags are enabled for the request to be processed, else throws an exception.
+ *
+ * For example:
+ * ```typescript
+ * @RequireFlagsEnabled({
+ * flags: [ // Required, an array of Boolean flags to check, with optional default values (defaults to false)
+ * { flagKey: 'flagName' },
+ * { flagKey: 'flagName2', defaultValue: true },
+ * ],
+ * exception: new ForbiddenException(), // Optional, defaults to a 404 Not Found Exception
+ * domain: 'my-domain', // Optional, defaults to the default OpenFeature Client
+ * context: { // Optional, defaults to the global OpenFeature Context
+ * targetingKey: 'user-id',
+ * },
+ * contextFactory: (context: ExecutionContext) => { // Optional, defaults to the global OpenFeature Context. Takes precedence over the context option.
+ * return {
+ * targetingKey: context.switchToHttp().getRequest().headers['x-user-id'],
+ * };
+ * },
+ * })
+ * @Get('/')
+ * public async handleGetRequest()
+ * ```
+ * @param {RequireFlagsEnabledProps} props The options for injecting the feature flag.
+ * @returns {ClassDecorator & MethodDecorator} The decorator that can be used to require Boolean Feature Flags to be enabled for a controller or a specific route.
+ */
+export const RequireFlagsEnabled = (props: RequireFlagsEnabledProps): ClassDecorator & MethodDecorator =>
+ applyDecorators(UseInterceptors(FlagsEnabledInterceptor(props)));
+
+const FlagsEnabledInterceptor = (props: RequireFlagsEnabledProps) => {
+ class FlagsEnabledInterceptor implements NestInterceptor {
+ constructor() {}
+
+ async intercept(context: ExecutionContext, next: CallHandler) {
+ const req = context.switchToHttp().getRequest();
+ const evaluationContext = props.contextFactory ? await props.contextFactory(context) : props.context;
+ const client = getClientForEvaluation(props.domain, evaluationContext);
+
+ for (const flag of props.flags) {
+ const endpointAccessible = await client.getBooleanValue(flag.flagKey, flag.defaultValue ?? false);
+
+ if (!endpointAccessible) {
+ throw props.exception || new NotFoundException(`Cannot ${req.method} ${req.url}`);
+ }
+ }
+
+ return next.handle();
+ }
+ }
+
+ return mixin(FlagsEnabledInterceptor);
+};
diff --git a/packages/nest/src/utils.ts b/packages/nest/src/utils.ts
new file mode 100644
index 000000000..aec145b61
--- /dev/null
+++ b/packages/nest/src/utils.ts
@@ -0,0 +1,12 @@
+import type { Client, EvaluationContext } from '@openfeature/server-sdk';
+import { OpenFeature } from '@openfeature/server-sdk';
+
+/**
+ * Returns a domain scoped or the default OpenFeature client with the given context.
+ * @param {string} domain The domain of the OpenFeature client.
+ * @param {EvaluationContext} context The evaluation context of the client.
+ * @returns {Client} The OpenFeature client.
+ */
+export function getClientForEvaluation(domain?: string, context?: EvaluationContext) {
+ return domain ? OpenFeature.getClient(domain, context) : OpenFeature.getClient(context);
+}
diff --git a/packages/nest/test/fixtures.ts b/packages/nest/test/fixtures.ts
index b773682aa..352770c7b 100644
--- a/packages/nest/test/fixtures.ts
+++ b/packages/nest/test/fixtures.ts
@@ -1,4 +1,5 @@
import { InMemoryProvider } from '@openfeature/server-sdk';
+import type { EvaluationContext } from '@openfeature/server-sdk';
import type { ExecutionContext } from '@nestjs/common';
import { OpenFeatureModule } from '../src';
@@ -23,6 +24,17 @@ export const defaultProvider = new InMemoryProvider({
variants: { default: { client: 'default' } },
disabled: false,
},
+ testBooleanFlag2: {
+ defaultVariant: 'default',
+ variants: { default: false, enabled: true },
+ disabled: false,
+ contextEvaluator: (ctx: EvaluationContext) => {
+ if (ctx.targetingKey === '123') {
+ return 'enabled';
+ }
+ return 'default';
+ },
+ },
});
export const providers = {
diff --git a/packages/nest/test/open-feature-sdk.spec.ts b/packages/nest/test/open-feature-sdk.spec.ts
index 901f810fd..fb6d64f5f 100644
--- a/packages/nest/test/open-feature-sdk.spec.ts
+++ b/packages/nest/test/open-feature-sdk.spec.ts
@@ -2,7 +2,12 @@ import type { TestingModule } from '@nestjs/testing';
import { Test } from '@nestjs/testing';
import type { INestApplication } from '@nestjs/common';
import supertest from 'supertest';
-import { OpenFeatureController, OpenFeatureControllerContextScopedController, OpenFeatureTestService } from './test-app';
+import {
+ OpenFeatureController,
+ OpenFeatureContextScopedController,
+ OpenFeatureRequireFlagsEnabledController,
+ OpenFeatureTestService,
+} from './test-app';
import { exampleContextFactory, getOpenFeatureDefaultTestModule } from './fixtures';
import { OpenFeatureModule } from '../src';
import { defaultProvider, providers } from './fixtures';
@@ -14,11 +19,9 @@ describe('OpenFeature SDK', () => {
beforeAll(async () => {
moduleRef = await Test.createTestingModule({
- imports: [
- getOpenFeatureDefaultTestModule()
- ],
+ imports: [getOpenFeatureDefaultTestModule()],
providers: [OpenFeatureTestService],
- controllers: [OpenFeatureController],
+ controllers: [OpenFeatureController, OpenFeatureRequireFlagsEnabledController],
}).compile();
app = moduleRef.createNestApplication();
app = await app.init();
@@ -112,7 +115,7 @@ describe('OpenFeature SDK', () => {
});
describe('evaluation context service should', () => {
- it('inject the evaluation context from contex factory', async function() {
+ it('inject the evaluation context from contex factory', async function () {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
await supertest(app.getHttpServer())
.get('/dynamic-context-in-service')
@@ -122,26 +125,77 @@ describe('OpenFeature SDK', () => {
expect(evaluationSpy).toHaveBeenCalledWith('testBooleanFlag', false, { targetingKey: 'dynamic-user' }, {});
});
});
+
+ describe('require flags enabled decorator', () => {
+ describe('OpenFeatureController', () => {
+ it('should sucessfully return the response if the flag is enabled', async () => {
+ await supertest(app.getHttpServer()).get('/flags-enabled').expect(200).expect('Get Boolean Flag Success!');
+ });
+
+ it('should throw an exception if the flag is disabled', async () => {
+ jest.spyOn(defaultProvider, 'resolveBooleanEvaluation').mockResolvedValueOnce({
+ value: false,
+ reason: 'DISABLED',
+ });
+ await supertest(app.getHttpServer()).get('/flags-enabled').expect(404);
+ });
+
+ it('should throw a custom exception if the flag is disabled', async () => {
+ jest.spyOn(defaultProvider, 'resolveBooleanEvaluation').mockResolvedValueOnce({
+ value: false,
+ reason: 'DISABLED',
+ });
+ await supertest(app.getHttpServer()).get('/flags-enabled-custom-exception').expect(403);
+ });
+
+ it('should throw a custom exception if the flag is disabled with context', async () => {
+ await supertest(app.getHttpServer())
+ .get('/flags-enabled-custom-exception-with-context')
+ .set('x-user-id', '123')
+ .expect(403);
+ });
+ });
+
+ describe('OpenFeatureControllerRequireFlagsEnabled', () => {
+ it('should allow access to the RequireFlagsEnabled controller with global context interceptor', async () => {
+ await supertest(app.getHttpServer())
+ .get('/require-flags-enabled')
+ .set('x-user-id', '123')
+ .expect(200)
+ .expect('Hello, world!');
+ });
+
+ it('should throw a 403 - Forbidden exception if user does not match targeting requirements', async () => {
+ await supertest(app.getHttpServer()).get('/require-flags-enabled').set('x-user-id', 'not-123').expect(403);
+ });
+
+ it('should throw a 403 - Forbidden exception if one of the flags is disabled', async () => {
+ jest.spyOn(defaultProvider, 'resolveBooleanEvaluation').mockResolvedValueOnce({
+ value: false,
+ reason: 'DISABLED',
+ });
+ await supertest(app.getHttpServer()).get('/require-flags-enabled').set('x-user-id', '123').expect(403);
+ });
+ });
+ });
});
describe('Without global context interceptor', () => {
-
let moduleRef: TestingModule;
let app: INestApplication;
beforeAll(async () => {
-
moduleRef = await Test.createTestingModule({
imports: [
OpenFeatureModule.forRoot({
contextFactory: exampleContextFactory,
defaultProvider,
providers,
- useGlobalInterceptor: false
+ useGlobalInterceptor: false,
}),
],
providers: [OpenFeatureTestService],
- controllers: [OpenFeatureController, OpenFeatureControllerContextScopedController],
+ controllers: [OpenFeatureController, OpenFeatureContextScopedController],
}).compile();
app = moduleRef.createNestApplication();
app = await app.init();
@@ -158,7 +212,7 @@ describe('OpenFeature SDK', () => {
});
describe('evaluation context service should', () => {
- it('inject empty context if no context interceptor is configured', async function() {
+ it('inject empty context if no context interceptor is configured', async function () {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
await supertest(app.getHttpServer())
.get('/dynamic-context-in-service')
@@ -172,9 +226,26 @@ describe('OpenFeature SDK', () => {
describe('With Controller bound Context interceptor', () => {
it('should not use context if global context interceptor is not configured', async () => {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
- await supertest(app.getHttpServer()).get('/controller-context').set('x-user-id', '123').expect(200).expect('true');
+ await supertest(app.getHttpServer())
+ .get('/controller-context')
+ .set('x-user-id', '123')
+ .expect(200)
+ .expect('true');
expect(evaluationSpy).toHaveBeenCalledWith('testBooleanFlag', false, { targetingKey: '123' }, {});
});
});
+
+ describe('require flags enabled decorator', () => {
+ it('should return a 404 - Not Found exception if the flag is disabled', async () => {
+ jest.spyOn(providers.domainScopedClient, 'resolveBooleanEvaluation').mockResolvedValueOnce({
+ value: false,
+ reason: 'DISABLED',
+ });
+ await supertest(app.getHttpServer())
+ .get('/controller-context/flags-enabled')
+ .set('x-user-id', '123')
+ .expect(404);
+ });
+ });
});
});
diff --git a/packages/nest/test/test-app.ts b/packages/nest/test/test-app.ts
index c717b1a1f..aa5358cd6 100644
--- a/packages/nest/test/test-app.ts
+++ b/packages/nest/test/test-app.ts
@@ -1,7 +1,14 @@
-import { Controller, Get, Injectable, UseInterceptors } from '@nestjs/common';
-import type { Observable} from 'rxjs';
+import { Controller, ForbiddenException, Get, Injectable, UseInterceptors } from '@nestjs/common';
+import type { Observable } from 'rxjs';
import { map } from 'rxjs';
-import { BooleanFeatureFlag, ObjectFeatureFlag, NumberFeatureFlag, OpenFeatureClient, StringFeatureFlag } from '../src';
+import {
+ BooleanFeatureFlag,
+ ObjectFeatureFlag,
+ NumberFeatureFlag,
+ OpenFeatureClient,
+ StringFeatureFlag,
+ RequireFlagsEnabled,
+} from '../src';
import type { Client, EvaluationDetails, FlagValue } from '@openfeature/server-sdk';
import { EvaluationContextInterceptor } from '../src';
@@ -84,11 +91,40 @@ export class OpenFeatureController {
public async handleDynamicContextInServiceRequest() {
return this.testService.serviceMethodWithDynamicContext('testBooleanFlag');
}
+
+ @RequireFlagsEnabled({
+ flags: [{ flagKey: 'testBooleanFlag' }],
+ })
+ @Get('/flags-enabled')
+ public async handleGuardedBooleanRequest() {
+ return 'Get Boolean Flag Success!';
+ }
+
+ @RequireFlagsEnabled({
+ flags: [{ flagKey: 'testBooleanFlag' }],
+ exception: new ForbiddenException(),
+ })
+ @Get('/flags-enabled-custom-exception')
+ public async handleBooleanRequestWithCustomException() {
+ return 'Get Boolean Flag Success!';
+ }
+
+ @RequireFlagsEnabled({
+ flags: [{ flagKey: 'testBooleanFlag2' }],
+ exception: new ForbiddenException(),
+ context: {
+ targetingKey: 'user-id',
+ },
+ })
+ @Get('/flags-enabled-custom-exception-with-context')
+ public async handleBooleanRequestWithCustomExceptionAndContext() {
+ return 'Get Boolean Flag Success!';
+ }
}
@Controller()
@UseInterceptors(EvaluationContextInterceptor)
-export class OpenFeatureControllerContextScopedController {
+export class OpenFeatureContextScopedController {
constructor(private testService: OpenFeatureTestService) {}
@Get('/controller-context')
@@ -101,4 +137,27 @@ export class OpenFeatureControllerContextScopedController {
) {
return feature.pipe(map((details) => this.testService.serviceMethod(details)));
}
+
+ @RequireFlagsEnabled({
+ flags: [{ flagKey: 'testBooleanFlag' }],
+ domain: 'domainScopedClient',
+ })
+ @Get('/controller-context/flags-enabled')
+ public async handleBooleanRequest() {
+ return 'Get Boolean Flag Success!';
+ }
+}
+
+@Controller('require-flags-enabled')
+@RequireFlagsEnabled({
+ flags: [{ flagKey: 'testBooleanFlag', defaultValue: false }, { flagKey: 'testBooleanFlag2' }],
+ exception: new ForbiddenException(),
+})
+export class OpenFeatureRequireFlagsEnabledController {
+ constructor() {}
+
+ @Get('/')
+ public async handleGetRequest() {
+ return 'Hello, world!';
+ }
}
From 59c2f5df76fd0e647864a8eb1d0e452b053593f9 Mon Sep 17 00:00:00 2001
From: Michael Beemer
Date: Thu, 24 Apr 2025 12:25:37 -0400
Subject: [PATCH 04/20] chore: regenerate package lock (#1184)
Attempting to address the E2E failure:
https://github.com/open-feature/js-sdk/actions/runs/14643009193/job/41089818968?pr=1181
Signed-off-by: Michael Beemer
---
package-lock.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index a9f3728b5..1edf4e541 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24064,7 +24064,7 @@
},
"packages/angular/projects/angular-sdk": {
"name": "@openfeature/angular-sdk",
- "version": "0.0.12",
+ "version": "0.0.13",
"dependencies": {
"tslib": "^2.3.0"
},
@@ -24082,7 +24082,7 @@
},
"packages/nest": {
"name": "@openfeature/nestjs-sdk",
- "version": "0.2.3",
+ "version": "0.2.4",
"license": "Apache-2.0",
"devDependencies": {
"@nestjs/common": "^11.0.20",
From 1e58d2b65e983a6a575e09b4502af2a3b8e34cad Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 30 Apr 2025 13:01:21 -0400
Subject: [PATCH 05/20] chore(deps): update dependency @types/node to v20.17.31
(#1138)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.17.16` ->
`20.17.31`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.16/20.17.31)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1edf4e541..d944ac503 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5460,9 +5460,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.17.16",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.16.tgz",
- "integrity": "sha512-vOTpLduLkZXePLxHiHsBLp98mHGnl8RptV4YAO3HfKO5UHjDvySGbxKtpYfy8Sx5+WKcgc45qNreJJRVM3L6mw==",
+ "version": "20.17.31",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.31.tgz",
+ "integrity": "sha512-quODOCNXQAbNf1Q7V+fI8WyErOCh0D5Yd31vHnKu4GkSztGQ7rlltAaqXhHhLl33tlVyUXs2386MkANSwgDn6A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -23663,6 +23663,7 @@
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
"dev": true,
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
From c00675c9bde02321cee34dd6f4504743ecef3701 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 May 2025 11:48:00 -0400
Subject: [PATCH 06/20] chore(deps): update dependency @types/node to v22
(#1067)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`^20.11.16` ->
`^22.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.31/22.15.17)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 19 ++++++++++---------
package.json | 2 +-
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d944ac503..9e89fe8d0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,7 +22,7 @@
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.0.0",
"@types/jest": "^29.5.12",
- "@types/node": "^20.11.16",
+ "@types/node": "^22.0.0",
"@types/react": "^18.2.55",
"@types/uuid": "^10.0.0",
"esbuild": "^0.25.0",
@@ -5460,13 +5460,13 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.17.31",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.31.tgz",
- "integrity": "sha512-quODOCNXQAbNf1Q7V+fI8WyErOCh0D5Yd31vHnKu4GkSztGQ7rlltAaqXhHhLl33tlVyUXs2386MkANSwgDn6A==",
+ "version": "22.15.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
+ "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~6.19.2"
+ "undici-types": "~6.21.0"
}
},
"node_modules/@types/node-forge": {
@@ -18549,10 +18549,11 @@
}
},
"node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "dev": true
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.1",
diff --git a/package.json b/package.json
index 3104c1b41..7de116e56 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.0.0",
"@types/jest": "^29.5.12",
- "@types/node": "^20.11.16",
+ "@types/node": "^22.0.0",
"@types/react": "^18.2.55",
"@types/uuid": "^10.0.0",
"esbuild": "^0.25.0",
From cb14827639baea86b2f1f9ca8e75d2d169cab430 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 May 2025 11:48:17 -0400
Subject: [PATCH 07/20] chore(deps): update dependency @types/supertest to
v6.0.3 (#1169)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/supertest](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/supertest)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest))
| [`6.0.2` ->
`6.0.3`](https://renovatebot.com/diffs/npm/@types%2fsupertest/6.0.2/6.0.3)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 9e89fe8d0..a54d78e3e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5577,10 +5577,11 @@
}
},
"node_modules/@types/supertest": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.2.tgz",
- "integrity": "sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.3.tgz",
+ "integrity": "sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/methods": "^1.1.4",
"@types/superagent": "^8.1.0"
@@ -24093,7 +24094,7 @@
"@nestjs/testing": "^11.0.20",
"@openfeature/core": "*",
"@openfeature/server-sdk": "1.18.0",
- "@types/supertest": "^6.0.0",
+ "@types/supertest": "^6.0.3",
"supertest": "^7.0.0"
},
"peerDependencies": {
From 8f9b1ae34f369fb2701bf3ad9ed135fd342dff93 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 May 2025 11:48:41 -0400
Subject: [PATCH 08/20] chore(deps): update dependency rollup to v4.40.2
(#1131)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.24.2` ->
`4.40.2`](https://renovatebot.com/diffs/npm/rollup/4.24.2/4.40.2) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
rollup/rollup (rollup)
###
[`v4.40.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4402)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.40.1...v4.40.2)
*2025-05-06*
##### Bug Fixes
- Create correct IIFE/AMD/UMD bundles when using a mutable default
export
([#5934](https://redirect.github.com/rollup/rollup/issues/5934))
- Fix execution order when using top-level await for dynamic imports
with inlineDynamicImports
([#5937](https://redirect.github.com/rollup/rollup/issues/5937))
- Throw when the output is watched in watch mode
([#5939](https://redirect.github.com/rollup/rollup/issues/5939))
##### Pull Requests
- [#5934](https://redirect.github.com/rollup/rollup/pull/5934):
fix(exports): avoid "exports is not defined" `ReferenceError`
([@dasa](https://redirect.github.com/dasa))
- [#5937](https://redirect.github.com/rollup/rollup/pull/5937):
consider TLA imports have higher execution priority
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5939](https://redirect.github.com/rollup/rollup/pull/5939):
fix: watch mode input should not be an output subpath
([@btea](https://redirect.github.com/btea))
- [#5940](https://redirect.github.com/rollup/rollup/pull/5940):
chore(deps): update dependency vite to v6.3.4 \[security]
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5941](https://redirect.github.com/rollup/rollup/pull/5941):
chore(deps): update dependency eslint-plugin-unicorn to v59
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5942](https://redirect.github.com/rollup/rollup/pull/5942):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5943](https://redirect.github.com/rollup/rollup/pull/5943):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.40.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4401)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.40.0...v4.40.1)
*2025-04-28*
##### Bug Fixes
- Limit hash size for asset file names to the supported 21
([#5921](https://redirect.github.com/rollup/rollup/issues/5921))
- Do not inline user-defined entry chunks or chunks with explicit file
name
([#5923](https://redirect.github.com/rollup/rollup/issues/5923))
- Avoid top-level-await cycles when non-entry chunks use top-level await
([#5930](https://redirect.github.com/rollup/rollup/issues/5930))
- Expose package.json via exports
([#5931](https://redirect.github.com/rollup/rollup/issues/5931))
##### Pull Requests
- [#5921](https://redirect.github.com/rollup/rollup/pull/5921):
fix(assetFileNames): reduce max hash size to 21
([@shulaoda](https://redirect.github.com/shulaoda))
- [#5923](https://redirect.github.com/rollup/rollup/pull/5923):
fix: generate the separate chunk for the entry module with explicated
chunk filename or name
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5926](https://redirect.github.com/rollup/rollup/pull/5926):
fix(deps): update rust crate swc_compiler_base to v18
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5927](https://redirect.github.com/rollup/rollup/pull/5927):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5928](https://redirect.github.com/rollup/rollup/pull/5928):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5930](https://redirect.github.com/rollup/rollup/pull/5930):
Avoid chunks TLA dynamic import circular when TLA dynamic import used in
non-entry modules
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5931](https://redirect.github.com/rollup/rollup/pull/5931):
chore: add new `./package.json` entry
([@JounQin](https://redirect.github.com/JounQin),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5936](https://redirect.github.com/rollup/rollup/pull/5936):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.40.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4400)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.39.0...v4.40.0)
*2025-04-12*
##### Features
- Only show `eval` warnings on first render and only when the call is
not tree-shaken
([#5892](https://redirect.github.com/rollup/rollup/issues/5892))
- Tree-shake non-included dynamic import members when the handler just
maps to one named export
([#5898](https://redirect.github.com/rollup/rollup/issues/5898))
##### Bug Fixes
- Consider dynamic imports nested within top-level-awaited dynamic
import expressions to be awaited as well
([#5900](https://redirect.github.com/rollup/rollup/issues/5900))
- Fix namespace rendering when tree-shaking is disabled
([#5908](https://redirect.github.com/rollup/rollup/issues/5908))
- When using multiple transform hook filters, all of them need to be
satisfied together
([#5909](https://redirect.github.com/rollup/rollup/issues/5909))
##### Pull Requests
- [#5892](https://redirect.github.com/rollup/rollup/pull/5892):
Warn when eval or namespace calls are rendered, not when they are parsed
([@SunsetFi](https://redirect.github.com/SunsetFi),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5898](https://redirect.github.com/rollup/rollup/pull/5898):
feat: treeshake dynamic import chained member expression
([@privatenumber](https://redirect.github.com/privatenumber),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5900](https://redirect.github.com/rollup/rollup/pull/5900):
consider the dynamic import within a TLA call expression as a TLA import
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5904](https://redirect.github.com/rollup/rollup/pull/5904):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5905](https://redirect.github.com/rollup/rollup/pull/5905):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5908](https://redirect.github.com/rollup/rollup/pull/5908):
Fix `treeshake: false` breaking destructured namespace imports
([@Skn0tt](https://redirect.github.com/Skn0tt))
- [#5909](https://redirect.github.com/rollup/rollup/pull/5909):
Correct the behavior when multiple transform filter options are
specified ([@sapphi-red](https://redirect.github.com/sapphi-red))
- [#5915](https://redirect.github.com/rollup/rollup/pull/5915):
chore(deps): update dependency
[@types/picomatch](https://redirect.github.com/types/picomatch)
to v4 ([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5916](https://redirect.github.com/rollup/rollup/pull/5916):
fix(deps): update rust crate swc_compiler_base to v17
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5917](https://redirect.github.com/rollup/rollup/pull/5917):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5918](https://redirect.github.com/rollup/rollup/pull/5918):
chore(deps): update dependency vite to v6.2.6 \[security]
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.39.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4390)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.38.0...v4.39.0)
*2025-04-02*
##### Features
- Do not create separate facade chunks if a chunk would contain several
entry modules that allow export extension if there are no export name
conflicts
([#5891](https://redirect.github.com/rollup/rollup/issues/5891))
##### Bug Fixes
- Mark the `id` property as optional in the filter for the `resolveId`
hook
([#5896](https://redirect.github.com/rollup/rollup/issues/5896))
##### Pull Requests
- [#5891](https://redirect.github.com/rollup/rollup/pull/5891):
chunk: merge allow-extension modules
([@wmertens](https://redirect.github.com/wmertens),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5893](https://redirect.github.com/rollup/rollup/pull/5893):
chore(deps): update dependency vite to v6.2.4 \[security]
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5896](https://redirect.github.com/rollup/rollup/pull/5896):
fix: resolveId id filter is optional
([@sapphi-red](https://redirect.github.com/sapphi-red))
###
[`v4.38.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4380)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.37.0...v4.38.0)
*2025-03-29*
##### Features
- Support `.filter` option in `resolveId`, `load` and `transform` hooks
([#5882](https://redirect.github.com/rollup/rollup/issues/5882))
##### Pull Requests
- [#5882](https://redirect.github.com/rollup/rollup/pull/5882):
Add support for hook filters
([@sapphi-red](https://redirect.github.com/sapphi-red))
- [#5894](https://redirect.github.com/rollup/rollup/pull/5894):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5895](https://redirect.github.com/rollup/rollup/pull/5895):
chore(deps): update dependency eslint-plugin-unicorn to v58
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.37.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4370)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.36.0...v4.37.0)
*2025-03-23*
##### Features
- Support Musl Linux on Riscv64 architectures
([#5726](https://redirect.github.com/rollup/rollup/issues/5726))
- Handles class decorators placed before the `export` keyword
([#5871](https://redirect.github.com/rollup/rollup/issues/5871))
##### Bug Fixes
- Log Rust panic messages to the console when using the WASM build
([#5875](https://redirect.github.com/rollup/rollup/issues/5875))
##### Pull Requests
- [#5726](https://redirect.github.com/rollup/rollup/pull/5726):
Add support for linux riscv64 musl
([@fossdd](https://redirect.github.com/fossdd),
[@leso-kn](https://redirect.github.com/leso-kn))
- [#5871](https://redirect.github.com/rollup/rollup/pull/5871):
feat: support decorators before or after export
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5875](https://redirect.github.com/rollup/rollup/pull/5875):
capture Rust panic messages and output them to the console.
([@luyahan](https://redirect.github.com/luyahan),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5883](https://redirect.github.com/rollup/rollup/pull/5883):
Pin digest of 3rd party actions
([@re-taro](https://redirect.github.com/re-taro))
- [#5885](https://redirect.github.com/rollup/rollup/pull/5885):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.36.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4360)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.35.0...v4.36.0)
*2025-03-17*
##### Features
- Extend `renderDynamicImport` hook to provide information about static
dependencies of the imported module
([#5870](https://redirect.github.com/rollup/rollup/issues/5870))
- Export several additional types used by Vite
([#5879](https://redirect.github.com/rollup/rollup/issues/5879))
##### Bug Fixes
- Do not merge chunks if that would create a top-level await cycle
between chunks
([#5843](https://redirect.github.com/rollup/rollup/issues/5843))
##### Pull Requests
- [#5843](https://redirect.github.com/rollup/rollup/pull/5843):
avoiding top level await circular
([@TrickyPi](https://redirect.github.com/TrickyPi),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5870](https://redirect.github.com/rollup/rollup/pull/5870):
draft for extended renderDynamicImport hook
([@iczero](https://redirect.github.com/iczero),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5876](https://redirect.github.com/rollup/rollup/pull/5876):
Update axios overrides to 1.8.2
([@vadym-khodak](https://redirect.github.com/vadym-khodak))
- [#5877](https://redirect.github.com/rollup/rollup/pull/5877):
chore(deps): update dependency eslint-plugin-vue to v10
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5878](https://redirect.github.com/rollup/rollup/pull/5878):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5879](https://redirect.github.com/rollup/rollup/pull/5879):
fix: export types ([@sxzz](https://redirect.github.com/sxzz))
###
[`v4.35.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4350)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.9...v4.35.0)
*2025-03-08*
##### Features
- Pass build errors to the closeBundle hook
([#5867](https://redirect.github.com/rollup/rollup/issues/5867))
##### Pull Requests
- [#5852](https://redirect.github.com/rollup/rollup/pull/5852):
chore(deps): update dependency eslint-plugin-unicorn to v57
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5862](https://redirect.github.com/rollup/rollup/pull/5862):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5867](https://redirect.github.com/rollup/rollup/pull/5867):
feat(5858): make closeBundle hook receive the last error
([@GauBen](https://redirect.github.com/GauBen))
- [#5872](https://redirect.github.com/rollup/rollup/pull/5872):
chore(deps): update dependency builtin-modules to v5
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5873](https://redirect.github.com/rollup/rollup/pull/5873):
chore(deps): update uraimo/run-on-arch-action action to v3
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5874](https://redirect.github.com/rollup/rollup/pull/5874):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.34.9`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4349)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.8...v4.34.9)
*2025-03-01*
##### Bug Fixes
- Support JSX modes in WASM
([#5866](https://redirect.github.com/rollup/rollup/issues/5866))
- Allow the CustomPluginOptions to be extended
([#5850](https://redirect.github.com/rollup/rollup/issues/5850))
##### Pull Requests
- [#5850](https://redirect.github.com/rollup/rollup/pull/5850):
Revert CustomPluginOptions to be an interface
([@sapphi-red](https://redirect.github.com/sapphi-red),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5851](https://redirect.github.com/rollup/rollup/pull/5851):
Javascript to JavaScript
([@dasa](https://redirect.github.com/dasa),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5853](https://redirect.github.com/rollup/rollup/pull/5853):
chore(deps): update dependency pinia to v3
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5854](https://redirect.github.com/rollup/rollup/pull/5854):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5855](https://redirect.github.com/rollup/rollup/pull/5855):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5860](https://redirect.github.com/rollup/rollup/pull/5860):
chore(deps): update dependency
[@shikijs/vitepress-twoslash](https://redirect.github.com/shikijs/vitepress-twoslash)
to v3 ([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5861](https://redirect.github.com/rollup/rollup/pull/5861):
chore(deps): update dependency globals to v16
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5863](https://redirect.github.com/rollup/rollup/pull/5863):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5864](https://redirect.github.com/rollup/rollup/pull/5864):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5866](https://redirect.github.com/rollup/rollup/pull/5866):
Add jsx parameter to parseAsync in native.wasm.js
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.34.8`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4348)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.7...v4.34.8)
*2025-02-17*
##### Bug Fixes
- Do not make assumptions about the value of nested paths in logical
expressions if the expression cannot be simplified
([#5846](https://redirect.github.com/rollup/rollup/issues/5846))
##### Pull Requests
- [#5846](https://redirect.github.com/rollup/rollup/pull/5846):
return UnknownValue if the usedbranch is unkown and the path is not
empty ([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.34.7`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4347)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.6...v4.34.7)
*2025-02-14*
##### Bug Fixes
- Ensure that calls to parameters are included correctly when using
try-catch deoptimization
([#5842](https://redirect.github.com/rollup/rollup/issues/5842))
##### Pull Requests
- [#5840](https://redirect.github.com/rollup/rollup/pull/5840):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5842](https://redirect.github.com/rollup/rollup/pull/5842):
Fix prop inclusion with try-catch-deoptimization
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.34.6`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4346)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.5...v4.34.6)
*2025-02-07*
##### Bug Fixes
- Retain "void 0" in the output for smaller output and fewer surprises
([#5838](https://redirect.github.com/rollup/rollup/issues/5838))
##### Pull Requests
- [#5835](https://redirect.github.com/rollup/rollup/pull/5835):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5838](https://redirect.github.com/rollup/rollup/pull/5838):
replace undefined with void 0 for operator void
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.34.5`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4345)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.4...v4.34.5)
*2025-02-07*
##### Bug Fixes
- Ensure namespace reexports always include all properties of all
exports
([#5837](https://redirect.github.com/rollup/rollup/issues/5837))
##### Pull Requests
- [#5836](https://redirect.github.com/rollup/rollup/pull/5836):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5837](https://redirect.github.com/rollup/rollup/pull/5837):
Include all paths of reexports if namespace is used
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.34.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4344)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.3...v4.34.4)
*2025-02-05*
##### Bug Fixes
- Do not tree-shake properties if a rest element is used in
destructuring
([#5833](https://redirect.github.com/rollup/rollup/issues/5833))
##### Pull Requests
- [#5833](https://redirect.github.com/rollup/rollup/pull/5833):
include all properties if a rest element is destructed
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.34.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4343)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.2...v4.34.3)
*2025-02-05*
##### Bug Fixes
- Ensure properties of "this" are included in getters
([#5831](https://redirect.github.com/rollup/rollup/issues/5831))
##### Pull Requests
- [#5831](https://redirect.github.com/rollup/rollup/pull/5831):
include the properties that accessed by this
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.34.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4342)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.1...v4.34.2)
*2025-02-04*
##### Bug Fixes
- Fix an issue where not all usages of a function were properly detected
([#5827](https://redirect.github.com/rollup/rollup/issues/5827))
##### Pull Requests
- [#5827](https://redirect.github.com/rollup/rollup/pull/5827):
Ensure that functions provided to a constructor are properly deoptimized
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.34.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4341)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.0...v4.34.1)
*2025-02-03*
##### Bug Fixes
- Ensure throwing objects includes the entire object
([#5825](https://redirect.github.com/rollup/rollup/issues/5825))
##### Pull Requests
- [#5825](https://redirect.github.com/rollup/rollup/pull/5825):
Ensure that all properties of throw statements are included
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.34.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4340)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.33.0...v4.34.0)
*2025-02-01*
##### Features
- Tree-shake unused properties in object literals (re-implements
[#5420](https://redirect.github.com/rollup/rollup/issues/5420))
([#5737](https://redirect.github.com/rollup/rollup/issues/5737))
##### Pull Requests
- [#5737](https://redirect.github.com/rollup/rollup/pull/5737):
Reapply object tree-shaking
([@lukastaegert](https://redirect.github.com/lukastaegert),
[@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.33.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4330)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.32.1...v4.33.0)
*2025-02-01*
##### Features
- Correctly detect literal value of more negated expressions
([#5812](https://redirect.github.com/rollup/rollup/issues/5812))
##### Bug Fixes
- Use the correct with/assert attribute key in dynamic imports
([#5818](https://redirect.github.com/rollup/rollup/issues/5818))
- Fix an issue where logical expressions were considered to have the
wrong value
([#5819](https://redirect.github.com/rollup/rollup/issues/5819))
##### Pull Requests
- [#5812](https://redirect.github.com/rollup/rollup/pull/5812):
feat: optimize the literal value of unary expressions
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5816](https://redirect.github.com/rollup/rollup/pull/5816):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5817](https://redirect.github.com/rollup/rollup/pull/5817):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot],
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5818](https://redirect.github.com/rollup/rollup/pull/5818):
support for changing the attributes key for dynamic imports
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5819](https://redirect.github.com/rollup/rollup/pull/5819):
Return UnknownValue if getLiteralValueAtPath is called recursively
within logical expressions
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5820](https://redirect.github.com/rollup/rollup/pull/5820):
return null
([@kingma-sbw](https://redirect.github.com/kingma-sbw))
###
[`v4.32.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4321)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.32.0...v4.32.1)
*2025-01-28*
##### Bug Fixes
- Fix possible crash when optimizing logical expressions
([#5804](https://redirect.github.com/rollup/rollup/issues/5804))
##### Pull Requests
- [#5804](https://redirect.github.com/rollup/rollup/pull/5804):
fix: set hasDeoptimizedCache to true as early as possible
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5813](https://redirect.github.com/rollup/rollup/pull/5813):
Fix typo ([@kantuni](https://redirect.github.com/kantuni))
###
[`v4.32.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4320)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.31.0...v4.32.0)
*2025-01-24*
##### Features
- Add watch.onInvalidate option to trigger actions immediately when a
file is changed
([#5799](https://redirect.github.com/rollup/rollup/issues/5799))
##### Bug Fixes
- Fix incorrect urls in CLI warnings
([#5809](https://redirect.github.com/rollup/rollup/issues/5809))
##### Pull Requests
- [#5799](https://redirect.github.com/rollup/rollup/pull/5799):
Feature/watch on invalidate
([@drebrez](https://redirect.github.com/drebrez),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5808](https://redirect.github.com/rollup/rollup/pull/5808):
chore(deps): update dependency vite to v6.0.9 \[security]
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5809](https://redirect.github.com/rollup/rollup/pull/5809):
fix: avoid duplicate rollupjs.org prefix
([@GauBen](https://redirect.github.com/GauBen),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5810](https://redirect.github.com/rollup/rollup/pull/5810):
chore(deps): update dependency
[@shikijs/vitepress-twoslash](https://redirect.github.com/shikijs/vitepress-twoslash)
to v2 ([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5811](https://redirect.github.com/rollup/rollup/pull/5811):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.31.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4310)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.30.1...v4.31.0)
*2025-01-19*
##### Features
- Do not immediately quit when trying to use watch mode from within
non-TTY environments
([#5803](https://redirect.github.com/rollup/rollup/issues/5803))
##### Bug Fixes
- Handle files with more than one UTF-8 BOM header
([#5806](https://redirect.github.com/rollup/rollup/issues/5806))
##### Pull Requests
- [#5792](https://redirect.github.com/rollup/rollup/pull/5792):
fix(deps): update rust crate swc_compiler_base to v8
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5793](https://redirect.github.com/rollup/rollup/pull/5793):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5794](https://redirect.github.com/rollup/rollup/pull/5794):
chore(deps): lock file maintenance
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5801](https://redirect.github.com/rollup/rollup/pull/5801):
chore(deps): update dependency eslint-config-prettier to v10
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5802](https://redirect.github.com/rollup/rollup/pull/5802):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5803](https://redirect.github.com/rollup/rollup/pull/5803):
Support watch mode in yarn, gradle and containers
([@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5806](https://redirect.github.com/rollup/rollup/pull/5806):
fix: strip all BOMs
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.30.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4301)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.30.0...v4.30.1)
*2025-01-07*
##### Bug Fixes
- Prevent invalid code when simplifying unary expressions in switch
cases
([#5786](https://redirect.github.com/rollup/rollup/issues/5786))
##### Pull Requests
- [#5786](https://redirect.github.com/rollup/rollup/pull/5786):
fix: consider that literals cannot following switch case.
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.30.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4300)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.29.2...v4.30.0)
*2025-01-06*
##### Features
- Inline values of resolvable unary expressions for improved
tree-shaking
([#5775](https://redirect.github.com/rollup/rollup/issues/5775))
##### Pull Requests
- [#5775](https://redirect.github.com/rollup/rollup/pull/5775):
feat: enhance the treehshaking for unary expression
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5783](https://redirect.github.com/rollup/rollup/pull/5783):
Improve CI caching for node_modules
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.29.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4292)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.29.1...v4.29.2)
*2025-01-05*
##### Bug Fixes
- Keep import attributes when using dynamic ESM `import()` expressions
from CommonJS
([#5781](https://redirect.github.com/rollup/rollup/issues/5781))
##### Pull Requests
- [#5772](https://redirect.github.com/rollup/rollup/pull/5772):
Improve caching on CI
([@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5773](https://redirect.github.com/rollup/rollup/pull/5773):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5780](https://redirect.github.com/rollup/rollup/pull/5780):
feat: use picocolors instead of colorette
([@re-taro](https://redirect.github.com/re-taro))
- [#5781](https://redirect.github.com/rollup/rollup/pull/5781):
fix: keep import attributes for cjs format
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.29.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4291)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.29.0...v4.29.1)
*2024-12-21*
##### Bug Fixes
- Fix crash from deoptimized logical expressions
([#5771](https://redirect.github.com/rollup/rollup/issues/5771))
##### Pull Requests
- [#5769](https://redirect.github.com/rollup/rollup/pull/5769):
Remove unnecessary lifetimes
([@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5771](https://redirect.github.com/rollup/rollup/pull/5771):
fix: do not optimize the literal value if the cache is deoptimized
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.29.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4290)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.28.1...v4.29.0)
*2024-12-20*
##### Features
- Treat objects as truthy and always check second argument to better
simplify logical expressions
([#5763](https://redirect.github.com/rollup/rollup/issues/5763))
##### Pull Requests
- [#5759](https://redirect.github.com/rollup/rollup/pull/5759):
docs: add utf-8 encoding to JSON file reading
([@chouchouji](https://redirect.github.com/chouchouji))
- [#5760](https://redirect.github.com/rollup/rollup/pull/5760):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5763](https://redirect.github.com/rollup/rollup/pull/5763):
fix: introduce UnknownFalsyValue for enhancing if statement tree-shaking
([@TrickyPi](https://redirect.github.com/TrickyPi))
- [#5766](https://redirect.github.com/rollup/rollup/pull/5766):
chore(deps): update dependency
[@rollup/plugin-node-resolve](https://redirect.github.com/rollup/plugin-node-resolve)
to v16 ([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5767](https://redirect.github.com/rollup/rollup/pull/5767):
fix(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.28.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4281)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.28.0...v4.28.1)
*2024-12-06*
##### Bug Fixes
- Support running Rollup natively on LoongArch
([#5749](https://redirect.github.com/rollup/rollup/issues/5749))
- Add optional `debugId` to `SourceMap` types
([#5751](https://redirect.github.com/rollup/rollup/issues/5751))
##### Pull Requests
- [#5749](https://redirect.github.com/rollup/rollup/pull/5749):
feat: add support for LoongArch
([@darkyzhou](https://redirect.github.com/darkyzhou))
- [#5751](https://redirect.github.com/rollup/rollup/pull/5751):
feat: Add `debugId` to `SourceMap` types
([@timfish](https://redirect.github.com/timfish),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5752](https://redirect.github.com/rollup/rollup/pull/5752):
chore(deps): update dependency mocha to v11
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5753](https://redirect.github.com/rollup/rollup/pull/5753):
chore(deps): update dependency vite to v6
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5754](https://redirect.github.com/rollup/rollup/pull/5754):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5755](https://redirect.github.com/rollup/rollup/pull/5755):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5756](https://redirect.github.com/rollup/rollup/pull/5756):
Test if saving the Cargo cache can speed up FreeBSD
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.28.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4280)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.4...v4.28.0)
*2024-11-30*
##### Features
- Allow to specify how to handle import attributes when transpiling
Rollup config files
([#5743](https://redirect.github.com/rollup/rollup/issues/5743))
##### Pull Requests
- [#5743](https://redirect.github.com/rollup/rollup/pull/5743):
fix: supports modify the import attributes key in the config file
([@TrickyPi](https://redirect.github.com/TrickyPi),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5747](https://redirect.github.com/rollup/rollup/pull/5747):
chore(deps): update codecov/codecov-action action to v5
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5748](https://redirect.github.com/rollup/rollup/pull/5748):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.27.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4274)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.3...v4.27.4)
*2024-11-23*
##### Bug Fixes
- Update bundled magic-string to support sourcemap debug ids
([#5740](https://redirect.github.com/rollup/rollup/issues/5740))
##### Pull Requests
- [#5740](https://redirect.github.com/rollup/rollup/pull/5740):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.27.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4273)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.2...v4.27.3)
*2024-11-18*
##### Bug Fixes
- Revert object property tree-shaking for now
([#5736](https://redirect.github.com/rollup/rollup/issues/5736))
##### Pull Requests
- [#5736](https://redirect.github.com/rollup/rollup/pull/5736):
Revert object tree-shaking until some issues have been resolved
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.27.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4272)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.1...v4.27.2)
*2024-11-15*
##### Bug Fixes
- Ensure unused variables in patterns are always deconflicted if
rendered
([#5728](https://redirect.github.com/rollup/rollup/issues/5728))
##### Pull Requests
- [#5728](https://redirect.github.com/rollup/rollup/pull/5728):
Fix more variable deconflicting issues
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.27.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4271)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.0...v4.27.1)
*2024-11-15*
##### Bug Fixes
- Fix some situations where parameter declarations could put Rollup into
an infinite loop
([#5727](https://redirect.github.com/rollup/rollup/issues/5727))
##### Pull Requests
- [#5727](https://redirect.github.com/rollup/rollup/pull/5727):
Debug out-of-memory issues with Rollup v4.27.0
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.27.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4270)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.26.0...v4.27.0)
*2024-11-15*
##### Features
- Tree-shake unused properties in object literals
([#5420](https://redirect.github.com/rollup/rollup/issues/5420))
##### Bug Fixes
- Change hash length limit to 21 to avoid inconsistent hash length
([#5423](https://redirect.github.com/rollup/rollup/issues/5423))
##### Pull Requests
- [#5420](https://redirect.github.com/rollup/rollup/pull/5420):
feat: implement object tree-shaking
([@TrickyPi](https://redirect.github.com/TrickyPi),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5723](https://redirect.github.com/rollup/rollup/pull/5723):
Reduce max hash size to 21
([@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5724](https://redirect.github.com/rollup/rollup/pull/5724):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5725](https://redirect.github.com/rollup/rollup/pull/5725):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
###
[`v4.26.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4260)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.25.0...v4.26.0)
*2024-11-13*
##### Features
- Allow to avoid `await bundle.close()` via explicit resource management
in TypeScript
([#5721](https://redirect.github.com/rollup/rollup/issues/5721))
##### Pull Requests
- [#5721](https://redirect.github.com/rollup/rollup/pull/5721):
feat: support `using` for `RollupBuild`
([@shulaoda](https://redirect.github.com/shulaoda))
###
[`v4.25.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4250)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.24.4...v4.25.0)
*2024-11-09*
##### Features
- Add `output.sourcemapDebugIds` option to add matching debug ids to
sourcemaps and code for tools like Sentry or Rollbar
([#5712](https://redirect.github.com/rollup/rollup/issues/5712))
##### Bug Fixes
- Make it easier to manually reproduce base16 hashes by using a more
standard base16 conversion algorithm
([#5719](https://redirect.github.com/rollup/rollup/issues/5719))
##### Pull Requests
- [#5712](https://redirect.github.com/rollup/rollup/pull/5712):
feat: Add support for injecting Debug IDs
([@timfish](https://redirect.github.com/timfish))
- [#5717](https://redirect.github.com/rollup/rollup/pull/5717):
fix(deps): update swc monorepo (major)
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5718](https://redirect.github.com/rollup/rollup/pull/5718):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5719](https://redirect.github.com/rollup/rollup/pull/5719):
Use a less surprising base-16 encoding
([@lukastaegert](https://redirect.github.com/lukastaegert))
###
[`v4.24.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4244)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.24.3...v4.24.4)
*2024-11-04*
##### Bug Fixes
- Ensure mutations by handlers in Proxy definitions are always respected
when tree-shaking
([#5713](https://redirect.github.com/rollup/rollup/issues/5713))
##### Pull Requests
- [#5708](https://redirect.github.com/rollup/rollup/pull/5708):
Update configuration-options document
([@sacru2red](https://redirect.github.com/sacru2red),
[@lukastaegert](https://redirect.github.com/lukastaegert))
- [#5711](https://redirect.github.com/rollup/rollup/pull/5711):
chore(deps): lock file maintenance minor/patch updates
([@renovate](https://redirect.github.com/renovate)\[bot])
- [#5713](https://redirect.github.com/rollup/rollup/pull/5713):
fix: Deoptimize the proxied object if its property is reassigned in the
handler functions
([@TrickyPi](https://redirect.github.com/TrickyPi))
###
[`v4.24.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4243)
[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.24.2...v4.24.3)
*2024-10-29*
##### Bug Fixes
- Slightly reduce memory consumption by specifying fixed array sizes
where possible
([#5703](https://redirect.github.com/rollup/rollup/issues/5703))
##### Pull Requests
- [#5703](https://redirect.github.com/rollup/rollup/pull/5703):
perf: use pre-allocated arrays for known result sizes
([@GalacticHypernova](https://redirect.github.com/GalacticHypernova))
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 208 +++++++++++++++++++++++++++++-----------------
1 file changed, 132 insertions(+), 76 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index a54d78e3e..9253cc9c0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4656,234 +4656,280 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.2.tgz",
- "integrity": "sha512-ufoveNTKDg9t/b7nqI3lwbCG/9IJMhADBNjjz/Jn6LxIZxD7T5L8l2uO/wD99945F1Oo8FvgbbZJRguyk/BdzA==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz",
+ "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.2.tgz",
- "integrity": "sha512-iZoYCiJz3Uek4NI0J06/ZxUgwAfNzqltK0MptPDO4OR0a88R4h0DSELMsflS6ibMCJ4PnLvq8f7O1d7WexUvIA==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz",
+ "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.2.tgz",
- "integrity": "sha512-/UhrIxobHYCBfhi5paTkUDQ0w+jckjRZDZ1kcBL132WeHZQ6+S5v9jQPVGLVrLbNUebdIRpIt00lQ+4Z7ys4Rg==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz",
+ "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.2.tgz",
- "integrity": "sha512-1F/jrfhxJtWILusgx63WeTvGTwE4vmsT9+e/z7cZLKU8sBMddwqw3UV5ERfOV+H1FuRK3YREZ46J4Gy0aP3qDA==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz",
+ "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.2.tgz",
- "integrity": "sha512-1YWOpFcGuC6iGAS4EI+o3BV2/6S0H+m9kFOIlyFtp4xIX5rjSnL3AwbTBxROX0c8yWtiWM7ZI6mEPTI7VkSpZw==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz",
+ "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.2.tgz",
- "integrity": "sha512-3qAqTewYrCdnOD9Gl9yvPoAoFAVmPJsBvleabvx4bnu1Kt6DrB2OALeRVag7BdWGWLhP1yooeMLEi6r2nYSOjg==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz",
+ "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.2.tgz",
- "integrity": "sha512-ArdGtPHjLqWkqQuoVQ6a5UC5ebdX8INPuJuJNWRe0RGa/YNhVvxeWmCTFQ7LdmNCSUzVZzxAvUznKaYx645Rig==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz",
+ "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.2.tgz",
- "integrity": "sha512-B6UHHeNnnih8xH6wRKB0mOcJGvjZTww1FV59HqJoTJ5da9LCG6R4SEBt6uPqzlawv1LoEXSS0d4fBlHNWl6iYw==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz",
+ "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.2.tgz",
- "integrity": "sha512-kr3gqzczJjSAncwOS6i7fpb4dlqcvLidqrX5hpGBIM1wtt0QEVtf4wFaAwVv8QygFU8iWUMYEoJZWuWxyua4GQ==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz",
+ "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.2.tgz",
- "integrity": "sha512-TDdHLKCWgPuq9vQcmyLrhg/bgbOvIQ8rtWQK7MRxJ9nvaxKx38NvY7/Lo6cYuEnNHqf6rMqnivOIPIQt6H2AoA==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz",
+ "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz",
+ "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.2.tgz",
- "integrity": "sha512-xv9vS648T3X4AxFFZGWeB5Dou8ilsv4VVqJ0+loOIgDO20zIhYfDLkk5xoQiej2RiSQkld9ijF/fhLeonrz2mw==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz",
+ "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==",
"cpu": [
"ppc64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.2.tgz",
- "integrity": "sha512-tbtXwnofRoTt223WUZYiUnbxhGAOVul/3StZ947U4A5NNjnQJV5irKMm76G0LGItWs6y+SCjUn/Q0WaMLkEskg==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz",
+ "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz",
+ "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==",
"cpu": [
"riscv64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.2.tgz",
- "integrity": "sha512-gc97UebApwdsSNT3q79glOSPdfwgwj5ELuiyuiMY3pEWMxeVqLGKfpDFoum4ujivzxn6veUPzkGuSYoh5deQ2Q==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz",
+ "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==",
"cpu": [
"s390x"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.2.tgz",
- "integrity": "sha512-jOG/0nXb3z+EM6SioY8RofqqmZ+9NKYvJ6QQaa9Mvd3RQxlH68/jcB/lpyVt4lCiqr04IyaC34NzhUqcXbB5FQ==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz",
+ "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.2.tgz",
- "integrity": "sha512-XAo7cJec80NWx9LlZFEJQxqKOMz/lX3geWs2iNT5CHIERLFfd90f3RYLLjiCBm1IMaQ4VOX/lTC9lWfzzQm14Q==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz",
+ "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.2.tgz",
- "integrity": "sha512-A+JAs4+EhsTjnPQvo9XY/DC0ztaws3vfqzrMNMKlwQXuniBKOIIvAAI8M0fBYiTCxQnElYu7mLk7JrhlQ+HeOw==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz",
+ "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.2.tgz",
- "integrity": "sha512-ZhcrakbqA1SCiJRMKSU64AZcYzlZ/9M5LaYil9QWxx9vLnkQ9Vnkve17Qn4SjlipqIIBFKjBES6Zxhnvh0EAEw==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz",
+ "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==",
"cpu": [
"ia32"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.2.tgz",
- "integrity": "sha512-2mLH46K1u3r6uwc95hU+OR9q/ggYMpnS7pSp83Ece1HUQgF9Nh/QwTK5rcgbFnV9j+08yBrU5sA/P0RK2MSBNA==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz",
+ "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -16506,12 +16552,13 @@
}
},
"node_modules/rollup": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.2.tgz",
- "integrity": "sha512-do/DFGq5g6rdDhdpPq5qb2ecoczeK6y+2UAjdJ5trjQJj5f1AiVdLRWRc9A9/fFukfvJRgM0UXzxBIYMovm5ww==",
+ "version": "4.40.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz",
+ "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/estree": "1.0.6"
+ "@types/estree": "1.0.7"
},
"bin": {
"rollup": "dist/bin/rollup"
@@ -16521,24 +16568,26 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.24.2",
- "@rollup/rollup-android-arm64": "4.24.2",
- "@rollup/rollup-darwin-arm64": "4.24.2",
- "@rollup/rollup-darwin-x64": "4.24.2",
- "@rollup/rollup-freebsd-arm64": "4.24.2",
- "@rollup/rollup-freebsd-x64": "4.24.2",
- "@rollup/rollup-linux-arm-gnueabihf": "4.24.2",
- "@rollup/rollup-linux-arm-musleabihf": "4.24.2",
- "@rollup/rollup-linux-arm64-gnu": "4.24.2",
- "@rollup/rollup-linux-arm64-musl": "4.24.2",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.24.2",
- "@rollup/rollup-linux-riscv64-gnu": "4.24.2",
- "@rollup/rollup-linux-s390x-gnu": "4.24.2",
- "@rollup/rollup-linux-x64-gnu": "4.24.2",
- "@rollup/rollup-linux-x64-musl": "4.24.2",
- "@rollup/rollup-win32-arm64-msvc": "4.24.2",
- "@rollup/rollup-win32-ia32-msvc": "4.24.2",
- "@rollup/rollup-win32-x64-msvc": "4.24.2",
+ "@rollup/rollup-android-arm-eabi": "4.40.2",
+ "@rollup/rollup-android-arm64": "4.40.2",
+ "@rollup/rollup-darwin-arm64": "4.40.2",
+ "@rollup/rollup-darwin-x64": "4.40.2",
+ "@rollup/rollup-freebsd-arm64": "4.40.2",
+ "@rollup/rollup-freebsd-x64": "4.40.2",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.40.2",
+ "@rollup/rollup-linux-arm-musleabihf": "4.40.2",
+ "@rollup/rollup-linux-arm64-gnu": "4.40.2",
+ "@rollup/rollup-linux-arm64-musl": "4.40.2",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.40.2",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2",
+ "@rollup/rollup-linux-riscv64-gnu": "4.40.2",
+ "@rollup/rollup-linux-riscv64-musl": "4.40.2",
+ "@rollup/rollup-linux-s390x-gnu": "4.40.2",
+ "@rollup/rollup-linux-x64-gnu": "4.40.2",
+ "@rollup/rollup-linux-x64-musl": "4.40.2",
+ "@rollup/rollup-win32-arm64-msvc": "4.40.2",
+ "@rollup/rollup-win32-ia32-msvc": "4.40.2",
+ "@rollup/rollup-win32-x64-msvc": "4.40.2",
"fsevents": "~2.3.2"
}
},
@@ -16564,6 +16613,13 @@
"typescript": "^4.5 || ^5.0"
}
},
+ "node_modules/rollup/node_modules/@types/estree": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+ "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/router": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
From 273af9e20b6dbacab2c9c4c223b49e8eba35f83c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 May 2025 12:10:18 -0400
Subject: [PATCH 09/20] chore(deps): update dependency
@rollup/plugin-typescript to v12 (#1059)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@rollup/plugin-typescript](https://redirect.github.com/rollup/plugins/tree/master/packages/typescript/#readme)
([source](https://redirect.github.com/rollup/plugins/tree/HEAD/packages/typescript))
| [`^11.1.6` ->
`^12.0.0`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-typescript/11.1.6/12.1.2)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
rollup/plugins (@rollup/plugin-typescript)
###
[`v12.1.2`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1212)
*2024-12-15*
##### Bugfixes
- fix: path validation issue in validatePaths function
([#1800](https://redirect.github.com/rollup/plugins/issues/1800))
###
[`v12.1.1`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1211)
*2024-10-16*
##### Bugfixes
- fix: allow for files to be nested in folders within outDir
([#1783](https://redirect.github.com/rollup/plugins/issues/1783))
###
[`v12.1.0`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1210)
*2024-09-22*
##### Features
- feat: add transformers factory.
([#1668](https://redirect.github.com/rollup/plugins/issues/1668))
###
[`v12.0.0`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1200)
*2024-09-22*
##### Breaking Changes
- fix!: correctly resolve filenames of declaration files for
`output.file`
([#1728](https://redirect.github.com/rollup/plugins/issues/1728))
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 11 ++++++-----
package.json | 2 +-
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 9253cc9c0..7e0f6c94f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"packages/nest"
],
"devDependencies": {
- "@rollup/plugin-typescript": "^11.1.6",
+ "@rollup/plugin-typescript": "^12.0.0",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.0.0",
"@types/jest": "^29.5.12",
@@ -4608,10 +4608,11 @@
}
},
"node_modules/@rollup/plugin-typescript": {
- "version": "11.1.6",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz",
- "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==",
+ "version": "12.1.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz",
+ "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^5.1.0",
"resolve": "^1.22.1"
@@ -24150,7 +24151,7 @@
"@nestjs/testing": "^11.0.20",
"@openfeature/core": "*",
"@openfeature/server-sdk": "1.18.0",
- "@types/supertest": "^6.0.3",
+ "@types/supertest": "^6.0.0",
"supertest": "^7.0.0"
},
"peerDependencies": {
diff --git a/package.json b/package.json
index 7de116e56..ad18bb1bd 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
"node": ">=18"
},
"devDependencies": {
- "@rollup/plugin-typescript": "^11.1.6",
+ "@rollup/plugin-typescript": "^12.0.0",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.0.0",
"@types/jest": "^29.5.12",
From cd8017d53761775d1247125e1baad8bcbb6d3606 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 May 2025 12:11:42 -0400
Subject: [PATCH 10/20] chore(deps): update dependency esbuild to v0.25.4
(#1185)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://redirect.github.com/evanw/esbuild) | [`0.25.2` ->
`0.25.4`](https://renovatebot.com/diffs/npm/esbuild/0.25.2/0.25.4) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
evanw/esbuild (esbuild)
###
[`v0.25.4`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0254)
[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.3...v0.25.4)
- Add simple support for CORS to esbuild's development server
([#4125](https://redirect.github.com/evanw/esbuild/issues/4125))
Starting with version 0.25.0, esbuild's development server is no longer
configured to serve cross-origin requests. This was a deliberate change
to prevent any website you visit from accessing your running esbuild
development server. However, this change prevented (by design) certain
use cases such as "debugging in production" by having your production
website load code from `localhost` where the esbuild development server
is running.
To enable this use case, esbuild is adding a feature to allow
[Cross-Origin Resource
Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS)
(a.k.a. CORS) for [simple
requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS#simple_requests).
Specifically, passing your origin to the new `cors` option will now set
the `Access-Control-Allow-Origin` response header when the request has a
matching `Origin` header. Note that this currently only works for
requests that don't send a preflight `OPTIONS` request, as esbuild's
development server doesn't currently support `OPTIONS` requests.
Some examples:
- **CLI:**
esbuild --servedir=. --cors-origin=https://example.com
- **JS:**
```js
const ctx = await esbuild.context({})
await ctx.serve({
servedir: '.',
cors: {
origin: 'https://example.com',
},
})
```
- **Go:**
```go
ctx, _ := api.Context(api.BuildOptions{})
ctx.Serve(api.ServeOptions{
Servedir: ".",
CORS: api.CORSOptions{
Origin: []string{"https://example.com"},
},
})
```
The special origin `*` can be used to allow any origin to access
esbuild's development server. Note that this means any website you visit
will be able to read everything served by esbuild.
- Pass through invalid URLs in source maps unmodified
([#4169](https://redirect.github.com/evanw/esbuild/issues/4169))
This fixes a regression in version 0.25.0 where `sources` in source maps
that form invalid URLs were not being passed through to the output.
Version 0.25.0 changed the interpretation of `sources` from file paths
to URLs, which means that URL parsing can now fail. Previously URLs that
couldn't be parsed were replaced with the empty string. With this
release, invalid URLs in `sources` should now be passed through
unmodified.
- Handle exports named `__proto__` in ES modules
([#4162](https://redirect.github.com/evanw/esbuild/issues/4162),
[#4163](https://redirect.github.com/evanw/esbuild/pull/4163))
In JavaScript, the special property name `__proto__` sets the prototype
when used inside an object literal. Previously esbuild's ESM-to-CommonJS
conversion didn't special-case the property name of exports named
`__proto__` so the exported getter accidentally became the prototype of
the object literal. It's unclear what this affects, if anything, but
it's better practice to avoid this by using a computed property name in
this case.
This fix was contributed by
[@magic-akari](https://redirect.github.com/magic-akari).
###
[`v0.25.3`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0253)
[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.2...v0.25.3)
- Fix lowered `async` arrow functions before `super()`
([#4141](https://redirect.github.com/evanw/esbuild/issues/4141),
[#4142](https://redirect.github.com/evanw/esbuild/pull/4142))
This change makes it possible to call an `async` arrow function in a
constructor before calling `super()` when targeting environments without
`async` support, as long as the function body doesn't reference `this`.
Here's an example (notice the change from `this` to `null`):
```js
// Original code
class Foo extends Object {
constructor() {
(async () => await foo())()
super()
}
}
// Old output (with --target=es2016)
class Foo extends Object {
constructor() {
(() => __async(this, null, function* () {
return yield foo();
}))();
super();
}
}
// New output (with --target=es2016)
class Foo extends Object {
constructor() {
(() => __async(null, null, function* () {
return yield foo();
}))();
super();
}
}
```
Some background: Arrow functions with the `async` keyword are
transformed into generator functions for older language targets such as
`--target=es2016`. Since arrow functions capture `this`, the generated
code forwards `this` into the body of the generator function. However,
JavaScript class syntax forbids using `this` in a constructor before
calling `super()`, and this forwarding was problematic since previously
happened even when the function body doesn't use `this`. Starting with
this release, esbuild will now only forward `this` if it's used within
the function body.
This fix was contributed by
[@magic-akari](https://redirect.github.com/magic-akari).
- Fix memory leak with `--watch=true`
([#4131](https://redirect.github.com/evanw/esbuild/issues/4131),
[#4132](https://redirect.github.com/evanw/esbuild/pull/4132))
This release fixes a memory leak with esbuild when `--watch=true` is
used instead of `--watch`. Previously using `--watch=true` caused
esbuild to continue to use more and more memory for every rebuild, but
`--watch=true` should now behave like `--watch` and not leak memory.
This bug happened because esbuild disables the garbage collector when
it's not run as a long-lived process for extra speed, but esbuild's
checks for which arguments cause esbuild to be a long-lived process
weren't updated for the new `--watch=true` style of boolean command-line
flags. This has been an issue since this boolean flag syntax was added
in version 0.14.24 in 2022. These checks are unfortunately separate from
the regular argument parser because of how esbuild's internals are
organized (the command-line interface is exposed as a separate [Go
API](https://pkg.go.dev/github.com/evanw/esbuild/pkg/cli) so you can
build your own custom esbuild CLI).
This fix was contributed by
[@mxschmitt](https://redirect.github.com/mxschmitt).
- More concise output for repeated legal comments
([#4139](https://redirect.github.com/evanw/esbuild/issues/4139))
Some libraries have many files and also use the same legal comment text
in all files. Previously esbuild would copy each legal comment to the
output file. Starting with this release, legal comments duplicated
across separate files will now be grouped in the output file by unique
comment content.
- Allow a custom host with the development server
([#4110](https://redirect.github.com/evanw/esbuild/issues/4110))
With this release, you can now use a custom non-IP `host` with esbuild's
local development server (either with `--serve=` for the CLI or with the
`serve()` call for the API). This was previously possible, but was
intentionally broken in [version
0.25.0](https://redirect.github.com/evanw/esbuild/releases/v0.25.0) to
fix a security issue. This change adds the functionality back except
that it's now opt-in and only for a single domain name that you provide.
For example, if you add a mapping in your `/etc/hosts` file from
`local.example.com` to `127.0.0.1` and then use `esbuild
--serve=local.example.com:8000`, you will now be able to visit
http://local.example.com:8000/ in your browser and successfully connect
to esbuild's development server (doing that would previously have been
blocked by the browser). This should also work with HTTPS if it's
enabled (see esbuild's documentation for how to do that).
- Add a limit to CSS nesting expansion
([#4114](https://redirect.github.com/evanw/esbuild/issues/4114))
With this release, esbuild will now fail with an error if there is too
much CSS nesting expansion. This can happen when nested CSS is converted
to CSS without nesting for older browsers as expanding CSS nesting is
inherently exponential due to the resulting combinatorial explosion. The
expansion limit is currently hard-coded and cannot be changed, but is
extremely unlikely to trigger for real code. It exists to prevent
esbuild from using too much time and/or memory. Here's an example:
```css
a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}
```
Previously, transforming this file with `--target=safari1` took 5
seconds and generated 40mb of CSS. Trying to do that will now generate
the following error instead:
✘ [ERROR] CSS nesting is causing too much expansion
example.css:1:60:
1 │
a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}
╵ ^
CSS nesting expansion was terminated because a rule was generated with
65536 selectors. This limit
exists to prevent esbuild from using too much time and/or memory. Please
change your CSS to use
fewer levels of nesting.
- Fix path resolution edge case
([#4144](https://redirect.github.com/evanw/esbuild/issues/4144))
This fixes an edge case where esbuild's path resolution algorithm could
deviate from node's path resolution algorithm. It involves a confusing
situation where a directory shares the same file name as a file (but
without the file extension). See the linked issue for specific details.
This appears to be a case where esbuild is correctly following [node's
published resolution
algorithm](https://nodejs.org/api/modules.html#all-together) but where
node itself is doing something different. Specifically the step
`LOAD_AS_FILE` appears to be skipped when the input ends with `..`. This
release changes esbuild's behavior for this edge case to match node's
behavior.
- Update Go from 1.23.7 to 1.23.8
([#4133](https://redirect.github.com/evanw/esbuild/issues/4133),
[#4134](https://redirect.github.com/evanw/esbuild/pull/4134))
This should have no effect on existing code as this version change does
not change Go's operating system support. It may remove certain reports
from vulnerability scanners that detect which version of the Go compiler
esbuild uses, such as for CVE-2025-22871.
As a reminder, esbuild's development server is intended for development,
not for production, so I do not consider most networking-related
vulnerabilities in Go to be vulnerabilities in esbuild. Please do not
use esbuild's development server in production.
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 206 +++++++++++++++++++++++-----------------------
1 file changed, 103 insertions(+), 103 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7e0f6c94f..08153421d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2445,9 +2445,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz",
- "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz",
+ "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==",
"cpu": [
"ppc64"
],
@@ -2462,9 +2462,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz",
- "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz",
+ "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==",
"cpu": [
"arm"
],
@@ -2479,9 +2479,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz",
- "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz",
+ "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==",
"cpu": [
"arm64"
],
@@ -2496,9 +2496,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz",
- "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz",
+ "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==",
"cpu": [
"x64"
],
@@ -2513,9 +2513,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz",
- "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz",
+ "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==",
"cpu": [
"arm64"
],
@@ -2530,9 +2530,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz",
- "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz",
+ "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==",
"cpu": [
"x64"
],
@@ -2547,9 +2547,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz",
- "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz",
+ "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==",
"cpu": [
"arm64"
],
@@ -2564,9 +2564,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz",
- "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz",
+ "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==",
"cpu": [
"x64"
],
@@ -2581,9 +2581,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz",
- "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz",
+ "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==",
"cpu": [
"arm"
],
@@ -2598,9 +2598,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz",
- "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz",
+ "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==",
"cpu": [
"arm64"
],
@@ -2615,9 +2615,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz",
- "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz",
+ "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==",
"cpu": [
"ia32"
],
@@ -2632,9 +2632,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz",
- "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz",
+ "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==",
"cpu": [
"loong64"
],
@@ -2649,9 +2649,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz",
- "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz",
+ "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==",
"cpu": [
"mips64el"
],
@@ -2666,9 +2666,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz",
- "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz",
+ "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==",
"cpu": [
"ppc64"
],
@@ -2683,9 +2683,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz",
- "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz",
+ "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==",
"cpu": [
"riscv64"
],
@@ -2700,9 +2700,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz",
- "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz",
+ "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==",
"cpu": [
"s390x"
],
@@ -2717,9 +2717,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz",
- "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz",
+ "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==",
"cpu": [
"x64"
],
@@ -2734,9 +2734,9 @@
}
},
"node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz",
- "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz",
+ "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==",
"cpu": [
"arm64"
],
@@ -2751,9 +2751,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz",
- "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz",
+ "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==",
"cpu": [
"x64"
],
@@ -2768,9 +2768,9 @@
}
},
"node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz",
- "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz",
+ "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==",
"cpu": [
"arm64"
],
@@ -2785,9 +2785,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz",
- "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz",
+ "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==",
"cpu": [
"x64"
],
@@ -2802,9 +2802,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz",
- "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz",
+ "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==",
"cpu": [
"x64"
],
@@ -2819,9 +2819,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz",
- "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz",
+ "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==",
"cpu": [
"arm64"
],
@@ -2836,9 +2836,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz",
- "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz",
+ "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==",
"cpu": [
"ia32"
],
@@ -2853,9 +2853,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz",
- "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz",
+ "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==",
"cpu": [
"x64"
],
@@ -9268,9 +9268,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz",
- "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz",
+ "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -9281,31 +9281,31 @@
"node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.2",
- "@esbuild/android-arm": "0.25.2",
- "@esbuild/android-arm64": "0.25.2",
- "@esbuild/android-x64": "0.25.2",
- "@esbuild/darwin-arm64": "0.25.2",
- "@esbuild/darwin-x64": "0.25.2",
- "@esbuild/freebsd-arm64": "0.25.2",
- "@esbuild/freebsd-x64": "0.25.2",
- "@esbuild/linux-arm": "0.25.2",
- "@esbuild/linux-arm64": "0.25.2",
- "@esbuild/linux-ia32": "0.25.2",
- "@esbuild/linux-loong64": "0.25.2",
- "@esbuild/linux-mips64el": "0.25.2",
- "@esbuild/linux-ppc64": "0.25.2",
- "@esbuild/linux-riscv64": "0.25.2",
- "@esbuild/linux-s390x": "0.25.2",
- "@esbuild/linux-x64": "0.25.2",
- "@esbuild/netbsd-arm64": "0.25.2",
- "@esbuild/netbsd-x64": "0.25.2",
- "@esbuild/openbsd-arm64": "0.25.2",
- "@esbuild/openbsd-x64": "0.25.2",
- "@esbuild/sunos-x64": "0.25.2",
- "@esbuild/win32-arm64": "0.25.2",
- "@esbuild/win32-ia32": "0.25.2",
- "@esbuild/win32-x64": "0.25.2"
+ "@esbuild/aix-ppc64": "0.25.4",
+ "@esbuild/android-arm": "0.25.4",
+ "@esbuild/android-arm64": "0.25.4",
+ "@esbuild/android-x64": "0.25.4",
+ "@esbuild/darwin-arm64": "0.25.4",
+ "@esbuild/darwin-x64": "0.25.4",
+ "@esbuild/freebsd-arm64": "0.25.4",
+ "@esbuild/freebsd-x64": "0.25.4",
+ "@esbuild/linux-arm": "0.25.4",
+ "@esbuild/linux-arm64": "0.25.4",
+ "@esbuild/linux-ia32": "0.25.4",
+ "@esbuild/linux-loong64": "0.25.4",
+ "@esbuild/linux-mips64el": "0.25.4",
+ "@esbuild/linux-ppc64": "0.25.4",
+ "@esbuild/linux-riscv64": "0.25.4",
+ "@esbuild/linux-s390x": "0.25.4",
+ "@esbuild/linux-x64": "0.25.4",
+ "@esbuild/netbsd-arm64": "0.25.4",
+ "@esbuild/netbsd-x64": "0.25.4",
+ "@esbuild/openbsd-arm64": "0.25.4",
+ "@esbuild/openbsd-x64": "0.25.4",
+ "@esbuild/sunos-x64": "0.25.4",
+ "@esbuild/win32-arm64": "0.25.4",
+ "@esbuild/win32-ia32": "0.25.4",
+ "@esbuild/win32-x64": "0.25.4"
}
},
"node_modules/esbuild-wasm": {
From 43b14b486964339a3b7e8887feff782b14675f8a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 May 2025 16:10:34 +0000
Subject: [PATCH 11/20] chore(deps): update dependency @types/node to v22.15.17
(#1190)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.15.3` ->
`22.15.17`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.3/22.15.17)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 08153421d..201678955 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5507,9 +5507,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "22.15.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
- "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==",
+ "version": "22.15.17",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
+ "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
"dev": true,
"license": "MIT",
"dependencies": {
From 14761998bf46fcffd29b20bd96f708081bb17908 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 May 2025 16:11:58 +0000
Subject: [PATCH 12/20] chore(deps): update dependency eslint-plugin-jsdoc to
v50.6.14 (#1191)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jsdoc](https://redirect.github.com/gajus/eslint-plugin-jsdoc)
| [`50.6.3` ->
`50.6.14`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/50.6.3/50.6.14)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)
###
[`v50.6.14`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.14)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.13...v50.6.14)
##### Bug Fixes
- **lines-before-block:** Switch to a whitelist of punctuators
([#1385](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1385))
([0a30832](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/0a30832b41b259f3b950de0000b912166c683cb4))
###
[`v50.6.13`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.13)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.12...v50.6.13)
##### Bug Fixes
- **`lines-before-block`:** Only trigger after ';', '}', '|', and '&'
([#1383](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1383))
([19fa3dc](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/19fa3dcb321d2420998c205bfc6ca501a78dc090)),
closes
[#1379](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1379)
[#1343](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1343)
###
[`v50.6.12`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.12)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.11...v50.6.12)
##### Bug Fixes
- **`no-undefined-types`:** workaround `parse-imports-exports` bug in
handling trailing whitespace; fixes
[#1373](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1373)
([#1384](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1384))
([f32989c](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/f32989c2594460808d8cc8e35f6d4347c8c78fc6))
###
[`v50.6.11`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.11)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.10...v50.6.11)
##### Bug Fixes
- **`check-values`:** workaround `parse-imports-exports` bug in handling
trailing whitespace; fixes
[#1373](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1373)
([#1374](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1374))
([65b0dc0](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/65b0dc0f58b01b6b3338814ca7f627df9b7276da))
###
[`v50.6.10`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.10)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.9...v50.6.10)
##### Bug Fixes
- **`check-values`, `no-undefined-types`:** avoid need for worker; fixes
[#1371](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1371)
([#1372](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1372))
([6d5c9fb](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/6d5c9fb6505b7d1dd3befdeaa38a98a93c1d1337))
###
[`v50.6.9`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.9)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.8...v50.6.9)
##### Reverts
- Revert "refactor: replace `synckit` with `make-synchronized`
([#1366](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1366))"
([#1367](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1367))
([771eadf](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/771eadfa447e171d4a33ff2aff9c93d863988ab2))
###
[`v50.6.8`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.8)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.7...v50.6.8)
##### Bug Fixes
- add missing config type(s)
([#1365](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1365))
([ed62262](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/ed622628fc778ab9c549b3dde179d4a771f23ef4))
###
[`v50.6.7`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.7)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.6...v50.6.7)
##### Bug Fixes
- **no-undefined-types:** allow any available identifier; fixes
[#178](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/178),[#1342](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1342)
([1c38930](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/1c38930dd10ac717d632e0aa4e40e1d8a471797a))
###
[`v50.6.6`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.6)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.5...v50.6.6)
##### Bug Fixes
- **`empty-tags`:** allow for JSDoc-block final asterisks; fixes
[#670](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/670)
([23b4bfa](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/23b4bfa1a8364e56cbd600f90509e753c54f14be))
###
[`v50.6.5`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.5)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.4...v50.6.5)
##### Bug Fixes
- **`text-escaping`:** always allow content in example tags; fixes
[#1360](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1360)
([6baad05](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/6baad05aabe988bf529b4fe53b0fdeb54e854f31))
###
[`v50.6.4`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.4)
[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.3...v50.6.4)
##### Bug Fixes
- force release
([9edf4b1](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/9edf4b18f97f36b12f11441828f9b623f6a560b3))
- force release
([b08733a](https://redirect.github.com/gajus/eslint-plugin-jsdoc/commit/b08733a127d82b09461a18f5c31bd4533f7c3ee0))
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 67 +++++++++++++----------------------------------
1 file changed, 18 insertions(+), 49 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 201678955..a6c308688 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4551,18 +4551,6 @@
"node": ">=14"
}
},
- "node_modules/@pkgr/core": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
- "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
"node_modules/@rollup/plugin-json": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
@@ -9614,9 +9602,9 @@
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "50.6.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.3.tgz",
- "integrity": "sha512-NxbJyt1M5zffPcYZ8Nb53/8nnbIScmiLAMdoe0/FAszwb7lcSiX3iYBTsuF7RV84dZZJC8r3NghomrUXsmWvxQ==",
+ "version": "50.6.14",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.14.tgz",
+ "integrity": "sha512-JUudvooQbUx3iB8n/MzXMOV/VtaXq7xL4CeXhYryinr8osck7nV6fE2/xUXTiH3epPXcvq6TE3HQfGQuRHErTQ==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -9627,10 +9615,9 @@
"escape-string-regexp": "^4.0.0",
"espree": "^10.1.0",
"esquery": "^1.6.0",
- "parse-imports": "^2.1.1",
+ "parse-imports-exports": "^0.2.4",
"semver": "^7.6.3",
- "spdx-expression-parse": "^4.0.0",
- "synckit": "^0.9.1"
+ "spdx-expression-parse": "^4.0.0"
},
"engines": {
"node": ">=18"
@@ -15398,17 +15385,14 @@
"node": ">=6"
}
},
- "node_modules/parse-imports": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz",
- "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==",
+ "node_modules/parse-imports-exports": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz",
+ "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "es-module-lexer": "^1.5.3",
- "slashes": "^3.0.12"
- },
- "engines": {
- "node": ">= 18"
+ "parse-statements": "1.0.11"
}
},
"node_modules/parse-json": {
@@ -15438,6 +15422,13 @@
"node": ">= 0.10"
}
},
+ "node_modules/parse-statements": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz",
+ "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/parse5": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz",
@@ -17241,12 +17232,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/slashes": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz",
- "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==",
- "dev": true
- },
"node_modules/slice-ansi": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
@@ -17856,22 +17841,6 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true
},
- "node_modules/synckit": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz",
- "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==",
- "dev": true,
- "dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
"node_modules/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
From b2784f53b85a11c58abb8e2a0f87a31890885c54 Mon Sep 17 00:00:00 2001
From: Lukas Reining
Date: Sun, 25 May 2025 11:59:53 +0200
Subject: [PATCH 13/20] fix(angular): add license and url field to package.json
Signed-off-by: Lukas Reining
---
packages/angular/projects/angular-sdk/package.json | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/packages/angular/projects/angular-sdk/package.json b/packages/angular/projects/angular-sdk/package.json
index b0b4ad17b..952ddb45c 100644
--- a/packages/angular/projects/angular-sdk/package.json
+++ b/packages/angular/projects/angular-sdk/package.json
@@ -6,6 +6,11 @@
"type": "git",
"url": "git+https://github.com/open-feature/js-sdk.git"
},
+ "license": "Apache-2.0",
+ "bugs": {
+ "url": "https://github.com/open-feature/js-sdk/issues"
+ },
+ "homepage": "https://github.com/open-feature/js-sdk#readme",
"scripts": {
"current-published-version": "npm show $npm_package_name@$npm_package_version version",
"current-version": "echo $npm_package_version",
From 9f887a965c826b1c676727dfc81d2f98d6db65ac Mon Sep 17 00:00:00 2001
From: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Date: Sun, 25 May 2025 06:07:48 -0400
Subject: [PATCH 14/20] chore(main): release angular-sdk 0.0.14 (#1178)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
:robot: I have created a release *beep* *boop*
---
##
[0.0.14](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.13...angular-sdk-v0.0.14)
(2025-05-25)
### 🐛 Bug Fixes
* **angular:** add license and url field to package.json
([b2784f5](https://github.com/open-feature/js-sdk/commit/b2784f53b85a11c58abb8e2a0f87a31890885c54))
### Dependencies
* The following workspace dependencies were updated
* devDependencies
* @openfeature/web-sdk bumped from * to 1.5.1
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
---------
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining
Co-authored-by: Lukas Reining
---
.release-please-manifest.json | 2 +-
packages/angular/projects/angular-sdk/CHANGELOG.md | 8 ++++++++
packages/angular/projects/angular-sdk/README.md | 4 ++--
packages/angular/projects/angular-sdk/package.json | 2 +-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index b348166a2..def263359 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -5,5 +5,5 @@
"packages/web": "1.5.0",
"packages/server": "1.18.0",
"packages/shared": "1.8.0",
- "packages/angular/projects/angular-sdk": "0.0.13"
+ "packages/angular/projects/angular-sdk": "0.0.14"
}
diff --git a/packages/angular/projects/angular-sdk/CHANGELOG.md b/packages/angular/projects/angular-sdk/CHANGELOG.md
index 60a4afcb9..68618ae63 100644
--- a/packages/angular/projects/angular-sdk/CHANGELOG.md
+++ b/packages/angular/projects/angular-sdk/CHANGELOG.md
@@ -1,6 +1,14 @@
# Changelog
+## [0.0.14](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.13...angular-sdk-v0.0.14) (2025-05-25)
+
+
+### 🐛 Bug Fixes
+
+* **angular:** add license and url field to package.json ([b2784f5](https://github.com/open-feature/js-sdk/commit/b2784f53b85a11c58abb8e2a0f87a31890885c54))
+
+
## [0.0.13](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.12...angular-sdk-v0.0.13) (2025-04-20)
diff --git a/packages/angular/projects/angular-sdk/README.md b/packages/angular/projects/angular-sdk/README.md
index 15fb5066f..a366a7962 100644
--- a/packages/angular/projects/angular-sdk/README.md
+++ b/packages/angular/projects/angular-sdk/README.md
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/packages/angular/projects/angular-sdk/package.json b/packages/angular/projects/angular-sdk/package.json
index 952ddb45c..983a7d8ae 100644
--- a/packages/angular/projects/angular-sdk/package.json
+++ b/packages/angular/projects/angular-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@openfeature/angular-sdk",
- "version": "0.0.13",
+ "version": "0.0.14",
"description": "OpenFeature Angular SDK",
"repository": {
"type": "git",
From f2121671fa08b54b0a3d80d1b8a004fa149d6d92 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 26 May 2025 19:53:11 +0200
Subject: [PATCH 15/20] chore(deps): update dependency rxjs to v7.8.2 (#1193)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rxjs](https://rxjs.dev)
([source](https://redirect.github.com/reactivex/rxjs)) | [`7.8.1` ->
`7.8.2`](https://renovatebot.com/diffs/npm/rxjs/7.8.1/7.8.2) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
reactivex/rxjs (rxjs)
###
[`v7.8.2`](https://redirect.github.com/reactivex/rxjs/compare/7.8.1...7.8.2)
[Compare
Source](https://redirect.github.com/reactivex/rxjs/compare/7.8.1...7.8.2)
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 60 +++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 56 insertions(+), 4 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index a6c308688..d75cc893e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -156,6 +156,16 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/@angular-devkit/architect/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/@angular-devkit/schematics": {
"version": "19.2.7",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.7.tgz",
@@ -247,6 +257,16 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/@angular-devkit/schematics/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/@angular-eslint/builder": {
"version": "19.3.0",
"resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-19.3.0.tgz",
@@ -324,6 +344,16 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/@angular-eslint/builder/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/@angular-eslint/bundled-angular-compiler": {
"version": "19.3.0",
"resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-19.3.0.tgz",
@@ -464,6 +494,16 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/@angular-eslint/schematics/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/@angular-eslint/schematics/node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
@@ -16673,9 +16713,10 @@
}
},
"node_modules/rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.1.0"
}
@@ -23559,6 +23600,16 @@
"fsevents": "~2.3.2"
}
},
+ "packages/angular/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"packages/angular/node_modules/sass": {
"version": "1.80.7",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.80.7.tgz",
@@ -24093,7 +24144,8 @@
},
"packages/angular/projects/angular-sdk": {
"name": "@openfeature/angular-sdk",
- "version": "0.0.13",
+ "version": "0.0.14",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.3.0"
},
From affdecb619d61f8e3a45fce2e0ad88b819e59005 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 26 May 2025 19:57:01 +0200
Subject: [PATCH 16/20] chore(deps): update dependency jest-preset-angular to
v14.5.5 (#1192)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [jest-preset-angular](https://thymikee.github.io/jest-preset-angular)
([source](https://redirect.github.com/thymikee/jest-preset-angular)) |
[`14.5.1` ->
`14.5.5`](https://renovatebot.com/diffs/npm/jest-preset-angular/14.5.1/14.5.5)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
thymikee/jest-preset-angular (jest-preset-angular)
###
[`v14.5.5`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1455-2025-04-15)
[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.4...v14.5.5)
##### Bug Fixes
- fix: allow name exports for `presets` subpath
([9100baf](https://redirect.github.com/thymikee/jest-preset-angular/commit/9100baf))
###
[`v14.5.4`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1454-2025-03-31)
[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.3...v14.5.4)
##### Bug Fixes
- fix: warn when using both `isolatedModules` and
`emitDecoratorMetadata`
([#3029](https://redirect.github.com/thymikee/jest-preset-angular/issues/3029))
([51db8f4](https://redirect.github.com/thymikee/jest-preset-angular/commit/51db8f4)),
closes
[#3029](https://redirect.github.com/thymikee/jest-preset-angular/issues/3029)
- update dependency ts-jest to v29.3.0
([1d8415d](https://redirect.github.com/thymikee/jest-preset-angular/commit/1d8415d))
###
[`v14.5.3`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1453-2025-02-24)
[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.2...v14.5.3)
##### Bug Fixes
- build: update bundle `jit_transform.js`, closes
[#2979](https://redirect.github.com/thymikee/jest-preset-angular/issues/2979)
###
[`v14.5.2`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1452-2025-02-21)
[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.1...v14.5.2)
##### Bug Fixes
- fix: transform `js` ESM file from `node_modules`
([b2b3934](https://redirect.github.com/thymikee/jest-preset-angular/commit/b2b3934)),
closes
[#2913](https://redirect.github.com/thymikee/jest-preset-angular/issues/2913)
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 44 ++++++++++++++++++++++++++++++++++++--------
1 file changed, 36 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d75cc893e..dd4559323 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12573,9 +12573,9 @@
}
},
"node_modules/jest-preset-angular": {
- "version": "14.5.1",
- "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-14.5.1.tgz",
- "integrity": "sha512-HLYYMwNcv3mFrKbOPJwR29tKqVg+yWxez8ilCIsEj1HRYZ/OVsBy5+dcMok+VqL5nmeukTsGnEfGWt+SsQqtkA==",
+ "version": "14.5.5",
+ "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-14.5.5.tgz",
+ "integrity": "sha512-PUykbixXEYSltKQE4450YuBiO8SMo2SwdGRHAdArRuV06Igq8gaLRVt9j8suj/4qtm2xRqoKnh5j52R0PfQxFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12584,7 +12584,7 @@
"jest-environment-jsdom": "^29.7.0",
"jest-util": "^29.7.0",
"pretty-format": "^29.7.0",
- "ts-jest": "^29.0.0"
+ "ts-jest": "^29.3.0"
},
"engines": {
"node": "^14.15.0 || >=16.10.0"
@@ -18252,10 +18252,11 @@
}
},
"node_modules/ts-jest": {
- "version": "29.2.5",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz",
- "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==",
+ "version": "29.3.4",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.4.tgz",
+ "integrity": "sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bs-logger": "^0.2.6",
"ejs": "^3.1.10",
@@ -18264,7 +18265,8 @@
"json5": "^2.2.3",
"lodash.memoize": "^4.1.2",
"make-error": "^1.3.6",
- "semver": "^7.6.3",
+ "semver": "^7.7.2",
+ "type-fest": "^4.41.0",
"yargs-parser": "^21.1.1"
},
"bin": {
@@ -18299,6 +18301,32 @@
}
}
},
+ "node_modules/ts-jest/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ts-jest/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/ts-node": {
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
From b6ea5884f2ab9f4f94c8b258c4cf7268ea6dbeb8 Mon Sep 17 00:00:00 2001
From: Lukas Reining
Date: Tue, 27 May 2025 22:50:11 +0200
Subject: [PATCH 17/20] fix(angular): update docs (#1200)
Signed-off-by: Lukas Reining
---
.release-please-manifest.json | 1 -
packages/angular/projects/angular-sdk/README.md | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index def263359..631974814 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,7 +1,6 @@
{
"packages/nest": "0.2.4",
"packages/react": "1.0.0",
- "packages/angular": "0.0.1-experimental",
"packages/web": "1.5.0",
"packages/server": "1.18.0",
"packages/shared": "1.8.0",
diff --git a/packages/angular/projects/angular-sdk/README.md b/packages/angular/projects/angular-sdk/README.md
index a366a7962..cfa2b6a3d 100644
--- a/packages/angular/projects/angular-sdk/README.md
+++ b/packages/angular/projects/angular-sdk/README.md
@@ -114,7 +114,7 @@ import { OpenFeatureModule } from '@openfeature/angular-sdk';
CommonModule,
OpenFeatureModule.forRoot({
provider: yourFeatureProvider,
- // domainBoundProviders are optional, mostly needed if more than one provider is needed
+ // domainBoundProviders are optional, mostly needed if more than one provider is used in the application.
domainBoundProviders: {
domain1: new YourOpenFeatureProvider(),
domain2: new YourOtherOpenFeatureProvider(),
From dae36bba1fa5c895c9008a01e373573e9b7b46e5 Mon Sep 17 00:00:00 2001
From: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Date: Tue, 27 May 2025 16:56:32 -0400
Subject: [PATCH 18/20] chore(main): release angular-sdk 0.0.15 (#1201)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
:robot: I have created a release *beep* *boop*
---
##
[0.0.15](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.14...angular-sdk-v0.0.15)
(2025-05-27)
### 🐛 Bug Fixes
* **angular:** update docs
([#1200](https://github.com/open-feature/js-sdk/issues/1200))
([b6ea588](https://github.com/open-feature/js-sdk/commit/b6ea5884f2ab9f4f94c8b258c4cf7268ea6dbeb8))
### Dependencies
* The following workspace dependencies were updated
* devDependencies
* @openfeature/web-sdk bumped from * to 1.5.1
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
---------
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining
Co-authored-by: Lukas Reining
---
.release-please-manifest.json | 2 +-
packages/angular/projects/angular-sdk/CHANGELOG.md | 8 ++++++++
packages/angular/projects/angular-sdk/README.md | 4 ++--
packages/angular/projects/angular-sdk/package.json | 2 +-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 631974814..58adc506d 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -4,5 +4,5 @@
"packages/web": "1.5.0",
"packages/server": "1.18.0",
"packages/shared": "1.8.0",
- "packages/angular/projects/angular-sdk": "0.0.14"
+ "packages/angular/projects/angular-sdk": "0.0.15"
}
diff --git a/packages/angular/projects/angular-sdk/CHANGELOG.md b/packages/angular/projects/angular-sdk/CHANGELOG.md
index 68618ae63..de00fd2bd 100644
--- a/packages/angular/projects/angular-sdk/CHANGELOG.md
+++ b/packages/angular/projects/angular-sdk/CHANGELOG.md
@@ -1,6 +1,14 @@
# Changelog
+## [0.0.15](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.14...angular-sdk-v0.0.15) (2025-05-27)
+
+
+### 🐛 Bug Fixes
+
+* **angular:** update docs ([#1200](https://github.com/open-feature/js-sdk/issues/1200)) ([b6ea588](https://github.com/open-feature/js-sdk/commit/b6ea5884f2ab9f4f94c8b258c4cf7268ea6dbeb8))
+
+
## [0.0.14](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.13...angular-sdk-v0.0.14) (2025-05-25)
diff --git a/packages/angular/projects/angular-sdk/README.md b/packages/angular/projects/angular-sdk/README.md
index cfa2b6a3d..59fabb98a 100644
--- a/packages/angular/projects/angular-sdk/README.md
+++ b/packages/angular/projects/angular-sdk/README.md
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/packages/angular/projects/angular-sdk/package.json b/packages/angular/projects/angular-sdk/package.json
index 983a7d8ae..4928dddbb 100644
--- a/packages/angular/projects/angular-sdk/package.json
+++ b/packages/angular/projects/angular-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@openfeature/angular-sdk",
- "version": "0.0.14",
+ "version": "0.0.15",
"description": "OpenFeature Angular SDK",
"repository": {
"type": "git",
From aadc7a6636947391b6e633ef5be10446054f94ac Mon Sep 17 00:00:00 2001
From: Lukas Reining
Date: Tue, 27 May 2025 23:51:57 +0200
Subject: [PATCH 19/20] fix: environment for npm publish (#1202)
Adds the environment for NPM publish step of the pipeline to the correct
job.
Signed-off-by: Lukas Reining
---
.github/workflows/release-please.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
index e12eda141..a1b7515d1 100644
--- a/.github/workflows/release-please.yml
+++ b/.github/workflows/release-please.yml
@@ -5,7 +5,6 @@ on:
name: Run Release Please
jobs:
release-please:
- environment: publish
runs-on: ubuntu-latest
# Release-please creates a PR that tracks all changes
@@ -55,6 +54,7 @@ jobs:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.release_created }}
+ environment: publish
permissions:
id-token: write
contents: write
From 2838d6afce8dafd071574c861cd322a13ea3d177 Mon Sep 17 00:00:00 2001
From: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Date: Tue, 27 May 2025 18:08:11 -0400
Subject: [PATCH 20/20] chore(main): release nestjs-sdk 0.2.5 (#1183)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
:robot: I have created a release *beep* *boop*
---
##
[0.2.5](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.4...nestjs-sdk-v0.2.5)
(2025-05-27)
### ✨ New Features
* adds RequireFlagsEnabled decorator
([#1159](https://github.com/open-feature/js-sdk/issues/1159))
([59b8fe9](https://github.com/open-feature/js-sdk/commit/59b8fe904f053e4aa3d0c72631af34183ff54dc7))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
---------
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining
Co-authored-by: Lukas Reining
---
.release-please-manifest.json | 2 +-
packages/nest/CHANGELOG.md | 8 ++++++++
packages/nest/README.md | 4 ++--
packages/nest/package.json | 2 +-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 58adc506d..543f0d240 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,5 +1,5 @@
{
- "packages/nest": "0.2.4",
+ "packages/nest": "0.2.5",
"packages/react": "1.0.0",
"packages/web": "1.5.0",
"packages/server": "1.18.0",
diff --git a/packages/nest/CHANGELOG.md b/packages/nest/CHANGELOG.md
index 074ff604a..9ec9e02e7 100644
--- a/packages/nest/CHANGELOG.md
+++ b/packages/nest/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## [0.2.5](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.4...nestjs-sdk-v0.2.5) (2025-05-27)
+
+
+### ✨ New Features
+
+* adds RequireFlagsEnabled decorator ([#1159](https://github.com/open-feature/js-sdk/issues/1159)) ([59b8fe9](https://github.com/open-feature/js-sdk/commit/59b8fe904f053e4aa3d0c72631af34183ff54dc7))
+
+
## [0.2.4](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.3...nestjs-sdk-v0.2.4) (2025-04-20)
diff --git a/packages/nest/README.md b/packages/nest/README.md
index dfcd0093c..e64743532 100644
--- a/packages/nest/README.md
+++ b/packages/nest/README.md
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/packages/nest/package.json b/packages/nest/package.json
index beda65e1b..383eb5c24 100644
--- a/packages/nest/package.json
+++ b/packages/nest/package.json
@@ -1,6 +1,6 @@
{
"name": "@openfeature/nestjs-sdk",
- "version": "0.2.4",
+ "version": "0.2.5",
"description": "OpenFeature Nest.js SDK",
"main": "./dist/cjs/index.js",
"files": [