@betty-blocks/cli 26.0.0-beta.9 → 26.0.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/assets/app-functions/wasm-template/.wasm-functions +0 -0
- package/assets/app-functions/wasm-template/functions/say-hello/1.0/Cargo.lock +449 -0
- package/assets/app-functions/wasm-template/functions/say-hello/1.0/Cargo.toml +10 -0
- package/assets/app-functions/wasm-template/functions/say-hello/1.0/Justfile +12 -0
- package/assets/app-functions/wasm-template/functions/say-hello/1.0/function.json +35 -0
- package/assets/app-functions/wasm-template/functions/say-hello/1.0/src/lib.rs +19 -0
- package/assets/app-functions/wasm-template/functions/say-hello/1.0/wit/world.wit +13 -0
- package/build/bb-blocks-new.d.ts +1 -0
- package/build/bb-blocks-new.js +26 -0
- package/build/bb-blocks-new.js.map +1 -0
- package/build/bb-blocks-publish.d.ts +1 -0
- package/build/bb-blocks-publish.js +98 -0
- package/build/bb-blocks-publish.js.map +1 -0
- package/build/bb-blocks-release.d.ts +1 -0
- package/build/bb-blocks-release.js +18 -0
- package/build/bb-blocks-release.js.map +1 -0
- package/build/bb-blocks.d.ts +1 -0
- package/build/bb-blocks.js +17 -0
- package/build/bb-blocks.js.map +1 -0
- package/build/bb-bundle-init.d.ts +1 -0
- package/build/bb-bundle-init.js +33 -0
- package/build/bb-bundle-init.js.map +1 -0
- package/build/bb-bundle.d.ts +1 -0
- package/build/bb-bundle.js +17 -0
- package/build/bb-bundle.js.map +1 -0
- package/build/bb-components-build.d.ts +1 -0
- package/build/bb-components-build.js +416 -0
- package/build/bb-components-build.js.map +1 -0
- package/build/bb-components-create.d.ts +1 -0
- package/build/bb-components-create.js +41 -0
- package/build/bb-components-create.js.map +1 -0
- package/build/bb-components-generate.d.ts +1 -0
- package/build/bb-components-generate.js +168 -0
- package/build/bb-components-generate.js.map +1 -0
- package/build/bb-components-publish-bundle.d.ts +1 -0
- package/build/bb-components-publish-bundle.js +50 -0
- package/build/bb-components-publish-bundle.js.map +1 -0
- package/build/bb-components-publish.d.ts +1 -0
- package/build/bb-components-publish.js +57 -0
- package/build/bb-components-publish.js.map +1 -0
- package/build/bb-components-serve.d.ts +1 -0
- package/build/bb-components-serve.js +35 -0
- package/build/bb-components-serve.js.map +1 -0
- package/build/bb-components.d.ts +1 -0
- package/build/bb-components.js +29 -0
- package/build/bb-components.js.map +1 -0
- package/build/bb-functions-bump.d.ts +1 -0
- package/build/bb-functions-bump.js +37 -0
- package/build/bb-functions-bump.js.map +1 -0
- package/build/bb-functions-init.d.ts +1 -0
- package/build/bb-functions-init.js +31 -0
- package/build/bb-functions-init.js.map +1 -0
- package/build/bb-functions-login.d.ts +1 -0
- package/build/bb-functions-login.js +17 -0
- package/build/bb-functions-login.js.map +1 -0
- package/build/bb-functions-logout.d.ts +1 -0
- package/build/bb-functions-logout.js +10 -0
- package/build/bb-functions-logout.js.map +1 -0
- package/build/bb-functions-new.d.ts +1 -0
- package/build/bb-functions-new.js +25 -0
- package/build/bb-functions-new.js.map +1 -0
- package/build/bb-functions-publish.d.ts +1 -0
- package/build/bb-functions-publish.js +52 -0
- package/build/bb-functions-publish.js.map +1 -0
- package/build/bb-functions-validate.d.ts +1 -0
- package/build/bb-functions-validate.js +17 -0
- package/build/bb-functions-validate.js.map +1 -0
- package/build/bb-functions.d.ts +1 -0
- package/build/bb-functions.js +29 -0
- package/build/bb-functions.js.map +1 -0
- package/build/bb.d.ts +2 -0
- package/build/bb.js +27 -0
- package/build/bb.js.map +1 -0
- package/build/blocks/blockDefinitions.d.ts +10 -0
- package/build/blocks/blockDefinitions.js +62 -0
- package/build/blocks/blockDefinitions.js.map +1 -0
- package/build/blocks/publishBlocks.d.ts +2 -0
- package/build/blocks/publishBlocks.js +54 -0
- package/build/blocks/publishBlocks.js.map +1 -0
- package/build/blocks/releaseBlocks.d.ts +5 -0
- package/build/blocks/releaseBlocks.js +78 -0
- package/build/blocks/releaseBlocks.js.map +1 -0
- package/build/components/bb-components-functions.d.ts +10 -0
- package/build/components/bb-components-functions.js +40 -0
- package/build/components/bb-components-functions.js.map +1 -0
- package/build/components/comments.d.ts +3 -0
- package/build/components/comments.js +78 -0
- package/build/components/comments.js.map +1 -0
- package/build/components/compatibility.d.ts +7 -0
- package/build/components/compatibility.js +60 -0
- package/build/components/compatibility.js.map +1 -0
- package/build/components/transformers/index.d.ts +3 -0
- package/build/components/transformers/index.js +36 -0
- package/build/components/transformers/index.js.map +1 -0
- package/build/components-build/index.d.ts +2 -0
- package/build/components-build/index.js +3 -0
- package/build/components-build/index.js.map +1 -0
- package/build/components-build/reportDiagnostics.d.ts +2 -0
- package/build/components-build/reportDiagnostics.js +13 -0
- package/build/components-build/reportDiagnostics.js.map +1 -0
- package/build/components-build/styles.d.ts +4 -0
- package/build/components-build/styles.js +87 -0
- package/build/components-build/styles.js.map +1 -0
- package/build/functions/config.d.ts +67 -0
- package/build/functions/config.js +190 -0
- package/build/functions/config.js.map +1 -0
- package/build/functions/createWasmDefinitionFiles.d.ts +4 -0
- package/build/functions/createWasmDefinitionFiles.js +61 -0
- package/build/functions/createWasmDefinitionFiles.js.map +1 -0
- package/build/functions/functionDefinitions.d.ts +23 -0
- package/build/functions/functionDefinitions.js +229 -0
- package/build/functions/functionDefinitions.js.map +1 -0
- package/build/functions/functionVersionBump.d.ts +19 -0
- package/build/functions/functionVersionBump.js +62 -0
- package/build/functions/functionVersionBump.js.map +1 -0
- package/build/functions/publishAppFunctions.d.ts +13 -0
- package/build/functions/publishAppFunctions.js +90 -0
- package/build/functions/publishAppFunctions.js.map +1 -0
- package/build/functions/publishWasmBlockStoreFunctions.d.ts +1 -0
- package/build/functions/publishWasmBlockStoreFunctions.js +100 -0
- package/build/functions/publishWasmBlockStoreFunctions.js.map +1 -0
- package/build/functions/utils.d.ts +2 -0
- package/build/functions/utils.js +20 -0
- package/build/functions/utils.js.map +1 -0
- package/build/functions/validateFunctions.d.ts +3 -0
- package/build/functions/validateFunctions.js +23 -0
- package/build/functions/validateFunctions.js.map +1 -0
- package/build/functions/validations.d.ts +31 -0
- package/build/functions/validations.js +140 -0
- package/build/functions/validations.js.map +1 -0
- package/build/interactions/compatibility.d.ts +3 -0
- package/build/interactions/compatibility.js +84 -0
- package/build/interactions/compatibility.js.map +1 -0
- package/build/interactions/diagnostics.d.ts +2 -0
- package/build/interactions/diagnostics.js +23 -0
- package/build/interactions/diagnostics.js.map +1 -0
- package/build/types.d.ts +377 -0
- package/build/types.js +40 -0
- package/build/types.js.map +1 -0
- package/build/utils/arguments.d.ts +2 -0
- package/build/utils/arguments.js +6 -0
- package/build/utils/arguments.js.map +1 -0
- package/build/utils/checkPackageVersion.d.ts +1 -0
- package/build/utils/checkPackageVersion.js +10 -0
- package/build/utils/checkPackageVersion.js.map +1 -0
- package/build/utils/checkUpdateAvailable.d.ts +1 -0
- package/build/utils/checkUpdateAvailable.js +65 -0
- package/build/utils/checkUpdateAvailable.js.map +1 -0
- package/build/utils/fusionAuth.d.ts +21 -0
- package/build/utils/fusionAuth.js +108 -0
- package/build/utils/fusionAuth.js.map +1 -0
- package/build/utils/hash.d.ts +2 -0
- package/build/utils/hash.js +3 -0
- package/build/utils/hash.js.map +1 -0
- package/build/utils/login.d.ts +15 -0
- package/build/utils/login.js +116 -0
- package/build/utils/login.js.map +1 -0
- package/build/utils/pick.d.ts +7 -0
- package/build/utils/pick.js +16 -0
- package/build/utils/pick.js.map +1 -0
- package/build/utils/readFilesByType.d.ts +2 -0
- package/build/utils/readFilesByType.js +23 -0
- package/build/utils/readFilesByType.js.map +1 -0
- package/build/utils/rootDir.d.ts +2 -0
- package/build/utils/rootDir.js +4 -0
- package/build/utils/rootDir.js.map +1 -0
- package/build/utils/serveComponentSet.d.ts +3 -0
- package/build/utils/serveComponentSet.js +52 -0
- package/build/utils/serveComponentSet.js.map +1 -0
- package/build/utils/transpile.d.ts +2 -0
- package/build/utils/transpile.js +25 -0
- package/build/utils/transpile.js.map +1 -0
- package/build/utils/uploadBlob.d.ts +24 -0
- package/build/utils/uploadBlob.js +56 -0
- package/build/utils/uploadBlob.js.map +1 -0
- package/build/utils/validation.d.ts +4 -0
- package/build/utils/validation.js +74 -0
- package/build/utils/validation.js.map +1 -0
- package/build/validations/component.d.ts +3 -0
- package/build/validations/component.js +56 -0
- package/build/validations/component.js.map +1 -0
- package/build/validations/constants.d.ts +16 -0
- package/build/validations/constants.js +208 -0
- package/build/validations/constants.js.map +1 -0
- package/build/validations/function-block-validations/index.d.ts +22 -0
- package/build/validations/function-block-validations/index.js +72 -0
- package/build/validations/function-block-validations/index.js.map +1 -0
- package/build/validations/interaction.d.ts +3 -0
- package/build/validations/interaction.js +22 -0
- package/build/validations/interaction.js.map +1 -0
- package/build/validations/prefab/action.d.ts +2 -0
- package/build/validations/prefab/action.js +99 -0
- package/build/validations/prefab/action.js.map +1 -0
- package/build/validations/prefab/component.d.ts +10 -0
- package/build/validations/prefab/component.js +290 -0
- package/build/validations/prefab/component.js.map +1 -0
- package/build/validations/prefab/componentOption.d.ts +3 -0
- package/build/validations/prefab/componentOption.js +176 -0
- package/build/validations/prefab/componentOption.js.map +1 -0
- package/build/validations/prefab/interaction.d.ts +2 -0
- package/build/validations/prefab/interaction.js +38 -0
- package/build/validations/prefab/interaction.js.map +1 -0
- package/build/validations/prefab/linkedOption.d.ts +3 -0
- package/build/validations/prefab/linkedOption.js +39 -0
- package/build/validations/prefab/linkedOption.js.map +1 -0
- package/build/validations/prefab/linkedPartial.d.ts +3 -0
- package/build/validations/prefab/linkedPartial.js +30 -0
- package/build/validations/prefab/linkedPartial.js.map +1 -0
- package/build/validations/prefab/variable.d.ts +3 -0
- package/build/validations/prefab/variable.js +36 -0
- package/build/validations/prefab/variable.js.map +1 -0
- package/build/validations/prefab.d.ts +17 -0
- package/build/validations/prefab.js +66 -0
- package/build/validations/prefab.js.map +1 -0
- package/build/validations/styles.d.ts +6 -0
- package/build/validations/styles.js +103 -0
- package/build/validations/styles.js.map +1 -0
- package/package.json +38 -40
- package/assets/app-functions/templates/test/helpers.js +0 -3
- package/assets/app-functions/templates/test/say-hello.test.js +0 -4
- package/assets/functions/packer/package.json +0 -9
- package/assets/functions/packer/webpack.config.js +0 -12
- package/assets/functions/templates/functions.json +0 -14
- package/assets/functions/templates/package.json +0 -11
- package/assets/functions/templates/src/all-users.js +0 -14
- package/assets/functions/templates/src/get-json.js +0 -9
- package/assets/functions/templates/src/index.js +0 -5
- package/assets/functions/templates/src/say-hello.js +0 -13
- package/build/src/bb-blocks-new.js +0 -6789
- package/build/src/bb-blocks-publish.js +0 -32641
- package/build/src/bb-blocks-release.js +0 -15528
- package/build/src/bb-blocks.js +0 -2149
- package/build/src/bb-bundle-init.js +0 -6034
- package/build/src/bb-bundle.js +0 -2636
- package/build/src/bb-components-build.js +0 -240546
- package/build/src/bb-components-create.js +0 -6045
- package/build/src/bb-components-generate.js +0 -6173
- package/build/src/bb-components-publish-bundle.js +0 -43346
- package/build/src/bb-components-publish.js +0 -43353
- package/build/src/bb-components-serve.js +0 -15326
- package/build/src/bb-components.js +0 -2157
- package/build/src/bb-functions-build.js +0 -4284
- package/build/src/bb-functions-bump.js +0 -14582
- package/build/src/bb-functions-init.js +0 -4749
- package/build/src/bb-functions-login.js +0 -15440
- package/build/src/bb-functions-logout.js +0 -15434
- package/build/src/bb-functions-new.js +0 -9144
- package/build/src/bb-functions-publish.js +0 -86693
- package/build/src/bb-functions-validate.js +0 -22160
- package/build/src/bb-functions.js +0 -2159
- package/build/src/bb.js +0 -2740
- /package/assets/app-functions/{templates → js-template}/.app-functions +0 -0
- /package/assets/app-functions/{templates → js-template}/functions/say-hello/1.0/function.json +0 -0
- /package/assets/app-functions/{templates → js-template}/functions/say-hello/1.0/index.js +0 -0
- /package/assets/app-functions/{templates → js-template}/package.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
const availableCommands = [
|
|
3
|
+
'bump',
|
|
4
|
+
'init',
|
|
5
|
+
'login',
|
|
6
|
+
'logout',
|
|
7
|
+
'new',
|
|
8
|
+
'publish',
|
|
9
|
+
'validate',
|
|
10
|
+
];
|
|
11
|
+
const program = new Command();
|
|
12
|
+
program
|
|
13
|
+
.usage(`<${availableCommands.join('|')}>`)
|
|
14
|
+
.name('bb functions')
|
|
15
|
+
.command('bump', 'increase the major/minor version of a specific function')
|
|
16
|
+
.command('init', 'initialize functions project')
|
|
17
|
+
.command('login', 'login using the same credentials as the IDE')
|
|
18
|
+
.command('logout', 'remove all tokens used to authenticate with the APIs')
|
|
19
|
+
.command('new [function-name]', 'Initialize a new function')
|
|
20
|
+
.command('publish', 'publish functions of current working directory')
|
|
21
|
+
.command('validate', 'validate functions of current working directory')
|
|
22
|
+
.on('command:*', ([command]) => {
|
|
23
|
+
if (!availableCommands.includes(command)) {
|
|
24
|
+
console.error('Invalid command: %s\n', command);
|
|
25
|
+
program.outputHelp();
|
|
26
|
+
}
|
|
27
|
+
})
|
|
28
|
+
.parse(process.argv);
|
|
29
|
+
//# sourceMappingURL=bb-functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb-functions.js","sourceRoot":"","sources":["../src/bb-functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,iBAAiB,GAAuB;IAC5C,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,UAAU;CACX,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACzC,IAAI,CAAC,cAAc,CAAC;KACpB,OAAO,CAAC,MAAM,EAAE,yDAAyD,CAAC;KAC1E,OAAO,CAAC,MAAM,EAAE,8BAA8B,CAAC;KAC/C,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,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAqB,EAAQ,EAAE;IACvD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,UAAU,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/build/bb.d.ts
ADDED
package/build/bb.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import pkg from '../package.json';
|
|
5
|
+
import {} from './types';
|
|
6
|
+
const availableCommands = [
|
|
7
|
+
'blocks',
|
|
8
|
+
'components',
|
|
9
|
+
'functions',
|
|
10
|
+
'bundle',
|
|
11
|
+
'help',
|
|
12
|
+
];
|
|
13
|
+
const program = new Command();
|
|
14
|
+
program
|
|
15
|
+
.description('Betty Blocks CLI')
|
|
16
|
+
.version(pkg.version, '-v, --version')
|
|
17
|
+
.command('components [cmd]', 'manage your component sets')
|
|
18
|
+
.command('blocks [cmd]', 'manage your blocks')
|
|
19
|
+
.command('functions [cmd]', 'manage your custom functions')
|
|
20
|
+
.command('bundle [cmd]', 'manage your vendor bundle')
|
|
21
|
+
.on('command:*', ([command]) => {
|
|
22
|
+
if (!availableCommands.includes(command)) {
|
|
23
|
+
throw new Error(chalk.red(`\nInvalid command: ${command}\n`));
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
.parse(process.argv);
|
|
27
|
+
//# sourceMappingURL=bb.js.map
|
package/build/bb.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface Block {
|
|
2
|
+
dependencies: string[];
|
|
3
|
+
functions: string[];
|
|
4
|
+
includes: string[];
|
|
5
|
+
}
|
|
6
|
+
declare const createPackageJson: (name: string, rootPackageJson: string, dependencies: string[]) => string;
|
|
7
|
+
declare const blockDefinitions: (blocksDir: string) => Promise<string[]>;
|
|
8
|
+
declare const blockDefinitionPath: (blockPath: string, blockName: string) => string;
|
|
9
|
+
declare const newBlockDefinition: (blocksDir: string, blockName: string) => string;
|
|
10
|
+
export { blockDefinitionPath, blockDefinitions, createPackageJson, newBlockDefinition, };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Glob } from 'bun';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { pick } from '../utils/pick';
|
|
5
|
+
/* @doc createPackageJson
|
|
6
|
+
Returns an object containing all data needed for the block package json
|
|
7
|
+
*/
|
|
8
|
+
const createPackageJson = (name, rootPackageJson, dependencies) => {
|
|
9
|
+
const rootDependencies = pick(fs.readJsonSync(rootPackageJson).dependencies, dependencies);
|
|
10
|
+
const packageJson = JSON.stringify({
|
|
11
|
+
dependencies: rootDependencies,
|
|
12
|
+
name,
|
|
13
|
+
private: 'true',
|
|
14
|
+
version: '1.0.0',
|
|
15
|
+
}, null, 2);
|
|
16
|
+
return packageJson;
|
|
17
|
+
};
|
|
18
|
+
/* @doc functionDirs
|
|
19
|
+
Returns a list of blocks.
|
|
20
|
+
*/
|
|
21
|
+
const blockFiles = async (blockDir) => {
|
|
22
|
+
const glob = new Glob('*.json');
|
|
23
|
+
const matches = [];
|
|
24
|
+
for await (const file of glob.scan(path.join(blockDir).replace(/\\/g, '/'))) {
|
|
25
|
+
matches.push(path.join(blockDir, file));
|
|
26
|
+
}
|
|
27
|
+
return matches;
|
|
28
|
+
};
|
|
29
|
+
/* @doc blockDefinitions
|
|
30
|
+
Returns an array containing all block definitions
|
|
31
|
+
inside the given blocksDir.
|
|
32
|
+
*/
|
|
33
|
+
const blockDefinitions = async (blocksDir) => {
|
|
34
|
+
const files = await blockFiles(blocksDir);
|
|
35
|
+
return files.map((blocks) => blocks);
|
|
36
|
+
};
|
|
37
|
+
/* @doc blockDefinitionPath
|
|
38
|
+
Expands the block dir with a json file with the given blockname.
|
|
39
|
+
*/
|
|
40
|
+
const blockDefinitionPath = (blockPath, blockName) => path.join(blockPath, `${blockName}.json`);
|
|
41
|
+
/* @doc newBlockDefinition
|
|
42
|
+
If block does not exists it will create a new json file with the given blockname.
|
|
43
|
+
*/
|
|
44
|
+
const newBlockDefinition = (blocksDir, blockName) => {
|
|
45
|
+
try {
|
|
46
|
+
const existingBlock = fs.existsSync(blockDefinitionPath(blocksDir, blockName));
|
|
47
|
+
if (existingBlock)
|
|
48
|
+
return 'Block already exists';
|
|
49
|
+
fs.mkdirpSync(blocksDir);
|
|
50
|
+
fs.writeJSONSync(blockDefinitionPath(blocksDir, blockName), {
|
|
51
|
+
dependencies: [],
|
|
52
|
+
functions: [],
|
|
53
|
+
includes: [],
|
|
54
|
+
}, { spaces: 2 });
|
|
55
|
+
return `blocks/${blockName}.json created`;
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
throw new Error(`could not initialize new block ${blocksDir}: ${err}`);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
export { blockDefinitionPath, blockDefinitions, createPackageJson, newBlockDefinition, };
|
|
62
|
+
//# sourceMappingURL=blockDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockDefinitions.js","sourceRoot":"","sources":["../../src/blocks/blockDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,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,KAAK,EAAE,QAAgB,EAAqB,EAAE;IAC/D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;EAGE;AACF,MAAM,gBAAgB,GAAG,KAAK,EAAE,SAAiB,EAAqB,EAAE;IACtE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import fetch, { fileFromSync, FormData } from 'node-fetch';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import Config from '../functions/config';
|
|
5
|
+
import { functionDefinitions, stringifyDefinitions, whitelistedFunctions, } from '../functions/functionDefinitions';
|
|
6
|
+
import FusionAuth from '../utils/login';
|
|
7
|
+
const workingDir = process.cwd();
|
|
8
|
+
const uploadBlock = async (blockDefinitionsFile, functionsJson, config) => {
|
|
9
|
+
const fusionAuth = new FusionAuth(config);
|
|
10
|
+
const form = new FormData();
|
|
11
|
+
form.append('name', path.basename(blockDefinitionsFile, '.zip'));
|
|
12
|
+
form.append('functions', functionsJson);
|
|
13
|
+
form.append('file', fileFromSync(blockDefinitionsFile));
|
|
14
|
+
const applicationId = await config.applicationId();
|
|
15
|
+
if (!applicationId) {
|
|
16
|
+
throw new Error("Couldn't publish block(s), Error: application id not found");
|
|
17
|
+
}
|
|
18
|
+
const url = `${config.blockstoreApiUrl}/blocks/publish`;
|
|
19
|
+
return fetch(url, {
|
|
20
|
+
agent: config.agent,
|
|
21
|
+
body: form,
|
|
22
|
+
headers: {
|
|
23
|
+
Accept: 'application/json',
|
|
24
|
+
ApplicationId: applicationId,
|
|
25
|
+
Authorization: `Bearer ${fusionAuth.jwt()}`,
|
|
26
|
+
},
|
|
27
|
+
method: 'POST',
|
|
28
|
+
}).then(async (res) => {
|
|
29
|
+
if (res.status === 401 || res.status === 403) {
|
|
30
|
+
await fusionAuth.ensureLogin();
|
|
31
|
+
return uploadBlock(blockDefinitionsFile, functionsJson, config);
|
|
32
|
+
}
|
|
33
|
+
if (res.status !== 201) {
|
|
34
|
+
const error = await res.text();
|
|
35
|
+
throw new Error(`Couldn't publish block(s), Error: ${res.status}, ${error.match('## Connection details') ? 'Something went wrong' : error}`);
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const createAndPublishFiles = async (config, functions, zip) => {
|
|
41
|
+
const functionsDir = path.join(workingDir, 'functions');
|
|
42
|
+
const funcDefinitions = await functionDefinitions(functionsDir);
|
|
43
|
+
const blockFunctions = whitelistedFunctions(funcDefinitions, functions);
|
|
44
|
+
const functionsJson = stringifyDefinitions(blockFunctions);
|
|
45
|
+
await uploadBlock(zip, functionsJson, config);
|
|
46
|
+
};
|
|
47
|
+
const publishBlocks = async (functions, zip) => {
|
|
48
|
+
const config = new Config();
|
|
49
|
+
console.log(chalk.bold(`\nPublishing to ${config.host} (${config.zone})`));
|
|
50
|
+
await createAndPublishFiles(config, functions, zip);
|
|
51
|
+
console.log(chalk.green.underline(`✔ Your blocks are published to the block store.`));
|
|
52
|
+
};
|
|
53
|
+
export default publishBlocks;
|
|
54
|
+
//# sourceMappingURL=publishBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishBlocks.js","sourceRoot":"","sources":["../../src/blocks/publishBlocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import fetch, {} from 'node-fetch';
|
|
2
|
+
import Config from '../functions/config';
|
|
3
|
+
import FusionAuth from '../utils/login';
|
|
4
|
+
const GET_DEV_BLOCKS = '/blocks/my-dev-blocks';
|
|
5
|
+
const POST_RELEASE_BLOCKS = '/blocks/release';
|
|
6
|
+
const sendBlockstoreRequest = async ({ urlPath, method, body, config, fusionAuth, applicationId, }) => {
|
|
7
|
+
const url = `${config.blockstoreApiUrl}${urlPath}`;
|
|
8
|
+
return fetch(url, {
|
|
9
|
+
agent: config.agent,
|
|
10
|
+
body,
|
|
11
|
+
headers: {
|
|
12
|
+
Accept: 'application/json',
|
|
13
|
+
ApplicationId: applicationId,
|
|
14
|
+
Authorization: `Bearer ${fusionAuth.jwt()}`,
|
|
15
|
+
'content-type': 'application/json',
|
|
16
|
+
},
|
|
17
|
+
method,
|
|
18
|
+
}).then(async (res) => {
|
|
19
|
+
if (res.status === 401 || res.status === 403) {
|
|
20
|
+
await fusionAuth.ensureLogin();
|
|
21
|
+
return sendBlockstoreRequest({
|
|
22
|
+
applicationId,
|
|
23
|
+
body,
|
|
24
|
+
config,
|
|
25
|
+
fusionAuth,
|
|
26
|
+
method,
|
|
27
|
+
urlPath,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return res;
|
|
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,
|
|
40
|
+
});
|
|
41
|
+
const releaseBlocksInBlockstore = async ({ blockIds, config, fusionAuth, applicationId, }) => {
|
|
42
|
+
const response = await sendBlockstoreRequest({
|
|
43
|
+
applicationId,
|
|
44
|
+
body: JSON.stringify({ block_ids: blockIds }),
|
|
45
|
+
config,
|
|
46
|
+
fusionAuth,
|
|
47
|
+
method: 'POST',
|
|
48
|
+
urlPath: POST_RELEASE_BLOCKS,
|
|
49
|
+
});
|
|
50
|
+
if (!response.ok) {
|
|
51
|
+
await response
|
|
52
|
+
.text()
|
|
53
|
+
.then((text) => console.error(`Failed to release blocks in Blockstore: ${text}`));
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return true;
|
|
57
|
+
};
|
|
58
|
+
const releaseBlocks = async ({ all, blockIds, }) => {
|
|
59
|
+
const config = new Config();
|
|
60
|
+
const fusionAuth = new FusionAuth(config);
|
|
61
|
+
const applicationId = await config.applicationId();
|
|
62
|
+
if (!applicationId) {
|
|
63
|
+
throw new Error("Couldn't publish block(s), Error: application id not found");
|
|
64
|
+
}
|
|
65
|
+
let blockIdsToBeReleased = blockIds;
|
|
66
|
+
if (all) {
|
|
67
|
+
const res = await fetchAllDevBlocks(config, fusionAuth, applicationId);
|
|
68
|
+
blockIdsToBeReleased = (await res.json());
|
|
69
|
+
}
|
|
70
|
+
return releaseBlocksInBlockstore({
|
|
71
|
+
applicationId,
|
|
72
|
+
blockIds: blockIdsToBeReleased,
|
|
73
|
+
config,
|
|
74
|
+
fusionAuth,
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
export default releaseBlocks;
|
|
78
|
+
//# sourceMappingURL=releaseBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseBlocks.js","sourceRoot":"","sources":["../../src/blocks/releaseBlocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type BlockBlobUploadResponseExtended } from '../utils/uploadBlob';
|
|
2
|
+
interface UploadProps {
|
|
3
|
+
blobContentType: string;
|
|
4
|
+
bucketName: string;
|
|
5
|
+
fileName: string;
|
|
6
|
+
objects: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const publish: ({ blobContentType, bucketName, fileName, objects, }: UploadProps) => Promise<BlockBlobUploadResponseExtended>;
|
|
9
|
+
export declare const validateBucketName: (name: string) => void;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import uploadBlob, {} from '../utils/uploadBlob';
|
|
3
|
+
const upload = async ({ blobContentType, bucketName, fileName, objects, }) => {
|
|
4
|
+
try {
|
|
5
|
+
return await uploadBlob({
|
|
6
|
+
blobContainerName: bucketName,
|
|
7
|
+
blobContent: objects,
|
|
8
|
+
blobContentType,
|
|
9
|
+
blobName: fileName,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
const defaultMessage = 'There was an error trying to publish your component set';
|
|
14
|
+
const errorObject = error;
|
|
15
|
+
const { body, message } = errorObject;
|
|
16
|
+
if (!body) {
|
|
17
|
+
throw new Error(chalk.red([defaultMessage, message].join('\n')));
|
|
18
|
+
}
|
|
19
|
+
const { code, message: bodyMessage } = body;
|
|
20
|
+
const extraMessage = code === 'AuthenticationFailed'
|
|
21
|
+
? 'Make sure your azure blob account and key are correct'
|
|
22
|
+
: bodyMessage;
|
|
23
|
+
throw new Error(chalk.red([defaultMessage, extraMessage].join('\n')));
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export const publish = async ({ blobContentType, bucketName, fileName, objects, }) => {
|
|
27
|
+
console.log(`Publishing ${fileName}.`);
|
|
28
|
+
return upload({
|
|
29
|
+
blobContentType,
|
|
30
|
+
bucketName,
|
|
31
|
+
fileName,
|
|
32
|
+
objects,
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
export const validateBucketName = (name) => {
|
|
36
|
+
if (!name || typeof name !== 'string' || !name.length) {
|
|
37
|
+
throw new Error(chalk.red('\n-b or --bucket [name] is required\n'));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=bb-components-functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb-components-functions.js","sourceRoot":"","sources":["../../src/components/bb-components-functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,UAAU,EAAE,EAElB,MAAM,qBAAqB,CAAC;AAS7B,MAAM,MAAM,GAAG,KAAK,EAAE,EACpB,eAAe,EACf,UAAU,EACV,QAAQ,EACR,OAAO,GACK,EAA4C,EAAE;IAC1D,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC;YACtB,iBAAiB,EAAE,UAAU;YAC7B,WAAW,EAAE,OAAO;YACpB,eAAe;YACf,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,GAClB,yDAAyD,CAAC;QAE5D,MAAM,WAAW,GAAG,KAGnB,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAEtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAE5C,MAAM,YAAY,GAChB,IAAI,KAAK,sBAAsB;YAC7B,CAAC,CAAC,uDAAuD;YACzD,CAAC,CAAC,WAAW,CAAC;QAElB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,EAC5B,eAAe,EACf,UAAU,EACV,QAAQ,EACR,OAAO,GACK,EAA4C,EAAE;IAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,GAAG,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC;QACZ,eAAe;QACf,UAAU;QACV,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAQ,EAAE;IACvD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type Node, type ObjectLiteralElementLike } from 'typescript';
|
|
2
|
+
export declare const walkCompilerAstAndFindComments: (node: Node, foundComments: object[]) => void;
|
|
3
|
+
export declare const createLiteralObjectExpression: (params: object[]) => ObjectLiteralElementLike[];
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { explainSync } from 'jsdoc-api';
|
|
2
|
+
import { factory, getLeadingCommentRanges, getTrailingCommentRanges, SyntaxKind, } from 'typescript';
|
|
3
|
+
/**
|
|
4
|
+
* Retrieves the JSDoc-style comments associated with a specific AST node.
|
|
5
|
+
*
|
|
6
|
+
* Based on ts.getJSDocCommentRanges() from the compiler.
|
|
7
|
+
* https://github.com/microsoft/TypeScript/blob/v3.0.3/src/compiler/utilities.ts#L924
|
|
8
|
+
*/
|
|
9
|
+
const getJSDocCommentRanges = (node, text) => {
|
|
10
|
+
const commentRanges = [];
|
|
11
|
+
const { Parameter, TypeParameter, FunctionExpression, ArrowFunction, ParenthesizedExpression, } = SyntaxKind;
|
|
12
|
+
switch (node.kind) {
|
|
13
|
+
case Parameter:
|
|
14
|
+
case TypeParameter:
|
|
15
|
+
case FunctionExpression:
|
|
16
|
+
case ArrowFunction:
|
|
17
|
+
case ParenthesizedExpression:
|
|
18
|
+
commentRanges.push(...(getTrailingCommentRanges(text, node.pos) ?? []));
|
|
19
|
+
break;
|
|
20
|
+
default:
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
commentRanges.push(...(getLeadingCommentRanges(text, node.pos) ?? []));
|
|
24
|
+
// True if the comment starts with '/**' but not if it is '/**/'
|
|
25
|
+
return commentRanges.filter((comment) => text.charCodeAt(comment.pos + 1) ===
|
|
26
|
+
0x2a /* ts.CharacterCodes.asterisk */ &&
|
|
27
|
+
text.charCodeAt(comment.pos + 2) ===
|
|
28
|
+
0x2a /* ts.CharacterCodes.asterisk */ &&
|
|
29
|
+
text.charCodeAt(comment.pos + 3) !== 0x2f /* ts.CharacterCodes.slash */);
|
|
30
|
+
};
|
|
31
|
+
export const walkCompilerAstAndFindComments = (node, foundComments) => {
|
|
32
|
+
// The TypeScript AST doesn't store code comments directly. If you want to find *every* comment,
|
|
33
|
+
// you would need to rescan the SourceFile tokens similar to how tsutils.forEachComment() works:
|
|
34
|
+
// https://github.com/ajafff/tsutils/blob/v3.0.0/util/util.ts#L453
|
|
35
|
+
//
|
|
36
|
+
// However, for this demo we are modeling a tool that discovers declarations and then analyzes their doc comments,
|
|
37
|
+
// so we only care about TSDoc that would conventionally be associated with an interesting AST node.
|
|
38
|
+
const buffer = node.getSourceFile().getFullText(); // don't use getText() here!
|
|
39
|
+
// Only consider nodes that are part of a declaration form. Without this, we could discover
|
|
40
|
+
// the same comment twice (e.g. for a MethodDeclaration and its PublicKeyword).
|
|
41
|
+
// Find "/** */" style comments associated with this node.
|
|
42
|
+
// Note that this reinvokes the compiler's scanner -- the result is not cached.
|
|
43
|
+
const comments = getJSDocCommentRanges(node, buffer);
|
|
44
|
+
comments.forEach((c) => {
|
|
45
|
+
const source = buffer.slice(c.pos, c.end);
|
|
46
|
+
const comment = explainSync({ source });
|
|
47
|
+
const [{ name, params, returns }] = comment;
|
|
48
|
+
const parameters = params.reduce((acc, cur) => ({
|
|
49
|
+
...acc,
|
|
50
|
+
[cur.name]: cur.type.names,
|
|
51
|
+
}), {});
|
|
52
|
+
const returnType = returns.reduce((acc, curr) => acc.concat(curr.type.names), []);
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
const hasComment = foundComments.some((f) => Boolean(f[name]));
|
|
56
|
+
if (!hasComment) {
|
|
57
|
+
foundComments.push({ [name]: { parameters, returnType } });
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return node.forEachChild((child) => walkCompilerAstAndFindComments(child, foundComments));
|
|
61
|
+
};
|
|
62
|
+
const createParams = (params) => {
|
|
63
|
+
const { createArrayLiteralExpression, createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } = factory;
|
|
64
|
+
return Object.entries(params).map(([key, value]) => {
|
|
65
|
+
const result = Array.isArray(value)
|
|
66
|
+
? createArrayLiteralExpression(value.map((n) => createStringLiteral(n)))
|
|
67
|
+
: createObjectLiteralExpression(createParams(value));
|
|
68
|
+
return createPropertyAssignment(createStringLiteral(key), result);
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
export const createLiteralObjectExpression = (params) => {
|
|
72
|
+
const { createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } = factory;
|
|
73
|
+
return params.map((param) => {
|
|
74
|
+
const [[key, value]] = Object.entries(param);
|
|
75
|
+
return createPropertyAssignment(createStringLiteral(key), createObjectLiteralExpression(createParams(value)));
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/components/comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { isCallExpression, isIdentifier, isMethodDeclaration, isPropertyAccessExpression, isSourceFile, transpileModule, visitEachChild, visitNode, } from 'typescript';
|
|
2
|
+
import { createLiteralObjectExpression, walkCompilerAstAndFindComments, } from './comments';
|
|
3
|
+
const isComponentCompatibility = (value) => {
|
|
4
|
+
if (typeof value === 'object' && value !== null) {
|
|
5
|
+
const { functions, triggers } = value;
|
|
6
|
+
if (Array.isArray(functions) && Array.isArray(triggers)) {
|
|
7
|
+
return (functions.every((f) => typeof f === 'string') &&
|
|
8
|
+
triggers.every((t) => typeof t === 'string'));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
const addCompatibility = (name, collection, node) => {
|
|
14
|
+
if ((isIdentifier(node) && node.getText() === name) ||
|
|
15
|
+
(isPropertyAccessExpression(node) &&
|
|
16
|
+
(node.getText() === `B.${name}` || node.getText() === `.${name}`))) {
|
|
17
|
+
if (isCallExpression(node.parent)) {
|
|
18
|
+
collection.push(node.parent.getChildAt(2).getChildAt(0).getText().replace(/'/g, ''));
|
|
19
|
+
}
|
|
20
|
+
if (isMethodDeclaration(node.parent)) {
|
|
21
|
+
collection.push(node.parent.getChildAt(2).getChildAt(1).getText().replace(/'/g, ''));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const compatibilityTransformer = () => (context) => {
|
|
26
|
+
const functions = [];
|
|
27
|
+
const triggers = [];
|
|
28
|
+
const comments = [];
|
|
29
|
+
const { createArrayLiteralExpression, createExpressionStatement, createObjectLiteralExpression, createPropertyAssignment, createStringLiteral, updateSourceFile, } = context.factory;
|
|
30
|
+
const visit = (node) => {
|
|
31
|
+
addCompatibility('defineFunction', functions, node);
|
|
32
|
+
addCompatibility('triggerEvent', triggers, node); // TODO: investigate inline triggers
|
|
33
|
+
return visitEachChild(node, visit, context);
|
|
34
|
+
};
|
|
35
|
+
return (node) => {
|
|
36
|
+
visitNode(node, visit);
|
|
37
|
+
walkCompilerAstAndFindComments(node, comments);
|
|
38
|
+
if (isSourceFile(node)) {
|
|
39
|
+
return updateSourceFile(node, [
|
|
40
|
+
createExpressionStatement(createObjectLiteralExpression([
|
|
41
|
+
createPropertyAssignment(createStringLiteral('functions'), createArrayLiteralExpression(functions.map((n) => createStringLiteral(n)))),
|
|
42
|
+
createPropertyAssignment(createStringLiteral('triggers'), createArrayLiteralExpression(triggers.map((n) => createStringLiteral(n)))),
|
|
43
|
+
createPropertyAssignment(createStringLiteral('interactions'), createObjectLiteralExpression(createLiteralObjectExpression(comments))),
|
|
44
|
+
])),
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
return node;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export default (code) => {
|
|
51
|
+
const { outputText } = transpileModule(code, {
|
|
52
|
+
transformers: { before: [compatibilityTransformer()] },
|
|
53
|
+
});
|
|
54
|
+
const component = JSON.parse(outputText.replace(/^[^{]+/, '').replace(/[^}]+$/, ''));
|
|
55
|
+
if (isComponentCompatibility(component)) {
|
|
56
|
+
return component;
|
|
57
|
+
}
|
|
58
|
+
throw new TypeError('object is not a ComponentCompatibility');
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/components/compatibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type CustomTransformerFactory, type SourceFile, type TransformerFactory } from 'typescript';
|
|
2
|
+
export declare const transpile: (code: string, before: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]) => string;
|
|
3
|
+
export declare const doTranspile: (code: string) => string;
|
|
@@ -0,0 +1,36 @@
|
|
|
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, {
|
|
6
|
+
compilerOptions: {
|
|
7
|
+
allowJs: true,
|
|
8
|
+
checkJs: true,
|
|
9
|
+
downlevelIteration: true,
|
|
10
|
+
jsx: React,
|
|
11
|
+
// Requires tslib
|
|
12
|
+
noEmitHelpers: true,
|
|
13
|
+
target: ES5,
|
|
14
|
+
},
|
|
15
|
+
reportDiagnostics: true,
|
|
16
|
+
transformers: {
|
|
17
|
+
before,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
let messageText = '';
|
|
21
|
+
if (diagnostics) {
|
|
22
|
+
diagnostics.forEach((diagnostic) => {
|
|
23
|
+
if (diagnostic.file) {
|
|
24
|
+
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start ?? 0);
|
|
25
|
+
messageText += ` ${diagnostic.file.fileName} (${line + 1},${character + 1})`;
|
|
26
|
+
}
|
|
27
|
+
messageText += `: ${flattenDiagnosticMessageText(diagnostic.messageText, '\n')}`;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
if (messageText) {
|
|
31
|
+
throw new Error(messageText);
|
|
32
|
+
}
|
|
33
|
+
return outputText;
|
|
34
|
+
};
|
|
35
|
+
export const doTranspile = (code) => transpile(code, []);
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components-build/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export const reportDiagnostics = (diagnostics) => {
|
|
3
|
+
diagnostics.forEach((diagnostic) => {
|
|
4
|
+
let message = 'Error';
|
|
5
|
+
if (diagnostic.file) {
|
|
6
|
+
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start ?? 0);
|
|
7
|
+
message += ` ${diagnostic.file.fileName} (${line + 1},${character + 1})`;
|
|
8
|
+
}
|
|
9
|
+
message += `: ${ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n')}`;
|
|
10
|
+
console.error(`\u001b[31m${message}\u001b[0m`);
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=reportDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportDiagnostics.js","sourceRoot":"","sources":["../../src/components-build/reportDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAA4B,EAAQ,EAAE;IACtE,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,6BAA6B,CACvE,UAAU,CAAC,KAAK,IAAI,CAAC,CACtB,CAAC;YACF,OAAO,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,KAAK,EAAE,CAAC,4BAA4B,CAC7C,UAAU,CAAC,WAAW,EACtB,IAAI,CACL,EAAE,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BuildStyle, BuildStyleDefinition, PrefabComponent, StyleDefinition } from '../types';
|
|
2
|
+
export declare const readStyles: (rootDir: string) => Promise<StyleDefinition[]>;
|
|
3
|
+
export declare const buildStyle: ({ states, basis, ...style }: StyleDefinition) => BuildStyleDefinition;
|
|
4
|
+
export declare const buildReferenceStyle: (style: PrefabComponent["style"] | undefined) => BuildStyle | undefined;
|