osra 0.4.4 → 0.5.0
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/README.md +224 -231
- package/build/connections/bidirectional.d.ts +25 -15
- package/build/connections/index.d.ts +8 -8
- package/build/connections/relay.d.ts +1 -1
- package/build/connections/utils.d.ts +6 -5
- package/build/index.d.ts +11 -11
- package/build/index.js +782 -513
- package/build/index.js.map +1 -1
- package/build/revivables/abort-signal.d.ts +6 -4
- package/build/revivables/array-buffer.d.ts +2 -2
- package/build/revivables/async-iterator.d.ts +16 -0
- package/build/revivables/bigint.d.ts +1 -1
- package/build/revivables/blob.d.ts +3 -3
- package/build/revivables/date.d.ts +1 -1
- package/build/revivables/error.d.ts +5 -2
- package/build/revivables/event-target.d.ts +5 -4
- package/build/revivables/event.d.ts +2 -2
- package/build/revivables/fallbacks.d.ts +1 -1
- package/build/revivables/function.d.ts +4 -4
- package/build/revivables/headers.d.ts +1 -1
- package/build/revivables/identity.d.ts +3 -3
- package/build/revivables/index.d.ts +48 -39
- package/build/revivables/json-primitives.d.ts +17 -0
- package/build/revivables/map.d.ts +2 -2
- package/build/revivables/message-port.d.ts +6 -6
- package/build/revivables/promise.d.ts +5 -5
- package/build/revivables/readable-stream.d.ts +8 -4
- package/build/revivables/request.d.ts +4 -2
- package/build/revivables/response.d.ts +2 -2
- package/build/revivables/set.d.ts +2 -2
- package/build/revivables/symbol.d.ts +5 -3
- package/build/revivables/transfer.d.ts +2 -2
- package/build/revivables/typed-array.d.ts +3 -3
- package/build/revivables/utils.d.ts +5 -10
- package/build/revivables/writable-stream.d.ts +4 -4
- package/build/types.d.ts +12 -4
- package/build/utils/event-channel.d.ts +1 -1
- package/build/utils/index.d.ts +11 -12
- package/build/utils/replace.d.ts +0 -3
- package/build/utils/teardown.d.ts +7 -0
- package/build/utils/transferable.d.ts +1 -1
- package/build/utils/transport.d.ts +13 -15
- package/build/utils/type-guards.d.ts +12 -4
- package/build/utils/typed-event-target.d.ts +1 -1
- package/build/utils/typed-message-channel.d.ts +3 -2
- package/package.json +21 -8
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { Browser } from 'webextension-polyfill';
|
|
2
|
+
import type { Message } from '../types.js';
|
|
3
|
+
import type { WebExtOnConnect, WebExtOnMessage, WebExtPort, WebExtRuntime, WebExtSender } from './type-guards.js';
|
|
3
4
|
export type MessageContext = {
|
|
4
5
|
port?: MessagePort | WebExtPort;
|
|
5
6
|
sender?: WebExtSender;
|
|
6
7
|
receiveTransport?: ReceivePlatformTransport;
|
|
7
8
|
source?: MessageEventSource | null;
|
|
9
|
+
origin?: string;
|
|
8
10
|
};
|
|
9
|
-
export type ReceiveHandler = (listener: (event: Message, messageContext: MessageContext) => void) => void;
|
|
11
|
+
export type ReceiveHandler = (listener: (event: Message, messageContext: MessageContext) => void) => void | (() => void);
|
|
10
12
|
export type EmitHandler = (message: Message, transferables?: Transferable[]) => void;
|
|
11
13
|
type CustomReceive = ReceivePlatformTransport | ReceiveHandler;
|
|
12
14
|
type CustomEmit = EmitPlatformTransport | EmitHandler;
|
|
@@ -31,25 +33,21 @@ export type ReceiveJsonPlatformTransport = WebSocket | WebExtPort | WebExtOnConn
|
|
|
31
33
|
export type JsonPlatformTransport = {
|
|
32
34
|
isJson: true;
|
|
33
35
|
} | EmitJsonPlatformTransport | ReceiveJsonPlatformTransport;
|
|
34
|
-
type
|
|
35
|
-
export type
|
|
36
|
-
export type ReceivePlatformTransport = ReceiveJsonPlatformTransport | StructuredClonePlatformTransport;
|
|
36
|
+
export type EmitPlatformTransport = EmitJsonPlatformTransport | Window | ServiceWorker | Worker | SharedWorker | MessagePort;
|
|
37
|
+
export type ReceivePlatformTransport = ReceiveJsonPlatformTransport | Window | ServiceWorkerContainer | Worker | SharedWorker | MessagePort;
|
|
37
38
|
export type PlatformTransport = EmitPlatformTransport | ReceivePlatformTransport;
|
|
38
|
-
export type EmitTransport = EmitPlatformTransport
|
|
39
|
-
|
|
40
|
-
}>;
|
|
41
|
-
export type ReceiveTransport = ReceivePlatformTransport & Extract<CustomTransport, {
|
|
42
|
-
receive: any;
|
|
43
|
-
}>;
|
|
39
|
+
export type EmitTransport = EmitPlatformTransport | CustomEmitTransport;
|
|
40
|
+
export type ReceiveTransport = ReceivePlatformTransport | CustomReceiveTransport;
|
|
44
41
|
export type Transport = PlatformTransport | CustomTransport;
|
|
45
|
-
export declare const getWebExtensionGlobal: () =>
|
|
46
|
-
export declare const getWebExtensionRuntime: () =>
|
|
42
|
+
export declare const getWebExtensionGlobal: () => Browser | undefined;
|
|
43
|
+
export declare const getWebExtensionRuntime: () => import("webextension-polyfill").Runtime.Static | undefined;
|
|
47
44
|
export declare const checkOsraMessageKey: (message: any, key: string) => message is Message;
|
|
48
|
-
export declare const registerOsraMessageListener: ({ listener, transport, remoteName, key, unregisterSignal }: {
|
|
45
|
+
export declare const registerOsraMessageListener: ({ listener, transport, remoteName, key, origin, unregisterSignal }: {
|
|
49
46
|
listener: (message: Message, messageContext: MessageContext) => void;
|
|
50
47
|
transport: ReceiveTransport;
|
|
51
48
|
remoteName?: string;
|
|
52
49
|
key?: string;
|
|
50
|
+
origin?: string;
|
|
53
51
|
unregisterSignal?: AbortSignal;
|
|
54
52
|
}) => void;
|
|
55
53
|
export declare const sendOsraMessage: (transport: EmitTransport, message: Message, origin?: string, transferables?: Transferable[]) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Runtime } from 'webextension-polyfill';
|
|
2
|
-
import type { Message } from '../types';
|
|
3
|
-
import type { CustomEmitTransport, CustomReceiveTransport, CustomTransport, EmitJsonPlatformTransport, EmitTransport, JsonPlatformTransport, ReceiveJsonPlatformTransport, ReceiveTransport, Transport } from './transport';
|
|
2
|
+
import type { Message } from '../types.js';
|
|
3
|
+
import type { CustomEmitTransport, CustomReceiveTransport, CustomTransport, EmitJsonPlatformTransport, EmitTransport, JsonPlatformTransport, ReceiveJsonPlatformTransport, ReceiveTransport, Transport } from './transport.js';
|
|
4
4
|
declare const typedArrayConstructorsByName: {
|
|
5
5
|
readonly Int8Array: Int8ArrayConstructor;
|
|
6
6
|
readonly Uint8Array: Uint8ArrayConstructor;
|
|
@@ -23,17 +23,25 @@ export declare const typedArrayTypeToTypedArrayConstructor: (value: TypedArrayTy
|
|
|
23
23
|
export declare const isTypedArray: (value: unknown) => value is TypedArray;
|
|
24
24
|
export declare const isWebSocket: (value: unknown) => value is WebSocket;
|
|
25
25
|
export declare const isServiceWorkerContainer: (value: unknown) => value is ServiceWorkerContainer;
|
|
26
|
+
export declare const isServiceWorker: (value: unknown) => value is ServiceWorker;
|
|
26
27
|
export declare const isWorker: (value: unknown) => value is Worker;
|
|
27
|
-
export
|
|
28
|
+
export type DedicatedWorkerGlobalScopeLike = typeof globalThis & {
|
|
29
|
+
postMessage: (message: unknown, transfer?: Transferable[]) => void;
|
|
30
|
+
name: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const isDedicatedWorker: (value: unknown) => value is DedicatedWorkerGlobalScopeLike;
|
|
28
33
|
export declare const isSharedWorker: (value: unknown) => value is SharedWorker;
|
|
29
34
|
export declare const isOsraMessage: (value: unknown) => value is Message;
|
|
30
35
|
type AnyConstructor = abstract new (...args: any[]) => unknown;
|
|
31
36
|
/** True if `value` is an instance of any of the given constructors.
|
|
32
37
|
* Tolerates undefined entries (constructors missing on this platform). */
|
|
33
38
|
export declare const instanceOfAny: (value: unknown, ctors: readonly (AnyConstructor | undefined)[]) => boolean;
|
|
39
|
+
export declare const isSharedArrayBuffer: (value: unknown) => boolean;
|
|
40
|
+
/** @deprecated Renamed — this only ever checked SharedArrayBuffer, unlike
|
|
41
|
+
* the unrelated clonable fallback module. Use isSharedArrayBuffer. */
|
|
34
42
|
export declare const isClonable: (value: unknown) => boolean;
|
|
35
43
|
export declare const isTransferable: (value: unknown) => value is Transferable;
|
|
36
|
-
export type WebExtRuntime =
|
|
44
|
+
export type WebExtRuntime = Runtime.Static;
|
|
37
45
|
export declare const isWebExtensionRuntime: (value: unknown) => value is WebExtRuntime;
|
|
38
46
|
export type WebExtPort = ReturnType<WebExtRuntime['connect']> | Runtime.Port;
|
|
39
47
|
export declare const isWebExtensionPort: (value: unknown, connectPort?: boolean) => value is WebExtPort;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { UnderlyingType } from './type';
|
|
2
|
-
import type { TypedEventTarget } from './typed-event-target';
|
|
1
|
+
import type { UnderlyingType } from './type.js';
|
|
2
|
+
import type { TypedEventTarget } from './typed-event-target.js';
|
|
3
3
|
export type TypedMessagePortEventMap<T = unknown> = {
|
|
4
4
|
'message': MessageEvent<T>;
|
|
5
5
|
'messageerror': MessageEvent;
|
|
6
|
+
'close': Event;
|
|
6
7
|
};
|
|
7
8
|
export interface TypedMessagePort<T = unknown> extends Omit<TypedEventTarget<TypedMessagePortEventMap<T>>, typeof UnderlyingType> {
|
|
8
9
|
[UnderlyingType]?: T;
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "osra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Easy communication between workers",
|
|
5
5
|
"files": [
|
|
6
6
|
"build"
|
|
7
7
|
],
|
|
8
8
|
"main": "build/index.js",
|
|
9
|
+
"types": "./build/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./build/index.d.ts",
|
|
13
|
+
"import": "./build/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
9
17
|
"type": "module",
|
|
10
18
|
"scripts": {
|
|
11
19
|
"build": "vite build && tsgo --declaration --emitDeclarationOnly",
|
|
@@ -17,16 +25,17 @@
|
|
|
17
25
|
"dev": "concurrently \"npm run build-test-watch\"",
|
|
18
26
|
"_dev": "concurrently \"npm run build-watch\" \"npm run build-test-watch\" \"npm run test-watch\"",
|
|
19
27
|
"dev2": "concurrently \"npm run build-watch\" \"npm run build-test-watch\" \"npm run test-watch-headful\"",
|
|
20
|
-
"test": "npm run build-test && npx playwright test",
|
|
28
|
+
"test": "npm run build && npm run build-test && npx playwright test",
|
|
21
29
|
"test-watch": "set PWTEST_WATCH=1 & npx playwright test",
|
|
22
|
-
"test-watch-headful": "nodemon --watch build --exec \"npx playwright test --headed\"",
|
|
30
|
+
"test-watch-headful": "nodemon --watch build-test --exec \"npx playwright test --headed\"",
|
|
23
31
|
"test-with-coverage": "npm run build-test && npx playwright test && npm run print-coverage && npm run clean-coverage",
|
|
24
32
|
"print-coverage": "npx nyc report",
|
|
25
33
|
"clean-coverage": "rimraf .nyc_output coverage",
|
|
26
34
|
"type-check": "tsgo --noEmit && tsgo --noEmit -p tsconfig.tests.json",
|
|
27
35
|
"start-server": "http-server -p 3000",
|
|
28
36
|
"build-extension-test": "node build-extension-test.mjs",
|
|
29
|
-
"test-extension": "npm run build-extension-test && npx playwright test -c playwright.extension.config.ts"
|
|
37
|
+
"test-extension": "npm run build-extension-test && npx playwright test -c playwright.extension.config.ts",
|
|
38
|
+
"check-consumer-types": "npm run build && tsgo --noEmit -p tsconfig.consumer.json"
|
|
30
39
|
},
|
|
31
40
|
"repository": {
|
|
32
41
|
"type": "git",
|
|
@@ -38,6 +47,9 @@
|
|
|
38
47
|
"url": "https://github.com/Banou26/osra/issues"
|
|
39
48
|
},
|
|
40
49
|
"homepage": "https://github.com/Banou26/osra#readme",
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@types/webextension-polyfill": "^0.12.4"
|
|
52
|
+
},
|
|
41
53
|
"devDependencies": {
|
|
42
54
|
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
|
43
55
|
"@playwright/test": "^1.58.2",
|
|
@@ -46,8 +58,7 @@
|
|
|
46
58
|
"@types/chrome": "^0.1.27",
|
|
47
59
|
"@types/firefox-webext-browser": "^143.0.0",
|
|
48
60
|
"@types/node": "^25.0.2",
|
|
49
|
-
"@
|
|
50
|
-
"@typescript/native-preview": "^7.0.0-dev.20260404.1",
|
|
61
|
+
"@typescript/native-preview": "7.0.0-dev.20260404.1",
|
|
51
62
|
"chai": "^5.3.3",
|
|
52
63
|
"chai-as-promised": "^8.0.1",
|
|
53
64
|
"concurrently": "^9.1.0",
|
|
@@ -56,6 +67,8 @@
|
|
|
56
67
|
"nyc": "^17.1.0",
|
|
57
68
|
"playwright": "^1.58.2",
|
|
58
69
|
"vite": "^8.0.3",
|
|
59
|
-
"vite-plugin-istanbul": "^8.0.0"
|
|
60
|
-
|
|
70
|
+
"vite-plugin-istanbul": "^8.0.0",
|
|
71
|
+
"ws": "^8.21.0"
|
|
72
|
+
},
|
|
73
|
+
"sideEffects": false
|
|
61
74
|
}
|