@learnpack/learnpack 2.1.25 → 2.1.27

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 (187) hide show
  1. package/README.md +16 -16
  2. package/bin/run +17 -17
  3. package/bin/run.cmd +3 -3
  4. package/oclif.manifest.json +1 -1
  5. package/package.json +139 -138
  6. package/src/commands/audit.ts +134 -109
  7. package/src/commands/clean.ts +29 -29
  8. package/src/commands/download.ts +62 -62
  9. package/src/commands/init.ts +39 -39
  10. package/src/commands/login.ts +42 -42
  11. package/src/commands/logout.ts +43 -43
  12. package/src/commands/publish.ts +107 -107
  13. package/src/commands/start.ts +264 -234
  14. package/src/commands/test.ts +85 -85
  15. package/src/index.ts +1 -1
  16. package/src/managers/config/allowed_files.ts +29 -29
  17. package/src/managers/config/defaults.ts +4 -2
  18. package/src/managers/config/exercise.ts +309 -302
  19. package/src/managers/config/index.ts +159 -138
  20. package/src/managers/file.ts +178 -169
  21. package/src/managers/gitpod.ts +84 -84
  22. package/src/managers/server/index.ts +78 -69
  23. package/src/managers/server/routes.ts +139 -90
  24. package/src/managers/session.ts +147 -118
  25. package/src/managers/socket.ts +252 -239
  26. package/src/managers/test.ts +83 -83
  27. package/src/models/action.ts +10 -3
  28. package/src/models/config-manager.ts +23 -23
  29. package/src/models/config.ts +9 -2
  30. package/src/models/counter.ts +11 -11
  31. package/src/models/errors.ts +22 -22
  32. package/src/models/exercise-obj.ts +6 -3
  33. package/src/models/file.ts +5 -5
  34. package/src/models/findings.ts +18 -18
  35. package/src/models/flags.ts +10 -10
  36. package/src/models/front-matter.ts +11 -11
  37. package/src/models/gitpod-data.ts +19 -19
  38. package/src/models/language.ts +4 -4
  39. package/src/models/package.ts +7 -7
  40. package/src/models/plugin-config.ts +17 -17
  41. package/src/models/session.ts +29 -26
  42. package/src/models/socket.ts +54 -48
  43. package/src/models/status.ts +16 -15
  44. package/src/models/success-types.ts +1 -1
  45. package/src/plugin/command/compile.ts +17 -17
  46. package/src/plugin/command/test.ts +30 -30
  47. package/src/plugin/index.ts +6 -6
  48. package/src/plugin/plugin.ts +94 -94
  49. package/src/plugin/utils.ts +87 -87
  50. package/src/types/node-fetch.d.ts +1 -1
  51. package/src/ui/download.ts +71 -71
  52. package/src/utils/BaseCommand.ts +48 -48
  53. package/src/utils/SessionCommand.ts +48 -48
  54. package/src/utils/api.ts +246 -194
  55. package/src/utils/audit.ts +392 -395
  56. package/src/utils/console.ts +24 -24
  57. package/src/utils/errors.ts +117 -117
  58. package/src/utils/exercisesQueue.ts +51 -51
  59. package/src/utils/fileQueue.ts +198 -198
  60. package/src/utils/misc.ts +23 -23
  61. package/src/utils/templates/gitignore.txt +19 -19
  62. package/src/utils/templates/incremental/.learn/exercises/01-hello-world/README.es.md +24 -24
  63. package/src/utils/templates/incremental/.learn/exercises/01-hello-world/README.md +24 -24
  64. package/src/utils/templates/incremental/README.ejs +4 -4
  65. package/src/utils/templates/incremental/README.es.ejs +4 -4
  66. package/src/utils/templates/isolated/01-hello-world/README.es.md +26 -26
  67. package/src/utils/templates/isolated/01-hello-world/README.md +26 -26
  68. package/src/utils/templates/isolated/README.ejs +4 -4
  69. package/src/utils/templates/isolated/README.es.ejs +4 -4
  70. package/src/utils/templates/no-grading/README.ejs +4 -4
  71. package/src/utils/templates/no-grading/README.es.ejs +4 -4
  72. package/src/utils/validators.ts +18 -18
  73. package/src/utils/watcher.ts +14 -14
  74. package/lib/commands/audit.d.ts +0 -6
  75. package/lib/commands/audit.js +0 -317
  76. package/lib/commands/clean.d.ts +0 -8
  77. package/lib/commands/clean.js +0 -25
  78. package/lib/commands/download.d.ts +0 -13
  79. package/lib/commands/download.js +0 -55
  80. package/lib/commands/init.d.ts +0 -9
  81. package/lib/commands/init.js +0 -123
  82. package/lib/commands/login.d.ts +0 -14
  83. package/lib/commands/login.js +0 -37
  84. package/lib/commands/logout.d.ts +0 -14
  85. package/lib/commands/logout.js +0 -37
  86. package/lib/commands/publish.d.ts +0 -14
  87. package/lib/commands/publish.js +0 -82
  88. package/lib/commands/start.d.ts +0 -7
  89. package/lib/commands/start.js +0 -165
  90. package/lib/commands/test.d.ts +0 -6
  91. package/lib/commands/test.js +0 -62
  92. package/lib/index.d.ts +0 -1
  93. package/lib/index.js +0 -4
  94. package/lib/managers/config/allowed_files.d.ts +0 -5
  95. package/lib/managers/config/allowed_files.js +0 -30
  96. package/lib/managers/config/defaults.d.ts +0 -37
  97. package/lib/managers/config/defaults.js +0 -38
  98. package/lib/managers/config/exercise.d.ts +0 -36
  99. package/lib/managers/config/exercise.js +0 -230
  100. package/lib/managers/config/index.d.ts +0 -3
  101. package/lib/managers/config/index.js +0 -302
  102. package/lib/managers/file.d.ts +0 -13
  103. package/lib/managers/file.js +0 -134
  104. package/lib/managers/gitpod.d.ts +0 -3
  105. package/lib/managers/gitpod.js +0 -67
  106. package/lib/managers/server/index.d.ts +0 -6
  107. package/lib/managers/server/index.js +0 -51
  108. package/lib/managers/server/routes.d.ts +0 -4
  109. package/lib/managers/server/routes.js +0 -167
  110. package/lib/managers/session.d.ts +0 -3
  111. package/lib/managers/session.js +0 -104
  112. package/lib/managers/socket.d.ts +0 -3
  113. package/lib/managers/socket.js +0 -164
  114. package/lib/managers/test.d.ts +0 -0
  115. package/lib/managers/test.js +0 -84
  116. package/lib/models/action.d.ts +0 -2
  117. package/lib/models/action.js +0 -2
  118. package/lib/models/audit.d.ts +0 -15
  119. package/lib/models/audit.js +0 -2
  120. package/lib/models/config-manager.d.ts +0 -21
  121. package/lib/models/config-manager.js +0 -2
  122. package/lib/models/config.d.ts +0 -60
  123. package/lib/models/config.js +0 -2
  124. package/lib/models/counter.d.ts +0 -11
  125. package/lib/models/counter.js +0 -2
  126. package/lib/models/errors.d.ts +0 -15
  127. package/lib/models/errors.js +0 -2
  128. package/lib/models/exercise-obj.d.ts +0 -27
  129. package/lib/models/exercise-obj.js +0 -2
  130. package/lib/models/file.d.ts +0 -5
  131. package/lib/models/file.js +0 -2
  132. package/lib/models/findings.d.ts +0 -17
  133. package/lib/models/findings.js +0 -2
  134. package/lib/models/flags.d.ts +0 -10
  135. package/lib/models/flags.js +0 -2
  136. package/lib/models/front-matter.d.ts +0 -11
  137. package/lib/models/front-matter.js +0 -2
  138. package/lib/models/gitpod-data.d.ts +0 -16
  139. package/lib/models/gitpod-data.js +0 -2
  140. package/lib/models/language.d.ts +0 -4
  141. package/lib/models/language.js +0 -2
  142. package/lib/models/package.d.ts +0 -7
  143. package/lib/models/package.js +0 -2
  144. package/lib/models/plugin-config.d.ts +0 -16
  145. package/lib/models/plugin-config.js +0 -2
  146. package/lib/models/session.d.ts +0 -23
  147. package/lib/models/session.js +0 -2
  148. package/lib/models/socket.d.ts +0 -31
  149. package/lib/models/socket.js +0 -2
  150. package/lib/models/status.d.ts +0 -1
  151. package/lib/models/status.js +0 -2
  152. package/lib/models/success-types.d.ts +0 -1
  153. package/lib/models/success-types.js +0 -2
  154. package/lib/plugin/command/compile.d.ts +0 -6
  155. package/lib/plugin/command/compile.js +0 -18
  156. package/lib/plugin/command/test.d.ts +0 -6
  157. package/lib/plugin/command/test.js +0 -25
  158. package/lib/plugin/index.d.ts +0 -27
  159. package/lib/plugin/index.js +0 -7
  160. package/lib/plugin/plugin.d.ts +0 -8
  161. package/lib/plugin/plugin.js +0 -68
  162. package/lib/plugin/utils.d.ts +0 -16
  163. package/lib/plugin/utils.js +0 -58
  164. package/lib/ui/download.d.ts +0 -5
  165. package/lib/ui/download.js +0 -61
  166. package/lib/utils/BaseCommand.d.ts +0 -8
  167. package/lib/utils/BaseCommand.js +0 -41
  168. package/lib/utils/SessionCommand.d.ts +0 -10
  169. package/lib/utils/SessionCommand.js +0 -47
  170. package/lib/utils/api.d.ts +0 -12
  171. package/lib/utils/api.js +0 -173
  172. package/lib/utils/audit.d.ts +0 -16
  173. package/lib/utils/audit.js +0 -302
  174. package/lib/utils/console.d.ts +0 -12
  175. package/lib/utils/console.js +0 -19
  176. package/lib/utils/errors.d.ts +0 -17
  177. package/lib/utils/errors.js +0 -100
  178. package/lib/utils/exercisesQueue.d.ts +0 -9
  179. package/lib/utils/exercisesQueue.js +0 -38
  180. package/lib/utils/fileQueue.d.ts +0 -40
  181. package/lib/utils/fileQueue.js +0 -168
  182. package/lib/utils/misc.d.ts +0 -1
  183. package/lib/utils/misc.js +0 -23
  184. package/lib/utils/validators.d.ts +0 -5
  185. package/lib/utils/validators.js +0 -17
  186. package/lib/utils/watcher.d.ts +0 -2
  187. package/lib/utils/watcher.js +0 -23
