@betty-blocks/cli 25.28.0 → 25.31.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/README.md +8 -0
- package/assets/app-functions/templates/test/helpers.js +3 -0
- package/assets/app-functions/templates/test/say-hello.test.js +4 -0
- package/build/bb-functions-test.js +30 -0
- package/build/bb-functions-test.js.map +1 -0
- package/build/bb-functions.js +2 -0
- package/build/bb-functions.js.map +1 -1
- package/build/functions/testRunner.js +207 -0
- package/build/functions/testRunner.js.map +1 -0
- package/build/types.js.map +1 -1
- package/build/validations/prefab.js +1 -0
- package/build/validations/prefab.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Betty Blocks Component CLI
|
|
2
2
|
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
As of version `25.29.0`, you will need to install the [requirements for IsolatedVM](https://www.npmjs.com/package/isolated-vm#requirements) which basically include:
|
|
6
|
+
|
|
7
|
+
* make
|
|
8
|
+
* g++
|
|
9
|
+
* python
|
|
10
|
+
|
|
3
11
|
## Installation
|
|
4
12
|
|
|
5
13
|
To install the CLI you will need [a recent version of Node.js](https://nodejs.org/en/).
|
|
@@ -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"}
|
package/build/bb-functions.js
CHANGED
|
@@ -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;
|
|
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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"}
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;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"}
|
|
@@ -23,6 +23,7 @@ const schemaProvider = (componentStyleMap, prefabType) => {
|
|
|
23
23
|
category: joi_1.default.string().required(),
|
|
24
24
|
type: prefabType === 'partial' ? joi_1.default.forbidden() : joi_1.default.string().valid('page'),
|
|
25
25
|
description: joi_1.default.string(),
|
|
26
|
+
isPublicPage: joi_1.default.boolean(),
|
|
26
27
|
detail: joi_1.default.string(),
|
|
27
28
|
previewImage: joi_1.default.string(),
|
|
28
29
|
previewUrl: joi_1.default.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefab.js","sourceRoot":"","sources":["../../src/validations/prefab.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prefab.js","sourceRoot":"","sources":["../../src/validations/prefab.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@betty-blocks/cli",
|
|
3
|
-
"version": "25.
|
|
3
|
+
"version": "25.31.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",
|