@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.
- package/dist/cjs/completeItem.d.ts +29 -29
- package/dist/cjs/completeItem.js +81 -81
- package/dist/cjs/create-hub-request-options.d.ts +29 -29
- package/dist/cjs/create-hub-request-options.js +63 -63
- package/dist/cjs/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
- package/dist/cjs/deleteHelpers/deleteEmptyGroups.js +41 -41
- package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
- package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js +96 -96
- package/dist/cjs/deleteHelpers/deleteSolutionContents.d.ts +38 -38
- package/dist/cjs/deleteHelpers/deleteSolutionContents.js +129 -129
- package/dist/cjs/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
- package/dist/cjs/deleteHelpers/deleteSolutionFolder.js +78 -78
- package/dist/cjs/deleteHelpers/deleteSolutionItem.d.ts +30 -30
- package/dist/cjs/deleteHelpers/deleteSolutionItem.js +53 -53
- package/dist/cjs/deleteHelpers/index.d.ts +22 -22
- package/dist/cjs/deleteHelpers/index.js +25 -25
- package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
- package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.js +33 -33
- package/dist/cjs/deleteHelpers/removeItems.d.ts +34 -34
- package/dist/cjs/deleteHelpers/removeItems.js +111 -111
- package/dist/cjs/deleteHelpers/reportProgress.d.ts +27 -27
- package/dist/cjs/deleteHelpers/reportProgress.js +45 -45
- package/dist/cjs/deleteSolution.d.ts +55 -55
- package/dist/cjs/deleteSolution.js +106 -106
- package/dist/cjs/dependencies.d.ts +26 -26
- package/dist/cjs/dependencies.js +170 -170
- package/dist/cjs/featureServiceHelpers.d.ts +791 -791
- package/dist/cjs/featureServiceHelpers.js +2420 -2420
- package/dist/cjs/generalHelpers.d.ts +392 -385
- package/dist/cjs/generalHelpers.js +857 -854
- package/dist/cjs/generalHelpers.js.map +1 -1
- package/dist/cjs/get-subscription-info.d.ts +27 -27
- package/dist/cjs/get-subscription-info.js +38 -38
- package/dist/cjs/getDeletableSolutionInfo.d.ts +29 -29
- package/dist/cjs/getDeletableSolutionInfo.js +52 -52
- package/dist/cjs/getItemTypeAbbrev.d.ts +19 -19
- package/dist/cjs/getItemTypeAbbrev.js +184 -184
- package/dist/cjs/getSolutionSummary.d.ts +27 -27
- package/dist/cjs/getSolutionSummary.js +100 -100
- package/dist/cjs/index.d.ts +43 -44
- package/dist/cjs/index.js +46 -47
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces.d.ts +1334 -1334
- package/dist/cjs/interfaces.js +74 -74
- package/dist/cjs/interfaces.js.map +1 -1
- package/dist/cjs/libConnectors.d.ts +73 -73
- package/dist/cjs/libConnectors.js +114 -114
- package/dist/cjs/migrations/apply-schema.d.ts +24 -24
- package/dist/cjs/migrations/apply-schema.js +35 -35
- package/dist/cjs/migrations/is-legacy-solution.d.ts +24 -24
- package/dist/cjs/migrations/is-legacy-solution.js +39 -39
- package/dist/cjs/migrations/upgrade-three-dot-one.d.ts +27 -27
- package/dist/cjs/migrations/upgrade-three-dot-one.js +48 -48
- package/dist/cjs/migrations/upgrade-three-dot-zero.d.ts +27 -27
- package/dist/cjs/migrations/upgrade-three-dot-zero.js +42 -42
- package/dist/cjs/migrations/upgrade-two-dot-five.d.ts +24 -24
- package/dist/cjs/migrations/upgrade-two-dot-five.js +72 -72
- package/dist/cjs/migrations/upgrade-two-dot-four.d.ts +24 -24
- package/dist/cjs/migrations/upgrade-two-dot-four.js +71 -71
- package/dist/cjs/migrations/upgrade-two-dot-one.d.ts +7 -7
- package/dist/cjs/migrations/upgrade-two-dot-one.js +38 -38
- package/dist/cjs/migrations/upgrade-two-dot-seven.d.ts +23 -23
- package/dist/cjs/migrations/upgrade-two-dot-seven.js +57 -57
- package/dist/cjs/migrations/upgrade-two-dot-six.d.ts +27 -27
- package/dist/cjs/migrations/upgrade-two-dot-six.js +60 -60
- package/dist/cjs/migrations/upgrade-two-dot-three.d.ts +23 -23
- package/dist/cjs/migrations/upgrade-two-dot-three.js +54 -54
- package/dist/cjs/migrations/upgrade-two-dot-two.d.ts +23 -23
- package/dist/cjs/migrations/upgrade-two-dot-two.js +57 -57
- package/dist/cjs/migrations/upgrade-two-dot-zero.d.ts +44 -44
- package/dist/cjs/migrations/upgrade-two-dot-zero.js +94 -94
- package/dist/cjs/migrator.d.ts +25 -25
- package/dist/cjs/migrator.js +76 -76
- package/dist/cjs/resourceHelpers.d.ts +191 -191
- package/dist/cjs/resourceHelpers.js +383 -390
- package/dist/cjs/resourceHelpers.js.map +1 -1
- package/dist/cjs/resources/add-resource-from-blob.d.ts +26 -26
- package/dist/cjs/resources/add-resource-from-blob.js +51 -51
- package/dist/cjs/resources/addMetadataFromBlob.d.ts +25 -25
- package/dist/cjs/resources/addMetadataFromBlob.js +42 -42
- package/dist/cjs/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
- package/dist/cjs/resources/convert-item-resource-to-storage-resource.js +69 -69
- package/dist/cjs/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
- package/dist/cjs/resources/convert-storage-resource-to-item-resource.js +69 -69
- package/dist/cjs/resources/copyAssociatedFiles.d.ts +67 -67
- package/dist/cjs/resources/copyAssociatedFiles.js +301 -301
- package/dist/cjs/resources/copyDataIntoItem.d.ts +33 -33
- package/dist/cjs/resources/copyDataIntoItem.js +61 -62
- package/dist/cjs/resources/copyDataIntoItem.js.map +1 -1
- package/dist/cjs/resources/copyMetadataIntoItem.d.ts +26 -26
- package/dist/cjs/resources/copyMetadataIntoItem.js +45 -45
- package/dist/cjs/resources/copyResourceIntoZip.d.ts +33 -33
- package/dist/cjs/resources/copyResourceIntoZip.js +77 -77
- package/dist/cjs/resources/copyZipIntoItem.d.ts +25 -25
- package/dist/cjs/resources/copyZipIntoItem.js +53 -53
- package/dist/cjs/resources/createCopyResults.d.ts +25 -25
- package/dist/cjs/resources/createCopyResults.js +35 -35
- package/dist/cjs/resources/get-blob.d.ts +26 -26
- package/dist/cjs/resources/get-blob.js +26 -26
- package/dist/cjs/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
- package/dist/cjs/resources/getItemResourcesFilesFromPaths.js +48 -48
- package/dist/cjs/resources/getItemResourcesPaths.d.ts +26 -26
- package/dist/cjs/resources/getItemResourcesPaths.js +72 -72
- package/dist/cjs/resources/index.d.ts +29 -29
- package/dist/cjs/resources/index.js +32 -32
- package/dist/cjs/resources/solution-resource.d.ts +35 -35
- package/dist/cjs/resources/solution-resource.js +30 -30
- package/dist/cjs/resources/solution-resource.js.map +1 -1
- package/dist/cjs/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
- package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js +145 -145
- package/dist/cjs/restHelpers.d.ts +586 -585
- package/dist/cjs/restHelpers.js +1888 -1883
- package/dist/cjs/restHelpers.js.map +1 -1
- package/dist/cjs/restHelpersGet.d.ts +288 -288
- package/dist/cjs/restHelpersGet.js +803 -803
- package/dist/cjs/sharing/index.d.ts +16 -16
- package/dist/cjs/sharing/index.js +19 -19
- package/dist/cjs/sharing/share-item-to-groups.d.ts +26 -26
- package/dist/cjs/sharing/share-item-to-groups.js +43 -43
- package/dist/cjs/templatization.d.ts +139 -139
- package/dist/cjs/templatization.js +313 -313
- package/dist/cjs/trackingHelpers.d.ts +116 -116
- package/dist/cjs/trackingHelpers.js +216 -216
- package/dist/cjs/velocityHelpers.d.ts +57 -57
- package/dist/cjs/velocityHelpers.js +134 -134
- package/dist/cjs/workforceHelpers.d.ts +115 -115
- package/dist/cjs/workforceHelpers.js +746 -746
- package/dist/cjs/workforceHelpers.js.map +1 -1
- package/dist/esm/completeItem.d.ts +29 -29
- package/dist/esm/completeItem.js +76 -76
- package/dist/esm/create-hub-request-options.d.ts +29 -29
- package/dist/esm/create-hub-request-options.js +59 -59
- package/dist/esm/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
- package/dist/esm/deleteHelpers/deleteEmptyGroups.js +37 -37
- package/dist/esm/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
- package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js +91 -91
- package/dist/esm/deleteHelpers/deleteSolutionContents.d.ts +38 -38
- package/dist/esm/deleteHelpers/deleteSolutionContents.js +124 -124
- package/dist/esm/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
- package/dist/esm/deleteHelpers/deleteSolutionFolder.js +73 -73
- package/dist/esm/deleteHelpers/deleteSolutionItem.d.ts +30 -30
- package/dist/esm/deleteHelpers/deleteSolutionItem.js +48 -48
- package/dist/esm/deleteHelpers/index.d.ts +22 -22
- package/dist/esm/deleteHelpers/index.js +22 -22
- package/dist/esm/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
- package/dist/esm/deleteHelpers/reconstructBuildOrderIds.js +28 -28
- package/dist/esm/deleteHelpers/removeItems.d.ts +34 -34
- package/dist/esm/deleteHelpers/removeItems.js +106 -106
- package/dist/esm/deleteHelpers/reportProgress.d.ts +27 -27
- package/dist/esm/deleteHelpers/reportProgress.js +41 -41
- package/dist/esm/deleteSolution.d.ts +55 -55
- package/dist/esm/deleteSolution.js +100 -100
- package/dist/esm/dependencies.d.ts +26 -26
- package/dist/esm/dependencies.js +166 -166
- package/dist/esm/featureServiceHelpers.d.ts +791 -791
- package/dist/esm/featureServiceHelpers.js +2336 -2336
- package/dist/esm/generalHelpers.d.ts +392 -385
- package/dist/esm/generalHelpers.js +810 -808
- package/dist/esm/generalHelpers.js.map +1 -1
- package/dist/esm/get-subscription-info.d.ts +27 -27
- package/dist/esm/get-subscription-info.js +34 -34
- package/dist/esm/getDeletableSolutionInfo.d.ts +29 -29
- package/dist/esm/getDeletableSolutionInfo.js +47 -47
- package/dist/esm/getItemTypeAbbrev.d.ts +19 -19
- package/dist/esm/getItemTypeAbbrev.js +180 -180
- package/dist/esm/getSolutionSummary.d.ts +27 -27
- package/dist/esm/getSolutionSummary.js +95 -95
- package/dist/esm/index.d.ts +43 -44
- package/dist/esm/index.js +43 -44
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces.d.ts +1334 -1334
- package/dist/esm/interfaces.js +70 -70
- package/dist/esm/libConnectors.d.ts +73 -73
- package/dist/esm/libConnectors.js +104 -104
- package/dist/esm/migrations/apply-schema.d.ts +24 -24
- package/dist/esm/migrations/apply-schema.js +31 -31
- package/dist/esm/migrations/is-legacy-solution.d.ts +24 -24
- package/dist/esm/migrations/is-legacy-solution.js +35 -35
- package/dist/esm/migrations/upgrade-three-dot-one.d.ts +27 -27
- package/dist/esm/migrations/upgrade-three-dot-one.js +44 -44
- package/dist/esm/migrations/upgrade-three-dot-zero.d.ts +27 -27
- package/dist/esm/migrations/upgrade-three-dot-zero.js +38 -38
- package/dist/esm/migrations/upgrade-two-dot-five.d.ts +24 -24
- package/dist/esm/migrations/upgrade-two-dot-five.js +68 -68
- package/dist/esm/migrations/upgrade-two-dot-four.d.ts +24 -24
- package/dist/esm/migrations/upgrade-two-dot-four.js +67 -67
- package/dist/esm/migrations/upgrade-two-dot-one.d.ts +7 -7
- package/dist/esm/migrations/upgrade-two-dot-one.js +34 -34
- package/dist/esm/migrations/upgrade-two-dot-seven.d.ts +23 -23
- package/dist/esm/migrations/upgrade-two-dot-seven.js +53 -53
- package/dist/esm/migrations/upgrade-two-dot-six.d.ts +27 -27
- package/dist/esm/migrations/upgrade-two-dot-six.js +56 -56
- package/dist/esm/migrations/upgrade-two-dot-three.d.ts +23 -23
- package/dist/esm/migrations/upgrade-two-dot-three.js +50 -50
- package/dist/esm/migrations/upgrade-two-dot-two.d.ts +23 -23
- package/dist/esm/migrations/upgrade-two-dot-two.js +53 -53
- package/dist/esm/migrations/upgrade-two-dot-zero.d.ts +44 -44
- package/dist/esm/migrations/upgrade-two-dot-zero.js +87 -87
- package/dist/esm/migrator.d.ts +25 -25
- package/dist/esm/migrator.js +72 -72
- package/dist/esm/resourceHelpers.d.ts +191 -191
- package/dist/esm/resourceHelpers.js +364 -371
- package/dist/esm/resourceHelpers.js.map +1 -1
- package/dist/esm/resources/add-resource-from-blob.d.ts +26 -26
- package/dist/esm/resources/add-resource-from-blob.js +47 -47
- package/dist/esm/resources/addMetadataFromBlob.d.ts +25 -25
- package/dist/esm/resources/addMetadataFromBlob.js +38 -38
- package/dist/esm/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
- package/dist/esm/resources/convert-item-resource-to-storage-resource.js +65 -65
- package/dist/esm/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
- package/dist/esm/resources/convert-storage-resource-to-item-resource.js +65 -65
- package/dist/esm/resources/copyAssociatedFiles.d.ts +67 -67
- package/dist/esm/resources/copyAssociatedFiles.js +293 -293
- package/dist/esm/resources/copyDataIntoItem.d.ts +33 -33
- package/dist/esm/resources/copyDataIntoItem.js +56 -57
- package/dist/esm/resources/copyDataIntoItem.js.map +1 -1
- package/dist/esm/resources/copyMetadataIntoItem.d.ts +26 -26
- package/dist/esm/resources/copyMetadataIntoItem.js +41 -41
- package/dist/esm/resources/copyResourceIntoZip.d.ts +33 -33
- package/dist/esm/resources/copyResourceIntoZip.js +72 -72
- package/dist/esm/resources/copyZipIntoItem.d.ts +25 -25
- package/dist/esm/resources/copyZipIntoItem.js +49 -49
- package/dist/esm/resources/createCopyResults.d.ts +25 -25
- package/dist/esm/resources/createCopyResults.js +31 -31
- package/dist/esm/resources/get-blob.d.ts +26 -26
- package/dist/esm/resources/get-blob.js +22 -22
- package/dist/esm/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
- package/dist/esm/resources/getItemResourcesFilesFromPaths.js +44 -44
- package/dist/esm/resources/getItemResourcesPaths.d.ts +26 -26
- package/dist/esm/resources/getItemResourcesPaths.js +68 -68
- package/dist/esm/resources/index.d.ts +29 -29
- package/dist/esm/resources/index.js +29 -29
- package/dist/esm/resources/solution-resource.d.ts +35 -35
- package/dist/esm/resources/solution-resource.js +27 -27
- package/dist/esm/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
- package/dist/esm/resources/transform-resource-paths-to-solution-resources.js +137 -137
- package/dist/esm/restHelpers.d.ts +586 -585
- package/dist/esm/restHelpers.js +1827 -1823
- package/dist/esm/restHelpers.js.map +1 -1
- package/dist/esm/restHelpersGet.d.ts +288 -288
- package/dist/esm/restHelpersGet.js +763 -763
- package/dist/esm/sharing/index.d.ts +16 -16
- package/dist/esm/sharing/index.js +16 -16
- package/dist/esm/sharing/share-item-to-groups.d.ts +26 -26
- package/dist/esm/sharing/share-item-to-groups.js +39 -39
- package/dist/esm/templatization.d.ts +139 -139
- package/dist/esm/templatization.js +293 -293
- package/dist/esm/trackingHelpers.d.ts +116 -116
- package/dist/esm/trackingHelpers.js +204 -204
- package/dist/esm/velocityHelpers.d.ts +57 -57
- package/dist/esm/velocityHelpers.js +128 -128
- package/dist/esm/workforceHelpers.d.ts +115 -115
- package/dist/esm/workforceHelpers.js +717 -717
- package/dist/esm/workforceHelpers.js.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/polyfills.d.ts +0 -40
- package/dist/cjs/polyfills.js +0 -98
- package/dist/cjs/polyfills.js.map +0 -1
- package/dist/esm/polyfills.d.ts +0 -40
- package/dist/esm/polyfills.js +0 -93
- package/dist/esm/polyfills.js.map +0 -1
|
@@ -1,294 +1,294 @@
|
|
|
1
|
-
/** @license
|
|
2
|
-
* Copyright 2018 Esri
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Provides common functions involving the adlib library.
|
|
18
|
-
*
|
|
19
|
-
* @module templatization
|
|
20
|
-
*/
|
|
21
|
-
import { unique } from "@esri/hub-common";
|
|
22
|
-
import { adlib } from "adlib";
|
|
23
|
-
import { createShortId, getProp } from "./generalHelpers";
|
|
24
|
-
// ------------------------------------------------------------------------------------------------------------------ //
|
|
25
|
-
/**
|
|
26
|
-
* A parameterized server name to replace the organization URL in a Web Mapping Application's URL to
|
|
27
|
-
* itself; name has to be acceptable to AGOL, otherwise it discards the URL, so substitution must be
|
|
28
|
-
* made before attempting to create the item.
|
|
29
|
-
*
|
|
30
|
-
* @private
|
|
31
|
-
*/
|
|
32
|
-
export const SERVER_NAME = "portalBaseUrl";
|
|
33
|
-
/**
|
|
34
|
-
* A parameterized geometry server name
|
|
35
|
-
*
|
|
36
|
-
* @private
|
|
37
|
-
*/
|
|
38
|
-
export const GEOMETRY_SERVER_NAME = "organization.helperServices.geometry.url";
|
|
39
|
-
/**
|
|
40
|
-
* A parameterized geocode server name
|
|
41
|
-
*
|
|
42
|
-
* @private
|
|
43
|
-
*/
|
|
44
|
-
export const GEOCODE_SERVER_NAME = "organization.helperServices.geocode:getDefaultLocatorURL";
|
|
45
|
-
/**
|
|
46
|
-
* A parameterized network analyst server name
|
|
47
|
-
*
|
|
48
|
-
* @private
|
|
49
|
-
*/
|
|
50
|
-
export const NA_SERVER_NAME = "organization.helperServices.route.url";
|
|
51
|
-
/**
|
|
52
|
-
* A parameterized network analyst server name
|
|
53
|
-
*
|
|
54
|
-
* @private
|
|
55
|
-
*/
|
|
56
|
-
export const PRINT_SERVER_NAME = "organization.helperServices.printTask.url";
|
|
57
|
-
export const TRANSFORMS = {
|
|
58
|
-
getDefaultLocatorURL(key, val) {
|
|
59
|
-
// get the url from the template dictionary or return the default template variable when it's not present
|
|
60
|
-
// this fallback is needed when we detemplatize living atlas layers as a part of the create process
|
|
61
|
-
return val ? val[0].url : `{{${GEOCODE_SERVER_NAME}}}`;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Wraps double brackets around the supplied term.
|
|
66
|
-
*
|
|
67
|
-
* @param term Term to be wrapped, e.g., SERVER_NAME's "portalBaseUrl"
|
|
68
|
-
* @returns Wrapped term, e.g., "\{\{portalBaseUrl\}\}"
|
|
69
|
-
*/
|
|
70
|
-
export function placeholder(term) {
|
|
71
|
-
return "{{" + term + "}}";
|
|
72
|
-
}
|
|
73
|
-
export function createInitializedGroupTemplate(itemInfo) {
|
|
74
|
-
const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
|
|
75
|
-
itemTemplate.item = {
|
|
76
|
-
...itemTemplate.item,
|
|
77
|
-
description: itemInfo.description,
|
|
78
|
-
snippet: itemInfo.snippet,
|
|
79
|
-
tags: itemInfo.tags,
|
|
80
|
-
typeKeywords: itemInfo.typeKeywords,
|
|
81
|
-
title: itemInfo.title,
|
|
82
|
-
thumbnail: itemInfo.thumbnail
|
|
83
|
-
};
|
|
84
|
-
return itemTemplate;
|
|
85
|
-
}
|
|
86
|
-
export function createInitializedItemTemplate(itemInfo) {
|
|
87
|
-
const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
|
|
88
|
-
itemTemplate.item = {
|
|
89
|
-
...itemTemplate.item,
|
|
90
|
-
accessInformation: itemInfo.accessInformation,
|
|
91
|
-
categories: itemInfo.categories,
|
|
92
|
-
contentStatus: itemInfo.contentStatus,
|
|
93
|
-
created: itemInfo.created,
|
|
94
|
-
culture: itemInfo.culture,
|
|
95
|
-
description: itemInfo.description,
|
|
96
|
-
extent: getDefaultExtent(itemInfo),
|
|
97
|
-
licenseInfo: itemInfo.licenseInfo,
|
|
98
|
-
modified: itemInfo.modified,
|
|
99
|
-
name: itemInfo.name,
|
|
100
|
-
origUrl: itemInfo.origUrl,
|
|
101
|
-
properties: itemInfo.properties,
|
|
102
|
-
snippet: itemInfo.snippet,
|
|
103
|
-
spatialReference: undefined,
|
|
104
|
-
tags: itemInfo.tags,
|
|
105
|
-
thumbnail: itemInfo.thumbnail,
|
|
106
|
-
title: itemInfo.title,
|
|
107
|
-
typeKeywords: itemInfo.typeKeywords,
|
|
108
|
-
url: itemInfo.url
|
|
109
|
-
};
|
|
110
|
-
return itemTemplate;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Creates an empty template.
|
|
114
|
-
*
|
|
115
|
-
* @param id AGO id of item
|
|
116
|
-
* @param type AGO item type; defaults to ""
|
|
117
|
-
* @returns Empty template containing supplied id, optional type, and a key created using the function createShortId()
|
|
118
|
-
*/
|
|
119
|
-
export function createPlaceholderTemplate(id, type = "") {
|
|
120
|
-
return {
|
|
121
|
-
itemId: id,
|
|
122
|
-
type,
|
|
123
|
-
key: createShortId(),
|
|
124
|
-
item: {
|
|
125
|
-
id,
|
|
126
|
-
type
|
|
127
|
-
},
|
|
128
|
-
data: {},
|
|
129
|
-
resources: [],
|
|
130
|
-
dependencies: [],
|
|
131
|
-
groups: [],
|
|
132
|
-
properties: {},
|
|
133
|
-
estimatedDeploymentCostFactor: 2
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Extracts the version of a solution from its data section.
|
|
138
|
-
*
|
|
139
|
-
* @param itemData Data section of the solution as JSON
|
|
140
|
-
* @returns Zero-based version number
|
|
141
|
-
*/
|
|
142
|
-
export function extractSolutionVersion(itemData) {
|
|
143
|
-
let version = getProp(itemData, "metadata.version");
|
|
144
|
-
if (!version) {
|
|
145
|
-
return 0;
|
|
146
|
-
}
|
|
147
|
-
if (typeof version === "string") {
|
|
148
|
-
version = parseInt(itemData.metadata.version, 10);
|
|
149
|
-
return isNaN(version) ? 0 : version;
|
|
150
|
-
}
|
|
151
|
-
return version;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Finds index of template by id in a list of templates.
|
|
155
|
-
*
|
|
156
|
-
* @param templates A collection of AGO item templates to search
|
|
157
|
-
* @param id AGO id of template to find
|
|
158
|
-
* @returns Offset of of matching template or -1 if not found
|
|
159
|
-
* @private
|
|
160
|
-
*/
|
|
161
|
-
export function findTemplateIndexInList(templates, id) {
|
|
162
|
-
const baseId = id;
|
|
163
|
-
return templates.findIndex(template => {
|
|
164
|
-
return baseId === template.itemId;
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Finds template by id in a list of templates.
|
|
169
|
-
*
|
|
170
|
-
* @param templates A collection of AGO item templates to search
|
|
171
|
-
* @param id AGO id of template to find
|
|
172
|
-
* @returns Matching template or null
|
|
173
|
-
*/
|
|
174
|
-
export function findTemplateInList(templates, id) {
|
|
175
|
-
const iTemplate = findTemplateIndexInList(templates, id);
|
|
176
|
-
return iTemplate >= 0 ? templates[iTemplate] : null;
|
|
177
|
-
}
|
|
178
|
-
export function hasUnresolvedVariables(data) {
|
|
179
|
-
const getUnresolved = (v) => {
|
|
180
|
-
return v ? JSON.stringify(v).match(/{{.+?}}/gim) || [] : [];
|
|
181
|
-
};
|
|
182
|
-
return getUnresolved(data).length > 0;
|
|
183
|
-
}
|
|
184
|
-
export function getIdsInTemplatesList(templates) {
|
|
185
|
-
return templates.map(template => template.itemId);
|
|
186
|
-
}
|
|
187
|
-
export function getDefaultExtent(itemInfo) {
|
|
188
|
-
const ext = itemInfo.extent;
|
|
189
|
-
return ext === null || (Array.isArray(ext) && ext.length === 0)
|
|
190
|
-
? ext
|
|
191
|
-
: "{{solutionItemExtent}}";
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Removes a template entry in a list of templates.
|
|
195
|
-
*
|
|
196
|
-
* @param templates A collection of AGO item templates
|
|
197
|
-
* @param id Id of item in templates list to find; if not found, no replacement is done
|
|
198
|
-
* @private
|
|
199
|
-
*/
|
|
200
|
-
export function removeTemplate(templates, id) {
|
|
201
|
-
const i = findTemplateIndexInList(templates, id);
|
|
202
|
-
if (i >= 0) {
|
|
203
|
-
templates.splice(i, 1);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Replaces symbols in a template.
|
|
208
|
-
*
|
|
209
|
-
* @param template Template to check for replacements; template is modified by this function
|
|
210
|
-
* @param replacements Hash of facts: org URL, adlib replacements, deferreds for dependencies
|
|
211
|
-
* @returns template is returned after updating it
|
|
212
|
-
*/
|
|
213
|
-
export function replaceInTemplate(template, replacements) {
|
|
214
|
-
return adlib(template, replacements, TRANSFORMS);
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Replaces a template entry in a list of templates.
|
|
218
|
-
*
|
|
219
|
-
* @param templates A collection of AGO item templates
|
|
220
|
-
* @param id Id of item in templates list to find; if not found, no replacement is done
|
|
221
|
-
* @param template Replacement template
|
|
222
|
-
* @returns True if replacement was made
|
|
223
|
-
* @private
|
|
224
|
-
*/
|
|
225
|
-
export function replaceTemplate(templates, id, template) {
|
|
226
|
-
const i = findTemplateIndexInList(templates, id);
|
|
227
|
-
if (i >= 0) {
|
|
228
|
-
templates[i] = template;
|
|
229
|
-
return true;
|
|
230
|
-
}
|
|
231
|
-
return false;
|
|
232
|
-
}
|
|
233
|
-
export function templatizeTerm(context, term, suffix = "") {
|
|
234
|
-
if (!context) {
|
|
235
|
-
return context;
|
|
236
|
-
}
|
|
237
|
-
const pattern = new RegExp(term, "g");
|
|
238
|
-
return context.replace(pattern, "{{" + term + suffix + "}}");
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Helper function to templatize value and make sure its converted to lowercase
|
|
242
|
-
*
|
|
243
|
-
* @param basePath path used to de-templatize while deploying
|
|
244
|
-
* @param value to be converted to lower case for lookup while deploying
|
|
245
|
-
*/
|
|
246
|
-
export function templatizeToLowerCase(basePath, value) {
|
|
247
|
-
if (value.startsWith("{{")) {
|
|
248
|
-
return value;
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
return String(templatizeTerm(basePath, basePath, "." + String(value).toLowerCase()));
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* using each field from the datasource replace any occurances
|
|
256
|
-
* of the field name with the templatized value
|
|
257
|
-
* Needs to account for:
|
|
258
|
-
* "NAME"
|
|
259
|
-
* "NAME NAME2"
|
|
260
|
-
* "NAME ASC"
|
|
261
|
-
* "\{NAME\}"
|
|
262
|
-
* "(NAME = value AND NAME2 = someOtherValue)"
|
|
263
|
-
*/
|
|
264
|
-
export function templatizeFieldReferences(obj, fields, basePath, templatizeKeys = false) {
|
|
265
|
-
let objString = JSON.stringify(obj);
|
|
266
|
-
fields.forEach(field => {
|
|
267
|
-
let expression = "\\b" + field.name + "\\b(?![.])(?![}]{2})";
|
|
268
|
-
if (!templatizeKeys) {
|
|
269
|
-
expression += '(?!":)';
|
|
270
|
-
}
|
|
271
|
-
objString = objString.replace(
|
|
272
|
-
// needs to ensure that its not already been templatized
|
|
273
|
-
// cannot be followed by .name and cannot be proceeded by fieldName. in case of {{01922837.name.name}} and cannot be followed by }}
|
|
274
|
-
new RegExp(expression, "g"), templatizeToLowerCase(basePath, field.name + ".name"));
|
|
275
|
-
});
|
|
276
|
-
return JSON.parse(objString);
|
|
277
|
-
}
|
|
278
|
-
export function templatizeIds(obj) {
|
|
279
|
-
// Convert object to string
|
|
280
|
-
let objString = JSON.stringify(obj);
|
|
281
|
-
// Find ids
|
|
282
|
-
const idTest = /[0-9A-F]{32}/gim;
|
|
283
|
-
if (obj && idTest.test(objString)) {
|
|
284
|
-
// Templatize ids
|
|
285
|
-
const ids = objString.match(idTest).filter(unique);
|
|
286
|
-
ids.forEach(id => {
|
|
287
|
-
const regEx = new RegExp(id, "gm");
|
|
288
|
-
objString = objString.replace(regEx, "{{" + id + ".itemId}}");
|
|
289
|
-
});
|
|
290
|
-
obj = JSON.parse(objString);
|
|
291
|
-
}
|
|
292
|
-
return obj;
|
|
293
|
-
}
|
|
1
|
+
/** @license
|
|
2
|
+
* Copyright 2018 Esri
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Provides common functions involving the adlib library.
|
|
18
|
+
*
|
|
19
|
+
* @module templatization
|
|
20
|
+
*/
|
|
21
|
+
import { unique } from "@esri/hub-common";
|
|
22
|
+
import { adlib } from "adlib";
|
|
23
|
+
import { createShortId, getProp } from "./generalHelpers";
|
|
24
|
+
// ------------------------------------------------------------------------------------------------------------------ //
|
|
25
|
+
/**
|
|
26
|
+
* A parameterized server name to replace the organization URL in a Web Mapping Application's URL to
|
|
27
|
+
* itself; name has to be acceptable to AGOL, otherwise it discards the URL, so substitution must be
|
|
28
|
+
* made before attempting to create the item.
|
|
29
|
+
*
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
export const SERVER_NAME = "portalBaseUrl";
|
|
33
|
+
/**
|
|
34
|
+
* A parameterized geometry server name
|
|
35
|
+
*
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
export const GEOMETRY_SERVER_NAME = "organization.helperServices.geometry.url";
|
|
39
|
+
/**
|
|
40
|
+
* A parameterized geocode server name
|
|
41
|
+
*
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
export const GEOCODE_SERVER_NAME = "organization.helperServices.geocode:getDefaultLocatorURL";
|
|
45
|
+
/**
|
|
46
|
+
* A parameterized network analyst server name
|
|
47
|
+
*
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
export const NA_SERVER_NAME = "organization.helperServices.route.url";
|
|
51
|
+
/**
|
|
52
|
+
* A parameterized network analyst server name
|
|
53
|
+
*
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
export const PRINT_SERVER_NAME = "organization.helperServices.printTask.url";
|
|
57
|
+
export const TRANSFORMS = {
|
|
58
|
+
getDefaultLocatorURL(key, val) {
|
|
59
|
+
// get the url from the template dictionary or return the default template variable when it's not present
|
|
60
|
+
// this fallback is needed when we detemplatize living atlas layers as a part of the create process
|
|
61
|
+
return val ? val[0].url : `{{${GEOCODE_SERVER_NAME}}}`;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Wraps double brackets around the supplied term.
|
|
66
|
+
*
|
|
67
|
+
* @param term Term to be wrapped, e.g., SERVER_NAME's "portalBaseUrl"
|
|
68
|
+
* @returns Wrapped term, e.g., "\{\{portalBaseUrl\}\}"
|
|
69
|
+
*/
|
|
70
|
+
export function placeholder(term) {
|
|
71
|
+
return "{{" + term + "}}";
|
|
72
|
+
}
|
|
73
|
+
export function createInitializedGroupTemplate(itemInfo) {
|
|
74
|
+
const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
|
|
75
|
+
itemTemplate.item = {
|
|
76
|
+
...itemTemplate.item,
|
|
77
|
+
description: itemInfo.description,
|
|
78
|
+
snippet: itemInfo.snippet,
|
|
79
|
+
tags: itemInfo.tags,
|
|
80
|
+
typeKeywords: itemInfo.typeKeywords,
|
|
81
|
+
title: itemInfo.title,
|
|
82
|
+
thumbnail: itemInfo.thumbnail
|
|
83
|
+
};
|
|
84
|
+
return itemTemplate;
|
|
85
|
+
}
|
|
86
|
+
export function createInitializedItemTemplate(itemInfo) {
|
|
87
|
+
const itemTemplate = createPlaceholderTemplate(itemInfo.id, itemInfo.type);
|
|
88
|
+
itemTemplate.item = {
|
|
89
|
+
...itemTemplate.item,
|
|
90
|
+
accessInformation: itemInfo.accessInformation,
|
|
91
|
+
categories: itemInfo.categories,
|
|
92
|
+
contentStatus: itemInfo.contentStatus,
|
|
93
|
+
created: itemInfo.created,
|
|
94
|
+
culture: itemInfo.culture,
|
|
95
|
+
description: itemInfo.description,
|
|
96
|
+
extent: getDefaultExtent(itemInfo),
|
|
97
|
+
licenseInfo: itemInfo.licenseInfo,
|
|
98
|
+
modified: itemInfo.modified,
|
|
99
|
+
name: itemInfo.name,
|
|
100
|
+
origUrl: itemInfo.origUrl,
|
|
101
|
+
properties: itemInfo.properties,
|
|
102
|
+
snippet: itemInfo.snippet,
|
|
103
|
+
spatialReference: undefined,
|
|
104
|
+
tags: itemInfo.tags,
|
|
105
|
+
thumbnail: itemInfo.thumbnail,
|
|
106
|
+
title: itemInfo.title,
|
|
107
|
+
typeKeywords: itemInfo.typeKeywords,
|
|
108
|
+
url: itemInfo.url
|
|
109
|
+
};
|
|
110
|
+
return itemTemplate;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Creates an empty template.
|
|
114
|
+
*
|
|
115
|
+
* @param id AGO id of item
|
|
116
|
+
* @param type AGO item type; defaults to ""
|
|
117
|
+
* @returns Empty template containing supplied id, optional type, and a key created using the function createShortId()
|
|
118
|
+
*/
|
|
119
|
+
export function createPlaceholderTemplate(id, type = "") {
|
|
120
|
+
return {
|
|
121
|
+
itemId: id,
|
|
122
|
+
type,
|
|
123
|
+
key: createShortId(),
|
|
124
|
+
item: {
|
|
125
|
+
id,
|
|
126
|
+
type
|
|
127
|
+
},
|
|
128
|
+
data: {},
|
|
129
|
+
resources: [],
|
|
130
|
+
dependencies: [],
|
|
131
|
+
groups: [],
|
|
132
|
+
properties: {},
|
|
133
|
+
estimatedDeploymentCostFactor: 2
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Extracts the version of a solution from its data section.
|
|
138
|
+
*
|
|
139
|
+
* @param itemData Data section of the solution as JSON
|
|
140
|
+
* @returns Zero-based version number
|
|
141
|
+
*/
|
|
142
|
+
export function extractSolutionVersion(itemData) {
|
|
143
|
+
let version = getProp(itemData, "metadata.version");
|
|
144
|
+
if (!version) {
|
|
145
|
+
return 0;
|
|
146
|
+
}
|
|
147
|
+
if (typeof version === "string") {
|
|
148
|
+
version = parseInt(itemData.metadata.version, 10);
|
|
149
|
+
return isNaN(version) ? 0 : version;
|
|
150
|
+
}
|
|
151
|
+
return version;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Finds index of template by id in a list of templates.
|
|
155
|
+
*
|
|
156
|
+
* @param templates A collection of AGO item templates to search
|
|
157
|
+
* @param id AGO id of template to find
|
|
158
|
+
* @returns Offset of of matching template or -1 if not found
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
export function findTemplateIndexInList(templates, id) {
|
|
162
|
+
const baseId = id;
|
|
163
|
+
return templates.findIndex(template => {
|
|
164
|
+
return baseId === template.itemId;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Finds template by id in a list of templates.
|
|
169
|
+
*
|
|
170
|
+
* @param templates A collection of AGO item templates to search
|
|
171
|
+
* @param id AGO id of template to find
|
|
172
|
+
* @returns Matching template or null
|
|
173
|
+
*/
|
|
174
|
+
export function findTemplateInList(templates, id) {
|
|
175
|
+
const iTemplate = findTemplateIndexInList(templates, id);
|
|
176
|
+
return iTemplate >= 0 ? templates[iTemplate] : null;
|
|
177
|
+
}
|
|
178
|
+
export function hasUnresolvedVariables(data) {
|
|
179
|
+
const getUnresolved = (v) => {
|
|
180
|
+
return v ? JSON.stringify(v).match(/{{.+?}}/gim) || [] : [];
|
|
181
|
+
};
|
|
182
|
+
return getUnresolved(data).length > 0;
|
|
183
|
+
}
|
|
184
|
+
export function getIdsInTemplatesList(templates) {
|
|
185
|
+
return templates.map(template => template.itemId);
|
|
186
|
+
}
|
|
187
|
+
export function getDefaultExtent(itemInfo) {
|
|
188
|
+
const ext = itemInfo.extent;
|
|
189
|
+
return ext === null || (Array.isArray(ext) && ext.length === 0)
|
|
190
|
+
? ext
|
|
191
|
+
: "{{solutionItemExtent}}";
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Removes a template entry in a list of templates.
|
|
195
|
+
*
|
|
196
|
+
* @param templates A collection of AGO item templates
|
|
197
|
+
* @param id Id of item in templates list to find; if not found, no replacement is done
|
|
198
|
+
* @private
|
|
199
|
+
*/
|
|
200
|
+
export function removeTemplate(templates, id) {
|
|
201
|
+
const i = findTemplateIndexInList(templates, id);
|
|
202
|
+
if (i >= 0) {
|
|
203
|
+
templates.splice(i, 1);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Replaces symbols in a template.
|
|
208
|
+
*
|
|
209
|
+
* @param template Template to check for replacements; template is modified by this function
|
|
210
|
+
* @param replacements Hash of facts: org URL, adlib replacements, deferreds for dependencies
|
|
211
|
+
* @returns template is returned after updating it
|
|
212
|
+
*/
|
|
213
|
+
export function replaceInTemplate(template, replacements) {
|
|
214
|
+
return adlib(template, replacements, TRANSFORMS);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Replaces a template entry in a list of templates.
|
|
218
|
+
*
|
|
219
|
+
* @param templates A collection of AGO item templates
|
|
220
|
+
* @param id Id of item in templates list to find; if not found, no replacement is done
|
|
221
|
+
* @param template Replacement template
|
|
222
|
+
* @returns True if replacement was made
|
|
223
|
+
* @private
|
|
224
|
+
*/
|
|
225
|
+
export function replaceTemplate(templates, id, template) {
|
|
226
|
+
const i = findTemplateIndexInList(templates, id);
|
|
227
|
+
if (i >= 0) {
|
|
228
|
+
templates[i] = template;
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
export function templatizeTerm(context, term, suffix = "") {
|
|
234
|
+
if (!context) {
|
|
235
|
+
return context;
|
|
236
|
+
}
|
|
237
|
+
const pattern = new RegExp(term, "g");
|
|
238
|
+
return context.replace(pattern, "{{" + term + suffix + "}}");
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Helper function to templatize value and make sure its converted to lowercase
|
|
242
|
+
*
|
|
243
|
+
* @param basePath path used to de-templatize while deploying
|
|
244
|
+
* @param value to be converted to lower case for lookup while deploying
|
|
245
|
+
*/
|
|
246
|
+
export function templatizeToLowerCase(basePath, value) {
|
|
247
|
+
if (value.startsWith("{{")) {
|
|
248
|
+
return value;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
return String(templatizeTerm(basePath, basePath, "." + String(value).toLowerCase()));
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* using each field from the datasource replace any occurances
|
|
256
|
+
* of the field name with the templatized value
|
|
257
|
+
* Needs to account for:
|
|
258
|
+
* "NAME"
|
|
259
|
+
* "NAME NAME2"
|
|
260
|
+
* "NAME ASC"
|
|
261
|
+
* "\{NAME\}"
|
|
262
|
+
* "(NAME = value AND NAME2 = someOtherValue)"
|
|
263
|
+
*/
|
|
264
|
+
export function templatizeFieldReferences(obj, fields, basePath, templatizeKeys = false) {
|
|
265
|
+
let objString = JSON.stringify(obj);
|
|
266
|
+
fields.forEach(field => {
|
|
267
|
+
let expression = "\\b" + field.name + "\\b(?![.])(?![}]{2})";
|
|
268
|
+
if (!templatizeKeys) {
|
|
269
|
+
expression += '(?!":)';
|
|
270
|
+
}
|
|
271
|
+
objString = objString.replace(
|
|
272
|
+
// needs to ensure that its not already been templatized
|
|
273
|
+
// cannot be followed by .name and cannot be proceeded by fieldName. in case of {{01922837.name.name}} and cannot be followed by }}
|
|
274
|
+
new RegExp(expression, "g"), templatizeToLowerCase(basePath, field.name + ".name"));
|
|
275
|
+
});
|
|
276
|
+
return JSON.parse(objString);
|
|
277
|
+
}
|
|
278
|
+
export function templatizeIds(obj) {
|
|
279
|
+
// Convert object to string
|
|
280
|
+
let objString = JSON.stringify(obj);
|
|
281
|
+
// Find ids
|
|
282
|
+
const idTest = /[0-9A-F]{32}/gim;
|
|
283
|
+
if (obj && idTest.test(objString)) {
|
|
284
|
+
// Templatize ids
|
|
285
|
+
const ids = objString.match(idTest).filter(unique);
|
|
286
|
+
ids.forEach(id => {
|
|
287
|
+
const regEx = new RegExp(id, "gm");
|
|
288
|
+
objString = objString.replace(regEx, "{{" + id + ".itemId}}");
|
|
289
|
+
});
|
|
290
|
+
obj = JSON.parse(objString);
|
|
291
|
+
}
|
|
292
|
+
return obj;
|
|
293
|
+
}
|
|
294
294
|
//# sourceMappingURL=templatization.js.map
|