@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,27 +1,27 @@
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
- * @module deleteGroupIfEmpty
18
- */
19
- import { UserSession } from "../interfaces";
20
- /**
21
- * Deletes a group if it's empty and belongs to the specified user.
22
- *
23
- * @param groupId Id of the group to be deleted
24
- * @param authentication Credentials for the request
25
- * @returns Promise indicating if group was deleted
26
- */
27
- export declare function deleteGroupIfEmpty(groupId: string, authentication: UserSession): Promise<boolean>;
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
+ * @module deleteGroupIfEmpty
18
+ */
19
+ import { UserSession } from "../interfaces";
20
+ /**
21
+ * Deletes a group if it's empty and belongs to the specified user.
22
+ *
23
+ * @param groupId Id of the group to be deleted
24
+ * @param authentication Credentials for the request
25
+ * @returns Promise indicating if group was deleted
26
+ */
27
+ export declare function deleteGroupIfEmpty(groupId: string, authentication: UserSession): Promise<boolean>;
@@ -1,92 +1,92 @@
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
- import * as portal from "@esri/arcgis-rest-portal";
17
- // ------------------------------------------------------------------------------------------------------------------ //
18
- /**
19
- * Deletes a group if it's empty and belongs to the specified user.
20
- *
21
- * @param groupId Id of the group to be deleted
22
- * @param authentication Credentials for the request
23
- * @returns Promise indicating if group was deleted
24
- */
25
- export function deleteGroupIfEmpty(groupId, authentication) {
26
- let username;
27
- let isGroupProtected;
28
- // Get the owner tied to the authentication
29
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
30
- return authentication
31
- .getUsername()
32
- .then(response => {
33
- username = response;
34
- // We need to know the owner and protection status of the group
35
- return portal.getGroup(groupId, { authentication });
36
- })
37
- .then((group) => {
38
- if (group.owner !== username) {
39
- return Promise.resolve(null); // don't delete a group we don't own
40
- }
41
- isGroupProtected = group.protected; // do we need to unprotect before deleting?
42
- // Get the number of items in the group
43
- const groupContentOptions = {
44
- paging: {
45
- num: 1 // only need 1 item to show that group is not empty
46
- },
47
- authentication
48
- };
49
- return portal.getGroupContent(groupId, groupContentOptions);
50
- })
51
- .then((groupContent) => {
52
- // should be IGroupContentResult; see https://github.com/Esri/arcgis-rest-js/pull/858/files
53
- // If groupContent is null, then we don't own the group; if the group is not empty, then we can't delete it
54
- if (!groupContent || groupContent.total > 0) {
55
- return Promise.resolve({ success: false }); // don't delete a group that's not empty
56
- }
57
- // We're going ahead with deletion; first unprotect it if necessary
58
- if (isGroupProtected) {
59
- const groupOptions = {
60
- id: groupId,
61
- authentication
62
- };
63
- return portal.unprotectGroup(groupOptions);
64
- }
65
- else {
66
- return Promise.resolve({ success: true });
67
- }
68
- })
69
- .then(response => {
70
- if (response.success) {
71
- // All is good so far: we own the group, it's empty, and it's unprotected; proceed with deletion
72
- const groupOptions = {
73
- id: groupId,
74
- authentication
75
- };
76
- return portal.removeGroup(groupOptions);
77
- }
78
- else {
79
- // We should not delete the group
80
- return Promise.resolve({ success: false });
81
- }
82
- })
83
- .then((response) => {
84
- // Return a simple response
85
- return Promise.resolve(response.success);
86
- })
87
- .catch(() => {
88
- // In case getGroup or getGroupContent fails
89
- return Promise.resolve(false);
90
- });
91
- }
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
+ import * as portal from "@esri/arcgis-rest-portal";
17
+ // ------------------------------------------------------------------------------------------------------------------ //
18
+ /**
19
+ * Deletes a group if it's empty and belongs to the specified user.
20
+ *
21
+ * @param groupId Id of the group to be deleted
22
+ * @param authentication Credentials for the request
23
+ * @returns Promise indicating if group was deleted
24
+ */
25
+ export function deleteGroupIfEmpty(groupId, authentication) {
26
+ let username;
27
+ let isGroupProtected;
28
+ // Get the owner tied to the authentication
29
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
30
+ return authentication
31
+ .getUsername()
32
+ .then(response => {
33
+ username = response;
34
+ // We need to know the owner and protection status of the group
35
+ return portal.getGroup(groupId, { authentication });
36
+ })
37
+ .then((group) => {
38
+ if (group.owner !== username) {
39
+ return Promise.resolve(null); // don't delete a group we don't own
40
+ }
41
+ isGroupProtected = group.protected; // do we need to unprotect before deleting?
42
+ // Get the number of items in the group
43
+ const groupContentOptions = {
44
+ paging: {
45
+ num: 1 // only need 1 item to show that group is not empty
46
+ },
47
+ authentication
48
+ };
49
+ return portal.getGroupContent(groupId, groupContentOptions);
50
+ })
51
+ .then((groupContent) => {
52
+ // should be IGroupContentResult; see https://github.com/Esri/arcgis-rest-js/pull/858/files
53
+ // If groupContent is null, then we don't own the group; if the group is not empty, then we can't delete it
54
+ if (!groupContent || groupContent.total > 0) {
55
+ return Promise.resolve({ success: false }); // don't delete a group that's not empty
56
+ }
57
+ // We're going ahead with deletion; first unprotect it if necessary
58
+ if (isGroupProtected) {
59
+ const groupOptions = {
60
+ id: groupId,
61
+ authentication
62
+ };
63
+ return portal.unprotectGroup(groupOptions);
64
+ }
65
+ else {
66
+ return Promise.resolve({ success: true });
67
+ }
68
+ })
69
+ .then(response => {
70
+ if (response.success) {
71
+ // All is good so far: we own the group, it's empty, and it's unprotected; proceed with deletion
72
+ const groupOptions = {
73
+ id: groupId,
74
+ authentication
75
+ };
76
+ return portal.removeGroup(groupOptions);
77
+ }
78
+ else {
79
+ // We should not delete the group
80
+ return Promise.resolve({ success: false });
81
+ }
82
+ })
83
+ .then((response) => {
84
+ // Return a simple response
85
+ return Promise.resolve(response.success);
86
+ })
87
+ .catch(() => {
88
+ // In case getGroup or getGroupContent fails
89
+ return Promise.resolve(false);
90
+ });
91
+ }
92
92
  //# sourceMappingURL=deleteGroupIfEmpty.js.map
