@betty-blocks/cli 26.0.0-beta.1 → 26.0.0-beta.11

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.
Files changed (173) hide show
  1. package/build/bb-blocks-new.js +28 -0
  2. package/build/bb-blocks-new.js.map +1 -0
  3. package/build/bb-blocks-publish.js +112 -0
  4. package/build/bb-blocks-publish.js.map +1 -0
  5. package/build/bb-blocks-release.js +32 -0
  6. package/build/bb-blocks-release.js.map +1 -0
  7. package/build/bb-blocks.js +19 -0
  8. package/build/bb-blocks.js.map +1 -0
  9. package/build/bb-bundle-init.js +47 -0
  10. package/build/bb-bundle-init.js.map +1 -0
  11. package/build/bb-bundle.js +22 -0
  12. package/build/bb-bundle.js.map +1 -0
  13. package/build/bb-components-build.js +449 -0
  14. package/build/bb-components-build.js.map +1 -0
  15. package/build/bb-components-create.js +55 -0
  16. package/build/bb-components-create.js.map +1 -0
  17. package/build/bb-components-generate.js +182 -0
  18. package/build/bb-components-generate.js.map +1 -0
  19. package/build/bb-components-publish-bundle.js +64 -0
  20. package/build/bb-components-publish-bundle.js.map +1 -0
  21. package/build/bb-components-publish.js +71 -0
  22. package/build/bb-components-publish.js.map +1 -0
  23. package/build/bb-components-serve.js +40 -0
  24. package/build/bb-components-serve.js.map +1 -0
  25. package/build/bb-components.js +30 -0
  26. package/build/bb-components.js.map +1 -0
  27. package/build/bb-functions-build.js +58 -0
  28. package/build/bb-functions-build.js.map +1 -0
  29. package/build/bb-functions-bump.js +78 -0
  30. package/build/bb-functions-bump.js.map +1 -0
  31. package/build/bb-functions-init.js +58 -0
  32. package/build/bb-functions-init.js.map +1 -0
  33. package/build/bb-functions-login.js +31 -0
  34. package/build/bb-functions-login.js.map +1 -0
  35. package/build/bb-functions-logout.js +15 -0
  36. package/build/bb-functions-logout.js.map +1 -0
  37. package/build/bb-functions-new.js +27 -0
  38. package/build/bb-functions-new.js.map +1 -0
  39. package/build/bb-functions-publish.js +61 -0
  40. package/build/bb-functions-publish.js.map +1 -0
  41. package/build/bb-functions-validate.js +44 -0
  42. package/build/bb-functions-validate.js.map +1 -0
  43. package/build/bb-functions.js +35 -0
  44. package/build/bb-functions.js.map +1 -0
  45. package/build/bb.js +31 -0
  46. package/build/bb.js.map +1 -0
  47. package/build/blocks/blockDefinitions.js +66 -0
  48. package/build/blocks/blockDefinitions.js.map +1 -0
  49. package/build/blocks/publishBlocks.js +70 -0
  50. package/build/blocks/publishBlocks.js.map +1 -0
  51. package/build/blocks/releaseBlocks.js +94 -0
  52. package/build/blocks/releaseBlocks.js.map +1 -0
  53. package/build/components/comments.js +81 -0
  54. package/build/components/comments.js.map +1 -0
  55. package/build/components/compatibility.js +62 -0
  56. package/build/components/compatibility.js.map +1 -0
  57. package/build/components/transformers/index.js +42 -0
  58. package/build/components/transformers/index.js.map +1 -0
  59. package/build/components-build/index.js +19 -0
  60. package/build/components-build/index.js.map +1 -0
  61. package/build/components-build/reportDiagnostics.js +21 -0
  62. package/build/components-build/reportDiagnostics.js.map +1 -0
  63. package/build/components-build/styles.js +144 -0
  64. package/build/components-build/styles.js.map +1 -0
  65. package/build/functions/acquireAppFunctionsProject.js +19 -0
  66. package/build/functions/acquireAppFunctionsProject.js.map +1 -0
  67. package/build/functions/acquireCustomFunctionsProject.js +20 -0
  68. package/build/functions/acquireCustomFunctionsProject.js.map +1 -0
  69. package/build/functions/bb-components-functions.js +58 -0
  70. package/build/functions/bb-components-functions.js.map +1 -0
  71. package/build/functions/config.js +193 -0
  72. package/build/functions/config.js.map +1 -0
  73. package/build/functions/functionDefinitions.js +189 -0
  74. package/build/functions/functionDefinitions.js.map +1 -0
  75. package/build/functions/icons.js +48 -0
  76. package/build/functions/icons.js.map +1 -0
  77. package/build/functions/publishAppFunctions.js +108 -0
  78. package/build/functions/publishAppFunctions.js.map +1 -0
  79. package/build/functions/publishCustomFunctions.js +111 -0
  80. package/build/functions/publishCustomFunctions.js.map +1 -0
  81. package/build/functions/publishFunctions.js +113 -0
  82. package/build/functions/publishFunctions.js.map +1 -0
  83. package/build/functions/utils.js +24 -0
  84. package/build/functions/utils.js.map +1 -0
  85. package/build/functions/validations.js +125 -0
  86. package/build/functions/validations.js.map +1 -0
  87. package/build/functions/versions.js +54 -0
  88. package/build/functions/versions.js.map +1 -0
  89. package/build/interactions/compatibility.js +121 -0
  90. package/build/interactions/compatibility.js.map +1 -0
  91. package/build/interactions/diagnostics.js +26 -0
  92. package/build/interactions/diagnostics.js.map +1 -0
  93. package/build/types.js +42 -0
  94. package/build/types.js.map +1 -0
  95. package/build/utils/arguments.js +11 -0
  96. package/build/utils/arguments.js.map +1 -0
  97. package/build/utils/checkPackageVersion.js +23 -0
  98. package/build/utils/checkPackageVersion.js.map +1 -0
  99. package/build/utils/checkUpdateAvailable.js +81 -0
  100. package/build/utils/checkUpdateAvailable.js.map +1 -0
  101. package/build/utils/fusionAuth.js +132 -0
  102. package/build/utils/fusionAuth.js.map +1 -0
  103. package/build/utils/hash.js +8 -0
  104. package/build/utils/hash.js.map +1 -0
  105. package/build/utils/ide.js +167 -0
  106. package/build/utils/ide.js.map +1 -0
  107. package/build/utils/login.js +132 -0
  108. package/build/utils/login.js.map +1 -0
  109. package/build/utils/pick.js +20 -0
  110. package/build/utils/pick.js.map +1 -0
  111. package/build/utils/readFilesByType.js +37 -0
  112. package/build/utils/readFilesByType.js.map +1 -0
  113. package/build/utils/rootDir.js +9 -0
  114. package/build/utils/rootDir.js.map +1 -0
  115. package/build/utils/serveComponentSet.js +66 -0
  116. package/build/utils/serveComponentSet.js.map +1 -0
  117. package/build/utils/transpile.js +30 -0
  118. package/build/utils/transpile.js.map +1 -0
  119. package/build/utils/uploadBlob.js +70 -0
  120. package/build/utils/uploadBlob.js.map +1 -0
  121. package/build/utils/validation.js +83 -0
  122. package/build/utils/validation.js.map +1 -0
  123. package/build/validations/component.js +61 -0
  124. package/build/validations/component.js.map +1 -0
  125. package/build/validations/constants.js +211 -0
  126. package/build/validations/constants.js.map +1 -0
  127. package/build/validations/function-block-validations/index.js +87 -0
  128. package/build/validations/function-block-validations/index.js.map +1 -0
  129. package/build/validations/interaction.js +27 -0
  130. package/build/validations/interaction.js.map +1 -0
  131. package/build/validations/prefab/action.js +105 -0
  132. package/build/validations/prefab/action.js.map +1 -0
  133. package/build/validations/prefab/component.js +295 -0
  134. package/build/validations/prefab/component.js.map +1 -0
  135. package/build/validations/prefab/componentOption.js +153 -0
  136. package/build/validations/prefab/componentOption.js.map +1 -0
  137. package/build/validations/prefab/interaction.js +44 -0
  138. package/build/validations/prefab/interaction.js.map +1 -0
  139. package/build/validations/prefab/linkedOption.js +45 -0
  140. package/build/validations/prefab/linkedOption.js.map +1 -0
  141. package/build/validations/prefab/linkedPartial.js +36 -0
  142. package/build/validations/prefab/linkedPartial.js.map +1 -0
  143. package/build/validations/prefab/variable.js +42 -0
  144. package/build/validations/prefab/variable.js.map +1 -0
  145. package/build/validations/prefab.js +71 -0
  146. package/build/validations/prefab.js.map +1 -0
  147. package/build/validations/styles.js +109 -0
  148. package/build/validations/styles.js.map +1 -0
  149. package/package.json +15 -15
  150. package/build/src/bb-blocks-new.js +0 -6790
  151. package/build/src/bb-blocks-publish.js +0 -32642
  152. package/build/src/bb-blocks-release.js +0 -15529
  153. package/build/src/bb-blocks.js +0 -2149
  154. package/build/src/bb-bundle-init.js +0 -6036
  155. package/build/src/bb-bundle.js +0 -2636
  156. package/build/src/bb-components-build.js +0 -240486
  157. package/build/src/bb-components-create.js +0 -6047
  158. package/build/src/bb-components-generate.js +0 -6175
  159. package/build/src/bb-components-publish-bundle.js +0 -43348
  160. package/build/src/bb-components-publish.js +0 -43355
  161. package/build/src/bb-components-serve.js +0 -15328
  162. package/build/src/bb-components.js +0 -2157
  163. package/build/src/bb-functions-build.js +0 -4285
  164. package/build/src/bb-functions-bump.js +0 -14583
  165. package/build/src/bb-functions-init.js +0 -4750
  166. package/build/src/bb-functions-login.js +0 -15441
  167. package/build/src/bb-functions-logout.js +0 -15435
  168. package/build/src/bb-functions-new.js +0 -9145
  169. package/build/src/bb-functions-publish.js +0 -86694
  170. package/build/src/bb-functions-validate.js +0 -22161
  171. package/build/src/bb-functions.js +0 -2159
  172. package/build/src/bb.js +0 -2741
  173. package/src/bb.ts +0 -31
