@esri/solution-common 5.5.0 → 5.6.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 (208) hide show
  1. package/dist/cjs/completeItem.js +2 -2
  2. package/dist/cjs/completeItem.js.map +1 -1
  3. package/dist/cjs/create-hub-request-options.js +1 -1
  4. package/dist/cjs/deleteHelpers/deleteEmptyGroups.js +1 -1
  5. package/dist/cjs/deleteHelpers/deleteEmptyGroups.js.map +1 -1
  6. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js +6 -6
  7. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js.map +1 -1
  8. package/dist/cjs/deleteHelpers/deleteSolutionContents.js +7 -11
  9. package/dist/cjs/deleteHelpers/deleteSolutionContents.js.map +1 -1
  10. package/dist/cjs/deleteHelpers/deleteSolutionFolder.js +6 -6
  11. package/dist/cjs/deleteHelpers/deleteSolutionFolder.js.map +1 -1
  12. package/dist/cjs/deleteHelpers/deleteSolutionItem.js +4 -4
  13. package/dist/cjs/deleteHelpers/deleteSolutionItem.js.map +1 -1
  14. package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.js.map +1 -1
  15. package/dist/cjs/deleteHelpers/removeItems.js +5 -6
  16. package/dist/cjs/deleteHelpers/removeItems.js.map +1 -1
  17. package/dist/cjs/deleteHelpers/reportProgress.js +1 -1
  18. package/dist/cjs/deleteHelpers/reportProgress.js.map +1 -1
  19. package/dist/cjs/deleteSolution.js +7 -7
  20. package/dist/cjs/deleteSolution.js.map +1 -1
  21. package/dist/cjs/dependencies.js +5 -5
  22. package/dist/cjs/dependencies.js.map +1 -1
  23. package/dist/cjs/featureServiceHelpers.js +132 -165
  24. package/dist/cjs/featureServiceHelpers.js.map +1 -1
  25. package/dist/cjs/formHelpers.js +1 -1
  26. package/dist/cjs/formHelpers.js.map +1 -1
  27. package/dist/cjs/generalHelpers.js +25 -40
  28. package/dist/cjs/generalHelpers.js.map +1 -1
  29. package/dist/cjs/get-subscription-info.js +1 -1
  30. package/dist/cjs/get-subscription-info.js.map +1 -1
  31. package/dist/cjs/getDeletableSolutionInfo.js.map +1 -1
  32. package/dist/cjs/getItemTypeAbbrev.js +27 -27
  33. package/dist/cjs/getItemTypeAbbrev.js.map +1 -1
  34. package/dist/cjs/getSolutionSummary.js +50 -51
  35. package/dist/cjs/getSolutionSummary.js.map +1 -1
  36. package/dist/cjs/interfaces.d.ts +2 -2
  37. package/dist/cjs/interfaces.js +1 -1
  38. package/dist/cjs/interfaces.js.map +1 -1
  39. package/dist/cjs/item-reuse.js +27 -24
  40. package/dist/cjs/item-reuse.js.map +1 -1
  41. package/dist/cjs/libConnectors.js +1 -1
  42. package/dist/cjs/libConnectors.js.map +1 -1
  43. package/dist/cjs/migrations/apply-schema.js +1 -1
  44. package/dist/cjs/migrations/is-legacy-solution.js +1 -2
  45. package/dist/cjs/migrations/is-legacy-solution.js.map +1 -1
  46. package/dist/cjs/migrations/upgrade-two-dot-five.js +2 -2
  47. package/dist/cjs/migrations/upgrade-two-dot-five.js.map +1 -1
  48. package/dist/cjs/migrations/upgrade-two-dot-four.js +4 -4
  49. package/dist/cjs/migrations/upgrade-two-dot-four.js.map +1 -1
  50. package/dist/cjs/migrations/upgrade-two-dot-seven.js.map +1 -1
  51. package/dist/cjs/migrations/upgrade-two-dot-six.js +2 -2
  52. package/dist/cjs/migrations/upgrade-two-dot-six.js.map +1 -1
  53. package/dist/cjs/migrations/upgrade-two-dot-three.js +3 -3
  54. package/dist/cjs/migrations/upgrade-two-dot-three.js.map +1 -1
  55. package/dist/cjs/migrations/upgrade-two-dot-two.js +3 -3
  56. package/dist/cjs/migrations/upgrade-two-dot-two.js.map +1 -1
  57. package/dist/cjs/migrations/upgrade-two-dot-zero.js +3 -3
  58. package/dist/cjs/migrations/upgrade-two-dot-zero.js.map +1 -1
  59. package/dist/cjs/migrator.js +1 -3
  60. package/dist/cjs/migrator.js.map +1 -1
  61. package/dist/cjs/resourceHelpers.js +24 -29
  62. package/dist/cjs/resourceHelpers.js.map +1 -1
  63. package/dist/cjs/resources/add-resource-from-blob.js +2 -2
  64. package/dist/cjs/resources/add-resource-from-blob.js.map +1 -1
  65. package/dist/cjs/resources/addMetadataFromBlob.js +3 -3
  66. package/dist/cjs/resources/addMetadataFromBlob.js.map +1 -1
  67. package/dist/cjs/resources/copyAssociatedFiles.js +25 -31
  68. package/dist/cjs/resources/copyAssociatedFiles.js.map +1 -1
  69. package/dist/cjs/resources/copyDataIntoItem.js +7 -9
  70. package/dist/cjs/resources/copyDataIntoItem.js.map +1 -1
  71. package/dist/cjs/resources/copyMetadataIntoItem.js +4 -6
  72. package/dist/cjs/resources/copyMetadataIntoItem.js.map +1 -1
  73. package/dist/cjs/resources/copyResourceIntoZip.js +3 -7
  74. package/dist/cjs/resources/copyResourceIntoZip.js.map +1 -1
  75. package/dist/cjs/resources/copyZipIntoItem.js +4 -5
  76. package/dist/cjs/resources/copyZipIntoItem.js.map +1 -1
  77. package/dist/cjs/resources/createCopyResults.js +1 -1
  78. package/dist/cjs/resources/get-blob.js +2 -2
  79. package/dist/cjs/resources/get-blob.js.map +1 -1
  80. package/dist/cjs/resources/getItemResourcesFilesFromPaths.js +5 -5
  81. package/dist/cjs/resources/getItemResourcesFilesFromPaths.js.map +1 -1
  82. package/dist/cjs/resources/getItemResourcesPaths.js +1 -1
  83. package/dist/cjs/resources/getItemResourcesPaths.js.map +1 -1
  84. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js +5 -11
  85. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js.map +1 -1
  86. package/dist/cjs/restHelpers.js +219 -261
  87. package/dist/cjs/restHelpers.js.map +1 -1
  88. package/dist/cjs/restHelpersGet.js +55 -63
  89. package/dist/cjs/restHelpersGet.js.map +1 -1
  90. package/dist/cjs/sharing/share-item-to-groups.js +2 -2
  91. package/dist/cjs/sharing/share-item-to-groups.js.map +1 -1
  92. package/dist/cjs/templatization.js +10 -12
  93. package/dist/cjs/templatization.js.map +1 -1
  94. package/dist/cjs/trackingHelpers.js +10 -15
  95. package/dist/cjs/trackingHelpers.js.map +1 -1
  96. package/dist/cjs/velocityHelpers.js +7 -11
  97. package/dist/cjs/velocityHelpers.js.map +1 -1
  98. package/dist/cjs/workflowHelpers.js +15 -17
  99. package/dist/cjs/workflowHelpers.js.map +1 -1
  100. package/dist/cjs/workforceHelpers.js +75 -103
  101. package/dist/cjs/workforceHelpers.js.map +1 -1
  102. package/dist/cjs/zip-utils.js +3 -3
  103. package/dist/cjs/zip-utils.js.map +1 -1
  104. package/dist/esm/completeItem.js +2 -2
  105. package/dist/esm/completeItem.js.map +1 -1
  106. package/dist/esm/create-hub-request-options.js +1 -1
  107. package/dist/esm/deleteHelpers/deleteEmptyGroups.js +1 -1
  108. package/dist/esm/deleteHelpers/deleteEmptyGroups.js.map +1 -1
  109. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js +6 -6
  110. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js.map +1 -1
  111. package/dist/esm/deleteHelpers/deleteSolutionContents.js +8 -12
  112. package/dist/esm/deleteHelpers/deleteSolutionContents.js.map +1 -1
  113. package/dist/esm/deleteHelpers/deleteSolutionFolder.js +6 -6
  114. package/dist/esm/deleteHelpers/deleteSolutionFolder.js.map +1 -1
  115. package/dist/esm/deleteHelpers/deleteSolutionItem.js +4 -4
  116. package/dist/esm/deleteHelpers/deleteSolutionItem.js.map +1 -1
  117. package/dist/esm/deleteHelpers/reconstructBuildOrderIds.js.map +1 -1
  118. package/dist/esm/deleteHelpers/removeItems.js +5 -6
  119. package/dist/esm/deleteHelpers/removeItems.js.map +1 -1
  120. package/dist/esm/deleteHelpers/reportProgress.js +1 -1
  121. package/dist/esm/deleteHelpers/reportProgress.js.map +1 -1
  122. package/dist/esm/deleteSolution.js +7 -7
  123. package/dist/esm/deleteSolution.js.map +1 -1
  124. package/dist/esm/dependencies.js +5 -5
  125. package/dist/esm/dependencies.js.map +1 -1
  126. package/dist/esm/featureServiceHelpers.js +134 -167
  127. package/dist/esm/featureServiceHelpers.js.map +1 -1
  128. package/dist/esm/formHelpers.js +1 -1
  129. package/dist/esm/formHelpers.js.map +1 -1
  130. package/dist/esm/generalHelpers.js +25 -40
  131. package/dist/esm/generalHelpers.js.map +1 -1
  132. package/dist/esm/get-subscription-info.js +1 -1
  133. package/dist/esm/get-subscription-info.js.map +1 -1
  134. package/dist/esm/getDeletableSolutionInfo.js.map +1 -1
  135. package/dist/esm/getItemTypeAbbrev.js +27 -27
  136. package/dist/esm/getItemTypeAbbrev.js.map +1 -1
  137. package/dist/esm/getSolutionSummary.js +51 -52
  138. package/dist/esm/getSolutionSummary.js.map +1 -1
  139. package/dist/esm/interfaces.d.ts +2 -2
  140. package/dist/esm/interfaces.js +2 -2
  141. package/dist/esm/interfaces.js.map +1 -1
  142. package/dist/esm/item-reuse.js +27 -24
  143. package/dist/esm/item-reuse.js.map +1 -1
  144. package/dist/esm/libConnectors.js +1 -1
  145. package/dist/esm/libConnectors.js.map +1 -1
  146. package/dist/esm/migrations/apply-schema.js +1 -1
  147. package/dist/esm/migrations/is-legacy-solution.js +1 -2
  148. package/dist/esm/migrations/is-legacy-solution.js.map +1 -1
  149. package/dist/esm/migrations/upgrade-two-dot-five.js +2 -2
  150. package/dist/esm/migrations/upgrade-two-dot-five.js.map +1 -1
  151. package/dist/esm/migrations/upgrade-two-dot-four.js +4 -4
  152. package/dist/esm/migrations/upgrade-two-dot-four.js.map +1 -1
  153. package/dist/esm/migrations/upgrade-two-dot-seven.js.map +1 -1
  154. package/dist/esm/migrations/upgrade-two-dot-six.js +2 -2
  155. package/dist/esm/migrations/upgrade-two-dot-six.js.map +1 -1
  156. package/dist/esm/migrations/upgrade-two-dot-three.js +3 -3
  157. package/dist/esm/migrations/upgrade-two-dot-three.js.map +1 -1
  158. package/dist/esm/migrations/upgrade-two-dot-two.js +3 -3
  159. package/dist/esm/migrations/upgrade-two-dot-two.js.map +1 -1
  160. package/dist/esm/migrations/upgrade-two-dot-zero.js +3 -3
  161. package/dist/esm/migrations/upgrade-two-dot-zero.js.map +1 -1
  162. package/dist/esm/migrator.js +1 -3
  163. package/dist/esm/migrator.js.map +1 -1
  164. package/dist/esm/resourceHelpers.js +26 -31
  165. package/dist/esm/resourceHelpers.js.map +1 -1
  166. package/dist/esm/resources/add-resource-from-blob.js +2 -2
  167. package/dist/esm/resources/add-resource-from-blob.js.map +1 -1
  168. package/dist/esm/resources/addMetadataFromBlob.js +3 -3
  169. package/dist/esm/resources/addMetadataFromBlob.js.map +1 -1
  170. package/dist/esm/resources/copyAssociatedFiles.js +26 -32
  171. package/dist/esm/resources/copyAssociatedFiles.js.map +1 -1
  172. package/dist/esm/resources/copyDataIntoItem.js +7 -9
  173. package/dist/esm/resources/copyDataIntoItem.js.map +1 -1
  174. package/dist/esm/resources/copyMetadataIntoItem.js +4 -6
  175. package/dist/esm/resources/copyMetadataIntoItem.js.map +1 -1
  176. package/dist/esm/resources/copyResourceIntoZip.js +3 -7
  177. package/dist/esm/resources/copyResourceIntoZip.js.map +1 -1
  178. package/dist/esm/resources/copyZipIntoItem.js +4 -5
  179. package/dist/esm/resources/copyZipIntoItem.js.map +1 -1
  180. package/dist/esm/resources/createCopyResults.js +1 -1
  181. package/dist/esm/resources/get-blob.js +2 -2
  182. package/dist/esm/resources/get-blob.js.map +1 -1
  183. package/dist/esm/resources/getItemResourcesFilesFromPaths.js +5 -5
  184. package/dist/esm/resources/getItemResourcesFilesFromPaths.js.map +1 -1
  185. package/dist/esm/resources/getItemResourcesPaths.js +1 -1
  186. package/dist/esm/resources/getItemResourcesPaths.js.map +1 -1
  187. package/dist/esm/resources/transform-resource-paths-to-solution-resources.js +5 -11
  188. package/dist/esm/resources/transform-resource-paths-to-solution-resources.js.map +1 -1
  189. package/dist/esm/restHelpers.js +224 -266
  190. package/dist/esm/restHelpers.js.map +1 -1
  191. package/dist/esm/restHelpersGet.js +56 -64
  192. package/dist/esm/restHelpersGet.js.map +1 -1
  193. package/dist/esm/sharing/share-item-to-groups.js +2 -2
  194. package/dist/esm/sharing/share-item-to-groups.js.map +1 -1
  195. package/dist/esm/templatization.js +10 -12
  196. package/dist/esm/templatization.js.map +1 -1
  197. package/dist/esm/trackingHelpers.js +10 -15
  198. package/dist/esm/trackingHelpers.js.map +1 -1
  199. package/dist/esm/velocityHelpers.js +7 -11
  200. package/dist/esm/velocityHelpers.js.map +1 -1
  201. package/dist/esm/workflowHelpers.js +15 -17
  202. package/dist/esm/workflowHelpers.js.map +1 -1
  203. package/dist/esm/workforceHelpers.js +75 -103
  204. package/dist/esm/workforceHelpers.js.map +1 -1
  205. package/dist/esm/zip-utils.js +3 -3
  206. package/dist/esm/zip-utils.js.map +1 -1
  207. package/dist/solution.js_commit.txt +6 -8
  208. package/package.json +13 -13
