@hubspot/local-dev-lib 0.6.1-experimental.0 → 0.6.3-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/api/appsDev.d.ts +2 -2
  2. package/api/appsDev.js +13 -22
  3. package/api/crm.d.ts +2 -2
  4. package/api/crm.js +9 -16
  5. package/api/customObjects.d.ts +2 -2
  6. package/api/customObjects.js +13 -22
  7. package/api/designManager.d.ts +2 -2
  8. package/api/designManager.js +5 -10
  9. package/api/devSecrets.d.ts +2 -2
  10. package/api/devSecrets.js +9 -16
  11. package/api/developerTestAccounts.d.ts +2 -4
  12. package/api/developerTestAccounts.js +23 -55
  13. package/api/fileManager.d.ts +2 -2
  14. package/api/fileManager.js +14 -24
  15. package/api/fileMapper.d.ts +2 -3
  16. package/api/fileMapper.js +34 -49
  17. package/api/fileTransport.d.ts +1 -1
  18. package/api/fileTransport.js +12 -21
  19. package/api/fireAlarm.d.ts +2 -3
  20. package/api/fireAlarm.js +5 -9
  21. package/api/functions.d.ts +2 -2
  22. package/api/functions.js +11 -19
  23. package/api/github.d.ts +2 -4
  24. package/api/github.js +16 -27
  25. package/api/hubdb.d.ts +2 -2
  26. package/api/hubdb.js +19 -31
  27. package/api/lighthouseScore.d.ts +2 -2
  28. package/api/lighthouseScore.js +7 -13
  29. package/api/localDevAuth.d.ts +3 -6
  30. package/api/localDevAuth.js +10 -40
  31. package/api/marketplaceValidation.d.ts +2 -2
  32. package/api/marketplaceValidation.js +7 -13
  33. package/api/projects.d.ts +6 -8
  34. package/api/projects.js +65 -100
  35. package/api/sandboxHubs.d.ts +2 -5
  36. package/api/sandboxHubs.js +15 -45
  37. package/api/sandboxSync.d.ts +2 -2
  38. package/api/sandboxSync.js +7 -12
  39. package/api/secrets.d.ts +2 -2
  40. package/api/secrets.js +9 -16
  41. package/api/validateHubl.d.ts +2 -2
  42. package/api/validateHubl.js +3 -7
  43. package/config/defaultAccountOverride.d.ts +2 -1
  44. package/config/defaultAccountOverride.js +16 -26
  45. package/config/index.d.ts +4 -4
  46. package/config/index.js +144 -177
  47. package/config/migrate.d.ts +2 -2
  48. package/config/migrate.js +26 -37
  49. package/config/state.d.ts +1 -1
  50. package/config/state.js +17 -45
  51. package/config/utils.d.ts +4 -4
  52. package/config/utils.js +85 -108
  53. package/constants/api.js +3 -6
  54. package/constants/auth.js +9 -12
  55. package/constants/config.d.ts +30 -1
  56. package/constants/config.js +65 -42
  57. package/constants/endpoints.d.ts +6 -0
  58. package/constants/endpoints.js +6 -0
  59. package/constants/environments.js +1 -4
  60. package/constants/extensions.js +6 -9
  61. package/constants/files.js +5 -8
  62. package/constants/ports.js +3 -6
  63. package/constants/projects.js +2 -5
  64. package/enums/build.d.ts +1 -0
  65. package/enums/build.js +6 -8
  66. package/enums/deploy.js +2 -5
  67. package/enums/project.js +1 -4
  68. package/errors/index.d.ts +4 -5
  69. package/errors/index.js +17 -39
  70. package/errors/isSystemError.d.ts +2 -0
  71. package/errors/isSystemError.js +9 -0
  72. package/http/addQueryParams.d.ts +1 -1
  73. package/http/addQueryParams.js +1 -5
  74. package/http/client.d.ts +1 -0
  75. package/http/client.js +54 -0
  76. package/http/getAxiosConfig.d.ts +1 -1
  77. package/http/getAxiosConfig.js +21 -31
  78. package/http/index.d.ts +2 -2
  79. package/http/index.js +39 -124
  80. package/http/unauthed.d.ts +1 -1
  81. package/http/unauthed.js +15 -21
  82. package/lang/en.json +3 -2
  83. package/lib/archive.d.ts +1 -3
  84. package/lib/archive.js +37 -67
  85. package/lib/cms/functions.d.ts +1 -1
  86. package/lib/cms/functions.js +45 -55
  87. package/lib/cms/handleFieldsJS.js +36 -44
  88. package/lib/cms/modules.d.ts +2 -2
  89. package/lib/cms/modules.js +49 -59
  90. package/lib/cms/processFieldsJs.js +17 -32
  91. package/lib/cms/templates.js +17 -26
  92. package/lib/cms/themes.js +10 -18
  93. package/lib/cms/uploadFolder.d.ts +4 -4
  94. package/lib/cms/uploadFolder.js +55 -64
  95. package/lib/cms/validate.d.ts +1 -1
  96. package/lib/cms/validate.js +11 -18
  97. package/lib/cms/watch.d.ts +2 -2
  98. package/lib/cms/watch.js +66 -73
  99. package/lib/crm.d.ts +1 -1
  100. package/lib/crm.js +15 -23
  101. package/lib/customObjects.d.ts +1 -1
  102. package/lib/customObjects.js +15 -25
  103. package/lib/environment.d.ts +1 -1
  104. package/lib/environment.js +5 -11
  105. package/lib/escapeRegExp.js +1 -5
  106. package/lib/fileManager.js +43 -51
  107. package/lib/fileMapper.d.ts +1 -1
  108. package/lib/fileMapper.js +68 -84
  109. package/lib/fs.d.ts +1 -1
  110. package/lib/fs.js +18 -27
  111. package/lib/github.d.ts +1 -3
  112. package/lib/github.js +39 -51
  113. package/lib/gitignore.d.ts +1 -1
  114. package/lib/gitignore.js +16 -24
  115. package/lib/hubdb.d.ts +1 -1
  116. package/lib/hubdb.js +29 -40
  117. package/lib/ignoreRules.js +25 -34
  118. package/lib/isDeepEqual.js +1 -5
  119. package/lib/logger.d.ts +8 -20
  120. package/lib/logger.js +47 -59
  121. package/lib/notify.js +9 -16
  122. package/lib/oauth.d.ts +2 -2
  123. package/lib/oauth.js +12 -17
  124. package/lib/path.d.ts +0 -1
  125. package/lib/path.js +30 -48
  126. package/lib/personalAccessKey.d.ts +2 -4
  127. package/lib/personalAccessKey.js +43 -60
  128. package/lib/portManager.d.ts +2 -2
  129. package/lib/portManager.js +26 -41
  130. package/lib/text.js +2 -7
  131. package/lib/trackUsage.d.ts +0 -2
  132. package/lib/trackUsage.js +27 -31
  133. package/lib/urls.js +4 -9
  134. package/models/FileSystemError.d.ts +1 -1
  135. package/models/FileSystemError.js +12 -16
  136. package/models/HubSpotConfigError.d.ts +1 -1
  137. package/models/HubSpotConfigError.js +8 -12
  138. package/models/HubSpotHttpError.d.ts +1 -1
  139. package/models/HubSpotHttpError.js +22 -26
  140. package/models/OAuth2Manager.d.ts +1 -1
  141. package/models/OAuth2Manager.js +17 -24
  142. package/package.json +21 -17
  143. package/types/Accounts.d.ts +6 -5
  144. package/types/Accounts.js +1 -2
  145. package/types/Activity.d.ts +3 -3
  146. package/types/Activity.js +1 -2
  147. package/types/Api.d.ts +1 -1
  148. package/types/Api.js +1 -2
  149. package/types/Apps.js +1 -2
  150. package/types/Archive.js +1 -2
  151. package/types/Build.d.ts +4 -5
  152. package/types/Build.js +1 -2
  153. package/types/CLIOptions.js +1 -2
  154. package/types/ComponentStructure.d.ts +2 -2
  155. package/types/ComponentStructure.js +1 -2
  156. package/types/Config.d.ts +4 -6
  157. package/types/Config.js +1 -2
  158. package/types/Crm.js +1 -2
  159. package/types/Deploy.d.ts +5 -11
  160. package/types/Deploy.js +1 -2
  161. package/types/DesignManager.js +1 -2
  162. package/types/DevSecrets.js +1 -2
  163. package/types/Error.js +1 -2
  164. package/types/FieldsJS.js +1 -2
  165. package/types/FileManager.js +1 -2
  166. package/types/Files.d.ts +4 -4
  167. package/types/Files.js +1 -2
  168. package/types/FireAlarm.js +1 -2
  169. package/types/Functions.js +1 -2
  170. package/types/Github.d.ts +1 -1
  171. package/types/Github.js +1 -2
  172. package/types/Http.d.ts +0 -4
  173. package/types/Http.js +1 -2
  174. package/types/Hubdb.js +1 -2
  175. package/types/HublValidation.js +1 -2
  176. package/types/Lang.d.ts +1 -1
  177. package/types/Lang.js +1 -2
  178. package/types/Lighthouse.js +1 -2
  179. package/types/MarketplaceValidation.js +1 -2
  180. package/types/Migration.d.ts +2 -2
  181. package/types/Migration.js +1 -4
  182. package/types/Modules.js +1 -2
  183. package/types/PortManager.js +1 -2
  184. package/types/Project.d.ts +3 -21
  185. package/types/Project.js +1 -2
  186. package/types/ProjectComponents.d.ts +24 -0
  187. package/types/ProjectComponents.js +1 -0
  188. package/types/ProjectLog.js +1 -2
  189. package/types/Sandbox.js +2 -5
  190. package/types/Schemas.js +1 -2
  191. package/types/Secrets.js +1 -2
  192. package/types/Utils.js +1 -2
  193. package/types/developerTestAccounts.js +1 -2
  194. package/utils/PortManagerServer.d.ts +1 -2
  195. package/utils/PortManagerServer.js +32 -38
  196. package/utils/cms/fieldsJS.d.ts +1 -1
  197. package/utils/cms/fieldsJS.js +1 -5
  198. package/utils/cms/modules.d.ts +1 -1
  199. package/utils/cms/modules.js +13 -22
  200. package/utils/detectPort.js +12 -19
  201. package/utils/git.js +17 -26
  202. package/utils/lang.d.ts +1 -1
  203. package/utils/lang.js +5 -14
  204. package/utils/personalAccessKey.d.ts +8 -0
  205. package/utils/personalAccessKey.js +51 -0
  206. package/errors/errors_DEPRECATED.d.ts +0 -3
  207. package/errors/errors_DEPRECATED.js +0 -60
