@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,3 +1,10 @@
1
- export type TAction = 'test' | 'log' | 'reload' | 'ready' | 'clean' | 'ask';
2
-
3
- export type ICallback = (...agrs: any[]) => any;
1
+ export type TAction =
2
+ | "test"
3
+ | "log"
4
+ | "reload"
5
+ | "ready"
6
+ | "clean"
7
+ | "ask"
8
+ | "generation";
9
+
10
+ export type ICallback = (...agrs: any[]) => any;
@@ -1,23 +1,23 @@
1
- import { IConfigObj, TGrading } from "./config";
2
- import { IExercise } from "./exercise-obj";
3
-
4
- export interface IConfigManagerAttributes {
5
- grading: TGrading;
6
- disableGrading: boolean;
7
- version: string;
8
- mode?: string;
9
- }
10
-
11
- export interface IConfigManager {
12
- validLanguages?: any;
13
- get: () => IConfigObj;
14
- clean: () => void;
15
- getExercise: (slug: string | undefined) => IExercise;
16
- startExercise: (slug: string) => IExercise;
17
- reset: (slug: string) => void;
18
- buildIndex: () => boolean | void;
19
- watchIndex: (onChange: (...args: Array<any>) => void) => void;
20
- save: () => void;
21
- noCurrentExercise: () => void;
22
- getAllExercises: () => IExercise[];
23
- }
1
+ import { IConfigObj, TGrading } from "./config"
2
+ import { IExercise } from "./exercise-obj"
3
+
4
+ export interface IConfigManagerAttributes {
5
+ grading: TGrading;
6
+ disableGrading: boolean;
7
+ version: string;
8
+ mode?: string;
9
+ }
10
+
11
+ export interface IConfigManager {
12
+ validLanguages?: any;
13
+ get: () => IConfigObj;
14
+ clean: () => void;
15
+ getExercise: (slug: string | undefined) => IExercise;
16
+ startExercise: (slug: string) => IExercise;
17
+ reset: (slug: string) => void;
18
+ buildIndex: () => boolean | void;
19
+ watchIndex: (onChange: (...args: Array<any>) => void) => void;
20
+ save: () => void;
21
+ noCurrentExercise: () => void;
22
+ getAllExercises: () => IExercise[];
23
+ }
@@ -1,10 +1,15 @@
1
- import { IExercise } from "./exercise-obj";
1
+ import { IExercise } from "./exercise-obj"
2
2
 
3
3
  export type TGrading = "isolated" | "incremental" | "no-grading";
4
4
 
5
5
  export type TMode = "preview" | "standalone";
6
6
 
7
- export type TConfigAction = "test" | "build" | "tutorial" | "reset";
7
+ export type TConfigAction =
8
+ | "test"
9
+ | "build"
10
+ | "tutorial"
11
+ | "reset"
12
+ | "generate";
8
13
 
9
14
  export type TConfigObjAttributes = "config" | "exercises" | "grading";
10
15
 
