diff --git a/package.json b/package.json index 8f5b028..cbc2c43 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ ] }, "dependencies": { - "@openziti/ziti-browzer-core": "^0.17.0", + "@openziti/ziti-browzer-core": "^0.17.1", "async-mutex": "^0.3.2", "cheerio": "^1.0.0-rc.12", "jwt-decode": "^3.1.2", @@ -93,4 +93,4 @@ "workbox-expiration": "^6.5.3", "workbox-strategies": "^6.5.3" } -} \ No newline at end of file +} diff --git a/src/ZitiFirstStrategy.ts b/src/ZitiFirstStrategy.ts index 0d77835..22fbaa4 100644 --- a/src/ZitiFirstStrategy.ts +++ b/src/ZitiFirstStrategy.ts @@ -1013,17 +1013,33 @@ class ZitiFirstStrategy extends CacheFirst /* NetworkFirst */ { this.logger.trace( 'ZitiFirstStrategy: zitiResponse.headers: ', key, val); if (key.toLowerCase() === 'set-cookie') { - headers.append( 'x-ziti-browzer-set-cookie', val ); - this.logger.trace( 'ZitiFirstStrategy: sending SET_COOKIE cmd'); - let resp = await this._zitiBrowzerServiceWorkerGlobalScope._sendMessageToClients( - { - type: 'SET_COOKIE', - payload: val - } - ); - this.logger.trace( 'ZitiFirstStrategy: SET_COOKIE response: ', resp); - let parts = val.split('='); - this._zitiBrowzerServiceWorkerGlobalScope._cookieObject[parts[0]] = parts[1]; + if (Array.isArray(val)) { + for (var ndx = 0; ndx < val.length; ndx++) { + this.logger.trace( 'ZitiFirstStrategy: sending SET_COOKIE cmd'); + let resp = await this._zitiBrowzerServiceWorkerGlobalScope._sendMessageToClients( + { + type: 'SET_COOKIE', + payload: val[ndx] + } + ); + this.logger.trace( 'ZitiFirstStrategy: SET_COOKIE response: ', resp); + let parts = val[ndx].split('='); + this._zitiBrowzerServiceWorkerGlobalScope._cookieObject[parts[0]] = parts[1]; + } + } + else { + headers.append( 'x-ziti-browzer-set-cookie', val ); + this.logger.trace( 'ZitiFirstStrategy: sending SET_COOKIE cmd'); + let resp = await this._zitiBrowzerServiceWorkerGlobalScope._sendMessageToClients( + { + type: 'SET_COOKIE', + payload: val + } + ); + this.logger.trace( 'ZitiFirstStrategy: SET_COOKIE response: ', resp); + let parts = val.split('='); + this._zitiBrowzerServiceWorkerGlobalScope._cookieObject[parts[0]] = parts[1]; + } } else if (key.toLowerCase() === 'location') { this.logger.trace( `location header transform needed for: ${val}`); diff --git a/yarn.lock b/yarn.lock index b22eff3..081d979 100644 --- a/yarn.lock +++ b/yarn.lock @@ -969,10 +969,10 @@ "@types/emscripten" "^1.39.6" "@wasmer/wasi" "^1.0.2" -"@openziti/ziti-browzer-core@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@openziti/ziti-browzer-core/-/ziti-browzer-core-0.17.0.tgz#7efbc63c84be542d3bb48cdd4f4f55255d5d175c" - integrity sha512-BEF2zh15jPbwo4uCbNUMO8D+jK/G1FpytxPN79jEU9kRPYsnGc2I5sFbfMEmhZDKPHeULOumXwp8x97zyjKR6w== +"@openziti/ziti-browzer-core@^0.17.1": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@openziti/ziti-browzer-core/-/ziti-browzer-core-0.17.1.tgz#9684393fe6d89795af9a242f528768c0f38e2ce0" + integrity sha512-QjlHSrw1Da7Z4Xl2M+Fnx+hTXHMhdgHhG6cr+AaSR1aJRvuSF1NfTupsAmLvzZS1VHDnZqKNUbwAlYAZhfTF7A== dependencies: "@openziti/libcrypto-js" "^0.9.0" "@openziti/ziti-browzer-edge-client" "^0.6.0"