@hubspot/local-dev-lib 0.2.2 → 0.2.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 (187) hide show
  1. package/LICENSE +12 -0
  2. package/README.md +17 -0
  3. package/api/appsDev.d.ts +6 -0
  4. package/api/appsDev.js +29 -0
  5. package/api/customObjects.d.ts +8 -7
  6. package/api/customObjects.js +13 -16
  7. package/api/designManager.d.ts +4 -13
  8. package/api/designManager.js +6 -9
  9. package/api/developerTestAccounts.d.ts +7 -0
  10. package/api/developerTestAccounts.js +48 -0
  11. package/api/fileManager.d.ts +5 -4
  12. package/api/fileManager.js +11 -11
  13. package/api/fileMapper.d.ts +8 -7
  14. package/api/fileMapper.js +17 -17
  15. package/api/fileTransport.d.ts +4 -0
  16. package/api/fileTransport.js +39 -0
  17. package/api/functions.d.ts +7 -4
  18. package/api/functions.js +22 -11
  19. package/api/github.d.ts +7 -9
  20. package/api/github.js +31 -13
  21. package/api/hubdb.d.ts +11 -10
  22. package/api/hubdb.js +28 -22
  23. package/api/lighthouseScore.d.ts +4 -4
  24. package/api/lighthouseScore.js +9 -12
  25. package/api/localDevAuth.d.ts +8 -16
  26. package/api/localDevAuth.js +34 -13
  27. package/api/marketplaceValidation.d.ts +4 -4
  28. package/api/marketplaceValidation.js +8 -11
  29. package/api/projects.d.ts +31 -24
  30. package/api/projects.js +164 -44
  31. package/api/sandboxHubs.d.ts +6 -4
  32. package/api/sandboxHubs.js +10 -11
  33. package/api/sandboxSync.d.ts +4 -4
  34. package/api/sandboxSync.js +4 -13
  35. package/api/secrets.d.ts +6 -8
  36. package/api/secrets.js +9 -12
  37. package/api/validateHubl.d.ts +2 -1
  38. package/api/validateHubl.js +3 -6
  39. package/config/CLIConfiguration.d.ts +15 -11
  40. package/config/CLIConfiguration.js +175 -90
  41. package/config/configFile.js +12 -18
  42. package/config/configUtils.d.ts +2 -21
  43. package/config/configUtils.js +5 -4
  44. package/config/config_DEPRECATED.d.ts +6 -8
  45. package/config/config_DEPRECATED.js +79 -25
  46. package/config/environment.js +5 -4
  47. package/config/getAccountIdentifier.d.ts +2 -0
  48. package/config/getAccountIdentifier.js +15 -0
  49. package/config/index.d.ts +14 -8
  50. package/config/index.js +108 -57
  51. package/constants/config.d.ts +18 -1
  52. package/constants/config.js +20 -3
  53. package/constants/environments.d.ts +1 -0
  54. package/constants/environments.js +1 -0
  55. package/constants/extensions.d.ts +2 -0
  56. package/constants/extensions.js +3 -1
  57. package/constants/files.d.ts +2 -2
  58. package/constants/files.js +3 -3
  59. package/errors/errors_DEPRECATED.d.ts +1 -5
  60. package/errors/errors_DEPRECATED.js +2 -2
  61. package/errors/index.d.ts +18 -0
  62. package/errors/index.js +63 -0
  63. package/http/addQueryParams.d.ts +2 -0
  64. package/http/addQueryParams.js +14 -0
  65. package/http/getAxiosConfig.d.ts +6 -3
  66. package/http/getAxiosConfig.js +51 -7
  67. package/http/index.d.ts +11 -12
  68. package/http/index.js +35 -41
  69. package/http/unauthed.d.ts +14 -0
  70. package/http/unauthed.js +38 -0
  71. package/lang/en.json +378 -386
  72. package/lib/archive.d.ts +2 -8
  73. package/lib/archive.js +34 -30
  74. package/lib/cms/functions.d.ts +7 -12
  75. package/lib/cms/functions.js +49 -51
  76. package/lib/cms/handleFieldsJS.js +16 -14
  77. package/lib/cms/modules.d.ts +4 -15
  78. package/lib/cms/modules.js +81 -78
  79. package/lib/cms/processFieldsJs.js +10 -33
  80. package/lib/cms/templates.d.ts +43 -3
  81. package/lib/cms/templates.js +53 -11
  82. package/lib/cms/uploadFolder.d.ts +3 -14
  83. package/lib/cms/uploadFolder.js +58 -42
  84. package/lib/cms/validate.js +1 -1
  85. package/lib/cms/watch.d.ts +2 -18
  86. package/lib/cms/watch.js +63 -68
  87. package/lib/customObjects.js +4 -15
  88. package/lib/fileManager.d.ts +2 -6
  89. package/lib/fileManager.js +54 -65
  90. package/lib/fileMapper.d.ts +4 -15
  91. package/lib/fileMapper.js +67 -88
  92. package/lib/fs.d.ts +1 -1
  93. package/lib/fs.js +10 -6
  94. package/lib/github.d.ts +12 -14
  95. package/lib/github.js +70 -35
  96. package/lib/gitignore.d.ts +2 -0
  97. package/lib/gitignore.js +21 -4
  98. package/lib/hubdb.d.ts +3 -2
  99. package/lib/hubdb.js +11 -9
  100. package/{utils → lib}/notify.js +2 -2
  101. package/lib/oauth.d.ts +2 -5
  102. package/lib/oauth.js +14 -25
  103. package/lib/path.d.ts +3 -0
  104. package/lib/path.js +46 -1
  105. package/lib/personalAccessKey.d.ts +8 -11
  106. package/lib/personalAccessKey.js +75 -38
  107. package/lib/portManager.d.ts +3 -5
  108. package/lib/portManager.js +18 -6
  109. package/lib/trackUsage.js +18 -11
  110. package/lib/urls.js +5 -1
  111. package/models/FileSystemError.d.ts +6 -0
  112. package/models/FileSystemError.js +47 -0
  113. package/models/HubSpotHttpError.d.ts +24 -0
  114. package/models/HubSpotHttpError.js +197 -0
  115. package/models/OAuth2Manager.d.ts +5 -27
  116. package/models/OAuth2Manager.js +41 -64
  117. package/package.json +34 -35
  118. package/types/Accounts.d.ts +103 -3
  119. package/types/Apps.d.ts +77 -0
  120. package/types/Archive.d.ts +9 -0
  121. package/types/Archive.js +2 -0
  122. package/types/Build.d.ts +4 -2
  123. package/types/ComponentStructure.d.ts +30 -10
  124. package/types/Config.d.ts +19 -2
  125. package/types/Deploy.d.ts +3 -2
  126. package/types/DesignManager.d.ts +10 -0
  127. package/types/DesignManager.js +2 -0
  128. package/types/Error.d.ts +9 -5
  129. package/types/FieldsJS.d.ts +1 -0
  130. package/types/FieldsJS.js +2 -0
  131. package/types/FileManager.d.ts +1 -1
  132. package/types/Files.d.ts +43 -4
  133. package/types/Functions.d.ts +52 -0
  134. package/types/Github.d.ts +13 -0
  135. package/types/Http.d.ts +12 -11
  136. package/types/Hubdb.d.ts +9 -0
  137. package/types/MarketplaceValidation.d.ts +7 -3
  138. package/types/Migration.d.ts +28 -0
  139. package/types/Migration.js +10 -0
  140. package/types/Modules.d.ts +11 -0
  141. package/types/PortManager.d.ts +7 -0
  142. package/types/Project.d.ts +30 -0
  143. package/types/ProjectLog.d.ts +9 -0
  144. package/types/ProjectLog.js +2 -0
  145. package/types/Sandbox.d.ts +37 -47
  146. package/types/Schemas.d.ts +56 -0
  147. package/types/Secrets.d.ts +3 -0
  148. package/types/Secrets.js +2 -0
  149. package/types/developerTestAccounts.d.ts +13 -0
  150. package/types/developerTestAccounts.js +2 -0
  151. package/utils/PortManagerServer.d.ts +6 -7
  152. package/utils/PortManagerServer.js +22 -16
  153. package/utils/{getAccountIdentifier.d.ts → accounts.d.ts} +0 -6
  154. package/utils/{getAccountIdentifier.js → accounts.js} +1 -13
  155. package/utils/cms/fieldsJS.d.ts +1 -2
  156. package/utils/cms/modules.js +2 -2
  157. package/utils/detectPort.js +3 -3
  158. package/utils/git.d.ts +1 -7
  159. package/utils/git.js +2 -18
  160. package/errors/apiErrors.d.ts +0 -19
  161. package/errors/apiErrors.js +0 -179
  162. package/errors/fileSystemErrors.d.ts +0 -5
  163. package/errors/fileSystemErrors.js +0 -31
  164. package/errors/standardErrors.d.ts +0 -27
  165. package/errors/standardErrors.js +0 -59
  166. package/lang/lang/en.json +0 -401
  167. package/lib/logging/git.d.ts +0 -2
  168. package/lib/logging/git.js +0 -54
  169. package/lib/logging/logs.d.ts +0 -22
  170. package/lib/logging/logs.js +0 -86
  171. package/lib/logging/table.d.ts +0 -3
  172. package/lib/logging/table.js +0 -47
  173. package/lib/sandboxes.d.ts +0 -14
  174. package/lib/sandboxes.js +0 -71
  175. package/models/HubSpotAuthError.d.ts +0 -12
  176. package/models/HubSpotAuthError.js +0 -20
  177. package/types/LogCallbacks.d.ts +0 -7
  178. package/utils/logger.d.ts +0 -5
  179. package/utils/logger.js +0 -23
  180. package/utils/objectUtils.d.ts +0 -8
  181. package/utils/objectUtils.js +0 -33
  182. /package/{utils → lib}/escapeRegExp.d.ts +0 -0
  183. /package/{utils → lib}/escapeRegExp.js +0 -0
  184. /package/lib/{logging/logger.d.ts → logger.d.ts} +0 -0
  185. /package/lib/{logging/logger.js → logger.js} +0 -0
  186. /package/{utils → lib}/notify.d.ts +0 -0
  187. /package/types/{LogCallbacks.js → Apps.js} +0 -0
