@betty-blocks/cli 26.0.0-beta.14 → 26.0.0-beta.16
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/build/bb-blocks-new.js +10 -15
- package/build/bb-blocks-new.js.map +1 -1
- package/build/bb-blocks-publish.js +41 -55
- package/build/bb-blocks-publish.js.map +1 -1
- package/build/bb-blocks-release.js +6 -20
- package/build/bb-blocks-release.js.map +1 -1
- package/build/bb-blocks.js +2 -4
- package/build/bb-blocks.js.map +1 -1
- package/build/bb-bundle-init.js +15 -29
- package/build/bb-bundle-init.js.map +1 -1
- package/build/bb-bundle.js +4 -9
- package/build/bb-bundle.js.map +1 -1
- package/build/bb-components-build.js +165 -198
- package/build/bb-components-build.js.map +1 -1
- package/build/bb-components-create.js +15 -29
- package/build/bb-components-create.js.map +1 -1
- package/build/bb-components-generate.js +26 -40
- package/build/bb-components-generate.js.map +1 -1
- package/build/bb-components-publish-bundle.js +20 -34
- package/build/bb-components-publish-bundle.js.map +1 -1
- package/build/bb-components-publish.js +21 -35
- package/build/bb-components-publish.js.map +1 -1
- package/build/bb-components-serve.js +9 -14
- package/build/bb-components-serve.js.map +1 -1
- package/build/bb-components.js +3 -4
- package/build/bb-components.js.map +1 -1
- package/build/bb-functions-build.js +31 -33
- package/build/bb-functions-build.js.map +1 -1
- package/build/bb-functions-bump.js +25 -39
- package/build/bb-functions-bump.js.map +1 -1
- package/build/bb-functions-init.js +14 -19
- package/build/bb-functions-init.js.map +1 -1
- package/build/bb-functions-login.js +9 -23
- package/build/bb-functions-login.js.map +1 -1
- package/build/bb-functions-logout.js +6 -11
- package/build/bb-functions-logout.js.map +1 -1
- package/build/bb-functions-new.js +8 -13
- package/build/bb-functions-new.js.map +1 -1
- package/build/bb-functions-publish.js +26 -40
- package/build/bb-functions-publish.js.map +1 -1
- package/build/bb-functions-validate.js +18 -32
- package/build/bb-functions-validate.js.map +1 -1
- package/build/bb-functions.js +2 -4
- package/build/bb-functions.js.map +1 -1
- package/build/bb.js +7 -11
- package/build/bb.js.map +1 -1
- package/build/blocks/blockDefinitions.js +12 -21
- package/build/blocks/blockDefinitions.js.map +1 -1
- package/build/blocks/publishBlocks.js +34 -48
- package/build/blocks/publishBlocks.js.map +1 -1
- package/build/blocks/releaseBlocks.js +27 -43
- package/build/blocks/releaseBlocks.js.map +1 -1
- package/build/components/comments.js +15 -18
- package/build/components/comments.js.map +1 -1
- package/build/components/compatibility.js +13 -15
- package/build/components/compatibility.js.map +1 -1
- package/build/components/transformers/index.js +8 -14
- package/build/components/transformers/index.js.map +1 -1
- package/build/components-build/index.js +2 -18
- package/build/components-build/index.js.map +1 -1
- package/build/components-build/reportDiagnostics.js +4 -12
- package/build/components-build/reportDiagnostics.js.map +1 -1
- package/build/components-build/styles.js +35 -92
- package/build/components-build/styles.js.map +1 -1
- package/build/functions/acquireAppFunctionsProject.js +5 -10
- package/build/functions/acquireAppFunctionsProject.js.map +1 -1
- package/build/functions/acquireCustomFunctionsProject.js +5 -10
- package/build/functions/acquireCustomFunctionsProject.js.map +1 -1
- package/build/functions/bb-components-functions.js +12 -30
- package/build/functions/bb-components-functions.js.map +1 -1
- package/build/functions/config.js +88 -91
- package/build/functions/config.js.map +1 -1
- package/build/functions/functionDefinitions.js +42 -56
- package/build/functions/functionDefinitions.js.map +1 -1
- package/build/functions/icons.js +10 -16
- package/build/functions/icons.js.map +1 -1
- package/build/functions/publishAppFunctions.js +47 -63
- package/build/functions/publishAppFunctions.js.map +1 -1
- package/build/functions/publishCustomFunctions.js +53 -69
- package/build/functions/publishCustomFunctions.js.map +1 -1
- package/build/functions/publishFunctions.js +18 -33
- package/build/functions/publishFunctions.js.map +1 -1
- package/build/functions/utils.js +9 -13
- package/build/functions/utils.js.map +1 -1
- package/build/functions/validations.js +41 -59
- package/build/functions/validations.js.map +1 -1
- package/build/functions/versions.js +21 -27
- package/build/functions/versions.js.map +1 -1
- package/build/interactions/compatibility.js +8 -45
- package/build/interactions/compatibility.js.map +1 -1
- package/build/interactions/diagnostics.js +7 -10
- package/build/interactions/diagnostics.js.map +1 -1
- package/build/types.js +9 -11
- package/build/types.js.map +1 -1
- package/build/utils/arguments.js +2 -7
- package/build/utils/arguments.js.map +1 -1
- package/build/utils/checkPackageVersion.js +6 -19
- package/build/utils/checkPackageVersion.js.map +1 -1
- package/build/utils/checkUpdateAvailable.js +31 -47
- package/build/utils/checkUpdateAvailable.js.map +1 -1
- package/build/utils/fusionAuth.js +84 -108
- package/build/utils/fusionAuth.js.map +1 -1
- package/build/utils/hash.js +2 -7
- package/build/utils/hash.js.map +1 -1
- package/build/utils/ide.js +111 -133
- package/build/utils/ide.js.map +1 -1
- package/build/utils/login.js +62 -78
- package/build/utils/login.js.map +1 -1
- package/build/utils/pick.js +1 -5
- package/build/utils/pick.js.map +1 -1
- package/build/utils/readFilesByType.js +13 -27
- package/build/utils/readFilesByType.js.map +1 -1
- package/build/utils/rootDir.js +3 -8
- package/build/utils/rootDir.js.map +1 -1
- package/build/utils/serveComponentSet.js +15 -29
- package/build/utils/serveComponentSet.js.map +1 -1
- package/build/utils/transpile.js +10 -15
- package/build/utils/transpile.js.map +1 -1
- package/build/utils/uploadBlob.js +22 -36
- package/build/utils/uploadBlob.js.map +1 -1
- package/build/utils/validation.js +9 -18
- package/build/utils/validation.js.map +1 -1
- package/build/validations/component.js +32 -37
- package/build/validations/component.js.map +1 -1
- package/build/validations/constants.js +16 -19
- package/build/validations/constants.js.map +1 -1
- package/build/validations/function-block-validations/index.js +27 -44
- package/build/validations/function-block-validations/index.js.map +1 -1
- package/build/validations/interaction.js +11 -16
- package/build/validations/interaction.js.map +1 -1
- package/build/validations/prefab/action.js +54 -60
- package/build/validations/prefab/action.js.map +1 -1
- package/build/validations/prefab/component.js +97 -102
- package/build/validations/prefab/component.js.map +1 -1
- package/build/validations/prefab/componentOption.js +125 -102
- package/build/validations/prefab/componentOption.js.map +1 -1
- package/build/validations/prefab/interaction.js +22 -28
- package/build/validations/prefab/interaction.js.map +1 -1
- package/build/validations/prefab/linkedOption.js +29 -35
- package/build/validations/prefab/linkedOption.js.map +1 -1
- package/build/validations/prefab/linkedPartial.js +21 -27
- package/build/validations/prefab/linkedPartial.js.map +1 -1
- package/build/validations/prefab/variable.js +20 -26
- package/build/validations/prefab/variable.js.map +1 -1
- package/build/validations/prefab.js +34 -39
- package/build/validations/prefab.js.map +1 -1
- package/build/validations/styles.js +31 -37
- package/build/validations/styles.js.map +1 -1
- package/package.json +2 -2
package/build/bb.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const commander_1 = require("commander");
|
|
9
|
-
const package_json_1 = __importDefault(require("../package.json"));
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import pkg from '../package.json';
|
|
5
|
+
import {} from './types';
|
|
10
6
|
const availableCommands = [
|
|
11
7
|
'blocks',
|
|
12
8
|
'components',
|
|
@@ -14,17 +10,17 @@ const availableCommands = [
|
|
|
14
10
|
'bundle',
|
|
15
11
|
'help',
|
|
16
12
|
];
|
|
17
|
-
const program = new
|
|
13
|
+
const program = new Command();
|
|
18
14
|
program
|
|
19
15
|
.description('Betty Blocks CLI')
|
|
20
|
-
.version(
|
|
16
|
+
.version(pkg.version, '-v, --version')
|
|
21
17
|
.command('components [cmd]', 'manage your component sets')
|
|
22
18
|
.command('blocks [cmd]', 'manage your blocks')
|
|
23
19
|
.command('functions [cmd]', 'manage your custom functions')
|
|
24
20
|
.command('bundle [cmd]', 'manage your vendor bundle')
|
|
25
21
|
.on('command:*', ([command]) => {
|
|
26
22
|
if (!availableCommands.includes(command)) {
|
|
27
|
-
throw new Error(
|
|
23
|
+
throw new Error(chalk.red(`\nInvalid command: ${command}\n`));
|
|
28
24
|
}
|
|
29
25
|
})
|
|
30
26
|
.parse(process.argv);
|
package/build/bb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb.js","sourceRoot":"","sources":["../src/bb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bb.js","sourceRoot":"","sources":["../src/bb.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,EAAkB,MAAM,SAAS,CAAC;AAEzC,MAAM,iBAAiB,GAAgB;IACrC,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,MAAM;CACP,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,WAAW,CAAC,kBAAkB,CAAC;KAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC;KACrC,OAAO,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;KACzD,OAAO,CAAC,cAAc,EAAE,oBAAoB,CAAC;KAC7C,OAAO,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;KAC1D,OAAO,CAAC,cAAc,EAAE,2BAA2B,CAAC;KACpD,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAW,EAAQ,EAAE;IAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAoB,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.newBlockDefinition = exports.createPackageJson = exports.blockDefinitions = exports.blockDefinitionPath = void 0;
|
|
7
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
-
const glob_1 = __importDefault(require("glob"));
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const pick_1 = require("../utils/pick");
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import glob from 'glob';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { pick } from '../utils/pick';
|
|
11
5
|
/* @doc createPackageJson
|
|
12
6
|
Returns an object containing all data needed for the block package json
|
|
13
7
|
*/
|
|
14
8
|
const createPackageJson = (name, rootPackageJson, dependencies) => {
|
|
15
|
-
const rootDependencies =
|
|
9
|
+
const rootDependencies = pick(fs.readJsonSync(rootPackageJson).dependencies, dependencies);
|
|
16
10
|
const packageJson = JSON.stringify({
|
|
17
11
|
dependencies: rootDependencies,
|
|
18
12
|
name,
|
|
@@ -21,12 +15,11 @@ const createPackageJson = (name, rootPackageJson, dependencies) => {
|
|
|
21
15
|
}, null, 2);
|
|
22
16
|
return packageJson;
|
|
23
17
|
};
|
|
24
|
-
exports.createPackageJson = createPackageJson;
|
|
25
18
|
/* @doc functionDirs
|
|
26
19
|
Returns a list of blocks.
|
|
27
20
|
*/
|
|
28
|
-
const blockFiles = (blockDir) =>
|
|
29
|
-
.sync(
|
|
21
|
+
const blockFiles = (blockDir) => glob
|
|
22
|
+
.sync(path.join(blockDir, '*.json').replace(/\\/g, '/'))
|
|
30
23
|
.reduce((blocks, blockDefinition) => {
|
|
31
24
|
blocks.push(blockDefinition);
|
|
32
25
|
return blocks;
|
|
@@ -36,22 +29,20 @@ const blockFiles = (blockDir) => glob_1.default
|
|
|
36
29
|
inside the given blocksDir.
|
|
37
30
|
*/
|
|
38
31
|
const blockDefinitions = (blocksDir) => blockFiles(blocksDir).map((blocks) => blocks);
|
|
39
|
-
exports.blockDefinitions = blockDefinitions;
|
|
40
32
|
/* @doc blockDefinitionPath
|
|
41
33
|
Expands the block dir with a json file with the given blockname.
|
|
42
34
|
*/
|
|
43
|
-
const blockDefinitionPath = (blockPath, blockName) =>
|
|
44
|
-
exports.blockDefinitionPath = blockDefinitionPath;
|
|
35
|
+
const blockDefinitionPath = (blockPath, blockName) => path.join(blockPath, `${blockName}.json`);
|
|
45
36
|
/* @doc newBlockDefinition
|
|
46
37
|
If block does not exists it will create a new json file with the given blockname.
|
|
47
38
|
*/
|
|
48
39
|
const newBlockDefinition = (blocksDir, blockName) => {
|
|
49
40
|
try {
|
|
50
|
-
const existingBlock =
|
|
41
|
+
const existingBlock = fs.existsSync(blockDefinitionPath(blocksDir, blockName));
|
|
51
42
|
if (existingBlock)
|
|
52
43
|
return 'Block already exists';
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
fs.mkdirpSync(blocksDir);
|
|
45
|
+
fs.writeJSONSync(blockDefinitionPath(blocksDir, blockName), {
|
|
55
46
|
dependencies: [],
|
|
56
47
|
functions: [],
|
|
57
48
|
includes: [],
|
|
@@ -62,5 +53,5 @@ const newBlockDefinition = (blocksDir, blockName) => {
|
|
|
62
53
|
throw new Error(`could not initialize new block ${blocksDir}: ${err}`);
|
|
63
54
|
}
|
|
64
55
|
};
|
|
65
|
-
|
|
56
|
+
export { blockDefinitionPath, blockDefinitions, createPackageJson, newBlockDefinition, };
|
|
66
57
|
//# sourceMappingURL=blockDefinitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockDefinitions.js","sourceRoot":"","sources":["../../src/blocks/blockDefinitions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blockDefinitions.js","sourceRoot":"","sources":["../../src/blocks/blockDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAYrC;;EAEE;AACF,MAAM,iBAAiB,GAAG,CACxB,IAAY,EACZ,eAAuB,EACvB,YAAsB,EACd,EAAE;IACV,MAAM,gBAAgB,GAAG,IAAI,CAC1B,EAAE,CAAC,YAAY,CAAC,eAAe,CAAqB,CAAC,YAAY,EAClE,YAAY,CACb,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAChC;QACE,YAAY,EAAE,gBAAgB;QAC9B,IAAI;QACJ,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,OAAO;KACjB,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF;;EAEE;AACF,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAY,EAAE,CAChD,IAAI;KACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACvD,MAAM,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE;IAClC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC,EAAE,EAAc,CAAC,CAAC;AAEvB;;;EAGE;AACF,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAY,EAAE,CACvD,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAEhD;;EAEE;AACF,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAU,EAAE,CAC3E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AAE5C;;EAEE;AACF,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAU,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CACjC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAC1C,CAAC;QAEF,IAAI,aAAa;YAAE,OAAO,sBAAsB,CAAC;QACjD,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzB,EAAE,CAAC,aAAa,CACd,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,EACzC;YACE,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;SACb,EACD,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;QACF,OAAO,UAAU,SAAS,eAAe,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC"}
|
|
@@ -1,38 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
16
|
-
const form_data_1 = __importDefault(require("form-data"));
|
|
17
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
18
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
19
|
-
const path_1 = __importDefault(require("path"));
|
|
20
|
-
const config_1 = __importDefault(require("../functions/config"));
|
|
21
|
-
const functionDefinitions_1 = require("../functions/functionDefinitions");
|
|
22
|
-
const login_1 = __importDefault(require("../utils/login"));
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import FormData from 'form-data';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import fetch from 'node-fetch';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import Config from '../functions/config';
|
|
7
|
+
import { functionDefinitions, stringifyDefinitions, whitelistedFunctions, } from '../functions/functionDefinitions';
|
|
8
|
+
import FusionAuth from '../utils/login';
|
|
23
9
|
const workingDir = process.cwd();
|
|
24
|
-
const uploadBlock = (blockDefinitionsFile, functionsJson, config) =>
|
|
25
|
-
const fusionAuth = new
|
|
26
|
-
const form = new
|
|
27
|
-
form.append('name',
|
|
10
|
+
const uploadBlock = async (blockDefinitionsFile, functionsJson, config) => {
|
|
11
|
+
const fusionAuth = new FusionAuth(config);
|
|
12
|
+
const form = new FormData();
|
|
13
|
+
form.append('name', path.basename(blockDefinitionsFile, '.zip'));
|
|
28
14
|
form.append('functions', functionsJson);
|
|
29
|
-
form.append('file',
|
|
30
|
-
const applicationId =
|
|
15
|
+
form.append('file', fs.createReadStream(blockDefinitionsFile));
|
|
16
|
+
const applicationId = await config.applicationId();
|
|
31
17
|
if (!applicationId) {
|
|
32
18
|
throw new Error("Couldn't publish block(s), Error: application id not found");
|
|
33
19
|
}
|
|
34
20
|
const url = `${config.blockstoreApiUrl}/blocks/publish`;
|
|
35
|
-
return (
|
|
21
|
+
return fetch(url, {
|
|
36
22
|
agent: config.agent,
|
|
37
23
|
body: form,
|
|
38
24
|
headers: {
|
|
@@ -41,30 +27,30 @@ const uploadBlock = (blockDefinitionsFile, functionsJson, config) => __awaiter(v
|
|
|
41
27
|
Authorization: `Bearer ${fusionAuth.jwt()}`,
|
|
42
28
|
},
|
|
43
29
|
method: 'POST',
|
|
44
|
-
}).then((res) =>
|
|
30
|
+
}).then(async (res) => {
|
|
45
31
|
if (res.status === 401 || res.status === 403) {
|
|
46
|
-
|
|
32
|
+
await fusionAuth.ensureLogin();
|
|
47
33
|
return uploadBlock(blockDefinitionsFile, functionsJson, config);
|
|
48
34
|
}
|
|
49
35
|
if (res.status !== 201) {
|
|
50
|
-
const error =
|
|
36
|
+
const error = await res.text();
|
|
51
37
|
throw new Error(`Couldn't publish block(s), Error: ${res.status}, ${error.match('## Connection details') ? 'Something went wrong' : error}`);
|
|
52
38
|
}
|
|
53
39
|
return true;
|
|
54
|
-
})
|
|
55
|
-
}
|
|
56
|
-
const createAndPublishFiles = (config, functions, zip) =>
|
|
57
|
-
const functionsDir =
|
|
58
|
-
const funcDefinitions =
|
|
59
|
-
const blockFunctions =
|
|
60
|
-
const functionsJson =
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
const publishBlocks = (functions, zip) =>
|
|
64
|
-
const config = new
|
|
65
|
-
console.log(
|
|
66
|
-
|
|
67
|
-
console.log(
|
|
68
|
-
}
|
|
69
|
-
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const createAndPublishFiles = async (config, functions, zip) => {
|
|
43
|
+
const functionsDir = path.join(workingDir, 'functions');
|
|
44
|
+
const funcDefinitions = functionDefinitions(functionsDir);
|
|
45
|
+
const blockFunctions = whitelistedFunctions(funcDefinitions, functions);
|
|
46
|
+
const functionsJson = stringifyDefinitions(blockFunctions);
|
|
47
|
+
await uploadBlock(zip, functionsJson, config);
|
|
48
|
+
};
|
|
49
|
+
const publishBlocks = async (functions, zip) => {
|
|
50
|
+
const config = new Config();
|
|
51
|
+
console.log(chalk.bold(`\nPublishing to ${config.host} (${config.zone})`));
|
|
52
|
+
await createAndPublishFiles(config, functions, zip);
|
|
53
|
+
console.log(chalk.green.underline(`✔ Your blocks are published to the block store.`));
|
|
54
|
+
};
|
|
55
|
+
export default publishBlocks;
|
|
70
56
|
//# sourceMappingURL=publishBlocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishBlocks.js","sourceRoot":"","sources":["../../src/blocks/publishBlocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publishBlocks.js","sourceRoot":"","sources":["../../src/blocks/publishBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAExC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAEjC,MAAM,WAAW,GAAG,KAAK,EACvB,oBAA4B,EAC5B,aAAqB,EACrB,MAAc,EACI,EAAE;IACpB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE/D,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IACnD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,gBAAgB,iBAAiB,CAAC;IAExD,OAAO,KAAK,CAAC,GAAG,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,aAAa,EAAE,aAAa;YAC5B,aAAa,EAAE,UAAU,UAAU,CAAC,GAAG,EAAE,EAAE;SAC5C;QACD,MAAM,EAAE,MAAM;KACf,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,WAAW,CAAC,oBAAoB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,qCAAqC,GAAG,CAAC,MAAM,KAC7C,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAClE,EAAE,CACH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EACjC,MAAc,EACd,SAAmB,EACnB,GAAW,EACI,EAAE;IACjB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,oBAAoB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAE3D,MAAM,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EACzB,SAAmB,EACnB,GAAW,EACI,EAAE;IACjB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,iDAAiD,CAAC,CACzE,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
16
|
-
const config_1 = __importDefault(require("../functions/config"));
|
|
17
|
-
const login_1 = __importDefault(require("../utils/login"));
|
|
1
|
+
import fetch, {} from 'node-fetch';
|
|
2
|
+
import Config from '../functions/config';
|
|
3
|
+
import FusionAuth from '../utils/login';
|
|
18
4
|
const GET_DEV_BLOCKS = '/blocks/my-dev-blocks';
|
|
19
5
|
const POST_RELEASE_BLOCKS = '/blocks/release';
|
|
20
|
-
const sendBlockstoreRequest =
|
|
6
|
+
const sendBlockstoreRequest = async ({ urlPath, method, body, config, fusionAuth, applicationId, }) => {
|
|
21
7
|
const url = `${config.blockstoreApiUrl}${urlPath}`;
|
|
22
|
-
return (
|
|
8
|
+
return fetch(url, {
|
|
23
9
|
agent: config.agent,
|
|
24
10
|
body,
|
|
25
11
|
headers: {
|
|
@@ -29,9 +15,9 @@ const sendBlockstoreRequest = (_a) => __awaiter(void 0, [_a], void 0, function*
|
|
|
29
15
|
'content-type': 'application/json',
|
|
30
16
|
},
|
|
31
17
|
method,
|
|
32
|
-
}).then((res) =>
|
|
18
|
+
}).then(async (res) => {
|
|
33
19
|
if (res.status === 401 || res.status === 403) {
|
|
34
|
-
|
|
20
|
+
await fusionAuth.ensureLogin();
|
|
35
21
|
return sendBlockstoreRequest({
|
|
36
22
|
applicationId,
|
|
37
23
|
body,
|
|
@@ -42,20 +28,18 @@ const sendBlockstoreRequest = (_a) => __awaiter(void 0, [_a], void 0, function*
|
|
|
42
28
|
});
|
|
43
29
|
}
|
|
44
30
|
return res;
|
|
45
|
-
}));
|
|
46
|
-
});
|
|
47
|
-
const fetchAllDevBlocks = (config, fusionAuth, applicationId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
-
return sendBlockstoreRequest({
|
|
49
|
-
applicationId,
|
|
50
|
-
body: undefined,
|
|
51
|
-
config,
|
|
52
|
-
fusionAuth,
|
|
53
|
-
method: 'GET',
|
|
54
|
-
urlPath: GET_DEV_BLOCKS,
|
|
55
31
|
});
|
|
32
|
+
};
|
|
33
|
+
const fetchAllDevBlocks = async (config, fusionAuth, applicationId) => sendBlockstoreRequest({
|
|
34
|
+
applicationId,
|
|
35
|
+
body: undefined,
|
|
36
|
+
config,
|
|
37
|
+
fusionAuth,
|
|
38
|
+
method: 'GET',
|
|
39
|
+
urlPath: GET_DEV_BLOCKS,
|
|
56
40
|
});
|
|
57
|
-
const releaseBlocksInBlockstore =
|
|
58
|
-
const response =
|
|
41
|
+
const releaseBlocksInBlockstore = async ({ blockIds, config, fusionAuth, applicationId, }) => {
|
|
42
|
+
const response = await sendBlockstoreRequest({
|
|
59
43
|
applicationId,
|
|
60
44
|
body: JSON.stringify({ block_ids: blockIds }),
|
|
61
45
|
config,
|
|
@@ -64,24 +48,24 @@ const releaseBlocksInBlockstore = (_a) => __awaiter(void 0, [_a], void 0, functi
|
|
|
64
48
|
urlPath: POST_RELEASE_BLOCKS,
|
|
65
49
|
});
|
|
66
50
|
if (!response.ok) {
|
|
67
|
-
|
|
51
|
+
await response
|
|
68
52
|
.text()
|
|
69
53
|
.then((text) => console.error(`Failed to release blocks in Blockstore: ${text}`));
|
|
70
54
|
return false;
|
|
71
55
|
}
|
|
72
56
|
return true;
|
|
73
|
-
}
|
|
74
|
-
const releaseBlocks =
|
|
75
|
-
const config = new
|
|
76
|
-
const fusionAuth = new
|
|
77
|
-
const applicationId =
|
|
57
|
+
};
|
|
58
|
+
const releaseBlocks = async ({ all, blockIds, }) => {
|
|
59
|
+
const config = new Config();
|
|
60
|
+
const fusionAuth = new FusionAuth(config);
|
|
61
|
+
const applicationId = await config.applicationId();
|
|
78
62
|
if (!applicationId) {
|
|
79
63
|
throw new Error("Couldn't publish block(s), Error: application id not found");
|
|
80
64
|
}
|
|
81
65
|
let blockIdsToBeReleased = blockIds;
|
|
82
66
|
if (all) {
|
|
83
|
-
const res =
|
|
84
|
-
blockIdsToBeReleased = (
|
|
67
|
+
const res = await fetchAllDevBlocks(config, fusionAuth, applicationId);
|
|
68
|
+
blockIdsToBeReleased = (await res.json());
|
|
85
69
|
}
|
|
86
70
|
return releaseBlocksInBlockstore({
|
|
87
71
|
applicationId,
|
|
@@ -89,6 +73,6 @@ const releaseBlocks = (_a) => __awaiter(void 0, [_a], void 0, function* ({ all,
|
|
|
89
73
|
config,
|
|
90
74
|
fusionAuth,
|
|
91
75
|
});
|
|
92
|
-
}
|
|
93
|
-
|
|
76
|
+
};
|
|
77
|
+
export default releaseBlocks;
|
|
94
78
|
//# sourceMappingURL=releaseBlocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"releaseBlocks.js","sourceRoot":"","sources":["../../src/blocks/releaseBlocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"releaseBlocks.js","sourceRoot":"","sources":["../../src/blocks/releaseBlocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.createLiteralObjectExpression = exports.walkCompilerAstAndFindComments = void 0;
|
|
4
|
-
const jsdoc_api_1 = require("jsdoc-api");
|
|
5
|
-
const typescript_1 = require("typescript");
|
|
1
|
+
import { explainSync } from 'jsdoc-api';
|
|
2
|
+
import { factory, getLeadingCommentRanges, getTrailingCommentRanges, SyntaxKind, } from 'typescript';
|
|
6
3
|
/**
|
|
7
4
|
* Retrieves the JSDoc-style comments associated with a specific AST node.
|
|
8
5
|
*
|
|
@@ -10,21 +7,20 @@ const typescript_1 = require("typescript");
|
|
|
10
7
|
* https://github.com/microsoft/TypeScript/blob/v3.0.3/src/compiler/utilities.ts#L924
|
|
11
8
|
*/
|
|
12
9
|
const getJSDocCommentRanges = (node, text) => {
|
|
13
|
-
var _a, _b;
|
|
14
10
|
const commentRanges = [];
|
|
15
|
-
const { Parameter, TypeParameter, FunctionExpression, ArrowFunction, ParenthesizedExpression, } =
|
|
11
|
+
const { Parameter, TypeParameter, FunctionExpression, ArrowFunction, ParenthesizedExpression, } = SyntaxKind;
|
|
16
12
|
switch (node.kind) {
|
|
17
13
|
case Parameter:
|
|
18
14
|
case TypeParameter:
|
|
19
15
|
case FunctionExpression:
|
|
20
16
|
case ArrowFunction:
|
|
21
17
|
case ParenthesizedExpression:
|
|
22
|
-
commentRanges.push(...(
|
|
18
|
+
commentRanges.push(...(getTrailingCommentRanges(text, node.pos) ?? []));
|
|
23
19
|
break;
|
|
24
20
|
default:
|
|
25
21
|
break;
|
|
26
22
|
}
|
|
27
|
-
commentRanges.push(...(
|
|
23
|
+
commentRanges.push(...(getLeadingCommentRanges(text, node.pos) ?? []));
|
|
28
24
|
// True if the comment starts with '/**' but not if it is '/**/'
|
|
29
25
|
return commentRanges.filter((comment) => text.charCodeAt(comment.pos + 1) ===
|
|
30
26
|
0x2a /* ts.CharacterCodes.asterisk */ &&
|
|
@@ -32,7 +28,7 @@ const getJSDocCommentRanges = (node, text) => {
|
|
|
32
28
|
0x2a /* ts.CharacterCodes.asterisk */ &&
|
|
33
29
|
text.charCodeAt(comment.pos + 3) !== 0x2f /* ts.CharacterCodes.slash */);
|
|
34
30
|
};
|
|
35
|
-
const walkCompilerAstAndFindComments = (node, foundComments) => {
|
|
31
|
+
export const walkCompilerAstAndFindComments = (node, foundComments) => {
|
|
36
32
|
// The TypeScript AST doesn't store code comments directly. If you want to find *every* comment,
|
|
37
33
|
// you would need to rescan the SourceFile tokens similar to how tsutils.forEachComment() works:
|
|
38
34
|
// https://github.com/ajafff/tsutils/blob/v3.0.0/util/util.ts#L453
|
|
@@ -47,9 +43,12 @@ const walkCompilerAstAndFindComments = (node, foundComments) => {
|
|
|
47
43
|
const comments = getJSDocCommentRanges(node, buffer);
|
|
48
44
|
comments.forEach((c) => {
|
|
49
45
|
const source = buffer.slice(c.pos, c.end);
|
|
50
|
-
const comment =
|
|
46
|
+
const comment = explainSync({ source });
|
|
51
47
|
const [{ name, params, returns }] = comment;
|
|
52
|
-
const parameters = params.reduce((acc, cur) => (
|
|
48
|
+
const parameters = params.reduce((acc, cur) => ({
|
|
49
|
+
...acc,
|
|
50
|
+
[cur.name]: cur.type.names,
|
|
51
|
+
}), {});
|
|
53
52
|
const returnType = returns.reduce((acc, curr) => acc.concat(curr.type.names), []);
|
|
54
53
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
55
54
|
// @ts-ignore
|
|
@@ -58,11 +57,10 @@ const walkCompilerAstAndFindComments = (node, foundComments) => {
|
|
|
58
57
|
foundComments.push({ [name]: { parameters, returnType } });
|
|
59
58
|
}
|
|
60
59
|
});
|
|
61
|
-
return node.forEachChild((child) =>
|
|
60
|
+
return node.forEachChild((child) => walkCompilerAstAndFindComments(child, foundComments));
|
|
62
61
|
};
|
|
63
|
-
exports.walkCompilerAstAndFindComments = walkCompilerAstAndFindComments;
|
|
64
62
|
const createParams = (params) => {
|
|
65
|
-
const { createArrayLiteralExpression, createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } =
|
|
63
|
+
const { createArrayLiteralExpression, createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } = factory;
|
|
66
64
|
return Object.entries(params).map(([key, value]) => {
|
|
67
65
|
const result = Array.isArray(value)
|
|
68
66
|
? createArrayLiteralExpression(value.map((n) => createStringLiteral(n)))
|
|
@@ -70,12 +68,11 @@ const createParams = (params) => {
|
|
|
70
68
|
return createPropertyAssignment(createStringLiteral(key), result);
|
|
71
69
|
});
|
|
72
70
|
};
|
|
73
|
-
const createLiteralObjectExpression = (params) => {
|
|
74
|
-
const { createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } =
|
|
71
|
+
export const createLiteralObjectExpression = (params) => {
|
|
72
|
+
const { createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } = factory;
|
|
75
73
|
return params.map((param) => {
|
|
76
74
|
const [[key, value]] = Object.entries(param);
|
|
77
75
|
return createPropertyAssignment(createStringLiteral(key), createObjectLiteralExpression(createParams(value)));
|
|
78
76
|
});
|
|
79
77
|
};
|
|
80
|
-
exports.createLiteralObjectExpression = createLiteralObjectExpression;
|
|
81
78
|
//# sourceMappingURL=comments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/components/comments.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/components/comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const typescript_1 = require("typescript");
|
|
4
|
-
const comments_1 = require("./comments");
|
|
1
|
+
import { isCallExpression, isIdentifier, isMethodDeclaration, isPropertyAccessExpression, isSourceFile, transpileModule, visitEachChild, visitNode, } from 'typescript';
|
|
2
|
+
import { createLiteralObjectExpression, walkCompilerAstAndFindComments, } from './comments';
|
|
5
3
|
const isComponentCompatibility = (value) => {
|
|
6
4
|
if (typeof value === 'object' && value !== null) {
|
|
7
5
|
const { functions, triggers } = value;
|
|
@@ -13,13 +11,13 @@ const isComponentCompatibility = (value) => {
|
|
|
13
11
|
return false;
|
|
14
12
|
};
|
|
15
13
|
const addCompatibility = (name, collection, node) => {
|
|
16
|
-
if ((
|
|
17
|
-
(
|
|
14
|
+
if ((isIdentifier(node) && node.getText() === name) ||
|
|
15
|
+
(isPropertyAccessExpression(node) &&
|
|
18
16
|
(node.getText() === `B.${name}` || node.getText() === `.${name}`))) {
|
|
19
|
-
if (
|
|
17
|
+
if (isCallExpression(node.parent)) {
|
|
20
18
|
collection.push(node.parent.getChildAt(2).getChildAt(0).getText().replace(/'/g, ''));
|
|
21
19
|
}
|
|
22
|
-
if (
|
|
20
|
+
if (isMethodDeclaration(node.parent)) {
|
|
23
21
|
collection.push(node.parent.getChildAt(2).getChildAt(1).getText().replace(/'/g, ''));
|
|
24
22
|
}
|
|
25
23
|
}
|
|
@@ -32,25 +30,25 @@ const compatibilityTransformer = () => (context) => {
|
|
|
32
30
|
const visit = (node) => {
|
|
33
31
|
addCompatibility('defineFunction', functions, node);
|
|
34
32
|
addCompatibility('triggerEvent', triggers, node); // TODO: investigate inline triggers
|
|
35
|
-
return
|
|
33
|
+
return visitEachChild(node, visit, context);
|
|
36
34
|
};
|
|
37
35
|
return (node) => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (
|
|
36
|
+
visitNode(node, visit);
|
|
37
|
+
walkCompilerAstAndFindComments(node, comments);
|
|
38
|
+
if (isSourceFile(node)) {
|
|
41
39
|
return updateSourceFile(node, [
|
|
42
40
|
createExpressionStatement(createObjectLiteralExpression([
|
|
43
41
|
createPropertyAssignment(createStringLiteral('functions'), createArrayLiteralExpression(functions.map((n) => createStringLiteral(n)))),
|
|
44
42
|
createPropertyAssignment(createStringLiteral('triggers'), createArrayLiteralExpression(triggers.map((n) => createStringLiteral(n)))),
|
|
45
|
-
createPropertyAssignment(createStringLiteral('interactions'), createObjectLiteralExpression(
|
|
43
|
+
createPropertyAssignment(createStringLiteral('interactions'), createObjectLiteralExpression(createLiteralObjectExpression(comments))),
|
|
46
44
|
])),
|
|
47
45
|
]);
|
|
48
46
|
}
|
|
49
47
|
return node;
|
|
50
48
|
};
|
|
51
49
|
};
|
|
52
|
-
|
|
53
|
-
const { outputText } =
|
|
50
|
+
export default (code) => {
|
|
51
|
+
const { outputText } = transpileModule(code, {
|
|
54
52
|
transformers: { before: [compatibilityTransformer()] },
|
|
55
53
|
});
|
|
56
54
|
const component = JSON.parse(outputText.replace(/^[^{]+/, '').replace(/[^}]+$/, ''));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/components/compatibility.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/components/compatibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const {
|
|
6
|
-
const { ES5 } = typescript_1.ScriptTarget;
|
|
7
|
-
const transpile = (code, before) => {
|
|
8
|
-
const { diagnostics, outputText } = (0, typescript_1.transpileModule)(code, {
|
|
1
|
+
import { flattenDiagnosticMessageText, JsxEmit, ScriptTarget, transpileModule, } from 'typescript';
|
|
2
|
+
const { React } = JsxEmit;
|
|
3
|
+
const { ES5 } = ScriptTarget;
|
|
4
|
+
export const transpile = (code, before) => {
|
|
5
|
+
const { diagnostics, outputText } = transpileModule(code, {
|
|
9
6
|
compilerOptions: {
|
|
10
7
|
allowJs: true,
|
|
11
8
|
checkJs: true,
|
|
@@ -23,12 +20,11 @@ const transpile = (code, before) => {
|
|
|
23
20
|
let messageText = '';
|
|
24
21
|
if (diagnostics) {
|
|
25
22
|
diagnostics.forEach((diagnostic) => {
|
|
26
|
-
var _a;
|
|
27
23
|
if (diagnostic.file) {
|
|
28
|
-
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(
|
|
24
|
+
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start ?? 0);
|
|
29
25
|
messageText += ` ${diagnostic.file.fileName} (${line + 1},${character + 1})`;
|
|
30
26
|
}
|
|
31
|
-
messageText += `: ${
|
|
27
|
+
messageText += `: ${flattenDiagnosticMessageText(diagnostic.messageText, '\n')}`;
|
|
32
28
|
});
|
|
33
29
|
}
|
|
34
30
|
if (messageText) {
|
|
@@ -36,7 +32,5 @@ const transpile = (code, before) => {
|
|
|
36
32
|
}
|
|
37
33
|
return outputText;
|
|
38
34
|
};
|
|
39
|
-
|
|
40
|
-
const doTranspile = (code) => (0, exports.transpile)(code, []);
|
|
41
|
-
exports.doTranspile = doTranspile;
|
|
35
|
+
export const doTranspile = (code) => transpile(code, []);
|
|
42
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/transformers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,4BAA4B,EAC5B,OAAO,EACP,YAAY,EAGZ,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;AAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAY,EACZ,MAAqE,EAC7D,EAAE;IACV,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE;QACxD,eAAe,EAAE;YACf,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,kBAAkB,EAAE,IAAI;YACxB,GAAG,EAAE,KAAK;YACV,iBAAiB;YACjB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,GAAG;SACZ;QACD,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE;YACZ,MAAM;SACP;KACF,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACjC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GACvB,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACvE,WAAW,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,IACtD,SAAS,GAAG,CACd,GAAG,CAAC;YACN,CAAC;YACD,WAAW,IAAI,KAAK,4BAA4B,CAC9C,UAAU,CAAC,WAAW,EACtB,IAAI,CACL,EAAE,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC"}
|