@esri/solution-simple-types 5.2.3 → 5.2.4

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 (51) hide show
  1. package/dist/cjs/dashboard.d.ts +93 -0
  2. package/dist/cjs/dashboard.js +353 -0
  3. package/dist/cjs/dashboard.js.map +1 -0
  4. package/dist/cjs/helpers/convert-item-to-template.d.ts +45 -0
  5. package/dist/cjs/helpers/convert-item-to-template.js +246 -0
  6. package/dist/cjs/helpers/convert-item-to-template.js.map +1 -0
  7. package/dist/cjs/helpers/create-item-from-template.d.ts +17 -0
  8. package/dist/cjs/helpers/create-item-from-template.js +154 -0
  9. package/dist/cjs/helpers/create-item-from-template.js.map +1 -0
  10. package/dist/cjs/helpers/formHelpers.d.ts +25 -0
  11. package/dist/cjs/helpers/formHelpers.js +58 -0
  12. package/dist/cjs/helpers/formHelpers.js.map +1 -0
  13. package/dist/cjs/helpers/notebook-helpers.d.ts +19 -0
  14. package/dist/cjs/helpers/notebook-helpers.js +25 -0
  15. package/dist/cjs/helpers/notebook-helpers.js.map +1 -0
  16. package/dist/cjs/helpers/quickcapture-helpers.d.ts +18 -0
  17. package/dist/cjs/helpers/quickcapture-helpers.js +23 -0
  18. package/dist/cjs/helpers/quickcapture-helpers.js.map +1 -0
  19. package/dist/cjs/helpers/simple-type-helpers.d.ts +18 -0
  20. package/dist/cjs/helpers/simple-type-helpers.js +23 -0
  21. package/dist/cjs/helpers/simple-type-helpers.js.map +1 -0
  22. package/dist/cjs/helpers/update-notebook-data.d.ts +17 -0
  23. package/dist/cjs/helpers/update-notebook-data.js +28 -0
  24. package/dist/cjs/helpers/update-notebook-data.js.map +1 -0
  25. package/dist/cjs/index.d.ts +27 -0
  26. package/dist/cjs/index.js +37 -0
  27. package/dist/cjs/index.js.map +1 -0
  28. package/dist/cjs/notebook.d.ts +65 -0
  29. package/dist/cjs/notebook.js +133 -0
  30. package/dist/cjs/notebook.js.map +1 -0
  31. package/dist/cjs/oic.d.ts +53 -0
  32. package/dist/cjs/oic.js +171 -0
  33. package/dist/cjs/oic.js.map +1 -0
  34. package/dist/cjs/package.json +3 -0
  35. package/dist/cjs/quickcapture.d.ts +75 -0
  36. package/dist/cjs/quickcapture.js +143 -0
  37. package/dist/cjs/quickcapture.js.map +1 -0
  38. package/dist/cjs/simple-types.d.ts +56 -0
  39. package/dist/cjs/simple-types.js +94 -0
  40. package/dist/cjs/simple-types.js.map +1 -0
  41. package/dist/cjs/webmap.d.ts +102 -0
  42. package/dist/cjs/webmap.js +318 -0
  43. package/dist/cjs/webmap.js.map +1 -0
  44. package/dist/cjs/webmappingapplication.d.ts +176 -0
  45. package/dist/cjs/webmappingapplication.js +675 -0
  46. package/dist/cjs/webmappingapplication.js.map +1 -0
  47. package/dist/cjs/workforce.d.ts +34 -0
  48. package/dist/cjs/workforce.js +45 -0
  49. package/dist/cjs/workforce.js.map +1 -0
  50. package/dist/esm/package.json +3 -0
  51. package/package.json +6 -6
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ /** @license
3
+ * Copyright 2020 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._getFormDataFilename = exports._getDataPipelineSourcesAndSinks = exports.convertItemToTemplate = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const common = tslib_1.__importStar(require("@esri/solution-common"));
21
+ const dashboard = tslib_1.__importStar(require("../dashboard"));
22
+ const notebook = tslib_1.__importStar(require("../notebook"));
23
+ const oic = tslib_1.__importStar(require("../oic"));
24
+ const quickcapture = tslib_1.__importStar(require("../quickcapture"));
25
+ const webmap = tslib_1.__importStar(require("../webmap"));
26
+ const webmappingapplication = tslib_1.__importStar(require("../webmappingapplication"));
27
+ const workforce = tslib_1.__importStar(require("../workforce"));
28
+ const formHelpers = tslib_1.__importStar(require("./formHelpers"));
29
+ // ------------------------------------------------------------------------------------------------------------------ //
30
+ /**
31
+ * Converts an item into a template.
32
+ *
33
+ * @param itemInfo Info about the item
34
+ * @param destAuthentication Credentials for requests to the destination organization
35
+ * @param srcAuthentication Credentials for requests to source items
36
+ * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
37
+ *
38
+ * @returns A promise that will resolve when the template has been created
39
+ */
40
+ function convertItemToTemplate(itemInfo, destAuthentication, srcAuthentication, templateDictionary) {
41
+ return new Promise((resolve, reject) => {
42
+ // Init template
43
+ const itemTemplate = common.createInitializedItemTemplate(itemInfo);
44
+ // Templatize item info property values
45
+ itemTemplate.item.id = common.templatizeTerm(itemTemplate.item.id, itemTemplate.item.id, ".itemId");
46
+ // Request related items
47
+ const relatedPromise = common.getItemRelatedItemsInSameDirection(itemTemplate.itemId, "forward", srcAuthentication);
48
+ // Perform type-specific handling
49
+ let dataPromise = Promise.resolve({});
50
+ let resourcesPromise = Promise.resolve([]);
51
+ switch (itemInfo.type) {
52
+ case "Dashboard":
53
+ case "Data Pipeline":
54
+ case "Feature Collection":
55
+ case "Feature Service":
56
+ case "Hub Initiative":
57
+ case "Hub Page":
58
+ case "Hub Site Application":
59
+ case "Insights Model":
60
+ case "Oriented Imagery Catalog":
61
+ case "Project Package":
62
+ case "Workforce Project":
63
+ case "Web Map":
64
+ case "Web Mapping Application":
65
+ case "Web Scene":
66
+ case "Notebook":
67
+ dataPromise = new Promise(resolveJSON => {
68
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
69
+ common
70
+ .getItemDataAsJson(itemTemplate.itemId, srcAuthentication)
71
+ .then(json => resolveJSON(json));
72
+ });
73
+ break;
74
+ case "Form":
75
+ dataPromise = common.getItemDataAsFile(itemTemplate.itemId, itemTemplate.item.name, srcAuthentication);
76
+ break;
77
+ case "QuickCapture Project":
78
+ // Fetch all of the resources to get the config
79
+ resourcesPromise = common.getItemResourcesFiles(itemTemplate.itemId, srcAuthentication);
80
+ break;
81
+ }
82
+ // Errors are handled as resolved empty values; this means that there's no `reject` clause to handle, hence:
83
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
84
+ Promise.all([dataPromise, relatedPromise, resourcesPromise]).then(responses => {
85
+ const [itemDataResponse, relatedItemsResponse, resourcesResponse] = responses;
86
+ // need to pre-process for velocity urls before they could be templatized by other processors
87
+ itemTemplate.data = common.updateVelocityReferences(itemDataResponse, itemInfo.type, templateDictionary);
88
+ const relationships = relatedItemsResponse;
89
+ // Save the mappings to related items & add those items to the dependencies, but not WMA Code Attachments
90
+ itemTemplate.dependencies = [];
91
+ itemTemplate.relatedItems = [];
92
+ relationships.forEach(relationship => {
93
+ /* istanbul ignore else */
94
+ if (relationship.relationshipType !== "WMA2Code") {
95
+ itemTemplate.relatedItems.push(relationship);
96
+ relationship.relatedItemIds.forEach(relatedItemId => {
97
+ if (itemTemplate.dependencies.indexOf(relatedItemId) < 0) {
98
+ itemTemplate.dependencies.push(relatedItemId);
99
+ }
100
+ });
101
+ }
102
+ });
103
+ // Add Data Pipeline source and sink feature layers to dependencies
104
+ if (itemInfo.type === "Data Pipeline") {
105
+ itemTemplate.dependencies = itemTemplate.dependencies.concat(_getDataPipelineSourcesAndSinks(itemDataResponse));
106
+ }
107
+ // Create the template
108
+ let templateModifyingPromise = Promise.resolve(itemTemplate);
109
+ switch (itemInfo.type) {
110
+ case "Dashboard":
111
+ dashboard.convertItemToTemplate(itemTemplate, templateDictionary);
112
+ break;
113
+ case "Form":
114
+ // Store the form's data in the solution resources, not in template
115
+ itemTemplate.data = null;
116
+ // Add the form data to the template for a post-process resource upload
117
+ if (itemDataResponse) {
118
+ templateModifyingPromise = new Promise(
119
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor
120
+ async (resolve) => {
121
+ let zipObject = await common.blobToZipObject(itemDataResponse);
122
+ // Templatize the form's webhooks,
123
+ zipObject = await formHelpers.templatizeFormWebHooks(zipObject, itemTemplate.item.isOrgItem);
124
+ itemTemplate.item.name = _getFormDataFilename(itemTemplate.item.name, itemDataResponse.name, `${itemTemplate.itemId}.zip`);
125
+ const templatizedFormData = await common.zipObjectToZipFile(zipObject, itemTemplate.item.name);
126
+ // Add the data file to the template so that it can be uploaded with the other resources in the solution
127
+ const storageName = common.convertItemResourceToStorageResource(itemTemplate.itemId, itemTemplate.item.name, common.SolutionTemplateFormatVersion, common.SolutionResourceType.data);
128
+ const dataFile = {
129
+ itemId: itemTemplate.itemId,
130
+ file: templatizedFormData,
131
+ folder: storageName.folder,
132
+ filename: itemTemplate.item.name
133
+ };
134
+ itemTemplate.dataFile = dataFile;
135
+ // Update the template's resources
136
+ itemTemplate.resources.push(storageName.folder + "/" + storageName.filename);
137
+ resolve(itemTemplate);
138
+ });
139
+ }
140
+ break;
141
+ case "Notebook":
142
+ notebook.convertNotebookToTemplate(itemTemplate);
143
+ break;
144
+ case "Oriented Imagery Catalog":
145
+ templateModifyingPromise = oic.convertItemToTemplate(itemTemplate, destAuthentication, srcAuthentication);
146
+ break;
147
+ case "QuickCapture Project":
148
+ // Save all of the resources that we've fetched so as to not fetch them again
149
+ itemTemplate.resources = resourcesResponse;
150
+ // Get the QC config
151
+ templateModifyingPromise = new Promise(
152
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor
153
+ async (qcResolve) => {
154
+ // Remove the qc.project.json file from the list of resources
155
+ let qcProjectFile = null;
156
+ let iQcProjectFile = -1;
157
+ if (resourcesResponse) {
158
+ resourcesResponse.some((file, i) => {
159
+ const haveConfigFile = file.name === "qc.project.json";
160
+ if (haveConfigFile) {
161
+ qcProjectFile = file;
162
+ iQcProjectFile = i;
163
+ }
164
+ return haveConfigFile;
165
+ });
166
+ // Discard the qc.project.json file
167
+ if (iQcProjectFile >= 0) {
168
+ resourcesResponse.splice(iQcProjectFile, 1);
169
+ }
170
+ }
171
+ // Copy the qc.project.json file into the data section
172
+ if (qcProjectFile) {
173
+ itemTemplate.data = {
174
+ application: {
175
+ ...await common.blobToJson(qcProjectFile),
176
+ },
177
+ name: "qc.project.json"
178
+ };
179
+ }
180
+ // Save the basemap dependency
181
+ if (itemTemplate.data.application?.basemap?.type === "Web Map") {
182
+ itemTemplate.dependencies.push(itemTemplate.data.application.basemap.itemId);
183
+ }
184
+ // Create the template
185
+ const updatedTemplate = quickcapture.convertQuickCaptureToTemplate(itemTemplate);
186
+ qcResolve(updatedTemplate);
187
+ });
188
+ break;
189
+ case "Vector Tile Service":
190
+ case "Web Map":
191
+ case "Web Scene":
192
+ templateModifyingPromise = webmap.convertItemToTemplate(itemTemplate, destAuthentication, srcAuthentication, templateDictionary);
193
+ break;
194
+ case "Web Mapping Application":
195
+ if (itemDataResponse) {
196
+ templateModifyingPromise = webmappingapplication.convertItemToTemplate(itemTemplate, destAuthentication, srcAuthentication, templateDictionary);
197
+ }
198
+ break;
199
+ case "Workforce Project":
200
+ templateModifyingPromise = workforce.convertItemToTemplate(itemTemplate, destAuthentication, srcAuthentication, templateDictionary);
201
+ break;
202
+ }
203
+ templateModifyingPromise.then(resolve, err => reject(common.fail(err)));
204
+ });
205
+ });
206
+ }
207
+ exports.convertItemToTemplate = convertItemToTemplate;
208
+ /**
209
+ * Extracts the feature layer ids for a Data Pipeline's sources and sinks.
210
+ *
211
+ * @param itemData Data Pipeline's data section
212
+ * @return List of feature layer ids or an empty list if there are no sources or sinks in the pipeline
213
+ */
214
+ function _getDataPipelineSourcesAndSinks(itemData) {
215
+ const dependencies = [];
216
+ const sourcesAndSinks = (itemData?.inputs ?? []).concat(itemData?.outputs ?? []);
217
+ sourcesAndSinks.forEach(sourceOrSink => {
218
+ if (sourceOrSink.type === "FeatureServiceSource" || sourceOrSink.type === "FeatureServiceSink") {
219
+ const featureServiceId = common.getProp(sourceOrSink, "parameters.layer.value.itemId");
220
+ if (featureServiceId) {
221
+ dependencies.push(featureServiceId);
222
+ }
223
+ }
224
+ });
225
+ return dependencies;
226
+ }
227
+ exports._getDataPipelineSourcesAndSinks = _getDataPipelineSourcesAndSinks;
228
+ /**
229
+ * Encapsulates the rules for naming a form's data file.
230
+ * Chooses the first parameter that's defined and is not the string "undefined".
231
+ *
232
+ * @param itemName Template's item name
233
+ * @param dataFilename The data file name
234
+ * @param itemIdAsName A name constructed from the template's id suffixed with ".zip"
235
+ *
236
+ * @return A name for the data file
237
+ */
238
+ function _getFormDataFilename(itemName, dataFilename, itemIdAsName) {
239
+ const originalFilename = itemName || dataFilename;
240
+ const filename = originalFilename && originalFilename !== "undefined"
241
+ ? originalFilename
242
+ : itemIdAsName;
243
+ return filename;
244
+ }
245
+ exports._getFormDataFilename = _getFormDataFilename;
246
+ //# sourceMappingURL=convert-item-to-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-item-to-template.js","sourceRoot":"","sources":["../../../src/helpers/convert-item-to-template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** @license
2
+ * Copyright 2020 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 createItemFromTemplate(template: common.IItemTemplate, templateDictionary: any, destinationAuthentication: common.UserSession, itemProgressCallback: common.IItemProgressCallback): Promise<common.ICreateItemFromTemplateResponse>;
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ /** @license
3
+ * Copyright 2020 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.createItemFromTemplate = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const common = tslib_1.__importStar(require("@esri/solution-common"));
21
+ const notebook = tslib_1.__importStar(require("../notebook"));
22
+ const webmappingapplication = tslib_1.__importStar(require("../webmappingapplication"));
23
+ const workforce = tslib_1.__importStar(require("../workforce"));
24
+ function createItemFromTemplate(template, templateDictionary, destinationAuthentication, itemProgressCallback) {
25
+ return new Promise(resolve => {
26
+ // Interrupt process if progress callback returns `false`
27
+ if (!itemProgressCallback(template.itemId, common.EItemProgressStatus.Started, 0)) {
28
+ itemProgressCallback(template.itemId, common.EItemProgressStatus.Ignored, 0);
29
+ resolve(common.generateEmptyCreationResponse(template.type));
30
+ }
31
+ else {
32
+ // Replace the templatized symbols in a copy of the template
33
+ let newItemTemplate = common.cloneObject(template);
34
+ newItemTemplate = common.replaceInTemplate(newItemTemplate, templateDictionary);
35
+ let qcProjectFileContents;
36
+ // Create the item, then update its URL with its new id
37
+ // some fieldnames are used as keys for objects
38
+ // when we templatize field references for web applications we first stringify the components of the
39
+ // web application that could contain field references and then search for them with a regular expression.
40
+ // We also need to stringify the web application when de-templatizing so it will find all of these occurrences as well.
41
+ if (template.type === "Web Mapping Application" && template.data) {
42
+ newItemTemplate = JSON.parse(common.replaceInTemplate(JSON.stringify(newItemTemplate), templateDictionary));
43
+ }
44
+ else if (template.type === "QuickCapture Project" && template.data) {
45
+ // Save the data section for creating the qc.project.json later
46
+ qcProjectFileContents = JSON.stringify(newItemTemplate.data.application);
47
+ // Delete the data section
48
+ delete newItemTemplate.data;
49
+ }
50
+ if (template.item.thumbnail) {
51
+ newItemTemplate.item.thumbnail = template.item.thumbnail; // make sure that our File is still there
52
+ }
53
+ common
54
+ .createItemWithData(newItemTemplate.item, newItemTemplate.data, destinationAuthentication, templateDictionary.folderId)
55
+ .then(createResponse => {
56
+ // Interrupt process if progress callback returns `false`
57
+ if (!itemProgressCallback(template.itemId, common.EItemProgressStatus.Created, template.estimatedDeploymentCostFactor / 2, createResponse.id)) {
58
+ itemProgressCallback(template.itemId, common.EItemProgressStatus.Cancelled, 0);
59
+ common
60
+ .removeItem(createResponse.id, destinationAuthentication)
61
+ .then(() => resolve(common.generateEmptyCreationResponse(template.type)), () => resolve(common.generateEmptyCreationResponse(template.type)));
62
+ }
63
+ else {
64
+ // Add the new item to the settings
65
+ templateDictionary[template.itemId] = {
66
+ itemId: createResponse.id,
67
+ itemUrl: templateDictionary["portalBaseUrl"] + "/sharing/rest/content/items/" + createResponse.id
68
+ };
69
+ newItemTemplate.itemId = createResponse.id;
70
+ // Set the appItemId manually to get around cases where the path was incorrectly set
71
+ // in legacy deployments
72
+ if (newItemTemplate.type === "Web Mapping Application" &&
73
+ template.data) {
74
+ common.setProp(newItemTemplate, "data.appItemId", createResponse.id);
75
+ }
76
+ const postProcess = common.hasUnresolvedVariables(newItemTemplate.data);
77
+ // Update the template again now that we have the new item id
78
+ const originalURL = newItemTemplate.item.url;
79
+ newItemTemplate = common.replaceInTemplate(newItemTemplate, templateDictionary);
80
+ // Update relationships
81
+ let relationshipsDef = Promise.resolve([]);
82
+ if (newItemTemplate.relatedItems) {
83
+ // Templatize references in relationships obj
84
+ const updatedRelatedItems = common.replaceInTemplate(common.templatizeIds(newItemTemplate.relatedItems), templateDictionary);
85
+ // Add the relationships
86
+ relationshipsDef = common.addForwardItemRelationships(newItemTemplate.itemId, updatedRelatedItems, destinationAuthentication);
87
+ }
88
+ // Check for extra processing for web mapping application et al.
89
+ let customProcDef;
90
+ if (template.type === "Web Mapping Application" &&
91
+ template.data &&
92
+ common.hasAnyKeyword(template, [
93
+ "WAB2D",
94
+ "WAB3D",
95
+ "Web AppBuilder"
96
+ ])) {
97
+ // If this is a Web AppBuilder application, we will create a Code Attachment for downloading
98
+ customProcDef = webmappingapplication.fineTuneCreatedItem(template, newItemTemplate, templateDictionary, destinationAuthentication);
99
+ }
100
+ else if (template.type === "Workforce Project") {
101
+ customProcDef = workforce.fineTuneCreatedItem(newItemTemplate, destinationAuthentication, templateDictionary);
102
+ }
103
+ else if (template.type === "QuickCapture Project") {
104
+ if (qcProjectFileContents) {
105
+ // Generate the qc.project.json file resource from the data section after handling templatized variables
106
+ const qcProjectFile = common.jsonToFile(common.replaceInTemplate(JSON.parse(qcProjectFileContents), templateDictionary), "qc.project.json");
107
+ // Send the created qc.project.json file to the item
108
+ customProcDef = common.addResourceFromBlob(qcProjectFile, newItemTemplate.itemId, "", qcProjectFile.name, destinationAuthentication);
109
+ }
110
+ }
111
+ else if (template.type === "Notebook") {
112
+ customProcDef = notebook.fineTuneCreatedItem(template, newItemTemplate, templateDictionary, destinationAuthentication);
113
+ }
114
+ else if (originalURL !== newItemTemplate.item.url) {
115
+ // For web mapping applications that are not Web AppBuilder apps
116
+ customProcDef = new Promise((resolve2, reject2) => {
117
+ common
118
+ .updateItemURL(createResponse.id, newItemTemplate.item.url, destinationAuthentication)
119
+ .then(() => resolve2(), reject2);
120
+ });
121
+ }
122
+ else {
123
+ customProcDef = Promise.resolve(null);
124
+ }
125
+ Promise.all([relationshipsDef, customProcDef]).then(() => {
126
+ // Interrupt process if progress callback returns `false`
127
+ if (!itemProgressCallback(template.itemId, common.EItemProgressStatus.Finished, template.estimatedDeploymentCostFactor / 2, createResponse.id)) {
128
+ itemProgressCallback(template.itemId, common.EItemProgressStatus.Cancelled, 0);
129
+ common
130
+ .removeItem(createResponse.id, destinationAuthentication)
131
+ .then(() => resolve(common.generateEmptyCreationResponse(template.type)), () => resolve(common.generateEmptyCreationResponse(template.type)));
132
+ }
133
+ else {
134
+ resolve({
135
+ item: newItemTemplate,
136
+ id: createResponse.id,
137
+ type: newItemTemplate.type,
138
+ postProcess: postProcess
139
+ });
140
+ }
141
+ }, () => {
142
+ itemProgressCallback(template.itemId, common.EItemProgressStatus.Failed, 0);
143
+ resolve(common.generateEmptyCreationResponse(template.type)); // fails to deploy all resources to the item
144
+ });
145
+ }
146
+ }, () => {
147
+ itemProgressCallback(template.itemId, common.EItemProgressStatus.Failed, 0);
148
+ resolve(common.generateEmptyCreationResponse(template.type)); // fails to create item
149
+ });
150
+ }
151
+ });
152
+ }
153
+ exports.createItemFromTemplate = createItemFromTemplate;
154
+ //# sourceMappingURL=create-item-from-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-item-from-template.js","sourceRoot":"","sources":["../../../src/helpers/create-item-from-template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** @license
2
+ * Copyright 2024 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 JSZip from "jszip";
17
+ /**
18
+ * Templatizes the URLs in webhooks in a form's zip object.
19
+ *
20
+ * @param zipObject Form zip object to templatize; it is modified in place
21
+ * @param isOrgItem Indicates whether this item and the user whose credential was used to fetch this item belong
22
+ * to the same ArcGIS Enterprise Portal or ArcGIS Online Organization
23
+ * @returns Promise that resolves to the modified zip object
24
+ */
25
+ export declare function templatizeFormWebHooks(zipObject: JSZip, isOrgItem: boolean): Promise<JSZip>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /** @license
3
+ * Copyright 2024 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.templatizeFormWebHooks = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const common = tslib_1.__importStar(require("@esri/solution-common"));
21
+ // ------------------------------------------------------------------------------------------------------------------ //
22
+ /**
23
+ * Templatizes the URLs in webhooks in a form's zip object.
24
+ *
25
+ * @param zipObject Form zip object to templatize; it is modified in place
26
+ * @param isOrgItem Indicates whether this item and the user whose credential was used to fetch this item belong
27
+ * to the same ArcGIS Enterprise Portal or ArcGIS Online Organization
28
+ * @returns Promise that resolves to the modified zip object
29
+ */
30
+ async function templatizeFormWebHooks(zipObject, isOrgItem) {
31
+ const webhooks = await common.getWebHooksFromZipObject(zipObject);
32
+ if (webhooks.length > 0) {
33
+ webhooks.forEach((webhook) => {
34
+ // Templatize the webhook URL
35
+ let url = webhook.url;
36
+ const urlObj = new URL(url);
37
+ const server = `${urlObj.protocol}//${urlObj.host}`;
38
+ const workflowServer = "https://workflow.arcgis.com";
39
+ if (server === workflowServer) {
40
+ // Templatize organization
41
+ const partialPath = url.substring(workflowServer.length);
42
+ const partialPathParts = partialPath.split("/");
43
+ const orgId = partialPathParts[1];
44
+ url = url.replace(orgId, "{{user.orgId}}");
45
+ }
46
+ else if (isOrgItem) {
47
+ // Templatize server
48
+ url = url.replace(server, "{{portalBaseUrl}}");
49
+ }
50
+ webhook.url = url;
51
+ });
52
+ zipObject = await common.setWebHooksInZipObject(zipObject, webhooks);
53
+ }
54
+ // Return the modified zip object
55
+ return Promise.resolve(zipObject);
56
+ }
57
+ exports.templatizeFormWebHooks = templatizeFormWebHooks;
58
+ //# sourceMappingURL=formHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formHelpers.js","sourceRoot":"","sources":["../../../src/helpers/formHelpers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;AAEH,sEAAgD;AAGhD,wHAAwH;AAExH;;;;;;;GAOG;AACI,KAAK,UAAU,sBAAsB,CAC1C,SAAgB,EAChB,SAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;YAChC,6BAA6B;YAC7B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAE5B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,cAAc,GAAG,6BAA6B,CAAC;YAErD,IAAI,MAAM,KAAK,cAAc,EAAE;gBAC7B,0BAA0B;gBAC1B,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACzD,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;aAE5C;iBAAM,IAAI,SAAS,EAAE;gBACpB,oBAAoB;gBACpB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;aAChD;YAED,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACtE;IAED,iCAAiC;IACjC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAjCD,wDAiCC"}
@@ -0,0 +1,19 @@
1
+ /** @license
2
+ * Copyright 2020 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 { convertItemToTemplate } from "./convert-item-to-template";
17
+ import { createItemFromTemplate } from "./create-item-from-template";
18
+ import { updateNotebookData } from "./update-notebook-data";
19
+ export { createItemFromTemplate, convertItemToTemplate, updateNotebookData };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateNotebookData = exports.convertItemToTemplate = exports.createItemFromTemplate = void 0;
4
+ /** @license
5
+ * Copyright 2020 Esri
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ const convert_item_to_template_1 = require("./convert-item-to-template");
20
+ Object.defineProperty(exports, "convertItemToTemplate", { enumerable: true, get: function () { return convert_item_to_template_1.convertItemToTemplate; } });
21
+ const create_item_from_template_1 = require("./create-item-from-template");
22
+ Object.defineProperty(exports, "createItemFromTemplate", { enumerable: true, get: function () { return create_item_from_template_1.createItemFromTemplate; } });
23
+ const update_notebook_data_1 = require("./update-notebook-data");
24
+ Object.defineProperty(exports, "updateNotebookData", { enumerable: true, get: function () { return update_notebook_data_1.updateNotebookData; } });
25
+ //# sourceMappingURL=notebook-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-helpers.js","sourceRoot":"","sources":["../../../src/helpers/notebook-helpers.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,yEAAmE;AAKlC,sGALxB,gDAAqB,OAKwB;AAJtD,2EAAqE;AAI5D,uGAJA,kDAAsB,OAIA;AAH/B,iEAA4D;AAGJ,mGAH/C,yCAAkB,OAG+C"}
@@ -0,0 +1,18 @@
1
+ /** @license
2
+ * Copyright 2020 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 { convertItemToTemplate } from "./convert-item-to-template";
17
+ import { createItemFromTemplate } from "./create-item-from-template";
18
+ export { createItemFromTemplate, convertItemToTemplate };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertItemToTemplate = exports.createItemFromTemplate = void 0;
4
+ /** @license
5
+ * Copyright 2020 Esri
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ const convert_item_to_template_1 = require("./convert-item-to-template");
20
+ Object.defineProperty(exports, "convertItemToTemplate", { enumerable: true, get: function () { return convert_item_to_template_1.convertItemToTemplate; } });
21
+ const create_item_from_template_1 = require("./create-item-from-template");
22
+ Object.defineProperty(exports, "createItemFromTemplate", { enumerable: true, get: function () { return create_item_from_template_1.createItemFromTemplate; } });
23
+ //# sourceMappingURL=quickcapture-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickcapture-helpers.js","sourceRoot":"","sources":["../../../src/helpers/quickcapture-helpers.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,yEAAmE;AAIlC,sGAJxB,gDAAqB,OAIwB;AAHtD,2EAAqE;AAG5D,uGAHA,kDAAsB,OAGA"}