@umbraco/playwright-testhelpers 2.0.0-beta.9 → 15.0.0-beta.2

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 (187) hide show
  1. package/dist/lib/helpers/ApiHelpers.d.ts +44 -4
  2. package/dist/lib/helpers/ApiHelpers.js +212 -7
  3. package/dist/lib/helpers/ApiHelpers.js.map +1 -1
  4. package/dist/lib/helpers/ConstantHelper.js +1 -1
  5. package/dist/lib/helpers/ConstantHelper.js.map +1 -1
  6. package/dist/lib/helpers/ContentUiHelper.d.ts +186 -0
  7. package/dist/lib/helpers/ContentUiHelper.js +559 -0
  8. package/dist/lib/helpers/ContentUiHelper.js.map +1 -0
  9. package/dist/lib/helpers/DataTypeApiHelper.d.ts +95 -14
  10. package/dist/lib/helpers/DataTypeApiHelper.js +829 -130
  11. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
  12. package/dist/lib/helpers/DataTypeUiHelper.d.ts +266 -0
  13. package/dist/lib/helpers/DataTypeUiHelper.js +850 -0
  14. package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
  15. package/dist/lib/helpers/DictionaryApiHelper.d.ts +2 -1
  16. package/dist/lib/helpers/DictionaryApiHelper.js +17 -4
  17. package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
  18. package/dist/lib/helpers/DictionaryUiHelper.d.ts +7 -9
  19. package/dist/lib/helpers/DictionaryUiHelper.js +33 -33
  20. package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
  21. package/dist/lib/helpers/DocumentApiHelper.d.ts +38 -0
  22. package/dist/lib/helpers/DocumentApiHelper.js +365 -0
  23. package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
  24. package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +18 -0
  25. package/dist/lib/helpers/DocumentBlueprintApiHelper.js +126 -0
  26. package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -0
  27. package/dist/lib/helpers/DocumentBlueprintUiHelper.d.ts +17 -0
  28. package/dist/lib/helpers/DocumentBlueprintUiHelper.js +52 -0
  29. package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -0
  30. package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +42 -0
  31. package/dist/lib/helpers/DocumentTypeApiHelper.js +551 -0
  32. package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
  33. package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +35 -0
  34. package/dist/lib/helpers/DocumentTypeUiHelper.js +98 -0
  35. package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
  36. package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
  37. package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
  38. package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
  39. package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
  40. package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
  41. package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
  42. package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
  43. package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
  44. package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
  45. package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
  46. package/dist/lib/helpers/IndexerApiHelper.js +19 -0
  47. package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
  48. package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
  49. package/dist/lib/helpers/LanguageApiHelper.js +46 -26
  50. package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
  51. package/dist/lib/helpers/LanguageUiHelper.d.ts +23 -0
  52. package/dist/lib/helpers/LanguageUiHelper.js +68 -0
  53. package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
  54. package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
  55. package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
  56. package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
  57. package/dist/lib/helpers/LoginApiHelper.d.ts +16 -0
  58. package/dist/lib/helpers/LoginApiHelper.js +107 -0
  59. package/dist/lib/helpers/LoginApiHelper.js.map +1 -0
  60. package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
  61. package/dist/lib/helpers/LoginUiHelper.js +30 -0
  62. package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
  63. package/dist/lib/helpers/MediaApiHelper.d.ts +32 -0
  64. package/dist/lib/helpers/MediaApiHelper.js +245 -0
  65. package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
  66. package/dist/lib/helpers/MediaTypeApiHelper.d.ts +32 -0
  67. package/dist/lib/helpers/MediaTypeApiHelper.js +390 -0
  68. package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
  69. package/dist/lib/helpers/MediaTypeUiHelper.d.ts +14 -0
  70. package/dist/lib/helpers/MediaTypeUiHelper.js +38 -0
  71. package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
  72. package/dist/lib/helpers/MediaUiHelper.d.ts +49 -0
  73. package/dist/lib/helpers/MediaUiHelper.js +145 -0
  74. package/dist/lib/helpers/MediaUiHelper.js.map +1 -0
  75. package/dist/lib/helpers/MemberApiHelper.d.ts +16 -0
  76. package/dist/lib/helpers/MemberApiHelper.js +88 -0
  77. package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
  78. package/dist/lib/helpers/MemberGroupApiHelper.d.ts +14 -0
  79. package/dist/lib/helpers/MemberGroupApiHelper.js +62 -0
  80. package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
  81. package/dist/lib/helpers/MemberGroupUiHelper.d.ts +20 -0
  82. package/dist/lib/helpers/MemberGroupUiHelper.js +57 -0
  83. package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -0
  84. package/dist/lib/helpers/MemberTypeApiHelper.d.ts +17 -0
  85. package/dist/lib/helpers/MemberTypeApiHelper.js +121 -0
  86. package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
  87. package/dist/lib/helpers/MemberTypeUiHelper.d.ts +13 -0
  88. package/dist/lib/helpers/MemberTypeUiHelper.js +35 -0
  89. package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -0
  90. package/dist/lib/helpers/MemberUiHelper.d.ts +45 -0
  91. package/dist/lib/helpers/MemberUiHelper.js +130 -0
  92. package/dist/lib/helpers/MemberUiHelper.js.map +1 -0
  93. package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
  94. package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
  95. package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
  96. package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +9 -0
  97. package/dist/lib/helpers/ModelsBuilderUiHelper.js +22 -0
  98. package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
  99. package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
  100. package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
  101. package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
  102. package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
  103. package/dist/lib/helpers/PackageApiHelper.js +6 -3
  104. package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
  105. package/dist/lib/helpers/PackageUiHelper.d.ts +49 -0
  106. package/dist/lib/helpers/PackageUiHelper.js +134 -0
  107. package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
  108. package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -4
  109. package/dist/lib/helpers/PartialViewApiHelper.js +36 -30
  110. package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
  111. package/dist/lib/helpers/PartialViewUiHelper.d.ts +7 -11
  112. package/dist/lib/helpers/PartialViewUiHelper.js +27 -36
  113. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
  114. package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
  115. package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
  116. package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
  117. package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
  118. package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
  119. package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
  120. package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
  121. package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
  122. package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
  123. package/dist/lib/helpers/RedirectManagementApiHelper.d.ts +10 -0
  124. package/dist/lib/helpers/RedirectManagementApiHelper.js +30 -0
  125. package/dist/lib/helpers/RedirectManagementApiHelper.js.map +1 -0
  126. package/dist/lib/helpers/RedirectManagementUiHelper.d.ts +17 -0
  127. package/dist/lib/helpers/RedirectManagementUiHelper.js +45 -0
  128. package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -0
  129. package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
  130. package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
  131. package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
  132. package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
  133. package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
  134. package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
  135. package/dist/lib/helpers/ScriptApiHelper.d.ts +5 -3
  136. package/dist/lib/helpers/ScriptApiHelper.js +44 -26
  137. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  138. package/dist/lib/helpers/ScriptUiHelper.d.ts +8 -12
  139. package/dist/lib/helpers/ScriptUiHelper.js +31 -40
  140. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
  141. package/dist/lib/helpers/StylesheetApiHelper.d.ts +6 -4
  142. package/dist/lib/helpers/StylesheetApiHelper.js +47 -41
  143. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  144. package/dist/lib/helpers/StylesheetUiHelper.d.ts +17 -15
  145. package/dist/lib/helpers/StylesheetUiHelper.js +60 -47
  146. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  147. package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
  148. package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
  149. package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
  150. package/dist/lib/helpers/TemplateApiHelper.d.ts +1 -0
  151. package/dist/lib/helpers/TemplateApiHelper.js +6 -0
  152. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  153. package/dist/lib/helpers/TemplateUiHelper.d.ts +14 -18
  154. package/dist/lib/helpers/TemplateUiHelper.js +65 -59
  155. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
  156. package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +17 -1
  157. package/dist/lib/helpers/TemporaryFileApiHelper.js +23 -10
  158. package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
  159. package/dist/lib/helpers/UiBaseLocators.d.ts +213 -9
  160. package/dist/lib/helpers/UiBaseLocators.js +703 -39
  161. package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
  162. package/dist/lib/helpers/UiHelpers.d.ts +49 -7
  163. package/dist/lib/helpers/UiHelpers.js +75 -21
  164. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  165. package/dist/lib/helpers/UserApiHelper.d.ts +24 -10
  166. package/dist/lib/helpers/UserApiHelper.js +94 -22
  167. package/dist/lib/helpers/UserApiHelper.js.map +1 -1
  168. package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
  169. package/dist/lib/helpers/UserGroupApiHelper.js +20 -19
  170. package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
  171. package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
  172. package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
  173. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
  174. package/dist/lib/helpers/UserUiHelper.d.ts +81 -0
  175. package/dist/lib/helpers/UserUiHelper.js +223 -0
  176. package/dist/lib/helpers/UserUiHelper.js.map +1 -0
  177. package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
  178. package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
  179. package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
  180. package/dist/lib/helpers/testExtension.js +4 -0
  181. package/dist/lib/helpers/testExtension.js.map +1 -1
  182. package/dist/tsconfig.tsbuildinfo +1 -1
  183. package/dist/umbraco.config.js +1 -1
  184. package/dist/umbraco.config.js.map +1 -1
  185. package/package.json +9 -11
  186. package/dist/lib/helpers/RelationType.d.ts +0 -15
  187. package/dist/lib/helpers/RelationType.js.map +0 -1
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaApiHelper = void 0;
4
+ const json_models_builders_1 = require("@umbraco/json-models-builders");
5
+ class MediaApiHelper {
6
+ api;
7
+ constructor(api) {
8
+ this.api = api;
9
+ }
10
+ async ensureNameNotExists(name) {
11
+ const rootMedia = await this.getAllAtRoot();
12
+ const jsonMedia = await rootMedia.json();
13
+ for (const media of jsonMedia.items) {
14
+ if (media.variants[0].name === name) {
15
+ if (media.hasChildren) {
16
+ return await this.recurseDeleteChildren(media);
17
+ }
18
+ return await this.delete(media.id);
19
+ }
20
+ else if (media.hasChildren) {
21
+ await this.recurseChildren(name, media.id, true);
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ async getAllAtRoot() {
27
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/media/root?skip=0&take=10000');
28
+ }
29
+ async recurseChildren(name, id, toDelete) {
30
+ const items = await this.getChildren(id);
31
+ for (const child of items) {
32
+ if (child.variants[0].name === name) {
33
+ if (!toDelete) {
34
+ return await this.get(child.id);
35
+ }
36
+ if (child.hasChildren) {
37
+ return await this.recurseDeleteChildren(child);
38
+ }
39
+ return await this.delete(child.id);
40
+ }
41
+ else if (child.hasChildren) {
42
+ return await this.recurseChildren(name, child.id, toDelete);
43
+ }
44
+ }
45
+ return false;
46
+ }
47
+ async recurseDeleteChildren(media) {
48
+ if (!media.hasChildren) {
49
+ return await this.delete(media.id);
50
+ }
51
+ const items = await this.getChildren(media.id);
52
+ for (const child of items) {
53
+ if (child.hasChildren) {
54
+ await this.recurseDeleteChildren(child);
55
+ }
56
+ else {
57
+ await this.delete(child.id);
58
+ }
59
+ }
60
+ return await this.delete(media.id);
61
+ }
62
+ async get(id) {
63
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media/' + id);
64
+ return await response.json();
65
+ }
66
+ async delete(id) {
67
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/media/' + id);
68
+ }
69
+ async getChildren(id) {
70
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/media/children?parentId=' + id + '&skip=0&take=10000');
71
+ const items = await response.json();
72
+ return items.items;
73
+ }
74
+ async create(media) {
75
+ if (media == null) {
76
+ return;
77
+ }
78
+ const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media', media);
79
+ return response.headers().location.split("/").pop();
80
+ }
81
+ async doesNameExist(name) {
82
+ return await this.getByName(name);
83
+ }
84
+ async getByName(name) {
85
+ const rootMedia = await this.getAllAtRoot();
86
+ const jsonMedia = await rootMedia.json();
87
+ for (const media of jsonMedia.items) {
88
+ if (media.variants[0].name === name) {
89
+ return await this.get(media.id);
90
+ }
91
+ else if (media.hasChildren) {
92
+ await this.recurseChildren(name, media.id, false);
93
+ }
94
+ }
95
+ return null;
96
+ }
97
+ async getRecycleBinItems() {
98
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/media/root?skip=0&take=10000');
99
+ }
100
+ async emptyRecycleBin() {
101
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/media');
102
+ }
103
+ async doesMediaItemExistInRecycleBin(mediaItemName) {
104
+ const recycleBin = await this.getRecycleBinItems();
105
+ const jsonRecycleBin = await recycleBin.json();
106
+ for (const media of jsonRecycleBin.items) {
107
+ if (media.variants[0].name === mediaItemName) {
108
+ return true;
109
+ }
110
+ }
111
+ return false;
112
+ }
113
+ async trashMediaItem(mediaItemName) {
114
+ const media = await this.getByName(mediaItemName);
115
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/media/' + media.id + '/move-to-recycle-bin');
116
+ }
117
+ async getMediaPathByName(name) {
118
+ const media = await this.getByName(name);
119
+ if (media && media.urls && media.urls.length > 0) {
120
+ const mediaUrl = media.urls[0].url;
121
+ // Gets the random mediaPath for the media
122
+ const mediaPath = mediaUrl.split('/media/').pop()?.split('/')[0];
123
+ // Gets the file name from the mediaUrl
124
+ const fileName = mediaUrl.split('/').pop();
125
+ return {
126
+ mediaPath: mediaPath,
127
+ fileName: fileName
128
+ };
129
+ }
130
+ return null;
131
+ }
132
+ async createDefaultMediaFile(mediaName) {
133
+ const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryFile();
134
+ const media = new json_models_builders_1.MediaBuilder()
135
+ .withMediaTypeId(temporaryFile.mediaTypeId)
136
+ .addVariant()
137
+ .withName(mediaName)
138
+ .done()
139
+ .addValue()
140
+ .withAlias('umbracoFile')
141
+ .withValue(temporaryFile.temporaryFileId)
142
+ .done()
143
+ .build();
144
+ return await this.create(media);
145
+ }
146
+ async createDefaultMediaFileAndParentId(mediaName, parentId) {
147
+ const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryFile();
148
+ const media = new json_models_builders_1.MediaBuilder()
149
+ .withMediaTypeId(temporaryFile.mediaTypeId)
150
+ .withParentId(parentId)
151
+ .addVariant()
152
+ .withName(mediaName)
153
+ .done()
154
+ .addValue()
155
+ .withAlias('umbracoFile')
156
+ .withValue(temporaryFile.temporaryFileId)
157
+ .done()
158
+ .build();
159
+ return await this.create(media);
160
+ }
161
+ async createDefaultMediaFolder(mediaFolderName) {
162
+ const mediaType = await this.api.mediaType.getByName('Folder');
163
+ const media = new json_models_builders_1.MediaBuilder()
164
+ .withMediaTypeId(mediaType.id)
165
+ .addVariant()
166
+ .withName(mediaFolderName)
167
+ .done()
168
+ .build();
169
+ return await this.create(media);
170
+ }
171
+ async createDefaultMediaFolderAndParentId(mediaName, parentId) {
172
+ const mediaType = await this.api.mediaType.getByName('Folder');
173
+ const media = new json_models_builders_1.MediaBuilder()
174
+ .withMediaTypeId(mediaType.id)
175
+ .withParentId(parentId)
176
+ .addVariant()
177
+ .withName(mediaName)
178
+ .done()
179
+ .build();
180
+ return await this.create(media);
181
+ }
182
+ async createDefaultMediaWithImage(mediaName) {
183
+ const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();
184
+ const media = new json_models_builders_1.MediaBuilder()
185
+ .withMediaTypeId(temporaryFile.mediaTypeId)
186
+ .addVariant()
187
+ .withName(mediaName)
188
+ .done()
189
+ .addValue()
190
+ .withAlias('umbracoFile')
191
+ .withValue(temporaryFile.temporaryFileId)
192
+ .done()
193
+ .build();
194
+ return await this.create(media);
195
+ }
196
+ async createDefaultMediaWithArticle(mediaName) {
197
+ const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryArticleFile();
198
+ const media = new json_models_builders_1.MediaBuilder()
199
+ .withMediaTypeId(temporaryFile.mediaTypeId)
200
+ .addVariant()
201
+ .withName(mediaName)
202
+ .done()
203
+ .addValue()
204
+ .withAlias('umbracoFile')
205
+ .withValue(temporaryFile.temporaryFileId)
206
+ .done()
207
+ .build();
208
+ return await this.create(media);
209
+ }
210
+ async createDefaultMediaWithImageAndParentId(mediaName, parentId) {
211
+ const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();
212
+ const media = new json_models_builders_1.MediaBuilder()
213
+ .withMediaTypeId(temporaryFile.mediaTypeId)
214
+ .withParentId(parentId)
215
+ .addVariant()
216
+ .withName(mediaName)
217
+ .done()
218
+ .addValue()
219
+ .withAlias('umbracoFile')
220
+ .withValue(temporaryFile.mediaTypeId)
221
+ .done()
222
+ .build();
223
+ return await this.create(media);
224
+ }
225
+ async getAllMediaNames(orderBy = 'updateDate', orderDirection = 'Descending') {
226
+ let mediaNames = [];
227
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/collection/media?id=&dataTypeId=&orderBy=' + orderBy + '&orderDirection=' + orderDirection + '&skip=0&take=100');
228
+ const mediaItems = await response.json();
229
+ for (const media of mediaItems.items) {
230
+ mediaNames.push(media.variants[0].name);
231
+ }
232
+ return mediaNames;
233
+ }
234
+ async doesMediaItemHaveChildName(mediaId, childName) {
235
+ const childrenItems = await this.getChildren(mediaId);
236
+ for (const child of childrenItems) {
237
+ if (child.variants[0].name === childName) {
238
+ return true;
239
+ }
240
+ }
241
+ return false;
242
+ }
243
+ }
244
+ exports.MediaApiHelper = MediaApiHelper;
245
+ //# sourceMappingURL=MediaApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {MediaBuilder} from \"@umbraco/json-models-builders\";\n\nexport class MediaApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const rootMedia = await this.getAllAtRoot();\n const jsonMedia = await rootMedia.json();\n\n for (const media of jsonMedia.items) {\n if (media.variants[0].name === name) {\n if (media.hasChildren) {\n return await this.recurseDeleteChildren(media);\n }\n return await this.delete(media.id);\n } else if (media.hasChildren) {\n await this.recurseChildren(name, media.id, true);\n }\n }\n return null;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/media/root?skip=0&take=10000');\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.variants[0].name === name) {\n if (!toDelete) {\n return await this.get(child.id);\n }\n if (child.hasChildren) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(media) {\n if (!media.hasChildren) {\n return await this.delete(media.id);\n }\n const items = await this.getChildren(media.id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.delete(media.id);\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/media/' + id);\n return await response.json();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/media/' + id);\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/media/children?parentId=' + id + '&skip=0&take=10000');\n const items = await response.json();\n return items.items;\n }\n\n async create(media) {\n if (media == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/media', media);\n return response.headers().location.split(\"/\").pop();\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const rootMedia = await this.getAllAtRoot();\n const jsonMedia = await rootMedia.json();\n\n for (const media of jsonMedia.items) {\n if (media.variants[0].name === name) {\n return await this.get(media.id);\n } else if (media.hasChildren) {\n await this.recurseChildren(name, media.id, false);\n }\n }\n return null;\n }\n\n async getRecycleBinItems() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/media/root?skip=0&take=10000');\n }\n\n async emptyRecycleBin() {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/recycle-bin/media');\n }\n\n async doesMediaItemExistInRecycleBin(mediaItemName: string) {\n const recycleBin = await this.getRecycleBinItems();\n const jsonRecycleBin = await recycleBin.json();\n for (const media of jsonRecycleBin.items) {\n if (media.variants[0].name === mediaItemName) {\n return true;\n }\n }\n return false;\n }\n\n async trashMediaItem(mediaItemName: string) {\n const media = await this.getByName(mediaItemName);\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/media/' + media.id + '/move-to-recycle-bin');\n }\n\n async getMediaPathByName(name: string) {\n const media = await this.getByName(name);\n\n if (media && media.urls && media.urls.length > 0) {\n const mediaUrl = media.urls[0].url;\n // Gets the random mediaPath for the media\n const mediaPath = mediaUrl.split('/media/').pop()?.split('/')[0];\n // Gets the file name from the mediaUrl\n const fileName = mediaUrl.split('/').pop();\n\n return {\n mediaPath: mediaPath,\n fileName: fileName\n };\n }\n\n return null;\n }\n\n async createDefaultMediaFile(mediaName: string) {\n const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryFile();\n\n const media = new MediaBuilder()\n .withMediaTypeId(temporaryFile.mediaTypeId)\n .addVariant()\n .withName(mediaName)\n .done()\n .addValue()\n .withAlias('umbracoFile')\n .withValue(temporaryFile.temporaryFileId)\n .done()\n .build();\n\n return await this.create(media);\n }\n\n async createDefaultMediaFileAndParentId(mediaName: string, parentId: string) {\n const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryFile();\n \n const media = new MediaBuilder()\n .withMediaTypeId(temporaryFile.mediaTypeId)\n .withParentId(parentId)\n .addVariant()\n .withName(mediaName)\n .done()\n .addValue()\n .withAlias('umbracoFile')\n .withValue(temporaryFile.temporaryFileId)\n .done()\n .build();\n\n return await this.create(media);\n }\n\n async createDefaultMediaFolder(mediaFolderName: string) {\n const mediaType = await this.api.mediaType.getByName('Folder');\n \n const media = new MediaBuilder()\n .withMediaTypeId(mediaType.id)\n .addVariant()\n .withName(mediaFolderName)\n .done()\n .build();\n\n return await this.create(media);\n }\n\n async createDefaultMediaFolderAndParentId(mediaName: string, parentId: string) {\n const mediaType = await this.api.mediaType.getByName('Folder');\n \n const media = new MediaBuilder()\n .withMediaTypeId(mediaType.id)\n .withParentId(parentId)\n .addVariant()\n .withName(mediaName)\n .done()\n .build();\n\n return await this.create(media);\n }\n \n async createDefaultMediaWithImage(mediaName: string) {\n const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();\n \n const media = new MediaBuilder()\n .withMediaTypeId(temporaryFile.mediaTypeId)\n .addVariant()\n .withName(mediaName)\n .done()\n .addValue()\n .withAlias('umbracoFile')\n .withValue(temporaryFile.temporaryFileId)\n .done()\n .build();\n \n return await this.create(media);\n }\n\n async createDefaultMediaWithArticle(mediaName: string) {\n const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryArticleFile();\n\n const media = new MediaBuilder()\n .withMediaTypeId(temporaryFile.mediaTypeId)\n .addVariant()\n .withName(mediaName)\n .done()\n .addValue()\n .withAlias('umbracoFile')\n .withValue(temporaryFile.temporaryFileId)\n .done()\n .build();\n\n return await this.create(media);\n }\n \n async createDefaultMediaWithImageAndParentId(mediaName: string, parentId: string) {\n const temporaryFile = await this.api.temporaryFile.createDefaultTemporaryImageFile();\n \n const media = new MediaBuilder()\n .withMediaTypeId(temporaryFile.mediaTypeId)\n .withParentId(parentId)\n .addVariant()\n .withName(mediaName)\n .done()\n .addValue()\n .withAlias('umbracoFile')\n .withValue(temporaryFile.mediaTypeId)\n .done()\n .build();\n\n return await this.create(media);\n }\n\n async getAllMediaNames(orderBy: string = 'updateDate', orderDirection: string = 'Descending') {\n let mediaNames: string[] = [];\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/collection/media?id=&dataTypeId=&orderBy=' + orderBy + '&orderDirection=' + orderDirection + '&skip=0&take=100');\n const mediaItems = await response.json();\n for (const media of mediaItems.items) {\n mediaNames.push(media.variants[0].name);\n }\n return mediaNames;\n }\n\n async doesMediaItemHaveChildName(mediaId: string, childName: string) {\n const childrenItems = await this.getChildren(mediaId);\n for (const child of childrenItems) {\n if (child.variants[0].name === childName) {\n return true;\n }\n }\n return false;\n }\n}"]}
@@ -0,0 +1,32 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class MediaTypeApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ ensureNameNotExists(name: string): Promise<number | import("playwright-core").APIResponse | null | undefined>;
6
+ getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
7
+ private recurseChildren;
8
+ private recurseDeleteChildren;
9
+ getChildren(id: string): Promise<any>;
10
+ create(mediaType: any): Promise<string | undefined>;
11
+ delete(id: string): Promise<number | undefined>;
12
+ getByName(name: string): Promise<any>;
13
+ doesNameExist(name: string): Promise<any>;
14
+ get(id: string): Promise<any>;
15
+ getFolder(id: string): Promise<any>;
16
+ deleteFolder(id: string): Promise<import("playwright-core").APIResponse>;
17
+ createFolder(name: string, parentId?: string): Promise<string | undefined>;
18
+ renameFolder(folderId: string, folderName: string): Promise<import("playwright-core").APIResponse>;
19
+ createDefaultMediaType(mediaTypeName: string): Promise<string | undefined>;
20
+ createMediaTypeWithPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName?: string): Promise<string | undefined>;
21
+ createMediaTypeWithTwoPropertyEditors(mediaTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName?: string): Promise<string | undefined>;
22
+ createMediaTypeWithPropertyEditorInTab(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName?: string, varyByCulture?: boolean): Promise<string | undefined>;
23
+ createMediaTypeWithTwoGroups(mediaTypeName: string, dataType: string, dataTypeId: string, groupNameOne: string, groupNameTwo: string): Promise<string | undefined>;
24
+ createMediaTypeWithTwoTabs(mediaTypeName: string, dataType: string, dataTypeId: string, tabNameOne: string, tabNameTwo: string): Promise<string | undefined>;
25
+ createMediaTypeWithAllowedChildNode(mediaTypeName: string, allowedChildNodeId: string): Promise<string | undefined>;
26
+ doesGroupContainCorrectPropertyEditor(mediaTypeName: string, dataTypeName: string, dataTypeId: string, groupName: string): Promise<any>;
27
+ doesTabContainCorrectPropertyEditorInGroup(mediaTypeName: string, dataTypeName: string, dataTypeId: string, tabName: string, groupName: string): Promise<any>;
28
+ doesMediaTypeGroupNameContainCorrectSortOrder(mediaTypeName: string, groupName: string, sortOrder: number): Promise<boolean>;
29
+ doesMediaTypeTabNameContainCorrectSortOrder(mediaTypeName: string, tabName: string, sortOrder: number): Promise<boolean>;
30
+ doesTabContainerCorrectPropertyEditor(mediaTypeName: string, tabName: string, dataTypeId: string): Promise<any>;
31
+ doesMediaTypeContainAllowedChildNodeIds(mediaTypeName: string, allowedChildNodeIds: string[]): Promise<any>;
32
+ }