osra 0.0.9 → 0.0.11

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/build/index.d.ts CHANGED
@@ -2,3 +2,4 @@ import type { ApiMessageData, ApiResolverOptions, Resolvers, StructuredCloneTran
2
2
  export type { ApiMessageData, ApiResolverOptions, Resolvers, StructuredCloneTransferableObject, StructuredCloneTransferableType, StructuredCloneObject, StructuredCloneType, Target, TransferableObject };
3
3
  export * from './register';
4
4
  export * from './call';
5
+ export * from './webextension';
package/build/index.js CHANGED
@@ -1,127 +1,181 @@
1
- // src/shared.ts
2
- var MESSAGE_SOURCE_KEY = "osra-message";
3
-
4
- // src/register.ts
5
- var registerListener = ({
6
- target,
7
- resolvers,
8
- filter,
9
- map,
10
- key = MESSAGE_SOURCE_KEY
1
+ const g = "osra-message", l = ({
2
+ target: e,
3
+ resolvers: t,
4
+ filter: r,
5
+ map: n,
6
+ key: a = g
11
7
  }) => {
12
- const listener = (event) => {
13
- if (!event.data || typeof event.data !== "object")
8
+ const o = (s) => {
9
+ if (!s.data || typeof s.data != "object" || s.data?.source !== a || r && !r(s))
14
10
  return;
15
- if (event.data?.source !== key)
16
- return;
17
- if (filter && !filter(event))
18
- return;
19
- const { type, data, port } = event.data;
20
- const resolver = resolvers[type];
21
- if (!resolver)
22
- throw new Error(`Osra received a message of type "${String(type)}" but no resolver was found for type.`);
23
- if (map)
24
- resolver(...map(data, { event, type, port }));
25
- else
26
- resolver(data, { event, type, port });
11
+ const { type: c, data: i, port: d } = s.data, m = t[c];
12
+ if (!m)
13
+ throw new Error(`Osra received a message of type "${String(c)}" but no resolver was found for type.`);
14
+ n ? m(...n(i, { event: s, type: c, port: d })) : m(i, { event: s, type: c, port: d });
27
15
  };
28
- target.addEventListener("message", listener);
29
- return {
30
- listener,
31
- resolvers
16
+ return e.addEventListener("message", o), {
17
+ listener: o,
18
+ resolvers: t
32
19
  };
33
- };
34
-
35
- // src/utils.ts
36
- var isClonable = (value) => globalThis.SharedArrayBuffer && value instanceof globalThis.SharedArrayBuffer ? true : false;
37
- var isTransferable = (value) => globalThis.ArrayBuffer && value instanceof globalThis.ArrayBuffer ? true : globalThis.MessagePort && value instanceof globalThis.MessagePort ? true : globalThis.ReadableStream && value instanceof globalThis.ReadableStream ? true : globalThis.WritableStream && value instanceof globalThis.WritableStream ? true : globalThis.TransformStream && value instanceof globalThis.TransformStream ? true : globalThis.ImageBitmap && value instanceof globalThis.ImageBitmap ? true : false;
38
- var getTransferableObjects = (value) => {
39
- const transferables = [];
40
- const recurse = (value2) => isClonable(value2) ? void 0 : isTransferable(value2) ? transferables.push(value2) : Array.isArray(value2) ? value2.map(recurse) : value2 && typeof value2 === "object" ? Object.values(value2).map(recurse) : void 0;
41
- recurse(value);
42
- return transferables;
43
- };
44
- var PROXY_FUNCTION_PROPERTY = "__proxyFunctionPort__";
45
- var makeProxyFunction = (func) => {
46
- const { port1, port2 } = new MessageChannel();
47
- port1.addEventListener("message", async (ev) => {
20
+ }, b = (e) => !!(globalThis.SharedArrayBuffer && e instanceof globalThis.SharedArrayBuffer), y = (e) => globalThis.ArrayBuffer && e instanceof globalThis.ArrayBuffer || globalThis.MessagePort && e instanceof globalThis.MessagePort || globalThis.ReadableStream && e instanceof globalThis.ReadableStream || globalThis.WritableStream && e instanceof globalThis.WritableStream || globalThis.TransformStream && e instanceof globalThis.TransformStream ? !0 : !!(globalThis.ImageBitmap && e instanceof globalThis.ImageBitmap), h = (e) => {
21
+ const t = [], r = (n) => b(n) ? void 0 : y(n) ? t.push(n) : Array.isArray(n) ? n.map(r) : n && typeof n == "object" ? Object.values(n).map(r) : void 0;
22
+ return r(e), t;
23
+ }, p = "__proxyFunctionPort__", M = "__proxyMessageChannelPort__", j = (e) => {
24
+ const { port1: t, port2: r } = new MessageChannel();
25
+ return t.addEventListener("message", async (n) => {
48
26
  try {
49
- const result = await func(...ev.data);
50
- const proxiedResult = proxyObjectFunctions(result);
51
- const transferables = getTransferableObjects(proxiedResult);
52
- port1.postMessage({ result: proxiedResult }, { transfer: transferables });
53
- } catch (err) {
54
- port1.postMessage({ error: err });
27
+ const a = await e(...n.data), o = f(a), s = h(o);
28
+ t.postMessage({ result: o }, { transfer: s });
29
+ } catch (a) {
30
+ t.postMessage({ error: a });
55
31
  }
56
- });
57
- port1.start();
58
- return port2;
59
- };
60
- var proxyObjectFunctions = (value) => isClonable(value) ? value : isTransferable(value) ? value : typeof value === "function" ? { [PROXY_FUNCTION_PROPERTY]: makeProxyFunction(value) } : Array.isArray(value) ? value.map(proxyObjectFunctions) : value && typeof value === "object" ? Object.fromEntries(Object.entries(value).map(([key, value2]) => [
61
- key,
62
- proxyObjectFunctions(value2)
63
- ])) : value;
64
- var makeProxiedFunction = (port) => (...args) => new Promise((resolve, reject) => {
65
- const proxiedArguments = proxyObjectFunctions(args);
66
- const transferables = getTransferableObjects(proxiedArguments);
67
- port.addEventListener("message", (ev) => {
68
- if (ev.data.error)
69
- reject(ev.data.error);
70
- else
71
- resolve(makeObjectProxiedFunctions(ev.data.result));
72
- });
73
- port.start();
74
- port.postMessage(proxiedArguments, { transfer: transferables });
75
- });
76
- var makeObjectProxiedFunctions = (value) => isClonable(value) ? value : isTransferable(value) ? value : value && typeof value === "object" && value[PROXY_FUNCTION_PROPERTY] ? makeProxiedFunction(value[PROXY_FUNCTION_PROPERTY]) : Array.isArray(value) ? value.map(proxyObjectFunctions) : value && typeof value === "object" ? Object.fromEntries(Object.entries(value).map(([key, value2]) => [
77
- key,
78
- makeObjectProxiedFunctions(value2)
79
- ])) : value;
80
-
81
- // src/call.ts
82
- var call = (target, { key = MESSAGE_SOURCE_KEY } = { key: MESSAGE_SOURCE_KEY }) => (type, data) => new Promise((resolve, reject) => {
83
- const { port1, port2 } = new MessageChannel();
84
- port1.addEventListener("message", ({ data: data2 }) => {
85
- if (data2.error) {
86
- reject(data2.error);
87
- } else {
88
- const proxiedData2 = makeObjectProxiedFunctions(data2.result);
89
- resolve(proxiedData2);
32
+ }), t.start(), r;
33
+ }, f = (e) => b(e) || y(e) ? e : typeof e == "function" ? { [p]: j(e) } : Array.isArray(e) ? e.map(f) : e && typeof e == "object" ? Object.fromEntries(
34
+ Object.entries(e).map(([t, r]) => [
35
+ t,
36
+ f(r)
37
+ ])
38
+ ) : e, x = (e) => (...t) => new Promise((r, n) => {
39
+ const a = f(t), o = h(a), s = (c) => {
40
+ c.data.error ? n(c.data.error) : r(E(c.data.result)), e.removeEventListener("message", s);
41
+ };
42
+ e.addEventListener("message", s), e.start(), e.postMessage(a, { transfer: o });
43
+ }), E = (e) => b(e) || y(e) ? e : e && typeof e == "object" && e[p] ? x(e[p]) : Array.isArray(e) ? e.map(f) : e && typeof e == "object" ? Object.fromEntries(
44
+ Object.entries(e).map(([t, r]) => [
45
+ t,
46
+ E(r)
47
+ ])
48
+ ) : e, A = (e, { key: t = g } = { key: g }) => (r, n) => new Promise((a, o) => {
49
+ const { port1: s, port2: c } = new MessageChannel();
50
+ s.addEventListener(
51
+ "message",
52
+ ({ data: m }) => {
53
+ if (m.error)
54
+ o(m.error);
55
+ else {
56
+ const L = E(m.result);
57
+ a(L);
58
+ }
59
+ s.close(), c.close();
60
+ },
61
+ { once: !0 }
62
+ ), s.start();
63
+ const i = f(n), d = h(i);
64
+ e.postMessage(
65
+ {
66
+ source: t,
67
+ type: r,
68
+ data: i,
69
+ port: c
70
+ },
71
+ {
72
+ targetOrigin: "*",
73
+ transfer: [c, ...d ?? []]
90
74
  }
91
- port1.close();
92
- port2.close();
93
- }, { once: true });
94
- port1.start();
95
- const proxiedData = proxyObjectFunctions(data);
96
- const transferables = getTransferableObjects(proxiedData);
97
- target.postMessage({
98
- source: key,
99
- type,
100
- data: proxiedData,
101
- port: port2
102
- }, {
103
- targetOrigin: "*",
104
- transfer: [port2, ...transferables ?? []]
105
- });
106
- });
107
- var makeCallListener = (func) => async (data, extra) => {
108
- const { port } = extra;
109
- const proxiedData = makeObjectProxiedFunctions(data);
75
+ );
76
+ }), _ = (e) => async (t, r) => {
77
+ const { port: n } = r, a = E(t);
110
78
  try {
111
- const result = await func(proxiedData, extra);
112
- const proxyData = proxyObjectFunctions(result);
113
- const transferables = getTransferableObjects(proxyData);
114
- port.postMessage({ result: proxyData }, { transfer: transferables });
115
- port.close();
116
- return result;
117
- } catch (error) {
118
- port.postMessage({ error });
119
- port.close();
120
- throw error;
79
+ const o = await e(a, r), s = f(o), c = h(s);
80
+ return n.postMessage({ result: s }, { transfer: c }), n.close(), o;
81
+ } catch (o) {
82
+ throw n.postMessage({ error: o }), n.close(), o;
121
83
  }
84
+ }, w = ({ key: e = g }) => {
85
+ const t = /* @__PURE__ */ new Map(), r = async (a) => t.get(a) ?? new Promise((o, s) => {
86
+ let c = !1;
87
+ setTimeout(() => {
88
+ c || s(new Error(`Osra getPort for "${a}" timed out`));
89
+ }, 1e3), chrome.runtime.onConnect.addListener((i) => {
90
+ i.name === `${e}:${a}` && (t.set(a, i), o(i), c = !0);
91
+ });
92
+ }), n = {
93
+ addPort: (a, o) => t.set(a, o),
94
+ proxyPort: (a) => {
95
+ const o = self.crypto.randomUUID(), s = chrome.runtime.connect({ name: `${e}:${o}` });
96
+ return t.set(o, s), s.onDisconnect.addListener(() => {
97
+ t.delete(o);
98
+ }), s.onMessage.addListener((c) => {
99
+ a.postMessage(c);
100
+ }), a.addEventListener("message", async (c) => {
101
+ s.postMessage(c.data);
102
+ }), a.addEventListener("close", () => {
103
+ s.disconnect();
104
+ }), {
105
+ [M]: o
106
+ };
107
+ },
108
+ proxiedPort: async ({ [M]: a }) => {
109
+ const { port1: o, port2: s } = new MessageChannel(), c = await r(a);
110
+ c.onMessage.addListener((d) => {
111
+ o.postMessage(d);
112
+ }), c.onDisconnect.addListener(() => {
113
+ o.close();
114
+ }), o.addEventListener("close", () => {
115
+ c.disconnect();
116
+ }), o.addEventListener("message", async (d) => {
117
+ c.postMessage(d.data);
118
+ }), o.start(), s.addEventListener("message", async (d) => {
119
+ c.postMessage(d.data);
120
+ }), s.start();
121
+ const i = O(n, s);
122
+ return i.uuid = a, i;
123
+ }
124
+ };
125
+ return n;
126
+ }, P = (e, t) => t instanceof MessagePort ? e.proxyPort(t) : b(t) || y(t) ? t : typeof t == "object" && p in t ? { [p]: e.proxyPort(t[p]) } : Array.isArray(t) ? t.map((r) => P(e, r)) : t && typeof t == "object" ? Object.fromEntries(
127
+ Object.entries(t).map(([r, n]) => [
128
+ r,
129
+ P(e, n)
130
+ ])
131
+ ) : t, T = async (e, t) => b(t) || y(t) ? t : typeof t == "object" && M in t ? await e.proxiedPort(t) : typeof t == "object" && p in t ? { [p]: await e.proxiedPort(t[p]) } : Array.isArray(t) ? await Promise.all(t.map((r) => T(e, r))) : t && typeof t == "object" ? Object.fromEntries(
132
+ await Promise.all(
133
+ Object.entries(t).map(async ([r, n]) => [
134
+ r,
135
+ await T(e, n)
136
+ ])
137
+ )
138
+ ) : t, O = (e, t) => {
139
+ const r = t.postMessage;
140
+ return t.postMessage = (n) => {
141
+ r.apply(t, [P(e, n)]);
142
+ }, t;
143
+ }, S = ({
144
+ target: e,
145
+ key: t = g
146
+ }) => {
147
+ const r = w({ key: t });
148
+ return {
149
+ ...e,
150
+ postMessage: (n) => {
151
+ e.runtime.sendMessage(P(r, n));
152
+ }
153
+ };
154
+ }, C = ({
155
+ target: e,
156
+ key: t = g
157
+ }) => {
158
+ const r = w({ key: t });
159
+ return {
160
+ ...e,
161
+ addEventListener: (n, a, o) => {
162
+ if (n !== "message")
163
+ return e.addEventListener(n, a, o);
164
+ chrome.runtime.onMessage.addListener((s, c, i) => {
165
+ T(r, s).then((d) => a({ data: d }));
166
+ }), chrome.runtime.onConnect.addListener((s) => {
167
+ s.name.startsWith(`${t}:`) && r.addPort(s.name.split(":")[1], s);
168
+ });
169
+ }
170
+ };
122
171
  };
123
172
  export {
124
- call,
125
- makeCallListener,
126
- registerListener
173
+ A as call,
174
+ _ as makeCallListener,
175
+ l as registerListener,
176
+ T as replaceProxied,
177
+ P as replaceProxies,
178
+ S as wrapExtensionTarget,
179
+ C as wrapListenerExtensionTarget,
180
+ O as wrapPort
127
181
  };
package/build/utils.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import { TransferableObject } from './types';
2
+ export declare const isClonable: (value: any) => boolean;
3
+ export declare const isTransferable: (value: any) => boolean;
2
4
  export declare const getTransferableObjects: (value: any) => TransferableObject[];
5
+ export declare const PROXY_FUNCTION_PROPERTY = "__proxyFunctionPort__";
6
+ export declare const PROXY_MESSAGE_CHANNEL_PROPERTY = "__proxyMessageChannelPort__";
3
7
  export declare const makeProxyFunction: (func: any) => MessagePort;
4
8
  export declare const proxyObjectFunctions: (value: any) => any;
5
9
  export declare const makeProxiedFunction: (port: MessagePort) => (...args: any[]) => Promise<unknown>;
@@ -0,0 +1,137 @@
1
+ import type browser from 'webextension-polyfill';
2
+ import { PROXY_MESSAGE_CHANNEL_PROPERTY } from './utils';
3
+ type PortManager = ReturnType<typeof makePortManager>;
4
+ declare const makePortManager: ({ key }: {
5
+ key?: string | undefined;
6
+ }) => {
7
+ addPort: (name: string, port: browser.Runtime.Port) => Map<string, browser.Runtime.Port>;
8
+ proxyPort: (messagePort: MessagePort) => {
9
+ __proxyMessageChannelPort__: string;
10
+ };
11
+ proxiedPort: ({ [PROXY_MESSAGE_CHANNEL_PROPERTY]: uuid }: {
12
+ [PROXY_MESSAGE_CHANNEL_PROPERTY]: string;
13
+ }) => Promise<MessagePort>;
14
+ };
15
+ export declare const replaceProxies: (portManager: PortManager, value: any) => any;
16
+ export declare const replaceProxied: (portManager: PortManager, value: any) => any;
17
+ export declare const wrapPort: (portManager: any, port: MessagePort) => MessagePort;
18
+ export declare const wrapExtensionTarget: ({ target, key }: {
19
+ target: browser.Browser;
20
+ key?: string | undefined;
21
+ }) => {
22
+ postMessage: (message: any) => void;
23
+ activityLog: browser.ActivityLog.Static;
24
+ alarms: browser.Alarms.Static;
25
+ bookmarks: browser.Bookmarks.Static;
26
+ action: browser.Action.Static;
27
+ browserAction: browser.BrowserAction.Static;
28
+ browserSettings: browser.BrowserSettings.Static;
29
+ browsingData: browser.BrowsingData.Static;
30
+ captivePortal: browser.CaptivePortal.Static;
31
+ clipboard: browser.Clipboard.Static;
32
+ commands: browser.Commands.Static;
33
+ contentScripts: browser.ContentScripts.Static;
34
+ contextualIdentities: browser.ContextualIdentities.Static;
35
+ cookies: browser.Cookies.Static;
36
+ declarativeNetRequest: browser.DeclarativeNetRequest.Static;
37
+ devtools: browser.Devtools.Static;
38
+ dns: browser.Dns.Static;
39
+ downloads: browser.Downloads.Static;
40
+ events: browser.Events.Static;
41
+ experiments: browser.Experiments.Static;
42
+ extension: browser.Extension.Static;
43
+ extensionTypes: browser.ExtensionTypes.Static;
44
+ find: browser.Find.Static;
45
+ geckoProfiler: browser.GeckoProfiler.Static;
46
+ history: browser.History.Static;
47
+ i18n: browser.I18n.Static;
48
+ identity: browser.Identity.Static;
49
+ idle: browser.Idle.Static;
50
+ management: browser.Management.Static;
51
+ manifest: browser.Manifest.Static;
52
+ contextMenus: browser.ContextMenus.Static;
53
+ menus: browser.Menus.Static;
54
+ networkStatus: browser.NetworkStatus.Static;
55
+ normandyAddonStudy: browser.NormandyAddonStudy.Static;
56
+ notifications: browser.Notifications.Static;
57
+ omnibox: browser.Omnibox.Static;
58
+ pageAction: browser.PageAction.Static;
59
+ permissions: browser.Permissions.Static;
60
+ pkcs11: browser.Pkcs11.Static;
61
+ privacy: browser.Privacy.Static;
62
+ proxy: browser.Proxy.Static;
63
+ runtime: browser.Runtime.Static;
64
+ scripting: browser.Scripting.Static;
65
+ search: browser.Search.Static;
66
+ sessions: browser.Sessions.Static;
67
+ sidebarAction: browser.SidebarAction.Static;
68
+ storage: browser.Storage.Static;
69
+ tabs: browser.Tabs.Static;
70
+ theme: browser.Theme.Static;
71
+ topSites: browser.TopSites.Static;
72
+ types: browser.Types.Static;
73
+ urlbar: browser.Urlbar.Static;
74
+ userScripts: browser.UserScripts.Static;
75
+ webNavigation: browser.WebNavigation.Static;
76
+ webRequest: browser.WebRequest.Static;
77
+ windows: browser.Windows.Static;
78
+ };
79
+ export declare const wrapListenerExtensionTarget: ({ target, key }: {
80
+ target: WindowEventHandlers | ServiceWorkerContainer | Worker | SharedWorker;
81
+ key?: string | undefined;
82
+ }) => {
83
+ addEventListener: (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void;
84
+ onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
85
+ onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
86
+ onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null;
87
+ ongamepadconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
88
+ ongamepaddisconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
89
+ onhashchange: ((this: WindowEventHandlers, ev: HashChangeEvent) => any) | null;
90
+ onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;
91
+ onmessage: ((this: WindowEventHandlers, ev: MessageEvent<any>) => any) | null;
92
+ onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent<any>) => any) | null;
93
+ onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;
94
+ ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;
95
+ onpagehide: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
96
+ onpageshow: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
97
+ onpopstate: ((this: WindowEventHandlers, ev: PopStateEvent) => any) | null;
98
+ onrejectionhandled: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
99
+ onstorage: ((this: WindowEventHandlers, ev: StorageEvent) => any) | null;
100
+ onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
101
+ onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;
102
+ removeEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions | undefined): void;
103
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
104
+ } | {
105
+ addEventListener: (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void;
106
+ controller: ServiceWorker | null;
107
+ oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
108
+ onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent<any>) => any) | null;
109
+ onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent<any>) => any) | null;
110
+ ready: Promise<ServiceWorkerRegistration>;
111
+ getRegistration(clientURL?: string | URL | undefined): Promise<ServiceWorkerRegistration | undefined>;
112
+ getRegistrations(): Promise<readonly ServiceWorkerRegistration[]>;
113
+ register(scriptURL: string | URL, options?: RegistrationOptions | undefined): Promise<ServiceWorkerRegistration>;
114
+ startMessages(): void;
115
+ removeEventListener<K_1 extends keyof ServiceWorkerContainerEventMap>(type: K_1, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
116
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
117
+ dispatchEvent(event: Event): boolean;
118
+ } | {
119
+ addEventListener: (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void;
120
+ port: MessagePort;
121
+ removeEventListener<K_2 extends "error">(type: K_2, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K_2]) => any, options?: boolean | EventListenerOptions | undefined): void;
122
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
123
+ dispatchEvent(event: Event): boolean;
124
+ onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
125
+ } | {
126
+ addEventListener: (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void;
127
+ onmessage: ((this: Worker, ev: MessageEvent<any>) => any) | null;
128
+ onmessageerror: ((this: Worker, ev: MessageEvent<any>) => any) | null;
129
+ postMessage(message: any, transfer: Transferable[]): void;
130
+ postMessage(message: any, options?: StructuredSerializeOptions | undefined): void;
131
+ terminate(): void;
132
+ removeEventListener<K_3 extends keyof WorkerEventMap>(type: K_3, listener: (this: Worker, ev: WorkerEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
133
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
134
+ dispatchEvent(event: Event): boolean;
135
+ onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
136
+ };
137
+ export {};
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "osra",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Easy communication between workers",
5
5
  "files": [
6
6
  "build"
7
7
  ],
8
8
  "main": "build/index.js",
9
+ "type": "module",
9
10
  "scripts": {
10
- "type-check": "tsc --incremental",
11
- "type-check-watch": "tsc --watch --incremental",
12
- "build": "esbuild ./src/index.ts --format=esm --bundle --outfile=build/index.js && npm run type-check",
11
+ "type-check": "tsc",
12
+ "type-check-watch": "tsc --watch",
13
+ "build": "vite build && npm run type-check",
13
14
  "build-watch": "esbuild --watch ./src/index.ts --format=esm --bundle --outfile=build/index.js",
14
15
  "dev": "concurrently \"npm run build-watch\" \"npm run type-check-watch\"",
15
16
  "copy-tests-html": "copyfiles -u 1 ./tests/*/index.html tests/build",
@@ -30,14 +31,17 @@
30
31
  "homepage": "https://github.com/Banou26/osra#readme",
31
32
  "devDependencies": {
32
33
  "@types/chai-as-promised": "^7.1.5",
34
+ "@types/chrome": "^0.0.237",
33
35
  "@types/node": "^18.11.18",
36
+ "@types/webextension-polyfill": "^0.10.0",
34
37
  "chai": "^4.3.6",
35
38
  "chai-as-promised": "^7.1.1",
36
39
  "concurrently": "^7.0.0",
37
40
  "copyfiles": "^2.4.1",
38
41
  "epk": "^0.16.0",
39
- "esbuild": "^0.14.28",
40
42
  "mime": "^3.0.0",
41
- "typescript": "^4.9.4"
43
+ "typescript": "^4.9.4",
44
+ "vite": "^4.0.4",
45
+ "webextension-polyfill": "^0.10.0"
42
46
  }
43
47
  }
File without changes
File without changes
package/build/pull.d.ts DELETED
File without changes
package/build/send.d.ts DELETED
File without changes
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/types.ts","../src/shared.ts","../src/utils.ts","../src/call.ts","../src/event-target.ts","../src/events.ts","../src/register.ts","../src/index.ts","../src/iterator.ts","../src/promise.ts","../src/pull.ts","../src/send.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/chai-as-promised/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/yoga-layout/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"1bb9d7b01191dc46cf7c960f77c76ca885a6791a4cb4b7c7d091c6a7cb621c80","signature":"999eb232c28b0161f0e5a35bddfc904d9127a6e472a0d662117229adab2ed16b"},{"version":"05937501605ada7f9817ccf33f105ee25f49184975d9e6d72f7f79d060ece585","signature":"91196572ac171e385c355366d8c95f41584259576e8f2553fae310712fa2e7a2"},{"version":"95e9044ba1e404dec0ebf802aed928abf1028a6393dab1baf3f3e5dfd7f56375","signature":"f224fce8893370dc397dac71391abacdd5e7f53b7c872cd0d04c651353a9b46f"},{"version":"7b75249514169a6c542b34b6a1a5082f5744e5656585f3a6fbecebf815defda3","signature":"0dc0f3ee840a15bd7ba0d022d938fb14992ccb30933d4fb9b25293dcb63d6c42"},{"version":"471a9874ad00882e700297c1941d262ddbbb38eec1d8b33d4c274cc90147f639","signature":"1d75deb0420956855c83394733e35c44fd1c478d70269f85c5b40a9864cfe68d"},{"version":"99a5f708f77c622ca352fd11001c4b41e49dae8fb7cb9eccc235d3db2aa6dbb1","signature":"f7c69f81d580fe173a2007da69c9ea008e9a1a996761329afc51e3c518df023e"},{"version":"8d1ff770ee61d790a1f7f3704ad42963d270ed26af16430f4d8b06cda9091486","signature":"f88d74499704e1361322b03e6d17da1f06f9c01c0c42ad0ebf0aaa108a8eadbe"},{"version":"4d69b267810fc417b0a717e73d498d44a2d6496087e700ab12f928c604a67338","signature":"72351ab1482e174e045b22d78760665da306ed7663909af835d78ce6bd621c07"},{"version":"0af48ab96fcd4372caa919fab979abc41bbb090b6c2f3390245388bcd5e1afd9","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"a865def279ea542d3025ee9dece6bb7484acee979758aa1314bac4f17207f200","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"ce4b42df217bb63f0f788ebb195b26abb35e4df5194f6efd8aaf27a29dbf0683","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"2fab913ef715208c4337bdcaf6e84acc484f02be7cdb64920d2af7d36cf2ac00","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"3a15910b7f45dfc393f010ee8f913580b08d65752800fc48147ea13445acd5f7","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236","7693b0547e3b004443fa1f4327b61617e7317757a3e947ccc200c91111c77eca"],"options":{"composite":false,"declaration":true,"emitDeclarationOnly":true,"module":99,"noImplicitAny":false,"noUncheckedIndexedAccess":true,"outDir":"./","sourceMap":true,"strict":true,"strictNullChecks":true,"target":99},"fileIdsList":[[69,117],[117],[71,117],[74,117],[75,80,108,117],[76,87,88,95,105,116,117],[76,77,87,95,117],[78,117],[79,80,88,96,117],[80,105,113,117],[81,83,87,95,117],[82,117],[83,84,117],[87,117],[85,87,117],[87,88,89,105,116,117],[87,88,89,102,105,108,117],[117,121],[83,90,95,105,116,117],[87,88,90,91,95,105,113,116,117],[90,92,105,113,116,117],[71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123],[87,93,117],[94,116,117],[83,87,95,105,117],[96,117],[97,117],[74,98,117],[99,115,117,121],[100,117],[101,117],[87,102,103,117],[102,104,117,119],[75,87,105,106,107,108,117],[75,105,107,117],[105,106,117],[108,117],[109,117],[87,111,112,117],[111,112,117],[80,95,105,113,117],[114,117],[95,115,117],[75,90,101,116,117],[80,117],[105,117,118],[117,119],[117,120],[75,80,87,89,98,105,116,117,119,121],[105,117,122],[57,58,59,117],[61,117],[57,60,63,117],[57,58,60,117],[57,117],[57],[57,60,63]],"referencedMap":[[70,1],[69,2],[71,3],[72,3],[74,4],[75,5],[76,6],[77,7],[78,8],[79,9],[80,10],[81,11],[82,12],[83,13],[84,13],[86,14],[85,15],[87,14],[88,16],[89,17],[73,18],[123,2],[90,19],[91,20],[92,21],[124,22],[93,23],[94,24],[95,25],[96,26],[97,27],[98,28],[99,29],[100,30],[101,31],[102,32],[103,32],[104,33],[105,34],[107,35],[106,36],[108,37],[109,38],[110,2],[111,39],[112,40],[113,41],[114,42],[115,43],[116,44],[117,45],[118,46],[119,47],[120,48],[121,49],[122,50],[125,2],[11,2],[12,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[4,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[60,51],[61,2],[62,52],[64,53],[65,2],[66,2],[67,2],[63,54],[68,2],[58,2],[57,2],[59,55]],"exportedModulesMap":[[70,1],[69,2],[71,3],[72,3],[74,4],[75,5],[76,6],[77,7],[78,8],[79,9],[80,10],[81,11],[82,12],[83,13],[84,13],[86,14],[85,15],[87,14],[88,16],[89,17],[73,18],[123,2],[90,19],[91,20],[92,21],[124,22],[93,23],[94,24],[95,25],[96,26],[97,27],[98,28],[99,29],[100,30],[101,31],[102,32],[103,32],[104,33],[105,34],[107,35],[106,36],[108,37],[109,38],[110,2],[111,39],[112,40],[113,41],[114,42],[115,43],[116,44],[117,45],[118,46],[119,47],[120,48],[121,49],[122,50],[125,2],[11,2],[12,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[4,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[60,56],[64,57],[63,56],[59,56]],"semanticDiagnosticsPerFile":[70,69,71,72,74,75,76,77,78,79,80,81,82,83,84,86,85,87,88,89,73,123,90,91,92,124,93,94,95,96,97,98,99,100,101,102,103,104,105,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,125,11,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,60,61,62,64,65,66,67,63,68,58,57,59]},"version":"4.9.4"}