@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,217 +1,217 @@
1
- "use strict";
2
- /** @license
3
- * Copyright 2021 Esri
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.setTrackingOptions = exports.templatizeServiceItemId = exports._setName = exports.templatizeTracker = exports.isTrackingViewGroup = exports.isTrackingViewTemplate = exports.getTackingServiceOwner = exports._validateTrackingTemplates = exports.setLocationTrackingEnabled = void 0;
19
- const generalHelpers_1 = require("./generalHelpers");
20
- const restHelpersGet_1 = require("./restHelpersGet");
21
- const templatization_1 = require("./templatization");
22
- /**
23
- * Used by deploy to evaluate if we have everything we need to deploy tracking views.
24
- *
25
- * This function will update the input templateDictionary with a boolean
26
- * indicating if tracking is enabled on the org and the user is an admin.
27
- *
28
- * @param portalResponse portal self response
29
- * @param userResponse portal user response
30
- * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
31
- * @param templates the list of IItemTemplates from the solution
32
- *
33
- * @private
34
- */
35
- function setLocationTrackingEnabled(portalResponse, userResponse, templateDictionary, templates) {
36
- // set locationTracking...contains service url and id
37
- const locationTracking = (0, generalHelpers_1.getProp)(portalResponse, "helperServices.locationTracking");
38
- /* istanbul ignore else */
39
- if (locationTracking) {
40
- templateDictionary.locationTracking = locationTracking;
41
- }
42
- // verify we have location tracking service and the user is an admin
43
- templateDictionary.locationTrackingEnabled =
44
- templateDictionary.locationTracking &&
45
- (0, generalHelpers_1.getProp)(userResponse, "role") === "org_admin"
46
- ? true
47
- : false;
48
- if (templates) {
49
- _validateTrackingTemplates(templates, templateDictionary);
50
- }
51
- }
52
- exports.setLocationTrackingEnabled = setLocationTrackingEnabled;
53
- /**
54
- * Used by deploy to evaluate if we have everything we need to deploy tracking views.
55
- *
56
- * An error is thrown to prevent additional deployment work if we have Tracking items and tracking is
57
- * not enabled or the deployment user is not an admin in the organization.
58
- *
59
- * @param templates the list of IItemTemplates from the solution
60
- * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
61
- *
62
- * @private
63
- */
64
- function _validateTrackingTemplates(templates, templateDictionary) {
65
- /* istanbul ignore else */
66
- if (!templateDictionary.locationTrackingEnabled &&
67
- templates.some(template => {
68
- const typeKeywords = (0, generalHelpers_1.getProp)(template, "item.typeKeywords") || [];
69
- return typeKeywords.indexOf("Location Tracking View") > -1;
70
- })) {
71
- console.error("Location tracking not enabled or user is not admin.");
72
- throw new Error("Location tracking not enabled or user is not admin.");
73
- }
74
- }
75
- exports._validateTrackingTemplates = _validateTrackingTemplates;
76
- /**
77
- * Used by deploy to determine the owner of the tracking service.
78
- * Only one tracking service per org and all tracking views and tracking groups must be owned by the tracking service owner.
79
- *
80
- * This function will update the input templateDictionary with the owner as well as
81
- * the item id for the source tracking service.
82
- *
83
- * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
84
- * @param authentication Credentials for the requests
85
- *
86
- * @private
87
- */
88
- function getTackingServiceOwner(templateDictionary, authentication) {
89
- if (templateDictionary.locationTrackingEnabled) {
90
- const locationTrackingId = templateDictionary.locationTracking.id;
91
- return (0, restHelpersGet_1.getItemBase)(locationTrackingId, authentication).then(itemBase => {
92
- templateDictionary.locationTracking.owner = itemBase.owner;
93
- templateDictionary[itemBase.id] = {
94
- itemId: itemBase.id
95
- };
96
- return Promise.resolve(itemBase && itemBase.owner === authentication.username);
97
- }, () => Promise.resolve(false));
98
- }
99
- else {
100
- return Promise.resolve(false);
101
- }
102
- }
103
- exports.getTackingServiceOwner = getTackingServiceOwner;
104
- /**
105
- * Check key properties to understand if we are dealing with a tracking template
106
- *
107
- * @param itemTemplate the template to evaluate
108
- * @param itemUpdate the item update to evaluate
109
- *
110
- * @private
111
- */
112
- function isTrackingViewTemplate(itemTemplate, itemUpdate) {
113
- const typeKeywords = (0, generalHelpers_1.getProp)(itemTemplate, "item.typeKeywords") ||
114
- (0, generalHelpers_1.getProp)(itemUpdate, "typeKeywords");
115
- const trackViewGroup = (0, generalHelpers_1.getProp)(itemTemplate, "item.properties.trackViewGroup") ||
116
- (0, generalHelpers_1.getProp)(itemUpdate, "properties.trackViewGroup");
117
- return (typeKeywords && typeKeywords.indexOf("Location Tracking View") > -1 && trackViewGroup) ? true : false;
118
- }
119
- exports.isTrackingViewTemplate = isTrackingViewTemplate;
120
- /**
121
- * Check key properties to understand if we are dealing with a tracking group template
122
- *
123
- * @param itemTemplate the template to evaluate
124
- *
125
- * @private
126
- */
127
- function isTrackingViewGroup(itemTemplate) {
128
- const typeKeywords = (0, generalHelpers_1.getProp)(itemTemplate, "item.tags");
129
- return (typeKeywords && typeKeywords.indexOf("Location Tracking Group") > -1) ? true : false;
130
- }
131
- exports.isTrackingViewGroup = isTrackingViewGroup;
132
- /**
133
- * Templatize the tracker view group id and view name for location tracking views.
134
- * This function will update the itemTemplate that is passed in when it's a tracking view.
135
- *
136
- * @param itemTemplate Template for feature service item
137
- *
138
- * @private
139
- */
140
- function templatizeTracker(itemTemplate) {
141
- /* istanbul ignore else */
142
- if (isTrackingViewTemplate(itemTemplate)) {
143
- const trackViewGroup = (0, generalHelpers_1.getProp)(itemTemplate, "item.properties.trackViewGroup");
144
- itemTemplate.groups.push(trackViewGroup);
145
- itemTemplate.dependencies.push(trackViewGroup);
146
- const groupIdVar = (0, templatization_1.templatizeTerm)(trackViewGroup, trackViewGroup, ".itemId");
147
- (0, generalHelpers_1.setProp)(itemTemplate, "item.properties.trackViewGroup", groupIdVar);
148
- _setName(itemTemplate, "item.name", trackViewGroup, groupIdVar);
149
- _setName(itemTemplate, "properties.service.adminServiceInfo.name", trackViewGroup, groupIdVar);
150
- const layersAndTables = (itemTemplate.properties.layers || []).concat(itemTemplate.properties.tables || []);
151
- layersAndTables.forEach(l => {
152
- templatizeServiceItemId(l, "adminLayerInfo.viewLayerDefinition.sourceServiceItemId");
153
- });
154
- }
155
- }
156
- exports.templatizeTracker = templatizeTracker;
157
- /**
158
- * Templatize the tracker view group id and view name for location tracking views.
159
- * This function will update the itemTemplate that is passed in when it's a tracking view.
160
- *
161
- * @param itemTemplate Template for the tracker view
162
- * @param path the path to the property that stores the current name
163
- * @param groupId the id of the associated tracker group
164
- * @param groupIdVar the variable to replace the existing name with
165
- *
166
- * @private
167
- */
168
- function _setName(itemTemplate, path, groupId, groupIdVar) {
169
- const name = (0, generalHelpers_1.getProp)(itemTemplate, path);
170
- /* istanbul ignore else */
171
- if (name) {
172
- (0, generalHelpers_1.setProp)(itemTemplate, path, name.replace(groupId, groupIdVar));
173
- }
174
- }
175
- exports._setName = _setName;
176
- /**
177
- * Templatize the tracker view serviceItemId
178
- *
179
- * This function will update the input obj with the templatized variable
180
- *
181
- * @param obj the object that stores the serviceItemId
182
- * @param path the path to the property that stores the serviceItemId
183
- *
184
- * @private
185
- */
186
- function templatizeServiceItemId(obj, path) {
187
- const serviceItemId = (0, generalHelpers_1.getProp)(obj, path);
188
- /* istanbul ignore else */
189
- if (serviceItemId) {
190
- (0, generalHelpers_1.setProp)(obj, path, (0, templatization_1.templatizeTerm)(serviceItemId, serviceItemId, ".itemId"));
191
- }
192
- }
193
- exports.templatizeServiceItemId = templatizeServiceItemId;
194
- /**
195
- * Used by deploy to update the request options with key details for deploying tracker views
196
- *
197
- * @param itemTemplate Template for feature service item
198
- * @param options the current request options to update
199
- * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
200
- *
201
- * @private
202
- */
203
- function setTrackingOptions(itemTemplate, options, templateDictionary) {
204
- /* istanbul ignore else */
205
- if (isTrackingViewTemplate(itemTemplate)) {
206
- (0, generalHelpers_1.setCreateProp)(options, "owner", templateDictionary.locationTracking.owner);
207
- (0, generalHelpers_1.setCreateProp)(options.item, "name", itemTemplate.item.name);
208
- (0, generalHelpers_1.setCreateProp)(options.item, "isView", true);
209
- (0, generalHelpers_1.setCreateProp)(options.item, "owner", templateDictionary.locationTracking.owner);
210
- (0, generalHelpers_1.setCreateProp)(options.params, "isView", true);
211
- (0, generalHelpers_1.setCreateProp)(options.params, "outputType", "locationTrackingService");
212
- delete (options.folderId);
213
- }
214
- return options.item;
215
- }
216
- exports.setTrackingOptions = setTrackingOptions;
1
+ "use strict";
2
+ /** @license
3
+ * Copyright 2021 Esri
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.setTrackingOptions = exports.templatizeServiceItemId = exports._setName = exports.templatizeTracker = exports.isTrackingViewGroup = exports.isTrackingViewTemplate = exports.getTackingServiceOwner = exports._validateTrackingTemplates = exports.setLocationTrackingEnabled = void 0;
19
+ const generalHelpers_1 = require("./generalHelpers");
20
+ const restHelpersGet_1 = require("./restHelpersGet");
21
+ const templatization_1 = require("./templatization");
22
+ /**
23
+ * Used by deploy to evaluate if we have everything we need to deploy tracking views.
24
+ *
25
+ * This function will update the input templateDictionary with a boolean
26
+ * indicating if tracking is enabled on the org and the user is an admin.
27
+ *
28
+ * @param portalResponse portal self response
29
+ * @param userResponse portal user response
30
+ * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
31
+ * @param templates the list of IItemTemplates from the solution
32
+ *
33
+ * @private
34
+ */
35
+ function setLocationTrackingEnabled(portalResponse, userResponse, templateDictionary, templates) {
36
+ // set locationTracking...contains service url and id
37
+ const locationTracking = (0, generalHelpers_1.getProp)(portalResponse, "helperServices.locationTracking");
38
+ /* istanbul ignore else */
39
+ if (locationTracking) {
40
+ templateDictionary.locationTracking = locationTracking;
41
+ }
42
+ // verify we have location tracking service and the user is an admin
43
+ templateDictionary.locationTrackingEnabled =
44
+ templateDictionary.locationTracking &&
45
+ (0, generalHelpers_1.getProp)(userResponse, "role") === "org_admin"
46
+ ? true
47
+ : false;
48
+ if (templates) {
49
+ _validateTrackingTemplates(templates, templateDictionary);
50
+ }
51
+ }
52
+ exports.setLocationTrackingEnabled = setLocationTrackingEnabled;
53
+ /**
54
+ * Used by deploy to evaluate if we have everything we need to deploy tracking views.
55
+ *
56
+ * An error is thrown to prevent additional deployment work if we have Tracking items and tracking is
57
+ * not enabled or the deployment user is not an admin in the organization.
58
+ *
59
+ * @param templates the list of IItemTemplates from the solution
60
+ * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
61
+ *
62
+ * @private
63
+ */
64
+ function _validateTrackingTemplates(templates, templateDictionary) {
65
+ /* istanbul ignore else */
66
+ if (!templateDictionary.locationTrackingEnabled &&
67
+ templates.some(template => {
68
+ const typeKeywords = (0, generalHelpers_1.getProp)(template, "item.typeKeywords") || [];
69
+ return typeKeywords.indexOf("Location Tracking View") > -1;
70
+ })) {
71
+ console.error("Location tracking not enabled or user is not admin.");
72
+ throw new Error("Location tracking not enabled or user is not admin.");
73
+ }
74
+ }
75
+ exports._validateTrackingTemplates = _validateTrackingTemplates;
76
+ /**
77
+ * Used by deploy to determine the owner of the tracking service.
78
+ * Only one tracking service per org and all tracking views and tracking groups must be owned by the tracking service owner.
79
+ *
80
+ * This function will update the input templateDictionary with the owner as well as
81
+ * the item id for the source tracking service.
82
+ *
83
+ * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
84
+ * @param authentication Credentials for the requests
85
+ *
86
+ * @private
87
+ */
88
+ function getTackingServiceOwner(templateDictionary, authentication) {
89
+ if (templateDictionary.locationTrackingEnabled) {
90
+ const locationTrackingId = templateDictionary.locationTracking.id;
91
+ return (0, restHelpersGet_1.getItemBase)(locationTrackingId, authentication).then(itemBase => {
92
+ templateDictionary.locationTracking.owner = itemBase.owner;
93
+ templateDictionary[itemBase.id] = {
94
+ itemId: itemBase.id
95
+ };
96
+ return Promise.resolve(itemBase && itemBase.owner === authentication.username);
97
+ }, () => Promise.resolve(false));
98
+ }
99
+ else {
100
+ return Promise.resolve(false);
101
+ }
102
+ }
103
+ exports.getTackingServiceOwner = getTackingServiceOwner;
104
+ /**
105
+ * Check key properties to understand if we are dealing with a tracking template
106
+ *
107
+ * @param itemTemplate the template to evaluate
108
+ * @param itemUpdate the item update to evaluate
109
+ *
110
+ * @private
111
+ */
112
+ function isTrackingViewTemplate(itemTemplate, itemUpdate) {
113
+ const typeKeywords = (0, generalHelpers_1.getProp)(itemTemplate, "item.typeKeywords") ||
114
+ (0, generalHelpers_1.getProp)(itemUpdate, "typeKeywords");
115
+ const trackViewGroup = (0, generalHelpers_1.getProp)(itemTemplate, "item.properties.trackViewGroup") ||
116
+ (0, generalHelpers_1.getProp)(itemUpdate, "properties.trackViewGroup");
117
+ return (typeKeywords && typeKeywords.indexOf("Location Tracking View") > -1 && trackViewGroup) ? true : false;
118
+ }
119
+ exports.isTrackingViewTemplate = isTrackingViewTemplate;
120
+ /**
121
+ * Check key properties to understand if we are dealing with a tracking group template
122
+ *
123
+ * @param itemTemplate the template to evaluate
124
+ *
125
+ * @private
126
+ */
127
+ function isTrackingViewGroup(itemTemplate) {
128
+ const typeKeywords = (0, generalHelpers_1.getProp)(itemTemplate, "item.tags");
129
+ return (typeKeywords && typeKeywords.indexOf("Location Tracking Group") > -1) ? true : false;
130
+ }
131
+ exports.isTrackingViewGroup = isTrackingViewGroup;
132
+ /**
133
+ * Templatize the tracker view group id and view name for location tracking views.
134
+ * This function will update the itemTemplate that is passed in when it's a tracking view.
135
+ *
136
+ * @param itemTemplate Template for feature service item
137
+ *
138
+ * @private
139
+ */
140
+ function templatizeTracker(itemTemplate) {
141
+ /* istanbul ignore else */
142
+ if (isTrackingViewTemplate(itemTemplate)) {
143
+ const trackViewGroup = (0, generalHelpers_1.getProp)(itemTemplate, "item.properties.trackViewGroup");
144
+ itemTemplate.groups.push(trackViewGroup);
145
+ itemTemplate.dependencies.push(trackViewGroup);
146
+ const groupIdVar = (0, templatization_1.templatizeTerm)(trackViewGroup, trackViewGroup, ".itemId");
147
+ (0, generalHelpers_1.setProp)(itemTemplate, "item.properties.trackViewGroup", groupIdVar);
148
+ _setName(itemTemplate, "item.name", trackViewGroup, groupIdVar);
149
+ _setName(itemTemplate, "properties.service.adminServiceInfo.name", trackViewGroup, groupIdVar);
150
+ const layersAndTables = (itemTemplate.properties.layers || []).concat(itemTemplate.properties.tables || []);
151
+ layersAndTables.forEach(l => {
152
+ templatizeServiceItemId(l, "adminLayerInfo.viewLayerDefinition.sourceServiceItemId");
153
+ });
154
+ }
155
+ }
156
+ exports.templatizeTracker = templatizeTracker;
157
+ /**
158
+ * Templatize the tracker view group id and view name for location tracking views.
159
+ * This function will update the itemTemplate that is passed in when it's a tracking view.
160
+ *
161
+ * @param itemTemplate Template for the tracker view
162
+ * @param path the path to the property that stores the current name
163
+ * @param groupId the id of the associated tracker group
164
+ * @param groupIdVar the variable to replace the existing name with
165
+ *
166
+ * @private
167
+ */
168
+ function _setName(itemTemplate, path, groupId, groupIdVar) {
169
+ const name = (0, generalHelpers_1.getProp)(itemTemplate, path);
170
+ /* istanbul ignore else */
171
+ if (name) {
172
+ (0, generalHelpers_1.setProp)(itemTemplate, path, name.replace(groupId, groupIdVar));
173
+ }
174
+ }
175
+ exports._setName = _setName;
176
+ /**
177
+ * Templatize the tracker view serviceItemId
178
+ *
179
+ * This function will update the input obj with the templatized variable
180
+ *
181
+ * @param obj the object that stores the serviceItemId
182
+ * @param path the path to the property that stores the serviceItemId
183
+ *
184
+ * @private
185
+ */
186
+ function templatizeServiceItemId(obj, path) {
187
+ const serviceItemId = (0, generalHelpers_1.getProp)(obj, path);
188
+ /* istanbul ignore else */
189
+ if (serviceItemId) {
190
+ (0, generalHelpers_1.setProp)(obj, path, (0, templatization_1.templatizeTerm)(serviceItemId, serviceItemId, ".itemId"));
191
+ }
192
+ }
193
+ exports.templatizeServiceItemId = templatizeServiceItemId;
194
+ /**
195
+ * Used by deploy to update the request options with key details for deploying tracker views
196
+ *
197
+ * @param itemTemplate Template for feature service item
198
+ * @param options the current request options to update
199
+ * @param templateDictionary Hash of facts: org URL, adlib replacements, deferreds for dependencies
200
+ *
201
+ * @private
202
+ */
203
+ function setTrackingOptions(itemTemplate, options, templateDictionary) {
204
+ /* istanbul ignore else */
205
+ if (isTrackingViewTemplate(itemTemplate)) {
206
+ (0, generalHelpers_1.setCreateProp)(options, "owner", templateDictionary.locationTracking.owner);
207
+ (0, generalHelpers_1.setCreateProp)(options.item, "name", itemTemplate.item.name);
208
+ (0, generalHelpers_1.setCreateProp)(options.item, "isView", true);
209
+ (0, generalHelpers_1.setCreateProp)(options.item, "owner", templateDictionary.locationTracking.owner);
210
+ (0, generalHelpers_1.setCreateProp)(options.params, "isView", true);
211
+ (0, generalHelpers_1.setCreateProp)(options.params, "outputType", "locationTrackingService");
212
+ delete (options.folderId);
213
+ }
214
+ return options.item;
215
+ }
216
+ exports.setTrackingOptions = setTrackingOptions;
217
217
  //# sourceMappingURL=trackingHelpers.js.map
