@dodona/papyros 4.0.7 → 4.1.1

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.
Files changed (168) hide show
  1. package/dist/assets/__vite-browser-external-9wXp6ZBx.js +1 -0
  2. package/dist/assets/__vite-browser-external-BIHI7g3E.js +1 -0
  3. package/dist/assets/index-C1AWjGcU.js +2202 -0
  4. package/dist/assets/manifest-BaVmi6rC.json +15 -0
  5. package/dist/assets/python_package.tar.gz-B8aMWvGt.load_by_url +0 -0
  6. package/dist/assets/worker-BhABRh01.js +5 -0
  7. package/dist/assets/worker-C2Ju1j5g.js +110 -0
  8. package/dist/index.html +26 -0
  9. package/dist/manifest.json +15 -0
  10. package/dist/robots.txt +3 -0
  11. package/package.json +25 -25
  12. package/dist/Library.d.ts +0 -11
  13. package/dist/Library.js +0 -11
  14. package/dist/Library.js.map +0 -1
  15. package/dist/ProgrammingLanguage.d.ts +0 -7
  16. package/dist/ProgrammingLanguage.js +0 -9
  17. package/dist/ProgrammingLanguage.js.map +0 -1
  18. package/dist/backend/Backend.d.ts +0 -92
  19. package/dist/backend/Backend.js +0 -79
  20. package/dist/backend/Backend.js.map +0 -1
  21. package/dist/backend/workers/javascript/JavaScriptWorker.d.ts +0 -39
  22. package/dist/backend/workers/javascript/JavaScriptWorker.js +0 -158
  23. package/dist/backend/workers/javascript/JavaScriptWorker.js.map +0 -1
  24. package/dist/backend/workers/javascript/worker.d.ts +0 -1
  25. package/dist/backend/workers/javascript/worker.js +0 -5
  26. package/dist/backend/workers/javascript/worker.js.map +0 -1
  27. package/dist/backend/workers/python/PythonWorker.d.ts +0 -32
  28. package/dist/backend/workers/python/PythonWorker.js +0 -117
  29. package/dist/backend/workers/python/PythonWorker.js.map +0 -1
  30. package/dist/backend/workers/python/python_package.tar.gz.load_by_url +0 -0
  31. package/dist/backend/workers/python/worker.d.ts +0 -1
  32. package/dist/backend/workers/python/worker.js +0 -5
  33. package/dist/backend/workers/python/worker.js.map +0 -1
  34. package/dist/communication/BackendEvent.d.ts +0 -33
  35. package/dist/communication/BackendEvent.js +0 -18
  36. package/dist/communication/BackendEvent.js.map +0 -1
  37. package/dist/communication/BackendEventQueue.d.ts +0 -59
  38. package/dist/communication/BackendEventQueue.js +0 -96
  39. package/dist/communication/BackendEventQueue.js.map +0 -1
  40. package/dist/communication/BackendManager.d.ts +0 -68
  41. package/dist/communication/BackendManager.js +0 -99
  42. package/dist/communication/BackendManager.js.map +0 -1
  43. package/dist/communication/InputServiceWorker.d.ts +0 -1
  44. package/dist/communication/InputServiceWorker.js +0 -37
  45. package/dist/communication/InputServiceWorker.js.map +0 -1
  46. package/dist/communication/InputWorker.d.ts +0 -22
  47. package/dist/communication/InputWorker.js +0 -63
  48. package/dist/communication/InputWorker.js.map +0 -1
  49. package/dist/frontend/components/CodeRunner.d.ts +0 -9
  50. package/dist/frontend/components/CodeRunner.js +0 -60
  51. package/dist/frontend/components/CodeRunner.js.map +0 -1
  52. package/dist/frontend/components/Debugger.d.ts +0 -7
  53. package/dist/frontend/components/Debugger.js +0 -75
  54. package/dist/frontend/components/Debugger.js.map +0 -1
  55. package/dist/frontend/components/Input.d.ts +0 -13
  56. package/dist/frontend/components/Input.js +0 -60
  57. package/dist/frontend/components/Input.js.map +0 -1
  58. package/dist/frontend/components/Output.d.ts +0 -14
  59. package/dist/frontend/components/Output.js +0 -157
  60. package/dist/frontend/components/Output.js.map +0 -1
  61. package/dist/frontend/components/PapyrosElement.d.ts +0 -8
  62. package/dist/frontend/components/PapyrosElement.js +0 -24
  63. package/dist/frontend/components/PapyrosElement.js.map +0 -1
  64. package/dist/frontend/components/app/App.d.ts +0 -24
  65. package/dist/frontend/components/app/App.js +0 -207
  66. package/dist/frontend/components/app/App.js.map +0 -1
  67. package/dist/frontend/components/app/ExamplePicker.d.ts +0 -7
  68. package/dist/frontend/components/app/ExamplePicker.js +0 -36
  69. package/dist/frontend/components/app/ExamplePicker.js.map +0 -1
  70. package/dist/frontend/components/app/LanguagePicker.d.ts +0 -7
  71. package/dist/frontend/components/app/LanguagePicker.js +0 -33
  72. package/dist/frontend/components/app/LanguagePicker.js.map +0 -1
  73. package/dist/frontend/components/app/ProgrammingLanguagePicker.d.ts +0 -7
  74. package/dist/frontend/components/app/ProgrammingLanguagePicker.js +0 -38
  75. package/dist/frontend/components/app/ProgrammingLanguagePicker.js.map +0 -1
  76. package/dist/frontend/components/app/examples/JavaScriptExamples.d.ts +0 -5
  77. package/dist/frontend/components/app/examples/JavaScriptExamples.js +0 -16
  78. package/dist/frontend/components/app/examples/JavaScriptExamples.js.map +0 -1
  79. package/dist/frontend/components/app/examples/PythonExamples.d.ts +0 -14
  80. package/dist/frontend/components/app/examples/PythonExamples.js +0 -163
  81. package/dist/frontend/components/app/examples/PythonExamples.js.map +0 -1
  82. package/dist/frontend/components/app/themes/ThemePicker.d.ts +0 -11
  83. package/dist/frontend/components/app/themes/ThemePicker.js +0 -48
  84. package/dist/frontend/components/app/themes/ThemePicker.js.map +0 -1
  85. package/dist/frontend/components/app/themes/ThemedButton.d.ts +0 -9
  86. package/dist/frontend/components/app/themes/ThemedButton.js +0 -53
  87. package/dist/frontend/components/app/themes/ThemedButton.js.map +0 -1
  88. package/dist/frontend/components/code_mirror/BatchInputEditor.d.ts +0 -8
  89. package/dist/frontend/components/code_mirror/BatchInputEditor.js +0 -51
  90. package/dist/frontend/components/code_mirror/BatchInputEditor.js.map +0 -1
  91. package/dist/frontend/components/code_mirror/CodeEditor.d.ts +0 -24
  92. package/dist/frontend/components/code_mirror/CodeEditor.js +0 -200
  93. package/dist/frontend/components/code_mirror/CodeEditor.js.map +0 -1
  94. package/dist/frontend/components/code_mirror/CodeMirrorEditor.d.ts +0 -22
  95. package/dist/frontend/components/code_mirror/CodeMirrorEditor.js +0 -111
  96. package/dist/frontend/components/code_mirror/CodeMirrorEditor.js.map +0 -1
  97. package/dist/frontend/components/code_mirror/Extensions.d.ts +0 -15
  98. package/dist/frontend/components/code_mirror/Extensions.js +0 -164
  99. package/dist/frontend/components/code_mirror/Extensions.js.map +0 -1
  100. package/dist/frontend/components/code_mirror/MaterialTheme.d.ts +0 -5
  101. package/dist/frontend/components/code_mirror/MaterialTheme.js +0 -115
  102. package/dist/frontend/components/code_mirror/MaterialTheme.js.map +0 -1
  103. package/dist/frontend/components/code_runner/ButtonLint.d.ts +0 -9
  104. package/dist/frontend/components/code_runner/ButtonLint.js +0 -72
  105. package/dist/frontend/components/code_runner/ButtonLint.js.map +0 -1
  106. package/dist/frontend/components/code_runner/Code.d.ts +0 -7
  107. package/dist/frontend/components/code_runner/Code.js +0 -48
  108. package/dist/frontend/components/code_runner/Code.js.map +0 -1
  109. package/dist/frontend/components/code_runner/RunState.d.ts +0 -7
  110. package/dist/frontend/components/code_runner/RunState.js +0 -41
  111. package/dist/frontend/components/code_runner/RunState.js.map +0 -1
  112. package/dist/frontend/components/input/BatchInput.d.ts +0 -9
  113. package/dist/frontend/components/input/BatchInput.js +0 -53
  114. package/dist/frontend/components/input/BatchInput.js.map +0 -1
  115. package/dist/frontend/components/input/InteractiveInput.d.ts +0 -13
  116. package/dist/frontend/components/input/InteractiveInput.js +0 -71
  117. package/dist/frontend/components/input/InteractiveInput.js.map +0 -1
  118. package/dist/frontend/state/Constants.d.ts +0 -38
  119. package/dist/frontend/state/Constants.js +0 -111
  120. package/dist/frontend/state/Constants.js.map +0 -1
  121. package/dist/frontend/state/Debugger.d.ts +0 -23
  122. package/dist/frontend/state/Debugger.js +0 -86
  123. package/dist/frontend/state/Debugger.js.map +0 -1
  124. package/dist/frontend/state/Examples.d.ts +0 -11
  125. package/dist/frontend/state/Examples.js +0 -36
  126. package/dist/frontend/state/Examples.js.map +0 -1
  127. package/dist/frontend/state/I18n.d.ts +0 -16
  128. package/dist/frontend/state/I18n.js +0 -75
  129. package/dist/frontend/state/I18n.js.map +0 -1
  130. package/dist/frontend/state/InputOutput.d.ts +0 -64
  131. package/dist/frontend/state/InputOutput.js +0 -146
  132. package/dist/frontend/state/InputOutput.js.map +0 -1
  133. package/dist/frontend/state/Papyros.d.ts +0 -40
  134. package/dist/frontend/state/Papyros.js +0 -115
  135. package/dist/frontend/state/Papyros.js.map +0 -1
  136. package/dist/frontend/state/Runner.d.ts +0 -123
  137. package/dist/frontend/state/Runner.js +0 -372
  138. package/dist/frontend/state/Runner.js.map +0 -1
  139. package/dist/frontend/state/Test.d.ts +0 -10
  140. package/dist/frontend/state/Test.js +0 -43
  141. package/dist/frontend/state/Test.js.map +0 -1
  142. package/dist/frontend/state/Translations.d.ts +0 -178
  143. package/dist/frontend/state/Translations.js +0 -187
  144. package/dist/frontend/state/Translations.js.map +0 -1
  145. package/dist/frontend/state/themes/blue-dark.d.ts +0 -2
  146. package/dist/frontend/state/themes/blue-dark.js +0 -56
  147. package/dist/frontend/state/themes/blue-dark.js.map +0 -1
  148. package/dist/frontend/state/themes/blue-light.d.ts +0 -2
  149. package/dist/frontend/state/themes/blue-light.js +0 -56
  150. package/dist/frontend/state/themes/blue-light.js.map +0 -1
  151. package/dist/frontend/state/themes/green-dark.d.ts +0 -2
  152. package/dist/frontend/state/themes/green-dark.js +0 -56
  153. package/dist/frontend/state/themes/green-dark.js.map +0 -1
  154. package/dist/frontend/state/themes/green-light.d.ts +0 -2
  155. package/dist/frontend/state/themes/green-light.js +0 -56
  156. package/dist/frontend/state/themes/green-light.js.map +0 -1
  157. package/dist/frontend/state/themes/red-dark.d.ts +0 -2
  158. package/dist/frontend/state/themes/red-dark.js +0 -56
  159. package/dist/frontend/state/themes/red-dark.js.map +0 -1
  160. package/dist/frontend/state/themes/red-light.d.ts +0 -2
  161. package/dist/frontend/state/themes/red-light.js +0 -56
  162. package/dist/frontend/state/themes/red-light.js.map +0 -1
  163. package/dist/util/Logging.d.ts +0 -15
  164. package/dist/util/Logging.js +0 -30
  165. package/dist/util/Logging.js.map +0 -1
  166. package/dist/util/Util.d.ts +0 -8
  167. package/dist/util/Util.js +0 -48
  168. package/dist/util/Util.js.map +0 -1
