@betty-blocks/cli 25.27.2 → 25.29.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.
@@ -1,28 +1,68 @@
1
1
  {
2
2
  "name": "component-set",
3
- "version": "1.0.0",
3
+ "version": "1.227.0",
4
4
  "main": "dist/templates.json",
5
5
  "license": "UNLICENSED",
6
- "private": true,
6
+ "private": false,
7
7
  "devDependencies": {
8
- "@betty-blocks/cli": "^23.20.0",
9
- "eslint": "^5.9.0",
10
- "eslint-config-airbnb": "17.1.0",
11
- "eslint-config-prettier": "^3.3.0",
12
- "eslint-plugin-import": "^2.14.0",
13
- "eslint-plugin-jsx-a11y": "^6.1.1",
14
- "eslint-plugin-prettier": "^3.0.0",
15
- "eslint-plugin-react": "^7.11.1",
16
- "prettier": "^1.15.3",
17
- "nodemon": "^1.19.1",
18
- "rimraf": "^3.0.0"
8
+ "@betty-blocks/cli": "^25.27.1",
9
+ "@commitlint/cli": "^16.1.0",
10
+ "@commitlint/config-angular": "^16.0.0",
11
+ "@semantic-release/changelog": "^6.0.1",
12
+ "@semantic-release/git": "^10.0.1",
13
+ "@types/node": "^17.0.10",
14
+ "@typescript-eslint/eslint-plugin": "^5.21.0",
15
+ "@typescript-eslint/parser": "^5.21.0",
16
+ "eslint": "^8.3.0",
17
+ "eslint-config-airbnb": "^19.0.4",
18
+ "eslint-config-airbnb-typescript": "^17.0.0",
19
+ "eslint-config-prettier": "^8.3.0",
20
+ "eslint-plugin-import": "^2.25.3",
21
+ "eslint-plugin-jsx-a11y": "^6.5.1",
22
+ "eslint-plugin-prettier": "^4.0.0",
23
+ "eslint-plugin-react": "^7.27.1",
24
+ "eslint-plugin-react-hooks": "^4.3.0",
25
+ "husky": "^4.2.5",
26
+ "nodemon": "^2.0.15",
27
+ "prettier": "^2.5.0",
28
+ "semantic-release": "^19.0.2",
29
+ "webpack": "^5.64.4",
30
+ "webpack-cli": "^4.9.1"
31
+ },
32
+ "husky": {
33
+ "hooks": {
34
+ "pre-commit": "yarn lint",
35
+ "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
36
+ }
19
37
  },
20
38
  "scripts": {
21
- "start": "bb components serve",
39
+ "start": "bb components serve -p 5002",
22
40
  "build": "bb components build",
23
41
  "dev": "nodemon",
24
- "preview": "bb components preview",
25
- "lint": "eslint --ext js ./src"
42
+ "lint": "eslint --ext .js,.ts,.tsx ./src",
43
+ "lint:ci": "yarn lint --max-warnings 0",
44
+ "prettier:base": "prettier --single-quote",
45
+ "prettier:check": "yarn prettier:base --list-different \"src/**/*.js\"",
46
+ "prettier:write": "yarn prettier:base --write \"src/**/*.js\"",
47
+ "upload": "bb components publish -b material-ui-component-set",
48
+ "test": "echo \"Error: no test specified\" && exit 0",
49
+ "bundle": "npx webpack --config webpack.config.js"
50
+ },
51
+ "files": ["dist"],
52
+ "dependencies": {
53
+ "@betty-blocks/component-sdk": "^1.7.1",
54
+ "@date-io/date-fns": "^1.3.13",
55
+ "@material-ui/core": "^4.9.11",
56
+ "@material-ui/icons": "^4.11.2",
57
+ "@material-ui/lab": "^4.0.0-alpha.50",
58
+ "@material-ui/pickers": "^3.2.10",
59
+ "@material-ui/styles": "^4.9.10",
60
+ "date-fns": "^2.11.0",
61
+ "react": "^16.13.1",
62
+ "react-dom": "^16.13.1"
26
63
  },
27
- "files": ["dist"]
64
+ "repository": {
65
+ "type": "git",
66
+ "url": "https://github.com/bettyblocks/material-ui-component-set.git"
67
+ }
28
68
  }
