@learnpack/learnpack 4.0.10 → 4.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. package/README.md +25 -10
  2. package/lib/commands/audit.d.ts +6 -6
  3. package/lib/commands/audit.js +327 -327
  4. package/lib/commands/build.d.ts +11 -0
  5. package/lib/commands/build.js +160 -0
  6. package/lib/commands/clean.d.ts +8 -8
  7. package/lib/commands/clean.js +22 -22
  8. package/lib/commands/download.d.ts +13 -13
  9. package/lib/commands/download.js +52 -52
  10. package/lib/commands/init.d.ts +9 -9
  11. package/lib/commands/init.js +127 -127
  12. package/lib/commands/login.d.ts +14 -14
  13. package/lib/commands/login.js +34 -34
  14. package/lib/commands/logout.d.ts +14 -14
  15. package/lib/commands/logout.js +34 -34
  16. package/lib/commands/publish.d.ts +14 -14
  17. package/lib/commands/publish.js +79 -79
  18. package/lib/commands/start.d.ts +7 -7
  19. package/lib/commands/start.js +252 -250
  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 +47 -48
  27. package/lib/managers/config/defaults.js +51 -51
  28. package/lib/managers/config/exercise.d.ts +36 -36
  29. package/lib/managers/config/exercise.js +243 -236
  30. package/lib/managers/config/index.d.ts +3 -3
  31. package/lib/managers/config/index.js +464 -459
  32. package/lib/managers/file.d.ts +14 -14
  33. package/lib/managers/file.js +190 -184
  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 +5 -6
  37. package/lib/managers/server/index.js +58 -58
  38. package/lib/managers/server/routes.d.ts +4 -4
  39. package/lib/managers/server/routes.js +228 -220
  40. package/lib/managers/session.d.ts +3 -3
  41. package/lib/managers/session.js +125 -125
  42. package/lib/managers/socket.d.ts +3 -3
  43. package/lib/managers/socket.js +188 -186
  44. package/lib/managers/telemetry.d.ts +74 -74
  45. package/lib/managers/telemetry.js +215 -214
  46. package/lib/managers/test.js +84 -84
  47. package/lib/models/action.d.ts +2 -2
  48. package/lib/models/action.js +2 -2
  49. package/lib/models/audit.d.ts +15 -15
  50. package/lib/models/audit.js +2 -2
  51. package/lib/models/config-manager.d.ts +21 -21
  52. package/lib/models/config-manager.js +2 -2
  53. package/lib/models/config.d.ts +86 -86
  54. package/lib/models/config.js +2 -2
  55. package/lib/models/counter.d.ts +11 -11
  56. package/lib/models/counter.js +2 -2
  57. package/lib/models/errors.d.ts +15 -15
  58. package/lib/models/errors.js +2 -2
  59. package/lib/models/exercise-obj.d.ts +29 -30
  60. package/lib/models/exercise-obj.js +2 -2
  61. package/lib/models/file.d.ts +5 -5
  62. package/lib/models/file.js +2 -2
  63. package/lib/models/findings.d.ts +17 -17
  64. package/lib/models/findings.js +2 -2
  65. package/lib/models/flags.d.ts +10 -10
  66. package/lib/models/flags.js +2 -2
  67. package/lib/models/front-matter.d.ts +11 -11
  68. package/lib/models/front-matter.js +2 -2
  69. package/lib/models/gitpod-data.d.ts +16 -16
  70. package/lib/models/gitpod-data.js +2 -2
  71. package/lib/models/language.d.ts +4 -4
  72. package/lib/models/language.js +2 -2
  73. package/lib/models/package.d.ts +7 -7
  74. package/lib/models/package.js +2 -2
  75. package/lib/models/plugin-config.d.ts +16 -16
  76. package/lib/models/plugin-config.js +2 -2
  77. package/lib/models/session.d.ts +31 -31
  78. package/lib/models/session.js +2 -2
  79. package/lib/models/socket.d.ts +37 -37
  80. package/lib/models/socket.js +2 -2
  81. package/lib/models/status.d.ts +1 -1
  82. package/lib/models/status.js +2 -2
  83. package/lib/models/success-types.d.ts +1 -1
  84. package/lib/models/success-types.js +2 -2
  85. package/lib/plugin/command/compile.d.ts +6 -6
  86. package/lib/plugin/command/compile.js +18 -18
  87. package/lib/plugin/command/test.d.ts +6 -6
  88. package/lib/plugin/command/test.js +25 -25
  89. package/lib/plugin/index.d.ts +27 -27
  90. package/lib/plugin/index.js +7 -7
  91. package/lib/plugin/plugin.d.ts +8 -8
  92. package/lib/plugin/plugin.js +68 -68
  93. package/lib/plugin/utils.d.ts +16 -16
  94. package/lib/plugin/utils.js +58 -58
  95. package/lib/ui/download.d.ts +5 -5
  96. package/lib/ui/download.js +62 -61
  97. package/lib/utils/BaseCommand.d.ts +8 -8
  98. package/lib/utils/BaseCommand.js +41 -41
  99. package/lib/utils/SessionCommand.d.ts +10 -10
  100. package/lib/utils/SessionCommand.js +43 -43
  101. package/lib/utils/api.d.ts +14 -14
  102. package/lib/utils/api.js +255 -255
  103. package/lib/utils/audit.d.ts +16 -16
  104. package/lib/utils/audit.js +303 -303
  105. package/lib/utils/checkNotInstalled.d.ts +8 -8
  106. package/lib/utils/checkNotInstalled.js +185 -181
  107. package/lib/utils/console.d.ts +12 -12
  108. package/lib/utils/console.js +19 -19
  109. package/lib/utils/errors.d.ts +17 -17
  110. package/lib/utils/errors.js +107 -100
  111. package/lib/utils/exercisesQueue.d.ts +9 -9
  112. package/lib/utils/exercisesQueue.js +38 -38
  113. package/lib/utils/fileQueue.d.ts +43 -43
  114. package/lib/utils/fileQueue.js +169 -169
  115. package/lib/utils/misc.d.ts +1 -1
  116. package/lib/utils/misc.js +24 -23
  117. package/lib/utils/osOperations.d.ts +5 -5
  118. package/lib/utils/osOperations.js +72 -72
  119. package/lib/utils/validators.d.ts +5 -5
  120. package/lib/utils/validators.js +16 -17
  121. package/lib/utils/watcher.d.ts +2 -2
  122. package/lib/utils/watcher.js +25 -25
  123. package/oclif.manifest.json +1 -1
  124. package/package.json +6 -4
  125. package/src/commands/build.ts +181 -0
  126. package/src/managers/config/index.ts +5 -0
  127. package/src/managers/server/routes.ts +10 -0
  128. package/src/managers/session.ts +1 -1