@@ -1,39 +0,0 @@
1
- import { Backend, WorkerDiagnostic } from "../../Backend";
2
- import { SyncExtras } from "comsync";
3
- /**
4
- * Implementation of a JavaScript backend for Papyros
5
- * by using eval and overriding some builtins
6
- */
7
- export declare class JavaScriptWorker extends Backend<SyncExtras> {
8
- /**
9
- * Convert varargs to a string, similar to how the console does it
10
- * @param {any[]} args The values to join into a string
11
- * @return {string} The string representation
12
- */
13
- private static stringify;
14
- /**
15
- * Prompt the user for input with a message
16
- * @param {string} text The message to show when asking for input
17
- * @return {string} The value the user gave
18
- */
19
- private prompt;
20
- /**
21
- * Print values to the output screen
22
- * @param {any[]} args The values to log
23
- */
24
- private consoleLog;
25
- /**
26
- * Print values to the error screen
27
- * @param {any[]} args The error values to log
28
- */
29
- private consoleError;
30
- /**
31
- * Helper method to generate suggestions based on properties in an object
32
- * @param {number} from Where in the document the autocompletion starts
33
- * @param {any} object Object with properties that might be relevant
34
- * @return {CompletionResult} Autocompletion suggestions
35
- */
36
- private static completeProperties;
37
- runCode(extras: SyncExtras, code: string): Promise<any>;
38
- lintCode(): Promise<Array<WorkerDiagnostic>>;
39
- }
@@ -1,158 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { Backend } from "../../Backend";
11
- import { BackendEventType } from "../../../communication/BackendEvent";
12
- /**
13
- * Implementation of a JavaScript backend for Papyros
14
- * by using eval and overriding some builtins
15
- */
16
- export class JavaScriptWorker extends Backend {
17
- /**
18
- * Convert varargs to a string, similar to how the console does it
19
- * @param {any[]} args The values to join into a string
20
- * @return {string} The string representation
21
- */
22
- static stringify(...args) {
23
- const asString = args
24
- .map((a) => {
25
- if (Array.isArray(a)) {
26
- return JSON.stringify(a);
27
- }
28
- else if (typeof a === "string") {
29
- return a;
30
- }
31
- else if (typeof a === "number") {
32
- return a + "";
33
- }
34
- else if (typeof a === "object" && "toString" in a) {
35
- let aString = a.toString();
36
- if (aString === "[object Object]") {
37
- // useless toString, so use JSON
38
- aString = JSON.stringify(a);
39
- }
40
- return aString;
41
- }
42
- else {
43
- return JSON.stringify(args);
44
- }
45
- })
46
- .join(" ");
47
- return asString;
48
- }
49
- /**
50
- * Prompt the user for input with a message
51
- * @param {string} text The message to show when asking for input
52
- * @return {string} The value the user gave
53
- */
54
- prompt(text = "") {
55
- return this.onEvent({
56
- type: BackendEventType.Input,
57
- data: text,
58
- contentType: "text/plain",
59
- });
60
- }
61
- /**
62
- * Print values to the output screen
63
- * @param {any[]} args The values to log
64
- */
65
- consoleLog(...args) {
66
- this.queue.put(BackendEventType.Output, JavaScriptWorker.stringify(...args) + "\n", "text/plain");
67
- }
68
- /**
69
- * Print values to the error screen
70
- * @param {any[]} args The error values to log
71
- */
72
- consoleError(...args) {
73
- this.queue.put(BackendEventType.Error, JavaScriptWorker.stringify(...args) + "\n", "text/plain");
74
- }
75
- /**
76
- * Helper method to generate suggestions based on properties in an object
77
- * @param {number} from Where in the document the autocompletion starts
78
- * @param {any} object Object with properties that might be relevant
79
- * @return {CompletionResult} Autocompletion suggestions
80
- */
81
- static completeProperties(from, object) {
82
- const options = Object.keys(object).map((name) => {
83
- return {
84
- label: name,
85
- type: typeof object[name] === "function" ? "function" : "variable",
86
- };
87
- });
88
- return {
89
- from,
90
- options,
91
- validFor: /^[\w$]*$/,
92
- };
93
- }
94
- runCode(extras, code) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- this.extras = extras;
97
- this.queue.reset();
98
- // Builtins to store before execution and restore afterwards
99
- // Workers do not have access to prompt
100
- const oldContent = {
101
- "console.log": console.log,
102
- "console.error": console.error,
103
- };
104
- // Overrides for the builtins
105
- const newContext = {
106
- prompt: this.prompt.bind(this),
107
- "console.log": this.consoleLog.bind(this),
108
- "console.error": this.consoleError.bind(this),
109
- };
110
- // Override the builtins
111
- new Function("ctx", Object.keys(newContext)
112
- .map((k) => `${k} = ctx['${k}'];`)
113
- .join("\n"))(newContext);
114
- let result = null;
115
- try {
116
- // run the user's code
117
- this.onEvent({
118
- type: BackendEventType.Start,
119
- contentType: "text/plain",
120
- data: "RunCode",
121
- });
122
- result = yield eval(code);
123
- }
124
- catch (error) {
125
- // try to create a friendly traceback
126
- Error.captureStackTrace(error);
127
- result = yield this.onEvent({
128
- type: BackendEventType.Error,
129
- contentType: "application/json",
130
- data: {
131
- name: error.constructor.name,
132
- what: error.message,
133
- traceback: error.stack,
134
- },
135
- });
136
- }
137
- finally {
138
- // restore the old builtins
139
- new Function("ctx", Object.keys(oldContent)
140
- .map((k) => `${k} = ctx['${k}'];`)
141
- .join("\n"))(oldContent);
142
- this.queue.flush();
143
- this.onEvent({
144
- type: BackendEventType.End,
145
- contentType: "text/plain",
146
- data: "CodeFinished",
147
- });
148
- }
149
- return result;
150
- });
151
- }
152
- lintCode() {
153
- return __awaiter(this, void 0, void 0, function* () {
154
- return Promise.resolve([]);
155
- });
156
- }
157
- }
158
- //# sourceMappingURL=JavaScriptWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JavaScriptWorker.js","sourceRoot":"","sources":["../../../../src/backend/workers/javascript/JavaScriptWorker.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import * as Comlink from "comlink";
2
- import { JavaScriptWorker } from "./JavaScriptWorker";
3
- const worker = new JavaScriptWorker();
4
- Comlink.expose(worker);
5
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/backend/workers/javascript/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"}
@@ -1,32 +0,0 @@
1
- import { Backend, RunMode, WorkerDiagnostic } from "../../Backend";
2
- import { BackendEvent } from "../../../communication/BackendEvent";
3
- import { PyodideExtras } from "pyodide-worker-runner";
4
- /**
5
- * Implementation of a Python backend for Papyros
6
- * Powered by Pyodide (https://pyodide.org/)
7
- */
8
- export declare class PythonWorker extends Backend<PyodideExtras> {
9
- private pyodide;
10
- private papyros;
11
- /**
12
- * Promise to asynchronously install imports needed by the code
13
- */
14
- private installPromise;
15
- constructor();
16
- private static convert;
17
- /**
18
- * @return {any} Function to expose a method with Pyodide support
19
- */
20
- protected syncExpose(): any;
21
- private static getPyodide;
22
- launch(onEvent: (e: BackendEvent) => void): Promise<void>;
23
- /**
24
- * Helper method to install imports and prevent race conditions with double downloading
25
- * @param {string} code The code containing import statements
26
- */
27
- private installImports;
28
- runModes(code: string): Array<RunMode>;
29
- runCode(extras: PyodideExtras, code: string, mode?: string): Promise<any>;
30
- lintCode(code: string): Promise<Array<WorkerDiagnostic>>;
31
- provideFiles(inlineFiles: Record<string, string>, hrefFiles: Record<string, string>): Promise<void>;
32
- }
@@ -1,117 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { Backend, RunMode } from "../../Backend";
11
- import { pyodideExpose, loadPyodideAndPackage } from "pyodide-worker-runner";
12
- const pythonPackageUrl = new URL("./python_package.tar.gz.load_by_url", import.meta.url).href;
13
- /**
14
- * Implementation of a Python backend for Papyros
15
- * Powered by Pyodide (https://pyodide.org/)
16
- */
17
- export class PythonWorker extends Backend {
18
- constructor() {
19
- super();
20
- this.pyodide = {};
21
- this.installPromise = null;
22
- }
23
- static convert(data) {
24
- return data.toJs ? data.toJs({ dict_converter: Object.fromEntries }) : data;
25
- }
26
- /**
27
- * @return {any} Function to expose a method with Pyodide support
28
- */
29
- syncExpose() {
30
- return pyodideExpose;
31
- }
32
- static getPyodide() {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- return yield loadPyodideAndPackage({ url: pythonPackageUrl, format: ".tgz" });
35
- });
36
- }
37
- launch(onEvent) {
38
- const _super = Object.create(null, {
39
- launch: { get: () => super.launch }
40
- });
41
- return __awaiter(this, void 0, void 0, function* () {
42
- yield _super.launch.call(this, onEvent);
43
- this.pyodide = yield PythonWorker.getPyodide();
44
- // Python calls our function with a PyProxy dict or a Js Map,
45
- // These must be converted to a PapyrosEvent (JS Object) to allow message passing
46
- this.papyros = this.pyodide.pyimport("papyros").Papyros.callKwargs({
47
- callback: (e) => {
48
- const converted = PythonWorker.convert(e);
49
- return this.onEvent(converted);
50
- },
51
- buffer_constructor: (cb) => {
52
- this.queue.setCallback(cb);
53
- return this.queue;
54
- },
55
- });
56
- // preload micropip to allow installing packages
57
- yield this.pyodide.loadPackage("micropip");
58
- });
59
- }
60
- /**
61
- * Helper method to install imports and prevent race conditions with double downloading
62
- * @param {string} code The code containing import statements
63
- */
64
- installImports(code) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- var _a;
67
- if (this.installPromise == null) {
68
- this.installPromise = (_a = this.papyros) === null || _a === void 0 ? void 0 : _a.install_imports.callKwargs({
69
- source_code: code,
70
- ignore_missing: true,
71
- });
72
- }
73
- yield this.installPromise;
74
- this.installPromise = null;
75
- });
76
- }
77
- runModes(code) {
78
- var _a;
79
- let modes = super.runModes(code);
80
- if ((_a = this.papyros) === null || _a === void 0 ? void 0 : _a.has_doctests(code)) {
81
- modes = [RunMode.Doctest, ...modes];
82
- }
83
- modes = [RunMode.Debug, ...modes];
84
- return modes;
85
- }
86
- runCode(extras_1, code_1) {
87
- return __awaiter(this, arguments, void 0, function* (extras, code, mode = "exec") {
88
- var _a;
89
- this.extras = extras;
90
- if (extras.interruptBuffer) {
91
- this.pyodide.setInterruptBuffer(extras.interruptBuffer);
92
- }
93
- yield this.installImports(code);
94
- return yield ((_a = this.papyros) === null || _a === void 0 ? void 0 : _a.run_async.callKwargs({
95
- source_code: code,
96
- mode: mode,
97
- }));
98
- });
99
- }
100
- lintCode(code) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- var _a;
103
- yield this.installImports(code);
104
- return PythonWorker.convert(((_a = this.papyros) === null || _a === void 0 ? void 0 : _a.lint(code)) || []);
105
- });
106
- }
107
- provideFiles(inlineFiles, hrefFiles) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- var _a;
110
- yield ((_a = this.papyros) === null || _a === void 0 ? void 0 : _a.provide_files.callKwargs({
111
- inline_files: JSON.stringify(inlineFiles),
112
- href_files: JSON.stringify(hrefFiles),
113
- }));
114
- });
115
- }
116
- }
117
- //# sourceMappingURL=PythonWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PythonWorker.js","sourceRoot":"","sources":["../../../../src/backend/workers/python/PythonWorker.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import * as Comlink from "comlink";
2
- import { PythonWorker } from "./PythonWorker";
3
- const worker = new PythonWorker();
4
- Comlink.expose(worker);
5
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/backend/workers/python/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Enum representing all possible types for supported events
3
- */
4
- export declare enum BackendEventType {
5
- Start = "start",
6
- End = "end",
7
- Input = "input",
8
- Output = "output",
9
- Sleep = "sleep",
10
- Error = "error",
11
- Interrupt = "interrupt",
12
- Loading = "loading",
13
- Frame = "frame",
14
- FrameChange = "frame-change",
15
- Stop = "stop"
16
- }
17
- /**
18
- * Interface for events used for communication between threads
19
- */
20
- export interface BackendEvent {
21
- /**
22
- * The type of action generating this event
23
- */
24
- type: BackendEventType;
25
- /**
26
- * The actual data stored in this event
27
- */
28
- data: any;
29
- /**
30
- * The format used for the data to help with parsing
31
- */
32
- contentType?: string;
33
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * Enum representing all possible types for supported events
3
- */
4
- export var BackendEventType;
5
- (function (BackendEventType) {
6
- BackendEventType["Start"] = "start";
7
- BackendEventType["End"] = "end";
8
- BackendEventType["Input"] = "input";
9
- BackendEventType["Output"] = "output";
10
- BackendEventType["Sleep"] = "sleep";
11
- BackendEventType["Error"] = "error";
12
- BackendEventType["Interrupt"] = "interrupt";
13
- BackendEventType["Loading"] = "loading";
14
- BackendEventType["Frame"] = "frame";
15
- BackendEventType["FrameChange"] = "frame-change";
16
- BackendEventType["Stop"] = "stop";
17
- })(BackendEventType || (BackendEventType = {}));
18
- //# sourceMappingURL=BackendEvent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackendEvent.js","sourceRoot":"","sources":["../../src/communication/BackendEvent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,gDAA4B,CAAA;IAC5B,iCAAa,CAAA;AACjB,CAAC,EAZW,gBAAgB,KAAhB,gBAAgB,QAY3B"}
@@ -1,59 +0,0 @@
1
- import { BackendEvent, BackendEventType } from "./BackendEvent";
2
- /**
3
- * Queue to limit the amount of messages sent between threads
4
- * This prevents communication issues which arise either in Comlink
5
- * or in the WebWorker message passing code
6
- */
7
- export declare class BackendEventQueue {
8
- /**
9
- * Function to process events in the queue
10
- */
11
- private callback;
12
- /**
13
- * The time in milliseconds before sending events through
14
- */
15
- private flushTime;
16
- /**
17
- * Queue storing the BackendEvents before flushing
18
- */
19
- private queue;
20
- /**
21
- * Time in milliseconds when the last flush occurred
22
- */
23
- private lastFlushTime;
24
- /**
25
- * Decoder to convert data to strings
26
- */
27
- private decoder;
28
- /**
29
- * @param {function(BackendEvent):void} callback Function to process events in the queue
30
- * @param {number} flushTime The time in milliseconds before sending events through
31
- */
32
- constructor(callback: (e: BackendEvent) => void, flushTime?: number);
33
- /**
34
- * Add an element to the queue
35
- * @param {BackendEventType} type The type of the event
36
- * @param {string | BufferSource | number} text The data for the event
37
- * @param {string | any} extra Extra data for the event
38
- * If string, interpreted as the contentType
39
- * If anything else, it should contain a contentType
40
- * If the contentType is not textual, an error is thrown
41
- */
42
- put(type: BackendEventType, text: string | BufferSource | number, extra: string | any): void;
43
- /**
44
- * @return {boolean} Whether the queue contents should be flushed
45
- */
46
- protected shouldFlush(): boolean;
47
- /**
48
- * Reset the queue contents for a new run
49
- */
50
- reset(): void;
51
- /**
52
- * Flush the queue contents using the callback
53
- */
54
- flush(): void;
55
- /**
56
- * @param {Function} callback The event-consuming callback
57
- */
58
- setCallback(callback: (e: BackendEvent) => void): void;
59
- }
@@ -1,96 +0,0 @@
1
- /**
2
- * Queue to limit the amount of messages sent between threads
3
- * This prevents communication issues which arise either in Comlink
4
- * or in the WebWorker message passing code
5
- */
6
- export class BackendEventQueue {
7
- /**
8
- * @param {function(BackendEvent):void} callback Function to process events in the queue
9
- * @param {number} flushTime The time in milliseconds before sending events through
10
- */
11
- constructor(callback, flushTime = 100) {
12
- this.callback = callback;
13
- this.flushTime = flushTime;
14
- this.queue = [];
15
- this.lastFlushTime = new Date().getTime();
16
- this.decoder = new TextDecoder();
17
- }
18
- /**
19
- * Add an element to the queue
20
- * @param {BackendEventType} type The type of the event
21
- * @param {string | BufferSource | number} text The data for the event
22
- * @param {string | any} extra Extra data for the event
23
- * If string, interpreted as the contentType
24
- * If anything else, it should contain a contentType
25
- * If the contentType is not textual, an error is thrown
26
- */
27
- put(type, text, extra) {
28
- let stringData = "";
29
- if (typeof text === "number") {
30
- stringData = text.toString();
31
- }
32
- else if (typeof text !== "string") {
33
- stringData = this.decoder.decode(text);
34
- }
35
- else {
36
- stringData = text;
37
- }
38
- let extraArgs = {};
39
- let contentType = "text/plain";
40
- if (extra) {
41
- if (typeof extra === "string") {
42
- contentType = extra;
43
- }
44
- else {
45
- contentType = extra["contentType"];
46
- delete extra["contentType"];
47
- extraArgs = extra;
48
- }
49
- }
50
- if (this.queue.length === 0 ||
51
- !contentType.startsWith("text") || // Non textual cannot be combined
52
- this.queue[this.queue.length - 1].type !== type || // Different type
53
- // Can't be combined if contentType doesn't match
54
- this.queue[this.queue.length - 1].contentType !== contentType) {
55
- this.queue.push(Object.assign({ type: type, data: stringData, contentType: contentType }, extraArgs));
56
- }
57
- else {
58
- // Same kind of event, combine into one
59
- this.queue[this.queue.length - 1].data += stringData;
60
- }
61
- if (this.shouldFlush()) {
62
- this.flush();
63
- }
64
- }
65
- /**
66
- * @return {boolean} Whether the queue contents should be flushed
67
- */
68
- shouldFlush() {
69
- return (this.queue.length > 1 || // different types of Events present
70
- new Date().getTime() - this.lastFlushTime > this.flushTime);
71
- }
72
- /**
73
- * Reset the queue contents for a new run
74
- */
75
- reset() {
76
- this.queue = [];
77
- this.lastFlushTime = new Date().getTime();
78
- }
79
- /**
80
- * Flush the queue contents using the callback
81
- */
82
- flush() {
83
- this.queue.forEach((e) => {
84
- this.callback(e);
85
- });
86
- this.queue = [];
87
- this.lastFlushTime = new Date().getTime();
88
- }
89
- /**
90
- * @param {Function} callback The event-consuming callback
91
- */
92
- setCallback(callback) {
93
- this.callback = callback;
94
- }
95
- }
96
- //# sourceMappingURL=BackendEventQueue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackendEventQueue.js","sourceRoot":"","sources":["../../src/communication/BackendEventQueue.ts"],"names":[],"mappings":"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"}