@dodona/papyros 0.1.91-tar → 0.1.94
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/Backend.d.ts +9 -13
- package/dist/BackendEvent.d.ts +2 -2
- package/dist/BackendManager.d.ts +19 -11
- package/dist/Constants.d.ts +1 -1
- package/dist/Library.d.ts +1 -2
- package/dist/Library.js +1 -0
- package/dist/Papyros.d.ts +1 -8
- package/dist/util/Util.d.ts +1 -1
- package/dist/workers/input/InputWorker.d.ts +2 -2
- package/dist/workers/input/InputWorker.js +1 -0
- package/dist/workers/python/PythonWorker.worker.d.ts +0 -2
- package/package.json +13 -11
- package/dist/index.js +0 -2
- package/dist/index.js.LICENSE.txt +0 -7
- package/dist/inputServiceWorker.js +0 -1
- package/dist/workers/python/Pyodide.d.ts +0 -32
- package/dist/workers/python/package.tar +0 -0
package/dist/Papyros.d.ts
CHANGED
|
@@ -97,13 +97,6 @@ export declare class Papyros {
|
|
|
97
97
|
* @return {string} The currently written code
|
|
98
98
|
*/
|
|
99
99
|
getCode(): string;
|
|
100
|
-
/**
|
|
101
|
-
* Helper method to perform the service worker related checks and initialisation
|
|
102
|
-
* @param {string} serviceWorkerRoot URL for the directory where the service worker lives
|
|
103
|
-
* @param {string} serviceWorkerName The name of the file containing the script
|
|
104
|
-
* @return {Promise<boolean>} Whether registration was successful
|
|
105
|
-
*/
|
|
106
|
-
private registerServiceWorker;
|
|
107
100
|
/**
|
|
108
101
|
* Configure how user input is handled within Papyros
|
|
109
102
|
* By default, we will try to use SharedArrayBuffers
|
|
@@ -115,7 +108,7 @@ export declare class Papyros {
|
|
|
115
108
|
* This allows using SharedArrayBuffers without configuring the HTTP headers yourself
|
|
116
109
|
* @return {Promise<boolean>} Promise of configuring input
|
|
117
110
|
*/
|
|
118
|
-
configureInput(serviceWorkerRoot?: string, serviceWorkerName?: string
|
|
111
|
+
configureInput(serviceWorkerRoot?: string, serviceWorkerName?: string): Promise<boolean>;
|
|
119
112
|
/**
|
|
120
113
|
* Render Papyros with the given options
|
|
121
114
|
* @param {PapyrosRenderOptions} renderOptions Options to use
|
package/dist/util/Util.d.ts
CHANGED
|
@@ -103,5 +103,5 @@ export declare function renderWithOptions(options: RenderOptions, content: strin
|
|
|
103
103
|
* @param {string} contentType The content type of the data
|
|
104
104
|
* @return {any} The parsed data
|
|
105
105
|
*/
|
|
106
|
-
export declare function parseData(data: string, contentType
|
|
106
|
+
export declare function parseData(data: string, contentType?: string): any;
|
|
107
107
|
export {};
|
|
@@ -10,9 +10,9 @@ export declare class InputWorker {
|
|
|
10
10
|
private syncMessageListener;
|
|
11
11
|
/**
|
|
12
12
|
* Create a worker for a specific domain
|
|
13
|
-
* @param {string} hostName
|
|
13
|
+
* @param {string} hostName Optional name of the host domain
|
|
14
14
|
*/
|
|
15
|
-
constructor(hostName
|
|
15
|
+
constructor(hostName?: string);
|
|
16
16
|
/**
|
|
17
17
|
* Process and potentially handle a fetch request from the application
|
|
18
18
|
* @param {FetchEvent} event The event denoting a request to a url
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Papyros=t():e.Papyros=t()}(self,(function(){return(()=>{var e={137:e=>{self,e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{isServiceWorkerRequest:()=>s,serviceWorkerFetchListener:()=>i,asyncSleep:()=>u,ServiceWorkerError:()=>a,writeMessageAtomics:()=>c,writeMessageServiceWorker:()=>f,writeMessage:()=>l,makeChannel:()=>d,makeAtomicsChannel:()=>y,makeServiceWorkerChannel:()=>p,readMessage:()=>h,syncSleep:()=>v,uuidv4:()=>g});var r=function(e,t,r,n){return new(r||(r=Promise))((function(o,s){function i(e){try{a(n.next(e))}catch(e){s(e)}}function u(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,u)}a((n=n.apply(e,t||[])).next())}))};const n="__SyncMessageServiceWorkerInput__",o="__sync-message-v2__";function s(e){return"string"!=typeof e&&(e=e.request.url),e.includes(n)}function i(){const e={},t={};return n=>{const{url:i}=n.request;return!!s(i)&&(n.respondWith(function(){return r(this,void 0,void 0,(function*(){function r(e){const t={message:e,version:o};return new Response(JSON.stringify(t),{status:200})}if(i.endsWith("/read")){const{messageId:o,timeout:s}=yield n.request.json(),i=e[o];return i?(delete e[o],r(i)):yield new Promise((e=>{t[o]=e,setTimeout((function(){delete t[o],e(new Response("",{status:408}))}),s)}))}if(i.endsWith("/write")){const{message:o,messageId:s}=yield n.request.json(),i=t[s];return i?(i(r(o)),delete t[s]):e[s]=o,r({early:!i})}if(i.endsWith("/version"))return new Response(o,{status:200})}))}()),!0)}}function u(e){return new Promise((t=>setTimeout(t,e)))}class a extends Error{constructor(e,t){super(`Received status ${t} from ${e}. Ensure the service worker is registered and active.`),this.url=e,this.status=t,this.type="ServiceWorkerError",Object.setPrototypeOf(this,a.prototype)}}function c(e,t){const r=(new TextEncoder).encode(JSON.stringify(t)),{data:n,meta:o}=e;if(r.length>n.length)throw new Error("Message is too big, increase bufferSize when making channel.");n.set(r,0),Atomics.store(o,0,r.length),Atomics.store(o,1,1),Atomics.notify(o,1)}function f(e,t,n){return r(this,void 0,void 0,(function*(){yield navigator.serviceWorker.ready;const r=e.baseUrl+"/write",s=Date.now();for(;;){const i={message:t,messageId:n},c=yield fetch(r,{method:"POST",body:JSON.stringify(i)});if(200===c.status&&(yield c.json()).version===o)return;if(!(Date.now()-s<e.timeout))throw new a(r,c.status);yield u(100)}}))}function l(e,t,n){return r(this,void 0,void 0,(function*(){"atomics"===e.type?c(e,t):yield f(e,t,n)}))}function d(e={}){return"undefined"!=typeof SharedArrayBuffer?y(e.atomics):"serviceWorker"in navigator?p(e.serviceWorker):null}function y({bufferSize:e}={}){return{type:"atomics",data:new Uint8Array(new SharedArrayBuffer(e||131072)),meta:new Int32Array(new SharedArrayBuffer(2*Int32Array.BYTES_PER_ELEMENT))}}function p(e={}){return{type:"serviceWorker",baseUrl:(e.scope||"/")+n,timeout:e.timeout||5e3}}function m(e,t){return e>0?+e:t}function h(e,t,{checkInterrupt:r,checkTimeout:n,timeout:s}={}){const i=performance.now();n=m(n,r?100:5e3);const u=m(s,Number.POSITIVE_INFINITY);let c;if("atomics"===e.type){const{data:t,meta:r}=e;c=()=>{if("timed-out"===Atomics.wait(r,1,0,n))return null;{const e=Atomics.exchange(r,0,0),n=t.slice(0,e);Atomics.store(r,1,0);const o=(new TextDecoder).decode(n);return JSON.parse(o)}}}else c=()=>{const r=new XMLHttpRequest,s=e.baseUrl+"/read";r.open("POST",s,!1);const u={messageId:t,timeout:n};r.send(JSON.stringify(u));const{status:c}=r;if(408===c)return null;if(200===c){const e=JSON.parse(r.responseText);return e.version!==o?null:e.message}if(performance.now()-i<e.timeout)return null;throw new a(s,c)};for(;;){const e=u-(performance.now()-i);if(e<=0)return null;n=Math.min(n,e);const t=c();if(null!==t)return t;if(null==r?void 0:r())return null}}function v(e,t){if(e=m(e,0))if("undefined"!=typeof SharedArrayBuffer){const t=new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));t[0]=0,Atomics.wait(t,0,0,e)}else h(t,`sleep ${e} ${g()}`,{timeout:e})}let g;return g="randomUUID"in crypto?function(){return crypto.randomUUID()}:function(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(e=>{const t=Number(e);return(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))},t})()}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{InputWorker:()=>s});var e=r(137),t=function(e,t,r,n){return new(r||(r=Promise))((function(o,s){function i(e){try{a(n.next(e))}catch(e){s(e)}}function u(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,u)}a((n=n.apply(e,t||[])).next())}))},o=function(e,t){var r,n,o,s,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(s){return function(u){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}},s=function(){function r(t){void 0===t&&(t=""),this.hostName=t,this.syncMessageListener=(0,e.serviceWorkerFetchListener)()}return r.prototype.handleInputRequest=function(e){return t(this,void 0,void 0,(function(){var t;return o(this,(function(r){return this.syncMessageListener(e)?[2,!0]:(t=e.request.url,this.hostName&&t.includes(this.hostName)?(e.respondWith(fetch(e.request).then((function(e){var t=new Headers(e.headers);return t.set("Cross-Origin-Embedder-Policy","require-corp"),t.set("Cross-Origin-Opener-Policy","same-origin"),t.set("Cross-Origin-Resource-Policy","cross-origin"),new Response(e.body,{status:e.status||200,statusText:e.statusText,headers:t})}))),[2,!0]):[2,!1])}))}))},r}()})(),n})()}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dodona/papyros",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.94",
|
|
4
4
|
"private": false,
|
|
5
5
|
"homepage": ".",
|
|
6
6
|
"devDependencies": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"eslint-plugin-import": "^2.22.1",
|
|
20
20
|
"eslint-plugin-jest": "^25.2.4",
|
|
21
21
|
"eslint-webpack-plugin": "^2.5.2",
|
|
22
|
+
"glob": "^7.2.0",
|
|
22
23
|
"i18n-extract": "^0.6.7",
|
|
23
24
|
"jest": "^27.3.1",
|
|
24
25
|
"jest-junit": "^13.0.0",
|
|
@@ -28,13 +29,14 @@
|
|
|
28
29
|
"raw-loader": "^4.0.2",
|
|
29
30
|
"style-loader": "^3.3.1",
|
|
30
31
|
"tailwindcss": "^2.2.19",
|
|
32
|
+
"terser-webpack-plugin": "^5.3.1",
|
|
31
33
|
"ts-jest": "^27.0.7",
|
|
32
34
|
"ts-loader": "^9.2.6",
|
|
33
35
|
"typescript": "^4.1.2",
|
|
34
36
|
"url-loader": "^4.1.1",
|
|
35
|
-
"webpack": "^5.
|
|
36
|
-
"webpack-cli": "^4.9.
|
|
37
|
-
"webpack-dev-server": "^4.
|
|
37
|
+
"webpack": "^5.70.0",
|
|
38
|
+
"webpack-cli": "^4.9.2",
|
|
39
|
+
"webpack-dev-server": "^4.7.4",
|
|
38
40
|
"worker-loader": "^3.0.8"
|
|
39
41
|
},
|
|
40
42
|
"dependencies": {
|
|
@@ -52,17 +54,17 @@
|
|
|
52
54
|
"@codemirror/search": "^0.19.3",
|
|
53
55
|
"@codemirror/state": "^0.19.6",
|
|
54
56
|
"comlink": "^4.3.1",
|
|
55
|
-
"comsync": "^0.0.
|
|
57
|
+
"comsync": "^0.0.8",
|
|
56
58
|
"escape-html": "^1.0.3",
|
|
57
59
|
"i18n-js": "^3.8.0",
|
|
58
|
-
"pyodide-worker-runner": "^0.0.
|
|
59
|
-
"sync-message": "^0.0.
|
|
60
|
+
"pyodide-worker-runner": "^0.0.8",
|
|
61
|
+
"sync-message": "^0.0.10"
|
|
60
62
|
},
|
|
61
63
|
"scripts": {
|
|
62
64
|
"start": "yarn setup && webpack serve --mode development",
|
|
63
65
|
"setup": "bash scripts/setup.sh",
|
|
64
|
-
"build:
|
|
65
|
-
"build:
|
|
66
|
+
"build:app": "bash scripts/build_package.sh development",
|
|
67
|
+
"build:library": "bash scripts/build_package.sh production",
|
|
66
68
|
"test": "echo No tests defined yet",
|
|
67
69
|
"lint": "eslint --ext '.js' --ext '.ts' src",
|
|
68
70
|
"validate:translations": "node scripts/ValidateTranslations.js"
|
|
@@ -86,6 +88,6 @@
|
|
|
86
88
|
"bugs": {
|
|
87
89
|
"url": "https://github.com/dodona-edu/papyros/issues"
|
|
88
90
|
},
|
|
89
|
-
"main": "./dist/
|
|
90
|
-
"types": "./dist/
|
|
91
|
+
"main": "./dist/Library.js",
|
|
92
|
+
"types": "./dist/Library.d.ts"
|
|
91
93
|
}
|