@mittwald/flow-remote-core 0.2.0-alpha.895 → 0.2.0-alpha.897
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/js/index-node.mjs +13 -13
- package/dist/js/index.mjs +12 -12
- package/dist/js/node_modules/.pnpm/@quilted_events@2.1.5/node_modules/@quilted/events/build/esm/abort/NestedAbortController.mjs +38 -0
- package/dist/js/node_modules/.pnpm/@quilted_events@2.1.5/node_modules/@quilted/events/build/esm/abort/NestedAbortController.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/Thread.mjs +231 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/Thread.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/constants.mjs +10 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/constants.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/errors.mjs +8 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/errors.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/functions/ThreadFunctionsAutomatic.mjs +69 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/functions/ThreadFunctionsAutomatic.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/nanoid.mjs +11 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/nanoid.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/serialization/ThreadSerializationStructuredClone.mjs +212 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/serialization/ThreadSerializationStructuredClone.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/serialization/shared.mjs +11 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/serialization/shared.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/ThreadIframe.mjs +161 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/ThreadIframe.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/ThreadNestedIframe.mjs +86 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/ThreadNestedIframe.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/window/ThreadNestedWindow.mjs +140 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/window/ThreadNestedWindow.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/window/ThreadWindow.mjs +211 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/window/ThreadWindow.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/window/shared.mjs +5 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/threads/window/shared.mjs.map +1 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/transfer.mjs +17 -0
- package/dist/js/node_modules/.pnpm/@quilted_threads@3.3.1_patch_hash_df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/transfer.mjs.map +1 -0
- package/dist/js/{connection → packages/remote-core/src/connection}/connectHostRenderRoot.mjs +1 -1
- package/dist/js/packages/remote-core/src/connection/connectHostRenderRoot.mjs.map +1 -0
- package/dist/js/{connection → packages/remote-core/src/connection}/connectRemoteIframe.mjs +1 -1
- package/dist/js/packages/remote-core/src/connection/connectRemoteIframe.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/connection/types.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/error.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/ext-bridge/getWithMergedHostConfig.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/ext-bridge/implementation.mjs.map +1 -0
- package/dist/js/{serialization → packages/remote-core/src/serialization}/FlowThreadSerialization.mjs +2 -1
- package/dist/js/packages/remote-core/src/serialization/FlowThreadSerialization.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/serialization/Serializer.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/serialization/serializers/dataTransferText.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/serialization/serializers/date.mjs.map +1 -0
- package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/file.mjs +1 -1
- package/dist/js/packages/remote-core/src/serialization/serializers/file.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/serialization/serializers/fileList.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/serialization/serializers/formData.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/serialization/serializers/passwordPolicy.mjs.map +1 -0
- package/dist/js/packages/remote-core/src/shim.mjs.map +1 -0
- package/package.json +6 -6
- package/dist/js/connection/connectHostRenderRoot.mjs.map +0 -1
- package/dist/js/connection/connectRemoteIframe.mjs.map +0 -1
- package/dist/js/connection/types.mjs.map +0 -1
- package/dist/js/error.mjs.map +0 -1
- package/dist/js/ext-bridge/getWithMergedHostConfig.mjs.map +0 -1
- package/dist/js/ext-bridge/implementation.mjs.map +0 -1
- package/dist/js/serialization/FlowThreadSerialization.mjs.map +0 -1
- package/dist/js/serialization/Serializer.mjs.map +0 -1
- package/dist/js/serialization/serializers/dataTransferText.mjs.map +0 -1
- package/dist/js/serialization/serializers/date.mjs.map +0 -1
- package/dist/js/serialization/serializers/file.mjs.map +0 -1
- package/dist/js/serialization/serializers/fileList.mjs.map +0 -1
- package/dist/js/serialization/serializers/formData.mjs.map +0 -1
- package/dist/js/serialization/serializers/passwordPolicy.mjs.map +0 -1
- package/dist/js/shim.mjs.map +0 -1
- /package/dist/js/{connection → packages/remote-core/src/connection}/types.mjs +0 -0
- /package/dist/js/{error.mjs → packages/remote-core/src/error.mjs} +0 -0
- /package/dist/js/{ext-bridge → packages/remote-core/src/ext-bridge}/getWithMergedHostConfig.mjs +0 -0
- /package/dist/js/{ext-bridge → packages/remote-core/src/ext-bridge}/implementation.mjs +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/Serializer.mjs +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/dataTransferText.mjs +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/date.mjs +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/fileList.mjs +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/formData.mjs +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/index.mjs +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/index.mjs.map +0 -0
- /package/dist/js/{serialization → packages/remote-core/src/serialization}/serializers/passwordPolicy.mjs +0 -0
- /package/dist/js/{shim.mjs → packages/remote-core/src/shim.mjs} +0 -0
package/dist/js/index-node.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import './shim.mjs';
|
|
1
|
+
import './packages/remote-core/src/shim.mjs';
|
|
2
2
|
export { RemoteReceiver } from '@mittwald/remote-dom-core/receivers';
|
|
3
3
|
export { RemoteElement, RemoteEvent } from '@mittwald/remote-dom-core/elements';
|
|
4
|
-
export { calendarDateSerializer } from './serialization/serializers/date.mjs';
|
|
5
|
-
export { fileDeSerialize, fileSerialize, fileSerializer, isSerializedFile } from './serialization/serializers/file.mjs';
|
|
6
|
-
export { fileListSerializer } from './serialization/serializers/fileList.mjs';
|
|
7
|
-
export { dataTransferTextSerializer } from './serialization/serializers/dataTransferText.mjs';
|
|
8
|
-
export { formDataSerializer } from './serialization/serializers/formData.mjs';
|
|
9
|
-
export { passwordPolicySerializer } from './serialization/serializers/passwordPolicy.mjs';
|
|
10
|
-
export { FlowThreadSerialization } from './serialization/FlowThreadSerialization.mjs';
|
|
11
|
-
export { Serializer } from './serialization/Serializer.mjs';
|
|
12
|
-
export { connectHostRenderRoot, connectHostRenderRootRef, connectRemoteReceiver } from './connection/connectHostRenderRoot.mjs';
|
|
13
|
-
export { connectRemoteIframe, connectRemoteIframeRef } from './connection/connectRemoteIframe.mjs';
|
|
14
|
-
export { Version } from './connection/types.mjs';
|
|
15
|
-
export { RemoteError } from './error.mjs';
|
|
4
|
+
export { calendarDateSerializer } from './packages/remote-core/src/serialization/serializers/date.mjs';
|
|
5
|
+
export { fileDeSerialize, fileSerialize, fileSerializer, isSerializedFile } from './packages/remote-core/src/serialization/serializers/file.mjs';
|
|
6
|
+
export { fileListSerializer } from './packages/remote-core/src/serialization/serializers/fileList.mjs';
|
|
7
|
+
export { dataTransferTextSerializer } from './packages/remote-core/src/serialization/serializers/dataTransferText.mjs';
|
|
8
|
+
export { formDataSerializer } from './packages/remote-core/src/serialization/serializers/formData.mjs';
|
|
9
|
+
export { passwordPolicySerializer } from './packages/remote-core/src/serialization/serializers/passwordPolicy.mjs';
|
|
10
|
+
export { FlowThreadSerialization } from './packages/remote-core/src/serialization/FlowThreadSerialization.mjs';
|
|
11
|
+
export { Serializer } from './packages/remote-core/src/serialization/Serializer.mjs';
|
|
12
|
+
export { connectHostRenderRoot, connectHostRenderRootRef, connectRemoteReceiver } from './packages/remote-core/src/connection/connectHostRenderRoot.mjs';
|
|
13
|
+
export { connectRemoteIframe, connectRemoteIframeRef } from './packages/remote-core/src/connection/connectRemoteIframe.mjs';
|
|
14
|
+
export { Version } from './packages/remote-core/src/connection/types.mjs';
|
|
15
|
+
export { RemoteError } from './packages/remote-core/src/error.mjs';
|
|
16
16
|
//# sourceMappingURL=index-node.mjs.map
|
package/dist/js/index.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export { RemoteReceiver } from '@mittwald/remote-dom-core/receivers';
|
|
2
2
|
export { RemoteElement, RemoteEvent } from '@mittwald/remote-dom-core/elements';
|
|
3
|
-
export { calendarDateSerializer } from './serialization/serializers/date.mjs';
|
|
4
|
-
export { fileDeSerialize, fileSerialize, fileSerializer, isSerializedFile } from './serialization/serializers/file.mjs';
|
|
5
|
-
export { fileListSerializer } from './serialization/serializers/fileList.mjs';
|
|
6
|
-
export { dataTransferTextSerializer } from './serialization/serializers/dataTransferText.mjs';
|
|
7
|
-
export { formDataSerializer } from './serialization/serializers/formData.mjs';
|
|
8
|
-
export { passwordPolicySerializer } from './serialization/serializers/passwordPolicy.mjs';
|
|
9
|
-
export { FlowThreadSerialization } from './serialization/FlowThreadSerialization.mjs';
|
|
10
|
-
export { Serializer } from './serialization/Serializer.mjs';
|
|
11
|
-
export { connectHostRenderRoot, connectHostRenderRootRef, connectRemoteReceiver } from './connection/connectHostRenderRoot.mjs';
|
|
12
|
-
export { connectRemoteIframe, connectRemoteIframeRef } from './connection/connectRemoteIframe.mjs';
|
|
13
|
-
export { Version } from './connection/types.mjs';
|
|
14
|
-
export { RemoteError } from './error.mjs';
|
|
3
|
+
export { calendarDateSerializer } from './packages/remote-core/src/serialization/serializers/date.mjs';
|
|
4
|
+
export { fileDeSerialize, fileSerialize, fileSerializer, isSerializedFile } from './packages/remote-core/src/serialization/serializers/file.mjs';
|
|
5
|
+
export { fileListSerializer } from './packages/remote-core/src/serialization/serializers/fileList.mjs';
|
|
6
|
+
export { dataTransferTextSerializer } from './packages/remote-core/src/serialization/serializers/dataTransferText.mjs';
|
|
7
|
+
export { formDataSerializer } from './packages/remote-core/src/serialization/serializers/formData.mjs';
|
|
8
|
+
export { passwordPolicySerializer } from './packages/remote-core/src/serialization/serializers/passwordPolicy.mjs';
|
|
9
|
+
export { FlowThreadSerialization } from './packages/remote-core/src/serialization/FlowThreadSerialization.mjs';
|
|
10
|
+
export { Serializer } from './packages/remote-core/src/serialization/Serializer.mjs';
|
|
11
|
+
export { connectHostRenderRoot, connectHostRenderRootRef, connectRemoteReceiver } from './packages/remote-core/src/connection/connectHostRenderRoot.mjs';
|
|
12
|
+
export { connectRemoteIframe, connectRemoteIframeRef } from './packages/remote-core/src/connection/connectRemoteIframe.mjs';
|
|
13
|
+
export { Version } from './packages/remote-core/src/connection/types.mjs';
|
|
14
|
+
export { RemoteError } from './packages/remote-core/src/error.mjs';
|
|
15
15
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An `AbortController` that will automatically abort when any of
|
|
3
|
+
* its "parent" `AbortController`s abort. This is useful for when
|
|
4
|
+
* you have nested asynchronous operations that may abort independently.
|
|
5
|
+
* The `AbortController` can also be independently aborted.
|
|
6
|
+
*
|
|
7
|
+
* To associate the parent `AbortController`s, pass their signals
|
|
8
|
+
* as arguments to the constructor.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import {NestedAbortController} from '@shopify/events';
|
|
12
|
+
*
|
|
13
|
+
* const parent = new AbortController();
|
|
14
|
+
* const nested = new NestedAbortController(parent.signal);
|
|
15
|
+
*
|
|
16
|
+
* parent.abort();
|
|
17
|
+
* nested.signal.aborted; // true
|
|
18
|
+
*/
|
|
19
|
+
class NestedAbortController extends AbortController {
|
|
20
|
+
constructor(...parents) {
|
|
21
|
+
super();
|
|
22
|
+
const abortedSignal = parents.find(signal => signal.aborted);
|
|
23
|
+
if (abortedSignal) {
|
|
24
|
+
this.abort(abortedSignal.reason);
|
|
25
|
+
} else {
|
|
26
|
+
const abort = event => this.abort(event.target.reason);
|
|
27
|
+
const options = {
|
|
28
|
+
signal: this.signal
|
|
29
|
+
};
|
|
30
|
+
for (const signal of parents) {
|
|
31
|
+
signal.addEventListener('abort', abort, options);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { NestedAbortController };
|
|
38
|
+
//# sourceMappingURL=NestedAbortController.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestedAbortController.mjs","sources":["../../../../../../../../../../../../../node_modules/.pnpm/@quilted+events@2.1.5/node_modules/@quilted/events/build/esm/abort/NestedAbortController.mjs"],"sourcesContent":["/**\n * An `AbortController` that will automatically abort when any of\n * its \"parent\" `AbortController`s abort. This is useful for when\n * you have nested asynchronous operations that may abort independently.\n * The `AbortController` can also be independently aborted.\n *\n * To associate the parent `AbortController`s, pass their signals\n * as arguments to the constructor.\n *\n * @example\n * import {NestedAbortController} from '@shopify/events';\n *\n * const parent = new AbortController();\n * const nested = new NestedAbortController(parent.signal);\n *\n * parent.abort();\n * nested.signal.aborted; // true\n */\nclass NestedAbortController extends AbortController {\n constructor(...parents) {\n super();\n const abortedSignal = parents.find(signal => signal.aborted);\n if (abortedSignal) {\n this.abort(abortedSignal.reason);\n } else {\n const abort = event => this.abort(event.target.reason);\n const options = {\n signal: this.signal\n };\n for (const signal of parents) {\n signal.addEventListener('abort', abort, options);\n }\n }\n }\n}\n\nexport { NestedAbortController };\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAqB,SAAS,eAAe,CAAC;AACpD,EAAE,WAAW,CAAC,GAAG,OAAO,EAAE;AAC1B,IAAI,KAAK,EAAE;AACX,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC;AAChE,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;AACtC,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5D,MAAM,MAAM,OAAO,GAAG;AACtB,QAAQ,MAAM,EAAE,IAAI,CAAC;AACrB,OAAO;AACP,MAAM,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACpC,QAAQ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;AACxD,MAAM;AACN,IAAI;AACJ,EAAE;AACF;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { ThreadClosedError } from './errors.mjs';
|
|
2
|
+
import { nanoid } from './nanoid.mjs';
|
|
3
|
+
import { MESSAGE_FUNCTION_RELEASE, MESSAGE_FUNCTION_RESULT, MESSAGE_CALL_RESULT, MESSAGE_FUNCTION_CALL, MESSAGE_CALL } from './constants.mjs';
|
|
4
|
+
import { ThreadFunctionsAutomatic } from './functions/ThreadFunctionsAutomatic.mjs';
|
|
5
|
+
import { ThreadSerializationStructuredClone } from './serialization/ThreadSerializationStructuredClone.mjs';
|
|
6
|
+
import { NestedAbortController } from '../../../../../../@quilted_events@2.1.5/node_modules/@quilted/events/build/esm/abort/NestedAbortController.mjs';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A thread represents a target JavaScript environment that exposes a set
|
|
10
|
+
* of callable, asynchronous methods. The thread takes care of automatically
|
|
11
|
+
* encoding and decoding its arguments and return values, so you can interact
|
|
12
|
+
* with it as if its methods were implemented in the same environment as your
|
|
13
|
+
* own code.
|
|
14
|
+
*/
|
|
15
|
+
class Thread {
|
|
16
|
+
get signal() {
|
|
17
|
+
return this.#abort.signal;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get closed() {
|
|
21
|
+
return this.#abort.signal.aborted;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#abort;
|
|
25
|
+
#idsToResolver = (() => new Map())();
|
|
26
|
+
|
|
27
|
+
constructor(messages, {
|
|
28
|
+
imports,
|
|
29
|
+
exports,
|
|
30
|
+
functions = new ThreadFunctionsAutomatic(),
|
|
31
|
+
serialization = new ThreadSerializationStructuredClone(),
|
|
32
|
+
signal
|
|
33
|
+
} = {}) {
|
|
34
|
+
this.messages = messages;
|
|
35
|
+
this.#abort = signal ? new NestedAbortController(signal) : new AbortController();
|
|
36
|
+
this.exports = exports ?? {};
|
|
37
|
+
this.imports = createThreadImports(this.#handlerForCall.bind(this), imports);
|
|
38
|
+
this.functions = functions;
|
|
39
|
+
this.serialization = serialization;
|
|
40
|
+
|
|
41
|
+
this.functions.start?.(this);
|
|
42
|
+
this.serialization.start?.(this);
|
|
43
|
+
|
|
44
|
+
this.signal.addEventListener('abort', () => {
|
|
45
|
+
for (const id of this.#idsToResolver.keys()) {
|
|
46
|
+
this.#resolveCall(id, undefined, new ThreadClosedError());
|
|
47
|
+
}
|
|
48
|
+
this.#idsToResolver.clear();
|
|
49
|
+
}, { once: true });
|
|
50
|
+
|
|
51
|
+
messages.listen(async (rawData) => {
|
|
52
|
+
const isThreadMessageData = Array.isArray(rawData) && typeof rawData[0] === 'number';
|
|
53
|
+
if (!isThreadMessageData) return;
|
|
54
|
+
|
|
55
|
+
const data = rawData;
|
|
56
|
+
|
|
57
|
+
switch (data[0]) {
|
|
58
|
+
case MESSAGE_CALL: {
|
|
59
|
+
const [, id, property, args] = data;
|
|
60
|
+
const func = this.exports[property] ?? (() => {
|
|
61
|
+
throw new Error(`No '${property}' method is exported from this thread`);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
await this.#callLocal(func, args, (value, error, transferable) => {
|
|
65
|
+
this.messages.send([MESSAGE_CALL_RESULT, id, value, error], transferable);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
case MESSAGE_FUNCTION_CALL: {
|
|
72
|
+
const [, callID, funcID, args] = data;
|
|
73
|
+
const func = this.functions.get(funcID, this) ?? missingThreadFunction;
|
|
74
|
+
|
|
75
|
+
await this.#callLocal(func, args, (value, error, transferable) => {
|
|
76
|
+
this.messages.send([MESSAGE_FUNCTION_RESULT, callID, value, error], transferable);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
case MESSAGE_CALL_RESULT:
|
|
83
|
+
case MESSAGE_FUNCTION_RESULT: {
|
|
84
|
+
this.#resolveCall(...data.slice(1));
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
case MESSAGE_FUNCTION_RELEASE: {
|
|
89
|
+
const id = data[1];
|
|
90
|
+
this.functions.release(id, this);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}, { signal: this.signal });
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
close() {
|
|
98
|
+
this.#abort.abort();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async call(func, args) {
|
|
102
|
+
if (this.closed) {
|
|
103
|
+
return Promise.reject(new ThreadClosedError());
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const transferable = [];
|
|
107
|
+
const serialized = await this.serialization.serialize(args, this, transferable);
|
|
108
|
+
|
|
109
|
+
const id = nanoid();
|
|
110
|
+
const done = this.#waitForResult(id);
|
|
111
|
+
|
|
112
|
+
func(id, serialized, transferable);
|
|
113
|
+
|
|
114
|
+
return done;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async #callLocal(func, args, withResult) {
|
|
118
|
+
try {
|
|
119
|
+
const result = this.functions.call
|
|
120
|
+
? await this.functions.call(func, args, this) // keep original contract
|
|
121
|
+
: await func(...(await this.serialization.deserialize(args, this)));
|
|
122
|
+
|
|
123
|
+
const transferable = [];
|
|
124
|
+
const serialized = await this.serialization.serialize(result, this, transferable);
|
|
125
|
+
|
|
126
|
+
withResult(serialized, undefined, transferable);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
withResult(undefined, await this.serialization.serialize(error, this));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
#handlerForCall(property) {
|
|
133
|
+
return (...args) => {
|
|
134
|
+
try {
|
|
135
|
+
if (typeof property !== 'string' && typeof property !== 'number') {
|
|
136
|
+
throw new Error(`Can’t call a symbol method on a thread: ${property.toString()}`);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return this.call((id, serializedArgs, transferable) => {
|
|
140
|
+
this.messages.send([MESSAGE_CALL, id, property, serializedArgs], transferable);
|
|
141
|
+
}, args);
|
|
142
|
+
} catch (error) {
|
|
143
|
+
return Promise.reject(error);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
#resolveCall(...args) {
|
|
149
|
+
const callID = args[0];
|
|
150
|
+
const resolver = this.#idsToResolver.get(callID);
|
|
151
|
+
|
|
152
|
+
if (resolver) {
|
|
153
|
+
resolver(...args);
|
|
154
|
+
this.#idsToResolver.delete(callID);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
#waitForResult(id) {
|
|
159
|
+
const promise = new Promise((resolve, reject) => {
|
|
160
|
+
this.#idsToResolver.set(id, async (_, value, error) => {
|
|
161
|
+
try {
|
|
162
|
+
if (error == null) {
|
|
163
|
+
resolve(await this.serialization.deserialize(value, this));
|
|
164
|
+
} else {
|
|
165
|
+
reject(await this.serialization.deserialize(error, this));
|
|
166
|
+
}
|
|
167
|
+
} catch (deserializeError) {
|
|
168
|
+
reject(deserializeError);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
Object.defineProperty(promise, Symbol.asyncIterator, {
|
|
174
|
+
async *value() {
|
|
175
|
+
const result = await promise;
|
|
176
|
+
|
|
177
|
+
Object.defineProperty(result, Symbol.asyncIterator, {
|
|
178
|
+
value: () => result
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
yield* result;
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
return promise;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function createThreadImports(handlerForImport, imported) {
|
|
190
|
+
let call;
|
|
191
|
+
|
|
192
|
+
if (imported == null) {
|
|
193
|
+
if (typeof Proxy !== 'function') {
|
|
194
|
+
throw new Error(`You must pass an array of callable methods in environments without Proxies.`);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
const cache = new Map();
|
|
198
|
+
|
|
199
|
+
call = new Proxy({}, {
|
|
200
|
+
get(_target, property) {
|
|
201
|
+
if (cache.has(property)) {
|
|
202
|
+
return cache.get(property);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const handler = handlerForImport(property);
|
|
206
|
+
cache.set(property, handler);
|
|
207
|
+
return handler;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
} else {
|
|
211
|
+
call = {};
|
|
212
|
+
|
|
213
|
+
for (const method of imported) {
|
|
214
|
+
Object.defineProperty(call, method, {
|
|
215
|
+
value: handlerForImport(method),
|
|
216
|
+
writable: false,
|
|
217
|
+
configurable: true,
|
|
218
|
+
enumerable: true
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return call;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function missingThreadFunction() {
|
|
227
|
+
throw new Error(`You attempted to call a function that is not stored. It may have already been released.`);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export { Thread };
|
|
231
|
+
//# sourceMappingURL=Thread.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Thread.mjs","sources":["../../../../../../../../../../../../node_modules/.pnpm/@quilted+threads@3.3.1_patch_hash=df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/Thread.mjs"],"sourcesContent":["import { NestedAbortController } from '@quilted/events';\nimport { ThreadClosedError } from './errors.mjs';\nimport { nanoid } from './nanoid.mjs';\nimport { MESSAGE_FUNCTION_RELEASE, MESSAGE_FUNCTION_RESULT, MESSAGE_CALL_RESULT, MESSAGE_FUNCTION_CALL, MESSAGE_CALL } from './constants.mjs';\nimport { ThreadFunctionsAutomatic } from './functions/ThreadFunctionsAutomatic.mjs';\nimport { ThreadSerializationStructuredClone } from './serialization/ThreadSerializationStructuredClone.mjs';\n\n/**\n * A thread represents a target JavaScript environment that exposes a set\n * of callable, asynchronous methods. The thread takes care of automatically\n * encoding and decoding its arguments and return values, so you can interact\n * with it as if its methods were implemented in the same environment as your\n * own code.\n */\nclass Thread {\n get signal() {\n return this.#abort.signal;\n }\n\n get closed() {\n return this.#abort.signal.aborted;\n }\n\n #abort;\n #idsToResolver = (() => new Map())();\n\n constructor(messages, {\n imports,\n exports,\n functions = new ThreadFunctionsAutomatic(),\n serialization = new ThreadSerializationStructuredClone(),\n signal\n } = {}) {\n this.messages = messages;\n this.#abort = signal ? new NestedAbortController(signal) : new AbortController();\n this.exports = exports ?? {};\n this.imports = createThreadImports(this.#handlerForCall.bind(this), imports);\n this.functions = functions;\n this.serialization = serialization;\n\n this.functions.start?.(this);\n this.serialization.start?.(this);\n\n this.signal.addEventListener('abort', () => {\n for (const id of this.#idsToResolver.keys()) {\n this.#resolveCall(id, undefined, new ThreadClosedError());\n }\n this.#idsToResolver.clear();\n }, { once: true });\n\n messages.listen(async (rawData) => {\n const isThreadMessageData = Array.isArray(rawData) && typeof rawData[0] === 'number';\n if (!isThreadMessageData) return;\n\n const data = rawData;\n\n switch (data[0]) {\n case MESSAGE_CALL: {\n const [, id, property, args] = data;\n const func = this.exports[property] ?? (() => {\n throw new Error(`No '${property}' method is exported from this thread`);\n });\n\n await this.#callLocal(func, args, (value, error, transferable) => {\n this.messages.send([MESSAGE_CALL_RESULT, id, value, error], transferable);\n });\n\n break;\n }\n\n case MESSAGE_FUNCTION_CALL: {\n const [, callID, funcID, args] = data;\n const func = this.functions.get(funcID, this) ?? missingThreadFunction;\n\n await this.#callLocal(func, args, (value, error, transferable) => {\n this.messages.send([MESSAGE_FUNCTION_RESULT, callID, value, error], transferable);\n });\n\n break;\n }\n\n case MESSAGE_CALL_RESULT:\n case MESSAGE_FUNCTION_RESULT: {\n this.#resolveCall(...data.slice(1));\n break;\n }\n\n case MESSAGE_FUNCTION_RELEASE: {\n const id = data[1];\n this.functions.release(id, this);\n break;\n }\n }\n }, { signal: this.signal });\n }\n\n close() {\n this.#abort.abort();\n }\n\n async call(func, args) {\n if (this.closed) {\n return Promise.reject(new ThreadClosedError());\n }\n\n const transferable = [];\n const serialized = await this.serialization.serialize(args, this, transferable);\n\n const id = nanoid();\n const done = this.#waitForResult(id);\n\n func(id, serialized, transferable);\n\n return done;\n }\n\n async #callLocal(func, args, withResult) {\n try {\n const result = this.functions.call\n ? await this.functions.call(func, args, this) // keep original contract\n : await func(...(await this.serialization.deserialize(args, this)));\n\n const transferable = [];\n const serialized = await this.serialization.serialize(result, this, transferable);\n\n withResult(serialized, undefined, transferable);\n } catch (error) {\n withResult(undefined, await this.serialization.serialize(error, this));\n }\n }\n\n #handlerForCall(property) {\n return (...args) => {\n try {\n if (typeof property !== 'string' && typeof property !== 'number') {\n throw new Error(`Can’t call a symbol method on a thread: ${property.toString()}`);\n }\n\n return this.call((id, serializedArgs, transferable) => {\n this.messages.send([MESSAGE_CALL, id, property, serializedArgs], transferable);\n }, args);\n } catch (error) {\n return Promise.reject(error);\n }\n };\n }\n\n #resolveCall(...args) {\n const callID = args[0];\n const resolver = this.#idsToResolver.get(callID);\n\n if (resolver) {\n resolver(...args);\n this.#idsToResolver.delete(callID);\n }\n }\n\n #waitForResult(id) {\n const promise = new Promise((resolve, reject) => {\n this.#idsToResolver.set(id, async (_, value, error) => {\n try {\n if (error == null) {\n resolve(await this.serialization.deserialize(value, this));\n } else {\n reject(await this.serialization.deserialize(error, this));\n }\n } catch (deserializeError) {\n reject(deserializeError);\n }\n });\n });\n\n Object.defineProperty(promise, Symbol.asyncIterator, {\n async *value() {\n const result = await promise;\n\n Object.defineProperty(result, Symbol.asyncIterator, {\n value: () => result\n });\n\n yield* result;\n }\n });\n\n return promise;\n }\n}\n\nfunction createThreadImports(handlerForImport, imported) {\n let call;\n\n if (imported == null) {\n if (typeof Proxy !== 'function') {\n throw new Error(`You must pass an array of callable methods in environments without Proxies.`);\n }\n\n const cache = new Map();\n\n call = new Proxy({}, {\n get(_target, property) {\n if (cache.has(property)) {\n return cache.get(property);\n }\n\n const handler = handlerForImport(property);\n cache.set(property, handler);\n return handler;\n }\n });\n } else {\n call = {};\n\n for (const method of imported) {\n Object.defineProperty(call, method, {\n value: handlerForImport(method),\n writable: false,\n configurable: true,\n enumerable: true\n });\n }\n }\n\n return call;\n}\n\nfunction missingThreadFunction() {\n throw new Error(`You attempted to call a function that is not stored. It may have already been released.`);\n}\n\nexport { Thread };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const MESSAGE_CALL = 1;
|
|
2
|
+
const MESSAGE_CALL_RESULT = 2;
|
|
3
|
+
const MESSAGE_FUNCTION_CALL = 3;
|
|
4
|
+
const MESSAGE_FUNCTION_RESULT = 4;
|
|
5
|
+
const MESSAGE_FUNCTION_RELEASE = 5;
|
|
6
|
+
const SERIALIZE_METHOD = Symbol.for('quilt.threads.serialize');
|
|
7
|
+
const TRANSFERABLE = Symbol.for('quilt.threads.transferable');
|
|
8
|
+
|
|
9
|
+
export { MESSAGE_CALL, MESSAGE_CALL_RESULT, MESSAGE_FUNCTION_CALL, MESSAGE_FUNCTION_RELEASE, MESSAGE_FUNCTION_RESULT, SERIALIZE_METHOD, TRANSFERABLE };
|
|
10
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../../../../../../../../../node_modules/.pnpm/@quilted+threads@3.3.1_patch_hash=df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/constants.mjs"],"sourcesContent":["const MESSAGE_CALL = 1;\nconst MESSAGE_CALL_RESULT = 2;\nconst MESSAGE_FUNCTION_CALL = 3;\nconst MESSAGE_FUNCTION_RESULT = 4;\nconst MESSAGE_FUNCTION_RELEASE = 5;\nconst SERIALIZE_METHOD = Symbol.for('quilt.threads.serialize');\nconst TRANSFERABLE = Symbol.for('quilt.threads.transferable');\n\nexport { MESSAGE_CALL, MESSAGE_CALL_RESULT, MESSAGE_FUNCTION_CALL, MESSAGE_FUNCTION_RELEASE, MESSAGE_FUNCTION_RESULT, SERIALIZE_METHOD, TRANSFERABLE };\n"],"names":[],"mappings":"AAAK,MAAC,YAAY,GAAG;AAChB,MAAC,mBAAmB,GAAG;AACvB,MAAC,qBAAqB,GAAG;AACzB,MAAC,uBAAuB,GAAG;AAC3B,MAAC,wBAAwB,GAAG;AAC5B,MAAC,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB;AACxD,MAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.mjs","sources":["../../../../../../../../../../../../node_modules/.pnpm/@quilted+threads@3.3.1_patch_hash=df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/errors.mjs"],"sourcesContent":["class ThreadClosedError extends Error {\n constructor() {\n super('You attempted to call a function on a closed thread.');\n }\n}\n\nexport { ThreadClosedError };\n"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,SAAS,KAAK,CAAC;AACtC,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,sDAAsD,CAAC;AACjE,EAAE;AACF;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { MESSAGE_FUNCTION_CALL, MESSAGE_FUNCTION_RELEASE } from '../constants.mjs';
|
|
2
|
+
import { nanoid } from '../nanoid.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A strategy for managing functions across threads that automatically releases
|
|
6
|
+
* functions when they are no longer needed. This is done by deserializing functions
|
|
7
|
+
* into a proxy that can be called, and wrapping that proxy in a `FinalizationRegistry`,
|
|
8
|
+
* which allows us to send a message to the parent thread when the function is no
|
|
9
|
+
* longer used.
|
|
10
|
+
*
|
|
11
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry
|
|
12
|
+
*/
|
|
13
|
+
class ThreadFunctionsAutomatic {
|
|
14
|
+
#functionsToId = (() => new Map())();
|
|
15
|
+
#idsToFunction = (() => new Map())();
|
|
16
|
+
#idsToProxy = (() => new Map())();
|
|
17
|
+
#finalization = (() => new WeakMap())();
|
|
18
|
+
get(id) {
|
|
19
|
+
return this.#idsToFunction.get(id);
|
|
20
|
+
}
|
|
21
|
+
release(id) {
|
|
22
|
+
const func = this.#idsToFunction.get(id);
|
|
23
|
+
if (func) {
|
|
24
|
+
this.#idsToFunction.delete(id);
|
|
25
|
+
this.#functionsToId.delete(func);
|
|
26
|
+
}
|
|
27
|
+
return Boolean(func);
|
|
28
|
+
}
|
|
29
|
+
serialize(func) {
|
|
30
|
+
let id = this.#functionsToId.get(func);
|
|
31
|
+
if (id == null) {
|
|
32
|
+
id = nanoid();
|
|
33
|
+
this.#functionsToId.set(func, id);
|
|
34
|
+
this.#idsToFunction.set(id, func);
|
|
35
|
+
}
|
|
36
|
+
return id;
|
|
37
|
+
}
|
|
38
|
+
deserialize(id, thread) {
|
|
39
|
+
let proxy = this.#idsToProxy.get(id)?.deref();
|
|
40
|
+
if (proxy) return proxy;
|
|
41
|
+
proxy = (...args) => {
|
|
42
|
+
if (!this.#idsToProxy.has(id)) {
|
|
43
|
+
throw new Error('You attempted to call a function that was already revoked.');
|
|
44
|
+
}
|
|
45
|
+
return thread.call((callID, args, transferable) => {
|
|
46
|
+
thread.messages.send([MESSAGE_FUNCTION_CALL, callID, id, args], transferable);
|
|
47
|
+
}, args);
|
|
48
|
+
};
|
|
49
|
+
this.#finalizationRegistry(thread)?.register(proxy, id);
|
|
50
|
+
this.#idsToProxy.set(id, new WeakRef(proxy));
|
|
51
|
+
return proxy;
|
|
52
|
+
}
|
|
53
|
+
#finalizationRegistry(thread) {
|
|
54
|
+
let finalization = this.#finalization.get(thread);
|
|
55
|
+
if (typeof FinalizationRegistry === 'undefined') {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
if (!finalization) {
|
|
59
|
+
finalization = new FinalizationRegistry(id => {
|
|
60
|
+
thread.messages.send([MESSAGE_FUNCTION_RELEASE, id]);
|
|
61
|
+
});
|
|
62
|
+
this.#finalization.set(thread, finalization);
|
|
63
|
+
}
|
|
64
|
+
return finalization;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { ThreadFunctionsAutomatic };
|
|
69
|
+
//# sourceMappingURL=ThreadFunctionsAutomatic.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadFunctionsAutomatic.mjs","sources":["../../../../../../../../../../../../../node_modules/.pnpm/@quilted+threads@3.3.1_patch_hash=df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/functions/ThreadFunctionsAutomatic.mjs"],"sourcesContent":["import { MESSAGE_FUNCTION_CALL, MESSAGE_FUNCTION_RELEASE } from '../constants.mjs';\nimport { nanoid } from '../nanoid.mjs';\n\n/**\n * A strategy for managing functions across threads that automatically releases\n * functions when they are no longer needed. This is done by deserializing functions\n * into a proxy that can be called, and wrapping that proxy in a `FinalizationRegistry`,\n * which allows us to send a message to the parent thread when the function is no\n * longer used.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry\n */\nclass ThreadFunctionsAutomatic {\n #functionsToId = (() => new Map())();\n #idsToFunction = (() => new Map())();\n #idsToProxy = (() => new Map())();\n #finalization = (() => new WeakMap())();\n get(id) {\n return this.#idsToFunction.get(id);\n }\n release(id) {\n const func = this.#idsToFunction.get(id);\n if (func) {\n this.#idsToFunction.delete(id);\n this.#functionsToId.delete(func);\n }\n return Boolean(func);\n }\n serialize(func) {\n let id = this.#functionsToId.get(func);\n if (id == null) {\n id = nanoid();\n this.#functionsToId.set(func, id);\n this.#idsToFunction.set(id, func);\n }\n return id;\n }\n deserialize(id, thread) {\n let proxy = this.#idsToProxy.get(id)?.deref();\n if (proxy) return proxy;\n proxy = (...args) => {\n if (!this.#idsToProxy.has(id)) {\n throw new Error('You attempted to call a function that was already revoked.');\n }\n return thread.call((callID, args, transferable) => {\n thread.messages.send([MESSAGE_FUNCTION_CALL, callID, id, args], transferable);\n }, args);\n };\n this.#finalizationRegistry(thread)?.register(proxy, id);\n this.#idsToProxy.set(id, new WeakRef(proxy));\n return proxy;\n }\n #finalizationRegistry(thread) {\n let finalization = this.#finalization.get(thread);\n if (typeof FinalizationRegistry === 'undefined') {\n return undefined;\n }\n if (!finalization) {\n finalization = new FinalizationRegistry(id => {\n thread.messages.send([MESSAGE_FUNCTION_RELEASE, id]);\n });\n this.#finalization.set(thread, finalization);\n }\n return finalization;\n }\n}\n\nexport { ThreadFunctionsAutomatic };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copied from https://github.com/ai/nanoid/blob/main/nanoid.js
|
|
2
|
+
let a = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
|
|
3
|
+
function nanoid(e = 21) {
|
|
4
|
+
let t = '',
|
|
5
|
+
r = crypto.getRandomValues(new Uint8Array(e));
|
|
6
|
+
for (let n = 0; n < e; n++) t += a[63 & r[n]];
|
|
7
|
+
return t;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { nanoid };
|
|
11
|
+
//# sourceMappingURL=nanoid.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nanoid.mjs","sources":["../../../../../../../../../../../../node_modules/.pnpm/@quilted+threads@3.3.1_patch_hash=df15ead5d86def314ee16ab6a48f9e4faa765b52aa161b10d2848_aa11bff1669c76d0bae25976909ea4eb/node_modules/@quilted/threads/build/esm/nanoid.mjs"],"sourcesContent":["// Copied from https://github.com/ai/nanoid/blob/main/nanoid.js\nlet a = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nfunction nanoid(e = 21) {\n let t = '',\n r = crypto.getRandomValues(new Uint8Array(e));\n for (let n = 0; n < e; n++) t += a[63 & r[n]];\n return t;\n}\n\nexport { nanoid };\n"],"names":[],"mappings":"AAAA;AACA,IAAI,CAAC,GAAG,kEAAkE;AAC1E,SAAS,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;AACxB,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,EAAE,OAAO,CAAC;AACV;;;;","x_google_ignoreList":[0]}
|