@esri/solution-common 4.1.2 → 5.0.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 (261) hide show
  1. package/dist/cjs/completeItem.d.ts +29 -29
  2. package/dist/cjs/completeItem.js +81 -81
  3. package/dist/cjs/create-hub-request-options.d.ts +29 -29
  4. package/dist/cjs/create-hub-request-options.js +63 -63
  5. package/dist/cjs/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
  6. package/dist/cjs/deleteHelpers/deleteEmptyGroups.js +41 -41
  7. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
  8. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js +96 -96
  9. package/dist/cjs/deleteHelpers/deleteSolutionContents.d.ts +38 -38
  10. package/dist/cjs/deleteHelpers/deleteSolutionContents.js +129 -129
  11. package/dist/cjs/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
  12. package/dist/cjs/deleteHelpers/deleteSolutionFolder.js +78 -78
  13. package/dist/cjs/deleteHelpers/deleteSolutionItem.d.ts +30 -30
  14. package/dist/cjs/deleteHelpers/deleteSolutionItem.js +53 -53
  15. package/dist/cjs/deleteHelpers/index.d.ts +22 -22
  16. package/dist/cjs/deleteHelpers/index.js +25 -25
  17. package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
  18. package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.js +33 -33
  19. package/dist/cjs/deleteHelpers/removeItems.d.ts +34 -34
  20. package/dist/cjs/deleteHelpers/removeItems.js +111 -111
  21. package/dist/cjs/deleteHelpers/reportProgress.d.ts +27 -27
  22. package/dist/cjs/deleteHelpers/reportProgress.js +45 -45
  23. package/dist/cjs/deleteSolution.d.ts +55 -55
  24. package/dist/cjs/deleteSolution.js +106 -106
  25. package/dist/cjs/dependencies.d.ts +26 -26
  26. package/dist/cjs/dependencies.js +170 -170
  27. package/dist/cjs/featureServiceHelpers.d.ts +791 -791
  28. package/dist/cjs/featureServiceHelpers.js +2420 -2420
  29. package/dist/cjs/generalHelpers.d.ts +392 -385
  30. package/dist/cjs/generalHelpers.js +857 -854
  31. package/dist/cjs/generalHelpers.js.map +1 -1
  32. package/dist/cjs/get-subscription-info.d.ts +27 -27
  33. package/dist/cjs/get-subscription-info.js +38 -38
  34. package/dist/cjs/getDeletableSolutionInfo.d.ts +29 -29
  35. package/dist/cjs/getDeletableSolutionInfo.js +52 -52
  36. package/dist/cjs/getItemTypeAbbrev.d.ts +19 -19
  37. package/dist/cjs/getItemTypeAbbrev.js +184 -184
  38. package/dist/cjs/getSolutionSummary.d.ts +27 -27
  39. package/dist/cjs/getSolutionSummary.js +100 -100
  40. package/dist/cjs/index.d.ts +43 -44
  41. package/dist/cjs/index.js +46 -47
  42. package/dist/cjs/index.js.map +1 -1
  43. package/dist/cjs/interfaces.d.ts +1334 -1334
  44. package/dist/cjs/interfaces.js +74 -74
  45. package/dist/cjs/interfaces.js.map +1 -1
  46. package/dist/cjs/libConnectors.d.ts +73 -73
  47. package/dist/cjs/libConnectors.js +114 -114
  48. package/dist/cjs/migrations/apply-schema.d.ts +24 -24
  49. package/dist/cjs/migrations/apply-schema.js +35 -35
  50. package/dist/cjs/migrations/is-legacy-solution.d.ts +24 -24
  51. package/dist/cjs/migrations/is-legacy-solution.js +39 -39
  52. package/dist/cjs/migrations/upgrade-three-dot-one.d.ts +27 -27
  53. package/dist/cjs/migrations/upgrade-three-dot-one.js +48 -48
  54. package/dist/cjs/migrations/upgrade-three-dot-zero.d.ts +27 -27
  55. package/dist/cjs/migrations/upgrade-three-dot-zero.js +42 -42
  56. package/dist/cjs/migrations/upgrade-two-dot-five.d.ts +24 -24
  57. package/dist/cjs/migrations/upgrade-two-dot-five.js +72 -72
  58. package/dist/cjs/migrations/upgrade-two-dot-four.d.ts +24 -24
  59. package/dist/cjs/migrations/upgrade-two-dot-four.js +71 -71
  60. package/dist/cjs/migrations/upgrade-two-dot-one.d.ts +7 -7
  61. package/dist/cjs/migrations/upgrade-two-dot-one.js +38 -38
  62. package/dist/cjs/migrations/upgrade-two-dot-seven.d.ts +23 -23
  63. package/dist/cjs/migrations/upgrade-two-dot-seven.js +57 -57
  64. package/dist/cjs/migrations/upgrade-two-dot-six.d.ts +27 -27
  65. package/dist/cjs/migrations/upgrade-two-dot-six.js +60 -60
  66. package/dist/cjs/migrations/upgrade-two-dot-three.d.ts +23 -23
  67. package/dist/cjs/migrations/upgrade-two-dot-three.js +54 -54
  68. package/dist/cjs/migrations/upgrade-two-dot-two.d.ts +23 -23
  69. package/dist/cjs/migrations/upgrade-two-dot-two.js +57 -57
  70. package/dist/cjs/migrations/upgrade-two-dot-zero.d.ts +44 -44
  71. package/dist/cjs/migrations/upgrade-two-dot-zero.js +94 -94
  72. package/dist/cjs/migrator.d.ts +25 -25
  73. package/dist/cjs/migrator.js +76 -76
  74. package/dist/cjs/resourceHelpers.d.ts +191 -191
  75. package/dist/cjs/resourceHelpers.js +383 -390
  76. package/dist/cjs/resourceHelpers.js.map +1 -1
  77. package/dist/cjs/resources/add-resource-from-blob.d.ts +26 -26
  78. package/dist/cjs/resources/add-resource-from-blob.js +51 -51
  79. package/dist/cjs/resources/addMetadataFromBlob.d.ts +25 -25
  80. package/dist/cjs/resources/addMetadataFromBlob.js +42 -42
  81. package/dist/cjs/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
  82. package/dist/cjs/resources/convert-item-resource-to-storage-resource.js +69 -69
  83. package/dist/cjs/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
  84. package/dist/cjs/resources/convert-storage-resource-to-item-resource.js +69 -69
  85. package/dist/cjs/resources/copyAssociatedFiles.d.ts +67 -67
  86. package/dist/cjs/resources/copyAssociatedFiles.js +301 -301
  87. package/dist/cjs/resources/copyDataIntoItem.d.ts +33 -33
  88. package/dist/cjs/resources/copyDataIntoItem.js +61 -62
  89. package/dist/cjs/resources/copyDataIntoItem.js.map +1 -1
  90. package/dist/cjs/resources/copyMetadataIntoItem.d.ts +26 -26
  91. package/dist/cjs/resources/copyMetadataIntoItem.js +45 -45
  92. package/dist/cjs/resources/copyResourceIntoZip.d.ts +33 -33
  93. package/dist/cjs/resources/copyResourceIntoZip.js +77 -77
  94. package/dist/cjs/resources/copyZipIntoItem.d.ts +25 -25
  95. package/dist/cjs/resources/copyZipIntoItem.js +53 -53
  96. package/dist/cjs/resources/createCopyResults.d.ts +25 -25
  97. package/dist/cjs/resources/createCopyResults.js +35 -35
  98. package/dist/cjs/resources/get-blob.d.ts +26 -26
  99. package/dist/cjs/resources/get-blob.js +26 -26
  100. package/dist/cjs/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
  101. package/dist/cjs/resources/getItemResourcesFilesFromPaths.js +48 -48
  102. package/dist/cjs/resources/getItemResourcesPaths.d.ts +26 -26
  103. package/dist/cjs/resources/getItemResourcesPaths.js +72 -72
  104. package/dist/cjs/resources/index.d.ts +29 -29
  105. package/dist/cjs/resources/index.js +32 -32
  106. package/dist/cjs/resources/solution-resource.d.ts +35 -35
  107. package/dist/cjs/resources/solution-resource.js +30 -30
  108. package/dist/cjs/resources/solution-resource.js.map +1 -1
  109. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
  110. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js +145 -145
  111. package/dist/cjs/restHelpers.d.ts +586 -585
  112. package/dist/cjs/restHelpers.js +1888 -1883
  113. package/dist/cjs/restHelpers.js.map +1 -1
  114. package/dist/cjs/restHelpersGet.d.ts +288 -288
  115. package/dist/cjs/restHelpersGet.js +803 -803
  116. package/dist/cjs/sharing/index.d.ts +16 -16
  117. package/dist/cjs/sharing/index.js +19 -19
  118. package/dist/cjs/sharing/share-item-to-groups.d.ts +26 -26
  119. package/dist/cjs/sharing/share-item-to-groups.js +43 -43
  120. package/dist/cjs/templatization.d.ts +139 -139
  121. package/dist/cjs/templatization.js +313 -313
  122. package/dist/cjs/trackingHelpers.d.ts +116 -116
  123. package/dist/cjs/trackingHelpers.js +216 -216
  124. package/dist/cjs/velocityHelpers.d.ts +57 -57
  125. package/dist/cjs/velocityHelpers.js +134 -134
  126. package/dist/cjs/workforceHelpers.d.ts +115 -115
  127. package/dist/cjs/workforceHelpers.js +746 -746
  128. package/dist/cjs/workforceHelpers.js.map +1 -1
  129. package/dist/esm/completeItem.d.ts +29 -29
  130. package/dist/esm/completeItem.js +76 -76
  131. package/dist/esm/create-hub-request-options.d.ts +29 -29
  132. package/dist/esm/create-hub-request-options.js +59 -59
  133. package/dist/esm/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
  134. package/dist/esm/deleteHelpers/deleteEmptyGroups.js +37 -37
  135. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
  136. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js +91 -91
  137. package/dist/esm/deleteHelpers/deleteSolutionContents.d.ts +38 -38
  138. package/dist/esm/deleteHelpers/deleteSolutionContents.js +124 -124
  139. package/dist/esm/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
  140. package/dist/esm/deleteHelpers/deleteSolutionFolder.js +73 -73
  141. package/dist/esm/deleteHelpers/deleteSolutionItem.d.ts +30 -30
  142. package/dist/esm/deleteHelpers/deleteSolutionItem.js +48 -48
  143. package/dist/esm/deleteHelpers/index.d.ts +22 -22
  144. package/dist/esm/deleteHelpers/index.js +22 -22
  145. package/dist/esm/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
  146. package/dist/esm/deleteHelpers/reconstructBuildOrderIds.js +28 -28
  147. package/dist/esm/deleteHelpers/removeItems.d.ts +34 -34
  148. package/dist/esm/deleteHelpers/removeItems.js +106 -106
  149. package/dist/esm/deleteHelpers/reportProgress.d.ts +27 -27
  150. package/dist/esm/deleteHelpers/reportProgress.js +41 -41
  151. package/dist/esm/deleteSolution.d.ts +55 -55
  152. package/dist/esm/deleteSolution.js +100 -100
  153. package/dist/esm/dependencies.d.ts +26 -26
  154. package/dist/esm/dependencies.js +166 -166
  155. package/dist/esm/featureServiceHelpers.d.ts +791 -791
  156. package/dist/esm/featureServiceHelpers.js +2336 -2336
  157. package/dist/esm/generalHelpers.d.ts +392 -385
  158. package/dist/esm/generalHelpers.js +810 -808
  159. package/dist/esm/generalHelpers.js.map +1 -1
  160. package/dist/esm/get-subscription-info.d.ts +27 -27
  161. package/dist/esm/get-subscription-info.js +34 -34
  162. package/dist/esm/getDeletableSolutionInfo.d.ts +29 -29
  163. package/dist/esm/getDeletableSolutionInfo.js +47 -47
  164. package/dist/esm/getItemTypeAbbrev.d.ts +19 -19
  165. package/dist/esm/getItemTypeAbbrev.js +180 -180
  166. package/dist/esm/getSolutionSummary.d.ts +27 -27
  167. package/dist/esm/getSolutionSummary.js +95 -95
  168. package/dist/esm/index.d.ts +43 -44
  169. package/dist/esm/index.js +43 -44
  170. package/dist/esm/index.js.map +1 -1
  171. package/dist/esm/interfaces.d.ts +1334 -1334
  172. package/dist/esm/interfaces.js +70 -70
  173. package/dist/esm/libConnectors.d.ts +73 -73
  174. package/dist/esm/libConnectors.js +104 -104
  175. package/dist/esm/migrations/apply-schema.d.ts +24 -24
  176. package/dist/esm/migrations/apply-schema.js +31 -31
  177. package/dist/esm/migrations/is-legacy-solution.d.ts +24 -24
  178. package/dist/esm/migrations/is-legacy-solution.js +35 -35
  179. package/dist/esm/migrations/upgrade-three-dot-one.d.ts +27 -27
  180. package/dist/esm/migrations/upgrade-three-dot-one.js +44 -44
  181. package/dist/esm/migrations/upgrade-three-dot-zero.d.ts +27 -27
  182. package/dist/esm/migrations/upgrade-three-dot-zero.js +38 -38
  183. package/dist/esm/migrations/upgrade-two-dot-five.d.ts +24 -24
  184. package/dist/esm/migrations/upgrade-two-dot-five.js +68 -68
  185. package/dist/esm/migrations/upgrade-two-dot-four.d.ts +24 -24
  186. package/dist/esm/migrations/upgrade-two-dot-four.js +67 -67
  187. package/dist/esm/migrations/upgrade-two-dot-one.d.ts +7 -7
  188. package/dist/esm/migrations/upgrade-two-dot-one.js +34 -34
  189. package/dist/esm/migrations/upgrade-two-dot-seven.d.ts +23 -23
  190. package/dist/esm/migrations/upgrade-two-dot-seven.js +53 -53
  191. package/dist/esm/migrations/upgrade-two-dot-six.d.ts +27 -27
  192. package/dist/esm/migrations/upgrade-two-dot-six.js +56 -56
  193. package/dist/esm/migrations/upgrade-two-dot-three.d.ts +23 -23
  194. package/dist/esm/migrations/upgrade-two-dot-three.js +50 -50
  195. package/dist/esm/migrations/upgrade-two-dot-two.d.ts +23 -23
  196. package/dist/esm/migrations/upgrade-two-dot-two.js +53 -53
  197. package/dist/esm/migrations/upgrade-two-dot-zero.d.ts +44 -44
  198. package/dist/esm/migrations/upgrade-two-dot-zero.js +87 -87
  199. package/dist/esm/migrator.d.ts +25 -25
  200. package/dist/esm/migrator.js +72 -72
  201. package/dist/esm/resourceHelpers.d.ts +191 -191
  202. package/dist/esm/resourceHelpers.js +364 -371
  203. package/dist/esm/resourceHelpers.js.map +1 -1
  204. package/dist/esm/resources/add-resource-from-blob.d.ts +26 -26
  205. package/dist/esm/resources/add-resource-from-blob.js +47 -47
  206. package/dist/esm/resources/addMetadataFromBlob.d.ts +25 -25
  207. package/dist/esm/resources/addMetadataFromBlob.js +38 -38
  208. package/dist/esm/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
  209. package/dist/esm/resources/convert-item-resource-to-storage-resource.js +65 -65
  210. package/dist/esm/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
  211. package/dist/esm/resources/convert-storage-resource-to-item-resource.js +65 -65
  212. package/dist/esm/resources/copyAssociatedFiles.d.ts +67 -67
  213. package/dist/esm/resources/copyAssociatedFiles.js +293 -293
  214. package/dist/esm/resources/copyDataIntoItem.d.ts +33 -33
  215. package/dist/esm/resources/copyDataIntoItem.js +56 -57
  216. package/dist/esm/resources/copyDataIntoItem.js.map +1 -1
  217. package/dist/esm/resources/copyMetadataIntoItem.d.ts +26 -26
  218. package/dist/esm/resources/copyMetadataIntoItem.js +41 -41
  219. package/dist/esm/resources/copyResourceIntoZip.d.ts +33 -33
  220. package/dist/esm/resources/copyResourceIntoZip.js +72 -72
  221. package/dist/esm/resources/copyZipIntoItem.d.ts +25 -25
  222. package/dist/esm/resources/copyZipIntoItem.js +49 -49
  223. package/dist/esm/resources/createCopyResults.d.ts +25 -25
  224. package/dist/esm/resources/createCopyResults.js +31 -31
  225. package/dist/esm/resources/get-blob.d.ts +26 -26
  226. package/dist/esm/resources/get-blob.js +22 -22
  227. package/dist/esm/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
  228. package/dist/esm/resources/getItemResourcesFilesFromPaths.js +44 -44
  229. package/dist/esm/resources/getItemResourcesPaths.d.ts +26 -26
  230. package/dist/esm/resources/getItemResourcesPaths.js +68 -68
  231. package/dist/esm/resources/index.d.ts +29 -29
  232. package/dist/esm/resources/index.js +29 -29
  233. package/dist/esm/resources/solution-resource.d.ts +35 -35
  234. package/dist/esm/resources/solution-resource.js +27 -27
  235. package/dist/esm/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
  236. package/dist/esm/resources/transform-resource-paths-to-solution-resources.js +137 -137
  237. package/dist/esm/restHelpers.d.ts +586 -585
  238. package/dist/esm/restHelpers.js +1827 -1823
  239. package/dist/esm/restHelpers.js.map +1 -1
  240. package/dist/esm/restHelpersGet.d.ts +288 -288
  241. package/dist/esm/restHelpersGet.js +763 -763
  242. package/dist/esm/sharing/index.d.ts +16 -16
  243. package/dist/esm/sharing/index.js +16 -16
  244. package/dist/esm/sharing/share-item-to-groups.d.ts +26 -26
  245. package/dist/esm/sharing/share-item-to-groups.js +39 -39
  246. package/dist/esm/templatization.d.ts +139 -139
  247. package/dist/esm/templatization.js +293 -293
  248. package/dist/esm/trackingHelpers.d.ts +116 -116
  249. package/dist/esm/trackingHelpers.js +204 -204
  250. package/dist/esm/velocityHelpers.d.ts +57 -57
  251. package/dist/esm/velocityHelpers.js +128 -128
  252. package/dist/esm/workforceHelpers.d.ts +115 -115
  253. package/dist/esm/workforceHelpers.js +717 -717
  254. package/dist/esm/workforceHelpers.js.map +1 -1
  255. package/package.json +2 -2
  256. package/dist/cjs/polyfills.d.ts +0 -40
  257. package/dist/cjs/polyfills.js +0 -98
  258. package/dist/cjs/polyfills.js.map +0 -1
  259. package/dist/esm/polyfills.d.ts +0 -40
  260. package/dist/esm/polyfills.js +0 -93
  261. package/dist/esm/polyfills.js.map +0 -1