@@ -1,38 +1,38 @@
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, 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 solutionSummary List of items in the solution that would be deleted
29
- * @param authentication Credentials for the request
30
- * @param options Progress reporting options
31
- * @returns Promise that will resolve with a list of two solution summaries: successful deletions
32
- * and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
33
- * one Solution will not be in either list.
34
- * Note that Solution item and its deployment folder will only be deleted if all of its deployed
35
- * items were deleted (the failure list is empty). This makes it possible to re-attempted
36
- * deletion using the solutionItemId.
37
- */
38
- export declare function deleteSolutionContents(solutionItemId: string, solutionSummary: ISolutionPrecis, 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, 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 solutionSummary List of items in the solution that would be deleted
29
+ * @param authentication Credentials for the request
30
+ * @param options Progress reporting options
31
+ * @returns Promise that will resolve with a list of two solution summaries: successful deletions
32
+ * and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
33
+ * one Solution will not be in either list.
34
+ * Note that Solution item and its deployment folder will only be deleted if all of its deployed
35
+ * items were deleted (the failure list is empty). This makes it possible to re-attempted
36
+ * deletion using the solutionItemId.
37
+ */
38
+ export declare function deleteSolutionContents(solutionItemId: string, solutionSummary: ISolutionPrecis, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
@@ -1,125 +1,125 @@
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 { EItemProgressStatus } from "../interfaces";
23
- import * as deleteEmptyGroups from "./deleteEmptyGroups";
24
- import * as deleteSolutionFolder from "./deleteSolutionFolder";
25
- import * as deleteSolutionItem from "./deleteSolutionItem";
26
- import * as removeItems from "./removeItems";
27
- import * as reportProgress from "./reportProgress";
28
- // ------------------------------------------------------------------------------------------------------------------ //
29
- /**
30
- * Deletes a deployed Solution item and and all of the items that were created
31
- * as part of that deployment.
32
- *
33
- * @param solutionItemId Id of a deployed Solution
34
- * @param solutionSummary List of items in the solution that would be deleted
35
- * @param authentication Credentials for the request
36
- * @param options Progress 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) and items shared with more than
39
- * one Solution will not be in either list.
40
- * Note that Solution item and its deployment folder will only be deleted if all of its deployed
41
- * items were deleted (the failure list is empty). This makes it possible to re-attempted
42
- * deletion using the solutionItemId.
43
- */
44
- export function deleteSolutionContents(solutionItemId, solutionSummary, authentication, options) {
45
- const deleteOptions = options || {};
46
- let progressPercentStep = 0;
47
- let percentDone = 0;
48
- let solutionDeletedSummary;
49
- let solutionFailureSummary;
50
- let solutionIds = [];
51
- return new Promise(resolve => {
52
- let removalPromise = Promise.resolve([
53
- {
54
- id: solutionSummary.id,
55
- title: solutionSummary.title,
56
- folder: solutionSummary.folder,
57
- items: [],
58
- groups: []
59
- },
60
- {
61
- id: solutionSummary.id,
62
- title: solutionSummary.title,
63
- folder: solutionSummary.folder,
64
- items: [],
65
- groups: []
66
- }
67
- ]);
68
- if (solutionSummary.items.length > 0) {
69
- // Save a copy of the Solution item ids for the deleteSolutionFolder call because removeItems
70
- // destroys the solutionSummary.items list
71
- solutionIds = solutionSummary.items
72
- .map(item => item.id)
73
- .concat([solutionItemId]);
74
- const hubSiteItemIds = solutionSummary.items
75
- .filter((item) => item.type === "Hub Site Application")
76
- .map((item) => item.id);
77
- // Delete the items
78
- progressPercentStep = 100 / (solutionSummary.items.length + 2); // one extra for starting plus one extra for solution itself
79
- reportProgress.reportProgress((percentDone += progressPercentStep), deleteOptions); // let the caller know that we've started
80
- // Proceed with the deletion
81
- removalPromise = removeItems.removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions);
82
- }
83
- removalPromise
84
- .then((results) => {
85
- [solutionDeletedSummary, solutionFailureSummary] = results;
86
- // Attempt to delete groups; we won't be checking success
87
- return new Promise(resolve2 => {
88
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
89
- deleteEmptyGroups
90
- .deleteEmptyGroups(solutionSummary.groups, authentication)
91
- .then(() => {
92
- resolve2(results);
93
- });
94
- });
95
- })
96
- .then(() => {
97
- // If there were no failed deletes, it's OK to delete Solution item
98
- if (solutionFailureSummary.items.length === 0) {
99
- return deleteSolutionItem.deleteSolutionItem(solutionItemId, authentication);
100
- }
101
- else {
102
- // Not all items were deleted, so don't delete solution
103
- return Promise.resolve({ success: false, itemId: solutionItemId });
104
- }
105
- })
106
- .then((solutionItemDeleteStatus) => {
107
- // If all deletes succeeded, see if we can delete the folder that contained them
108
- if (solutionItemDeleteStatus.success) {
109
- reportProgress.reportProgress(99, deleteOptions, solutionItemId, EItemProgressStatus.Finished);
110
- // Can't delete if folder contains non-solution items
111
- return deleteSolutionFolder.deleteSolutionFolder(solutionIds, solutionSummary.folder, authentication);
112
- }
113
- else {
114
- return Promise.resolve(false);
115
- }
116
- })
117
- .then(() => {
118
- resolve([solutionDeletedSummary, solutionFailureSummary]);
119
- })
120
- .catch(() => {
121
- resolve([solutionDeletedSummary, solutionFailureSummary]);
122
- });
123
- });
124
- }
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 { EItemProgressStatus } from "../interfaces";
23
+ import * as deleteEmptyGroups from "./deleteEmptyGroups";
24
+ import * as deleteSolutionFolder from "./deleteSolutionFolder";
25
+ import * as deleteSolutionItem from "./deleteSolutionItem";
26
+ import * as removeItems from "./removeItems";
27
+ import * as reportProgress from "./reportProgress";
28
+ // ------------------------------------------------------------------------------------------------------------------ //
29
+ /**
30
+ * Deletes a deployed Solution item and and all of the items that were created
31
+ * as part of that deployment.
32
+ *
33
+ * @param solutionItemId Id of a deployed Solution
34
+ * @param solutionSummary List of items in the solution that would be deleted
35
+ * @param authentication Credentials for the request
36
+ * @param options Progress 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) and items shared with more than
39
+ * one Solution will not be in either list.
40
+ * Note that Solution item and its deployment folder will only be deleted if all of its deployed
41
+ * items were deleted (the failure list is empty). This makes it possible to re-attempted
42
+ * deletion using the solutionItemId.
43
+ */
44
+ export function deleteSolutionContents(solutionItemId, solutionSummary, authentication, options) {
45
+ const deleteOptions = options || {};
46
+ let progressPercentStep = 0;
47
+ let percentDone = 0;
48
+ let solutionDeletedSummary;
49
+ let solutionFailureSummary;
50
+ let solutionIds = [];
51
+ return new Promise(resolve => {
52
+ let removalPromise = Promise.resolve([
53
+ {
54
+ id: solutionSummary.id,
55
+ title: solutionSummary.title,
56
+ folder: solutionSummary.folder,
57
+ items: [],
58
+ groups: []
59
+ },
60
+ {
61
+ id: solutionSummary.id,
62
+ title: solutionSummary.title,
63
+ folder: solutionSummary.folder,
64
+ items: [],
65
+ groups: []
66
+ }
67
+ ]);
68
+ if (solutionSummary.items.length > 0) {
69
+ // Save a copy of the Solution item ids for the deleteSolutionFolder call because removeItems
70
+ // destroys the solutionSummary.items list
71
+ solutionIds = solutionSummary.items
72
+ .map(item => item.id)
73
+ .concat([solutionItemId]);
74
+ const hubSiteItemIds = solutionSummary.items
75
+ .filter((item) => item.type === "Hub Site Application")
76
+ .map((item) => item.id);
77
+ // Delete the items
78
+ progressPercentStep = 100 / (solutionSummary.items.length + 2); // one extra for starting plus one extra for solution itself
79
+ reportProgress.reportProgress((percentDone += progressPercentStep), deleteOptions); // let the caller know that we've started
80
+ // Proceed with the deletion
81
+ removalPromise = removeItems.removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions);
82
+ }
83
+ removalPromise
84
+ .then((results) => {
85
+ [solutionDeletedSummary, solutionFailureSummary] = results;
86
+ // Attempt to delete groups; we won't be checking success
87
+ return new Promise(resolve2 => {
88
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
89
+ deleteEmptyGroups
90
+ .deleteEmptyGroups(solutionSummary.groups, authentication)
91
+ .then(() => {
92
+ resolve2(results);
93
+ });
94
+ });
95
+ })
96
+ .then(() => {
97
+ // If there were no failed deletes, it's OK to delete Solution item
98
+ if (solutionFailureSummary.items.length === 0) {
99
+ return deleteSolutionItem.deleteSolutionItem(solutionItemId, authentication);
100
+ }
101
+ else {
102
+ // Not all items were deleted, so don't delete solution
103
+ return Promise.resolve({ success: false, itemId: solutionItemId });
104
+ }
105
+ })
106
+ .then((solutionItemDeleteStatus) => {
107
+ // If all deletes succeeded, see if we can delete the folder that contained them
108
+ if (solutionItemDeleteStatus.success) {
109
+ reportProgress.reportProgress(99, deleteOptions, solutionItemId, EItemProgressStatus.Finished);
110
+ // Can't delete if folder contains non-solution items
111
+ return deleteSolutionFolder.deleteSolutionFolder(solutionIds, solutionSummary.folder, authentication);
112
+ }
113
+ else {
114
+ return Promise.resolve(false);
115
+ }
116
+ })
117
+ .then(() => {
118
+ resolve([solutionDeletedSummary, solutionFailureSummary]);
119
+ })
120
+ .catch(() => {
121
+ resolve([solutionDeletedSummary, solutionFailureSummary]);
122
+ });
123
+ });
124
+ }
125
125
  //# sourceMappingURL=deleteSolutionContents.js.map
