@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,189 @@
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.zipFunctionDefinitions = exports.whitelistedFunctions = exports.stringifyDefinitions = exports.newFunctionDefinition = exports.isFunctionVersion = exports.isFunctionDefinition = exports.generateIndex = exports.functionDirs = exports.functionDefinitions = exports.functionDefinitionPath = exports.functionDefinition = void 0;
7
+ const adm_zip_1 = __importDefault(require("adm-zip"));
8
+ const case_1 = require("case");
9
+ const fs_extra_1 = __importDefault(require("fs-extra"));
10
+ const glob_1 = __importDefault(require("glob"));
11
+ const path_1 = __importDefault(require("path"));
12
+ /* @doc functionDefinitionPath
13
+ Expands the function dir with `function.json`.
14
+ */
15
+ const functionDefinitionPath = (functionPath) => path_1.default.join(functionPath, 'function.json');
16
+ exports.functionDefinitionPath = functionDefinitionPath;
17
+ /* @doc functionImplementationPath
18
+ Expands the function dir with `index.js`.
19
+ */
20
+ const functionImplementationPath = (functionPath) => path_1.default.join(functionPath, 'index.js');
21
+ /* @doc isFunctionDefinition
22
+ Checks the given functions dir for a file named function.json.
23
+ Returns true if the file exists.
24
+ */
25
+ const isFunctionDefinition = (functionPath) => fs_extra_1.default.pathExistsSync(functionDefinitionPath(functionPath));
26
+ exports.isFunctionDefinition = isFunctionDefinition;
27
+ /* @doc isFunctionVersion
28
+ Checks the given functions dir to be a function version.
29
+ Returns true if applies to versioning conventions.
30
+ */
31
+ const isFunctionVersion = (functionPath, functionsDir) => !!path_1.default.basename(functionPath).match(/^\d+\.\d+$/) &&
32
+ parseFloat(path_1.default.basename(functionPath)) >= 1.0 &&
33
+ path_1.default.dirname(path_1.default.dirname(functionPath)) === functionsDir;
34
+ exports.isFunctionVersion = isFunctionVersion;
35
+ /* @doc isFunction
36
+ Checks the given functions dir for a file named index.js.
37
+ Returns true if the file exists.
38
+ */
39
+ const isFunction = (functionPath) => fs_extra_1.default.pathExistsSync(functionImplementationPath(functionPath));
40
+ /* @doc functionDirs
41
+ Returns a list of directories inside the given functionsDir that have a function.json and index.js.
42
+ */
43
+ const functionDirs = (functionsDir, includeNonversioned = false) => glob_1.default
44
+ .sync(path_1.default.join(functionsDir, '**', 'function.json').replace(/\\/g, '/'))
45
+ .reduce((dirs, functionDefinition) => {
46
+ const dir = path_1.default.dirname(functionDefinition).replace(/\//g, path_1.default.sep);
47
+ if (isFunction(dir) &&
48
+ (includeNonversioned || isFunctionVersion(dir, functionsDir))) {
49
+ dirs.push(dir);
50
+ }
51
+ return dirs;
52
+ }, []);
53
+ exports.functionDirs = functionDirs;
54
+ /* @doc functionDefinition
55
+ Reads the function.json from the given directory.
56
+ Returns the parsed function.json as object.
57
+ */
58
+ const functionDefinition = (functionPath, functionsDir) => {
59
+ let name = '';
60
+ let version = '';
61
+ if (isFunctionVersion(functionPath, functionsDir)) {
62
+ name = (0, case_1.camel)(path_1.default.basename(path_1.default.dirname(functionPath)));
63
+ version = path_1.default.basename(functionPath);
64
+ }
65
+ else {
66
+ name = (0, case_1.camel)(path_1.default.basename(functionPath));
67
+ }
68
+ const filePath = functionDefinitionPath(functionPath);
69
+ const schema = fs_extra_1.default.readJSONSync(filePath);
70
+ try {
71
+ return {
72
+ name,
73
+ path: filePath,
74
+ schema,
75
+ version,
76
+ };
77
+ }
78
+ catch (err) {
79
+ throw new Error(`could not load json from ${filePath}: ${err}`);
80
+ }
81
+ };
82
+ exports.functionDefinition = functionDefinition;
83
+ /* @doc functionDefinitions
84
+ Returns an object containing all function.json definitions
85
+ inside the given functionsDir, indexed by function name.
86
+ */
87
+ const functionDefinitions = (functionsDir, includeNonversioned = false) => functionDirs(functionsDir, includeNonversioned).map((functionDir) => functionDefinition(functionDir, functionsDir));
88
+ exports.functionDefinitions = functionDefinitions;
89
+ const stringifyDefinitions = (definitions) => {
90
+ const updatedDefinitions = definitions.map(({ name, version, schema }) => {
91
+ var _a, _b;
92
+ return (Object.assign(Object.assign({ name,
93
+ version }, schema), { options: JSON.stringify((_a = schema.options) !== null && _a !== void 0 ? _a : []), paths: JSON.stringify((_b = schema.paths) !== null && _b !== void 0 ? _b : {}) }));
94
+ });
95
+ return JSON.stringify(updatedDefinitions);
96
+ };
97
+ exports.stringifyDefinitions = stringifyDefinitions;
98
+ /* @doc newFunctionDefinition
99
+ Creates a new folder for the given name and fills that folder with a function.json file
100
+ and an index.js.
101
+ */
102
+ const newFunctionDefinition = (functionsDir, functionName) => {
103
+ const functionDefName = functionName.replace(/-./g, (x) => x.toUpperCase()[1]);
104
+ const functionDir = path_1.default.join(functionsDir, functionName, '1.0');
105
+ try {
106
+ fs_extra_1.default.mkdirpSync(functionDir);
107
+ fs_extra_1.default.writeJSONSync(functionDefinitionPath(functionDir), {
108
+ category: 'Misc',
109
+ description: 'Description',
110
+ icon: { color: 'Orange', name: 'ActionsIcon' },
111
+ label: (0, case_1.title)(functionName),
112
+ options: [],
113
+ yields: 'NONE',
114
+ }, { spaces: 2 });
115
+ fs_extra_1.default.writeFileSync(path_1.default.join(functionDir, 'index.js'), `const ${functionDefName} = async () => {\n\n}\n\nexport default ${functionDefName};`);
116
+ }
117
+ catch (err) {
118
+ throw new Error(`could not initialize new function ${functionDir}: ${err}`);
119
+ }
120
+ };
121
+ exports.newFunctionDefinition = newFunctionDefinition;
122
+ const toVariableName = ({ name, version }) => `${(0, case_1.camel)(name)}_${version.replace('.', '_')}`;
123
+ /* @doc importFunctions
124
+ Returns an array of strings, each item being an imported function:
125
+ `import { default as functionName_1_0 } from './function-name/1.0';`;
126
+ */
127
+ const importFunctions = (definitions, functionsPath) => definitions.map((definition) => `import { default as ${toVariableName(definition)} } from '${path_1.default
128
+ .dirname(definition.path.replace(functionsPath, `./${path_1.default.basename(functionsPath)}`))
129
+ .replace(/\\/g, '/')}';`);
130
+ /* @doc exportFunctions
131
+ Returns a string in which functions will be exported in an object;
132
+ */
133
+ const exportFunctions = (definitions) => {
134
+ const exports = definitions.map((definition) => {
135
+ const { name, version } = definition;
136
+ return ` "${name} ${version}": ${toVariableName(definition)},`;
137
+ });
138
+ return ['const fn = {', ...exports, '};', '', 'export default fn;'];
139
+ };
140
+ /* @doc whitelistedFunctions
141
+ Returns an array containing all functions based on the whitelist.
142
+ */
143
+ const whitelistedFunctions = (definitions, whitelist) => whitelist.map((whitelisted) => {
144
+ const definition = definitions.find((def) => [def.name, def.version].join(' ') === whitelisted);
145
+ if (!definition)
146
+ throw new Error(`Function ${whitelisted} could not be found. Check if function and version exists.`);
147
+ return definition;
148
+ });
149
+ exports.whitelistedFunctions = whitelistedFunctions;
150
+ /* @doc generateIndex
151
+ Fetches all functions and re-exports them.
152
+ Returns the result as a Buffer.
153
+ */
154
+ const generateIndex = (functionsPath, whitelist) => {
155
+ const definitions = functionDefinitions(functionsPath);
156
+ const functions = whitelist
157
+ ? whitelistedFunctions(definitions, whitelist)
158
+ : definitions;
159
+ const code = [];
160
+ code.push(...importFunctions(functions, functionsPath));
161
+ code.push('');
162
+ code.push(...exportFunctions(functions));
163
+ code.push('');
164
+ return code.join('\n');
165
+ };
166
+ exports.generateIndex = generateIndex;
167
+ /* @doc zipFunctionDefinitions
168
+ Takes functionsPath as path to a directory with function definitions.
169
+ Scans each directory for a function.json file, and if present adds it
170
+ to the zip file. Generates an index.js and adds it to the zip file.
171
+ Returns path to the zip file.
172
+ */
173
+ const zipFunctionDefinitions = (functionsPath, includes) => {
174
+ const zip = new adm_zip_1.default();
175
+ const tmpDir = '.tmp';
176
+ const zipFilePath = path_1.default.join(tmpDir, 'app.zip');
177
+ const cwd = path_1.default.dirname(functionsPath);
178
+ fs_extra_1.default.ensureDirSync(tmpDir);
179
+ zip.addLocalFile(path_1.default.join(path_1.default.dirname(functionsPath), 'package.json'));
180
+ zip.addFile('index.js', Buffer.from(generateIndex(functionsPath)));
181
+ zip.addLocalFolder(functionsPath, functionsPath.replace(cwd, ''));
182
+ (includes !== null && includes !== void 0 ? includes : []).forEach((include) => {
183
+ zip.addLocalFolder(path_1.default.join(cwd, include), include);
184
+ });
185
+ zip.writeZip(zipFilePath);
186
+ return zipFilePath;
187
+ };
188
+ exports.zipFunctionDefinitions = zipFunctionDefinitions;
189
+ //# sourceMappingURL=functionDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionDefinitions.js","sourceRoot":"","sources":["../../src/functions/functionDefinitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
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.convert = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const functionDefinitions_1 = require("./functionDefinitions");
11
+ const check = chalk_1.default.green(`✔`);
12
+ const convert = (functionsPath) => {
13
+ const checkStart = (0, ora_1.default)('Checking for function icons to convert ...').start();
14
+ (0, functionDefinitions_1.functionDirs)(functionsPath, true).forEach((functionPath) => {
15
+ const definition = (0, functionDefinitions_1.functionDefinition)(functionPath, functionsPath);
16
+ const { name, version } = definition;
17
+ const fn = `${name}-${version}`;
18
+ if (typeof definition.schema.icon === 'string') {
19
+ const icons = {
20
+ AuthenticateIcon: { color: 'Teal', name: 'UserArrowInIcon' },
21
+ ConditionIcon: { color: 'Yellow', name: 'ConditionIcon' },
22
+ CreateIcon: { color: 'Green', name: 'PlusIcon' },
23
+ DeleteIcon: { color: 'Pink', name: 'TrashIcon' },
24
+ EmailIcon: { color: 'Orange', name: 'AtIcon' },
25
+ FinishFlagIcon: { color: 'Grey', name: 'FinishIcon' },
26
+ HttpRequestIcon: { color: 'Orange', name: 'CloudIcon' },
27
+ LogsIcon: { color: 'Orange', name: 'FileLogIcon' },
28
+ LoopIcon: { color: 'Blue', name: 'LoopIcon' },
29
+ UpdateIcon: { color: 'Green', name: 'ArrowClockwiseIcon' },
30
+ UploadIcon: { color: 'Orange', name: 'UploadIcon' },
31
+ };
32
+ definition.schema.icon = icons[definition.schema.icon] || {
33
+ color: 'Orange',
34
+ name: 'ActionsIcon',
35
+ };
36
+ fs_extra_1.default.writeJSONSync((0, functionDefinitions_1.functionDefinitionPath)(functionPath), definition.schema, {
37
+ spaces: 2,
38
+ });
39
+ console.log(`${check} Converted: ${fn} => ${JSON.stringify(definition.schema.icon)}`);
40
+ }
41
+ else {
42
+ console.log(`${check} Skipped: ${fn}`);
43
+ }
44
+ });
45
+ checkStart.succeed('Done.');
46
+ };
47
+ exports.convert = convert;
48
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/functions/icons.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,wDAA0B;AAC1B,8CAAsB;AAEtB,+DAI+B;AAI/B,MAAM,KAAK,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE/B,MAAM,OAAO,GAAG,CAAC,aAAqB,EAAQ,EAAE;IAC9C,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,4CAA4C,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7E,IAAA,kCAAY,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,IAAA,wCAAkB,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QACrC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QAEhC,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAU;gBACnB,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBAC5D,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE;gBACzD,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;gBAChD,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;gBAChD,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC9C,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;gBACrD,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;gBACvD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE;gBAClD,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;gBAC7C,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBAC1D,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;aACpD,CAAC;YAEF,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;gBACxD,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,aAAa;aACpB,CAAC;YAEF,kBAAE,CAAC,aAAa,CACd,IAAA,4CAAsB,EAAC,YAAY,CAAC,EACpC,UAAU,CAAC,MAAM,EACjB;gBACE,MAAM,EAAE,CAAC;aACV,CACF,CAAC;YAEF,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,eAAe,EAAE,OAAO,IAAI,CAAC,SAAS,CAC5C,UAAU,CAAC,MAAM,CAAC,IAAI,CACvB,EAAE,CACJ,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,aAAa,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEO,0BAAO"}
@@ -0,0 +1,108 @@
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
+ exports.logResult = void 0;
16
+ const chalk_1 = __importDefault(require("chalk"));
17
+ const form_data_1 = __importDefault(require("form-data"));
18
+ const fs_extra_1 = __importDefault(require("fs-extra"));
19
+ const node_fetch_1 = __importDefault(require("node-fetch"));
20
+ const path_1 = __importDefault(require("path"));
21
+ const login_1 = __importDefault(require("../utils/login"));
22
+ const config_1 = __importDefault(require("./config"));
23
+ const functionDefinitions_1 = require("./functionDefinitions");
24
+ const workingDir = process.cwd();
25
+ const logResult = ({ status, name, version, error }, operation) => {
26
+ const delimiter = version ? '-' : '';
27
+ if (status === 'ok') {
28
+ console.log(`${chalk_1.default.green(`✔`)} ${operation} ${name}${delimiter}${version !== null && version !== void 0 ? version : ''}.`);
29
+ }
30
+ else {
31
+ console.log(`${chalk_1.default.red(`✖`)} ${operation} ${name}${delimiter}${version !== null && version !== void 0 ? version : ''} failed. Errors: ${JSON.stringify(error)}.`);
32
+ }
33
+ };
34
+ exports.logResult = logResult;
35
+ const uploadAppFunctions = (functionDefinitionsFile, functionsJson, config) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const fusionAuth = new login_1.default(config);
37
+ const form = new form_data_1.default();
38
+ form.append('functions', functionsJson);
39
+ form.append('options', JSON.stringify({ compile: !config.skipCompile }));
40
+ form.append('file', fs_extra_1.default.createReadStream(functionDefinitionsFile));
41
+ const applicationId = yield config.applicationId();
42
+ if (!applicationId) {
43
+ throw new Error("Couldn't publish functions, Error: application id not found");
44
+ }
45
+ const url = `${config.builderApiUrl}/artifacts/actions/${applicationId}/functions`;
46
+ return (0, node_fetch_1.default)(url, {
47
+ agent: config.agent,
48
+ body: form,
49
+ headers: {
50
+ Authorization: `Bearer ${fusionAuth.jwt()}`,
51
+ },
52
+ method: 'POST',
53
+ }).then((res) => __awaiter(void 0, void 0, void 0, function* () {
54
+ switch (res.status) {
55
+ case 401:
56
+ case 403: {
57
+ yield fusionAuth.ensureLogin();
58
+ return uploadAppFunctions(functionDefinitionsFile, functionsJson, config);
59
+ }
60
+ case 201: {
61
+ const { created, updated, deleted, compiled } = (yield res.json());
62
+ created.forEach((result) => (0, exports.logResult)(result, 'Create:'));
63
+ updated.forEach((result) => (0, exports.logResult)(result, 'Update:'));
64
+ deleted.forEach((result) => (0, exports.logResult)(result, 'Delete:'));
65
+ if (!config.skipCompile) {
66
+ const compiledStatus = compiled ? 'ok' : 'error';
67
+ (0, exports.logResult)({ name: 'triggered', status: compiledStatus }, 'Compilation');
68
+ }
69
+ return {
70
+ message: 'Your functions are published to your application.',
71
+ success: true,
72
+ };
73
+ }
74
+ case 409: {
75
+ const { created, updated, deleted, message } = (yield res.json());
76
+ created.forEach((result) => (0, exports.logResult)(result, 'Create:'));
77
+ updated.forEach((result) => (0, exports.logResult)(result, 'Update:'));
78
+ deleted.forEach((result) => (0, exports.logResult)(result, 'Delete:'));
79
+ return {
80
+ message: message !== null && message !== void 0 ? message : '409 Conflict',
81
+ success: false,
82
+ };
83
+ }
84
+ default:
85
+ throw new Error(`Couldn't publish functions, Error: ${res.status},${yield res.text()}`);
86
+ }
87
+ }));
88
+ });
89
+ const publishFunctions = (config) => __awaiter(void 0, void 0, void 0, function* () {
90
+ const functionsDir = path_1.default.join(workingDir, 'functions');
91
+ const zipFile = (0, functionDefinitions_1.zipFunctionDefinitions)(functionsDir, config.includes);
92
+ const functions = (0, functionDefinitions_1.functionDefinitions)(functionsDir);
93
+ const functionsJson = (0, functionDefinitions_1.stringifyDefinitions)(functions);
94
+ const { success, message } = yield uploadAppFunctions(zipFile, functionsJson, config);
95
+ if (success) {
96
+ console.log(`\n${chalk_1.default.green.underline(`✔ ${message}`)}`);
97
+ }
98
+ else {
99
+ console.log(`\n${chalk_1.default.red.underline(`✖ ${message}`)}`);
100
+ }
101
+ });
102
+ const publishAppFunctions = (_a) => __awaiter(void 0, [_a], void 0, function* ({ skipCompile, }) {
103
+ const config = new config_1.default({ skipCompile });
104
+ console.log(chalk_1.default.bold(`\nPublishing to ${config.host} (${config.zone})`));
105
+ yield publishFunctions(config);
106
+ });
107
+ exports.default = publishAppFunctions;
108
+ //# sourceMappingURL=publishAppFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishAppFunctions.js","sourceRoot":"","sources":["../../src/functions/publishAppFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
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 child_process_1 = require("child_process");
16
+ const fs_extra_1 = __importDefault(require("fs-extra"));
17
+ const ora_1 = __importDefault(require("ora"));
18
+ const os_1 = __importDefault(require("os"));
19
+ const path_1 = __importDefault(require("path"));
20
+ const vm_1 = __importDefault(require("vm"));
21
+ const ide_1 = __importDefault(require("../utils/ide"));
22
+ const config_1 = __importDefault(require("./config"));
23
+ const publishFunctions_1 = require("./publishFunctions");
24
+ const workingDir = process.cwd();
25
+ const groomMetaData = (config) => __awaiter(void 0, void 0, void 0, function* () {
26
+ console.log('Grooming functions.json ...');
27
+ const buildDir = path_1.default.join(os_1.default.tmpdir(), config.buildDir);
28
+ const customJsFile = path_1.default.join(buildDir, 'dist', 'custom.js');
29
+ const customJs = fs_extra_1.default.readFileSync(customJsFile, 'utf8');
30
+ const script = new vm_1.default.Script(`${customJs}; fn = custom;`);
31
+ const ctx = { fn: {} };
32
+ script.runInNewContext(ctx);
33
+ const customFunctions = ctx.fn;
34
+ const functionsJsonFile = path_1.default.join(workingDir, 'functions.json');
35
+ const metaData = fs_extra_1.default.readJsonSync(functionsJsonFile);
36
+ const groomedMetaData = yield Object.keys(customFunctions).reduce((promise, name) => __awaiter(void 0, void 0, void 0, function* () {
37
+ return promise.then((groomed) => __awaiter(void 0, void 0, void 0, function* () {
38
+ groomed[name] = metaData[name];
39
+ if (!groomed[name]) {
40
+ const matches = customFunctions[name]
41
+ .toString()
42
+ .match(/await context\((["'])(.*?)\1\)/g);
43
+ const defaultInputVariables = (matches !== null && matches !== void 0 ? matches : [])
44
+ .map((m) => `${m.slice(15, -2)}:string`)
45
+ .join(' ');
46
+ groomed = yield (0, publishFunctions_1.resolveMissingFunction)({
47
+ defaultInputVariables,
48
+ groomed,
49
+ metaData,
50
+ name,
51
+ });
52
+ }
53
+ return groomed;
54
+ }));
55
+ }), Promise.resolve({}));
56
+ fs_extra_1.default.writeFileSync(functionsJsonFile, JSON.stringify(groomedMetaData, null, 2));
57
+ return groomedMetaData;
58
+ });
59
+ const publishFunctions = (config, metaData, bumpRevision) => __awaiter(void 0, void 0, void 0, function* () {
60
+ const ide = new ide_1.default(config);
61
+ const revision = yield (0, publishFunctions_1.storeCustomFunctions)(ide, metaData, bumpRevision);
62
+ const buildDir = path_1.default.join(os_1.default.tmpdir(), config.buildDir);
63
+ const customJsFile = path_1.default.join(buildDir, 'dist', 'custom.js');
64
+ yield ide.post(`custom_functions/${revision}`, { multiPartData: [{ file: customJsFile, name: 'code' }] }, `Uploading "${revision}.js" ...`);
65
+ const actions = (yield ide.get('actions'));
66
+ yield actions.reduce((promise_1, _a) => __awaiter(void 0, [promise_1, _a], void 0, function* (promise, { id, use_new_runtime, description }) {
67
+ yield promise;
68
+ if (use_new_runtime) {
69
+ return ide.put(`actions/${id}`, { json: { record: { description } } }, `Compiling action "${description}" ...`);
70
+ }
71
+ return Promise.resolve(null);
72
+ }), Promise.resolve(null));
73
+ });
74
+ const cleanMetaData = () => {
75
+ const functionsJsonFile = path_1.default.join(workingDir, 'functions.json');
76
+ const metaData = fs_extra_1.default.readJsonSync(functionsJsonFile);
77
+ Object.keys(metaData).forEach((name) => {
78
+ delete metaData[name].replace;
79
+ });
80
+ fs_extra_1.default.writeFileSync(functionsJsonFile, JSON.stringify(metaData, null, 2));
81
+ };
82
+ const publishCustomFunctions = (host, bumpRevision, skipBuild) => {
83
+ const config = new config_1.default();
84
+ console.log(`Publishing to ${config.host} (${config.zone}) ...`);
85
+ new Promise((resolve) => {
86
+ if (skipBuild) {
87
+ resolve(undefined);
88
+ }
89
+ else {
90
+ const building = (0, ora_1.default)(`Building custom functions bundle (this can take a while) ...`).start();
91
+ const build = (0, child_process_1.spawn)('bb functions build', {
92
+ shell: true,
93
+ });
94
+ build.on('close', () => {
95
+ building.succeed();
96
+ resolve(undefined);
97
+ });
98
+ }
99
+ })
100
+ .then(() => groomMetaData(config))
101
+ .then((metaData) => publishFunctions(config, metaData, bumpRevision))
102
+ .then(cleanMetaData)
103
+ .then(() => {
104
+ console.log('Done.');
105
+ })
106
+ .catch((error) => {
107
+ throw new Error(`${error}\nAbort.`);
108
+ });
109
+ };
110
+ exports.default = publishCustomFunctions;
111
+ //# sourceMappingURL=publishCustomFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishCustomFunctions.js","sourceRoot":"","sources":["../../src/functions/publishCustomFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
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
+ exports.storeCustomFunctions = exports.resolveMissingFunction = void 0;
16
+ const prompts_1 = __importDefault(require("prompts"));
17
+ const resolveMissingFunction = (_a) => __awaiter(void 0, [_a], void 0, function* ({ defaultInputVariables, groomed, metaData, name, }) {
18
+ const { replace } = (yield (0, prompts_1.default)({
19
+ active: 'replace',
20
+ inactive: 'add',
21
+ initial: false,
22
+ message: `Function "${name}" is missing. What do you want to do?`,
23
+ name: 'replace',
24
+ type: 'toggle',
25
+ }));
26
+ if (replace) {
27
+ const choices = Object.keys(metaData).filter((key) => !groomed[key]);
28
+ let replacedFunction;
29
+ if (choices.length === 1) {
30
+ const confirm = yield (0, prompts_1.default)({
31
+ initial: true,
32
+ message: `Replace "${choices[0]}"?`,
33
+ name: 'value',
34
+ type: 'confirm',
35
+ });
36
+ if (confirm.value)
37
+ [replacedFunction] = choices;
38
+ else
39
+ throw new Error('Abort.');
40
+ }
41
+ else {
42
+ replacedFunction = (yield (0, prompts_1.default)({
43
+ choices: choices.map((key) => ({ title: key, value: key })),
44
+ initial: 0,
45
+ message: 'Replace',
46
+ name: 'value',
47
+ type: 'select',
48
+ })).value;
49
+ }
50
+ groomed[name] = metaData[replacedFunction];
51
+ groomed[name].replace = replacedFunction;
52
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
53
+ delete metaData[replacedFunction];
54
+ }
55
+ else {
56
+ const { returnType, inputVariables } = yield (0, prompts_1.default)([
57
+ {
58
+ choices: [
59
+ { title: 'string', value: 'string' },
60
+ { title: 'integer', value: 'integer' },
61
+ { title: 'boolean', value: 'boolean' },
62
+ ],
63
+ initial: 0,
64
+ message: `What is the return type of the function?`,
65
+ name: 'returnType',
66
+ type: 'select',
67
+ },
68
+ {
69
+ initial: defaultInputVariables,
70
+ message: 'What are the input variables? (`name:type name:type ...`)',
71
+ name: 'inputVariables',
72
+ type: 'text',
73
+ },
74
+ ]);
75
+ groomed[name] = {
76
+ inputVariables: inputVariables
77
+ .split(/(\s|,)/)
78
+ .reduce((variables, variable) => {
79
+ if (variable.length) {
80
+ const [varName, varType] = variable.split(':');
81
+ variables[varName] = varType;
82
+ }
83
+ return variables;
84
+ }, {}),
85
+ returnType,
86
+ };
87
+ }
88
+ return groomed;
89
+ });
90
+ exports.resolveMissingFunction = resolveMissingFunction;
91
+ const storeCustomFunctions = (ide, metaData, bumpRevision) => __awaiter(void 0, void 0, void 0, function* () {
92
+ const customFunctions = (yield ide.get('bootstrap/custom_functions'));
93
+ const revision = customFunctions.reduce((rev, func) => Math.max(rev, func.revision), 0) +
94
+ (bumpRevision ? 1 : 0);
95
+ const ids = customFunctions.reduce((map, { id, name }) => (Object.assign(Object.assign({}, map), { [name]: id })), {});
96
+ yield Object.keys(metaData).reduce((promise, name) => __awaiter(void 0, void 0, void 0, function* () {
97
+ yield promise;
98
+ const { replace, returnType, inputVariables } = metaData[name];
99
+ const id = ids[replace !== null && replace !== void 0 ? replace : name];
100
+ const method = id ? 'put' : 'post';
101
+ const action = id ? 'Updating' : 'Creating';
102
+ const params = {
103
+ input_variables: inputVariables,
104
+ name,
105
+ return_type: returnType,
106
+ revision,
107
+ };
108
+ return ide[method](`custom_functions/${id || 'new'}`, { json: { record: params } }, `${action} custom function "${replace !== null && replace !== void 0 ? replace : name}" ...`);
109
+ }), Promise.resolve(null));
110
+ return revision;
111
+ });
112
+ exports.storeCustomFunctions = storeCustomFunctions;
113
+ //# sourceMappingURL=publishFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishFunctions.js","sourceRoot":"","sources":["../../src/functions/publishFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
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.setHttpsAgent = void 0;
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const https_1 = __importDefault(require("https"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const setHttpsAgent = (agentOptions) => {
11
+ let options;
12
+ if (agentOptions) {
13
+ options = ['ca', 'cert', 'key'].reduce((acc, key) => {
14
+ if (typeof agentOptions[key] === 'string') {
15
+ return Object.assign(Object.assign({}, acc), { [key]: fs_extra_1.default.readFileSync(path_1.default.resolve(agentOptions[key])) });
16
+ }
17
+ return acc;
18
+ }, agentOptions);
19
+ }
20
+ const agent = agentOptions && options ? new https_1.default.Agent(options) : undefined;
21
+ return agent;
22
+ };
23
+ exports.setHttpsAgent = setHttpsAgent;
24
+ //# sourceMappingURL=utils.js.map