@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,314 +1,314 @@
1
- "use strict";
2
- /** @license
3
- * Copyright 2018 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.templatizeIds = exports.templatizeFieldReferences = exports.templatizeToLowerCase = exports.templatizeTerm = exports.replaceTemplate = exports.replaceInTemplate = exports.removeTemplate = exports.getDefaultExtent = exports.getIdsInTemplatesList = exports.hasUnresolvedVariables = exports.findTemplateInList = exports.findTemplateIndexInList = exports.extractSolutionVersion = exports.createPlaceholderTemplate = exports.createInitializedItemTemplate = exports.createInitializedGroupTemplate = exports.placeholder = exports.TRANSFORMS = exports.PRINT_SERVER_NAME = exports.NA_SERVER_NAME = exports.GEOCODE_SERVER_NAME = exports.GEOMETRY_SERVER_NAME = exports.SERVER_NAME = void 0;
19
- /**
20
- * Provides common functions involving the adlib library.
21
- *
22
- * @module templatization
23
- */
24
- const hub_common_1 = require("@esri/hub-common");
25
- const adlib_1 = require("adlib");
26
- const generalHelpers_1 = require("./generalHelpers");
27
- // ------------------------------------------------------------------------------------------------------------------ //
28
- /**
29
- * A parameterized server name to replace the organization URL in a Web Mapping Application's URL to
30
- * itself; name has to be acceptable to AGOL, otherwise it discards the URL, so substitution must be
31
- * made before attempting to create the item.
32
- *
33
- * @private
34
- */
35
- exports.SERVER_NAME = "portalBaseUrl";
36
- /**
37
- * A parameterized geometry server name
38
- *
39
- * @private
40
- */
41
- exports.GEOMETRY_SERVER_NAME = "organization.helperServices.geometry.url";
42
- /**
43
- * A parameterized geocode server name
44
- *
45
- * @private
46
- */
47
- exports.GEOCODE_SERVER_NAME = "organization.helperServices.geocode:getDefaultLocatorURL";
48
- /**
49
- * A parameterized network analyst server name
50
- *
51
- * @private
52
- */
53
- exports.NA_SERVER_NAME = "organization.helperServices.route.url";
54
- /**
55
- * A parameterized network analyst server name
56
- *
57
- * @private
58
- */
59
- exports.PRINT_SERVER_NAME = "organization.helperServices.printTask.url";
60
- exports.TRANSFORMS = {
61
- getDefaultLocatorURL(key, val) {
62
- // get the url from the template dictionary or return the default template variable when it's not present
63
- // this fallback is needed when we detemplatize living atlas layers as a part of the create process
64
- return val ? val[0].url : `{{${exports.GEOCODE_SERVER_NAME}}}`;
65
- }
66
- };
67
- /**
68
- * Wraps double brackets around the supplied term.
69
- *
70
- * @param term Term to be wrapped, e.g., SERVER_NAME's "portalBaseUrl"
71
- * @returns Wrapped term, e.g., "\{\{portalBaseUrl\}\}"
72
- */
73
- function placeholder(term) {
74
- return "{{" + term + "}}";
75
- }
76
- exports.placeholder = placeholder;
77
- function createInitializedGroupTemplate(itemInfo) {
78
- const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
79
- itemTemplate.item = {
80
- ...itemTemplate.item,
81
- description: itemInfo.description,
82
- snippet: itemInfo.snippet,
83
- tags: itemInfo.tags,
84
- typeKeywords: itemInfo.typeKeywords,
85
- title: itemInfo.title,
86
- thumbnail: itemInfo.thumbnail
87
- };
88
- return itemTemplate;
89
- }
90
- exports.createInitializedGroupTemplate = createInitializedGroupTemplate;
91
- function createInitializedItemTemplate(itemInfo) {
92
- const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
93
- itemTemplate.item = {
94
- ...itemTemplate.item,
95
- accessInformation: itemInfo.accessInformation,
96
- categories: itemInfo.categories,
97
- contentStatus: itemInfo.contentStatus,
98
- created: itemInfo.created,
99
- culture: itemInfo.culture,
100
- description: itemInfo.description,
101
- extent: getDefaultExtent(itemInfo),
102
- licenseInfo: itemInfo.licenseInfo,
103
- modified: itemInfo.modified,
104
- name: itemInfo.name,
105
- origUrl: itemInfo.origUrl,
106
- properties: itemInfo.properties,
107
- snippet: itemInfo.snippet,
108
- spatialReference: undefined,
109
- tags: itemInfo.tags,
110
- thumbnail: itemInfo.thumbnail,
111
- title: itemInfo.title,
112
- typeKeywords: itemInfo.typeKeywords,
113
- url: itemInfo.url
114
- };
115
- return itemTemplate;
116
- }
117
- exports.createInitializedItemTemplate = createInitializedItemTemplate;
118
- /**
119
- * Creates an empty template.
120
- *
121
- * @param id AGO id of item
122
- * @param type AGO item type; defaults to ""
123
- * @returns Empty template containing supplied id, optional type, and a key created using the function createShortId()
124
- */
125
- function createPlaceholderTemplate(id, type = "") {
126
- return {
127
- itemId: id,
128
- type,
129
- key: (0, generalHelpers_1.createShortId)(),
130
- item: {
131
- id,
132
- type
133
- },
134
- data: {},
135
- resources: [],
136
- dependencies: [],
137
- groups: [],
138
- properties: {},
139
- estimatedDeploymentCostFactor: 2
140
- };
141
- }
142
- exports.createPlaceholderTemplate = createPlaceholderTemplate;
143
- /**
144
- * Extracts the version of a solution from its data section.
145
- *
146
- * @param itemData Data section of the solution as JSON
147
- * @returns Zero-based version number
148
- */
149
- function extractSolutionVersion(itemData) {
150
- let version = (0, generalHelpers_1.getProp)(itemData, "metadata.version");
151
- if (!version) {
152
- return 0;
153
- }
154
- if (typeof version === "string") {
155
- version = parseInt(itemData.metadata.version, 10);
156
- return isNaN(version) ? 0 : version;
157
- }
158
- return version;
159
- }
160
- exports.extractSolutionVersion = extractSolutionVersion;
161
- /**
162
- * Finds index of template by id in a list of templates.
163
- *
164
- * @param templates A collection of AGO item templates to search
165
- * @param id AGO id of template to find
166
- * @returns Offset of of matching template or -1 if not found
167
- * @private
168
- */
169
- function findTemplateIndexInList(templates, id) {
170
- const baseId = id;
171
- return templates.findIndex(template => {
172
- return baseId === template.itemId;
173
- });
174
- }
175
- exports.findTemplateIndexInList = findTemplateIndexInList;
176
- /**
177
- * Finds template by id in a list of templates.
178
- *
179
- * @param templates A collection of AGO item templates to search
180
- * @param id AGO id of template to find
181
- * @returns Matching template or null
182
- */
183
- function findTemplateInList(templates, id) {
184
- const iTemplate = findTemplateIndexInList(templates, id);
185
- return iTemplate >= 0 ? templates[iTemplate] : null;
186
- }
187
- exports.findTemplateInList = findTemplateInList;
188
- function hasUnresolvedVariables(data) {
189
- const getUnresolved = (v) => {
190
- return v ? JSON.stringify(v).match(/{{.+?}}/gim) || [] : [];
191
- };
192
- return getUnresolved(data).length > 0;
193
- }
194
- exports.hasUnresolvedVariables = hasUnresolvedVariables;
195
- function getIdsInTemplatesList(templates) {
196
- return templates.map(template => template.itemId);
197
- }
198
- exports.getIdsInTemplatesList = getIdsInTemplatesList;
199
- function getDefaultExtent(itemInfo) {
200
- const ext = itemInfo.extent;
201
- return ext === null || (Array.isArray(ext) && ext.length === 0)
202
- ? ext
203
- : "{{solutionItemExtent}}";
204
- }
205
- exports.getDefaultExtent = getDefaultExtent;
206
- /**
207
- * Removes a template entry in a list of templates.
208
- *
209
- * @param templates A collection of AGO item templates
210
- * @param id Id of item in templates list to find; if not found, no replacement is done
211
- * @private
212
- */
213
- function removeTemplate(templates, id) {
214
- const i = findTemplateIndexInList(templates, id);
215
- if (i >= 0) {
216
- templates.splice(i, 1);
217
- }
218
- }
219
- exports.removeTemplate = removeTemplate;
220
- /**
221
- * Replaces symbols in a template.
222
- *
223
- * @param template Template to check for replacements; template is modified by this function
224
- * @param replacements Hash of facts: org URL, adlib replacements, deferreds for dependencies
225
- * @returns template is returned after updating it
226
- */
227
- function replaceInTemplate(template, replacements) {
228
- return (0, adlib_1.adlib)(template, replacements, exports.TRANSFORMS);
229
- }
230
- exports.replaceInTemplate = replaceInTemplate;
231
- /**
232
- * Replaces a template entry in a list of templates.
233
- *
234
- * @param templates A collection of AGO item templates
235
- * @param id Id of item in templates list to find; if not found, no replacement is done
236
- * @param template Replacement template
237
- * @returns True if replacement was made
238
- * @private
239
- */
240
- function replaceTemplate(templates, id, template) {
241
- const i = findTemplateIndexInList(templates, id);
242
- if (i >= 0) {
243
- templates[i] = template;
244
- return true;
245
- }
246
- return false;
247
- }
248
- exports.replaceTemplate = replaceTemplate;
249
- function templatizeTerm(context, term, suffix = "") {
250
- if (!context) {
251
- return context;
252
- }
253
- const pattern = new RegExp(term, "g");
254
- return context.replace(pattern, "{{" + term + suffix + "}}");
255
- }
256
- exports.templatizeTerm = templatizeTerm;
257
- /**
258
- * Helper function to templatize value and make sure its converted to lowercase
259
- *
260
- * @param basePath path used to de-templatize while deploying
261
- * @param value to be converted to lower case for lookup while deploying
262
- */
263
- function templatizeToLowerCase(basePath, value) {
264
- if (value.startsWith("{{")) {
265
- return value;
266
- }
267
- else {
268
- return String(templatizeTerm(basePath, basePath, "." + String(value).toLowerCase()));
269
- }
270
- }
271
- exports.templatizeToLowerCase = templatizeToLowerCase;
272
- /**
273
- * using each field from the datasource replace any occurances
274
- * of the field name with the templatized value
275
- * Needs to account for:
276
- * "NAME"
277
- * "NAME NAME2"
278
- * "NAME ASC"
279
- * "\{NAME\}"
280
- * "(NAME = value AND NAME2 = someOtherValue)"
281
- */
282
- function templatizeFieldReferences(obj, fields, basePath, templatizeKeys = false) {
283
- let objString = JSON.stringify(obj);
284
- fields.forEach(field => {
285
- let expression = "\\b" + field.name + "\\b(?![.])(?![}]{2})";
286
- if (!templatizeKeys) {
287
- expression += '(?!":)';
288
- }
289
- objString = objString.replace(
290
- // needs to ensure that its not already been templatized
291
- // cannot be followed by .name and cannot be proceeded by fieldName. in case of {{01922837.name.name}} and cannot be followed by }}
292
- new RegExp(expression, "g"), templatizeToLowerCase(basePath, field.name + ".name"));
293
- });
294
- return JSON.parse(objString);
295
- }
296
- exports.templatizeFieldReferences = templatizeFieldReferences;
297
- function templatizeIds(obj) {
298
- // Convert object to string
299
- let objString = JSON.stringify(obj);
300
- // Find ids
301
- const idTest = /[0-9A-F]{32}/gim;
302
- if (obj && idTest.test(objString)) {
303
- // Templatize ids
304
- const ids = objString.match(idTest).filter(hub_common_1.unique);
305
- ids.forEach(id => {
306
- const regEx = new RegExp(id, "gm");
307
- objString = objString.replace(regEx, "{{" + id + ".itemId}}");
308
- });
309
- obj = JSON.parse(objString);
310
- }
311
- return obj;
312
- }
313
- exports.templatizeIds = templatizeIds;
1
+ "use strict";
2
+ /** @license
3
+ * Copyright 2018 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.templatizeIds = exports.templatizeFieldReferences = exports.templatizeToLowerCase = exports.templatizeTerm = exports.replaceTemplate = exports.replaceInTemplate = exports.removeTemplate = exports.getDefaultExtent = exports.getIdsInTemplatesList = exports.hasUnresolvedVariables = exports.findTemplateInList = exports.findTemplateIndexInList = exports.extractSolutionVersion = exports.createPlaceholderTemplate = exports.createInitializedItemTemplate = exports.createInitializedGroupTemplate = exports.placeholder = exports.TRANSFORMS = exports.PRINT_SERVER_NAME = exports.NA_SERVER_NAME = exports.GEOCODE_SERVER_NAME = exports.GEOMETRY_SERVER_NAME = exports.SERVER_NAME = void 0;
19
+ /**
20
+ * Provides common functions involving the adlib library.
21
+ *
22
+ * @module templatization
23
+ */
24
+ const hub_common_1 = require("@esri/hub-common");
25
+ const adlib_1 = require("adlib");
26
+ const generalHelpers_1 = require("./generalHelpers");
27
+ // ------------------------------------------------------------------------------------------------------------------ //
28
+ /**
29
+ * A parameterized server name to replace the organization URL in a Web Mapping Application's URL to
30
+ * itself; name has to be acceptable to AGOL, otherwise it discards the URL, so substitution must be
31
+ * made before attempting to create the item.
32
+ *
33
+ * @private
34
+ */
35
+ exports.SERVER_NAME = "portalBaseUrl";
36
+ /**
37
+ * A parameterized geometry server name
38
+ *
39
+ * @private
40
+ */
41
+ exports.GEOMETRY_SERVER_NAME = "organization.helperServices.geometry.url";
42
+ /**
43
+ * A parameterized geocode server name
44
+ *
45
+ * @private
46
+ */
47
+ exports.GEOCODE_SERVER_NAME = "organization.helperServices.geocode:getDefaultLocatorURL";
48
+ /**
49
+ * A parameterized network analyst server name
50
+ *
51
+ * @private
52
+ */
53
+ exports.NA_SERVER_NAME = "organization.helperServices.route.url";
54
+ /**
55
+ * A parameterized network analyst server name
56
+ *
57
+ * @private
58
+ */
59
+ exports.PRINT_SERVER_NAME = "organization.helperServices.printTask.url";
60
+ exports.TRANSFORMS = {
61
+ getDefaultLocatorURL(key, val) {
62
+ // get the url from the template dictionary or return the default template variable when it's not present
63
+ // this fallback is needed when we detemplatize living atlas layers as a part of the create process
64
+ return val ? val[0].url : `{{${exports.GEOCODE_SERVER_NAME}}}`;
65
+ }
66
+ };
67
+ /**
68
+ * Wraps double brackets around the supplied term.
69
+ *
70
+ * @param term Term to be wrapped, e.g., SERVER_NAME's "portalBaseUrl"
71
+ * @returns Wrapped term, e.g., "\{\{portalBaseUrl\}\}"
72
+ */
73
+ function placeholder(term) {
74
+ return "{{" + term + "}}";
75
+ }
76
+ exports.placeholder = placeholder;
77
+ function createInitializedGroupTemplate(itemInfo) {
78
+ const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
79
+ itemTemplate.item = {
80
+ ...itemTemplate.item,
81
+ description: itemInfo.description,
82
+ snippet: itemInfo.snippet,
83
+ tags: itemInfo.tags,
84
+ typeKeywords: itemInfo.typeKeywords,
85
+ title: itemInfo.title,
86
+ thumbnail: itemInfo.thumbnail
87
+ };
88
+ return itemTemplate;
89
+ }
90
+ exports.createInitializedGroupTemplate = createInitializedGroupTemplate;
91
+ function createInitializedItemTemplate(itemInfo) {
92
+ const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
93
+ itemTemplate.item = {
94
+ ...itemTemplate.item,
95
+ accessInformation: itemInfo.accessInformation,
96
+ categories: itemInfo.categories,
97
+ contentStatus: itemInfo.contentStatus,
98
+ created: itemInfo.created,
99
+ culture: itemInfo.culture,
100
+ description: itemInfo.description,
101
+ extent: getDefaultExtent(itemInfo),
102
+ licenseInfo: itemInfo.licenseInfo,
103
+ modified: itemInfo.modified,
104
+ name: itemInfo.name,
105
+ origUrl: itemInfo.origUrl,
106
+ properties: itemInfo.properties,
107
+ snippet: itemInfo.snippet,
108
+ spatialReference: undefined,
109
+ tags: itemInfo.tags,
110
+ thumbnail: itemInfo.thumbnail,
111
+ title: itemInfo.title,
112
+ typeKeywords: itemInfo.typeKeywords,
113
+ url: itemInfo.url
114
+ };
115
+ return itemTemplate;
116
+ }
117
+ exports.createInitializedItemTemplate = createInitializedItemTemplate;
118
+ /**
119
+ * Creates an empty template.
120
+ *
121
+ * @param id AGO id of item
122
+ * @param type AGO item type; defaults to ""
123
+ * @returns Empty template containing supplied id, optional type, and a key created using the function createShortId()
124
+ */
125
+ function createPlaceholderTemplate(id, type = "") {
126
+ return {
127
+ itemId: id,
128
+ type,
129
+ key: (0, generalHelpers_1.createShortId)(),
130
+ item: {
131
+ id,
132
+ type
133
+ },
134
+ data: {},
135
+ resources: [],
136
+ dependencies: [],
137
+ groups: [],
138
+ properties: {},
139
+ estimatedDeploymentCostFactor: 2
140
+ };
141
+ }
142
+ exports.createPlaceholderTemplate = createPlaceholderTemplate;
143
+ /**
144
+ * Extracts the version of a solution from its data section.
145
+ *
146
+ * @param itemData Data section of the solution as JSON
147
+ * @returns Zero-based version number
148
+ */
149
+ function extractSolutionVersion(itemData) {
150
+ let version = (0, generalHelpers_1.getProp)(itemData, "metadata.version");
151
+ if (!version) {
152
+ return 0;
153
+ }
154
+ if (typeof version === "string") {
155
+ version = parseInt(itemData.metadata.version, 10);
156
+ return isNaN(version) ? 0 : version;
157
+ }
158
+ return version;
159
+ }
160
+ exports.extractSolutionVersion = extractSolutionVersion;
161
+ /**
162
+ * Finds index of template by id in a list of templates.
163
+ *
164
+ * @param templates A collection of AGO item templates to search
165
+ * @param id AGO id of template to find
166
+ * @returns Offset of of matching template or -1 if not found
167
+ * @private
168
+ */
169
+ function findTemplateIndexInList(templates, id) {
170
+ const baseId = id;
171
+ return templates.findIndex(template => {
172
+ return baseId === template.itemId;
173
+ });
174
+ }
175
+ exports.findTemplateIndexInList = findTemplateIndexInList;
176
+ /**
177
+ * Finds template by id in a list of templates.
178
+ *
179
+ * @param templates A collection of AGO item templates to search
180
+ * @param id AGO id of template to find
181
+ * @returns Matching template or null
182
+ */
183
+ function findTemplateInList(templates, id) {
184
+ const iTemplate = findTemplateIndexInList(templates, id);
185
+ return iTemplate >= 0 ? templates[iTemplate] : null;
186
+ }
187
+ exports.findTemplateInList = findTemplateInList;
188
+ function hasUnresolvedVariables(data) {
189
+ const getUnresolved = (v) => {
190
+ return v ? JSON.stringify(v).match(/{{.+?}}/gim) || [] : [];
191
+ };
192
+ return getUnresolved(data).length > 0;
193
+ }
194
+ exports.hasUnresolvedVariables = hasUnresolvedVariables;
195
+ function getIdsInTemplatesList(templates) {
196
+ return templates.map(template => template.itemId);
197
+ }
198
+ exports.getIdsInTemplatesList = getIdsInTemplatesList;
199
+ function getDefaultExtent(itemInfo) {
200
+ const ext = itemInfo.extent;
201
+ return ext === null || (Array.isArray(ext) && ext.length === 0)
202
+ ? ext
203
+ : "{{solutionItemExtent}}";
204
+ }
205
+ exports.getDefaultExtent = getDefaultExtent;
206
+ /**
207
+ * Removes a template entry in a list of templates.
208
+ *
209
+ * @param templates A collection of AGO item templates
210
+ * @param id Id of item in templates list to find; if not found, no replacement is done
211
+ * @private
212
+ */
213
+ function removeTemplate(templates, id) {
214
+ const i = findTemplateIndexInList(templates, id);
215
+ if (i >= 0) {
216
+ templates.splice(i, 1);
217
+ }
218
+ }
219
+ exports.removeTemplate = removeTemplate;
220
+ /**
221
+ * Replaces symbols in a template.
222
+ *
223
+ * @param template Template to check for replacements; template is modified by this function
224
+ * @param replacements Hash of facts: org URL, adlib replacements, deferreds for dependencies
225
+ * @returns template is returned after updating it
226
+ */
227
+ function replaceInTemplate(template, replacements) {
228
+ return (0, adlib_1.adlib)(template, replacements, exports.TRANSFORMS);
229
+ }
230
+ exports.replaceInTemplate = replaceInTemplate;
231
+ /**
232
+ * Replaces a template entry in a list of templates.
233
+ *
234
+ * @param templates A collection of AGO item templates
235
+ * @param id Id of item in templates list to find; if not found, no replacement is done
236
+ * @param template Replacement template
237
+ * @returns True if replacement was made
238
+ * @private
239
+ */
240
+ function replaceTemplate(templates, id, template) {
241
+ const i = findTemplateIndexInList(templates, id);
242
+ if (i >= 0) {
243
+ templates[i] = template;
244
+ return true;
245
+ }
246
+ return false;
247
+ }
248
+ exports.replaceTemplate = replaceTemplate;
249
+ function templatizeTerm(context, term, suffix = "") {
250
+ if (!context) {
251
+ return context;
252
+ }
253
+ const pattern = new RegExp(term, "g");
254
+ return context.replace(pattern, "{{" + term + suffix + "}}");
255
+ }
256
+ exports.templatizeTerm = templatizeTerm;
257
+ /**
258
+ * Helper function to templatize value and make sure its converted to lowercase
259
+ *
260
+ * @param basePath path used to de-templatize while deploying
261
+ * @param value to be converted to lower case for lookup while deploying
262
+ */
263
+ function templatizeToLowerCase(basePath, value) {
264
+ if (value.startsWith("{{")) {
265
+ return value;
266
+ }
267
+ else {
268
+ return String(templatizeTerm(basePath, basePath, "." + String(value).toLowerCase()));
269
+ }
270
+ }
271
+ exports.templatizeToLowerCase = templatizeToLowerCase;
272
+ /**
273
+ * using each field from the datasource replace any occurances
274
+ * of the field name with the templatized value
275
+ * Needs to account for:
276
+ * "NAME"
277
+ * "NAME NAME2"
278
+ * "NAME ASC"
279
+ * "\{NAME\}"
280
+ * "(NAME = value AND NAME2 = someOtherValue)"
281
+ */
282
+ function templatizeFieldReferences(obj, fields, basePath, templatizeKeys = false) {
283
+ let objString = JSON.stringify(obj);
284
+ fields.forEach(field => {
285
+ let expression = "\\b" + field.name + "\\b(?![.])(?![}]{2})";
286
+ if (!templatizeKeys) {
287
+ expression += '(?!":)';
288
+ }
289
+ objString = objString.replace(
290
+ // needs to ensure that its not already been templatized
291
+ // cannot be followed by .name and cannot be proceeded by fieldName. in case of {{01922837.name.name}} and cannot be followed by }}
292
+ new RegExp(expression, "g"), templatizeToLowerCase(basePath, field.name + ".name"));
293
+ });
294
+ return JSON.parse(objString);
295
+ }
296
+ exports.templatizeFieldReferences = templatizeFieldReferences;
297
+ function templatizeIds(obj) {
298
+ // Convert object to string
299
+ let objString = JSON.stringify(obj);
300
+ // Find ids
301
+ const idTest = /[0-9A-F]{32}/gim;
302
+ if (obj && idTest.test(objString)) {
303
+ // Templatize ids
304
+ const ids = objString.match(idTest).filter(hub_common_1.unique);
305
+ ids.forEach(id => {
306
+ const regEx = new RegExp(id, "gm");
307
+ objString = objString.replace(regEx, "{{" + id + ".itemId}}");
308
+ });
309
+ obj = JSON.parse(objString);
310
+ }
311
+ return obj;
312
+ }
313
+ exports.templatizeIds = templatizeIds;
314
314
  //# sourceMappingURL=templatization.js.map