@dodona/papyros 3.0.2 → 4.0.0-beta.2

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 (233) hide show
  1. package/README.md +133 -72
  2. package/dist/Components.d.ts +4 -0
  3. package/dist/Components.js +5 -0
  4. package/dist/Components.js.map +1 -0
  5. package/dist/Papyros.d.ts +18 -127
  6. package/dist/Papyros.js +39 -211
  7. package/dist/Papyros.js.map +1 -1
  8. package/dist/{Backend.d.ts → backend/Backend.d.ts} +3 -12
  9. package/dist/{Backend.js → backend/Backend.js} +4 -17
  10. package/dist/backend/Backend.js.map +1 -0
  11. package/dist/{workers → backend/workers}/javascript/JavaScriptWorker.js +1 -1
  12. package/dist/backend/workers/javascript/JavaScriptWorker.js.map +1 -0
  13. package/dist/backend/workers/javascript/worker.js.map +1 -0
  14. package/dist/{workers → backend/workers}/python/PythonWorker.d.ts +2 -2
  15. package/dist/{workers → backend/workers}/python/PythonWorker.js +2 -2
  16. package/dist/backend/workers/python/PythonWorker.js.map +1 -0
  17. package/dist/backend/workers/python/python_package.tar.gz.load_by_url +0 -0
  18. package/dist/backend/workers/python/worker.js.map +1 -0
  19. package/dist/communication/BackendEvent.js.map +1 -0
  20. package/dist/{BackendEventQueue.d.ts → communication/BackendEventQueue.d.ts} +1 -36
  21. package/dist/{BackendEventQueue.js → communication/BackendEventQueue.js} +2 -45
  22. package/dist/communication/BackendEventQueue.js.map +1 -0
  23. package/dist/{BackendManager.d.ts → communication/BackendManager.d.ts} +2 -2
  24. package/dist/{BackendManager.js → communication/BackendManager.js} +4 -4
  25. package/dist/communication/BackendManager.js.map +1 -0
  26. package/dist/communication/InputServiceWorker.js +37 -0
  27. package/dist/communication/InputServiceWorker.js.map +1 -0
  28. package/dist/communication/InputWorker.js.map +1 -0
  29. package/dist/frontend/components/CodeRunner.d.ts +9 -0
  30. package/dist/frontend/components/CodeRunner.js +60 -0
  31. package/dist/frontend/components/CodeRunner.js.map +1 -0
  32. package/dist/frontend/components/Debugger.d.ts +7 -0
  33. package/dist/frontend/components/Debugger.js +62 -0
  34. package/dist/frontend/components/Debugger.js.map +1 -0
  35. package/dist/frontend/components/Input.d.ts +17 -0
  36. package/dist/frontend/components/Input.js +73 -0
  37. package/dist/frontend/components/Input.js.map +1 -0
  38. package/dist/frontend/components/Output.d.ts +14 -0
  39. package/dist/frontend/components/Output.js +154 -0
  40. package/dist/frontend/components/Output.js.map +1 -0
  41. package/dist/frontend/components/PapyrosElement.d.ts +8 -0
  42. package/dist/frontend/components/PapyrosElement.js +24 -0
  43. package/dist/frontend/components/PapyrosElement.js.map +1 -0
  44. package/dist/frontend/components/app/App.d.ts +24 -0
  45. package/dist/frontend/components/app/App.js +204 -0
  46. package/dist/frontend/components/app/App.js.map +1 -0
  47. package/dist/frontend/components/app/ExamplePicker.d.ts +7 -0
  48. package/dist/frontend/components/app/ExamplePicker.js +35 -0
  49. package/dist/frontend/components/app/ExamplePicker.js.map +1 -0
  50. package/dist/frontend/components/app/LanguagePicker.d.ts +7 -0
  51. package/dist/frontend/components/app/LanguagePicker.js +35 -0
  52. package/dist/frontend/components/app/LanguagePicker.js.map +1 -0
  53. package/dist/frontend/components/app/ProgrammingLanguagePicker.d.ts +7 -0
  54. package/dist/frontend/components/app/ProgrammingLanguagePicker.js +39 -0
  55. package/dist/frontend/components/app/ProgrammingLanguagePicker.js.map +1 -0
  56. package/dist/frontend/components/app/examples/JavaScriptExamples.js.map +1 -0
  57. package/dist/frontend/components/app/examples/PythonExamples.js.map +1 -0
  58. package/dist/frontend/components/app/themes/ThemePicker.d.ts +11 -0
  59. package/dist/frontend/components/app/themes/ThemePicker.js +47 -0
  60. package/dist/frontend/components/app/themes/ThemePicker.js.map +1 -0
  61. package/dist/frontend/components/app/themes/ThemedButton.d.ts +9 -0
  62. package/dist/frontend/components/app/themes/ThemedButton.js +43 -0
  63. package/dist/frontend/components/app/themes/ThemedButton.js.map +1 -0
  64. package/dist/frontend/components/code_mirror/BatchInputEditor.d.ts +8 -0
  65. package/dist/frontend/components/code_mirror/BatchInputEditor.js +54 -0
  66. package/dist/frontend/components/code_mirror/BatchInputEditor.js.map +1 -0
  67. package/dist/frontend/components/code_mirror/CodeEditor.d.ts +24 -0
  68. package/dist/frontend/components/code_mirror/CodeEditor.js +206 -0
  69. package/dist/frontend/components/code_mirror/CodeEditor.js.map +1 -0
  70. package/dist/frontend/components/code_mirror/CodeMirrorEditor.d.ts +20 -0
  71. package/dist/frontend/components/code_mirror/CodeMirrorEditor.js +99 -0
  72. package/dist/frontend/components/code_mirror/CodeMirrorEditor.js.map +1 -0
  73. package/dist/frontend/components/code_mirror/Extensions.d.ts +15 -0
  74. package/dist/frontend/components/code_mirror/Extensions.js +169 -0
  75. package/dist/frontend/components/code_mirror/Extensions.js.map +1 -0
  76. package/dist/frontend/components/code_mirror/MaterialTheme.d.ts +5 -0
  77. package/dist/frontend/components/code_mirror/MaterialTheme.js +109 -0
  78. package/dist/frontend/components/code_mirror/MaterialTheme.js.map +1 -0
  79. package/dist/frontend/components/code_runner/ButtonLint.d.ts +9 -0
  80. package/dist/frontend/components/code_runner/ButtonLint.js +76 -0
  81. package/dist/frontend/components/code_runner/ButtonLint.js.map +1 -0
  82. package/dist/frontend/components/code_runner/Code.d.ts +7 -0
  83. package/dist/frontend/components/code_runner/Code.js +46 -0
  84. package/dist/frontend/components/code_runner/Code.js.map +1 -0
  85. package/dist/frontend/components/code_runner/RunState.d.ts +7 -0
  86. package/dist/frontend/components/code_runner/RunState.js +41 -0
  87. package/dist/frontend/components/code_runner/RunState.js.map +1 -0
  88. package/dist/frontend/components/input/BatchInput.d.ts +19 -0
  89. package/dist/frontend/components/input/BatchInput.js +92 -0
  90. package/dist/frontend/components/input/BatchInput.js.map +1 -0
  91. package/dist/frontend/components/input/InteractiveInput.d.ts +13 -0
  92. package/dist/frontend/components/input/InteractiveInput.js +73 -0
  93. package/dist/frontend/components/input/InteractiveInput.js.map +1 -0
  94. package/dist/frontend/state/Constants.d.ts +38 -0
  95. package/dist/frontend/state/Constants.js +108 -0
  96. package/dist/frontend/state/Constants.js.map +1 -0
  97. package/dist/frontend/state/Debugger.d.ts +23 -0
  98. package/dist/frontend/state/Debugger.js +80 -0
  99. package/dist/frontend/state/Debugger.js.map +1 -0
  100. package/dist/frontend/state/Examples.d.ts +11 -0
  101. package/dist/frontend/state/Examples.js +36 -0
  102. package/dist/frontend/state/Examples.js.map +1 -0
  103. package/dist/frontend/state/I18n.d.ts +16 -0
  104. package/dist/frontend/state/I18n.js +75 -0
  105. package/dist/frontend/state/I18n.js.map +1 -0
  106. package/dist/frontend/state/InputOutput.d.ts +55 -0
  107. package/dist/frontend/state/InputOutput.js +93 -0
  108. package/dist/frontend/state/InputOutput.js.map +1 -0
  109. package/dist/frontend/state/Runner.d.ts +118 -0
  110. package/dist/frontend/state/Runner.js +334 -0
  111. package/dist/frontend/state/Runner.js.map +1 -0
  112. package/dist/frontend/state/Test.d.ts +11 -0
  113. package/dist/frontend/state/Test.js +59 -0
  114. package/dist/frontend/state/Test.js.map +1 -0
  115. package/dist/frontend/state/Translations.d.ts +178 -0
  116. package/dist/frontend/state/Translations.js +188 -0
  117. package/dist/frontend/state/Translations.js.map +1 -0
  118. package/dist/frontend/state/themes/blue-dark.d.ts +2 -0
  119. package/dist/frontend/state/themes/blue-dark.js +55 -0
  120. package/dist/frontend/state/themes/blue-dark.js.map +1 -0
  121. package/dist/frontend/state/themes/blue-light.d.ts +2 -0
  122. package/dist/frontend/state/themes/blue-light.js +55 -0
  123. package/dist/frontend/state/themes/blue-light.js.map +1 -0
  124. package/dist/frontend/state/themes/green-dark.d.ts +2 -0
  125. package/dist/frontend/state/themes/green-dark.js +55 -0
  126. package/dist/frontend/state/themes/green-dark.js.map +1 -0
  127. package/dist/frontend/state/themes/green-light.d.ts +2 -0
  128. package/dist/frontend/state/themes/green-light.js +55 -0
  129. package/dist/frontend/state/themes/green-light.js.map +1 -0
  130. package/dist/frontend/state/themes/red-dark.d.ts +2 -0
  131. package/dist/frontend/state/themes/red-dark.js +55 -0
  132. package/dist/frontend/state/themes/red-dark.js.map +1 -0
  133. package/dist/frontend/state/themes/red-light.d.ts +2 -0
  134. package/dist/frontend/state/themes/red-light.js +55 -0
  135. package/dist/frontend/state/themes/red-light.js.map +1 -0
  136. package/dist/util/Util.d.ts +1 -4
  137. package/dist/util/Util.js +7 -8
  138. package/dist/util/Util.js.map +1 -1
  139. package/package.json +13 -21
  140. package/dist/App.d.ts +0 -1
  141. package/dist/App.js +0 -76
  142. package/dist/App.js.map +0 -1
  143. package/dist/Backend.js.map +0 -1
  144. package/dist/BackendEvent.js.map +0 -1
  145. package/dist/BackendEventQueue.js.map +0 -1
  146. package/dist/BackendManager.js.map +0 -1
  147. package/dist/CodeRunner.d.ts +0 -188
  148. package/dist/CodeRunner.js +0 -548
  149. package/dist/CodeRunner.js.map +0 -1
  150. package/dist/Constants.d.ts +0 -31
  151. package/dist/Constants.js +0 -36
  152. package/dist/Constants.js.map +0 -1
  153. package/dist/Debugger.d.ts +0 -18
  154. package/dist/Debugger.js +0 -86
  155. package/dist/Debugger.js.map +0 -1
  156. package/dist/InputManager.d.ts +0 -38
  157. package/dist/InputManager.js +0 -101
  158. package/dist/InputManager.js.map +0 -1
  159. package/dist/InputServiceWorker.js.map +0 -1
  160. package/dist/Library.d.ts +0 -12
  161. package/dist/Library.js +0 -9
  162. package/dist/Library.js.map +0 -1
  163. package/dist/OutputManager.d.ts +0 -90
  164. package/dist/OutputManager.js +0 -172
  165. package/dist/OutputManager.js.map +0 -1
  166. package/dist/Papyros.css +0 -657
  167. package/dist/Translations.d.ts +0 -180
  168. package/dist/Translations.js +0 -191
  169. package/dist/Translations.js.map +0 -1
  170. package/dist/editor/BatchInputEditor.d.ts +0 -41
  171. package/dist/editor/BatchInputEditor.js +0 -80
  172. package/dist/editor/BatchInputEditor.js.map +0 -1
  173. package/dist/editor/CodeEditor.d.ts +0 -81
  174. package/dist/editor/CodeEditor.js +0 -213
  175. package/dist/editor/CodeEditor.js.map +0 -1
  176. package/dist/editor/CodeMirrorEditor.d.ts +0 -133
  177. package/dist/editor/CodeMirrorEditor.js +0 -169
  178. package/dist/editor/CodeMirrorEditor.js.map +0 -1
  179. package/dist/editor/DarkTheme.d.ts +0 -1
  180. package/dist/editor/DarkTheme.js +0 -72
  181. package/dist/editor/DarkTheme.js.map +0 -1
  182. package/dist/editor/DebugExtension.d.ts +0 -11
  183. package/dist/editor/DebugExtension.js +0 -70
  184. package/dist/editor/DebugExtension.js.map +0 -1
  185. package/dist/editor/Gutters.d.ts +0 -109
  186. package/dist/editor/Gutters.js +0 -201
  187. package/dist/editor/Gutters.js.map +0 -1
  188. package/dist/editor/LineEffectExtension.d.ts +0 -13
  189. package/dist/editor/LineEffectExtension.js +0 -48
  190. package/dist/editor/LineEffectExtension.js.map +0 -1
  191. package/dist/editor/TestCodeExtension.d.ts +0 -21
  192. package/dist/editor/TestCodeExtension.js +0 -134
  193. package/dist/editor/TestCodeExtension.js.map +0 -1
  194. package/dist/examples/Examples.d.ts +0 -6
  195. package/dist/examples/Examples.js +0 -23
  196. package/dist/examples/Examples.js.map +0 -1
  197. package/dist/examples/JavaScriptExamples.js.map +0 -1
  198. package/dist/examples/PythonExamples.js.map +0 -1
  199. package/dist/input/BatchInputHandler.d.ts +0 -55
  200. package/dist/input/BatchInputHandler.js +0 -131
  201. package/dist/input/BatchInputHandler.js.map +0 -1
  202. package/dist/input/InteractiveInputHandler.d.ts +0 -27
  203. package/dist/input/InteractiveInputHandler.js +0 -89
  204. package/dist/input/InteractiveInputHandler.js.map +0 -1
  205. package/dist/input/UserInputHandler.d.ts +0 -68
  206. package/dist/input/UserInputHandler.js +0 -39
  207. package/dist/input/UserInputHandler.js.map +0 -1
  208. package/dist/util/HTMLShapes.d.ts +0 -15
  209. package/dist/util/HTMLShapes.js +0 -25
  210. package/dist/util/HTMLShapes.js.map +0 -1
  211. package/dist/util/Rendering.d.ts +0 -120
  212. package/dist/util/Rendering.js +0 -142
  213. package/dist/util/Rendering.js.map +0 -1
  214. package/dist/workers/input/InputWorker.js.map +0 -1
  215. package/dist/workers/javascript/JavaScriptWorker.js.map +0 -1
  216. package/dist/workers/javascript/worker.js.map +0 -1
  217. package/dist/workers/python/PythonWorker.js.map +0 -1
  218. package/dist/workers/python/python_package.tar.gz.load_by_url +0 -0
  219. package/dist/workers/python/worker.js.map +0 -1
  220. /package/dist/{workers → backend/workers}/javascript/JavaScriptWorker.d.ts +0 -0
  221. /package/dist/{workers → backend/workers}/javascript/worker.d.ts +0 -0
  222. /package/dist/{workers → backend/workers}/javascript/worker.js +0 -0
  223. /package/dist/{workers → backend/workers}/python/worker.d.ts +0 -0
  224. /package/dist/{workers → backend/workers}/python/worker.js +0 -0
  225. /package/dist/{BackendEvent.d.ts → communication/BackendEvent.d.ts} +0 -0
  226. /package/dist/{BackendEvent.js → communication/BackendEvent.js} +0 -0
  227. /package/dist/{InputServiceWorker.d.ts → communication/InputServiceWorker.d.ts} +0 -0
  228. /package/dist/{workers/input → communication}/InputWorker.d.ts +0 -0
  229. /package/dist/{workers/input → communication}/InputWorker.js +0 -0
  230. /package/dist/{examples → frontend/components/app/examples}/JavaScriptExamples.d.ts +0 -0
  231. /package/dist/{examples → frontend/components/app/examples}/JavaScriptExamples.js +0 -0
  232. /package/dist/{examples → frontend/components/app/examples}/PythonExamples.d.ts +0 -0
  233. /package/dist/{examples → frontend/components/app/examples}/PythonExamples.js +0 -0
