fix(DeesComms): Skip routing hooks for BroadcastChannel-received messages to prevent infinite loops; update typedrequest dependency and bump package version.
This commit is contained in:
@@ -1,5 +1,12 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2025-12-04 - 1.0.30 - fix(DeesComms)
|
||||||
|
Skip routing hooks for BroadcastChannel-received messages to prevent infinite loops; update typedrequest dependency and bump package version.
|
||||||
|
|
||||||
|
- Skip hooks when routing responses for messages received from the BroadcastChannel (prevents infinite loops when global traffic-logging hooks are present).
|
||||||
|
- Bump dependency @api.global/typedrequest to ^3.2.3.
|
||||||
|
- Bump package version to 1.0.29.
|
||||||
|
|
||||||
## 2025-12-04 - 1.0.28 - fix(build)
|
## 2025-12-04 - 1.0.28 - fix(build)
|
||||||
Upgrade build/test tooling and runtime deps; enable verbose tests
|
Upgrade build/test tooling and runtime deps; enable verbose tests
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@design.estate/dees-comms",
|
"name": "@design.estate/dees-comms",
|
||||||
"version": "1.0.28",
|
"version": "1.0.29",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "A communications module for enabling DOM-based messaging and synchronization across browser tabs and workers.",
|
"description": "A communications module for enabling DOM-based messaging and synchronization across browser tabs and workers.",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"@types/node": "^24.10.1"
|
"@types/node": "^24.10.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@api.global/typedrequest": "^3.2.2",
|
"@api.global/typedrequest": "^3.2.3",
|
||||||
"@api.global/typedrequest-interfaces": "^3.0.19",
|
"@api.global/typedrequest-interfaces": "^3.0.19",
|
||||||
"@push.rocks/smartdelay": "^3.0.5",
|
"@push.rocks/smartdelay": "^3.0.5",
|
||||||
"broadcast-channel": "^7.2.0"
|
"broadcast-channel": "^7.2.0"
|
||||||
|
|||||||
20
pnpm-lock.yaml
generated
20
pnpm-lock.yaml
generated
@@ -9,8 +9,8 @@ importers:
|
|||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest':
|
'@api.global/typedrequest':
|
||||||
specifier: ^3.2.2
|
specifier: ^3.2.3
|
||||||
version: 3.2.2
|
version: 3.2.3
|
||||||
'@api.global/typedrequest-interfaces':
|
'@api.global/typedrequest-interfaces':
|
||||||
specifier: ^3.0.19
|
specifier: ^3.0.19
|
||||||
version: 3.0.19
|
version: 3.0.19
|
||||||
@@ -48,8 +48,8 @@ packages:
|
|||||||
'@api.global/typedrequest-interfaces@3.0.19':
|
'@api.global/typedrequest-interfaces@3.0.19':
|
||||||
resolution: {integrity: sha512-uuHUXJeOy/inWSDrwD0Cwax2rovpxYllDhM2RWh+6mVpQuNmZ3uw6IVg6dA2G1rOe24Ebs+Y9SzEogo+jYN7vw==}
|
resolution: {integrity: sha512-uuHUXJeOy/inWSDrwD0Cwax2rovpxYllDhM2RWh+6mVpQuNmZ3uw6IVg6dA2G1rOe24Ebs+Y9SzEogo+jYN7vw==}
|
||||||
|
|
||||||
'@api.global/typedrequest@3.2.2':
|
'@api.global/typedrequest@3.2.3':
|
||||||
resolution: {integrity: sha512-tUmpq+JRcrj8mjb44zLfcWDnArKqqRxPra5oZo4Ghp0P/wf2MhEthZcaD9iz8goJ6PnvBrbmrIz94I7VrfLIcA==}
|
resolution: {integrity: sha512-TK2JfRtd62fWi2HSv5tHxUdm7qIkMkOKuqDoMK7szmHdGauKD4m63OrrF4K1OoCWsMe+gjcat6QIE+ID8muntw==}
|
||||||
|
|
||||||
'@api.global/typedserver@3.0.80':
|
'@api.global/typedserver@3.0.80':
|
||||||
resolution: {integrity: sha512-dcp0oXsjBL+XdFg1wUUP08uJQid5bQ0Yv3V3Y3lnI2QCbat0FU+Tsb0TZRnZ4+P150Vj/ITBqJUgDzFsF34grA==}
|
resolution: {integrity: sha512-dcp0oXsjBL+XdFg1wUUP08uJQid5bQ0Yv3V3Y3lnI2QCbat0FU+Tsb0TZRnZ4+P150Vj/ITBqJUgDzFsF34grA==}
|
||||||
@@ -4109,7 +4109,7 @@ snapshots:
|
|||||||
|
|
||||||
'@api.global/typedrequest-interfaces@3.0.19': {}
|
'@api.global/typedrequest-interfaces@3.0.19': {}
|
||||||
|
|
||||||
'@api.global/typedrequest@3.2.2':
|
'@api.global/typedrequest@3.2.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest-interfaces': 3.0.19
|
'@api.global/typedrequest-interfaces': 3.0.19
|
||||||
'@push.rocks/isounique': 1.0.5
|
'@push.rocks/isounique': 1.0.5
|
||||||
@@ -4123,7 +4123,7 @@ snapshots:
|
|||||||
|
|
||||||
'@api.global/typedserver@3.0.80':
|
'@api.global/typedserver@3.0.80':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest': 3.2.2
|
'@api.global/typedrequest': 3.2.3
|
||||||
'@api.global/typedrequest-interfaces': 3.0.19
|
'@api.global/typedrequest-interfaces': 3.0.19
|
||||||
'@api.global/typedsocket': 3.1.1
|
'@api.global/typedsocket': 3.1.1
|
||||||
'@cloudflare/workers-types': 4.20251202.0
|
'@cloudflare/workers-types': 4.20251202.0
|
||||||
@@ -4171,7 +4171,7 @@ snapshots:
|
|||||||
|
|
||||||
'@api.global/typedsocket@3.1.1':
|
'@api.global/typedsocket@3.1.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest': 3.2.2
|
'@api.global/typedrequest': 3.2.3
|
||||||
'@api.global/typedrequest-interfaces': 3.0.19
|
'@api.global/typedrequest-interfaces': 3.0.19
|
||||||
'@push.rocks/isohash': 2.0.1
|
'@push.rocks/isohash': 2.0.1
|
||||||
'@push.rocks/smartjson': 5.2.0
|
'@push.rocks/smartjson': 5.2.0
|
||||||
@@ -4694,14 +4694,14 @@ snapshots:
|
|||||||
|
|
||||||
'@design.estate/dees-comms@1.0.27':
|
'@design.estate/dees-comms@1.0.27':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest': 3.2.2
|
'@api.global/typedrequest': 3.2.3
|
||||||
'@api.global/typedrequest-interfaces': 3.0.19
|
'@api.global/typedrequest-interfaces': 3.0.19
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
broadcast-channel: 7.2.0
|
broadcast-channel: 7.2.0
|
||||||
|
|
||||||
'@design.estate/dees-domtools@2.3.6':
|
'@design.estate/dees-domtools@2.3.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest': 3.2.2
|
'@api.global/typedrequest': 3.2.3
|
||||||
'@design.estate/dees-comms': 1.0.27
|
'@design.estate/dees-comms': 1.0.27
|
||||||
'@push.rocks/lik': 6.2.2
|
'@push.rocks/lik': 6.2.2
|
||||||
'@push.rocks/smartdelay': 3.0.5
|
'@push.rocks/smartdelay': 3.0.5
|
||||||
@@ -5295,7 +5295,7 @@ snapshots:
|
|||||||
|
|
||||||
'@push.rocks/qenv@6.1.3':
|
'@push.rocks/qenv@6.1.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@api.global/typedrequest': 3.2.2
|
'@api.global/typedrequest': 3.2.3
|
||||||
'@configvault.io/interfaces': 1.0.17
|
'@configvault.io/interfaces': 1.0.17
|
||||||
'@push.rocks/smartfile': 11.2.7
|
'@push.rocks/smartfile': 11.2.7
|
||||||
'@push.rocks/smartlog': 3.1.10
|
'@push.rocks/smartlog': 3.1.10
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@design.estate/dees-comms',
|
name: '@design.estate/dees-comms',
|
||||||
version: '1.0.28',
|
version: '1.0.30',
|
||||||
description: 'A communications module for enabling DOM-based messaging and synchronization across browser tabs and workers.'
|
description: 'A communications module for enabling DOM-based messaging and synchronization across browser tabs and workers.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,9 @@ export class DeesComms {
|
|||||||
this.broadcastChannel.onmessage = async (eventArg) => {
|
this.broadcastChannel.onmessage = async (eventArg) => {
|
||||||
const message = (eventArg as any).method ? eventArg : eventArg.data;
|
const message = (eventArg as any).method ? eventArg : eventArg.data;
|
||||||
console.log(JSON.stringify(message));
|
console.log(JSON.stringify(message));
|
||||||
const response = await this.typedrouter.routeAndAddResponse(message);
|
// Skip hooks for broadcast-received messages to prevent infinite loops
|
||||||
|
// when traffic logging hooks are set up globally
|
||||||
|
const response = await this.typedrouter.routeAndAddResponse(message, { skipHooks: true });
|
||||||
if (response && !response.error) {
|
if (response && !response.error) {
|
||||||
this.postMessage(response);
|
this.postMessage(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user