@learnpack/learnpack 2.1.25 → 2.1.26

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 (182) hide show
  1. package/README.md +16 -16
  2. package/bin/run +17 -17
  3. package/bin/run.cmd +3 -3
  4. package/lib/commands/audit.d.ts +6 -6
  5. package/lib/commands/audit.js +327 -302
  6. package/lib/commands/clean.d.ts +8 -8
  7. package/lib/commands/clean.js +25 -25
  8. package/lib/commands/download.d.ts +13 -13
  9. package/lib/commands/download.js +55 -55
  10. package/lib/commands/init.d.ts +9 -9
  11. package/lib/commands/init.js +123 -123
  12. package/lib/commands/login.d.ts +14 -14
  13. package/lib/commands/login.js +37 -37
  14. package/lib/commands/logout.d.ts +14 -14
  15. package/lib/commands/logout.js +37 -37
  16. package/lib/commands/publish.d.ts +14 -14
  17. package/lib/commands/publish.js +82 -82
  18. package/lib/commands/start.d.ts +7 -7
  19. package/lib/commands/start.js +165 -165
  20. package/lib/commands/test.d.ts +6 -6
  21. package/lib/commands/test.js +62 -62
  22. package/lib/index.d.ts +1 -1
  23. package/lib/index.js +4 -4
  24. package/lib/managers/config/allowed_files.d.ts +5 -5
  25. package/lib/managers/config/allowed_files.js +30 -30
  26. package/lib/managers/config/defaults.d.ts +39 -37
  27. package/lib/managers/config/defaults.js +40 -38
  28. package/lib/managers/config/exercise.d.ts +36 -36
  29. package/lib/managers/config/exercise.js +233 -230
  30. package/lib/managers/config/index.d.ts +3 -3
  31. package/lib/managers/config/index.js +320 -302
  32. package/lib/managers/file.d.ts +13 -13
  33. package/lib/managers/file.js +134 -134
  34. package/lib/managers/gitpod.d.ts +3 -3
  35. package/lib/managers/gitpod.js +67 -67
  36. package/lib/managers/server/index.d.ts +6 -6
  37. package/lib/managers/server/index.js +58 -51
  38. package/lib/managers/server/routes.d.ts +4 -4
  39. package/lib/managers/server/routes.js +167 -167
  40. package/lib/managers/session.d.ts +3 -3
  41. package/lib/managers/session.js +104 -104
  42. package/lib/managers/socket.d.ts +3 -3
  43. package/lib/managers/socket.js +164 -164
  44. package/lib/managers/test.js +84 -84
  45. package/lib/models/action.d.ts +2 -2
  46. package/lib/models/action.js +2 -2
  47. package/lib/models/audit.d.ts +15 -15
  48. package/lib/models/audit.js +2 -2
  49. package/lib/models/config-manager.d.ts +21 -21
  50. package/lib/models/config-manager.js +2 -2
  51. package/lib/models/config.d.ts +62 -60
  52. package/lib/models/config.js +2 -2
  53. package/lib/models/counter.d.ts +11 -11
  54. package/lib/models/counter.js +2 -2
  55. package/lib/models/errors.d.ts +15 -15
  56. package/lib/models/errors.js +2 -2
  57. package/lib/models/exercise-obj.d.ts +27 -27
  58. package/lib/models/exercise-obj.js +2 -2
  59. package/lib/models/file.d.ts +5 -5
  60. package/lib/models/file.js +2 -2
  61. package/lib/models/findings.d.ts +17 -17
  62. package/lib/models/findings.js +2 -2
  63. package/lib/models/flags.d.ts +10 -10
  64. package/lib/models/flags.js +2 -2
  65. package/lib/models/front-matter.d.ts +11 -11
  66. package/lib/models/front-matter.js +2 -2
  67. package/lib/models/gitpod-data.d.ts +16 -16
  68. package/lib/models/gitpod-data.js +2 -2
  69. package/lib/models/language.d.ts +4 -4
  70. package/lib/models/language.js +2 -2
  71. package/lib/models/package.d.ts +7 -7
  72. package/lib/models/package.js +2 -2
  73. package/lib/models/plugin-config.d.ts +16 -16
  74. package/lib/models/plugin-config.js +2 -2
  75. package/lib/models/session.d.ts +23 -23
  76. package/lib/models/session.js +2 -2
  77. package/lib/models/socket.d.ts +31 -31
  78. package/lib/models/socket.js +2 -2
  79. package/lib/models/status.d.ts +1 -1
  80. package/lib/models/status.js +2 -2
  81. package/lib/models/success-types.d.ts +1 -1
  82. package/lib/models/success-types.js +2 -2
  83. package/lib/plugin/command/compile.d.ts +6 -6
  84. package/lib/plugin/command/compile.js +18 -18
  85. package/lib/plugin/command/test.d.ts +6 -6
  86. package/lib/plugin/command/test.js +25 -25
  87. package/lib/plugin/index.d.ts +27 -27
  88. package/lib/plugin/index.js +7 -7
  89. package/lib/plugin/plugin.d.ts +8 -8
  90. package/lib/plugin/plugin.js +68 -68
  91. package/lib/plugin/utils.d.ts +16 -16
  92. package/lib/plugin/utils.js +58 -58
  93. package/lib/ui/download.d.ts +5 -5
  94. package/lib/ui/download.js +61 -61
  95. package/lib/utils/BaseCommand.d.ts +8 -8
  96. package/lib/utils/BaseCommand.js +41 -41
  97. package/lib/utils/SessionCommand.d.ts +10 -10
  98. package/lib/utils/SessionCommand.js +47 -47
  99. package/lib/utils/api.d.ts +12 -12
  100. package/lib/utils/api.js +173 -173
  101. package/lib/utils/audit.d.ts +16 -16
  102. package/lib/utils/audit.js +302 -302
  103. package/lib/utils/console.d.ts +12 -12
  104. package/lib/utils/console.js +19 -19
  105. package/lib/utils/errors.d.ts +17 -17
  106. package/lib/utils/errors.js +100 -100
  107. package/lib/utils/exercisesQueue.d.ts +9 -9
  108. package/lib/utils/exercisesQueue.js +38 -38
  109. package/lib/utils/fileQueue.d.ts +40 -40
  110. package/lib/utils/fileQueue.js +168 -168
  111. package/lib/utils/misc.d.ts +1 -1
  112. package/lib/utils/misc.js +23 -23
  113. package/lib/utils/validators.d.ts +5 -5
  114. package/lib/utils/validators.js +17 -17
  115. package/lib/utils/watcher.d.ts +2 -2
  116. package/lib/utils/watcher.js +23 -23
  117. package/oclif.manifest.json +1 -1
  118. package/package.json +138 -138
  119. package/src/commands/audit.ts +25 -0
  120. package/src/commands/clean.ts +29 -29
  121. package/src/commands/download.ts +62 -62
  122. package/src/commands/login.ts +42 -42
  123. package/src/commands/logout.ts +43 -43
  124. package/src/commands/publish.ts +107 -107
  125. package/src/commands/start.ts +238 -234
  126. package/src/commands/test.ts +85 -85
  127. package/src/index.ts +1 -1
  128. package/src/managers/config/allowed_files.ts +29 -29
  129. package/src/managers/config/defaults.ts +2 -0
  130. package/src/managers/config/exercise.ts +309 -302
  131. package/src/managers/config/index.ts +22 -1
  132. package/src/managers/file.ts +169 -169
  133. package/src/managers/gitpod.ts +84 -84
  134. package/src/managers/server/index.ts +77 -69
  135. package/src/managers/session.ts +118 -118
  136. package/src/managers/socket.ts +239 -239
  137. package/src/managers/test.ts +83 -83
  138. package/src/models/action.ts +3 -3
  139. package/src/models/config-manager.ts +23 -23
  140. package/src/models/config.ts +2 -0
  141. package/src/models/counter.ts +11 -11
  142. package/src/models/errors.ts +22 -22
  143. package/src/models/file.ts +5 -5
  144. package/src/models/findings.ts +18 -18
  145. package/src/models/flags.ts +10 -10
  146. package/src/models/front-matter.ts +11 -11
  147. package/src/models/gitpod-data.ts +19 -19
  148. package/src/models/language.ts +4 -4
  149. package/src/models/package.ts +7 -7
  150. package/src/models/plugin-config.ts +17 -17
  151. package/src/models/session.ts +26 -26
  152. package/src/models/socket.ts +48 -48
  153. package/src/models/status.ts +15 -15
  154. package/src/models/success-types.ts +1 -1
  155. package/src/plugin/command/compile.ts +17 -17
  156. package/src/plugin/command/test.ts +30 -30
  157. package/src/plugin/index.ts +6 -6
  158. package/src/plugin/plugin.ts +94 -94
  159. package/src/plugin/utils.ts +87 -87
  160. package/src/types/node-fetch.d.ts +1 -1
  161. package/src/ui/download.ts +71 -71
  162. package/src/utils/BaseCommand.ts +48 -48
  163. package/src/utils/SessionCommand.ts +48 -48
  164. package/src/utils/api.ts +194 -194
  165. package/src/utils/audit.ts +395 -395
  166. package/src/utils/console.ts +24 -24
  167. package/src/utils/errors.ts +117 -117
  168. package/src/utils/exercisesQueue.ts +51 -51
  169. package/src/utils/fileQueue.ts +198 -198
  170. package/src/utils/misc.ts +23 -23
  171. package/src/utils/templates/gitignore.txt +19 -19
  172. package/src/utils/templates/incremental/.learn/exercises/01-hello-world/README.es.md +24 -24
  173. package/src/utils/templates/incremental/.learn/exercises/01-hello-world/README.md +24 -24
  174. package/src/utils/templates/incremental/README.ejs +4 -4
  175. package/src/utils/templates/incremental/README.es.ejs +4 -4
  176. package/src/utils/templates/isolated/01-hello-world/README.es.md +26 -26
  177. package/src/utils/templates/isolated/01-hello-world/README.md +26 -26
  178. package/src/utils/templates/isolated/README.ejs +4 -4
  179. package/src/utils/templates/isolated/README.es.ejs +4 -4
  180. package/src/utils/templates/no-grading/README.ejs +4 -4
  181. package/src/utils/templates/no-grading/README.es.ejs +4 -4
  182. package/src/utils/validators.ts +18 -18
