@betty-blocks/cli 25.27.3 → 25.30.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.
@@ -0,0 +1,3 @@
1
+ const gql = async (query) => {
2
+ return [{ id: 1, name: 'Bruce Wayne' }];
3
+ };
@@ -0,0 +1,4 @@
1
+ test('sayHello 1.0', async () => {
2
+ const output = await $app['sayHello 1.0']({ name: 'Bruce' });
3
+ assert(output, { greet: 'Hello, Bruce' });
4
+ });
@@ -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"}
@@ -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.3",
3
+ "version": "25.30.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
- }))();