package/api/projects.js CHANGED
@@ -3,28 +3,53 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.cancelStagedBuild = exports.fetchDeployComponentsMetadata = exports.fetchProjectSettings = exports.getDeployStructure = exports.getDeployStatus = exports.deployProject = exports.getBuildStructure = exports.getBuildStatus = exports.fetchProjectBuilds = exports.fetchPlatformVersions = exports.deleteProject = exports.downloadProject = exports.fetchProject = exports.uploadProject = exports.createProject = exports.fetchProjects = void 0;
7
- const http_1 = __importDefault(require("../http"));
6
+ exports.downloadClonedProject = exports.checkCloneStatus = exports.cloneApp = exports.checkMigrationStatus = exports.migrateApp = exports.fetchDeployWarnLogs = exports.fetchBuildWarnLogs = exports.cancelStagedBuild = exports.deleteFileFromBuild = exports.uploadFileToBuild = exports.queueBuild = exports.provisionBuild = exports.fetchProjectSettings = exports.getDeployStructure = exports.getDeployStatus = exports.deployProject = exports.getBuildStructure = exports.getBuildStatus = exports.fetchProjectBuilds = exports.fetchPlatformVersions = exports.deleteProject = exports.downloadProject = exports.fetchProjectComponentsMetadata = exports.fetchProject = exports.uploadProject = exports.createProject = exports.fetchProjects = void 0;
7
+ const http_1 = require("../http");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const PROJECTS_API_PATH = 'dfs/v1/projects';
10
+ const DEVELOPER_FILE_SYSTEM_PATH = 'dfs/v1';
10
11
  const PROJECTS_DEPLOY_API_PATH = 'dfs/deploy/v1';