@@ -1,62 +1,62 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const console_1 = require("../utils/console");
4
- const SessionCommand_1 = require("../utils/SessionCommand");
5
- const socket_1 = require("../managers/socket");
6
- const server_1 = require("../managers/server");
7
- const exercisesQueue_1 = require("../utils/exercisesQueue");
8
- class TestCommand extends SessionCommand_1.default {
9
- async init() {
10
- const { flags } = this.parse(TestCommand);
11
- await this.initSession(flags);
12
- }
13
- async run() {
14
- var _a, _b, _c;
15
- const { args: { exerciseSlug }, } = this.parse(TestCommand);
16
- // Build exercises index
17
- (_a = this.configManager) === null || _a === void 0 ? void 0 : _a.buildIndex();
18
- let exercises = [];
19
- // test all exercises
20
- !exerciseSlug ?
21
- (exercises = (_b = this.configManager) === null || _b === void 0 ? void 0 : _b.getAllExercises()) :
22
- (exercises = [this.configManager.getExercise(exerciseSlug)]);
23
- const exercisesQueue = new exercisesQueue_1.default(exercises);
24
- const configObject = (_c = this.configManager) === null || _c === void 0 ? void 0 : _c.get();
25
- let hasFailed = false;
26
- let failedTestsCount = 0;
27
- let successTestsCount = 0;
28
- const testsToRunCount = exercisesQueue.size();
29
- configObject.config.testingFinishedCallback = ({ result }) => {
30
- if (result === "failed") {
31
- hasFailed = true;
32
- failedTestsCount++;
33
- }
34
- else {
35
- successTestsCount++;
36
- }
37
- if (exercisesQueue.isEmpty()) {
38
- console_1.default.info(`${testsToRunCount} test${testsToRunCount > 1 ? "s" : ""} runned`);
39
- console_1.default.success(`${successTestsCount} test${successTestsCount > 1 ? "s" : ""} passed`);
40
- console_1.default.error(`${failedTestsCount} test${failedTestsCount > 1 ? "s" : ""} failed`);
41
- process.exit(hasFailed ? 1 : 0);
42
- }
43
- else {
44
- exercisesQueue.pop().test(this.config, config, socket_1.default);
45
- }
46
- };
47
- const config = configObject === null || configObject === void 0 ? void 0 : configObject.config;
48
- const server = await server_1.default(configObject, this.configManager, true);
49
- socket_1.default.start(config, server, true);
50
- exercisesQueue.pop().test(this.config, config, socket_1.default);
51
- }
52
- }
53
- TestCommand.description = `Test exercises`;
54
- TestCommand.args = [
55
- {
56
- name: "exerciseSlug",
57
- required: false,
58
- description: "The name of the exercise to test",
59
- hidden: false,
60
- },
61
- ];
62
- exports.default = TestCommand;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const console_1 = require("../utils/console");
4
+ const SessionCommand_1 = require("../utils/SessionCommand");
5
+ const socket_1 = require("../managers/socket");
6
+ const server_1 = require("../managers/server");
7
+ const exercisesQueue_1 = require("../utils/exercisesQueue");
8
+ class TestCommand extends SessionCommand_1.default {
9
+ async init() {
10
+ const { flags } = this.parse(TestCommand);
11
+ await this.initSession(flags);
12
+ }
13
+ async run() {
14
+ var _a, _b, _c;
15
+ const { args: { exerciseSlug }, } = this.parse(TestCommand);
16
+ // Build exercises index
17
+ (_a = this.configManager) === null || _a === void 0 ? void 0 : _a.buildIndex();
18
+ let exercises = [];
19
+ // test all exercises
20
+ !exerciseSlug ?
21
+ (exercises = (_b = this.configManager) === null || _b === void 0 ? void 0 : _b.getAllExercises()) :
22
+ (exercises = [this.configManager.getExercise(exerciseSlug)]);
23
+ const exercisesQueue = new exercisesQueue_1.default(exercises);
24
+ const configObject = (_c = this.configManager) === null || _c === void 0 ? void 0 : _c.get();
25
+ let hasFailed = false;
26
+ let failedTestsCount = 0;
27
+ let successTestsCount = 0;
28
+ const testsToRunCount = exercisesQueue.size();
29
+ configObject.config.testingFinishedCallback = ({ result }) => {
30
+ if (result === "failed") {
31
+ hasFailed = true;
32
+ failedTestsCount++;
33
+ }
34
+ else {
35
+ successTestsCount++;
36
+ }
37
+ if (exercisesQueue.isEmpty()) {
38
+ console_1.default.info(`${testsToRunCount} test${testsToRunCount > 1 ? "s" : ""} runned`);
39
+ console_1.default.success(`${successTestsCount} test${successTestsCount > 1 ? "s" : ""} passed`);
40
+ console_1.default.error(`${failedTestsCount} test${failedTestsCount > 1 ? "s" : ""} failed`);
41
+ process.exit(hasFailed ? 1 : 0);
42
+ }
43
+ else {
44
+ exercisesQueue.pop().test(this.config, config, socket_1.default);
45
+ }
46
+ };
47
+ const config = configObject === null || configObject === void 0 ? void 0 : configObject.config;
48
+ const server = await server_1.default(configObject, this.configManager, true);
49
+ socket_1.default.start(config, server, true);
50
+ exercisesQueue.pop().test(this.config, config, socket_1.default);
51
+ }
52
+ }
53
+ TestCommand.description = `Test exercises`;
54
+ TestCommand.args = [
55
+ {
56
+ name: "exerciseSlug",
57
+ required: false,
58
+ description: "The name of the exercise to test",
59
+ hidden: false,
60
+ },
61
+ ];
62
+ exports.default = TestCommand;
package/lib/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from '@oclif/command';
1
+ export * from '@oclif/command';
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("@oclif/command"), exports);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("@oclif/command"), exports);
@@ -1,5 +1,5 @@
1
- declare const extensions: {
2
- extensions: string[];
3
- names: string[];
4
- };
5
- export default extensions;
1
+ declare const extensions: {
2
+ extensions: string[];
3
+ names: string[];
4
+ };
5
+ export default extensions;
@@ -1,30 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const extensions = {
4
- extensions: [
5
- "py",
6
- "java",
7
- "py",
8
- "ruby",
9
- "html",
10
- "css",
11
- "htm",
12
- "php",
13
- "js",
14
- "jsx",
15
- "ts",
16
- "sh",
17
- "bash",
18
- "json",
19
- "yml",
20
- "yaml",
21
- "csv",
22
- "xml",
23
- "txt",
24
- "text",
25
- "markdown",
26
- "readme",
27
- ],
28
- names: ["package.json", "package-lock.json"],
29
- };
30
- exports.default = extensions;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const extensions = {
4
+ extensions: [
5
+ "py",
6
+ "java",
7
+ "py",
8
+ "ruby",
9
+ "html",
10
+ "css",
11
+ "htm",
12
+ "php",
13
+ "js",
14
+ "jsx",
15
+ "ts",
16
+ "sh",
17
+ "bash",
18
+ "json",
19
+ "yml",
20
+ "yaml",
21
+ "csv",
22
+ "xml",
23
+ "txt",
24
+ "text",
25
+ "markdown",
26
+ "readme",
27
+ ],
28
+ names: ["package.json", "package-lock.json"],
29
+ };
30
+ exports.default = extensions;
@@ -1,37 +1,39 @@
1
- declare const _default: {
2
- config: {
3
- port: number;
4
- editor: {
5
- mode: null;
6
- agent: null;
7
- version: null;
8
- };
9
- dirPath: string;
10
- configPath: string;
11
- outputPath: string;
12
- publicPath: string;
13
- publicUrl: null;
14
- contact: string;
15
- language: string;
16
- autoPlay: boolean;
17
- projectType: string;
18
- grading: string;
19
- exercisesPath: string;
20
- webpackTemplate: null;
21
- disableGrading: boolean;
22
- disabledActions: never[];
23
- actions: never[];
24
- entries: {
25
- html: string;
26
- vanillajs: string;
27
- react: string;
28
- node: string;
29
- python3: string;
30
- java: string;
31
- };
32
- };
33
- address: string;
34
- currentExercise: null;
35
- exercises: never[];
36
- };
37
- export default _default;
1
+ declare const _default: {
2
+ config: {
3
+ port: number;
4
+ editor: {
5
+ mode: null;
6
+ agent: null;
7
+ version: null;
8
+ };
9
+ dirPath: string;
10
+ configPath: string;
11
+ outputPath: string;
12
+ publicPath: string;
13
+ publicUrl: null;
14
+ contact: string;
15
+ language: string;
16
+ autoPlay: boolean;
17
+ projectType: string;
18
+ grading: string;
19
+ exercisesPath: string;
20
+ webpackTemplate: null;
21
+ disableGrading: boolean;
22
+ disabledActions: never[];
23
+ actions: never[];
24
+ entries: {
25
+ html: string;
26
+ vanillajs: string;
27
+ react: string;
28
+ node: string;
29
+ python3: string;
30
+ java: string;
31
+ };
32
+ };
33
+ address: string;
34
+ currentExercise: null;
35
+ exercises: never[];
36
+ bugsLink: null;
37
+ videoSolutions: boolean;
38
+ };
39
+ export default _default;
@@ -1,38 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- config: {
5
- port: 3000,
6
- editor: {
7
- mode: null,
8
- agent: null,
9
- version: null,
10
- },
11
- dirPath: "./.learn",
12
- configPath: "./learn.json",
13
- outputPath: "./.learn/dist",
14
- publicPath: "/preview",
15
- publicUrl: null,
16
- contact: "https://github.com/learnpack/learnpack/issues/new",
17
- language: "auto",
18
- autoPlay: true,
19
- projectType: "tutorial",
20
- grading: "isolated",
21
- exercisesPath: "./",
22
- webpackTemplate: null,
23
- disableGrading: false,
24
- disabledActions: [],
25
- actions: [],
26
- entries: {
27
- html: "index.html",
28
- vanillajs: "index.js",
29
- react: "app.jsx",
30
- node: "app.js",
31
- python3: "app.py",
32
- java: "app.java",
33
- },
34
- },
35
- address: "http://localhost",
36
- currentExercise: null,
37
- exercises: [],
38
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ config: {
5
+ port: 3000,
6
+ editor: {
7
+ mode: null,
8
+ agent: null,
9
+ version: null,
10
+ },
11
+ dirPath: "./.learn",
12
+ configPath: "./learn.json",
13
+ outputPath: "./.learn/dist",
14
+ publicPath: "/preview",
15
+ publicUrl: null,
16
+ contact: "https://github.com/learnpack/learnpack/issues/new",
17
+ language: "auto",
18
+ autoPlay: true,
19
+ projectType: "tutorial",
20
+ grading: "isolated",
21
+ exercisesPath: "./",
22
+ webpackTemplate: null,
23
+ disableGrading: false,
24
+ disabledActions: [],
25
+ actions: [],
26
+ entries: {
27
+ html: "index.html",
28
+ vanillajs: "index.js",
29
+ react: "app.jsx",
30
+ node: "app.js",
31
+ python3: "app.py",
32
+ java: "app.java",
33
+ },
34
+ },
35
+ address: "http://localhost",
36
+ currentExercise: null,
37
+ exercises: [],
38
+ bugsLink: null,
39
+ videoSolutions: false,
40
+ };
@@ -1,36 +1,36 @@
1
- import { IConfigObj } from "../../models/config";
2
- import { IFile } from "../../models/file";
3
- import { IExercise } from "../../models/exercise-obj";
4
- export declare const exercise: (path: string, position: number, configObject: IConfigObj) => IExercise;
5
- export declare const validateExerciseDirectoryName: (str: string) => boolean;
6
- export declare const isCodable: (str: string) => boolean;
7
- export declare const shouldBeVisible: (file: IFile) => boolean;
8
- export declare const isDirectory: (source: string) => boolean;
9
- export declare const detect: (configObject: IConfigObj | undefined, files: Array<string>) => {
10
- language: string;
11
- entry: string | undefined;
12
- } | {
13
- language: null;
14
- entry: null;
15
- } | undefined;
16
- export declare const filterFiles: (files: Array<string>, basePath?: string) => {
17
- path: string;
18
- name: string;
19
- hidden: boolean;
20
- }[];
21
- declare const _default: {
22
- exercise: (path: string, position: number, configObject: IConfigObj) => IExercise;
23
- detect: (configObject: IConfigObj | undefined, files: string[]) => {
24
- language: string;
25
- entry: string | undefined;
26
- } | {
27
- language: null;
28
- entry: null;
29
- } | undefined;
30
- filterFiles: (files: string[], basePath?: string) => {
31
- path: string;
32
- name: string;
33
- hidden: boolean;
34
- }[];
35
- };
36
- export default _default;
1
+ import { IConfigObj } from "../../models/config";
2
+ import { IFile } from "../../models/file";
3
+ import { IExercise } from "../../models/exercise-obj";
4
+ export declare const exercise: (path: string, position: number, configObject: IConfigObj) => IExercise;
5
+ export declare const validateExerciseDirectoryName: (str: string) => boolean;
6
+ export declare const isCodable: (str: string) => boolean;
7
+ export declare const shouldBeVisible: (file: IFile) => boolean;
8
+ export declare const isDirectory: (source: string) => boolean;
9
+ export declare const detect: (configObject: IConfigObj | undefined, files: Array<string>) => {
10
+ language: string;
11
+ entry: string | undefined;
12
+ } | {
13
+ language: null;
14
+ entry: null;
15
+ } | undefined;
16
+ export declare const filterFiles: (files: Array<string>, basePath?: string) => {
17
+ path: string;
18
+ name: string;
19
+ hidden: boolean;
20
+ }[];
21
+ declare const _default: {
22
+ exercise: (path: string, position: number, configObject: IConfigObj) => IExercise;
23
+ detect: (configObject: IConfigObj | undefined, files: string[]) => {
24
+ language: string;
25
+ entry: string | undefined;
26
+ } | {
27
+ language: null;
28
+ entry: null;
29
+ } | undefined;
30
+ filterFiles: (files: string[], basePath?: string) => {
31
+ path: string;
32
+ name: string;
33
+ hidden: boolean;
34
+ }[];
35
+ };
36
+ export default _default;