From febb6fa7240bebb3934733a928510570b0e979e5 Mon Sep 17 00:00:00 2001 From: kyle-ssg Date: Fri, 28 Mar 2025 11:53:46 +0000 Subject: [PATCH 1/4] re-add assignment of flagsmith.identity --- flagsmith-core.ts | 8 +++++++- test/init.test.ts | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/flagsmith-core.ts b/flagsmith-core.ts index 93ef87c4..07cc0983 100644 --- a/flagsmith-core.ts +++ b/flagsmith-core.ts @@ -129,6 +129,7 @@ const Flagsmith = class { }; if (identifier) { this.evaluationContext.identity.identifier = identifier; + this.identity = identifier; } } this.flags = flags; @@ -269,6 +270,7 @@ const Flagsmith = class { flags:IFlags|null= null getFlagInterval: NodeJS.Timer|null= null headers?: object | null= null + identity:string|null|undefined = null initialised= false oldFlags:IFlags|null= null onChange:IInitConfig['onChange']|null= null @@ -429,7 +431,7 @@ const Flagsmith = class { const onRetrievedStorage = async (error: Error | null, res: string | null) => { if (res) { let flagsChanged = null - let traitsChanged = null + const traitsChanged = null try { const json = JSON.parse(res) as IState; let cachePopulated = false; @@ -553,6 +555,7 @@ const Flagsmith = class { } identify(userId?: string | null, traits?: ITraits, transient?: boolean) { + this.identity = userId this.evaluationContext.identity = { identifier: userId, transient: transient, @@ -592,11 +595,13 @@ const Flagsmith = class { this.flags = state.flags || this.flags; this.evaluationContext = state.evaluationContext || this.evaluationContext, this.evaluationEvent = state.evaluationEvent || this.evaluationEvent; + this.identity = this.getContext()?.identity?.identifier this.log("setState called", this) } } logout() { + this.identity = null this.evaluationContext.identity = null; if (this.initialised) { return this.getFlags(); @@ -666,6 +671,7 @@ const Flagsmith = class { ...evaluationContext, environment: evaluationContext.environment || this.evaluationContext.environment, }; + this.identity = this.getContext()?.identity?.identifier if (this.initialised) { return this.getFlags(); diff --git a/test/init.test.ts b/test/init.test.ts index 3055f00d..81539298 100644 --- a/test/init.test.ts +++ b/test/init.test.ts @@ -136,7 +136,9 @@ describe('Flagsmith.init', () => { status: 200, text: () => fs.readFile(`./test/data/identities_${identityB}.json`, 'utf8'), }); + expect(flagsmith.identity).toEqual(identityA); await flagsmith.identify(identityB); + expect(flagsmith.identity).toEqual(identityB); expect(flagsmith.getTrait('a')).toEqual(undefined); mockFetch.mockResolvedValueOnce({ status: 200, From 8be3a4a7fd40f9a6b6a1658bcf490d1df7937d6c Mon Sep 17 00:00:00 2001 From: kyle-ssg Date: Fri, 28 Mar 2025 11:54:21 +0000 Subject: [PATCH 2/4] Version bump --- lib/flagsmith/package.json | 2 +- lib/react-native-flagsmith/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/flagsmith/package.json b/lib/flagsmith/package.json index b4f6bed1..72f0d0d1 100644 --- a/lib/flagsmith/package.json +++ b/lib/flagsmith/package.json @@ -1,6 +1,6 @@ { "name": "flagsmith", - "version": "9.0.5", + "version": "9.0.6", "description": "Feature flagging to support continuous development", "main": "./index.js", "module": "./index.mjs", diff --git a/lib/react-native-flagsmith/package.json b/lib/react-native-flagsmith/package.json index 74db1596..d721bfbe 100644 --- a/lib/react-native-flagsmith/package.json +++ b/lib/react-native-flagsmith/package.json @@ -1,6 +1,6 @@ { "name": "react-native-flagsmith", - "version": "9.0.5", + "version": "9.0.6", "description": "Feature flagging to support continuous development", "main": "./index.js", "repository": { From e7c29e6c61cda4d8c05d06a17864e4d63d65bfde Mon Sep 17 00:00:00 2001 From: wadii Date: Thu, 1 May 2025 15:22:30 +0200 Subject: [PATCH 3/4] fix: re-added-identity-in-get-state --- flagsmith-core.ts | 1 + test/init.test.ts | 1 + test/test-constants.ts | 2 ++ types.d.ts | 1 + 4 files changed, 5 insertions(+) diff --git a/flagsmith-core.ts b/flagsmith-core.ts index 17318fb3..d1a36c54 100644 --- a/flagsmith-core.ts +++ b/flagsmith-core.ts @@ -594,6 +594,7 @@ const Flagsmith = class { flags: this.flags, ts: this.ts, evaluationContext: this.evaluationContext, + identity: this.identity, evaluationEvent: this.evaluationEvent, } as IState } diff --git a/test/init.test.ts b/test/init.test.ts index 72accbf1..4b162c89 100644 --- a/test/init.test.ts +++ b/test/init.test.ts @@ -78,6 +78,7 @@ describe('Flagsmith.init', () => { ); expect(getStateToCheck(flagsmith.getState())).toEqual({ ...identityState, + identity: testIdentityWithTraits, evaluationContext: { ...identityState.evaluationContext, identity: { diff --git a/test/test-constants.ts b/test/test-constants.ts index 0da6b4cf..9cbf08d0 100644 --- a/test/test-constants.ts +++ b/test/test-constants.ts @@ -27,6 +27,7 @@ export const defaultState = { export const testIdentity = 'test_identity' export const identityState = { api: 'https://edge.api.flagsmith.com/api/v1/', + identity: testIdentity, evaluationContext: { environment: {apiKey: environmentID}, identity: { @@ -63,6 +64,7 @@ export const defaultStateAlt = { export function getStateToCheck(_state: IState) { const state = { ..._state, + identity: _state.evaluationContext?.identity?.identifier, }; delete state.evaluationEvent; // @ts-ignore internal property diff --git a/types.d.ts b/types.d.ts index f22b575b..a0d172fb 100644 --- a/types.d.ts +++ b/types.d.ts @@ -53,6 +53,7 @@ export interface IState { evaluationContext?: EvaluationContext; evaluationEvent?: Record> | null; ts?: number; + identity?: string; } declare type ICacheOptions = { From a33385af4217d4adb5bf6904bda1f2d4dfa07c39 Mon Sep 17 00:00:00 2001 From: kyle-ssg Date: Wed, 7 May 2025 11:08:45 +0100 Subject: [PATCH 4/4] Version bump --- lib/flagsmith/package.json | 2 +- lib/react-native-flagsmith/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/flagsmith/package.json b/lib/flagsmith/package.json index 14da61d8..3b6a0b71 100644 --- a/lib/flagsmith/package.json +++ b/lib/flagsmith/package.json @@ -1,6 +1,6 @@ { "name": "flagsmith", - "version": "9.2.1", + "version": "9.2.2", "description": "Feature flagging to support continuous development", "main": "./index.js", "module": "./index.mjs", diff --git a/lib/react-native-flagsmith/package.json b/lib/react-native-flagsmith/package.json index 39b6044e..7a516638 100644 --- a/lib/react-native-flagsmith/package.json +++ b/lib/react-native-flagsmith/package.json @@ -1,6 +1,6 @@ { "name": "react-native-flagsmith", - "version": "9.2.1", + "version": "9.2.2", "description": "Feature flagging to support continuous development", "main": "./index.js", "repository": {