@alfresco/aca-playwright-shared 5.1.1 → 5.2.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/api/tags-api.d.ts +8 -2
- package/esm2022/api/api-client-factory.mjs +131 -0
- package/esm2022/api/categories-api.mjs +66 -0
- package/esm2022/api/favorites-api.mjs +130 -0
- package/esm2022/api/file-actions.mjs +167 -0
- package/esm2022/api/nodes-api.mjs +428 -0
- package/esm2022/api/people-api-models.mjs +41 -0
- package/esm2022/api/queries-api.mjs +70 -0
- package/esm2022/api/rules-api.mjs +258 -0
- package/esm2022/api/search-api.mjs +75 -0
- package/esm2022/api/shared-links-api.mjs +137 -0
- package/esm2022/api/sites-api.mjs +156 -0
- package/esm2022/api/tags-api.mjs +92 -0
- package/esm2022/api/trashcan-api.mjs +52 -0
- package/{esm2020 → esm2022}/models/user-model.mjs +11 -5
- package/esm2022/page-objects/components/aca-header.component.mjs +78 -0
- package/esm2022/page-objects/components/actions-dropdown.component.mjs +100 -0
- package/esm2022/page-objects/components/adf-info-drawer.component.mjs +102 -0
- package/esm2022/page-objects/components/base.component.mjs +70 -0
- package/esm2022/page-objects/components/breadcrumb/breadcrumb.component.mjs +47 -0
- package/esm2022/page-objects/components/conditions.component.mjs +72 -0
- package/esm2022/page-objects/components/dataTable/data-table.component.mjs +343 -0
- package/esm2022/page-objects/components/dataTable/mat-menu.component.mjs +67 -0
- package/{esm2020/page-objects/components/dialogs/manage-versions-dialog.component.mjs → esm2022/page-objects/components/dataTable/toolbar.component.mjs} +13 -8
- package/esm2022/page-objects/components/datetime-picker/datetime-picker.component.mjs +53 -0
- package/esm2022/page-objects/components/dialogs/adf-confirm-dialog.component.mjs +36 -0
- package/esm2022/page-objects/components/dialogs/adf-folder-dialog.component.mjs +57 -0
- package/esm2022/page-objects/components/dialogs/adf-library-dialog.component.mjs +64 -0
- package/esm2022/page-objects/components/dialogs/content-node-selector-dialog.mjs +68 -0
- package/esm2022/page-objects/components/dialogs/create-from-template-dialog-component.mjs +55 -0
- package/esm2022/page-objects/components/dialogs/delete-trash-dialog.component.mjs +54 -0
- package/esm2022/page-objects/components/dialogs/edit-dialog.component.mjs +39 -0
- package/esm2022/page-objects/components/dialogs/link-rules.component.mjs +58 -0
- package/esm2022/page-objects/components/dialogs/manage-versions-dialog.component.mjs +36 -0
- package/esm2022/page-objects/components/dialogs/password-overlay-dialog.component.mjs +71 -0
- package/esm2022/page-objects/components/dialogs/share-dialog.component.mjs +85 -0
- package/esm2022/page-objects/components/dialogs/upload-dialog.component.mjs +36 -0
- package/esm2022/page-objects/components/dialogs/upload-new-version-dialog.component.mjs +38 -0
- package/esm2022/page-objects/components/dialogs/viewer-overlay-dialog.component.mjs +56 -0
- package/esm2022/page-objects/components/error.component.mjs +34 -0
- package/esm2022/page-objects/components/manageRules/manage-rules-dialog.component.mjs +64 -0
- package/esm2022/page-objects/components/manageRules/manage-rules.component.mjs +70 -0
- package/esm2022/page-objects/components/pagination.component.mjs +174 -0
- package/esm2022/page-objects/components/search/search-filters/search-filters-categories.component.mjs +33 -0
- package/esm2022/page-objects/components/search/search-filters/search-filters-date.component.mjs +115 -0
- package/esm2022/page-objects/components/search/search-filters/search-filters-location.component.mjs +40 -0
- package/esm2022/page-objects/components/search/search-filters/search-filters-logic.component.mjs +36 -0
- package/esm2022/page-objects/components/search/search-filters/search-filters-properties.component.mjs +83 -0
- package/esm2022/page-objects/components/search/search-filters/search-filters-tags.component.mjs +40 -0
- package/esm2022/page-objects/components/search/search-filters.component.mjs +45 -0
- package/esm2022/page-objects/components/search/search-input.component.mjs +48 -0
- package/esm2022/page-objects/components/search/search-overlay.components.mjs +83 -0
- package/esm2022/page-objects/components/search/search-sorting-picker.components.mjs +72 -0
- package/esm2022/page-objects/components/sidenav.component.mjs +88 -0
- package/esm2022/page-objects/components/snackBar/snack-bar.component.mjs +54 -0
- package/esm2022/page-objects/components/spinner.component.mjs +41 -0
- package/esm2022/page-objects/components/viewer.component.mjs +110 -0
- package/esm2022/page-objects/pages/base.page.mjs +84 -0
- package/esm2022/page-objects/pages/favorites-libraries.page.mjs +43 -0
- package/esm2022/page-objects/pages/favorites.page.mjs +49 -0
- package/esm2022/page-objects/pages/login.page.mjs +62 -0
- package/esm2022/page-objects/pages/my-libraries.page.mjs +54 -0
- package/esm2022/page-objects/pages/nodes.page.mjs +40 -0
- package/esm2022/page-objects/pages/personal-files.page.mjs +85 -0
- package/esm2022/page-objects/pages/recent-files.page.mjs +45 -0
- package/esm2022/page-objects/pages/search.page.mjs +79 -0
- package/esm2022/page-objects/pages/shared.page.mjs +45 -0
- package/esm2022/page-objects/pages/trash.page.mjs +45 -0
- package/esm2022/page-objects/playwright-base.mjs +33 -0
- package/esm2022/resources/test-files/index.mjs +102 -0
- package/esm2022/utils/logger.mjs +71 -0
- package/esm2022/utils/utils.mjs +145 -0
- package/{fesm2020 → fesm2022}/alfresco-aca-playwright-shared.mjs +816 -675
- package/fesm2022/alfresco-aca-playwright-shared.mjs.map +1 -0
- package/package.json +5 -11
- package/page-objects/components/adf-info-drawer.component.d.ts +18 -0
- package/page-objects/components/viewer.component.d.ts +11 -0
- package/page-objects/pages/search.page.d.ts +1 -1
- package/resources/test-files/index.d.ts +24 -0
- package/utils/utils.d.ts +2 -2
- package/esm2020/api/api-client-factory.mjs +0 -111
- package/esm2020/api/categories-api.mjs +0 -65
- package/esm2020/api/favorites-api.mjs +0 -129
- package/esm2020/api/file-actions.mjs +0 -166
- package/esm2020/api/nodes-api.mjs +0 -427
- package/esm2020/api/people-api-models.mjs +0 -34
- package/esm2020/api/queries-api.mjs +0 -69
- package/esm2020/api/rules-api.mjs +0 -251
- package/esm2020/api/search-api.mjs +0 -74
- package/esm2020/api/shared-links-api.mjs +0 -136
- package/esm2020/api/sites-api.mjs +0 -155
- package/esm2020/api/tags-api.mjs +0 -61
- package/esm2020/api/trashcan-api.mjs +0 -54
- package/esm2020/page-objects/components/aca-header.component.mjs +0 -77
- package/esm2020/page-objects/components/actions-dropdown.component.mjs +0 -99
- package/esm2020/page-objects/components/adf-info-drawer.component.mjs +0 -83
- package/esm2020/page-objects/components/base.component.mjs +0 -69
- package/esm2020/page-objects/components/breadcrumb/breadcrumb.component.mjs +0 -46
- package/esm2020/page-objects/components/conditions.component.mjs +0 -75
- package/esm2020/page-objects/components/dataTable/data-table.component.mjs +0 -341
- package/esm2020/page-objects/components/dataTable/mat-menu.component.mjs +0 -66
- package/esm2020/page-objects/components/dataTable/toolbar.component.mjs +0 -39
- package/esm2020/page-objects/components/datetime-picker/datetime-picker.component.mjs +0 -52
- package/esm2020/page-objects/components/dialogs/adf-confirm-dialog.component.mjs +0 -35
- package/esm2020/page-objects/components/dialogs/adf-folder-dialog.component.mjs +0 -56
- package/esm2020/page-objects/components/dialogs/adf-library-dialog.component.mjs +0 -63
- package/esm2020/page-objects/components/dialogs/content-node-selector-dialog.mjs +0 -67
- package/esm2020/page-objects/components/dialogs/create-from-template-dialog-component.mjs +0 -54
- package/esm2020/page-objects/components/dialogs/delete-trash-dialog.component.mjs +0 -53
- package/esm2020/page-objects/components/dialogs/edit-dialog.component.mjs +0 -38
- package/esm2020/page-objects/components/dialogs/link-rules.component.mjs +0 -57
- package/esm2020/page-objects/components/dialogs/password-overlay-dialog.component.mjs +0 -70
- package/esm2020/page-objects/components/dialogs/share-dialog.component.mjs +0 -84
- package/esm2020/page-objects/components/dialogs/upload-dialog.component.mjs +0 -35
- package/esm2020/page-objects/components/dialogs/upload-new-version-dialog.component.mjs +0 -37
- package/esm2020/page-objects/components/dialogs/viewer-overlay-dialog.component.mjs +0 -55
- package/esm2020/page-objects/components/error.component.mjs +0 -33
- package/esm2020/page-objects/components/manageRules/manage-rules-dialog.component.mjs +0 -63
- package/esm2020/page-objects/components/manageRules/manage-rules.component.mjs +0 -69
- package/esm2020/page-objects/components/pagination.component.mjs +0 -173
- package/esm2020/page-objects/components/search/search-filters/search-filters-categories.component.mjs +0 -32
- package/esm2020/page-objects/components/search/search-filters/search-filters-date.component.mjs +0 -114
- package/esm2020/page-objects/components/search/search-filters/search-filters-location.component.mjs +0 -39
- package/esm2020/page-objects/components/search/search-filters/search-filters-logic.component.mjs +0 -35
- package/esm2020/page-objects/components/search/search-filters/search-filters-properties.component.mjs +0 -82
- package/esm2020/page-objects/components/search/search-filters/search-filters-tags.component.mjs +0 -39
- package/esm2020/page-objects/components/search/search-filters.component.mjs +0 -44
- package/esm2020/page-objects/components/search/search-input.component.mjs +0 -47
- package/esm2020/page-objects/components/search/search-overlay.components.mjs +0 -82
- package/esm2020/page-objects/components/search/search-sorting-picker.components.mjs +0 -71
- package/esm2020/page-objects/components/sidenav.component.mjs +0 -86
- package/esm2020/page-objects/components/snackBar/snack-bar.component.mjs +0 -53
- package/esm2020/page-objects/components/spinner.component.mjs +0 -40
- package/esm2020/page-objects/components/viewer.component.mjs +0 -92
- package/esm2020/page-objects/pages/base.page.mjs +0 -80
- package/esm2020/page-objects/pages/favorites-libraries.page.mjs +0 -42
- package/esm2020/page-objects/pages/favorites.page.mjs +0 -48
- package/esm2020/page-objects/pages/login.page.mjs +0 -61
- package/esm2020/page-objects/pages/my-libraries.page.mjs +0 -53
- package/esm2020/page-objects/pages/nodes.page.mjs +0 -39
- package/esm2020/page-objects/pages/personal-files.page.mjs +0 -84
- package/esm2020/page-objects/pages/recent-files.page.mjs +0 -44
- package/esm2020/page-objects/pages/search.page.mjs +0 -78
- package/esm2020/page-objects/pages/shared.page.mjs +0 -44
- package/esm2020/page-objects/pages/trash.page.mjs +0 -44
- package/esm2020/page-objects/playwright-base.mjs +0 -31
- package/esm2020/resources/test-files/index.mjs +0 -78
- package/esm2020/utils/logger.mjs +0 -69
- package/esm2020/utils/utils.mjs +0 -144
- package/fesm2015/alfresco-aca-playwright-shared.mjs +0 -6267
- package/fesm2015/alfresco-aca-playwright-shared.mjs.map +0 -1
- package/fesm2020/alfresco-aca-playwright-shared.mjs.map +0 -1
- /package/{esm2020 → esm2022}/alfresco-aca-playwright-shared.mjs +0 -0
- /package/{esm2020 → esm2022}/api/index.mjs +0 -0
- /package/{esm2020 → esm2022}/api/node-content-tree.mjs +0 -0
- /package/{esm2020 → esm2022}/base-config/global-variables.mjs +0 -0
- /package/{esm2020 → esm2022}/base-config/global.setup.mjs +0 -0
- /package/{esm2020 → esm2022}/base-config/index.mjs +0 -0
- /package/{esm2020 → esm2022}/base-config/playwright.config.mjs +0 -0
- /package/{esm2020 → esm2022}/base-config/report-portal.config.mjs +0 -0
- /package/{esm2020 → esm2022}/fixtures/index.mjs +0 -0
- /package/{esm2020 → esm2022}/fixtures/page-initialization.mjs +0 -0
- /package/{esm2020 → esm2022}/models/custom-config.mjs +0 -0
- /package/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/page-objects/components/dataTable/index.mjs +0 -0
- /package/{esm2020 → esm2022}/page-objects/components/dialogs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/page-objects/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/page-objects/components/manageRules/index.mjs +0 -0
- /package/{esm2020 → esm2022}/page-objects/index.mjs +0 -0
- /package/{esm2020 → esm2022}/page-objects/pages/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/resources/index.mjs +0 -0
- /package/{esm2020 → esm2022}/resources/test-data/index.mjs +0 -0
- /package/{esm2020 → esm2022}/resources/test-data/test-data-files-folders.mjs +0 -0
- /package/{esm2020 → esm2022}/resources/test-data/test-data-permissions.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/api.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/config.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/error-strings.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/exclude-tests.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/library-errors.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/paths.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/state-helper.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/timeouts.mjs +0 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Alfresco Example Content Application
|
|
5
|
+
*
|
|
6
|
+
* This file is part of the Alfresco Example Content Application.
|
|
7
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
8
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
9
|
+
* provided under the following open source license terms:
|
|
10
|
+
*
|
|
11
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
12
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
13
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
14
|
+
* (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU Lesser General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
+
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
23
|
+
*/
|
|
24
|
+
import { ApiClientFactory } from './api-client-factory';
|
|
25
|
+
import * as crypto from 'crypto';
|
|
26
|
+
export class RulesApi {
|
|
27
|
+
apiService;
|
|
28
|
+
constructor() {
|
|
29
|
+
this.apiService = new ApiClientFactory();
|
|
30
|
+
}
|
|
31
|
+
static async initialize(userName, password) {
|
|
32
|
+
const classObj = new RulesApi();
|
|
33
|
+
await classObj.apiService.setUpAcaBackend(userName, password);
|
|
34
|
+
return classObj;
|
|
35
|
+
}
|
|
36
|
+
callApi(path, httpMethod, body = {}) {
|
|
37
|
+
// APIs used by this service are still private and not yet available for public use
|
|
38
|
+
const params = [{}, {}, {}, {}, body, ['application/json'], ['application/json']];
|
|
39
|
+
return this.apiService.alfrescoApi.contentPrivateClient.callApi(path, httpMethod, ...params);
|
|
40
|
+
}
|
|
41
|
+
async createRule(nodeId, rule, ruleSetId = '-default-') {
|
|
42
|
+
const response = await this.callApi(`/nodes/${nodeId}/rule-sets/${ruleSetId}/rules`, 'POST', { ...rule });
|
|
43
|
+
return response.entry;
|
|
44
|
+
}
|
|
45
|
+
async createRandomRule(folderId, ruleName) {
|
|
46
|
+
const randomActionsIndex = crypto.randomInt(0, ActionTypes.actions.length);
|
|
47
|
+
const randomAction = ActionTypes.actions[randomActionsIndex];
|
|
48
|
+
return this.createRule(folderId, {
|
|
49
|
+
name: ruleName,
|
|
50
|
+
isEnabled: true,
|
|
51
|
+
actions: [randomAction]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async createRandomRuleWithMultipleConditions(folderId, ruleName, numOfConditions) {
|
|
55
|
+
if (numOfConditions > ConditionsTypes.conditions.length) {
|
|
56
|
+
numOfConditions = ConditionsTypes.conditions.length;
|
|
57
|
+
}
|
|
58
|
+
const randomActionsIndex = crypto.randomInt(0, ActionTypes.actions.length);
|
|
59
|
+
const randomAction = ActionTypes.actions[randomActionsIndex];
|
|
60
|
+
const conditionsArray = [];
|
|
61
|
+
for (let i = 0; i < numOfConditions; i++) {
|
|
62
|
+
const randomIndex = crypto.randomInt(0, ConditionsTypes.conditions.length);
|
|
63
|
+
const randomCondition = ConditionsTypes.conditions[randomIndex];
|
|
64
|
+
conditionsArray.push(randomCondition);
|
|
65
|
+
}
|
|
66
|
+
return this.createRule(folderId, {
|
|
67
|
+
name: ruleName,
|
|
68
|
+
isEnabled: true,
|
|
69
|
+
actions: [randomAction],
|
|
70
|
+
conditions: {
|
|
71
|
+
inverted: false,
|
|
72
|
+
booleanMode: 'and',
|
|
73
|
+
compositeConditions: conditionsArray
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
async createRandomRuleWithMultipleActions(folderId, ruleName, numOfActions) {
|
|
78
|
+
if (numOfActions > ActionTypes.actions.length) {
|
|
79
|
+
numOfActions = ActionTypes.actions.length;
|
|
80
|
+
}
|
|
81
|
+
const actionsArray = [];
|
|
82
|
+
for (let i = 0; i < numOfActions; i++) {
|
|
83
|
+
const randomIndex = crypto.randomInt(0, ActionTypes.actions.length);
|
|
84
|
+
const randomAction = ActionTypes.actions[randomIndex];
|
|
85
|
+
actionsArray.push(randomAction);
|
|
86
|
+
}
|
|
87
|
+
return this.createRule(folderId, {
|
|
88
|
+
name: ruleName,
|
|
89
|
+
isEnabled: true,
|
|
90
|
+
actions: actionsArray
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async createRandomComplexRule(folderId, ruleName, numOfConditions, numOfActions, ruleDescription) {
|
|
94
|
+
if (numOfConditions > ConditionsTypes.conditions.length) {
|
|
95
|
+
numOfConditions = ConditionsTypes.conditions.length;
|
|
96
|
+
}
|
|
97
|
+
const conditionsArray = [];
|
|
98
|
+
for (let i = 0; i < numOfConditions; i++) {
|
|
99
|
+
const randomIndex = crypto.randomInt(0, ConditionsTypes.conditions.length);
|
|
100
|
+
const randomCondition = ConditionsTypes.conditions[randomIndex];
|
|
101
|
+
conditionsArray.push(randomCondition);
|
|
102
|
+
}
|
|
103
|
+
if (numOfActions > ActionTypes.actions.length) {
|
|
104
|
+
numOfActions = ActionTypes.actions.length;
|
|
105
|
+
}
|
|
106
|
+
const actionsArray = [];
|
|
107
|
+
for (let i = 0; i < numOfActions; i++) {
|
|
108
|
+
const randomIndex = crypto.randomInt(0, ActionTypes.actions.length);
|
|
109
|
+
const randomAction = ActionTypes.actions[randomIndex];
|
|
110
|
+
actionsArray.push(randomAction);
|
|
111
|
+
}
|
|
112
|
+
return this.createRule(folderId, {
|
|
113
|
+
name: ruleName,
|
|
114
|
+
description: ruleDescription,
|
|
115
|
+
isEnabled: true,
|
|
116
|
+
actions: actionsArray,
|
|
117
|
+
conditions: {
|
|
118
|
+
inverted: false,
|
|
119
|
+
booleanMode: 'and',
|
|
120
|
+
compositeConditions: conditionsArray
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
async createRuleWithRandomAspects(folderId, ruleName) {
|
|
125
|
+
return this.createRule(folderId, {
|
|
126
|
+
name: ruleName,
|
|
127
|
+
isEnabled: true,
|
|
128
|
+
actions: [
|
|
129
|
+
{
|
|
130
|
+
actionDefinitionId: 'add-features',
|
|
131
|
+
params: {
|
|
132
|
+
'aspect-name': 'sc:controlsAreClearance'
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
actionDefinitionId: 'add-features',
|
|
137
|
+
params: {
|
|
138
|
+
'aspect-name': 'sfdc:objectModel'
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
actionDefinitionId: 'add-features',
|
|
143
|
+
params: {
|
|
144
|
+
'aspect-name': 'sfdc:folder'
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
async createRuleWithDestinationFolder(folderId, ruleName, actionType, destinationFolderId) {
|
|
151
|
+
return this.createRule(folderId, {
|
|
152
|
+
name: ruleName,
|
|
153
|
+
isEnabled: true,
|
|
154
|
+
actions: [
|
|
155
|
+
{
|
|
156
|
+
actionDefinitionId: actionType,
|
|
157
|
+
params: {
|
|
158
|
+
'destination-folder': destinationFolderId
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
class ActionTypes {
|
|
166
|
+
key;
|
|
167
|
+
value;
|
|
168
|
+
static ADDFEATURES = new ActionTypes('ADDFEATURES', {
|
|
169
|
+
actionDefinitionId: 'add-features',
|
|
170
|
+
params: { 'aspect-name': 'cm:thumbnailed' }
|
|
171
|
+
});
|
|
172
|
+
static CHECKIN = new ActionTypes('CHECKIN', {
|
|
173
|
+
actionDefinitionId: 'check-in',
|
|
174
|
+
params: {
|
|
175
|
+
description: 'test',
|
|
176
|
+
minorChange: true
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
static SPECIALISETYPE = new ActionTypes('SPECIALISETYPE', {
|
|
180
|
+
actionDefinitionId: 'specialise-type',
|
|
181
|
+
params: { 'type-name': 'sys:base' }
|
|
182
|
+
});
|
|
183
|
+
static RECORDABLEVERSION = new ActionTypes('RECORDABLEVERSION', {
|
|
184
|
+
actionDefinitionId: 'recordable-version-config',
|
|
185
|
+
params: { version: 'ALL' }
|
|
186
|
+
});
|
|
187
|
+
static SETPROPERTYVALUE = new ActionTypes('SETPROPERTYVALUE', {
|
|
188
|
+
actionDefinitionId: 'set-property-value',
|
|
189
|
+
params: { property: 'dl:ganttPercentComplete', value: 'test' }
|
|
190
|
+
});
|
|
191
|
+
static actions = [
|
|
192
|
+
ActionTypes.ADDFEATURES.value,
|
|
193
|
+
ActionTypes.CHECKIN.value,
|
|
194
|
+
ActionTypes.RECORDABLEVERSION.value,
|
|
195
|
+
ActionTypes.SPECIALISETYPE.value,
|
|
196
|
+
ActionTypes.SETPROPERTYVALUE.value
|
|
197
|
+
];
|
|
198
|
+
constructor(key, value) {
|
|
199
|
+
this.key = key;
|
|
200
|
+
this.value = value;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
export { ActionTypes };
|
|
204
|
+
class ConditionsTypes {
|
|
205
|
+
key;
|
|
206
|
+
value;
|
|
207
|
+
static MIMETYPE = new ConditionsTypes('MIMETYPE', {
|
|
208
|
+
inverted: false,
|
|
209
|
+
booleanMode: 'and',
|
|
210
|
+
simpleConditions: [
|
|
211
|
+
{
|
|
212
|
+
field: 'mimetype',
|
|
213
|
+
comparator: 'equals',
|
|
214
|
+
parameter: 'video/3gpp'
|
|
215
|
+
}
|
|
216
|
+
]
|
|
217
|
+
});
|
|
218
|
+
static CMNAME = new ConditionsTypes('CM:NAME', {
|
|
219
|
+
inverted: false,
|
|
220
|
+
booleanMode: 'and',
|
|
221
|
+
simpleConditions: [
|
|
222
|
+
{
|
|
223
|
+
field: 'cm:name',
|
|
224
|
+
comparator: 'equals',
|
|
225
|
+
parameter: 'testname'
|
|
226
|
+
}
|
|
227
|
+
]
|
|
228
|
+
});
|
|
229
|
+
static SIZE = new ConditionsTypes('SIZE', {
|
|
230
|
+
inverted: false,
|
|
231
|
+
booleanMode: 'and',
|
|
232
|
+
simpleConditions: [
|
|
233
|
+
{
|
|
234
|
+
field: 'size',
|
|
235
|
+
comparator: 'equals',
|
|
236
|
+
parameter: '345'
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
});
|
|
240
|
+
static TAG = new ConditionsTypes('TAG', {
|
|
241
|
+
inverted: false,
|
|
242
|
+
booleanMode: 'and',
|
|
243
|
+
simpleConditions: [
|
|
244
|
+
{
|
|
245
|
+
field: 'tag',
|
|
246
|
+
comparator: 'equals',
|
|
247
|
+
parameter: 'testtag'
|
|
248
|
+
}
|
|
249
|
+
]
|
|
250
|
+
});
|
|
251
|
+
static conditions = [ConditionsTypes.MIMETYPE.value, ConditionsTypes.CMNAME.value, ConditionsTypes.SIZE.value, ConditionsTypes.TAG.value];
|
|
252
|
+
constructor(key, value) {
|
|
253
|
+
this.key = key;
|
|
254
|
+
this.value = value;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
export { ConditionsTypes };
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXBsYXl3cmlnaHQtc2hhcmVkL3NyYy9hcGkvcnVsZXMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFakMsTUFBTSxPQUFPLFFBQVE7SUFDWCxVQUFVLENBQW1CO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsUUFBaUI7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sT0FBTyxDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLE9BQWUsRUFBRTtRQUNqRSxtRkFBbUY7UUFDbkYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNsRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYyxFQUFFLElBQW1CLEVB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RyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRTtRQUMvQyxRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLGdCQUFnQixFQUFFO1lBQ2hCO2dCQUNFLEtBQUssRUFBRSxLQUFLO2dCQUNaLFVBQVUsRUFBRSxRQUFRO2dCQUNwQixTQUFTLEVBQUUsU0FBUzthQUNyQjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFVLFVBQVUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkosWUFBbUIsR0FBVyxFQUFTLEtBQTJCO1FBQS9DLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFzQjtJQUFHLENBQUM7O1NBOUMzRCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEFwaUNsaWVudEZhY3RvcnkgfSBmcm9tICcuL2FwaS1jbGllbnQtZmFjdG9yeSc7XG5pbXBvcnQgeyBBY2FGb2xkZXJSdWxlc01vZHVsZSB9IGZyb20gJ0BhbGZyZXNjby9hY2EtY29udGVudC9mb2xkZXItcnVsZXMnO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmV4cG9ydCBjbGFzcyBSdWxlc0FwaSB7XG4gIHByaXZhdGUgYXBpU2VydmljZTogQXBpQ2xpZW50RmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFwaVNlcnZpY2UgPSBuZXcgQXBpQ2xpZW50RmFjdG9yeSgpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGluaXRpYWxpemUodXNlck5hbWU6IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcpOiBQcm9taXNlPFJ1bGVzQXBpPiB7XG4gICAgY29uc3QgY2xhc3NPYmogPSBuZXcgUnVsZXNBcGkoKTtcbiAgICBhd2FpdCBjbGFzc09iai5hcGlTZXJ2aWNlLnNldFVwQWNhQmFja2VuZCh1c2VyTmFtZSwgcGFzc3dvcmQpO1xuICAgIHJldHVybiBjbGFzc09iajtcbiAgfVxuXG4gIHByaXZhdGUgY2FsbEFwaShwYXRoOiBzdHJpbmcsIGh0dHBNZXRob2Q6IHN0cmluZywgYm9keTogb2JqZWN0ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIEFQSXMgdXNlZCBieSB0aGlzIHNlcnZpY2UgYXJlIHN0aWxsIHByaXZhdGUgYW5kIG5vdCB5ZXQgYXZhaWxhYmxlIGZvciBwdWJsaWMgdXNlXG4gICAgY29uc3QgcGFyYW1zID0gW3t9LCB7fSwge30sIHt9LCBib2R5LCBbJ2FwcGxpY2F0aW9uL2pzb24nXSwgWydhcHBsaWNhdGlvbi9qc29uJ11dO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuYWxmcmVzY29BcGkuY29udGVudFByaXZhdGVDbGllbnQuY2FsbEFwaShwYXRoLCBodHRwTWV0aG9kLCAuLi5wYXJhbXMpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUnVsZShub2RlSWQ6IHN0cmluZywgcnVsZTogUGFydGlhbDxSdWxlPiwgcnVsZVNldElkOiBzdHJpbmcgPSAnLWRlZmF1bHQtJyk6IFByb21pc2U8UnVsZT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQXBpKGAvbm9kZXMvJHtub2RlSWR9L3J1bGUtc2V0cy8ke3J1bGVTZXRJZH0vcnVsZXNgLCAnUE9TVCcsIHsgLi4ucnVsZSB9KTtcbiAgICByZXR1cm4gcmVzcG9uc2UuZW50cnk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSYW5kb21SdWxlKGZvbGRlcklkOiBzdHJpbmcsIHJ1bGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFJ1bGU+IHtcbiAgICBjb25zdCByYW5kb21BY3Rpb25zSW5kZXggPSBjcnlwdG8ucmFuZG9tSW50KDAsIEFjdGlvblR5cGVzLmFjdGlvbnMubGVuZ3RoKTtcbiAgICBjb25zdCByYW5kb21BY3Rpb24gPSBBY3Rpb25UeXBlcy5hY3Rpb25zW3JhbmRvbUFjdGlvbnNJbmRleF07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUnVsZShmb2xkZXJJZCwge1xuICAgICAgbmFtZTogcnVsZU5hbWUsXG4gICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICBhY3Rpb25zOiBbcmFuZG9tQWN0aW9uXVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUmFuZG9tUnVsZVdpdGhNdWx0aXBsZUNvbmRpdGlvbnMoZm9sZGVySWQ6IHN0cmluZywgcnVsZU5hbWU6IHN0cmluZywgbnVtT2ZDb25kaXRpb25zOiBudW1iZXIpOiBQcm9taXNlPFJ1bGU+IHtcbiAgICBpZiAobnVtT2ZDb25kaXRpb25zID4gQ29uZGl0aW9uc1R5cGVzLmNvbmRpdGlvbnMubGVuZ3RoKSB7XG4gICAgICBudW1PZkNvbmRpdGlvbnMgPSBDb25kaXRpb25zVHlwZXMuY29uZGl0aW9ucy5sZW5ndGg7XG4gICAgfVxuICAgIGNvbnN0IHJhbmRvbUFjdGlvbnNJbmRleCA9IGNyeXB0by5yYW5kb21JbnQoMCwgQWN0aW9uVHlwZXMuYWN0aW9ucy5sZW5ndGgpO1xuICAgIGNvbnN0IHJhbmRvbUFjdGlvbiA9IEFjdGlvblR5cGVzLmFjdGlvbnNbcmFuZG9tQWN0aW9uc0luZGV4XTtcbiAgICBjb25zdCBjb25kaXRpb25zQXJyYXkgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU9mQ29uZGl0aW9uczsgaSsrKSB7XG4gICAgICBjb25zdCByYW5kb21JbmRleCA9IGNyeXB0by5yYW5kb21JbnQoMCwgQ29uZGl0aW9uc1R5cGVzLmNvbmRpdGlvbnMubGVuZ3RoKTtcbiAgICAgIGNvbnN0IHJhbmRvbUNvbmRpdGlvbiA9IENvbmRpdGlvbnNUeXBlcy5jb25kaXRpb25zW3JhbmRvbUluZGV4XTtcbiAgICAgIGNvbmRpdGlvbnNBcnJheS5wdXNoKHJhbmRvbUNvbmRpdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJ1bGUoZm9sZGVySWQsIHtcbiAgICAgIG5hbWU6IHJ1bGVOYW1lLFxuICAgICAgaXNFbmFibGVkOiB0cnVlLFxuICAgICAgYWN0aW9uczogW3JhbmRvbUFjdGlvbl0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIGludmVydGVkOiBmYWxzZSxcbiAgICAgICAgYm9vbGVhbk1vZGU6ICdhbmQnLFxuICAgICAgICBjb21wb3NpdGVDb25kaXRpb25zOiBjb25kaXRpb25zQXJyYXlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVJhbmRvbVJ1bGVXaXRoTXVsdGlwbGVBY3Rpb25zKGZvbGRlcklkOiBzdHJpbmcsIHJ1bGVOYW1lOiBzdHJpbmcsIG51bU9mQWN0aW9uczogbnVtYmVyKTogUHJvbWlzZTxSdWxlPiB7XG4gICAgaWYgKG51bU9mQWN0aW9ucyA+IEFjdGlvblR5cGVzLmFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICBudW1PZkFjdGlvbnMgPSBBY3Rpb25UeXBlcy5hY3Rpb25zLmxlbmd0aDtcbiAgICB9XG4gICAgY29uc3QgYWN0aW9uc0FycmF5ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1PZkFjdGlvbnM7IGkrKykge1xuICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBjcnlwdG8ucmFuZG9tSW50KDAsIEFjdGlvblR5cGVzLmFjdGlvbnMubGVuZ3RoKTtcbiAgICAgIGNvbnN0IHJhbmRvbUFjdGlvbiA9IEFjdGlvblR5cGVzLmFjdGlvbnNbcmFuZG9tSW5kZXhdO1xuICAgICAgYWN0aW9uc0FycmF5LnB1c2gocmFuZG9tQWN0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUnVsZShmb2xkZXJJZCwge1xuICAgICAgbmFtZTogcnVsZU5hbWUsXG4gICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICBhY3Rpb25zOiBhY3Rpb25zQXJyYXlcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVJhbmRvbUNvbXBsZXhSdWxlKFxuICAgIGZvbGRlcklkOiBzdHJpbmcsXG4gICAgcnVsZU5hbWU6IHN0cmluZyxcbiAgICBudW1PZkNvbmRpdGlvbnM6IG51bWJlcixcbiAgICBudW1PZkFjdGlvbnM6IG51bWJlcixcbiAgICBydWxlRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxSdWxlPiB7XG4gICAgaWYgKG51bU9mQ29uZGl0aW9ucyA+IENvbmRpdGlvbnNUeXBlcy5jb25kaXRpb25zLmxlbmd0aCkge1xuICAgICAgbnVtT2ZDb25kaXRpb25zID0gQ29uZGl0aW9uc1R5cGVzLmNvbmRpdGlvbnMubGVuZ3RoO1xuICAgIH1cbiAgICBjb25zdCBjb25kaXRpb25zQXJyYXkgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU9mQ29uZGl0aW9uczsgaSsrKSB7XG4gICAgICBjb25zdCByYW5kb21JbmRleCA9IGNyeXB0by5yYW5kb21JbnQoMCwgQ29uZGl0aW9uc1R5cGVzLmNvbmRpdGlvbnMubGVuZ3RoKTtcbiAgICAgIGNvbnN0IHJhbmRvbUNvbmRpdGlvbiA9IENvbmRpdGlvbnNUeXBlcy5jb25kaXRpb25zW3JhbmRvbUluZGV4XTtcbiAgICAgIGNvbmRpdGlvbnNBcnJheS5wdXNoKHJhbmRvbUNvbmRpdGlvbik7XG4gICAgfVxuICAgIGlmIChudW1PZkFjdGlvbnMgPiBBY3Rpb25UeXBlcy5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgbnVtT2ZBY3Rpb25zID0gQWN0aW9uVHlwZXMuYWN0aW9ucy5sZW5ndGg7XG4gICAgfVxuICAgIGNvbnN0IGFjdGlvbnNBcnJheSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtT2ZBY3Rpb25zOyBpKyspIHtcbiAgICAgIGNvbnN0IHJhbmRvbUluZGV4ID0gY3J5cHRvLnJhbmRvbUludCgwLCBBY3Rpb25UeXBlcy5hY3Rpb25zLmxlbmd0aCk7XG4gICAgICBjb25zdCByYW5kb21BY3Rpb24gPSBBY3Rpb25UeXBlcy5hY3Rpb25zW3JhbmRvbUluZGV4XTtcbiAgICAgIGFjdGlvbnNBcnJheS5wdXNoKHJhbmRvbUFjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJ1bGUoZm9sZGVySWQsIHtcbiAgICAgIG5hbWU6IHJ1bGVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHJ1bGVEZXNjcmlwdGlvbixcbiAgICAgIGlzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGFjdGlvbnM6IGFjdGlvbnNBcnJheSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgaW52ZXJ0ZWQ6IGZhbHNlLFxuICAgICAgICBib29sZWFuTW9kZTogJ2FuZCcsXG4gICAgICAgIGNvbXBvc2l0ZUNvbmRpdGlvbnM6IGNvbmRpdGlvbnNBcnJheVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUnVsZVdpdGhSYW5kb21Bc3BlY3RzKGZvbGRlcklkOiBzdHJpbmcsIHJ1bGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFJ1bGU+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSdWxlKGZvbGRlcklkLCB7XG4gICAgICBuYW1lOiBydWxlTmFtZSxcbiAgICAgIGlzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogJ2FkZC1mZWF0dXJlcycsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAnYXNwZWN0LW5hbWUnOiAnc2M6Y29udHJvbHNBcmVDbGVhcmFuY2UnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiAnYWRkLWZlYXR1cmVzJyxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICdhc3BlY3QtbmFtZSc6ICdzZmRjOm9iamVjdE1vZGVsJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogJ2FkZC1mZWF0dXJlcycsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAnYXNwZWN0LW5hbWUnOiAnc2ZkYzpmb2xkZXInXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSdWxlV2l0aERlc3RpbmF0aW9uRm9sZGVyKFxuICAgIGZvbGRlcklkOiBzdHJpbmcsXG4gICAgcnVsZU5hbWU6IHN0cmluZyxcbiAgICBhY3Rpb25UeXBlOiAnbW92ZScgfCAnY29weScgfCAnaW1wb3J0JyxcbiAgICBkZXN0aW5hdGlvbkZvbGRlcklkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxSdWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUnVsZShmb2xkZXJJZCwge1xuICAgICAgbmFtZTogcnVsZU5hbWUsXG4gICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IGFjdGlvblR5cGUsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAnZGVzdGluYXRpb24tZm9sZGVyJzogZGVzdGluYXRpb25Gb2xkZXJJZFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuICB9XG59XG5cbnR5cGUgUnVsZVRyaWdnZXIgPSAnaW5ib3VuZCcgfCAndXBkYXRlJyB8ICdvdXRib3VuZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaXNFbmFibGVkOiBib29sZWFuO1xuICBpc0luaGVyaXRhYmxlOiBib29sZWFuO1xuICBpc0FzeW5jaHJvbm91czogYm9vbGVhbjtcbiAgZXJyb3JTY3JpcHQ6IHN0cmluZztcbiAgaXNTaGFyZWQ6IGJvb2xlYW47XG4gIHRyaWdnZXJzOiBSdWxlVHJpZ2dlcltdO1xuICBjb25kaXRpb25zOiBBY2FGb2xkZXJSdWxlc01vZHVsZTtcbiAgYWN0aW9uczogUnVsZUFjdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVBY3Rpb24ge1xuICBhY3Rpb25EZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25UeXBlcyB7XG4gIHN0YXRpYyByZWFkb25seSBBRERGRUFUVVJFUyA9IG5ldyBBY3Rpb25UeXBlcygnQURERkVBVFVSRVMnLCB7XG4gICAgYWN0aW9uRGVmaW5pdGlvbklkOiAnYWRkLWZlYXR1cmVzJyxcbiAgICBwYXJhbXM6IHsgJ2FzcGVjdC1uYW1lJzogJ2NtOnRodW1ibmFpbGVkJyB9XG4gIH0pO1xuICBzdGF0aWMgcmVhZG9ubHkgQ0hFQ0tJTiA9IG5ldyBBY3Rpb25UeXBlcygnQ0hFQ0tJTicsIHtcbiAgICBhY3Rpb25EZWZpbml0aW9uSWQ6ICdjaGVjay1pbicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Rlc3QnLFxuICAgICAgbWlub3JDaGFuZ2U6IHRydWVcbiAgICB9XG4gIH0pO1xuICBzdGF0aWMgcmVhZG9ubHkgU1BFQ0lBTElTRVRZUEUgPSBuZXcgQWN0aW9uVHlwZXMoJ1NQRUNJQUxJU0VUWVBFJywge1xuICAgIGFjdGlvbkRlZmluaXRpb25JZDogJ3NwZWNpYWxpc2UtdHlwZScsXG4gICAgcGFyYW1zOiB7ICd0eXBlLW5hbWUnOiAnc3lzOmJhc2UnIH1cbiAgfSk7XG4gIHN0YXRpYyByZWFkb25seSBSRUNPUkRBQkxFVkVSU0lPTiA9IG5ldyBBY3Rpb25UeXBlcygnUkVDT1JEQUJMRVZFUlNJT04nLCB7XG4gICAgYWN0aW9uRGVmaW5pdGlvbklkOiAncmVjb3JkYWJsZS12ZXJzaW9uLWNvbmZpZycsXG4gICAgcGFyYW1zOiB7IHZlcnNpb246ICdBTEwnIH1cbiAgfSk7XG4gIHN0YXRpYyByZWFkb25seSBTRVRQUk9QRVJUWVZBTFVFID0gbmV3IEFjdGlvblR5cGVzKCdTRVRQUk9QRVJUWVZBTFVFJywge1xuICAgIGFjdGlvbkRlZmluaXRpb25JZDogJ3NldC1wcm9wZXJ0eS12YWx1ZScsXG4gICAgcGFyYW1zOiB7IHByb3BlcnR5OiAnZGw6Z2FudHRQZXJjZW50Q29tcGxldGUnLCB2YWx1ZTogJ3Rlc3QnIH1cbiAgfSk7XG4gIHN0YXRpYyByZWFkb25seSBhY3Rpb25zID0gW1xuICAgIEFjdGlvblR5cGVzLkFEREZFQVRVUkVTLnZhbHVlLFxuICAgIEFjdGlvblR5cGVzLkNIRUNLSU4udmFsdWUsXG4gICAgQWN0aW9uVHlwZXMuUkVDT1JEQUJMRVZFUlNJT04udmFsdWUsXG4gICAgQWN0aW9uVHlwZXMuU1BFQ0lBTElTRVRZUEUudmFsdWUsXG4gICAgQWN0aW9uVHlwZXMuU0VUUFJPUEVSVFlWQUxVRS52YWx1ZVxuICBdO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMga2V5OiBzdHJpbmcsIHB1YmxpYyB2YWx1ZTogUnVsZUFjdGlvbikge31cbn1cblxuZXhwb3J0IGNsYXNzIENvbmRpdGlvbnNUeXBlcyB7XG4gIHN0YXRpYyByZWFkb25seSBNSU1FVFlQRSA9IG5ldyBDb25kaXRpb25zVHlwZXMoJ01JTUVUWVBFJywge1xuICAgIGludmVydGVkOiBmYWxzZSxcbiAgICBib29sZWFuTW9kZTogJ2FuZCcsXG4gICAgc2ltcGxlQ29uZGl0aW9uczogW1xuICAgICAge1xuICAgICAgICBmaWVsZDogJ21pbWV0eXBlJyxcbiAgICAgICAgY29tcGFyYXRvcjogJ2VxdWFscycsXG4gICAgICAgIHBhcmFtZXRlcjogJ3ZpZGVvLzNncHAnXG4gICAgICB9XG4gICAgXVxuICB9KTtcbiAgc3RhdGljIHJlYWRvbmx5IENNTkFNRSA9IG5ldyBDb25kaXRpb25zVHlwZXMoJ0NNOk5BTUUnLCB7XG4gICAgaW52ZXJ0ZWQ6IGZhbHNlLFxuICAgIGJvb2xlYW5Nb2RlOiAnYW5kJyxcbiAgICBzaW1wbGVDb25kaXRpb25zOiBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiAnY206bmFtZScsXG4gICAgICAgIGNvbXBhcmF0b3I6ICdlcXVhbHMnLFxuICAgICAgICBwYXJhbWV0ZXI6ICd0ZXN0bmFtZSdcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xuICBzdGF0aWMgcmVhZG9ubHkgU0laRSA9IG5ldyBDb25kaXRpb25zVHlwZXMoJ1NJWkUnLCB7XG4gICAgaW52ZXJ0ZWQ6IGZhbHNlLFxuICAgIGJvb2xlYW5Nb2RlOiAnYW5kJyxcbiAgICBzaW1wbGVDb25kaXRpb25zOiBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiAnc2l6ZScsXG4gICAgICAgIGNvbXBhcmF0b3I6ICdlcXVhbHMnLFxuICAgICAgICBwYXJhbWV0ZXI6ICczNDUnXG4gICAgICB9XG4gICAgXVxuICB9KTtcbiAgc3RhdGljIHJlYWRvbmx5IFRBRyA9IG5ldyBDb25kaXRpb25zVHlwZXMoJ1RBRycsIHtcbiAgICBpbnZlcnRlZDogZmFsc2UsXG4gICAgYm9vbGVhbk1vZGU6ICdhbmQnLFxuICAgIHNpbXBsZUNvbmRpdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6ICd0YWcnLFxuICAgICAgICBjb21wYXJhdG9yOiAnZXF1YWxzJyxcbiAgICAgICAgcGFyYW1ldGVyOiAndGVzdHRhZydcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xuICBzdGF0aWMgcmVhZG9ubHkgY29uZGl0aW9ucyA9IFtDb25kaXRpb25zVHlwZXMuTUlNRVRZUEUudmFsdWUsIENvbmRpdGlvbnNUeXBlcy5DTU5BTUUudmFsdWUsIENvbmRpdGlvbnNUeXBlcy5TSVpFLnZhbHVlLCBDb25kaXRpb25zVHlwZXMuVEFHLnZhbHVlXTtcbiAgY29uc3RydWN0b3IocHVibGljIGtleTogc3RyaW5nLCBwdWJsaWMgdmFsdWU6IEFjYUZvbGRlclJ1bGVzTW9kdWxlKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Alfresco Example Content Application
|
|
5
|
+
*
|
|
6
|
+
* This file is part of the Alfresco Example Content Application.
|
|
7
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
8
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
9
|
+
* provided under the following open source license terms:
|
|
10
|
+
*
|
|
11
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
12
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
13
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
14
|
+
* (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU Lesser General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
+
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
23
|
+
*/
|
|
24
|
+
import { ApiClientFactory } from './api-client-factory';
|
|
25
|
+
import { Utils } from '../utils';
|
|
26
|
+
import { ResultSetPaging } from '@alfresco/js-api';
|
|
27
|
+
export class SearchPageApi {
|
|
28
|
+
apiService;
|
|
29
|
+
constructor() {
|
|
30
|
+
this.apiService = new ApiClientFactory();
|
|
31
|
+
}
|
|
32
|
+
static async initialize(userName, password) {
|
|
33
|
+
const classObj = new SearchPageApi();
|
|
34
|
+
await classObj.apiService.setUpAcaBackend(userName, password);
|
|
35
|
+
return classObj;
|
|
36
|
+
}
|
|
37
|
+
async querySearchFiles(username) {
|
|
38
|
+
const data = {
|
|
39
|
+
query: {
|
|
40
|
+
query: '*',
|
|
41
|
+
language: 'afts'
|
|
42
|
+
},
|
|
43
|
+
filterQueries: [
|
|
44
|
+
{ query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },
|
|
45
|
+
{ query: `cm:modifier:${username} OR cm:creator:${username}` },
|
|
46
|
+
{ query: `TYPE:"content" AND -TYPE:"app:filelink" AND -TYPE:"fm:post"` }
|
|
47
|
+
]
|
|
48
|
+
};
|
|
49
|
+
try {
|
|
50
|
+
return this.apiService.search.search(data);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return new ResultSetPaging();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async getTotalItems(username) {
|
|
57
|
+
return (await this.querySearchFiles(username)).list.pagination.totalItems;
|
|
58
|
+
}
|
|
59
|
+
async waitForApi(username, data) {
|
|
60
|
+
try {
|
|
61
|
+
const searchFiles = async () => {
|
|
62
|
+
const totalItems = await this.getTotalItems(username);
|
|
63
|
+
if (totalItems !== data.expect) {
|
|
64
|
+
return Promise.reject(totalItems);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return Promise.resolve(totalItems);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return await Utils.retryCall(searchFiles);
|
|
71
|
+
}
|
|
72
|
+
catch { }
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1wbGF5d3JpZ2h0LXNoYXJlZC9zcmMvYXBpL3NlYXJjaC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sYUFBYTtJQUNoQixVQUFVLENBQW1CO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsUUFBaUI7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQWdCO1FBQzdDLE1BQU0sSUFBSSxHQUFHO1lBQ1gsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxHQUFHO2dCQUNWLFFBQVEsRUFBRSxNQUFNO2FBQ2pCO1lBQ0QsYUFBYSxFQUFFO2dCQUNiLEVBQUUsS0FBSyxFQUFFLDhDQUE4QyxFQUFFO2dCQUN6RCxFQUFFLEtBQUssRUFBRSxlQUFlLFFBQVEsa0JBQWtCLFFBQVEsRUFBRSxFQUFFO2dCQUM5RCxFQUFFLEtBQUssRUFBRSw2REFBNkQsRUFBRTthQUN6RTtTQUNGLENBQUM7UUFFRixJQUFJO1lBQ0YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUM7UUFBQyxNQUFNO1lBQ04sT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDNUUsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBZ0IsRUFBRSxJQUF3QjtRQUN6RCxJQUFJO1lBQ0YsTUFBTSxXQUFXLEdBQUcsS0FBSyxJQUFJLEVBQUU7Z0JBQzdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDOUIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNuQztxQkFBTTtvQkFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3BDO1lBQ0gsQ0FBQyxDQUFDO1lBRUYsT0FBTyxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0M7UUFBQyxNQUFNLEdBQUU7SUFDWixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQXBpQ2xpZW50RmFjdG9yeSB9IGZyb20gJy4vYXBpLWNsaWVudC1mYWN0b3J5JztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmVzdWx0U2V0UGFnaW5nIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hQYWdlQXBpIHtcbiAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlDbGllbnRGYWN0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYXBpU2VydmljZSA9IG5ldyBBcGlDbGllbnRGYWN0b3J5KCk7XG4gIH1cbiAgc3RhdGljIGFzeW5jIGluaXRpYWxpemUodXNlck5hbWU6IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcpOiBQcm9taXNlPFNlYXJjaFBhZ2VBcGk+IHtcbiAgICBjb25zdCBjbGFzc09iaiA9IG5ldyBTZWFyY2hQYWdlQXBpKCk7XG4gICAgYXdhaXQgY2xhc3NPYmouYXBpU2VydmljZS5zZXRVcEFjYUJhY2tlbmQodXNlck5hbWUsIHBhc3N3b3JkKTtcbiAgICByZXR1cm4gY2xhc3NPYmo7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHF1ZXJ5U2VhcmNoRmlsZXModXNlcm5hbWU6IHN0cmluZyk6IFByb21pc2U8UmVzdWx0U2V0UGFnaW5nPiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIHF1ZXJ5OiAnKicsXG4gICAgICAgIGxhbmd1YWdlOiAnYWZ0cydcbiAgICAgIH0sXG4gICAgICBmaWx0ZXJRdWVyaWVzOiBbXG4gICAgICAgIHsgcXVlcnk6IGBjbTptb2RpZmllZDpbTk9XL0RBWS0zMERBWVMgVE8gTk9XL0RBWSsxREFZXWAgfSxcbiAgICAgICAgeyBxdWVyeTogYGNtOm1vZGlmaWVyOiR7dXNlcm5hbWV9IE9SIGNtOmNyZWF0b3I6JHt1c2VybmFtZX1gIH0sXG4gICAgICAgIHsgcXVlcnk6IGBUWVBFOlwiY29udGVudFwiIEFORCAtVFlQRTpcImFwcDpmaWxlbGlua1wiIEFORCAtVFlQRTpcImZtOnBvc3RcImAgfVxuICAgICAgXVxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5zZWFyY2guc2VhcmNoKGRhdGEpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG5ldyBSZXN1bHRTZXRQYWdpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRUb3RhbEl0ZW1zKHVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5xdWVyeVNlYXJjaEZpbGVzKHVzZXJuYW1lKSkubGlzdC5wYWdpbmF0aW9uLnRvdGFsSXRlbXM7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yQXBpKHVzZXJuYW1lOiBzdHJpbmcsIGRhdGE6IHsgZXhwZWN0OiBudW1iZXIgfSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2hGaWxlcyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgdG90YWxJdGVtcyA9IGF3YWl0IHRoaXMuZ2V0VG90YWxJdGVtcyh1c2VybmFtZSk7XG4gICAgICAgIGlmICh0b3RhbEl0ZW1zICE9PSBkYXRhLmV4cGVjdCkge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh0b3RhbEl0ZW1zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRvdGFsSXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgVXRpbHMucmV0cnlDYWxsKHNlYXJjaEZpbGVzKTtcbiAgICB9IGNhdGNoIHt9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Alfresco Example Content Application
|
|
5
|
+
*
|
|
6
|
+
* This file is part of the Alfresco Example Content Application.
|
|
7
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
8
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
9
|
+
* provided under the following open source license terms:
|
|
10
|
+
*
|
|
11
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
12
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
13
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
14
|
+
* (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU Lesser General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
+
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
23
|
+
*/
|
|
24
|
+
import { ApiClientFactory } from './api-client-factory';
|
|
25
|
+
import { SharedLinkPaging } from '@alfresco/js-api';
|
|
26
|
+
import { Utils } from '../utils';
|
|
27
|
+
export class SharedLinksApi {
|
|
28
|
+
apiService;
|
|
29
|
+
constructor() {
|
|
30
|
+
this.apiService = new ApiClientFactory();
|
|
31
|
+
}
|
|
32
|
+
static async initialize(userName, password) {
|
|
33
|
+
const classObj = new SharedLinksApi();
|
|
34
|
+
await classObj.apiService.setUpAcaBackend(userName, password);
|
|
35
|
+
return classObj;
|
|
36
|
+
}
|
|
37
|
+
async shareFileById(id, expireDate) {
|
|
38
|
+
try {
|
|
39
|
+
const data = {
|
|
40
|
+
nodeId: id,
|
|
41
|
+
expiresAt: expireDate
|
|
42
|
+
};
|
|
43
|
+
return this.apiService.share.createSharedLink(data);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async shareFilesByIds(ids, expireDate) {
|
|
50
|
+
const sharedLinks = [];
|
|
51
|
+
try {
|
|
52
|
+
if (ids && ids.length > 0) {
|
|
53
|
+
for (const id of ids) {
|
|
54
|
+
const sharedLink = await this.shareFileById(id, expireDate);
|
|
55
|
+
sharedLinks.push(sharedLink);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error(`SharedLinksApi shareFilesByIds : catch : `, error);
|
|
61
|
+
}
|
|
62
|
+
return sharedLinks;
|
|
63
|
+
}
|
|
64
|
+
async getSharedLinks(maxItems = 250) {
|
|
65
|
+
try {
|
|
66
|
+
const opts = {
|
|
67
|
+
maxItems
|
|
68
|
+
};
|
|
69
|
+
return this.apiService.share.listSharedLinks(opts);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error(`SharedLinksApi getSharedLinks : catch : `, error);
|
|
73
|
+
return new SharedLinkPaging();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async waitForFilesToBeShared(filesIds) {
|
|
77
|
+
try {
|
|
78
|
+
const sharedFile = async () => {
|
|
79
|
+
const sharedFiles = (await this.getSharedLinks()).list.entries.map((link) => link.entry.nodeId);
|
|
80
|
+
const foundItems = filesIds.every((id) => sharedFiles.includes(id));
|
|
81
|
+
if (foundItems) {
|
|
82
|
+
return Promise.resolve(foundItems);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return Promise.reject(foundItems);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return await Utils.retryCall(sharedFile);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error(`SharedLinksApi waitForFilesToBeShared : catch : ${error}`);
|
|
92
|
+
console.error(`\tWait timeout reached waiting for files to be shared`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async getSharedIdOfNode(fileId) {
|
|
96
|
+
try {
|
|
97
|
+
const sharedLinksEntries = (await this.getSharedLinks())?.list.entries;
|
|
98
|
+
const found = sharedLinksEntries.find((sharedLink) => sharedLink.entry.nodeId === fileId);
|
|
99
|
+
return found?.entry.id;
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error(`SharedLinksApi getSharedIdOfNode : catch : `, error);
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async unshareFileById(fileId) {
|
|
107
|
+
try {
|
|
108
|
+
const sharedId = await this.getSharedIdOfNode(fileId);
|
|
109
|
+
return this.apiService.share.deleteSharedLink(sharedId);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error(`SharedLinksApi unshareFileById : catch : `, error);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async waitForFilesToNotBeShared(filesIds) {
|
|
116
|
+
try {
|
|
117
|
+
const sharedFile = async () => {
|
|
118
|
+
const sharedFiles = (await this.getSharedLinks()).list.entries.map((link) => link.entry.nodeId);
|
|
119
|
+
const foundItems = filesIds.some((id) => {
|
|
120
|
+
return sharedFiles.includes(id);
|
|
121
|
+
});
|
|
122
|
+
if (foundItems) {
|
|
123
|
+
return Promise.reject(foundItems);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
return Promise.resolve(foundItems);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
return await Utils.retryCall(sharedFile);
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error(`SharedLinksApi waitForFilesToNotBeShared : catch : ${error}`);
|
|
133
|
+
console.error(`\tWait timeout reached waiting for files to no longer be shared`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWxpbmtzLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1wbGF5d3JpZ2h0LXNoYXJlZC9zcmMvYXBpL3NoYXJlZC1saW5rcy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxNQUFNLE9BQU8sY0FBYztJQUNqQixVQUFVLENBQW1CO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsUUFBaUI7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFVLEVBQUUsVUFBaUI7UUFDL0MsSUFBSTtZQUNGLE1BQU0sSUFBSSxHQUFHO2dCQUNYLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFNBQVMsRUFBRSxVQUFVO2FBQ3RCLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBYSxFQUFFLFVBQWlCO1FBQ3BELE1BQU0sV0FBVyxHQUFzQixFQUFFLENBQUM7UUFDMUMsSUFBSTtZQUNGLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN6QixLQUFLLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRTtvQkFDcEIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDNUQsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDOUI7YUFDRjtTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBbUIsR0FBRztRQUNqRCxJQUFJO1lBQ0YsTUFBTSxJQUFJLEdBQUc7Z0JBQ1gsUUFBUTthQUNULENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwRDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRSxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsUUFBa0I7UUFDN0MsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUM1QixNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2hHLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNwQztxQkFBTTtvQkFDTCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ25DO1lBQ0gsQ0FBQyxDQUFDO1lBRUYsT0FBTyxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELEtBQUssRUFBRSxDQUFDLENBQUM7WUFDM0UsT0FBTyxDQUFDLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQ3hFO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFjO1FBQzVDLElBQUk7WUFDRixNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3ZFLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDMUYsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUN4QjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRSxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBYztRQUNsQyxJQUFJO1lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMseUJBQXlCLENBQUMsUUFBa0I7UUFDaEQsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUM1QixNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRWhHLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDdEMsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLFVBQVUsRUFBRTtvQkFDZCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ25DO3FCQUFNO29CQUNMLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDcEM7WUFDSCxDQUFDLENBQUM7WUFFRixPQUFPLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx1REFBdUQsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM5RSxPQUFPLENBQUMsS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7U0FDbEY7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQXBpQ2xpZW50RmFjdG9yeSB9IGZyb20gJy4vYXBpLWNsaWVudC1mYWN0b3J5JztcbmltcG9ydCB7IFNoYXJlZExpbmtFbnRyeSwgU2hhcmVkTGlua1BhZ2luZyB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTaGFyZWRMaW5rc0FwaSB7XG4gIHByaXZhdGUgYXBpU2VydmljZTogQXBpQ2xpZW50RmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFwaVNlcnZpY2UgPSBuZXcgQXBpQ2xpZW50RmFjdG9yeSgpO1xuICB9XG4gIHN0YXRpYyBhc3luYyBpbml0aWFsaXplKHVzZXJOYW1lOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nKTogUHJvbWlzZTxTaGFyZWRMaW5rc0FwaT4ge1xuICAgIGNvbnN0IGNsYXNzT2JqID0gbmV3IFNoYXJlZExpbmtzQXBpKCk7XG4gICAgYXdhaXQgY2xhc3NPYmouYXBpU2VydmljZS5zZXRVcEFjYUJhY2tlbmQodXNlck5hbWUsIHBhc3N3b3JkKTtcbiAgICByZXR1cm4gY2xhc3NPYmo7XG4gIH1cblxuICBhc3luYyBzaGFyZUZpbGVCeUlkKGlkOiBzdHJpbmcsIGV4cGlyZURhdGU/OiBEYXRlKTogUHJvbWlzZTxTaGFyZWRMaW5rRW50cnkgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIG5vZGVJZDogaWQsXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlRGF0ZVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uuc2hhcmUuY3JlYXRlU2hhcmVkTGluayhkYXRhKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2hhcmVGaWxlc0J5SWRzKGlkczogc3RyaW5nW10sIGV4cGlyZURhdGU/OiBEYXRlKTogUHJvbWlzZTxTaGFyZWRMaW5rRW50cnlbXT4ge1xuICAgIGNvbnN0IHNoYXJlZExpbmtzOiBTaGFyZWRMaW5rRW50cnlbXSA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaWRzICYmIGlkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgaWQgb2YgaWRzKSB7XG4gICAgICAgICAgY29uc3Qgc2hhcmVkTGluayA9IGF3YWl0IHRoaXMuc2hhcmVGaWxlQnlJZChpZCwgZXhwaXJlRGF0ZSk7XG4gICAgICAgICAgc2hhcmVkTGlua3MucHVzaChzaGFyZWRMaW5rKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBTaGFyZWRMaW5rc0FwaSBzaGFyZUZpbGVzQnlJZHMgOiBjYXRjaCA6IGAsIGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHNoYXJlZExpbmtzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaGFyZWRMaW5rcyhtYXhJdGVtczogbnVtYmVyID0gMjUwKTogUHJvbWlzZTxTaGFyZWRMaW5rUGFnaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIG1heEl0ZW1zXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5zaGFyZS5saXN0U2hhcmVkTGlua3Mob3B0cyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFNoYXJlZExpbmtzQXBpIGdldFNoYXJlZExpbmtzIDogY2F0Y2ggOiBgLCBlcnJvcik7XG4gICAgICByZXR1cm4gbmV3IFNoYXJlZExpbmtQYWdpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yRmlsZXNUb0JlU2hhcmVkKGZpbGVzSWRzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaGFyZWRGaWxlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzaGFyZWRGaWxlcyA9IChhd2FpdCB0aGlzLmdldFNoYXJlZExpbmtzKCkpLmxpc3QuZW50cmllcy5tYXAoKGxpbmspID0+IGxpbmsuZW50cnkubm9kZUlkKTtcbiAgICAgICAgY29uc3QgZm91bmRJdGVtcyA9IGZpbGVzSWRzLmV2ZXJ5KChpZCkgPT4gc2hhcmVkRmlsZXMuaW5jbHVkZXMoaWQpKTtcbiAgICAgICAgaWYgKGZvdW5kSXRlbXMpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZvdW5kSXRlbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChmb3VuZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IFV0aWxzLnJldHJ5Q2FsbChzaGFyZWRGaWxlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgd2FpdEZvckZpbGVzVG9CZVNoYXJlZCA6ICBjYXRjaCA6ICR7ZXJyb3J9YCk7XG4gICAgICBjb25zb2xlLmVycm9yKGBcXHRXYWl0IHRpbWVvdXQgcmVhY2hlZCB3YWl0aW5nIGZvciBmaWxlcyB0byBiZSBzaGFyZWRgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFNoYXJlZElkT2ZOb2RlKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2hhcmVkTGlua3NFbnRyaWVzID0gKGF3YWl0IHRoaXMuZ2V0U2hhcmVkTGlua3MoKSk/Lmxpc3QuZW50cmllcztcbiAgICAgIGNvbnN0IGZvdW5kID0gc2hhcmVkTGlua3NFbnRyaWVzLmZpbmQoKHNoYXJlZExpbmspID0+IHNoYXJlZExpbmsuZW50cnkubm9kZUlkID09PSBmaWxlSWQpO1xuICAgICAgcmV0dXJuIGZvdW5kPy5lbnRyeS5pZDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgZ2V0U2hhcmVkSWRPZk5vZGUgOiBjYXRjaCA6IGAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVGaWxlQnlJZChmaWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaGFyZWRJZCA9IGF3YWl0IHRoaXMuZ2V0U2hhcmVkSWRPZk5vZGUoZmlsZUlkKTtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uuc2hhcmUuZGVsZXRlU2hhcmVkTGluayhzaGFyZWRJZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFNoYXJlZExpbmtzQXBpIHVuc2hhcmVGaWxlQnlJZCA6IGNhdGNoIDogYCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JGaWxlc1RvTm90QmVTaGFyZWQoZmlsZXNJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2hhcmVkRmlsZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc2hhcmVkRmlsZXMgPSAoYXdhaXQgdGhpcy5nZXRTaGFyZWRMaW5rcygpKS5saXN0LmVudHJpZXMubWFwKChsaW5rKSA9PiBsaW5rLmVudHJ5Lm5vZGVJZCk7XG5cbiAgICAgICAgY29uc3QgZm91bmRJdGVtcyA9IGZpbGVzSWRzLnNvbWUoKGlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNoYXJlZEZpbGVzLmluY2x1ZGVzKGlkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGZvdW5kSXRlbXMpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZm91bmRJdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmb3VuZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IFV0aWxzLnJldHJ5Q2FsbChzaGFyZWRGaWxlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgd2FpdEZvckZpbGVzVG9Ob3RCZVNoYXJlZCA6ICBjYXRjaCA6ICR7ZXJyb3J9YCk7XG4gICAgICBjb25zb2xlLmVycm9yKGBcXHRXYWl0IHRpbWVvdXQgcmVhY2hlZCB3YWl0aW5nIGZvciBmaWxlcyB0byBubyBsb25nZXIgYmUgc2hhcmVkYCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|