@@ -0,0 +1,48 @@
1
+ import * as React from 'react';
2
+ import {
3
+ component,
4
+ prefab,
5
+ variable,
6
+ Icon,
7
+ font,
8
+ buttongroup,
9
+ color,
10
+ ThemeColor,
11
+ } from '@betty-blocks/component-sdk';
12
+ import { showOn } from '../utils';
13
+
14
+ const attributes = {
15
+ category: 'CONTENT',
16
+ icon: Icon.TextInputIcon,
17
+ };
18
+
19
+ const options = {
20
+ content: variable('Content', { value: ['This is my first component!'] }),
21
+ type: font('Type', { value: 'Title1' }),
22
+ align: buttongroup(
23
+ 'Align',
24
+ [
25
+ ['Left', 'left'],
26
+ ['Center', 'center'],
27
+ ['Right', 'right'],
28
+ ],
29
+ { value: 'left' },
30
+ ),
31
+ padding: buttongroup(
32
+ 'Padding',
33
+ [
34
+ ['None', 'none'],
35
+ ['Dense', 'dense'],
36
+ ['Normal', 'normal'],
37
+ ],
38
+ { value: 'normal' },
39
+ ),
40
+ color: color('Text color', {
41
+ value: ThemeColor.BLACK,
42
+ ...showOn('styles'),
43
+ }),
44
+ };
45
+
46
+ export default prefab('Hello World', attributes, null, [
47
+ component('HelloWorld', { options }, []),
48
+ ]);
@@ -0,0 +1,18 @@
1
+ import { PrefabComponentOption, showIfTrue } from '@betty-blocks/component-sdk';
2
+
3
+ // TODO: export OptionProducer from the sdk
4
+ type OptionProducer = (key: string) => PrefabComponentOption;
5
+ type Attributes = Partial<PrefabComponentOption>;
6
+
7
+ export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
8
+
9
+ export const updateOption = (
10
+ producer: OptionProducer,
11
+ attrs: Attributes,
12
+ ): OptionProducer => {
13
+ return (key) => ({ ...producer(key), ...attrs });
14
+ };
15
+
16
+ export const showOn = (key: string) => ({
17
+ configuration: { condition: showIfTrue(key) },
18
+ });
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /* npm dependencies */
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const commander_1 = __importDefault(require("commander"));
17
+ /* internal dependencies */
18
+ const testRunner_1 = require("./functions/testRunner");
19
+ /* process arguments */
20
+ commander_1.default
21
+ .usage('[pattern/for/test-files]')
22
+ .name('bb functions test')
23
+ .parse(process.argv);
24
+ const { args: [pattern], } = commander_1.default;
25
+ /* execute command */
26
+ // eslint-disable-next-line no-void
27
+ void (() => __awaiter(void 0, void 0, void 0, function* () {
28
+ yield testRunner_1.runTest(pattern, process.cwd());
29
+ }))();
30
+ //# sourceMappingURL=bb-functions-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-test.js","sourceRoot":"","sources":["../src/bb-functions-test.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;;;;;;;;;;AAEtB,0DAAgC;AAEhC,2BAA2B;AAE3B,uDAAiD;AAEjD,uBAAuB;AAEvB,mBAAO;KACJ,KAAK,CAAC,0BAA0B,CAAC;KACjC,IAAI,CAAC,mBAAmB,CAAC;KACzB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,EACJ,IAAI,EAAE,CAAC,OAAO,CAAC,GAChB,GAAG,mBAAO,CAAC;AAEZ,qBAAqB;AAErB,mCAAmC;AACnC,KAAK,CAAC,GAAwB,EAAE;IAC9B,MAAM,oBAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -16,6 +16,7 @@ const availableCommands = [
16
16
  'validate',
17
17
  'autoversion',
18
18
  'bump',
19
+ 'test',
19
20
  ];
20
21
  /* process arguments */
21
22
  commander_1.default