@@ -1,107 +1,107 @@
1
- /** @license
2
- * Copyright 2018 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * @module removeItems
18
- */
19
- import { EItemProgressStatus } from "../interfaces";
20
- import * as reportProgress from "./reportProgress";
21
- import * as hubSites from "@esri/hub-sites";
22
- import * as portal from "@esri/arcgis-rest-portal";
23
- import * as restHelpers from "../restHelpers";
24
- import { createHubRequestOptions } from "../create-hub-request-options";
25
- // ------------------------------------------------------------------------------------------------------------------ //
26
- /**
27
- * Removes a list of items starting from the end.
28
- *
29
- * @param itemIds List of ids of items to remove
30
- * @param hubSiteItemIds List of ids in itemIds that are for Hub Sites
31
- * @param authentication Credentials for the request
32
- * @param percentDone Percent done in range 0 to 100
33
- * @param progressPercentStep Amount that percentDone changes for each item deleted
34
- * @param solutionDeletedSummary Solution summary containing items successfully deleted
35
- * @param solutionFailureSummary Solution summary containing items that could not be deleted
36
- * @param deleteOptions Reporting options
37
- * @returns Promise that will resolve with a list of two solution summaries: successful deletions
38
- * and failed deletions. Ignored items (e.g., already deleted) will not be in either list.
39
- */
40
- export function removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions = {}) {
41
- let solutionDeletedSummary;
42
- let solutionFailureSummary;
43
- const itemToDelete = solutionSummary.items.shift();
44
- const percentDoneReport = percentDone + progressPercentStep * (solutionSummary.items.length + 1);
45
- if (itemToDelete) {
46
- // On to next item in list
47
- return removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions)
48
- .then((results) => {
49
- // Done with subsequent items in list; now delete the current item
50
- [solutionDeletedSummary, solutionFailureSummary] = results;
51
- // Remove any delete protection on item
52
- return portal.unprotectItem({
53
- id: itemToDelete.id,
54
- authentication: authentication
55
- });
56
- })
57
- .then(async () => {
58
- // Delete the item
59
- if (hubSiteItemIds.includes(itemToDelete.id)) {
60
- const options = await createHubRequestOptions(authentication);
61
- return hubSites.removeSite(itemToDelete.id, options);
62
- }
63
- else {
64
- return restHelpers.removeItem(itemToDelete.id, authentication);
65
- }
66
- })
67
- .then(() => {
68
- // Successful deletion
69
- solutionDeletedSummary.items.push(itemToDelete);
70
- reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, EItemProgressStatus.Finished);
71
- return [solutionDeletedSummary, solutionFailureSummary];
72
- })
73
- .catch(error => {
74
- const errorMessage = error.error?.message || error.message;
75
- if (errorMessage &&
76
- errorMessage.includes("Item does not exist or is inaccessible")) {
77
- // Filter out errors where the item doesn't exist, such as from a previous delete attempt
78
- reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, EItemProgressStatus.Ignored);
79
- }
80
- else {
81
- // Otherwise, we have a real delete error, including where AGO simply returns "success: false"
82
- solutionFailureSummary.items.push(itemToDelete);
83
- reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, EItemProgressStatus.Failed);
84
- }
85
- return [solutionDeletedSummary, solutionFailureSummary];
86
- });
87
- }
88
- else {
89
- // We've exhausted our list of items; start building up the lists of results
90
- solutionDeletedSummary = {
91
- id: solutionSummary.id,
92
- title: solutionSummary.title,
93
- folder: solutionSummary.folder,
94
- items: [],
95
- groups: []
96
- };
97
- solutionFailureSummary = {
98
- id: solutionSummary.id,
99
- title: solutionSummary.title,
100
- folder: solutionSummary.folder,
101
- items: [],
102
- groups: []
103
- };
104
- return Promise.resolve([solutionDeletedSummary, solutionFailureSummary]);
105
- }
106
- }
1
+ /** @license
2
+ * Copyright 2018 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @module removeItems
18
+ */
19
+ import { EItemProgressStatus } from "../interfaces";
20
+ import * as reportProgress from "./reportProgress";
21
+ import * as hubSites from "@esri/hub-sites";
22
+ import * as portal from "@esri/arcgis-rest-portal";
23
+ import * as restHelpers from "../restHelpers";
24
+ import { createHubRequestOptions } from "../create-hub-request-options";
25
+ // ------------------------------------------------------------------------------------------------------------------ //
26
+ /**
27
+ * Removes a list of items starting from the end.
28
+ *
29
+ * @param itemIds List of ids of items to remove
30
+ * @param hubSiteItemIds List of ids in itemIds that are for Hub Sites
31
+ * @param authentication Credentials for the request
32
+ * @param percentDone Percent done in range 0 to 100
33
+ * @param progressPercentStep Amount that percentDone changes for each item deleted
34
+ * @param solutionDeletedSummary Solution summary containing items successfully deleted
35
+ * @param solutionFailureSummary Solution summary containing items that could not be deleted
36
+ * @param deleteOptions Reporting options
37
+ * @returns Promise that will resolve with a list of two solution summaries: successful deletions
38
+ * and failed deletions. Ignored items (e.g., already deleted) will not be in either list.
39
+ */
40
+ export function removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions = {}) {
41
+ let solutionDeletedSummary;
42
+ let solutionFailureSummary;
43
+ const itemToDelete = solutionSummary.items.shift();
44
+ const percentDoneReport = percentDone + progressPercentStep * (solutionSummary.items.length + 1);
45
+ if (itemToDelete) {
46
+ // On to next item in list
47
+ return removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions)
48
+ .then((results) => {
49
+ // Done with subsequent items in list; now delete the current item
50
+ [solutionDeletedSummary, solutionFailureSummary] = results;
51
+ // Remove any delete protection on item
52
+ return portal.unprotectItem({
53
+ id: itemToDelete.id,
54
+ authentication: authentication
55
+ });
56
+ })
57
+ .then(async () => {
58
+ // Delete the item
59
+ if (hubSiteItemIds.includes(itemToDelete.id)) {
60
+ const options = await createHubRequestOptions(authentication);
61
+ return hubSites.removeSite(itemToDelete.id, options);
62
+ }
63
+ else {
64
+ return restHelpers.removeItem(itemToDelete.id, authentication);
65
+ }
66
+ })
67
+ .then(() => {
68
+ // Successful deletion
69
+ solutionDeletedSummary.items.push(itemToDelete);
70
+ reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, EItemProgressStatus.Finished);
71
+ return [solutionDeletedSummary, solutionFailureSummary];
72
+ })
73
+ .catch(error => {
74
+ const errorMessage = error.error?.message || error.message;
75
+ if (errorMessage &&
76
+ errorMessage.includes("Item does not exist or is inaccessible")) {
77
+ // Filter out errors where the item doesn't exist, such as from a previous delete attempt
78
+ reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, EItemProgressStatus.Ignored);
79
+ }
80
+ else {
81
+ // Otherwise, we have a real delete error, including where AGO simply returns "success: false"
82
+ solutionFailureSummary.items.push(itemToDelete);
83
+ reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, EItemProgressStatus.Failed);
84
+ }
85
+ return [solutionDeletedSummary, solutionFailureSummary];
86
+ });
87
+ }
88
+ else {
89
+ // We've exhausted our list of items; start building up the lists of results
90
+ solutionDeletedSummary = {
91
+ id: solutionSummary.id,
92
+ title: solutionSummary.title,
93
+ folder: solutionSummary.folder,
94
+ items: [],
95
+ groups: []
96
+ };
97
+ solutionFailureSummary = {
98
+ id: solutionSummary.id,
99
+ title: solutionSummary.title,
100
+ folder: solutionSummary.folder,
101
+ items: [],
102
+ groups: []
103
+ };
104
+ return Promise.resolve([solutionDeletedSummary, solutionFailureSummary]);
105
+ }
106
+ }
107
107
  //# sourceMappingURL=removeItems.js.map