@@ -1,29 +1,29 @@
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 deleteSolutionFolder
18
- */
19
- import { UserSession } from "../interfaces";
20
- /**
21
- * Deletes a deployed Solution's folder if the folder is empty.
22
- *
23
- * @param solutionFolderId Id of the folder of a deployed Solution
24
- * @param deletedItemIds Ids in the Solution, including the Solution item; used to deal with lagging folder deletion
25
- * @param authentication Credentials for the request
26
- * @returns Promise that will resolve if deletion was successful and fail if any part of it failed;
27
- * if the folder has a non-Solution item, it will not be deleted, but the function will return true
28
- */
29
- export declare function deleteSolutionFolder(solutionIds: string[], folderId: string, authentication: UserSession): Promise<boolean>;
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 deleteSolutionFolder
18
+ */
19
+ import { UserSession } from "../interfaces";
20
+ /**
21
+ * Deletes a deployed Solution's folder if the folder is empty.
22
+ *
23
+ * @param solutionFolderId Id of the folder of a deployed Solution
24
+ * @param deletedItemIds Ids in the Solution, including the Solution item; used to deal with lagging folder deletion
25
+ * @param authentication Credentials for the request
26
+ * @returns Promise that will resolve if deletion was successful and fail if any part of it failed;
27
+ * if the folder has a non-Solution item, it will not be deleted, but the function will return true
28
+ */
29
+ export declare function deleteSolutionFolder(solutionIds: string[], folderId: string, authentication: UserSession): Promise<boolean>;