package/dist/Papyros.js CHANGED
@@ -1,3 +1,9 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
1
7
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
8
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
9
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -7,37 +13,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
13
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
14
  });
9
15
  };
10
- import { DARK_MODE_TOGGLE_ID, EDITOR_WRAPPER_ID, EXAMPLE_SELECT_ID, INPUT_AREA_WRAPPER_ID, LOCALE_SELECT_ID, MAIN_APP_ID, OUTPUT_AREA_WRAPPER_ID, PANEL_WRAPPER_ID, PROGRAMMING_LANGUAGE_SELECT_ID } from "./Constants";
11
- import { ProgrammingLanguage } from "./ProgrammingLanguage";
12
- import { t, getLocales, removeSelection, addListener, getElement, cleanCurrentUrl, i18n } from "./util/Util";
13
- import { CodeRunner } from "./CodeRunner";
14
- import { getCodeForExample, getExampleNames } from "./examples/Examples";
16
+ import { State, stateProperty } from "@dodona/lit-state";
17
+ import { Debugger } from "./frontend/state/Debugger";
18
+ import { Runner } from "./frontend/state/Runner";
19
+ import { InputOutput } from "./frontend/state/InputOutput";
20
+ import { Constants } from "./frontend/state/Constants";
21
+ import { Examples } from "./frontend/state/Examples";
22
+ import { BackendManager } from "./communication/BackendManager";
15
23
  import { makeChannel } from "sync-message";
