@betty-blocks/cli 25.0.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 +28 -0
- package/assets/app-functions/templates/functions/say-hello/function.json +2 -3
- package/build/bb-components-build.js +12 -7
- package/build/bb-components-build.js.map +1 -1
- 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/types.js.map +1 -1
- package/build/utils/login.js +1 -1
- package/build/utils/login.js.map +1 -1
- package/build/validations/prefab/component.js +96 -15
- package/build/validations/prefab/component.js.map +1 -1
- package/build/validations/prefab.js +32 -30
- package/build/validations/prefab.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
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
|
+
|
|
8
|
+
# [25.2.0](https://github.com/bettyblocks/cli/compare/v25.1.1...v25.2.0) (2021-09-23)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* make dynamic validation based on component styleType ([#250](https://github.com/bettyblocks/cli/issues/250)) ([4f1d606](https://github.com/bettyblocks/cli/commit/4f1d606))
|
|
14
|
+
|
|
15
|
+
## [25.1.1](https://github.com/bettyblocks/cli/compare/v25.1.0...v25.1.1) (2021-09-15)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* remove unused 'io' option in blueprint template ([#242](https://github.com/bettyblocks/cli/issues/242)) ([684e4c0](https://github.com/bettyblocks/cli/commit/684e4c0))
|
|
21
|
+
|
|
22
|
+
# [25.1.0](https://github.com/bettyblocks/cli/compare/v25.0.0...v25.1.0) (2021-09-14)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* add style name to structure in prefab ([#248](https://github.com/bettyblocks/cli/issues/248)) ([6c659c8](https://github.com/bettyblocks/cli/commit/6c659c8))
|
|
28
|
+
|
|
1
29
|
# [25.0.0](https://github.com/bettyblocks/cli/compare/v24.0.0...v25.0.0) (2021-09-10)
|
|
2
30
|
|
|
3
31
|
|
|
@@ -124,26 +124,31 @@ const readInteractions = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
124
124
|
readInteractions(),
|
|
125
125
|
]);
|
|
126
126
|
validation_1.checkNameReferences(prefabs, components);
|
|
127
|
+
const componentStyleMap = components.reduce((acc, c) => {
|
|
128
|
+
return c.styleType
|
|
129
|
+
? Object.assign(acc, { [c.name]: { styleType: c.styleType } })
|
|
130
|
+
: acc;
|
|
131
|
+
}, {});
|
|
127
132
|
yield Promise.all([
|
|
128
133
|
component_1.default(components),
|
|
129
|
-
prefab_1.default(prefabs),
|
|
134
|
+
prefab_1.default(prefabs, componentStyleMap),
|
|
130
135
|
interactions && interaction_1.default(interactions),
|
|
131
136
|
]);
|
|
132
137
|
const componentsWithHash = components.map(component => {
|
|
133
138
|
return Object.assign(Object.assign({}, component), { componentHash: hash_1.default(component) });
|
|
134
139
|
});
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
const newStructure = Object.assign(Object.assign({}, structure), { hash: hash_1.default(structure.options) });
|
|
140
|
+
const buildPrefabs = prefabs.map(prefab => {
|
|
141
|
+
const buildStructure = (structure) => {
|
|
142
|
+
const newStructure = Object.assign(Object.assign({}, structure), { style: structure.style || {}, hash: hash_1.default(structure.options) });
|
|
138
143
|
if (newStructure.descendants && newStructure.descendants.length > 0) {
|
|
139
|
-
newStructure.descendants = newStructure.descendants.map(
|
|
144
|
+
newStructure.descendants = newStructure.descendants.map(buildStructure);
|
|
140
145
|
}
|
|
141
146
|
return newStructure;
|
|
142
147
|
};
|
|
143
|
-
return Object.assign(Object.assign({}, prefab), { structure: prefab.structure.map(
|
|
148
|
+
return Object.assign(Object.assign({}, prefab), { structure: prefab.structure.map(buildStructure) });
|
|
144
149
|
});
|
|
145
150
|
yield mkdir(distDir, { recursive: true });
|
|
146
|
-
const defaultPrefabs =
|
|
151
|
+
const defaultPrefabs = buildPrefabs.filter(prefab => prefab.type !== 'page');
|
|
147
152
|
const outputPromises = [
|
|
148
153
|
fs_extra_1.outputJson(`${distDir}/prefabs.json`, defaultPrefabs),
|
|
149
154
|
fs_extra_1.outputJson(`${distDir}/templates.json`, componentsWithHash),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb-components-build.js","sourceRoot":"","sources":["../src/bb-components-build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,0DAAqD;AACrD,uCAAoE;AACpE,+EAAuE;AACvE,4DAAwD;AACxD,iFAA2E;AAC3E,6EAAwD;
|
|
1
|
+
{"version":3,"file":"bb-components-build.js","sourceRoot":"","sources":["../src/bb-components-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAyHA,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,sCAAa,CAAA;IACb,0CAAiB,CAAA;AACnB,CAAC,EARW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAQhC;AAED,oBAAoB;AACpB,IAAY,yBASX;AATD,WAAY,yBAAyB;IACnC,4CAAe,CAAA;IACf,kDAAqB,CAAA;IACrB,8CAAiB,CAAA;IACjB,0CAAa,CAAA;IACb,sDAAyB,CAAA;IACzB,kDAAqB,CAAA;IACrB,0CAAa,CAAA;IACb,0CAAa,CAAA;AACf,CAAC,EATW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QASpC;AA0BD,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B"}
|
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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"}
|
|
@@ -9,27 +9,108 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
9
9
|
const joi_1 = __importDefault(require("joi"));
|
|
10
10
|
const validation_1 = require("../../utils/validation");
|
|
11
11
|
const componentOption_1 = require("./componentOption");
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const shadows = [
|
|
13
|
+
'none',
|
|
14
|
+
'0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)',
|
|
15
|
+
'0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)',
|
|
16
|
+
'0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)',
|
|
17
|
+
'0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',
|
|
18
|
+
'0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',
|
|
19
|
+
'0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',
|
|
20
|
+
'0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',
|
|
21
|
+
'0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',
|
|
22
|
+
'0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',
|
|
23
|
+
'0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',
|
|
24
|
+
'0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',
|
|
25
|
+
'0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',
|
|
26
|
+
'0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',
|
|
27
|
+
'0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',
|
|
28
|
+
'0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',
|
|
29
|
+
'0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',
|
|
30
|
+
'0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',
|
|
31
|
+
'0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',
|
|
32
|
+
'0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',
|
|
33
|
+
'0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',
|
|
34
|
+
'0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',
|
|
35
|
+
'0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',
|
|
36
|
+
'0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',
|
|
37
|
+
'0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)',
|
|
38
|
+
];
|
|
39
|
+
const isString = joi_1.default.string().max(255);
|
|
40
|
+
const validRem = /^\d{1,5}\.?\d{0,5}rem$/;
|
|
41
|
+
const optionType = ['STATIC', 'THEME_COLOR'];
|
|
42
|
+
const styleValidator = {
|
|
43
|
+
BUTTON: joi_1.default.object({
|
|
44
|
+
backgroundColor: joi_1.default.object({
|
|
45
|
+
type: optionType,
|
|
46
|
+
value: isString,
|
|
47
|
+
}),
|
|
48
|
+
borderColor: joi_1.default.object({
|
|
49
|
+
type: optionType,
|
|
50
|
+
value: isString,
|
|
51
|
+
}),
|
|
52
|
+
borderRadius: joi_1.default.array()
|
|
53
|
+
.max(1)
|
|
54
|
+
.items(isString.required().pattern(validRem)),
|
|
55
|
+
borderStyle: isString,
|
|
56
|
+
borderWidth: joi_1.default.array()
|
|
57
|
+
.max(1)
|
|
58
|
+
.items(isString.required().pattern(validRem)),
|
|
59
|
+
boxShadow: shadows,
|
|
60
|
+
color: joi_1.default.object({
|
|
61
|
+
type: optionType,
|
|
62
|
+
value: isString,
|
|
63
|
+
}),
|
|
64
|
+
fontFamily: ['Roboto', 'serif', 'sans-serif', 'monospace'],
|
|
65
|
+
fontSize: isString.pattern(validRem),
|
|
66
|
+
fontStyle: ['italic', 'none'],
|
|
67
|
+
fontWeight: ['300', '400', '500', '700'],
|
|
68
|
+
letterSpacing: isString.pattern(validRem),
|
|
69
|
+
lineHeight: joi_1.default.string()
|
|
70
|
+
.max(255)
|
|
71
|
+
.pattern(/^\d*$/),
|
|
72
|
+
padding: [
|
|
73
|
+
isString,
|
|
74
|
+
joi_1.default.array()
|
|
75
|
+
.max(4)
|
|
76
|
+
.items(isString.required().pattern(validRem)),
|
|
77
|
+
],
|
|
78
|
+
textDecoration: ['underline', 'none'],
|
|
79
|
+
textTransform: ['uppercase', 'none'],
|
|
16
80
|
}),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
.
|
|
23
|
-
|
|
24
|
-
|
|
81
|
+
};
|
|
82
|
+
const componentSchema = (componentStyleMap, styleType) => {
|
|
83
|
+
const canValidateStyle = styleType && styleValidator[styleType];
|
|
84
|
+
return joi_1.default.object({
|
|
85
|
+
name: joi_1.default.string().required(),
|
|
86
|
+
style: joi_1.default.object({
|
|
87
|
+
name: joi_1.default.string()
|
|
88
|
+
.max(255)
|
|
89
|
+
.alphanum(),
|
|
90
|
+
overwrite: canValidateStyle || joi_1.default.any(),
|
|
91
|
+
}),
|
|
92
|
+
ref: joi_1.default.object({
|
|
93
|
+
id: joi_1.default.string().required(),
|
|
94
|
+
}),
|
|
95
|
+
options: joi_1.default.array()
|
|
96
|
+
.items(componentOption_1.optionSchema)
|
|
97
|
+
.required(),
|
|
98
|
+
descendants: joi_1.default.array()
|
|
99
|
+
.items(joi_1.default.custom(exports.validateComponent(componentStyleMap)))
|
|
100
|
+
.required(),
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
exports.validateComponent = (componentStyleMap) => (component) => {
|
|
25
104
|
const { name, options } = component;
|
|
26
|
-
const
|
|
105
|
+
const styleType = componentStyleMap &&
|
|
106
|
+
componentStyleMap[name] &&
|
|
107
|
+
componentStyleMap[name].styleType;
|
|
108
|
+
const { error } = componentSchema(componentStyleMap, styleType).validate(component);
|
|
27
109
|
validation_1.findDuplicates(options, 'option key', 'key');
|
|
28
110
|
if (typeof error !== 'undefined') {
|
|
29
111
|
const { message } = error;
|
|
30
112
|
throw new Error(chalk_1.default.red(`\nBuild error in component ${name}: ${message}\n`));
|
|
31
113
|
}
|
|
32
114
|
return component;
|
|
33
|
-
}
|
|
34
|
-
exports.validateComponent = validateComponent;
|
|
115
|
+
};
|
|
35
116
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/validations/prefab/component.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,4DAA4D;;;;;AAE5D,kDAA0B;AAC1B,8CAAsB;
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/validations/prefab/component.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,35 +13,37 @@ const action_1 = require("./prefab/action");
|
|
|
13
13
|
const component_1 = require("./prefab/component");
|
|
14
14
|
const interaction_1 = require("./prefab/interaction");
|
|
15
15
|
const variable_1 = require("./prefab/variable");
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
16
|
+
const schemaProvider = (componentStyleMap) => {
|
|
17
|
+
return joi_1.default.object({
|
|
18
|
+
name: joi_1.default.string().required(),
|
|
19
|
+
keywords: joi_1.default.array(),
|
|
20
|
+
icon: joi_1.default.string()
|
|
21
|
+
.valid(...constants_1.ICONS)
|
|
22
|
+
.required(),
|
|
23
|
+
category: joi_1.default.string().required(),
|
|
24
|
+
type: joi_1.default.string().valid('page'),
|
|
25
|
+
description: joi_1.default.string(),
|
|
26
|
+
detail: joi_1.default.string(),
|
|
27
|
+
previewImage: joi_1.default.string(),
|
|
28
|
+
previewUrl: joi_1.default.string(),
|
|
29
|
+
interactions: joi_1.default.array()
|
|
30
|
+
.items(interaction_1.interactionSchema)
|
|
31
|
+
.max(constants_1.MAX_INTERACTIONS),
|
|
32
|
+
actions: joi_1.default.array()
|
|
33
|
+
.items(action_1.actionSchema)
|
|
34
|
+
.max(constants_1.MAX_ACTIONS),
|
|
35
|
+
variables: joi_1.default.array()
|
|
36
|
+
.items(variable_1.variableSchema)
|
|
37
|
+
.max(constants_1.MAX_VARIABLES),
|
|
38
|
+
beforeCreate: joi_1.default.any(),
|
|
39
|
+
structure: joi_1.default.array()
|
|
40
|
+
.items(joi_1.default.custom(component_1.validateComponent(componentStyleMap)))
|
|
41
|
+
.required(),
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const validate = (componentStyleMap) => (prefab) => {
|
|
43
45
|
const { actions, variables } = prefab;
|
|
44
|
-
const { error } =
|
|
46
|
+
const { error } = schemaProvider(componentStyleMap).validate(prefab);
|
|
45
47
|
if (Array.isArray(actions)) {
|
|
46
48
|
validation_1.findDuplicates(actions, 'action', { ref: 'id' });
|
|
47
49
|
}
|
|
@@ -53,8 +55,8 @@ const validate = (prefab) => {
|
|
|
53
55
|
throw new Error(chalk_1.default.red(`\nProperty: ${error.message} at prefab: ${prefab.name}\n`));
|
|
54
56
|
}
|
|
55
57
|
};
|
|
56
|
-
exports.default = (prefabs) => {
|
|
57
|
-
prefabs.forEach(validate);
|
|
58
|
+
exports.default = (prefabs, componentStyleMap) => {
|
|
59
|
+
prefabs.forEach(validate(componentStyleMap));
|
|
58
60
|
validation_1.findDuplicates(prefabs, 'prefab', 'name');
|
|
59
61
|
};
|
|
60
62
|
//# sourceMappingURL=prefab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefab.js","sourceRoot":"","sources":["../../src/validations/prefab.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,+GAA+G;;;;;AAE/G,kDAA0B;AAC1B,8CAAsB;AAGtB,oDAAqD;AACrD,2CAKqB;AACrB,4CAA+C;AAC/C,kDAAuD;AACvD,sDAAyD;AACzD,gDAAmD;AAEnD,MAAM,
|
|
1
|
+
{"version":3,"file":"prefab.js","sourceRoot":"","sources":["../../src/validations/prefab.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,+GAA+G;;;;;AAE/G,kDAA0B;AAC1B,8CAAsB;AAGtB,oDAAqD;AACrD,2CAKqB;AACrB,4CAA+C;AAC/C,kDAAuD;AACvD,sDAAyD;AACzD,gDAAmD;AAEnD,MAAM,cAAc,GAAG,CACrB,iBAAqC,EACnB,EAAE;IACpB,OAAO,aAAG,CAAC,MAAM,CAAC;QAChB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,QAAQ,EAAE,aAAG,CAAC,KAAK,EAAE;QACrB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;aACf,KAAK,CAAC,GAAG,iBAAK,CAAC;aACf,QAAQ,EAAE;QACb,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;QACzB,MAAM,EAAE,aAAG,CAAC,MAAM,EAAE;QACpB,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE;QAC1B,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;QACxB,YAAY,EAAE,aAAG,CAAC,KAAK,EAAE;aACtB,KAAK,CAAC,+BAAiB,CAAC;aACxB,GAAG,CAAC,4BAAgB,CAAC;QACxB,OAAO,EAAE,aAAG,CAAC,KAAK,EAAE;aACjB,KAAK,CAAC,qBAAY,CAAC;aACnB,GAAG,CAAC,uBAAW,CAAC;QACnB,SAAS,EAAE,aAAG,CAAC,KAAK,EAAE;aACnB,KAAK,CAAC,yBAAc,CAAC;aACrB,GAAG,CAAC,yBAAa,CAAC;QACrB,YAAY,EAAE,aAAG,CAAC,GAAG,EAAE;QACvB,SAAS,EAAE,aAAG,CAAC,KAAK,EAAE;aACnB,KAAK,CAAC,aAAG,CAAC,MAAM,CAAC,6BAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACvD,QAAQ,EAAE;KACd,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,iBAAqC,EAAE,EAAE,CAAC,CAC1D,MAAc,EACR,EAAE;IACR,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,2BAAc,CAAC,OAAyB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;KACpE;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5B,2BAAc,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,2BAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;KACpD;IAED,IAAI,KAAK,EAAE;QACT,MAAM,IAAI,KAAK,CACb,eAAK,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,OAAO,eAAe,MAAM,CAAC,IAAI,IAAI,CAAC,CACtE,CAAC;KACH;AACH,CAAC,CAAC;AAEF,kBAAe,CACb,OAAiB,EACjB,iBAAqC,EAC/B,EAAE;IACR,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE7C,2BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC,CAAC"}
|