@@ -1,164 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const socket_io_1 = require("socket.io");
4
- const console_1 = require("../utils/console");
5
- const fileQueue_1 = require("../utils/fileQueue");
6
- const SocketManager = {
7
- socket: null,
8
- config: null,
9
- allowedActions: [],
10
- possibleActions: ['build', 'reset', 'test', 'tutorial'],
11
- isTestingEnvironment: false,
12
- actionCallBacks: {
13
- clean: (_, s) => {
14
- s.logs = [];
15
- },
16
- },
17
- addAllowed: function (actions) {
18
- var _a, _b;
19
- if (!Array.isArray(actions))
20
- actions = [actions];
21
- // avoid adding the "test" action if grading is disabled
22
- if (actions.includes('test') && ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.disabledActions) === null || _b === void 0 ? void 0 : _b.includes('test'))) {
23
- actions = actions.filter((a) => a !== 'test');
24
- }
25
- this.allowedActions = [
26
- ...(this.allowedActions || []).filter((a) => !actions.includes(a)),
27
- ...actions,
28
- ];
29
- },
30
- removeAllowed: function (actions) {
31
- if (!Array.isArray(actions)) {
32
- actions = [actions];
33
- }
34
- this.allowedActions = (this.allowedActions || []).filter((a) => !actions.includes(a));
35
- },
36
- start: function (config, server, isTestingEnvironment = false) {
37
- var _a, _b, _c, _d;
38
- this.config = config;
39
- this.isTestingEnvironment = isTestingEnvironment;
40
- this.socket = new socket_io_1.Server(server, { allowEIO3: true });
41
- this.allowedActions = ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.disabledActions) === null || _b === void 0 ? void 0 : _b.includes('test')) || ((_c = this.config) === null || _c === void 0 ? void 0 : _c.disableGrading) ? this.possibleActions.filter(a => { var _a, _b; return !((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.disabledActions) === null || _b === void 0 ? void 0 : _b.includes(a)) && a !== 'test'; }) : this.possibleActions.filter(a => { var _a; return !((_a = this.allowedActions) === null || _a === void 0 ? void 0 : _a.includes(a)); });
42
- if (((_d = this.config) === null || _d === void 0 ? void 0 : _d.grading) === 'incremental') {
43
- this.removeAllowed('reset');
44
- }
45
- if (this.socket) {
46
- this.socket.on('connection', (socket) => {
47
- console_1.default.debug('Connection with client successfully established', this.allowedActions);
48
- if (!this.isTestingEnvironment) {
49
- this.log('ready', ['Ready to compile or test...']);
50
- }
51
- socket.on('compiler', ({ action, data }) => {
52
- this.emit('clean', 'pending', ['Working...']);
53
- if (typeof data.exerciseSlug === 'undefined') {
54
- this.log('internal-error', ['No exercise slug specified']);
55
- console_1.default.error('No exercise slug especified');
56
- return;
57
- }
58
- if (this.actionCallBacks &&
59
- typeof this.actionCallBacks[action] === 'function') {
60
- this.actionCallBacks[action](data);
61
- }
62
- else {
63
- this.log('internal-error', ['Uknown action ' + action]);
64
- }
65
- });
66
- });
67
- }
68
- },
69
- on: function (action, callBack) {
70
- if (this.actionCallBacks) {
71
- this.actionCallBacks[action] = callBack;
72
- }
73
- },
74
- clean: function (_ = 'pending', logs = []) {
75
- this.emit('clean', 'pending', logs);
76
- },
77
- ask: function (questions = []) {
78
- return new Promise((resolve, _) => {
79
- this.emit('ask', 'pending', ['Waiting for input...'], questions);
80
- this.on('input', ({ inputs }) => {
81
- // Workaround to fix issue because null inputs
82
- let isNull = false;
83
- // eslint-disable-next-line
84
- inputs.forEach((input) => {
85
- if (input === null) {
86
- isNull = true;
87
- }
88
- });
89
- if (!isNull) {
90
- resolve(inputs);
91
- }
92
- });
93
- });
94
- },
95
- reload: function (files = null, exercises = null) {
96
- this.emit('reload', (files === null || files === void 0 ? void 0 : files.join('')) || '' /* TODO: Check it out this */, exercises);
97
- },
98
- openWindow: function (url = '') {
99
- fileQueue_1.default.dispatcher().enqueue(fileQueue_1.default.events.OPEN_WINDOW, url);
100
- this.emit(fileQueue_1.default.events.OPEN_WINDOW, 'ready', [`Opening ${url}`], [], [], url);
101
- },
102
- log: function (status, messages = [], report = [], data = null) {
103
- this.emit('log', status, messages, [], report, data);
104
- console_1.default.log(messages);
105
- },
106
- emit: function (action, status = 'ready', logs = [], inputs = [], report = [], data = null) {
107
- var _a, _b, _c, _d, _e, _f;
108
- if (((_a = this.config) === null || _a === void 0 ? void 0 : _a.compiler) &&
109
- ['webpack', 'vanillajs', 'vue', 'react', 'css', 'html'].includes((_b = this.config) === null || _b === void 0 ? void 0 : _b.compiler)) {
110
- if (['compiler-success', 'compiler-warning'].includes(status))
111
- this.addAllowed('preview');
112
- if (['compiler-error'].includes(status) || action === 'ready')
113
- this.removeAllowed('preview');
114
- }
115
- if (((_c = this.config) === null || _c === void 0 ? void 0 : _c.grading) === 'incremental') {
116
- this.removeAllowed('reset');
117
- }
118
- // eslint-disable-next-line
119
- (_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.disabledActions) === null || _e === void 0 ? void 0 : _e.forEach((a) => this.removeAllowed(a));
120
- (_f = this.socket) === null || _f === void 0 ? void 0 : _f.emit('compiler', {
121
- action,
122
- status,
123
- logs,
124
- allowed: this.allowedActions,
125
- inputs,
126
- report,
127
- data,
128
- });
129
- },
130
- ready: function (message) {
131
- this.log('ready', [message]);
132
- },
133
- success: function (type, stdout) {
134
- const types = ['compiler', 'testing'];
135
- if (!types.includes(type))
136
- this.fatal(`Invalid socket success type "${type}" on socket`);
137
- else if (stdout === '')
138
- this.log((type + '-success'), [
139
- 'No stdout to display on the console',
140
- ]);
141
- else
142
- this.log((type + '-success'), [stdout]);
143
- },
144
- error: function (type, stdout) {
145
- console.error('Socket error: ' + type, stdout);
146
- this.log(type, [stdout]);
147
- if (this.isTestingEnvironment) {
148
- this.onTestingFinished({
149
- result: 'failed',
150
- });
151
- }
152
- },
153
- fatal: function (msg) {
154
- this.log('internal-error', [msg]);
155
- throw msg;
156
- },
157
- onTestingFinished: function (result) {
158
- var _a;
159
- if ((_a = this.config) === null || _a === void 0 ? void 0 : _a.testingFinishedCallback) {
160
- this.config.testingFinishedCallback(result);
161
- }
162
- },
163
- };
164
- exports.default = SocketManager;
File without changes
@@ -1,84 +0,0 @@
1
- "use strict";
2
- /*
3
-
4
- import * as path from 'path'
5
- import * as shell from 'shelljs'
6
- import * as fs from 'fs'
7
- import { TestingError } from './errors'
8
- import Console from '../utils/console'
9
- import * as color from 'colors'
10
- import bcActivity from './bcActivity.js'
11
- import { CompilerError } from '../utils/errors'
12
- import { ISocket } from '../models/socket'
13
- import { IFile } from '../models/file'
14
- import { IConfig } from '@oclif/config'
15
-
16
- module.exports = async function ({ socket, files, config, slug }: {socket: ISocket, files: IFile[], config: IConfig, slug: string}) {
17
-
18
- const configPath = path.resolve(__dirname, `./config/tester/${config.tester}/${config.language}.config.js`);
19
- if (!fs.existsSync(configPath)) throw CompilerError(`Uknown testing engine for compiler: '${config.language}'`);
20
-
21
- const testingConfig = require(configPath)(files, config, slug);
22
- testingConfig.validate();
23
-
24
- if (config.ignoreTests) throw TestingError('Grading is disabled on learn.json file.');
25
-
26
- if (!fs.existsSync(`${config.dirPath}/reports`)) {
27
- fs.mkdirSync(`${config.dirPath}/reports`);
28
- Console.debug(`Creating the ${config.dirPath}/reports directory`);
29
- }
30
-
31
- Console.info('Running tests...');
32
-
33
- const command = await testingConfig.getCommand(socket)
34
- const { stdout, stderr, code } = shell.exec(command);
35
-
36
- if (code != 0) {
37
- const errors = typeof (testingConfig.getErrors === 'function') ? testingConfig.getErrors(stdout || stderr) : [];
38
- socket.log('testing-error', errors);
39
- console.log(errors.join('\n'))
40
-
41
- Console.error("There was an error while testing");
42
- bcActivity.error('exercise_error', {
43
- message: errors,
44
- name: `${config.tester}-error`,
45
- framework: config.tester,
46
- language: config.language,
47
- data: slug,
48
- compiler: config.compiler
49
- });
50
- }
51
- else {
52
- socket.log('testing-success', [stdout || stderr].concat(["😁Everything is amazing!"]));
53
- Console.success("Everything is amazing!");
54
-
55
- bcActivity.activity('exercise_success', {
56
- language: config.language,
57
- slug: slug,
58
- editor: config.editor,
59
- compiler: config.compiler
60
- });
61
- config.exercises = config.exercises.map(e => {
62
- if (e.slug === slug) e.done = true;
63
- return e;
64
- });
65
- }
66
-
67
- if (typeof testingConfig.cleanup !== "undefined") {
68
- if (typeof testingConfig.cleanup === 'function' || typeof testingConfig.cleanup === 'object') {
69
- const clean = await testingConfig.cleanup(socket);
70
- if (clean) {
71
- const { stdout, stderr, code } = shell.exec(clean);
72
- if (code == 0) {
73
- Console.debug("The cleanup command runned successfully");
74
- }
75
- else Console.warning("There is an error on the cleanup command for the test");
76
- }
77
-
78
- }
79
- }
80
-
81
- return true;
82
- };
83
-
84
- */
@@ -1,2 +0,0 @@
1
- export declare type TAction = 'test' | 'log' | 'reload' | 'ready' | 'clean' | 'ask';
2
- export declare type ICallback = (...agrs: any[]) => any;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,15 +0,0 @@
1
- export interface IAuditErrors {
2
- exercise?: string;
3
- msg: string;
4
- }
5
- declare type TType = "string" | "array" | "number" | "url" | "boolean";
6
- export interface ISchemaItem {
7
- key: string;
8
- mandatory: boolean;
9
- type: TType;
10
- max_size?: number;
11
- allowed_extensions?: string[];
12
- enum?: string[];
13
- max_item_size?: number;
14
- }
15
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,21 +0,0 @@
1
- import { IConfigObj, TGrading } from "./config";
2
- import { IExercise } from "./exercise-obj";
3
- export interface IConfigManagerAttributes {
4
- grading: TGrading;
5
- disableGrading: boolean;
6
- version: string;
7
- mode?: string;
8
- }
9
- export interface IConfigManager {
10
- validLanguages?: any;
11
- get: () => IConfigObj;
12
- clean: () => void;
13
- getExercise: (slug: string | undefined) => IExercise;
14
- startExercise: (slug: string) => IExercise;
15
- reset: (slug: string) => void;
16
- buildIndex: () => boolean | void;
17
- watchIndex: (onChange: (...args: Array<any>) => void) => void;
18
- save: () => void;
19
- noCurrentExercise: () => void;
20
- getAllExercises: () => IExercise[];
21
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,60 +0,0 @@
1
- import { IExercise } from "./exercise-obj";
2
- export declare type TGrading = "isolated" | "incremental" | "no-grading";
3
- export declare type TMode = "preview" | "standalone";
4
- export declare type TConfigAction = "test" | "build" | "tutorial" | "reset";
5
- export declare type TConfigObjAttributes = "config" | "exercises" | "grading";
6
- export declare type TCompiler = "webpack" | "vanillajs" | "vue" | "react" | "css" | "html";
7
- export interface IConfigPath {
8
- base: string;
9
- }
10
- export interface IEditor {
11
- mode?: TMode;
12
- version: string;
13
- agent?: string;
14
- }
15
- export interface TEntries {
16
- python3?: string;
17
- html?: string;
18
- node?: string;
19
- react?: string;
20
- java?: string;
21
- }
22
- export interface IConfig {
23
- port?: string;
24
- repository?: string;
25
- description?: string;
26
- slug?: string;
27
- dirPath: string;
28
- preview?: string;
29
- entries: TEntries;
30
- grading: TGrading;
31
- configPath: string;
32
- translations: Array<string>;
33
- outputPath?: string;
34
- editor: IEditor;
35
- language: string;
36
- title: string;
37
- duration: number;
38
- difficulty?: string;
39
- exercisesPath: string;
40
- disableGrading: boolean;
41
- actions: Array<string>;
42
- autoPlay: boolean;
43
- projectType?: string;
44
- contact?: string;
45
- disabledActions?: Array<TConfigAction>;
46
- compiler: TCompiler;
47
- publicPath: string;
48
- publicUrl?: string;
49
- skills: Array<string>;
50
- runHook: (...agrs: Array<any>) => void;
51
- testingFinishedCallback: (arg: any | undefined) => void;
52
- }
53
- export interface IConfigObj {
54
- session?: number;
55
- currentExercise?: any;
56
- config?: IConfig;
57
- exercises?: Array<IExercise>;
58
- confPath?: IConfigPath;
59
- address?: string;
60
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
1
- interface ILinks {
2
- error: number;
3
- total: number;
4
- }
5
- export interface ICounter {
6
- images: ILinks;
7
- links: ILinks;
8
- exercises: number;
9
- readmeFiles: number;
10
- }
11
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,15 +0,0 @@
1
- export interface ISolution {
2
- video?: string;
3
- message: string;
4
- slug?: string;
5
- gif: string;
6
- }
7
- export interface IError extends TypeError {
8
- status?: number;
9
- type?: "validation-error" | "not-found-error" | "compiler-error" | "testing-error" | "auth-error" | "internal-error";
10
- slug?: string;
11
- video?: string;
12
- message: string;
13
- gif?: string;
14
- stdout?: string;
15
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,27 +0,0 @@
1
- /// <reference types="node" />
2
- import { IFile } from "./file";
3
- import { IConfig } from "./config";
4
- import { ISocket } from "./socket";
5
- export interface IExercise {
6
- position?: number;
7
- files: Array<IFile>;
8
- slug: string;
9
- path: string;
10
- done: boolean;
11
- language?: string | null;
12
- entry?: string | null;
13
- graded?: boolean;
14
- translations?: {
15
- [key: string]: string;
16
- };
17
- title: string;
18
- getReadme?: (lang: string | null) => any;
19
- getFile?: (name: string) => string | Buffer;
20
- saveFile?: (name: string, content: string) => void;
21
- getTestReport?: () => any;
22
- test?: (sessionConfig: any, config: IConfig, socket: ISocket) => void;
23
- }
24
- export interface IExerciseData {
25
- exerciseSlug: string;
26
- files: string[];
27
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- export interface IFile {
2
- path: string;
3
- name: string;
4
- hidden: boolean;
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +0,0 @@
1
- interface IFindingOption {
2
- content: string;
3
- absUrl: string;
4
- mdUrl: string;
5
- relUrl: string;
6
- }
7
- interface ILinks {
8
- [key: string]: IFindingOption;
9
- }
10
- export interface IFindings {
11
- relativeImages?: ILinks;
12
- externalImages?: ILinks;
13
- markdownLinks?: ILinks;
14
- url?: ILinks;
15
- uploadcare?: ILinks;
16
- }
17
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +0,0 @@
1
- export interface IStartFlags {
2
- port?: string | unknown;
3
- host?: string | unknown;
4
- disableGrading?: boolean | unknown;
5
- watch?: boolean | unknown;
6
- editor?: string | unknown;
7
- version?: string | unknown;
8
- grading?: string | unknown;
9
- debug?: boolean | unknown;
10
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
1
- interface IAttributes {
2
- intro: string;
3
- tutorial: string;
4
- }
5
- export interface IFrontmatter {
6
- attributes?: IAttributes;
7
- body?: string;
8
- bodyBegin?: number;
9
- frontmatter?: string;
10
- }
11
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,16 +0,0 @@
1
- import { Server } from 'socket.io';
2
- import { IConfigObj } from './config';
3
- export declare type TFile = string;
4
- export interface IGitpodData {
5
- files: Array<TFile>;
6
- }
7
- export interface IGitpod {
8
- socket: Server | null;
9
- config: IConfigObj | null;
10
- initialized: boolean;
11
- hasGPCommand: boolean;
12
- init: (config?: IConfigObj) => void;
13
- openFiles: (files: Array<TFile>) => Promise<boolean | undefined>;
14
- setup: (config?: IConfigObj) => void;
15
- autosave: (value: string) => void;
16
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +0,0 @@
1
- export interface ILanguage {
2
- title: string;
3
- slug: string;
4
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- export interface IPackage {
2
- title: string;
3
- slug: string;
4
- difficulty: string;
5
- downloads: string;
6
- skills: Array<any>;
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,16 +0,0 @@
1
- import { IConfig } from "./config";
2
- import { IExercise } from "./exercise-obj";
3
- export interface IPluginConfig {
4
- language: string;
5
- compile?: {
6
- run: () => void;
7
- validate: (args: IValidate) => boolean;
8
- dependencies: string[];
9
- };
10
- test?: () => void;
11
- }
12
- interface IValidate {
13
- exercise: IExercise;
14
- configuration: IConfig;
15
- }
16
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,23 +0,0 @@
1
- import { IConfig, IConfigObj } from './config';
2
- export interface IPayload {
3
- email: string;
4
- }
5
- export interface IStartProps {
6
- token: string;
7
- payload: IPayload | null;
8
- }
9
- export interface ISession {
10
- sessionStarted: boolean;
11
- token: string | null;
12
- config: IConfig | null;
13
- currentCohort: null;
14
- initialize: () => Promise<boolean>;
15
- setPayload: (value: IPayload) => Promise<boolean>;
16
- getPayload: () => Promise<any>;
17
- isActive: () => boolean;
18
- get: (config?: IConfigObj) => Promise<any>;
19
- login: () => Promise<void>;
20
- sync: () => Promise<void>;
21
- start: ({ token, payload }: IStartProps) => Promise<void>;
22
- destroy: () => Promise<void>;
23
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,31 +0,0 @@
1
- import { IConfig } from './config';
2
- import { Server } from 'socket.io';
3
- import { DefaultEventsMap } from 'socket.io/dist/typed-events';
4
- import { TAction, ICallback } from './action';
5
- import { TStatus } from './status';
6
- export declare type TPossibleActions = 'build' | 'test' | 'reset' | 'tutorial';
7
- export interface ISocket {
8
- socket: Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any> | null;
9
- config: IConfig | null;
10
- allowedActions: Array<TPossibleActions>;
11
- actionCallBacks: {
12
- [key: string]: ICallback;
13
- };
14
- possibleActions: Array<TPossibleActions>;
15
- isTestingEnvironment: boolean;
16
- addAllowed: (actions: any) => void;
17
- removeAllowed: (actions: any) => void;
18
- start: (config: IConfig, server: any, isTestingEnvironment: boolean) => void;
19
- on: (action: any, callBack: any) => void;
20
- clean: (_: string, logs: Array<any>) => void;
21
- ask: (questions: Array<string>) => void;
22
- reload: (files: Array<string> | null, exercises: Array<string>) => void;
23
- openWindow: (id: string) => void;
24
- log: (status: TStatus, messages?: string | Array<string>, report?: Array<string>, data?: any) => void;
25
- emit: (action: TAction, status: TStatus | string, logs: string | Array<string>, inputs?: Array<string>, report?: Array<string>, data?: any) => void;
26
- ready: (message: string) => void;
27
- error: (type: any, stdout: string) => void;
28
- fatal: (msg: string) => void;
29
- success: (type: any, stdout: string) => void;
30
- onTestingFinished: (obj: any) => void;
31
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- export declare type TStatus = 'ready' | 'internal-error' | 'compiler-success' | 'testing-success' | 'compiling' | 'testing' | 'start_exercise' | 'initializing' | 'configuration_loaded' | 'connection_ended' | 'reset_exercise' | 'open_files' | 'open_window' | 'instructions_closed';
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- export declare type TSuccessType = 'compiler-success' | 'testing-success';
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });