@betty-blocks/cli 25.97.0 → 25.98.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/build/bb-blocks-publish.js +18 -10
- package/build/bb-blocks-publish.js.map +1 -1
- package/build/bb-blocks-release.js +32 -0
- package/build/bb-blocks-release.js.map +1 -0
- package/build/bb-blocks.js +2 -1
- package/build/bb-blocks.js.map +1 -1
- package/build/blocks/releaseBlocks.js +69 -0
- package/build/blocks/releaseBlocks.js.map +1 -0
- package/package.json +1 -1
|
@@ -23,7 +23,7 @@ const blockDefinitions_1 = require("./blocks/blockDefinitions");
|
|
|
23
23
|
const functionDefinitions_1 = require("./functions/functionDefinitions");
|
|
24
24
|
const publishBlocks_1 = __importDefault(require("./blocks/publishBlocks"));
|
|
25
25
|
const function_block_validations_1 = require("./validations/function-block-validations");
|
|
26
|
-
commander_1.default.name('bb blocks publish').parse(process.argv);
|
|
26
|
+
commander_1.default.option('--all').name('bb blocks publish').parse(process.argv);
|
|
27
27
|
const workingDir = process.cwd();
|
|
28
28
|
const baseBlocksPath = path_1.default.join(workingDir, 'blocks');
|
|
29
29
|
const blocks = blockDefinitions_1.blockDefinitions(baseBlocksPath);
|
|
@@ -60,15 +60,23 @@ void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
60
60
|
title: path_1.default.basename(block, '.json'),
|
|
61
61
|
value: block,
|
|
62
62
|
}));
|
|
63
|
-
const {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
const { all } = commander_1.default.opts();
|
|
64
|
+
let selected = [];
|
|
65
|
+
if (all) {
|
|
66
|
+
selected = blocks;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const results = (yield prompts_1.default([
|
|
70
|
+
{
|
|
71
|
+
type: 'multiselect',
|
|
72
|
+
name: 'selected',
|
|
73
|
+
message: 'Which blocks do you want to publish?',
|
|
74
|
+
choices,
|
|
75
|
+
instructions: false,
|
|
76
|
+
},
|
|
77
|
+
]));
|
|
78
|
+
selected = results.selected;
|
|
79
|
+
}
|
|
72
80
|
selected.forEach((jsonFile) => {
|
|
73
81
|
// eslint-disable-next-line no-void
|
|
74
82
|
void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb-blocks-publish.js","sourceRoot":"","sources":["../src/bb-blocks-publish.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,wDAA0B;AAC1B,gDAAwB;AACxB,0DAAgC;AAChC,sDAA8B;AAC9B,sDAA6B;AAC7B,kDAA0B;AAE1B,gEAImC;AACnC,yEAIyC;AACzC,2EAAmD;AAEnD,yFAGkD;AAElD,mBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bb-blocks-publish.js","sourceRoot":"","sources":["../src/bb-blocks-publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
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 commander_1 = __importDefault(require("commander"));
|
|
16
|
+
const releaseBlocks_1 = __importDefault(require("./blocks/releaseBlocks"));
|
|
17
|
+
commander_1.default
|
|
18
|
+
.usage('[options] [blockIds...]')
|
|
19
|
+
.option('-a, --all', 'release all dev blocks that are attached to your account')
|
|
20
|
+
.name('bb blocks release')
|
|
21
|
+
.parse(process.argv);
|
|
22
|
+
const { all } = commander_1.default.opts();
|
|
23
|
+
const blockIds = commander_1.default.args;
|
|
24
|
+
if (!all && !blockIds.length) {
|
|
25
|
+
console.error('No block IDs provided');
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
// eslint-disable-next-line no-void
|
|
29
|
+
void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
yield releaseBlocks_1.default({ all, blockIds });
|
|
31
|
+
}))();
|
|
32
|
+
//# sourceMappingURL=bb-blocks-release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb-blocks-release.js","sourceRoot":"","sources":["../src/bb-blocks-release.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAgC;AAChC,2EAAmD;AAEnD,mBAAO;KACJ,KAAK,CAAC,yBAAyB,CAAC;KAChC,MAAM,CACL,WAAW,EACX,0DAA0D,CAC3D;KACA,IAAI,CAAC,mBAAmB,CAAC;KACzB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,EAAE,GAAG,EAAE,GAAsB,mBAAO,CAAC,IAAI,EAAE,CAAC;AAClD,MAAM,QAAQ,GAAG,mBAAO,CAAC,IAAI,CAAC;AAE9B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,mCAAmC;AACnC,KAAK,CAAC,GAAwB,EAAE;IAC9B,MAAM,uBAAa,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzC,CAAC,CAAA,CAAC,EAAE,CAAC"}
|
package/build/bb-blocks.js
CHANGED
|
@@ -6,13 +6,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const commander_1 = __importDefault(require("commander"));
|
|
8
8
|
/* setup */
|
|
9
|
-
const availableCommands = ['publish', 'new'];
|
|
9
|
+
const availableCommands = ['publish', 'release', 'new'];
|
|
10
10
|
/* process arguments */
|
|
11
11
|
commander_1.default
|
|
12
12
|
.usage(`<${availableCommands.join('|')}>`)
|
|
13
13
|
.name('bb blocks')
|
|
14
14
|
.command('new [blocks-name]', 'Initialize a new block')
|
|
15
15
|
.command('publish', 'publish blocks of current working directory')
|
|
16
|
+
.command('release', 'release dev blocks')
|
|
16
17
|
.on('command:*', ([command]) => {
|
|
17
18
|
if (!availableCommands.includes(command)) {
|
|
18
19
|
console.error('Invalid command: %s\n', command);
|
package/build/bb-blocks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb-blocks.js","sourceRoot":"","sources":["../src/bb-blocks.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;AAEtB,0DAAgC;AAMhC,WAAW;AAEX,MAAM,iBAAiB,GAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bb-blocks.js","sourceRoot":"","sources":["../src/bb-blocks.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;AAEtB,0DAAgC;AAMhC,WAAW;AAEX,MAAM,iBAAiB,GAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAEzE,uBAAuB;AAEvB,mBAAO;KACJ,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACzC,IAAI,CAAC,WAAW,CAAC;KACjB,OAAO,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;KACtD,OAAO,CAAC,SAAS,EAAE,6CAA6C,CAAC;KACjE,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC;KACxC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAW,EAAQ,EAAE;IAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAwB,CAAC,EAAE;QACzD,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,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
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"));
|
|
18
|
+
const GET_DEV_BLOCKS = '/blocks/my-dev-blocks';
|
|
19
|
+
const POST_RELEASE_BLOCKS = '/blocks/release';
|
|
20
|
+
const sendBlockstoreRequest = (urlPath, method, body, config, fusionAuth, applicationId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
const url = `${config.blockstoreApiUrl}${urlPath}`;
|
|
22
|
+
return node_fetch_1.default(url, {
|
|
23
|
+
agent: config.agent,
|
|
24
|
+
method,
|
|
25
|
+
body,
|
|
26
|
+
headers: {
|
|
27
|
+
'content-type': 'application/json',
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
29
|
+
Authorization: `Bearer ${fusionAuth.jwt()}`,
|
|
30
|
+
ApplicationId: applicationId,
|
|
31
|
+
Accept: 'application/json',
|
|
32
|
+
},
|
|
33
|
+
}).then((res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
if (res.status === 401 || res.status === 403) {
|
|
35
|
+
yield fusionAuth.ensureLogin();
|
|
36
|
+
return sendBlockstoreRequest(urlPath, method, body, config, fusionAuth, applicationId);
|
|
37
|
+
}
|
|
38
|
+
return res;
|
|
39
|
+
}));
|
|
40
|
+
});
|
|
41
|
+
const fetchAllDevBlocks = (config, fusionAuth, applicationId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
+
return sendBlockstoreRequest(GET_DEV_BLOCKS, 'GET', undefined, config, fusionAuth, applicationId);
|
|
43
|
+
});
|
|
44
|
+
const releaseBlocksInBlockstore = (blockIds, config, fusionAuth, applicationId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
const response = yield sendBlockstoreRequest(POST_RELEASE_BLOCKS, 'POST', JSON.stringify({ block_ids: blockIds }), config, fusionAuth, applicationId);
|
|
46
|
+
if (!response.ok) {
|
|
47
|
+
yield response
|
|
48
|
+
.text()
|
|
49
|
+
.then((text) => console.error(`Failed to release blocks in Blockstore: ${text}`));
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
});
|
|
54
|
+
const releaseBlocks = ({ all, blockIds, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
|
+
const config = new config_1.default();
|
|
56
|
+
const fusionAuth = new login_1.default(config);
|
|
57
|
+
const applicationId = yield config.applicationId();
|
|
58
|
+
if (!applicationId) {
|
|
59
|
+
throw new Error("Couldn't publish block(s), Error: application id not found");
|
|
60
|
+
}
|
|
61
|
+
let blockIdsToBeReleased = blockIds;
|
|
62
|
+
if (all) {
|
|
63
|
+
const res = yield fetchAllDevBlocks(config, fusionAuth, applicationId);
|
|
64
|
+
blockIdsToBeReleased = (yield res.json());
|
|
65
|
+
}
|
|
66
|
+
return releaseBlocksInBlockstore(blockIdsToBeReleased, config, fusionAuth, applicationId);
|
|
67
|
+
});
|
|
68
|
+
exports.default = releaseBlocks;
|
|
69
|
+
//# 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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"}
|