@alfresco/aca-playwright-shared 5.1.1 → 6.0.0-11114941325
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/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 +62 -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 +84 -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 +342 -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 +87 -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 +93 -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/utils/logger.mjs +71 -0
- package/esm2022/utils/utils.mjs +145 -0
- package/{fesm2020 → fesm2022}/alfresco-aca-playwright-shared.mjs +712 -662
- package/fesm2022/alfresco-aca-playwright-shared.mjs.map +1 -0
- package/package.json +5 -11
- 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/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}/resources/test-files/index.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 Utils.retryCall(searchFiles);
|
|
71
|
+
}
|
|
72
|
+
catch { }
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1wbGF5d3JpZ2h0LXNoYXJlZC9zcmMvYXBpL3NlYXJjaC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sYUFBYTtJQUNoQixVQUFVLENBQW1CO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsUUFBaUI7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQWdCO1FBQzdDLE1BQU0sSUFBSSxHQUFHO1lBQ1gsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxHQUFHO2dCQUNWLFFBQVEsRUFBRSxNQUFNO2FBQ2pCO1lBQ0QsYUFBYSxFQUFFO2dCQUNiLEVBQUUsS0FBSyxFQUFFLDhDQUE4QyxFQUFFO2dCQUN6RCxFQUFFLEtBQUssRUFBRSxlQUFlLFFBQVEsa0JBQWtCLFFBQVEsRUFBRSxFQUFFO2dCQUM5RCxFQUFFLEtBQUssRUFBRSw2REFBNkQsRUFBRTthQUN6RTtTQUNGLENBQUM7UUFFRixJQUFJO1lBQ0YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUM7UUFBQyxNQUFNO1lBQ04sT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDNUUsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBZ0IsRUFBRSxJQUF3QjtRQUN6RCxJQUFJO1lBQ0YsTUFBTSxXQUFXLEdBQUcsS0FBSyxJQUFJLEVBQUU7Z0JBQzdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDOUIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNuQztxQkFBTTtvQkFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3BDO1lBQ0gsQ0FBQyxDQUFDO1lBRUYsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JDO1FBQUMsTUFBTSxHQUFFO0lBQ1osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEFwaUNsaWVudEZhY3RvcnkgfSBmcm9tICcuL2FwaS1jbGllbnQtZmFjdG9yeSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFJlc3VsdFNldFBhZ2luZyB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoUGFnZUFwaSB7XG4gIHByaXZhdGUgYXBpU2VydmljZTogQXBpQ2xpZW50RmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFwaVNlcnZpY2UgPSBuZXcgQXBpQ2xpZW50RmFjdG9yeSgpO1xuICB9XG4gIHN0YXRpYyBhc3luYyBpbml0aWFsaXplKHVzZXJOYW1lOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nKTogUHJvbWlzZTxTZWFyY2hQYWdlQXBpPiB7XG4gICAgY29uc3QgY2xhc3NPYmogPSBuZXcgU2VhcmNoUGFnZUFwaSgpO1xuICAgIGF3YWl0IGNsYXNzT2JqLmFwaVNlcnZpY2Uuc2V0VXBBY2FCYWNrZW5kKHVzZXJOYW1lLCBwYXNzd29yZCk7XG4gICAgcmV0dXJuIGNsYXNzT2JqO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBxdWVyeVNlYXJjaEZpbGVzKHVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFJlc3VsdFNldFBhZ2luZz4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBxdWVyeToge1xuICAgICAgICBxdWVyeTogJyonLFxuICAgICAgICBsYW5ndWFnZTogJ2FmdHMnXG4gICAgICB9LFxuICAgICAgZmlsdGVyUXVlcmllczogW1xuICAgICAgICB7IHF1ZXJ5OiBgY206bW9kaWZpZWQ6W05PVy9EQVktMzBEQVlTIFRPIE5PVy9EQVkrMURBWV1gIH0sXG4gICAgICAgIHsgcXVlcnk6IGBjbTptb2RpZmllcjoke3VzZXJuYW1lfSBPUiBjbTpjcmVhdG9yOiR7dXNlcm5hbWV9YCB9LFxuICAgICAgICB7IHF1ZXJ5OiBgVFlQRTpcImNvbnRlbnRcIiBBTkQgLVRZUEU6XCJhcHA6ZmlsZWxpbmtcIiBBTkQgLVRZUEU6XCJmbTpwb3N0XCJgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uuc2VhcmNoLnNlYXJjaChkYXRhKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBuZXcgUmVzdWx0U2V0UGFnaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0VG90YWxJdGVtcyh1c2VybmFtZTogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMucXVlcnlTZWFyY2hGaWxlcyh1c2VybmFtZSkpLmxpc3QucGFnaW5hdGlvbi50b3RhbEl0ZW1zO1xuICB9XG5cbiAgYXN5bmMgd2FpdEZvckFwaSh1c2VybmFtZTogc3RyaW5nLCBkYXRhOiB7IGV4cGVjdDogbnVtYmVyIH0pIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VhcmNoRmlsZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdGFsSXRlbXMgPSBhd2FpdCB0aGlzLmdldFRvdGFsSXRlbXModXNlcm5hbWUpO1xuICAgICAgICBpZiAodG90YWxJdGVtcyAhPT0gZGF0YS5leHBlY3QpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QodG90YWxJdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0b3RhbEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIFV0aWxzLnJldHJ5Q2FsbChzZWFyY2hGaWxlcyk7XG4gICAgfSBjYXRjaCB7fVxuICB9XG59XG4iXX0=
|
|
@@ -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 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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWxpbmtzLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1wbGF5d3JpZ2h0LXNoYXJlZC9zcmMvYXBpL3NoYXJlZC1saW5rcy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxNQUFNLE9BQU8sY0FBYztJQUNqQixVQUFVLENBQW1CO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsUUFBaUI7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFVLEVBQUUsVUFBaUI7UUFDL0MsSUFBSTtZQUNGLE1BQU0sSUFBSSxHQUFHO2dCQUNYLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFNBQVMsRUFBRSxVQUFVO2FBQ3RCLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENB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ZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBcGlDbGllbnRGYWN0b3J5IH0gZnJvbSAnLi9hcGktY2xpZW50LWZhY3RvcnknO1xuaW1wb3J0IHsgU2hhcmVkTGlua0VudHJ5LCBTaGFyZWRMaW5rUGFnaW5nIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFNoYXJlZExpbmtzQXBpIHtcbiAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlDbGllbnRGYWN0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYXBpU2VydmljZSA9IG5ldyBBcGlDbGllbnRGYWN0b3J5KCk7XG4gIH1cbiAgc3RhdGljIGFzeW5jIGluaXRpYWxpemUodXNlck5hbWU6IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcpOiBQcm9taXNlPFNoYXJlZExpbmtzQXBpPiB7XG4gICAgY29uc3QgY2xhc3NPYmogPSBuZXcgU2hhcmVkTGlua3NBcGkoKTtcbiAgICBhd2FpdCBjbGFzc09iai5hcGlTZXJ2aWNlLnNldFVwQWNhQmFja2VuZCh1c2VyTmFtZSwgcGFzc3dvcmQpO1xuICAgIHJldHVybiBjbGFzc09iajtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRmlsZUJ5SWQoaWQ6IHN0cmluZywgZXhwaXJlRGF0ZT86IERhdGUpOiBQcm9taXNlPFNoYXJlZExpbmtFbnRyeSB8IG51bGw+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgbm9kZUlkOiBpZCxcbiAgICAgICAgZXhwaXJlc0F0OiBleHBpcmVEYXRlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5zaGFyZS5jcmVhdGVTaGFyZWRMaW5rKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzaGFyZUZpbGVzQnlJZHMoaWRzOiBzdHJpbmdbXSwgZXhwaXJlRGF0ZT86IERhdGUpOiBQcm9taXNlPFNoYXJlZExpbmtFbnRyeVtdPiB7XG4gICAgY29uc3Qgc2hhcmVkTGlua3M6IFNoYXJlZExpbmtFbnRyeVtdID0gW107XG4gICAgdHJ5IHtcbiAgICAgIGlmIChpZHMgJiYgaWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiBpZHMpIHtcbiAgICAgICAgICBjb25zdCBzaGFyZWRMaW5rID0gYXdhaXQgdGhpcy5zaGFyZUZpbGVCeUlkKGlkLCBleHBpcmVEYXRlKTtcbiAgICAgICAgICBzaGFyZWRMaW5rcy5wdXNoKHNoYXJlZExpbmspO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFNoYXJlZExpbmtzQXBpIHNoYXJlRmlsZXNCeUlkcyA6IGNhdGNoIDogYCwgZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gc2hhcmVkTGlua3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFNoYXJlZExpbmtzKG1heEl0ZW1zOiBudW1iZXIgPSAyNTApOiBQcm9taXNlPFNoYXJlZExpbmtQYWdpbmc+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgbWF4SXRlbXNcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnNoYXJlLmxpc3RTaGFyZWRMaW5rcyhvcHRzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgZ2V0U2hhcmVkTGlua3MgOiBjYXRjaCA6IGAsIGVycm9yKTtcbiAgICAgIHJldHVybiBuZXcgU2hhcmVkTGlua1BhZ2luZygpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JGaWxlc1RvQmVTaGFyZWQoZmlsZXNJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNoYXJlZEZpbGUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNoYXJlZEZpbGVzID0gKGF3YWl0IHRoaXMuZ2V0U2hhcmVkTGlua3MoKSkubGlzdC5lbnRyaWVzLm1hcCgobGluaykgPT4gbGluay5lbnRyeS5ub2RlSWQpO1xuICAgICAgICBjb25zdCBmb3VuZEl0ZW1zID0gZmlsZXNJZHMuZXZlcnkoKGlkKSA9PiBzaGFyZWRGaWxlcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgICBpZiAoZm91bmRJdGVtcykge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZm91bmRJdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGZvdW5kSXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gVXRpbHMucmV0cnlDYWxsKHNoYXJlZEZpbGUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBTaGFyZWRMaW5rc0FwaSB3YWl0Rm9yRmlsZXNUb0JlU2hhcmVkIDogIGNhdGNoIDogJHtlcnJvcn1gKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFxcdFdhaXQgdGltZW91dCByZWFjaGVkIHdhaXRpbmcgZm9yIGZpbGVzIHRvIGJlIHNoYXJlZGApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U2hhcmVkSWRPZk5vZGUoZmlsZUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaGFyZWRMaW5rc0VudHJpZXMgPSAoYXdhaXQgdGhpcy5nZXRTaGFyZWRMaW5rcygpKT8ubGlzdC5lbnRyaWVzO1xuICAgICAgY29uc3QgZm91bmQgPSBzaGFyZWRMaW5rc0VudHJpZXMuZmluZCgoc2hhcmVkTGluaykgPT4gc2hhcmVkTGluay5lbnRyeS5ub2RlSWQgPT09IGZpbGVJZCk7XG4gICAgICByZXR1cm4gZm91bmQ/LmVudHJ5LmlkO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBTaGFyZWRMaW5rc0FwaSBnZXRTaGFyZWRJZE9mTm9kZSA6IGNhdGNoIDogYCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdW5zaGFyZUZpbGVCeUlkKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNoYXJlZElkID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRJZE9mTm9kZShmaWxlSWQpO1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5zaGFyZS5kZWxldGVTaGFyZWRMaW5rKHNoYXJlZElkKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgdW5zaGFyZUZpbGVCeUlkIDogY2F0Y2ggOiBgLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgd2FpdEZvckZpbGVzVG9Ob3RCZVNoYXJlZChmaWxlc0lkczogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaGFyZWRGaWxlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzaGFyZWRGaWxlcyA9IChhd2FpdCB0aGlzLmdldFNoYXJlZExpbmtzKCkpLmxpc3QuZW50cmllcy5tYXAoKGxpbmspID0+IGxpbmsuZW50cnkubm9kZUlkKTtcblxuICAgICAgICBjb25zdCBmb3VuZEl0ZW1zID0gZmlsZXNJZHMuc29tZSgoaWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gc2hhcmVkRmlsZXMuaW5jbHVkZXMoaWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZm91bmRJdGVtcykge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChmb3VuZEl0ZW1zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZvdW5kSXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gVXRpbHMucmV0cnlDYWxsKHNoYXJlZEZpbGUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBTaGFyZWRMaW5rc0FwaSB3YWl0Rm9yRmlsZXNUb05vdEJlU2hhcmVkIDogIGNhdGNoIDogJHtlcnJvcn1gKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFxcdFdhaXQgdGltZW91dCByZWFjaGVkIHdhaXRpbmcgZm9yIGZpbGVzIHRvIG5vIGxvbmdlciBiZSBzaGFyZWRgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|