signal-bridge 1.0.3 → 1.0.4

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/dist/index.d.mts CHANGED
@@ -18,11 +18,24 @@ interface BridgeOptions {
18
18
  debug?: boolean;
19
19
  enableNavigationSync?: boolean;
20
20
  }
21
- declare function signalBridge(appId: string, options: BridgeOptions): {
21
+ declare function createBridge(appId: string, options: BridgeOptions): {
22
+ init(): void;
23
+ listen(handler: Listener): void;
24
+ emit(type: string, payload: any): void;
25
+ destroy(): void;
26
+ };
27
+ declare function resetBridge(): void;
28
+ declare function signalBridge(): {
29
+ init(): void;
30
+ listen(handler: Listener): void;
31
+ emit(type: string, payload: any): void;
32
+ destroy(): void;
33
+ };
34
+ declare function setupBridge(appId: string, options: BridgeOptions): {
22
35
  init(): void;
23
36
  listen(handler: Listener): void;
24
37
  emit(type: string, payload: any): void;
25
38
  destroy(): void;
26
39
  };
27
40
 
28
- export { base64UrlDecode, base64UrlEncode, decrypt, encrypt, generateKey, signalBridge };
41
+ export { base64UrlDecode, base64UrlEncode, createBridge, decrypt, encrypt, generateKey, resetBridge, setupBridge, signalBridge };
package/dist/index.d.ts CHANGED
@@ -18,11 +18,24 @@ interface BridgeOptions {
18
18
  debug?: boolean;
19
19
  enableNavigationSync?: boolean;
20
20
  }
21
- declare function signalBridge(appId: string, options: BridgeOptions): {
21
+ declare function createBridge(appId: string, options: BridgeOptions): {
22
+ init(): void;
23
+ listen(handler: Listener): void;
24
+ emit(type: string, payload: any): void;
25
+ destroy(): void;
26
+ };
27
+ declare function resetBridge(): void;
28
+ declare function signalBridge(): {
29
+ init(): void;
30
+ listen(handler: Listener): void;
31
+ emit(type: string, payload: any): void;
32
+ destroy(): void;
33
+ };
34
+ declare function setupBridge(appId: string, options: BridgeOptions): {
22
35
  init(): void;
23
36
  listen(handler: Listener): void;
24
37
  emit(type: string, payload: any): void;
25
38
  destroy(): void;
26
39
  };
27
40
 
28
- export { base64UrlDecode, base64UrlEncode, decrypt, encrypt, generateKey, signalBridge };
41
+ export { base64UrlDecode, base64UrlEncode, createBridge, decrypt, encrypt, generateKey, resetBridge, setupBridge, signalBridge };
@@ -6629,9 +6629,12 @@ var signalBridge = (() => {
6629
6629
  __export(index_exports, {
6630
6630
  base64UrlDecode: () => base64UrlDecode,
6631
6631
  base64UrlEncode: () => base64UrlEncode,
6632
+ createBridge: () => createBridge,
6632
6633
  decrypt: () => decrypt,
6633
6634
  encrypt: () => encrypt,
6634
6635
  generateKey: () => generateKey,
6636
+ resetBridge: () => resetBridge,
6637
+ setupBridge: () => setupBridge,
6635
6638
  signalBridge: () => signalBridge
6636
6639
  });
6637
6640
 
@@ -6675,7 +6678,33 @@ var signalBridge = (() => {
6675
6678
 
6676
6679
  // src/index.ts
6677
6680
  var isInitialized = false;
6678
- function signalBridge(appId, options) {
6681
+ var globalConfig = null;
6682
+ var globalBridge = null;
6683
+ function createBridge(appId, options) {
6684
+ if (globalBridge) {
6685
+ if ((globalConfig == null ? void 0 : globalConfig.appId) !== appId || JSON.stringify(globalConfig == null ? void 0 : globalConfig.origins) !== JSON.stringify(options.allowedHostOrigins)) {
6686
+ console.warn("\u26A0\uFE0F Bridge already initialized with different config");
6687
+ }
6688
+ return globalBridge;
6689
+ }
6690
+ globalConfig = {
6691
+ appId,
6692
+ origins: options.allowedHostOrigins
6693
+ };
6694
+ globalBridge = setupBridge(appId, options);
6695
+ return globalBridge;
6696
+ }
6697
+ function resetBridge() {
6698
+ globalBridge == null ? void 0 : globalBridge.destroy();
6699
+ globalBridge = null;
6700
+ }
6701
+ function signalBridge() {
6702
+ if (!globalBridge) {
6703
+ throw new Error("\u274C Bridge belum di-init. Panggil createBridge().init() dulu");
6704
+ }
6705
+ return globalBridge;
6706
+ }
6707
+ function setupBridge(appId, options) {
6679
6708
  const { allowedHostOrigins, cryptoKey, debug } = options;
6680
6709
  const isRemote = window.parent && window.parent !== window;
6681
6710
  if (!isRemote) {
@@ -6699,14 +6728,14 @@ var signalBridge = (() => {
6699
6728
  const remoteMessage = {
6700
6729
  type: data.type,
6701
6730
  payload,
6702
- txn: data.txn,
6731
+ txn: data.txn || "",
6703
6732
  __source: "host",
6704
6733
  __origin: origin
6705
6734
  };
6706
6735
  listeners.forEach((fn) => fn(remoteMessage));
6707
6736
  };
6708
6737
  window.addEventListener("message", messageHandler);
6709
- function emitToHost(type, payload) {
6738
+ function emitToHost(type, payload, txn) {
6710
6739
  let finalPayload = payload;
6711
6740
  if (cryptoKey) {
6712
6741
  finalPayload = encrypt(payload, cryptoKey);
@@ -6715,7 +6744,7 @@ var signalBridge = (() => {
6715
6744
  app_id: appId,
6716
6745
  type,
6717
6746
  payload: finalPayload,
6718
- txn: generateKey(),
6747
+ txn: txn || "",
6719
6748
  __origin: window.location.origin,
6720
6749
  __source: "remote"
6721
6750
  };
@@ -6752,7 +6781,11 @@ var signalBridge = (() => {
6752
6781
  }
6753
6782
  if (typeof window !== "undefined") {
6754
6783
  window.SignalBridge = {
6784
+ setupBridge,
6785
+ createBridge,
6786
+ // 👈 NEW
6755
6787
  signalBridge,
6788
+ // 👈 NEW
6756
6789
  encrypt,
6757
6790
  decrypt,
6758
6791
  generateKey