@@ -46,7 +46,7 @@ function getFeatureServiceRelatedRecords(url, relationshipId, objectIds) {
46
46
  const options = {
47
47
  url: url + `/${relationshipId}`,
48
48
  relationshipId,
49
- objectIds
49
+ objectIds,
50
50
  };
51
51
  return (0, arcgis_rest_feature_layer_2.queryRelated)(options);
52
52
  }
@@ -70,7 +70,7 @@ function templatize(itemTemplate, dependencies, templatizeFieldReferences, templ
70
70
  ...itemTemplate.item,
71
71
  id: (0, templatization_1.templatizeTerm)(id, id, ".itemId"),
72
72
  url: _templatize(id, "url"),
73
- typeKeywords: (0, templatization_1.templatizeIds)(itemTemplate.item.typeKeywords)
73
+ typeKeywords: (0, templatization_1.templatizeIds)(itemTemplate.item.typeKeywords),
74
74
  };
75
75
  // special handeling if we are dealing with a tracker view
76
76
  (0, trackingHelpers_1.templatizeTracker)(itemTemplate);
@@ -85,7 +85,7 @@ function templatize(itemTemplate, dependencies, templatizeFieldReferences, templ
85
85
  const _items = layers.concat(tables);
86
86
  // Set up symbols for the URL of the feature service and its layers and tables
87
87
  templateDictionary[fsUrl] = itemTemplate.item.url; // map FS URL to its templatized form
88
- jsonItems.concat(_items).forEach(layer => {
88
+ jsonItems.concat(_items).forEach((layer) => {
89
89
  templateDictionary[fsUrl + "/" + layer.id] = _templatize(id, "layer" + layer.id + ".url");
90
90
  });
91
91
  // templatize the service references serviceItemId
@@ -114,7 +114,7 @@ function templatize(itemTemplate, dependencies, templatizeFieldReferences, templ
114
114
  let hasZ = false;
115
115
  jsonItems.forEach((jsonItem) => {
116
116
  // get the source service json for the given data item
117
- const matchingItems = _items.filter(item => {
117
+ const matchingItems = _items.filter((item) => {
118
118
  return jsonItem.id === item.id;
119
119
  });
120
120
  // templatize the source service json
@@ -136,7 +136,7 @@ exports.templatize = templatize;
136
136
  */
137
137
  function deleteViewProps(layer) {
138
138
  const props = ["definitionQuery"];
139
- props.forEach(prop => {
139
+ props.forEach((prop) => {
140
140
  (0, generalHelpers_1.deleteProp)(layer, prop);
141
141
  });
142
142
  }
@@ -158,7 +158,7 @@ function cacheFieldInfos(layer, fieldInfos) {
158
158
  fieldInfos[layer.id] = {
159
159
  sourceFields: JSON.parse(JSON.stringify(layer.fields)),
160
160
  type: layer.type,
161
- id: layer.id
161
+ id: layer.id,
162
162
  };
163
163
  }
164
164
  // cache each of these properties as they each can contain field references
@@ -171,9 +171,9 @@ function cacheFieldInfos(layer, fieldInfos) {
171
171
  relationships: true,
172
172
  drawingInfo: false,
173
173
  timeInfo: false,
174
- viewDefinitionQuery: false
174
+ viewDefinitionQuery: false,
175
175
  };
176
- Object.keys(props).forEach(k => {
176
+ Object.keys(props).forEach((k) => {
177
177
  _cacheFieldInfo(layer, k, fieldInfos, props[k]);
178
178
  });
179
179
  return fieldInfos;
@@ -188,9 +188,9 @@ exports.cacheFieldInfos = cacheFieldInfos;
188
188
  * @returns An updated instance of the fieldInfos
189
189
  */
190
190
  function cacheContingentValues(id, fieldInfos, itemTemplate) {
191
- const contingentValues = (0, generalHelpers_1.getProp)(itemTemplate, 'properties.contingentValues');
191
+ const contingentValues = (0, generalHelpers_1.getProp)(itemTemplate, "properties.contingentValues");
192
192
  if (contingentValues && contingentValues[id]) {
193
- fieldInfos[id]['contingentValues'] = contingentValues[id];
193
+ fieldInfos[id]["contingentValues"] = contingentValues[id];
194
194
  }
195
195
  return fieldInfos;
196
196
  }
@@ -206,10 +206,7 @@ exports.cacheContingentValues = cacheContingentValues;
206
206
  */
207
207
  function _cacheFieldInfo(layer, prop, fieldInfos, removeProp) {
208
208
  /* istanbul ignore else */
209
- if (layer &&
210
- layer.hasOwnProperty(prop) &&
211
- fieldInfos &&
212
- fieldInfos.hasOwnProperty(layer.id)) {
209
+ if (layer && layer.hasOwnProperty(prop) && fieldInfos && fieldInfos.hasOwnProperty(layer.id)) {
213
210
  fieldInfos[layer.id][prop] = layer[prop];
214
211
  // editFieldsInfo does not come through unless its with the layer
215
212
  // when it's being added
@@ -230,7 +227,7 @@ function cachePopupInfos(data) {
230
227
  // store any popupInfo so we can update after any potential name changes
231
228
  const popupInfos = {
232
229
  layers: {},
233
- tables: {}
230
+ tables: {},
234
231
  };
235
232
  if (data && data.layers && data.layers.length > 0) {
236
233
  _cachePopupInfo(popupInfos, "layers", data.layers);
@@ -275,11 +272,11 @@ function cacheLayerInfo(layerId, itemId, url, templateDictionary) {
275
272
  // need to structure these differently so they are not used for standard replacement calls
276
273
  // this now adds additional vars that are not needing replacement unless we fail to fetch the service
277
274
  const newVars = (0, generalHelpers_1.getProp)(templateDictionary, `${interfaces_1.UNREACHABLE}.${itemId}`) || {
278
- itemId
275
+ itemId,
279
276
  };
280
277
  newVars[layerIdVar] = (0, generalHelpers_1.getProp)(newVars, layerIdVar) || {
281
278
  layerId,
282
- itemId
279
+ itemId,
283
280
  };
284
281
  if (url !== "") {
285
282
  newVars[layerIdVar]["url"] = url;
@@ -288,7 +285,7 @@ function cacheLayerInfo(layerId, itemId, url, templateDictionary) {
288
285
  unreachableVars[itemId] = newVars;
289
286
  templateDictionary[interfaces_1.UNREACHABLE] = {
290
287
  ...templateDictionary[interfaces_1.UNREACHABLE],
291
- ...unreachableVars
288
+ ...unreachableVars,
292
289
  };
293
290
  }
294
291
  }
@@ -309,7 +306,7 @@ function updateTemplate(itemTemplate, templateDictionary, createResponse) {
309
306
  templateDictionary[itemTemplate.itemId] = Object.assign(templateDictionary[itemTemplate.itemId] || {}, {
310
307
  itemId: createResponse.serviceItemId,
311
308
  url: (0, generalHelpers_1.checkUrlPathTermination)(createResponse.serviceurl),
312
- name: createResponse.name
309
+ name: createResponse.name,
313
310
  });
314
311
  // Update the item template now that the new service has been created
315
312
  itemTemplate.itemId = createResponse.serviceItemId;
@@ -330,7 +327,7 @@ function _updateTypeKeywords(itemTemplate, createResponse) {
330
327
  const iKwords = (0, generalHelpers_1.getProp)(itemTemplate, "item.typeKeywords");
331
328
  const cKwords = (0, generalHelpers_1.getProp)(createResponse, "typeKeywords");
332
329
  if (iKwords && cKwords) {
333
- (0, generalHelpers_1.setProp)(itemTemplate, "item.typeKeywords", iKwords.concat(cKwords.filter(k => iKwords.indexOf(k) < 0)));
330
+ (0, generalHelpers_1.setProp)(itemTemplate, "item.typeKeywords", iKwords.concat(cKwords.filter((k) => iKwords.indexOf(k) < 0)));
334
331
  }
335
332
  return itemTemplate;
336
333
  }
@@ -352,16 +349,12 @@ function getLayerSettings(layerInfos, url, itemId, enterpriseIDMapping) {
352
349
  ids.forEach((id) => {
353
350
  const _layerId = (0, generalHelpers_1.getProp)(layerInfos[id], "item.id");
354
351
  const isNum = parseInt(_layerId, 10) > -1;
355
- const layerId = isNum && enterpriseIDMapping
356
- ? enterpriseIDMapping[_layerId]
357
- : isNum
358
- ? _layerId
359
- : id;
352
+ const layerId = isNum && enterpriseIDMapping ? enterpriseIDMapping[_layerId] : isNum ? _layerId : id;
360
353
  settings[`layer${isNum ? _layerId : id}`] = {
361
354
  fields: _getNameMapping(layerInfos, id),
362
355
  url: (0, generalHelpers_1.checkUrlPathTermination)(url) + layerId,
363
356
  layerId,
364
- itemId
357
+ itemId,
365
358
  };
366
359
  (0, generalHelpers_1.deleteProp)(layerInfos[id], "newFields");
367
360
  (0, generalHelpers_1.deleteProp)(layerInfos[id], "sourceFields");
@@ -381,7 +374,7 @@ exports.getLayerSettings = getLayerSettings;
381
374
  */
382
375
  function setNamesAndTitles(templates, solutionItemId) {
383
376
  const names = [];
384
- return templates.map(t => {
377
+ return templates.map((t) => {
385
378
  /* istanbul ignore else */
386
379
  if (t.item.type === "Feature Service") {
387
380
  // Retain the existing title but swap with name if it's missing
@@ -396,10 +389,7 @@ function setNamesAndTitles(templates, solutionItemId) {
396
389
  // Limit the baseName to 50 characters before the _<guid>
397
390
  const name = baseName.substring(0, 50) + "_" + solutionItemId;
398
391
  // If the name + GUID already exists then append "_occurrenceCount"
399
- t.item.name =
400
- names.indexOf(name) === -1
401
- ? name
402
- : `${name}_${names.filter(n => n === name).length}`;
392
+ t.item.name = names.indexOf(name) === -1 ? name : `${name}_${names.filter((n) => n === name).length}`;
403
393
  names.push(name);
404
394
  }
405
395
  }
@@ -433,7 +423,7 @@ function updateSettingsFieldInfos(itemTemplate, settings) {
433
423
  ? { ...settings[k]["sourceServiceFields"], ...fieldInfos }
434
424
  : fieldInfos;
435
425
  const layerKeys = Object.keys(settings[_k]);
436
- layerKeys.forEach(layerKey => {
426
+ layerKeys.forEach((layerKey) => {
437
427
  /* istanbul ignore else */
438
428
  if (layerKey.startsWith("layer")) {
439
429
  settings[k][layerKey] = settings[_k][layerKey];
@@ -462,8 +452,8 @@ function updateTemplateForInvalidDesignations(template, authentication) {
462
452
  // get the admin URL
463
453
  const url = template.item.url;
464
454
  (0, restHelpers_1.rest_request)(url + "?f=json", {
465
- authentication: authentication
466
- }).then(serviceData => {
455
+ authentication: authentication,
456
+ }).then((serviceData) => {
467
457
  const layerInfos = {};
468
458
  const layersAndTables = (serviceData.layers || []).concat(serviceData.tables || []);
469
459
  layersAndTables.forEach((l) => {
@@ -473,10 +463,10 @@ function updateTemplateForInvalidDesignations(template, authentication) {
473
463
  }
474
464
  });
475
465
  template.data[template.itemId] = Object.assign({
476
- itemId: template.itemId
466
+ itemId: template.itemId,
477
467
  }, getLayerSettings(layerInfos, url, template.itemId));
478
468
  resolve(template);
479
- }, e => reject((0, generalHelpers_1.fail)(e)));
469
+ }, (e) => reject((0, generalHelpers_1.fail)(e)));
480
470
  }
481
471
  else {
482
472
  resolve(template);
@@ -497,7 +487,7 @@ exports.updateTemplateForInvalidDesignations = updateTemplateForInvalidDesignati
497
487
  */
498
488
  function processContingentValues(properties, adminUrl, authentication) {
499
489
  return new Promise((resolve, reject) => {
500
- if ((0, generalHelpers_1.getProp)(properties, 'service.isView')) {
490
+ if ((0, generalHelpers_1.getProp)(properties, "service.isView")) {
501
491
  // views will inherit from the source service
502
492
  resolve();
503
493
  }
@@ -507,8 +497,10 @@ function processContingentValues(properties, adminUrl, authentication) {
507
497
  const contingentValuePromises = layersAndTables.reduce((prev, cur) => {
508
498
  /* istanbul ignore else */
509
499
  if (cur.hasContingentValuesDefinition) {
510
- prev.push((0, restHelpers_1.rest_request)(`${adminUrl}/${cur['id']}/contingentValues?f=json`, { authentication }));
511
- layerIds.push(cur['id']);
500
+ prev.push((0, restHelpers_1.rest_request)(`${adminUrl}/${cur["id"]}/contingentValues?f=json`, {
501
+ authentication,
502
+ }));
503
+ layerIds.push(cur["id"]);
512
504
  }
513
505
  return prev;
514
506
  }, []);
@@ -516,13 +508,18 @@ function processContingentValues(properties, adminUrl, authentication) {
516
508
  Promise.all(contingentValuePromises).then((results) => {
517
509
  const contingentValues = {};
518
510
  results.forEach((r, i) => {
519
- (0, generalHelpers_1.deleteProp)(r, 'typeCodes');
511
+ (0, generalHelpers_1.deleteProp)(r, "typeCodes");
520
512
  /* istanbul ignore else */
521
- if ((0, generalHelpers_1.getProp)(r, 'stringDicts') && (0, generalHelpers_1.getProp)(r, 'contingentValuesDefinition')) {
522
- r.contingentValuesDefinition['stringDicts'] = r.stringDicts;
523
- (0, generalHelpers_1.deleteProp)(r, 'stringDicts');
513
+ if ((0, generalHelpers_1.getProp)(r, "stringDicts") && (0, generalHelpers_1.getProp)(r, "contingentValuesDefinition")) {
514
+ r.contingentValuesDefinition["stringDicts"] = r.stringDicts;
515
+ (0, generalHelpers_1.deleteProp)(r, "stringDicts");
524
516
  }
525
- (0, generalHelpers_1.deleteProps)((0, generalHelpers_1.getProp)(r, 'contingentValuesDefinition'), ['layerID', 'layerName', 'geometryType', 'hasSubType']);
517
+ (0, generalHelpers_1.deleteProps)((0, generalHelpers_1.getProp)(r, "contingentValuesDefinition"), [
518
+ "layerID",
519
+ "layerName",
520
+ "geometryType",
521
+ "hasSubType",
522
+ ]);
526
523
  contingentValues[layerIds[i]] = r;
527
524
  });
528
525
  properties.contingentValues = contingentValues;
@@ -547,13 +544,12 @@ exports.processContingentValues = processContingentValues;
547
544
  */
548
545
  function deTemplatizeFieldInfos(fieldInfos, popupInfos, adminLayerInfos, settings) {
549
546
  const fieldInfoKeys = Object.keys(fieldInfos);
550
- fieldInfoKeys.forEach(id => {
547
+ fieldInfoKeys.forEach((id) => {
551
548
  if (fieldInfos[id].hasOwnProperty("templates")) {
552
549
  fieldInfos[id].templates = JSON.parse((0, templatization_1.replaceInTemplate)(JSON.stringify(fieldInfos[id].templates), settings));
553
550
  }
554
551
  if (fieldInfos[id].hasOwnProperty("adminLayerInfo")) {
555
- adminLayerInfos[id].viewLayerDefinition.table.relatedTables =
556
- fieldInfos[id].adminLayerInfo;
552
+ adminLayerInfos[id].viewLayerDefinition.table.relatedTables = fieldInfos[id].adminLayerInfo;
557
553
  (0, generalHelpers_1.deleteProp)(fieldInfos[id], "adminLayerInfo");
558
554
  }
559
555
  if (fieldInfos[id].hasOwnProperty("types")) {
@@ -563,7 +559,7 @@ function deTemplatizeFieldInfos(fieldInfos, popupInfos, adminLayerInfos, setting
563
559
  return {
564
560
  popupInfos: (0, templatization_1.replaceInTemplate)(popupInfos, settings),
565
561
  fieldInfos: (0, templatization_1.replaceInTemplate)(fieldInfos, settings),
566
- adminLayerInfos: (0, templatization_1.replaceInTemplate)(adminLayerInfos, settings)
562
+ adminLayerInfos: (0, templatization_1.replaceInTemplate)(adminLayerInfos, settings),
567
563
  };
568
564
  }
569
565
  exports.deTemplatizeFieldInfos = deTemplatizeFieldInfos;
@@ -582,13 +578,13 @@ function getLayersAndTables(itemTemplate) {
582
578
  (properties.layers || []).forEach(function (layer) {
583
579
  layersAndTables.push({
584
580
  item: layer,
585
- type: "layer"
581
+ type: "layer",
586
582
  });
587
583
  });
588
584
  (properties.tables || []).forEach(function (table) {
589
585
  layersAndTables.push({
590
586
  item: table,
591
- type: "table"
587
+ type: "table",
592
588
  });
593
589
  });
594
590
  return layersAndTables;
@@ -607,14 +603,14 @@ exports.getLayersAndTables = getLayersAndTables;
607
603
  */
608
604
  function getExistingLayersAndTables(url, ids, authentication) {
609
605
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
610
- return new Promise(resolve => {
611
- const defs = ids.map(id => {
606
+ return new Promise((resolve) => {
607
+ const defs = ids.map((id) => {
612
608
  return (0, restHelpers_1.rest_request)((0, generalHelpers_1.checkUrlPathTermination)(url) + id, {
613
- authentication
609
+ authentication,
614
610
  });
615
611
  });
616
612
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
617
- Promise.all(defs.map(p => p.catch(e => e))).then(resolve);
613
+ Promise.all(defs.map((p) => p.catch((e) => e))).then(resolve);
618
614
  });
619
615
  }
620
616
  exports.getExistingLayersAndTables = getExistingLayersAndTables;
@@ -645,13 +641,13 @@ function addFeatureServiceLayersAndTables(itemTemplate, templateDictionary, popu
645
641
  // Detemplatize field references and update the layer properties
646
642
  // Only failure path is handled by addFeatureServiceDefinition
647
643
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
648
- updateLayerFieldReferences(itemTemplate, fieldInfos, popupInfos, adminLayerInfos, templateDictionary).then(r => {
644
+ updateLayerFieldReferences(itemTemplate, fieldInfos, popupInfos, adminLayerInfos, templateDictionary).then((r) => {
649
645
  // Update relationships and layer definitions
650
646
  const updates = (0, restHelpers_1.getLayerUpdates)({
651
647
  message: "updated layer definition",
652
648
  objects: r.layerInfos.fieldInfos,
653
649
  itemTemplate: r.itemTemplate,
654
- authentication
650
+ authentication,
655
651
  }, templateDictionary.isPortal);
656
652
  // Process the updates sequentially
657
653
  updates
@@ -660,11 +656,9 @@ function addFeatureServiceLayersAndTables(itemTemplate, templateDictionary, popu
660
656
  return (0, restHelpers_1.getRequest)(update);
661
657
  });
662
658
  }, Promise.resolve(null))
663
- .then(() => resolve(null), (e) => reject((0, generalHelpers_1.fail)(e)) // getRequest
664
- );
659
+ .then(() => resolve(null), (e) => reject((0, generalHelpers_1.fail)(e)));
665
660
  });
666
- }, e => reject((0, generalHelpers_1.fail)(e)) // addFeatureServiceDefinition
667
- );
661
+ }, (e) => reject((0, generalHelpers_1.fail)(e)));
668
662
  }
669
663
  else {
670
664
  resolve(null);
@@ -697,7 +691,7 @@ function addFeatureServiceDefinition(serviceUrl, listToAdd, templateDictionary,
697
691
  let options = {
698
692
  layers: [],
699
693
  tables: [],
700
- authentication
694
+ authentication,
701
695
  };
702
696
  // if the service has veiws keep track of the fields so we can use them to
703
697
  // compare with the view fields
@@ -731,10 +725,9 @@ function addFeatureServiceDefinition(serviceUrl, listToAdd, templateDictionary,
731
725
  item.adminLayerInfo = (0, templatization_1.replaceInTemplate)(item.adminLayerInfo, templateDictionary);
732
726
  /* istanbul ignore else */
733
727
  if (fieldInfos && fieldInfos.hasOwnProperty(item.id)) {
734
- Object.keys(templateDictionary).some(k => {
728
+ Object.keys(templateDictionary).some((k) => {
735
729
  if (templateDictionary[k].itemId === itemTemplate.itemId) {
736
- fieldInfos[item.id]["sourceServiceFields"] =
737
- templateDictionary[k].sourceServiceFields;
730
+ fieldInfos[item.id]["sourceServiceFields"] = templateDictionary[k].sourceServiceFields;
738
731
  return true;
739
732
  }
740
733
  else {
@@ -766,7 +759,7 @@ function addFeatureServiceDefinition(serviceUrl, listToAdd, templateDictionary,
766
759
  options = {
767
760
  layers: [],
768
761
  tables: [],
769
- authentication
762
+ authentication,
770
763
  };
771
764
  }
772
765
  });
@@ -820,7 +813,7 @@ function _updateAddOptions(itemTemplate, options, layerChunks, isSelfReferential
820
813
  options = {
821
814
  layers: [],
822
815
  tables: [],
823
- authentication
816
+ authentication,
824
817
  };
825
818
  }
826
819
  }
@@ -837,9 +830,9 @@ exports._updateAddOptions = _updateAddOptions;
837
830
  * @private
838
831
  */
839
832
  function _isSelfReferential(layersAndTables) {
840
- const names = layersAndTables.map(l => l.item.name);
833
+ const names = layersAndTables.map((l) => l.item.name);
841
834
  const srcTables = {};
842
- return layersAndTables.some(l => {
835
+ return layersAndTables.some((l) => {
843
836
  const table = l.item.adminLayerInfo?.viewLayerDefinition?.table;
844
837
  if (table) {
845
838
  const name = table.sourceServiceName;
@@ -857,7 +850,7 @@ function _isSelfReferential(layersAndTables) {
857
850
  srcTables[name] = [id];
858
851
  }
859
852
  }
860
- return (table.relatedTables || []).some(r => names.indexOf(r.name) > -1);
853
+ return (table.relatedTables || []).some((r) => names.indexOf(r.name) > -1);
861
854
  }
862
855
  });
863
856
  }
@@ -919,7 +912,7 @@ function _updateForPortal(item, itemTemplate, templateDictionary) {
919
912
  }
920
913
  }
921
914
  else {
922
- Object.keys(templateDictionary).some(k => {
915
+ Object.keys(templateDictionary).some((k) => {
923
916
  /* istanbul ignore else */
924
917
  if (templateDictionary[k].itemId === item.serviceItemId) {
925
918
  const layerInfo = templateDictionary[k][`layer${item.id}`];
@@ -960,12 +953,10 @@ function _getFieldNames(table, itemTemplate, templateDictionary) {
960
953
  /* istanbul ignore else */
961
954
  if (typeof viewSourceLayerId === "number") {
962
955
  // need to make sure these actually exist in the source..
963
- itemTemplate.dependencies.forEach(d => {
956
+ itemTemplate.dependencies.forEach((d) => {
964
957
  const layerInfo = templateDictionary[d][`layer${viewSourceLayerId}`];
965
958
  /* istanbul ignore else */
966
- if (layerInfo &&
967
- layerInfo.fields &&
968
- templateDictionary[d].name === table.sourceServiceName) {
959
+ if (layerInfo && layerInfo.fields && templateDictionary[d].name === table.sourceServiceName) {
969
960
  if (Array.isArray(layerInfo.fields)) {
970
961
  sourceLayerFields = sourceLayerFields.concat(layerInfo.fields.map((f) => f.name));
971
962
  }
@@ -1031,8 +1022,7 @@ exports._updateItemFields = _updateItemFields;
1031
1022
  */
1032
1023
  function _updateSourceLayerFields(table, sourceLayerFields) {
1033
1024
  /* istanbul ignore else */
1034
- if (Array.isArray(table.sourceLayerFields) &&
1035
- table.sourceLayerFields.length > 0) {
1025
+ if (Array.isArray(table.sourceLayerFields) && table.sourceLayerFields.length > 0) {
1036
1026
  // need to make sure these actually exist in the source..
1037
1027
  /* istanbul ignore else */
1038
1028
  if (sourceLayerFields.length > 0) {
@@ -1056,9 +1046,7 @@ function _updateGeomFieldName(adminLayerInfo, templateDictionary) {
1056
1046
  const fieldName = (0, generalHelpers_1.getProp)(adminLayerInfo, "geometryField.name");
1057
1047
  /* istanbul ignore else */
1058
1048
  if (fieldName && tableName) {
1059
- const geomName = templateDictionary.isPortal
1060
- ? `${tableName}.shape`
1061
- : `${tableName}.Shape`;
1049
+ const geomName = templateDictionary.isPortal ? `${tableName}.shape` : `${tableName}.Shape`;
1062
1050
  (0, generalHelpers_1.setProp)(adminLayerInfo, "geometryField.name", geomName);
1063
1051
  }
1064
1052
  else if (!fieldName && (0, generalHelpers_1.getProp)(adminLayerInfo, "geometryField")) {
@@ -1084,13 +1072,11 @@ function _updateTemplateDictionaryFields(itemTemplate, templateDictionary, compa
1084
1072
  const tables = itemTemplate.properties.tables;
1085
1073
  const layersAndTables = layers.concat(tables);
1086
1074
  const fieldInfos = {};
1087
- layersAndTables.forEach(layerOrTable => {
1075
+ layersAndTables.forEach((layerOrTable) => {
1088
1076
  fieldInfos[layerOrTable.id] = layerOrTable.fields;
1089
1077
  });
1090
- Object.keys(templateDictionary).some(k => {
1091
- if (compareItemId
1092
- ? templateDictionary[k].itemId === itemTemplate.itemId
1093
- : k === itemTemplate.itemId) {
1078
+ Object.keys(templateDictionary).some((k) => {
1079
+ if (compareItemId ? templateDictionary[k].itemId === itemTemplate.itemId : k === itemTemplate.itemId) {
1094
1080
  templateDictionary[k].fieldInfos = fieldInfos;
1095
1081
  return true;
1096
1082
  }
@@ -1146,9 +1132,7 @@ function validateSpatialReferenceAndExtent(serviceInfo, itemTemplate, templateDi
1146
1132
  }
1147
1133
  const viewExt = (0, generalHelpers_1.getProp)(serviceInfo, "service.fullExtent");
1148
1134
  /* istanbul ignore else */
1149
- if (sourceExt &&
1150
- viewExt &&
1151
- JSON.stringify(sourceExt) !== JSON.stringify(viewExt)) {
1135
+ if (sourceExt && viewExt && JSON.stringify(sourceExt) !== JSON.stringify(viewExt)) {
1152
1136
  (0, generalHelpers_1.setCreateProp)(serviceInfo, "defaultExtent", sourceExt);
1153
1137
  }
1154
1138
  }
@@ -1167,18 +1151,17 @@ exports.validateSpatialReferenceAndExtent = validateSpatialReferenceAndExtent;
1167
1151
  * @private
1168
1152
  */
1169
1153
  function _getSourceSpatialReferenceAndExtent(serviceInfo, itemTemplate, templateDictionary, validateGeom) {
1170
- const layersAndTables = [
1171
- ...serviceInfo.layers || [],
1172
- ...serviceInfo.tables || []
1173
- ];
1154
+ const layersAndTables = [...(serviceInfo.layers || []), ...(serviceInfo.tables || [])];
1174
1155
  let spatialReference;
1175
1156
  let extent;
1176
- itemTemplate.dependencies.some(id => {
1157
+ itemTemplate.dependencies.some((id) => {
1177
1158
  const source = templateDictionary[id];
1178
- const hasGeom = validateGeom ? layersAndTables.some(layerOrTable => {
1179
- const name = (0, generalHelpers_1.getProp)(layerOrTable, "adminLayerInfo.viewLayerDefinition.table.sourceServiceName");
1180
- return name && source.name && name === source.name && layerOrTable.geometryType;
1181
- }) : true;
1159
+ const hasGeom = validateGeom
1160
+ ? layersAndTables.some((layerOrTable) => {
1161
+ const name = (0, generalHelpers_1.getProp)(layerOrTable, "adminLayerInfo.viewLayerDefinition.table.sourceServiceName");
1162
+ return name && source.name && name === source.name && layerOrTable.geometryType;
1163
+ })
1164
+ : true;
1182
1165
  const sr = (0, generalHelpers_1.getProp)(source, "defaultSpatialReference");
1183
1166
  /* istanbul ignore else */
1184
1167
  if (!spatialReference && sr && hasGeom) {
@@ -1193,7 +1176,7 @@ function _getSourceSpatialReferenceAndExtent(serviceInfo, itemTemplate, template
1193
1176
  });
1194
1177
  return {
1195
1178
  spatialReference,
1196
- extent
1179
+ extent,
1197
1180
  };
1198
1181
  }
1199
1182
  exports._getSourceSpatialReferenceAndExtent = _getSourceSpatialReferenceAndExtent;
@@ -1218,9 +1201,9 @@ function updateLayerFieldReferences(itemTemplate, fieldInfos, popupInfos, adminL
1218
1201
  updatePopupInfo(itemTemplate, layerInfos.popupInfos);
1219
1202
  resolveFn({
1220
1203
  itemTemplate,
1221
- layerInfos
1204
+ layerInfos,
1222
1205
  });
1223
- }, e => rejectFn((0, generalHelpers_1.fail)(e)));
1206
+ }, (e) => rejectFn((0, generalHelpers_1.fail)(e)));
1224
1207
  });
1225
1208
  }
1226
1209
  exports.updateLayerFieldReferences = updateLayerFieldReferences;
@@ -1246,7 +1229,7 @@ function postProcessFields(itemTemplate, layerInfos, popupInfos, adminLayerInfos
1246
1229
  const id = itemTemplate.itemId;
1247
1230
  const settingsKeys = Object.keys(templateDictionary);
1248
1231
  let templateInfo;
1249
- settingsKeys.some(k => {
1232
+ settingsKeys.some((k) => {
1250
1233
  if (templateDictionary[k].itemId === id) {
1251
1234
  templateInfo = templateDictionary[k];
1252
1235
  return true;
@@ -1271,8 +1254,7 @@ function postProcessFields(itemTemplate, layerInfos, popupInfos, adminLayerInfos
1271
1254
  const layerInfo = layerInfos[item.id];
1272
1255
  layerInfo["isView"] = item.isView;
1273
1256
  layerInfo["newFields"] = item.fields;
1274
- layerInfo["sourceSchemaChangesAllowed"] =
1275
- item.sourceSchemaChangesAllowed;
1257
+ layerInfo["sourceSchemaChangesAllowed"] = item.sourceSchemaChangesAllowed;
1276
1258
  /* istanbul ignore else */
1277
1259
  if (item.editFieldsInfo) {
1278
1260
  // more than case change when deployed to protal so keep track of the new names
@@ -1305,7 +1287,7 @@ exports.postProcessFields = postProcessFields;
1305
1287
  * @private
1306
1288
  */
1307
1289
  function updatePopupInfo(itemTemplate, popupInfos) {
1308
- ["layers", "tables"].forEach(type => {
1290
+ ["layers", "tables"].forEach((type) => {
1309
1291
  const _items = (0, generalHelpers_1.getProp)(itemTemplate, "data." + type);
1310
1292
  /* istanbul ignore else */
1311
1293
  if (_items && Array.isArray(_items)) {
@@ -1371,7 +1353,7 @@ function _templatizeLayer(dataItem, adminItem, itemTemplate, dependencies, templ
1371
1353
  if (dataItem) {
1372
1354
  updates.push(dataItem);
1373
1355
  }
1374
- updates.forEach(update => {
1356
+ updates.forEach((update) => {
1375
1357
  if (update.hasOwnProperty("name")) {
1376
1358
  // templatize the name but leave the current name as the optional default
1377
1359
  update.name = (0, templatization_1.templatizeTerm)(update["serviceItemId"] + ".layer" + update.id, update["serviceItemId"] + ".layer" + update.id, ".name||" + update.name);
@@ -1419,7 +1401,7 @@ exports._validateFields = _validateFields;
1419
1401
  function _validateDisplayField(adminItem, fieldNames) {
1420
1402
  const displayField = adminItem.displayField || "";
1421
1403
  let i = -1;
1422
- if (fieldNames.some(name => {
1404
+ if (fieldNames.some((name) => {
1423
1405
  i += 1;
1424
1406
  return name === displayField || name === displayField.toLowerCase();
1425
1407
  })) {
@@ -1438,7 +1420,7 @@ function _validateDisplayField(adminItem, fieldNames) {
1438
1420
  if (globalIdField) {
1439
1421
  skipFields.push(globalIdField);
1440
1422
  }
1441
- fieldNames.some(name => {
1423
+ fieldNames.some((name) => {
1442
1424
  if (skipFields.indexOf(name) === -1) {
1443
1425
  adminItem.displayField = name;
1444
1426
  return true;
@@ -1466,7 +1448,7 @@ function _validateIndexes(adminItem, fieldNames) {
1466
1448
  adminItem.indexes = indexes.reduce((filtered, index) => {
1467
1449
  const indexFields = index.fields.split(",");
1468
1450
  const verifiedFields = [];
1469
- indexFields.forEach(indexField => {
1451
+ indexFields.forEach((indexField) => {
1470
1452
  /* istanbul ignore else */
1471
1453
  if (indexedFields.indexOf(indexField) === -1) {
1472
1454
  indexedFields.push(indexField);
@@ -1499,11 +1481,11 @@ function _validateTemplatesFields(adminItem, fieldNames) {
1499
1481
  const templates = adminItem.templates;
1500
1482
  /* istanbul ignore else */
1501
1483
  if (templates) {
1502
- adminItem.templates = templates.map(template => {
1484
+ adminItem.templates = templates.map((template) => {
1503
1485
  const attributes = (0, generalHelpers_1.getProp)(template, "prototype.attributes");
1504
1486
  /* istanbul ignore else */
1505
1487
  if (attributes) {
1506
- Object.keys(attributes).forEach(k => {
1488
+ Object.keys(attributes).forEach((k) => {
1507
1489
  /* istanbul ignore else */
1508
1490
  if (fieldNames.indexOf(k) === -1) {
1509
1491
  delete attributes[k];
@@ -1527,7 +1509,7 @@ function _validateTypesTemplates(adminItem, fieldNames) {
1527
1509
  const types = adminItem.types;
1528
1510
  /* istanbul ignore else */
1529
1511
  if (types) {
1530
- adminItem.types = types.map(t => {
1512
+ adminItem.types = types.map((t) => {
1531
1513
  _validateTemplatesFields(t, fieldNames);
1532
1514
  return t;
1533
1515
  });
@@ -1546,11 +1528,11 @@ function _validateEditFieldsInfo(adminItem, fieldNames) {
1546
1528
  /* istanbul ignore else */
1547
1529
  if (editFieldsInfo) {
1548
1530
  const editFieldsInfoKeys = Object.keys(editFieldsInfo);
1549
- editFieldsInfoKeys.forEach(k => {
1531
+ editFieldsInfoKeys.forEach((k) => {
1550
1532
  const editFieldName = editFieldsInfo[k];
1551
1533
  /* istanbul ignore else */
1552
1534
  if (editFieldName) {
1553
- fieldNames.some(name => {
1535
+ fieldNames.some((name) => {
1554
1536
  if (name === editFieldName) {
1555
1537
  return true;
1556
1538
  }
@@ -1661,7 +1643,7 @@ exports._processAdminObject = _processAdminObject;
1661
1643
  * @private
1662
1644
  */
1663
1645
  function _templatizeSourceServiceName(lookupName, dependencies) {
1664
- const deps = dependencies.filter(dependency => dependency.name === lookupName);
1646
+ const deps = dependencies.filter((dependency) => dependency.name === lookupName);
1665
1647
  return deps.length === 1 ? _templatize(deps[0].id, "name") : undefined;
1666
1648
  }
1667
1649
  exports._templatizeSourceServiceName = _templatizeSourceServiceName;
@@ -1709,7 +1691,7 @@ exports._templatizeAdminLayerInfoFields = _templatizeAdminLayerInfoFields;
1709
1691
  * @private
1710
1692
  */
1711
1693
  function _getDependantItemId(lookupName, dependencies) {
1712
- const deps = dependencies.filter(dependency => dependency.name === lookupName);
1694
+ const deps = dependencies.filter((dependency) => dependency.name === lookupName);
1713
1695
  return deps.length === 1 ? deps[0].id : "";
1714
1696
  }
1715
1697
  exports._getDependantItemId = _getDependantItemId;
@@ -1721,7 +1703,7 @@ exports._getDependantItemId = _getDependantItemId;
1721
1703
  * @private
1722
1704
  */
1723
1705
  function _templatizeAdminSourceLayerFields(fields, basePath) {
1724
- fields.forEach(f => _templatizeProperty(f, "source", basePath, "name"));
1706
+ fields.forEach((f) => _templatizeProperty(f, "source", basePath, "name"));
1725
1707
  }
1726
1708
  exports._templatizeAdminSourceLayerFields = _templatizeAdminSourceLayerFields;
1727
1709
  /**
@@ -1766,7 +1748,7 @@ exports._templatizeTopFilter = _templatizeTopFilter;
1766
1748
  function _templatizeRelationshipFields(layer, itemID) {
1767
1749
  if (layer && layer.relationships) {
1768
1750
  const relationships = layer.relationships;
1769
- relationships.forEach(r => {
1751
+ relationships.forEach((r) => {
1770
1752
  /* istanbul ignore else */
1771
1753
  if (r.keyField) {
1772
1754
  const basePath = itemID + ".layer" + layer.id + ".fields";
@@ -1816,7 +1798,7 @@ exports._templatizePopupInfo = _templatizePopupInfo;
1816
1798
  */
1817
1799
  function _templatizeName(object, property, fieldNames, basePath) {
1818
1800
  if (object.hasOwnProperty(property)) {
1819
- fieldNames.forEach(name => {
1801
+ fieldNames.forEach((name) => {
1820
1802
  // Only test and replace instance of the name so any enclosing characters
1821
1803
  // will be retained
1822
1804
  const regEx = new RegExp("(\\b" + name + "\\b(?![}]{2}))", "gm");
@@ -1864,9 +1846,7 @@ function _templatizeFieldName(name, layer, itemID, basePath) {
1864
1846
  const relatedTable = relatedTables[relationshipId];
1865
1847
  // the layers relationships stores the property as relatedTableId
1866
1848
  // the layers adminLayerInfo relatedTables stores the property as sourceLayerId
1867
- const prop = (0, generalHelpers_1.getProp)(relatedTable, "relatedTableId")
1868
- ? "relatedTableId"
1869
- : "sourceLayerId";
1849
+ const prop = (0, generalHelpers_1.getProp)(relatedTable, "relatedTableId") ? "relatedTableId" : "sourceLayerId";
1870
1850
  const _basePath = itemID + ".layer" + relatedTable[prop] + ".fields";
1871
1851
  rels[2] = _templatize(_basePath, rels[2], "name");
1872
1852
  name = rels.join("/");
@@ -1892,7 +1872,7 @@ exports._templatizeFieldName = _templatizeFieldName;
1892
1872
  */
1893
1873
  function _templatizeExpressionInfos(expressionInfos, fieldNames, basePath) {
1894
1874
  return expressionInfos.map((i) => {
1895
- fieldNames.forEach(name => {
1875
+ fieldNames.forEach((name) => {
1896
1876
  i.expression = _templatizeArcadeExpressions(i.expression, name, basePath);
1897
1877
  });
1898
1878
  return i;
@@ -1933,13 +1913,13 @@ exports._templatizePopupElements = _templatizePopupElements;
1933
1913
  function _templatizeMediaInfos(mediaInfos, fieldNames, basePath, layer, itemId) {
1934
1914
  // templatize various properties of mediaInfos
1935
1915
  const props = ["title", "caption"];
1936
- props.forEach(p => _templatizeName(mediaInfos, p, fieldNames, basePath));
1916
+ props.forEach((p) => _templatizeName(mediaInfos, p, fieldNames, basePath));
1937
1917
  mediaInfos.forEach((mi) => {
1938
1918
  /* istanbul ignore else */
1939
1919
  if (mi.hasOwnProperty("value")) {
1940
1920
  const v = mi.value;
1941
1921
  const vfields = v.fields || [];
1942
- v.fields = vfields.map(f => _templatizeFieldName(f, layer, itemId, basePath));
1922
+ v.fields = vfields.map((f) => _templatizeFieldName(f, layer, itemId, basePath));
1943
1923
  if (v.hasOwnProperty("normalizeField")) {
1944
1924
  _templatizeProperty(v, "normalizeField", basePath, "name");
1945
1925
  }
@@ -1966,7 +1946,7 @@ function _templatizeDefinitionEditor(layer, basePath, fieldNames) {
1966
1946
  if (defEditor) {
1967
1947
  const inputs = defEditor.inputs;
1968
1948
  if (inputs) {
1969
- inputs.forEach(i => {
1949
+ inputs.forEach((i) => {
1970
1950
  /* istanbul ignore else */
1971
1951
  if (i.parameters) {
1972
1952
  i.parameters.forEach((p) => {
@@ -2005,7 +1985,7 @@ exports._templatizeDefinitionExpression = _templatizeDefinitionExpression;
2005
1985
  * @private
2006
1986
  */
2007
1987
  function _templatizeSimpleName(expression, basePath, fieldNames, suffix) {
2008
- fieldNames.forEach(name => {
1988
+ fieldNames.forEach((name) => {
2009
1989
  // look for the name but not if its followed by }}
2010
1990
  const regEx = new RegExp("\\b" + name + "\\b(?![}]{2})", "gm");
2011
1991
  if (expression && regEx.test(expression)) {
@@ -2079,13 +2059,13 @@ function _templatizeGenRenderer(renderer, basePath, fieldNames) {
2079
2059
  _templatizeAuthoringInfo(authoringInfo, basePath, fieldNames);
2080
2060
  }
2081
2061
  const props = ["field", "normalizationField"];
2082
- props.forEach(p => _templatizeProperty(renderer, p, basePath, "name"));
2062
+ props.forEach((p) => _templatizeProperty(renderer, p, basePath, "name"));
2083
2063
  const fieldNameProps = ["field1", "field2", "field3"];
2084
- fieldNameProps.forEach(fnP => _templatizeProperty(renderer, fnP, basePath, "name"));
2064
+ fieldNameProps.forEach((fnP) => _templatizeProperty(renderer, fnP, basePath, "name"));
2085
2065
  // When an attribute name is specified, it's enclosed in square brackets
2086
2066
  const rExp = renderer.rotationExpression;
2087
2067
  if (rExp) {
2088
- fieldNames.forEach(name => {
2068
+ fieldNames.forEach((name) => {
2089
2069
  const regEx = new RegExp("(\\[" + name + "\\])", "gm");
2090
2070
  if (regEx.test(rExp)) {
2091
2071
  renderer.rotationExpression = rExp.replace(regEx, "[" + _templatize(basePath, name, "name") + "]");
@@ -2094,17 +2074,17 @@ function _templatizeGenRenderer(renderer, basePath, fieldNames) {
2094
2074
  }
2095
2075
  // update valueExpression
2096
2076
  if (renderer.valueExpression) {
2097
- fieldNames.forEach(name => {
2077
+ fieldNames.forEach((name) => {
2098
2078
  renderer.valueExpression = _templatizeArcadeExpressions(renderer.valueExpression, name, basePath);
2099
2079
  });
2100
2080
  }
2101
2081
  // update visualVariables
2102
2082
  const visualVariables = renderer.visualVariables;
2103
2083
  if (visualVariables) {
2104
- visualVariables.forEach(v => {
2105
- props.forEach(p => _templatizeProperty(v, p, basePath, "name"));
2084
+ visualVariables.forEach((v) => {
2085
+ props.forEach((p) => _templatizeProperty(v, p, basePath, "name"));
2106
2086
  if (v.valueExpression) {
2107
- fieldNames.forEach(name => {
2087
+ fieldNames.forEach((name) => {
2108
2088
  v.valueExpression = _templatizeArcadeExpressions(v.valueExpression, name, basePath);
2109
2089
  });
2110
2090
  }
@@ -2122,12 +2102,8 @@ exports._templatizeGenRenderer = _templatizeGenRenderer;
2122
2102
  * @private
2123
2103
  */
2124
2104
  function _templatizeTemporalRenderer(renderer, basePath, fieldNames) {
2125
- const renderers = [
2126
- renderer.latestObservationRenderer,
2127
- renderer.observationRenderer,
2128
- renderer.trackRenderer
2129
- ];
2130
- renderers.forEach(r => {
2105
+ const renderers = [renderer.latestObservationRenderer, renderer.observationRenderer, renderer.trackRenderer];
2106
+ renderers.forEach((r) => {
2131
2107
  _templatizeRenderer(r, basePath, fieldNames);
2132
2108
  });
2133
2109
  }
@@ -2145,17 +2121,17 @@ function _templatizeAuthoringInfo(authoringInfo, basePath, fieldNames) {
2145
2121
  if (authoringInfo) {
2146
2122
  const props = ["field", "normalizationField"];
2147
2123
  const field1 = authoringInfo.field1;
2148
- props.forEach(p => _templatizeProperty(field1, p, basePath, "name"));
2124
+ props.forEach((p) => _templatizeProperty(field1, p, basePath, "name"));
2149
2125
  const field2 = authoringInfo.field2;
2150
- props.forEach(p => _templatizeProperty(field2, p, basePath, "name"));
2126
+ props.forEach((p) => _templatizeProperty(field2, p, basePath, "name"));
2151
2127
  const fields = authoringInfo.fields;
2152
2128
  if (fields) {
2153
- authoringInfo.fields = fields.map(f => _templatize(basePath, f, "name"));
2129
+ authoringInfo.fields = fields.map((f) => _templatize(basePath, f, "name"));
2154
2130
  }
2155
2131
  const vProps = ["endTime", "field", "startTime"];
2156
2132
  const vVars = authoringInfo.visualVariables;
2157
2133
  if (vVars) {
2158
- vProps.forEach(p => {
2134
+ vProps.forEach((p) => {
2159
2135
  // endTime and startTime may or may not be a field name
2160
2136
  if (fieldNames.indexOf(vVars[p]) > -1) {
2161
2137
  _templatizeProperty(vVars, p, basePath, "name");
@@ -2193,8 +2169,7 @@ function _templatizeArcadeExpressions(text, fieldName, basePath) {
2193
2169
  }
2194
2170
  // test for $feature[] with join case
2195
2171
  // captures VOTED_DEM_2016 from $feature["COUNTY_ID.VOTED_DEM_2016"]
2196
- exp =
2197
- "(?:[$]feature)(\\[\\\"?\\'?)(\\w+)[.]" + fieldName + "(\\\"?\\'?\\])";
2172
+ exp = "(?:[$]feature)(\\[\\\"?\\'?)(\\w+)[.]" + fieldName + "(\\\"?\\'?\\])";
2198
2173
  regEx = new RegExp(exp, "gm");
2199
2174
  result = regEx.exec(text);
2200
2175
  if (result && result.length > 3) {
@@ -2227,11 +2202,11 @@ function _templatizeLabelingInfo(labelingInfo, basePath, fieldNames) {
2227
2202
  /* istanbul ignore else */
2228
2203
  if (li.hasOwnProperty("fieldInfos")) {
2229
2204
  const fieldInfos = li.fieldInfos || [];
2230
- fieldInfos.forEach(fi => _templatizeProperty(fi, "fieldName", basePath, "name"));
2205
+ fieldInfos.forEach((fi) => _templatizeProperty(fi, "fieldName", basePath, "name"));
2231
2206
  }
2232
2207
  const labelExp = li.labelExpression || "";
2233
2208
  const labelExpInfo = li.labelExpressionInfo || {};
2234
- fieldNames.forEach(n => {
2209
+ fieldNames.forEach((n) => {
2235
2210
  const t = _templatize(basePath, n, "name");
2236
2211
  // check for [fieldName] or ["fieldName"]
2237
2212
  const regExBracket = new RegExp('(\\[\\"*)+(' + n + ')(\\"*\\])+', "gm");
@@ -2267,7 +2242,7 @@ exports._templatizeLabelingInfo = _templatizeLabelingInfo;
2267
2242
  */
2268
2243
  function _templatizeTemplates(layer, basePath) {
2269
2244
  const templates = layer.templates || [];
2270
- templates.forEach(t => {
2245
+ templates.forEach((t) => {
2271
2246
  const attributes = (0, generalHelpers_1.getProp)(t, "prototype.attributes");
2272
2247
  const _attributes = _templatizeKeys(attributes, basePath, "name");
2273
2248
  /* istanbul ignore else */
@@ -2325,7 +2300,7 @@ function _templatizeKeys(obj, basePath, suffix) {
2325
2300
  const objKeys = Object.keys(obj);
2326
2301
  /* istanbul ignore else */
2327
2302
  if (objKeys && objKeys.length > 0) {
2328
- objKeys.forEach(k => {
2303
+ objKeys.forEach((k) => {
2329
2304
  _obj[_templatize(basePath, k, suffix)] = obj[k];
2330
2305
  });
2331
2306
  }
@@ -2343,12 +2318,8 @@ exports._templatizeKeys = _templatizeKeys;
2343
2318
  function _templatizeTimeInfo(layer, basePath) {
2344
2319
  if (layer.timeInfo) {
2345
2320
  const timeInfo = layer.timeInfo;
2346
- const timeProps = [
2347
- "endTimeField",
2348
- "startTimeField",
2349
- "trackIdField"
2350
- ];
2351
- timeProps.forEach(t => {
2321
+ const timeProps = ["endTimeField", "startTimeField", "trackIdField"];
2322
+ timeProps.forEach((t) => {
2352
2323
  if (timeInfo[t] !== "") {
2353
2324
  _templatizeProperty(timeInfo, t, basePath, "name");
2354
2325
  }
@@ -2390,22 +2361,19 @@ function _getNameMapping(fieldInfos, id) {
2390
2361
  const fInfo = fieldInfos[id];
2391
2362
  const nameMapping = {};
2392
2363
  const newFields = fInfo.newFields;
2393
- const newFieldNames = newFields
2394
- ? newFields.map((f) => f.name)
2395
- : [];
2364
+ const newFieldNames = newFields ? newFields.map((f) => f.name) : [];
2396
2365
  const sourceFields = fInfo.sourceFields || [];
2397
2366
  sourceFields.forEach((field) => {
2398
2367
  const lName = String(field.name).toLowerCase();
2399
2368
  newFields.forEach((f) => {
2400
2369
  // Names can change more than case
2401
- if (newFieldNames.indexOf(field.name) === -1 &&
2402
- newFieldNames.indexOf(lName) === -1) {
2370
+ if (newFieldNames.indexOf(field.name) === -1 && newFieldNames.indexOf(lName) === -1) {
2403
2371
  // If both new (f) and source (field) aliases are defined and are equal, map the source name to the new name
2404
2372
  if (f.alias && f.alias === field.alias) {
2405
2373
  nameMapping[lName] = {
2406
2374
  name: f.name,
2407
2375
  alias: f.alias,
2408
- type: f.type ? f.type : ""
2376
+ type: f.type ? f.type : "",
2409
2377
  };
2410
2378
  }
2411
2379
  }
@@ -2413,7 +2381,7 @@ function _getNameMapping(fieldInfos, id) {
2413
2381
  nameMapping[lName] = {
2414
2382
  name: f.name,
2415
2383
  alias: f.alias ? f.alias : "",
2416
- type: f.type ? f.type : ""
2384
+ type: f.type ? f.type : "",
2417
2385
  };
2418
2386
  }
2419
2387
  });
@@ -2423,10 +2391,9 @@ function _getNameMapping(fieldInfos, id) {
2423
2391
  const efi = JSON.parse(JSON.stringify(fInfo.editFieldsInfo));
2424
2392
  const newEfi = JSON.parse(JSON.stringify(fInfo.newEditFieldsInfo));
2425
2393
  const nameMappingKeys = Object.keys(nameMapping);
2426
- Object.keys(efi).forEach(k => {
2394
+ Object.keys(efi).forEach((k) => {
2427
2395
  const lowerEfi = String(efi[k]).toLowerCase();
2428
- if ((nameMappingKeys.indexOf(lowerEfi) === -1 ||
2429
- nameMapping[lowerEfi].name !== newEfi[k]) &&
2396
+ if ((nameMappingKeys.indexOf(lowerEfi) === -1 || nameMapping[lowerEfi].name !== newEfi[k]) &&
2430
2397
  newFieldNames.indexOf(lowerEfi) > -1) {
2431
2398
  // Only add delete fields if source schema changes allowed
2432
2399
  /* istanbul ignore else */
@@ -2450,7 +2417,7 @@ function _getNameMapping(fieldInfos, id) {
2450
2417
  nameMapping[lowerEfi] = {
2451
2418
  name: newEfi[k],
2452
2419
  alias: sourceEfiField && sourceEfiField.alias ? sourceEfiField.alias : "",
2453
- type: sourceEfiField && sourceEfiField.type ? sourceEfiField.type : ""
2420
+ type: sourceEfiField && sourceEfiField.type ? sourceEfiField.type : "",
2454
2421
  };
2455
2422
  }
2456
2423
  });