@@ -1,14 +1,14 @@
1
- export declare const decompress: (sourcePath: string, destinationPath: string) => Promise<unknown>;
2
- export declare const downloadEditor: (version: string | undefined, destination: string) => Promise<unknown>;
3
- export declare const download: (url: string, dest: string) => Promise<unknown>;
4
- export declare const clone: (repository?: string, folder?: string) => Promise<unknown>;
5
- export declare const rmSync: (path: string) => void;
6
- export declare const checkIfDirectoryExists: (path: string) => boolean;
7
- declare const _default: {
8
- download: (url: string, dest: string) => Promise<unknown>;
9
- decompress: (sourcePath: string, destinationPath: string) => Promise<unknown>;
10
- downloadEditor: (version: string | undefined, destination: string) => Promise<unknown>;
11
- clone: (repository?: string, folder?: string) => Promise<unknown>;
12
- rmSync: (path: string) => void;
13
- };
14
- export default _default;
1
+ export declare const decompress: (sourcePath: string, destinationPath: string) => Promise<unknown>;
2
+ export declare const downloadEditor: (version: string | undefined, destination: string) => Promise<unknown>;
3
+ export declare const download: (url: string, dest: string) => Promise<unknown>;
4
+ export declare const clone: (repository?: string, folder?: string) => Promise<unknown>;
5
+ export declare const rmSync: (path: string) => void;
6
+ export declare const checkIfDirectoryExists: (path: string) => boolean;
7
+ declare const _default: {
8
+ download: (url: string, dest: string) => Promise<unknown>;
9
+ decompress: (sourcePath: string, destinationPath: string) => Promise<unknown>;
10
+ downloadEditor: (version: string | undefined, destination: string) => Promise<unknown>;
11
+ clone: (repository?: string, folder?: string) => Promise<unknown>;
12
+ rmSync: (path: string) => void;
13
+ };
14
+ export default _default;
@@ -1,184 +1,190 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkIfDirectoryExists = exports.rmSync = exports.clone = exports.download = exports.downloadEditor = exports.decompress = void 0;
4
- const fs = require("fs");
5
- const p = require("path");
6
- const shell = require("shelljs");
7
- const cli_ux_1 = require("cli-ux");
8
- const targz = require("targz");
9
- const console_1 = require("../utils/console");
10
- const https = require("https");
11
- const errors_1 = require("../utils/errors");
12
- // eslint-disable-next-line
13
- const fetch = require("node-fetch");
14
- exports.decompress = (sourcePath, destinationPath) => new Promise((resolve, reject) => {
15
- console_1.default.debug("Decompressing " + sourcePath);
16
- targz.decompress({
17
- src: sourcePath,
18
- dest: destinationPath,
19
- }, function (err) {
20
- if (err) {
21
- console_1.default.error("Error when trying to decompress");
22
- reject(err);
23
- }
24
- else {
25
- console_1.default.info("Decompression finished successfully");
26
- resolve(/* */ "");
27
- }
28
- });
29
- });
30
- exports.downloadEditor = async (version, destination) => {
31
- console_1.default.info("Downloading the LearnPack coding UI, this may take a minute...");
32
- if (!version) {
33
- const res = await fetch("https://raw.githubusercontent.com/learnpack/ide/master/package.json");
34
- const json = await res.json();
35
- version = json.version || "4.0.0";
36
- if (!version)
37
- throw errors_1.InternalError(`Coding Editor version was not found on learnpack repository, check the config.editor.version property on learn.json`);
38
- }
39
- const [major, minor] = version.split(".");
40
- const versionPrefix = `${major}.${minor}`;
41
- let tags;
42
- try {
43
- const tagsRes = await fetch("https://raw.githubusercontent.com/learnpack/ide/master/versions.json");
44
- tags = await tagsRes.json();
45
- if (!Array.isArray(tags)) {
46
- throw new TypeError(`Invalid versions.json format`);
47
- }
48
- }
49
- catch (error) {
50
- console_1.default.debug("Error reading versions.json, defaulting to version 4.0.2", error);
51
- version = "4.0.2";
52
- tags = [`learnpack-${version}.tar.gz`];
53
- }
54
- let matchingTags;
55
- try {
56
- if (tags.length === 0 || !tags)
57
- throw errors_1.InternalError(`No found tags in versions.json ${tags}`);
58
- matchingTags = tags
59
- .filter(tag => tag.includes(versionPrefix))
60
- .sort((a, b) => b.localeCompare(a, undefined, { numeric: true }));
61
- if (matchingTags.length === 0)
62
- throw errors_1.InternalError(`No matching version found for prefix ${versionPrefix} in the versions.json`);
63
- }
64
- catch (error) {
65
- console_1.default.debug("Error processing tags, defaulting to version 4.0.2", error);
66
- version = "4.0.2";
67
- matchingTags = [`learnpack-${version}.tar.gz`];
68
- }
69
- const latestVersion = matchingTags[0]
70
- .replace("learnpack-", "")
71
- .replace(".tar.gz", "");
72
- const versionNumber = parseInt(latestVersion.split(".")[0]);
73
- let url = `https://github.com/learnpack/coding-ide/blob/${latestVersion}/dist`;
74
- if (versionNumber > 2)
75
- url = `https://github.com/learnpack/ide/blob/master/bin/learnpack-${latestVersion}.tar.gz`;
76
- const resp2 = await fetch(url, { method: "HEAD" });
77
- if (!resp2.ok)
78
- throw errors_1.InternalError(`Coding Editor ${latestVersion} was not found on learnpack repository, check the config.editor.version property on learn.json`);
79
- url += versionNumber > 2 ? `?raw=true` : `/app.tar.gz?raw=true`;
80
- return exports.download(url, destination);
81
- };
82
- exports.download = (url, dest) => {
83
- console_1.default.debug("Downloading " + url);
84
- return new Promise((resolve, reject) => {
85
- const request = https.get(url, response => {
86
- if (response.statusCode === 200) {
87
- const file = fs.createWriteStream(dest, { flags: "wx" });
88
- file.on("finish", () => {
89
- resolve(true);
90
- });
91
- file.on("error", err => {
92
- file.close();
93
- if (err.code === "EEXIST") {
94
- console_1.default.debug("File already exists");
95
- resolve("File already exists");
96
- }
97
- else {
98
- console_1.default.debug("Error ", err.message);
99
- fs.unlink(dest, () => reject(err.message)); // Delete temp file
100
- }
101
- });
102
- response.pipe(file);
103
- }
104
- else if (response.statusCode === 302 || response.statusCode === 301) {
105
- // Console.debug("Servers redirected to "+response.headers.location)
106
- // Recursively follow redirects, only a 200 will resolve.
107
- if (response.headers.location) {
108
- exports.download(response.headers.location, dest)
109
- .then(() => resolve(/* */ ""))
110
- .catch(error => {
111
- console_1.default.error(error);
112
- reject(error);
113
- });
114
- }
115
- }
116
- else {
117
- console_1.default.debug(`Server responded with ${response.statusCode}: ${response.statusMessage}`);
118
- reject(`Server responded with ${response.statusCode}: ${response.statusMessage}`);
119
- }
120
- });
121
- request.on("error", err => {
122
- reject(err.message);
123
- });
124
- });
125
- };
126
- exports.clone = (repository = "", folder = "./") => new Promise((resolve, reject) => {
127
- if (!repository) {
128
- reject("Missing repository url for this package");
129
- // return false
130
- }
131
- cli_ux_1.cli.action.start("Verifying GIT...");
132
- if (!shell.which("git")) {
133
- reject("Sorry, this script requires git");
134
- // return false
135
- }
136
- cli_ux_1.cli.action.stop();
137
- let fileName = p.basename(repository);
138
- if (!fileName) {
139
- reject("Invalid repository information on package: " + repository);
140
- // return false
141
- }
142
- fileName = fileName.split(".")[0];
143
- if (fs.existsSync("./" + fileName)) {
144
- reject(`Directory ${fileName} already exists; Did you download this package already?`);
145
- // return false
146
- }
147
- cli_ux_1.cli.action.start(`Cloning repository ${repository}...`);
148
- if (shell.exec(`git clone ${repository}`).code !== 0) {
149
- reject("Error: Installation failed");
150
- }
151
- cli_ux_1.cli.action.stop();
152
- cli_ux_1.cli.action.start("Cleaning installation...");
153
- if (shell.exec(`rm -R -f ${folder}${fileName}/.git`).code !== 0) {
154
- reject("Error: removing .git directory");
155
- }
156
- cli_ux_1.cli.action.stop();
157
- resolve("Done");
158
- });
159
- exports.rmSync = function (path) {
160
- let files = [];
161
- if (fs.existsSync(path)) {
162
- files = fs.readdirSync(path);
163
- for (const [, file] of files.entries()) {
164
- const curPath = path + "/" + file;
165
- if (fs.lstatSync(curPath).isDirectory()) {
166
- // recurse
167
- exports.rmSync(curPath);
168
- }
169
- else {
170
- // delete file
171
- fs.unlinkSync(curPath);
172
- }
173
- }
174
- fs.rmdirSync(path);
175
- }
176
- };
177
- exports.checkIfDirectoryExists = (path) => {
178
- const fs = require("fs");
179
- if (fs.existsSync(path)) {
180
- return true;
181
- }
182
- return false;
183
- };
184
- exports.default = { download: exports.download, decompress: exports.decompress, downloadEditor: exports.downloadEditor, clone: exports.clone, rmSync: exports.rmSync };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkIfDirectoryExists = exports.rmSync = exports.clone = exports.download = exports.downloadEditor = exports.decompress = void 0;
4
+ const fs = require("fs");
5
+ const p = require("path");
6
+ const shell = require("shelljs");
7
+ const cli_ux_1 = require("cli-ux");
8
+ const targz = require("targz");
9
+ const console_1 = require("../utils/console");
10
+ const https = require("https");
11
+ const errors_1 = require("../utils/errors");
12
+ // eslint-disable-next-line
13
+ const fetch = require("node-fetch");
14
+ const decompress = (sourcePath, destinationPath) => new Promise((resolve, reject) => {
15
+ console_1.default.debug("Decompressing " + sourcePath);
16
+ targz.decompress({
17
+ src: sourcePath,
18
+ dest: destinationPath,
19
+ }, function (err) {
20
+ if (err) {
21
+ console_1.default.error("Error when trying to decompress");
22
+ reject(err);
23
+ }
24
+ else {
25
+ console_1.default.info("Decompression finished successfully");
26
+ resolve(/* */ "");
27
+ }
28
+ });
29
+ });
30
+ exports.decompress = decompress;
31
+ const downloadEditor = async (version, destination) => {
32
+ console_1.default.info("Downloading the LearnPack coding UI, this may take a minute...");
33
+ if (!version) {
34
+ const res = await fetch("https://raw.githubusercontent.com/learnpack/ide/master/package.json");
35
+ const json = await res.json();
36
+ version = json.version || "4.0.0";
37
+ if (!version)
38
+ throw (0, errors_1.InternalError)(`Coding Editor version was not found on learnpack repository, check the config.editor.version property on learn.json`);
39
+ }
40
+ const [major, minor] = version.split(".");
41
+ const versionPrefix = `${major}.${minor}`;
42
+ let tags;
43
+ try {
44
+ const tagsRes = await fetch("https://raw.githubusercontent.com/learnpack/ide/master/versions.json");
45
+ tags = await tagsRes.json();
46
+ if (!Array.isArray(tags)) {
47
+ throw new TypeError(`Invalid versions.json format`);
48
+ }
49
+ }
50
+ catch (error) {
51
+ console_1.default.debug("Error reading versions.json, defaulting to version 4.0.2", error);
52
+ version = "4.0.2";
53
+ tags = [`learnpack-${version}.tar.gz`];
54
+ }
55
+ let matchingTags;
56
+ try {
57
+ if (tags.length === 0 || !tags)
58
+ throw (0, errors_1.InternalError)(`No found tags in versions.json ${tags}`);
59
+ matchingTags = tags
60
+ .filter(tag => tag.includes(versionPrefix))
61
+ .sort((a, b) => b.localeCompare(a, undefined, { numeric: true }));
62
+ if (matchingTags.length === 0)
63
+ throw (0, errors_1.InternalError)(`No matching version found for prefix ${versionPrefix} in the versions.json`);
64
+ }
65
+ catch (error) {
66
+ console_1.default.debug("Error processing tags, defaulting to version 4.0.2", error);
67
+ version = "4.0.2";
68
+ matchingTags = [`learnpack-${version}.tar.gz`];
69
+ }
70
+ const latestVersion = matchingTags[0]
71
+ .replace("learnpack-", "")
72
+ .replace(".tar.gz", "");
73
+ const versionNumber = parseInt(latestVersion.split(".")[0]);
74
+ let url = `https://github.com/learnpack/coding-ide/blob/${latestVersion}/dist`;
75
+ if (versionNumber > 2)
76
+ url = `https://github.com/learnpack/ide/blob/master/bin/learnpack-${latestVersion}.tar.gz`;
77
+ const resp2 = await fetch(url, { method: "HEAD" });
78
+ if (!resp2.ok)
79
+ throw (0, errors_1.InternalError)(`Coding Editor ${latestVersion} was not found on learnpack repository, check the config.editor.version property on learn.json`);
80
+ url += versionNumber > 2 ? `?raw=true` : `/app.tar.gz?raw=true`;
81
+ return (0, exports.download)(url, destination);
82
+ };
83
+ exports.downloadEditor = downloadEditor;
84
+ const download = (url, dest) => {
85
+ console_1.default.debug("Downloading " + url);
86
+ return new Promise((resolve, reject) => {
87
+ const request = https.get(url, response => {
88
+ if (response.statusCode === 200) {
89
+ const file = fs.createWriteStream(dest, { flags: "wx" });
90
+ file.on("finish", () => {
91
+ resolve(true);
92
+ });
93
+ file.on("error", err => {
94
+ file.close();
95
+ if (err.code === "EEXIST") {
96
+ console_1.default.debug("File already exists");
97
+ resolve("File already exists");
98
+ }
99
+ else {
100
+ console_1.default.debug("Error ", err.message);
101
+ fs.unlink(dest, () => reject(err.message)); // Delete temp file
102
+ }
103
+ });
104
+ response.pipe(file);
105
+ }
106
+ else if (response.statusCode === 302 || response.statusCode === 301) {
107
+ // Console.debug("Servers redirected to "+response.headers.location)
108
+ // Recursively follow redirects, only a 200 will resolve.
109
+ if (response.headers.location) {
110
+ (0, exports.download)(response.headers.location, dest)
111
+ .then(() => resolve(/* */ ""))
112
+ .catch(error => {
113
+ console_1.default.error(error);
114
+ reject(error);
115
+ });
116
+ }
117
+ }
118
+ else {
119
+ console_1.default.debug(`Server responded with ${response.statusCode}: ${response.statusMessage}`);
120
+ reject(`Server responded with ${response.statusCode}: ${response.statusMessage}`);
121
+ }
122
+ });
123
+ request.on("error", err => {
124
+ reject(err.message);
125
+ });
126
+ });
127
+ };
128
+ exports.download = download;
129
+ const clone = (repository = "", folder = "./") => new Promise((resolve, reject) => {
130
+ if (!repository) {
131
+ reject("Missing repository url for this package");
132
+ // return false
133
+ }
134
+ cli_ux_1.cli.action.start("Verifying GIT...");
135
+ if (!shell.which("git")) {
136
+ reject("Sorry, this script requires git");
137
+ // return false
138
+ }
139
+ cli_ux_1.cli.action.stop();
140
+ let fileName = p.basename(repository);
141
+ if (!fileName) {
142
+ reject("Invalid repository information on package: " + repository);
143
+ // return false
144
+ }
145
+ fileName = fileName.split(".")[0];
146
+ if (fs.existsSync("./" + fileName)) {
147
+ reject(`Directory ${fileName} already exists; Did you download this package already?`);
148
+ // return false
149
+ }
150
+ cli_ux_1.cli.action.start(`Cloning repository ${repository}...`);
151
+ if (shell.exec(`git clone ${repository}`).code !== 0) {
152
+ reject("Error: Installation failed");
153
+ }
154
+ cli_ux_1.cli.action.stop();
155
+ cli_ux_1.cli.action.start("Cleaning installation...");
156
+ if (shell.exec(`rm -R -f ${folder}${fileName}/.git`).code !== 0) {
157
+ reject("Error: removing .git directory");
158
+ }
159
+ cli_ux_1.cli.action.stop();
160
+ resolve("Done");
161
+ });
162
+ exports.clone = clone;
163
+ const rmSync = function (path) {
164
+ let files = [];
165
+ if (fs.existsSync(path)) {
166
+ files = fs.readdirSync(path);
167
+ for (const [, file] of files.entries()) {
168
+ const curPath = path + "/" + file;
169
+ if (fs.lstatSync(curPath).isDirectory()) {
170
+ // recurse
171
+ (0, exports.rmSync)(curPath);
172
+ }
173
+ else {
174
+ // delete file
175
+ fs.unlinkSync(curPath);
176
+ }
177
+ }
178
+ fs.rmdirSync(path);
179
+ }
180
+ };
181
+ exports.rmSync = rmSync;
182
+ const checkIfDirectoryExists = (path) => {
183
+ const fs = require("fs");
184
+ if (fs.existsSync(path)) {
185
+ return true;
186
+ }
187
+ return false;
188
+ };
189
+ exports.checkIfDirectoryExists = checkIfDirectoryExists;
190
+ exports.default = { download: exports.download, decompress: exports.decompress, downloadEditor: exports.downloadEditor, clone: exports.clone, rmSync: exports.rmSync };
@@ -1,3 +1,3 @@
1
- import { IGitpod } from '../models/gitpod-data';
2
- declare const Gitpod: IGitpod;
3
- export default Gitpod;
1
+ import { IGitpod } from '../models/gitpod-data';
2
+ declare const Gitpod: IGitpod;
3
+ export default Gitpod;
@@ -1,67 +1,67 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const console_1 = require("../utils/console");
4
- const shell = require("shelljs");
5
- const socket_1 = require("./socket");
6
- const fs = require("fs");
7
- const Gitpod = {
8
- socket: null,
9
- config: null,
10
- initialized: false,
11
- hasGPCommand: false,
12
- init: function (config) {
13
- if (this.initialized) {
14
- return;
15
- }
16
- this.initialized = true;
17
- if (config) {
18
- this.config = config;
19
- }
20
- if (shell.exec('gp -h', { silent: true }).code === 0) {
21
- this.hasGPCommand = true;
22
- if (config) {
23
- config.address = shell
24
- .exec('gp url', { silent: true })
25
- .stdout.replace(/(\r\n|\n|\r)/gm, '');
26
- }
27
- }
28
- else {
29
- console_1.default.debug('Gitpod command line tool not found');
30
- }
31
- },
32
- openFiles: async function (files) {
33
- var _a;
34
- console_1.default.debug('Attempting to open files in gitpod mode', files);
35
- this.init(); // initilize gitpod config
36
- // gitpod will open files only on isolated mode
37
- if (!this.config || ((_a = this.config.config) === null || _a === void 0 ? void 0 : _a.grading) !== 'isolated') {
38
- console_1.default.debug('Files cannot be automatically opened because we are not on isolated grading (only for isolated)');
39
- socket_1.default.log('ready', ['Ready to compile or test...']);
40
- return true;
41
- }
42
- if (this.hasGPCommand)
43
- for (const f of files.reverse()) {
44
- if (shell.exec(`gp open ${f}`).code > 0) {
45
- console_1.default.debug(`Error opening file ${f} on gitpod`);
46
- }
47
- }
48
- socket_1.default.log('ready', ['Ready to compile or test...']);
49
- },
50
- setup(config) {
51
- this.init(config); // initilize gitpod config
52
- this.autosave('on');
53
- },
54
- autosave: async function (value = 'on') {
55
- this.init(); // initilize gitpod config
56
- if (this.hasGPCommand) {
57
- if (!fs.existsSync('./.theia'))
58
- fs.mkdirSync('./.theia');
59
- if (!fs.existsSync('./.theia/settings.json')) {
60
- fs.writeFileSync('./.theia/settings.json', JSON.stringify({
61
- 'editor.autoSave': value,
62
- }, null, 4));
63
- }
64
- }
65
- },
66
- };
67
- exports.default = Gitpod;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const console_1 = require("../utils/console");
4
+ const shell = require("shelljs");
5
+ const socket_1 = require("./socket");
6
+ const fs = require("fs");
7
+ const Gitpod = {
8
+ socket: null,
9
+ config: null,
10
+ initialized: false,
11
+ hasGPCommand: false,
12
+ init: function (config) {
13
+ if (this.initialized) {
14
+ return;
15
+ }
16
+ this.initialized = true;
17
+ if (config) {
18
+ this.config = config;
19
+ }
20
+ if (shell.exec('gp -h', { silent: true }).code === 0) {
21
+ this.hasGPCommand = true;
22
+ if (config) {
23
+ config.address = shell
24
+ .exec('gp url', { silent: true })
25
+ .stdout.replace(/(\r\n|\n|\r)/gm, '');
26
+ }
27
+ }
28
+ else {
29
+ console_1.default.debug('Gitpod command line tool not found');
30
+ }
31
+ },
32
+ openFiles: async function (files) {
33
+ var _a;
34
+ console_1.default.debug('Attempting to open files in gitpod mode', files);
35
+ this.init(); // initilize gitpod config
36
+ // gitpod will open files only on isolated mode
37
+ if (!this.config || ((_a = this.config.config) === null || _a === void 0 ? void 0 : _a.grading) !== 'isolated') {
38
+ console_1.default.debug('Files cannot be automatically opened because we are not on isolated grading (only for isolated)');
39
+ socket_1.default.log('ready', ['Ready to compile or test...']);
40
+ return true;
41
+ }
42
+ if (this.hasGPCommand)
43
+ for (const f of files.reverse()) {
44
+ if (shell.exec(`gp open ${f}`).code > 0) {
45
+ console_1.default.debug(`Error opening file ${f} on gitpod`);
46
+ }
47
+ }
48
+ socket_1.default.log('ready', ['Ready to compile or test...']);
49
+ },
50
+ setup(config) {
51
+ this.init(config); // initilize gitpod config
52
+ this.autosave('on');
53
+ },
54
+ autosave: async function (value = 'on') {
55
+ this.init(); // initilize gitpod config
56
+ if (this.hasGPCommand) {
57
+ if (!fs.existsSync('./.theia'))
58
+ fs.mkdirSync('./.theia');
59
+ if (!fs.existsSync('./.theia/settings.json')) {
60
+ fs.writeFileSync('./.theia/settings.json', JSON.stringify({
61
+ 'editor.autoSave': value,
62
+ }, null, 4));
63
+ }
64
+ }
65
+ },
66
+ };
67
+ exports.default = Gitpod;
@@ -1,6 +1,5 @@
1
- /// <reference types="node" />
2
- import * as http from "http";
3
- import { IConfigObj } from "../../models/config";
4
- import { IConfigManager } from "../../models/config-manager";
5
- export declare let TEST_SERVER: http.Server;
6
- export default function (configObj: IConfigObj, configManager: IConfigManager, isTestingEnvironment?: boolean): Promise<any>;
1
+ import * as http from "http";
2
+ import { IConfigObj } from "../../models/config";
3
+ import { IConfigManager } from "../../models/config-manager";
4
+ export declare let TEST_SERVER: http.Server;
5
+ export default function (configObj: IConfigObj, configManager: IConfigManager, isTestingEnvironment?: boolean): Promise<any>;