@event-chat/rpc 0.1.19 → 0.1.21
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/core/RPCAction.d.ts +8 -6
- package/dist/core/RPCAction.d.ts.map +1 -1
- package/dist/core/RPCAction.js +28 -18
- package/dist/core/registry.d.ts +2 -2
- package/dist/entry/auto.js +1 -1
- package/dist/entry/dedicatedWorkerGlobalScope.d.ts +2 -2
- package/dist/entry/serviceWorkerGlobalScope.d.ts +2 -2
- package/dist/entry/serviceWorkerRegistration.d.ts +2 -2
- package/dist/entry/sharedWorker.d.ts +2 -2
- package/dist/entry/sharedWorkerGlobalScope.d.ts +2 -2
- package/dist/entry/webSocket.d.ts +2 -2
- package/dist/entry/window.d.ts +2 -2
- package/dist/entry/worker.d.ts +2 -2
- package/dist/fields.d.ts +3 -0
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +2 -1
- package/dist/react/RPCProvider.d.ts.map +1 -1
- package/dist/react/RPCProvider.js +6 -1
- package/dist/react/fields.d.ts.map +1 -1
- package/dist/react/fields.js +1 -1
- package/dist/react/hooks.d.ts +2 -2
- package/dist/transports/BaseTransport.d.ts +2 -0
- package/dist/transports/BaseTransport.d.ts.map +1 -1
- package/dist/transports/BaseTransport.js +6 -0
- package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts.map +1 -1
- package/dist/transports/ServiceWorkerGlobalScopeTransport.js +5 -1
- package/dist/transports/WindowTransport.d.ts +2 -0
- package/dist/transports/WindowTransport.d.ts.map +1 -1
- package/dist/transports/WindowTransport.js +7 -0
- package/package.json +1 -1
package/dist/core/RPCAction.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { IframeSerializeOptions, MessageItem, Transport } from '../fields';
|
|
2
|
-
declare const WINDOW_NAME = "[object Window]";
|
|
3
2
|
declare class RPCAction {
|
|
4
3
|
private _target;
|
|
5
4
|
private _brodcastListeners;
|
|
@@ -14,18 +13,16 @@ declare class RPCAction {
|
|
|
14
13
|
private _boundMessageHandler;
|
|
15
14
|
constructor(_target: Transport<boolean>, options?: RPCOptionsType);
|
|
16
15
|
destroy(): void;
|
|
17
|
-
broadcast<T>(options?: Omit<RequestOptions<T>, 'retry'>):
|
|
16
|
+
broadcast<T>(options?: Omit<RequestOptions<T>, 'retry'>): MessageItem;
|
|
18
17
|
config(options: Omit<RPCOptionsType, 'onConnect' | 'onDisconnect'>): void;
|
|
19
18
|
on<T extends ActionFunType>(type: PropertyKey, handler: T): void;
|
|
20
19
|
onBrodcast(listener: BrodcastItem): void;
|
|
21
20
|
request<T = unknown>(type: PropertyKey, options?: RequestOptions<T>): Promise<unknown>;
|
|
22
21
|
private _abort;
|
|
23
22
|
private _baseMessage;
|
|
24
|
-
private _isOriginAllowed;
|
|
25
23
|
private _messageHandler;
|
|
26
24
|
private _startHeartbeat;
|
|
27
25
|
}
|
|
28
|
-
export { WINDOW_NAME };
|
|
29
26
|
export default RPCAction;
|
|
30
27
|
export type RPCOptionsType = Pick<MessageItem, 'channel'> & {
|
|
31
28
|
allowedOrigins?: string[];
|
|
@@ -33,12 +30,17 @@ export type RPCOptionsType = Pick<MessageItem, 'channel'> & {
|
|
|
33
30
|
heartbeatTimeout?: number;
|
|
34
31
|
retryTimeout?: number;
|
|
35
32
|
retryTimes?: number;
|
|
33
|
+
debug?: (arg: {
|
|
34
|
+
data: MessageItem;
|
|
35
|
+
info: MessageInfo;
|
|
36
|
+
options: Omit<RPCOptionsType, 'debug' | 'onConnect' | 'onDisconnect'>;
|
|
37
|
+
}) => void;
|
|
36
38
|
onConnect?: () => void;
|
|
37
39
|
onDisconnect?: (destroy?: boolean) => void;
|
|
38
40
|
};
|
|
39
41
|
export type ActionFunType = (payload?: any, info?: MessageInfo) => any;
|
|
40
|
-
export type BrodcastItem = (value: unknown, info?: MessageInfo) => void;
|
|
41
|
-
export type RequestOptions<T = unknown> = IframeSerializeOptions & {
|
|
42
|
+
export type BrodcastItem = (value: unknown, info?: MessageInfo & Pick<MessageItem, 'requestId' | 'sign'>) => void;
|
|
43
|
+
export type RequestOptions<T = unknown> = IframeSerializeOptions & Pick<MessageItem, 'requestId' | 'sign'> & {
|
|
42
44
|
payload?: T;
|
|
43
45
|
retry?: number;
|
|
44
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAa1E,cAAM,SAAS;IAaX,OAAO,CAAC,OAAO;IAZjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,oBAAoB,CAAkC;gBAGpD,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE,cAAc;IAa1B,OAAO;IAkBP,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IAmBvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,cAAc,CAAC;IAIlE,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAIzD,UAAU,CAAC,QAAQ,EAAE,YAAY;IAIjC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IA8CnE,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IA2FvB,OAAO,CAAC,eAAe;CAuBxB;AAED,eAAe,SAAS,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAC1D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;QACZ,IAAI,EAAE,WAAW,CAAA;QACjB,IAAI,EAAE,WAAW,CAAA;QACjB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC,CAAA;KACtE,KAAK,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,GAAG,CAAA;AAGtE,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,KACzD,IAAI,CAAA;AAET,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,sBAAsB,GAC9D,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG;IACxC,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAIH,KAAK,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA"}
|
package/dist/core/RPCAction.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { isKey } from "../utils.js";
|
|
2
2
|
import { receiptStore } from "./receiptStore.js";
|
|
3
3
|
const RPC_SIGN = 'RPCActionSign';
|
|
4
|
-
const WINDOW_NAME = '[object Window]';
|
|
5
4
|
const defaultOptions = {
|
|
6
5
|
allowedOrigins: [],
|
|
7
6
|
heartbeatInterval: 3000,
|
|
@@ -9,7 +8,6 @@ const defaultOptions = {
|
|
|
9
8
|
retryTimeout: 5000,
|
|
10
9
|
retryTimes: 2
|
|
11
10
|
};
|
|
12
|
-
const getOrigin = (url)=>'string' == typeof self?.location?.origin ? new URL(url, self.location.origin).origin : '';
|
|
13
11
|
class RPCAction {
|
|
14
12
|
_target;
|
|
15
13
|
_brodcastListeners = [];
|
|
@@ -28,7 +26,7 @@ class RPCAction {
|
|
|
28
26
|
this._options = {
|
|
29
27
|
...defaultOptions,
|
|
30
28
|
...options,
|
|
31
|
-
allowedOrigins: options?.allowedOrigins
|
|
29
|
+
allowedOrigins: this._target.originFilter(options?.allowedOrigins)
|
|
32
30
|
};
|
|
33
31
|
this._target.onmessage(this._boundMessageHandler);
|
|
34
32
|
this._startHeartbeat();
|
|
@@ -49,19 +47,21 @@ class RPCAction {
|
|
|
49
47
|
this._requestId = '';
|
|
50
48
|
}
|
|
51
49
|
broadcast(options) {
|
|
52
|
-
const { payload, ...ops } = options ?? {};
|
|
50
|
+
const { payload, sign, requestId = '', ...ops } = options ?? {};
|
|
53
51
|
const { channel } = this._options;
|
|
54
52
|
const info = this._baseMessage({
|
|
55
53
|
broadcast: true,
|
|
56
54
|
kind: 'request',
|
|
57
|
-
requestId: receiptStore.create(),
|
|
55
|
+
requestId: '' === requestId ? receiptStore.create() : requestId,
|
|
58
56
|
channel,
|
|
59
57
|
payload
|
|
60
58
|
});
|
|
59
|
+
if (sign) info.sign = sign;
|
|
61
60
|
this._target.postMessage(info, {
|
|
62
61
|
...ops,
|
|
63
62
|
targetOrigin: ops.targetOrigin ?? self?.location?.origin
|
|
64
63
|
});
|
|
64
|
+
return info;
|
|
65
65
|
}
|
|
66
66
|
config(options) {
|
|
67
67
|
this._options = {
|
|
@@ -132,29 +132,35 @@ class RPCAction {
|
|
|
132
132
|
sign: this._requestId
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
|
-
_isOriginAllowed(origin) {
|
|
136
|
-
return this._options?.allowedOrigins?.some((item)=>'*' === item || getOrigin(item) === getOrigin(origin)) ?? false;
|
|
137
|
-
}
|
|
138
135
|
_messageHandler(event) {
|
|
139
136
|
const { data, origin, ports, source, wait } = event;
|
|
140
137
|
const { __RPC__, broadcast, channel, error, heartbeat, kind, payload, requestId, sign, type } = data ?? {};
|
|
138
|
+
const info = {
|
|
139
|
+
origin,
|
|
140
|
+
ports,
|
|
141
|
+
source
|
|
142
|
+
};
|
|
143
|
+
const { debug, onConnect, ...options } = this._options;
|
|
141
144
|
if (__RPC__ !== RPC_SIGN) return;
|
|
142
|
-
if (
|
|
145
|
+
if (data) {
|
|
146
|
+
Reflect.deleteProperty(options, 'onDisconnect');
|
|
147
|
+
debug?.({
|
|
148
|
+
data,
|
|
149
|
+
info,
|
|
150
|
+
options
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (options?.channel !== channel) return;
|
|
143
154
|
if (!this._target.is(source, data)) return;
|
|
144
|
-
if (this._target.
|
|
155
|
+
if (!this._target.allow(origin, this._options.allowedOrigins)) return;
|
|
145
156
|
if (heartbeat) {
|
|
146
157
|
this._lastHeartbeat = Date.now();
|
|
147
158
|
if (!this._isConnected) {
|
|
148
159
|
this._isConnected = true;
|
|
149
|
-
|
|
160
|
+
onConnect?.();
|
|
150
161
|
}
|
|
151
162
|
return;
|
|
152
163
|
}
|
|
153
|
-
const info = {
|
|
154
|
-
origin,
|
|
155
|
-
ports,
|
|
156
|
-
source
|
|
157
|
-
};
|
|
158
164
|
if (broadcast) {
|
|
159
165
|
const brodsign = [
|
|
160
166
|
sign,
|
|
@@ -163,7 +169,11 @@ class RPCAction {
|
|
|
163
169
|
const brodkey = brodsign.join(':');
|
|
164
170
|
if (2 === brodsign.length && !this._brodcastRecord.includes(brodkey)) {
|
|
165
171
|
this._brodcastRecord.push(brodkey);
|
|
166
|
-
this._brodcastListeners.forEach((listener)=>listener(payload,
|
|
172
|
+
this._brodcastListeners.forEach((listener)=>listener(payload, {
|
|
173
|
+
...info,
|
|
174
|
+
requestId,
|
|
175
|
+
sign
|
|
176
|
+
}));
|
|
167
177
|
}
|
|
168
178
|
return;
|
|
169
179
|
}
|
|
@@ -224,4 +234,4 @@ class RPCAction {
|
|
|
224
234
|
}
|
|
225
235
|
}
|
|
226
236
|
const core_RPCAction = RPCAction;
|
|
227
|
-
export {
|
|
237
|
+
export { core_RPCAction as default };
|
package/dist/core/registry.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare function createRPC<EVENT extends ActionRecord, CONSUME extends Ac
|
|
|
11
11
|
} : StructuredSerializeOptions & {
|
|
12
12
|
targetOrigin?: string;
|
|
13
13
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
14
|
-
} & {
|
|
14
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
15
15
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
16
16
|
retry?: number;
|
|
17
17
|
} & {
|
|
@@ -21,7 +21,7 @@ export declare function createRPC<EVENT extends ActionRecord, CONSUME extends Ac
|
|
|
21
21
|
} : StructuredSerializeOptions & {
|
|
22
22
|
targetOrigin?: string;
|
|
23
23
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
24
|
-
} & {
|
|
24
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
25
25
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
26
26
|
retry?: number;
|
|
27
27
|
} & {
|
package/dist/entry/auto.js
CHANGED
|
@@ -6,7 +6,7 @@ export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends Action
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends Action
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
|
@@ -6,7 +6,7 @@ export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRe
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRe
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
|
@@ -6,7 +6,7 @@ export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionR
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionR
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
|
@@ -6,7 +6,7 @@ export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUM
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUM
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
|
@@ -6,7 +6,7 @@ export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRec
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRec
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
|
@@ -6,7 +6,7 @@ export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME e
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME e
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
package/dist/entry/window.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME exte
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME exte
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
package/dist/entry/worker.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME exte
|
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
7
7
|
targetOrigin?: string;
|
|
8
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
11
|
retry?: number;
|
|
12
12
|
} & {
|
|
@@ -16,7 +16,7 @@ export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME exte
|
|
|
16
16
|
} : StructuredSerializeOptions & {
|
|
17
17
|
targetOrigin?: string;
|
|
18
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
21
|
retry?: number;
|
|
22
22
|
} & {
|
package/dist/fields.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare const TARGET_TYPE_STRINGS: Readonly<{
|
|
|
13
13
|
Worker: "[object Worker]";
|
|
14
14
|
DedicatedWorkerGlobalScope: "[object DedicatedWorkerGlobalScope]";
|
|
15
15
|
}>;
|
|
16
|
+
export declare const WINDOW_NAME = "[object Window]";
|
|
16
17
|
export interface FactoryOptions {
|
|
17
18
|
message?: boolean | AddEventListenerOptions;
|
|
18
19
|
}
|
|
@@ -34,12 +35,14 @@ export interface RPCInstanceContextIns {
|
|
|
34
35
|
mount?: (item: RPCItem, name?: string) => void;
|
|
35
36
|
}
|
|
36
37
|
export interface Transport<ONLYBD extends boolean = false> {
|
|
38
|
+
allow: (origin: string, current?: string[]) => boolean;
|
|
37
39
|
destroy: () => void;
|
|
38
40
|
getType: () => string;
|
|
39
41
|
is: (source: MessageEventSource | null, message?: MessageItem) => boolean;
|
|
40
42
|
observe: (close?: () => void) => void;
|
|
41
43
|
onmessage: (listener: ListenerType) => void;
|
|
42
44
|
onremove: (listener: ListenerType) => void;
|
|
45
|
+
originFilter: (origin?: string[]) => string[] | undefined;
|
|
43
46
|
postMessage: (message: MessageItem, options?: IframeSerializeOptions) => void;
|
|
44
47
|
upset: (options: FactoryOptions) => void;
|
|
45
48
|
onlyBrod?: ONLYBD;
|
package/dist/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|
package/dist/fields.js
CHANGED
|
@@ -11,4 +11,5 @@ const TARGET_TYPE_STRINGS = Object.freeze({
|
|
|
11
11
|
Worker: '[object Worker]',
|
|
12
12
|
DedicatedWorkerGlobalScope: '[object DedicatedWorkerGlobalScope]'
|
|
13
13
|
});
|
|
14
|
-
|
|
14
|
+
const WINDOW_NAME = '[object Window]';
|
|
15
|
+
export { RPCInstanceContext, TARGET_TYPE_STRINGS, WINDOW_NAME };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RPCProvider.d.ts","sourceRoot":"","sources":["../../src/react/RPCProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAkC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"RPCProvider.d.ts","sourceRoot":"","sources":["../../src/react/RPCProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAkC,MAAM,OAAO,CAAA;AAY7E,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAkDtC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -8,8 +8,13 @@ const RPCProvider = ({ children })=>{
|
|
|
8
8
|
const { exclude, include, typein, typeout } = options ?? {};
|
|
9
9
|
if (list.current.size > 0) {
|
|
10
10
|
const scope = objectValues(TARGET_TYPE_STRINGS).filter((item)=>!exclude?.includes(item)).filter((item)=>!include || include.includes(item)).map(String);
|
|
11
|
+
let result = {};
|
|
11
12
|
list.current.forEach((group, item)=>{
|
|
12
|
-
if ('getType' in item && scope.includes(item.getType()) && !typeout?.includes(group) && (!typein || typein.includes(group))) item.broadcast(
|
|
13
|
+
if ('getType' in item && scope.includes(item.getType()) && !typeout?.includes(group) && (!typein || typein.includes(group))) result = item.broadcast({
|
|
14
|
+
...data,
|
|
15
|
+
requestId: data.requestId ?? result.requestId,
|
|
16
|
+
sign: data.sign ?? result.sign
|
|
17
|
+
});
|
|
13
18
|
});
|
|
14
19
|
}
|
|
15
20
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/react/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/react/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAe,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,eAAO,MAAM,kBAAkB,gDAA2C,CAAA;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;EAU9B,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,MAAM,OAAO,GACf,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,GACpE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAExB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA"}
|
package/dist/react/fields.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createContext } from "react";
|
|
2
|
-
import { WINDOW_NAME } from "../
|
|
2
|
+
import { WINDOW_NAME } from "../fields.js";
|
|
3
3
|
const RPCInstanceContext = createContext({});
|
|
4
4
|
const TARGET_TYPE_STRINGS = Object.freeze({
|
|
5
5
|
BroadcastChannel: '[object BroadcastChannel]',
|
package/dist/react/hooks.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ declare const useRPC: <TARGET extends TargetInit, EVENT extends ActionRecord, CO
|
|
|
9
9
|
} : StructuredSerializeOptions & {
|
|
10
10
|
targetOrigin?: string;
|
|
11
11
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
12
|
-
} & {
|
|
12
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
13
13
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
14
14
|
retry?: number;
|
|
15
15
|
} & {
|
|
@@ -19,7 +19,7 @@ declare const useRPC: <TARGET extends TargetInit, EVENT extends ActionRecord, CO
|
|
|
19
19
|
} : StructuredSerializeOptions & {
|
|
20
20
|
targetOrigin?: string;
|
|
21
21
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
22
|
-
} & {
|
|
22
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
23
23
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
24
24
|
retry?: number;
|
|
25
25
|
} & {
|
|
@@ -4,8 +4,10 @@ declare abstract class BaseTransport<T extends TargetType = TargetType, ONLYBD e
|
|
|
4
4
|
protected _options: FactoryOptions;
|
|
5
5
|
readonly onlyBrod?: ONLYBD;
|
|
6
6
|
constructor(_target: T, _options?: FactoryOptions);
|
|
7
|
+
allow(origin: string, current?: string[]): boolean;
|
|
7
8
|
getType(): string;
|
|
8
9
|
is(source: MessageEventSource | null): boolean;
|
|
10
|
+
originFilter(origin?: string[]): string[] | undefined;
|
|
9
11
|
upset(options: FactoryOptions): void;
|
|
10
12
|
abstract destroy(): void;
|
|
11
13
|
abstract observe(close?: () => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BaseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAExF,uBAAe,aAAa,CAC1B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,MAAM,SAAS,OAAO,GAAG,KAAK,CAC9B,YAAW,SAAS,CAAC,MAAM,CAAC;IAG1B,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,QAAQ,EAAE,cAAc;IAHpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEd,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;
|
|
1
|
+
{"version":3,"file":"BaseTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BaseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAExF,uBAAe,aAAa,CAC1B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,MAAM,SAAS,OAAO,GAAG,KAAK,CAC9B,YAAW,SAAS,CAAC,MAAM,CAAC;IAG1B,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,QAAQ,EAAE,cAAc;IAHpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEd,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;IAIzC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;IAIxC,OAAO;IAIP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;IAI9B,KAAK,CAAC,OAAO,EAAE,cAAc;IAM7B,QAAQ,CAAC,OAAO,IAAI,IAAI;IAIxB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAC1C,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAGhD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAC/C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CACnF;AAED,eAAe,aAAa,CAAA;AAE5B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;IAE3C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;CACzB;AAID,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,SAAS,GACT,MAAM,GAEN,yBAAyB,GACzB,wBAAwB,GACxB,YAAY,GACZ,uBAAuB,GACvB,MAAM,GACN,0BAA0B,CAAA"}
|
|
@@ -6,12 +6,18 @@ class BaseTransport {
|
|
|
6
6
|
this._target = _target;
|
|
7
7
|
this._options = _options;
|
|
8
8
|
}
|
|
9
|
+
allow(origin, current) {
|
|
10
|
+
return origin ? true : (current?.length ?? 0) > -1;
|
|
11
|
+
}
|
|
9
12
|
getType() {
|
|
10
13
|
return `${Object.prototype.toString.call(this._target)}`;
|
|
11
14
|
}
|
|
12
15
|
is(source) {
|
|
13
16
|
return !(source instanceof BaseTransport);
|
|
14
17
|
}
|
|
18
|
+
originFilter(origin) {
|
|
19
|
+
return origin;
|
|
20
|
+
}
|
|
15
21
|
upset(options) {
|
|
16
22
|
this._options = {
|
|
17
23
|
...this._options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAK3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;IAI7D,OAAO;IAKP,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAyBvC,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAK3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;IAI7D,OAAO;IAKP,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAyBvC,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAuB1E;AAED,OAAO,EAAE,CAAA;AAET,eAAe,iCAAiC,CAAA"}
|
|
@@ -31,7 +31,11 @@ class ServiceWorkerGlobalScopeTransport extends BaseTransport {
|
|
|
31
31
|
scope: self.registration.scope
|
|
32
32
|
};
|
|
33
33
|
const { transmit, transfer } = options ?? {};
|
|
34
|
-
|
|
34
|
+
const transmitHandle = msg.heartbeat ? ()=>self.clients.matchAll({
|
|
35
|
+
type: 'window',
|
|
36
|
+
includeUncontrolled: true
|
|
37
|
+
}) : transmit;
|
|
38
|
+
if (transmitHandle) transmitHandle().then((clients)=>clients.forEach((client)=>client.postMessage(msg, {
|
|
35
39
|
transfer
|
|
36
40
|
}))).catch(()=>{});
|
|
37
41
|
else this._source?.postMessage(msg, {
|
|
@@ -3,9 +3,11 @@ import BaseTransport from './BaseTransport';
|
|
|
3
3
|
declare class WindowTransport extends BaseTransport<Window> {
|
|
4
4
|
private _errorHandle;
|
|
5
5
|
destroy(): void;
|
|
6
|
+
allow(origin: string, current?: string[]): boolean;
|
|
6
7
|
is(source: MessageEventSource | null): boolean;
|
|
7
8
|
onmessage(listener: ListenerType): void;
|
|
8
9
|
onremove(listener: ListenerType): void;
|
|
10
|
+
originFilter(origin?: string[]): string[] | undefined;
|
|
9
11
|
postMessage(message: MessageItem, options?: IframeSerializeOptions): void;
|
|
10
12
|
observe(close?: () => void): void;
|
|
11
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAM3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IACjD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO;IAKP,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;IAKxC,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;IAI9B,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;IASzE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI;CAkB3B;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import BaseTransport from "./BaseTransport.js";
|
|
2
|
+
const getOrigin = (url)=>'string' == typeof self?.location?.origin ? new URL(url, self.location.origin).origin : '';
|
|
2
3
|
class WindowTransport extends BaseTransport {
|
|
3
4
|
_errorHandle = null;
|
|
4
5
|
destroy() {
|
|
@@ -6,6 +7,9 @@ class WindowTransport extends BaseTransport {
|
|
|
6
7
|
isDestroy: true
|
|
7
8
|
});
|
|
8
9
|
}
|
|
10
|
+
allow(origin, current) {
|
|
11
|
+
return current?.some((item)=>'*' === item || getOrigin(item) === getOrigin(origin)) ?? false;
|
|
12
|
+
}
|
|
9
13
|
is(source) {
|
|
10
14
|
return Object.is(this._target, source);
|
|
11
15
|
}
|
|
@@ -15,6 +19,9 @@ class WindowTransport extends BaseTransport {
|
|
|
15
19
|
onremove(listener) {
|
|
16
20
|
window.removeEventListener('message', listener, this._options.message);
|
|
17
21
|
}
|
|
22
|
+
originFilter(origin) {
|
|
23
|
+
return origin?.map((item)=>'*' === item ? item : getOrigin(item)).filter(Boolean);
|
|
24
|
+
}
|
|
18
25
|
postMessage(message, options) {
|
|
19
26
|
const { transfer, targetOrigin = '*' } = options ?? {};
|
|
20
27
|
this._target.postMessage(message, {
|