12
+ const PROJECTS_DEPLOY_API_PATH_V3 = 'dfs/deploy/v3';
13
+ const PROJECTS_LOGS_API_PATH = 'dfs/logging/v1';
11
14
  const DEVELOPER_PROJECTS_API_PATH = 'developer/projects/v1';
12
- async function fetchProjects(accountId) {
13
- return http_1.default.get(accountId, {
14
- url: PROJECTS_API_PATH,
15
+ const MIGRATIONS_API_PATH = 'dfs/migrations/v1';
16
+ const PROJECTS_V3_API_PATH = 'project-components-external/v3';
17
+ function fetchProjects(accountId) {
18
+ return http_1.http.get(accountId, {
19
+ url: DEVELOPER_PROJECTS_API_PATH,
15
20
  });
16
21
  }
17
22
  exports.fetchProjects = fetchProjects;
18
- async function createProject(accountId, name) {
19
- return http_1.default.post(accountId, {
20
- url: PROJECTS_API_PATH,
23
+ function createProject(accountId, name) {
24
+ return http_1.http.post(accountId, {
25
+ url: DEVELOPER_PROJECTS_API_PATH,
21
26
  data: {
22
27
  name,
23
28
  },
24
29
  });
25
30
  }
26
31
  exports.createProject = createProject;
27
- async function uploadProject(accountId, projectName, projectFile, uploadMessage, platformVersion) {
32
+ async function uploadProject(accountId, projectName, projectFile, uploadMessage, platformVersion, intermediateRepresentation) {
33
+ if (intermediateRepresentation) {
34
+ const formData = {
35
+ projectFilesZip: fs_1.default.createReadStream(projectFile),
36
+ platformVersion,
37
+ uploadRequest: JSON.stringify({
38
+ ...intermediateRepresentation,
39
+ projectName,
40
+ buildMessage: uploadMessage,
41
+ }),
42
+ };
43
+ const response = await http_1.http.post(accountId, {
44
+ url: `${PROJECTS_V3_API_PATH}/upload/new-api`,
45
+ timeout: 60_000,
46
+ data: formData,
47
+ headers: { 'Content-Type': 'multipart/form-data' },
48
+ });
49
+ // Remap the response to match the expected shape
50
+ response.data.buildId = response.data.createdBuildId;
51
+ return response;
52
+ }
28
53
  const formData = {
29
54
  file: fs_1.default.createReadStream(projectFile),
30
55
  uploadMessage,
@@ -32,61 +57,76 @@ async function uploadProject(accountId, projectName, projectFile, uploadMessage,
32
57
  if (platformVersion) {
33
58
  formData.platformVersion = platformVersion;
34
59
  }
35
- return http_1.default.post(accountId, {
60
+ return http_1.http.post(accountId, {
36
61
  url: `${PROJECTS_API_PATH}/upload/${encodeURIComponent(projectName)}`,
37
- timeout: 60000,
62
+ timeout: 60_000,
38
63
  data: formData,
39
64
  headers: { 'Content-Type': 'multipart/form-data' },
40
65
  });
41
66
  }
42
67
  exports.uploadProject = uploadProject;
43
- async function fetchProject(accountId, projectName) {
44
- return http_1.default.get(accountId, {
45
- url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}`,
68
+ function fetchProject(accountId, projectName) {
69
+ return http_1.http.get(accountId, {
70
+ url: `${DEVELOPER_PROJECTS_API_PATH}/by-name/${encodeURIComponent(projectName)}`,
46
71
  });
47
72
  }
48
73
  exports.fetchProject = fetchProject;
74
+ async function fetchProjectComponentsMetadata(accountId, projectId) {
75
+ return http_1.http.get(accountId, {
76
+ url: `${DEVELOPER_FILE_SYSTEM_PATH}/projects-deployed-build/${projectId}`,
77
+ });
78
+ }
79
+ exports.fetchProjectComponentsMetadata = fetchProjectComponentsMetadata;
49
80
  async function downloadProject(accountId, projectName, buildId) {
50
- return http_1.default.get(accountId, {
81
+ return http_1.http.get(accountId, {
51
82
  url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds/${buildId}/archive-full`,
52
- encoding: null,
53
- headers: { accept: 'application/zip', contentType: 'application/json' },
83
+ responseType: 'arraybuffer',
84
+ headers: { accept: 'application/zip', 'Content-Type': 'application/json' },
54
85
  });
55
86
  }
56
87
  exports.downloadProject = downloadProject;
57
- async function deleteProject(accountId, projectName) {
58
- return http_1.default.delete(accountId, {
59
- url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}`,
88
+ function deleteProject(accountId, projectName) {
89
+ return http_1.http.delete(accountId, {
90
+ url: `${DEVELOPER_PROJECTS_API_PATH}/${encodeURIComponent(projectName)}`,
60
91
  });
61
92
  }
62
93
  exports.deleteProject = deleteProject;
63
- async function fetchPlatformVersions(accountId) {
64
- return http_1.default.get(accountId, {
94
+ function fetchPlatformVersions(accountId) {
95
+ return http_1.http.get(accountId, {
65
96
  url: `${DEVELOPER_PROJECTS_API_PATH}/platformVersion`,
66
97
  });
67
98
  }
68
99
  exports.fetchPlatformVersions = fetchPlatformVersions;
69
- async function fetchProjectBuilds(accountId, projectName, query) {
70
- return http_1.default.get(accountId, {
100
+ function fetchProjectBuilds(accountId, projectName, params = {}) {
101
+ return http_1.http.get(accountId, {
71
102
  url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds`,
72
- query,
103
+ params,
73
104
  });
74
105
  }
75
106
  exports.fetchProjectBuilds = fetchProjectBuilds;
76
- async function getBuildStatus(accountId, projectName, buildId) {
77
- return http_1.default.get(accountId, {
107
+ function getBuildStatus(accountId, projectName, buildId) {
108
+ return http_1.http.get(accountId, {
78
109
  url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds/${buildId}/status`,
79
110
  });
80
111
  }
81
112
  exports.getBuildStatus = getBuildStatus;
82
- async function getBuildStructure(accountId, projectName, buildId) {
83
- return http_1.default.get(accountId, {
113
+ function getBuildStructure(accountId, projectName, buildId) {
114
+ return http_1.http.get(accountId, {
84
115
  url: `dfs/v1/builds/by-project-name/${encodeURIComponent(projectName)}/builds/${buildId}/structure`,
85
116
  });
86
117
  }
87
118
  exports.getBuildStructure = getBuildStructure;
88
- async function deployProject(accountId, projectName, buildId) {
89
- return http_1.default.post(accountId, {
119
+ function deployProject(accountId, projectName, buildId, useNewDeployApi = false) {
120
+ if (useNewDeployApi) {
121
+ return http_1.http.post(accountId, {
122
+ url: `${PROJECTS_DEPLOY_API_PATH_V3}/deploys/queue/async`,
123
+ data: {
124
+ projectName,
125
+ targetBuildId: buildId,
126
+ },
127
+ });
128
+ }
129
+ return http_1.http.post(accountId, {
90
130
  url: `${PROJECTS_DEPLOY_API_PATH}/deploys/queue/async`,
91
131
  data: {
92
132
  projectName,
@@ -95,33 +135,113 @@ async function deployProject(accountId, projectName, buildId) {
95
135
  });
96
136
  }
97
137
  exports.deployProject = deployProject;
98
- async function getDeployStatus(accountId, projectName, deployId) {
99
- return http_1.default.get(accountId, {
138
+ function getDeployStatus(accountId, projectName, deployId) {
139
+ return http_1.http.get(accountId, {
100
140
  url: `${PROJECTS_DEPLOY_API_PATH}/deploy-status/projects/${encodeURIComponent(projectName)}/deploys/${deployId}`,
101
141
  });
102
142
  }
103
143
  exports.getDeployStatus = getDeployStatus;
104
- async function getDeployStructure(accountId, projectName, deployId) {
105
- return http_1.default.get(accountId, {
144
+ function getDeployStructure(accountId, projectName, deployId) {
145
+ return http_1.http.get(accountId, {
106
146
  url: `${PROJECTS_DEPLOY_API_PATH}/deploys/by-project-name/${encodeURIComponent(projectName)}/deploys/${deployId}/structure`,
107
147
  });
108
148
  }
109
149
  exports.getDeployStructure = getDeployStructure;
110
- async function fetchProjectSettings(accountId, projectName) {
111
- return http_1.default.get(accountId, {
112
- url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/settings`,
150
+ function fetchProjectSettings(accountId, projectName) {
151
+ return http_1.http.get(accountId, {
152
+ url: `${DEVELOPER_PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/settings`,
113
153
  });
114
154
  }
115
155
  exports.fetchProjectSettings = fetchProjectSettings;
116
- async function fetchDeployComponentsMetadata(accountId, projectId) {
117
- return http_1.default.get(accountId, {
118
- url: `${PROJECTS_API_PATH}/by-id/${projectId}/deploy-components-metadata`,
156
+ async function provisionBuild(accountId, projectName, platformVersion) {
157
+ return http_1.http.post(accountId, {
158
+ url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds/staged/provision`,
159
+ params: { platformVersion },
160
+ headers: { 'Content-Type': 'application/json' },
161
+ timeout: 50_000,
162
+ });
163
+ }
164
+ exports.provisionBuild = provisionBuild;
165
+ function queueBuild(accountId, projectName, platformVersion) {
166
+ return http_1.http.post(accountId, {
167
+ url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds/staged/queue`,
168
+ params: { platformVersion },
169
+ headers: { 'Content-Type': 'application/json' },
170
+ });
171
+ }
172
+ exports.queueBuild = queueBuild;
173
+ function uploadFileToBuild(accountId, projectName, filePath, path) {
174
+ return http_1.http.put(accountId, {
175
+ url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds/staged/files/${encodeURIComponent(path)}`,
176
+ data: {
177
+ file: fs_1.default.createReadStream(filePath),
178
+ },
179
+ headers: { 'Content-Type': 'multipart/form-data' },
119
180
  });
120
181
  }
121
- exports.fetchDeployComponentsMetadata = fetchDeployComponentsMetadata;
122
- async function cancelStagedBuild(accountId, projectName) {
123
- return http_1.default.post(accountId, {
182
+ exports.uploadFileToBuild = uploadFileToBuild;
183
+ function deleteFileFromBuild(accountId, projectName, path) {
184
+ return http_1.http.delete(accountId, {
185
+ url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds/staged/files/${encodeURIComponent(path)}`,
186
+ });
187
+ }
188
+ exports.deleteFileFromBuild = deleteFileFromBuild;
189
+ function cancelStagedBuild(accountId, projectName) {
190
+ return http_1.http.post(accountId, {
124
191
  url: `${PROJECTS_API_PATH}/${encodeURIComponent(projectName)}/builds/staged/cancel`,
192
+ headers: { 'Content-Type': 'application/json' },
125
193
  });
126
194
  }
127
195
  exports.cancelStagedBuild = cancelStagedBuild;
196
+ function fetchBuildWarnLogs(accountId, projectName, buildId) {
197
+ return http_1.http.get(accountId, {
198
+ url: `${PROJECTS_LOGS_API_PATH}/logs/projects/${encodeURIComponent(projectName)}/builds/${buildId}/combined/warn`,
199
+ });
200
+ }
201
+ exports.fetchBuildWarnLogs = fetchBuildWarnLogs;
202
+ function fetchDeployWarnLogs(accountId, projectName, deployId) {
203
+ return http_1.http.get(accountId, {
204
+ url: `${PROJECTS_LOGS_API_PATH}/logs/projects/${encodeURIComponent(projectName)}/deploys/${deployId}/combined/warn`,
205
+ });
206
+ }
207
+ exports.fetchDeployWarnLogs = fetchDeployWarnLogs;
208
+ function migrateApp(accountId, appId, projectName) {
209
+ return http_1.http.post(accountId, {
210
+ url: `${MIGRATIONS_API_PATH}/migrations`,
211
+ data: {
212
+ componentId: appId,
213
+ componentType: 'PUBLIC_APP_ID',
214
+ projectName,
215
+ },
216
+ });
217
+ }
218
+ exports.migrateApp = migrateApp;
219
+ function checkMigrationStatus(accountId, id) {
220
+ return http_1.http.get(accountId, {
221
+ url: `${MIGRATIONS_API_PATH}/migrations/${id}`,
222
+ });
223
+ }
224
+ exports.checkMigrationStatus = checkMigrationStatus;
225
+ function cloneApp(accountId, appId) {
226
+ return http_1.http.post(accountId, {
227
+ url: `${MIGRATIONS_API_PATH}/exports`,
228
+ data: {
229
+ componentId: appId,
230
+ componentType: 'PUBLIC_APP_ID',
231
+ },
232
+ });
233
+ }
234
+ exports.cloneApp = cloneApp;
235
+ function checkCloneStatus(accountId, exportId) {
236
+ return http_1.http.get(accountId, {
237
+ url: `${MIGRATIONS_API_PATH}/exports/${exportId}/status`,
238
+ });
239
+ }
240
+ exports.checkCloneStatus = checkCloneStatus;
241
+ function downloadClonedProject(accountId, exportId) {
242
+ return http_1.http.get(accountId, {
243
+ url: `${MIGRATIONS_API_PATH}/exports/${exportId}/download-as-clone`,
244
+ responseType: 'arraybuffer',
245
+ });
246
+ }
247
+ exports.downloadClonedProject = downloadClonedProject;
@@ -1,6 +1,8 @@
1
+ import { AxiosPromise } from 'axios';
1
2
  import { Environment } from '../types/Config';
2
3
  import { SandboxHubData, SandboxResponse, SandboxUsageLimitsResponse } from '../types/Sandbox';
3
- export declare function createSandbox(accountId: number, name: string, type: string): Promise<SandboxResponse>;
4
- export declare function deleteSandbox(parentAccountId: number, sandboxAccountId: number): Promise<void>;
5
- export declare function getSandboxUsageLimits(parentAccountId: number): Promise<SandboxUsageLimitsResponse>;
6
- export declare function fetchSandboxHubData(accessToken: string, portalId: number, env?: Environment): Promise<SandboxHubData>;
4
+ import { HubSpotPromise } from '../types/Http';
5
+ export declare function createSandbox(accountId: number, name: string, type: 1 | 2): HubSpotPromise<SandboxResponse>;
6
+ export declare function deleteSandbox(parentAccountId: number, sandboxAccountId: number): HubSpotPromise<void>;
7
+ export declare function getSandboxUsageLimits(parentAccountId: number): HubSpotPromise<SandboxUsageLimitsResponse>;
8
+ export declare function fetchSandboxHubData(accessToken: string, accountId: number, env?: Environment): AxiosPromise<SandboxHubData>;
@@ -5,37 +5,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fetchSandboxHubData = exports.getSandboxUsageLimits = exports.deleteSandbox = exports.createSandbox = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
- const http_1 = __importDefault(require("../http"));
8
+ const http_1 = require("../http");
9
9
  const getAxiosConfig_1 = require("../http/getAxiosConfig");
10
10
  const environments_1 = require("../constants/environments");
11
11
  const api_1 = require("../constants/api");
12
12
  const SANDBOX_API_PATH = 'sandbox-hubs/v1';
13
13
  const SANDBOX_API_PATH_V2 = 'sandbox-hubs/v2';
14
- async function createSandbox(accountId, name, type) {
15
- return http_1.default.post(accountId, {
14
+ function createSandbox(accountId, name, type) {
15
+ return http_1.http.post(accountId, {
16
16
  data: { name, type, generatePersonalAccessKey: true },
17
17
  timeout: api_1.SANDBOX_TIMEOUT,
18
18
  url: SANDBOX_API_PATH_V2, // Create uses v2 for sandbox type and PAK generation support
19
19
  });
20
20
  }
21
21
  exports.createSandbox = createSandbox;
22
- async function deleteSandbox(parentAccountId, sandboxAccountId) {
23
- return http_1.default.delete(parentAccountId, {
22
+ function deleteSandbox(parentAccountId, sandboxAccountId) {
23
+ return http_1.http.delete(parentAccountId, {
24
24
  url: `${SANDBOX_API_PATH}/${sandboxAccountId}`,
25
25
  });
26
26
  }
27
27
  exports.deleteSandbox = deleteSandbox;
28
- async function getSandboxUsageLimits(parentAccountId) {
29
- return http_1.default.get(parentAccountId, {
28
+ function getSandboxUsageLimits(parentAccountId) {
29
+ return http_1.http.get(parentAccountId, {
30
30
  url: `${SANDBOX_API_PATH}/parent/${parentAccountId}/usage`,
31
31
  });
32
32
  }
33
33
  exports.getSandboxUsageLimits = getSandboxUsageLimits;
34
- async function fetchSandboxHubData(accessToken, portalId, env = environments_1.ENVIRONMENTS.PROD) {
34
+ function fetchSandboxHubData(accessToken, accountId, env = environments_1.ENVIRONMENTS.PROD) {
35
35
  const axiosConfig = (0, getAxiosConfig_1.getAxiosConfig)({
36
36
  env,
37
37
  url: `${SANDBOX_API_PATH}/self`,
38
- params: { portalId },
38
+ params: { portalId: accountId },
39
39
  });
40
40
  const reqWithToken = {
41
41
  ...axiosConfig,
@@ -44,7 +44,6 @@ async function fetchSandboxHubData(accessToken, portalId, env = environments_1.E
44
44
  Authorization: `Bearer ${accessToken}`,
45
45
  },
46
46
  };
47
- const { data } = await (0, axios_1.default)(reqWithToken);
48
- return data;
47
+ return (0, axios_1.default)(reqWithToken);
49
48
  }
50
49
  exports.fetchSandboxHubData = fetchSandboxHubData;
@@ -1,4 +1,4 @@
1
- import { InitiateSyncResponse, Task, SyncTask, FetchTypesResponse } from '../types/Sandbox';
2
- export declare function initiateSync(fromHubId: number, toHubId: number, tasks: Array<SyncTask>, sandboxHubId: number): Promise<InitiateSyncResponse>;
3
- export declare function fetchTaskStatus(accountId: number, taskId: number): Promise<Task>;
4
- export declare function fetchTypes(accountId: number, toHubId: number): Promise<FetchTypesResponse>;
1
+ import { InitiateSyncResponse, FetchTypesResponse, TaskRequestData } from '../types/Sandbox';
2
+ import { HubSpotPromise } from '../types/Http';
3
+ export declare function initiateSync(fromHubId: number, toHubId: number, tasks: Array<TaskRequestData>, sandboxHubId: number): HubSpotPromise<InitiateSyncResponse>;
4
+ export declare function fetchTypes(accountId: number, toHubId: number): HubSpotPromise<FetchTypesResponse>;
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.fetchTypes = exports.fetchTaskStatus = exports.initiateSync = void 0;
7
- const http_1 = __importDefault(require("../http"));
3
+ exports.fetchTypes = exports.initiateSync = void 0;
4
+ const http_1 = require("../http");
8
5
  const api_1 = require("../constants/api");
9
6
  const SANDBOXES_SYNC_API_PATH = 'sandboxes-sync/v1';
10
7
  async function initiateSync(fromHubId, toHubId, tasks, sandboxHubId) {
11
- return http_1.default.post(fromHubId, {
8
+ return http_1.http.post(fromHubId, {
12
9
  data: {
13
10
  command: 'SYNC',
14
11
  fromHubId,
@@ -21,14 +18,8 @@ async function initiateSync(fromHubId, toHubId, tasks, sandboxHubId) {
21
18
  });
22
19
  }
23
20
  exports.initiateSync = initiateSync;
24
- async function fetchTaskStatus(accountId, taskId) {
25
- return http_1.default.get(accountId, {
26
- url: `${SANDBOXES_SYNC_API_PATH}/tasks/${taskId}`,
27
- });
28
- }
29
- exports.fetchTaskStatus = fetchTaskStatus;
30
21
  async function fetchTypes(accountId, toHubId) {
31
- return http_1.default.get(accountId, {
22
+ return http_1.http.get(accountId, {
32
23
  url: `${SANDBOXES_SYNC_API_PATH}/types${toHubId ? `?toHubId=${toHubId}` : ''}`,
33
24
  });
34
25
  }
package/api/secrets.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- type FetchSecretsResponse = {
2
- results: Array<string>;
3
- };
4
- export declare function addSecret(accountId: number, key: string, value: string): Promise<void>;
5
- export declare function updateSecret(accountId: number, key: string, value: string): Promise<void>;
6
- export declare function deleteSecret(accountId: number, key: string): Promise<void>;
7
- export declare function fetchSecrets(accountId: number): Promise<FetchSecretsResponse>;
8
- export {};
1
+ import { FetchSecretsResponse } from '../types/Secrets';
2
+ import { HubSpotPromise } from '../types/Http';
3
+ export declare function addSecret(accountId: number, key: string, value: string): HubSpotPromise<void>;
4
+ export declare function updateSecret(accountId: number, key: string, value: string): HubSpotPromise<void>;
5
+ export declare function deleteSecret(accountId: number, key: string): HubSpotPromise<void>;
6
+ export declare function fetchSecrets(accountId: number): HubSpotPromise<FetchSecretsResponse>;
package/api/secrets.js CHANGED
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.fetchSecrets = exports.deleteSecret = exports.updateSecret = exports.addSecret = void 0;
7
- const http_1 = __importDefault(require("../http"));
4
+ const http_1 = require("../http");
8
5
  const SECRETS_API_PATH = 'cms/v3/functions/secrets';
9
- async function addSecret(accountId, key, value) {
10
- return http_1.default.post(accountId, {
6
+ function addSecret(accountId, key, value) {
7
+ return http_1.http.post(accountId, {
11
8
  url: SECRETS_API_PATH,
12
9
  data: {
13
10
  key,
@@ -16,8 +13,8 @@ async function addSecret(accountId, key, value) {
16
13
  });
17
14
  }
18
15
  exports.addSecret = addSecret;
19
- async function updateSecret(accountId, key, value) {
20
- return http_1.default.put(accountId, {
16
+ function updateSecret(accountId, key, value) {
17
+ return http_1.http.put(accountId, {
21
18
  url: SECRETS_API_PATH,
22
19
  data: {
23
20
  key,
@@ -26,14 +23,14 @@ async function updateSecret(accountId, key, value) {
26
23
  });
27
24
  }
28
25
  exports.updateSecret = updateSecret;
29
- async function deleteSecret(accountId, key) {
30
- return http_1.default.delete(accountId, {
26
+ function deleteSecret(accountId, key) {
27
+ return http_1.http.delete(accountId, {
31
28
  url: `${SECRETS_API_PATH}/${key}`,
32
29
  });
33
30
  }
34
31
  exports.deleteSecret = deleteSecret;
35
- async function fetchSecrets(accountId) {
36
- return http_1.default.get(accountId, {
32
+ function fetchSecrets(accountId) {
33
+ return http_1.http.get(accountId, {
37
34
  url: `${SECRETS_API_PATH}`,
38
35
  });
39
36
  }
@@ -1,2 +1,3 @@
1
1
  import { Validation, HublValidationOptions } from '../types/HublValidation';
2
- export declare function validateHubl(accountId: number, sourceCode: string, hublValidationOptions?: HublValidationOptions): Promise<Validation>;
2
+ import { HubSpotPromise } from '../types/Http';
3
+ export declare function validateHubl(accountId: number, sourceCode: string, hublValidationOptions?: HublValidationOptions): HubSpotPromise<Validation>;
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.validateHubl = void 0;
7
- const http_1 = __importDefault(require("../http"));
4
+ const http_1 = require("../http");
8
5
  const HUBL_VALIDATE_API_PATH = 'cos-rendering/v1/internal/validate';
9
- async function validateHubl(accountId, sourceCode, hublValidationOptions) {
10
- return http_1.default.post(accountId, {
6
+ function validateHubl(accountId, sourceCode, hublValidationOptions) {
7
+ return http_1.http.post(accountId, {
11
8
  url: HUBL_VALIDATE_API_PATH,
12
9
  data: {
13
10
  template_source: sourceCode,
@@ -1,9 +1,8 @@
1
1
  import { CLIConfig_NEW, Environment } from '../types/Config';
2
- import { CLIAccount_NEW, FlatAccountFields_NEW } from '../types/Accounts';
2
+ import { CLIAccount_NEW, FlatAccountFields_NEW, AccountType } from '../types/Accounts';
3
3
  import { CLIOptions } from '../types/CLIOptions';
4
- import { LogCallbacksArg } from '../types/LogCallbacks';
5
- declare const validateLogCallbackKeys: readonly ["noConfig", "noConfigAccounts", "emptyAccountConfig", "noAccountId", "duplicateAccountIds", "duplicateAccountNames", "nameContainsSpaces"];
6
- declare class CLIConfiguration {
4
+ import { CmsPublishMode } from '../types/Files';
5
+ declare class _CLIConfiguration {
7
6
  options: CLIOptions;
8
7
  useEnvConfig: boolean;
9
8
  config: CLIConfig_NEW | null;
@@ -16,21 +15,24 @@ declare class CLIConfiguration {
16
15
  configIsEmpty(): boolean;
17
16
  delete(): void;
18
17
  write(updatedConfig?: CLIConfig_NEW): CLIConfig_NEW | null;
19
- validate(logCallbacks?: LogCallbacksArg<typeof validateLogCallbackKeys>): boolean;
18
+ validate(): boolean;
20
19
  getAccount(nameOrId: string | number | undefined): CLIAccount_NEW | null;
21
20
  isConfigFlagEnabled(flag: keyof CLIConfig_NEW, defaultValue?: boolean): boolean;
22
21
  getAccountId(nameOrId?: string | number): number | null;
23
22
  getDefaultAccount(): string | number | null;
24
- getResolvedDefaultAccountForCWD(nameOrId: string | number): CLIAccount_NEW | null;
25
- getConfigAccountIndex(accountId: number): number;
23
+ getDefaultAccountOverrideFilePath(): string | null;
24
+ getCWDAccountOverride(): string | number | null;
25
+ getAccountIndex(accountId: number): number;
26
26
  getConfigForAccount(accountId?: number): CLIAccount_NEW | null;
27
+ getConfigAccounts(): Array<CLIAccount_NEW> | null;
27
28
  isAccountInConfig(nameOrId: string | number): boolean;
28
29
  getAndLoadConfigIfNeeded(options?: CLIOptions): CLIConfig_NEW;
29
30
  getEnv(nameOrId?: string | number): Environment;
31
+ getAccountType(accountType?: AccountType | null, sandboxAccountType?: string | null): AccountType;
30
32
  /**
31
33
  * @throws {Error}
32
34
  */
33
- updateAccount(updatedAccountFields: Partial<FlatAccountFields_NEW>, writeUpdate?: boolean): FlatAccountFields_NEW | null;
35
+ addOrUpdateAccount(updatedAccountFields: Partial<FlatAccountFields_NEW>, writeUpdate?: boolean): FlatAccountFields_NEW | null;
34
36
  /**
35
37
  * @throws {Error}
36
38
  */
@@ -41,12 +43,13 @@ declare class CLIConfiguration {
41
43
  renameAccount(currentName: string, newName: string): void;
42
44
  /**
43
45
  * @throws {Error}
46
+ * TODO: this does not account for the special handling of sandbox account deletes
44
47
  */
45
48
  removeAccountFromConfig(nameOrId: string | number): boolean;
46
49
  /**
47
50
  * @throws {Error}
48
51
  */
49
- updateDefaultMode(defaultMode: string): CLIConfig_NEW | null;
52
+ updateDefaultCmsPublishMode(defaultCmsPublishMode: CmsPublishMode): CLIConfig_NEW | null;
50
53
  /**
51
54
  * @throws {Error}
52
55
  */
@@ -56,6 +59,7 @@ declare class CLIConfiguration {
56
59
  */
57
60
  updateAllowUsageTracking(isEnabled: boolean): CLIConfig_NEW | null;
58
61
  isTrackingAllowed(): boolean;
62
+ handleLegacyCmsPublishMode(config: CLIConfig_NEW | null): CLIConfig_NEW | null;
59
63
  }
60
- declare const _default: CLIConfiguration;
61
- export default _default;
64
+ export declare const CLIConfiguration: _CLIConfiguration;
65
+ export {};