@@ -30,6 +31,7 @@ commander_1.default
30
31
  .command('new [function-name]', 'Initialize a new function')
31
32
  .command('publish', 'publish functions of current working directory')
32
33
  .command('validate', 'validate functions of current working directory')
34
+ .command('test', 'test your functions within a local light-weight version of the ActionJS environment')
33
35
  .on('command:*', ([command]) => {
34
36
  if (!availableCommands.includes(command)) {
35
37
  console.error('Invalid command: %s\n', command);
@@ -1 +1 @@
1
- {"version":3,"file":"bb-functions.js","sourceRoot":"","sources":["../src/bb-functions.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;AAEtB,0DAAgC;AAMhC,WAAW;AAEX,MAAM,iBAAiB,GAAuB;IAC5C,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,UAAU;IACV,aAAa;IACb,MAAM;CACP,CAAC;AAEF,uBAAuB;AAEvB,mBAAO;KACJ,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACzC,IAAI,CAAC,cAAc,CAAC;KACpB,OAAO,CACN,aAAa,EACb,yDAAyD,CAC1D;KACA,OAAO,CAAC,OAAO,EAAE,0DAA0D,CAAC;KAC5E,OAAO,CAAC,MAAM,EAAE,yDAAyD,CAAC;KAC1E,OAAO,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;KAC5D,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;KAC/D,OAAO,CAAC,QAAQ,EAAE,sDAAsD,CAAC;KACzE,OAAO,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC3D,OAAO,CAAC,SAAS,EAAE,gDAAgD,CAAC;KACpE,OAAO,CAAC,UAAU,EAAE,iDAAiD,CAAC;KAEtE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAW,EAAQ,EAAE;IAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAA2B,CAAC,EAAE;QAC5D,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QAChD,mBAAO,CAAC,UAAU,EAAE,CAAC;KACtB;AACH,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"bb-functions.js","sourceRoot":"","sources":["../src/bb-functions.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;AAEtB,0DAAgC;AAMhC,WAAW;AAEX,MAAM,iBAAiB,GAAuB;IAC5C,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,UAAU;IACV,aAAa;IACb,MAAM;IACN,MAAM;CACP,CAAC;AAEF,uBAAuB;AAEvB,mBAAO;KACJ,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACzC,IAAI,CAAC,cAAc,CAAC;KACpB,OAAO,CACN,aAAa,EACb,yDAAyD,CAC1D;KACA,OAAO,CAAC,OAAO,EAAE,0DAA0D,CAAC;KAC5E,OAAO,CAAC,MAAM,EAAE,yDAAyD,CAAC;KAC1E,OAAO,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;KAC5D,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;KAC/D,OAAO,CAAC,QAAQ,EAAE,sDAAsD,CAAC;KACzE,OAAO,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC3D,OAAO,CAAC,SAAS,EAAE,gDAAgD,CAAC;KACpE,OAAO,CAAC,UAAU,EAAE,iDAAiD,CAAC;KACtE,OAAO,CACN,MAAM,EACN,qFAAqF,CACtF;KACA,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAW,EAAQ,EAAE;IAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAA2B,CAAC,EAAE;QAC5D,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QAChD,mBAAO,CAAC,UAAU,EAAE,CAAC;KACtB;AACH,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -125,7 +125,9 @@ const toVariableName = ({ name, version }) => `${camelCase_1.default(name)}_${ve
125
125
  Returns an array of strings, each item being an imported function:
126
126
  `import { default as functionName_1_0 } from './function-name/1.0';`;
127
127
  */
128
- const importFunctions = (definitions, functionsPath) => definitions.map((definition) => `import { default as ${toVariableName(definition)} } from '${path_1.default.dirname(definition.path.replace(functionsPath, '.'))}';`);
128
+ const importFunctions = (definitions, functionsPath) => definitions.map((definition) => `import { default as ${toVariableName(definition)} } from '${path_1.default
129
+ .dirname(definition.path.replace(functionsPath, '.'))
130
+ .replace(/\\/g, '/')}';`);
129
131
  /* @doc exportFunctions
130
132
  Returns a string in which functions will be exported in an object;
131
133
  */
@@ -1 +1 @@
1
- {"version":3,"file":"functionDefinitions.js","sourceRoot":"","sources":["../../src/functions/functionDefinitions.ts"],"names":[],"mappings":";;;;;AAAA,sDAA6B;AAC7B,iEAAyC;AACzC,iEAAyC;AACzC,wDAA0B;AAC1B,gDAAwB;AACxB,gDAAwB;AAcxB;;EAEE;AACF,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAU,EAAE,CAC9D,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AA0NzC,wDAAsB;AAxNxB;;EAEE;AACF,MAAM,0BAA0B,GAAG,CAAC,YAAoB,EAAU,EAAE,CAClE,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAEtC;;;EAGE;AACF,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAW,EAAE,CAC7D,kBAAE,CAAC,cAAc,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;AAiNxD,oDAAoB;AA/MtB;;;EAGE;AACF,MAAM,iBAAiB,GAAG,CACxB,YAAoB,EACpB,YAAoB,EACX,EAAE,CACX,CAAC,CAAC,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IACjD,UAAU,CAAC,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG;IAC9C,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,YAAY,CAAC;AAsM1D,8CAAiB;AApMnB;;;EAGE;AACF,MAAM,UAAU,GAAG,CAAC,YAAoB,EAAW,EAAE,CACnD,kBAAE,CAAC,cAAc,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC,CAAC;AAE9D;;EAEE;AACF,MAAM,YAAY,GAAG,CACnB,YAAoB,EACpB,mBAAmB,GAAG,KAAK,EACjB,EAAE,CACZ,cAAI;KACD,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACxE,MAAM,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE;IACnC,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,cAAI,CAAC,GAAG,CAAC,CAAC;IACtE,IACE,UAAU,CAAC,GAAG,CAAC;QACf,CAAC,mBAAmB,IAAI,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAC7D;QACA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAChB;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EAAE,EAAc,CAAC,CAAC;AAqKrB,oCAAY;AAnKd;;;EAGE;AACF,MAAM,kBAAkB,GAAG,CACzB,YAAoB,EACpB,YAAoB,EACA,EAAE;IACtB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;QACjD,IAAI,GAAG,mBAAS,CAAC,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KACvC;SAAM;QACL,IAAI,GAAG,mBAAS,CAAC,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;KAC/C;IAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,kBAAE,CAAC,YAAY,CAAC,QAAQ,CAAW,CAAC;IAEnD,IAAI;QACF,OAAO;YACL,IAAI;YACJ,OAAO;YACP,IAAI,EAAE,QAAQ;YACd,MAAM;SACe,CAAC;KACzB;IAAC,OAAO,GAAG,EAAE;QACZ,4EAA4E;QAC5E,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;KACjE;AACH,CAAC,CAAC;AAqIA,gDAAkB;AAnIpB;;;EAGE;AACF,MAAM,mBAAmB,GAAG,CAC1B,YAAoB,EACpB,mBAAmB,GAAG,KAAK,EACL,EAAE;IACxB,OAAO,YAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACzE,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,CAC9C,CAAC;AACJ,CAAC,CAAC;AAyHA,kDAAmB;AAvHrB,MAAM,oBAAoB,GAAG,CAAC,WAAiC,EAAU,EAAE;IACzE,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,+BACxE,IAAI;QACJ,OAAO,IACJ,MAAM,KACT,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IACvC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAoHA,oDAAoB;AAlHtB;;;EAGE;AACF,MAAM,qBAAqB,GAAG,CAC5B,YAAoB,EACpB,YAAoB,EACd,EAAE;IACR,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAC1C,KAAK,EACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1B,CAAC;IACF,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACjE,IAAI;QACF,kBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3B,kBAAE,CAAC,aAAa,CACd,sBAAsB,CAAC,WAAW,CAAC,EACnC;YACE,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,mBAAS,CAAC,YAAY,CAAC;YAC9B,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,4EAA4E;QAC5E,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AA6EA,sDAAqB;AA3EvB,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAsB,EAAU,EAAE,CACvE,GAAG,mBAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAEpD;;;EAGE;AACF,MAAM,eAAe,GAAG,CACtB,WAAiC,EACjC,aAAqB,EACX,EAAE,CACZ,WAAW,CAAC,GAAG,CACb,CAAC,UAAU,EAAE,EAAE,CACb,uBAAuB,cAAc,CAAC,UAAU,CAAC,YAAY,cAAI,CAAC,OAAO,CACvE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAC5C,IAAI,CACR,CAAC;AAEJ;;EAEE;AACF,MAAM,eAAe,GAAG,CAAC,WAAiC,EAAY,EAAE;IACtE,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAS,CAAC,UAAU,EAAE,EAAE;QACrD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QACrC,OAAO,MAAM,IAAI,IAAI,OAAO,MAAM,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF;;;EAGE;AACF,MAAM,aAAa,GAAG,CAAC,aAAqB,EAAU,EAAE;IACtD,MAAM,WAAW,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AA6BA,sCAAa;AA3Bf;;;;;EAKE;AACF,MAAM,sBAAsB,GAAG,CAAC,aAAqB,EAAU,EAAE;IAC/D,MAAM,GAAG,GAAG,IAAI,iBAAM,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjD,kBAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAEzB,GAAG,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACzE,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACnE,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAElC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE1B,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAYA,wDAAsB"}
1
+ {"version":3,"file":"functionDefinitions.js","sourceRoot":"","sources":["../../src/functions/functionDefinitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ /* npm dependencies */
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const adm_zip_1 = __importDefault(require("adm-zip"));
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ const fs_extra_1 = __importDefault(require("fs-extra"));
19
+ const glob_1 = __importDefault(require("glob"));
20
+ const isolated_vm_1 = __importDefault(require("isolated-vm"));
21
+ const path_1 = __importDefault(require("path"));
22
+ const child_process_1 = require("child_process");
23
+ /* internal dependencies */
24
+ const functionDefinitions_1 = require("./functionDefinitions");
25
+ /* execute command */
26
+ const check = chalk_1.default.green(`✔`);
27
+ const cross = chalk_1.default.red(`✖`);
28
+ const right = chalk_1.default.green(`›`);
29
+ const build = (pattern, workingDir) => __awaiter(void 0, void 0, void 0, function* () {
30
+ const testFiles = glob_1.default
31
+ .sync(`${pattern || 'test/'}**`.replace(/\\/g, '/'))
32
+ .reduce((files, match) => {
33
+ const file = match.replace(/\//g, path_1.default.sep);
34
+ if (file.match(/\.test\.js$/)) {
35
+ files.push(file);
36
+ }
37
+ return files;
38
+ }, []);
39
+ if (!testFiles.length) {
40
+ return { exitCode: 1, stdout: 'No test files found.', stderr: '' };
41
+ }
42
+ const functionsDir = path_1.default.join(workingDir, 'functions');
43
+ const tmpDir = path_1.default.join(workingDir, '.tmp');
44
+ const zipFile = functionDefinitions_1.zipFunctionDefinitions(functionsDir);
45
+ const zip = new adm_zip_1.default(zipFile);
46
+ zip.extractAllTo(path_1.default.join(tmpDir, 'app'), true);
47
+ fs_extra_1.default.writeJSONSync(path_1.default.join(tmpDir, 'package.json'), {
48
+ name: 'app',
49
+ dependencies: { app: 'file:./app' },
50
+ devDependencies: {
51
+ webpack: '^5.10.0',
52
+ 'webpack-cli': '^4.2.0',
53
+ },
54
+ scripts: {
55
+ all: 'yarn --force && yarn build',
56
+ build: 'npx webpack --config webpack.config.js',
57
+ },
58
+ }, { spaces: 2 });
59
+ fs_extra_1.default.writeFileSync(path_1.default.join(tmpDir, 'webpack.config.js'), `module.exports = {
60
+ target: 'node',
61
+ entry: './app.js',
62
+ mode: 'production',
63
+ output: {
64
+ filename: 'app.bundle.js',
65
+ libraryTarget: 'var',
66
+ library: 'app',
67
+ },
68
+ };
69
+ `);
70
+ fs_extra_1.default.writeFileSync(path_1.default.join(tmpDir, 'app.js'), `import { default as $app } from 'app';
71
+
72
+ ${testFiles.map((file) => fs_extra_1.default.readFileSync(file, 'utf-8')).join('\n\n')}
73
+ `);
74
+ let stdout = '';
75
+ let stderr = '';
76
+ const exitCode = yield new Promise((res) => {
77
+ const process = child_process_1.spawn(`cd ${tmpDir} && yarn && yarn all`, {
78
+ shell: true,
79
+ });
80
+ process.stdout.on('data', (data) => {
81
+ stdout += data;
82
+ });
83
+ process.stderr.on('data', (data) => {
84
+ stderr += data;
85
+ });
86
+ process.on('close', res);
87
+ });
88
+ return { exitCode, stdout, stderr };
89
+ });
90
+ const run = (workingDir) => {
91
+ const helpers = path_1.default.join(workingDir, 'test', 'helpers.js');
92
+ const bundle = path_1.default.join(workingDir, '.tmp', 'dist', 'app.bundle.js');
93
+ const isolate = new isolated_vm_1.default.Isolate({ memoryLimit: 128 });
94
+ const context = isolate.createContextSync();
95
+ context.global.setSync('ivm', isolated_vm_1.default);
96
+ context.global.setSync(`$console`, new isolated_vm_1.default.Reference((level, args) =>
97
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
98
+ console[level](...args)));
99
+ const script = isolate.compileScriptSync(`function run(resolve, reject) {
100
+
101
+ const tests = [];
102
+ let failures = 0;
103
+
104
+ const console = (() => {
105
+ const log = (level) =>
106
+ (...args) =>
107
+ $console.apply(null, [
108
+ level,
109
+ new ivm.ExternalCopy(args).copyInto()
110
+ ]);
111
+
112
+ return {
113
+ log: log('log'),
114
+ debug: log('debug'),
115
+ info: log('info'),
116
+ warn: log('warn'),
117
+ error: log('error'),
118
+ };
119
+ })();
120
+
121
+ const isEqual = (t,e) => {
122
+ function n(t){return Object.prototype.toString.call(t).slice(8,-1).toLowerCase()}let r=n(t);return r===n(e)&&("array"===r?function(){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(!isEqual(t[n],e[n]))return!1;return!0}():"object"===r?function(){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&!isEqual(t[n],e[n]))return!1;return!0}():"function"===r?t.toString()===e.toString():t===e)
123
+ };
124
+
125
+ const test = (desc, fn) => {
126
+ tests.push(new Promise((resolve, reject) => {
127
+ fn()
128
+ .then(() => {
129
+ console.log('\\x1b[32m%s\\x1b[0m', '\\u2714 test ' + JSON.stringify(desc));
130
+ resolve();
131
+ })
132
+ .catch((e) => {
133
+ console.log('\\x1b[31m%s\\x1b[0m', '\\u2718 test ' + JSON.stringify(desc));
134
+ console.error(e.message);
135
+ resolve();
136
+ failures++;
137
+ });
138
+ }));
139
+ };
140
+
141
+ const assert = (left, right) => {
142
+ if (!isEqual(left, right)) {
143
+ throw new Error(\`\\x1b[31m Assertion failed\\x1b[0m
144
+ \\x1b[36mleft:\\x1b[0m \${JSON.stringify(left)}
145
+ \\x1b[36mright:\\x1b[0m \${JSON.stringify(right)}\`);
146
+ }
147
+ };
148
+
149
+ ${fs_extra_1.default.existsSync(helpers) ? fs_extra_1.default.readFileSync(helpers, 'utf-8') : ''}
150
+ ${fs_extra_1.default.readFileSync(bundle, 'utf-8')}
151
+
152
+ Promise.all(tests).then(() => {
153
+ let summary;
154
+
155
+ if (failures) {
156
+ summary = \`\\x1b[31m\${tests.length} tests, \${failures} failure\${
157
+ failures > 1 ? 's' : ''
158
+ }\\x1b[0m\`;
159
+ } else {
160
+ summary = \`\\x1b[32m\${tests.length} tests, 0 failures\\x1b[0m\`;
161
+ }
162
+
163
+ resolve.applyIgnored(null, [
164
+ new ivm.ExternalCopy(summary).copyInto()
165
+ ]);
166
+ });
167
+ }
168
+ `);
169
+ return new Promise((resolve, reject) => {
170
+ try {
171
+ script.runSync(context);
172
+ context.global
173
+ .getSync('run', { reference: true })
174
+ .applySync(null, [new isolated_vm_1.default.Reference(resolve), new isolated_vm_1.default.Reference(reject)], { timeout: 60000 });
175
+ }
176
+ catch (error) {
177
+ reject(error);
178
+ }
179
+ });
180
+ };
181
+ const runTest = (pattern, workingDir) => __awaiter(void 0, void 0, void 0, function* () {
182
+ try {
183
+ let time;
184
+ const start = () => new Date().getTime();
185
+ const stop = () => (new Date().getTime() - time) / 1000;
186
+ console.log(`${right} Building artifacts ...`);
187
+ time = start();
188
+ const { exitCode, stdout } = yield build(pattern, workingDir);
189
+ const buildTime = stop();
190
+ if (exitCode) {
191
+ console.log(`${cross} ${stdout}`);
192
+ return;
193
+ }
194
+ console.log(`${check} Build succeeded`);
195
+ console.log(`${right} Running tests ...`);
196
+ time = start();
197
+ const summary = yield run(workingDir);
198
+ const testTime = stop();
199
+ console.log(`\nFinished in ${(buildTime + testTime).toFixed(3)} seconds (build: ${buildTime.toFixed(3)}s, tests: ${testTime.toFixed(3)})`);
200
+ console.log(summary);
201
+ }
202
+ catch (error) {
203
+ console.log(`${cross} ${String(error)}`);
204
+ }
205
+ });
206
+ exports.runTest = runTest;
207
+ //# sourceMappingURL=testRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testRunner.js","sourceRoot":"","sources":["../../src/functions/testRunner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAkIA,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":";;AAmIA,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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betty-blocks/cli",
3
- "version": "25.27.2",
3
+ "version": "25.29.0",
4
4
  "description": "A Betty Blocks CLI",
5
5
  "main": "build/index.js",
6
6
  "author": "Niek Nijland <niek.nijland@bettyblocks.com>",
@@ -76,6 +76,7 @@
76
76
  "form-data": "^4.0.0",
77
77
  "fs-extra": "^8.1.0",
78
78
  "glob": "^7.2.0",
79
+ "isolated-vm": "^4.0.0",
79
80
  "joi": "^17.2.1",
80
81
  "jsdoc-api": "^7.1.0",
81
82
  "jsonschema": "^1.4.0",
@@ -1,52 +0,0 @@
1
- (() => ({
2
- name: 'HelloWorld',
3
- icon: 'TitleIcon',
4
- category: 'CONTENT',
5
- structure: [
6
- {
7
- name: 'HelloWorld',
8
- options: [
9
- {
10
- type: 'FONT',
11
- label: 'Type',
12
- key: 'type',
13
- value: 'Title1',
14
- },
15
- {
16
- type: 'TEXT',
17
- label: 'Content',
18
- key: 'content',
19
- value: 'Hello World!',
20
- },
21
- {
22
- type: 'CUSTOM',
23
- label: 'Align',
24
- key: 'align',
25
- value: 'center',
26
- configuration: {
27
- as: 'BUTTONGROUP',
28
- dataType: 'string',
29
- allowedInput: [
30
- { name: 'Left', value: 'left' },
31
- { name: 'Center', value: 'center' },
32
- { name: 'Right', value: 'right' },
33
- ],
34
- },
35
- },
36
- {
37
- type: 'SIZES',
38
- label: 'Padding',
39
- key: 'padding',
40
- value: ['S', 'S', 'S', 'S'],
41
- },
42
- {
43
- type: 'COLOR',
44
- label: 'Color',
45
- key: 'color',
46
- value: 'Black',
47
- },
48
- ],
49
- descendants: [],
50
- },
51
- ],
52
- }))();