@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,182 @@
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
+ /* npm dependencies */
16
+ const chalk_1 = __importDefault(require("chalk"));
17
+ const commander_1 = require("commander");
18
+ const fs_extra_1 = require("fs-extra");
19
+ const checkUpdateAvailable_1 = require("./utils/checkUpdateAvailable");
20
+ const program = new commander_1.Command();
21
+ program
22
+ .argument('<name>', 'name of the component')
23
+ .name('bb components generate')
24
+ .parse(process.argv);
25
+ const { args } = program;
26
+ if (args.length === 0) {
27
+ program.help();
28
+ }
29
+ const name = args[0].charAt(0).toLowerCase() + args[0].slice(1);
30
+ const advancedTs = `import { variable } from '@betty-blocks/component-sdk';
31
+
32
+ export const advanced = (value: string) => {
33
+ return {
34
+ dataComponentAttribute: variable('Test attribute', {
35
+ value: [value],
36
+ }),
37
+ };
38
+ };
39
+ `;
40
+ const configurationTs = `import {
41
+ OptionCategory,
42
+ OptionProducer,
43
+ PrefabComponentStyle,
44
+ } from '@betty-blocks/component-sdk';
45
+
46
+ export interface Configuration {
47
+ options?: Record<string, OptionProducer>;
48
+ adornmentIcon?: string;
49
+ label?: string;
50
+ inputLabel?: string;
51
+ type?: HTMLInputElement['type'];
52
+ style?: PrefabComponentStyle;
53
+ ref?: { id: string };
54
+ inputType?: string;
55
+ placeholder?: string;
56
+ dataComponentAttribute?: string;
57
+ optionCategories?: OptionCategory[];
58
+ validationPattern?: string;
59
+ pattern?: string;
60
+ }
61
+ `;
62
+ void (() => __awaiter(void 0, void 0, void 0, function* () {
63
+ yield (0, checkUpdateAvailable_1.checkUpdateAvailableCLI)();
64
+ if (!/^[a-z][a-z0-9]*$/i.test(name)) {
65
+ throw Error(chalk_1.default.red(`\nName cannot contain special characters or spaces\n`));
66
+ }
67
+ if (yield (0, fs_extra_1.pathExists)(`src/prefabs/${name}.tsx`)) {
68
+ throw Error(chalk_1.default.red(`\nPrefab ${name} already exists\n`));
69
+ }
70
+ if (yield (0, fs_extra_1.pathExists)(`src/components/${name}.js`)) {
71
+ throw Error(chalk_1.default.red(`\nComponent ${name} already exists\n`));
72
+ }
73
+ const capitalisedName = name.charAt(0).toUpperCase() + name.slice(1);
74
+ const prefabsStructureIndex = `// Import all prefabs here
75
+ import { ${capitalisedName} } from './${capitalisedName}';
76
+
77
+ // Import all prefab options here
78
+ import { ${name}Options } from './${capitalisedName}/options';
79
+
80
+ export { ${capitalisedName}, ${name}Options };
81
+ `;
82
+ yield (0, fs_extra_1.pathExists)('src/prefabs/structures/advanced.ts').then((exists) => {
83
+ if (!exists) {
84
+ console.log("advanced.ts didn't exist yet. Creating it");
85
+ (0, fs_extra_1.outputFileSync)('src/prefabs/structures/advanced.ts', advancedTs);
86
+ }
87
+ });
88
+ yield (0, fs_extra_1.pathExists)('src/prefabs/structures/Configuration.ts').then((exists) => {
89
+ if (!exists) {
90
+ console.log("Configuration.ts didn't exist yet. Creating it");
91
+ (0, fs_extra_1.outputFileSync)('src/prefabs/structures/Configuration.ts', configurationTs);
92
+ }
93
+ });
94
+ yield (0, fs_extra_1.pathExists)('src/prefabs/structures/index.ts').then((exists) => {
95
+ if (!exists) {
96
+ console.log("index.ts didn't exist yet. Creating it");
97
+ (0, fs_extra_1.outputFileSync)('src/prefabs/structures/index.ts', prefabsStructureIndex);
98
+ }
99
+ });
100
+ const prefab = `import { prefab, Icon } from '@betty-blocks/component-sdk';
101
+
102
+ import { ${capitalisedName} } from './structures/${capitalisedName}';
103
+
104
+ const attributes = {
105
+ category: 'CONTENT',
106
+ icon: Icon.TitleIcon,
107
+ keywords: [''],
108
+ };
109
+
110
+ export default prefab('${capitalisedName}', attributes, undefined, [${capitalisedName}({})]);
111
+ `;
112
+ const structureIndex = `import { component, PrefabReference } from '@betty-blocks/component-sdk';
113
+ import { Configuration } from '../Configuration';
114
+ import {
115
+ ${name}Options as defaultOptions,
116
+ categories as defaultCategories,
117
+ } from './options';
118
+
119
+ export const ${capitalisedName} = (
120
+ config: Configuration,
121
+ descendants: PrefabReference[] = [],
122
+ ) => {
123
+ const options = { ...(config.options || defaultOptions) };
124
+ const style = { ...config.style };
125
+ const ref = config.ref ? { ...config.ref } : undefined;
126
+ const label = config.label ? config.label : undefined;
127
+ const optionCategories = config.optionCategories
128
+ ? { ...config.optionCategories }
129
+ : defaultCategories;
130
+
131
+ return component(
132
+ '${capitalisedName}',
133
+ { options, ref, style, label, optionCategories },
134
+ descendants,
135
+ );
136
+ };
137
+ `;
138
+ const optionsIndex = `import { variable } from '@betty-blocks/component-sdk';
139
+ import { advanced } from '../../advanced';
140
+
141
+ export const categories = [
142
+ {
143
+ label: 'Advanced Options',
144
+ expanded: false,
145
+ members: ['dataComponentAttribute'],
146
+ },
147
+ ];
148
+
149
+ export const ${name}Options = {
150
+ content: variable('Content', {
151
+ value: ['Hello world'],
152
+ configuration: { as: 'MULTILINE' },
153
+ }),
154
+
155
+ ...advanced('${capitalisedName}'),
156
+ };
157
+ `;
158
+ const component = `(() => ({
159
+ name: '${capitalisedName}',
160
+ type: 'CONTENT_COMPONENT',
161
+ allowedTypes: [],
162
+ orientation: 'HORIZONTAL',
163
+ jsx: (() => {
164
+ const { useText } = B;
165
+ const { content } = options;
166
+ return <div className={classes.root}>{useText(content)}</div>;
167
+ })(),
168
+ styles: () => () => ({
169
+ root: {},
170
+ }),
171
+ }))();
172
+ `;
173
+ yield Promise.all([
174
+ (0, fs_extra_1.outputFile)(`src/prefabs/structures/${capitalisedName}/index.ts`, structureIndex),
175
+ (0, fs_extra_1.outputFile)(`src/prefabs/structures/${capitalisedName}/options/index.ts`, optionsIndex),
176
+ (0, fs_extra_1.outputFile)(`src/prefabs/${name}.tsx`, prefab),
177
+ (0, fs_extra_1.outputFile)(`src/components/${name}.js`, component),
178
+ console.log(chalk_1.default.green('The component has been generated')),
179
+ console.log(chalk_1.default.blueBright("\nIf you would like to use the component in another prefab, \nwe recommend adding the import and export of the component structure to 'src/prefabs/structures/index.ts' for a clean import from the same file")),
180
+ ]);
181
+ }))();
182
+ //# sourceMappingURL=bb-components-generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-components-generate.js","sourceRoot":"","sources":["../src/bb-components-generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
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_1 = require("fs");
18
+ const bb_components_functions_1 = require("./functions/bb-components-functions");
19
+ const checkUpdateAvailable_1 = require("./utils/checkUpdateAvailable");
20
+ const program = new commander_1.Command();
21
+ program
22
+ .usage('[options] [path]')
23
+ .name('bb components publish-bundle')
24
+ .option('-b, --bucket [name]', 'the component set name')
25
+ .parse(process.argv);
26
+ const { args } = program;
27
+ const distDir = args.length === 0 ? 'dist' : `${args[0]}/dist`;
28
+ const { bucket } = program.opts();
29
+ if (!bucket) {
30
+ throw new Error(chalk_1.default.red('\n-b or --bucket [name] is required\n'));
31
+ }
32
+ (0, bb_components_functions_1.validateBucketName)(bucket);
33
+ const readJS = (fileName) => __awaiter(void 0, void 0, void 0, function* () {
34
+ try {
35
+ return (0, fs_1.readFileSync)(`${distDir}/${fileName}`, 'utf8');
36
+ }
37
+ catch (error) {
38
+ if (error instanceof Error) {
39
+ const { message } = error;
40
+ throw new Error(chalk_1.default.red([
41
+ 'There was an error trying to publish your component set',
42
+ message,
43
+ ].join('\n')));
44
+ }
45
+ throw new Error(`Unknown error occurred: ${error}`);
46
+ }
47
+ });
48
+ void (() => __awaiter(void 0, void 0, void 0, function* () {
49
+ yield (0, checkUpdateAvailable_1.checkUpdateAvailableCLI)();
50
+ const files = ['bundle.js', 'bundle.js.map'];
51
+ const [{ url }] = yield Promise.all(files.map((fileName) => __awaiter(void 0, void 0, void 0, function* () {
52
+ const objects = yield readJS(fileName);
53
+ return (0, bb_components_functions_1.publish)({
54
+ blobContentType: 'text/javascript',
55
+ bucketName: bucket,
56
+ fileName,
57
+ objects,
58
+ });
59
+ })));
60
+ console.log(chalk_1.default.green(`Upload succesfully.\n
61
+ Use the following URL in the Page Builder to start working with your newly updated bundle:\n
62
+ ${url}`));
63
+ }))();
64
+ //# sourceMappingURL=bb-components-publish-bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-components-publish-bundle.js","sourceRoot":"","sources":["../src/bb-components-publish-bundle.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,yCAAoC;AACpC,2BAAkC;AAElC,iFAG6C;AAC7C,uEAAuE;AAEvE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,KAAK,CAAC,kBAAkB,CAAC;KACzB,IAAI,CAAC,8BAA8B,CAAC;KACpC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;KACvD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,MAAM,OAAO,GAAW,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAClC,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;AACtE,CAAC;AACD,IAAA,4CAAkB,EAAC,MAAM,CAAC,CAAC;AAE3B,MAAM,MAAM,GAAG,CAAO,QAAgB,EAAmB,EAAE;IACzD,IAAI,CAAC;QACH,OAAO,IAAA,iBAAY,EAAC,GAAG,OAAO,IAAI,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YAE1B,MAAM,IAAI,KAAK,CACb,eAAK,CAAC,GAAG,CACP;gBACE,yDAAyD;gBACzD,OAAO;aACR,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,KAAK,CAAC,GAAwB,EAAE;IAC9B,MAAM,IAAA,8CAAuB,GAAE,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,GAAG,CAAC,CAAO,QAAQ,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAA,iCAAO,EAAC;YACb,eAAe,EAAE,iBAAiB;YAClC,UAAU,EAAE,MAAM;YAClB,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CACH,CAAC;IAEF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT;;EAEJ,GAAG,EAAE,CACF,CACF,CAAC;AACJ,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -0,0 +1,71 @@
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 = require("fs-extra");
18
+ const bb_components_functions_1 = require("./functions/bb-components-functions");
19
+ const checkUpdateAvailable_1 = require("./utils/checkUpdateAvailable");
20
+ const program = new commander_1.Command();
21
+ program
22
+ .usage('[options] [path]')
23
+ .name('bb components publish')
24
+ .option('-b, --bucket [name]', 'the component set name')
25
+ .parse(process.argv);
26
+ const { args } = program;
27
+ const name = program.opts().bucket;
28
+ const distDir = args.length === 0 ? 'dist' : `${args[0]}/dist`;
29
+ if (!name || typeof name !== 'string' || !name.length) {
30
+ throw new Error(chalk_1.default.red('\n-b or --bucket [name] is required\n'));
31
+ }
32
+ const read = (fileName) => __awaiter(void 0, void 0, void 0, function* () {
33
+ try {
34
+ return yield (0, fs_extra_1.readJSON)(`${distDir}/${fileName}`);
35
+ }
36
+ catch (error) {
37
+ if (error instanceof Error) {
38
+ const { message } = error;
39
+ throw new Error(chalk_1.default.red([
40
+ 'There was an error trying to publish your component set',
41
+ message,
42
+ ].join('\n')));
43
+ }
44
+ throw new Error(`Unknown error occurred: ${error}`);
45
+ }
46
+ });
47
+ void (() => __awaiter(void 0, void 0, void 0, function* () {
48
+ yield (0, checkUpdateAvailable_1.checkUpdateAvailableCLI)();
49
+ const files = ['prefabs.json', 'templates.json', 'interactions.json'];
50
+ const existingPath = yield (0, fs_extra_1.pathExists)(`${distDir}/pagePrefabs.json`);
51
+ const existingPartialPath = yield (0, fs_extra_1.pathExists)(`${distDir}/partials.json`);
52
+ if (existingPath) {
53
+ files.push('pagePrefabs.json');
54
+ }
55
+ if (existingPartialPath) {
56
+ files.push('partials.json');
57
+ }
58
+ const [{ url }] = yield Promise.all(files.map((fileName) => __awaiter(void 0, void 0, void 0, function* () {
59
+ const objects = yield read(fileName);
60
+ return (0, bb_components_functions_1.publish)({
61
+ blobContentType: 'text/html',
62
+ bucketName: name,
63
+ fileName,
64
+ objects: JSON.stringify(objects),
65
+ });
66
+ })));
67
+ console.log(chalk_1.default.green(`Upload succesfully.\n
68
+ Use the following URL in the Page Builder to start working with your component set:\n
69
+ ${url}`));
70
+ }))();
71
+ //# sourceMappingURL=bb-components-publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-components-publish.js","sourceRoot":"","sources":["../src/bb-components-publish.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,yCAAoC;AACpC,uCAAgD;AAEhD,iFAA8D;AAC9D,uEAAuE;AAEvE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,KAAK,CAAC,kBAAkB,CAAC;KACzB,IAAI,CAAC,uBAAuB,CAAC;KAC7B,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;KACvD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;AACnC,MAAM,OAAO,GAAW,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAEvE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACtD,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,IAAI,GAAG,CAAO,QAAgB,EAAiB,EAAE;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,mBAAQ,EAAC,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YAE1B,MAAM,IAAI,KAAK,CACb,eAAK,CAAC,GAAG,CACP;gBACE,yDAAyD;gBACzD,OAAO;aACR,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,KAAK,CAAC,GAAwB,EAAE;IAC9B,MAAM,IAAA,8CAAuB,GAAE,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAU,EAAC,GAAG,OAAO,mBAAmB,CAAC,CAAC;IACrE,MAAM,mBAAmB,GAAG,MAAM,IAAA,qBAAU,EAAC,GAAG,OAAO,gBAAgB,CAAC,CAAC;IAEzE,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,GAAG,CAAC,CAAO,QAAQ,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAA,iCAAO,EAAC;YACb,eAAe,EAAE,WAAW;YAC5B,UAAU,EAAE,IAAI;YAChB,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CACH,CAAC;IAEF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT;;EAEJ,GAAG,EAAE,CACF,CACF,CAAC;AACJ,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -0,0 +1,40 @@
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 chalk_1 = __importDefault(require("chalk"));
7
+ const commander_1 = require("commander");
8
+ const arguments_1 = require("./utils/arguments");
9
+ const serveComponentSet_1 = __importDefault(require("./utils/serveComponentSet"));
10
+ const program = new commander_1.Command();
11
+ const programOpts = program.opts();
12
+ program
13
+ .usage('[path]')
14
+ .name('bb components serve')
15
+ .option('-p, --port [port]', 'Port to listen on.', (value) => (0, arguments_1.parsePort)(value, 5002), 5002)
16
+ .option('--host [host]', 'Host to listen on.', 'localhost')
17
+ .option('--ssl', 'Serve using HTTPS.', false)
18
+ .option('--ssl-key [ssl-key]', 'SSL certificate to use for serving HTTPS.')
19
+ .option('--ssl-cert [ssl-cert]', 'SSL key to use for serving HTTPS.')
20
+ .option('--offline', 'skip update check')
21
+ .parse(process.argv);
22
+ const options = {
23
+ host: programOpts.host,
24
+ port: programOpts.port,
25
+ rootDir: (0, arguments_1.parseDir)(program.args),
26
+ ssl: programOpts.ssl,
27
+ sslCert: programOpts.sslCert,
28
+ sslKey: programOpts.sslKey,
29
+ };
30
+ const arg = process.argv.slice(2);
31
+ const hasOfflineFlag = arg.includes('--offline');
32
+ /* execute command */
33
+ (0, serveComponentSet_1.default)(options, hasOfflineFlag).then(() => {
34
+ const scheme = options.ssl ? 'https' : 'http';
35
+ const url = `${scheme}://${options.host}:${options.port}`;
36
+ console.info(chalk_1.default.green(`Serving the component set at ${url}`));
37
+ }, (error) => {
38
+ throw new Error(`Error: ${error}`);
39
+ });
40
+ //# sourceMappingURL=bb-components-serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-components-serve.js","sourceRoot":"","sources":["../src/bb-components-serve.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,yCAAoC;AAGpC,iDAAwD;AACxD,kFAA0D;AAE1D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAEnC,OAAO;KACJ,KAAK,CAAC,QAAQ,CAAC;KACf,IAAI,CAAC,qBAAqB,CAAC;KAC3B,MAAM,CACL,mBAAmB,EACnB,oBAAoB,EACpB,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,EACzC,IAAI,CACL;KACA,MAAM,CAAC,eAAe,EAAE,oBAAoB,EAAE,WAAW,CAAC;KAC1D,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KAC1E,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,CAAC;KACpE,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,OAAO,GAAiB;IAC5B,IAAI,EAAE,WAAW,CAAC,IAAc;IAChC,IAAI,EAAE,WAAW,CAAC,IAAc;IAChC,OAAO,EAAE,IAAA,oBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC;IAC/B,GAAG,EAAE,WAAW,CAAC,GAAc;IAC/B,OAAO,EAAE,WAAW,CAAC,OAAiB;IACtC,MAAM,EAAE,WAAW,CAAC,MAAgB;CACrC,CAAC;AAEF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEjD,qBAAqB;AACrB,IAAA,2BAAiB,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAC7C,GAAG,EAAE;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAE1D,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;IACR,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;AACrC,CAAC,CACF,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const commander_1 = require("commander");
4
+ const availableCommands = [
5
+ 'create',
6
+ 'build',
7
+ 'serve',
8
+ 'publish',
9
+ 'help',
10
+ 'generate',
11
+ 'publish-bundle',
12
+ ];
13
+ const program = new commander_1.Command();
14
+ program
15
+ .usage(`<${availableCommands.join('|')}>`)
16
+ .name('bb components')
17
+ .command('create <path>', 'create a new component set at path')
18
+ .command('build [path]', 'build the component set at a specific path, defaults to CWD')
19
+ .command('serve [path]', 'serve the component set at a specific path, defaults to CWD')
20
+ .command('publish-bundle [options] [path]', 'publish a bundle')
21
+ .command('publish [options] [path]', 'publish the component set from a specific path, defaults to CWD')
22
+ .command('generate [name]', 'generate a component with a given name')
23
+ .on('command:*', ([command]) => {
24
+ if (!availableCommands.includes(command)) {
25
+ console.error('Invalid command: %s\n', command);
26
+ program.outputHelp();
27
+ }
28
+ })
29
+ .parse(process.argv);
30
+ //# sourceMappingURL=bb-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-components.js","sourceRoot":"","sources":["../src/bb-components.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AAIpC,MAAM,iBAAiB,GAAwB;IAC7C,QAAQ;IACR,OAAO;IACP,OAAO;IACP,SAAS;IACT,MAAM;IACN,UAAU;IACV,gBAAgB;CACjB,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,eAAe,CAAC;KACrB,OAAO,CAAC,eAAe,EAAE,oCAAoC,CAAC;KAC9D,OAAO,CACN,cAAc,EACd,6DAA6D,CAC9D;KACA,OAAO,CACN,cAAc,EACd,6DAA6D,CAC9D;KACA,OAAO,CAAC,iCAAiC,EAAE,kBAAkB,CAAC;KAC9D,OAAO,CACN,0BAA0B,EAC1B,iEAAiE,CAClE;KACA,OAAO,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;KACpE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAW,EAAQ,EAAE;IAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAA4B,CAAC,EAAE,CAAC;QAC9D,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"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /* npm dependencies */
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 child_process_1 = require("child_process");
8
+ const commander_1 = require("commander");
9
+ const fs_extra_1 = __importDefault(require("fs-extra"));
10
+ const os_1 = __importDefault(require("os"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const acquireCustomFunctionsProject_1 = __importDefault(require("./functions/acquireCustomFunctionsProject"));
13
+ const rootDir_1 = __importDefault(require("./utils/rootDir"));
14
+ const program = new commander_1.Command();
15
+ program.name('bb functions build').parse(process.argv);
16
+ /* execute command */
17
+ const workingDir = process.cwd();
18
+ const identifier = (0, acquireCustomFunctionsProject_1.default)(workingDir);
19
+ console.log(`Building ${identifier}.bettyblocks.com bundle (this can take a while) ...`);
20
+ new Promise((resolve) => {
21
+ const packerDir = path_1.default.join((0, rootDir_1.default)(), 'assets', 'functions', 'packer');
22
+ const buildDir = path_1.default.join(os_1.default.tmpdir(), identifier);
23
+ const sourceSrc = path_1.default.join(workingDir, 'src');
24
+ const targetSrc = path_1.default.join(buildDir, 'src');
25
+ const sourcePackage = path_1.default.join(workingDir, 'package.json');
26
+ const targetPackage = path_1.default.join(buildDir, 'package.json');
27
+ const sourceConfig = path_1.default.join(workingDir, 'webpack.config.js');
28
+ const targetConfig = path_1.default.join(buildDir, 'webpack.config.js');
29
+ if (!fs_extra_1.default.pathExistsSync(sourceConfig)) {
30
+ fs_extra_1.default.copySync(path_1.default.join(packerDir, 'webpack.config.js'), sourceConfig);
31
+ }
32
+ fs_extra_1.default.emptyDir(buildDir, (err) => {
33
+ if (err) {
34
+ console.log(`${err.message}. Abort.`);
35
+ }
36
+ fs_extra_1.default.copySync(packerDir, buildDir);
37
+ fs_extra_1.default.copySync(sourceSrc, targetSrc);
38
+ fs_extra_1.default.copySync(sourceConfig, targetConfig);
39
+ const sourceJson = fs_extra_1.default.readJsonSync(sourcePackage);
40
+ const targetJson = fs_extra_1.default.readJsonSync(targetPackage);
41
+ targetJson.dependencies = Object.assign(Object.assign({}, targetJson.dependencies), sourceJson.dependencies);
42
+ fs_extra_1.default.writeFileSync(targetPackage, JSON.stringify(targetJson, null, 2));
43
+ const build = (0, child_process_1.spawn)(`cd ${buildDir} && npm install && npm run build`, {
44
+ shell: true,
45
+ });
46
+ build.stdout.pipe(process.stdout);
47
+ build.stderr.pipe(process.stderr);
48
+ build.on('close', resolve);
49
+ });
50
+ })
51
+ .then(() => {
52
+ console.log('Done.');
53
+ })
54
+ .catch((err) => {
55
+ console.log(`${err}\nAbort.`);
56
+ process.exit();
57
+ });
58
+ //# sourceMappingURL=bb-functions-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-build.js","sourceRoot":"","sources":["../src/bb-functions-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
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 prompts_1 = __importDefault(require("prompts"));
20
+ const functionDefinitions_1 = require("./functions/functionDefinitions");
21
+ const program = new commander_1.Command();
22
+ program.name('bb functions bump');
23
+ const check = chalk_1.default.green(`✔`);
24
+ const cross = chalk_1.default.red(`✖`);
25
+ const workingDir = process.cwd();
26
+ const baseFunctionsPath = path_1.default.join(workingDir, 'functions');
27
+ const collectBumpInput = () => __awaiter(void 0, void 0, void 0, function* () {
28
+ const functionDir = (functionPath) => path_1.default.basename(path_1.default.dirname(path_1.default.dirname(functionPath)));
29
+ const versionedFunctions = (0, functionDefinitions_1.functionDefinitions)(baseFunctionsPath);
30
+ const functions = versionedFunctions.reduce((acc, { schema: { label }, path: functionPath }) => {
31
+ const name = functionDir(functionPath);
32
+ acc[name] = label;
33
+ return acc;
34
+ }, {});
35
+ const dirName = (yield (0, prompts_1.default)({
36
+ choices: Object.keys(functions).map((name) => ({
37
+ title: functions[name],
38
+ value: name,
39
+ })),
40
+ initial: 0,
41
+ message: 'Which function do you want to bump?',
42
+ name: 'functionName',
43
+ type: 'select',
44
+ })).functionName;
45
+ const [[major, minor]] = versionedFunctions
46
+ .filter(({ path: functionPath }) => functionDir(functionPath) === dirName)
47
+ .sort(({ version: a }, { version: b }) => parseFloat(a) - parseFloat(b))
48
+ .slice(-1)
49
+ .map(({ version }) => version.split('.').map(Number));
50
+ const majorVersion = `${major + 1}.0`;
51
+ const minorVersion = `${major}.${minor + 1}`;
52
+ const { bumpMajor } = (yield (0, prompts_1.default)({
53
+ active: majorVersion,
54
+ inactive: minorVersion,
55
+ initial: false,
56
+ message: `To which version do you want to bump your function?`,
57
+ name: 'bumpMajor',
58
+ type: 'toggle',
59
+ }));
60
+ return {
61
+ currentVersion: `${major}.${minor}`,
62
+ dirName,
63
+ newVersion: bumpMajor ? majorVersion : minorVersion,
64
+ };
65
+ });
66
+ void (() => __awaiter(void 0, void 0, void 0, function* () {
67
+ const { dirName, newVersion, currentVersion } = yield collectBumpInput();
68
+ const sourceDir = path_1.default.join(workingDir, 'functions', dirName, currentVersion);
69
+ const targetDir = path_1.default.join(workingDir, 'functions', dirName, newVersion);
70
+ try {
71
+ fs_extra_1.default.copySync(sourceDir, targetDir);
72
+ console.log(`${check} Version bumped to ${path_1.default.join(dirName, newVersion)}`);
73
+ }
74
+ catch (_a) {
75
+ console.log(`${cross} Failed to bump version to ${path_1.default.join(dirName, newVersion)}`);
76
+ }
77
+ }))();
78
+ //# sourceMappingURL=bb-functions-bump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-bump.js","sourceRoot":"","sources":["../src/bb-functions-bump.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
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 chalk_1 = __importDefault(require("chalk"));
7
+ const commander_1 = require("commander");
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const rootDir_1 = __importDefault(require("./utils/rootDir"));
11
+ const program = new commander_1.Command();
12
+ program
13
+ .usage('[identifier]')
14
+ .name('bb functions init')
15
+ .option('-a, --app', 'Initialize an app functions project.')
16
+ .parse(process.argv);
17
+ const initAppFunctions = program.opts().app;
18
+ const { args } = program;
19
+ if (args.length !== 1) {
20
+ console.log(chalk_1.default.red('Please provide the identifier (subdomain) of your application.'));
21
+ process.exit();
22
+ }
23
+ const [identifier] = args;
24
+ const workingDir = process.cwd();
25
+ const targetDir = path_1.default.join(workingDir, identifier);
26
+ fs_extra_1.default.access(targetDir, fs_extra_1.default.constants.F_OK, (err) => {
27
+ if (err && err.code === 'ENOENT') {
28
+ let type;
29
+ let actions;
30
+ let commands;
31
+ let sourceDir;
32
+ if (initAppFunctions) {
33
+ type = 'app functions';
34
+ actions = 'publish';
35
+ commands = '';
36
+ sourceDir = path_1.default.join((0, rootDir_1.default)(), 'assets', 'app-functions', 'templates');
37
+ fs_extra_1.default.copySync(sourceDir, targetDir);
38
+ }
39
+ else {
40
+ type = 'functions';
41
+ actions = 'build and/or publish';
42
+ commands = 'bb functions build\n ';
43
+ sourceDir = path_1.default.join((0, rootDir_1.default)(), 'assets', 'functions', 'templates');
44
+ fs_extra_1.default.copySync(sourceDir, targetDir);
45
+ fs_extra_1.default.copySync(path_1.default.join((0, rootDir_1.default)(), 'assets', 'functions', 'packer', 'webpack.config.js'), path_1.default.join(targetDir, 'webpack.config.js'));
46
+ }
47
+ console.log(`Initialized ${type} project in ${targetDir}.
48
+ You can use "bb functions" to ${actions} it:
49
+
50
+ cd ${identifier}
51
+ ${commands}bb functions publish
52
+ `);
53
+ }
54
+ else {
55
+ console.log(`The directory "${targetDir}" already exists. Abort.`);
56
+ }
57
+ });
58
+ //# sourceMappingURL=bb-functions-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb-functions-init.js","sourceRoot":"","sources":["../src/bb-functions-init.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,yCAAoC;AACpC,wDAA0B;AAC1B,gDAAwB;AAExB,8DAAsC;AAEtC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,KAAK,CAAC,cAAc,CAAC;KACrB,IAAI,CAAC,mBAAmB,CAAC;KACzB,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC;KAC3D,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;AAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAC5E,CAAC;IACF,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAEpD,kBAAE,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAiC,EAAE,EAAE;IAC5E,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC;QACT,IAAI,OAAO,CAAC;QACZ,IAAI,QAAQ,CAAC;QACb,IAAI,SAAS,CAAC;QAEd,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,GAAG,eAAe,CAAC;YACvB,OAAO,GAAG,SAAS,CAAC;YACpB,QAAQ,GAAG,EAAE,CAAC;YACd,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,iBAAO,GAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;YACzE,kBAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,WAAW,CAAC;YACnB,OAAO,GAAG,sBAAsB,CAAC;YACjC,QAAQ,GAAG,0BAA0B,CAAC;YACtC,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,iBAAO,GAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACrE,kBAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAClC,kBAAE,CAAC,QAAQ,CACT,cAAI,CAAC,IAAI,CACP,IAAA,iBAAO,GAAE,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,mBAAmB,CACpB,EACD,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,eAAe,SAAS;gCAC3B,OAAO;;SAE9B,UAAU;MACb,QAAQ;CACb,CAAC,CAAC;IACD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,0BAA0B,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC,CAAC"}