@dodona/papyros 0.1.4-rc → 0.1.8-rc

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 (46) hide show
  1. package/dist/Backend.d.ts +22 -0
  2. package/dist/Backend.js +133 -0
  3. package/dist/Backend.js.map +1 -0
  4. package/dist/BackendManager.d.ts +5 -0
  5. package/dist/BackendManager.js +39 -0
  6. package/dist/BackendManager.js.map +1 -0
  7. package/dist/CodeEditor.d.ts +12 -0
  8. package/dist/CodeEditor.js +146 -0
  9. package/dist/CodeEditor.js.map +1 -0
  10. package/dist/Constants.d.ts +15 -0
  11. package/dist/Constants.js +16 -0
  12. package/dist/Constants.js.map +1 -0
  13. package/dist/Main.d.ts +1 -0
  14. package/dist/Main.js +42 -0
  15. package/dist/Main.js.map +1 -0
  16. package/dist/Papyros.css +9 -0
  17. package/dist/Papyros.d.ts +58 -0
  18. package/dist/Papyros.js +390 -0
  19. package/dist/Papyros.js.map +1 -0
  20. package/dist/PapyrosEvent.d.ts +5 -0
  21. package/dist/PapyrosEvent.js +2 -0
  22. package/dist/PapyrosEvent.js.map +1 -0
  23. package/dist/ProgrammingLanguage.d.ts +6 -0
  24. package/dist/ProgrammingLanguage.js +23 -0
  25. package/dist/ProgrammingLanguage.js.map +1 -0
  26. package/dist/Translations.d.ts +40 -0
  27. package/dist/Translations.js +39 -0
  28. package/dist/Translations.js.map +1 -0
  29. package/dist/util/Logging.d.ts +6 -0
  30. package/dist/util/Logging.js +48 -0
  31. package/dist/util/Logging.js.map +1 -0
  32. package/dist/workers/javascript/JavaScriptWorker.worker.d.ts +1 -0
  33. package/dist/workers/javascript/JavaScriptWorker.worker.js +91 -0
  34. package/dist/workers/javascript/JavaScriptWorker.worker.js.map +1 -0
  35. package/dist/workers/python/PythonWorker.worker.d.ts +1 -0
  36. package/dist/workers/python/PythonWorker.worker.js +161 -0
  37. package/dist/workers/python/PythonWorker.worker.js.map +1 -0
  38. package/dist/workers/python/init.py.d.ts +1 -0
  39. package/dist/workers/python/init.py.js +2 -0
  40. package/dist/workers/python/init.py.js.map +1 -0
  41. package/package.json +5 -7
  42. package/dist/114.index.js +0 -1
  43. package/dist/572.index.js +0 -1
  44. package/dist/806.index.js +0 -1
  45. package/dist/index.d.ts +0 -189
  46. package/dist/index.js +0 -1
