@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 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
 
@@ -7,8 +7,7 @@
7
7
  "options": [
8
8
  {
9
9
  "meta": {
10
- "type": "Text",
11
- "io": "in"
10
+ "type": "Text"
12
11
  },
13
12
  "name": "name",
14
13
  "label": "Name",
@@ -20,4 +19,4 @@
20
19
  }
21
20
  ],
22
21
  "yields": "NONE"
23
- }
22
+ }
@@ -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 prefabsWithHash = prefabs.map(prefab => {
136
- const hashStructure = (structure) => {
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(hashStructure);
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(hashStructure) });
148
+ return Object.assign(Object.assign({}, prefab), { structure: prefab.structure.map(buildStructure) });
144
149
  });
145
150
  yield mkdir(distDir, { recursive: true });
146
- const defaultPrefabs = prefabsWithHash.filter(prefab => prefab.type !== 'page');
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":"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"}
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;AAQxD,iDAA6C;AAC7C,uEAAuE;AACvE,wDAAgC;AAChC,8EAAsD;AACtD,kEAA0C;AAC1C,mDAAyD;AACzD,wEAAyD;AACzD,4EAA6D;AAC7D,kEAAmD;AAEnD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,mBAAQ,CAAC;AAErC,uBAAuB;AAEvB,mBAAO;KACJ,KAAK,CAAC,QAAQ,CAAC;KACf,IAAI,CAAC,qBAAqB,CAAC;KAC3B,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;KACrD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,EAAE,IAAI,EAAE,GAAoB,mBAAO,CAAC;AAC1C,MAAM,OAAO,GAAG,mBAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,MAAM,OAAO,GAAW,oBAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,OAAO,GAAG,GAAG,OAAO,OAAO,CAAC;AAClC,MAAM,kBAAkB,GAAY,OAAO,CAAC,SAAS,CAAC;AAEtD,qBAAqB;AAErB,MAAM,cAAc,GAA+B,GAEjD,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,OAAO,iBAAiB,CAAC;IAC3C,MAAM,MAAM,GAAY,MAAM,qBAAU,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;KAC/D;IAED,MAAM,cAAc,GAAa,MAAM,yBAAe,CAAC,MAAM,CAAC,CAAC;IAE/D,MAAM,UAAU,GAA8B,cAAc,CAAC,GAAG,CAC9D,CAAO,IAAY,EAAsB,EAAE;QACzC,IAAI;YACF,MAAM,IAAI,GAAW,MAAM,QAAQ,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAElE,MAAM,aAAa,GAAG,uBAA6B,CAAC,IAAI,CAAC,CAAC;YAE1D,uCAAuC;YACvC,MAAM,kBAAkB,GAAG,QAAQ,CACjC,UAAU,mBAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAC/C,EAAE,CAAC;YAEJ,IAAI,CAAC,kBAAkB,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACtD;YAED,IAAI,kBAAkB,EAAE;gBACtB,kBAAkB,CAAC,aAAa,GAAG,0BAAW,CAC5C,kBAAkB,CAAC,GAAG,CACvB,CAAC;gBAEF,kBAAkB,CAAC,gBAAgB,GAAG,0BAAW,CAC/C,kBAAkB,CAAC,MAAM,CAC1B,CAAC;aACH;YAED,uCACK,kBAAkB,GAClB,aAAa,EAChB;SACH;QAAC,OAAO,KAAK,EAAE;YACd,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,MAAM,KAAK,CAAC;SACb;IACH,CAAC,CAAA,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC,CAAA,CAAC;AAEF,MAAM,WAAW,GAA4B,GAA4B,EAAE;IACzE,MAAM,MAAM,GAAG,GAAG,OAAO,cAAc,CAAC;IACxC,MAAM,MAAM,GAAY,MAAM,qBAAU,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;KAC5D;IAED,MAAM,WAAW,GAAa,MAAM,yBAAe,CAAC,MAAM,CAAC,CAAC;IAE5D,MAAM,OAAO,GAA2B,WAAW,CAAC,GAAG,CACrD,CAAO,IAAY,EAAmB,EAAE;QACtC,IAAI;YACF,MAAM,IAAI,GAAW,MAAM,QAAQ,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAClE,uCAAuC;YACvC,MAAM,kBAAkB,GAAG,QAAQ,CACjC,UAAU,mBAAS,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAC9C,EAAE,CAAC;YAEJ,IAAI,CAAC,kBAAkB,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACnD;YAED,OAAO,kBAAkB,CAAC;SAC3B;QAAC,OAAO,KAAK,EAAE;YACd,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,MAAM,KAAK,CAAC;SACb;IACH,CAAC,CAAA,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAA,CAAC;AAEF,MAAM,gBAAgB,GAAiC,GAErD,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,OAAO,mBAAmB,CAAC;IAC7C,MAAM,MAAM,GAAY,MAAM,qBAAU,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAQ,EAAE;YACnC,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,gBAAgB,GAAa,MAAM,yBAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEvE,OAAO,OAAO,CAAC,GAAG,CAChB,gBAAgB,CAAC,GAAG,CAClB,CAAO,IAAY,EAAwB,EAAE;QAC3C,IAAI;YACF,MAAM,IAAI,GAAW,MAAM,QAAQ,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAElE,qBAAc,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;YAEpC,uBACE,QAAQ,EAAE,IAAI,IACX,uBAA+B,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,EACvD;SACH;QAAC,OAAO,KAAK,EAAE;YACd,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAElB,MAAM,KAAK,CAAC;SACb;IACH,CAAC,CAAA,CACF,CACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,CAAC,GAAwB,EAAE;IACzB,MAAM,8CAAuB,EAAE,CAAC;IAChC,IAAI;QACF,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5D,WAAW,EAAE;YACb,cAAc,EAAE;YAChB,gBAAgB,EAAE;SACnB,CAAC,CAAC;QAEH,gCAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEzC,MAAM,iBAAiB,GAAsB,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACxE,OAAO,CAAC,CAAC,SAAS;gBAChB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC9D,CAAC,CAAC,GAAG,CAAC;QACV,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,mBAAkB,CAAC,UAAU,CAAC;YAC9B,gBAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC;YAC3C,YAAY,IAAI,qBAAoB,CAAC,YAAY,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACpD,uCACK,SAAS,KACZ,aAAa,EAAE,cAAI,CAAC,SAAS,CAAC,IAC9B;QACJ,CAAC,CAAC,CAAC;QAOH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACxC,MAAM,cAAc,GAAG,CACrB,SAA0B,EACJ,EAAE;gBACxB,MAAM,YAAY,mCACb,SAAS,KACZ,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE,EAC5B,IAAI,EAAE,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAC9B,CAAC;gBAEF,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnE,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CACrD,cAAc,CACf,CAAC;iBACH;gBAED,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC;YAEF,uCACK,MAAM,KACT,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,IAC/C;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CACxC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CACjC,CAAC;QAEF,MAAM,cAAc,GAAG;YACrB,qBAAU,CAAC,GAAG,OAAO,eAAe,EAAE,cAAc,CAAC;YACrD,qBAAU,CAAC,GAAG,OAAO,iBAAiB,EAAE,kBAAkB,CAAC;YAC3D,YAAY,IAAI,qBAAU,CAAC,GAAG,OAAO,oBAAoB,EAAE,YAAY,CAAC;SACzE,CAAC;QAEF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAErE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,cAAc,CAAC,IAAI,CACjB,qBAAU,CAAC,GAAG,OAAO,mBAAmB,EAAE,WAAW,CAAC,CACvD,CAAC;SACH;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAU,CAAC,GAAG,OAAO,mBAAmB,CAAC,EAAE;YACzE,iBAAM,CAAC,GAAG,OAAO,mBAAmB,CAAC,CAAC;SACvC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAElC,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;KACxE;IAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAChC,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;SAChE;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;SACrD;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -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,0BAA0B,CAAC,CAAC;KACzC;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;KACvC;AACH,CAAC,CAAA,CAAC,EAAE,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
- if (fs_extra_1.default.existsSync(path_1.default.join(workingDir, '.app-functions'))) {
28
- publishAppFunctions_1.default();
29
- }
30
- else {
31
- publishCustomFunctions_1.default(host, bumpRevision, skipBuild);
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;;;;;AAEtB,wDAA0B;AAC1B,gDAAwB;AACxB,0DAAgC;AAEhC,2BAA2B;AAE3B,0FAAkE;AAClE,gGAAwE;AAExE,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,IAAI,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE;IAC1D,6BAAmB,EAAE,CAAC;CACvB;KAAM;IACL,gCAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;CACvD"}
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 validateFunctionByName = (functionPath, validator) => __awaiter(void 0, void 0, void 0, function* () {
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: ${name}`);
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(`x`);
44
- console.log(`${mark} Validated: ${name}\n\t${msg}`);
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 = yield validations_1.functionValidator(config);
44
+ const validator = new validations_1.FunctionValidator(config, baseFunctionsPath);
45
+ yield validator.initSchema();
49
46
  if (inputFunctionName) {
50
- const functionPath = path_1.default.join(baseFunctionsPath, inputFunctionName);
51
- if (functionDefinitions_1.isFunctionDefinition(functionPath)) {
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
- fs_extra_1.default.readdirSync(baseFunctionsPath).forEach(functionDir => {
60
- const functionPath = path_1.default.join(baseFunctionsPath, functionDir);
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,wDAA0B;AAC1B,gDAAwB;AACxB,0DAAgC;AAGhC,2BAA2B;AAE3B,yEAIyC;AAEzC,yDAA8E;AAE9E,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,sBAAsB,GAAG,CAC7B,YAAoB,EACpB,SAAoB,EACL,EAAE;IACjB,MAAM,IAAI,GAAG,wCAAkB,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,8BAAgB,CACnE,IAAI,EACJ,SAAS,CACV,CAAC;IAEF,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,MAAM,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,IAAI,EAAE,CAAC,CAAC;KAC3C;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,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC;KACrD;AACH,CAAC,CAAA,CAAC;AAEF,CAAC,GAAwB,EAAE;IACzB,MAAM,SAAS,GAAG,MAAM,+BAAiB,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,iBAAiB,EAAE;QACrB,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACrE,IAAI,0CAAoB,CAAC,YAAY,CAAC,EAAE;YACtC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;SACjD;aAAM;YACL,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,GAAG,CACV,GAAG,CACJ,uCAAuC,4CAAsB,CAC5D,YAAY,CACb,GAAG,CACL,CAAC;SACH;KACF;SAAM;QACL,kBAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YACtD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAC/D,IAAI,0CAAoB,CAAC,YAAY,CAAC,EAAE;gBACtC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
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 fs_extra_1.default.readJSONSync(filePath);
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).reduce((definitions, functionDir) => {
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 = Object.keys(definitions).reduce((acc, name) => {
58
- const definition = definitions[name];
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":"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"}
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, functionDefinition) => {
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(functionDefinition, functionSchema);
50
+ return validator.validate(definition, functionSchema);
49
51
  };
50
52
  const validateFunction = (functionJson, validator) => __awaiter(void 0, void 0, void 0, function* () {
51
- const { errors } = validateFunctionDefinition(validator, functionJson);
52
- const func = functionJson;
53
- if (errors.length) {
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: 'ok',
62
- functionName: func.name,
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;AASzE,MAAM,iBAAiB,GAAG,CAAO,SAAiB,EAAmB,EAAE;IACrE,MAAM,GAAG,GAAG,MAAM,oBAAK,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,OAAO,IAAc,CAAC;AACxB,CAAC,CAAA,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,SAAoB,EACpB,QAAgB,EACI,EAAE;IACtB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrD,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IACtD,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC,CAAA,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,SAAoB,EACpB,MAAc,EACM,EAAE;IACtB,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;IACvE,OAAO,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACxD,CAAC,CAAA,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAO,MAAc,EAAsB,EAAE;IACrE,MAAM,SAAS,GAAG,IAAI,sBAAS,EAAE,CAAC;IAElC,OAAO,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAA,CAAC;AA2CO,8CAAiB;AAzC1B,MAAM,0BAA0B,GAAG,CACjC,SAAoB,EACpB,kBAA0B,EACT,EAAE;IACnB,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC/D,OAAO,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,gBAAgB,EAAE,CAAC,CAAC;KACxE;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAW,CAAC;IACrE,OAAO,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,YAAoB,EACpB,SAAoB,EAKnB,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,YAAkC,CAAC;IAEhD,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,MAAM;SACP,CAAC;KACH;IACD,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI,CAAC,IAAI;QACvB,MAAM;KACP,CAAC;AACJ,CAAC,CAAA,CAAC;AAE0B,4CAAgB"}
1
+ {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../src/functions/validations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAsFA,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"}
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"}
@@ -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 });
@@ -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,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;IAED,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC,CAAA,CAAC;AAEF,MAAM,UAAU;IAGd,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEK,KAAK;;YACT,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAEzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;KAAA;IAEK,WAAW;;YACf,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;YAEtD,OAAO,oBAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,YAAY,EAAE;gBACrD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,QAAQ;iBACT,CAAC;gBACF,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAChD,CAAC,CAAC,IAAI,CAAC,CAAM,IAAI,EAAC,EAAE;gBACnB,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;oBACvB,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAkB,CAAC;oBAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBACpC;gBACD,IAAI,IAAI,CAAC,EAAE,EAAE;oBACX,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAkB,CAAC;oBACvD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBAC/B;gBAED,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAED,GAAG;QACD,OAAO,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEK,SAAS,CAAC,WAAmB;;YACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAO,CAAC;gBAC7B;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,uBAAuB;iBACjC;aACF,CAAC,CAAC;YAEH,OAAO,oBAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,uBAAuB,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,IAAI;oBACJ,WAAW;iBACZ,CAAC;gBACF,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAChD,CAAC,CAAC,IAAI,CAAC,CAAM,IAAI,EAAC,EAAE;gBACnB,IAAI,IAAI,CAAC,EAAE,EAAE;oBACX,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA2B,CAAC;oBAChE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBACxB;qBAAM;oBACL,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBACnC;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAED,UAAU,CAAC,KAAa;QACtB,eAAe,CAAC;YACd,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,eAAe,CAAC;YACd,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;CACF;AAED,kBAAe,UAAU,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 componentSchema = joi_1.default.object({
13
- name: joi_1.default.string().required(),
14
- ref: joi_1.default.object({
15
- id: joi_1.default.string().required(),
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
- options: joi_1.default.array()
18
- .items(componentOption_1.optionSchema)
19
- .required(),
20
- descendants: joi_1.default.array()
21
- .items(joi_1.default.custom(validateComponent))
22
- .required(),
23
- });
24
- function validateComponent(component) {
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 { error } = componentSchema.validate(component);
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;AAGtB,uDAAwD;AACxD,uDAAiD;AAEjD,MAAM,eAAe,GAAG,aAAG,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,GAAG,EAAE,aAAG,CAAC,MAAM,CAAC;QACd,EAAE,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;IACF,OAAO,EAAE,aAAG,CAAC,KAAK,EAAE;SACjB,KAAK,CAAC,8BAAY,CAAC;SACnB,QAAQ,EAAE;IACb,WAAW,EAAE,aAAG,CAAC,KAAK,EAAE;SACrB,KAAK,CAAC,aAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACpC,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,SAAgB,iBAAiB,CAC/B,SAA0B;IAE1B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEtD,2BAAc,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAE7C,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAE1B,MAAM,IAAI,KAAK,CACb,eAAK,CAAC,GAAG,CAAC,8BAA8B,IAAI,KAAK,OAAO,IAAI,CAAC,CAC9D,CAAC;KACH;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAjBD,8CAiBC"}
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 schema = joi_1.default.object({
17
- name: joi_1.default.string().required(),
18
- keywords: joi_1.default.array(),
19
- icon: joi_1.default.string()
20
- .valid(...constants_1.ICONS)
21
- .required(),
22
- category: joi_1.default.string().required(),
23
- type: joi_1.default.string().valid('page'),
24
- description: joi_1.default.string(),
25
- detail: joi_1.default.string(),
26
- previewImage: joi_1.default.string(),
27
- previewUrl: joi_1.default.string(),
28
- interactions: joi_1.default.array()
29
- .items(interaction_1.interactionSchema)
30
- .max(constants_1.MAX_INTERACTIONS),
31
- actions: joi_1.default.array()
32
- .items(action_1.actionSchema)
33
- .max(constants_1.MAX_ACTIONS),
34
- variables: joi_1.default.array()
35
- .items(variable_1.variableSchema)
36
- .max(constants_1.MAX_VARIABLES),
37
- beforeCreate: joi_1.default.any(),
38
- structure: joi_1.default.array()
39
- .items(joi_1.default.custom(component_1.validateComponent))
40
- .required(),
41
- });
42
- const validate = (prefab) => {
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 } = schema.validate(prefab);
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,MAAM,GAAG,aAAG,CAAC,MAAM,CAAC;IACxB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,aAAG,CAAC,KAAK,EAAE;IACrB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;SACf,KAAK,CAAC,GAAG,iBAAK,CAAC;SACf,QAAQ,EAAE;IACb,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IAChC,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;IACzB,MAAM,EAAE,aAAG,CAAC,MAAM,EAAE;IACpB,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE;IAC1B,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,aAAG,CAAC,KAAK,EAAE;SACtB,KAAK,CAAC,+BAAiB,CAAC;SACxB,GAAG,CAAC,4BAAgB,CAAC;IACxB,OAAO,EAAE,aAAG,CAAC,KAAK,EAAE;SACjB,KAAK,CAAC,qBAAY,CAAC;SACnB,GAAG,CAAC,uBAAW,CAAC;IACnB,SAAS,EAAE,aAAG,CAAC,KAAK,EAAE;SACnB,KAAK,CAAC,yBAAc,CAAC;SACrB,GAAG,CAAC,yBAAa,CAAC;IACrB,YAAY,EAAE,aAAG,CAAC,GAAG,EAAE;IACvB,SAAS,EAAE,aAAG,CAAC,KAAK,EAAE;SACnB,KAAK,CAAC,aAAG,CAAC,MAAM,CAAC,6BAAiB,CAAC,CAAC;SACpC,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAQ,EAAE;IACxC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1C,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,CAAC,OAAiB,EAAQ,EAAE;IACzC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1B,2BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betty-blocks/cli",
3
- "version": "25.0.0",
3
+ "version": "25.3.0",
4
4
  "description": "A Betty Blocks CLI",
5
5
  "main": "build/index.js",
6
6
  "author": "Niek Nijland <niek.nijland@bettyblocks.com>",