@event-chat/rpc 0.1.20 → 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 +5 -3
- package/dist/core/RPCAction.d.ts.map +1 -1
- package/dist/core/RPCAction.js +19 -15
- package/dist/entry/auto.js +1 -1
- package/dist/fields.d.ts +3 -0
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +2 -1
- package/dist/react/fields.d.ts.map +1 -1
- package/dist/react/fields.js +1 -1
- 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/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;
|
|
@@ -21,11 +20,9 @@ declare class RPCAction {
|
|
|
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,6 +30,11 @@ 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
|
};
|
|
@@ -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();
|
|
@@ -134,29 +132,35 @@ class RPCAction {
|
|
|
134
132
|
sign: this._requestId
|
|
135
133
|
};
|
|
136
134
|
}
|
|
137
|
-
_isOriginAllowed(origin) {
|
|
138
|
-
return this._options?.allowedOrigins?.some((item)=>'*' === item || getOrigin(item) === getOrigin(origin)) ?? false;
|
|
139
|
-
}
|
|
140
135
|
_messageHandler(event) {
|
|
141
136
|
const { data, origin, ports, source, wait } = event;
|
|
142
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;
|
|
143
144
|
if (__RPC__ !== RPC_SIGN) return;
|
|
144
|
-
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;
|
|
145
154
|
if (!this._target.is(source, data)) return;
|
|
146
|
-
if (this._target.
|
|
155
|
+
if (!this._target.allow(origin, this._options.allowedOrigins)) return;
|
|
147
156
|
if (heartbeat) {
|
|
148
157
|
this._lastHeartbeat = Date.now();
|
|
149
158
|
if (!this._isConnected) {
|
|
150
159
|
this._isConnected = true;
|
|
151
|
-
|
|
160
|
+
onConnect?.();
|
|
152
161
|
}
|
|
153
162
|
return;
|
|
154
163
|
}
|
|
155
|
-
const info = {
|
|
156
|
-
origin,
|
|
157
|
-
ports,
|
|
158
|
-
source
|
|
159
|
-
};
|
|
160
164
|
if (broadcast) {
|
|
161
165
|
const brodsign = [
|
|
162
166
|
sign,
|
|
@@ -230,4 +234,4 @@ class RPCAction {
|
|
|
230
234
|
}
|
|
231
235
|
}
|
|
232
236
|
const core_RPCAction = RPCAction;
|
|
233
|
-
export {
|
|
237
|
+
export { core_RPCAction as default };
|
package/dist/entry/auto.js
CHANGED
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":"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]',
|
|
@@ -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,
|
|
@@ -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, {
|