@@ -1,27 +1,27 @@
1
- /** @license
2
- * Copyright 2018 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * @module reportProgress
18
- */
19
- import { EItemProgressStatus, IDeleteSolutionOptions } from "../interfaces";
20
- /**
21
- * Reports progress as specified via options.
22
- *
23
- * @param percentDone Percent done in range 0 to 100
24
- * @param deleteOptions Reporting options
25
- * @param deletedItemId Id of item deleted
26
- */
27
- export declare function reportProgress(percentDone: number, deleteOptions: IDeleteSolutionOptions, deletedItemId?: string, status?: EItemProgressStatus): void;
1
+ /** @license
2
+ * Copyright 2018 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @module reportProgress
18
+ */
19
+ import { EItemProgressStatus, IDeleteSolutionOptions } from "../interfaces";
20
+ /**
21
+ * Reports progress as specified via options.
22
+ *
23
+ * @param percentDone Percent done in range 0 to 100
24
+ * @param deleteOptions Reporting options
25
+ * @param deletedItemId Id of item deleted
26
+ */
27
+ export declare function reportProgress(percentDone: number, deleteOptions: IDeleteSolutionOptions, deletedItemId?: string, status?: EItemProgressStatus): void;
@@ -1,42 +1,42 @@
1
- /** @license
2
- * Copyright 2018 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * @module reportProgress
18
- */
19
- import { EItemProgressStatus, SItemProgressStatus } from "../interfaces";
20
- // ------------------------------------------------------------------------------------------------------------------ //
21
- /**
22
- * Reports progress as specified via options.
23
- *
24
- * @param percentDone Percent done in range 0 to 100
25
- * @param deleteOptions Reporting options
26
- * @param deletedItemId Id of item deleted
27
- */
28
- export function reportProgress(percentDone, deleteOptions, deletedItemId = "", status = EItemProgressStatus.Started) {
29
- const iPercentDone = Math.round(percentDone);
30
- /* istanbul ignore else */
31
- if (deleteOptions.progressCallback) {
32
- deleteOptions.progressCallback(iPercentDone, deleteOptions.jobId, {
33
- event: "",
34
- data: deletedItemId
35
- });
36
- }
37
- /* istanbul ignore else */
38
- if (deleteOptions.consoleProgress) {
39
- console.log(Date.now(), deletedItemId, deleteOptions.jobId ?? "", SItemProgressStatus[status], iPercentDone + "%");
40
- }
41
- }
1
+ /** @license
2
+ * Copyright 2018 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @module reportProgress
18
+ */
19
+ import { EItemProgressStatus, SItemProgressStatus } from "../interfaces";
20
+ // ------------------------------------------------------------------------------------------------------------------ //
21
+ /**
22
+ * Reports progress as specified via options.
23
+ *
24
+ * @param percentDone Percent done in range 0 to 100
25
+ * @param deleteOptions Reporting options
26
+ * @param deletedItemId Id of item deleted
27
+ */
28
+ export function reportProgress(percentDone, deleteOptions, deletedItemId = "", status = EItemProgressStatus.Started) {
29
+ const iPercentDone = Math.round(percentDone);
30
+ /* istanbul ignore else */
31
+ if (deleteOptions.progressCallback) {
32
+ deleteOptions.progressCallback(iPercentDone, deleteOptions.jobId, {
33
+ event: "",
34
+ data: deletedItemId
35
+ });
36
+ }
37
+ /* istanbul ignore else */
38
+ if (deleteOptions.consoleProgress) {
39
+ console.log(Date.now(), deletedItemId, deleteOptions.jobId ?? "", SItemProgressStatus[status], iPercentDone + "%");
40
+ }
41
+ }
42
42
  //# sourceMappingURL=reportProgress.js.map