@@ -62,6 +67,8 @@ export interface IConfig {
62
67
  compiler: TCompiler;
63
68
  publicPath: string;
64
69
  publicUrl?: string;
70
+ bugsLink?: string;
71
+ videoSolutions?: boolean;
65
72
  skills: Array<string>;
66
73
  runHook: (...agrs: Array<any>) => void;
67
74
  testingFinishedCallback: (arg: any | undefined) => void;
@@ -1,11 +1,11 @@
1
- interface ILinks {
2
- error: number;
3
- total: number;
4
- }
5
-
6
- export interface ICounter {
7
- images: ILinks;
8
- links: ILinks;
9
- exercises: number;
10
- readmeFiles: number;
11
- }
1
+ interface ILinks {
2
+ error: number;
3
+ total: number;
4
+ }
5
+
6
+ export interface ICounter {
7
+ images: ILinks;
8
+ links: ILinks;
9
+ exercises: number;
10
+ readmeFiles: number;
11
+ }
@@ -1,22 +1,22 @@
1
- export interface ISolution {
2
- video?: string;
3
- message: string;
4
- slug?: string;
5
- gif: string;
6
- }
7
-
8
- export interface IError extends TypeError {
9
- status?: number;
10
- type?:
11
- | "validation-error"
12
- | "not-found-error"
13
- | "compiler-error"
14
- | "testing-error"
15
- | "auth-error"
16
- | "internal-error";
17
- slug?: string;
18
- video?: string;
19
- message: string;
20
- gif?: string;
21
- stdout?: string;
22
- }
1
+ export interface ISolution {
2
+ video?: string;
3
+ message: string;
4
+ slug?: string;
5
+ gif: string;
6
+ }
7
+
8
+ export interface IError extends TypeError {
9
+ status?: number;
10
+ type?:
11
+ | "validation-error"
12
+ | "not-found-error"
13
+ | "compiler-error"
14
+ | "testing-error"
15
+ | "auth-error"
16
+ | "internal-error";
17
+ slug?: string;
18
+ video?: string;
19
+ message: string;
20
+ gif?: string;
21
+ stdout?: string;
22
+ }
@@ -1,6 +1,6 @@
1
- import { IFile } from "./file";
2
- import { IConfig } from "./config";
3
- import { ISocket } from "./socket";
1
+ import { IFile } from "./file"
2
+ import { IConfig } from "./config"
3
+ import { ISocket } from "./socket"
4
4
 
5
5
  export interface IExercise {
6
6
  position?: number;
@@ -21,6 +21,9 @@ export interface IExercise {
21
21
  }
22
22
 
23
23
  export interface IExerciseData {
24
+ lastMessages?: any;
25
+ userMessage?: string;
24
26
  exerciseSlug: string;
27
+ entryPoint?: string;
25
28
  files: string[];
26
29
  }
@@ -1,5 +1,5 @@
1
- export interface IFile {
2
- path: string;
3
- name: string;
4
- hidden: boolean;
5
- }
1
+ export interface IFile {
2
+ path: string;
3
+ name: string;
4
+ hidden: boolean;
5
+ }
@@ -1,18 +1,18 @@
1
- interface IFindingOption {
2
- content: string;
3
- absUrl: string;
4
- mdUrl: string;
5
- relUrl: string;
6
- }
7
-
8
- interface ILinks {
9
- [key: string]: IFindingOption;
10
- }
11
-
12
- export interface IFindings {
13
- relativeImages?: ILinks;
14
- externalImages?: ILinks;
15
- markdownLinks?: ILinks;
16
- url?: ILinks;
17
- uploadcare?: ILinks;
18
- }
1
+ interface IFindingOption {
2
+ content: string;
3
+ absUrl: string;
4
+ mdUrl: string;
5
+ relUrl: string;
6
+ }
7
+
8
+ interface ILinks {
9
+ [key: string]: IFindingOption;
10
+ }
11
+
12
+ export interface IFindings {
13
+ relativeImages?: ILinks;
14
+ externalImages?: ILinks;
15
+ markdownLinks?: ILinks;
16
+ url?: ILinks;
17
+ uploadcare?: ILinks;
18
+ }
@@ -1,10 +1,10 @@
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
+ 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,11 +1,11 @@
1
- interface IAttributes {
2
- intro: string;
3
- tutorial: string;
4
- }
5
-
6
- export interface IFrontmatter {
7
- attributes?: IAttributes;
8
- body?: string;
9
- bodyBegin?: number;
10
- frontmatter?: string;
11
- }
1
+ interface IAttributes {
2
+ intro: string;
3
+ tutorial: string;
4
+ }
5
+
6
+ export interface IFrontmatter {
7
+ attributes?: IAttributes;
8
+ body?: string;
9
+ bodyBegin?: number;
10
+ frontmatter?: string;
11
+ }
@@ -1,19 +1,19 @@
1
- import {Server} from 'socket.io'
2
- import {IConfigObj} from './config'
3
-
4
- export type TFile = string;
5
-
6
- export interface IGitpodData {
7
- files: Array<TFile>;
8
- }
9
-
10
- export interface IGitpod {
11
- socket: Server | null;
12
- config: IConfigObj | null;
13
- initialized: boolean;
14
- hasGPCommand: boolean;
15
- init: (config?: IConfigObj) => void;
16
- openFiles: (files: Array<TFile>) => Promise<boolean | undefined>;
17
- setup: (config?: IConfigObj) => void;
18
- autosave: (value: string) => void;
19
- }
1
+ import {Server} from 'socket.io'
2
+ import {IConfigObj} from './config'
3
+
4
+ export type TFile = string;
5
+
6
+ export interface IGitpodData {
7
+ files: Array<TFile>;
8
+ }
9
+
10
+ export interface IGitpod {
11
+ socket: Server | null;
12
+ config: IConfigObj | null;
13
+ initialized: boolean;
14
+ hasGPCommand: boolean;
15
+ init: (config?: IConfigObj) => void;
16
+ openFiles: (files: Array<TFile>) => Promise<boolean | undefined>;
17
+ setup: (config?: IConfigObj) => void;
18
+ autosave: (value: string) => void;
19
+ }
@@ -1,4 +1,4 @@
1
- export interface ILanguage {
2
- title: string;
3
- slug: string;
4
- }
1
+ export interface ILanguage {
2
+ title: string;
3
+ slug: string;
4
+ }
@@ -1,7 +1,7 @@
1
- export interface IPackage {
2
- title: string;
3
- slug: string;
4
- difficulty: string;
5
- downloads: string;
6
- skills: Array<any>;
7
- }
1
+ export interface IPackage {
2
+ title: string;
3
+ slug: string;
4
+ difficulty: string;
5
+ downloads: string;
6
+ skills: Array<any>;
7
+ }
@@ -1,17 +1,17 @@
1
- import { IConfig } from "./config";
2
- import { IExercise } from "./exercise-obj";
3
-
4
- export interface IPluginConfig {
5
- language: string;
6
- compile?: {
7
- run: () => void;
8
- validate: (args: IValidate) => boolean;
9
- dependencies: string[];
10
- };
11
- test?: () => void;
12
- }
13
-
14
- interface IValidate {
15
- exercise: IExercise;
16
- configuration: IConfig;
17
- }
1
+ import { IConfig } from "./config"
2
+ import { IExercise } from "./exercise-obj"
3
+
4
+ export interface IPluginConfig {
5
+ language: string;
6
+ compile?: {
7
+ run: () => void;
8
+ validate: (args: IValidate) => boolean;
9
+ dependencies: string[];
10
+ };
11
+ test?: () => void;
12
+ }
13
+
14
+ interface IValidate {
15
+ exercise: IExercise;
16
+ configuration: IConfig;
17
+ }
@@ -1,26 +1,29 @@
1
- import {IConfig, IConfigObj} from './config'
2
-
3
- export interface IPayload {
4
- email: string;
5
- }
6
-
7
- export interface IStartProps {
8
- token: string;
9
- payload: IPayload | null;
10
- }
11
-
12
- export interface ISession {
13
- sessionStarted: boolean;
14
- token: string | null;
15
- config: IConfig | null;
16
- currentCohort: null;
17
- initialize: () => Promise<boolean>;
18
- setPayload: (value: IPayload) => Promise<boolean>;
19
- getPayload: () => Promise<any>;
20
- isActive: () => boolean;
21
- get: (config?: IConfigObj) => Promise<any>;
22
- login: () => Promise<void>;
23
- sync: () => Promise<void>;
24
- start: ({token, payload}: IStartProps) => Promise<void>;
25
- destroy: () => Promise<void>;
26
- }
1
+ import { IConfig, IConfigObj } from "./config"
2
+
3
+ export interface IPayload {
4
+ email: string;
5
+ }
6
+
7
+ export interface IStartProps {
8
+ token: string;
9
+ payload: IPayload | null;
10
+ }
11
+
12
+ export interface ISession {
13
+ sessionStarted: boolean;
14
+ token: string | null;
15
+ config: IConfig | null;
16
+ currentCohort: null;
17
+ initialize: () => Promise<boolean>;
18
+ getOpenAIToken: () => Promise<string | null>;
19
+ setOpenAIToken: (token: string) => Promise<boolean>;
20
+ setPayload: (value: IPayload) => Promise<boolean>;
21
+ getPayload: () => Promise<any>;
22
+ isActive: () => boolean;
23
+ get: (config?: IConfigObj) => Promise<any>;
24
+ login: () => Promise<void>;
25
+ loginWeb: (email: string, password: string) => Promise<void>;
26
+ sync: () => Promise<void>;
27
+ start: ({ token, payload }: IStartProps) => Promise<void>;
28
+ destroy: () => Promise<void>;
29
+ }
@@ -1,48 +1,54 @@
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
-
7
- export type TPossibleActions = 'build' | 'test' | 'reset' | 'tutorial';
8
-
9
- export interface ISocket {
10
- socket: Server<
11
- DefaultEventsMap,
12
- DefaultEventsMap,
13
- DefaultEventsMap,
14
- any
15
- > | null;
16
- config: IConfig | null;
17
- allowedActions: Array<TPossibleActions>;
18
- actionCallBacks: { [key: string]: ICallback };
19
- possibleActions: Array<TPossibleActions>;
20
- isTestingEnvironment: boolean;
21
- addAllowed: (actions: any) => void;
22
- removeAllowed: (actions: any) => void;
23
- start: (config: IConfig, server: any, isTestingEnvironment: boolean) => void;
24
- on: (action: any, callBack: any) => void;
25
- clean: (_: string, logs: Array<any>) => void;
26
- ask: (questions: Array<string>) => void;
27
- reload: (files: Array<string> | null, exercises: Array<string>) => void;
28
- openWindow: (id: string) => void;
29
- log: (
30
- status: TStatus,
31
- messages?: string | Array<string>,
32
- report?: Array<string>,
33
- data?: any
34
- ) => void;
35
- emit: (
36
- action: TAction,
37
- status: TStatus | string,
38
- logs: string | Array<string>,
39
- inputs?: Array<string>,
40
- report?: Array<string>,
41
- data?: any
42
- ) => void;
43
- ready: (message: string) => void;
44
- error: (type: any, stdout: string) => void;
45
- fatal: (msg: string) => void;
46
- success: (type: any, stdout: string) => void;
47
- onTestingFinished: (obj: any) => void;
48
- }
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
+
7
+ export type TPossibleActions =
8
+ | "build"
9
+ | "test"
10
+ | "reset"
11
+ | "tutorial"
12
+ | "generate";
13
+
14
+ export interface ISocket {
15
+ socket: Server<
16
+ DefaultEventsMap,
17
+ DefaultEventsMap,
18
+ DefaultEventsMap,
19
+ any
20
+ > | null;
21
+ config: IConfig | null;
22
+ allowedActions: Array<TPossibleActions>;
23
+ actionCallBacks: { [key: string]: ICallback };
24
+ possibleActions: Array<TPossibleActions>;
25
+ isTestingEnvironment: boolean;
26
+ addAllowed: (actions: any) => void;
27
+ removeAllowed: (actions: any) => void;
28
+ start: (config: IConfig, server: any, isTestingEnvironment: boolean) => void;
29
+ on: (action: any, callBack: any) => void;
30
+ clean: (_: string, logs: Array<any>) => void;
31
+ complete: () => void;
32
+ ask: (questions: Array<string>) => void;
33
+ reload: (files: Array<string> | null, exercises: Array<string>) => void;
34
+ openWindow: (id: string) => void;
35
+ log: (
36
+ status: TStatus,
37
+ messages?: string | Array<string>,
38
+ report?: Array<string>,
39
+ data?: any
40
+ ) => void;
41
+ emit: (
42
+ action: TAction,
43
+ status: TStatus | string,
44
+ logs: string | Array<string>,
45
+ inputs?: Array<string>,
46
+ report?: Array<string>,
47
+ data?: any
48
+ ) => void;
49
+ ready: (message: string) => void;
50
+ error: (type: any, stdout: string) => void;
51
+ fatal: (msg: string) => void;
52
+ success: (type: any, stdout: string) => void;
53
+ onTestingFinished: (obj: any) => void;
54
+ }
@@ -1,15 +1,16 @@
1
- export type TStatus =
2
- | 'ready'
3
- | 'internal-error'
4
- | 'compiler-success'
5
- | 'testing-success'
6
- | 'compiling'
7
- | 'testing'
8
- | 'start_exercise'
9
- | 'initializing'
10
- | 'configuration_loaded'
11
- | 'connection_ended'
12
- | 'reset_exercise'
13
- | 'open_files'
14
- | 'open_window'
15
- | 'instructions_closed';
1
+ export type TStatus =
2
+ | "ready"
3
+ | "internal-error"
4
+ | "compiler-success"
5
+ | "testing-success"
6
+ | "compiling"
7
+ | "testing"
8
+ | "start_exercise"
9
+ | "initializing"
10
+ | "configuration_loaded"
11
+ | "connection_ended"
12
+ | "reset_exercise"
13
+ | "open_files"
14
+ | "open_window"
15
+ | "instructions_closed"
16
+ | "completed";
@@ -1 +1 @@
1
- export type TSuccessType = 'compiler-success' | 'testing-success';
1
+ export type TSuccessType = 'compiler-success' | 'testing-success';
@@ -1,17 +1,17 @@
1
- import { IError } from "../../models/errors";
2
-
3
- const CompilationError = (messages: string) => {
4
- const _err: IError = new Error(messages);
5
- _err.status = 400;
6
- _err.stdout = messages;
7
- _err.type = "compiler-error";
8
- return _err;
9
- };
10
-
11
- export default {
12
- CompilationError,
13
- default: async ({ action, ...rest }: any) => {
14
- const stdout = await action.run(rest);
15
- return stdout;
16
- },
17
- };
1
+ import { IError } from "../../models/errors"
2
+
3
+ const CompilationError = (messages: string) => {
4
+ const _err: IError = new Error(messages)
5
+ _err.status = 400
6
+ _err.stdout = messages
7
+ _err.type = "compiler-error"
8
+ return _err
9
+ }
10
+
11
+ export default {
12
+ CompilationError,
13
+ default: async ({ action, ...rest }: any) => {
14
+ const stdout = await action.run(rest)
15
+ return stdout
16
+ },
17
+ }