@learnpack/learnpack 4.0.9 → 4.0.12
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.
- package/README.md +25 -10
- package/lib/commands/audit.d.ts +6 -6
- package/lib/commands/audit.js +327 -327
- package/lib/commands/build.d.ts +11 -0
- package/lib/commands/build.js +160 -0
- package/lib/commands/clean.d.ts +8 -8
- package/lib/commands/clean.js +22 -22
- package/lib/commands/download.d.ts +13 -13
- package/lib/commands/download.js +52 -52
- package/lib/commands/init.d.ts +9 -9
- package/lib/commands/init.js +127 -127
- package/lib/commands/login.d.ts +14 -14
- package/lib/commands/login.js +34 -34
- package/lib/commands/logout.d.ts +14 -14
- package/lib/commands/logout.js +34 -34
- package/lib/commands/publish.d.ts +14 -14
- package/lib/commands/publish.js +79 -79
- package/lib/commands/start.d.ts +7 -7
- package/lib/commands/start.js +252 -250
- package/lib/commands/test.d.ts +6 -6
- package/lib/commands/test.js +62 -62
- package/lib/index.d.ts +1 -1
- package/lib/index.js +4 -4
- package/lib/managers/config/allowed_files.d.ts +5 -5
- package/lib/managers/config/allowed_files.js +30 -30
- package/lib/managers/config/defaults.d.ts +47 -48
- package/lib/managers/config/defaults.js +51 -51
- package/lib/managers/config/exercise.d.ts +36 -36
- package/lib/managers/config/exercise.js +243 -236
- package/lib/managers/config/index.d.ts +3 -3
- package/lib/managers/config/index.js +464 -459
- package/lib/managers/file.d.ts +14 -14
- package/lib/managers/file.js +190 -184
- package/lib/managers/gitpod.d.ts +3 -3
- package/lib/managers/gitpod.js +67 -67
- package/lib/managers/server/index.d.ts +5 -6
- package/lib/managers/server/index.js +58 -58
- package/lib/managers/server/routes.d.ts +4 -4
- package/lib/managers/server/routes.js +228 -220
- package/lib/managers/session.d.ts +3 -3
- package/lib/managers/session.js +125 -125
- package/lib/managers/socket.d.ts +3 -3
- package/lib/managers/socket.js +188 -186
- package/lib/managers/telemetry.d.ts +74 -74
- package/lib/managers/telemetry.js +215 -214
- package/lib/managers/test.js +84 -84
- package/lib/models/action.d.ts +2 -2
- package/lib/models/action.js +2 -2
- package/lib/models/audit.d.ts +15 -15
- package/lib/models/audit.js +2 -2
- package/lib/models/config-manager.d.ts +21 -21
- package/lib/models/config-manager.js +2 -2
- package/lib/models/config.d.ts +86 -86
- package/lib/models/config.js +2 -2
- package/lib/models/counter.d.ts +11 -11
- package/lib/models/counter.js +2 -2
- package/lib/models/errors.d.ts +15 -15
- package/lib/models/errors.js +2 -2
- package/lib/models/exercise-obj.d.ts +29 -30
- package/lib/models/exercise-obj.js +2 -2
- package/lib/models/file.d.ts +5 -5
- package/lib/models/file.js +2 -2
- package/lib/models/findings.d.ts +17 -17
- package/lib/models/findings.js +2 -2
- package/lib/models/flags.d.ts +10 -10
- package/lib/models/flags.js +2 -2
- package/lib/models/front-matter.d.ts +11 -11
- package/lib/models/front-matter.js +2 -2
- package/lib/models/gitpod-data.d.ts +16 -16
- package/lib/models/gitpod-data.js +2 -2
- package/lib/models/language.d.ts +4 -4
- package/lib/models/language.js +2 -2
- package/lib/models/package.d.ts +7 -7
- package/lib/models/package.js +2 -2
- package/lib/models/plugin-config.d.ts +16 -16
- package/lib/models/plugin-config.js +2 -2
- package/lib/models/session.d.ts +31 -31
- package/lib/models/session.js +2 -2
- package/lib/models/socket.d.ts +37 -37
- package/lib/models/socket.js +2 -2
- package/lib/models/status.d.ts +1 -1
- package/lib/models/status.js +2 -2
- package/lib/models/success-types.d.ts +1 -1
- package/lib/models/success-types.js +2 -2
- package/lib/plugin/command/compile.d.ts +6 -6
- package/lib/plugin/command/compile.js +18 -18
- package/lib/plugin/command/test.d.ts +6 -6
- package/lib/plugin/command/test.js +25 -25
- package/lib/plugin/index.d.ts +27 -27
- package/lib/plugin/index.js +7 -7
- package/lib/plugin/plugin.d.ts +8 -8
- package/lib/plugin/plugin.js +68 -68
- package/lib/plugin/utils.d.ts +16 -16
- package/lib/plugin/utils.js +58 -58
- package/lib/ui/download.d.ts +5 -5
- package/lib/ui/download.js +62 -61
- package/lib/utils/BaseCommand.d.ts +8 -8
- package/lib/utils/BaseCommand.js +41 -41
- package/lib/utils/SessionCommand.d.ts +10 -10
- package/lib/utils/SessionCommand.js +43 -43
- package/lib/utils/api.d.ts +14 -14
- package/lib/utils/api.js +255 -255
- package/lib/utils/audit.d.ts +16 -16
- package/lib/utils/audit.js +303 -303
- package/lib/utils/checkNotInstalled.d.ts +8 -8
- package/lib/utils/checkNotInstalled.js +185 -181
- package/lib/utils/console.d.ts +12 -12
- package/lib/utils/console.js +19 -19
- package/lib/utils/errors.d.ts +17 -17
- package/lib/utils/errors.js +107 -100
- package/lib/utils/exercisesQueue.d.ts +9 -9
- package/lib/utils/exercisesQueue.js +38 -38
- package/lib/utils/fileQueue.d.ts +43 -43
- package/lib/utils/fileQueue.js +169 -169
- package/lib/utils/misc.d.ts +1 -1
- package/lib/utils/misc.js +24 -23
- package/lib/utils/osOperations.d.ts +5 -5
- package/lib/utils/osOperations.js +72 -72
- package/lib/utils/validators.d.ts +5 -5
- package/lib/utils/validators.js +16 -17
- package/lib/utils/watcher.d.ts +2 -2
- package/lib/utils/watcher.js +25 -25
- package/oclif.manifest.json +1 -1
- package/package.json +6 -4
- package/src/commands/build.ts +181 -0
- package/src/managers/config/index.ts +5 -0
- package/src/managers/server/routes.ts +11 -1
- package/src/managers/session.ts +1 -1
package/lib/commands/login.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
-
declare class LoginCommand extends SessionCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static flags: any;
|
|
5
|
-
static args: {
|
|
6
|
-
name: string;
|
|
7
|
-
required: boolean;
|
|
8
|
-
description: string;
|
|
9
|
-
hidden: boolean;
|
|
10
|
-
}[];
|
|
11
|
-
init(): Promise<void>;
|
|
12
|
-
run(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export default LoginCommand;
|
|
1
|
+
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
+
declare class LoginCommand extends SessionCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: any;
|
|
5
|
+
static args: {
|
|
6
|
+
name: string;
|
|
7
|
+
required: boolean;
|
|
8
|
+
description: string;
|
|
9
|
+
hidden: boolean;
|
|
10
|
+
}[];
|
|
11
|
+
init(): Promise<void>;
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export default LoginCommand;
|
package/lib/commands/login.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const SessionCommand_1 = require("../utils/SessionCommand");
|
|
4
|
-
const session_1 = require("../managers/session");
|
|
5
|
-
const console_1 = require("../utils/console");
|
|
6
|
-
class LoginCommand extends SessionCommand_1.default {
|
|
7
|
-
async init() {
|
|
8
|
-
const { flags } = this.parse(LoginCommand);
|
|
9
|
-
await this.initSession(flags);
|
|
10
|
-
}
|
|
11
|
-
async run() {
|
|
12
|
-
/* const {flags, args} = */ this.parse(LoginCommand);
|
|
13
|
-
try {
|
|
14
|
-
await session_1.default.login();
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
console_1.default.error("Error trying to authenticate");
|
|
18
|
-
console_1.default.error(error.message || error);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const SessionCommand_1 = require("../utils/SessionCommand");
|
|
4
|
+
const session_1 = require("../managers/session");
|
|
5
|
+
const console_1 = require("../utils/console");
|
|
6
|
+
class LoginCommand extends SessionCommand_1.default {
|
|
7
|
+
async init() {
|
|
8
|
+
const { flags } = this.parse(LoginCommand);
|
|
9
|
+
await this.initSession(flags);
|
|
10
|
+
}
|
|
11
|
+
async run() {
|
|
12
|
+
/* const {flags, args} = */ this.parse(LoginCommand);
|
|
13
|
+
try {
|
|
14
|
+
await session_1.default.login();
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console_1.default.error("Error trying to authenticate");
|
|
18
|
+
console_1.default.error(error.message || error);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
22
|
LoginCommand.description = `Describe the command here
|
|
23
23
|
...
|
|
24
24
|
Extra documentation goes here
|
|
25
|
-
`;
|
|
26
|
-
LoginCommand.flags = {
|
|
27
|
-
// name: flags.string({char: 'n', description: 'name to print'}),
|
|
28
|
-
};
|
|
29
|
-
LoginCommand.args = [
|
|
30
|
-
{
|
|
31
|
-
name: "package",
|
|
32
|
-
required: false,
|
|
33
|
-
description: "The unique string that identifies this package on learnpack",
|
|
34
|
-
hidden: false,
|
|
35
|
-
},
|
|
36
|
-
];
|
|
37
|
-
exports.default = LoginCommand;
|
|
25
|
+
`;
|
|
26
|
+
LoginCommand.flags = {
|
|
27
|
+
// name: flags.string({char: 'n', description: 'name to print'}),
|
|
28
|
+
};
|
|
29
|
+
LoginCommand.args = [
|
|
30
|
+
{
|
|
31
|
+
name: "package", // name of arg to show in help and reference with args[name]
|
|
32
|
+
required: false, // make the arg required with `required: true`
|
|
33
|
+
description: "The unique string that identifies this package on learnpack", // help description
|
|
34
|
+
hidden: false, // hide this arg from help
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
exports.default = LoginCommand;
|
package/lib/commands/logout.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
-
declare class LogoutCommand extends SessionCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static flags: any;
|
|
5
|
-
static args: {
|
|
6
|
-
name: string;
|
|
7
|
-
required: boolean;
|
|
8
|
-
description: string;
|
|
9
|
-
hidden: boolean;
|
|
10
|
-
}[];
|
|
11
|
-
init(): Promise<void>;
|
|
12
|
-
run(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export default LogoutCommand;
|
|
1
|
+
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
+
declare class LogoutCommand extends SessionCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: any;
|
|
5
|
+
static args: {
|
|
6
|
+
name: string;
|
|
7
|
+
required: boolean;
|
|
8
|
+
description: string;
|
|
9
|
+
hidden: boolean;
|
|
10
|
+
}[];
|
|
11
|
+
init(): Promise<void>;
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export default LogoutCommand;
|
package/lib/commands/logout.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// import {Command, flags} from '@oclif/command'
|
|
4
|
-
// import { prompt } from "enquirer"
|
|
5
|
-
// import fetch from 'node-fetch'
|
|
6
|
-
const SessionCommand_1 = require("../utils/SessionCommand");
|
|
7
|
-
const session_1 = require("../managers/session");
|
|
8
|
-
// import Console from '../utils/console'
|
|
9
|
-
// import { replace } from 'node-emoji'
|
|
10
|
-
// import { validURL } from "../utils/validators"
|
|
11
|
-
// const BaseCommand from '../utils/BaseCommand');
|
|
12
|
-
class LogoutCommand extends SessionCommand_1.default {
|
|
13
|
-
async init() {
|
|
14
|
-
const { flags } = this.parse(LogoutCommand);
|
|
15
|
-
await this.initSession(flags);
|
|
16
|
-
}
|
|
17
|
-
async run() {
|
|
18
|
-
// const {flags, args} = this.parse(LogoutCommand)
|
|
19
|
-
session_1.default.destroy();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// import {Command, flags} from '@oclif/command'
|
|
4
|
+
// import { prompt } from "enquirer"
|
|
5
|
+
// import fetch from 'node-fetch'
|
|
6
|
+
const SessionCommand_1 = require("../utils/SessionCommand");
|
|
7
|
+
const session_1 = require("../managers/session");
|
|
8
|
+
// import Console from '../utils/console'
|
|
9
|
+
// import { replace } from 'node-emoji'
|
|
10
|
+
// import { validURL } from "../utils/validators"
|
|
11
|
+
// const BaseCommand from '../utils/BaseCommand');
|
|
12
|
+
class LogoutCommand extends SessionCommand_1.default {
|
|
13
|
+
async init() {
|
|
14
|
+
const { flags } = this.parse(LogoutCommand);
|
|
15
|
+
await this.initSession(flags);
|
|
16
|
+
}
|
|
17
|
+
async run() {
|
|
18
|
+
// const {flags, args} = this.parse(LogoutCommand)
|
|
19
|
+
session_1.default.destroy();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
22
|
LogoutCommand.description = `Describe the command here
|
|
23
23
|
...
|
|
24
24
|
Extra documentation goes here
|
|
25
|
-
`;
|
|
26
|
-
LogoutCommand.flags = {
|
|
27
|
-
// name: flags.string({char: 'n', description: 'name to print'}),
|
|
28
|
-
};
|
|
29
|
-
LogoutCommand.args = [
|
|
30
|
-
{
|
|
31
|
-
name: "package",
|
|
32
|
-
required: false,
|
|
33
|
-
description: "The unique string that identifies this package on learnpack",
|
|
34
|
-
hidden: false,
|
|
35
|
-
},
|
|
36
|
-
];
|
|
37
|
-
exports.default = LogoutCommand;
|
|
25
|
+
`;
|
|
26
|
+
LogoutCommand.flags = {
|
|
27
|
+
// name: flags.string({char: 'n', description: 'name to print'}),
|
|
28
|
+
};
|
|
29
|
+
LogoutCommand.args = [
|
|
30
|
+
{
|
|
31
|
+
name: "package", // name of arg to show in help and reference with args[name]
|
|
32
|
+
required: false, // make the arg required with `required: true`
|
|
33
|
+
description: "The unique string that identifies this package on learnpack", // help description
|
|
34
|
+
hidden: false, // hide this arg from help
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
exports.default = LogoutCommand;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
-
declare class PublishCommand extends SessionCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static flags: any;
|
|
5
|
-
static args: {
|
|
6
|
-
name: string;
|
|
7
|
-
required: boolean;
|
|
8
|
-
description: string;
|
|
9
|
-
hidden: boolean;
|
|
10
|
-
}[];
|
|
11
|
-
init(): Promise<void>;
|
|
12
|
-
run(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export default PublishCommand;
|
|
1
|
+
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
+
declare class PublishCommand extends SessionCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: any;
|
|
5
|
+
static args: {
|
|
6
|
+
name: string;
|
|
7
|
+
required: boolean;
|
|
8
|
+
description: string;
|
|
9
|
+
hidden: boolean;
|
|
10
|
+
}[];
|
|
11
|
+
init(): Promise<void>;
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export default PublishCommand;
|
package/lib/commands/publish.js
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const enquirer_1 = require("enquirer");
|
|
4
|
-
const SessionCommand_1 = require("../utils/SessionCommand");
|
|
5
|
-
const console_1 = require("../utils/console");
|
|
6
|
-
const api_1 = require("../utils/api");
|
|
7
|
-
const validators_1 = require("../utils/validators");
|
|
8
|
-
// eslint-disable-next-line
|
|
9
|
-
const fetch = require("node-fetch");
|
|
10
|
-
class PublishCommand extends SessionCommand_1.default {
|
|
11
|
-
async init() {
|
|
12
|
-
const { flags } = this.parse(PublishCommand);
|
|
13
|
-
await this.initSession(flags, true);
|
|
14
|
-
}
|
|
15
|
-
async run() {
|
|
16
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
17
|
-
const { flags, args } = this.parse(PublishCommand);
|
|
18
|
-
// avoid annonymus sessions
|
|
19
|
-
// eslint-disable-next-line
|
|
20
|
-
if (!this.session)
|
|
21
|
-
return;
|
|
22
|
-
console_1.default.info(`Session found for ${this.session.payload.email}, publishing the package...`);
|
|
23
|
-
const configObject = (_a = this.configManager) === null || _a === void 0 ? void 0 : _a.get();
|
|
24
|
-
if (((_b = configObject === null || configObject === void 0 ? void 0 : configObject.config) === null || _b === void 0 ? void 0 : _b.slug) === undefined ||
|
|
25
|
-
!((_c = configObject.config) === null || _c === void 0 ? void 0 : _c.slug)) {
|
|
26
|
-
throw new Error("The package is missing a slug (unique name identifier), please check your learn.json file and make sure it has a 'slug'");
|
|
27
|
-
}
|
|
28
|
-
if (!validators_1.validURL((_e = (_d = configObject === null || configObject === void 0 ? void 0 : configObject.config) === null || _d === void 0 ? void 0 : _d.repository) !== null && _e !== void 0 ? _e : "")) {
|
|
29
|
-
throw new Error("The package has a missing or invalid 'repository' on the configuration file, it needs to be a Github URL");
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
const validateResp = await fetch((_f = configObject.config) === null || _f === void 0 ? void 0 : _f.repository, {
|
|
33
|
-
method: "HEAD",
|
|
34
|
-
});
|
|
35
|
-
if (!validateResp.ok || validateResp.status !== 200) {
|
|
36
|
-
throw new Error(`The specified repository URL on the configuration file does not exist or its private, only public repositories are allowed at the moment: ${(_g = configObject.config) === null || _g === void 0 ? void 0 : _g.repository}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// start watching for file changes
|
|
40
|
-
try {
|
|
41
|
-
await api_1.default.publish(Object.assign(Object.assign({}, configObject), { author: this.session.payload.user_id }));
|
|
42
|
-
console_1.default.success(`Package updated and published successfully: ${(_h = configObject.config) === null || _h === void 0 ? void 0 : _h.slug}`);
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
if (error.status === 404) {
|
|
46
|
-
const answer = await enquirer_1.prompt([
|
|
47
|
-
{
|
|
48
|
-
type: "confirm",
|
|
49
|
-
name: "create",
|
|
50
|
-
message: `Package with slug ${(_j = configObject.config) === null || _j === void 0 ? void 0 : _j.slug} does not exist, do you want to create it?`,
|
|
51
|
-
},
|
|
52
|
-
]);
|
|
53
|
-
if (answer) {
|
|
54
|
-
await api_1.default.update(Object.assign(Object.assign({}, configObject), { author: this.session.payload.user_id }));
|
|
55
|
-
console_1.default.success(`Package created and published successfully: ${(_k = configObject.config) === null || _k === void 0 ? void 0 : _k.slug}`);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
console_1.default.error("No answer from server");
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
console_1.default.error(error.message);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const enquirer_1 = require("enquirer");
|
|
4
|
+
const SessionCommand_1 = require("../utils/SessionCommand");
|
|
5
|
+
const console_1 = require("../utils/console");
|
|
6
|
+
const api_1 = require("../utils/api");
|
|
7
|
+
const validators_1 = require("../utils/validators");
|
|
8
|
+
// eslint-disable-next-line
|
|
9
|
+
const fetch = require("node-fetch");
|
|
10
|
+
class PublishCommand extends SessionCommand_1.default {
|
|
11
|
+
async init() {
|
|
12
|
+
const { flags } = this.parse(PublishCommand);
|
|
13
|
+
await this.initSession(flags, true);
|
|
14
|
+
}
|
|
15
|
+
async run() {
|
|
16
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
17
|
+
const { flags, args } = this.parse(PublishCommand);
|
|
18
|
+
// avoid annonymus sessions
|
|
19
|
+
// eslint-disable-next-line
|
|
20
|
+
if (!this.session)
|
|
21
|
+
return;
|
|
22
|
+
console_1.default.info(`Session found for ${this.session.payload.email}, publishing the package...`);
|
|
23
|
+
const configObject = (_a = this.configManager) === null || _a === void 0 ? void 0 : _a.get();
|
|
24
|
+
if (((_b = configObject === null || configObject === void 0 ? void 0 : configObject.config) === null || _b === void 0 ? void 0 : _b.slug) === undefined ||
|
|
25
|
+
!((_c = configObject.config) === null || _c === void 0 ? void 0 : _c.slug)) {
|
|
26
|
+
throw new Error("The package is missing a slug (unique name identifier), please check your learn.json file and make sure it has a 'slug'");
|
|
27
|
+
}
|
|
28
|
+
if (!(0, validators_1.validURL)((_e = (_d = configObject === null || configObject === void 0 ? void 0 : configObject.config) === null || _d === void 0 ? void 0 : _d.repository) !== null && _e !== void 0 ? _e : "")) {
|
|
29
|
+
throw new Error("The package has a missing or invalid 'repository' on the configuration file, it needs to be a Github URL");
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const validateResp = await fetch((_f = configObject.config) === null || _f === void 0 ? void 0 : _f.repository, {
|
|
33
|
+
method: "HEAD",
|
|
34
|
+
});
|
|
35
|
+
if (!validateResp.ok || validateResp.status !== 200) {
|
|
36
|
+
throw new Error(`The specified repository URL on the configuration file does not exist or its private, only public repositories are allowed at the moment: ${(_g = configObject.config) === null || _g === void 0 ? void 0 : _g.repository}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// start watching for file changes
|
|
40
|
+
try {
|
|
41
|
+
await api_1.default.publish(Object.assign(Object.assign({}, configObject), { author: this.session.payload.user_id }));
|
|
42
|
+
console_1.default.success(`Package updated and published successfully: ${(_h = configObject.config) === null || _h === void 0 ? void 0 : _h.slug}`);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (error.status === 404) {
|
|
46
|
+
const answer = await (0, enquirer_1.prompt)([
|
|
47
|
+
{
|
|
48
|
+
type: "confirm",
|
|
49
|
+
name: "create",
|
|
50
|
+
message: `Package with slug ${(_j = configObject.config) === null || _j === void 0 ? void 0 : _j.slug} does not exist, do you want to create it?`,
|
|
51
|
+
},
|
|
52
|
+
]);
|
|
53
|
+
if (answer) {
|
|
54
|
+
await api_1.default.update(Object.assign(Object.assign({}, configObject), { author: this.session.payload.user_id }));
|
|
55
|
+
console_1.default.success(`Package created and published successfully: ${(_k = configObject.config) === null || _k === void 0 ? void 0 : _k.slug}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
console_1.default.error("No answer from server");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console_1.default.error(error.message);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
67
|
PublishCommand.description = `Describe the command here
|
|
68
68
|
...
|
|
69
69
|
Extra documentation goes here
|
|
70
|
-
`;
|
|
71
|
-
PublishCommand.flags = {
|
|
72
|
-
// name: flags.string({char: 'n', description: 'name to print'}),
|
|
73
|
-
};
|
|
74
|
-
PublishCommand.args = [
|
|
75
|
-
{
|
|
76
|
-
name: "package",
|
|
77
|
-
required: false,
|
|
78
|
-
description: "The unique string that identifies this package on learnpack",
|
|
79
|
-
hidden: false,
|
|
80
|
-
},
|
|
81
|
-
];
|
|
82
|
-
exports.default = PublishCommand;
|
|
70
|
+
`;
|
|
71
|
+
PublishCommand.flags = {
|
|
72
|
+
// name: flags.string({char: 'n', description: 'name to print'}),
|
|
73
|
+
};
|
|
74
|
+
PublishCommand.args = [
|
|
75
|
+
{
|
|
76
|
+
name: "package", // name of arg to show in help and reference with args[name]
|
|
77
|
+
required: false, // make the arg required with `required: true`
|
|
78
|
+
description: "The unique string that identifies this package on learnpack", // help description
|
|
79
|
+
hidden: false, // hide this arg from help
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
exports.default = PublishCommand;
|
package/lib/commands/start.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
-
export default class StartCommand extends SessionCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static flags: any;
|
|
5
|
-
init(): Promise<void>;
|
|
6
|
-
run(): Promise<void>;
|
|
7
|
-
}
|
|
1
|
+
import SessionCommand from "../utils/SessionCommand";
|
|
2
|
+
export default class StartCommand extends SessionCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: any;
|
|
5
|
+
init(): Promise<void>;
|
|
6
|
+
run(): Promise<void>;
|
|
7
|
+
}
|