16
- import { BackendManager } from "./BackendManager";
17
- import { appendClasses, Renderable, renderLabel, renderSelect, renderSelectOptions, renderWithOptions } from "./util/Rendering";
18
- const LANGUAGE_MAP = new Map([
19
- ["python", ProgrammingLanguage.Python],
20
- ["javascript", ProgrammingLanguage.JavaScript]
21
- ]);
22
- /**
23
- * Class that manages multiple components to form a coding scratchpad
24
- */
25
- export class Papyros extends Renderable {
26
- /**
27
- * Construct a new Papyros instance
28
- * @param {PapyrosConfig} config Properties to configure this instance
29
- */
30
- constructor(config) {
31
- super();
32
- this.config = config;
33
- i18n.locale = config.locale;
34
- this.codeRunner = new CodeRunner(config.programmingLanguage, config.inputMode);
35
- }
36
- /**
37
- * @return {RunState} The current state of the user's code
38
- */
39
- getState() {
40
- return this.codeRunner.getState();
24
+ import { cleanCurrentUrl } from "./util/Util";
25
+ import { I18n } from "./frontend/state/I18n";
26
+ import { Test } from "./frontend/state/Test";
27
+ export class Papyros extends State {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.debugger = new Debugger(this);
31
+ this.runner = new Runner(this);
32
+ this.io = new InputOutput(this);
33
+ this.constants = new Constants();
34
+ this.examples = new Examples(this);
35
+ this.i18n = new I18n();
36
+ this.test = new Test(this);
37
+ this.serviceWorkerName = "InputServiceWorker.js";
41
38
  }
42
39
  /**
43
40
  * Launch this instance of Papyros, making it ready to run code
@@ -46,14 +43,14 @@ export class Papyros extends Renderable {
46
43
  launch() {
47
44
  return __awaiter(this, void 0, void 0, function* () {
48
45
  if (!(yield this.configureInput())) {
49
- alert(t("Papyros.service_worker_error"));
46
+ alert(this.i18n.t("Papyros.service_worker_error"));
50
47
  }
51
48
  else {
52
49
  try {
53
- yield this.codeRunner.start();
50
+ yield this.runner.launch();
54
51
  }
55
52
  catch (_a) {
56
- if (confirm(t("Papyros.launch_error"))) {
53
+ if (confirm(this.i18n.t("Papyros.launch_error"))) {
57
54
  return this.launch();
58
55
  }
59
56
  }
@@ -61,47 +58,6 @@ export class Papyros extends Renderable {
61
58
  return this;
62
59
  });
63
60
  }
64
- /**
65
- * Set the used programming language to the given one to allow editing and running code
66
- * @param {ProgrammingLanguage} programmingLanguage The language to use
67
- */
68
- setProgrammingLanguage(programmingLanguage) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- this.config.programmingLanguage = programmingLanguage;
71
- yield this.codeRunner.setProgrammingLanguage(programmingLanguage);
72
- });
73
- }
74
- /**
75
- * @param {string} locale The locale to use
76
- */
77
- setLocale(locale) {
78
- if (locale !== this.config.locale) {
79
- this.config.locale = locale;
80
- i18n.locale = locale;
81
- this.render();
82
- }
83
- }
84
- /**
85
- * @param {boolean} darkMode Whether to use dark mode
86
- */
87
- setDarkMode(darkMode) {
88
- if (darkMode !== this.renderOptions.darkMode) {
89
- this.renderOptions.darkMode = darkMode;
90
- this.render();
91
- }
92
- }
93
- /**
94
- * @param {string} code The code to use in the editor
95
- */
96
- setCode(code) {
97
- this.codeRunner.editor.setText(code);
98
- }
99
- /**
100
- * @return {string} The currently written code
101
- */
102
- getCode() {
103
- return this.codeRunner.editor.getText();
104
- }
105
61
  /**
106
62
  * Configure how user input is handled within Papyros
107
63
  * By default, we will try to use SharedArrayBuffers
@@ -111,18 +67,15 @@ export class Papyros extends Renderable {
111
67
  */
