@betty-blocks/cli 25.2.0 → 25.3.0
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/CHANGELOG.md +7 -0
- package/build/bb-functions-login.js +2 -2
- package/build/bb-functions-login.js.map +1 -1
- package/build/bb-functions-publish.js +53 -6
- package/build/bb-functions-publish.js.map +1 -1
- package/build/bb-functions-validate.js +12 -24
- package/build/bb-functions-validate.js.map +1 -1
- package/build/functions/functionDefinitions.js +7 -8
- package/build/functions/functionDefinitions.js.map +1 -1
- package/build/functions/validations.js +49 -13
- package/build/functions/validations.js.map +1 -1
- package/build/utils/login.js +1 -1
- package/build/utils/login.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [25.3.0](https://github.com/bettyblocks/cli/compare/v25.2.0...v25.3.0) (2021-09-23)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* add FunctionValidator class ([4755bb4](https://github.com/bettyblocks/cli/commit/4755bb4))
|
|
7
|
+
|
|
1
8
|
# [25.2.0](https://github.com/bettyblocks/cli/compare/v25.1.1...v25.2.0) (2021-09-23)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -22,10 +22,10 @@ commander_1.default.name('bb functions login').parse(process.argv);
|
|
|
22
22
|
const fusionAuth = new login_1.default(config);
|
|
23
23
|
const loggedIn = yield fusionAuth.login();
|
|
24
24
|
if (loggedIn) {
|
|
25
|
-
console.log(`You are now logged in
|
|
25
|
+
console.log(`You are now logged in.`);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
console.log(`Couldn't log you in
|
|
28
|
+
console.log(`Couldn't log you in.`);
|
|
29
29
|
}
|
|
30
30
|
}))();
|
|
31
31
|
//# sourceMappingURL=bb-functions-login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb-functions-login.js","sourceRoot":"","sources":["../src/bb-functions-login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAgC;AAChC,gEAAwC;AACxC,0DAAuC;AAEvC,uBAAuB;AACvB,mBAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvD,CAAC,GAAwB,EAAE;IACzB,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,eAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAE1C,IAAI,QAAQ,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"bb-functions-login.js","sourceRoot":"","sources":["../src/bb-functions-login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAgC;AAChC,gEAAwC;AACxC,0DAAuC;AAEvC,uBAAuB;AACvB,mBAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvD,CAAC,GAAwB,EAAE;IACzB,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,eAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAE1C,IAAI,QAAQ,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;KACvC;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;KACrC;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
|
|
@@ -2,16 +2,28 @@
|
|
|
2
2
|
/* eslint-disable camelcase */
|
|
3
3
|
/* eslint-disable @typescript-eslint/camelcase */
|
|
4
4
|
/* npm dependencies */
|
|
5
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
+
});
|
|
13
|
+
};
|
|
5
14
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
16
|
};
|
|
8
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
18
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
19
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
20
|
const path_1 = __importDefault(require("path"));
|
|
11
21
|
const commander_1 = __importDefault(require("commander"));
|
|
12
22
|
/* internal dependencies */
|
|
13
23
|
const publishAppFunctions_1 = __importDefault(require("./functions/publishAppFunctions"));
|
|
14
24
|
const publishCustomFunctions_1 = __importDefault(require("./functions/publishCustomFunctions"));
|
|
25
|
+
const validations_1 = require("./functions/validations");
|
|
26
|
+
const config_1 = __importDefault(require("./functions/config"));
|
|
15
27
|
/* process arguments */
|
|
16
28
|
commander_1.default
|
|
17
29
|
.name('bb functions publish')
|
|
@@ -24,10 +36,45 @@ const skipBuild = commander_1.default.skip;
|
|
|
24
36
|
const { host } = commander_1.default;
|
|
25
37
|
/* execute command */
|
|
26
38
|
const workingDir = process.cwd();
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
39
|
+
const logResult = ({ status, functionName, errors, }) => {
|
|
40
|
+
if (status === 'ok') {
|
|
41
|
+
const mark = chalk_1.default.green(`✔`);
|
|
42
|
+
console.log(`${mark} Validated: ${functionName}`);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const msg = chalk_1.default.red(`${errors}`);
|
|
46
|
+
const mark = chalk_1.default.red(`✖`);
|
|
47
|
+
console.log(`${mark} Validated: ${functionName}\n\t${msg}`);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
const validateFunctions = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
const baseFunctionsPath = path_1.default.join(workingDir, 'functions');
|
|
52
|
+
console.log(`Validating functions in ${baseFunctionsPath}`);
|
|
53
|
+
const config = new config_1.default();
|
|
54
|
+
const validator = new validations_1.FunctionValidator(config, baseFunctionsPath);
|
|
55
|
+
yield validator.initSchema();
|
|
56
|
+
const results = yield validator.validateFunctions();
|
|
57
|
+
let validated = true;
|
|
58
|
+
results.forEach(result => {
|
|
59
|
+
if (result.status === 'error') {
|
|
60
|
+
validated = false;
|
|
61
|
+
}
|
|
62
|
+
logResult(result);
|
|
63
|
+
});
|
|
64
|
+
return validated;
|
|
65
|
+
});
|
|
66
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
67
|
+
if (fs_extra_1.default.existsSync(path_1.default.join(workingDir, '.app-functions'))) {
|
|
68
|
+
const validated = yield validateFunctions();
|
|
69
|
+
if (validated) {
|
|
70
|
+
publishAppFunctions_1.default();
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
console.log(`${chalk_1.default.red(`✖`)} Could not publish. Please make sure all functions are valid.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
publishCustomFunctions_1.default(host, bumpRevision, skipBuild);
|
|
78
|
+
}
|
|
79
|
+
}))();
|
|
33
80
|
//# sourceMappingURL=bb-functions-publish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb-functions-publish.js","sourceRoot":"","sources":["../src/bb-functions-publish.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,iDAAiD;AACjD,sBAAsB
|
|
1
|
+
{"version":3,"file":"bb-functions-publish.js","sourceRoot":"","sources":["../src/bb-functions-publish.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,iDAAiD;AACjD,sBAAsB;;;;;;;;;;;;;;AAEtB,wDAA0B;AAC1B,kDAA0B;AAC1B,gDAAwB;AACxB,0DAAgC;AAEhC,2BAA2B;AAE3B,0FAAkE;AAClE,gGAAwE;AACxE,yDAA8E;AAC9E,gEAAwC;AAExC,uBAAuB;AAEvB,mBAAO;KACJ,IAAI,CAAC,sBAAsB,CAAC;KAC5B,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,YAAY,EAAE,4CAA4C,CAAC;KAClE,MAAM,CACL,mBAAmB,EACnB,sEAAsE,CACvE;KACA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,YAAY,GAAG,mBAAO,CAAC,IAAI,CAAC;AAClC,MAAM,SAAS,GAAG,mBAAO,CAAC,IAAI,CAAC;AAC/B,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAO,CAAC;AAEzB,qBAAqB;AAErB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAEjC,MAAM,SAAS,GAAG,CAAC,EACjB,MAAM,EACN,YAAY,EACZ,MAAM,GACW,EAAQ,EAAE;IAC3B,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,MAAM,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,YAAY,EAAE,CAAC,CAAC;KACnD;SAAM;QACL,MAAM,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,YAAY,OAAO,GAAG,EAAE,CAAC,CAAC;KAC7D;AACH,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAA2B,EAAE;IACrD,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,2BAA2B,iBAAiB,EAAE,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAI,+BAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAEpD,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;YAC7B,SAAS,GAAG,KAAK,CAAC;SACnB;QACD,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,CAAC,GAAwB,EAAE;IACzB,IAAI,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE;QAC1D,MAAM,SAAS,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE5C,IAAI,SAAS,EAAE;YACb,6BAAmB,EAAE,CAAC;SACvB;aAAM;YACL,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,GAAG,CACV,GAAG,CACJ,+DAA+D,CACjE,CAAC;SACH;KACF;SAAM;QACL,gCAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;KACvD;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
|
|
@@ -14,11 +14,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
18
17
|
const path_1 = __importDefault(require("path"));
|
|
19
18
|
const commander_1 = __importDefault(require("commander"));
|
|
20
19
|
/* internal dependencies */
|
|
21
|
-
const functionDefinitions_1 = require("./functions/functionDefinitions");
|
|
22
20
|
const validations_1 = require("./functions/validations");
|
|
23
21
|
const config_1 = __importDefault(require("./functions/config"));
|
|
24
22
|
/* process arguments */
|
|
@@ -31,37 +29,27 @@ const { args: [inputFunctionName], } = commander_1.default;
|
|
|
31
29
|
const workingDir = process.cwd();
|
|
32
30
|
const baseFunctionsPath = path_1.default.join(workingDir, 'functions');
|
|
33
31
|
const config = new config_1.default();
|
|
34
|
-
const
|
|
35
|
-
const json = functionDefinitions_1.functionDefinition(functionPath);
|
|
36
|
-
const { status, functionName: name, errors } = yield validations_1.validateFunction(json, validator);
|
|
32
|
+
const logResult = ({ path: functionPath, status, functionName, errors, }) => {
|
|
37
33
|
if (status === 'ok') {
|
|
38
|
-
const mark = chalk_1.default.green(
|
|
39
|
-
console.log(`${mark} Validated: ${
|
|
34
|
+
const mark = chalk_1.default.green(`✔`);
|
|
35
|
+
console.log(`${mark} Validated: ${functionName}`);
|
|
40
36
|
}
|
|
41
37
|
else {
|
|
42
38
|
const msg = chalk_1.default.red(`${errors}`);
|
|
43
|
-
const mark = chalk_1.default.red(
|
|
44
|
-
console.log(`${mark} Validated: ${
|
|
39
|
+
const mark = chalk_1.default.red(`✖`);
|
|
40
|
+
console.log(`${mark} Validated: ${functionName || functionPath}\n\t${msg}`);
|
|
45
41
|
}
|
|
46
|
-
}
|
|
42
|
+
};
|
|
47
43
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
-
const validator =
|
|
44
|
+
const validator = new validations_1.FunctionValidator(config, baseFunctionsPath);
|
|
45
|
+
yield validator.initSchema();
|
|
49
46
|
if (inputFunctionName) {
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
validateFunctionByName(functionPath, validator);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
console.log(`${chalk_1.default.red(`x`)} Error: Function not found, missing ${functionDefinitions_1.functionDefinitionPath(functionPath)}.`);
|
|
56
|
-
}
|
|
47
|
+
const result = yield validator.validateFunction(inputFunctionName);
|
|
48
|
+
logResult(result);
|
|
57
49
|
}
|
|
58
50
|
else {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (functionDefinitions_1.isFunctionDefinition(functionPath)) {
|
|
62
|
-
validateFunctionByName(functionPath, validator);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
51
|
+
const results = yield validator.validateFunctions();
|
|
52
|
+
results.forEach(result => logResult(result));
|
|
65
53
|
}
|
|
66
54
|
}))();
|
|
67
55
|
//# sourceMappingURL=bb-functions-validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb-functions-validate.js","sourceRoot":"","sources":["../src/bb-functions-validate.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;;;;;;;;;;AAEtB,kDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"bb-functions-validate.js","sourceRoot":"","sources":["../src/bb-functions-validate.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;;;;;;;;;;AAEtB,kDAA0B;AAC1B,gDAAwB;AACxB,0DAAgC;AAEhC,2BAA2B;AAE3B,yDAA8E;AAC9E,gEAAwC;AAExC,uBAAuB;AACvB,mBAAO;KACJ,KAAK,CAAC,iBAAiB,CAAC;KACxB,IAAI,CAAC,uBAAuB,CAAC;KAC7B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,EACJ,IAAI,EAAE,CAAC,iBAAiB,CAAC,GAC1B,GAAG,mBAAO,CAAC;AACZ,qBAAqB;AAErB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAE7D,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;AAE5B,MAAM,SAAS,GAAG,CAAC,EACjB,IAAI,EAAE,YAAY,EAClB,MAAM,EACN,YAAY,EACZ,MAAM,GACW,EAAQ,EAAE;IAC3B,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,MAAM,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,YAAY,EAAE,CAAC,CAAC;KACnD;SAAM;QACL,MAAM,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,YAAY,IAAI,YAAY,OAAO,GAAG,EAAE,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AAEF,CAAC,GAAwB,EAAE;IACzB,MAAM,SAAS,GAAG,IAAI,+BAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IAE7B,IAAI,iBAAiB,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QACnE,SAAS,CAAC,MAAM,CAAC,CAAC;KACnB;SAAM;QACL,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACpD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9C;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
|
|
@@ -35,7 +35,10 @@ exports.functionDirs = functionDirs;
|
|
|
35
35
|
const functionDefinition = (functionPath) => {
|
|
36
36
|
const filePath = functionDefinitionPath(functionPath);
|
|
37
37
|
try {
|
|
38
|
-
return
|
|
38
|
+
return {
|
|
39
|
+
path: filePath,
|
|
40
|
+
schema: fs_extra_1.default.readJSONSync(filePath),
|
|
41
|
+
};
|
|
39
42
|
}
|
|
40
43
|
catch (err) {
|
|
41
44
|
throw new Error(`could not load json from ${filePath}: ${err}`);
|
|
@@ -47,16 +50,12 @@ exports.functionDefinition = functionDefinition;
|
|
|
47
50
|
inside the given functionsDir, indexed by function name.
|
|
48
51
|
*/
|
|
49
52
|
const functionDefinitions = (functionsDir) => {
|
|
50
|
-
return functionDirs(functionsDir).
|
|
51
|
-
const functionJson = functionDefinition(functionDir);
|
|
52
|
-
return Object.assign({ [functionJson.name]: functionJson }, definitions);
|
|
53
|
-
}, {});
|
|
53
|
+
return functionDirs(functionsDir).map(functionDir => functionDefinition(functionDir));
|
|
54
54
|
};
|
|
55
55
|
exports.functionDefinitions = functionDefinitions;
|
|
56
56
|
const stringifyDefinitions = (definitions) => {
|
|
57
|
-
const updatedDefinitions =
|
|
58
|
-
|
|
59
|
-
return Object.assign(Object.assign({}, acc), { [name]: Object.assign(Object.assign({}, definition), { options: JSON.stringify(definition.options) }) });
|
|
57
|
+
const updatedDefinitions = definitions.reduce((acc, { schema }) => {
|
|
58
|
+
return Object.assign(Object.assign({}, acc), { [schema.name]: Object.assign(Object.assign({}, schema), { options: JSON.stringify(schema.options) }) });
|
|
60
59
|
}, {});
|
|
61
60
|
return JSON.stringify(updatedDefinitions);
|
|
62
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functionDefinitions.js","sourceRoot":"","sources":["../../src/functions/functionDefinitions.ts"],"names":[],"mappings":";;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,sDAA6B;
|
|
1
|
+
{"version":3,"file":"functionDefinitions.js","sourceRoot":"","sources":["../../src/functions/functionDefinitions.ts"],"names":[],"mappings":";;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,sDAA6B;AAU7B;;EAEE;AACF,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAU,EAAE,CAC9D,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AA2HzC,wDAAsB;AAzHxB;;;EAGE;AACF,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAW,EAAE,CAC7D,kBAAE,CAAC,cAAc,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;AAuHxD,oDAAoB;AArHtB;;EAEE;AACF,MAAM,YAAY,GAAG,CAAC,YAAoB,EAAY,EAAE,CACtD,kBAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE;IACpB,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,EACD,EAAc,CACf,CAAC;AAmGF,oCAAY;AAjGd;;;EAGE;AACF,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAsB,EAAE;IACtE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI;QACF,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,kBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;SACZ,CAAC;KACzB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;KACjE;AACH,CAAC,CAAC;AAqFA,gDAAkB;AAnFpB;;;EAGE;AACF,MAAM,mBAAmB,GAAG,CAAC,YAAoB,EAAwB,EAAE;IACzE,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,CACnC,WAAW,CAAC,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAuB,CACrE,CAAC;AACJ,CAAC,CAAC;AA4EA,kDAAmB;AA1ErB,MAAM,oBAAoB,GAAG,CAAC,WAAiC,EAAU,EAAE;IACzE,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAChE,uCACK,GAAG,KACN,CAAC,MAAM,CAAC,IAAI,CAAC,kCACR,MAAM,KACT,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAEzC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAiEA,oDAAoB;AA/DtB;;;EAGE;AACF,MAAM,qBAAqB,GAAG,CAC5B,YAAoB,EACpB,YAAoB,EACd,EAAE;IACR,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI;QACF,kBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3B,kBAAE,CAAC,aAAa,CACd,sBAAsB,CAAC,WAAW,CAAC,EACnC;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,MAAM;SACf,EACD,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;QAEF,kBAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAClC,SAAS,eAAe,2CAA2C,eAAe,GAAG,CACtF,CAAC;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AA6BA,sDAAqB;AA3BvB;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAU,EAAE;IAC9D,MAAM,GAAG,GAAG,IAAI,iBAAM,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,WAAW,GAAG,GAAG,MAAM,UAAU,CAAC;IAExC,kBAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAEzB,GAAG,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3D,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAEjC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE1B,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAUA,wDAAsB"}
|
|
@@ -13,7 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
16
17
|
const jsonschema_1 = require("jsonschema");
|
|
18
|
+
const functionDefinitions_1 = require("./functionDefinitions");
|
|
17
19
|
const fetchRemoteSchema = (schemaUrl) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
20
|
const res = yield node_fetch_1.default(schemaUrl);
|
|
19
21
|
const json = yield res.json();
|
|
@@ -37,7 +39,7 @@ const functionValidator = (config) => __awaiter(void 0, void 0, void 0, function
|
|
|
37
39
|
return importSchema(validator, config);
|
|
38
40
|
});
|
|
39
41
|
exports.functionValidator = functionValidator;
|
|
40
|
-
const validateFunctionDefinition = (validator,
|
|
42
|
+
const validateFunctionDefinition = (validator, definition) => {
|
|
41
43
|
const functionSchemaId = Object.keys(validator.schemas).find(k => {
|
|
42
44
|
return k.match(/function\.json$/);
|
|
43
45
|
});
|
|
@@ -45,23 +47,57 @@ const validateFunctionDefinition = (validator, functionDefinition) => {
|
|
|
45
47
|
throw new Error(`Cannot find Function schema Id, ${functionSchemaId}`);
|
|
46
48
|
}
|
|
47
49
|
const functionSchema = validator.schemas[functionSchemaId];
|
|
48
|
-
return validator.validate(
|
|
50
|
+
return validator.validate(definition, functionSchema);
|
|
49
51
|
};
|
|
50
52
|
const validateFunction = (functionJson, validator) => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
-
const {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
status: 'error',
|
|
56
|
-
functionName: func.name,
|
|
57
|
-
errors,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
53
|
+
const { path: definitionPath, schema } = functionJson;
|
|
54
|
+
const { errors } = validateFunctionDefinition(validator, schema);
|
|
55
|
+
const status = errors.length ? 'error' : 'ok';
|
|
60
56
|
return {
|
|
61
|
-
status
|
|
62
|
-
|
|
57
|
+
status,
|
|
58
|
+
path: definitionPath,
|
|
59
|
+
functionName: schema.name,
|
|
63
60
|
errors,
|
|
64
61
|
};
|
|
65
62
|
});
|
|
66
63
|
exports.validateFunction = validateFunction;
|
|
64
|
+
class FunctionValidator {
|
|
65
|
+
constructor(config, functionsDir) {
|
|
66
|
+
this.config = config;
|
|
67
|
+
this.schemaValidator = new jsonschema_1.Validator();
|
|
68
|
+
this.functionsDir = functionsDir;
|
|
69
|
+
}
|
|
70
|
+
initSchema() {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
yield importSchema(this.schemaValidator, this.config);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
validateFunction(functionName) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const functionPath = path_1.default.join(this.functionsDir, functionName);
|
|
78
|
+
try {
|
|
79
|
+
const definition = functionDefinitions_1.functionDefinition(functionPath);
|
|
80
|
+
return validateFunction(definition, this.schemaValidator);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
return {
|
|
84
|
+
status: 'error',
|
|
85
|
+
path: functionPath,
|
|
86
|
+
functionName,
|
|
87
|
+
errors: [{ message: `${err}` }],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
validateFunctions() {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
const definitions = functionDefinitions_1.functionDefinitions(this.functionsDir);
|
|
95
|
+
const validations = definitions.map(definition => {
|
|
96
|
+
return validateFunction(definition, this.schemaValidator);
|
|
97
|
+
});
|
|
98
|
+
return Promise.all(validations);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.FunctionValidator = FunctionValidator;
|
|
67
103
|
//# sourceMappingURL=validations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validations.js","sourceRoot":"","sources":["../../src/functions/validations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAA+B;AAC/B,2CAAyE;
|
|
1
|
+
{"version":3,"file":"validations.js","sourceRoot":"","sources":["../../src/functions/validations.ts"],"names":[],"mappings":"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"}
|
package/build/utils/login.js
CHANGED
|
@@ -37,7 +37,7 @@ const promptCredentials = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
37
37
|
},
|
|
38
38
|
]);
|
|
39
39
|
if (!email.match(/@/)) {
|
|
40
|
-
console.log(`Can't login without an email
|
|
40
|
+
console.log(`Can't login without an email.`);
|
|
41
41
|
process.exit();
|
|
42
42
|
}
|
|
43
43
|
storeAuthConfig({ email });
|
package/build/utils/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/utils/login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,4DAA+B;AAC/B,iEAA2D;AAW3D,MAAM,cAAc,GAAG,GAAiB,EAAE;IACxC,OAAO,gBAAM,CAAC,gBAAgB,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAQ,EAAE;IAC7C,gBAAM,CAAC,mBAAmB,CAAC,MAAM,kCAC5B,cAAc,EAAE,CAAC,IAAI,GACrB,IAAI,EACP,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAGvB,EAAE;IACH,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAO,CAAC;QACxC;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;SAC3B;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,uBAAuB;SACjC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/utils/login.ts"],"names":[],"mappings":"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"}
|