python-wasm
Advanced tools
@@ -64,3 +64,3 @@ "use strict"; | ||
| this.id = (0, uuid_1.v4)(); | ||
| log("IOProviderUsingXMLHttpRequest"); | ||
| log("IOProviderUsingXMLHttpRequest", "id = ", this.id); | ||
| this.initServiceWorker(); | ||
@@ -80,2 +80,3 @@ } | ||
| url = new URL("./worker/service-worker.js", import.meta.url).href; | ||
| console.log("url = ", url); | ||
| return [4 /*yield*/, navigator.serviceWorker.register(url)]; | ||
@@ -82,0 +83,0 @@ case 1: |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"io-using-service-worker.js","sourceRoot":"","sources":["../../src/wasm/io-using-service-worker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGF,yCAAqC;AACrC,gDAA0B;AAC1B,6BAAoC;AAEpC,IAAM,GAAG,GAAG,IAAA,eAAK,EAAC,kBAAkB,CAAC,CAAC;AAEtC;IAGE;QAFQ,OAAE,GAAW,IAAA,SAAM,GAAE,CAAC;QAG5B,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEK,wDAAiB,GAAvB;;;;;;;wBACE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;4BAC5B,OAAO,CAAC,IAAI,CACV,uEAAuE,CACxE,CAAC;4BACF,sBAAO;yBACR;wBAEK,GAAG,GAAG,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5D,qBAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAA;;wBAAjD,GAAG,GAAG,SAA2C;wBACvD,IAAI,CAAA,MAAA,GAAG,CAAC,MAAM,0CAAE,KAAK,KAAI,WAAW,EAAE;4BACpC,oFAAoF;4BACpF,oDAAoD;4BACpD,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;4BAC3D,gDAAgD;4BAChD,IAAI,YAAY,CAAC,mCAAmC,CAAC,EAAE;gCACrD,2CAA2C;gCAC3C,UAAU,CAAC;oCACT,QAAQ,CAAC,MAAM,EAAE,CAAC;gCACpB,CAAC,EAAE,IAAI,CAAC,CAAC;6BACV;iCAAM;gCACL,YAAY,CAAC,mCAAmC,CAAC,GAAG,IAAI,CAAC;gCACzD,QAAQ,CAAC,MAAM,EAAE,CAAC;6BACnB;yBACF;6BAAM;4BACL,sBAAsB;4BACtB,OAAO,YAAY,CAAC,mCAAmC,CAAC,CAAC;yBAC1D;;;;;KACF;IAED,sDAAe,GAAf;QACE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACzB,CAAC;IAEa,2CAAI,GAAlB,UACE,MAAsC,EACtC,IAAY;;;;;;wBAEN,GAAG,GAAG,0BAAmB,MAAM,CAAE,CAAC;;;;wBAEtC,qBAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;wBAAhE,SAAgE,CAAC;;;;wBAEjE,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,EAAE,KAAG,CAAC,CAAC;;;;;;KAExE;IAED,6CAAM,GAAN,UAAO,GAAoB;QAApB,oBAAA,EAAA,MAAc,kBAAM;QACzB,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,KAAA,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,mDAAY,GAAZ,UAAa,IAAY;QACvB,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IACH,mCAAC;AAAD,CAAC,AA/DD,IA+DC"} | ||
| {"version":3,"file":"io-using-service-worker.js","sourceRoot":"","sources":["../../src/wasm/io-using-service-worker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGF,yCAAqC;AACrC,gDAA0B;AAC1B,6BAAoC;AAEpC,IAAM,GAAG,GAAG,IAAA,eAAK,EAAC,kBAAkB,CAAC,CAAC;AAEtC;IAGE;QAFQ,OAAE,GAAW,IAAA,SAAM,GAAE,CAAC;QAG5B,GAAG,CAAC,+BAA+B,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEK,wDAAiB,GAAvB;;;;;;;wBACE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;4BAC5B,OAAO,CAAC,IAAI,CACV,uEAAuE,CACxE,CAAC;4BACF,sBAAO;yBACR;wBAEK,GAAG,GAAG,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACxE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACf,qBAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAA;;wBAAjD,GAAG,GAAG,SAA2C;wBACvD,IAAI,CAAA,MAAA,GAAG,CAAC,MAAM,0CAAE,KAAK,KAAI,WAAW,EAAE;4BACpC,oFAAoF;4BACpF,oDAAoD;4BACpD,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;4BAC3D,gDAAgD;4BAChD,IAAI,YAAY,CAAC,mCAAmC,CAAC,EAAE;gCACrD,2CAA2C;gCAC3C,UAAU,CAAC;oCACT,QAAQ,CAAC,MAAM,EAAE,CAAC;gCACpB,CAAC,EAAE,IAAI,CAAC,CAAC;6BACV;iCAAM;gCACL,YAAY,CAAC,mCAAmC,CAAC,GAAG,IAAI,CAAC;gCACzD,QAAQ,CAAC,MAAM,EAAE,CAAC;6BACnB;yBACF;6BAAM;4BACL,sBAAsB;4BACtB,OAAO,YAAY,CAAC,mCAAmC,CAAC,CAAC;yBAC1D;;;;;KACF;IAED,sDAAe,GAAf;QACE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACzB,CAAC;IAEa,2CAAI,GAAlB,UACE,MAAsC,EACtC,IAAY;;;;;;wBAEN,GAAG,GAAG,0BAAmB,MAAM,CAAE,CAAC;;;;wBAEtC,qBAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;wBAAhE,SAAgE,CAAC;;;;wBAEjE,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,EAAE,KAAG,CAAC,CAAC;;;;;;KAExE;IAED,6CAAM,GAAN,UAAO,GAAoB;QAApB,oBAAA,EAAA,MAAc,kBAAM;QACzB,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,KAAA,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,mDAAY,GAAZ,UAAa,IAAY;QACvB,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IACH,mCAAC;AAAD,CAAC,AAhED,IAgEC"} |
@@ -42,2 +42,5 @@ "use strict"; | ||
| try { | ||
| // We don't sleep the entire, because (1) we want to check for signals periodically, | ||
| // and (2) long synchronous requests CRASH the service worker! On Safari, it will kill | ||
| // the worker and ban it. So do NOT do that. | ||
| this.request("sleep", { ms: Math.min(milliseconds, 500) }); | ||
@@ -59,3 +62,3 @@ } | ||
| // we send "^C" to stdin when getting that signal. | ||
| var request = this.request("read-stdin", { id: this.id }); | ||
| var request = this.request("read-stdin", { id: this.id, ms: 3000 }); | ||
| if (request.status == 200) { | ||
@@ -65,3 +68,6 @@ return Buffer.from((_a = request.responseText) !== null && _a !== void 0 ? _a : ""); | ||
| else { | ||
| // python will try again soon. | ||
| // TIMEOUT -- python will try again soon. | ||
| // NOTE: we try for a few seconds to get output, then fail and let Python call | ||
| // this again. It **does not work** to just allow for a very long synchronous | ||
| // request and long response in the service worker, e.g., | ||
| return Buffer.from(""); | ||
@@ -68,0 +74,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"io-using-service-worker.js","sourceRoot":"","sources":["../../../src/wasm/worker/io-using-service-worker.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"io-using-service-worker.js","sourceRoot":"","sources":["../../../src/wasm/worker/io-using-service-worker.ts"],"names":[],"mappings":"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"} |
| declare function delay(milliseconds: any): Promise<any>; | ||
| declare function handleSleep(e: any): Promise<Response>; | ||
| declare function touch(id: any): void; | ||
| declare function handleWriteSignal(e: any): Promise<Response>; | ||
| declare function handleReadSignal(e: any): Promise<Response>; | ||
| declare function handleWriteStdin(e: any): Promise<Response>; | ||
| declare function waitForStdin(id: any, milliseconds?: number): Promise<void>; | ||
| declare function handleReadStdin(e: any): Promise<Response>; | ||
| declare const VERSION: 6; | ||
| declare function log(...args: any[]): void; | ||
| declare const PREFIX: "/python-wasm-sw/"; | ||
| declare const VERSION: 3; | ||
| declare namespace cache { | ||
| const sig: {}; | ||
| const stdin: {}; | ||
| const lastUsed: {}; | ||
| const callOnStdin: {}; | ||
| } |
@@ -15,2 +15,10 @@ /* | ||
| - IMPORTANT! On Safari it is **absolutely critical** that this only take a few seconds max to | ||
| respond to any requests. If it takes longer, then Safari kills the service worker and blacklists | ||
| it so it won't work at all. Perhaps Firefox and Chrome might do something similar, but | ||
| with different parameters, though I didn't see that. Figuring out that this is the case | ||
| was pretty difficult for me, since I couldn't find it in any docs anywhere, and somehow I | ||
| just figured it out. That's why we have a timeout for waiting for stdin, and similar | ||
| comments in io-using-service-worker.ts. | ||
| REFERENCES: | ||
@@ -58,13 +66,4 @@ | ||
| }; | ||
| var __values = (this && this.__values) || function(o) { | ||
| var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
| if (m) return m.call(o); | ||
| if (o && typeof o.length === "number") return { | ||
| next: function () { | ||
| if (o && i >= o.length) o = void 0; | ||
| return { value: o && o[i++], done: !o }; | ||
| } | ||
| }; | ||
| throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
| }; | ||
| // Version is only used for some logging right now. | ||
| var VERSION = 6; | ||
| var log = function () { | ||
@@ -76,8 +75,6 @@ var args = []; | ||
| // for debugging, uncomment this. | ||
| // console.log("service-worker.js - ", ...args); | ||
| //console.log("service-worker.js - v", VERSION, ...args); | ||
| }; | ||
| // This MUST match what's in io-using-service-worker.ts and ../io-using-service-worker.ts | ||
| var PREFIX = "/python-wasm-sw/"; | ||
| // Version is only used for some logging right now. | ||
| var VERSION = 3; | ||
| self.addEventListener("install", function (e) { | ||
@@ -114,24 +111,4 @@ log("install - python-wasm service worker, version: ", VERSION, e); | ||
| stdin: {}, | ||
| lastUsed: {}, | ||
| callOnStdin: {}, | ||
| }; | ||
| // Ensure the cache only holds data about active sessions to avoid | ||
| // wasting space. Data only needs to live for a few seconds. This | ||
| // might be totally not needed, since cache is purely in RAM (not | ||
| // persisted like Cache is), and probably is deleted as soon as there | ||
| // are no open pages. | ||
| function touch(id) { | ||
| var now = new Date().valueOf(); | ||
| cache.lastUsed[id] = now; | ||
| for (var i in cache.lastUsed) { | ||
| if (now - cache.lastUsed[i] >= 1000 * 60) { | ||
| delete cache.lastUsed[i]; | ||
| delete cache.sig[i]; | ||
| delete cache.stdin[i]; | ||
| // Do *not* delete cache.callOnStdin[i], since that might need to be | ||
| // waiting for hours (e.g. a terminal sitting there), and removing something | ||
| // from it would make the eventual IO never get detected. | ||
| } | ||
| } | ||
| } | ||
| function handleWriteSignal(e) { | ||
@@ -145,3 +122,3 @@ return __awaiter(this, void 0, void 0, function () { | ||
| _a = _b.sent(), sig = _a.sig, id = _a.id; | ||
| log("signal", id, sig); | ||
| log("signal", { id: id, sig: sig }); | ||
| cache.sig[id] = sig; | ||
@@ -173,11 +150,9 @@ return [2 /*return*/, new Response("".concat(sig), { status: 200 })]; | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var _a, data, id, v, v_1, v_1_1, f; | ||
| var e_1, _b; | ||
| return __generator(this, function (_c) { | ||
| switch (_c.label) { | ||
| var _a, data, id, f; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: return [4 /*yield*/, e.request.json()]; | ||
| case 1: | ||
| _a = _c.sent(), data = _a.data, id = _a.id; | ||
| touch(id); | ||
| log("write to stdin", id, data); | ||
| _a = _b.sent(), data = _a.data, id = _a.id; | ||
| log("write to stdin", { id: id, data: data }); | ||
| if (cache.stdin[id] == null) { | ||
@@ -189,18 +164,6 @@ cache.stdin[id] = data; | ||
| } | ||
| v = cache.callOnStdin[id]; | ||
| if (v != null) { | ||
| try { | ||
| for (v_1 = __values(v), v_1_1 = v_1.next(); !v_1_1.done; v_1_1 = v_1.next()) { | ||
| f = v_1_1.value; | ||
| f(); | ||
| } | ||
| } | ||
| catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
| finally { | ||
| try { | ||
| if (v_1_1 && !v_1_1.done && (_b = v_1.return)) _b.call(v_1); | ||
| } | ||
| finally { if (e_1) throw e_1.error; } | ||
| } | ||
| cache.callOnStdin[id] = []; | ||
| f = cache.callOnStdin[id]; | ||
| if (f != null) { | ||
| f(); | ||
| cache.callOnStdin[id] = null; | ||
| } | ||
@@ -212,26 +175,71 @@ return [2 /*return*/, new Response("".concat(cache.stdin[id].length), { status: 200 })]; | ||
| } | ||
| function handleReadStdin(e) { | ||
| // Wait up to milliseconds for new stdin. Throws an error | ||
| // if not appears. | ||
| // NOTE: this will NOT get called more than once at the same time | ||
| // for the same id because the client is a single threaded synchronous | ||
| // WASM process. That's why cache.callOnStdin[id] is a single function | ||
| // instead of a list of functions. | ||
| function waitForStdin(id, milliseconds) { | ||
| if (milliseconds === void 0) { milliseconds = 3000; } | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var id, data; | ||
| return __generator(this, function (_a) { | ||
| switch (_a.label) { | ||
| case 0: | ||
| if (cache.stdin[id]) { | ||
| // DONE: there is already input waiting. | ||
| return [2 /*return*/]; | ||
| } | ||
| // We make a promise that resolves when input arrives | ||
| // and rejects if the amount of time elapses. This code | ||
| // feels a bit awkward, but works. | ||
| return [4 /*yield*/, new Promise(function (resolve, reject) { | ||
| var resolved = false; | ||
| var cancelled = false; | ||
| var timer = 0; | ||
| var f = function () { | ||
| if (cancelled) | ||
| return; | ||
| clearTimeout(timer); | ||
| resolved = true; | ||
| resolve(); | ||
| }; | ||
| cache.callOnStdin[id] = f; | ||
| timer = setTimeout(function () { | ||
| if (!resolved) { | ||
| cache.callOnStdin[id] = null; | ||
| cancelled = true; | ||
| reject("timeout"); | ||
| } | ||
| }, milliseconds); | ||
| })]; | ||
| case 1: | ||
| // We make a promise that resolves when input arrives | ||
| // and rejects if the amount of time elapses. This code | ||
| // feels a bit awkward, but works. | ||
| _a.sent(); | ||
| return [2 /*return*/]; | ||
| } | ||
| }); | ||
| }); | ||
| } | ||
| function handleReadStdin(e) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var _a, id, ms, _err_1, data; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: return [4 /*yield*/, e.request.json()]; | ||
| case 1: | ||
| id = (_a.sent()).id; | ||
| log("read from stdin", id); | ||
| if (!!cache.stdin[id]) return [3 /*break*/, 3]; | ||
| // wait until there is something in stdin | ||
| return [4 /*yield*/, new Promise(function (resolve) { | ||
| if (cache.callOnStdin[id] == null) { | ||
| cache.callOnStdin[id] = [resolve]; | ||
| } | ||
| else { | ||
| cache.callOnStdin[id].push(resolve); | ||
| } | ||
| })]; | ||
| _a = _b.sent(), id = _a.id, ms = _a.ms; | ||
| log("read from stdin", { id: id }); | ||
| _b.label = 2; | ||
| case 2: | ||
| // wait until there is something in stdin | ||
| _a.sent(); | ||
| _a.label = 3; | ||
| _b.trys.push([2, 4, , 5]); | ||
| return [4 /*yield*/, waitForStdin(id, ms !== null && ms !== void 0 ? ms : 3000)]; | ||
| case 3: | ||
| _b.sent(); | ||
| return [3 /*break*/, 5]; | ||
| case 4: | ||
| _err_1 = _b.sent(); | ||
| return [3 /*break*/, 5]; | ||
| case 5: | ||
| data = cache.stdin[id]; | ||
@@ -238,0 +246,0 @@ cache.stdin[id] = ""; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"service-worker.js","sourceRoot":"","sources":["../../../src/wasm/worker/service-worker.js"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"service-worker.js","sourceRoot":"","sources":["../../../src/wasm/worker/service-worker.js"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "python-wasm", | ||
| "version": "0.19.2", | ||
| "version": "0.19.3", | ||
| "description": "python-wasm -- Web Assembly Python for Node.js and the Browser", | ||
@@ -5,0 +5,0 @@ "main": "./dist/python/node.js", |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 3 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 3 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 3 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 3 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
11193998
0.01%7007
0.19%23
4.55%