From 6e2d45475d7f146523f18d4fe578e90505304219 Mon Sep 17 00:00:00 2001 From: Mike Chabot Date: Mon, 2 Jun 2025 14:41:19 -0400 Subject: [PATCH 1/3] Swap to eventsource (#2) --- package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++++++------- src/managers/sync/stream-manager.ts | 16 ++++++++++------ 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 9e6d930..21b8b4f 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,6 @@ "axios": "^1.7.2", "deepmerge": "^4.3.1", "eventemitter3": "^5.0.1", - "extended-eventsource": "^1.4.9" + "eventsource": "^4.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d6a5a46..8c8d5a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,9 +14,9 @@ dependencies: eventemitter3: specifier: ^5.0.1 version: 5.0.1 - extended-eventsource: - specifier: ^1.4.9 - version: 1.4.9 + eventsource: + specifier: ^4.0.0 + version: 4.0.0 devDependencies: '@trivago/prettier-plugin-sort-imports': @@ -1618,6 +1618,18 @@ packages: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: false + /eventsource-parser@3.0.2: + resolution: {integrity: sha512-6RxOBZ/cYgd8usLwsEl+EC09Au/9BcmCKYF2/xbml6DNczf7nv0MQb+7BA2F+li6//I+28VNlQR37XfQtcAJuA==} + engines: {node: '>=18.0.0'} + dev: false + + /eventsource@4.0.0: + resolution: {integrity: sha512-fvIkb9qZzdMxgZrEQDyll+9oJsyaVvY92I2Re+qK0qEJ+w5s0X3dtz+M0VAPOjP1gtU3iqWyjQ0G3nvd5CLZ2g==} + engines: {node: '>=20.0.0'} + dependencies: + eventsource-parser: 3.0.2 + dev: false + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -1648,10 +1660,6 @@ packages: strip-final-newline: 3.0.0 dev: true - /extended-eventsource@1.4.9: - resolution: {integrity: sha512-x0SMAw57jEaiBKLQWTatVBZkT/PRuL5hdiEP6s8GKqeQOapBRwnohI6e8zGM0XStolQrQe+L6Wvin8G0UthRbw==} - dev: false - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true diff --git a/src/managers/sync/stream-manager.ts b/src/managers/sync/stream-manager.ts index 3408a26..2fad787 100644 --- a/src/managers/sync/stream-manager.ts +++ b/src/managers/sync/stream-manager.ts @@ -1,4 +1,4 @@ -import { EventSource } from 'extended-eventsource'; +import { EventSource } from 'eventsource'; import { FsFlagSet } from '~config/types'; import { FsSettings } from '~config/types.internal'; @@ -27,11 +27,15 @@ export const streamManager = ( `${urls.sdk}/sse/sdk-updates/server?timestamp=${new Date().getTime()}`, { withCredentials: true, - disableLogger: true, - headers: { - 'x-ridgeline-key': settings.sdkKey, - 'x-ridgeline-sdk-ctx': JSON.stringify(sdkContext), - }, + fetch: (input, init) => + fetch(input, { + ...init, + headers: { + ...init.headers, + 'x-ridgeline-key': settings.sdkKey, + 'x-ridgeline-sdk-ctx': JSON.stringify(sdkContext), + }, + }), }, ); From 64c67ce0dc4f6ad3b6f5e209be7514650fe9ba56 Mon Sep 17 00:00:00 2001 From: Mike Chabot Date: Mon, 2 Jun 2025 18:41:59 +0000 Subject: [PATCH 2/3] 0.2.4-alpha.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 21b8b4f..7974c70 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@flagsync/node-sdk", - "version": "0.2.3", + "version": "0.2.4-alpha.0", "description": "FlagSync SDK for Node.js", "author": "Mike Chabot", "license": "Apache-2.0", From a0150c2bc138f4436d085e9c6c418799a04f6fa7 Mon Sep 17 00:00:00 2001 From: Mike Chabot Date: Mon, 2 Jun 2025 15:39:46 -0400 Subject: [PATCH 3/3] Remove timestamp from query --- src/managers/sync/stream-manager.ts | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/managers/sync/stream-manager.ts b/src/managers/sync/stream-manager.ts index 2fad787..3ad10dc 100644 --- a/src/managers/sync/stream-manager.ts +++ b/src/managers/sync/stream-manager.ts @@ -23,21 +23,18 @@ export const streamManager = ( /** * Create a new EventSource instance and listen for incoming flag updates. */ - es = new EventSource( - `${urls.sdk}/sse/sdk-updates/server?timestamp=${new Date().getTime()}`, - { - withCredentials: true, - fetch: (input, init) => - fetch(input, { - ...init, - headers: { - ...init.headers, - 'x-ridgeline-key': settings.sdkKey, - 'x-ridgeline-sdk-ctx': JSON.stringify(sdkContext), - }, - }), - }, - ); + es = new EventSource(`${urls.sdk}/sse/sdk-updates/server`, { + withCredentials: true, + fetch: (input, init) => + fetch(input, { + ...init, + headers: { + ...init.headers, + 'x-ridgeline-key': settings.sdkKey, + 'x-ridgeline-sdk-ctx': JSON.stringify(sdkContext), + }, + }), + }); /** * For debug only