@esri/solution-deployer 6.0.2-alpha.23 → 6.0.2-alpha.250423
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/package.json +14 -14
- package/dist/cjs/deploySolutionFromTemplate.d.ts +0 -55
- package/dist/cjs/deploySolutionFromTemplate.js +0 -334
- package/dist/cjs/deploySolutionFromTemplate.js.map +0 -1
- package/dist/cjs/deploySolutionItems.d.ts +0 -224
- package/dist/cjs/deploySolutionItems.js +0 -876
- package/dist/cjs/deploySolutionItems.js.map +0 -1
- package/dist/cjs/deployer.d.ts +0 -34
- package/dist/cjs/deployer.js +0 -99
- package/dist/cjs/deployer.js.map +0 -1
- package/dist/cjs/deployerUtils.d.ts +0 -47
- package/dist/cjs/deployerUtils.js +0 -120
- package/dist/cjs/deployerUtils.js.map +0 -1
- package/dist/cjs/helpers/post-process.d.ts +0 -29
- package/dist/cjs/helpers/post-process.js +0 -63
- package/dist/cjs/helpers/post-process.js.map +0 -1
- package/dist/cjs/helpers/share-templates-to-groups.d.ts +0 -24
- package/dist/cjs/helpers/share-templates-to-groups.js +0 -65
- package/dist/cjs/helpers/share-templates-to-groups.js.map +0 -1
- package/dist/cjs/helpers/sortTemplates.d.ts +0 -23
- package/dist/cjs/helpers/sortTemplates.js +0 -14
- package/dist/cjs/helpers/sortTemplates.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -24
- package/dist/cjs/index.js +0 -28
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/module-map.d.ts +0 -23
- package/dist/cjs/module-map.js +0 -234
- package/dist/cjs/module-map.js.map +0 -1
- package/dist/esm/deploySolutionFromTemplate.d.ts +0 -55
- package/dist/esm/deploySolutionFromTemplate.js +0 -319
- package/dist/esm/deploySolutionFromTemplate.js.map +0 -1
- package/dist/esm/deploySolutionItems.d.ts +0 -224
- package/dist/esm/deploySolutionItems.js +0 -853
- package/dist/esm/deploySolutionItems.js.map +0 -1
- package/dist/esm/deployer.d.ts +0 -34
- package/dist/esm/deployer.js +0 -94
- package/dist/esm/deployer.js.map +0 -1
- package/dist/esm/deployerUtils.d.ts +0 -47
- package/dist/esm/deployerUtils.js +0 -112
- package/dist/esm/deployerUtils.js.map +0 -1
- package/dist/esm/helpers/post-process.d.ts +0 -29
- package/dist/esm/helpers/post-process.js +0 -59
- package/dist/esm/helpers/post-process.js.map +0 -1
- package/dist/esm/helpers/share-templates-to-groups.d.ts +0 -24
- package/dist/esm/helpers/share-templates-to-groups.js +0 -61
- package/dist/esm/helpers/share-templates-to-groups.js.map +0 -1
- package/dist/esm/helpers/sortTemplates.d.ts +0 -23
- package/dist/esm/helpers/sortTemplates.js +0 -10
- package/dist/esm/helpers/sortTemplates.js.map +0 -1
- package/dist/esm/index.d.ts +0 -24
- package/dist/esm/index.js +0 -25
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/module-map.d.ts +0 -23
- package/dist/esm/module-map.js +0 -230
- package/dist/esm/module-map.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esri/solution-deployer",
|
|
3
|
-
"version": "6.0.2-alpha.
|
|
3
|
+
"version": "6.0.2-alpha.250423",
|
|
4
4
|
"description": "Manages the deployment of a Solution for @esri/solution.js.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
"@esri/arcgis-rest-request": "^3.7.0",
|
|
30
30
|
"@esri/arcgis-rest-service-admin": "^3.7.0",
|
|
31
31
|
"@esri/hub-common": "^15.23.2",
|
|
32
|
-
"@esri/solution-common": "^6.0.2-alpha.
|
|
33
|
-
"@esri/solution-feature-layer": "^6.0.2-alpha.
|
|
34
|
-
"@esri/solution-file": "^6.0.2-alpha.
|
|
35
|
-
"@esri/solution-form": "^6.0.2-alpha.
|
|
36
|
-
"@esri/solution-group": "^6.0.2-alpha.
|
|
37
|
-
"@esri/solution-hub-types": "^6.0.2-alpha.
|
|
38
|
-
"@esri/solution-simple-types": "^6.0.2-alpha.
|
|
39
|
-
"@esri/solution-storymap": "^6.0.2-alpha.
|
|
40
|
-
"@esri/solution-velocity": "^6.0.2-alpha.
|
|
41
|
-
"@esri/solution-web-experience": "^6.0.2-alpha.
|
|
42
|
-
"@esri/solution-web-tool": "^6.0.2-alpha.
|
|
43
|
-
"@esri/solution-workflow": "^6.0.2-alpha.
|
|
32
|
+
"@esri/solution-common": "^6.0.2-alpha.250423",
|
|
33
|
+
"@esri/solution-feature-layer": "^6.0.2-alpha.250423",
|
|
34
|
+
"@esri/solution-file": "^6.0.2-alpha.250423",
|
|
35
|
+
"@esri/solution-form": "^6.0.2-alpha.250423",
|
|
36
|
+
"@esri/solution-group": "^6.0.2-alpha.250423",
|
|
37
|
+
"@esri/solution-hub-types": "^6.0.2-alpha.250423",
|
|
38
|
+
"@esri/solution-simple-types": "^6.0.2-alpha.250423",
|
|
39
|
+
"@esri/solution-storymap": "^6.0.2-alpha.250423",
|
|
40
|
+
"@esri/solution-velocity": "^6.0.2-alpha.250423",
|
|
41
|
+
"@esri/solution-web-experience": "^6.0.2-alpha.250423",
|
|
42
|
+
"@esri/solution-web-tool": "^6.0.2-alpha.250423",
|
|
43
|
+
"@esri/solution-workflow": "^6.0.2-alpha.250423",
|
|
44
44
|
"tslib": "1.14.1"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
@@ -95,5 +95,5 @@
|
|
|
95
95
|
"esri",
|
|
96
96
|
"ES6"
|
|
97
97
|
],
|
|
98
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "168358265a32ec53b2a718e3809001b15cddffe1"
|
|
99
99
|
}
|
|
@@ -1,55 +0,0 @@
|
|
|
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
|
-
import * as common from "@esri/solution-common";
|
|
17
|
-
export declare function deploySolutionFromTemplate(templateSolutionId: string, solutionTemplateBase: any, solutionTemplateData: any, authentication: common.UserSession, options: common.IDeploySolutionOptions): Promise<string>;
|
|
18
|
-
/**
|
|
19
|
-
* Add templates for the items that were automatically created by workflow
|
|
20
|
-
*
|
|
21
|
-
* @param preProcessResponse response from pre processing of workflow items
|
|
22
|
-
* @param solutionTemplateData the current solution template data that will be used to show item details
|
|
23
|
-
*/
|
|
24
|
-
export declare function _handleWorkflowManagedTemplates(preProcessResponse: common.IPreProcessWorkflowTemplatesResponse, solutionTemplateData: any): void;
|
|
25
|
-
/**
|
|
26
|
-
* Add source-id to items/groups typeKeywords
|
|
27
|
-
*
|
|
28
|
-
* @param template the array of solution data templates
|
|
29
|
-
* @private
|
|
30
|
-
*/
|
|
31
|
-
export declare function _addSourceId(templates: common.IItemTemplate[]): common.IItemTemplate[];
|
|
32
|
-
/**
|
|
33
|
-
* Update the deployOptions with the group properties
|
|
34
|
-
*
|
|
35
|
-
* @param deployOptions
|
|
36
|
-
* @param sourceInfo
|
|
37
|
-
* @param authentication
|
|
38
|
-
* @param isGroup Boolean to indicate if the files are associated with a group or item
|
|
39
|
-
* @private
|
|
40
|
-
*/
|
|
41
|
-
export declare function _applySourceToDeployOptions(deployOptions: common.IDeploySolutionOptions, solutionTemplateBase: any, templateDictionary: any, authentication: common.UserSession): common.IDeploySolutionOptions;
|
|
42
|
-
export declare function _replaceParamVariables(solutionTemplateData: any, templateDictionary: any): void;
|
|
43
|
-
export declare function _updateProp(template: common.IItemTemplate, path: string, lookup: string, templateDictionary: any): common.IItemTemplate;
|
|
44
|
-
export declare function _checkedReplaceAll(template: string, oldValue: string, newValue: string): string;
|
|
45
|
-
export declare function _getPortalBaseUrl(portalResponse: common.IPortal, authentication: common.UserSession): string;
|
|
46
|
-
export declare function _updateGroupReferences(itemTemplates: any[], templateDictionary: any): any[];
|
|
47
|
-
export declare function _purgeTemplateProperties(itemTemplate: any): any;
|
|
48
|
-
/**
|
|
49
|
-
* Returns a match of a supplied id with the suffix ".itemId" in the template dictionary.
|
|
50
|
-
*
|
|
51
|
-
* @param id Id to look for
|
|
52
|
-
* @param templateDictionary Hash mapping property names to replacement values
|
|
53
|
-
* @returns Match in template dictionary or original id
|
|
54
|
-
*/
|
|
55
|
-
export declare function _getNewItemId(id: string, templateDictionary: any): string;
|
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/** @license
|
|
3
|
-
* Copyright 2018 Esri
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports._getNewItemId = exports._purgeTemplateProperties = exports._updateGroupReferences = exports._getPortalBaseUrl = exports._checkedReplaceAll = exports._updateProp = exports._replaceParamVariables = exports._applySourceToDeployOptions = exports._addSourceId = exports._handleWorkflowManagedTemplates = exports.deploySolutionFromTemplate = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
-
const common = tslib_1.__importStar(require("@esri/solution-common"));
|
|
21
|
-
const deployItems = tslib_1.__importStar(require("./deploySolutionItems"));
|
|
22
|
-
const hub_common_1 = require("@esri/hub-common");
|
|
23
|
-
const post_process_1 = require("./helpers/post-process");
|
|
24
|
-
const sortTemplates_1 = require("./helpers/sortTemplates");
|
|
25
|
-
// NOTE: Moved to separate file to allow stubbing in main deploySolution tests
|
|
26
|
-
async function deploySolutionFromTemplate(templateSolutionId, solutionTemplateBase, solutionTemplateData, authentication, options) {
|
|
27
|
-
options.storageVersion = common.extractSolutionVersion(solutionTemplateData);
|
|
28
|
-
// It is possible to provide a separate authentication for the source
|
|
29
|
-
const storageAuthentication = options.storageAuthentication
|
|
30
|
-
? options.storageAuthentication
|
|
31
|
-
: authentication;
|
|
32
|
-
// Replacement dictionary and high-level deployment ids for cleanup
|
|
33
|
-
// TODO: Extract all templateDictionary prep into a separate function
|
|
34
|
-
const templateDictionary = options.templateDictionary ?? {};
|
|
35
|
-
const preProcessResponse = common.preprocessWorkflowTemplates(solutionTemplateData.templates, templateDictionary);
|
|
36
|
-
solutionTemplateData.templates = preProcessResponse.deployTemplates;
|
|
37
|
-
_applySourceToDeployOptions(options, solutionTemplateBase, templateDictionary, authentication);
|
|
38
|
-
if (options.additionalTypeKeywords) {
|
|
39
|
-
solutionTemplateBase.typeKeywords = [].concat(solutionTemplateBase.typeKeywords, options.additionalTypeKeywords);
|
|
40
|
-
}
|
|
41
|
-
// Get the thumbnail file
|
|
42
|
-
let thumbFilename = "thumbnail";
|
|
43
|
-
let thumbDef = Promise.resolve(null);
|
|
44
|
-
if (!options.thumbnail && options.thumbnailurl) {
|
|
45
|
-
// Figure out the thumbnail's filename
|
|
46
|
-
thumbFilename = common.getFilenameFromUrl(options.thumbnailurl) || thumbFilename;
|
|
47
|
-
const thumbnailurl = common.appendQueryParam(options.thumbnailurl, "w=400");
|
|
48
|
-
delete options.thumbnailurl;
|
|
49
|
-
// Fetch the thumbnail
|
|
50
|
-
thumbDef = common.getBlobAsFile(thumbnailurl, thumbFilename, storageAuthentication, [400]);
|
|
51
|
-
}
|
|
52
|
-
_replaceParamVariables(solutionTemplateData, templateDictionary);
|
|
53
|
-
// Get information about deployment environment
|
|
54
|
-
const environResponses = await Promise.all([
|
|
55
|
-
common.getPortal("", authentication),
|
|
56
|
-
common.getPortalUrls(authentication),
|
|
57
|
-
common.getUser(authentication),
|
|
58
|
-
common.getFoldersAndGroups(authentication),
|
|
59
|
-
thumbDef,
|
|
60
|
-
]);
|
|
61
|
-
const [portalResponse, portalUrlsResponse, userResponse, foldersAndGroupsResponse, thumbnailFile] = environResponses;
|
|
62
|
-
if (!options.thumbnail && thumbnailFile) {
|
|
63
|
-
options.thumbnail = thumbnailFile;
|
|
64
|
-
}
|
|
65
|
-
// update template items with source-itemId type keyword
|
|
66
|
-
solutionTemplateData.templates = _addSourceId(solutionTemplateData.templates);
|
|
67
|
-
templateDictionary.isPortal = portalResponse.isPortal;
|
|
68
|
-
templateDictionary.organization = Object.assign(templateDictionary.organization || {}, portalResponse);
|
|
69
|
-
// TODO: Add more computed properties here
|
|
70
|
-
// portal: portalResponse
|
|
71
|
-
// orgextent as bbox for assignment onto items
|
|
72
|
-
// more info in #266 https://github.com/Esri/solution.js/issues/266
|
|
73
|
-
templateDictionary.portalUrls = portalUrlsResponse.urls;
|
|
74
|
-
templateDictionary.portalBaseUrl = _getPortalBaseUrl(portalResponse, authentication);
|
|
75
|
-
templateDictionary.user = userResponse;
|
|
76
|
-
templateDictionary.user.folders = foldersAndGroupsResponse.folders;
|
|
77
|
-
templateDictionary.user.groups = foldersAndGroupsResponse.groups.filter((group) => group.owner === templateDictionary.user.username);
|
|
78
|
-
// Add information needed for workflow manager
|
|
79
|
-
const user = await common.getUser(authentication);
|
|
80
|
-
templateDictionary.workflowBaseUrl = await common.getWorkflowBaseURL(authentication, portalResponse, user.orgId);
|
|
81
|
-
// if we have tracking views and the user is not admin or the org doesn't support tracking an error is thrown
|
|
82
|
-
common.setLocationTrackingEnabled(portalResponse, userResponse, templateDictionary, solutionTemplateData.templates);
|
|
83
|
-
const trackingOwnerPromise = common.getTackingServiceOwner(templateDictionary, authentication);
|
|
84
|
-
// Create a folder to hold the deployed solution. We use the solution name, appending a sequential
|
|
85
|
-
// suffix if the folder exists, e.g.,
|
|
86
|
-
// * Manage Right of Way Activities
|
|
87
|
-
// * Manage Right of Way Activities 1
|
|
88
|
-
// * Manage Right of Way Activities 2
|
|
89
|
-
const folderPromise = common.createUniqueFolder(solutionTemplateBase.title, templateDictionary, authentication);
|
|
90
|
-
// Apply the portal extents to the solution
|
|
91
|
-
const portalExtent = portalResponse.defaultExtent;
|
|
92
|
-
const extentsPromise = common.convertExtentWithFallback(portalExtent, undefined, { wkid: 4326 }, portalResponse.helperServices.geometry.url, authentication);
|
|
93
|
-
// Await completion of async actions: folder creation & extents conversion
|
|
94
|
-
const folderExtentsResponses = await Promise.all([folderPromise, extentsPromise, trackingOwnerPromise]);
|
|
95
|
-
const [folderResponse, wgs84Extent, trackingOwnerResponse] = folderExtentsResponses;
|
|
96
|
-
const deployedFolderId = folderResponse.folder.id;
|
|
97
|
-
templateDictionary.folderId = deployedFolderId;
|
|
98
|
-
templateDictionary.solutionItemExtent =
|
|
99
|
-
wgs84Extent.xmin + "," + wgs84Extent.ymin + "," + wgs84Extent.xmax + "," + wgs84Extent.ymax;
|
|
100
|
-
// Hub Solutions depend on organization defaultExtentBBox as a nested array not a string
|
|
101
|
-
templateDictionary.organization.defaultExtentBBox = [
|
|
102
|
-
[wgs84Extent.xmin, wgs84Extent.ymin],
|
|
103
|
-
[wgs84Extent.xmax, wgs84Extent.ymax],
|
|
104
|
-
];
|
|
105
|
-
// update templateDictionary to indicate if the user owns the tracking service
|
|
106
|
-
// this will affect how we handle group sharing
|
|
107
|
-
/* istanbul ignore else */
|
|
108
|
-
if (templateDictionary.locationTrackingEnabled) {
|
|
109
|
-
common.setCreateProp(templateDictionary, "locationTracking.userIsOwner", trackingOwnerResponse);
|
|
110
|
-
}
|
|
111
|
-
let deployedSolutionId;
|
|
112
|
-
if (!options.dontCreateSolutionItem) {
|
|
113
|
-
// Create a deployed Solution item
|
|
114
|
-
solutionTemplateBase.categories = []; // we don't want to carry over categories from the template
|
|
115
|
-
const createSolutionItemBase = {
|
|
116
|
-
...common.sanitizeJSON(solutionTemplateBase),
|
|
117
|
-
type: "Solution",
|
|
118
|
-
typeKeywords: ["Solution"],
|
|
119
|
-
};
|
|
120
|
-
if (options.additionalTypeKeywords) {
|
|
121
|
-
createSolutionItemBase.typeKeywords = ["Solution"].concat(options.additionalTypeKeywords);
|
|
122
|
-
}
|
|
123
|
-
// Create deployed solution item
|
|
124
|
-
createSolutionItemBase.thumbnail = options.thumbnail;
|
|
125
|
-
const createSolutionResponse = await common.createItemWithData(createSolutionItemBase, {}, authentication, deployedFolderId);
|
|
126
|
-
deployedSolutionId = createSolutionResponse.id;
|
|
127
|
-
// Protect the solution item
|
|
128
|
-
const protectOptions = {
|
|
129
|
-
id: deployedSolutionId,
|
|
130
|
-
authentication,
|
|
131
|
-
};
|
|
132
|
-
await common.protectItem(protectOptions);
|
|
133
|
-
// TODO: Attach the whole solution model so we can
|
|
134
|
-
// have stuff like `{{solution.item.title}}
|
|
135
|
-
templateDictionary.solutionItemId = deployedSolutionId;
|
|
136
|
-
solutionTemplateBase.id = deployedSolutionId;
|
|
137
|
-
solutionTemplateBase.tryitUrl = _checkedReplaceAll(solutionTemplateBase.tryitUrl, templateSolutionId, deployedSolutionId);
|
|
138
|
-
solutionTemplateBase.url = _checkedReplaceAll(solutionTemplateBase.url, templateSolutionId, deployedSolutionId);
|
|
139
|
-
}
|
|
140
|
-
// Handle the contained item templates
|
|
141
|
-
const clonedSolutionsResponse = await deployItems.deploySolutionItems(storageAuthentication.portal, templateSolutionId, solutionTemplateData.templates, storageAuthentication, templateDictionary, deployedSolutionId, authentication, options);
|
|
142
|
-
solutionTemplateData.templates = solutionTemplateData.templates.map((itemTemplate) => {
|
|
143
|
-
// Update ids present in template dictionary
|
|
144
|
-
itemTemplate.itemId = common.getProp(templateDictionary, `${itemTemplate.itemId}.itemId`);
|
|
145
|
-
// Update the dependencies hash to point to the new item ids
|
|
146
|
-
itemTemplate.dependencies = itemTemplate.dependencies.map((id) => (0, hub_common_1.getWithDefault)(templateDictionary, `${id}.itemId`, id));
|
|
147
|
-
return itemTemplate;
|
|
148
|
-
});
|
|
149
|
-
// Sort the templates into build order, which is provided by clonedSolutionsResponse
|
|
150
|
-
(0, sortTemplates_1.sortTemplates)(solutionTemplateData.templates, clonedSolutionsResponse.map((response) => response.id));
|
|
151
|
-
// Wrap up with post-processing, in which we deal with groups and cycle remnants
|
|
152
|
-
await (0, post_process_1.postProcess)(deployedSolutionId, solutionTemplateData.templates, clonedSolutionsResponse, authentication, templateDictionary);
|
|
153
|
-
if (!options.dontCreateSolutionItem) {
|
|
154
|
-
// Update solution item using internal representation & and the updated data JSON
|
|
155
|
-
solutionTemplateBase.typeKeywords = [].concat(solutionTemplateBase.typeKeywords, ["Deployed"]);
|
|
156
|
-
const iTemplateKeyword = solutionTemplateBase.typeKeywords.indexOf("Template");
|
|
157
|
-
/* istanbul ignore else */
|
|
158
|
-
if (iTemplateKeyword >= 0) {
|
|
159
|
-
solutionTemplateBase.typeKeywords.splice(iTemplateKeyword, 1);
|
|
160
|
-
}
|
|
161
|
-
solutionTemplateData.templates = solutionTemplateData.templates.map((itemTemplate) => _purgeTemplateProperties(itemTemplate));
|
|
162
|
-
_handleWorkflowManagedTemplates(preProcessResponse, solutionTemplateData);
|
|
163
|
-
solutionTemplateData.templates = _updateGroupReferences(solutionTemplateData.templates, templateDictionary);
|
|
164
|
-
solutionTemplateData.templates = common.updateWorkflowTemplateIds(solutionTemplateData.templates, templateDictionary);
|
|
165
|
-
// Update solution items data using template dictionary, and then update the
|
|
166
|
-
// itemId & dependencies in each item template
|
|
167
|
-
solutionTemplateBase.data = common.replaceInTemplate(solutionTemplateData, templateDictionary);
|
|
168
|
-
// Write any user defined params to the solution
|
|
169
|
-
/* istanbul ignore else */
|
|
170
|
-
if (templateDictionary.params) {
|
|
171
|
-
solutionTemplateBase.data.params = templateDictionary.params;
|
|
172
|
-
}
|
|
173
|
-
await common.updateItem(solutionTemplateBase, authentication, deployedFolderId);
|
|
174
|
-
}
|
|
175
|
-
return solutionTemplateBase.id;
|
|
176
|
-
}
|
|
177
|
-
exports.deploySolutionFromTemplate = deploySolutionFromTemplate;
|
|
178
|
-
/**
|
|
179
|
-
* Add templates for the items that were automatically created by workflow
|
|
180
|
-
*
|
|
181
|
-
* @param preProcessResponse response from pre processing of workflow items
|
|
182
|
-
* @param solutionTemplateData the current solution template data that will be used to show item details
|
|
183
|
-
*/
|
|
184
|
-
function _handleWorkflowManagedTemplates(preProcessResponse, solutionTemplateData) {
|
|
185
|
-
preProcessResponse.workflowManagedTemplates.forEach((itemTemplate) => {
|
|
186
|
-
solutionTemplateData.templates.push(_purgeTemplateProperties(itemTemplate));
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
exports._handleWorkflowManagedTemplates = _handleWorkflowManagedTemplates;
|
|
190
|
-
/**
|
|
191
|
-
* Add source-id to items/groups typeKeywords
|
|
192
|
-
*
|
|
193
|
-
* @param template the array of solution data templates
|
|
194
|
-
* @private
|
|
195
|
-
*/
|
|
196
|
-
function _addSourceId(templates) {
|
|
197
|
-
return templates.map((template) => {
|
|
198
|
-
/* istanbul ignore else */
|
|
199
|
-
if (template.item) {
|
|
200
|
-
const typeKeywords = template.item.typeKeywords || [];
|
|
201
|
-
typeKeywords.push("source-" + template.itemId);
|
|
202
|
-
template.item.typeKeywords = typeKeywords;
|
|
203
|
-
}
|
|
204
|
-
return template;
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
exports._addSourceId = _addSourceId;
|
|
208
|
-
/**
|
|
209
|
-
* Update the deployOptions with the group properties
|
|
210
|
-
*
|
|
211
|
-
* @param deployOptions
|
|
212
|
-
* @param sourceInfo
|
|
213
|
-
* @param authentication
|
|
214
|
-
* @param isGroup Boolean to indicate if the files are associated with a group or item
|
|
215
|
-
* @private
|
|
216
|
-
*/
|
|
217
|
-
function _applySourceToDeployOptions(deployOptions, solutionTemplateBase, templateDictionary, authentication) {
|
|
218
|
-
// Deploy a solution from the template's contents,
|
|
219
|
-
// using the template's information as defaults for the deployed solution item
|
|
220
|
-
["title", "snippet", "description", "tags"].forEach((prop) => {
|
|
221
|
-
deployOptions[prop] = deployOptions[prop] ?? solutionTemplateBase[prop];
|
|
222
|
-
if (deployOptions[prop]) {
|
|
223
|
-
solutionTemplateBase[prop] = deployOptions[prop];
|
|
224
|
-
// carry these options forward on the templateDict
|
|
225
|
-
templateDictionary[prop] = deployOptions[prop];
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
if (!deployOptions.thumbnailurl && solutionTemplateBase.thumbnail) {
|
|
229
|
-
// Get the full path to the thumbnail
|
|
230
|
-
deployOptions.thumbnailurl = common.generateSourceThumbnailUrl(authentication.portal, solutionTemplateBase.id, solutionTemplateBase.thumbnail);
|
|
231
|
-
delete solutionTemplateBase.thumbnail;
|
|
232
|
-
}
|
|
233
|
-
return deployOptions;
|
|
234
|
-
}
|
|
235
|
-
exports._applySourceToDeployOptions = _applySourceToDeployOptions;
|
|
236
|
-
//TODO: function doc
|
|
237
|
-
function _replaceParamVariables(solutionTemplateData, templateDictionary) {
|
|
238
|
-
// a custom params object can be passed in with the options to deploy a solution
|
|
239
|
-
// in most cases we can defer to the item type handlers to use these values
|
|
240
|
-
// for variable replacement
|
|
241
|
-
// for spatial reference specifically we need to replace up front so the default extent
|
|
242
|
-
// logic can execute as expected
|
|
243
|
-
solutionTemplateData.templates = solutionTemplateData.templates.map((template) => {
|
|
244
|
-
// can't do this as it causes other values that don't exist in the dict yet to revert to defaults they may have defined
|
|
245
|
-
// return common.replaceInTemplate(template, templateDictionary);
|
|
246
|
-
/* istanbul ignore else */
|
|
247
|
-
if (template.type === "Feature Service") {
|
|
248
|
-
const paramsLookup = "params.";
|
|
249
|
-
const wkidItemPath = "item.spatialReference.wkid";
|
|
250
|
-
template = _updateProp(template, wkidItemPath, paramsLookup, templateDictionary);
|
|
251
|
-
const wkidServicePath = "properties.service.spatialReference.wkid";
|
|
252
|
-
template = _updateProp(template, wkidServicePath, paramsLookup, templateDictionary);
|
|
253
|
-
}
|
|
254
|
-
return template;
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
exports._replaceParamVariables = _replaceParamVariables;
|
|
258
|
-
//TODO: function doc
|
|
259
|
-
function _updateProp(template, path, lookup, templateDictionary) {
|
|
260
|
-
const wkid = common.getProp(template, path);
|
|
261
|
-
/* istanbul ignore else */
|
|
262
|
-
if (wkid && typeof wkid === "string" && wkid.indexOf(lookup) > -1) {
|
|
263
|
-
common.setProp(template, path, common.replaceInTemplate(wkid, templateDictionary));
|
|
264
|
-
}
|
|
265
|
-
return template;
|
|
266
|
-
}
|
|
267
|
-
exports._updateProp = _updateProp;
|
|
268
|
-
//TODO: function doc
|
|
269
|
-
function _checkedReplaceAll(template, oldValue, newValue) {
|
|
270
|
-
let newTemplate;
|
|
271
|
-
if (template && template.indexOf(oldValue) > -1) {
|
|
272
|
-
const re = new RegExp(oldValue, "g");
|
|
273
|
-
newTemplate = template.replace(re, newValue);
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
newTemplate = template;
|
|
277
|
-
}
|
|
278
|
-
return newTemplate;
|
|
279
|
-
}
|
|
280
|
-
exports._checkedReplaceAll = _checkedReplaceAll;
|
|
281
|
-
//TODO: function doc
|
|
282
|
-
function _getPortalBaseUrl(portalResponse, authentication) {
|
|
283
|
-
// As of Spring 2020, only HTTPS (see
|
|
284
|
-
// https://www.esri.com/arcgis-blog/products/product/administration/2019-arcgis-transport-security-improvements/)
|
|
285
|
-
const scheme = "https"; // portalResponse.allSSL ? "https" : "http";
|
|
286
|
-
const urlKey = common.getProp(portalResponse, "urlKey");
|
|
287
|
-
const customBaseUrl = common.getProp(portalResponse, "customBaseUrl");
|
|
288
|
-
const enterpriseBaseUrl = common.getProp(portalResponse, "portalHostname");
|
|
289
|
-
return urlKey && customBaseUrl
|
|
290
|
-
? `${scheme}://${urlKey}.${customBaseUrl}`
|
|
291
|
-
: enterpriseBaseUrl
|
|
292
|
-
? `${scheme}://${enterpriseBaseUrl}`
|
|
293
|
-
: authentication.portal.replace("/sharing/rest", "");
|
|
294
|
-
}
|
|
295
|
-
exports._getPortalBaseUrl = _getPortalBaseUrl;
|
|
296
|
-
//TODO: function doc
|
|
297
|
-
function _updateGroupReferences(itemTemplates, templateDictionary) {
|
|
298
|
-
const groupIds = itemTemplates.reduce((result, t) => {
|
|
299
|
-
if (t.type === "Group") {
|
|
300
|
-
result.push(t.itemId);
|
|
301
|
-
}
|
|
302
|
-
return result;
|
|
303
|
-
}, []);
|
|
304
|
-
Object.keys(templateDictionary).forEach((k) => {
|
|
305
|
-
const newId = templateDictionary[k].itemId;
|
|
306
|
-
if (groupIds.indexOf(newId) > -1) {
|
|
307
|
-
itemTemplates.forEach((t) => {
|
|
308
|
-
t.groups = t.groups.map((id) => (id === k ? newId : id));
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
return itemTemplates;
|
|
313
|
-
}
|
|
314
|
-
exports._updateGroupReferences = _updateGroupReferences;
|
|
315
|
-
//TODO: function doc
|
|
316
|
-
function _purgeTemplateProperties(itemTemplate) {
|
|
317
|
-
const retainProps = ["itemId", "type", "dependencies", "groups"];
|
|
318
|
-
const deleteProps = Object.keys(itemTemplate).filter((k) => retainProps.indexOf(k) < 0);
|
|
319
|
-
common.deleteProps(itemTemplate, deleteProps);
|
|
320
|
-
return itemTemplate;
|
|
321
|
-
}
|
|
322
|
-
exports._purgeTemplateProperties = _purgeTemplateProperties;
|
|
323
|
-
/**
|
|
324
|
-
* Returns a match of a supplied id with the suffix ".itemId" in the template dictionary.
|
|
325
|
-
*
|
|
326
|
-
* @param id Id to look for
|
|
327
|
-
* @param templateDictionary Hash mapping property names to replacement values
|
|
328
|
-
* @returns Match in template dictionary or original id
|
|
329
|
-
*/
|
|
330
|
-
function _getNewItemId(id, templateDictionary) {
|
|
331
|
-
return common.getProp(templateDictionary, id + ".itemId") ?? id;
|
|
332
|
-
}
|
|
333
|
-
exports._getNewItemId = _getNewItemId;
|
|
334
|
-
//# sourceMappingURL=deploySolutionFromTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploySolutionFromTemplate.js","sourceRoot":"","sources":["../../src/deploySolutionFromTemplate.ts"],"names":[],"mappings":"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"}
|