@@ -0,0 +1,31 @@
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 = require("commander");
16
+ const config_1 = __importDefault(require("./functions/config"));
17
+ const login_1 = __importDefault(require("./utils/login"));
18
+ const program = new commander_1.Command();
19
+ program.name('bb functions login').parse(process.argv);
20
+ void (() => __awaiter(void 0, void 0, void 0, function* () {
21
+ const config = new config_1.default();
22
+ const fusionAuth = new login_1.default(config);
23
+ const loggedIn = yield fusionAuth.login();
24
+ if (loggedIn) {
25
+ console.log(`You are now logged in.`);
26
+ }
27
+ else {
28
+ console.log(`Couldn't log you in.`);
29
+ }
30
+ }))();
31
+ //# sourceMappingURL=bb-functions-login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-login.js","sourceRoot":"","sources":["../src/bb-functions-login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yCAAoC;AAEpC,gEAAwC;AACxC,0DAAuC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvD,KAAK,CAAC,GAAwB,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,eAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAE1C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const commander_1 = require("commander");
7
+ const config_1 = __importDefault(require("./functions/config"));
8
+ const login_1 = __importDefault(require("./utils/login"));
9
+ const program = new commander_1.Command();
10
+ program.name('bb functions logout').parse(process.argv);
11
+ const config = new config_1.default();
12
+ const fusionAuth = new login_1.default(config);
13
+ fusionAuth.clearTokens();
14
+ console.log('You are now logged out!');
15
+ //# sourceMappingURL=bb-functions-logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-logout.js","sourceRoot":"","sources":["../src/bb-functions-logout.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC;AAEpC,gEAAwC;AACxC,0DAAuC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxD,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;AAC5B,MAAM,UAAU,GAAG,IAAI,eAAU,CAAC,MAAM,CAAC,CAAC;AAE1C,UAAU,CAAC,WAAW,EAAE,CAAC;AAEzB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const commander_1 = require("commander");
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const functionDefinitions_1 = require("./functions/functionDefinitions");
10
+ const program = new commander_1.Command();
11
+ program.usage('[function-name]').name('bb functions new').parse(process.argv);
12
+ const { args: [inputFunctionName], } = program;
13
+ const workingDir = process.cwd();
14
+ if (fs_extra_1.default.existsSync(path_1.default.join(workingDir, '.app-functions'))) {
15
+ try {
16
+ const functionsDir = path_1.default.join(workingDir, 'functions');
17
+ (0, functionDefinitions_1.newFunctionDefinition)(functionsDir, inputFunctionName);
18
+ console.log(`functions/${inputFunctionName} created`);
19
+ }
20
+ catch (error) {
21
+ throw new Error(`functions/${inputFunctionName} could not be created. Error: ${error}`);
22
+ }
23
+ }
24
+ else {
25
+ throw new Error(`${workingDir} doesn't seem to be a functions project.\nPlease make sure you're in the root of the project.`);
26
+ }
27
+ //# sourceMappingURL=bb-functions-new.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-new.js","sourceRoot":"","sources":["../src/bb-functions-new.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC;AACpC,wDAA0B;AAC1B,gDAAwB;AAExB,yEAAwE;AAExE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9E,MAAM,EACJ,IAAI,EAAE,CAAC,iBAAiB,CAAC,GAC1B,GAAG,OAAO,CAAC;AAEZ,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACjC,IAAI,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACxD,IAAA,2CAAqB,EAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAEvD,OAAO,CAAC,GAAG,CAAC,aAAa,iBAAiB,UAAU,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,aAAa,iBAAiB,iCAAiC,KAAK,EAAE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC;KAAM,CAAC;IACN,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,+FAA+F,CAC7G,CAAC;AACJ,CAAC"}
@@ -0,0 +1,61 @@
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 chalk_1 = __importDefault(require("chalk"));
16
+ const commander_1 = require("commander");
17
+ const fs_extra_1 = __importDefault(require("fs-extra"));
18
+ const path_1 = __importDefault(require("path"));
19
+ const config_1 = __importDefault(require("./functions/config"));
20
+ const publishAppFunctions_1 = __importDefault(require("./functions/publishAppFunctions"));
21
+ const publishCustomFunctions_1 = __importDefault(require("./functions/publishCustomFunctions"));
22
+ const validations_1 = require("./functions/validations");
23
+ const program = new commander_1.Command();
24
+ program
25
+ .name('bb functions publish')
26
+ .option('-b, --bump', 'Bump the revision number.')
27
+ .option('-s, --skip', 'Skip building the custom functions bundle.')
28
+ .option('--skip-compile', 'Skip the compilation of the application.')
29
+ .option('-h, --host <host>', 'Set hostname to publish to. Defaults to <identifier>.bettyblocks.com')
30
+ .parse(process.argv);
31
+ const { host, skip, bump, skipCompile } = program.opts();
32
+ const workingDir = process.cwd();
33
+ const baseFunctionsPath = path_1.default.join(workingDir, 'functions');
34
+ const config = new config_1.default();
35
+ const validateFunctions = () => __awaiter(void 0, void 0, void 0, function* () {
36
+ const validator = new validations_1.FunctionValidator(config, baseFunctionsPath);
37
+ yield validator.initSchema();
38
+ console.log(chalk_1.default.bold(`Validating functions in ${baseFunctionsPath}`));
39
+ const results = yield validator.validateFunctions();
40
+ results.forEach(validations_1.logValidationResult);
41
+ const valid = results.every((result) => result.status === 'ok');
42
+ if (valid) {
43
+ console.log(`\n${chalk_1.default.green.underline(`✔ All your functions are valid and ready to be published!`)}`);
44
+ }
45
+ else {
46
+ console.log(`\n${chalk_1.default.red.underline(`✖ Certain functions in your project are invalid.`)}`);
47
+ }
48
+ return { valid };
49
+ });
50
+ void (() => __awaiter(void 0, void 0, void 0, function* () {
51
+ if (fs_extra_1.default.existsSync(path_1.default.join(workingDir, '.app-functions'))) {
52
+ const { valid } = yield validateFunctions();
53
+ if (valid) {
54
+ yield (0, publishAppFunctions_1.default)({ skipCompile });
55
+ }
56
+ }
57
+ else {
58
+ (0, publishCustomFunctions_1.default)(host, bump, skip);
59
+ }
60
+ }))();
61
+ //# sourceMappingURL=bb-functions-publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-publish.js","sourceRoot":"","sources":["../src/bb-functions-publish.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,yCAAoC;AACpC,wDAA0B;AAC1B,gDAAwB;AAExB,gEAAwC;AACxC,0FAAkE;AAClE,gGAAwE;AACxE,yDAGiC;AAEjC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,sBAAsB,CAAC;KAC5B,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,YAAY,EAAE,4CAA4C,CAAC;KAClE,MAAM,CAAC,gBAAgB,EAAE,0CAA0C,CAAC;KACpE,MAAM,CACL,mBAAmB,EACnB,sEAAsE,CACvE;KACA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAEzD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAEjC,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAE7D,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;AAE5B,MAAM,iBAAiB,GAAG,GAAsC,EAAE;IAChE,MAAM,SAAS,GAAG,IAAI,+BAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IACpD,OAAO,CAAC,OAAO,CAAC,iCAAmB,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAEhE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CACT,KAAK,eAAK,CAAC,KAAK,CAAC,SAAS,CACxB,2DAA2D,CAC5D,EAAE,CACJ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,KAAK,eAAK,CAAC,GAAG,CAAC,SAAS,CACtB,kDAAkD,CACnD,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,KAAK,CAAC,GAAwB,EAAE;IAC9B,IAAI,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE5C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAA,gCAAsB,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -0,0 +1,44 @@
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 chalk_1 = __importDefault(require("chalk"));
16
+ const commander_1 = require("commander");
17
+ const path_1 = __importDefault(require("path"));
18
+ const config_1 = __importDefault(require("./functions/config"));
19
+ const validations_1 = require("./functions/validations");
20
+ const program = new commander_1.Command();
21
+ program
22
+ .usage('[function-name]')
23
+ .name('bb functions validate')
24
+ .parse(process.argv);
25
+ const { args: [inputFunctionName], } = program;
26
+ const workingDir = process.cwd();
27
+ const baseFunctionsPath = path_1.default.join(workingDir, 'functions');
28
+ const config = new config_1.default();
29
+ const validateFunctions = () => __awaiter(void 0, void 0, void 0, function* () {
30
+ const validator = new validations_1.FunctionValidator(config, baseFunctionsPath);
31
+ yield validator.initSchema();
32
+ console.log(chalk_1.default.bold(`Validating functions in ${baseFunctionsPath}`));
33
+ const results = yield validator.validateFunctions(inputFunctionName);
34
+ results.forEach(validations_1.logValidationResult);
35
+ const valid = results.every((result) => result.status === 'ok');
36
+ if (valid) {
37
+ console.log(`\n${chalk_1.default.green.underline(`✔ All your functions are valid and ready to be published!`)}`);
38
+ }
39
+ else {
40
+ console.log(`\n${chalk_1.default.red.underline(`✖ Certain functions in your project are invalid.`)}`);
41
+ }
42
+ });
43
+ void (() => __awaiter(void 0, void 0, void 0, function* () { return validateFunctions(); }))();
44
+ //# sourceMappingURL=bb-functions-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-validate.js","sourceRoot":"","sources":["../src/bb-functions-validate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,yCAAoC;AACpC,gDAAwB;AAExB,gEAAwC;AACxC,yDAGiC;AAEjC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,KAAK,CAAC,iBAAiB,CAAC;KACxB,IAAI,CAAC,uBAAuB,CAAC;KAC7B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,EACJ,IAAI,EAAE,CAAC,iBAAiB,CAAC,GAC1B,GAAG,OAAO,CAAC;AAEZ,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAE7D,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;AAE5B,MAAM,iBAAiB,GAAG,GAAwB,EAAE;IAClD,MAAM,SAAS,GAAG,IAAI,+BAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrE,OAAO,CAAC,OAAO,CAAC,iCAAmB,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAEhE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CACT,KAAK,eAAK,CAAC,KAAK,CAAC,SAAS,CACxB,2DAA2D,CAC5D,EAAE,CACJ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,KAAK,eAAK,CAAC,GAAG,CAAC,SAAS,CACtB,kDAAkD,CACnD,EAAE,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,KAAK,CAAC,GAAwB,EAAE,kDAAC,OAAA,iBAAiB,EAAE,CAAA,GAAA,CAAC,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const commander_1 = require("commander");
4
+ const availableCommands = [
5
+ 'init',
6
+ 'login',
7
+ 'logout',
8
+ 'new',
9
+ 'build',
10
+ 'publish',
11
+ 'validate',
12
+ 'bump',
13
+ 'test',
14
+ ];
15
+ const program = new commander_1.Command();
16
+ program
17
+ .usage(`<${availableCommands.join('|')}>`)
18
+ .name('bb functions')
19
+ .command('build', 'build functions bundle file of current working directory')
20
+ .command('bump', 'increase the major/minor version of a specific function')
21
+ .command('init [identifier]', 'initialize functions project')
22
+ .command('login', 'login using the same credentials as the IDE')
23
+ .command('logout', 'remove all tokens used to authenticate with the APIs')
24
+ .command('new [function-name]', 'Initialize a new function')
25
+ .command('publish', 'publish functions of current working directory')
26
+ .command('validate', 'validate functions of current working directory')
27
+ .command('test', 'test your functions within a local light-weight version of the ActionJS environment')
28
+ .on('command:*', ([command]) => {
29
+ if (!availableCommands.includes(command)) {
30
+ console.error('Invalid command: %s\n', command);
31
+ program.outputHelp();
32
+ }
33
+ })
34
+ .parse(process.argv);
35
+ //# sourceMappingURL=bb-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions.js","sourceRoot":"","sources":["../src/bb-functions.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AAIpC,MAAM,iBAAiB,GAAuB;IAC5C,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,UAAU;IACV,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACzC,IAAI,CAAC,cAAc,CAAC;KACpB,OAAO,CAAC,OAAO,EAAE,0DAA0D,CAAC;KAC5E,OAAO,CAAC,MAAM,EAAE,yDAAyD,CAAC;KAC1E,OAAO,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;KAC5D,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;KAC/D,OAAO,CAAC,QAAQ,EAAE,sDAAsD,CAAC;KACzE,OAAO,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC3D,OAAO,CAAC,SAAS,EAAE,gDAAgD,CAAC;KACpE,OAAO,CAAC,UAAU,EAAE,iDAAiD,CAAC;KACtE,OAAO,CACN,MAAM,EACN,qFAAqF,CACtF;KACA,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAW,EAAQ,EAAE;IAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAA2B,CAAC,EAAE,CAAC;QAC7D,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.js ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
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"));
10
+ const availableCommands = [
11
+ 'blocks',
12
+ 'components',
13
+ 'functions',
14
+ 'bundle',
15
+ 'help',
16
+ ];
17
+ const program = new commander_1.Command();
18
+ program
19
+ .description('Betty Blocks CLI')
20
+ .version(package_json_1.default.version, '-v, --version')
21
+ .command('components [cmd]', 'manage your component sets')
22
+ .command('blocks [cmd]', 'manage your blocks')
23
+ .command('functions [cmd]', 'manage your custom functions')
24
+ .command('bundle [cmd]', 'manage your vendor bundle')
25
+ .on('command:*', ([command]) => {
26
+ if (!availableCommands.includes(command)) {
27
+ throw new Error(chalk_1.default.red(`\nInvalid command: ${command}\n`));
28
+ }
29
+ })
30
+ .parse(process.argv);
31
+ //# sourceMappingURL=bb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb.js","sourceRoot":"","sources":["../src/bb.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAC1B,yCAAoC;AAEpC,mEAAkC;AAGlC,MAAM,iBAAiB,GAAgB;IACrC,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,MAAM;CACP,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,WAAW,CAAC,kBAAkB,CAAC;KAC/B,OAAO,CAAC,sBAAG,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,eAAK,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,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
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");
11
+ /* @doc createPackageJson
12
+ Returns an object containing all data needed for the block package json
13
+ */
14
+ const createPackageJson = (name, rootPackageJson, dependencies) => {
15
+ const rootDependencies = (0, pick_1.pick)(fs_extra_1.default.readJsonSync(rootPackageJson).dependencies, dependencies);
16
+ const packageJson = JSON.stringify({
17
+ dependencies: rootDependencies,
18
+ name,
19
+ private: 'true',
20
+ version: '1.0.0',
21
+ }, null, 2);
22
+ return packageJson;
23
+ };
24
+ exports.createPackageJson = createPackageJson;
25
+ /* @doc functionDirs
26
+ Returns a list of blocks.
27
+ */
28
+ const blockFiles = (blockDir) => glob_1.default
29
+ .sync(path_1.default.join(blockDir, '*.json').replace(/\\/g, '/'))
30
+ .reduce((blocks, blockDefinition) => {
31
+ blocks.push(blockDefinition);
32
+ return blocks;
33
+ }, []);
34
+ /* @doc blockDefinitions
35
+ Returns an array containing all block definitions
36
+ inside the given blocksDir.
37
+ */
38
+ const blockDefinitions = (blocksDir) => blockFiles(blocksDir).map((blocks) => blocks);
39
+ exports.blockDefinitions = blockDefinitions;
40
+ /* @doc blockDefinitionPath
41
+ Expands the block dir with a json file with the given blockname.
42
+ */
43
+ const blockDefinitionPath = (blockPath, blockName) => path_1.default.join(blockPath, `${blockName}.json`);
44
+ exports.blockDefinitionPath = blockDefinitionPath;
45
+ /* @doc newBlockDefinition
46
+ If block does not exists it will create a new json file with the given blockname.
47
+ */
48
+ const newBlockDefinition = (blocksDir, blockName) => {
49
+ try {
50
+ const existingBlock = fs_extra_1.default.existsSync(blockDefinitionPath(blocksDir, blockName));
51
+ if (existingBlock)
52
+ return 'Block already exists';
53
+ fs_extra_1.default.mkdirpSync(blocksDir);
54
+ fs_extra_1.default.writeJSONSync(blockDefinitionPath(blocksDir, blockName), {
55
+ dependencies: [],
56
+ functions: [],
57
+ includes: [],
58
+ }, { spaces: 2 });
59
+ return `blocks/${blockName}.json created`;
60
+ }
61
+ catch (err) {
62
+ throw new Error(`could not initialize new block ${blocksDir}: ${err}`);
63
+ }
64
+ };
65
+ exports.newBlockDefinition = newBlockDefinition;
66
+ //# sourceMappingURL=blockDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockDefinitions.js","sourceRoot":"","sources":["../../src/blocks/blockDefinitions.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,gDAAwB;AAExB,wCAAqC;AAYrC;;EAEE;AACF,MAAM,iBAAiB,GAAG,CACxB,IAAY,EACZ,eAAuB,EACvB,YAAsB,EACd,EAAE;IACV,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAC1B,kBAAE,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;AAuDA,8CAAiB;AArDnB;;EAEE;AACF,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAY,EAAE,CAChD,cAAI;KACD,IAAI,CAAC,cAAI,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;AAoC9C,4CAAgB;AAlClB;;EAEE;AACF,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAU,EAAE,CAC3E,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AA6B1C,kDAAmB;AA3BrB;;EAEE;AACF,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAU,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,kBAAE,CAAC,UAAU,CACjC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAC1C,CAAC;QAEF,IAAI,aAAa;YAAE,OAAO,sBAAsB,CAAC;QACjD,kBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzB,kBAAE,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;AAMA,gDAAkB"}
@@ -0,0 +1,70 @@
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 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"));
23
+ const workingDir = process.cwd();
24
+ const uploadBlock = (blockDefinitionsFile, functionsJson, config) => __awaiter(void 0, void 0, void 0, function* () {
25
+ const fusionAuth = new login_1.default(config);
26
+ const form = new form_data_1.default();
27
+ form.append('name', path_1.default.basename(blockDefinitionsFile, '.zip'));
28
+ form.append('functions', functionsJson);
29
+ form.append('file', fs_extra_1.default.createReadStream(blockDefinitionsFile));
30
+ const applicationId = yield config.applicationId();
31
+ if (!applicationId) {
32
+ throw new Error("Couldn't publish block(s), Error: application id not found");
33
+ }
34
+ const url = `${config.blockstoreApiUrl}/blocks/publish`;
35
+ return (0, node_fetch_1.default)(url, {
36
+ agent: config.agent,
37
+ body: form,
38
+ headers: {
39
+ Accept: 'application/json',
40
+ ApplicationId: applicationId,
41
+ Authorization: `Bearer ${fusionAuth.jwt()}`,
42
+ },
43
+ method: 'POST',
44
+ }).then((res) => __awaiter(void 0, void 0, void 0, function* () {
45
+ if (res.status === 401 || res.status === 403) {
46
+ yield fusionAuth.ensureLogin();
47
+ return uploadBlock(blockDefinitionsFile, functionsJson, config);
48
+ }
49
+ if (res.status !== 201) {
50
+ const error = yield res.text();
51
+ throw new Error(`Couldn't publish block(s), Error: ${res.status}, ${error.match('## Connection details') ? 'Something went wrong' : error}`);
52
+ }
53
+ return true;
54
+ }));
55
+ });
56
+ const createAndPublishFiles = (config, functions, zip) => __awaiter(void 0, void 0, void 0, function* () {
57
+ const functionsDir = path_1.default.join(workingDir, 'functions');
58
+ const funcDefinitions = (0, functionDefinitions_1.functionDefinitions)(functionsDir);
59
+ const blockFunctions = (0, functionDefinitions_1.whitelistedFunctions)(funcDefinitions, functions);
60
+ const functionsJson = (0, functionDefinitions_1.stringifyDefinitions)(blockFunctions);
61
+ yield uploadBlock(zip, functionsJson, config);
62
+ });
63
+ const publishBlocks = (functions, zip) => __awaiter(void 0, void 0, void 0, function* () {
64
+ const config = new config_1.default();
65
+ console.log(chalk_1.default.bold(`\nPublishing to ${config.host} (${config.zone})`));
66
+ yield createAndPublishFiles(config, functions, zip);
67
+ console.log(chalk_1.default.green.underline(`✔ Your blocks are published to the block store.`));
68
+ });
69
+ exports.default = publishBlocks;
70
+ //# 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,94 @@
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 = (_a) => __awaiter(void 0, [_a], void 0, function* ({ urlPath, method, body, config, fusionAuth, applicationId, }) {
21
+ const url = `${config.blockstoreApiUrl}${urlPath}`;
22
+ return (0, node_fetch_1.default)(url, {
23
+ agent: config.agent,
24
+ body,
25
+ headers: {
26
+ Accept: 'application/json',
27
+ ApplicationId: applicationId,
28
+ Authorization: `Bearer ${fusionAuth.jwt()}`,
29
+ 'content-type': 'application/json',
30
+ },
31
+ method,
32
+ }).then((res) => __awaiter(void 0, void 0, void 0, function* () {
33
+ if (res.status === 401 || res.status === 403) {
34
+ yield fusionAuth.ensureLogin();
35
+ return sendBlockstoreRequest({
36
+ applicationId,
37
+ body,
38
+ config,
39
+ fusionAuth,
40
+ method,
41
+ urlPath,
42
+ });
43
+ }
44
+ 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
+ });
56
+ });
57
+ const releaseBlocksInBlockstore = (_a) => __awaiter(void 0, [_a], void 0, function* ({ blockIds, config, fusionAuth, applicationId, }) {
58
+ const response = yield sendBlockstoreRequest({
59
+ applicationId,
60
+ body: JSON.stringify({ block_ids: blockIds }),
61
+ config,
62
+ fusionAuth,
63
+ method: 'POST',
64
+ urlPath: POST_RELEASE_BLOCKS,
65
+ });
66
+ if (!response.ok) {
67
+ yield response
68
+ .text()
69
+ .then((text) => console.error(`Failed to release blocks in Blockstore: ${text}`));
70
+ return false;
71
+ }
72
+ return true;
73
+ });
74
+ const releaseBlocks = (_a) => __awaiter(void 0, [_a], void 0, function* ({ all, blockIds, }) {
75
+ const config = new config_1.default();
76
+ const fusionAuth = new login_1.default(config);
77
+ const applicationId = yield config.applicationId();
78
+ if (!applicationId) {
79
+ throw new Error("Couldn't publish block(s), Error: application id not found");
80
+ }
81
+ let blockIdsToBeReleased = blockIds;
82
+ if (all) {
83
+ const res = yield fetchAllDevBlocks(config, fusionAuth, applicationId);
84
+ blockIdsToBeReleased = (yield res.json());
85
+ }
86
+ return releaseBlocksInBlockstore({
87
+ applicationId,
88
+ blockIds: blockIdsToBeReleased,
89
+ config,
90
+ fusionAuth,
91
+ });
92
+ });
93
+ exports.default = releaseBlocks;
94
+ //# 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,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLiteralObjectExpression = exports.walkCompilerAstAndFindComments = void 0;
4
+ const jsdoc_api_1 = require("jsdoc-api");
5
+ const typescript_1 = require("typescript");
6
+ /**
7
+ * Retrieves the JSDoc-style comments associated with a specific AST node.
8
+ *
9
+ * Based on ts.getJSDocCommentRanges() from the compiler.
10
+ * https://github.com/microsoft/TypeScript/blob/v3.0.3/src/compiler/utilities.ts#L924
11
+ */
12
+ const getJSDocCommentRanges = (node, text) => {
13
+ var _a, _b;
14
+ const commentRanges = [];
15
+ const { Parameter, TypeParameter, FunctionExpression, ArrowFunction, ParenthesizedExpression, } = typescript_1.SyntaxKind;
16
+ switch (node.kind) {
17
+ case Parameter:
18
+ case TypeParameter:
19
+ case FunctionExpression:
20
+ case ArrowFunction:
21
+ case ParenthesizedExpression:
22
+ commentRanges.push(...((_a = (0, typescript_1.getTrailingCommentRanges)(text, node.pos)) !== null && _a !== void 0 ? _a : []));
23
+ break;
24
+ default:
25
+ break;
26
+ }
27
+ commentRanges.push(...((_b = (0, typescript_1.getLeadingCommentRanges)(text, node.pos)) !== null && _b !== void 0 ? _b : []));
28
+ // True if the comment starts with '/**' but not if it is '/**/'
29
+ return commentRanges.filter((comment) => text.charCodeAt(comment.pos + 1) ===
30
+ 0x2a /* ts.CharacterCodes.asterisk */ &&
31
+ text.charCodeAt(comment.pos + 2) ===
32
+ 0x2a /* ts.CharacterCodes.asterisk */ &&
33
+ text.charCodeAt(comment.pos + 3) !== 0x2f /* ts.CharacterCodes.slash */);
34
+ };
35
+ const walkCompilerAstAndFindComments = (node, foundComments) => {
36
+ // The TypeScript AST doesn't store code comments directly. If you want to find *every* comment,
37
+ // you would need to rescan the SourceFile tokens similar to how tsutils.forEachComment() works:
38
+ // https://github.com/ajafff/tsutils/blob/v3.0.0/util/util.ts#L453
39
+ //
40
+ // However, for this demo we are modeling a tool that discovers declarations and then analyzes their doc comments,
41
+ // so we only care about TSDoc that would conventionally be associated with an interesting AST node.
42
+ const buffer = node.getSourceFile().getFullText(); // don't use getText() here!
43
+ // Only consider nodes that are part of a declaration form. Without this, we could discover
44
+ // the same comment twice (e.g. for a MethodDeclaration and its PublicKeyword).
45
+ // Find "/** */" style comments associated with this node.
46
+ // Note that this reinvokes the compiler's scanner -- the result is not cached.
47
+ const comments = getJSDocCommentRanges(node, buffer);
48
+ comments.forEach((c) => {
49
+ const source = buffer.slice(c.pos, c.end);
50
+ const comment = (0, jsdoc_api_1.explainSync)({ source });
51
+ const [{ name, params, returns }] = comment;
52
+ const parameters = params.reduce((acc, cur) => (Object.assign(Object.assign({}, acc), { [cur.name]: cur.type.names })), {});
53
+ const returnType = returns.reduce((acc, curr) => acc.concat(curr.type.names), []);
54
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
55
+ // @ts-ignore
56
+ const hasComment = foundComments.some((f) => Boolean(f[name]));
57
+ if (!hasComment) {
58
+ foundComments.push({ [name]: { parameters, returnType } });
59
+ }
60
+ });
61
+ return node.forEachChild((child) => (0, exports.walkCompilerAstAndFindComments)(child, foundComments));
62
+ };
63
+ exports.walkCompilerAstAndFindComments = walkCompilerAstAndFindComments;
64
+ const createParams = (params) => {
65
+ const { createArrayLiteralExpression, createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } = typescript_1.factory;
66
+ return Object.entries(params).map(([key, value]) => {
67
+ const result = Array.isArray(value)
68
+ ? createArrayLiteralExpression(value.map((n) => createStringLiteral(n)))
69
+ : createObjectLiteralExpression(createParams(value));
70
+ return createPropertyAssignment(createStringLiteral(key), result);
71
+ });
72
+ };
73
+ const createLiteralObjectExpression = (params) => {
74
+ const { createStringLiteral, createObjectLiteralExpression, createPropertyAssignment, } = typescript_1.factory;
75
+ return params.map((param) => {
76
+ const [[key, value]] = Object.entries(param);
77
+ return createPropertyAssignment(createStringLiteral(key), createObjectLiteralExpression(createParams(value)));
78
+ });
79
+ };
80
+ exports.createLiteralObjectExpression = createLiteralObjectExpression;
81
+ //# 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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"}