From 74e56e4e0dc6d73f31503572bab9791e013ae8c1 Mon Sep 17 00:00:00 2001 From: Michael Beemer Date: Tue, 2 Jan 2024 13:04:25 -0500 Subject: [PATCH 1/4] fixed lint issues Signed-off-by: Michael Beemer --- .../providers/flagd/src/e2e/setup-in-process-provider.ts | 9 ++++----- libs/providers/flagd/src/e2e/setup-rpc-provider.ts | 9 ++++----- .../flagd/src/e2e/step-definitions/flagd.spec.ts | 2 +- libs/providers/flagd/src/lib/configuration.spec.ts | 2 +- libs/providers/flagd/src/lib/configuration.ts | 2 +- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/libs/providers/flagd/src/e2e/setup-in-process-provider.ts b/libs/providers/flagd/src/e2e/setup-in-process-provider.ts index 2c2ffa166..de77b2f80 100644 --- a/libs/providers/flagd/src/e2e/setup-in-process-provider.ts +++ b/libs/providers/flagd/src/e2e/setup-in-process-provider.ts @@ -11,9 +11,8 @@ OpenFeature.setProvider( new FlagdProvider({ cache: 'disabled', resolverType: 'in-process', host: 'localhost', port: 9090 }), ); OpenFeature.setProvider('unstable', new FlagdProvider({ resolverType: 'in-process', host: 'localhost', port: 9091 })); -// TODO: update with correct assertions once we have ability to get providerMetadata for any provider -// assert( -// OpenFeature.providerMetadata.name === FLAGD_NAME, -// new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), -// ); +assert( + OpenFeature.providerMetadata.name === FLAGD_NAME, + new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), +); console.log('flagd provider configured!'); diff --git a/libs/providers/flagd/src/e2e/setup-rpc-provider.ts b/libs/providers/flagd/src/e2e/setup-rpc-provider.ts index 6974b2cb2..85ef0c0ba 100644 --- a/libs/providers/flagd/src/e2e/setup-rpc-provider.ts +++ b/libs/providers/flagd/src/e2e/setup-rpc-provider.ts @@ -8,9 +8,8 @@ const FLAGD_NAME = 'flagd Provider'; console.log('Setting flagd provider...'); OpenFeature.setProvider('e2e', new FlagdProvider({ cache: 'disabled' })); OpenFeature.setProvider('unstable', new FlagdProvider({ cache: 'disabled', port: 8014 })); -// TODO: update with correct assertions once we have ability to get providerMetadata for any provider -// assert( -// OpenFeature.providerMetadata.name === FLAGD_NAME, -// new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), -// ); +assert( + OpenFeature.providerMetadata.name === FLAGD_NAME, + new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), +); console.log('flagd provider configured!'); diff --git a/libs/providers/flagd/src/e2e/step-definitions/flagd.spec.ts b/libs/providers/flagd/src/e2e/step-definitions/flagd.spec.ts index 0a277f62d..a39872c66 100644 --- a/libs/providers/flagd/src/e2e/step-definitions/flagd.spec.ts +++ b/libs/providers/flagd/src/e2e/step-definitions/flagd.spec.ts @@ -52,7 +52,7 @@ defineFeature(feature, (test) => { then('the PROVIDER_CONFIGURATION_CHANGED handler must run', () => { expect(ran).toBeTruthy(); }); - and(/^the event details must indicate "(.*)" was altered$/, (arg0) => { + and(/^the event details must indicate "(.*)" was altered$/, () => { // not supported }); }); diff --git a/libs/providers/flagd/src/lib/configuration.spec.ts b/libs/providers/flagd/src/lib/configuration.spec.ts index f6696179c..b7a90086a 100644 --- a/libs/providers/flagd/src/lib/configuration.spec.ts +++ b/libs/providers/flagd/src/lib/configuration.spec.ts @@ -1,5 +1,5 @@ import { FlagdProviderOptions, getConfig } from './configuration'; -import { DEFAULT_MAX_CACHE_SIZE, DEFAULT_MAX_EVENT_STREAM_RETRIES } from './constants'; +import { DEFAULT_MAX_CACHE_SIZE } from './constants'; describe('Configuration', () => { const OLD_ENV = process.env; diff --git a/libs/providers/flagd/src/lib/configuration.ts b/libs/providers/flagd/src/lib/configuration.ts index 4fe37a7bf..008a70693 100644 --- a/libs/providers/flagd/src/lib/configuration.ts +++ b/libs/providers/flagd/src/lib/configuration.ts @@ -1,4 +1,4 @@ -import { DEFAULT_MAX_CACHE_SIZE, DEFAULT_MAX_EVENT_STREAM_RETRIES } from './constants'; +import { DEFAULT_MAX_CACHE_SIZE } from './constants'; export type CacheOption = 'lru' | 'disabled'; export type ResolverType = 'rpc' | 'in-process'; From 78d341ce858009124a7599188b5907c17a5cd766 Mon Sep 17 00:00:00 2001 From: Michael Beemer Date: Tue, 2 Jan 2024 13:04:49 -0500 Subject: [PATCH 2/4] add generated nx files to .gitignore Signed-off-by: Michael Beemer --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index af77b8e69..23f7dd5e1 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ Thumbs.db # generated files proto +.nx # yalc stuff .yalc From 0c9f821d1e8a5382a35c643d8827f7b904d0d790 Mon Sep 17 00:00:00 2001 From: Michael Beemer Date: Wed, 3 Jan 2024 14:00:42 -0500 Subject: [PATCH 3/4] update server sdk across the repo Signed-off-by: Michael Beemer --- libs/hooks/open-telemetry/package.json | 4 ++-- libs/providers/config-cat/package.json | 4 ++-- libs/providers/env-var/package.json | 4 ++-- libs/providers/flagd/package.json | 6 +++--- .../src/e2e/setup-in-process-provider.ts | 15 ++++++++++++--- .../flagd/src/e2e/setup-rpc-provider.ts | 12 +++++++++--- libs/providers/go-feature-flag/package.json | 4 ++-- package-lock.json | 19 +++++++++++-------- package.json | 4 ++-- 9 files changed, 45 insertions(+), 27 deletions(-) diff --git a/libs/hooks/open-telemetry/package.json b/libs/hooks/open-telemetry/package.json index 9e6013f59..138370b02 100644 --- a/libs/hooks/open-telemetry/package.json +++ b/libs/hooks/open-telemetry/package.json @@ -14,8 +14,8 @@ "current-version": "echo $npm_package_version" }, "peerDependencies": { - "@openfeature/server-sdk": "^1.6.0", + "@openfeature/server-sdk": "^1.8.0", "@opentelemetry/api": ">=1.3.0" }, "license": "Apache-2.0" -} +} \ No newline at end of file diff --git a/libs/providers/config-cat/package.json b/libs/providers/config-cat/package.json index 77b82b076..1807a6e44 100644 --- a/libs/providers/config-cat/package.json +++ b/libs/providers/config-cat/package.json @@ -6,7 +6,7 @@ "current-version": "echo $npm_package_version" }, "peerDependencies": { - "@openfeature/server-sdk": "^1.6.0", + "@openfeature/server-sdk": "^1.8.0", "configcat-js": "^8.0.0" } -} +} \ No newline at end of file diff --git a/libs/providers/env-var/package.json b/libs/providers/env-var/package.json index 11cbc2ee7..c442ea2f6 100644 --- a/libs/providers/env-var/package.json +++ b/libs/providers/env-var/package.json @@ -6,6 +6,6 @@ "current-version": "echo $npm_package_version" }, "peerDependencies": { - "@openfeature/server-sdk": "^1.6.0" + "@openfeature/server-sdk": "^1.8.0" } -} +} \ No newline at end of file diff --git a/libs/providers/flagd/package.json b/libs/providers/flagd/package.json index 21e80016f..584adcbb9 100644 --- a/libs/providers/flagd/package.json +++ b/libs/providers/flagd/package.json @@ -6,10 +6,10 @@ "current-version": "echo $npm_package_version" }, "dependencies": { - "@openfeature/flagd-core": "~0.1.4" + "@openfeature/flagd-core": "~0.1.7" }, "peerDependencies": { "@grpc/grpc-js": "~1.8.0 || ~1.9.0", - "@openfeature/server-sdk": ">=1.6.0" + "@openfeature/server-sdk": ">=1.8.0" } -} +} \ No newline at end of file diff --git a/libs/providers/flagd/src/e2e/setup-in-process-provider.ts b/libs/providers/flagd/src/e2e/setup-in-process-provider.ts index de77b2f80..0774a4717 100644 --- a/libs/providers/flagd/src/e2e/setup-in-process-provider.ts +++ b/libs/providers/flagd/src/e2e/setup-in-process-provider.ts @@ -3,16 +3,25 @@ import { OpenFeature } from '@openfeature/server-sdk'; import { FlagdProvider } from '../lib/flagd-provider'; const FLAGD_NAME = 'flagd Provider'; +const E2E_CLIENT_NAME = 'e2e'; +const UNSTABLE_CLIENT_NAME = 'unstable'; // register the flagd provider before the tests. console.log('Setting flagd provider...'); OpenFeature.setProvider( - 'e2e', + E2E_CLIENT_NAME, new FlagdProvider({ cache: 'disabled', resolverType: 'in-process', host: 'localhost', port: 9090 }), ); -OpenFeature.setProvider('unstable', new FlagdProvider({ resolverType: 'in-process', host: 'localhost', port: 9091 })); +OpenFeature.setProvider( + UNSTABLE_CLIENT_NAME, + new FlagdProvider({ resolverType: 'in-process', host: 'localhost', port: 9091 }), +); +assert( + OpenFeature.getProviderMetadata(E2E_CLIENT_NAME).name === FLAGD_NAME, + new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), +); assert( - OpenFeature.providerMetadata.name === FLAGD_NAME, + OpenFeature.getProviderMetadata(UNSTABLE_CLIENT_NAME).name === FLAGD_NAME, new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), ); console.log('flagd provider configured!'); diff --git a/libs/providers/flagd/src/e2e/setup-rpc-provider.ts b/libs/providers/flagd/src/e2e/setup-rpc-provider.ts index 85ef0c0ba..6ccab77cb 100644 --- a/libs/providers/flagd/src/e2e/setup-rpc-provider.ts +++ b/libs/providers/flagd/src/e2e/setup-rpc-provider.ts @@ -3,13 +3,19 @@ import { OpenFeature } from '@openfeature/server-sdk'; import { FlagdProvider } from '../lib/flagd-provider'; const FLAGD_NAME = 'flagd Provider'; +const E2E_CLIENT_NAME = 'e2e'; +const UNSTABLE_CLIENT_NAME = 'unstable'; // register the flagd provider before the tests. console.log('Setting flagd provider...'); -OpenFeature.setProvider('e2e', new FlagdProvider({ cache: 'disabled' })); -OpenFeature.setProvider('unstable', new FlagdProvider({ cache: 'disabled', port: 8014 })); +OpenFeature.setProvider(E2E_CLIENT_NAME, new FlagdProvider({ cache: 'disabled' })); +OpenFeature.setProvider(UNSTABLE_CLIENT_NAME, new FlagdProvider({ cache: 'disabled', port: 8014 })); assert( - OpenFeature.providerMetadata.name === FLAGD_NAME, + OpenFeature.getProviderMetadata(E2E_CLIENT_NAME).name === FLAGD_NAME, + new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), +); +assert( + OpenFeature.getProviderMetadata(UNSTABLE_CLIENT_NAME).name === FLAGD_NAME, new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`), ); console.log('flagd provider configured!'); diff --git a/libs/providers/go-feature-flag/package.json b/libs/providers/go-feature-flag/package.json index 2858fcbeb..da9b7e8b3 100644 --- a/libs/providers/go-feature-flag/package.json +++ b/libs/providers/go-feature-flag/package.json @@ -6,6 +6,6 @@ "current-version": "echo $npm_package_version" }, "peerDependencies": { - "@openfeature/server-sdk": "^1.6.0" + "@openfeature/server-sdk": "^1.8.0" } -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 148aa1fc6..d2640d283 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,9 +39,9 @@ "@nx/rollup": "16.9.1", "@nx/web": "16.9.1", "@nx/workspace": "16.9.1", - "@openfeature/core": "^0.0.20", + "@openfeature/core": "^0.0.21", "@openfeature/flagd-core": ">=0.1.1", - "@openfeature/server-sdk": "^1.6.2", + "@openfeature/server-sdk": "^1.8.0", "@openfeature/web-sdk": "^0.4.0", "@opentelemetry/sdk-metrics": "^1.15.0", "@swc-node/register": "~1.6.0", @@ -3315,9 +3315,9 @@ } }, "node_modules/@openfeature/core": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-0.0.20.tgz", - "integrity": "sha512-YVokonIlYYqIV/ozp1/Td4n5j62biNC7+TvDpAFavNCUm6ULp7oT1sxCPbQhMGv+iS7nb3CSRXGDPykSjTDDoA==", + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-0.0.21.tgz", + "integrity": "sha512-AbJ8LB69yqfUgmj06Jb92W0HGO5Fn1MuxtSQ+MAYS6QcN8WcbL7nmguMx4c1UPWa9+B9SQ3UbH7b9cBfp/qV3A==", "dev": true }, "node_modules/@openfeature/flagd-core": { @@ -3346,12 +3346,15 @@ } }, "node_modules/@openfeature/server-sdk": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.6.2.tgz", - "integrity": "sha512-GR4bDu+SvNZ+ycp3TKTXcRbY30tmTRMBoFOsgi3/YgttDFEJvDxZBgtpqWrA9C6kVaAYqfsL/Z6iVXX2DUgiQg==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.8.0.tgz", + "integrity": "sha512-1jEaoph4UXzd3RJZwbki7ZbUvjdExwPJ2ZER2/8kqNVcOvwUXDJyTwhrr5CFKTvBq0pO8z8xk5JeM4GvgrhnlQ==", "dev": true, "engines": { "node": ">=16" + }, + "peerDependencies": { + "@openfeature/core": "0.0.21" } }, "node_modules/@openfeature/web-sdk": { diff --git a/package.json b/package.json index 64bada8bc..8241e8d9d 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,9 @@ "@nx/rollup": "16.9.1", "@nx/web": "16.9.1", "@nx/workspace": "16.9.1", - "@openfeature/core": "^0.0.20", + "@openfeature/core": "^0.0.21", "@openfeature/flagd-core": ">=0.1.1", - "@openfeature/server-sdk": "^1.6.2", + "@openfeature/server-sdk": "^1.8.0", "@openfeature/web-sdk": "^0.4.0", "@opentelemetry/sdk-metrics": "^1.15.0", "@swc-node/register": "~1.6.0", From 4351b552de105399cd3e2edb257d52552a1177df Mon Sep 17 00:00:00 2001 From: Michael Beemer Date: Wed, 3 Jan 2024 14:22:09 -0500 Subject: [PATCH 4/4] fix remaining linting issues Signed-off-by: Michael Beemer --- .../hooks/open-telemetry/src/lib/metrics/metrics-hook.spec.ts | 2 +- libs/hooks/open-telemetry/src/lib/traces/tracing-hook.spec.ts | 2 +- libs/providers/config-cat/src/lib/config-cat-provider.spec.ts | 1 + libs/providers/go-feature-flag-web/src/lib/model.ts | 1 + libs/providers/go-feature-flag/src/lib/data-collector-hook.ts | 4 ++-- .../launchdarkly-client/src/lib/translate-context.ts | 1 + 6 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libs/hooks/open-telemetry/src/lib/metrics/metrics-hook.spec.ts b/libs/hooks/open-telemetry/src/lib/metrics/metrics-hook.spec.ts index 9bfce7672..d73f31e8f 100644 --- a/libs/hooks/open-telemetry/src/lib/metrics/metrics-hook.spec.ts +++ b/libs/hooks/open-telemetry/src/lib/metrics/metrics-hook.spec.ts @@ -225,7 +225,7 @@ describe(MetricsHook.name, () => { } as EvaluationDetails; // configure a mapper that throws - const attributeMapper: AttributeMapper = (_) => { + const attributeMapper: AttributeMapper = () => { throw new Error('fake error'); }; const hook = new MetricsHook({ attributeMapper }); diff --git a/libs/hooks/open-telemetry/src/lib/traces/tracing-hook.spec.ts b/libs/hooks/open-telemetry/src/lib/traces/tracing-hook.spec.ts index 3f6236166..c227fcc06 100644 --- a/libs/hooks/open-telemetry/src/lib/traces/tracing-hook.spec.ts +++ b/libs/hooks/open-telemetry/src/lib/traces/tracing-hook.spec.ts @@ -148,7 +148,7 @@ describe('OpenTelemetry Hooks', () => { describe('error in mapper', () => { beforeEach(() => { tracingHook = new TracingHook({ - attributeMapper: (_) => { + attributeMapper: () => { throw new Error('fake error'); }, }); diff --git a/libs/providers/config-cat/src/lib/config-cat-provider.spec.ts b/libs/providers/config-cat/src/lib/config-cat-provider.spec.ts index c8760d753..a357e518e 100644 --- a/libs/providers/config-cat/src/lib/config-cat-provider.spec.ts +++ b/libs/providers/config-cat/src/lib/config-cat-provider.spec.ts @@ -39,6 +39,7 @@ describe('ConfigCatProvider', () => { await provider.initialize(); // Currently there is no option to get access to the event emitter + // eslint-disable-next-line @typescript-eslint/no-explicit-any configCatEmitter = (provider.configCatClient as any).options.hooks; }); diff --git a/libs/providers/go-feature-flag-web/src/lib/model.ts b/libs/providers/go-feature-flag-web/src/lib/model.ts index c1dcaf72b..aed0185f1 100644 --- a/libs/providers/go-feature-flag-web/src/lib/model.ts +++ b/libs/providers/go-feature-flag-web/src/lib/model.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ import { FlagValue, ErrorCode, EvaluationContextValue } from '@openfeature/web-sdk'; /** diff --git a/libs/providers/go-feature-flag/src/lib/data-collector-hook.ts b/libs/providers/go-feature-flag/src/lib/data-collector-hook.ts index 437e02ffb..dc1849a3e 100644 --- a/libs/providers/go-feature-flag/src/lib/data-collector-hook.ts +++ b/libs/providers/go-feature-flag/src/lib/data-collector-hook.ts @@ -91,7 +91,7 @@ export class GoFeatureFlagDataCollectorHook implements Hook { } } - after(hookContext: HookContext, evaluationDetails: EvaluationDetails, hookHints?: HookHints) { + after(hookContext: HookContext, evaluationDetails: EvaluationDetails) { if (!this.collectUnCachedEvaluation && evaluationDetails.reason !== StandardResolutionReasons.CACHED) { return; } @@ -109,7 +109,7 @@ export class GoFeatureFlagDataCollectorHook implements Hook { this.dataCollectorBuffer?.push(event); } - error(hookContext: HookContext, err: unknown, hookHints?: HookHints) { + error(hookContext: HookContext) { const event = { contextKind: hookContext.context['anonymous'] ? 'anonymousUser' : 'user', kind: 'feature', diff --git a/libs/providers/launchdarkly-client/src/lib/translate-context.ts b/libs/providers/launchdarkly-client/src/lib/translate-context.ts index 3aa49bf5a..6d24efdf3 100644 --- a/libs/providers/launchdarkly-client/src/lib/translate-context.ts +++ b/libs/providers/launchdarkly-client/src/lib/translate-context.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ //Copyright 2022 Catamorphic, Co. // // Licensed under the Apache License, Version 2.0 (the "License");