package/lib/archive.js CHANGED
@@ -1,97 +1,68 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.extractZipArchive = void 0;
30
- const fs_extra_1 = __importDefault(require("fs-extra"));
31
- const path_1 = __importStar(require("path"));
32
- const os_1 = require("os");
33
- const extract_zip_1 = __importDefault(require("extract-zip"));
34
- const logger_1 = require("./logger");
35
- const lang_1 = require("../utils/lang");
36
- const FileSystemError_1 = require("../models/FileSystemError");
37
- const fs_1 = require("./fs");
1
+ import fs from 'fs-extra';
2
+ import path, { join } from 'path';
3
+ import { tmpdir } from 'os';
4
+ import extract from 'extract-zip';
5
+ import { logger } from './logger.js';
6
+ import { i18n } from '../utils/lang.js';
7
+ import { FileSystemError } from '../models/FileSystemError.js';
8
+ import { walk } from './fs.js';
38
9
  const i18nKey = 'lib.archive';
39
10
  async function extractZip(name, zip, hideLogs = false) {
40
11
  const result = { extractDir: '', tmpDir: '' };
41
12
  const TMP_FOLDER_PREFIX = `hubspot-temp-${name}-`;
42
13
  if (!hideLogs) {
43
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.extractZip.init`));
14
+ logger.log(i18n(`${i18nKey}.extractZip.init`));
44
15
  }
45
16
  // Write zip to disk
46
17
  let tmpZipPath = '';
47
18
  try {
48
- result.tmpDir = await fs_extra_1.default.mkdtemp((0, path_1.join)((0, os_1.tmpdir)(), TMP_FOLDER_PREFIX));
49
- tmpZipPath = (0, path_1.join)(result.tmpDir, 'hubspot-temp.zip');
50
- await fs_extra_1.default.ensureFile(tmpZipPath);
51
- await fs_extra_1.default.writeFile(tmpZipPath, zip, {
19
+ result.tmpDir = await fs.mkdtemp(join(tmpdir(), TMP_FOLDER_PREFIX));
20
+ tmpZipPath = join(result.tmpDir, 'hubspot-temp.zip');
21
+ await fs.ensureFile(tmpZipPath);
22
+ await fs.writeFile(tmpZipPath, zip, {
52
23
  mode: 0o777,
53
24
  });
54
25
  }
55
26
  catch (err) {
56
27
  if (tmpZipPath || result.tmpDir) {
57
- throw new FileSystemError_1.FileSystemError({ cause: err }, {
28
+ throw new FileSystemError({ cause: err }, {
58
29
  filepath: tmpZipPath || result.tmpDir,
59
30
  operation: 'write',
60
31
  });
61
32
  }
62
33
  else {
63
- throw new Error((0, lang_1.i18n)(`${i18nKey}.extractZip.errors.write`), {
34
+ throw new Error(i18n(`${i18nKey}.extractZip.errors.write`), {
64
35
  cause: err,
65
36
  });
66
37
  }
67
38
  }
68
39
  // Extract zip
69
40
  try {
70
- const tmpExtractPath = (0, path_1.join)(result.tmpDir, 'extracted');
71
- await (0, extract_zip_1.default)(tmpZipPath, { dir: tmpExtractPath });
41
+ const tmpExtractPath = join(result.tmpDir, 'extracted');
42
+ await extract(tmpZipPath, { dir: tmpExtractPath });
72
43
  result.extractDir = tmpExtractPath;
73
44
  }
74
45
  catch (err) {
75
- throw new Error((0, lang_1.i18n)(`${i18nKey}.extractZip.errors.extract`), {
46
+ throw new Error(i18n(`${i18nKey}.extractZip.errors.extract`), {
76
47
  cause: err,
77
48
  });
78
49
  }
79
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.extractZip.success`));
50
+ logger.debug(i18n(`${i18nKey}.extractZip.success`));
80
51
  return result;
