From 0812ae075698ec1180d03a3693a322fb8cf1efa6 Mon Sep 17 00:00:00 2001 From: Jeremy LaCivita Date: Thu, 27 Jul 2023 14:43:10 -0400 Subject: [PATCH 1/6] fix: Fix Server-side rendering reference error on `window` --- .../src/shared/Transport/LegacyTransport.mjs | 12 +++--- .../src/shared/Transport/MockTransport.mjs | 7 +++- .../javascript/src/shared/Transport/index.mjs | 38 ++++++++++--------- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/languages/javascript/src/shared/Transport/LegacyTransport.mjs b/languages/javascript/src/shared/Transport/LegacyTransport.mjs index 95632cb6..99b15ecf 100644 --- a/languages/javascript/src/shared/Transport/LegacyTransport.mjs +++ b/languages/javascript/src/shared/Transport/LegacyTransport.mjs @@ -16,6 +16,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +const win = typeof win !== 'undefined' ? window : this + export default class LegacyTransport { constructor (bridge) { this.bridge = bridge @@ -26,18 +28,18 @@ export default class LegacyTransport { } receive (callback) { - window.$badger = window.$badger || {} + win.$badger = win.$badger || {} /** Hold on to real $badger callback and event methods so they can be called for non-jsonrpc messages */ - const badgerCallback = window.$badger.callback ? window.$badger.callback.bind(window.$badger) : null - const badgerEvent = window.$badger.event ? window.$badger.event.bind(window.$badger) : null - window.$badger.callback = (pid, success, json) => { + const badgerCallback = win.$badger.callback ? win.$badger.callback.bind(win.$badger) : null + const badgerEvent = win.$badger.event ? win.$badger.event.bind(win.$badger) : null + win.$badger.callback = (pid, success, json) => { if (json.jsonrpc) { callback(JSON.stringify(json)) } else if (badgerCallback) { badgerCallback(pid, success, json) } } - window.$badger.event = (handlerId, json) => { + win.$badger.event = (handlerId, json) => { if (json.jsonrpc) { callback(JSON.stringify(json)) } else if (badgerEvent) { diff --git a/languages/javascript/src/shared/Transport/MockTransport.mjs b/languages/javascript/src/shared/Transport/MockTransport.mjs index d52366fc..3d1c39be 100644 --- a/languages/javascript/src/shared/Transport/MockTransport.mjs +++ b/languages/javascript/src/shared/Transport/MockTransport.mjs @@ -16,6 +16,9 @@ * SPDX-License-Identifier: Apache-2.0 */ + +const win = typeof win !== 'undefined' ? window : this + let listener export const setMockListener = func => { listener = func } @@ -26,8 +29,8 @@ const eventMap = {} let callback let testHarness -if (window.__firebolt && window.__firebolt.testHarness) { - testHarness = window.__firebolt.testHarness +if (win.__firebolt && win.__firebolt.testHarness) { + testHarness = win.__firebolt.testHarness } function send(message) { diff --git a/languages/javascript/src/shared/Transport/index.mjs b/languages/javascript/src/shared/Transport/index.mjs index 75ca88ef..ce9de030 100644 --- a/languages/javascript/src/shared/Transport/index.mjs +++ b/languages/javascript/src/shared/Transport/index.mjs @@ -28,6 +28,8 @@ let moduleInstance = null const isEventSuccess = x => x && (typeof x.event === 'string') && (typeof x.listening === 'boolean') +const win = typeof win !== 'undefined' ? window : this + export default class Transport { constructor () { this._promises = [] @@ -51,8 +53,8 @@ export default class Transport { } _endpoint () { - if (window.__firebolt && window.__firebolt.endpoint) { - return window.__firebolt.endpoint + if (win.__firebolt && win.__firebolt.endpoint) { + return win.__firebolt.endpoint } return null } @@ -64,14 +66,14 @@ export default class Transport { transport = new WebsocketTransport(endpoint) transport.receive(this.receiveHandler.bind(this)) } else if ( - typeof window.ServiceManager !== 'undefined' && - window.ServiceManager && - window.ServiceManager.version + typeof win.ServiceManager !== 'undefined' && + win.ServiceManager && + win.ServiceManager.version ) { // Wire up the queue transport = this._queue // get the default bridge service, and flush the queue - window.ServiceManager.getServiceForJavaScript(LEGACY_TRANSPORT_SERVICE_NAME, service => { + win.ServiceManager.getServiceForJavaScript(LEGACY_TRANSPORT_SERVICE_NAME, service => { if (LegacyTransport.isLegacy(service)) { transport = new LegacyTransport(service) } else { @@ -194,20 +196,20 @@ export default class Transport { */ static get () { /** Set up singleton and initialize it */ - window.__firebolt = window.__firebolt || {} - if ((window.__firebolt.transport == null) && (moduleInstance == null)) { + win.__firebolt = win.__firebolt || {} + if ((win.__firebolt.transport == null) && (moduleInstance == null)) { const transport = new Transport() transport.init() if (transport.isMock) { /** We should use the mock transport built with the SDK, not a global */ moduleInstance = transport } else { - window.__firebolt = window.__firebolt || {} - window.__firebolt.transport = transport + win.__firebolt = win.__firebolt || {} + win.__firebolt.transport = transport } - window.__firebolt.setTransportLayer = transport.setTransportLayer.bind(transport) + win.__firebolt.setTransportLayer = transport.setTransportLayer.bind(transport) } - return window.__firebolt.transport ? window.__firebolt.transport : moduleInstance + return win.__firebolt.transport ? win.__firebolt.transport : moduleInstance } receiveHandler (message) { @@ -248,12 +250,12 @@ export default class Transport { init () { initSettings({}, { log: true }) this._queue.receive(this.receiveHandler.bind(this)) - if (window.__firebolt) { - if (window.__firebolt.mockTransportLayer === true) { + if (win.__firebolt) { + if (win.__firebolt.mockTransportLayer === true) { this.isMock = true this.setTransportLayer(mock) - } else if (window.__firebolt.getTransportLayer) { - this.setTransportLayer(window.__firebolt.getTransportLayer()) + } else if (win.__firebolt.getTransportLayer) { + this.setTransportLayer(win.__firebolt.getTransportLayer()) } } if (this._transport == null) { @@ -261,7 +263,7 @@ export default class Transport { } } } -window.__firebolt = window.__firebolt || {} -window.__firebolt.setTransportLayer = transport => { +win.__firebolt = win.__firebolt || {} +win.__firebolt.setTransportLayer = transport => { Transport.get().setTransportLayer(transport) } From 91fa4d0f43aa49ec6db6e27e76e33dff0dcba6b4 Mon Sep 17 00:00:00 2001 From: Jeremy LaCivita Date: Thu, 27 Jul 2023 14:47:00 -0400 Subject: [PATCH 2/6] fix: Actually fixing window issue --- languages/javascript/src/shared/Transport/LegacyTransport.mjs | 2 +- languages/javascript/src/shared/Transport/MockTransport.mjs | 2 +- languages/javascript/src/shared/Transport/index.mjs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/languages/javascript/src/shared/Transport/LegacyTransport.mjs b/languages/javascript/src/shared/Transport/LegacyTransport.mjs index 99b15ecf..f43e58a4 100644 --- a/languages/javascript/src/shared/Transport/LegacyTransport.mjs +++ b/languages/javascript/src/shared/Transport/LegacyTransport.mjs @@ -16,7 +16,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -const win = typeof win !== 'undefined' ? window : this +const win = typeof window !== 'undefined' ? window : this export default class LegacyTransport { constructor (bridge) { diff --git a/languages/javascript/src/shared/Transport/MockTransport.mjs b/languages/javascript/src/shared/Transport/MockTransport.mjs index 3d1c39be..d27c3e0a 100644 --- a/languages/javascript/src/shared/Transport/MockTransport.mjs +++ b/languages/javascript/src/shared/Transport/MockTransport.mjs @@ -17,7 +17,7 @@ */ -const win = typeof win !== 'undefined' ? window : this +const win = typeof window !== 'undefined' ? window : this let listener export const setMockListener = func => { listener = func } diff --git a/languages/javascript/src/shared/Transport/index.mjs b/languages/javascript/src/shared/Transport/index.mjs index ce9de030..6ae07c08 100644 --- a/languages/javascript/src/shared/Transport/index.mjs +++ b/languages/javascript/src/shared/Transport/index.mjs @@ -28,7 +28,7 @@ let moduleInstance = null const isEventSuccess = x => x && (typeof x.event === 'string') && (typeof x.listening === 'boolean') -const win = typeof win !== 'undefined' ? window : this +const win = typeof window !== 'undefined' ? window : this export default class Transport { constructor () { From d411f9f6786c440ed5e6acc2c1ec8242e2bbdd21 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 27 Jul 2023 18:47:49 +0000 Subject: [PATCH 3/6] chore(release): 2.0.2-next.3 [skip ci] ## [2.0.2-next.3](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.2-next.2...v2.0.2-next.3) (2023-07-27) ### Bug Fixes * Actually fixing window issue ([91fa4d0](https://github.com/rdkcentral/firebolt-openrpc/commit/91fa4d0f43aa49ec6db6e27e76e33dff0dcba6b4)) * Fix Server-side rendering reference error on `window` ([0812ae0](https://github.com/rdkcentral/firebolt-openrpc/commit/0812ae075698ec1180d03a3693a322fb8cf1efa6)) --- CHANGELOG.md | 8 ++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71f9d234..0860d06c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [2.0.2-next.3](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.2-next.2...v2.0.2-next.3) (2023-07-27) + + +### Bug Fixes + +* Actually fixing window issue ([91fa4d0](https://github.com/rdkcentral/firebolt-openrpc/commit/91fa4d0f43aa49ec6db6e27e76e33dff0dcba6b4)) +* Fix Server-side rendering reference error on `window` ([0812ae0](https://github.com/rdkcentral/firebolt-openrpc/commit/0812ae075698ec1180d03a3693a322fb8cf1efa6)) + ## [2.0.2-next.2](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.2-next.1...v2.0.2-next.2) (2023-06-06) diff --git a/package-lock.json b/package-lock.json index 74155f3e..30cfc2a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@firebolt-js/openrpc", - "version": "2.0.2-next.2", + "version": "2.0.2-next.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@firebolt-js/openrpc", - "version": "2.0.2-next.2", + "version": "2.0.2-next.3", "license": "Apache-2.0", "dependencies": { "ajv": "^8.3.0", diff --git a/package.json b/package.json index a80a831a..d69a7960 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@firebolt-js/openrpc", - "version": "2.0.2-next.2", + "version": "2.0.2-next.3", "description": "The Firebolt SDK Code & Doc Generator", "main": "languages/javascript/src/sdk.mjs", "type": "module", From 711bddf864e9f4e4b7690000d6745ed0495c6537 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 27 Jul 2023 18:53:13 +0000 Subject: [PATCH 4/6] chore(release): 2.0.3-next.1 [skip ci] ## [2.0.3-next.1](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.2...v2.0.3-next.1) (2023-07-27) ### Bug Fixes * Actually fixing window issue ([91fa4d0](https://github.com/rdkcentral/firebolt-openrpc/commit/91fa4d0f43aa49ec6db6e27e76e33dff0dcba6b4)) * Fix Server-side rendering reference error on `window` ([0812ae0](https://github.com/rdkcentral/firebolt-openrpc/commit/0812ae075698ec1180d03a3693a322fb8cf1efa6)) --- CHANGELOG.md | 8 ++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c9089b9..a2fd8126 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [2.0.3-next.1](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.2...v2.0.3-next.1) (2023-07-27) + + +### Bug Fixes + +* Actually fixing window issue ([91fa4d0](https://github.com/rdkcentral/firebolt-openrpc/commit/91fa4d0f43aa49ec6db6e27e76e33dff0dcba6b4)) +* Fix Server-side rendering reference error on `window` ([0812ae0](https://github.com/rdkcentral/firebolt-openrpc/commit/0812ae075698ec1180d03a3693a322fb8cf1efa6)) + ## [2.0.2](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.1...v2.0.2) (2023-06-22) diff --git a/package-lock.json b/package-lock.json index 60a2fc6e..00376dec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@firebolt-js/openrpc", - "version": "2.0.2", + "version": "2.0.3-next.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@firebolt-js/openrpc", - "version": "2.0.2", + "version": "2.0.3-next.1", "license": "Apache-2.0", "dependencies": { "ajv": "^8.3.0", diff --git a/package.json b/package.json index f142d6f8..90d6af8f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@firebolt-js/openrpc", - "version": "2.0.2", + "version": "2.0.3-next.1", "description": "The Firebolt SDK Code & Doc Generator", "main": "languages/javascript/src/sdk.mjs", "type": "module", From c3cece17b8ec487a7043190d2932f4bdd70b3ab9 Mon Sep 17 00:00:00 2001 From: Jeremy LaCivita Date: Fri, 28 Jul 2023 09:28:49 -0400 Subject: [PATCH 5/6] fix: Use empty object instead of this for window fallback --- languages/javascript/src/shared/Transport/LegacyTransport.mjs | 2 +- languages/javascript/src/shared/Transport/MockTransport.mjs | 2 +- languages/javascript/src/shared/Transport/index.mjs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/languages/javascript/src/shared/Transport/LegacyTransport.mjs b/languages/javascript/src/shared/Transport/LegacyTransport.mjs index f43e58a4..8451c401 100644 --- a/languages/javascript/src/shared/Transport/LegacyTransport.mjs +++ b/languages/javascript/src/shared/Transport/LegacyTransport.mjs @@ -16,7 +16,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -const win = typeof window !== 'undefined' ? window : this +const win = typeof window !== 'undefined' ? window : {} export default class LegacyTransport { constructor (bridge) { diff --git a/languages/javascript/src/shared/Transport/MockTransport.mjs b/languages/javascript/src/shared/Transport/MockTransport.mjs index d27c3e0a..ec55964b 100644 --- a/languages/javascript/src/shared/Transport/MockTransport.mjs +++ b/languages/javascript/src/shared/Transport/MockTransport.mjs @@ -17,7 +17,7 @@ */ -const win = typeof window !== 'undefined' ? window : this +const win = typeof window !== 'undefined' ? window : {} let listener export const setMockListener = func => { listener = func } diff --git a/languages/javascript/src/shared/Transport/index.mjs b/languages/javascript/src/shared/Transport/index.mjs index 6ae07c08..e81255de 100644 --- a/languages/javascript/src/shared/Transport/index.mjs +++ b/languages/javascript/src/shared/Transport/index.mjs @@ -28,7 +28,7 @@ let moduleInstance = null const isEventSuccess = x => x && (typeof x.event === 'string') && (typeof x.listening === 'boolean') -const win = typeof window !== 'undefined' ? window : this +const win = typeof window !== 'undefined' ? window : {} export default class Transport { constructor () { From 0c4fbd6efbc0391b947ba754df5e13c1648cc9fe Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 28 Jul 2023 13:29:33 +0000 Subject: [PATCH 6/6] chore(release): 2.0.3-next.2 [skip ci] ## [2.0.3-next.2](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.3-next.1...v2.0.3-next.2) (2023-07-28) ### Bug Fixes * Use empty object instead of this for window fallback ([c3cece1](https://github.com/rdkcentral/firebolt-openrpc/commit/c3cece17b8ec487a7043190d2932f4bdd70b3ab9)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2fd8126..203f6168 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.0.3-next.2](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.3-next.1...v2.0.3-next.2) (2023-07-28) + + +### Bug Fixes + +* Use empty object instead of this for window fallback ([c3cece1](https://github.com/rdkcentral/firebolt-openrpc/commit/c3cece17b8ec487a7043190d2932f4bdd70b3ab9)) + ## [2.0.3-next.1](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.2...v2.0.3-next.1) (2023-07-27) diff --git a/package-lock.json b/package-lock.json index 00376dec..48c4d8bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@firebolt-js/openrpc", - "version": "2.0.3-next.1", + "version": "2.0.3-next.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@firebolt-js/openrpc", - "version": "2.0.3-next.1", + "version": "2.0.3-next.2", "license": "Apache-2.0", "dependencies": { "ajv": "^8.3.0", diff --git a/package.json b/package.json index 90d6af8f..3cac9d56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@firebolt-js/openrpc", - "version": "2.0.3-next.1", + "version": "2.0.3-next.2", "description": "The Firebolt SDK Code & Doc Generator", "main": "languages/javascript/src/sdk.mjs", "type": "module",