@mml-io/networked-dom-web-runner 0.2.0 → 0.3.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/build/FakeWebsocket.d.ts +14 -0
- package/build/IframeObservableDOMFactory.d.ts +2 -0
- package/build/NetworkedDOMWebRunnerClient.d.ts +17 -0
- package/build/RunnerIframe.d.ts +9 -0
- package/build/index.d.ts +5 -1
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +4 -5
- package/src/FakeWebsocket.ts +0 -56
- package/src/IframeObservableDOMFactory.ts +0 -40
- package/src/NetworkedDOMWebRunnerClient.ts +0 -85
- package/src/RunnerIframe.ts +0 -83
- package/src/index.ts +0 -5
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare class WebsocketEnd extends EventTarget {
|
|
2
|
+
private readonly sendCallback;
|
|
3
|
+
readonly protocol: string;
|
|
4
|
+
constructor(protocol: string, sendCallback: (data: string | ArrayBufferLike | Blob | ArrayBufferView) => void);
|
|
5
|
+
close(): void;
|
|
6
|
+
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
7
|
+
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
8
|
+
}
|
|
9
|
+
export declare class FakeWebsocket {
|
|
10
|
+
clientSideWebsocket: WebsocketEnd;
|
|
11
|
+
serverSideWebsocket: WebsocketEnd;
|
|
12
|
+
constructor(protocol: string);
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EditableNetworkedDOM, NetworkedDOM } from "@mml-io/networked-dom-document";
|
|
2
|
+
import { NetworkedDOMWebsocket } from "@mml-io/networked-dom-web";
|
|
3
|
+
import { FakeWebsocket } from "./FakeWebsocket";
|
|
4
|
+
export declare class NetworkedDOMWebRunnerClient {
|
|
5
|
+
readonly element: HTMLDivElement;
|
|
6
|
+
protected remoteDocumentHolder: HTMLElement;
|
|
7
|
+
protected connectedState: {
|
|
8
|
+
document: NetworkedDOM | EditableNetworkedDOM;
|
|
9
|
+
domWebsocket: NetworkedDOMWebsocket;
|
|
10
|
+
fakeWebsocket: FakeWebsocket;
|
|
11
|
+
} | null;
|
|
12
|
+
private enableEventHandling;
|
|
13
|
+
constructor(enableEventHandling?: boolean);
|
|
14
|
+
disconnect(): void;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
connect(document: NetworkedDOM | EditableNetworkedDOM, timeCallback?: (time: number) => void): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FromObservableDOMInstanceMessage, ObservableDOMParameters, ToObservableDOMInstanceMessage } from "@mml-io/observable-dom-common";
|
|
2
|
+
export declare class RunnerIframe {
|
|
3
|
+
private iframe;
|
|
4
|
+
private onMessageCallback;
|
|
5
|
+
private postMessageListener;
|
|
6
|
+
constructor(observableDOMParameters: ObservableDOMParameters, onMessageCallback: (message: FromObservableDOMInstanceMessage) => void);
|
|
7
|
+
sendMessageToRunner(message: ToObservableDOMInstanceMessage): void;
|
|
8
|
+
dispose(): void;
|
|
9
|
+
}
|
package/build/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
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.dom.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.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/jest-expect-message/types/index.d.ts","../src/fakewebsocket.ts","../../networked-dom-protocol/build/networked-dom-v0.1/from-client.d.ts","../../networked-dom-protocol/build/networked-dom-v0.1/from-server.d.ts","../../networked-dom-protocol/build/networked-dom-v0.1/index.d.ts","../../networked-dom-protocol/build/index.d.ts","../../observable-dom-common/build/observabledominterface.d.ts","../../observable-dom-common/build/messages.d.ts","../../observable-dom-common/build/index.d.ts","../../../node_modules/rfc6902/src/pointer.ts","../../../node_modules/rfc6902/src/util.ts","../../../node_modules/@types/deep-equal/index.d.ts","../../../node_modules/rfc6902/src/diff.ts","../../../node_modules/rfc6902/src/patch.ts","../../../node_modules/rfc6902/src/index.ts","../../../node_modules/rfc6902/build/index.d.ts","../../networked-dom-document/build/common.d.ts","../../networked-dom-document/build/networkeddom.d.ts","../../networked-dom-document/build/editablenetworkeddom.d.ts","../../networked-dom-document/build/index.d.ts","../src/runneriframe.ts","../src/iframeobservabledomfactory.ts","../../networked-dom-web/build/networkeddomwebsocket.d.ts","../../networked-dom-web/build/domsanitizer.d.ts","../../networked-dom-web/build/index.d.ts","../src/networkeddomwebrunnerclient.ts","../src/index.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/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"406a5a771d97867cba07e7fbd3cd1fb2dd1004558b973733205737e9dd7ed929","affectsGlobalScope":true},"529147d0da546146e0a390aca810bb2dec3fcb826f45d247230927348d798302","328c09d87a15cde5936230f085c6888e6dc5f31a7c600a8a222419e28ea02812","0e902771dd21ea683172d5b5dd5fb192a166a9e3071b674695ac9013edb4b4fc","660b97032e7c3a5a094b60e3de0bf602626931fe0167dbad07e9ada9f683161e","28e083d1a14be292588f05b70cf7852deb63a3e0da35a0156bcbe361b5072562","4e9e7984ad6e180c5c3363d3478d71558d7d3949c45685951aef7e06e4d6b6a4","ffe0e53edfbab16e0c9bacf0d61b8091d2cf46fbca310d2602036793fda5a058","a63268b15ba72e389b1eaf9752ca501a2965923096ea28c2c98a4db1ec0e8a22","470bca533c6d21326973461b547470d7499ea91ca8a34c2e940ed87a81197126","de355ee45c24981723e98415c331656000b5045895e34bee0423f60eb71a7ef7","2e345cb6511f4c4c60c274df6626c94f3182939034f06cdf414bfbccc584f822","36d82d79e5c2cff1f55302638e4986abbc110fad92910c5e765d73fdc1af2ce9","267fa352bafe9b69cbc35cf110e595c7aec48b80b7bafeb53eb4a07859c509e8","259b99a5b98db5d0bdb1c9743d00283ca45b4d5c06e6ae1ce3b98634237009f6","88c62c04db59e39dd5b82ddd9cb8d0b287255e8d9604b36a4139cabd0536fb9b","83b14a4774639696e82af8bcbcb2f4a020a20fb5b453a6681b0942a0deb556f5","745b07e8e70d2b4e59434e727de42958d0962fe94709e478b255d09447bb0051","201bd367dc6140f9a455a6fd17309bbc58e873759a6f160e464949eb97f4360c","894eeb8ce9aaa37362d97f8a0f7dbc0feb4585ccdcc99d882a80c5e8a0c8062c","08015e054e082273f8ce2bf00b50c0118052f7da2ac7cfb57ae2cc4db5dafea8","dcbb44add39dd6a282c6d3604764ddea3fd58f08a4683b3c2d9fb104f95ac33b","eebcef606266c7396c4415e75d0915bbed7c92b48b195f22f1f52d14e88677c7","4ffdf797197782db276604d6bc5471158c4d7bd905ea2997ca3020ace5f47b71","eed070a577657243e4f7d5c8a0d4cfacbd6e6518ad809ffd21d10721c84ed0af","64e9bb54b517f96457957f6375e302cd24f108ce61c6a397669f6e5a39d4ed12","1c8241e12aa7d36f08fad2bcd394a5ef39b0f3b82e4efa2fa1449c00cdac6ba7","587f13f1e8157bd8cec0adda0de4ef558bb8573daa9d518d1e2af38e87ecc91f","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7a435e0c814f58f23e9a0979045ec0ef5909aac95a70986e8bcce30c27dff228",{"version":"a7534271773a27ff7d136d550e86b41894d8090fa857ba4c02b5bb18d2eb1c8e","affectsGlobalScope":true},"db71be322f07f769200108aa19b79a75dd19a187c9dca2a30c4537b233aa2863","57135ce61976a8b1dadd01bb412406d1805b90db6e8ecb726d0d78e0b5f76050",{"version":"49479e21a040c0177d1b1bc05a124c0383df7a08a0726ad4d9457619642e875a","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","b8e431e9b9bb2dc832b23d4e3e02774e953d5537998923f215ea446169e9a61e","3690133deae19c8127c5505fcb67b04bdc9eb053796008538a9b9abbb70d85aa","5b1c0a23f464f894e7c2b2b6c56df7b9afa60ed48c5345f8618d389a636b2108","be2b092f2765222757c6441b86c53a5ea8dfed47bbc43eab4c5fe37942c866b3","8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","1ca735bb3d407b2af4fbee7665f3a0a83be52168c728cc209755060ba7ed67bd",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"b85c02e14ecb2a873dad5a1de72319b265160ba48f1b83661aeb3bba1366c1bc","affectsGlobalScope":true},"7a2ba0c9af860ac3e77b35ed01fd96d15986f17aa22fe40f188ae556fb1070df","fc3764040518a1008dd04bdc80964591b566b896283e00df85c95851c1f46237","55709608060f77965c270ac10ac646286589f1bd1cb174fff1778a2dd9a7ef31","790623a47c5eda62910098884ecb154dc0e5f3a23fc36c1bfb3b5b9ed44e2c2d","42b40e40f2a358cda332456214fad311e1806a6abf3cebaaac72496e07556642","354612fe1d49ecc9551ea3a27d94eef2887b64ef4a71f72ca444efe0f2f0ba80",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"f5490f53d40291cc8607f5463434d1ac6c5564bc4fbb03abceb03a8f6b014457","5e2b91328a540a0933ab5c2203f4358918e6f0fe7505d22840a891a6117735f1","3abc3512fa04aa0230f59ea1019311fd8667bd935d28306311dccc8b17e79d5d",{"version":"14a50dafe3f45713f7f27cb6320dff07c6ac31678f07959c2134260061bf91ff","affectsGlobalScope":true},{"version":"19da7150ca062323b1db6311a6ef058c9b0a39cc64d836b5e9b75d301869653b","affectsGlobalScope":true},"1349077576abb41f0e9c78ec30762ff75b710208aff77f5fdcc6a8c8ce6289dd","e2ce82603102b5c0563f59fb40314cc1ff95a4d521a66ad14146e130ea80d89c","a3e0395220255a350aa9c6d56f882bfcb5b85c19fddf5419ec822cf22246a26d","c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","898840e876dfd21843db9f2aa6ae38ba2eab550eb780ff62b894b9fbfebfae6b","0cab4d7d4edc40cd3af9eea7c3ed6d1016910c0954c49c4297e479bf3822a625","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","164deb2409ac5f4da3cd139dbcee7f7d66753d90363a4d7e2db8d8874f272270","1fb6c5ec52332a8b531a8d7a5300ac9301f98c4fe62f68e744e0841ccba65e7e",{"version":"ab294c4b7279318ee2a8fdf681305457ecc05970c94108d304933f18823eeac1","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","bbda6ea452a2386093a1eda18a6e26a989e98869f1b9f37e46f510a986d2e740","812b25f798033c202baedf386a1ccc41f9191b122f089bffd10fdccce99fba11","993325544790073f77e945bee046d53988c0bc3ac5695c9cf8098166feb82661",{"version":"75dd741ca6a6c8d2437a6ca8349b64b816421dbf9fe82dd026afaba965576962","affectsGlobalScope":true},{"version":"8799401a7ab57764f0d464513a7fa7c72e1d70a226b172ec60fff534ea94d108","affectsGlobalScope":true},"2ce2210032ccaff7710e2abf6a722e62c54960458e73e356b6a365c93ab6ca66","92db194ef7d208d5e4b6242a3434573fd142a621ff996d84cc9dbba3553277d0","16a3080e885ed52d4017c902227a8d0d8daf723d062bec9e45627c6fdcd6699b",{"version":"0bd9543cd8fc0959c76fb8f4f5a26626c2ed62ef4be98fd857bce268066db0a2","affectsGlobalScope":true},"1ca6858a0cbcd74d7db72d7b14c5360a928d1d16748a55ecfa6bfaff8b83071b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"247aa3419c98713231952b33801d4f46563fe542e03604acd8c63ac45a32409c","6c1e688f95fcaf53b1e41c0fdadf2c1cfc96fa924eaf7f9fdb60f96deb0a4986","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","6d969939c4a63f70f2aa49e88da6f64b655c8e6799612807bef41ccff6ea0da9",{"version":"240c702fb4b3bd54d83ee167d80fa7f0cd7300fef7eea0b32cef33129740893c","affectsGlobalScope":true}],"root":[45,46,65,66,70,71],"options":{"allowSyntheticDefaultImports":true,"downlevelIteration":true,"jsx":2,"module":99,"noImplicitAny":true,"outDir":"./","sourceMap":true,"strictNullChecks":true,"target":2},"fileIdsList":[[118],[118,128],[118,130,133],[72,118],[75,118],[76,81,109,118],[77,88,89,96,106,117,118],[77,78,88,96,118],[79,118],[80,81,89,97,118],[81,106,114,118],[82,84,88,96,118],[83,118],[84,85,118],[88,118],[86,88,118],[88,89,90,106,117,118],[88,89,90,103,106,109,118],[118,122],[84,88,91,96,106,117,118],[88,89,91,92,96,106,114,117,118],[91,93,106,114,117,118],[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,124],[88,94,118],[95,117,118],[84,88,96,106,118],[97,118],[98,118],[75,99,118],[100,116,118,122],[101,118],[102,118],[88,103,104,118],[103,105,118,120],[76,88,106,107,108,109,118],[76,106,108,118],[106,107,118],[109,118],[110,118],[106,118],[88,112,113,118],[112,113,118],[81,96,106,114,118],[115,118],[96,116,118],[76,91,102,117,118],[81,118],[106,118,119],[118,120],[118,121],[76,81,88,90,99,106,117,118,120,122],[106,118,123],[75,118,125,126,132],[118,130],[118,127,131],[118,129],[59,118],[54,55,56,118],[54,57,58,118],[54,55,57,118],[53,60,118],[53,62,118],[62,63,118],[50,53,61,118],[49,118],[47,48,118],[53,64,65,118],[46,64,65,66,70,118],[46,64,69,118],[53,118],[67,68,118],[50,51,52,118],[50,51,118],[50,118]],"referencedMap":[[126,1],[129,2],[128,1],[56,1],[134,3],[72,4],[73,4],[75,5],[76,6],[77,7],[78,8],[79,9],[80,10],[81,11],[82,12],[83,13],[84,14],[85,14],[87,15],[86,16],[88,15],[89,17],[90,18],[74,19],[124,1],[91,20],[92,21],[93,22],[125,23],[94,24],[95,25],[96,26],[97,27],[98,28],[99,29],[100,30],[101,31],[102,32],[103,33],[104,33],[105,34],[106,35],[108,36],[107,37],[109,38],[110,39],[111,40],[112,41],[113,42],[114,43],[115,44],[116,45],[117,46],[118,47],[119,48],[120,49],[121,50],[122,51],[123,52],[127,1],[133,53],[131,54],[45,1],[132,55],[130,56],[60,57],[57,58],[59,59],[58,60],[54,1],[55,1],[43,1],[44,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[33,1],[30,1],[31,1],[32,1],[34,1],[7,1],[35,1],[40,1],[41,1],[36,1],[37,1],[38,1],[39,1],[1,1],[42,1],[61,61],[63,62],[64,63],[62,64],[50,65],[47,1],[48,1],[49,66],[46,1],[66,67],[71,68],[70,69],[65,70],[68,1],[69,71],[67,1],[53,72],[52,73],[51,74]],"exportedModulesMap":[[126,1],[129,2],[128,1],[56,1],[134,3],[72,4],[73,4],[75,5],[76,6],[77,7],[78,8],[79,9],[80,10],[81,11],[82,12],[83,13],[84,14],[85,14],[87,15],[86,16],[88,15],[89,17],[90,18],[74,19],[124,1],[91,20],[92,21],[93,22],[125,23],[94,24],[95,25],[96,26],[97,27],[98,28],[99,29],[100,30],[101,31],[102,32],[103,33],[104,33],[105,34],[106,35],[108,36],[107,37],[109,38],[110,39],[111,40],[112,41],[113,42],[114,43],[115,44],[116,45],[117,46],[118,47],[119,48],[120,49],[121,50],[122,51],[123,52],[127,1],[133,53],[131,54],[45,1],[132,55],[130,56],[60,57],[57,58],[59,59],[58,60],[54,1],[55,1],[43,1],[44,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[33,1],[30,1],[31,1],[32,1],[34,1],[7,1],[35,1],[40,1],[41,1],[36,1],[37,1],[38,1],[39,1],[1,1],[42,1],[61,61],[63,62],[64,63],[62,64],[50,65],[47,1],[48,1],[49,66],[46,1],[66,67],[71,68],[70,69],[65,70],[68,1],[69,71],[67,1],[53,72],[52,73],[51,74]],"semanticDiagnosticsPerFile":[126,129,128,56,134,72,73,75,76,77,78,79,80,81,82,83,84,85,87,86,88,89,90,74,124,91,92,93,125,94,95,96,97,98,99,100,101,102,103,104,105,106,108,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,127,133,131,45,132,130,60,57,59,58,54,55,43,44,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,61,63,64,62,50,47,48,49,46,66,71,70,65,68,69,67,53,52,51],"affectedFilesPendingEmit":[46,66,71,70,65]},"version":"5.0.4"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mml-io/networked-dom-web-runner",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"main": "./build/index.js",
|
|
5
5
|
"types": "./build/index.d.ts",
|
|
6
6
|
"files": [
|
|
7
|
-
"/build"
|
|
8
|
-
"/src"
|
|
7
|
+
"/build"
|
|
9
8
|
],
|
|
10
9
|
"scripts": {
|
|
11
10
|
"type-check": "tsc --noEmit",
|
|
@@ -18,8 +17,8 @@
|
|
|
18
17
|
"test-iterate": "jest --watch"
|
|
19
18
|
},
|
|
20
19
|
"dependencies": {
|
|
21
|
-
"@mml-io/networked-dom-web": "^0.
|
|
22
|
-
"@mml-io/observable-dom-common": "^0.
|
|
20
|
+
"@mml-io/networked-dom-web": "^0.3.0",
|
|
21
|
+
"@mml-io/observable-dom-common": "^0.3.0"
|
|
23
22
|
},
|
|
24
23
|
"devDependencies": {
|
|
25
24
|
"@mml-io/networked-dom-web-runner-iframe": "file:../networked-dom-web-runner-iframe",
|
package/src/FakeWebsocket.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
class WebsocketEnd extends EventTarget {
|
|
2
|
-
private readonly sendCallback: (data: string | ArrayBufferLike | Blob | ArrayBufferView) => void;
|
|
3
|
-
public readonly protocol: string;
|
|
4
|
-
|
|
5
|
-
constructor(
|
|
6
|
-
protocol: string,
|
|
7
|
-
sendCallback: (data: string | ArrayBufferLike | Blob | ArrayBufferView) => void,
|
|
8
|
-
) {
|
|
9
|
-
super();
|
|
10
|
-
this.protocol = protocol;
|
|
11
|
-
this.sendCallback = sendCallback;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public close() {
|
|
15
|
-
this.dispatchEvent(new CloseEvent("close"));
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
public addEventListener<K extends keyof WebSocketEventMap>(
|
|
19
|
-
type: K,
|
|
20
|
-
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
|
21
|
-
options?: boolean | AddEventListenerOptions,
|
|
22
|
-
) {
|
|
23
|
-
if (type === "open") {
|
|
24
|
-
listener.bind(this)(new Event("open"));
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
super.addEventListener(type, listener, options);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
public send(data: string | ArrayBufferLike | Blob | ArrayBufferView) {
|
|
31
|
-
this.sendCallback(data);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export class FakeWebsocket {
|
|
36
|
-
public clientSideWebsocket: WebsocketEnd;
|
|
37
|
-
public serverSideWebsocket: WebsocketEnd;
|
|
38
|
-
|
|
39
|
-
constructor(protocol: string) {
|
|
40
|
-
this.clientSideWebsocket = new WebsocketEnd(protocol, (data) => {
|
|
41
|
-
this.serverSideWebsocket.dispatchEvent(
|
|
42
|
-
new MessageEvent("message", {
|
|
43
|
-
data,
|
|
44
|
-
}),
|
|
45
|
-
);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
this.serverSideWebsocket = new WebsocketEnd(protocol, (data) => {
|
|
49
|
-
this.clientSideWebsocket.dispatchEvent(
|
|
50
|
-
new MessageEvent("message", {
|
|
51
|
-
data,
|
|
52
|
-
}),
|
|
53
|
-
);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { ObservableDOMFactory } from "@mml-io/networked-dom-document";
|
|
2
|
-
import {
|
|
3
|
-
DOM_MESSAGE_TYPE,
|
|
4
|
-
FromObservableDOMInstanceMessage,
|
|
5
|
-
ObservableDOMInterface,
|
|
6
|
-
observableDOMInterfaceToMessageSender,
|
|
7
|
-
ObservableDOMMessage,
|
|
8
|
-
ObservableDOMParameters,
|
|
9
|
-
ToObservableDOMInstanceMessage,
|
|
10
|
-
} from "@mml-io/observable-dom-common";
|
|
11
|
-
|
|
12
|
-
import { RunnerIframe } from "./RunnerIframe";
|
|
13
|
-
|
|
14
|
-
export const IframeObservableDOMFactory: ObservableDOMFactory = (
|
|
15
|
-
observableDOMParameters: ObservableDOMParameters,
|
|
16
|
-
callback: (message: ObservableDOMMessage, observableDOM: ObservableDOMInterface) => void,
|
|
17
|
-
) => {
|
|
18
|
-
const runnerIframe = new RunnerIframe(
|
|
19
|
-
observableDOMParameters,
|
|
20
|
-
(message: FromObservableDOMInstanceMessage) => {
|
|
21
|
-
switch (message.type) {
|
|
22
|
-
case DOM_MESSAGE_TYPE:
|
|
23
|
-
callback(message.message, remoteObservableDOM);
|
|
24
|
-
break;
|
|
25
|
-
default:
|
|
26
|
-
console.error("Unknown message type", message.type);
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
const remoteObservableDOM: ObservableDOMInterface = observableDOMInterfaceToMessageSender(
|
|
32
|
-
(message: ToObservableDOMInstanceMessage) => {
|
|
33
|
-
runnerIframe.sendMessageToRunner(message);
|
|
34
|
-
},
|
|
35
|
-
() => {
|
|
36
|
-
runnerIframe.dispose();
|
|
37
|
-
},
|
|
38
|
-
);
|
|
39
|
-
return remoteObservableDOM;
|
|
40
|
-
};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { EditableNetworkedDOM, NetworkedDOM } from "@mml-io/networked-dom-document";
|
|
2
|
-
import { NetworkedDOMWebsocket } from "@mml-io/networked-dom-web";
|
|
3
|
-
|
|
4
|
-
import { FakeWebsocket } from "./FakeWebsocket";
|
|
5
|
-
|
|
6
|
-
export class NetworkedDOMWebRunnerClient {
|
|
7
|
-
public readonly element: HTMLDivElement;
|
|
8
|
-
protected remoteDocumentHolder: HTMLElement;
|
|
9
|
-
|
|
10
|
-
protected connectedState: {
|
|
11
|
-
document: NetworkedDOM | EditableNetworkedDOM;
|
|
12
|
-
domWebsocket: NetworkedDOMWebsocket;
|
|
13
|
-
fakeWebsocket: FakeWebsocket;
|
|
14
|
-
} | null = null;
|
|
15
|
-
private enableEventHandling: boolean;
|
|
16
|
-
|
|
17
|
-
constructor(enableEventHandling = true) {
|
|
18
|
-
this.enableEventHandling = enableEventHandling;
|
|
19
|
-
this.element = document.createElement("div");
|
|
20
|
-
this.element.style.position = "relative";
|
|
21
|
-
this.element.style.width = "100%";
|
|
22
|
-
this.element.style.height = "100%";
|
|
23
|
-
|
|
24
|
-
this.remoteDocumentHolder = document.createElement("div");
|
|
25
|
-
this.element.append(this.remoteDocumentHolder);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public disconnect() {
|
|
29
|
-
if (!this.connectedState) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
this.connectedState.document.removeWebSocket(
|
|
33
|
-
this.connectedState.fakeWebsocket.serverSideWebsocket as unknown as WebSocket,
|
|
34
|
-
);
|
|
35
|
-
this.connectedState = null;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public dispose() {
|
|
39
|
-
this.disconnect();
|
|
40
|
-
this.remoteDocumentHolder.remove();
|
|
41
|
-
this.element.remove();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public connect(
|
|
45
|
-
document: NetworkedDOM | EditableNetworkedDOM,
|
|
46
|
-
timeCallback?: (time: number) => void,
|
|
47
|
-
) {
|
|
48
|
-
if (this.connectedState) {
|
|
49
|
-
this.disconnect();
|
|
50
|
-
}
|
|
51
|
-
const fakeWebsocket = new FakeWebsocket("networked-dom-v0.1");
|
|
52
|
-
let overriddenHandler: ((element: HTMLElement, event: CustomEvent) => void) | null = null;
|
|
53
|
-
const eventHandler = (element: HTMLElement, event: CustomEvent) => {
|
|
54
|
-
if (!overriddenHandler) {
|
|
55
|
-
throw new Error("overriddenHandler not set");
|
|
56
|
-
}
|
|
57
|
-
overriddenHandler(element, event);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
if (this.enableEventHandling) {
|
|
61
|
-
this.remoteDocumentHolder.addEventListener("click", (event: Event) => {
|
|
62
|
-
eventHandler(event.target as HTMLElement, event as CustomEvent);
|
|
63
|
-
event.stopPropagation();
|
|
64
|
-
event.preventDefault();
|
|
65
|
-
return false;
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const domWebsocket = new NetworkedDOMWebsocket(
|
|
70
|
-
"ws://localhost",
|
|
71
|
-
() => fakeWebsocket.clientSideWebsocket as unknown as WebSocket,
|
|
72
|
-
this.remoteDocumentHolder,
|
|
73
|
-
timeCallback,
|
|
74
|
-
);
|
|
75
|
-
overriddenHandler = (element: HTMLElement, event: CustomEvent) => {
|
|
76
|
-
domWebsocket.handleEvent(element, event);
|
|
77
|
-
};
|
|
78
|
-
document.addWebSocket(fakeWebsocket.serverSideWebsocket as unknown as WebSocket);
|
|
79
|
-
this.connectedState = {
|
|
80
|
-
document,
|
|
81
|
-
fakeWebsocket,
|
|
82
|
-
domWebsocket,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
}
|
package/src/RunnerIframe.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
FromObservableDOMInstanceMessage,
|
|
3
|
-
ObservableDOMParameters,
|
|
4
|
-
ToObservableDOMInstanceMessage,
|
|
5
|
-
} from "@mml-io/observable-dom-common";
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
7
|
-
// @ts-ignore
|
|
8
|
-
// eslint-disable-next-line import/no-unresolved
|
|
9
|
-
import runnerText from "runner-iframe-js-text";
|
|
10
|
-
|
|
11
|
-
export class RunnerIframe {
|
|
12
|
-
private iframe: HTMLIFrameElement;
|
|
13
|
-
private onMessageCallback: (message: FromObservableDOMInstanceMessage) => void;
|
|
14
|
-
private postMessageListener: (messageEvent: MessageEvent) => void;
|
|
15
|
-
|
|
16
|
-
constructor(
|
|
17
|
-
observableDOMParameters: ObservableDOMParameters,
|
|
18
|
-
onMessageCallback: (message: FromObservableDOMInstanceMessage) => void,
|
|
19
|
-
) {
|
|
20
|
-
this.iframe = document.createElement("iframe");
|
|
21
|
-
this.iframe.setAttribute("sandbox", "allow-scripts");
|
|
22
|
-
this.iframe.style.position = "fixed";
|
|
23
|
-
this.iframe.style.top = "0";
|
|
24
|
-
this.iframe.style.left = "0";
|
|
25
|
-
this.iframe.style.width = "0";
|
|
26
|
-
this.iframe.style.height = "0";
|
|
27
|
-
this.iframe.style.border = "none";
|
|
28
|
-
|
|
29
|
-
const paramsMinusCode: Partial<ObservableDOMParameters> = {
|
|
30
|
-
...observableDOMParameters,
|
|
31
|
-
};
|
|
32
|
-
delete paramsMinusCode.htmlContents;
|
|
33
|
-
|
|
34
|
-
const args = btoa(JSON.stringify(paramsMinusCode));
|
|
35
|
-
|
|
36
|
-
const isJSDOM = navigator.userAgent.includes("jsdom");
|
|
37
|
-
if (isJSDOM) {
|
|
38
|
-
// srcdoc not supported, so we have to append elements to the iframe's document
|
|
39
|
-
document.body.append(this.iframe);
|
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
41
|
-
const iframeBody = this.iframe.contentWindow!.document.body;
|
|
42
|
-
const argsScriptElement = document.createElement("script");
|
|
43
|
-
argsScriptElement.innerHTML = `window.args="${args}";`;
|
|
44
|
-
iframeBody.append(argsScriptElement);
|
|
45
|
-
const runnerScriptElement = document.createElement("script");
|
|
46
|
-
runnerScriptElement.innerHTML = runnerText;
|
|
47
|
-
iframeBody.append(runnerScriptElement);
|
|
48
|
-
const contentHolder = document.createElement("div");
|
|
49
|
-
iframeBody.append(contentHolder);
|
|
50
|
-
contentHolder.innerHTML = observableDOMParameters.htmlContents;
|
|
51
|
-
} else {
|
|
52
|
-
this.iframe.setAttribute(
|
|
53
|
-
"srcdoc",
|
|
54
|
-
`
|
|
55
|
-
<script>window.args="${args}";</script>
|
|
56
|
-
<script>${runnerText}</script>
|
|
57
|
-
${observableDOMParameters.htmlContents}
|
|
58
|
-
`,
|
|
59
|
-
);
|
|
60
|
-
document.body.append(this.iframe);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
this.onMessageCallback = onMessageCallback;
|
|
64
|
-
|
|
65
|
-
this.postMessageListener = (e: MessageEvent) => {
|
|
66
|
-
if (e.source === this.iframe.contentWindow || (isJSDOM && e.source === null)) {
|
|
67
|
-
const parsed = JSON.parse(e.data) as FromObservableDOMInstanceMessage;
|
|
68
|
-
onMessageCallback(parsed);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
window.addEventListener("message", this.postMessageListener);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
sendMessageToRunner(message: ToObservableDOMInstanceMessage) {
|
|
75
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
76
|
-
this.iframe.contentWindow!.postMessage(JSON.stringify(message), "*");
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
dispose() {
|
|
80
|
-
window.removeEventListener("message", this.postMessageListener);
|
|
81
|
-
this.iframe.remove();
|
|
82
|
-
}
|
|
83
|
-
}
|