react-broadcast-sync 1.10.0 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -19,3 +19,14 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  THE SOFTWARE.
22
+
23
+ ---
24
+
25
+ TELEMETRY NOTICE
26
+
27
+ This Software collects anonymous, non-personal usage statistics by default.
28
+ No channel names, source names, message content, user identifiers, or any
29
+ personally identifiable information is collected. Session identifiers are
30
+ randomly generated on each page load and are never persisted. You may opt out
31
+ at any time by passing { telemetry: false } to useBroadcastChannel or
32
+ BroadcastProvider. See TELEMETRY.md for full details.
package/README.md CHANGED
@@ -53,6 +53,7 @@ Easily sync UI state or user events across browser tabs in React apps — notifi
53
53
  - [Troubleshooting](#-roubleshooting)
54
54
  - [Testing](#testing)
55
55
  - [Browser Support](#browser-support)
56
+ - [Telemetry](#telemetry)
56
57
  - [Coming Soon](#coming-soon)
57
58
  - [Versioning & Releases](#versioning--releases)
58
59
  - [Contributing](#contributing)
@@ -257,23 +258,25 @@ interface BroadcastOptions {
257
258
  batchingDelayMs?: number; // Delay in ms to batch outgoing messages (default: 20). If > 0, messages are batched and sent together.
258
259
  excludedBatchMessageTypes?: string[]; // Message types to always send immediately, never batched (default: []).
259
260
  onMessage?: MessageCallback | OnMessageMap; // Callback(s) fired when a received message passes all filters (default: undefined).
261
+ telemetry?: boolean; // Opt-out anonymous usage telemetry (default: true). Pass false to disable.
260
262
  }
261
263
  ```
262
264
 
263
265
  #### Default Values
264
266
 
265
- | Option | Default Value | Description |
266
- | --------------------------- | ------------- | ----------------------------------- |
267
- | `sourceName` | `undefined` | Auto-generated if not provided |
268
- | `cleaningInterval` | `1000` | 1 second between cleanup runs |
269
- | `keepLatestMessage` | `false` | Keep all messages by default |
270
- | `registeredTypes` | `[]` | Accept all message types by default |
271
- | `namespace` | `''` | No namespace by default |
272
- | `deduplicationTTL` | `300000` | 5 minutes (5 × 60 × 1000 ms) |
273
- | `cleanupDebounceMs` | `0` | No debounce by default |
274
- | `batchingDelayMs` | `20` | Batch delay in ms (0 = off) |
275
- | `excludedBatchMessageTypes` | `[]` | Types never batched |
276
- | `onMessage` | `undefined` | Callback(s) for received messages |
267
+ | Option | Default Value | Description |
268
+ | --------------------------- | ------------- | ---------------------------------------------- |
269
+ | `sourceName` | `undefined` | Auto-generated if not provided |
270
+ | `cleaningInterval` | `1000` | 1 second between cleanup runs |
271
+ | `keepLatestMessage` | `false` | Keep all messages by default |
272
+ | `registeredTypes` | `[]` | Accept all message types by default |
273
+ | `namespace` | `''` | No namespace by default |
274
+ | `deduplicationTTL` | `300000` | 5 minutes (5 × 60 × 1000 ms) |
275
+ | `cleanupDebounceMs` | `0` | No debounce by default |
276
+ | `batchingDelayMs` | `20` | Batch delay in ms (0 = off) |
277
+ | `excludedBatchMessageTypes` | `[]` | Types never batched |
278
+ | `onMessage` | `undefined` | Callback(s) for received messages |
279
+ | `telemetry` | `true` | Anonymous usage stats. Pass `false` to opt out |
277
280
 
278
281
  #### Return Value
279
282
 
@@ -488,6 +491,7 @@ useBroadcastChannel('my-channel', {
488
491
  `react-broadcast-sync` collects anonymous, structural usage signals to help the maintainer understand how the library is used in the wild.
489
492
 
490
493
  **What is collected:**
494
+
491
495
  - Which `BroadcastOptions` keys are present (not their values)
492
496
  - The shape of `onMessage` (`none` / `function` / `map`)
493
497
  - Whether batching is enabled
@@ -496,11 +500,16 @@ useBroadcastChannel('my-channel', {
496
500
  - Hook vs. provider entry point
497
501
 
498
502
  **What is never collected:**
503
+
499
504
  - Channel names, source names, message content, or message types
500
505
  - Any user-identifying data
501
506
 
507
+ Telemetry is **on by default**. Pass `telemetry: false` to opt out at any time with no behaviour change.
508
+
502
509
  Events are batched and flushed in a single request when the tab is hidden or after 30 seconds. A failed request is silently discarded and never surfaces to your application.
503
510
 
511
+ See [TELEMETRY.md](./TELEMETRY.md) for the full legal notice.
512
+
504
513
  ---
505
514
 
506
515
  ## Best Practices
@@ -749,6 +758,24 @@ Relies on [BroadcastChannel API](https://developer.mozilla.org/en-US/docs/Web/AP
749
758
 
750
759
  ---
751
760
 
761
+ ## Telemetry
762
+
763
+ `react-broadcast-sync` collects **anonymous, non-personal usage statistics** by default to help the maintainer prioritise features and fix real-world issues. No channel names, source names, message content, or user data of any kind is ever collected.
764
+
765
+ A random session ID is generated on every page load and is never persisted to cookies or storage, making it impossible to track individual users or sessions.
766
+
767
+ **To opt out**, pass `telemetry: false`:
768
+
769
+ ```tsx
770
+ useBroadcastChannel('my-channel', { telemetry: false });
771
+ // or
772
+ <BroadcastProvider channelName="my-channel" options={{ telemetry: false }} />;
773
+ ```
774
+
775
+ See [TELEMETRY.md](./TELEMETRY.md) for full details, legal basis, and the complete list of signals collected.
776
+
777
+ ---
778
+
752
779
  ## Coming Soon
753
780
 
754
781
  We're actively improving `react-broadcast-sync`! Here are some features and enhancements planned for upcoming versions:
package/TELEMETRY.md ADDED
@@ -0,0 +1,65 @@
1
+ # Telemetry Notice — react-broadcast-sync
2
+
3
+ ## What is collected
4
+
5
+ `react-broadcast-sync` collects **anonymous, non-personal usage statistics** to help the maintainer understand how the library is used in practice. This data is used solely to prioritise features and fix real-world issues.
6
+
7
+ The following structural signals are sent on every channel mount:
8
+
9
+ | Signal | Description |
10
+ | ------------------- | --------------------------------------------------------------------------------------------- |
11
+ | `entry` | Whether `useBroadcastChannel` or `BroadcastProvider` was used |
12
+ | `options_used` | Names of `BroadcastOptions` keys that differ from their default values |
13
+ | `onmessage_shape` | Whether `onMessage` is absent, a function, or a type-keyed map |
14
+ | `batching_enabled` | Whether `batchingDelayMs > 0` |
15
+ | `browser_supported` | Whether `BroadcastChannel` is available in the browser |
16
+ | `method_called` | Which action methods (`postMessage`, `ping`, etc.) were called at least once per page session |
17
+
18
+ ## What is never collected
19
+
20
+ - Channel names
21
+ - Source names (`sourceName`)
22
+ - Message content or message types
23
+ - User identifiers of any kind
24
+ - IP addresses (Mixpanel may record these server-side; see Mixpanel's privacy policy)
25
+ - Any data from the messages your application sends or receives
26
+
27
+ ## Session identifier
28
+
29
+ Each page load generates a random, ephemeral session ID using `crypto.randomUUID()`. This ID:
30
+
31
+ - Is **not persisted** to cookies, `localStorage`, `sessionStorage`, or any other storage mechanism.
32
+ - Is **regenerated on every page load**, making it impossible to track users across sessions.
33
+ - Cannot be linked back to any individual user or device.
34
+
35
+ Because the identifier is non-persistent and randomly regenerated, the data collected does not constitute "personal data" under the GDPR definition (Regulation (EU) 2016/679, Article 4(1)).
36
+
37
+ ## Legal basis
38
+
39
+ The data collected is fully anonymous and structural. No personal data or data that can identify a natural person is processed. The collection falls under the **legitimate interests** of the package maintainer (GDPR Article 6(1)(f)) to understand aggregate library usage patterns.
40
+
41
+ Because no cookies or persistent identifiers are set on the user's device, the ePrivacy Directive (Directive 2002/58/EC) cookie consent requirements do not apply.
42
+
43
+ ## Data processor
44
+
45
+ Usage statistics are processed by [Mixpanel](https://mixpanel.com). Mixpanel's privacy policy is available at [https://mixpanel.com/legal/privacy-policy/](https://mixpanel.com/legal/privacy-policy/).
46
+
47
+ ## How to opt out
48
+
49
+ Telemetry is enabled by default and can be disabled at any time by passing `telemetry: false`:
50
+
51
+ ```tsx
52
+ // Disable for a specific channel
53
+ useBroadcastChannel('my-channel', { telemetry: false });
54
+
55
+ // Disable via BroadcastProvider
56
+ <BroadcastProvider channelName="my-channel" options={{ telemetry: false }}>
57
+ <App />
58
+ </BroadcastProvider>;
59
+ ```
60
+
61
+ There is no penalty, degraded functionality, or behaviour change when opting out.
62
+
63
+ ## Contact
64
+
65
+ Questions or concerns about this telemetry notice can be raised by [opening an issue](https://github.com/IdanShalem/react-broadcast-sync/issues) on the project repository.
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("tslib"),n=require("react/jsx-runtime");const r="__INTERNAL__",s=()=>Math.random().toString(36).substr(2,9),a=(e,t)=>{const n=`${s()}-${e}-${t}`;return btoa(n).replace(/=+$/,"")},o=e=>!!e.expirationDate&&e.expirationDate<Date.now(),c=(e,t,n,r={})=>{var s;const o=Date.now();return{id:a(n,o),type:e,message:t,timestamp:o,source:n,expirationDate:null!==(s=r.expirationDate)&&void 0!==s?s:r.expirationDuration?o+r.expirationDuration:void 0}},i=(e,t,n="")=>{const s=btoa(`react-broadcast-sync:${e}:${`${t}-${n}`}`);return`${r}:${e}:${s}`},l=e=>e&&"object"==typeof e&&"string"==typeof e.type&&e.type.startsWith(`${r}:`)&&"string"==typeof e.source,u=(e,t,n)=>{if("undefined"==typeof process||!process.env||"true"!==process.env.REACT_APP_DEBUG_BROADCAST)return;const r=`[${(new Date).toISOString()}] [react-broadcast-sync]`;switch(e){case"info":console.log(r,t,n||"");break;case"warn":console.warn(r,t,n||"");break;case"error":console.error(r,t,n||"")}},d={created:e=>u("info","Channel created:",e),closed:e=>u("info","Channel closed:",e)},p={sent:e=>u("info","Message sent:",e),received:e=>u("info","Message received:",e),cleared:e=>u("info","Message cleared:",e),expired:e=>u("info","Message expired:",e),duplicate:e=>u("warn","Duplicate message ignored:",e),allSentCleared:()=>u("info","All sent messages cleared"),allReceivedCleared:()=>u("info","All received messages cleared"),ignored:e=>u("info","Message ignored due to type filter:",e)},g={inProgress:()=>u("warn","Ping already in progress. Skipping call.")},h={started:()=>u("info","Cleanup started"),completed:e=>u("info","Cleanup completed:",e)},f=e=>{const{action:t,channelName:n,type:r,source:s,originalError:a}=e;let o=`${t}`;if(n&&(o+=` | channel: ${n}`),r&&(o+=` | type: ${r}`),s&&(o+=` | source: ${s}`),a instanceof Error)o+=` | cause: ${a.message}`;else if("string"==typeof a)o+=` | cause: ${a}`;else if(null!=a)try{o+=` | cause: ${JSON.stringify(a)}`}catch(e){o+=" | cause: [unserializable]"}u("error","Error:",o)};let y="";const m=(()=>{var e,t,n;try{return null!==(n=null===(t=(e=crypto).randomUUID)||void 0===t?void 0:t.call(e))&&void 0!==n?n:Math.random().toString(36).slice(2)+Date.now().toString(36)}catch(e){return Math.random().toString(36).slice(2)+Date.now().toString(36)}})(),v=[],E=new Set;let M=null;function S(e,t){return{event:e,properties:Object.assign({token:y,distinct_id:m,time:Math.floor(Date.now()/1e3)},t)}}function b(){return t.__awaiter(this,void 0,void 0,(function*(){if(0===v.length||!y)return;const e=v.splice(0);try{yield fetch("https://api.mixpanel.com/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),keepalive:!0})}catch(e){}}))}function C(){y&&null===M&&(M=setTimeout((()=>{M=null,b()}),3e4))}function N(e){E.has(e)||(E.add(e),v.push(S("method_called",{method:e})),C())}"undefined"!=typeof document&&document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&(null!==M&&(clearTimeout(M),M=null),b())}));const w="CLEAR_SENT_MESSAGES",T="PING",P="PONG";let _;if("test"===process.env.NODE_ENV)try{_=require("react-dom").flushSync}catch(e){}const D=(t,n={},r="hook")=>{const{sourceName:a,cleaningInterval:u=1e3,keepLatestMessage:y=!1,registeredTypes:m=[],namespace:E="",deduplicationTTL:M=3e5,cleanupDebounceMs:b=0,batchingDelayMs:D=20,excludedBatchMessageTypes:$=[],onMessage:k}=n,[B,R]=e.useState([]),[A,x]=e.useState([]),[G,I]=e.useState(null),[L,O]=e.useState(!1),j=e.useRef(null),q=e.useRef(new Map),F=e.useRef(null),U=e.useRef(null),J=e.useRef([]),z=e.useRef(!1),V=e.useRef(k);V.current=k;const W=e.useMemo((()=>a||`tab-${s()}`),[a]),H=e.useMemo((()=>({CLEAR_SENT_MESSAGES:i(w,t,E),PING:i(T,t,E),PONG:i(P,t,E)})),[t,E]),K=e.useMemo((()=>E?`${t}-${E}`:t),[t,E]),Q=e.useRef(m);Q.current=m,e.useEffect((()=>{const e=[];var t;void 0!==a&&e.push("sourceName"),1e3!==u&&e.push("cleaningInterval"),y&&e.push("keepLatestMessage"),m.length>0&&e.push("registeredTypes"),E&&e.push("namespace"),3e5!==M&&e.push("deduplicationTTL"),b>0&&e.push("cleanupDebounceMs"),20!==D&&e.push("batchingDelayMs"),$.length>0&&e.push("excludedBatchMessageTypes"),void 0!==k&&e.push("onMessage"),t={entry:r,options_used:e,onmessage_shape:void 0===k?"none":"function"==typeof k?"function":"map",batching_enabled:D>0,browser_supported:"undefined"!=typeof BroadcastChannel},v.push(S("channel_init",t)),C()}),[]);const X=e.useCallback((()=>{R((e=>e.filter((e=>!o(e)))))}),[]),Y=e.useRef(b>0?((e,t)=>{let n,r=null,s=null;const a=(...a)=>{s=a,null!==r&&clearTimeout(r),r=setTimeout((()=>{r=null,null!==s&&(n=e(...s),s=null)}),t)};return a.cancel=()=>{null!==r&&(clearTimeout(r),r=null,s=null)},a.flush=()=>(null!==r&&(clearTimeout(r),r=null,null!==s&&(n=e(...s),s=null)),n),a})(X,b):Object.assign(X,{cancel:()=>{}})).current,Z=e.useCallback((e=>{I(e),setTimeout((()=>I(null)),3e3)}),[]),ee=e.useCallback(((e=300)=>{if(N("ping"),L)return g.inProgress(),Promise.resolve([]);if(!j.current){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return f({action:"ping",channelName:K,originalError:e}),Z(e),Promise.resolve([])}_?_((()=>O(!0))):O(!0);const t=new Set;return F.current=t,j.current.postMessage(c(H.PING,null,W)),new Promise((n=>{setTimeout((()=>{O(!1),F.current===t&&(F.current=null),n(Array.from(t))}),e)}))}),[H.PING,W,Z,L,_]),te=e.useCallback(((e,t,n={})=>{N("postMessage");const r=j.current;if(!r){const t="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return f({action:"postMessage",channelName:K,type:e,originalError:t}),void Z(t)}const s=c(e,t,W,n);if(!D||D<0||$.includes(e))try{r.postMessage(s)}catch(t){const n="Failed to send message";f({action:"postMessage",channelName:K,type:e,originalError:n}),Z(n),z.current=!0}else J.current.push(s),U.current||(U.current=setTimeout((()=>{if(z.current)return J.current=[],void(U.current=null);try{r.postMessage(J.current)}catch(t){const n="Failed to send message";f({action:"postMessage",channelName:K,type:e,originalError:n}),Z(n),z.current=!0}J.current=[],U.current=null}),D));p.sent(s),x((e=>[...e,s]))}),[W,Z,D,$]),ne=e.useCallback(((e={})=>{N("clearReceivedMessages");const t=Boolean(e.ids&&e.ids.length||e.types&&e.types.length||e.sources&&e.sources.length);R((n=>t?n.filter((t=>!(e.ids&&e.ids.includes(t.id)||e.types&&e.types.includes(t.type)||e.sources&&e.sources.includes(t.source)))):[])),t||p.allReceivedCleared()}),[]),re=e.useCallback(((e={})=>{var t,n,r;N("clearSentMessages");const{ids:s=[],types:a=[],sync:o=!1}=null!=e?e:{};x((e=>s.length>0||a.length>0?e.filter((e=>{if(e.source!==W)return!0;const t=0===s.length||s.includes(e.id),n=0===a.length||a.includes(e.type);return!(t&&n)})):[])),0===s.length&&0===a.length&&p.allSentCleared(),o&&(null===(t=j.current)||void 0===t||t.postMessage(c(H.CLEAR_SENT_MESSAGES,{ids:null!==(n=e.ids)&&void 0!==n?n:[],types:null!==(r=e.types)&&void 0!==r?r:[]},W)))}),[W,H.CLEAR_SENT_MESSAGES]),se=e.useCallback(((e={})=>{N("getLatestMessage");const{source:t,type:n}=e;for(let e=B.length-1;e>=0;e--){const r=B[e],s=!t||r.source===t,a=!n||r.type===n;if(s&&a)return r}return null}),[B]),ae=e.useCallback((e=>{var t,n;try{const r=e.data;if(p.received(r),!(e=>Boolean(e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type&&"string"==typeof e.source&&"number"==typeof e.timestamp))(r))return;if(r.source===W)return;if(l(r)){if(r.type===H.CLEAR_SENT_MESSAGES){const{ids:e=[],types:t=[]}=r.message||{};return void R((n=>[...n.filter((n=>{if(n.source!==r.source)return!0;const s=0===e.length||e.includes(n.id),a=0===t.length||t.includes(n.type);return!(s&&a)}))]))}if(r.type===H.PING)return void(null===(t=j.current)||void 0===t||t.postMessage(c(H.PONG,null,W)));if(r.type===H.PONG){const e=r.source,t=F.current;return void(t&&!1===t.has(e)&&t.add(e))}}if(Q.current.length>0&&!Q.current.includes(r.type))return void p.ignored(r.type);if(o(r))return void p.expired(r.id);const s=Date.now(),a=q.current.get(r.id);if(a&&s-a<M)return void p.duplicate(r.id);q.current.set(r.id,s),R((e=>y?[r]:[...e,r]));try{const e=V.current;"function"==typeof e?e(r):e&&(null===(n=e[r.type])||void 0===n||n.call(e,r))}catch(e){f({action:"onMessage",channelName:K,originalError:e instanceof Error?e.message:String(e)})}}catch(e){const t="Error processing broadcast message";f({action:"handleMessage",channelName:K,originalError:t}),Z(t)}}),[W,y,Z,H,M]),oe=e.useCallback((()=>{N("closeChannel");const e=j.current;e&&"function"==typeof e.close&&(e.removeEventListener("message",ae),e.close(),d.closed(K),j.current=null)}),[ae,K]);return e.useEffect((()=>{if("undefined"==typeof BroadcastChannel){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return f({action:"useBroadcastChannel",channelName:K,originalError:e}),v.push(S("browser_unsupported",{})),C(),void Z(e)}let e=null;try{e=new BroadcastChannel(K)}catch(e){const t="Failed to create BroadcastChannel";return f({action:"useBroadcastChannel",channelName:K,originalError:e instanceof Error?e:String(e)}),void Z(t)}return j.current=e,d.created(K),e.addEventListener("message",(e=>{Array.isArray(e.data)?e.data.forEach((e=>{ae({data:e})})):ae(e)})),()=>{oe()}}),[K,ae,Z]),e.useEffect((()=>{if(u<=0)return;const e=setInterval((()=>{h.started();const e=B.length;Y(),h.completed(e-B.length)}),u);return()=>{var t;clearInterval(e),b>0&&(null===(t=Y.cancel)||void 0===t||t.call(Y))}}),[u,Y,b]),e.useEffect((()=>{const e=setInterval((()=>{const e=Date.now();for(const[t,n]of q.current.entries())e-n>=M&&q.current.delete(t)}),6e4);return()=>clearInterval(e)}),[M]),e.useEffect((()=>()=>{if(J.current.length>0&&j.current&&!z.current){try{j.current.postMessage(J.current)}catch(e){const t="Failed to send message";f({action:"useBroadcastChannel",channelName:K,originalError:e instanceof Error?e:String(e)}),Z(t)}J.current=[],setTimeout((()=>{}),0)}U.current&&(clearTimeout(U.current),U.current=null),z.current=!1}),[]),{channelName:K,messages:B,sentMessages:A,isPingInProgress:L,ping:ee,postMessage:te,clearReceivedMessages:ne,clearSentMessages:re,getLatestMessage:se,error:G,closeChannel:oe}},$=e.createContext(void 0);exports.BroadcastProvider=({children:e,channelName:t,options:r})=>{const s=D(t,r,"provider");return n.jsx($.Provider,{value:s,children:e})},exports.useBroadcastChannel=D,exports.useBroadcastProvider=()=>{const t=e.useContext($);if(!t)throw new Error("useBroadcastProvider must be used within a BroadcastProvider");return t};
1
+ "use strict";var e=require("react"),t=require("tslib"),n=require("react/jsx-runtime");const r="__INTERNAL__",s=()=>Math.random().toString(36).substr(2,9),a=(e,t)=>{const n=`${s()}-${e}-${t}`;return btoa(n).replace(/=+$/,"")},o=e=>!!e.expirationDate&&e.expirationDate<Date.now(),c=(e,t,n,r={})=>{var s;const o=Date.now();return{id:a(n,o),type:e,message:t,timestamp:o,source:n,expirationDate:null!==(s=r.expirationDate)&&void 0!==s?s:r.expirationDuration?o+r.expirationDuration:void 0}},i=(e,t,n="")=>{const s=btoa(`react-broadcast-sync:${e}:${`${t}-${n}`}`);return`${r}:${e}:${s}`},l=e=>e&&"object"==typeof e&&"string"==typeof e.type&&e.type.startsWith(`${r}:`)&&"string"==typeof e.source,u=(e,t,n)=>{if("undefined"==typeof process||!process.env||"true"!==process.env.REACT_APP_DEBUG_BROADCAST)return;const r=`[${(new Date).toISOString()}] [react-broadcast-sync]`;switch(e){case"info":console.log(r,t,n||"");break;case"warn":console.warn(r,t,n||"");break;case"error":console.error(r,t,n||"")}},d={created:e=>u("info","Channel created:",e),closed:e=>u("info","Channel closed:",e)},p={sent:e=>u("info","Message sent:",e),received:e=>u("info","Message received:",e),cleared:e=>u("info","Message cleared:",e),expired:e=>u("info","Message expired:",e),duplicate:e=>u("warn","Duplicate message ignored:",e),allSentCleared:()=>u("info","All sent messages cleared"),allReceivedCleared:()=>u("info","All received messages cleared"),ignored:e=>u("info","Message ignored due to type filter:",e)},g={inProgress:()=>u("warn","Ping already in progress. Skipping call.")},h={started:()=>u("info","Cleanup started"),completed:e=>u("info","Cleanup completed:",e)},f=e=>{const{action:t,channelName:n,type:r,source:s,originalError:a}=e;let o=`${t}`;if(n&&(o+=` | channel: ${n}`),r&&(o+=` | type: ${r}`),s&&(o+=` | source: ${s}`),a instanceof Error)o+=` | cause: ${a.message}`;else if("string"==typeof a)o+=` | cause: ${a}`;else if(null!=a)try{o+=` | cause: ${JSON.stringify(a)}`}catch(e){o+=" | cause: [unserializable]"}u("error","Error:",o)};let y="";const m=(()=>{var e,t,n;try{return null!==(n=null===(t=(e=crypto).randomUUID)||void 0===t?void 0:t.call(e))&&void 0!==n?n:Math.random().toString(36).slice(2)+Date.now().toString(36)}catch(e){return Math.random().toString(36).slice(2)+Date.now().toString(36)}})(),v=[],E=new Set;let M=null;function S(e,t){return{event:e,properties:Object.assign({token:y,distinct_id:m,time:Math.floor(Date.now()/1e3)},t)}}function b(){return t.__awaiter(this,void 0,void 0,(function*(){if(0===v.length||!y)return;const e=v.splice(0);try{yield fetch("https://api-eu.mixpanel.com/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),keepalive:!0})}catch(e){}}))}function C(){y&&null===M&&(M=setTimeout((()=>{M=null,b()}),3e4))}function N(e){E.has(e)||(E.add(e),v.push(S("method_called",{method:e})),C())}"undefined"!=typeof document&&document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&(null!==M&&(clearTimeout(M),M=null),b())}));const w="CLEAR_SENT_MESSAGES",T="PING",P="PONG";let _;if("test"===process.env.NODE_ENV)try{_=require("react-dom").flushSync}catch(e){}const D=(t,n={},r="hook")=>{const{sourceName:a,cleaningInterval:u=1e3,keepLatestMessage:y=!1,registeredTypes:m=[],namespace:E="",deduplicationTTL:M=3e5,cleanupDebounceMs:b=0,batchingDelayMs:D=20,excludedBatchMessageTypes:$=[],onMessage:k,telemetry:B=!0}=n,[R,A]=e.useState([]),[x,G]=e.useState([]),[I,L]=e.useState(null),[O,j]=e.useState(!1),q=e.useRef(null),F=e.useRef(new Map),U=e.useRef(null),J=e.useRef(null),z=e.useRef([]),V=e.useRef(!1),W=e.useRef(k);W.current=k;const H=e.useMemo((()=>a||`tab-${s()}`),[a]),K=e.useMemo((()=>({CLEAR_SENT_MESSAGES:i(w,t,E),PING:i(T,t,E),PONG:i(P,t,E)})),[t,E]),Q=e.useMemo((()=>E?`${t}-${E}`:t),[t,E]),X=e.useRef(m);X.current=m,e.useEffect((()=>{if(!B)return;const e=[];var t;void 0!==a&&e.push("sourceName"),1e3!==u&&e.push("cleaningInterval"),y&&e.push("keepLatestMessage"),m.length>0&&e.push("registeredTypes"),E&&e.push("namespace"),3e5!==M&&e.push("deduplicationTTL"),b>0&&e.push("cleanupDebounceMs"),20!==D&&e.push("batchingDelayMs"),$.length>0&&e.push("excludedBatchMessageTypes"),void 0!==k&&e.push("onMessage"),t={entry:r,options_used:e,onmessage_shape:void 0===k?"none":"function"==typeof k?"function":"map",batching_enabled:D>0,browser_supported:"undefined"!=typeof BroadcastChannel},v.push(S("channel_init",t)),C()}),[]);const Y=e.useCallback((()=>{A((e=>e.filter((e=>!o(e)))))}),[]),Z=e.useRef(b>0?((e,t)=>{let n,r=null,s=null;const a=(...a)=>{s=a,null!==r&&clearTimeout(r),r=setTimeout((()=>{r=null,null!==s&&(n=e(...s),s=null)}),t)};return a.cancel=()=>{null!==r&&(clearTimeout(r),r=null,s=null)},a.flush=()=>(null!==r&&(clearTimeout(r),r=null,null!==s&&(n=e(...s),s=null)),n),a})(Y,b):Object.assign(Y,{cancel:()=>{}})).current,ee=e.useCallback((e=>{L(e),setTimeout((()=>L(null)),3e3)}),[]),te=e.useCallback(((e=300)=>{if(B&&N("ping"),O)return g.inProgress(),Promise.resolve([]);if(!q.current){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return f({action:"ping",channelName:Q,originalError:e}),ee(e),Promise.resolve([])}_?_((()=>j(!0))):j(!0);const t=new Set;return U.current=t,q.current.postMessage(c(K.PING,null,H)),new Promise((n=>{setTimeout((()=>{j(!1),U.current===t&&(U.current=null),n(Array.from(t))}),e)}))}),[K.PING,H,ee,O,_]),ne=e.useCallback(((e,t,n={})=>{B&&N("postMessage");const r=q.current;if(!r){const t="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return f({action:"postMessage",channelName:Q,type:e,originalError:t}),void ee(t)}const s=c(e,t,H,n);if(!D||D<0||$.includes(e))try{r.postMessage(s)}catch(t){const n="Failed to send message";f({action:"postMessage",channelName:Q,type:e,originalError:n}),ee(n),V.current=!0}else z.current.push(s),J.current||(J.current=setTimeout((()=>{if(V.current)return z.current=[],void(J.current=null);try{r.postMessage(z.current)}catch(t){const n="Failed to send message";f({action:"postMessage",channelName:Q,type:e,originalError:n}),ee(n),V.current=!0}z.current=[],J.current=null}),D));p.sent(s),G((e=>[...e,s]))}),[H,ee,D,$]),re=e.useCallback(((e={})=>{B&&N("clearReceivedMessages");const t=Boolean(e.ids&&e.ids.length||e.types&&e.types.length||e.sources&&e.sources.length);A((n=>t?n.filter((t=>!(e.ids&&e.ids.includes(t.id)||e.types&&e.types.includes(t.type)||e.sources&&e.sources.includes(t.source)))):[])),t||p.allReceivedCleared()}),[]),se=e.useCallback(((e={})=>{var t,n,r;B&&N("clearSentMessages");const{ids:s=[],types:a=[],sync:o=!1}=null!=e?e:{};G((e=>s.length>0||a.length>0?e.filter((e=>{if(e.source!==H)return!0;const t=0===s.length||s.includes(e.id),n=0===a.length||a.includes(e.type);return!(t&&n)})):[])),0===s.length&&0===a.length&&p.allSentCleared(),o&&(null===(t=q.current)||void 0===t||t.postMessage(c(K.CLEAR_SENT_MESSAGES,{ids:null!==(n=e.ids)&&void 0!==n?n:[],types:null!==(r=e.types)&&void 0!==r?r:[]},H)))}),[H,K.CLEAR_SENT_MESSAGES]),ae=e.useCallback(((e={})=>{B&&N("getLatestMessage");const{source:t,type:n}=e;for(let e=R.length-1;e>=0;e--){const r=R[e],s=!t||r.source===t,a=!n||r.type===n;if(s&&a)return r}return null}),[R]),oe=e.useCallback((e=>{var t,n;try{const r=e.data;if(p.received(r),!(e=>Boolean(e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type&&"string"==typeof e.source&&"number"==typeof e.timestamp))(r))return;if(r.source===H)return;if(l(r)){if(r.type===K.CLEAR_SENT_MESSAGES){const{ids:e=[],types:t=[]}=r.message||{};return void A((n=>[...n.filter((n=>{if(n.source!==r.source)return!0;const s=0===e.length||e.includes(n.id),a=0===t.length||t.includes(n.type);return!(s&&a)}))]))}if(r.type===K.PING)return void(null===(t=q.current)||void 0===t||t.postMessage(c(K.PONG,null,H)));if(r.type===K.PONG){const e=r.source,t=U.current;return void(t&&!1===t.has(e)&&t.add(e))}}if(X.current.length>0&&!X.current.includes(r.type))return void p.ignored(r.type);if(o(r))return void p.expired(r.id);const s=Date.now(),a=F.current.get(r.id);if(a&&s-a<M)return void p.duplicate(r.id);F.current.set(r.id,s),A((e=>y?[r]:[...e,r]));try{const e=W.current;"function"==typeof e?e(r):e&&(null===(n=e[r.type])||void 0===n||n.call(e,r))}catch(e){f({action:"onMessage",channelName:Q,originalError:e instanceof Error?e.message:String(e)})}}catch(e){const t="Error processing broadcast message";f({action:"handleMessage",channelName:Q,originalError:t}),ee(t)}}),[H,y,ee,K,M]),ce=e.useCallback((()=>{B&&N("closeChannel");const e=q.current;e&&"function"==typeof e.close&&(e.removeEventListener("message",oe),e.close(),d.closed(Q),q.current=null)}),[oe,Q]);return e.useEffect((()=>{if("undefined"==typeof BroadcastChannel){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return f({action:"useBroadcastChannel",channelName:Q,originalError:e}),B&&(v.push(S("browser_unsupported",{})),C()),void ee(e)}let e=null;try{e=new BroadcastChannel(Q)}catch(e){const t="Failed to create BroadcastChannel";return f({action:"useBroadcastChannel",channelName:Q,originalError:e instanceof Error?e:String(e)}),void ee(t)}return q.current=e,d.created(Q),e.addEventListener("message",(e=>{Array.isArray(e.data)?e.data.forEach((e=>{oe({data:e})})):oe(e)})),()=>{ce()}}),[Q,oe,ee]),e.useEffect((()=>{if(u<=0)return;const e=setInterval((()=>{h.started();const e=R.length;Z(),h.completed(e-R.length)}),u);return()=>{var t;clearInterval(e),b>0&&(null===(t=Z.cancel)||void 0===t||t.call(Z))}}),[u,Z,b]),e.useEffect((()=>{const e=setInterval((()=>{const e=Date.now();for(const[t,n]of F.current.entries())e-n>=M&&F.current.delete(t)}),6e4);return()=>clearInterval(e)}),[M]),e.useEffect((()=>()=>{if(z.current.length>0&&q.current&&!V.current){try{q.current.postMessage(z.current)}catch(e){const t="Failed to send message";f({action:"useBroadcastChannel",channelName:Q,originalError:e instanceof Error?e:String(e)}),ee(t)}z.current=[],setTimeout((()=>{}),0)}J.current&&(clearTimeout(J.current),J.current=null),V.current=!1}),[]),{channelName:Q,messages:R,sentMessages:x,isPingInProgress:O,ping:te,postMessage:ne,clearReceivedMessages:re,clearSentMessages:se,getLatestMessage:ae,error:I,closeChannel:ce}},$=e.createContext(void 0);exports.BroadcastProvider=({children:e,channelName:t,options:r})=>{const s=D(t,r,"provider");return n.jsx($.Provider,{value:s,children:e})},exports.useBroadcastChannel=D,exports.useBroadcastProvider=()=>{const t=e.useContext($);if(!t)throw new Error("useBroadcastProvider must be used within a BroadcastProvider");return t};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/utils/messageUtils.ts","../src/utils/debug.ts","../src/utils/telemetry.ts","../src/hooks/useBroadcastChannel.ts","../src/BroadcastProvider.tsx"],"sourcesContent":[null,null,null,null,null],"names":["INTERNAL_PREFIX","generateRandomPart","Math","random","toString","substr","generateMessageId","source","timestamp","raw","btoa","replace","isMessageExpired","message","expirationDate","Date","now","createMessage","type","content","options","id","_a","expirationDuration","undefined","getInternalMessageType","baseType","channelName","namespace","hash","isValidInternalClearMessage","startsWith","log","level","data","process","env","REACT_APP_DEBUG_BROADCAST","prefix","toISOString","console","warn","error","debug","created","name","closed","sent","received","cleared","messageId","expired","duplicate","allSentCleared","allReceivedCleared","ignored","messageType","inProgress","started","completed","removedCount","context","action","originalError","Error","JSON","stringify","MIXPANEL_TOKEN","sessionId","_c","_b","crypto","randomUUID","call","slice","_d","queue","calledMethods","Set","flushTimer","buildEvent","props","event","properties","Object","assign","token","distinct_id","time","floor","flush","length","batch","splice","fetch","method","headers","body","keepalive","scheduleFlush","setTimeout","trackMethodCalled","has","add","push","document","addEventListener","visibilityState","clearTimeout","INTERNAL_MESSAGE_TYPES","flushSyncFn","NODE_ENV","require","flushSync","useBroadcastChannel","_entry","sourceName","cleaningInterval","keepLatestMessage","registeredTypes","deduplicationTTL","cleanupDebounceMs","batchingDelayMs","excludedBatchMessageTypes","onMessage","messages","setMessages","useState","sentMessages","setSentMessages","setError","isPingInProgress","setIsPingInProgress","channel","useRef","receivedMessageIds","Map","activeSourcesCollector","batchingTimeoutRef","batchingMessagesRef","batchingErrorRef","onMessageRef","current","useMemo","internalTypes","CLEAR_SENT_MESSAGES","PING","PONG","resolvedChannelName","registeredTypesRef","useEffect","optionsUsed","entry","options_used","onmessage_shape","batching_enabled","browser_supported","BroadcastChannel","performCleanup","useCallback","prev","filter","msg","debouncedCleanup","debounce","fn","wait","result","timeoutId","lastArgs","debounced","args","cancel","setErrorMessage","ping","timeoutMs","Promise","resolve","collector","postMessage","Array","from","messageContent","channelCurrent","includes","e","clearReceivedMessages","hasFilters","Boolean","ids","types","sources","clearSentMessages","sync","idMatches","typeMatches","getLatestMessage","i","sourceMatches","handleMessage","isValidMessage","pongSource","receivedAt","get","set","cb","String","closeChannel","bc","close","removeEventListener","isArray","forEach","interval","setInterval","before","clearInterval","key","entries","delete","BroadcastChannelContext","createContext","BroadcastProvider","children","BroadcastChannelActions","_jsx","jsx","Provider","value","useBroadcastProvider","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/utils/messageUtils.ts","../src/utils/debug.ts","../src/utils/telemetry.ts","../src/hooks/useBroadcastChannel.ts","../src/BroadcastProvider.tsx"],"sourcesContent":[null,null,null,null,null],"names":["INTERNAL_PREFIX","generateRandomPart","Math","random","toString","substr","generateMessageId","source","timestamp","raw","btoa","replace","isMessageExpired","message","expirationDate","Date","now","createMessage","type","content","options","id","_a","expirationDuration","undefined","getInternalMessageType","baseType","channelName","namespace","hash","isValidInternalClearMessage","startsWith","log","level","data","process","env","REACT_APP_DEBUG_BROADCAST","prefix","toISOString","console","warn","error","debug","created","name","closed","sent","received","cleared","messageId","expired","duplicate","allSentCleared","allReceivedCleared","ignored","messageType","inProgress","started","completed","removedCount","context","action","originalError","Error","JSON","stringify","MIXPANEL_TOKEN","sessionId","_c","_b","crypto","randomUUID","call","slice","_d","queue","calledMethods","Set","flushTimer","buildEvent","props","event","properties","Object","assign","token","distinct_id","time","floor","flush","length","batch","splice","fetch","method","headers","body","keepalive","scheduleFlush","setTimeout","trackMethodCalled","has","add","push","document","addEventListener","visibilityState","clearTimeout","INTERNAL_MESSAGE_TYPES","flushSyncFn","NODE_ENV","require","flushSync","useBroadcastChannel","_entry","sourceName","cleaningInterval","keepLatestMessage","registeredTypes","deduplicationTTL","cleanupDebounceMs","batchingDelayMs","excludedBatchMessageTypes","onMessage","telemetry","messages","setMessages","useState","sentMessages","setSentMessages","setError","isPingInProgress","setIsPingInProgress","channel","useRef","receivedMessageIds","Map","activeSourcesCollector","batchingTimeoutRef","batchingMessagesRef","batchingErrorRef","onMessageRef","current","useMemo","internalTypes","CLEAR_SENT_MESSAGES","PING","PONG","resolvedChannelName","registeredTypesRef","useEffect","optionsUsed","entry","options_used","onmessage_shape","batching_enabled","browser_supported","BroadcastChannel","performCleanup","useCallback","prev","filter","msg","debouncedCleanup","debounce","fn","wait","result","timeoutId","lastArgs","debounced","args","cancel","setErrorMessage","ping","timeoutMs","Promise","resolve","collector","postMessage","Array","from","messageContent","channelCurrent","includes","e","clearReceivedMessages","hasFilters","Boolean","ids","types","sources","clearSentMessages","sync","idMatches","typeMatches","getLatestMessage","i","sourceMatches","handleMessage","isValidMessage","pongSource","receivedAt","get","set","cb","String","closeChannel","bc","close","removeEventListener","isArray","forEach","interval","setInterval","before","clearInterval","key","entries","delete","BroadcastChannelContext","createContext","BroadcastProvider","children","BroadcastChannelActions","_jsx","jsx","Provider","value","useBroadcastProvider","useContext"],"mappings":"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"}
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import{useState as e,useRef as t,useMemo as n,useEffect as r,useCallback as s,createContext as o,useContext as a}from"react";import{__awaiter as c}from"tslib";import{jsx as i}from"react/jsx-runtime";const l="__INTERNAL__",u=()=>Math.random().toString(36).substr(2,9),d=(e,t)=>{const n=`${u()}-${e}-${t}`;return btoa(n).replace(/=+$/,"")},p=e=>!!e.expirationDate&&e.expirationDate<Date.now(),g=(e,t,n,r={})=>{var s;const o=Date.now();return{id:d(n,o),type:e,message:t,timestamp:o,source:n,expirationDate:null!==(s=r.expirationDate)&&void 0!==s?s:r.expirationDuration?o+r.expirationDuration:void 0}},h=(e,t,n="")=>{const r=btoa(`react-broadcast-sync:${e}:${`${t}-${n}`}`);return`${l}:${e}:${r}`},f=e=>e&&"object"==typeof e&&"string"==typeof e.type&&e.type.startsWith(`${l}:`)&&"string"==typeof e.source,m=(e,t,n)=>{if("undefined"==typeof process||!process.env||"true"!==process.env.REACT_APP_DEBUG_BROADCAST)return;const r=`[${(new Date).toISOString()}] [react-broadcast-sync]`;switch(e){case"info":console.log(r,t,n||"");break;case"warn":console.warn(r,t,n||"");break;case"error":console.error(r,t,n||"")}},y={created:e=>m("info","Channel created:",e),closed:e=>m("info","Channel closed:",e)},v={sent:e=>m("info","Message sent:",e),received:e=>m("info","Message received:",e),cleared:e=>m("info","Message cleared:",e),expired:e=>m("info","Message expired:",e),duplicate:e=>m("warn","Duplicate message ignored:",e),allSentCleared:()=>m("info","All sent messages cleared"),allReceivedCleared:()=>m("info","All received messages cleared"),ignored:e=>m("info","Message ignored due to type filter:",e)},E={inProgress:()=>m("warn","Ping already in progress. Skipping call.")},M={started:()=>m("info","Cleanup started"),completed:e=>m("info","Cleanup completed:",e)},S=e=>{const{action:t,channelName:n,type:r,source:s,originalError:o}=e;let a=`${t}`;if(n&&(a+=` | channel: ${n}`),r&&(a+=` | type: ${r}`),s&&(a+=` | source: ${s}`),o instanceof Error)a+=` | cause: ${o.message}`;else if("string"==typeof o)a+=` | cause: ${o}`;else if(null!=o)try{a+=` | cause: ${JSON.stringify(o)}`}catch(e){a+=" | cause: [unserializable]"}m("error","Error:",a)};let b="";const N=(()=>{var e,t,n;try{return null!==(n=null===(t=(e=crypto).randomUUID)||void 0===t?void 0:t.call(e))&&void 0!==n?n:Math.random().toString(36).slice(2)+Date.now().toString(36)}catch(e){return Math.random().toString(36).slice(2)+Date.now().toString(36)}})(),w=[],T=new Set;let C=null;function P(e,t){return{event:e,properties:Object.assign({token:b,distinct_id:N,time:Math.floor(Date.now()/1e3)},t)}}function _(){return c(this,void 0,void 0,(function*(){if(0===w.length||!b)return;const e=w.splice(0);try{yield fetch("https://api.mixpanel.com/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),keepalive:!0})}catch(e){}}))}function D(){b&&null===C&&(C=setTimeout((()=>{C=null,_()}),3e4))}function $(e){T.has(e)||(T.add(e),w.push(P("method_called",{method:e})),D())}"undefined"!=typeof document&&document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&(null!==C&&(clearTimeout(C),C=null),_())}));const A="CLEAR_SENT_MESSAGES",B="PING",G="PONG";let I;if("test"===process.env.NODE_ENV)try{I=require("react-dom").flushSync}catch(e){}const L=(o,a={},c="hook")=>{const{sourceName:i,cleaningInterval:l=1e3,keepLatestMessage:d=!1,registeredTypes:m=[],namespace:b="",deduplicationTTL:N=3e5,cleanupDebounceMs:T=0,batchingDelayMs:C=20,excludedBatchMessageTypes:_=[],onMessage:L}=a,[x,k]=e([]),[O,R]=e([]),[j,F]=e(null),[U,J]=e(!1),q=t(null),z=t(new Map),V=t(null),W=t(null),H=t([]),K=t(!1),Q=t(L);Q.current=L;const X=n((()=>i||`tab-${u()}`),[i]),Y=n((()=>({CLEAR_SENT_MESSAGES:h(A,o,b),PING:h(B,o,b),PONG:h(G,o,b)})),[o,b]),Z=n((()=>b?`${o}-${b}`:o),[o,b]),ee=t(m);ee.current=m,r((()=>{const e=[];var t;void 0!==i&&e.push("sourceName"),1e3!==l&&e.push("cleaningInterval"),d&&e.push("keepLatestMessage"),m.length>0&&e.push("registeredTypes"),b&&e.push("namespace"),3e5!==N&&e.push("deduplicationTTL"),T>0&&e.push("cleanupDebounceMs"),20!==C&&e.push("batchingDelayMs"),_.length>0&&e.push("excludedBatchMessageTypes"),void 0!==L&&e.push("onMessage"),t={entry:c,options_used:e,onmessage_shape:void 0===L?"none":"function"==typeof L?"function":"map",batching_enabled:C>0,browser_supported:"undefined"!=typeof BroadcastChannel},w.push(P("channel_init",t)),D()}),[]);const te=s((()=>{k((e=>e.filter((e=>!p(e)))))}),[]),ne=t(T>0?((e,t)=>{let n,r=null,s=null;const o=(...o)=>{s=o,null!==r&&clearTimeout(r),r=setTimeout((()=>{r=null,null!==s&&(n=e(...s),s=null)}),t)};return o.cancel=()=>{null!==r&&(clearTimeout(r),r=null,s=null)},o.flush=()=>(null!==r&&(clearTimeout(r),r=null,null!==s&&(n=e(...s),s=null)),n),o})(te,T):Object.assign(te,{cancel:()=>{}})).current,re=s((e=>{F(e),setTimeout((()=>F(null)),3e3)}),[]),se=s(((e=300)=>{if($("ping"),U)return E.inProgress(),Promise.resolve([]);if(!q.current){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return S({action:"ping",channelName:Z,originalError:e}),re(e),Promise.resolve([])}I?I((()=>J(!0))):J(!0);const t=new Set;return V.current=t,q.current.postMessage(g(Y.PING,null,X)),new Promise((n=>{setTimeout((()=>{J(!1),V.current===t&&(V.current=null),n(Array.from(t))}),e)}))}),[Y.PING,X,re,U,I]),oe=s(((e,t,n={})=>{$("postMessage");const r=q.current;if(!r){const t="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return S({action:"postMessage",channelName:Z,type:e,originalError:t}),void re(t)}const s=g(e,t,X,n);if(!C||C<0||_.includes(e))try{r.postMessage(s)}catch(t){const n="Failed to send message";S({action:"postMessage",channelName:Z,type:e,originalError:n}),re(n),K.current=!0}else H.current.push(s),W.current||(W.current=setTimeout((()=>{if(K.current)return H.current=[],void(W.current=null);try{r.postMessage(H.current)}catch(t){const n="Failed to send message";S({action:"postMessage",channelName:Z,type:e,originalError:n}),re(n),K.current=!0}H.current=[],W.current=null}),C));v.sent(s),R((e=>[...e,s]))}),[X,re,C,_]),ae=s(((e={})=>{$("clearReceivedMessages");const t=Boolean(e.ids&&e.ids.length||e.types&&e.types.length||e.sources&&e.sources.length);k((n=>t?n.filter((t=>!(e.ids&&e.ids.includes(t.id)||e.types&&e.types.includes(t.type)||e.sources&&e.sources.includes(t.source)))):[])),t||v.allReceivedCleared()}),[]),ce=s(((e={})=>{var t,n,r;$("clearSentMessages");const{ids:s=[],types:o=[],sync:a=!1}=null!=e?e:{};R((e=>s.length>0||o.length>0?e.filter((e=>{if(e.source!==X)return!0;const t=0===s.length||s.includes(e.id),n=0===o.length||o.includes(e.type);return!(t&&n)})):[])),0===s.length&&0===o.length&&v.allSentCleared(),a&&(null===(t=q.current)||void 0===t||t.postMessage(g(Y.CLEAR_SENT_MESSAGES,{ids:null!==(n=e.ids)&&void 0!==n?n:[],types:null!==(r=e.types)&&void 0!==r?r:[]},X)))}),[X,Y.CLEAR_SENT_MESSAGES]),ie=s(((e={})=>{$("getLatestMessage");const{source:t,type:n}=e;for(let e=x.length-1;e>=0;e--){const r=x[e],s=!t||r.source===t,o=!n||r.type===n;if(s&&o)return r}return null}),[x]),le=s((e=>{var t,n;try{const r=e.data;if(v.received(r),!(e=>Boolean(e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type&&"string"==typeof e.source&&"number"==typeof e.timestamp))(r))return;if(r.source===X)return;if(f(r)){if(r.type===Y.CLEAR_SENT_MESSAGES){const{ids:e=[],types:t=[]}=r.message||{};return void k((n=>[...n.filter((n=>{if(n.source!==r.source)return!0;const s=0===e.length||e.includes(n.id),o=0===t.length||t.includes(n.type);return!(s&&o)}))]))}if(r.type===Y.PING)return void(null===(t=q.current)||void 0===t||t.postMessage(g(Y.PONG,null,X)));if(r.type===Y.PONG){const e=r.source,t=V.current;return void(t&&!1===t.has(e)&&t.add(e))}}if(ee.current.length>0&&!ee.current.includes(r.type))return void v.ignored(r.type);if(p(r))return void v.expired(r.id);const s=Date.now(),o=z.current.get(r.id);if(o&&s-o<N)return void v.duplicate(r.id);z.current.set(r.id,s),k((e=>d?[r]:[...e,r]));try{const e=Q.current;"function"==typeof e?e(r):e&&(null===(n=e[r.type])||void 0===n||n.call(e,r))}catch(e){S({action:"onMessage",channelName:Z,originalError:e instanceof Error?e.message:String(e)})}}catch(e){const t="Error processing broadcast message";S({action:"handleMessage",channelName:Z,originalError:t}),re(t)}}),[X,d,re,Y,N]),ue=s((()=>{$("closeChannel");const e=q.current;e&&"function"==typeof e.close&&(e.removeEventListener("message",le),e.close(),y.closed(Z),q.current=null)}),[le,Z]);return r((()=>{if("undefined"==typeof BroadcastChannel){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return S({action:"useBroadcastChannel",channelName:Z,originalError:e}),w.push(P("browser_unsupported",{})),D(),void re(e)}let e=null;try{e=new BroadcastChannel(Z)}catch(e){const t="Failed to create BroadcastChannel";return S({action:"useBroadcastChannel",channelName:Z,originalError:e instanceof Error?e:String(e)}),void re(t)}return q.current=e,y.created(Z),e.addEventListener("message",(e=>{Array.isArray(e.data)?e.data.forEach((e=>{le({data:e})})):le(e)})),()=>{ue()}}),[Z,le,re]),r((()=>{if(l<=0)return;const e=setInterval((()=>{M.started();const e=x.length;ne(),M.completed(e-x.length)}),l);return()=>{var t;clearInterval(e),T>0&&(null===(t=ne.cancel)||void 0===t||t.call(ne))}}),[l,ne,T]),r((()=>{const e=setInterval((()=>{const e=Date.now();for(const[t,n]of z.current.entries())e-n>=N&&z.current.delete(t)}),6e4);return()=>clearInterval(e)}),[N]),r((()=>()=>{if(H.current.length>0&&q.current&&!K.current){try{q.current.postMessage(H.current)}catch(e){const t="Failed to send message";S({action:"useBroadcastChannel",channelName:Z,originalError:e instanceof Error?e:String(e)}),re(t)}H.current=[],setTimeout((()=>{}),0)}W.current&&(clearTimeout(W.current),W.current=null),K.current=!1}),[]),{channelName:Z,messages:x,sentMessages:O,isPingInProgress:U,ping:se,postMessage:oe,clearReceivedMessages:ae,clearSentMessages:ce,getLatestMessage:ie,error:j,closeChannel:ue}},x=o(void 0),k=({children:e,channelName:t,options:n})=>{const r=L(t,n,"provider");return i(x.Provider,{value:r,children:e})},O=()=>{const e=a(x);if(!e)throw new Error("useBroadcastProvider must be used within a BroadcastProvider");return e};export{k as BroadcastProvider,L as useBroadcastChannel,O as useBroadcastProvider};
1
+ import{useState as e,useRef as t,useMemo as n,useEffect as r,useCallback as s,createContext as o,useContext as a}from"react";import{__awaiter as c}from"tslib";import{jsx as i}from"react/jsx-runtime";const l="__INTERNAL__",u=()=>Math.random().toString(36).substr(2,9),d=(e,t)=>{const n=`${u()}-${e}-${t}`;return btoa(n).replace(/=+$/,"")},p=e=>!!e.expirationDate&&e.expirationDate<Date.now(),g=(e,t,n,r={})=>{var s;const o=Date.now();return{id:d(n,o),type:e,message:t,timestamp:o,source:n,expirationDate:null!==(s=r.expirationDate)&&void 0!==s?s:r.expirationDuration?o+r.expirationDuration:void 0}},h=(e,t,n="")=>{const r=btoa(`react-broadcast-sync:${e}:${`${t}-${n}`}`);return`${l}:${e}:${r}`},f=e=>e&&"object"==typeof e&&"string"==typeof e.type&&e.type.startsWith(`${l}:`)&&"string"==typeof e.source,m=(e,t,n)=>{if("undefined"==typeof process||!process.env||"true"!==process.env.REACT_APP_DEBUG_BROADCAST)return;const r=`[${(new Date).toISOString()}] [react-broadcast-sync]`;switch(e){case"info":console.log(r,t,n||"");break;case"warn":console.warn(r,t,n||"");break;case"error":console.error(r,t,n||"")}},y={created:e=>m("info","Channel created:",e),closed:e=>m("info","Channel closed:",e)},v={sent:e=>m("info","Message sent:",e),received:e=>m("info","Message received:",e),cleared:e=>m("info","Message cleared:",e),expired:e=>m("info","Message expired:",e),duplicate:e=>m("warn","Duplicate message ignored:",e),allSentCleared:()=>m("info","All sent messages cleared"),allReceivedCleared:()=>m("info","All received messages cleared"),ignored:e=>m("info","Message ignored due to type filter:",e)},E={inProgress:()=>m("warn","Ping already in progress. Skipping call.")},M={started:()=>m("info","Cleanup started"),completed:e=>m("info","Cleanup completed:",e)},S=e=>{const{action:t,channelName:n,type:r,source:s,originalError:o}=e;let a=`${t}`;if(n&&(a+=` | channel: ${n}`),r&&(a+=` | type: ${r}`),s&&(a+=` | source: ${s}`),o instanceof Error)a+=` | cause: ${o.message}`;else if("string"==typeof o)a+=` | cause: ${o}`;else if(null!=o)try{a+=` | cause: ${JSON.stringify(o)}`}catch(e){a+=" | cause: [unserializable]"}m("error","Error:",a)};let b="";const N=(()=>{var e,t,n;try{return null!==(n=null===(t=(e=crypto).randomUUID)||void 0===t?void 0:t.call(e))&&void 0!==n?n:Math.random().toString(36).slice(2)+Date.now().toString(36)}catch(e){return Math.random().toString(36).slice(2)+Date.now().toString(36)}})(),w=[],T=new Set;let C=null;function P(e,t){return{event:e,properties:Object.assign({token:b,distinct_id:N,time:Math.floor(Date.now()/1e3)},t)}}function _(){return c(this,void 0,void 0,(function*(){if(0===w.length||!b)return;const e=w.splice(0);try{yield fetch("https://api-eu.mixpanel.com/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),keepalive:!0})}catch(e){}}))}function D(){b&&null===C&&(C=setTimeout((()=>{C=null,_()}),3e4))}function $(e){T.has(e)||(T.add(e),w.push(P("method_called",{method:e})),D())}"undefined"!=typeof document&&document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&(null!==C&&(clearTimeout(C),C=null),_())}));const A="CLEAR_SENT_MESSAGES",B="PING",G="PONG";let I;if("test"===process.env.NODE_ENV)try{I=require("react-dom").flushSync}catch(e){}const L=(o,a={},c="hook")=>{const{sourceName:i,cleaningInterval:l=1e3,keepLatestMessage:d=!1,registeredTypes:m=[],namespace:b="",deduplicationTTL:N=3e5,cleanupDebounceMs:T=0,batchingDelayMs:C=20,excludedBatchMessageTypes:_=[],onMessage:L,telemetry:x=!0}=a,[k,O]=e([]),[R,j]=e([]),[F,U]=e(null),[J,q]=e(!1),z=t(null),V=t(new Map),W=t(null),H=t(null),K=t([]),Q=t(!1),X=t(L);X.current=L;const Y=n((()=>i||`tab-${u()}`),[i]),Z=n((()=>({CLEAR_SENT_MESSAGES:h(A,o,b),PING:h(B,o,b),PONG:h(G,o,b)})),[o,b]),ee=n((()=>b?`${o}-${b}`:o),[o,b]),te=t(m);te.current=m,r((()=>{if(!x)return;const e=[];var t;void 0!==i&&e.push("sourceName"),1e3!==l&&e.push("cleaningInterval"),d&&e.push("keepLatestMessage"),m.length>0&&e.push("registeredTypes"),b&&e.push("namespace"),3e5!==N&&e.push("deduplicationTTL"),T>0&&e.push("cleanupDebounceMs"),20!==C&&e.push("batchingDelayMs"),_.length>0&&e.push("excludedBatchMessageTypes"),void 0!==L&&e.push("onMessage"),t={entry:c,options_used:e,onmessage_shape:void 0===L?"none":"function"==typeof L?"function":"map",batching_enabled:C>0,browser_supported:"undefined"!=typeof BroadcastChannel},w.push(P("channel_init",t)),D()}),[]);const ne=s((()=>{O((e=>e.filter((e=>!p(e)))))}),[]),re=t(T>0?((e,t)=>{let n,r=null,s=null;const o=(...o)=>{s=o,null!==r&&clearTimeout(r),r=setTimeout((()=>{r=null,null!==s&&(n=e(...s),s=null)}),t)};return o.cancel=()=>{null!==r&&(clearTimeout(r),r=null,s=null)},o.flush=()=>(null!==r&&(clearTimeout(r),r=null,null!==s&&(n=e(...s),s=null)),n),o})(ne,T):Object.assign(ne,{cancel:()=>{}})).current,se=s((e=>{U(e),setTimeout((()=>U(null)),3e3)}),[]),oe=s(((e=300)=>{if(x&&$("ping"),J)return E.inProgress(),Promise.resolve([]);if(!z.current){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return S({action:"ping",channelName:ee,originalError:e}),se(e),Promise.resolve([])}I?I((()=>q(!0))):q(!0);const t=new Set;return W.current=t,z.current.postMessage(g(Z.PING,null,Y)),new Promise((n=>{setTimeout((()=>{q(!1),W.current===t&&(W.current=null),n(Array.from(t))}),e)}))}),[Z.PING,Y,se,J,I]),ae=s(((e,t,n={})=>{x&&$("postMessage");const r=z.current;if(!r){const t="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return S({action:"postMessage",channelName:ee,type:e,originalError:t}),void se(t)}const s=g(e,t,Y,n);if(!C||C<0||_.includes(e))try{r.postMessage(s)}catch(t){const n="Failed to send message";S({action:"postMessage",channelName:ee,type:e,originalError:n}),se(n),Q.current=!0}else K.current.push(s),H.current||(H.current=setTimeout((()=>{if(Q.current)return K.current=[],void(H.current=null);try{r.postMessage(K.current)}catch(t){const n="Failed to send message";S({action:"postMessage",channelName:ee,type:e,originalError:n}),se(n),Q.current=!0}K.current=[],H.current=null}),C));v.sent(s),j((e=>[...e,s]))}),[Y,se,C,_]),ce=s(((e={})=>{x&&$("clearReceivedMessages");const t=Boolean(e.ids&&e.ids.length||e.types&&e.types.length||e.sources&&e.sources.length);O((n=>t?n.filter((t=>!(e.ids&&e.ids.includes(t.id)||e.types&&e.types.includes(t.type)||e.sources&&e.sources.includes(t.source)))):[])),t||v.allReceivedCleared()}),[]),ie=s(((e={})=>{var t,n,r;x&&$("clearSentMessages");const{ids:s=[],types:o=[],sync:a=!1}=null!=e?e:{};j((e=>s.length>0||o.length>0?e.filter((e=>{if(e.source!==Y)return!0;const t=0===s.length||s.includes(e.id),n=0===o.length||o.includes(e.type);return!(t&&n)})):[])),0===s.length&&0===o.length&&v.allSentCleared(),a&&(null===(t=z.current)||void 0===t||t.postMessage(g(Z.CLEAR_SENT_MESSAGES,{ids:null!==(n=e.ids)&&void 0!==n?n:[],types:null!==(r=e.types)&&void 0!==r?r:[]},Y)))}),[Y,Z.CLEAR_SENT_MESSAGES]),le=s(((e={})=>{x&&$("getLatestMessage");const{source:t,type:n}=e;for(let e=k.length-1;e>=0;e--){const r=k[e],s=!t||r.source===t,o=!n||r.type===n;if(s&&o)return r}return null}),[k]),ue=s((e=>{var t,n;try{const r=e.data;if(v.received(r),!(e=>Boolean(e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type&&"string"==typeof e.source&&"number"==typeof e.timestamp))(r))return;if(r.source===Y)return;if(f(r)){if(r.type===Z.CLEAR_SENT_MESSAGES){const{ids:e=[],types:t=[]}=r.message||{};return void O((n=>[...n.filter((n=>{if(n.source!==r.source)return!0;const s=0===e.length||e.includes(n.id),o=0===t.length||t.includes(n.type);return!(s&&o)}))]))}if(r.type===Z.PING)return void(null===(t=z.current)||void 0===t||t.postMessage(g(Z.PONG,null,Y)));if(r.type===Z.PONG){const e=r.source,t=W.current;return void(t&&!1===t.has(e)&&t.add(e))}}if(te.current.length>0&&!te.current.includes(r.type))return void v.ignored(r.type);if(p(r))return void v.expired(r.id);const s=Date.now(),o=V.current.get(r.id);if(o&&s-o<N)return void v.duplicate(r.id);V.current.set(r.id,s),O((e=>d?[r]:[...e,r]));try{const e=X.current;"function"==typeof e?e(r):e&&(null===(n=e[r.type])||void 0===n||n.call(e,r))}catch(e){S({action:"onMessage",channelName:ee,originalError:e instanceof Error?e.message:String(e)})}}catch(e){const t="Error processing broadcast message";S({action:"handleMessage",channelName:ee,originalError:t}),se(t)}}),[Y,d,se,Z,N]),de=s((()=>{x&&$("closeChannel");const e=z.current;e&&"function"==typeof e.close&&(e.removeEventListener("message",ue),e.close(),y.closed(ee),z.current=null)}),[ue,ee]);return r((()=>{if("undefined"==typeof BroadcastChannel){const e="BroadcastChannel is not supported in this browser. Please check browser compatibility.";return S({action:"useBroadcastChannel",channelName:ee,originalError:e}),x&&(w.push(P("browser_unsupported",{})),D()),void se(e)}let e=null;try{e=new BroadcastChannel(ee)}catch(e){const t="Failed to create BroadcastChannel";return S({action:"useBroadcastChannel",channelName:ee,originalError:e instanceof Error?e:String(e)}),void se(t)}return z.current=e,y.created(ee),e.addEventListener("message",(e=>{Array.isArray(e.data)?e.data.forEach((e=>{ue({data:e})})):ue(e)})),()=>{de()}}),[ee,ue,se]),r((()=>{if(l<=0)return;const e=setInterval((()=>{M.started();const e=k.length;re(),M.completed(e-k.length)}),l);return()=>{var t;clearInterval(e),T>0&&(null===(t=re.cancel)||void 0===t||t.call(re))}}),[l,re,T]),r((()=>{const e=setInterval((()=>{const e=Date.now();for(const[t,n]of V.current.entries())e-n>=N&&V.current.delete(t)}),6e4);return()=>clearInterval(e)}),[N]),r((()=>()=>{if(K.current.length>0&&z.current&&!Q.current){try{z.current.postMessage(K.current)}catch(e){const t="Failed to send message";S({action:"useBroadcastChannel",channelName:ee,originalError:e instanceof Error?e:String(e)}),se(t)}K.current=[],setTimeout((()=>{}),0)}H.current&&(clearTimeout(H.current),H.current=null),Q.current=!1}),[]),{channelName:ee,messages:k,sentMessages:R,isPingInProgress:J,ping:oe,postMessage:ae,clearReceivedMessages:ce,clearSentMessages:ie,getLatestMessage:le,error:F,closeChannel:de}},x=o(void 0),k=({children:e,channelName:t,options:n})=>{const r=L(t,n,"provider");return i(x.Provider,{value:r,children:e})},O=()=>{const e=a(x);if(!e)throw new Error("useBroadcastProvider must be used within a BroadcastProvider");return e};export{k as BroadcastProvider,L as useBroadcastChannel,O as useBroadcastProvider};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/utils/messageUtils.ts","../src/utils/debug.ts","../src/utils/telemetry.ts","../src/hooks/useBroadcastChannel.ts","../src/BroadcastProvider.tsx"],"sourcesContent":[null,null,null,null,null],"names":["INTERNAL_PREFIX","generateRandomPart","Math","random","toString","substr","generateMessageId","source","timestamp","raw","btoa","replace","isMessageExpired","message","expirationDate","Date","now","createMessage","type","content","options","id","_a","expirationDuration","undefined","getInternalMessageType","baseType","channelName","namespace","hash","isValidInternalClearMessage","startsWith","log","level","data","process","env","REACT_APP_DEBUG_BROADCAST","prefix","toISOString","console","warn","error","debug","created","name","closed","sent","received","cleared","messageId","expired","duplicate","allSentCleared","allReceivedCleared","ignored","messageType","inProgress","started","completed","removedCount","context","action","originalError","Error","JSON","stringify","MIXPANEL_TOKEN","sessionId","_c","_b","crypto","randomUUID","call","slice","_d","queue","calledMethods","Set","flushTimer","buildEvent","props","event","properties","Object","assign","token","distinct_id","time","floor","flush","length","batch","splice","fetch","method","headers","body","keepalive","scheduleFlush","setTimeout","trackMethodCalled","has","add","push","document","addEventListener","visibilityState","clearTimeout","INTERNAL_MESSAGE_TYPES","flushSyncFn","NODE_ENV","require","flushSync","useBroadcastChannel","_entry","sourceName","cleaningInterval","keepLatestMessage","registeredTypes","deduplicationTTL","cleanupDebounceMs","batchingDelayMs","excludedBatchMessageTypes","onMessage","messages","setMessages","useState","sentMessages","setSentMessages","setError","isPingInProgress","setIsPingInProgress","channel","useRef","receivedMessageIds","Map","activeSourcesCollector","batchingTimeoutRef","batchingMessagesRef","batchingErrorRef","onMessageRef","current","useMemo","internalTypes","CLEAR_SENT_MESSAGES","PING","PONG","resolvedChannelName","registeredTypesRef","useEffect","optionsUsed","entry","options_used","onmessage_shape","batching_enabled","browser_supported","BroadcastChannel","performCleanup","useCallback","prev","filter","msg","debouncedCleanup","debounce","fn","wait","result","timeoutId","lastArgs","debounced","args","cancel","setErrorMessage","ping","timeoutMs","Promise","resolve","collector","postMessage","Array","from","messageContent","channelCurrent","includes","e","clearReceivedMessages","hasFilters","Boolean","ids","types","sources","clearSentMessages","sync","idMatches","typeMatches","getLatestMessage","i","sourceMatches","handleMessage","isValidMessage","pongSource","receivedAt","get","set","cb","String","closeChannel","bc","close","removeEventListener","isArray","forEach","interval","setInterval","before","clearInterval","key","entries","delete","BroadcastChannelContext","createContext","BroadcastProvider","children","BroadcastChannelActions","_jsx","Provider","value","useBroadcastProvider","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/utils/messageUtils.ts","../src/utils/debug.ts","../src/utils/telemetry.ts","../src/hooks/useBroadcastChannel.ts","../src/BroadcastProvider.tsx"],"sourcesContent":[null,null,null,null,null],"names":["INTERNAL_PREFIX","generateRandomPart","Math","random","toString","substr","generateMessageId","source","timestamp","raw","btoa","replace","isMessageExpired","message","expirationDate","Date","now","createMessage","type","content","options","id","_a","expirationDuration","undefined","getInternalMessageType","baseType","channelName","namespace","hash","isValidInternalClearMessage","startsWith","log","level","data","process","env","REACT_APP_DEBUG_BROADCAST","prefix","toISOString","console","warn","error","debug","created","name","closed","sent","received","cleared","messageId","expired","duplicate","allSentCleared","allReceivedCleared","ignored","messageType","inProgress","started","completed","removedCount","context","action","originalError","Error","JSON","stringify","MIXPANEL_TOKEN","sessionId","_c","_b","crypto","randomUUID","call","slice","_d","queue","calledMethods","Set","flushTimer","buildEvent","props","event","properties","Object","assign","token","distinct_id","time","floor","flush","length","batch","splice","fetch","method","headers","body","keepalive","scheduleFlush","setTimeout","trackMethodCalled","has","add","push","document","addEventListener","visibilityState","clearTimeout","INTERNAL_MESSAGE_TYPES","flushSyncFn","NODE_ENV","require","flushSync","useBroadcastChannel","_entry","sourceName","cleaningInterval","keepLatestMessage","registeredTypes","deduplicationTTL","cleanupDebounceMs","batchingDelayMs","excludedBatchMessageTypes","onMessage","telemetry","messages","setMessages","useState","sentMessages","setSentMessages","setError","isPingInProgress","setIsPingInProgress","channel","useRef","receivedMessageIds","Map","activeSourcesCollector","batchingTimeoutRef","batchingMessagesRef","batchingErrorRef","onMessageRef","current","useMemo","internalTypes","CLEAR_SENT_MESSAGES","PING","PONG","resolvedChannelName","registeredTypesRef","useEffect","optionsUsed","entry","options_used","onmessage_shape","batching_enabled","browser_supported","BroadcastChannel","performCleanup","useCallback","prev","filter","msg","debouncedCleanup","debounce","fn","wait","result","timeoutId","lastArgs","debounced","args","cancel","setErrorMessage","ping","timeoutMs","Promise","resolve","collector","postMessage","Array","from","messageContent","channelCurrent","includes","e","clearReceivedMessages","hasFilters","Boolean","ids","types","sources","clearSentMessages","sync","idMatches","typeMatches","getLatestMessage","i","sourceMatches","handleMessage","isValidMessage","pongSource","receivedAt","get","set","cb","String","closeChannel","bc","close","removeEventListener","isArray","forEach","interval","setInterval","before","clearInterval","key","entries","delete","BroadcastChannelContext","createContext","BroadcastProvider","children","BroadcastChannelActions","_jsx","Provider","value","useBroadcastProvider","useContext"],"mappings":"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"}
@@ -31,6 +31,24 @@ export interface BroadcastOptions {
31
31
  * Internal messages (PING, PONG, CLEAR_SENT_MESSAGES) never trigger this.
32
32
  */
33
33
  onMessage?: MessageCallback | OnMessageMap;
34
+ /**
35
+ * Allow the package to collect anonymous usage statistics (default: true).
36
+ *
37
+ * When true, structural signals are sent to the maintainer on channel mount:
38
+ * which options are in use, which methods are called, and whether the hook
39
+ * or provider entry point is used. No channel names, source names, message
40
+ * content, user identifiers, or any personally identifiable information is
41
+ * ever collected. The session ID is randomly generated on every page load
42
+ * and is never persisted to storage.
43
+ *
44
+ * Set to `false` to opt out:
45
+ * ```tsx
46
+ * useBroadcastChannel('my-channel', { telemetry: false });
47
+ * ```
48
+ *
49
+ * See TELEMETRY.md in the package repository for full details.
50
+ */
51
+ telemetry?: boolean;
34
52
  }
35
53
  /**
36
54
  * Options for sending messages
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-broadcast-sync",
3
- "version": "1.10.0",
3
+ "version": "1.11.1",
4
4
  "description": "A lightweight React hook and provider for syncing state across browser tabs using BroadcastChannel API.",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -10,7 +10,8 @@
10
10
  "files": [
11
11
  "dist",
12
12
  "README.md",
13
- "LICENSE"
13
+ "LICENSE",
14
+ "TELEMETRY.md"
14
15
  ],
15
16
  "exports": {
16
17
  ".": {