@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,112 +1,112 @@
|
|
|
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.removeItems = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
-
/**
|
|
21
|
-
* @module removeItems
|
|
22
|
-
*/
|
|
23
|
-
const interfaces_1 = require("../interfaces");
|
|
24
|
-
const reportProgress = tslib_1.__importStar(require("./reportProgress"));
|
|
25
|
-
const hubSites = tslib_1.__importStar(require("@esri/hub-sites"));
|
|
26
|
-
const portal = tslib_1.__importStar(require("@esri/arcgis-rest-portal"));
|
|
27
|
-
const restHelpers = tslib_1.__importStar(require("../restHelpers"));
|
|
28
|
-
const create_hub_request_options_1 = require("../create-hub-request-options");
|
|
29
|
-
// ------------------------------------------------------------------------------------------------------------------ //
|
|
30
|
-
/**
|
|
31
|
-
* Removes a list of items starting from the end.
|
|
32
|
-
*
|
|
33
|
-
* @param itemIds List of ids of items to remove
|
|
34
|
-
* @param hubSiteItemIds List of ids in itemIds that are for Hub Sites
|
|
35
|
-
* @param authentication Credentials for the request
|
|
36
|
-
* @param percentDone Percent done in range 0 to 100
|
|
37
|
-
* @param progressPercentStep Amount that percentDone changes for each item deleted
|
|
38
|
-
* @param solutionDeletedSummary Solution summary containing items successfully deleted
|
|
39
|
-
* @param solutionFailureSummary Solution summary containing items that could not be deleted
|
|
40
|
-
* @param deleteOptions Reporting options
|
|
41
|
-
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
42
|
-
* and failed deletions. Ignored items (e.g., already deleted) will not be in either list.
|
|
43
|
-
*/
|
|
44
|
-
function removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions = {}) {
|
|
45
|
-
let solutionDeletedSummary;
|
|
46
|
-
let solutionFailureSummary;
|
|
47
|
-
const itemToDelete = solutionSummary.items.shift();
|
|
48
|
-
const percentDoneReport = percentDone + progressPercentStep * (solutionSummary.items.length + 1);
|
|
49
|
-
if (itemToDelete) {
|
|
50
|
-
// On to next item in list
|
|
51
|
-
return removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions)
|
|
52
|
-
.then((results) => {
|
|
53
|
-
// Done with subsequent items in list; now delete the current item
|
|
54
|
-
[solutionDeletedSummary, solutionFailureSummary] = results;
|
|
55
|
-
// Remove any delete protection on item
|
|
56
|
-
return portal.unprotectItem({
|
|
57
|
-
id: itemToDelete.id,
|
|
58
|
-
authentication: authentication
|
|
59
|
-
});
|
|
60
|
-
})
|
|
61
|
-
.then(async () => {
|
|
62
|
-
// Delete the item
|
|
63
|
-
if (hubSiteItemIds.includes(itemToDelete.id)) {
|
|
64
|
-
const options = await (0, create_hub_request_options_1.createHubRequestOptions)(authentication);
|
|
65
|
-
return hubSites.removeSite(itemToDelete.id, options);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
return restHelpers.removeItem(itemToDelete.id, authentication);
|
|
69
|
-
}
|
|
70
|
-
})
|
|
71
|
-
.then(() => {
|
|
72
|
-
// Successful deletion
|
|
73
|
-
solutionDeletedSummary.items.push(itemToDelete);
|
|
74
|
-
reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, interfaces_1.EItemProgressStatus.Finished);
|
|
75
|
-
return [solutionDeletedSummary, solutionFailureSummary];
|
|
76
|
-
})
|
|
77
|
-
.catch(error => {
|
|
78
|
-
const errorMessage = error.error?.message || error.message;
|
|
79
|
-
if (errorMessage &&
|
|
80
|
-
errorMessage.includes("Item does not exist or is inaccessible")) {
|
|
81
|
-
// Filter out errors where the item doesn't exist, such as from a previous delete attempt
|
|
82
|
-
reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, interfaces_1.EItemProgressStatus.Ignored);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
// Otherwise, we have a real delete error, including where AGO simply returns "success: false"
|
|
86
|
-
solutionFailureSummary.items.push(itemToDelete);
|
|
87
|
-
reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, interfaces_1.EItemProgressStatus.Failed);
|
|
88
|
-
}
|
|
89
|
-
return [solutionDeletedSummary, solutionFailureSummary];
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
// We've exhausted our list of items; start building up the lists of results
|
|
94
|
-
solutionDeletedSummary = {
|
|
95
|
-
id: solutionSummary.id,
|
|
96
|
-
title: solutionSummary.title,
|
|
97
|
-
folder: solutionSummary.folder,
|
|
98
|
-
items: [],
|
|
99
|
-
groups: []
|
|
100
|
-
};
|
|
101
|
-
solutionFailureSummary = {
|
|
102
|
-
id: solutionSummary.id,
|
|
103
|
-
title: solutionSummary.title,
|
|
104
|
-
folder: solutionSummary.folder,
|
|
105
|
-
items: [],
|
|
106
|
-
groups: []
|
|
107
|
-
};
|
|
108
|
-
return Promise.resolve([solutionDeletedSummary, solutionFailureSummary]);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.removeItems = removeItems;
|
|
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.removeItems = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
/**
|
|
21
|
+
* @module removeItems
|
|
22
|
+
*/
|
|
23
|
+
const interfaces_1 = require("../interfaces");
|
|
24
|
+
const reportProgress = tslib_1.__importStar(require("./reportProgress"));
|
|
25
|
+
const hubSites = tslib_1.__importStar(require("@esri/hub-sites"));
|
|
26
|
+
const portal = tslib_1.__importStar(require("@esri/arcgis-rest-portal"));
|
|
27
|
+
const restHelpers = tslib_1.__importStar(require("../restHelpers"));
|
|
28
|
+
const create_hub_request_options_1 = require("../create-hub-request-options");
|
|
29
|
+
// ------------------------------------------------------------------------------------------------------------------ //
|
|
30
|
+
/**
|
|
31
|
+
* Removes a list of items starting from the end.
|
|
32
|
+
*
|
|
33
|
+
* @param itemIds List of ids of items to remove
|
|
34
|
+
* @param hubSiteItemIds List of ids in itemIds that are for Hub Sites
|
|
35
|
+
* @param authentication Credentials for the request
|
|
36
|
+
* @param percentDone Percent done in range 0 to 100
|
|
37
|
+
* @param progressPercentStep Amount that percentDone changes for each item deleted
|
|
38
|
+
* @param solutionDeletedSummary Solution summary containing items successfully deleted
|
|
39
|
+
* @param solutionFailureSummary Solution summary containing items that could not be deleted
|
|
40
|
+
* @param deleteOptions Reporting options
|
|
41
|
+
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
42
|
+
* and failed deletions. Ignored items (e.g., already deleted) will not be in either list.
|
|
43
|
+
*/
|
|
44
|
+
function removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions = {}) {
|
|
45
|
+
let solutionDeletedSummary;
|
|
46
|
+
let solutionFailureSummary;
|
|
47
|
+
const itemToDelete = solutionSummary.items.shift();
|
|
48
|
+
const percentDoneReport = percentDone + progressPercentStep * (solutionSummary.items.length + 1);
|
|
49
|
+
if (itemToDelete) {
|
|
50
|
+
// On to next item in list
|
|
51
|
+
return removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions)
|
|
52
|
+
.then((results) => {
|
|
53
|
+
// Done with subsequent items in list; now delete the current item
|
|
54
|
+
[solutionDeletedSummary, solutionFailureSummary] = results;
|
|
55
|
+
// Remove any delete protection on item
|
|
56
|
+
return portal.unprotectItem({
|
|
57
|
+
id: itemToDelete.id,
|
|
58
|
+
authentication: authentication
|
|
59
|
+
});
|
|
60
|
+
})
|
|
61
|
+
.then(async () => {
|
|
62
|
+
// Delete the item
|
|
63
|
+
if (hubSiteItemIds.includes(itemToDelete.id)) {
|
|
64
|
+
const options = await (0, create_hub_request_options_1.createHubRequestOptions)(authentication);
|
|
65
|
+
return hubSites.removeSite(itemToDelete.id, options);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return restHelpers.removeItem(itemToDelete.id, authentication);
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
.then(() => {
|
|
72
|
+
// Successful deletion
|
|
73
|
+
solutionDeletedSummary.items.push(itemToDelete);
|
|
74
|
+
reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, interfaces_1.EItemProgressStatus.Finished);
|
|
75
|
+
return [solutionDeletedSummary, solutionFailureSummary];
|
|
76
|
+
})
|
|
77
|
+
.catch(error => {
|
|
78
|
+
const errorMessage = error.error?.message || error.message;
|
|
79
|
+
if (errorMessage &&
|
|
80
|
+
errorMessage.includes("Item does not exist or is inaccessible")) {
|
|
81
|
+
// Filter out errors where the item doesn't exist, such as from a previous delete attempt
|
|
82
|
+
reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, interfaces_1.EItemProgressStatus.Ignored);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// Otherwise, we have a real delete error, including where AGO simply returns "success: false"
|
|
86
|
+
solutionFailureSummary.items.push(itemToDelete);
|
|
87
|
+
reportProgress.reportProgress(percentDoneReport, deleteOptions, itemToDelete.id, interfaces_1.EItemProgressStatus.Failed);
|
|
88
|
+
}
|
|
89
|
+
return [solutionDeletedSummary, solutionFailureSummary];
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// We've exhausted our list of items; start building up the lists of results
|
|
94
|
+
solutionDeletedSummary = {
|
|
95
|
+
id: solutionSummary.id,
|
|
96
|
+
title: solutionSummary.title,
|
|
97
|
+
folder: solutionSummary.folder,
|
|
98
|
+
items: [],
|
|
99
|
+
groups: []
|
|
100
|
+
};
|
|
101
|
+
solutionFailureSummary = {
|
|
102
|
+
id: solutionSummary.id,
|
|
103
|
+
title: solutionSummary.title,
|
|
104
|
+
folder: solutionSummary.folder,
|
|
105
|
+
items: [],
|
|
106
|
+
groups: []
|
|
107
|
+
};
|
|
108
|
+
return Promise.resolve([solutionDeletedSummary, solutionFailureSummary]);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.removeItems = removeItems;
|
|
112
112
|
//# sourceMappingURL=removeItems.js.map
|
|
@@ -1,27 +1,27 @@
|
|
|
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
|
-
* @module reportProgress
|
|
18
|
-
*/
|
|
19
|
-
import { EItemProgressStatus, IDeleteSolutionOptions } from "../interfaces";
|
|
20
|
-
/**
|
|
21
|
-
* Reports progress as specified via options.
|
|
22
|
-
*
|
|
23
|
-
* @param percentDone Percent done in range 0 to 100
|
|
24
|
-
* @param deleteOptions Reporting options
|
|
25
|
-
* @param deletedItemId Id of item deleted
|
|
26
|
-
*/
|
|
27
|
-
export declare function reportProgress(percentDone: number, deleteOptions: IDeleteSolutionOptions, deletedItemId?: string, status?: EItemProgressStatus): void;
|
|
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
|
+
* @module reportProgress
|
|
18
|
+
*/
|
|
19
|
+
import { EItemProgressStatus, IDeleteSolutionOptions } from "../interfaces";
|
|
20
|
+
/**
|
|
21
|
+
* Reports progress as specified via options.
|
|
22
|
+
*
|
|
23
|
+
* @param percentDone Percent done in range 0 to 100
|
|
24
|
+
* @param deleteOptions Reporting options
|
|
25
|
+
* @param deletedItemId Id of item deleted
|
|
26
|
+
*/
|
|
27
|
+
export declare function reportProgress(percentDone: number, deleteOptions: IDeleteSolutionOptions, deletedItemId?: string, status?: EItemProgressStatus): void;
|
|
@@ -1,46 +1,46 @@
|
|
|
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.reportProgress = void 0;
|
|
19
|
-
/**
|
|
20
|
-
* @module reportProgress
|
|
21
|
-
*/
|
|
22
|
-
const interfaces_1 = require("../interfaces");
|
|
23
|
-
// ------------------------------------------------------------------------------------------------------------------ //
|
|
24
|
-
/**
|
|
25
|
-
* Reports progress as specified via options.
|
|
26
|
-
*
|
|
27
|
-
* @param percentDone Percent done in range 0 to 100
|
|
28
|
-
* @param deleteOptions Reporting options
|
|
29
|
-
* @param deletedItemId Id of item deleted
|
|
30
|
-
*/
|
|
31
|
-
function reportProgress(percentDone, deleteOptions, deletedItemId = "", status = interfaces_1.EItemProgressStatus.Started) {
|
|
32
|
-
const iPercentDone = Math.round(percentDone);
|
|
33
|
-
/* istanbul ignore else */
|
|
34
|
-
if (deleteOptions.progressCallback) {
|
|
35
|
-
deleteOptions.progressCallback(iPercentDone, deleteOptions.jobId, {
|
|
36
|
-
event: "",
|
|
37
|
-
data: deletedItemId
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/* istanbul ignore else */
|
|
41
|
-
if (deleteOptions.consoleProgress) {
|
|
42
|
-
console.log(Date.now(), deletedItemId, deleteOptions.jobId ?? "", interfaces_1.SItemProgressStatus[status], iPercentDone + "%");
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.reportProgress = reportProgress;
|
|
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.reportProgress = void 0;
|
|
19
|
+
/**
|
|
20
|
+
* @module reportProgress
|
|
21
|
+
*/
|
|
22
|
+
const interfaces_1 = require("../interfaces");
|
|
23
|
+
// ------------------------------------------------------------------------------------------------------------------ //
|
|
24
|
+
/**
|
|
25
|
+
* Reports progress as specified via options.
|
|
26
|
+
*
|
|
27
|
+
* @param percentDone Percent done in range 0 to 100
|
|
28
|
+
* @param deleteOptions Reporting options
|
|
29
|
+
* @param deletedItemId Id of item deleted
|
|
30
|
+
*/
|
|
31
|
+
function reportProgress(percentDone, deleteOptions, deletedItemId = "", status = interfaces_1.EItemProgressStatus.Started) {
|
|
32
|
+
const iPercentDone = Math.round(percentDone);
|
|
33
|
+
/* istanbul ignore else */
|
|
34
|
+
if (deleteOptions.progressCallback) {
|
|
35
|
+
deleteOptions.progressCallback(iPercentDone, deleteOptions.jobId, {
|
|
36
|
+
event: "",
|
|
37
|
+
data: deletedItemId
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/* istanbul ignore else */
|
|
41
|
+
if (deleteOptions.consoleProgress) {
|
|
42
|
+
console.log(Date.now(), deletedItemId, deleteOptions.jobId ?? "", interfaces_1.SItemProgressStatus[status], iPercentDone + "%");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.reportProgress = reportProgress;
|
|
46
46
|
//# sourceMappingURL=reportProgress.js.map
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
/** @license
|
|
2
|
-
* Copyright 2021 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 a function for deleting a deployed Solution item and all of the items that were created
|
|
18
|
-
* as part of that deployment.
|
|
19
|
-
*
|
|
20
|
-
* @module deleteSolution
|
|
21
|
-
*/
|
|
22
|
-
import { IDeleteSolutionOptions, IItemTemplate, ISolutionPrecis, UserSession } from "./interfaces";
|
|
23
|
-
/**
|
|
24
|
-
* Deletes a deployed Solution item and and all of the items that were created
|
|
25
|
-
* as part of that deployment.
|
|
26
|
-
*
|
|
27
|
-
* @param solutionItemId Id of a deployed Solution
|
|
28
|
-
* @param authentication Credentials for the request
|
|
29
|
-
* @param options Progress reporting options
|
|
30
|
-
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
31
|
-
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
32
|
-
* one Solution will not be in either list.
|
|
33
|
-
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
34
|
-
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
35
|
-
* deletion using the solutionItemId.
|
|
36
|
-
*/
|
|
37
|
-
export declare function deleteSolution(solutionItemId: string, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
|
|
38
|
-
/**
|
|
39
|
-
* Deletes a deployed Solution item and and all of the items that were created
|
|
40
|
-
* as part of that deployment.
|
|
41
|
-
*
|
|
42
|
-
* @param solutionItemId Id of a deployed Solution
|
|
43
|
-
* @param itemIds Item ids to delete; this list is reversed in this function
|
|
44
|
-
* @param templates List of Solution's templates
|
|
45
|
-
* @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
|
|
46
|
-
* @param authentication Credentials for the request
|
|
47
|
-
* @param options Progress reporting options
|
|
48
|
-
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
49
|
-
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
50
|
-
* one Solution will not be in either list.
|
|
51
|
-
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
52
|
-
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
53
|
-
* deletion using the solutionItemId.
|
|
54
|
-
*/
|
|
55
|
-
export declare function deleteSolutionByComponents(solutionItemId: string, itemIds: string[], templates: IItemTemplate[], templateDictionary: any, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
|
|
1
|
+
/** @license
|
|
2
|
+
* Copyright 2021 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 a function for deleting a deployed Solution item and all of the items that were created
|
|
18
|
+
* as part of that deployment.
|
|
19
|
+
*
|
|
20
|
+
* @module deleteSolution
|
|
21
|
+
*/
|
|
22
|
+
import { IDeleteSolutionOptions, IItemTemplate, ISolutionPrecis, UserSession } from "./interfaces";
|
|
23
|
+
/**
|
|
24
|
+
* Deletes a deployed Solution item and and all of the items that were created
|
|
25
|
+
* as part of that deployment.
|
|
26
|
+
*
|
|
27
|
+
* @param solutionItemId Id of a deployed Solution
|
|
28
|
+
* @param authentication Credentials for the request
|
|
29
|
+
* @param options Progress reporting options
|
|
30
|
+
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
31
|
+
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
32
|
+
* one Solution will not be in either list.
|
|
33
|
+
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
34
|
+
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
35
|
+
* deletion using the solutionItemId.
|
|
36
|
+
*/
|
|
37
|
+
export declare function deleteSolution(solutionItemId: string, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Deletes a deployed Solution item and and all of the items that were created
|
|
40
|
+
* as part of that deployment.
|
|
41
|
+
*
|
|
42
|
+
* @param solutionItemId Id of a deployed Solution
|
|
43
|
+
* @param itemIds Item ids to delete; this list is reversed in this function
|
|
44
|
+
* @param templates List of Solution's templates
|
|
45
|
+
* @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
|
|
46
|
+
* @param authentication Credentials for the request
|
|
47
|
+
* @param options Progress reporting options
|
|
48
|
+
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
49
|
+
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
50
|
+
* one Solution will not be in either list.
|
|
51
|
+
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
52
|
+
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
53
|
+
* deletion using the solutionItemId.
|
|
54
|
+
*/
|
|
55
|
+
export declare function deleteSolutionByComponents(solutionItemId: string, itemIds: string[], templates: IItemTemplate[], templateDictionary: any, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
|