@@ -1,57 +1,57 @@
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 { UserSession } from "./interfaces";
17
- export declare const BASE_NAMES: string[];
18
- export declare const PROP_NAMES: string[];
19
- /**
20
- * Get the base velocity url from the current orgs subscription info
21
- *
22
- * This function will update the input templateDictionary arg with the velocity url
23
- * so we can reuse it without pinging the org again for subsequent requests to the
24
- * velocity api.
25
- *
26
- * @param authentication Credentials for the requests
27
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
28
- *
29
- * @returns a promise that will resolve with the velocity url or an empty string when the org does not support velocity
30
- *
31
- */
32
- export declare function getVelocityUrlBase(authentication: UserSession, templateDictionary: any): Promise<string>;
33
- /**
34
- * Update any velocity urls found in the data
35
- *
36
- * This function can be extended to support any item type specific functions such as
37
- * removing the itemId from operational layers in a webmap
38
- *
39
- * @param data The data object of the item
40
- * @param type The item type
41
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
42
- *
43
- * @returns an updated instance of the data object that was supplied.
44
- *
45
- */
46
- export declare function updateVelocityReferences(data: any, type: string, templateDictionary: any): any;
47
- /**
48
- * Helper function to update velocity urls found in the data
49
- *
50
- *
51
- * @param data The data object of the item
52
- * @param velocityUrl The velocity url from the current organization
53
- *
54
- * @returns an updated instance of the data object that was supplied.
55
- * @private
56
- */
57
- export declare function _replaceVelocityUrls(data: any, velocityUrl: string): any;
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 { UserSession } from "./interfaces";
17
+ export declare const BASE_NAMES: string[];
18
+ export declare const PROP_NAMES: string[];
19
+ /**
20
+ * Get the base velocity url from the current orgs subscription info
21
+ *
22
+ * This function will update the input templateDictionary arg with the velocity url
23
+ * so we can reuse it without pinging the org again for subsequent requests to the
24
+ * velocity api.
25
+ *
26
+ * @param authentication Credentials for the requests
27
+ * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
28
+ *
29
+ * @returns a promise that will resolve with the velocity url or an empty string when the org does not support velocity
30
+ *
31
+ */
32
+ export declare function getVelocityUrlBase(authentication: UserSession, templateDictionary: any): Promise<string>;
33
+ /**
34
+ * Update any velocity urls found in the data
35
+ *
36
+ * This function can be extended to support any item type specific functions such as
37
+ * removing the itemId from operational layers in a webmap
38
+ *
39
+ * @param data The data object of the item
40
+ * @param type The item type
41
+ * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
42
+ *
43
+ * @returns an updated instance of the data object that was supplied.
44
+ *
45
+ */
46
+ export declare function updateVelocityReferences(data: any, type: string, templateDictionary: any): any;
47
+ /**
48
+ * Helper function to update velocity urls found in the data
49
+ *
50
+ *
51
+ * @param data The data object of the item
52
+ * @param velocityUrl The velocity url from the current organization
53
+ *
54
+ * @returns an updated instance of the data object that was supplied.
55
+ * @private
56
+ */
57
+ export declare function _replaceVelocityUrls(data: any, velocityUrl: string): any;