81
52
  }
82
53
  async function copySourceToDest(src, dest, { sourceDir, includesRootDir = true, hideLogs = false, handleCollision, } = {}) {
83
54
  try {
84
55
  if (!hideLogs) {
85
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.copySourceToDest.init`));
56
+ logger.log(i18n(`${i18nKey}.copySourceToDest.init`));
86
57
  }
87
58
  const srcDirPath = [src];
88
59
  if (includesRootDir) {
89
- const files = await fs_extra_1.default.readdir(src);
60
+ const files = await fs.readdir(src);
90
61
  const rootDir = files[0];
91
62
  if (!rootDir) {
92
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.copySourceToDest.sourceEmpty`));
63
+ logger.debug(i18n(`${i18nKey}.copySourceToDest.sourceEmpty`));
93
64
  // Create the dest path if it doesn't already exist
94
- await fs_extra_1.default.ensureDir(dest);
65
+ await fs.ensureDir(dest);
95
66
  // No root found so nothing to copy
96
67
  return true;
97
68
  }
@@ -102,19 +73,19 @@ async function copySourceToDest(src, dest, { sourceDir, includesRootDir = true,
102
73
  sourceDirs.push(...(Array.isArray(sourceDir) ? new Set(sourceDir) : [sourceDir]));
103
74
  }
104
75
  if (sourceDirs.length === 0) {
105
- const projectSrcDir = (0, path_1.join)(...srcDirPath);
106
- await fs_extra_1.default.copy(projectSrcDir, dest);
76
+ const projectSrcDir = join(...srcDirPath);
77
+ await fs.copy(projectSrcDir, dest);
107
78
  }
108
79
  else {
109
80
  for (let i = 0; i < sourceDirs.length; i++) {
110
- const projectSrcDir = (0, path_1.join)(...srcDirPath, sourceDirs[i]);
81
+ const projectSrcDir = join(...srcDirPath, sourceDirs[i]);
111
82
  let collisions = [];
112
83
  let filesWithoutCollisions = [];
113
- if (fs_extra_1.default.existsSync(dest) &&
84
+ if (fs.existsSync(dest) &&
114
85
  handleCollision &&
115
86
  typeof handleCollision === 'function') {
116
- const existingFiles = (await (0, fs_1.walk)(dest, ['node_modules'])).map(file => path_1.default.normalize(path_1.default.relative(dest, file)));
117
- const newFiles = (await (0, fs_1.walk)(projectSrcDir, ['node_modules'])).map(file => path_1.default.relative(projectSrcDir, file));
87
+ const existingFiles = (await walk(dest, ['node_modules'])).map(file => path.normalize(path.relative(dest, file)));
88
+ const newFiles = (await walk(projectSrcDir, ['node_modules'])).map(file => path.relative(projectSrcDir, file));
118
89
  // Find files that exist in the same positions in both directories
119
90
  collisions = existingFiles.filter(currentFile => newFiles.includes(currentFile));
120
91
  filesWithoutCollisions = newFiles.filter(currentFile => !collisions.includes(currentFile));
@@ -127,19 +98,19 @@ async function copySourceToDest(src, dest, { sourceDir, includesRootDir = true,
127
98
  src: projectSrcDir,
128
99
  collisions,
129
100
  });
130
- await Promise.all(filesWithoutCollisions.map(currentFile => fs_extra_1.default.copy(path_1.default.join(projectSrcDir, currentFile), path_1.default.join(dest, currentFile))));
101
+ await Promise.all(filesWithoutCollisions.map(currentFile => fs.copy(path.join(projectSrcDir, currentFile), path.join(dest, currentFile))));
131
102
  }
132
103
  else {
133
- await fs_extra_1.default.copy(projectSrcDir, dest);
104
+ await fs.copy(projectSrcDir, dest);
134
105
  }
135
106
  }
136
107
  }
137
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.copySourceToDest.success`));
108
+ logger.debug(i18n(`${i18nKey}.copySourceToDest.success`));
138
109
  return true;
139
110
  }
140
111
  catch (err) {
141
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.copySourceToDest.error`, { dest }));
142
- throw new FileSystemError_1.FileSystemError({ cause: err }, {
112
+ logger.debug(i18n(`${i18nKey}.copySourceToDest.error`, { dest }));
113
+ throw new FileSystemError({ cause: err }, {
143
114
  filepath: dest,
144
115
  operation: 'write',
145
116
  });
@@ -149,13 +120,13 @@ async function cleanupTempDir(tmpDir) {
149
120
  if (!tmpDir)
150
121
  return;
151
122
  try {
152
- await fs_extra_1.default.remove(tmpDir);
123
+ await fs.remove(tmpDir);
153
124
  }
154
125
  catch (e) {
155
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.cleanupTempDir.error`, { tmpDir }));
126
+ logger.debug(i18n(`${i18nKey}.cleanupTempDir.error`, { tmpDir }));
156
127
  }
157
128
  }
158
- async function extractZipArchive(zip, name, dest, { sourceDir, includesRootDir, hideLogs, handleCollision, } = {}) {
129
+ export async function extractZipArchive(zip, name, dest, { sourceDir, includesRootDir, hideLogs, handleCollision, } = {}) {
159
130
  let success = false;
160
131
  if (zip) {
161
132
  const { extractDir, tmpDir } = await extractZip(name, zip, hideLogs);
@@ -171,4 +142,3 @@ async function extractZipArchive(zip, name, dest, { sourceDir, includesRootDir,
171
142
  }
172
143
  return success;
173
144
  }
174
- exports.extractZipArchive = extractZipArchive;
@@ -1,4 +1,4 @@
1
- import { FunctionConfig, FunctionConfigInfo, FunctionInfo, FunctionOptions } from '../../types/Functions';
1
+ import { FunctionConfig, FunctionConfigInfo, FunctionInfo, FunctionOptions } from '../../types/Functions.js';
2
2
  export declare function isObjectOrFunction(value: object): boolean;
3
3
  export declare function createEndpoint(endpointMethod: string, filename: string): {
4
4
  method: string;
@@ -1,31 +1,23 @@
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.createFunction = exports.createConfig = exports.createEndpoint = exports.isObjectOrFunction = void 0;
7
- const fs_extra_1 = __importDefault(require("fs-extra"));
8
- const path_1 = __importDefault(require("path"));
9
- const findup_sync_1 = __importDefault(require("findup-sync"));
10
- const path_2 = require("../path");
11
- const github_1 = require("../github");
12
- const logger_1 = require("../logger");
13
- const lang_1 = require("../../utils/lang");
14
- const FileSystemError_1 = require("../../models/FileSystemError");
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import findup from 'findup-sync';
4
+ import { getCwd } from '../path.js';
5
+ import { fetchFileFromRepository } from '../github.js';
6
+ import { logger } from '../logger.js';
7
+ import { i18n } from '../../utils/lang.js';
8
+ import { FileSystemError } from '../../models/FileSystemError.js';
15
9
  const i18nKey = 'lib.cms.functions';
16
- function isObjectOrFunction(value) {
10
+ export function isObjectOrFunction(value) {
17
11
  const type = typeof value;
18
12
  return value != null && (type === 'object' || type === 'function');
19
13
  }
20
- exports.isObjectOrFunction = isObjectOrFunction;
21
- function createEndpoint(endpointMethod, filename) {
14
+ export function createEndpoint(endpointMethod, filename) {
22
15
  return {
23
16
  method: endpointMethod || 'GET',
24
17
  file: filename,
25
18
  };
26
19
  }
27
- exports.createEndpoint = createEndpoint;
28
- function createConfig({ endpointPath, endpointMethod, functionFile, }) {
20
+ export function createConfig({ endpointPath, endpointMethod, functionFile, }) {
29
21
  return {
30
22
  runtime: 'nodejs18.x',
31
23
  version: '1.0',
@@ -36,21 +28,20 @@ function createConfig({ endpointPath, endpointMethod, functionFile, }) {
36
28
  },
37
29
  };
38
30
  }
39
- exports.createConfig = createConfig;
40
31
  function writeConfig(configFilePath, config) {
41
32
  const configJson = JSON.stringify(config, null, ' ');
42
- fs_extra_1.default.writeFileSync(configFilePath, configJson);
33
+ fs.writeFileSync(configFilePath, configJson);
43
34
  }
44
35
  function updateExistingConfig(configFilePath, { endpointPath, endpointMethod, functionFile }) {
45
36
  let configString;
46
37
  try {
47
- configString = fs_extra_1.default.readFileSync(configFilePath).toString();
38
+ configString = fs.readFileSync(configFilePath).toString();
48
39
  }
49
40
  catch (err) {
50
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.updateExistingConfig.unableToReadFile`, {
41
+ logger.debug(i18n(`${i18nKey}.updateExistingConfig.unableToReadFile`, {
51
42
  configFilePath,
52
43
  }));
53
- throw new FileSystemError_1.FileSystemError({ cause: err }, {
44
+ throw new FileSystemError({ cause: err }, {
54
45
  filepath: configFilePath,
55
46
  operation: 'read',
56
47
  });
@@ -60,22 +51,22 @@ function updateExistingConfig(configFilePath, { endpointPath, endpointMethod, fu
60
51
  config = JSON.parse(configString);
61
52
  }
62
53
  catch (err) {
63
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.updateExistingConfig.invalidJSON`, {
54
+ logger.debug(i18n(`${i18nKey}.updateExistingConfig.invalidJSON`, {
64
55
  configFilePath,
65
56
  }));
66
- throw new FileSystemError_1.FileSystemError({ cause: err }, {
57
+ throw new FileSystemError({ cause: err }, {
67
58
  filepath: configFilePath,
68
59
  operation: 'read',
69
60
  });
70
61
  }
71
62
  if (!isObjectOrFunction(config)) {
72
- throw new Error((0, lang_1.i18n)(`${i18nKey}.updateExistingConfig.errors.configIsNotObjectError`, {
63
+ throw new Error(i18n(`${i18nKey}.updateExistingConfig.errors.configIsNotObjectError`, {
73
64
  configFilePath,
74
65
  }));
75
66
  }
76
67
  if (config.endpoints) {
77
68
  if (config.endpoints[endpointPath]) {
78
- throw new Error((0, lang_1.i18n)(`${i18nKey}.updateExistingConfig.errors.endpointAreadyExistsError`, {
69
+ throw new Error(i18n(`${i18nKey}.updateExistingConfig.errors.endpointAreadyExistsError`, {
79
70
  configFilePath,
80
71
  endpointPath,
81
72
  }));
@@ -93,65 +84,65 @@ function updateExistingConfig(configFilePath, { endpointPath, endpointMethod, fu
93
84
  writeConfig(configFilePath, config);
94
85
  }
95
86
  catch (err) {
96
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.updateExistingConfig.couldNotUpdateFile`, {
87
+ logger.debug(i18n(`${i18nKey}.updateExistingConfig.couldNotUpdateFile`, {
97
88
  configFilePath,
98
89
  }));
99
- throw new FileSystemError_1.FileSystemError({ cause: err }, {
90
+ throw new FileSystemError({ cause: err }, {
100
91
  filepath: configFilePath,
101
92
  operation: 'read',
102
93
  });
103
94
  }
104
95
  }
105
- async function createFunction(functionInfo, dest, options = {}) {
96
+ export async function createFunction(functionInfo, dest, options = {}) {
106
97
  const { functionsFolder, filename, endpointPath, endpointMethod } = functionInfo;
107
98
  const allowExistingFile = options.allowExistingFile || false;
108
- const ancestorFunctionsConfig = (0, findup_sync_1.default)('serverless.json', {
109
- cwd: (0, path_2.getCwd)(),
99
+ const ancestorFunctionsConfig = findup('serverless.json', {
100
+ cwd: getCwd(),
110
101
  nocase: true,
111
102
  });
112
103
  if (ancestorFunctionsConfig) {
113
- throw new Error((0, lang_1.i18n)(`${i18nKey}.createFunction.errors.nestedConfigError`, {
114
- ancestorConfigPath: path_1.default.dirname(ancestorFunctionsConfig),
104
+ throw new Error(i18n(`${i18nKey}.createFunction.errors.nestedConfigError`, {
105
+ ancestorConfigPath: path.dirname(ancestorFunctionsConfig),
115
106
  }));
116
107
  }
117
108
  const folderName = functionsFolder.endsWith('.functions')
118
109
  ? functionsFolder
119
110
  : `${functionsFolder}.functions`;
120
111
  const functionFile = filename.endsWith('.js') ? filename : `${filename}.js`;
121
- const destPath = path_1.default.join(dest, folderName);
122
- if (fs_extra_1.default.existsSync(destPath)) {
123
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.createFunction.destPathAlreadyExists`, {
112
+ const destPath = path.join(dest, folderName);
113
+ if (fs.existsSync(destPath)) {
114
+ logger.log(i18n(`${i18nKey}.createFunction.destPathAlreadyExists`, {
124
115
  path: destPath,
125
116
  }));
126
117
  }
127
118
  else {
128
- fs_extra_1.default.mkdirp(destPath);
129
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.createFunction.createdDest`, {
119
+ fs.mkdirp(destPath);
120
+ logger.log(i18n(`${i18nKey}.createFunction.createdDest`, {
130
121
  path: destPath,
131
122
  }));
132
123
  }
133
- const functionFilePath = path_1.default.join(destPath, functionFile);
134
- const configFilePath = path_1.default.join(destPath, 'serverless.json');
135
- if (!allowExistingFile && fs_extra_1.default.existsSync(functionFilePath)) {
136
- throw new Error((0, lang_1.i18n)(`${i18nKey}.createFunction.errors.jsFileConflictError`, {
124
+ const functionFilePath = path.join(destPath, functionFile);
125
+ const configFilePath = path.join(destPath, 'serverless.json');
126
+ if (!allowExistingFile && fs.existsSync(functionFilePath)) {
127
+ throw new Error(i18n(`${i18nKey}.createFunction.errors.jsFileConflictError`, {
137
128
  functionFilePath,
138
129
  }));
139
130
  }
140
- const result = await (0, github_1.fetchFileFromRepository)('HubSpot/cms-sample-assets', 'functions/sample-function.js', 'main');
141
- fs_extra_1.default.writeFileSync(functionFilePath, result);
142
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.createFunction.createdFunctionFile`, {
131
+ const result = await fetchFileFromRepository('HubSpot/cms-sample-assets', 'functions/sample-function.js', 'main');
132
+ fs.writeFileSync(functionFilePath, result);
133
+ logger.log(i18n(`${i18nKey}.createFunction.createdFunctionFile`, {
143
134
  path: functionFilePath,
144
135
  }));
145
- if (fs_extra_1.default.existsSync(configFilePath)) {
136
+ if (fs.existsSync(configFilePath)) {
146
137
  updateExistingConfig(configFilePath, {
147
138
  endpointPath,
148
139
  endpointMethod,
149
140
  functionFile,
150
141
  });
151
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.createFunction.createdFunctionFile`, {
142
+ logger.log(i18n(`${i18nKey}.createFunction.createdFunctionFile`, {
152
143
  path: functionFilePath,
153
144
  }));
154
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.createFunction.success`, {
145
+ logger.log(i18n(`${i18nKey}.createFunction.success`, {
155
146
  endpointPath: endpointPath,
156
147
  folderName,
157
148
  }));
@@ -162,21 +153,20 @@ async function createFunction(functionInfo, dest, options = {}) {
162
153
  writeConfig(configFilePath, config);
163
154
  }
164
155
  catch (err) {
165
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.createFunction.failedToCreateFile`, {
156
+ logger.debug(i18n(`${i18nKey}.createFunction.failedToCreateFile`, {
166
157
  configFilePath,
167
158
  }));
168
- throw new FileSystemError_1.FileSystemError({ cause: err }, {
159
+ throw new FileSystemError({ cause: err }, {
169
160
  filepath: configFilePath,
170
161
  operation: 'write',
171
162
  });
172
163
  }
173
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.createFunction.createdConfigFile`, {
164
+ logger.log(i18n(`${i18nKey}.createFunction.createdConfigFile`, {
174
165
  path: configFilePath,
175
166
  }));
176
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.createFunction.success`, {
167
+ logger.log(i18n(`${i18nKey}.createFunction.success`, {
177
168
  endpointPath: endpointPath,
178
169
  folderName,
179
170
  }));
180
171
  }
181
172
  }
182
- exports.createFunction = createFunction;
@@ -1,19 +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
- exports.cleanupTmpDirSync = exports.createTmpDirSync = exports.isConvertableFieldJs = exports.FieldsJs = void 0;
7
- const fs_extra_1 = __importDefault(require("fs-extra"));
8
- const os_1 = __importDefault(require("os"));
9
- const path_1 = __importDefault(require("path"));
10
- const child_process_1 = require("child_process");
11
- const escapeRegExp_1 = require("../escapeRegExp");
12
- const modules_1 = require("../../utils/cms/modules");
13
- const logger_1 = require("../logger");
14
- const lang_1 = require("../../utils/lang");
1
+ import fs from 'fs-extra';
2
+ import os from 'os';
3
+ import path from 'path';
4
+ import { fork } from 'child_process';
5
+ import { fileURLToPath } from 'url';
6
+ import { escapeRegExp } from '../escapeRegExp.js';
7
+ import { isModuleFolderChild } from '../../utils/cms/modules.js';
8
+ import { logger } from '../logger.js';
9
+ import { i18n } from '../../utils/lang.js';
10
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
15
11
  const i18nKey = 'lib.cms.handleFieldsJs';
16
- class FieldsJs {
12
+ export class FieldsJs {
17
13
  projectDir;
18
14
  filePath;
19
15
  rootWriteDir;
@@ -40,12 +36,12 @@ class FieldsJs {
40
36
  // Converts a fields.js file into a fields.json file, writes, and returns of fields.json
41
37
  convertFieldsJs(writeDir) {
42
38
  const filePath = this.filePath;
43
- const dirName = path_1.default.dirname(filePath);
39
+ const dirName = path.dirname(filePath);
44
40
  return new Promise((resolve, reject) => {
45
41
  const fieldOptionsAsString = Array.isArray(this.fieldOptions)
46
42
  ? this.fieldOptions.join(',')
47
43
  : this.fieldOptions;
48
- const convertFieldsProcess = (0, child_process_1.fork)(path_1.default.join(__dirname, './processFieldsJs.js'), [], {
44
+ const convertFieldsProcess = fork(path.join(__dirname, './processFieldsJs.js'), [], {
49
45
  cwd: dirName,
50
46
  env: {
51
47
  dirName,
@@ -54,7 +50,7 @@ class FieldsJs {
54
50
  writeDir,
55
51
  },
56
52
  });
57
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.convertFieldsJs.creating`, {
53
+ logger.debug(i18n(`${i18nKey}.convertFieldsJs.creating`, {
58
54
  pid: convertFieldsProcess.pid || '',
59
55
  }));
60
56
  convertFieldsProcess.on('message', function (message) {
@@ -66,12 +62,12 @@ class FieldsJs {
66
62
  }
67
63
  });
68
64
  convertFieldsProcess.on('close', () => {
69
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.convertFieldsJs.terminating`, {
65
+ logger.debug(i18n(`${i18nKey}.convertFieldsJs.terminating`, {
70
66
  pid: convertFieldsProcess.pid || '',
71
67
  }));
72
68
  });
73
69
  }).catch((e) => {
74
- throw new Error((0, lang_1.i18n)(`${i18nKey}.convertFieldsJs.errors.errorConverting`, { filePath }), { cause: e });
70
+ throw new Error(i18n(`${i18nKey}.convertFieldsJs.errors.errorConverting`, { filePath }), { cause: e });
75
71
  });
76
72
  }
77
73
  /**
@@ -80,18 +76,18 @@ class FieldsJs {
80
76
  * Ex: path/to/tmp/example.module/fields.json => path/to/project/example.module/fields.output.json
81
77
  */
82
78
  saveOutput() {
83
- if (!this.outputPath || !fs_extra_1.default.existsSync(this.outputPath)) {
84
- throw new Error((0, lang_1.i18n)(`${i18nKey}.saveOutput.errors.saveFailed`, {
79
+ if (!this.outputPath || !fs.existsSync(this.outputPath)) {
80
+ throw new Error(i18n(`${i18nKey}.saveOutput.errors.saveFailed`, {
85
81
  path: this.filePath,
86
82
  }));
87
83
  }
88
- const relativePath = path_1.default.relative(this.rootWriteDir, path_1.default.dirname(this.outputPath));
89
- const savePath = path_1.default.join(this.projectDir, relativePath, 'fields.output.json');
84
+ const relativePath = path.relative(this.rootWriteDir, path.dirname(this.outputPath));
85
+ const savePath = path.join(this.projectDir, relativePath, 'fields.output.json');
90
86
  try {
91
- fs_extra_1.default.copyFileSync(this.outputPath, savePath);
87
+ fs.copyFileSync(this.outputPath, savePath);
92
88
  }
93
89
  catch (err) {
94
- throw new Error((0, lang_1.i18n)(`${i18nKey}.saveOutput.errors.saveFailed`, { path: savePath }), { cause: err });
90
+ throw new Error(i18n(`${i18nKey}.saveOutput.errors.saveFailed`, { path: savePath }), { cause: err });
95
91
  }
96
92
  }
97
93
  /**
@@ -101,51 +97,47 @@ class FieldsJs {
101
97
  * Ex: If rootWriteDir = 'path/to/temp', filePath = 'projectRoot/sample.module/fields.js'. Then getWriteDir() => path/to/temp/sample.module
102
98
  */
103
99
  getWriteDir() {
104
- const projectDirRegex = new RegExp(`^${(0, escapeRegExp_1.escapeRegExp)(this.projectDir)}`);
100
+ const projectDirRegex = new RegExp(`^${escapeRegExp(this.projectDir)}`);
105
101
  const relativePath = this.filePath.replace(projectDirRegex, '');
106
- return path_1.default.dirname(path_1.default.join(this.rootWriteDir, relativePath));
102
+ return path.dirname(path.join(this.rootWriteDir, relativePath));
107
103
  }
108
104
  getOutputPathPromise() {
109
105
  const writeDir = this.getWriteDir();
110
106
  return this.convertFieldsJs(writeDir).then(outputPath => outputPath);
111
107
  }
112
108
  }
113
- exports.FieldsJs = FieldsJs;
114
109
  /**
115
110
  * Determines if file is a convertable fields.js file i.e., if it is called
116
111
  * 'fields.js' and in a root or in a module folder, and if convertFields flag is true.
117
112
  */
118
- function isConvertableFieldJs(rootDir, filePath, convertFields = false) {
113
+ export function isConvertableFieldJs(rootDir, filePath, convertFields = false) {
119
114
  const allowedFieldsNames = ['fields.js', 'fields.mjs', 'fields.cjs'];
120
- const regex = new RegExp(`^${(0, escapeRegExp_1.escapeRegExp)(rootDir)}`);
121
- const relativePath = path_1.default.dirname(filePath.replace(regex, ''));
122
- const baseName = path_1.default.basename(filePath);
123
- const inModuleFolder = (0, modules_1.isModuleFolderChild)({ path: filePath, isLocal: true });
115
+ const regex = new RegExp(`^${escapeRegExp(rootDir)}`);
116
+ const relativePath = path.dirname(filePath.replace(regex, ''));
117
+ const baseName = path.basename(filePath);
118
+ const inModuleFolder = isModuleFolderChild({ path: filePath, isLocal: true });
124
119
  return !!(convertFields &&
125
120
  allowedFieldsNames.includes(baseName) &&
126
- (inModuleFolder || relativePath == path_1.default.sep));
121
+ (inModuleFolder || relativePath == path.sep));
127
122
  }
128
- exports.isConvertableFieldJs = isConvertableFieldJs;
129
123
  // Try creating tempdir
130
- function createTmpDirSync(prefix) {
124
+ export function createTmpDirSync(prefix) {
131
125
  let tmpDir;
132
126
  try {
133
- tmpDir = fs_extra_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), prefix));
127
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), prefix));
134
128
  }
135
129
  catch (err) {
136
- throw new Error((0, lang_1.i18n)(`${i18nKey}.createTmpDirSync.errors.writeFailed`), {
130
+ throw new Error(i18n(`${i18nKey}.createTmpDirSync.errors.writeFailed`), {
137
131
  cause: err,
138
132
  });
139
133
  }
140
134
  return tmpDir;
141
135
  }
142
- exports.createTmpDirSync = createTmpDirSync;
143
136
  // Try cleaning up resources from os's tempdir
144
- function cleanupTmpDirSync(tmpDir) {
145
- fs_extra_1.default.rm(tmpDir, { recursive: true }, err => {
137
+ export function cleanupTmpDirSync(tmpDir) {
138
+ fs.rm(tmpDir, { recursive: true }, err => {
146
139
  if (err) {
147
- throw new Error((0, lang_1.i18n)(`${i18nKey}.cleanupTmpDirSync.errors.deleteFailed`), { cause: err });
140
+ throw new Error(i18n(`${i18nKey}.cleanupTmpDirSync.errors.deleteFailed`), { cause: err });
148
141
  }
149
142
  });
150
143
  }
151
- exports.cleanupTmpDirSync = cleanupTmpDirSync;
@@ -1,5 +1,5 @@
1
- import { PathInput, ValidationResult, ModuleDefinition } from '../../types/Modules';
2
- import { GithubRepoFile } from '../../types/Github';
1
+ import { PathInput, ValidationResult, ModuleDefinition } from '../../types/Modules.js';
2
+ import { GithubRepoFile } from '../../types/Github.js';
3
3
  export declare const ValidationIds: {
4
4
  SRC_REQUIRED: string;
5
5
  DEST_REQUIRED: string;