@@ -1,55 +1,55 @@
1
- /** @license
2
- * Copyright 2021 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * Provides a function for deleting a deployed Solution item and all of the items that were created
18
- * as part of that deployment.
19
- *
20
- * @module deleteSolution
21
- */
22
- import { IDeleteSolutionOptions, IItemTemplate, ISolutionPrecis, UserSession } from "./interfaces";
23
- /**
24
- * Deletes a deployed Solution item and and all of the items that were created
25
- * as part of that deployment.
26
- *
27
- * @param solutionItemId Id of a deployed Solution
28
- * @param authentication Credentials for the request
29
- * @param options Progress reporting options
30
- * @returns Promise that will resolve with a list of two solution summaries: successful deletions
31
- * and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
32
- * one Solution will not be in either list.
33
- * Note that Solution item and its deployment folder will only be deleted if all of its deployed
34
- * items were deleted (the failure list is empty). This makes it possible to re-attempted
35
- * deletion using the solutionItemId.
36
- */
37
- export declare function deleteSolution(solutionItemId: string, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
38
- /**
39
- * Deletes a deployed Solution item and and all of the items that were created
40
- * as part of that deployment.
41
- *
42
- * @param solutionItemId Id of a deployed Solution
43
- * @param itemIds Item ids to delete; this list is reversed in this function
44
- * @param templates List of Solution's templates
45
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
46
- * @param authentication Credentials for the request
47
- * @param options Progress reporting options
48
- * @returns Promise that will resolve with a list of two solution summaries: successful deletions
49
- * and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
50
- * one Solution will not be in either list.
51
- * Note that Solution item and its deployment folder will only be deleted if all of its deployed
52
- * items were deleted (the failure list is empty). This makes it possible to re-attempted
53
- * deletion using the solutionItemId.
54
- */
55
- export declare function deleteSolutionByComponents(solutionItemId: string, itemIds: string[], templates: IItemTemplate[], templateDictionary: any, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
1
+ /** @license
2
+ * Copyright 2021 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Provides a function for deleting a deployed Solution item and all of the items that were created
18
+ * as part of that deployment.
19
+ *
20
+ * @module deleteSolution
21
+ */
22
+ import { IDeleteSolutionOptions, IItemTemplate, ISolutionPrecis, UserSession } from "./interfaces";
23
+ /**
24
+ * Deletes a deployed Solution item and and all of the items that were created
25
+ * as part of that deployment.
26
+ *
27
+ * @param solutionItemId Id of a deployed Solution
28
+ * @param authentication Credentials for the request
29
+ * @param options Progress reporting options
30
+ * @returns Promise that will resolve with a list of two solution summaries: successful deletions
31
+ * and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
32
+ * one Solution will not be in either list.
33
+ * Note that Solution item and its deployment folder will only be deleted if all of its deployed
34
+ * items were deleted (the failure list is empty). This makes it possible to re-attempted
35
+ * deletion using the solutionItemId.
36
+ */
37
+ export declare function deleteSolution(solutionItemId: string, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
38
+ /**
39
+ * Deletes a deployed Solution item and and all of the items that were created
40
+ * as part of that deployment.
41
+ *
42
+ * @param solutionItemId Id of a deployed Solution
43
+ * @param itemIds Item ids to delete; this list is reversed in this function
44
+ * @param templates List of Solution's templates
45
+ * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
46
+ * @param authentication Credentials for the request
47
+ * @param options Progress reporting options
48
+ * @returns Promise that will resolve with a list of two solution summaries: successful deletions
49
+ * and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
50
+ * one Solution will not be in either list.
51
+ * Note that Solution item and its deployment folder will only be deleted if all of its deployed
52
+ * items were deleted (the failure list is empty). This makes it possible to re-attempted
53
+ * deletion using the solutionItemId.
54
+ */
55
+ export declare function deleteSolutionByComponents(solutionItemId: string, itemIds: string[], templates: IItemTemplate[], templateDictionary: any, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;