@event-chat/rpc 0.1.20 → 0.1.22
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 -4
- package/dist/core/RPCAction.d.ts.map +1 -1
- package/dist/core/RPCAction.js +23 -15
- package/dist/entry/auto.d.ts.map +1 -1
- package/dist/entry/auto.js +7 -1
- package/dist/entry/broadcastChannel.d.ts +1 -1
- package/dist/entry/dedicatedWorkerGlobalScope.d.ts +1 -1
- package/dist/entry/messagePort.d.ts +26 -0
- package/dist/entry/messagePort.d.ts.map +1 -0
- package/dist/entry/messagePort.js +7 -0
- package/dist/entry/serviceWorkerGlobalScope.d.ts +1 -1
- package/dist/entry/serviceWorkerRegistration.d.ts +1 -1
- package/dist/entry/sharedWorker.d.ts +1 -1
- package/dist/entry/sharedWorkerGlobalScope.d.ts +1 -1
- package/dist/entry/webSocket.d.ts +1 -1
- package/dist/entry/window.d.ts +1 -1
- package/dist/entry/worker.d.ts +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/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/react/fields.d.ts.map +1 -1
- package/dist/react/fields.js +1 -1
- package/dist/transports/BaseTransport.d.ts +3 -1
- package/dist/transports/BaseTransport.d.ts.map +1 -1
- package/dist/transports/BaseTransport.js +6 -0
- package/dist/transports/MessagePortTransport.d.ts +11 -0
- package/dist/transports/MessagePortTransport.d.ts.map +1 -0
- package/dist/transports/MessagePortTransport.js +22 -0
- package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts.map +1 -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 +5 -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,14 +30,21 @@ 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
|
+
handlers: string[];
|
|
36
|
+
info: MessageInfo;
|
|
37
|
+
options: Omit<RPCOptionsType, 'debug' | 'onConnect' | 'onDisconnect'>;
|
|
38
|
+
pending: string[];
|
|
39
|
+
}) => void;
|
|
36
40
|
onConnect?: () => void;
|
|
37
41
|
onDisconnect?: (destroy?: boolean) => void;
|
|
38
42
|
};
|
|
39
43
|
export type ActionFunType = (payload?: any, info?: MessageInfo) => any;
|
|
40
44
|
export type BrodcastItem = (value: unknown, info?: MessageInfo & Pick<MessageItem, 'requestId' | 'sign'>) => void;
|
|
45
|
+
export type MessageInfo = Pick<MessageEvent, 'origin' | 'ports' | 'source'>;
|
|
41
46
|
export type RequestOptions<T = unknown> = IframeSerializeOptions & Pick<MessageItem, 'requestId' | 'sign'> & {
|
|
42
47
|
payload?: T;
|
|
43
48
|
retry?: number;
|
|
44
49
|
};
|
|
45
|
-
type MessageInfo = Pick<MessageEvent, 'origin' | 'ports' | 'source'>;
|
|
46
50
|
//# sourceMappingURL=RPCAction.d.ts.map
|
|
@@ -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;IA8FvB,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,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,IAAI,EAAE,WAAW,CAAA;QACjB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC,CAAA;QACrE,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB,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,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;AAE3E,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"}
|
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,39 @@ 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
|
+
const pending = Array.from(this._pending.keys());
|
|
148
|
+
const handlers = Object.keys(this._handlers);
|
|
149
|
+
debug?.({
|
|
150
|
+
data,
|
|
151
|
+
handlers,
|
|
152
|
+
info,
|
|
153
|
+
options,
|
|
154
|
+
pending
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
if (options?.channel !== channel) return;
|
|
145
158
|
if (!this._target.is(source, data)) return;
|
|
146
|
-
if (this._target.
|
|
159
|
+
if (!this._target.allow(origin, this._options.allowedOrigins)) return;
|
|
147
160
|
if (heartbeat) {
|
|
148
161
|
this._lastHeartbeat = Date.now();
|
|
149
162
|
if (!this._isConnected) {
|
|
150
163
|
this._isConnected = true;
|
|
151
|
-
|
|
164
|
+
onConnect?.();
|
|
152
165
|
}
|
|
153
166
|
return;
|
|
154
167
|
}
|
|
155
|
-
const info = {
|
|
156
|
-
origin,
|
|
157
|
-
ports,
|
|
158
|
-
source
|
|
159
|
-
};
|
|
160
168
|
if (broadcast) {
|
|
161
169
|
const brodsign = [
|
|
162
170
|
sign,
|
|
@@ -230,4 +238,4 @@ class RPCAction {
|
|
|
230
238
|
}
|
|
231
239
|
}
|
|
232
240
|
const core_RPCAction = RPCAction;
|
|
233
|
-
export {
|
|
241
|
+
export { core_RPCAction as default };
|
package/dist/entry/auto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/entry/auto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/entry/auto.ts"],"names":[],"mappings":"AA0EA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/entry/auto.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { WINDOW_NAME } from "../core/RPCAction.js";
|
|
2
1
|
import { createRPC, registerTransport } from "../core/registry.js";
|
|
2
|
+
import { WINDOW_NAME } from "../fields.js";
|
|
3
3
|
registerTransport({
|
|
4
4
|
name: 'broadcastChannel',
|
|
5
5
|
in: ()=>'undefined' != typeof BroadcastChannel,
|
|
@@ -12,6 +12,12 @@ registerTransport({
|
|
|
12
12
|
match: (t)=>t instanceof DedicatedWorkerGlobalScope,
|
|
13
13
|
load: ()=>import("../transports/DedicatedWorkerGlobalScopeTransport.js")
|
|
14
14
|
});
|
|
15
|
+
registerTransport({
|
|
16
|
+
name: 'messagePort',
|
|
17
|
+
in: ()=>'undefined' != typeof MessagePort,
|
|
18
|
+
match: (t)=>t instanceof MessagePort,
|
|
19
|
+
load: ()=>import("../transports/MessagePortTransport.js")
|
|
20
|
+
});
|
|
15
21
|
registerTransport({
|
|
16
22
|
name: 'serviceWorkerGlobalScope',
|
|
17
23
|
in: ()=>'undefined' != typeof ServiceWorkerGlobalScope,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createBroadcastChannelRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: BroadcastChannel, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createBroadcastChannelRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: BroadcastChannel, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: never;
|
|
5
5
|
}>, () => void];
|
|
6
6
|
//# sourceMappingURL=broadcastChannel.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: DedicatedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: DedicatedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ActionRecord } from '../RPCDecorator';
|
|
2
|
+
import { EntryOptions } from '../transports/fields';
|
|
3
|
+
export declare function createMessagePortRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: MessagePort, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
|
+
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
|
+
payload?: never;
|
|
6
|
+
} : StructuredSerializeOptions & {
|
|
7
|
+
targetOrigin?: string;
|
|
8
|
+
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
10
|
+
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
|
+
retry?: number;
|
|
12
|
+
} & {
|
|
13
|
+
payload: Parameters<CONSUME[K]>[0];
|
|
14
|
+
}) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
15
|
+
payload?: never;
|
|
16
|
+
} : StructuredSerializeOptions & {
|
|
17
|
+
targetOrigin?: string;
|
|
18
|
+
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
+
} & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
|
|
20
|
+
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
|
+
retry?: number;
|
|
22
|
+
} & {
|
|
23
|
+
payload: Parameters<CONSUME[K]>[0];
|
|
24
|
+
}]) => Promise<ReturnType<CONSUME[K]> extends infer T ? T extends ReturnType<CONSUME[K]> ? T extends Promise<infer R> ? R : T : never : never>;
|
|
25
|
+
}>, () => void];
|
|
26
|
+
//# sourceMappingURL=messagePort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messagePort.d.ts","sourceRoot":"","sources":["../../src/entry/messagePort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC3F,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAItC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import RPCDecorator from "../core/RPCDecorator.js";
|
|
2
|
+
import MessagePortTransport from "../transports/MessagePortTransport.js";
|
|
3
|
+
function createMessagePortRPC(target, config) {
|
|
4
|
+
const { context, options } = config ?? {};
|
|
5
|
+
return RPCDecorator(new MessagePortTransport(target, options), context);
|
|
6
|
+
}
|
|
7
|
+
export { createMessagePortRPC };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerRegistration, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerRegistration, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: WebSocket, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: WebSocket, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
package/dist/entry/window.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Window | HTMLIFrameElement, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Window | HTMLIFrameElement, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
package/dist/entry/worker.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Worker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("
|
|
3
|
+
export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Worker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './createCtx';
|
|
2
|
-
export { type RPCInstanceContextIns, TARGET_TYPE_STRINGS } from './fields';
|
|
2
|
+
export { type RPCInstanceContextIns, type Transport, TARGET_TYPE_STRINGS } from './fields';
|
|
3
3
|
export { default as useRPC } from './hooks';
|
|
4
|
-
export { default as RPCDecorator } from './RPCDecorator';
|
|
4
|
+
export { type DecoratorContext, default as RPCDecorator } from './core/RPCDecorator';
|
|
5
5
|
export { default as RPCProvider } from './RPCProvider';
|
|
6
|
+
export type { MessageInfo } from './core/RPCAction';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,KAAK,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TARGET_TYPE_STRINGS } from "./fields.js";
|
|
2
2
|
import hooks from "./hooks.js";
|
|
3
|
-
import RPCDecorator from "./RPCDecorator.js";
|
|
3
|
+
import RPCDecorator from "./core/RPCDecorator.js";
|
|
4
4
|
import RPCProvider from "./RPCProvider.js";
|
|
5
5
|
export * from "./createCtx.js";
|
|
6
6
|
export { RPCDecorator, RPCProvider, TARGET_TYPE_STRINGS, hooks as useRPC };
|
|
@@ -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;
|
|
@@ -18,5 +20,5 @@ export interface FactoryOptions {
|
|
|
18
20
|
message?: boolean | AddEventListenerOptions;
|
|
19
21
|
observer?: () => unknown;
|
|
20
22
|
}
|
|
21
|
-
export type TargetType = BroadcastChannel | WebSocket | Window | ServiceWorkerRegistration | ServiceWorkerGlobalScope | SharedWorker | SharedWorkerGlobalScope | Worker | DedicatedWorkerGlobalScope;
|
|
23
|
+
export type TargetType = BroadcastChannel | MessagePort | WebSocket | Window | ServiceWorkerRegistration | ServiceWorkerGlobalScope | SharedWorker | SharedWorkerGlobalScope | Worker | DedicatedWorkerGlobalScope;
|
|
22
24
|
//# sourceMappingURL=BaseTransport.d.ts.map
|
|
@@ -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,WAAW,GACX,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,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IframeSerializeOptions, ListenerType, MessageItem } from '../fields';
|
|
2
|
+
import BaseTransport from './BaseTransport';
|
|
3
|
+
declare class MessagePortTransport extends BaseTransport<MessagePort> {
|
|
4
|
+
destroy(): void;
|
|
5
|
+
observe(): void;
|
|
6
|
+
onmessage(listener: ListenerType): void;
|
|
7
|
+
onremove(listener: ListenerType): void;
|
|
8
|
+
postMessage(message: MessageItem, options?: IframeSerializeOptions): void;
|
|
9
|
+
}
|
|
10
|
+
export default MessagePortTransport;
|
|
11
|
+
//# sourceMappingURL=MessagePortTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagePortTransport.d.ts","sourceRoot":"","sources":["../../src/transports/MessagePortTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,cAAM,oBAAqB,SAAQ,aAAa,CAAC,WAAW,CAAC;IAC3D,OAAO;IAKP,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAM1E;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import BaseTransport from "./BaseTransport.js";
|
|
2
|
+
class MessagePortTransport extends BaseTransport {
|
|
3
|
+
destroy() {
|
|
4
|
+
this._target.close();
|
|
5
|
+
}
|
|
6
|
+
observe() {}
|
|
7
|
+
onmessage(listener) {
|
|
8
|
+
this._target.addEventListener('message', listener, this._options.message);
|
|
9
|
+
this._target.start();
|
|
10
|
+
}
|
|
11
|
+
onremove(listener) {
|
|
12
|
+
this._target.removeEventListener('message', listener, this._options.message);
|
|
13
|
+
}
|
|
14
|
+
postMessage(message, options) {
|
|
15
|
+
const { transfer } = options ?? {};
|
|
16
|
+
this._target.postMessage(message, {
|
|
17
|
+
transfer
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const transports_MessagePortTransport = MessagePortTransport;
|
|
22
|
+
export { transports_MessagePortTransport as default };
|
|
@@ -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;
|
|
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;IAevC,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"}
|
|
@@ -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, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-chat/rpc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
"types": "./dist/entry/broadcastChannel.d.ts",
|
|
33
33
|
"import": "./dist/entry/broadcastChannel.js"
|
|
34
34
|
},
|
|
35
|
+
"./messagePort": {
|
|
36
|
+
"types": "./dist/entry/messagePort.d.ts",
|
|
37
|
+
"import": "./dist/entry/messagePort.js"
|
|
38
|
+
},
|
|
35
39
|
"./sharedWorker": {
|
|
36
40
|
"types": "./dist/entry/sharedWorker.d.ts",
|
|
37
41
|
"import": "./dist/entry/sharedWorker.js"
|