From b10e7604c21ade6d006849e6604ecf0bb9d43416 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 20 Jan 2025 13:24:45 -0500 Subject: [PATCH 01/15] chore: disable SSE for nodeJS --- jest-global.ts | 33 ++++++- package.json | 2 +- proxies/nodejs/handlers/client.ts | 7 +- proxies/nodejs/package.json | 4 +- proxies/nodejs/yarn.lock | 70 ++++++++------- proxies/openfeature-nodejs/handlers/client.ts | 3 + proxies/openfeature-nodejs/package.json | 6 +- proxies/openfeature-nodejs/yarn.lock | 88 +++++++++++-------- yarn.lock | 10 +-- 9 files changed, 138 insertions(+), 85 deletions(-) diff --git a/jest-global.ts b/jest-global.ts index ecf1a5a9..76e87244 100644 --- a/jest-global.ts +++ b/jest-global.ts @@ -1,5 +1,25 @@ import { getSDKs } from './harness/types' import testContainersSetup from '@eresearchqut/jest-testcontainers/dist/setup' +import { exec } from 'child_process' +import { promisify } from 'util' + +const execAsync = promisify(exec) + +async function checkDockerCommand() { + try { + await execAsync('docker compose version') + return 'docker compose' + } catch { + try { + await execAsync('docker-compose version') + return 'docker-compose' + } catch { + throw new Error( + 'Neither docker compose nor docker-compose commands are available', + ) + } + } +} async function setup(opts) { const sdks = getSDKs() @@ -12,8 +32,17 @@ async function setup(opts) { .join(',') if (process.env.LOCAL_MODE === '1') { - // Effectively disable all docker containers by setting a profile that none of them use - process.env.COMPOSE_PROFILES = 'local' + // In LOCAL_MODE, we don't need to set up any containers + return Promise.resolve() + } + + try { + // Check which docker compose command is available and set it in the environment + process.env.DOCKER_COMPOSE_COMMAND = await checkDockerCommand() + console.log(`Using ${process.env.DOCKER_COMPOSE_COMMAND} command`) + } catch (error) { + console.error('Docker compose command check failed:', error.message) + throw error } console.log(`Set COMPOSE_PROFILES to ${process.env.COMPOSE_PROFILES}`) diff --git a/package.json b/package.json index a89eff86..91bc92ec 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "author": "DevCycle ", "license": "MIT", "devDependencies": { - "@devcycle/types": "^1.14.0", + "@devcycle/types": "^1.20.0", "@eresearchqut/jest-testcontainers": "^3.2.0", "@koa/router": "^12.0.0", "@types/jest": "^29.2.3", diff --git a/proxies/nodejs/handlers/client.ts b/proxies/nodejs/handlers/client.ts index 698c0598..721b9ee1 100644 --- a/proxies/nodejs/handlers/client.ts +++ b/proxies/nodejs/handlers/client.ts @@ -35,7 +35,12 @@ export const handleClient = async (ctx: Koa.ParameterizedContext) => { let client: DevCycleClient | DevCycleCloudClient if (!enableCloudBucketing) { - client = initializeDevCycle(sdkKey, { ...options }) + client = initializeDevCycle(sdkKey, { + ...options, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore disableRealTimeUpdates needs to get released in the updated types release. + disableRealTimeUpdates: true, + }) if (waitForInitialization) { try { await client.onClientInitialized() diff --git a/proxies/nodejs/package.json b/proxies/nodejs/package.json index 773f1d30..1d49b66d 100644 --- a/proxies/nodejs/package.json +++ b/proxies/nodejs/package.json @@ -1,7 +1,7 @@ { "dependencies": { - "@devcycle/js-client-sdk": "^1.26.0", - "@devcycle/nodejs-server-sdk": "^1.31.1", + "@devcycle/js-client-sdk": "^1.33.0", + "@devcycle/nodejs-server-sdk": "../../../js-sdks/dist/sdk/nodejs", "@types/koa": "^2.13.5", "@types/koa-bodyparser": "^4.3.10", "@types/koa-router": "^7.4.4", diff --git a/proxies/nodejs/yarn.lock b/proxies/nodejs/yarn.lock index c10cd5c0..87c8a426 100644 --- a/proxies/nodejs/yarn.lock +++ b/proxies/nodejs/yarn.lock @@ -14,66 +14,70 @@ __metadata: languageName: node linkType: hard -"@devcycle/bucketing-assembly-script@npm:^1.23.0": - version: 1.23.0 - resolution: "@devcycle/bucketing-assembly-script@npm:1.23.0" +"@devcycle/bucketing-assembly-script@npm:^1.29.0": + version: 1.29.0 + resolution: "@devcycle/bucketing-assembly-script@npm:1.29.0" dependencies: - protobufjs: "npm:^7.2.5" - checksum: 10/feab0a9d3abf99872af78e26bc1096516afe248b1ccc71d7b2986366053d8130bbeff6f6bf68ce658c08a5a0eb58278120e37c33999eff860c0f5658c042b637 + protobufjs: "npm:^7.4.0" + checksum: 10/a923c5d81d65c3edb9e52980e615cce9cd1860c8b9334357c2fb68e5bce5cce991a572bcd18acf3cfcbf9ca102af8aee4cfdcc1b7d6520c34c35127bddbd0f15 languageName: node linkType: hard -"@devcycle/js-client-sdk@npm:^1.26.0": - version: 1.26.0 - resolution: "@devcycle/js-client-sdk@npm:1.26.0" +"@devcycle/js-client-sdk@npm:^1.33.0": + version: 1.33.0 + resolution: "@devcycle/js-client-sdk@npm:1.33.0" dependencies: - "@devcycle/types": "npm:^1.14.0" + "@devcycle/types": "npm:^1.20.0" fetch-retry: "npm:^5.0.6" lodash: "npm:^4.17.21" ua-parser-js: "npm:^1.0.36" uuid: "npm:^8.3.2" - checksum: 10/1087bd5b4a01f46f17044c30eb24499a5c647072b111b8c551dcffbbd31bc45ef9023948887efc9b63f8724b7145b8a0991eb3de24091bb9e342613f7e0c8206 + checksum: 10/b0039b99afd50dd5269432c222e7a30995d48a4d99d7040a554893eeeaaed29e3d524957aba49bde1003eb259f39141ab9cdf37690643c7b897112c8492c424e languageName: node linkType: hard -"@devcycle/js-cloud-server-sdk@npm:^1.13.0": - version: 1.13.0 - resolution: "@devcycle/js-cloud-server-sdk@npm:1.13.0" +"@devcycle/js-cloud-server-sdk@npm:^1.19.0": + version: 1.19.0 + resolution: "@devcycle/js-cloud-server-sdk@npm:1.19.0" dependencies: - "@devcycle/types": "npm:^1.14.0" + "@devcycle/types": "npm:^1.20.0" cross-fetch: "npm:^4.0.0" fetch-retry: "npm:^5.0.6" lodash: "npm:^4.17.21" - checksum: 10/32674e92fd8f83377723553ea54ac91a11dfa4dab169f8e6f809b6692418c203054c188d331a0eb7927075894bcda6977f17ee53677108fd0d43686931929c11 + checksum: 10/09232931d3d6b390804b2fba5fd80d0331eaef54a0fcd9dcf0c74e7430f5243b8e9597114e8f379644237c790ba98705f062d7bd24517fe7f88a449ebee3ce9a languageName: node linkType: hard -"@devcycle/nodejs-server-sdk@npm:^1.31.1": - version: 1.31.1 - resolution: "@devcycle/nodejs-server-sdk@npm:1.31.1" +"@devcycle/nodejs-server-sdk@file:../../../js-sdks/dist/sdk/nodejs::locator=root-workspace-0b6124%40workspace%3A.": + version: 1.39.0 + resolution: "@devcycle/nodejs-server-sdk@file:../../../js-sdks/dist/sdk/nodejs#../../../js-sdks/dist/sdk/nodejs::hash=bafbe1&locator=root-workspace-0b6124%40workspace%3A." dependencies: - "@devcycle/bucketing-assembly-script": "npm:^1.23.0" - "@devcycle/js-cloud-server-sdk": "npm:^1.13.0" - "@devcycle/types": "npm:^1.14.0" + "@devcycle/bucketing-assembly-script": "npm:^1.29.0" + "@devcycle/js-cloud-server-sdk": "npm:^1.19.0" + "@devcycle/types": "npm:^1.20.0" cross-fetch: "npm:^4.0.0" eventsource: "npm:^2.0.2" fetch-retry: "npm:^5.0.6" peerDependencies: - "@openfeature/server-sdk": ^1.13.5 - checksum: 10/19dd5b21e5a9e4e614d80734adb9bdc7e754e05b18785a34ecd1275508b8c7d2209120c7332a2bf3274496feb7f7fb3f881a4b3c194f32260548162c754c2e4d + "@openfeature/multi-provider": ^0.1.1 + "@openfeature/server-sdk": ^1.16.2 + peerDependenciesMeta: + "@openfeature/multi-provider": + optional: true + checksum: 10/32e9ab300202585c03c48cfdb351f36deb0626ff47a48f5591acb58def80090d6c0555b4be9d11afd4d8ac316e1fc7d93ee222c9de4fb827b8656d229c3b708c languageName: node linkType: hard -"@devcycle/types@npm:^1.14.0": - version: 1.14.0 - resolution: "@devcycle/types@npm:1.14.0" +"@devcycle/types@npm:^1.20.0": + version: 1.20.0 + resolution: "@devcycle/types@npm:1.20.0" dependencies: class-transformer: "npm:0.5.1" class-validator: "npm:0.14.1" iso-639-1: "npm:^2.1.13" lodash: "npm:^4.17.21" reflect-metadata: "npm:^0.1.13" - checksum: 10/f040ca4262c53214f7236fb5c04612fd29ec8f41b55e3e2e9ae97748b64827bf4a1c9be03593ce98fbb4838a6eb954e9b40b77900776d1a208aede518543d528 + checksum: 10/bcfc96b7095c7af6768a6252d406e6f231020e03c18683c81f79ab969cc84b400e6185e4a9cd69a256b0907faaefbd07cdddd0430f7d95404965dc593d34e3a2 languageName: node linkType: hard @@ -950,9 +954,9 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:^7.2.5": - version: 7.2.5 - resolution: "protobufjs@npm:7.2.5" +"protobufjs@npm:^7.4.0": + version: 7.4.0 + resolution: "protobufjs@npm:7.4.0" dependencies: "@protobufjs/aspromise": "npm:^1.1.2" "@protobufjs/base64": "npm:^1.1.2" @@ -966,7 +970,7 @@ __metadata: "@protobufjs/utf8": "npm:^1.1.0" "@types/node": "npm:>=13.7.0" long: "npm:^5.0.0" - checksum: 10/6c5aa62b61dff843f585f3acd9cb7a82d566de2dbf167a300b39afee91b04298c4b4aec61354b7c00308b40596f5f3f4b07d6246cfb4ee0abeaea25101033315 + checksum: 10/408423506610f70858d7593632f4a6aa4f05796c90fd632be9b9252457c795acc71aa6d3b54bb7f48a890141728fee4ca3906723ccea6c202ad71f21b3879b8b languageName: node linkType: hard @@ -1002,8 +1006,8 @@ __metadata: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@devcycle/js-client-sdk": "npm:^1.26.0" - "@devcycle/nodejs-server-sdk": "npm:^1.31.1" + "@devcycle/js-client-sdk": "npm:^1.33.0" + "@devcycle/nodejs-server-sdk": ../../../js-sdks/dist/sdk/nodejs "@types/koa": "npm:^2.13.5" "@types/koa-bodyparser": "npm:^4.3.10" "@types/koa-router": "npm:^7.4.4" diff --git a/proxies/openfeature-nodejs/handlers/client.ts b/proxies/openfeature-nodejs/handlers/client.ts index ce40d790..e71e43e2 100644 --- a/proxies/openfeature-nodejs/handlers/client.ts +++ b/proxies/openfeature-nodejs/handlers/client.ts @@ -26,9 +26,12 @@ export const handleClient = async (ctx: Koa.ParameterizedContext) => { try { let asyncError + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore disableRealTimeUpdates needs to get released in the updated types release. const dvcClient = initializeDevCycle(sdkKey, { ...options, enableCloudBucketing, + disableRealTimeUpdates: true, }) try { diff --git a/proxies/openfeature-nodejs/package.json b/proxies/openfeature-nodejs/package.json index e8b63415..5ead3e70 100644 --- a/proxies/openfeature-nodejs/package.json +++ b/proxies/openfeature-nodejs/package.json @@ -1,8 +1,8 @@ { "dependencies": { - "@devcycle/nodejs-server-sdk": "^1.28.1", - "@openfeature/core": "^1.1.0", - "@openfeature/server-sdk": "^1.13.5", + "@devcycle/nodejs-server-sdk": "^1.39.0", + "@openfeature/core": "^1.6.0", + "@openfeature/server-sdk": "^1.17.0", "@types/koa": "^2.13.5", "@types/koa-bodyparser": "^4.3.10", "@types/koa-router": "^7.4.4", diff --git a/proxies/openfeature-nodejs/yarn.lock b/proxies/openfeature-nodejs/yarn.lock index 16e89327..d309ba44 100644 --- a/proxies/openfeature-nodejs/yarn.lock +++ b/proxies/openfeature-nodejs/yarn.lock @@ -14,52 +14,57 @@ __metadata: languageName: node linkType: hard -"@devcycle/bucketing-assembly-script@npm:^1.20.1": - version: 1.20.1 - resolution: "@devcycle/bucketing-assembly-script@npm:1.20.1" +"@devcycle/bucketing-assembly-script@npm:^1.29.0": + version: 1.29.0 + resolution: "@devcycle/bucketing-assembly-script@npm:1.29.0" dependencies: - protobufjs: "npm:^7.2.5" - checksum: 10/2045f818f85f53241cf8928d5676797d2b95193f850daa15fd74e1ca6478d712d106d84a07522685961bc0eb1e4e76bdecfcf70a659b11f1467f86ab1c731627 + protobufjs: "npm:^7.4.0" + checksum: 10/a923c5d81d65c3edb9e52980e615cce9cd1860c8b9334357c2fb68e5bce5cce991a572bcd18acf3cfcbf9ca102af8aee4cfdcc1b7d6520c34c35127bddbd0f15 languageName: node linkType: hard -"@devcycle/js-cloud-server-sdk@npm:^1.11.2": - version: 1.11.2 - resolution: "@devcycle/js-cloud-server-sdk@npm:1.11.2" +"@devcycle/js-cloud-server-sdk@npm:^1.19.0": + version: 1.19.0 + resolution: "@devcycle/js-cloud-server-sdk@npm:1.19.0" dependencies: - "@devcycle/types": "npm:^1.12.2" + "@devcycle/types": "npm:^1.20.0" cross-fetch: "npm:^4.0.0" fetch-retry: "npm:^5.0.6" lodash: "npm:^4.17.21" - checksum: 10/063f3d41ed41cb69c3e2636fbbcf576d089116e19546f9cef0182cc2ccde2ce1b45c072fb99a6f43ae8235350be7542c73edf2200423baf98f95661f0590008e + checksum: 10/09232931d3d6b390804b2fba5fd80d0331eaef54a0fcd9dcf0c74e7430f5243b8e9597114e8f379644237c790ba98705f062d7bd24517fe7f88a449ebee3ce9a languageName: node linkType: hard -"@devcycle/nodejs-server-sdk@npm:^1.28.1": - version: 1.28.1 - resolution: "@devcycle/nodejs-server-sdk@npm:1.28.1" +"@devcycle/nodejs-server-sdk@npm:^1.39.0": + version: 1.39.0 + resolution: "@devcycle/nodejs-server-sdk@npm:1.39.0" dependencies: - "@devcycle/bucketing-assembly-script": "npm:^1.20.1" - "@devcycle/js-cloud-server-sdk": "npm:^1.11.2" - "@devcycle/types": "npm:^1.12.2" + "@devcycle/bucketing-assembly-script": "npm:^1.29.0" + "@devcycle/js-cloud-server-sdk": "npm:^1.19.0" + "@devcycle/types": "npm:^1.20.0" cross-fetch: "npm:^4.0.0" + eventsource: "npm:^2.0.2" fetch-retry: "npm:^5.0.6" peerDependencies: - "@openfeature/server-sdk": ^1.13.5 - checksum: 10/135555a655d3515b0345e04c041fd4812f7af538ff251b7878e020450eef85d6c312b7ec0b241a0ca5b05ea5a72fb948dfb4d98b85a5d5ad1418a90d4b43bbff + "@openfeature/multi-provider": ^0.1.1 + "@openfeature/server-sdk": ^1.16.2 + peerDependenciesMeta: + "@openfeature/multi-provider": + optional: true + checksum: 10/d1e9a9b2d851f2bd3c4d50a1ed3f42863fa876168876c9caa1d2d4b814afeeb06d27c5834ffac2142e1d8c75bf736976a5261317a137cf5b215725a6f093e54f languageName: node linkType: hard -"@devcycle/types@npm:^1.12.2": - version: 1.12.2 - resolution: "@devcycle/types@npm:1.12.2" +"@devcycle/types@npm:^1.20.0": + version: 1.20.0 + resolution: "@devcycle/types@npm:1.20.0" dependencies: class-transformer: "npm:0.5.1" class-validator: "npm:0.14.1" iso-639-1: "npm:^2.1.13" lodash: "npm:^4.17.21" reflect-metadata: "npm:^0.1.13" - checksum: 10/d7fd998d9a3f30007429f6568de863b608653833710cb538f5f9bf7b7d21820d1327b7081097c83311ff6b6fd931c5c42ba9f9c4bb42172c4b06aca3a04729a2 + checksum: 10/bcfc96b7095c7af6768a6252d406e6f231020e03c18683c81f79ab969cc84b400e6185e4a9cd69a256b0907faaefbd07cdddd0430f7d95404965dc593d34e3a2 languageName: node linkType: hard @@ -87,19 +92,19 @@ __metadata: languageName: node linkType: hard -"@openfeature/core@npm:^1.1.0": - version: 1.1.0 - resolution: "@openfeature/core@npm:1.1.0" - checksum: 10/7b319beeccadcdedde968a039dd3c7bc5158294aa4977754b4612a4eca97433265837ca5d1cf73cd14ce284354bf1bab08ef96390f720f1d5cadaf4737aa3a08 +"@openfeature/core@npm:^1.6.0": + version: 1.6.0 + resolution: "@openfeature/core@npm:1.6.0" + checksum: 10/017460339bb86125166cc379352f1079f6a021ca817e0beac6eb10d4251ab7ca0ae5917ff3d67e388ae8061bf61a2b28058c6921ae43d62dfd490238de7437c4 languageName: node linkType: hard -"@openfeature/server-sdk@npm:^1.13.5": - version: 1.13.5 - resolution: "@openfeature/server-sdk@npm:1.13.5" +"@openfeature/server-sdk@npm:^1.17.0": + version: 1.17.0 + resolution: "@openfeature/server-sdk@npm:1.17.0" peerDependencies: - "@openfeature/core": 1.1.0 - checksum: 10/51d4203c32fb0d4fb1415ac232c8e8149067ce0cbc11c3f6241dbae107a24efb7b642cc5dce408131e3819d12bef6be8723ef4308bdd1ebed075baae5f4bc8b1 + "@openfeature/core": ^1.6.0 + checksum: 10/62b6c08f6a3e4622427ea4ad8aaf5957e9313e91c956c6e5acfae07fc0bd223a6eabbc9594e3eedc907470948225e5f23a07a4c836e7eec9a56ab3ab5cf091b0 languageName: node linkType: hard @@ -611,6 +616,13 @@ __metadata: languageName: node linkType: hard +"eventsource@npm:^2.0.2": + version: 2.0.2 + resolution: "eventsource@npm:2.0.2" + checksum: 10/e1c4c3664cebf9efdd55c90818ef847099f298bf521768d479cf22d8a681e666b3042de85327711ba6a8414ac6a04c70d2aeb4f405bba8239a8c36e06a019374 + languageName: node + linkType: hard + "fetch-retry@npm:^5.0.6": version: 5.0.6 resolution: "fetch-retry@npm:5.0.6" @@ -945,9 +957,9 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:^7.2.5": - version: 7.2.5 - resolution: "protobufjs@npm:7.2.5" +"protobufjs@npm:^7.4.0": + version: 7.4.0 + resolution: "protobufjs@npm:7.4.0" dependencies: "@protobufjs/aspromise": "npm:^1.1.2" "@protobufjs/base64": "npm:^1.1.2" @@ -961,7 +973,7 @@ __metadata: "@protobufjs/utf8": "npm:^1.1.0" "@types/node": "npm:>=13.7.0" long: "npm:^5.0.0" - checksum: 10/6c5aa62b61dff843f585f3acd9cb7a82d566de2dbf167a300b39afee91b04298c4b4aec61354b7c00308b40596f5f3f4b07d6246cfb4ee0abeaea25101033315 + checksum: 10/408423506610f70858d7593632f4a6aa4f05796c90fd632be9b9252457c795acc71aa6d3b54bb7f48a890141728fee4ca3906723ccea6c202ad71f21b3879b8b languageName: node linkType: hard @@ -997,9 +1009,9 @@ __metadata: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@devcycle/nodejs-server-sdk": "npm:^1.28.1" - "@openfeature/core": "npm:^1.1.0" - "@openfeature/server-sdk": "npm:^1.13.5" + "@devcycle/nodejs-server-sdk": "npm:^1.39.0" + "@openfeature/core": "npm:^1.6.0" + "@openfeature/server-sdk": "npm:^1.17.0" "@types/koa": "npm:^2.13.5" "@types/koa-bodyparser": "npm:^4.3.10" "@types/koa-router": "npm:^7.4.4" diff --git a/yarn.lock b/yarn.lock index 26a3edb9..42af68c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -533,7 +533,7 @@ __metadata: version: 0.0.0-use.local resolution: "@devcycle/test-harness@workspace:." dependencies: - "@devcycle/types": "npm:^1.14.0" + "@devcycle/types": "npm:^1.20.0" "@eresearchqut/jest-testcontainers": "npm:^3.2.0" "@koa/router": "npm:^12.0.0" "@types/jest": "npm:^29.2.3" @@ -564,16 +564,16 @@ __metadata: languageName: unknown linkType: soft -"@devcycle/types@npm:^1.14.0": - version: 1.14.0 - resolution: "@devcycle/types@npm:1.14.0" +"@devcycle/types@npm:^1.20.0": + version: 1.20.0 + resolution: "@devcycle/types@npm:1.20.0" dependencies: class-transformer: "npm:0.5.1" class-validator: "npm:0.14.1" iso-639-1: "npm:^2.1.13" lodash: "npm:^4.17.21" reflect-metadata: "npm:^0.1.13" - checksum: 10/f040ca4262c53214f7236fb5c04612fd29ec8f41b55e3e2e9ae97748b64827bf4a1c9be03593ce98fbb4838a6eb954e9b40b77900776d1a208aede518543d528 + checksum: 10/bcfc96b7095c7af6768a6252d406e6f231020e03c18683c81f79ab969cc84b400e6185e4a9cd69a256b0907faaefbd07cdddd0430f7d95404965dc593d34e3a2 languageName: node linkType: hard From ded740cea335ccdb20b86863e675b9d18aad90ba Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 20 Jan 2025 13:34:27 -0500 Subject: [PATCH 02/15] fix: @devcycle/nodejs-server-sdk path --- proxies/nodejs/package.json | 2 +- proxies/nodejs/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/proxies/nodejs/package.json b/proxies/nodejs/package.json index 1d49b66d..4a567050 100644 --- a/proxies/nodejs/package.json +++ b/proxies/nodejs/package.json @@ -1,7 +1,7 @@ { "dependencies": { "@devcycle/js-client-sdk": "^1.33.0", - "@devcycle/nodejs-server-sdk": "../../../js-sdks/dist/sdk/nodejs", + "@devcycle/nodejs-server-sdk": "^1.39.0", "@types/koa": "^2.13.5", "@types/koa-bodyparser": "^4.3.10", "@types/koa-router": "^7.4.4", diff --git a/proxies/nodejs/yarn.lock b/proxies/nodejs/yarn.lock index 87c8a426..daf732a8 100644 --- a/proxies/nodejs/yarn.lock +++ b/proxies/nodejs/yarn.lock @@ -48,9 +48,9 @@ __metadata: languageName: node linkType: hard -"@devcycle/nodejs-server-sdk@file:../../../js-sdks/dist/sdk/nodejs::locator=root-workspace-0b6124%40workspace%3A.": +"@devcycle/nodejs-server-sdk@npm:^1.39.0": version: 1.39.0 - resolution: "@devcycle/nodejs-server-sdk@file:../../../js-sdks/dist/sdk/nodejs#../../../js-sdks/dist/sdk/nodejs::hash=bafbe1&locator=root-workspace-0b6124%40workspace%3A." + resolution: "@devcycle/nodejs-server-sdk@npm:1.39.0" dependencies: "@devcycle/bucketing-assembly-script": "npm:^1.29.0" "@devcycle/js-cloud-server-sdk": "npm:^1.19.0" @@ -64,7 +64,7 @@ __metadata: peerDependenciesMeta: "@openfeature/multi-provider": optional: true - checksum: 10/32e9ab300202585c03c48cfdb351f36deb0626ff47a48f5591acb58def80090d6c0555b4be9d11afd4d8ac316e1fc7d93ee222c9de4fb827b8656d229c3b708c + checksum: 10/d1e9a9b2d851f2bd3c4d50a1ed3f42863fa876168876c9caa1d2d4b814afeeb06d27c5834ffac2142e1d8c75bf736976a5261317a137cf5b215725a6f093e54f languageName: node linkType: hard @@ -1007,7 +1007,7 @@ __metadata: resolution: "root-workspace-0b6124@workspace:." dependencies: "@devcycle/js-client-sdk": "npm:^1.33.0" - "@devcycle/nodejs-server-sdk": ../../../js-sdks/dist/sdk/nodejs + "@devcycle/nodejs-server-sdk": "npm:^1.39.0" "@types/koa": "npm:^2.13.5" "@types/koa-bodyparser": "npm:^4.3.10" "@types/koa-router": "npm:^7.4.4" From c1f82d19467e12a15308649d321e6b9f4ef24f1d Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 11:38:45 -0500 Subject: [PATCH 03/15] chore: cleanup jest-global.ts, update test-containers --- jest-global.ts | 33 +- package.json | 2 +- proxies/nodejs/handlers/client.ts | 2 - proxies/nodejs/package.json | 4 +- proxies/nodejs/yarn.lock | 56 +- proxies/openfeature-nodejs/handlers/client.ts | 2 - proxies/openfeature-nodejs/package.json | 2 +- proxies/openfeature-nodejs/yarn.lock | 44 +- yarn.lock | 571 +++++++++++------- 9 files changed, 419 insertions(+), 297 deletions(-) diff --git a/jest-global.ts b/jest-global.ts index 76e87244..ecf1a5a9 100644 --- a/jest-global.ts +++ b/jest-global.ts @@ -1,25 +1,5 @@ import { getSDKs } from './harness/types' import testContainersSetup from '@eresearchqut/jest-testcontainers/dist/setup' -import { exec } from 'child_process' -import { promisify } from 'util' - -const execAsync = promisify(exec) - -async function checkDockerCommand() { - try { - await execAsync('docker compose version') - return 'docker compose' - } catch { - try { - await execAsync('docker-compose version') - return 'docker-compose' - } catch { - throw new Error( - 'Neither docker compose nor docker-compose commands are available', - ) - } - } -} async function setup(opts) { const sdks = getSDKs() @@ -32,17 +12,8 @@ async function setup(opts) { .join(',') if (process.env.LOCAL_MODE === '1') { - // In LOCAL_MODE, we don't need to set up any containers - return Promise.resolve() - } - - try { - // Check which docker compose command is available and set it in the environment - process.env.DOCKER_COMPOSE_COMMAND = await checkDockerCommand() - console.log(`Using ${process.env.DOCKER_COMPOSE_COMMAND} command`) - } catch (error) { - console.error('Docker compose command check failed:', error.message) - throw error + // Effectively disable all docker containers by setting a profile that none of them use + process.env.COMPOSE_PROFILES = 'local' } console.log(`Set COMPOSE_PROFILES to ${process.env.COMPOSE_PROFILES}`) diff --git a/package.json b/package.json index 91bc92ec..bfa64fbf 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "license": "MIT", "devDependencies": { "@devcycle/types": "^1.20.0", - "@eresearchqut/jest-testcontainers": "^3.2.0", + "@eresearchqut/jest-testcontainers": "^3.7.1", "@koa/router": "^12.0.0", "@types/jest": "^29.2.3", "@typescript-eslint/eslint-plugin": "^5.44.0", diff --git a/proxies/nodejs/handlers/client.ts b/proxies/nodejs/handlers/client.ts index 721b9ee1..e5a46ca9 100644 --- a/proxies/nodejs/handlers/client.ts +++ b/proxies/nodejs/handlers/client.ts @@ -37,8 +37,6 @@ export const handleClient = async (ctx: Koa.ParameterizedContext) => { if (!enableCloudBucketing) { client = initializeDevCycle(sdkKey, { ...options, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore disableRealTimeUpdates needs to get released in the updated types release. disableRealTimeUpdates: true, }) if (waitForInitialization) { diff --git a/proxies/nodejs/package.json b/proxies/nodejs/package.json index 4a567050..c7da6f8b 100644 --- a/proxies/nodejs/package.json +++ b/proxies/nodejs/package.json @@ -1,7 +1,7 @@ { "dependencies": { - "@devcycle/js-client-sdk": "^1.33.0", - "@devcycle/nodejs-server-sdk": "^1.39.0", + "@devcycle/js-client-sdk": "^1.34.0", + "@devcycle/nodejs-server-sdk": "^1.40.0", "@types/koa": "^2.13.5", "@types/koa-bodyparser": "^4.3.10", "@types/koa-router": "^7.4.4", diff --git a/proxies/nodejs/yarn.lock b/proxies/nodejs/yarn.lock index daf732a8..31c4abb4 100644 --- a/proxies/nodejs/yarn.lock +++ b/proxies/nodejs/yarn.lock @@ -14,70 +14,70 @@ __metadata: languageName: node linkType: hard -"@devcycle/bucketing-assembly-script@npm:^1.29.0": - version: 1.29.0 - resolution: "@devcycle/bucketing-assembly-script@npm:1.29.0" +"@devcycle/bucketing-assembly-script@npm:^1.30.0": + version: 1.30.0 + resolution: "@devcycle/bucketing-assembly-script@npm:1.30.0" dependencies: protobufjs: "npm:^7.4.0" - checksum: 10/a923c5d81d65c3edb9e52980e615cce9cd1860c8b9334357c2fb68e5bce5cce991a572bcd18acf3cfcbf9ca102af8aee4cfdcc1b7d6520c34c35127bddbd0f15 + checksum: 10/1db757d0e51f1492c63f15c7fd273e40865b8255ca4b7a794fb85c9f9c68bc2b35f27fe93a5a9aaf14ab4fedc58935d400233dcebb91b7dd71d9e417a9ffda44 languageName: node linkType: hard -"@devcycle/js-client-sdk@npm:^1.33.0": - version: 1.33.0 - resolution: "@devcycle/js-client-sdk@npm:1.33.0" +"@devcycle/js-client-sdk@npm:^1.34.0": + version: 1.34.0 + resolution: "@devcycle/js-client-sdk@npm:1.34.0" dependencies: - "@devcycle/types": "npm:^1.20.0" + "@devcycle/types": "npm:^1.21.0" fetch-retry: "npm:^5.0.6" lodash: "npm:^4.17.21" ua-parser-js: "npm:^1.0.36" uuid: "npm:^8.3.2" - checksum: 10/b0039b99afd50dd5269432c222e7a30995d48a4d99d7040a554893eeeaaed29e3d524957aba49bde1003eb259f39141ab9cdf37690643c7b897112c8492c424e + checksum: 10/ec7bada682f2b26cb43e65c2b62f140afd2a8d51977de16f1a4c01f9fe2832a11338d00a3307ee331d50d1c18c55ade15b0613eec245ff6c985df15423eef24e languageName: node linkType: hard -"@devcycle/js-cloud-server-sdk@npm:^1.19.0": - version: 1.19.0 - resolution: "@devcycle/js-cloud-server-sdk@npm:1.19.0" +"@devcycle/js-cloud-server-sdk@npm:^1.20.0": + version: 1.20.0 + resolution: "@devcycle/js-cloud-server-sdk@npm:1.20.0" dependencies: - "@devcycle/types": "npm:^1.20.0" + "@devcycle/types": "npm:^1.21.0" cross-fetch: "npm:^4.0.0" fetch-retry: "npm:^5.0.6" lodash: "npm:^4.17.21" - checksum: 10/09232931d3d6b390804b2fba5fd80d0331eaef54a0fcd9dcf0c74e7430f5243b8e9597114e8f379644237c790ba98705f062d7bd24517fe7f88a449ebee3ce9a + checksum: 10/1885fccd8640af130a9c54d4a3f9c1c3f58eee83c1f47e45de54ab23ae1b87a229d17160d62bb7e36f109f75e83c847fb65ab369ab1556fe4b53e83e72fb4575 languageName: node linkType: hard -"@devcycle/nodejs-server-sdk@npm:^1.39.0": - version: 1.39.0 - resolution: "@devcycle/nodejs-server-sdk@npm:1.39.0" +"@devcycle/nodejs-server-sdk@npm:^1.40.0": + version: 1.40.0 + resolution: "@devcycle/nodejs-server-sdk@npm:1.40.0" dependencies: - "@devcycle/bucketing-assembly-script": "npm:^1.29.0" - "@devcycle/js-cloud-server-sdk": "npm:^1.19.0" - "@devcycle/types": "npm:^1.20.0" + "@devcycle/bucketing-assembly-script": "npm:^1.30.0" + "@devcycle/js-cloud-server-sdk": "npm:^1.20.0" + "@devcycle/types": "npm:^1.21.0" cross-fetch: "npm:^4.0.0" eventsource: "npm:^2.0.2" fetch-retry: "npm:^5.0.6" peerDependencies: "@openfeature/multi-provider": ^0.1.1 - "@openfeature/server-sdk": ^1.16.2 + "@openfeature/server-sdk": ^1.17.0 peerDependenciesMeta: "@openfeature/multi-provider": optional: true - checksum: 10/d1e9a9b2d851f2bd3c4d50a1ed3f42863fa876168876c9caa1d2d4b814afeeb06d27c5834ffac2142e1d8c75bf736976a5261317a137cf5b215725a6f093e54f + checksum: 10/68ad2ab32ab5866e7107905895602f6ea847109daf6f9bb03ff6a9e54e6daf40756996c6c9cde4997c68c4da6adac6f529aecd73eaf6f5633f1dcc72251ba07e languageName: node linkType: hard -"@devcycle/types@npm:^1.20.0": - version: 1.20.0 - resolution: "@devcycle/types@npm:1.20.0" +"@devcycle/types@npm:^1.21.0": + version: 1.21.0 + resolution: "@devcycle/types@npm:1.21.0" dependencies: class-transformer: "npm:0.5.1" class-validator: "npm:0.14.1" iso-639-1: "npm:^2.1.13" lodash: "npm:^4.17.21" reflect-metadata: "npm:^0.1.13" - checksum: 10/bcfc96b7095c7af6768a6252d406e6f231020e03c18683c81f79ab969cc84b400e6185e4a9cd69a256b0907faaefbd07cdddd0430f7d95404965dc593d34e3a2 + checksum: 10/de8bfebbbfded77e9bfd5f2924706abfa1eee9bc4f906b62914875abc2d2dee831838897ff0fedad883c1cadedd5b331511dff7ebae0e3671dd8ff037e256667 languageName: node linkType: hard @@ -1006,8 +1006,8 @@ __metadata: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@devcycle/js-client-sdk": "npm:^1.33.0" - "@devcycle/nodejs-server-sdk": "npm:^1.39.0" + "@devcycle/js-client-sdk": "npm:^1.34.0" + "@devcycle/nodejs-server-sdk": "npm:^1.40.0" "@types/koa": "npm:^2.13.5" "@types/koa-bodyparser": "npm:^4.3.10" "@types/koa-router": "npm:^7.4.4" diff --git a/proxies/openfeature-nodejs/handlers/client.ts b/proxies/openfeature-nodejs/handlers/client.ts index e71e43e2..1c196d90 100644 --- a/proxies/openfeature-nodejs/handlers/client.ts +++ b/proxies/openfeature-nodejs/handlers/client.ts @@ -26,8 +26,6 @@ export const handleClient = async (ctx: Koa.ParameterizedContext) => { try { let asyncError - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore disableRealTimeUpdates needs to get released in the updated types release. const dvcClient = initializeDevCycle(sdkKey, { ...options, enableCloudBucketing, diff --git a/proxies/openfeature-nodejs/package.json b/proxies/openfeature-nodejs/package.json index 5ead3e70..fe10dca1 100644 --- a/proxies/openfeature-nodejs/package.json +++ b/proxies/openfeature-nodejs/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@devcycle/nodejs-server-sdk": "^1.39.0", + "@devcycle/nodejs-server-sdk": "^1.40.0", "@openfeature/core": "^1.6.0", "@openfeature/server-sdk": "^1.17.0", "@types/koa": "^2.13.5", diff --git a/proxies/openfeature-nodejs/yarn.lock b/proxies/openfeature-nodejs/yarn.lock index d309ba44..937a65af 100644 --- a/proxies/openfeature-nodejs/yarn.lock +++ b/proxies/openfeature-nodejs/yarn.lock @@ -14,57 +14,57 @@ __metadata: languageName: node linkType: hard -"@devcycle/bucketing-assembly-script@npm:^1.29.0": - version: 1.29.0 - resolution: "@devcycle/bucketing-assembly-script@npm:1.29.0" +"@devcycle/bucketing-assembly-script@npm:^1.30.0": + version: 1.30.0 + resolution: "@devcycle/bucketing-assembly-script@npm:1.30.0" dependencies: protobufjs: "npm:^7.4.0" - checksum: 10/a923c5d81d65c3edb9e52980e615cce9cd1860c8b9334357c2fb68e5bce5cce991a572bcd18acf3cfcbf9ca102af8aee4cfdcc1b7d6520c34c35127bddbd0f15 + checksum: 10/1db757d0e51f1492c63f15c7fd273e40865b8255ca4b7a794fb85c9f9c68bc2b35f27fe93a5a9aaf14ab4fedc58935d400233dcebb91b7dd71d9e417a9ffda44 languageName: node linkType: hard -"@devcycle/js-cloud-server-sdk@npm:^1.19.0": - version: 1.19.0 - resolution: "@devcycle/js-cloud-server-sdk@npm:1.19.0" +"@devcycle/js-cloud-server-sdk@npm:^1.20.0": + version: 1.20.0 + resolution: "@devcycle/js-cloud-server-sdk@npm:1.20.0" dependencies: - "@devcycle/types": "npm:^1.20.0" + "@devcycle/types": "npm:^1.21.0" cross-fetch: "npm:^4.0.0" fetch-retry: "npm:^5.0.6" lodash: "npm:^4.17.21" - checksum: 10/09232931d3d6b390804b2fba5fd80d0331eaef54a0fcd9dcf0c74e7430f5243b8e9597114e8f379644237c790ba98705f062d7bd24517fe7f88a449ebee3ce9a + checksum: 10/1885fccd8640af130a9c54d4a3f9c1c3f58eee83c1f47e45de54ab23ae1b87a229d17160d62bb7e36f109f75e83c847fb65ab369ab1556fe4b53e83e72fb4575 languageName: node linkType: hard -"@devcycle/nodejs-server-sdk@npm:^1.39.0": - version: 1.39.0 - resolution: "@devcycle/nodejs-server-sdk@npm:1.39.0" +"@devcycle/nodejs-server-sdk@npm:^1.40.0": + version: 1.40.0 + resolution: "@devcycle/nodejs-server-sdk@npm:1.40.0" dependencies: - "@devcycle/bucketing-assembly-script": "npm:^1.29.0" - "@devcycle/js-cloud-server-sdk": "npm:^1.19.0" - "@devcycle/types": "npm:^1.20.0" + "@devcycle/bucketing-assembly-script": "npm:^1.30.0" + "@devcycle/js-cloud-server-sdk": "npm:^1.20.0" + "@devcycle/types": "npm:^1.21.0" cross-fetch: "npm:^4.0.0" eventsource: "npm:^2.0.2" fetch-retry: "npm:^5.0.6" peerDependencies: "@openfeature/multi-provider": ^0.1.1 - "@openfeature/server-sdk": ^1.16.2 + "@openfeature/server-sdk": ^1.17.0 peerDependenciesMeta: "@openfeature/multi-provider": optional: true - checksum: 10/d1e9a9b2d851f2bd3c4d50a1ed3f42863fa876168876c9caa1d2d4b814afeeb06d27c5834ffac2142e1d8c75bf736976a5261317a137cf5b215725a6f093e54f + checksum: 10/68ad2ab32ab5866e7107905895602f6ea847109daf6f9bb03ff6a9e54e6daf40756996c6c9cde4997c68c4da6adac6f529aecd73eaf6f5633f1dcc72251ba07e languageName: node linkType: hard -"@devcycle/types@npm:^1.20.0": - version: 1.20.0 - resolution: "@devcycle/types@npm:1.20.0" +"@devcycle/types@npm:^1.21.0": + version: 1.21.0 + resolution: "@devcycle/types@npm:1.21.0" dependencies: class-transformer: "npm:0.5.1" class-validator: "npm:0.14.1" iso-639-1: "npm:^2.1.13" lodash: "npm:^4.17.21" reflect-metadata: "npm:^0.1.13" - checksum: 10/bcfc96b7095c7af6768a6252d406e6f231020e03c18683c81f79ab969cc84b400e6185e4a9cd69a256b0907faaefbd07cdddd0430f7d95404965dc593d34e3a2 + checksum: 10/de8bfebbbfded77e9bfd5f2924706abfa1eee9bc4f906b62914875abc2d2dee831838897ff0fedad883c1cadedd5b331511dff7ebae0e3671dd8ff037e256667 languageName: node linkType: hard @@ -1009,7 +1009,7 @@ __metadata: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@devcycle/nodejs-server-sdk": "npm:^1.39.0" + "@devcycle/nodejs-server-sdk": "npm:^1.40.0" "@openfeature/core": "npm:^1.6.0" "@openfeature/server-sdk": "npm:^1.17.0" "@types/koa": "npm:^2.13.5" diff --git a/yarn.lock b/yarn.lock index 42af68c1..1f48b5e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -534,7 +534,7 @@ __metadata: resolution: "@devcycle/test-harness@workspace:." dependencies: "@devcycle/types": "npm:^1.20.0" - "@eresearchqut/jest-testcontainers": "npm:^3.2.0" + "@eresearchqut/jest-testcontainers": "npm:^3.7.1" "@koa/router": "npm:^12.0.0" "@types/jest": "npm:^29.2.3" "@typescript-eslint/eslint-plugin": "npm:^5.44.0" @@ -577,15 +577,16 @@ __metadata: languageName: node linkType: hard -"@eresearchqut/jest-testcontainers@npm:^3.2.0": - version: 3.2.0 - resolution: "@eresearchqut/jest-testcontainers@npm:3.2.0" +"@eresearchqut/jest-testcontainers@npm:^3.7.1": + version: 3.7.1 + resolution: "@eresearchqut/jest-testcontainers@npm:3.7.1" dependencies: cwd: "npm:^0.10.0" - testcontainers: "npm:9.9.1" + debug: "npm:^4.3.7" + testcontainers: "npm:10.14.0" peerDependencies: jest-environment-node: ">=29" - checksum: 10/c57a82625858ca7f584cba8b57d4186e3bd10ab121d2bcb8695c08db279223351f61bb73618b0e899547872361e4f1f81c92b9498f6a12f2b8bbc01ffb1e688a + checksum: 10/67cc2d2ae2883f0abbd780aa637f5412af083c37babfca03850751e6e4076f562a1b29fe74bc691577c3105773a037cda22d01d00442684093a980bd6782050c languageName: node linkType: hard @@ -648,6 +649,13 @@ __metadata: languageName: node linkType: hard +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 10/2bb8a7eca8289ed14c9eb15239bc1019797454624e769b39a0b90ed204d032403adc0f8ed0d2aef8a18c772205fa7808cf5a1b91f21c7bfc7b6032150b1062c5 + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -1287,15 +1295,6 @@ __metadata: languageName: node linkType: hard -"@types/archiver@npm:^5.3.2": - version: 5.3.4 - resolution: "@types/archiver@npm:5.3.4" - dependencies: - "@types/readdir-glob": "npm:*" - checksum: 10/535f85063743d3a5641937957f36a777a0363b501c90ae2b0035e4f08b970a8ea2126c28a576419289999439a81161ab2d6cb30e9ab5705b16f97cab233d4735 - languageName: node - linkType: hard - "@types/babel__core@npm:^7.1.14": version: 7.1.20 resolution: "@types/babel__core@npm:7.1.20" @@ -1347,13 +1346,14 @@ __metadata: languageName: node linkType: hard -"@types/dockerode@npm:^3.3.19": - version: 3.3.23 - resolution: "@types/dockerode@npm:3.3.23" +"@types/dockerode@npm:^3.3.29": + version: 3.3.34 + resolution: "@types/dockerode@npm:3.3.34" dependencies: "@types/docker-modem": "npm:*" "@types/node": "npm:*" - checksum: 10/385a3d62d225a4553349293d1ec6565c33ba147214f9fddcef59a59da0998a68f0e226379372dddcb7b036762edda901a8001d9bc318916a3d519566b62f78b1 + "@types/ssh2": "npm:*" + checksum: 10/92b40d10273bd30056dffe6acc1088dd7e93be1d61de8f3928bd49fe0ef7e5e380c363ca5bc0ee3f553e6de39e7eafe5124d73cf9485cbe5a60ab981a8cc8cce languageName: node linkType: hard @@ -1431,15 +1431,6 @@ __metadata: languageName: node linkType: hard -"@types/readdir-glob@npm:*": - version: 1.1.4 - resolution: "@types/readdir-glob@npm:1.1.4" - dependencies: - "@types/node": "npm:*" - checksum: 10/f182086b99f2df0ca99986a4d1a57fd984ad3bd9b03129f743dbc4b675e3e51b15be23b2763c489de7763f16396250b0cab0bc64e34b8e06f631584eabb30f6f - languageName: node - linkType: hard - "@types/semver@npm:^7.3.12": version: 7.3.13 resolution: "@types/semver@npm:7.3.13" @@ -1703,6 +1694,15 @@ __metadata: languageName: node linkType: hard +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: "npm:^5.0.0" + checksum: 10/ed84af329f1828327798229578b4fe03a4dd2596ba304083ebd2252666bdc1d7647d66d0b18704477e1f8aa315f055944aa6e859afebd341f12d0a53c37b4b40 + languageName: node + linkType: hard + "accepts@npm:^1.3.5": version: 1.3.8 resolution: "accepts@npm:1.3.8" @@ -1893,54 +1893,33 @@ __metadata: languageName: node linkType: hard -"archiver-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "archiver-utils@npm:2.1.0" - dependencies: - glob: "npm:^7.1.4" - graceful-fs: "npm:^4.2.0" - lazystream: "npm:^1.0.0" - lodash.defaults: "npm:^4.2.0" - lodash.difference: "npm:^4.5.0" - lodash.flatten: "npm:^4.4.0" - lodash.isplainobject: "npm:^4.0.6" - lodash.union: "npm:^4.6.0" - normalize-path: "npm:^3.0.0" - readable-stream: "npm:^2.0.0" - checksum: 10/4df493c0e6a3a544119b08b350308923500e2c6efee6a283cba4c3202293ce3acb70897e54e24f735e3a38ff43e5a65f66e2e5225fdfc955bf2335491377be2e - languageName: node - linkType: hard - -"archiver-utils@npm:^3.0.4": - version: 3.0.4 - resolution: "archiver-utils@npm:3.0.4" +"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2": + version: 5.0.2 + resolution: "archiver-utils@npm:5.0.2" dependencies: - glob: "npm:^7.2.3" + glob: "npm:^10.0.0" graceful-fs: "npm:^4.2.0" + is-stream: "npm:^2.0.1" lazystream: "npm:^1.0.0" - lodash.defaults: "npm:^4.2.0" - lodash.difference: "npm:^4.5.0" - lodash.flatten: "npm:^4.4.0" - lodash.isplainobject: "npm:^4.0.6" - lodash.union: "npm:^4.6.0" + lodash: "npm:^4.17.15" normalize-path: "npm:^3.0.0" - readable-stream: "npm:^3.6.0" - checksum: 10/a838c325a1e1d6798c07e6a3af08f480fdce57cba2964bff8761126715aa1b71e9a119442eac19b7ec6313f5298e54a180dc6612ae548825fbc9be6836e50487 + readable-stream: "npm:^4.0.0" + checksum: 10/9dde4aa3f0cb1bdfe0b3d4c969f82e6cca9ae76338b7fee6f0071a14a2a38c0cdd1c41ecd3e362466585aa6cc5d07e9e435abea8c94fd9c7ace35f184abef9e4 languageName: node linkType: hard -"archiver@npm:^5.3.1": - version: 5.3.2 - resolution: "archiver@npm:5.3.2" +"archiver@npm:^7.0.1": + version: 7.0.1 + resolution: "archiver@npm:7.0.1" dependencies: - archiver-utils: "npm:^2.1.0" + archiver-utils: "npm:^5.0.2" async: "npm:^3.2.4" - buffer-crc32: "npm:^0.2.1" - readable-stream: "npm:^3.6.0" + buffer-crc32: "npm:^1.0.0" + readable-stream: "npm:^4.0.0" readdir-glob: "npm:^1.1.2" - tar-stream: "npm:^2.2.0" - zip-stream: "npm:^4.1.0" - checksum: 10/9384b3b20d330f95140c2b7a9b51140d14e9bc7b133be6cf573067ed8fc67a6e9618cfbfe60b1ba78b8034857001fd02c8900f2fba4864514670a2274d36dc9e + tar-stream: "npm:^3.0.0" + zip-stream: "npm:^6.0.1" + checksum: 10/81c6102db99d7ffd5cb2aed02a678f551c6603991a059ca66ef59249942b835a651a3d3b5240af4f8bec4e61e13790357c9d1ad4a99982bd2cc4149575c31d67 languageName: node linkType: hard @@ -2000,10 +1979,10 @@ __metadata: languageName: node linkType: hard -"async-lock@npm:^1.4.0": - version: 1.4.0 - resolution: "async-lock@npm:1.4.0" - checksum: 10/c57d5e741f19bf62a7e77a056b2e3e7d7887972955c6b4fadad7812e0da548b917bc3e0b7ee1cc325e916243f383cbc3c3c72556995dfbb6b5046f9f13aed3b4 +"async-lock@npm:^1.4.1": + version: 1.4.1 + resolution: "async-lock@npm:1.4.1" + checksum: 10/80d55ac95f920e880a865968b799963014f6d987dd790dd08173fae6e1af509d8cd0ab45a25daaca82e3ef8e7c939f5d128cd1facfcc5c647da8ac2409e20ef9 languageName: node linkType: hard @@ -2032,6 +2011,13 @@ __metadata: languageName: node linkType: hard +"b4a@npm:^1.6.4": + version: 1.6.7 + resolution: "b4a@npm:1.6.7" + checksum: 10/1ac056e3bce378d4d3e570e57319360a9d3125ab6916a1921b95bea33d9ee646698ebc75467561fd6fcc80ff697612124c89bb9b95e80db94c6dc23fcb977705 + languageName: node + linkType: hard + "babel-jest@npm:^29.3.1": version: 29.3.1 resolution: "babel-jest@npm:29.3.1" @@ -2115,6 +2101,57 @@ __metadata: languageName: node linkType: hard +"bare-events@npm:^2.0.0, bare-events@npm:^2.2.0": + version: 2.5.4 + resolution: "bare-events@npm:2.5.4" + checksum: 10/135ef380b13f554ca2c6905bdbcfac8edae08fce85b7f953fa01f09a9f5b0da6a25e414111659bc9a6118216f0dd1f732016acd11ce91517f2afb26ebeb4b721 + languageName: node + linkType: hard + +"bare-fs@npm:^4.0.1": + version: 4.0.1 + resolution: "bare-fs@npm:4.0.1" + dependencies: + bare-events: "npm:^2.0.0" + bare-path: "npm:^3.0.0" + bare-stream: "npm:^2.0.0" + checksum: 10/70951cf7d7522f0b6780bdfaf7969226db85370fa107b1eee71c58272573463388b40203595a8826cd55ca34e6359ca4b1ee91fd5d0b8ea64ab0d1f9979de262 + languageName: node + linkType: hard + +"bare-os@npm:^3.0.1": + version: 3.4.0 + resolution: "bare-os@npm:3.4.0" + checksum: 10/bc74ee2ca764835fbf0bf3fd864e6f9330724e44be3a1a56060e8820a5f259a392011b5a169a52dec459fce4b18b22bc15380f8bc1640f316b0cc8faaa0405d4 + languageName: node + linkType: hard + +"bare-path@npm:^3.0.0": + version: 3.0.0 + resolution: "bare-path@npm:3.0.0" + dependencies: + bare-os: "npm:^3.0.1" + checksum: 10/712d90e9cd8c3263cc11b0e0d386d1531a452706d7840c081ee586b34b00d72544e65df7a40013d47c1b177277495225deeede65cb2984db88a979cb65aaa2ff + languageName: node + linkType: hard + +"bare-stream@npm:^2.0.0": + version: 2.6.4 + resolution: "bare-stream@npm:2.6.4" + dependencies: + streamx: "npm:^2.21.0" + peerDependencies: + bare-buffer: "*" + bare-events: "*" + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + checksum: 10/1666cb71d43eae0ca3783222f7be018a72f4323b676a952f2f657bcdab16cb04ea29dd5f25a80fb4b16d4a0a01eff117b6ea502055a9f5f1a00df85fec7f55be + languageName: node + linkType: hard + "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -2209,10 +2246,10 @@ __metadata: languageName: node linkType: hard -"buffer-crc32@npm:^0.2.1, buffer-crc32@npm:^0.2.13": - version: 0.2.13 - resolution: "buffer-crc32@npm:0.2.13" - checksum: 10/06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c +"buffer-crc32@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-crc32@npm:1.0.0" + checksum: 10/ef3b7c07622435085c04300c9a51e850ec34a27b2445f758eef69b859c7827848c2282f3840ca6c1eef3829145a1580ce540cab03ccf4433827a2b95d3b09ca7 languageName: node linkType: hard @@ -2233,6 +2270,16 @@ __metadata: languageName: node linkType: hard +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10/b6bc68237ebf29bdacae48ce60e5e28fc53ae886301f2ad9496618efac49427ed79096750033e7eab1897a4f26ae374ace49106a5758f38fb70c78c9fda2c3b1 + languageName: node + linkType: hard + "buildcheck@npm:0.0.3": version: 0.0.3 resolution: "buildcheck@npm:0.0.3" @@ -2582,15 +2629,16 @@ __metadata: languageName: node linkType: hard -"compress-commons@npm:^4.1.2": - version: 4.1.2 - resolution: "compress-commons@npm:4.1.2" +"compress-commons@npm:^6.0.2": + version: 6.0.2 + resolution: "compress-commons@npm:6.0.2" dependencies: - buffer-crc32: "npm:^0.2.13" - crc32-stream: "npm:^4.0.2" + crc-32: "npm:^1.2.0" + crc32-stream: "npm:^6.0.0" + is-stream: "npm:^2.0.1" normalize-path: "npm:^3.0.0" - readable-stream: "npm:^3.6.0" - checksum: 10/76fa281412e4a95f89893dc1e3399e797de20253365cf53102ac4738fa004d3540abb12c26e3a54156f8fb4e4392ef9a9c5eecbe752f3a7d30e28c808b671e1b + readable-stream: "npm:^4.0.0" + checksum: 10/78e3ba10aeef919a1c5bbac21e120f3e1558a31b2defebbfa1635274fc7f7e8a3a0ee748a06249589acd0b33a0d58144b8238ff77afc3220f8d403a96fcc13aa languageName: node linkType: hard @@ -2700,13 +2748,13 @@ __metadata: languageName: node linkType: hard -"crc32-stream@npm:^4.0.2": - version: 4.0.3 - resolution: "crc32-stream@npm:4.0.3" +"crc32-stream@npm:^6.0.0": + version: 6.0.0 + resolution: "crc32-stream@npm:6.0.0" dependencies: crc-32: "npm:^1.2.0" - readable-stream: "npm:^3.4.0" - checksum: 10/d44d0ec6f04d8a1bed899ac3e4fbb82111ed567ea6d506be39147362af45c747887fce1032f4beca1646b4824e5a9614cd3332bfa94bbc5577ca5445e7f75ddd + readable-stream: "npm:^4.0.0" + checksum: 10/e6edc2f81bc387daef6d18b2ac18c2ffcb01b554d3b5c7d8d29b177505aafffba574658fdd23922767e8dab1183d1962026c98c17e17fb272794c33293ef607c languageName: node linkType: hard @@ -2750,6 +2798,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.3.5, debug@npm:^4.3.7": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 + languageName: node + linkType: hard + "debug@npm:~4.3.6": version: 4.3.7 resolution: "debug@npm:4.3.7" @@ -2869,12 +2929,12 @@ __metadata: languageName: node linkType: hard -"docker-compose@npm:^0.24.1": - version: 0.24.3 - resolution: "docker-compose@npm:0.24.3" +"docker-compose@npm:^0.24.8": + version: 0.24.8 + resolution: "docker-compose@npm:0.24.8" dependencies: yaml: "npm:^2.2.2" - checksum: 10/6305a852c48748940d10972f89194ae7abbc601664f4840524a2d724865c92479a7e944f4def64072973a25c0f4f0fb57d603383a7d59cdf06038d6333bcf8bf + checksum: 10/2b8526f9797a55c819ff2d7dcea57085b012b3a3d77bc2e1a6b45c3fc9e82196312f5298cbe8299966462454a5ac8f68814bb407736b4385e0d226a2a39e877a languageName: node linkType: hard @@ -3326,6 +3386,13 @@ __metadata: languageName: node linkType: hard +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 10/49ff46c3a7facbad3decb31f597063e761785d7fdb3920d4989d7b08c97a61c2f51183e2f3a03130c9088df88d4b489b1b79ab632219901f184f85158508f4c8 + languageName: node + linkType: hard + "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" @@ -3333,6 +3400,13 @@ __metadata: languageName: node linkType: hard +"events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: 10/a3d47e285e28d324d7180f1e493961a2bbb4cad6412090e4dec114f4db1f5b560c7696ee8e758f55e23913ede856e3689cd3aa9ae13c56b5d8314cd3b3ddd1be + languageName: node + linkType: hard + "execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -3410,6 +3484,13 @@ __metadata: languageName: node linkType: hard +"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": + version: 1.3.2 + resolution: "fast-fifo@npm:1.3.2" + checksum: 10/6bfcba3e4df5af7be3332703b69a7898a8ed7020837ec4395bb341bd96cc3a6d86c3f6071dd98da289618cf2234c70d84b2a6f09a33dd6f988b1ff60d8e54275 + languageName: node + linkType: hard + "fast-glob@npm:^3.2.9": version: 3.2.12 resolution: "fast-glob@npm:3.2.12" @@ -3724,6 +3805,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.0.0": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac + languageName: node + linkType: hard + "glob@npm:^10.3.10": version: 10.3.14 resolution: "glob@npm:10.3.14" @@ -3739,7 +3836,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3": +"glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -3827,7 +3924,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.2.0": +"graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 @@ -4040,7 +4137,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13": +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 @@ -4241,7 +4338,7 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^2.0.0": +"is-stream@npm:^2.0.0, is-stream@npm:^2.0.1": version: 2.0.1 resolution: "is-stream@npm:2.0.1" checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 @@ -4348,6 +4445,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3 + languageName: node + linkType: hard + "jest-changed-files@npm:^29.2.0": version: 29.2.0 resolution: "jest-changed-files@npm:29.2.0" @@ -5101,34 +5211,6 @@ __metadata: languageName: node linkType: hard -"lodash.defaults@npm:^4.2.0": - version: 4.2.0 - resolution: "lodash.defaults@npm:4.2.0" - checksum: 10/6a2a9ea5ad7585aff8d76836c9e1db4528e5f5fa50fc4ad81183152ba8717d83aef8aec4fa88bf3417ed946fd4b4358f145ee08fbc77fb82736788714d3e12db - languageName: node - linkType: hard - -"lodash.difference@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.difference@npm:4.5.0" - checksum: 10/b22adb1be9c60e5997b8b483f8bab19878cb40eda65437907958e5d27990214716e1b00ebe312a97f47e63d8b891e4ae30947d08e1f0861ccdb9462f56ab9d77 - languageName: node - linkType: hard - -"lodash.flatten@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.flatten@npm:4.4.0" - checksum: 10/a2b192f220b0b6c78a6c0175e96bad888b9e0f2a887a8e8c1d0c29d03231fbf110bbb9be0d9de5f936537d143eeb9d5b4f44c4a44f5592c195bf2fae6a6b1e3a - languageName: node - linkType: hard - -"lodash.isplainobject@npm:^4.0.6": - version: 4.0.6 - resolution: "lodash.isplainobject@npm:4.0.6" - checksum: 10/29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 - languageName: node - linkType: hard - "lodash.memoize@npm:4.x, lodash.memoize@npm:^4.1.2": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" @@ -5143,14 +5225,7 @@ __metadata: languageName: node linkType: hard -"lodash.union@npm:^4.6.0": - version: 4.6.0 - resolution: "lodash.union@npm:4.6.0" - checksum: 10/175f5786efc527238c1350ce561c28e5ba527b5957605f9e5b8a804fce78801d09ced7b72de0302325e5b14c711f94690b1a733c13ad3674cc1a76e1172db1f8 - languageName: node - linkType: hard - -"lodash@npm:^4.17.21": +"lodash@npm:^4.17.15, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 @@ -5384,6 +5459,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 + languageName: node + linkType: hard + "minipass-collect@npm:^1.0.2": version: 1.0.2 resolution: "minipass-collect@npm:1.0.2" @@ -5458,6 +5542,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 + languageName: node + linkType: hard + "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -5556,20 +5647,6 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.11": - version: 2.7.0 - resolution: "node-fetch@npm:2.7.0" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 10/b24f8a3dc937f388192e59bcf9d0857d7b6940a2496f328381641cb616efccc9866e89ec43f2ec956bbd6c3d3ee05524ce77fe7b29ccd34692b3a16f237d6676 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 9.3.1 resolution: "node-gyp@npm:9.3.1" @@ -5815,6 +5892,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10/58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -5895,6 +5979,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434 + languageName: node + linkType: hard + "path-to-regexp@npm:^6.2.1": version: 6.3.0 resolution: "path-to-regexp@npm:6.3.0" @@ -6046,6 +6140,13 @@ __metadata: languageName: node linkType: hard +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b + languageName: node + linkType: hard + "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -6080,7 +6181,18 @@ __metadata: languageName: node linkType: hard -"properties-reader@npm:^2.2.0": +"proper-lockfile@npm:^4.1.2": + version: 4.1.2 + resolution: "proper-lockfile@npm:4.1.2" + dependencies: + graceful-fs: "npm:^4.2.4" + retry: "npm:^0.12.0" + signal-exit: "npm:^3.0.2" + checksum: 10/000a4875f543f591872b36ca94531af8a6463ddb0174f41c0b004d19e231d7445268b422ff1ea595e43d238655c702250cd3d27f408e7b9d97b56f1533ba26bf + languageName: node + linkType: hard + +"properties-reader@npm:^2.3.0": version: 2.3.0 resolution: "properties-reader@npm:2.3.0" dependencies: @@ -6129,6 +6241,13 @@ __metadata: languageName: node linkType: hard +"queue-tick@npm:^1.0.1": + version: 1.0.1 + resolution: "queue-tick@npm:1.0.1" + checksum: 10/f447926c513b64a857906f017a3b350f7d11277e3c8d2a21a42b7998fa1a613d7a829091e12d142bb668905c8f68d8103416c7197856efb0c72fa835b8e254b5 + languageName: node + linkType: hard + "quick-lru@npm:^6.1.1": version: 6.1.2 resolution: "quick-lru@npm:6.1.2" @@ -6155,7 +6274,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.5": +"readable-stream@npm:^2.0.5": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -6192,6 +6311,19 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^4.0.0": + version: 4.7.0 + resolution: "readable-stream@npm:4.7.0" + dependencies: + abort-controller: "npm:^3.0.0" + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + process: "npm:^0.11.10" + string_decoder: "npm:^1.3.0" + checksum: 10/bdf096c8ff59452ce5d08f13da9597f9fcfe400b4facfaa88e74ec057e5ad1fdfa140ffe28e5ed806cf4d2055f0b812806e962bca91dce31bc4cef08e53be3a4 + languageName: node + linkType: hard + "readdir-glob@npm:^1.1.2": version: 1.1.3 resolution: "readdir-glob@npm:1.1.3" @@ -6326,7 +6458,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": +"rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: @@ -6453,7 +6585,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -6636,6 +6768,21 @@ __metadata: languageName: node linkType: hard +"streamx@npm:^2.15.0, streamx@npm:^2.21.0": + version: 2.21.1 + resolution: "streamx@npm:2.21.1" + dependencies: + bare-events: "npm:^2.2.0" + fast-fifo: "npm:^1.3.2" + queue-tick: "npm:^1.0.1" + text-decoder: "npm:^1.1.0" + dependenciesMeta: + bare-events: + optional: true + checksum: 10/d61ee82033f8b900226e2405aeb683de5f51a68ded1d40198d548cd9a7b2e47b7706442c9142bbc7fc59874f03063ee41ddf9e8667e63186b507b2e6b394ac28 + languageName: node + linkType: hard + "string-argv@npm:~0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" @@ -6686,7 +6833,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -6819,15 +6966,20 @@ __metadata: languageName: node linkType: hard -"tar-fs@npm:^2.1.1": - version: 2.1.1 - resolution: "tar-fs@npm:2.1.1" +"tar-fs@npm:^3.0.6": + version: 3.0.8 + resolution: "tar-fs@npm:3.0.8" dependencies: - chownr: "npm:^1.1.1" - mkdirp-classic: "npm:^0.5.2" + bare-fs: "npm:^4.0.1" + bare-path: "npm:^3.0.0" pump: "npm:^3.0.0" - tar-stream: "npm:^2.1.4" - checksum: 10/526deae025453e825f87650808969662fbb12eb0461d033e9b447de60ec951c6c4607d0afe7ce057defe9d4e45cf80399dd74bc15f9d9e0773d5e990a78ce4ac + tar-stream: "npm:^3.1.5" + dependenciesMeta: + bare-fs: + optional: true + bare-path: + optional: true + checksum: 10/fdcd1c66dc5e2cad5544ffe7eab9a470b419290b22300c344688df51bf06127963da07a1e3ae23cae80851cd9f60149e80b38e56485dd7a14aea701241ac2f81 languageName: node linkType: hard @@ -6843,7 +6995,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^2.0.0, tar-stream@npm:^2.1.4, tar-stream@npm:^2.2.0": +"tar-stream@npm:^2.0.0": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" dependencies: @@ -6856,6 +7008,17 @@ __metadata: languageName: node linkType: hard +"tar-stream@npm:^3.0.0, tar-stream@npm:^3.1.5": + version: 3.1.7 + resolution: "tar-stream@npm:3.1.7" + dependencies: + b4a: "npm:^1.6.4" + fast-fifo: "npm:^1.2.0" + streamx: "npm:^2.15.0" + checksum: 10/b21a82705a72792544697c410451a4846af1f744176feb0ff11a7c3dd0896961552e3def5e1c9a6bbee4f0ae298b8252a1f4c9381e9f991553b9e4847976f05c + languageName: node + linkType: hard + "tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.1 resolution: "tar@npm:6.2.1" @@ -6881,26 +7044,35 @@ __metadata: languageName: node linkType: hard -"testcontainers@npm:9.9.1": - version: 9.9.1 - resolution: "testcontainers@npm:9.9.1" +"testcontainers@npm:10.14.0": + version: 10.14.0 + resolution: "testcontainers@npm:10.14.0" dependencies: "@balena/dockerignore": "npm:^1.0.2" - "@types/archiver": "npm:^5.3.2" - "@types/dockerode": "npm:^3.3.19" - archiver: "npm:^5.3.1" - async-lock: "npm:^1.4.0" + "@types/dockerode": "npm:^3.3.29" + archiver: "npm:^7.0.1" + async-lock: "npm:^1.4.1" byline: "npm:^5.0.0" - debug: "npm:^4.3.4" - docker-compose: "npm:^0.24.1" + debug: "npm:^4.3.5" + docker-compose: "npm:^0.24.8" dockerode: "npm:^3.3.5" get-port: "npm:^5.1.1" - node-fetch: "npm:^2.6.11" - properties-reader: "npm:^2.2.0" + proper-lockfile: "npm:^4.1.2" + properties-reader: "npm:^2.3.0" ssh-remote-port-forward: "npm:^1.0.4" - tar-fs: "npm:^2.1.1" - tmp: "npm:^0.2.1" - checksum: 10/17295ed6219ac754260ab4b7cce81d1011b9854d4d1dc80cfe5d5ee6de50eab7a3c5b0e15c5ccf8c70444ed712ea7da248fcee955ab9cd56cc65662d23c9efa9 + tar-fs: "npm:^3.0.6" + tmp: "npm:^0.2.3" + undici: "npm:^5.28.4" + checksum: 10/09d983b4881a6460c9167c25a0367569feefcf89f69557511c07a0d0d89be5be2e3509c0b1fe0b8c6fae80d163064eefb71d691e1a0b33465b0e8ab5c7fb5313 + languageName: node + linkType: hard + +"text-decoder@npm:^1.1.0": + version: 1.2.3 + resolution: "text-decoder@npm:1.2.3" + dependencies: + b4a: "npm:^1.6.4" + checksum: 10/bcdec33c0f070aeac38e46e4cafdcd567a58473ed308bdf75260bfbd8f7dc76acbc0b13226afaec4a169d0cb44cec2ab89c57b6395ccf02e941eaebbe19e124a languageName: node linkType: hard @@ -6911,12 +7083,10 @@ __metadata: languageName: node linkType: hard -"tmp@npm:^0.2.1": - version: 0.2.1 - resolution: "tmp@npm:0.2.1" - dependencies: - rimraf: "npm:^3.0.0" - checksum: 10/445148d72df3ce99356bc89a7857a0c5c3b32958697a14e50952c6f7cf0a8016e746ababe9a74c1aa52f04c526661992f14659eba34d3c6701d49ba2f3cf781b +"tmp@npm:^0.2.3": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 10/7b13696787f159c9754793a83aa79a24f1522d47b87462ddb57c18ee93ff26c74cbb2b8d9138f571d2e0e765c728fb2739863a672b280528512c6d83d511c6fa languageName: node linkType: hard @@ -6950,13 +7120,6 @@ __metadata: languageName: node linkType: hard -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 10/8f1f5aa6cb232f9e1bdc86f485f916b7aa38caee8a778b378ffec0b70d9307873f253f5cbadbe2955ece2ac5c83d0dc14a77513166ccd0a0c7fe197e21396695 - languageName: node - linkType: hard - "ts-api-utils@npm:^1.0.1": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -7170,6 +7333,15 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.28.4": + version: 5.28.5 + resolution: "undici@npm:5.28.5" + dependencies: + "@fastify/busboy": "npm:^2.0.0" + checksum: 10/459cd84ab75fe90d696fa2634a8b5b23f9e1080b27236c6809bd74e51862be85df6d95b4a8fed3ee42554495008cb3c05f1bc9d4a1807478f433cca567003d70 + languageName: node + linkType: hard + "unique-filename@npm:^2.0.0": version: 2.0.1 resolution: "unique-filename@npm:2.0.1" @@ -7301,23 +7473,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: 10/b65b9f8d6854572a84a5c69615152b63371395f0c5dcd6729c45789052296df54314db2bc3e977df41705eacb8bc79c247cee139a63fa695192f95816ed528ad - languageName: node - linkType: hard - -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: "npm:~0.0.3" - webidl-conversions: "npm:^3.0.0" - checksum: 10/f95adbc1e80820828b45cc671d97da7cd5e4ef9deb426c31bcd5ab00dc7103042291613b3ef3caec0a2335ed09e0d5ed026c940755dbb6d404e2b27f940fdf07 - languageName: node - linkType: hard - "which@npm:^1.2.12": version: 1.3.1 resolution: "which@npm:1.3.1" @@ -7508,13 +7663,13 @@ __metadata: languageName: node linkType: hard -"zip-stream@npm:^4.1.0": - version: 4.1.1 - resolution: "zip-stream@npm:4.1.1" +"zip-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "zip-stream@npm:6.0.1" dependencies: - archiver-utils: "npm:^3.0.4" - compress-commons: "npm:^4.1.2" - readable-stream: "npm:^3.6.0" - checksum: 10/33bd5ee7017656c2ad728b5d4ba510e15bd65ce1ec180c5bbdc7a5f063256353ec482e6a2bc74de7515219d8494147924b9aae16e63fdaaf37cdf7d1ee8df125 + archiver-utils: "npm:^5.0.0" + compress-commons: "npm:^6.0.2" + readable-stream: "npm:^4.0.0" + checksum: 10/aa5abd6a89590eadeba040afbc375f53337f12637e5e98330012a12d9886cde7a3ccc28bd91aafab50576035bbb1de39a9a316eecf2411c8b9009c9f94f0db27 languageName: node linkType: hard From 417aa0d1313a985af6b4a2a4338fadfb282b2dc2 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 11:44:53 -0500 Subject: [PATCH 04/15] chore: update ruby for SSE --- proxies/ruby/Gemfile.lock | 25 +++++++++++++------------ proxies/ruby/app.rb | 3 ++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/proxies/ruby/Gemfile.lock b/proxies/ruby/Gemfile.lock index 0e4feb2c..3caf022a 100644 --- a/proxies/ruby/Gemfile.lock +++ b/proxies/ruby/Gemfile.lock @@ -4,9 +4,9 @@ GEM addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) base64 (0.2.0) - bigdecimal (3.1.8) + bigdecimal (3.1.9) concurrent-ruby (1.2.3) - devcycle-ruby-server-sdk (3.2.0) + devcycle-ruby-server-sdk (3.3.0) concurrent-ruby (~> 1.2.0) google-protobuf (~> 3.22) ld-eventsource (~> 2.2.2) @@ -17,20 +17,19 @@ GEM domain_name (0.6.20240107) ethon (0.16.0) ffi (>= 1.15.0) - ffi (1.17.0-arm64-darwin) - ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.1-arm64-darwin) + ffi (1.17.1-x86_64-linux-gnu) ffi-compiler (1.3.2) ffi (>= 1.15.5) rake - google-protobuf (3.25.5-arm64-darwin) - google-protobuf (3.25.5-x86_64-linux) + google-protobuf (3.25.5) http (5.2.0) addressable (~> 2.8) base64 (~> 0.1) http-cookie (~> 1.0) http-form_data (~> 2.2) llhttp-ffi (~> 0.5.0) - http-cookie (1.0.7) + http-cookie (1.0.8) domain_name (~> 0.5) http-form_data (2.3.0) ld-eventsource (2.2.2) @@ -43,10 +42,10 @@ GEM mustermann (3.0.3) ruby2_keywords (~> 0.0.1) nio4r (2.7.3) - oj (3.16.6) + oj (3.16.9) bigdecimal (>= 3.0) ostruct (>= 0.2) - ostruct (0.6.0) + ostruct (0.6.1) public_suffix (6.0.1) puma (6.4.3) nio4r (~> 2.0) @@ -58,6 +57,7 @@ GEM rack-session (2.0.0) rack (>= 3.0.0) rake (13.2.1) + rb_sys (0.9.108) ruby2_keywords (0.0.5) sinatra (4.1.0) logger (>= 1.6.0) @@ -66,16 +66,17 @@ GEM rack-protection (= 4.1.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11572) + sorbet-runtime (0.5.11770) tilt (2.4.0) typhoeus (1.4.1) ethon (>= 0.9.0) - wasmtime (20.0.2-arm64-darwin) - wasmtime (20.0.2-x86_64-linux) + wasmtime (20.0.2) + rb_sys (~> 0.9.97) PLATFORMS arm64-darwin-21 arm64-darwin-23 + arm64-darwin-24 x86_64-linux DEPENDENCIES diff --git a/proxies/ruby/app.rb b/proxies/ruby/app.rb index df860abe..a63d0cce 100644 --- a/proxies/ruby/app.rb +++ b/proxies/ruby/app.rb @@ -42,7 +42,8 @@ config_cdn_uri: options.fetch('configCDNURI', ''), events_api_uri: options.fetch('eventsAPIURI', ''), config_polling_interval_ms: options.fetch('configPollingIntervalMS', 10_000), - event_flush_interval_ms: options.fetch('eventFlushIntervalMS', 10_000) + event_flush_interval_ms: options.fetch('eventFlushIntervalMS', 10_000), + disable_real_time_updates: true, ) data_store[:clients][client_id] = DevCycle::DVCClient.new(sdk_key, dvc_options, wait_for_initialization) From e1bc2e516fffe81b218659d86ad8b87f9602b40f Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 12:53:15 -0500 Subject: [PATCH 05/15] chore: disable realtime updates for ruby --- proxies/ruby/Gemfile | 3 ++- proxies/ruby/Gemfile.lock | 3 +++ proxies/ruby/app.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/proxies/ruby/Gemfile b/proxies/ruby/Gemfile index a11681aa..c142d20f 100644 --- a/proxies/ruby/Gemfile +++ b/proxies/ruby/Gemfile @@ -5,4 +5,5 @@ source 'https://rubygems.org' gem 'puma' gem 'sinatra' -gem 'devcycle-ruby-server-sdk' \ No newline at end of file +gem 'devcycle-ruby-server-sdk' +gem 'rackup' diff --git a/proxies/ruby/Gemfile.lock b/proxies/ruby/Gemfile.lock index 3caf022a..40516fa1 100644 --- a/proxies/ruby/Gemfile.lock +++ b/proxies/ruby/Gemfile.lock @@ -56,6 +56,8 @@ GEM rack (>= 3.0.0, < 4) rack-session (2.0.0) rack (>= 3.0.0) + rackup (2.2.1) + rack (>= 3) rake (13.2.1) rb_sys (0.9.108) ruby2_keywords (0.0.5) @@ -82,6 +84,7 @@ PLATFORMS DEPENDENCIES devcycle-ruby-server-sdk puma + rackup sinatra BUNDLED WITH diff --git a/proxies/ruby/app.rb b/proxies/ruby/app.rb index a63d0cce..bf4234cb 100644 --- a/proxies/ruby/app.rb +++ b/proxies/ruby/app.rb @@ -43,7 +43,7 @@ events_api_uri: options.fetch('eventsAPIURI', ''), config_polling_interval_ms: options.fetch('configPollingIntervalMS', 10_000), event_flush_interval_ms: options.fetch('eventFlushIntervalMS', 10_000), - disable_real_time_updates: true, + disable_realtime_updates: true, ) data_store[:clients][client_id] = DevCycle::DVCClient.new(sdk_key, dvc_options, wait_for_initialization) From e9f9a1c7ad846ab78cd3fa312c381587bda413fe Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 13:00:11 -0500 Subject: [PATCH 06/15] chore: update python, disable SSE --- package.json | 1 + proxies/python/handlers/client.py | 1 + proxies/python/requirements.txt | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index bfa64fbf..d74c8e07 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "start:dotnet": "cd proxies/dotnet && dotnet run", "start:java": "cd proxies/java && ./gradlew bootRun", "start:ruby": "cd proxies/ruby && bundle exec ruby app.rb", + "start:python": "cd proxies/python && python3 -m flask --app app run --host=0.0.0.0 -p 3000", "use-local": "scripts/use-local.sh" }, "version": "1.0.0", diff --git a/proxies/python/handlers/client.py b/proxies/python/handlers/client.py index 1b20d79e..cb0a0952 100644 --- a/proxies/python/handlers/client.py +++ b/proxies/python/handlers/client.py @@ -32,6 +32,7 @@ def handle_client(body, data_store): config_polling_interval_ms=options.get('configPollingIntervalMS', 1000), events_api_uri=options.get('eventsAPIURI', ''), event_flush_interval_ms=options.get('eventFlushIntervalMS', 10000), + disable_realtime_updates=True, ) dvc_client = DevCycleLocalClient(sdk_key, dvc_options) diff --git a/proxies/python/requirements.txt b/proxies/python/requirements.txt index b6b63f8d..047213f4 100644 --- a/proxies/python/requirements.txt +++ b/proxies/python/requirements.txt @@ -1,2 +1,2 @@ -Flask==3.0.3 -devcycle-python-server-sdk==3.4.1 \ No newline at end of file +Flask==3.1.0 +devcycle-python-server-sdk==3.8.0 \ No newline at end of file From 8e156494e16641fca8c84d37e7d44024758edab3 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 13:23:06 -0500 Subject: [PATCH 07/15] chore: set disableRealTimeUpdates for java --- .../java/com/dvc_harness/proxy/controller/ProxyController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java index d9a09dcd..bcbe42a5 100644 --- a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java +++ b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java @@ -46,6 +46,7 @@ public BaseResponse client(@RequestBody ClientRequestBody body, HttpServletRespo DataStore.CloudClients.put(body.clientId, client); } else { DevCycleLocalOptions.DevCycleLocalOptionsBuilder builder = DevCycleLocalOptions.builder(); + builder.disableRealTimeUpdates(true); if (body.options != null) { if (body.options.configCDNURI != null) { From a0e97b2f6f34f5ce14199ec80553054646b0857d Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 13:29:50 -0500 Subject: [PATCH 08/15] chore: update go to DisableRealtimeUpdates --- harness/helpers/proxyClientOptions.ts | 1 + proxies/go/go.mod | 24 ++++++++++++------------ proxies/go/go.sum | 24 ++++++++++++++++++++++++ proxies/go/handler_client.go | 5 ++--- 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/harness/helpers/proxyClientOptions.ts b/harness/helpers/proxyClientOptions.ts index e426e92e..9bad06ea 100644 --- a/harness/helpers/proxyClientOptions.ts +++ b/harness/helpers/proxyClientOptions.ts @@ -9,6 +9,7 @@ export type ProxyClientOptions = { eventFlushIntervalMS?: number enableCloudBucketing?: boolean enableRealtimeUpdates?: boolean + disableRealtimeUpdates?: boolean logLevel?: string enableClientBootstrapping?: boolean } diff --git a/proxies/go/go.mod b/proxies/go/go.mod index c14d2689..155f684b 100644 --- a/proxies/go/go.mod +++ b/proxies/go/go.mod @@ -3,26 +3,26 @@ module github.com/devcyclehq/test-harness/proxies/go go 1.22.2 require ( - github.com/devcyclehq/go-server-sdk/v2 v2.15.1-0.20240607170116-8bd7750c7b99 + github.com/devcyclehq/go-server-sdk/v2 v2.19.0 github.com/gorilla/mux v1.8.0 ) require ( - github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.18.0 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/launchdarkly/eventsource v1.7.1 // indirect + github.com/go-playground/validator/v10 v10.24.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/launchdarkly/eventsource v1.8.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2 // indirect - github.com/open-feature/go-sdk v1.8.0 // indirect - github.com/twmb/murmur3 v1.1.7 // indirect - golang.org/x/crypto v0.31.0 // indirect - golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb // indirect - golang.org/x/net v0.33.0 // indirect - golang.org/x/sys v0.28.0 // indirect + github.com/open-feature/go-sdk v1.14.1 // indirect + github.com/twmb/murmur3 v1.1.8 // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect ) diff --git a/proxies/go/go.sum b/proxies/go/go.sum index 9f126913..714d569b 100644 --- a/proxies/go/go.sum +++ b/proxies/go/go.sum @@ -5,10 +5,16 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/devcyclehq/go-server-sdk/v2 v2.15.1-0.20240607170116-8bd7750c7b99 h1:MZl7ZplpQfX83CYqFEr6yKmEJNoCf2FVmZ15lclNHeg= github.com/devcyclehq/go-server-sdk/v2 v2.15.1-0.20240607170116-8bd7750c7b99/go.mod h1:DzKrJ4s2apfphFwB/Aq8YDf7brB+NDr6IxX0TNi2c24= +github.com/devcyclehq/go-server-sdk/v2 v2.19.0 h1:pNMv6fN6Y3UEKKFcPPA0HfRy8jlsQuk2rN+jO/n65ZM= +github.com/devcyclehq/go-server-sdk/v2 v2.19.0/go.mod h1:Wo2nWl40oNwgzAM5q5bBdTssof9TAlmUauj0nxVHOjg= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -17,16 +23,22 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.18.0 h1:BvolUXjp4zuvkZ5YN5t7ebzbhlUtPsPm2S9NAZ5nl9U= github.com/go-playground/validator/v10 v10.18.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= +github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/jarcoal/httpmock v1.2.0 h1:gSvTxxFR/MEMfsGrvRbdfpRUMBStovlSRLw0Ep1bwwc= github.com/jarcoal/httpmock v1.2.0/go.mod h1:oCoTsnAz4+UoOUIf5lJOWV2QQIW5UoeUI6aM2YnWAZk= github.com/launchdarkly/eventsource v1.7.1 h1:StoRQeiPyrcQIXjlQ7b5jWMzHW4p+GGczN2r2oBhujg= github.com/launchdarkly/eventsource v1.7.1/go.mod h1:LHxSeb4OnqznNZxCSXbFghxS/CjIQfzHovNoAqbO/Wk= +github.com/launchdarkly/eventsource v1.8.0 h1:o9TL53lINP9PCrKESlpIZADvN+eHWlSVmAzZDZ+FEA0= +github.com/launchdarkly/eventsource v1.8.0/go.mod h1:IBckHy1VOjJGqSg07EJJLiUnk5DPunX9LKD9vbcgeHo= github.com/launchdarkly/go-test-helpers/v2 v2.2.0 h1:L3kGILP/6ewikhzhdNkHy1b5y4zs50LueWenVF0sBbs= github.com/launchdarkly/go-test-helpers/v2 v2.2.0/go.mod h1:L7+th5govYp5oKU9iN7To5PgznBuIjBPn+ejqKR0avw= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= @@ -35,6 +47,8 @@ github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2 h1:JAEbJn3j/FrhdWA9jW8 github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs= github.com/open-feature/go-sdk v1.8.0 h1:jRkP7zeSGC3pSYn/s3EzJSpO9Q6CVP8BOnmvBZYQEa0= github.com/open-feature/go-sdk v1.8.0/go.mod h1:hpKxVZIJ0b+GpnI8imSJf9nFTcmTb0wWJZTgAS/3giw= +github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyDBsoQo= +github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -44,14 +58,24 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/twmb/murmur3 v1.1.7 h1:ULWBiM04n/XoN3YMSJ6Z2pHDFLf+MeIVQU71ZPrvbWg= github.com/twmb/murmur3 v1.1.7/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= +github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= +github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb h1:mIKbk8weKhSeLH2GmUTrvx8CjkyJmnU1wFmg59CUjFA= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/proxies/go/handler_client.go b/proxies/go/handler_client.go index 12da5ad6..ddbdd9a6 100644 --- a/proxies/go/handler_client.go +++ b/proxies/go/handler_client.go @@ -18,7 +18,7 @@ type clientRequestBodyOptions struct { ConfigPollingIntervalMS int64 `json:"configPollingIntervalMS"` EventFlushIntervalMS int64 `json:"eventFlushIntervalMS"` EnableCloudBucketing bool `json:"enableCloudBucketing"` - EnableRealtimeUpdates bool `json:"enableRealtimeUpdates"` + DisableRealTimeUpdates bool `json:"disableRealtimeUpdates"` } type clientRequestBody struct { @@ -61,8 +61,7 @@ func clientHandler(w http.ResponseWriter, r *http.Request) { EventFlushIntervalMS: time.Duration(reqBody.Options.EventFlushIntervalMS * 1000000), EnableCloudBucketing: reqBody.EnableCloudBucketing, ClientEventHandler: clientEventChannel, - // TODO: Properly implement SSE tests. Currently the init delay on config pull breaks tests. - EnableBetaRealtimeUpdates: false, + DisableRealtimeUpdates: true, } var res clientResponseBody From 0d19b7e9e3e53b55de20ae70a3afe590694622ec Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 13:38:31 -0500 Subject: [PATCH 09/15] chore: update dotnet to DisableRealtimeUpdates --- proxies/dotnet/Controllers/Client.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/proxies/dotnet/Controllers/Client.cs b/proxies/dotnet/Controllers/Client.cs index 96be3753..2781033f 100644 --- a/proxies/dotnet/Controllers/Client.cs +++ b/proxies/dotnet/Controllers/Client.cs @@ -25,6 +25,9 @@ public class ClientOptions : DevCycleLocalOptions [JsonProperty("enableEdgeDB")] public bool? EnableEdgeDB { get; set; } + [JsonProperty("disableRealtimeUpdates")] + public bool? DisableRealtimeUpdates { get; set; } + public override string ToString() { var sb = new StringBuilder(); @@ -35,6 +38,7 @@ public override string ToString() sb.Append(" ConfigCDNURLOverride: ").Append(ConfigCDNURLOverride).Append("\n"); sb.Append(" EventsAPIURLOverride: ").Append(EventsAPIURLOverride).Append("\n"); sb.Append(" EnableEdgeDB: ").Append(EnableEdgeDB).Append("\n"); + sb.Append(" DisableRealtimeUpdates: ").Append(DisableRealtimeUpdates).Append("\n"); sb.Append("}"); return sb.ToString(); } @@ -97,7 +101,16 @@ public async Task Post(ClientRequestBody ClientBody) } else { - if (ClientBody.Options?.ConfigCDNURLOverride != null) + if (ClientBody.Options == null) + { + ClientBody.Options = new ClientOptions { DisableRealtimeUpdates = true }; + } + else if (ClientBody.Options.DisableRealtimeUpdates != null) + { + ClientBody.Options.DisableRealtimeUpdates = true; + } + + if (ClientBody.Options.ConfigCDNURLOverride != null) { ClientBody.Options.CdnUri = ClientBody.Options.ConfigCDNURLOverride; } From 2a5e866aaa6a7e4af211d9fabc02fbc04895b915 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 14:00:31 -0500 Subject: [PATCH 10/15] chore: java use setDisableRealtimeUpdates --- .../java/com/dvc_harness/proxy/controller/ProxyController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java index bcbe42a5..5a6e929d 100644 --- a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java +++ b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java @@ -46,7 +46,7 @@ public BaseResponse client(@RequestBody ClientRequestBody body, HttpServletRespo DataStore.CloudClients.put(body.clientId, client); } else { DevCycleLocalOptions.DevCycleLocalOptionsBuilder builder = DevCycleLocalOptions.builder(); - builder.disableRealTimeUpdates(true); + builder.setDisableRealtimeUpdates(true); if (body.options != null) { if (body.options.configCDNURI != null) { From 470a258688daa702c237b887e12a4a938d2e53a8 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 14:15:09 -0500 Subject: [PATCH 11/15] chore: fix java build --- .../java/com/dvc_harness/proxy/controller/ProxyController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java index 5a6e929d..adf72517 100644 --- a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java +++ b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java @@ -46,7 +46,7 @@ public BaseResponse client(@RequestBody ClientRequestBody body, HttpServletRespo DataStore.CloudClients.put(body.clientId, client); } else { DevCycleLocalOptions.DevCycleLocalOptionsBuilder builder = DevCycleLocalOptions.builder(); - builder.setDisableRealtimeUpdates(true); + builder.disableRealtimeUpdates(true); if (body.options != null) { if (body.options.configCDNURI != null) { From e93e61ab5c5dff563d99e64650561a0a33b96e48 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 14:55:01 -0500 Subject: [PATCH 12/15] fix: dotnet DisableRealtimeUpdates --- proxies/dotnet/Controllers/Client.cs | 13 ++++--------- proxies/dotnet/dotnet.csproj | 6 +++--- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/proxies/dotnet/Controllers/Client.cs b/proxies/dotnet/Controllers/Client.cs index 2781033f..b6defb65 100644 --- a/proxies/dotnet/Controllers/Client.cs +++ b/proxies/dotnet/Controllers/Client.cs @@ -25,9 +25,6 @@ public class ClientOptions : DevCycleLocalOptions [JsonProperty("enableEdgeDB")] public bool? EnableEdgeDB { get; set; } - [JsonProperty("disableRealtimeUpdates")] - public bool? DisableRealtimeUpdates { get; set; } - public override string ToString() { var sb = new StringBuilder(); @@ -38,7 +35,7 @@ public override string ToString() sb.Append(" ConfigCDNURLOverride: ").Append(ConfigCDNURLOverride).Append("\n"); sb.Append(" EventsAPIURLOverride: ").Append(EventsAPIURLOverride).Append("\n"); sb.Append(" EnableEdgeDB: ").Append(EnableEdgeDB).Append("\n"); - sb.Append(" DisableRealtimeUpdates: ").Append(DisableRealtimeUpdates).Append("\n"); + sb.Append(" DisableRealtimeUpdates: ").Append(base.DisableRealtimeUpdates).Append("\n"); sb.Append("}"); return sb.ToString(); } @@ -103,12 +100,10 @@ public async Task Post(ClientRequestBody ClientBody) { if (ClientBody.Options == null) { - ClientBody.Options = new ClientOptions { DisableRealtimeUpdates = true }; - } - else if (ClientBody.Options.DisableRealtimeUpdates != null) - { - ClientBody.Options.DisableRealtimeUpdates = true; + ClientBody.Options = new ClientOptions(); } + ClientBody.Options.DisableRealtimeUpdates = true; + Console.WriteLine($"DisableRealtimeUpdates set to: {ClientBody.Options.DisableRealtimeUpdates}"); if (ClientBody.Options.ConfigCDNURLOverride != null) { diff --git a/proxies/dotnet/dotnet.csproj b/proxies/dotnet/dotnet.csproj index baa0b929..3c1fc875 100644 --- a/proxies/dotnet/dotnet.csproj +++ b/proxies/dotnet/dotnet.csproj @@ -1,15 +1,15 @@ - net8.0 + net9.0 enable enable - - + + From 01f9eca48e9f4a6cf55ab6b7c5b1728180a172b5 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 15:04:02 -0500 Subject: [PATCH 13/15] chore: fix dotnet framework --- proxies/dotnet/dotnet.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxies/dotnet/dotnet.csproj b/proxies/dotnet/dotnet.csproj index 3c1fc875..37b2bb01 100644 --- a/proxies/dotnet/dotnet.csproj +++ b/proxies/dotnet/dotnet.csproj @@ -1,7 +1,7 @@ - net9.0 + net8.0 enable enable From 1a51209a7292e15157ba84fa1e2130d4fe41f430 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Wed, 22 Jan 2025 17:05:04 -0500 Subject: [PATCH 14/15] fix: java initialization test Signed-off-by: Jonathan Norris --- harness/features/initialize.local.test.ts | 12 +++++------- .../java/gradle/wrapper/gradle-wrapper.properties | 2 +- .../proxy/controller/ProxyController.java | 10 +++++++--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/harness/features/initialize.local.test.ts b/harness/features/initialize.local.test.ts index ed90f07f..4123912c 100644 --- a/harness/features/initialize.local.test.ts +++ b/harness/features/initialize.local.test.ts @@ -92,7 +92,7 @@ describe('Initialize Tests - Local', () => { scope.get(configRequestUrl).times(3).reply(500) scope.post(`/client/${testClient.clientId}/v1/events/batch`).reply(201) await testClient.createClient(true, { - configPollingIntervalMS: 2000, + configPollingIntervalMS: 2500, }) const variable = await testClient.callVariable( @@ -162,12 +162,10 @@ describe('Initialize Tests - Local', () => { it('uses the same config if the etag matches', async () => { const testClient = new LocalTestClient(sdkName) const configRequestUrl = testClient.getValidConfigPath() - scope - .get(configRequestUrl) - .reply(200, testClient.getValidConfig(), { - ETag: 'test-etag', - 'Last-Modified': lastModifiedDate.toUTCString(), - }) + scope.get(configRequestUrl).reply(200, testClient.getValidConfig(), { + ETag: 'test-etag', + 'Last-Modified': lastModifiedDate.toUTCString(), + }) addEventsBatchMock(testClient) if (hasCapability(sdkName, Capabilities.lastModifiedHeader)) { diff --git a/proxies/java/gradle/wrapper/gradle-wrapper.properties b/proxies/java/gradle/wrapper/gradle-wrapper.properties index ae04661e..a5952066 100644 --- a/proxies/java/gradle/wrapper/gradle-wrapper.properties +++ b/proxies/java/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java index adf72517..a6a4e9dc 100644 --- a/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java +++ b/proxies/java/src/main/java/com/dvc_harness/proxy/controller/ProxyController.java @@ -68,12 +68,16 @@ public BaseResponse client(@RequestBody ClientRequestBody body, HttpServletRespo DevCycleLocalClient client = new DevCycleLocalClient(body.sdkKey, builder.build()); - if(body.waitForInitialization) { + if (body.waitForInitialization) { try { long startWaitMS = System.currentTimeMillis(); + long timeoutMS = 2000; + // body.options != null && body.options.configPollingIntervalMS != null && body.options.configPollingIntervalMS == 2000 + // ? 1500 // 2000 - 500 + // : 2000; while (!client.isInitialized()) { - if (System.currentTimeMillis() - startWaitMS > 2000) { - System.out.println("Client initialization timed out after 2000ms."); + if (System.currentTimeMillis() - startWaitMS > timeoutMS) { + System.out.println("Client initialization timed out after " + timeoutMS + "ms."); break; } Thread.sleep(50); From 175a4f46779b15e6de5883570fff2a56137b1610 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Thu, 23 Jan 2025 11:08:30 -0500 Subject: [PATCH 15/15] chore: try new timing --- harness/features/initialize.local.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/harness/features/initialize.local.test.ts b/harness/features/initialize.local.test.ts index 4123912c..530c6c09 100644 --- a/harness/features/initialize.local.test.ts +++ b/harness/features/initialize.local.test.ts @@ -92,7 +92,7 @@ describe('Initialize Tests - Local', () => { scope.get(configRequestUrl).times(3).reply(500) scope.post(`/client/${testClient.clientId}/v1/events/batch`).reply(201) await testClient.createClient(true, { - configPollingIntervalMS: 2500, + configPollingIntervalMS: 2300, }) const variable = await testClient.callVariable( @@ -105,7 +105,7 @@ describe('Initialize Tests - Local', () => { expect((await variable.json()).data.value).toEqual(0) scope.get(configRequestUrl).reply(200, testClient.getValidConfig) - await wait(2300) + await wait(2500) const variable2 = await testClient.callVariable( shouldBucketUser, sdkName,