112
68
  configureInput() {
113
69
  return __awaiter(this, void 0, void 0, function* () {
114
- var _a;
115
70
  if (typeof SharedArrayBuffer === "undefined") {
116
- if (!((_a = this.config.channelOptions) === null || _a === void 0 ? void 0 : _a.serviceWorkerName) || !("serviceWorker" in navigator)) {
71
+ if (!this.serviceWorkerName || !("serviceWorker" in navigator)) {
117
72
  return false;
118
73
  }
119
- const serviceWorkerRoot = this.config.channelOptions.root || cleanCurrentUrl(true);
120
- const { serviceWorkerName } = this.config.channelOptions;
121
- this.config.channelOptions.scope = serviceWorkerRoot;
122
- const serviceWorkerUrl = serviceWorkerRoot + serviceWorkerName;
74
+ const serviceWorkerRoot = cleanCurrentUrl(true);
75
+ const serviceWorkerUrl = serviceWorkerRoot + this.serviceWorkerName;
123
76
  try {
124
77
  yield navigator.serviceWorker.register(serviceWorkerUrl, { scope: "/" });
125
- BackendManager.channel = makeChannel({ serviceWorker: this.config.channelOptions });
78
+ BackendManager.channel = makeChannel({ serviceWorker: { scope: serviceWorkerRoot } });
126
79
  }
127
80
  catch (e) {
128
81
  console.error("Error registering service worker:", e);
@@ -130,139 +83,14 @@ export class Papyros extends Renderable {
130
83
  }
131
84
  }
132
85
  else {
133
- BackendManager.channel = makeChannel({
134
- atomics: Object.assign({}, this.config.channelOptions)
135
- });
86
+ BackendManager.channel = makeChannel({ atomics: {} });
136
87
  }
137
88
  return true;
138
89
  });
139
90
  }
140
- _render(renderOptions) {
141
- // Set default values for each option
142
- for (const [option, defaultParentId] of [
143
- ["inputOptions", INPUT_AREA_WRAPPER_ID], ["statusPanelOptions", PANEL_WRAPPER_ID],
144
- ["codeEditorOptions", EDITOR_WRAPPER_ID], ["outputOptions", OUTPUT_AREA_WRAPPER_ID],
145
- ["standAloneOptions", MAIN_APP_ID]
146
- ]) {
147
- const elementOptions = renderOptions[option] || {};
148
- elementOptions.darkMode = renderOptions.darkMode;
149
- appendClasses(elementOptions, "tailwind");
150
- renderOptions[option] = Object.assign({ parentElementId: defaultParentId }, elementOptions);
151
- }
152
- if (this.config.standAlone) {
153
- const { locale, programmingLanguage } = this.config;
154
- const programmingLanguageSelect = renderSelect(PROGRAMMING_LANGUAGE_SELECT_ID, new Array(...LANGUAGE_MAP.values()), l => t(`Papyros.programming_languages.${l}`), programmingLanguage, t("Papyros.programming_language"));
155
- const exampleSelect = renderSelect(EXAMPLE_SELECT_ID, getExampleNames(programmingLanguage), name => name, this.config.example, t("Papyros.examples"));
156
- const locales = [locale, ...getLocales().filter(l => l != locale)];
157
- const toggleIconClasses = renderOptions.darkMode ? "mdi-toggle-switch _tw-text-[#FF8F00]" : "mdi-toggle-switch-off _tw-text-white";
158
- const navOptions = `
159
- <div class="_tw-flex _tw-flex-row-reverse dark:_tw-text-white _tw-items-center">
160
- <!-- row-reverse to start at the right, so put elements in order of display -->
161
- <i id=${DARK_MODE_TOGGLE_ID} class="mdi ${toggleIconClasses} hover:_tw-cursor-pointer _tw-text-4xl"></i>
162
- <p class="_tw-text-white">${t("Papyros.dark_mode")}</p>
163
- ${renderSelect(LOCALE_SELECT_ID, locales, l => t(`Papyros.locales.${l}`), locale)}
164
- <i class="mdi mdi-web _tw-text-4xl _tw-text-white"></i>
165
- </div>
166
- `;
167
- const navBar = `
168
- <div class="_tw-bg-blue-500 _tw-text-white _tw-text-lg _tw-p-4 _tw-grid _tw-grid-cols-8
169
- _tw-items-center _tw-max-h-1/5 dark:_tw-bg-dark-mode-blue">
170
- <div class="_tw-col-span-6 _tw-text-4xl _tw-font-medium">
171
- ${t("Papyros.Papyros")}
172
- </div>
173
- <div class="_tw-col-span-2 _tw-text-black">
174
- ${navOptions}
175
- </div>
176
- </div>
177
- `;
178
- const header = `
179
- <!-- Header -->
180
- <div class="_tw-flex _tw-flex-row _tw-items-center">
181
- ${programmingLanguageSelect}
182
- ${exampleSelect}
183
- </div>`;
184
- renderWithOptions(renderOptions.standAloneOptions, `
185
- <div id="${MAIN_APP_ID}" class="_tw-min-h-screen _tw-h-full dark:_tw-text-white dark:_tw-bg-dark-mode-bg" style="margin-bottom: -40px; padding-bottom: 20px">
186
- ${navBar}
187
- <div class="_tw-m-10">
188
- ${header}
189
- <!--Body of the application-->
190
- <div class="_tw-grid _tw-grid-cols-2 _tw-gap-4 _tw-box-border">
191
- <!-- Code section-->
192
- <div>
193
- ${renderLabel(t("Papyros.code"), renderOptions.codeEditorOptions.parentElementId)}
194
- <div id="${renderOptions.codeEditorOptions.parentElementId}"></div>
195
- <div id="${renderOptions.statusPanelOptions.parentElementId}"></div>
196
- </div>
197
- <!-- User input and output section-->
198
- <div>
199
- ${renderLabel(t("Papyros.output"), renderOptions.outputOptions.parentElementId)}
200
- <div id="${renderOptions.outputOptions.parentElementId}"></div>
201
- ${renderLabel(t("Papyros.input"), renderOptions.inputOptions.parentElementId)}
202
- <div id="${renderOptions.inputOptions.parentElementId}"></div>
203
- </div>
204
- </div>
205
- <!-- Debugging section-->
206
- <div id="${renderOptions.traceOptions.parentElementId}" ></div>
207
- </div>
208
- </div>
209
- `);
210
- addListener(PROGRAMMING_LANGUAGE_SELECT_ID, pl => {
211
- this.setProgrammingLanguage(pl);
212
- getElement(EXAMPLE_SELECT_ID).innerHTML =
213
- renderSelectOptions(getExampleNames(pl), name => name);
214
- removeSelection(EXAMPLE_SELECT_ID);
215
- this.config.example = undefined;
216
- // Modify search query params without reloading page
217
- history.pushState(null, "", `?locale=${i18n.locale}&language=${pl}`);
218
- }, "change", "value");
219
- addListener(LOCALE_SELECT_ID, locale => {
220
- // Modify search query params without reloading page
221
- history.pushState(null, "", `?locale=${locale}&language=${this.codeRunner.getProgrammingLanguage()}`);
222
- this.setLocale(locale);
223
- }, "change", "value");
224
- addListener(EXAMPLE_SELECT_ID, (name) => __awaiter(this, void 0, void 0, function* () {
225
- this.config.example = name;
226
- const code = getCodeForExample(this.codeRunner.getProgrammingLanguage(), name);
227
- yield this.codeRunner.reset();
228
- this.setCode(code);
229
- }), "change", "value");
230
- // If example is null, it removes the selection
231
- getElement(EXAMPLE_SELECT_ID).value = this.config.example;
232
- addListener(DARK_MODE_TOGGLE_ID, () => {
233
- this.setDarkMode(!renderOptions.darkMode);
234
- }, "click");
235
- }
236
- this.codeRunner.render({
237
- statusPanelOptions: renderOptions.statusPanelOptions,
238
- inputOptions: renderOptions.inputOptions,
239
- codeEditorOptions: renderOptions.codeEditorOptions,
240
- outputOptions: renderOptions.outputOptions,
241
- traceOptions: renderOptions.traceOptions,
242
- });
243
- }
244
- /**
245
- * Add a button to the status panel within Papyros
246
- * @param {ButtonOptions} options Options to render the button with
247
- * @param {function} onClick Listener for click events on the button
248
- */
249
- addButton(options, onClick) {
250
- this.codeRunner.addButton(options, onClick);
251
- }
252
- /**
253
- * @param {ProgrammingLanguage} language The language to check
254
- * @return {boolean} Whether Papyros supports this language by default
255
- */
256
- static supportsProgrammingLanguage(language) {
257
- return Papyros.toProgrammingLanguage(language) !== undefined;
258
- }
259
- /**
260
- * Convert a string to a ProgrammingLanguage
261
- * @param {string} language The language to convert
262
- * @return {ProgrammingLanguage | undefined} The ProgrammingLanguage, or undefined if not supported
263
- */
264
- static toProgrammingLanguage(language) {
265
- return LANGUAGE_MAP.get(language.toLowerCase());
266
- }
267
91
  }
92
+ __decorate([
93
+ stateProperty
94
+ ], Papyros.prototype, "serviceWorkerName", void 0);
95
+ export const papyros = new Papyros();
268
96
  //# sourceMappingURL=Papyros.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Papyros.js","sourceRoot":"","sources":["../src/Papyros.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Papyros.js","sourceRoot":"","sources":["../src/Papyros.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { BackendEvent } from "./BackendEvent";
1
+ import { BackendEvent } from "../communication/BackendEvent";
2
2
  import { SyncExtras } from "comsync";
3
- import { BackendEventQueue } from "./BackendEventQueue";
3
+ import { BackendEventQueue } from "../communication/BackendEventQueue";
4
4
  export interface WorkerDiagnostic {
5
5
  /**
6
6
  * 1-based index of the starting line containing the issue
@@ -60,10 +60,9 @@ export declare abstract class Backend<Extras extends SyncExtras = SyncExtras> {
60
60
  /**
61
61
  * Initialize the backend by doing all setup-related work
62
62
  * @param {function(BackendEvent):void} onEvent Callback for when events occur
63
- * @param {function():void} onOverflow Callback for when overflow occurs
64
63
  * @return {Promise<void>} Promise of launching
65
64
  */
66
- launch(onEvent: (e: BackendEvent) => void, onOverflow: () => void): Promise<void>;
65
+ launch(onEvent: (e: BackendEvent) => void): Promise<void>;
67
66
  /**
68
67
  * Determine whether the modes supported by this Backend are active
69
68
  * @param {string} code The current code in the editor
@@ -83,14 +82,6 @@ export declare abstract class Backend<Extras extends SyncExtras = SyncExtras> {
83
82
  * @param {string} code The code to lint
84
83
  */
85
84
  abstract lintCode(code: string): Promise<Array<WorkerDiagnostic>>;
86
- /**
87
- * @return {boolean} Whether too many output events were generated
88
- */
89
- hasOverflow(): boolean;
90
- /**
91
- * @return {Array<BackendEvent>} The events that happened after overflow
92
- */
93
- getOverflow(): Array<BackendEvent>;
94
85
  /**
95
86
  * Provide files to be used by the backend
96
87
  * @param {Record<string, string>} inlineFiles Map of file names to their contents
@@ -7,9 +7,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { BackendEventType } from "./BackendEvent";
10
+ import { BackendEventType } from "../communication/BackendEvent";
11
11
  import { syncExpose } from "comsync";
12
- import { BackendEventQueue } from "./BackendEventQueue";
12
+ import { BackendEventQueue } from "../communication/BackendEventQueue";
13
13
  export var RunMode;
14
14
  (function (RunMode) {
15
15
  RunMode["Run"] = "run";
@@ -39,10 +39,9 @@ export class Backend {
39
39
  /**
40
40
  * Initialize the backend by doing all setup-related work
41
41
  * @param {function(BackendEvent):void} onEvent Callback for when events occur
42
- * @param {function():void} onOverflow Callback for when overflow occurs
43
42
  * @return {Promise<void>} Promise of launching
44
43
  */
45
- launch(onEvent, onOverflow) {
44
+ launch(onEvent) {
46
45
  return __awaiter(this, void 0, void 0, function* () {
47
46
  this.onEvent = (e) => {
48
47
  onEvent(e);
@@ -53,7 +52,7 @@ export class Backend {
53
52
  return this.extras.readMessage();
54
53
  }
55
54
  };
56
- this.queue = new BackendEventQueue(this.onEvent.bind(this), onOverflow);
55
+ this.queue = new BackendEventQueue(this.onEvent.bind(this));
57
56
  return Promise.resolve();
58
57
  });
59
58
  }
@@ -66,18 +65,6 @@ export class Backend {
66
65
  runModes(code) {
67
66
  return [];
68
67
  }
69
- /**
70
- * @return {boolean} Whether too many output events were generated
71
- */
72
- hasOverflow() {
73
- return this.queue.hasOverflow();
74
- }
75
- /**
76
- * @return {Array<BackendEvent>} The events that happened after overflow
77
- */
78
- getOverflow() {
79
- return this.queue.getOverflow();
80
- }
81
68
  /**
82
69
  * Provide files to be used by the backend
83
70
  * @param {Record<string, string>} inlineFiles Map of file names to their contents
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Backend.js","sourceRoot":"","sources":["../../src/backend/Backend.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AA8BvE,MAAM,CAAN,IAAY,OAIX;AAJD,WAAY,OAAO;IACf,sBAAW,CAAA;IACX,0BAAe,CAAA;IACf,8BAAmB,CAAA;AACvB,CAAC,EAJW,OAAO,KAAP,OAAO,QAIlB;AAED,MAAM,OAAgB,OAAO;IAczB;;;;OAIG;IACH;QACI,IAAI,CAAC,MAAM,GAAG,EAAY,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE;YAChB,+BAA+B;QACnC,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,EAAuB,CAAC;IACzC,CAAC;IAED;;OAEG;IACO,UAAU;QAChB,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACU,MAAM,CACf,OAAkC;;YAElC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAe,EAAE,EAAE;gBAC/B,OAAO,CAAC,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACrC,CAAC;YACL,CAAC,CAAC;YACF,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;KAAA;IAED;;;;OAIG;IACH,6DAA6D;IACtD,QAAQ,CAAC,IAAY;QACxB,OAAO,EAAE,CAAC;IACd,CAAC;IAiBD;;;;;OAKG;IACH,6DAA6D;IACtD,YAAY,CAAC,WAAmC,EAAE,SAAiC;QACtF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ"}
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { Backend } from "../../Backend";
11
- import { BackendEventType } from "../../BackendEvent";
11
+ import { BackendEventType } from "../../../communication/BackendEvent";
12
12
  /**
13
13
  * Implementation of a JavaScript backend for Papyros
14
14
  * by using eval and overriding some builtins
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JavaScriptWorker.js","sourceRoot":"","sources":["../../../../src/backend/workers/javascript/JavaScriptWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
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,5 +1,5 @@
1
1
  import { Backend, RunMode, WorkerDiagnostic } from "../../Backend";
2
- import { BackendEvent } from "../../BackendEvent";
2
+ import { BackendEvent } from "../../../communication/BackendEvent";
3
3
  import { PyodideExtras } from "pyodide-worker-runner";
4
4
  /**
5
5
  * Implementation of a Python backend for Papyros
@@ -19,7 +19,7 @@ export declare class PythonWorker extends Backend<PyodideExtras> {
19
19
  */
20
20
  protected syncExpose(): any;
21
21
  private static getPyodide;
22
- launch(onEvent: (e: BackendEvent) => void, onOverflow: () => void): Promise<void>;
22
+ launch(onEvent: (e: BackendEvent) => void): Promise<void>;
23
23
  /**
24
24
  * Helper method to install imports and prevent race conditions with double downloading
25
25
  * @param {string} code The code containing import statements
@@ -35,12 +35,12 @@ export class PythonWorker extends Backend {
35
35
  return yield loadPyodideAndPackage({ url: pythonPackageUrl, format: ".tgz" });
36
36
  });
37
37
  }
38
- launch(onEvent, onOverflow) {
38
+ launch(onEvent) {
39
39
  const _super = Object.create(null, {
40
40
  launch: { get: () => super.launch }
41
41
  });
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
- yield _super.launch.call(this, onEvent, onOverflow);
43
+ yield _super.launch.call(this, onEvent);
44
44
  this.pyodide = yield PythonWorker.getPyodide();
45
45
  // Python calls our function with a PyProxy dict or a Js Map,
46
46
  // These must be converted to a PapyrosEvent (JS Object) to allow message passing
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PythonWorker.js","sourceRoot":"","sources":["../../../../src/backend/workers/python/PythonWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
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"}
@@ -9,10 +9,6 @@ export declare class BackendEventQueue {
9
9
  * Function to process events in the queue
10
10
  */
11
11
  private callback;
12
- /**
13
- * The maximal amount of output events to send before overflowing
14
- */
15
- private limit;
16
12
  /**
17
13
  * The time in milliseconds before sending events through
18
14
  */
@@ -21,37 +17,19 @@ export declare class BackendEventQueue {
21
17
  * Queue storing the BackendEvents before flushing
22
18
  */
23
19
  private queue;
24
- /**
25
- * Queue storing Output-events after overflowing
26
- */
27
- private overflow;
28
- /**
29
- * Callback for when overflow occurs
30
- */
31
- private onOverflow;
32
- /**
33
- * Keep track whether the queue reached its limit this run
34
- */
35
- private overflown;
36
20
  /**
37
21
  * Time in milliseconds when the last flush occurred
38
22
  */
39
23
  private lastFlushTime;
40
- /**
41
- * Amount of BackendEvents sent through this run
42
- */
43
- private sendCount;
44
24
  /**
45
25
  * Decoder to convert data to strings
46
26
  */
47
27
  private decoder;
48
28
  /**
49
29
  * @param {function(BackendEvent):void} callback Function to process events in the queue
50
- * @param {function():void} onOverflow Callback for when overflow occurs
51
- * @param {number} limit The maximal amount of output lines to send before overflowing
52
30
  * @param {number} flushTime The time in milliseconds before sending events through
53
31
  */
54
- constructor(callback: (e: BackendEvent) => void, onOverflow: () => void, limit?: number, flushTime?: number);
32
+ constructor(callback: (e: BackendEvent) => void, flushTime?: number);
55
33
  /**
56
34
  * Add an element to the queue
57
35
  * @param {BackendEventType} type The type of the event
@@ -70,23 +48,10 @@ export declare class BackendEventQueue {
70
48
  * Reset the queue contents for a new run
71
49
  */
72
50
  reset(): void;
73
- /**
74
- * @param {BackendEvent} e The event put in the queue
75
- * @return {number} The amount of lines of data in the event
76
- */
77
- private static lines;
78
51
  /**
79
52
  * Flush the queue contents using the callback
80
53
  */
81
54
  flush(): void;
82
- /**
83
- * @return {boolean} Whether too many output events were generated
84
- */
85
- hasOverflow(): boolean;
86
- /**
87
- * @return {Array<BackendEvent>} The events that happened after overflow
88
- */
89
- getOverflow(): Array<BackendEvent>;
90
55
  /**
91
56
  * @param {Function} callback The event-consuming callback
92
57
  */