From 6881ef7055efa1e1662911bcaa933f618f8e3556 Mon Sep 17 00:00:00 2001 From: Erik Hughes Date: Tue, 12 Aug 2025 14:14:25 +0200 Subject: [PATCH 1/2] feat: treat "null" strings as null --- packages/flag-evaluation/package.json | 2 +- packages/flag-evaluation/src/index.ts | 4 ++-- packages/node-sdk/package.json | 4 ++-- packages/openfeature-node-provider/package.json | 2 +- yarn.lock | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/flag-evaluation/package.json b/packages/flag-evaluation/package.json index 66711476..7d91206f 100644 --- a/packages/flag-evaluation/package.json +++ b/packages/flag-evaluation/package.json @@ -1,6 +1,6 @@ { "name": "@bucketco/flag-evaluation", - "version": "0.2.1", + "version": "0.2.2", "license": "MIT", "repository": { "type": "git", diff --git a/packages/flag-evaluation/src/index.ts b/packages/flag-evaluation/src/index.ts index 1e664b0d..64e79a4a 100644 --- a/packages/flag-evaluation/src/index.ts +++ b/packages/flag-evaluation/src/index.ts @@ -359,9 +359,9 @@ export function evaluate( : fieldValueDate <= valueDate; } case "SET": - return fieldValue !== ""; + return fieldValue !== "" && fieldValue !== "null"; case "NOT_SET": - return fieldValue === ""; + return fieldValue === "" || fieldValue === "null"; case "IS": return fieldValue === value; case "IS_NOT": diff --git a/packages/node-sdk/package.json b/packages/node-sdk/package.json index e5da4fbb..6dd91eee 100644 --- a/packages/node-sdk/package.json +++ b/packages/node-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@bucketco/node-sdk", - "version": "1.9.3", + "version": "1.9.4", "license": "MIT", "repository": { "type": "git", @@ -44,6 +44,6 @@ "vitest": "~1.6.0" }, "dependencies": { - "@bucketco/flag-evaluation": "0.2.1" + "@bucketco/flag-evaluation": "0.2.2" } } diff --git a/packages/openfeature-node-provider/package.json b/packages/openfeature-node-provider/package.json index e73c0fc5..539ba88e 100644 --- a/packages/openfeature-node-provider/package.json +++ b/packages/openfeature-node-provider/package.json @@ -50,7 +50,7 @@ "vitest": "~1.6.0" }, "dependencies": { - "@bucketco/node-sdk": "1.9.3" + "@bucketco/node-sdk": "1.9.4" }, "peerDependencies": { "@openfeature/server-sdk": ">=1.16.1" diff --git a/yarn.lock b/yarn.lock index 8b8b29b8..a43ab7ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -782,7 +782,7 @@ __metadata: languageName: unknown linkType: soft -"@bucketco/flag-evaluation@npm:0.2.1, @bucketco/flag-evaluation@workspace:packages/flag-evaluation": +"@bucketco/flag-evaluation@npm:0.2.2, @bucketco/flag-evaluation@workspace:packages/flag-evaluation": version: 0.0.0-use.local resolution: "@bucketco/flag-evaluation@workspace:packages/flag-evaluation" dependencies: @@ -798,13 +798,13 @@ __metadata: languageName: unknown linkType: soft -"@bucketco/node-sdk@npm:1.9.3, @bucketco/node-sdk@workspace:packages/node-sdk": +"@bucketco/node-sdk@npm:1.9.4, @bucketco/node-sdk@workspace:packages/node-sdk": version: 0.0.0-use.local resolution: "@bucketco/node-sdk@workspace:packages/node-sdk" dependencies: "@babel/core": "npm:~7.24.7" "@bucketco/eslint-config": "npm:~0.0.2" - "@bucketco/flag-evaluation": "npm:0.2.1" + "@bucketco/flag-evaluation": "npm:0.2.2" "@bucketco/tsconfig": "npm:~0.0.2" "@types/node": "npm:^22.12.0" "@vitest/coverage-v8": "npm:~1.6.0" @@ -848,7 +848,7 @@ __metadata: dependencies: "@babel/core": "npm:~7.24.7" "@bucketco/eslint-config": "npm:~0.0.2" - "@bucketco/node-sdk": "npm:1.9.3" + "@bucketco/node-sdk": "npm:1.9.4" "@bucketco/tsconfig": "npm:~0.0.2" "@openfeature/core": "npm:^1.5.0" "@openfeature/server-sdk": "npm:>=1.16.1" From fa52bbc25fd38eb487ea0aa54072520cde16033a Mon Sep 17 00:00:00 2001 From: Erik Hughes Date: Tue, 12 Aug 2025 14:19:02 +0200 Subject: [PATCH 2/2] fix: make value case insensitive for set and not set --- packages/flag-evaluation/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flag-evaluation/src/index.ts b/packages/flag-evaluation/src/index.ts index 64e79a4a..15a43b7f 100644 --- a/packages/flag-evaluation/src/index.ts +++ b/packages/flag-evaluation/src/index.ts @@ -359,9 +359,9 @@ export function evaluate( : fieldValueDate <= valueDate; } case "SET": - return fieldValue !== "" && fieldValue !== "null"; + return fieldValue !== "" && fieldValue.toLowerCase() !== "null"; case "NOT_SET": - return fieldValue === "" || fieldValue === "null"; + return fieldValue === "" || fieldValue.toLowerCase() === "null"; case "IS": return fieldValue === value; case "IS_NOT":