@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.
Files changed (184) hide show
  1. package/api/tags-api.d.ts +8 -2
  2. package/esm2022/api/api-client-factory.mjs +131 -0
  3. package/esm2022/api/categories-api.mjs +66 -0
  4. package/esm2022/api/favorites-api.mjs +130 -0
  5. package/esm2022/api/file-actions.mjs +167 -0
  6. package/esm2022/api/nodes-api.mjs +428 -0
  7. package/esm2022/api/people-api-models.mjs +41 -0
  8. package/esm2022/api/queries-api.mjs +70 -0
  9. package/esm2022/api/rules-api.mjs +258 -0
  10. package/esm2022/api/search-api.mjs +75 -0
  11. package/esm2022/api/shared-links-api.mjs +137 -0
  12. package/esm2022/api/sites-api.mjs +156 -0
  13. package/esm2022/api/tags-api.mjs +92 -0
  14. package/esm2022/api/trashcan-api.mjs +52 -0
  15. package/{esm2020 → esm2022}/models/user-model.mjs +11 -5
  16. package/esm2022/page-objects/components/aca-header.component.mjs +78 -0
  17. package/esm2022/page-objects/components/actions-dropdown.component.mjs +100 -0
  18. package/esm2022/page-objects/components/adf-info-drawer.component.mjs +102 -0
  19. package/esm2022/page-objects/components/base.component.mjs +70 -0
  20. package/esm2022/page-objects/components/breadcrumb/breadcrumb.component.mjs +47 -0
  21. package/esm2022/page-objects/components/conditions.component.mjs +72 -0
  22. package/esm2022/page-objects/components/dataTable/data-table.component.mjs +343 -0
  23. package/esm2022/page-objects/components/dataTable/mat-menu.component.mjs +67 -0
  24. package/{esm2020/page-objects/components/dialogs/manage-versions-dialog.component.mjs → esm2022/page-objects/components/dataTable/toolbar.component.mjs} +13 -8
  25. package/esm2022/page-objects/components/datetime-picker/datetime-picker.component.mjs +53 -0
  26. package/esm2022/page-objects/components/dialogs/adf-confirm-dialog.component.mjs +36 -0
  27. package/esm2022/page-objects/components/dialogs/adf-folder-dialog.component.mjs +57 -0
  28. package/esm2022/page-objects/components/dialogs/adf-library-dialog.component.mjs +64 -0
  29. package/esm2022/page-objects/components/dialogs/content-node-selector-dialog.mjs +68 -0
  30. package/esm2022/page-objects/components/dialogs/create-from-template-dialog-component.mjs +55 -0
  31. package/esm2022/page-objects/components/dialogs/delete-trash-dialog.component.mjs +54 -0
  32. package/esm2022/page-objects/components/dialogs/edit-dialog.component.mjs +39 -0
  33. package/esm2022/page-objects/components/dialogs/link-rules.component.mjs +58 -0
  34. package/esm2022/page-objects/components/dialogs/manage-versions-dialog.component.mjs +36 -0
  35. package/esm2022/page-objects/components/dialogs/password-overlay-dialog.component.mjs +71 -0
  36. package/esm2022/page-objects/components/dialogs/share-dialog.component.mjs +85 -0
  37. package/esm2022/page-objects/components/dialogs/upload-dialog.component.mjs +36 -0
  38. package/esm2022/page-objects/components/dialogs/upload-new-version-dialog.component.mjs +38 -0
  39. package/esm2022/page-objects/components/dialogs/viewer-overlay-dialog.component.mjs +56 -0
  40. package/esm2022/page-objects/components/error.component.mjs +34 -0
  41. package/esm2022/page-objects/components/manageRules/manage-rules-dialog.component.mjs +64 -0
  42. package/esm2022/page-objects/components/manageRules/manage-rules.component.mjs +70 -0
  43. package/esm2022/page-objects/components/pagination.component.mjs +174 -0
  44. package/esm2022/page-objects/components/search/search-filters/search-filters-categories.component.mjs +33 -0
  45. package/esm2022/page-objects/components/search/search-filters/search-filters-date.component.mjs +115 -0
  46. package/esm2022/page-objects/components/search/search-filters/search-filters-location.component.mjs +40 -0
  47. package/esm2022/page-objects/components/search/search-filters/search-filters-logic.component.mjs +36 -0
  48. package/esm2022/page-objects/components/search/search-filters/search-filters-properties.component.mjs +83 -0
  49. package/esm2022/page-objects/components/search/search-filters/search-filters-tags.component.mjs +40 -0
  50. package/esm2022/page-objects/components/search/search-filters.component.mjs +45 -0
  51. package/esm2022/page-objects/components/search/search-input.component.mjs +48 -0
  52. package/esm2022/page-objects/components/search/search-overlay.components.mjs +83 -0
  53. package/esm2022/page-objects/components/search/search-sorting-picker.components.mjs +72 -0
  54. package/esm2022/page-objects/components/sidenav.component.mjs +88 -0
  55. package/esm2022/page-objects/components/snackBar/snack-bar.component.mjs +54 -0
  56. package/esm2022/page-objects/components/spinner.component.mjs +41 -0
  57. package/esm2022/page-objects/components/viewer.component.mjs +110 -0
  58. package/esm2022/page-objects/pages/base.page.mjs +84 -0
  59. package/esm2022/page-objects/pages/favorites-libraries.page.mjs +43 -0
  60. package/esm2022/page-objects/pages/favorites.page.mjs +49 -0
  61. package/esm2022/page-objects/pages/login.page.mjs +62 -0
  62. package/esm2022/page-objects/pages/my-libraries.page.mjs +54 -0
  63. package/esm2022/page-objects/pages/nodes.page.mjs +40 -0
  64. package/esm2022/page-objects/pages/personal-files.page.mjs +85 -0
  65. package/esm2022/page-objects/pages/recent-files.page.mjs +45 -0
  66. package/esm2022/page-objects/pages/search.page.mjs +79 -0
  67. package/esm2022/page-objects/pages/shared.page.mjs +45 -0
  68. package/esm2022/page-objects/pages/trash.page.mjs +45 -0
  69. package/esm2022/page-objects/playwright-base.mjs +33 -0
  70. package/esm2022/resources/test-files/index.mjs +102 -0
  71. package/esm2022/utils/logger.mjs +71 -0
  72. package/esm2022/utils/utils.mjs +145 -0
  73. package/{fesm2020 → fesm2022}/alfresco-aca-playwright-shared.mjs +816 -675
  74. package/fesm2022/alfresco-aca-playwright-shared.mjs.map +1 -0
  75. package/package.json +5 -11
  76. package/page-objects/components/adf-info-drawer.component.d.ts +18 -0
  77. package/page-objects/components/viewer.component.d.ts +11 -0
  78. package/page-objects/pages/search.page.d.ts +1 -1
  79. package/resources/test-files/index.d.ts +24 -0
  80. package/utils/utils.d.ts +2 -2
  81. package/esm2020/api/api-client-factory.mjs +0 -111
  82. package/esm2020/api/categories-api.mjs +0 -65
  83. package/esm2020/api/favorites-api.mjs +0 -129
  84. package/esm2020/api/file-actions.mjs +0 -166
  85. package/esm2020/api/nodes-api.mjs +0 -427
  86. package/esm2020/api/people-api-models.mjs +0 -34
  87. package/esm2020/api/queries-api.mjs +0 -69
  88. package/esm2020/api/rules-api.mjs +0 -251
  89. package/esm2020/api/search-api.mjs +0 -74
  90. package/esm2020/api/shared-links-api.mjs +0 -136
  91. package/esm2020/api/sites-api.mjs +0 -155
  92. package/esm2020/api/tags-api.mjs +0 -61
  93. package/esm2020/api/trashcan-api.mjs +0 -54
  94. package/esm2020/page-objects/components/aca-header.component.mjs +0 -77
  95. package/esm2020/page-objects/components/actions-dropdown.component.mjs +0 -99
  96. package/esm2020/page-objects/components/adf-info-drawer.component.mjs +0 -83
  97. package/esm2020/page-objects/components/base.component.mjs +0 -69
  98. package/esm2020/page-objects/components/breadcrumb/breadcrumb.component.mjs +0 -46
  99. package/esm2020/page-objects/components/conditions.component.mjs +0 -75
  100. package/esm2020/page-objects/components/dataTable/data-table.component.mjs +0 -341
  101. package/esm2020/page-objects/components/dataTable/mat-menu.component.mjs +0 -66
  102. package/esm2020/page-objects/components/dataTable/toolbar.component.mjs +0 -39
  103. package/esm2020/page-objects/components/datetime-picker/datetime-picker.component.mjs +0 -52
  104. package/esm2020/page-objects/components/dialogs/adf-confirm-dialog.component.mjs +0 -35
  105. package/esm2020/page-objects/components/dialogs/adf-folder-dialog.component.mjs +0 -56
  106. package/esm2020/page-objects/components/dialogs/adf-library-dialog.component.mjs +0 -63
  107. package/esm2020/page-objects/components/dialogs/content-node-selector-dialog.mjs +0 -67
  108. package/esm2020/page-objects/components/dialogs/create-from-template-dialog-component.mjs +0 -54
  109. package/esm2020/page-objects/components/dialogs/delete-trash-dialog.component.mjs +0 -53
  110. package/esm2020/page-objects/components/dialogs/edit-dialog.component.mjs +0 -38
  111. package/esm2020/page-objects/components/dialogs/link-rules.component.mjs +0 -57
  112. package/esm2020/page-objects/components/dialogs/password-overlay-dialog.component.mjs +0 -70
  113. package/esm2020/page-objects/components/dialogs/share-dialog.component.mjs +0 -84
  114. package/esm2020/page-objects/components/dialogs/upload-dialog.component.mjs +0 -35
  115. package/esm2020/page-objects/components/dialogs/upload-new-version-dialog.component.mjs +0 -37
  116. package/esm2020/page-objects/components/dialogs/viewer-overlay-dialog.component.mjs +0 -55
  117. package/esm2020/page-objects/components/error.component.mjs +0 -33
  118. package/esm2020/page-objects/components/manageRules/manage-rules-dialog.component.mjs +0 -63
  119. package/esm2020/page-objects/components/manageRules/manage-rules.component.mjs +0 -69
  120. package/esm2020/page-objects/components/pagination.component.mjs +0 -173
  121. package/esm2020/page-objects/components/search/search-filters/search-filters-categories.component.mjs +0 -32
  122. package/esm2020/page-objects/components/search/search-filters/search-filters-date.component.mjs +0 -114
  123. package/esm2020/page-objects/components/search/search-filters/search-filters-location.component.mjs +0 -39
  124. package/esm2020/page-objects/components/search/search-filters/search-filters-logic.component.mjs +0 -35
  125. package/esm2020/page-objects/components/search/search-filters/search-filters-properties.component.mjs +0 -82
  126. package/esm2020/page-objects/components/search/search-filters/search-filters-tags.component.mjs +0 -39
  127. package/esm2020/page-objects/components/search/search-filters.component.mjs +0 -44
  128. package/esm2020/page-objects/components/search/search-input.component.mjs +0 -47
  129. package/esm2020/page-objects/components/search/search-overlay.components.mjs +0 -82
  130. package/esm2020/page-objects/components/search/search-sorting-picker.components.mjs +0 -71
  131. package/esm2020/page-objects/components/sidenav.component.mjs +0 -86
  132. package/esm2020/page-objects/components/snackBar/snack-bar.component.mjs +0 -53
  133. package/esm2020/page-objects/components/spinner.component.mjs +0 -40
  134. package/esm2020/page-objects/components/viewer.component.mjs +0 -92
  135. package/esm2020/page-objects/pages/base.page.mjs +0 -80
  136. package/esm2020/page-objects/pages/favorites-libraries.page.mjs +0 -42
  137. package/esm2020/page-objects/pages/favorites.page.mjs +0 -48
  138. package/esm2020/page-objects/pages/login.page.mjs +0 -61
  139. package/esm2020/page-objects/pages/my-libraries.page.mjs +0 -53
  140. package/esm2020/page-objects/pages/nodes.page.mjs +0 -39
  141. package/esm2020/page-objects/pages/personal-files.page.mjs +0 -84
  142. package/esm2020/page-objects/pages/recent-files.page.mjs +0 -44
  143. package/esm2020/page-objects/pages/search.page.mjs +0 -78
  144. package/esm2020/page-objects/pages/shared.page.mjs +0 -44
  145. package/esm2020/page-objects/pages/trash.page.mjs +0 -44
  146. package/esm2020/page-objects/playwright-base.mjs +0 -31
  147. package/esm2020/resources/test-files/index.mjs +0 -78
  148. package/esm2020/utils/logger.mjs +0 -69
  149. package/esm2020/utils/utils.mjs +0 -144
  150. package/fesm2015/alfresco-aca-playwright-shared.mjs +0 -6267
  151. package/fesm2015/alfresco-aca-playwright-shared.mjs.map +0 -1
  152. package/fesm2020/alfresco-aca-playwright-shared.mjs.map +0 -1
  153. /package/{esm2020 → esm2022}/alfresco-aca-playwright-shared.mjs +0 -0
  154. /package/{esm2020 → esm2022}/api/index.mjs +0 -0
  155. /package/{esm2020 → esm2022}/api/node-content-tree.mjs +0 -0
  156. /package/{esm2020 → esm2022}/base-config/global-variables.mjs +0 -0
  157. /package/{esm2020 → esm2022}/base-config/global.setup.mjs +0 -0
  158. /package/{esm2020 → esm2022}/base-config/index.mjs +0 -0
  159. /package/{esm2020 → esm2022}/base-config/playwright.config.mjs +0 -0
  160. /package/{esm2020 → esm2022}/base-config/report-portal.config.mjs +0 -0
  161. /package/{esm2020 → esm2022}/fixtures/index.mjs +0 -0
  162. /package/{esm2020 → esm2022}/fixtures/page-initialization.mjs +0 -0
  163. /package/{esm2020 → esm2022}/models/custom-config.mjs +0 -0
  164. /package/{esm2020 → esm2022}/models/index.mjs +0 -0
  165. /package/{esm2020 → esm2022}/page-objects/components/dataTable/index.mjs +0 -0
  166. /package/{esm2020 → esm2022}/page-objects/components/dialogs/index.mjs +0 -0
  167. /package/{esm2020 → esm2022}/page-objects/components/index.mjs +0 -0
  168. /package/{esm2020 → esm2022}/page-objects/components/manageRules/index.mjs +0 -0
  169. /package/{esm2020 → esm2022}/page-objects/index.mjs +0 -0
  170. /package/{esm2020 → esm2022}/page-objects/pages/index.mjs +0 -0
  171. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  172. /package/{esm2020 → esm2022}/resources/index.mjs +0 -0
  173. /package/{esm2020 → esm2022}/resources/test-data/index.mjs +0 -0
  174. /package/{esm2020 → esm2022}/resources/test-data/test-data-files-folders.mjs +0 -0
  175. /package/{esm2020 → esm2022}/resources/test-data/test-data-permissions.mjs +0 -0
  176. /package/{esm2020 → esm2022}/utils/api.mjs +0 -0
  177. /package/{esm2020 → esm2022}/utils/config.mjs +0 -0
  178. /package/{esm2020 → esm2022}/utils/error-strings.mjs +0 -0
  179. /package/{esm2020 → esm2022}/utils/exclude-tests.mjs +0 -0
  180. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  181. /package/{esm2020 → esm2022}/utils/library-errors.mjs +0 -0
  182. /package/{esm2020 → esm2022}/utils/paths.mjs +0 -0
  183. /package/{esm2020 → esm2022}/utils/state-helper.mjs +0 -0
  184. /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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWxpbmtzLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1wbGF5d3JpZ2h0LXNoYXJlZC9zcmMvYXBpL3NoYXJlZC1saW5rcy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxNQUFNLE9BQU8sY0FBYztJQUNqQixVQUFVLENBQW1CO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsUUFBaUI7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFVLEVBQUUsVUFBaUI7UUFDL0MsSUFBSTtZQUNGLE1BQU0sSUFBSSxHQUFHO2dCQUNYLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFNBQVMsRUFBRSxVQUFVO2FBQ3RCLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENB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Q0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQXBpQ2xpZW50RmFjdG9yeSB9IGZyb20gJy4vYXBpLWNsaWVudC1mYWN0b3J5JztcbmltcG9ydCB7IFNoYXJlZExpbmtFbnRyeSwgU2hhcmVkTGlua1BhZ2luZyB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTaGFyZWRMaW5rc0FwaSB7XG4gIHByaXZhdGUgYXBpU2VydmljZTogQXBpQ2xpZW50RmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFwaVNlcnZpY2UgPSBuZXcgQXBpQ2xpZW50RmFjdG9yeSgpO1xuICB9XG4gIHN0YXRpYyBhc3luYyBpbml0aWFsaXplKHVzZXJOYW1lOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nKTogUHJvbWlzZTxTaGFyZWRMaW5rc0FwaT4ge1xuICAgIGNvbnN0IGNsYXNzT2JqID0gbmV3IFNoYXJlZExpbmtzQXBpKCk7XG4gICAgYXdhaXQgY2xhc3NPYmouYXBpU2VydmljZS5zZXRVcEFjYUJhY2tlbmQodXNlck5hbWUsIHBhc3N3b3JkKTtcbiAgICByZXR1cm4gY2xhc3NPYmo7XG4gIH1cblxuICBhc3luYyBzaGFyZUZpbGVCeUlkKGlkOiBzdHJpbmcsIGV4cGlyZURhdGU/OiBEYXRlKTogUHJvbWlzZTxTaGFyZWRMaW5rRW50cnkgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIG5vZGVJZDogaWQsXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlRGF0ZVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uuc2hhcmUuY3JlYXRlU2hhcmVkTGluayhkYXRhKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2hhcmVGaWxlc0J5SWRzKGlkczogc3RyaW5nW10sIGV4cGlyZURhdGU/OiBEYXRlKTogUHJvbWlzZTxTaGFyZWRMaW5rRW50cnlbXT4ge1xuICAgIGNvbnN0IHNoYXJlZExpbmtzOiBTaGFyZWRMaW5rRW50cnlbXSA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaWRzICYmIGlkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgaWQgb2YgaWRzKSB7XG4gICAgICAgICAgY29uc3Qgc2hhcmVkTGluayA9IGF3YWl0IHRoaXMuc2hhcmVGaWxlQnlJZChpZCwgZXhwaXJlRGF0ZSk7XG4gICAgICAgICAgc2hhcmVkTGlua3MucHVzaChzaGFyZWRMaW5rKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBTaGFyZWRMaW5rc0FwaSBzaGFyZUZpbGVzQnlJZHMgOiBjYXRjaCA6IGAsIGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHNoYXJlZExpbmtzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaGFyZWRMaW5rcyhtYXhJdGVtczogbnVtYmVyID0gMjUwKTogUHJvbWlzZTxTaGFyZWRMaW5rUGFnaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIG1heEl0ZW1zXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5zaGFyZS5saXN0U2hhcmVkTGlua3Mob3B0cyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFNoYXJlZExpbmtzQXBpIGdldFNoYXJlZExpbmtzIDogY2F0Y2ggOiBgLCBlcnJvcik7XG4gICAgICByZXR1cm4gbmV3IFNoYXJlZExpbmtQYWdpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yRmlsZXNUb0JlU2hhcmVkKGZpbGVzSWRzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaGFyZWRGaWxlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzaGFyZWRGaWxlcyA9IChhd2FpdCB0aGlzLmdldFNoYXJlZExpbmtzKCkpLmxpc3QuZW50cmllcy5tYXAoKGxpbmspID0+IGxpbmsuZW50cnkubm9kZUlkKTtcbiAgICAgICAgY29uc3QgZm91bmRJdGVtcyA9IGZpbGVzSWRzLmV2ZXJ5KChpZCkgPT4gc2hhcmVkRmlsZXMuaW5jbHVkZXMoaWQpKTtcbiAgICAgICAgaWYgKGZvdW5kSXRlbXMpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZvdW5kSXRlbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChmb3VuZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IFV0aWxzLnJldHJ5Q2FsbChzaGFyZWRGaWxlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgd2FpdEZvckZpbGVzVG9CZVNoYXJlZCA6ICBjYXRjaCA6ICR7ZXJyb3J9YCk7XG4gICAgICBjb25zb2xlLmVycm9yKGBcXHRXYWl0IHRpbWVvdXQgcmVhY2hlZCB3YWl0aW5nIGZvciBmaWxlcyB0byBiZSBzaGFyZWRgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFNoYXJlZElkT2ZOb2RlKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2hhcmVkTGlua3NFbnRyaWVzID0gKGF3YWl0IHRoaXMuZ2V0U2hhcmVkTGlua3MoKSk/Lmxpc3QuZW50cmllcztcbiAgICAgIGNvbnN0IGZvdW5kID0gc2hhcmVkTGlua3NFbnRyaWVzLmZpbmQoKHNoYXJlZExpbmspID0+IHNoYXJlZExpbmsuZW50cnkubm9kZUlkID09PSBmaWxlSWQpO1xuICAgICAgcmV0dXJuIGZvdW5kPy5lbnRyeS5pZDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgZ2V0U2hhcmVkSWRPZk5vZGUgOiBjYXRjaCA6IGAsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVGaWxlQnlJZChmaWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaGFyZWRJZCA9IGF3YWl0IHRoaXMuZ2V0U2hhcmVkSWRPZk5vZGUoZmlsZUlkKTtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uuc2hhcmUuZGVsZXRlU2hhcmVkTGluayhzaGFyZWRJZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFNoYXJlZExpbmtzQXBpIHVuc2hhcmVGaWxlQnlJZCA6IGNhdGNoIDogYCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JGaWxlc1RvTm90QmVTaGFyZWQoZmlsZXNJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2hhcmVkRmlsZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc2hhcmVkRmlsZXMgPSAoYXdhaXQgdGhpcy5nZXRTaGFyZWRMaW5rcygpKS5saXN0LmVudHJpZXMubWFwKChsaW5rKSA9PiBsaW5rLmVudHJ5Lm5vZGVJZCk7XG5cbiAgICAgICAgY29uc3QgZm91bmRJdGVtcyA9IGZpbGVzSWRzLnNvbWUoKGlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNoYXJlZEZpbGVzLmluY2x1ZGVzKGlkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGZvdW5kSXRlbXMpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZm91bmRJdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmb3VuZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IFV0aWxzLnJldHJ5Q2FsbChzaGFyZWRGaWxlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgU2hhcmVkTGlua3NBcGkgd2FpdEZvckZpbGVzVG9Ob3RCZVNoYXJlZCA6ICBjYXRjaCA6ICR7ZXJyb3J9YCk7XG4gICAgICBjb25zb2xlLmVycm9yKGBcXHRXYWl0IHRpbWVvdXQgcmVhY2hlZCB3YWl0aW5nIGZvciBmaWxlcyB0byBubyBsb25nZXIgYmUgc2hhcmVkYCk7XG4gICAgfVxuICB9XG59XG4iXX0=