@@ -0,0 +1,390 @@
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
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __values = (this && this.__values) || function(o) {
38
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
39
+ if (m) return m.call(o);
40
+ if (o && typeof o.length === "number") return {
41
+ next: function () {
42
+ if (o && i >= o.length) o = void 0;
43
+ return { value: o && o[i++], done: !o };
44
+ }
45
+ };
46
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
47
+ };
48
+ var __read = (this && this.__read) || function (o, n) {
49
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
50
+ if (!m) return o;
51
+ var i = m.call(o), r, ar = [], e;
52
+ try {
53
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
+ }
55
+ catch (error) { e = { error: error }; }
56
+ finally {
57
+ try {
58
+ if (r && !r.done && (m = i["return"])) m.call(i);
59
+ }
60
+ finally { if (e) throw e.error; }
61
+ }
62
+ return ar;
63
+ };
64
+ /* eslint-disable max-len */
65
+ import "./Papyros.css";
66
+ import { proxy } from "comlink";
67
+ import I18n from "i18n-js";
68
+ import { getBackend, stopBackend } from "./BackendManager";
69
+ import { CodeEditor } from "./CodeEditor";
70
+ import { APPLICATION_STATE_TEXT_ID, EDITOR_WRAPPER_ID, INPUT_RELATIVE_URL, INPUT_TA_ID, PROGRAMMING_LANGUAGE_SELECT_ID, OUTPUT_TA_ID, RUN_BTN_ID, STATE_SPINNER_ID, TERMINATE_BTN_ID, LOCALE_SELECT_ID, SERVICE_WORKER_PATH } from "./Constants";
71
+ import { plFromString, ProgrammingLanguage } from "./ProgrammingLanguage";
72
+ import { TRANSLATIONS } from "./Translations";
73
+ import { LogType, papyrosLog } from "./util/Logging";
74
+ function loadTranslations() {
75
+ var e_1, _a;
76
+ try {
77
+ for (var _b = __values(Object.entries(TRANSLATIONS)), _c = _b.next(); !_c.done; _c = _b.next()) {
78
+ var _d = __read(_c.value, 2), language = _d[0], translations = _d[1];
79
+ // Add keys to already existing translations if they exist
80
+ I18n.translations[language] = Object.assign((I18n.translations[language] || {}), translations);
81
+ }
82
+ }
83
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
84
+ finally {
85
+ try {
86
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
87
+ }
88
+ finally { if (e_1) throw e_1.error; }
89
+ }
90
+ }
91
+ var t = I18n.t;
92
+ function renderPapyros(parent, programmingLanguage, standAlone, locale) {
93
+ var getSelectedValue = function (selected, current) {
94
+ return selected === current ? "selected" : "";
95
+ };
96
+ var programmingLanguageSelect = standAlone ?
97
+ "\n <div class=\"mr-2\">\n <label for=\"programming-language-select\">" + t("Papyros.programming_language") + "</label>\n <select id=\"programming-language-select\" class=\"m-2 border-2\">\n <option " + getSelectedValue(programmingLanguage, ProgrammingLanguage.Python) + "\n value=\"" + ProgrammingLanguage.Python + "\">\n " + t("Papyros.Python") + "\n </option>\n <option " + getSelectedValue(programmingLanguage, ProgrammingLanguage.JavaScript) + "\n value=\"" + ProgrammingLanguage.JavaScript + "\">\n " + t("Papyros.JavaScript") + "\n </option>\n </select>\n </div>\n " : "";
98
+ var localeSelect = standAlone ?
99
+ "\n <div class=\"flex flex-row-reverse\">\n <!-- row-reverse to start at the right, so put elements in order of display -->\n <select id=\"locale-select\" class=\"m-2 border-2\">\n <option value=\"en\" " + getSelectedValue(locale, "en") + ">English</option>\n <option value=\"nl\" " + getSelectedValue(locale, "nl") + ">Nederlands</option>\n </select>\n <i class=\"mdi mdi-web text-4xl text-white\"></i>\n </div>\n " : "";
100
+ var navBar = standAlone ?
101
+ "\n <div class=\"bg-blue-500 text-white text-lg p-4 grid grid-cols-8 items-center\">\n <div class=\"col-span-6\">\n " + t("Papyros.Papyros") + "\n </div>\n <div class=\"col-span-2 text-black\">\n " + localeSelect + "\n </div>\n </div>\n " : "";
102
+ parent.innerHTML =
103
+ "\n <div id=\"papyros\" class=\"max-h-screen h-full overflow-y-hidden\">\n " + navBar + "\n <div class=\"m-10\">\n <!-- Header -->\n <div class=\"flex flex-row items-center\">\n " + programmingLanguageSelect + "\n <button id=\"run-code-btn\" type=\"button\"\n class=\"text-white bg-blue-500 border-2 px-4 inset-y-2 rounded-lg\n disabled:opacity-50 disabled:cursor-wait\">\n " + t("Papyros.run") + "\n </button>\n <button id=\"terminate-btn\" type=\"button\" \n class=\"text-white bg-red-500 border-2 m-3 px-4 inset-y-2 rounded-lg\n disabled:opacity-50 disabled:cursor-wait\" hidden>\n " + t("Papyros.terminate") + "\n </button>\n <div class=\"flex flex-row items-center\">\n <svg id=\"state-spinner\" class=\"animate-spin mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" display=\"none\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"red\" stroke-width=\"4\"></circle>\n <path class=\"opacity-75\" fill=\"red\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\n </path>\n </svg>\n <div id=\"application-state-text\">" + t("Papyros.loading") + "</div>\n </div>\n </div>\n\n <!--Body of the application-->\n <div class=\"grid grid-cols-2 gap-4 box-border max-h-full\">\n <!--Left code section-->\n <div class=\"col-span-1\">\n <h1>" + t("Papyros.enter_code") + ":</h1>\n <div id=\"code-area\" class=\"overflow-auto max-h-full min-h-1/4 border-solid border-gray-200 border-2\"></div>\n </div>\n <!--Right user input and output section-->\n <div class=\"col-span-1\">\n <h1>" + t("Papyros.enter_input") + ":</h1>\n <textarea id=\"code-input-area\" class=\"border-2 h-auto w-full max-h-1/4 overflow-auto\" rows=\"5\"></textarea>\n <h1>" + t("Papyros.code_output") + ":</h1>\n <textarea id=\"code-output-area\" readonly class=\"border-2 w-full min-h-1/5 max-h-3/5 overflow-auto\"></textarea>\n </div>\n </div>\n </div>\n </div>\n ";
104
+ }
105
+ var PapyrosState;
106
+ (function (PapyrosState) {
107
+ PapyrosState["Loading"] = "loading";
108
+ PapyrosState["Running"] = "running";
109
+ PapyrosState["AwaitingInput"] = "awaiting_input";
110
+ PapyrosState["Terminating"] = "terminating";
111
+ PapyrosState["Ready"] = "ready";
112
+ })(PapyrosState || (PapyrosState = {}));
113
+ var PapyrosStateManager = /** @class */ (function () {
114
+ function PapyrosStateManager() {
115
+ this.stateSpinner = document.getElementById(STATE_SPINNER_ID);
116
+ this.stateText = document.getElementById(APPLICATION_STATE_TEXT_ID);
117
+ this.runButton = document.getElementById(RUN_BTN_ID);
118
+ this.terminateButton = document.getElementById(TERMINATE_BTN_ID);
119
+ this.state = PapyrosState.Ready;
120
+ }
121
+ PapyrosStateManager.prototype.setState = function (state, message) {
122
+ if (state !== this.state) {
123
+ this.state = state;
124
+ if (state === PapyrosState.Ready) {
125
+ this.stateSpinner.style.display = "none";
126
+ this.runButton.disabled = false;
127
+ this.terminateButton.hidden = true;
128
+ }
129
+ else {
130
+ this.stateSpinner.style.display = "";
131
+ this.runButton.disabled = true;
132
+ this.terminateButton.hidden = false;
133
+ }
134
+ this.stateText.innerText = message || t("Papyros." + state);
135
+ }
136
+ };
137
+ return PapyrosStateManager;
138
+ }());
139
+ var Papyros = /** @class */ (function () {
140
+ function Papyros(programmingLanguage, inputTextArray, inputMetaData) {
141
+ this.stateManager = new PapyrosStateManager();
142
+ this.codeState = {
143
+ programmingLanguage: programmingLanguage,
144
+ editor: new CodeEditor(document.getElementById(EDITOR_WRAPPER_ID), programmingLanguage),
145
+ backend: {},
146
+ outputArea: document.getElementById(OUTPUT_TA_ID),
147
+ runId: 0
148
+ };
149
+ this.inputState = {
150
+ lineNr: 0,
151
+ textEncoder: new TextEncoder(),
152
+ inputArea: document.getElementById(INPUT_TA_ID),
153
+ inputTextArray: inputTextArray,
154
+ inputMetaData: inputMetaData
155
+ };
156
+ }
157
+ Papyros.prototype.launch = function () {
158
+ return __awaiter(this, void 0, void 0, function () {
159
+ var _this = this;
160
+ return __generator(this, function (_a) {
161
+ switch (_a.label) {
162
+ case 0:
163
+ this.stateManager.runButton.addEventListener("click", function () { return _this.runCode(); });
164
+ this.stateManager.terminateButton.addEventListener("click", function () { return _this.terminate(); });
165
+ this.inputState.inputArea.onkeydown = function (e) {
166
+ papyrosLog(LogType.Debug, "Key down in inputArea", e);
167
+ if (_this.stateManager.state === PapyrosState.AwaitingInput &&
168
+ e.key.toLowerCase() === "enter") {
169
+ papyrosLog(LogType.Debug, "Pressed enter! Sending input to user");
170
+ _this.sendInput();
171
+ }
172
+ };
173
+ return [4 /*yield*/, this.startBackend()];
174
+ case 1:
175
+ _a.sent();
176
+ return [2 /*return*/, this];
177
+ }
178
+ });
179
+ });
180
+ };
181
+ Papyros.prototype.setProgrammingLanguage = function (programmingLanguage) {
182
+ return __awaiter(this, void 0, void 0, function () {
183
+ return __generator(this, function (_a) {
184
+ switch (_a.label) {
185
+ case 0:
186
+ if (!(this.codeState.programmingLanguage !== programmingLanguage)) return [3 /*break*/, 2];
187
+ stopBackend(this.codeState.backend);
188
+ this.codeState.programmingLanguage = programmingLanguage;
189
+ this.codeState.editor.setLanguage(programmingLanguage);
190
+ this.codeState.outputArea.value = "";
191
+ return [4 /*yield*/, this.startBackend()];
192
+ case 1:
193
+ _a.sent();
194
+ _a.label = 2;
195
+ case 2: return [2 /*return*/];
196
+ }
197
+ });
198
+ });
199
+ };
200
+ Papyros.prototype.startBackend = function () {
201
+ return __awaiter(this, void 0, void 0, function () {
202
+ var programmingLanguage, _a, inputTextArray, inputMetaData, backend;
203
+ var _this = this;
204
+ return __generator(this, function (_b) {
205
+ switch (_b.label) {
206
+ case 0:
207
+ programmingLanguage = this.codeState.programmingLanguage;
208
+ _a = this.inputState, inputTextArray = _a.inputTextArray, inputMetaData = _a.inputMetaData;
209
+ this.stateManager.setState(PapyrosState.Loading);
210
+ backend = getBackend(programmingLanguage);
211
+ return [4 /*yield*/, backend.launch(proxy(function (e) { return _this.onMessage(e); }), inputTextArray, inputMetaData)];
212
+ case 1:
213
+ _b.sent();
214
+ this.codeState.backend = backend;
215
+ this.stateManager.setState(PapyrosState.Ready);
216
+ return [2 /*return*/];
217
+ }
218
+ });
219
+ });
220
+ };
221
+ Papyros.fromElement = function (parent, config) {
222
+ return __awaiter(this, void 0, void 0, function () {
223
+ var inputTextArray, inputMetaData, papyros, programmingLanguageSelect_1, localeSelect_1;
224
+ var _this = this;
225
+ return __generator(this, function (_a) {
226
+ switch (_a.label) {
227
+ case 0:
228
+ loadTranslations();
229
+ I18n.locale = config.locale;
230
+ renderPapyros(parent, config.programmingLanguage, config.standAlone, config.locale);
231
+ inputTextArray = undefined;
232
+ inputMetaData = undefined;
233
+ if (!(typeof SharedArrayBuffer !== "undefined")) return [3 /*break*/, 1];
234
+ papyrosLog(LogType.Important, "Using SharedArrayBuffers");
235
+ // shared memory
236
+ inputTextArray = new Uint8Array(new SharedArrayBuffer(Uint8Array.BYTES_PER_ELEMENT * 1024));
237
+ // 2 Int32s: index 0 indicates whether data is written, index 1 denotes length of the string
238
+ inputMetaData = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2));
239
+ return [3 /*break*/, 3];
240
+ case 1:
241
+ papyrosLog(LogType.Important, "Using serviceWorker for input");
242
+ return [4 /*yield*/, navigator.serviceWorker.register(SERVICE_WORKER_PATH, { scope: "" })];
243
+ case 2:
244
+ _a.sent();
245
+ _a.label = 3;
246
+ case 3:
247
+ papyros = new Papyros(config.programmingLanguage, inputTextArray, inputMetaData);
248
+ if (config.standAlone) {
249
+ programmingLanguageSelect_1 = document.getElementById(PROGRAMMING_LANGUAGE_SELECT_ID);
250
+ programmingLanguageSelect_1.addEventListener("change", function () { return __awaiter(_this, void 0, void 0, function () {
251
+ return __generator(this, function (_a) {
252
+ return [2 /*return*/, papyros.setProgrammingLanguage(plFromString(programmingLanguageSelect_1.value))];
253
+ });
254
+ }); });
255
+ localeSelect_1 = document.getElementById(LOCALE_SELECT_ID);
256
+ localeSelect_1.addEventListener("change", function () { return __awaiter(_this, void 0, void 0, function () {
257
+ return __generator(this, function (_a) {
258
+ document.location.href = "?locale=" + localeSelect_1.value + "&language=" + programmingLanguageSelect_1.value;
259
+ return [2 /*return*/];
260
+ });
261
+ }); });
262
+ }
263
+ return [2 /*return*/, papyros.launch()];
264
+ }
265
+ });
266
+ });
267
+ };
268
+ Papyros.prototype.onError = function (e) {
269
+ papyrosLog(LogType.Debug, "Got error in Papyros: ", e);
270
+ // todo prettify errors
271
+ this.codeState.outputArea.value += e.data;
272
+ };
273
+ Papyros.prototype.sendInput = function () {
274
+ return __awaiter(this, void 0, void 0, function () {
275
+ var _a, inputArea, lineNr, inputMetaData, inputTextArray, textEncoder, lines, line, encoded;
276
+ return __generator(this, function (_b) {
277
+ switch (_b.label) {
278
+ case 0:
279
+ papyrosLog(LogType.Debug, "Handling send Input in Papyros");
280
+ _a = this.inputState, inputArea = _a.inputArea, lineNr = _a.lineNr, inputMetaData = _a.inputMetaData, inputTextArray = _a.inputTextArray, textEncoder = _a.textEncoder;
281
+ lines = inputArea.value.split("\n");
282
+ if (!(lines.length > lineNr && lines[lineNr])) return [3 /*break*/, 4];
283
+ papyrosLog(LogType.Debug, "Sending input to user: " + lines[lineNr]);
284
+ line = lines[lineNr];
285
+ if (!(!inputMetaData || !inputTextArray)) return [3 /*break*/, 2];
286
+ return [4 /*yield*/, fetch(INPUT_RELATIVE_URL, {
287
+ method: "POST",
288
+ body: JSON.stringify({ "input": line })
289
+ })];
290
+ case 1:
291
+ _b.sent();
292
+ return [3 /*break*/, 3];
293
+ case 2:
294
+ encoded = textEncoder.encode(lines[lineNr]);
295
+ inputTextArray.set(encoded);
296
+ Atomics.store(inputMetaData, 1, encoded.length);
297
+ Atomics.store(inputMetaData, 0, 1);
298
+ _b.label = 3;
299
+ case 3:
300
+ this.inputState.lineNr += 1;
301
+ this.stateManager.setState(PapyrosState.Running);
302
+ return [2 /*return*/, true];
303
+ case 4:
304
+ papyrosLog(LogType.Debug, "Had no input to send, still waiting!");
305
+ return [2 /*return*/, false];
306
+ }
307
+ });
308
+ });
309
+ };
310
+ Papyros.prototype.onInput = function (e) {
311
+ return __awaiter(this, void 0, void 0, function () {
312
+ return __generator(this, function (_a) {
313
+ switch (_a.label) {
314
+ case 0:
315
+ papyrosLog(LogType.Debug, "Received onInput event in Papyros: ", e);
316
+ return [4 /*yield*/, this.sendInput()];
317
+ case 1:
318
+ if (!(_a.sent())) {
319
+ this.stateManager.setState(PapyrosState.AwaitingInput);
320
+ // stateText.innerText = "Awaiting input for: " + e.data;
321
+ papyrosLog(LogType.Debug, "User needs to enter input before code can continue");
322
+ }
323
+ else {
324
+ this.stateManager.setState(PapyrosState.Running);
325
+ }
326
+ return [2 /*return*/];
327
+ }
328
+ });
329
+ });
330
+ };
331
+ Papyros.prototype.onMessage = function (e) {
332
+ papyrosLog(LogType.Debug, "received event in onMessage", e);
333
+ if (e.runId === this.codeState.runId) {
334
+ if (e.type === "output") {
335
+ this.codeState.outputArea.value += e.data;
336
+ }
337
+ else if (e.type === "input") {
338
+ this.onInput(e);
339
+ }
340
+ else if (e.type === "error") {
341
+ this.onError(e);
342
+ }
343
+ }
344
+ else {
345
+ papyrosLog(LogType.Debug, "Received event with outdated runId: ", e);
346
+ }
347
+ };
348
+ Papyros.prototype.runCode = function () {
349
+ return __awaiter(this, void 0, void 0, function () {
350
+ var start, error_1, end;
351
+ return __generator(this, function (_a) {
352
+ switch (_a.label) {
353
+ case 0:
354
+ this.codeState.runId += 1;
355
+ this.stateManager.setState(PapyrosState.Running);
356
+ this.codeState.outputArea.value = "";
357
+ papyrosLog(LogType.Debug, "Running code in Papyros, sending to backend");
358
+ start = new Date().getTime();
359
+ _a.label = 1;
360
+ case 1:
361
+ _a.trys.push([1, 3, 4, 5]);
362
+ return [4 /*yield*/, this.codeState.backend.runCode(this.codeState.editor.getCode(), this.codeState.runId)];
363
+ case 2:
364
+ _a.sent();
365
+ return [3 /*break*/, 5];
366
+ case 3:
367
+ error_1 = _a.sent();
368
+ this.onError(error_1);
369
+ return [3 /*break*/, 5];
370
+ case 4:
371
+ end = new Date().getTime();
372
+ this.stateManager.setState(PapyrosState.Ready, t("Papyros.finished", { time: end - start }));
373
+ this.inputState.lineNr = 0;
374
+ return [7 /*endfinally*/];
375
+ case 5: return [2 /*return*/];
376
+ }
377
+ });
378
+ });
379
+ };
380
+ Papyros.prototype.terminate = function () {
381
+ papyrosLog(LogType.Debug, "Called terminate, stopping backend!");
382
+ this.codeState.runId += 1; // ignore messages coming from last run
383
+ this.stateManager.setState(PapyrosState.Terminating);
384
+ stopBackend(this.codeState.backend);
385
+ return this.startBackend();
386
+ };
387
+ return Papyros;
388
+ }());
389
+ export { Papyros };
390
+ //# sourceMappingURL=Papyros.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Papyros.js","sourceRoot":"","sources":["../src/Papyros.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface PapyrosEvent {
2
+ type: "input" | "output" | "script" | "success" | "error";
3
+ data: string;
4
+ runId: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PapyrosEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PapyrosEvent.js","sourceRoot":"","sources":["../src/PapyrosEvent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export declare enum ProgrammingLanguage {
2
+ Python = "Python",
3
+ JavaScript = "JavaScript"
4
+ }
5
+ export declare const PROGRAMMING_LANGUAGES: ProgrammingLanguage[];
6
+ export declare function plFromString(language: string): ProgrammingLanguage;
@@ -0,0 +1,23 @@
1
+ export var ProgrammingLanguage;
2
+ (function (ProgrammingLanguage) {
3
+ ProgrammingLanguage["Python"] = "Python";
4
+ ProgrammingLanguage["JavaScript"] = "JavaScript";
5
+ })(ProgrammingLanguage || (ProgrammingLanguage = {}));
6
+ export var PROGRAMMING_LANGUAGES = [
7
+ ProgrammingLanguage.Python,
8
+ ProgrammingLanguage.JavaScript
9
+ ];
10
+ var LANGUAGE_MAP = new Map([
11
+ ["python", ProgrammingLanguage.Python],
12
+ ["javascript", ProgrammingLanguage.JavaScript]
13
+ ]);
14
+ export function plFromString(language) {
15
+ var langLC = language.toLowerCase();
16
+ if (LANGUAGE_MAP.has(langLC)) {
17
+ return LANGUAGE_MAP.get(langLC);
18
+ }
19
+ else {
20
+ throw new Error("Unsupported language: " + language);
21
+ }
22
+ }
23
+ //# sourceMappingURL=ProgrammingLanguage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgrammingLanguage.js","sourceRoot":"","sources":["../src/ProgrammingLanguage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;IACjB,gDAAyB,CAAA;AAC7B,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B;AAED,MAAM,CAAC,IAAM,qBAAqB,GAAG;IACjC,mBAAmB,CAAC,MAAM;IAC1B,mBAAmB,CAAC,UAAU;CACjC,CAAC;AAEF,IAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IACzB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACtC,CAAC,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,QAAgB;IACzC,IAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;KACpC;SAAM;QACH,MAAM,IAAI,KAAK,CAAC,2BAAyB,QAAU,CAAC,CAAC;KACxD;AACL,CAAC"}
@@ -0,0 +1,40 @@
1
+ export declare const TRANSLATIONS: {
2
+ en: {
3
+ Papyros: {
4
+ Papyros: string;
5
+ enter_code: string;
6
+ enter_input: string;
7
+ code_output: string;
8
+ run: string;
9
+ terminate: string;
10
+ running: string;
11
+ terminating: string;
12
+ loading: string;
13
+ awaiting_input: string;
14
+ ready: string;
15
+ finished: string;
16
+ programming_language: string;
17
+ Python: string;
18
+ JavaScript: string;
19
+ };
20
+ };
21
+ nl: {
22
+ Papyros: {
23
+ Papyros: string;
24
+ enter_code: string;
25
+ enter_input: string;
26
+ code_output: string;
27
+ run: string;
28
+ terminate: string;
29
+ running: string;
30
+ terminating: string;
31
+ loading: string;
32
+ awaiting_input: string;
33
+ ready: string;
34
+ finished: string;
35
+ programming_language: string;
36
+ Python: string;
37
+ JavaScript: string;
38
+ };
39
+ };
40
+ };
@@ -0,0 +1,39 @@
1
+ var ENGLISH_TRANSLATION = {
2
+ "Papyros": "Papyros",
3
+ "enter_code": "Enter your code here",
4
+ "enter_input": "Provide input for your code here",
5
+ "code_output": "Code output",
6
+ "run": "Run",
7
+ "terminate": "Terminate",
8
+ "running": "Running",
9
+ "terminating": "Terminating",
10
+ "loading": "Loading",
11
+ "awaiting_input": "Awaiting input",
12
+ "ready": "",
13
+ "finished": "Code executed in %{time} ms",
14
+ "programming_language": "Programming language",
15
+ "Python": "Python",
16
+ "JavaScript": "JavaScript"
17
+ };
18
+ var DUTCH_TRANSLATION = {
19
+ "Papyros": "Papyros",
20
+ "enter_code": "Voer hier je code in",
21
+ "enter_input": "Geef hier de invoer voor je code in",
22
+ "code_output": "Resultaat van de code",
23
+ "run": "Voer uit",
24
+ "terminate": "Stop uitvoering",
25
+ "running": "Aan het uitvoeren",
26
+ "terminating": "Aan het stoppen",
27
+ "loading": "Aan het laden",
28
+ "awaiting_input": "Aan het wachten op invoer",
29
+ "ready": "",
30
+ "finished": "Code uitgevoerd in %{time} ms",
31
+ "programming_language": "Programmeertaal",
32
+ "Python": "Python",
33
+ "JavaScript": "JavaScript"
34
+ };
35
+ export var TRANSLATIONS = {
36
+ en: { "Papyros": ENGLISH_TRANSLATION },
37
+ nl: { "Papyros": DUTCH_TRANSLATION }
38
+ };
39
+ //# sourceMappingURL=Translations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Translations.js","sourceRoot":"","sources":["../src/Translations.ts"],"names":[],"mappings":"AAAA,IAAM,mBAAmB,GAAG;IACxB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,kCAAkC;IACjD,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,WAAW;IACxB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,aAAa;IAC5B,SAAS,EAAE,SAAS;IACpB,gBAAgB,EAAE,gBAAgB;IAClC,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,6BAA6B;IACzC,sBAAsB,EAAE,sBAAsB;IAC9C,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,YAAY;CAC7B,CAAC;AAEF,IAAM,iBAAiB,GAAG;IACtB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,qCAAqC;IACpD,aAAa,EAAE,uBAAuB;IACtC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,iBAAiB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,aAAa,EAAE,iBAAiB;IAChC,SAAS,EAAE,eAAe;IAC1B,gBAAgB,EAAE,2BAA2B;IAC7C,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,+BAA+B;IAC3C,sBAAsB,EAAE,iBAAiB;IACzC,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,YAAY;CAC7B,CAAC;AAEF,MAAM,CAAC,IAAM,YAAY,GAAG;IACxB,EAAE,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE;IACtC,EAAE,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE;CACvC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare enum LogType {
2
+ Debug = 0,
3
+ Error = 1,
4
+ Important = 2
5
+ }
6
+ export declare function papyrosLog(logType: LogType, ...args: any[]): void;
@@ -0,0 +1,48 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
26
+ export var LogType;
27
+ (function (LogType) {
28
+ LogType[LogType["Debug"] = 0] = "Debug";
29
+ LogType[LogType["Error"] = 1] = "Error";
30
+ LogType[LogType["Important"] = 2] = "Important";
31
+ })(LogType || (LogType = {}));
32
+ var ENVIRONMENT = process.env.NODE_ENV || "development";
33
+ export function papyrosLog(logType) {
34
+ var args = [];
35
+ for (var _i = 1; _i < arguments.length; _i++) {
36
+ args[_i - 1] = arguments[_i];
37
+ }
38
+ var doLog = ENVIRONMENT !== "production" || logType !== LogType.Debug;
39
+ if (doLog) {
40
+ if (logType === LogType.Error) {
41
+ console.error.apply(console, __spreadArray([], __read(args), false));
42
+ }
43
+ else {
44
+ console.log.apply(console, __spreadArray([], __read(args), false));
45
+ }
46
+ }
47
+ }
48
+ //# sourceMappingURL=Logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../src/util/Logging.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,CAAN,IAAY,OAEX;AAFD,WAAY,OAAO;IACf,uCAAK,CAAA;IAAE,uCAAK,CAAA;IAAE,+CAAS,CAAA;AAC3B,CAAC,EAFW,OAAO,KAAP,OAAO,QAElB;AAED,IAAM,WAAW,GAAW,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClE,MAAM,UAAU,UAAU,CAAC,OAAgB;IAAE,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;IACvD,IAAM,KAAK,GAAG,WAAW,KAAK,YAAY,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC;IACxE,IAAI,KAAK,EAAE;QACP,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE;YAC3B,OAAO,CAAC,KAAK,OAAb,OAAO,2BAAU,IAAI,WAAE;SAC1B;aAAM;YACH,OAAO,CAAC,GAAG,OAAX,OAAO,2BAAQ,IAAI,WAAE;SACxB;KACJ;AACL,CAAC"}