@wordpress/e2e-test-utils-playwright 1.37.0 → 1.37.1-next.79a2f3cdd.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 (228) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/admin/create-new-post.cjs +51 -0
  3. package/build/admin/create-new-post.cjs.map +7 -0
  4. package/build/admin/create-new-post.js +28 -48
  5. package/build/admin/create-new-post.js.map +1 -7
  6. package/build/admin/edit-post.cjs +40 -0
  7. package/build/admin/edit-post.cjs.map +7 -0
  8. package/build/admin/edit-post.js +17 -37
  9. package/build/admin/edit-post.js.map +1 -7
  10. package/build/admin/get-page-error.cjs +36 -0
  11. package/build/admin/get-page-error.cjs.map +7 -0
  12. package/build/admin/get-page-error.js +23 -33
  13. package/build/admin/get-page-error.js.map +1 -7
  14. package/build/admin/index.cjs +59 -0
  15. package/build/admin/index.cjs.map +7 -0
  16. package/build/admin/index.js +36 -58
  17. package/build/admin/index.js.map +1 -7
  18. package/build/admin/visit-admin-page.cjs +47 -0
  19. package/build/admin/visit-admin-page.cjs.map +7 -0
  20. package/build/admin/visit-admin-page.js +29 -44
  21. package/build/admin/visit-admin-page.js.map +1 -7
  22. package/build/admin/visit-site-editor.cjs +77 -0
  23. package/build/admin/visit-site-editor.cjs.map +7 -0
  24. package/build/admin/visit-site-editor.js +64 -73
  25. package/build/admin/visit-site-editor.js.map +1 -7
  26. package/build/config.cjs +45 -0
  27. package/build/config.cjs.map +7 -0
  28. package/build/config.js +11 -43
  29. package/build/config.js.map +1 -7
  30. package/build/editor/click-block-options-menu-item.cjs +34 -0
  31. package/build/editor/click-block-options-menu-item.cjs.map +7 -0
  32. package/build/editor/click-block-options-menu-item.js +14 -31
  33. package/build/editor/click-block-options-menu-item.js.map +1 -7
  34. package/build/editor/click-block-toolbar-button.cjs +38 -0
  35. package/build/editor/click-block-toolbar-button.cjs.map +7 -0
  36. package/build/editor/click-block-toolbar-button.js +13 -35
  37. package/build/editor/click-block-toolbar-button.js.map +1 -7
  38. package/build/editor/get-blocks.cjs +64 -0
  39. package/build/editor/get-blocks.cjs.map +7 -0
  40. package/build/editor/get-blocks.js +43 -61
  41. package/build/editor/get-blocks.js.map +1 -7
  42. package/build/editor/get-edited-post-content.cjs +36 -0
  43. package/build/editor/get-edited-post-content.cjs.map +7 -0
  44. package/build/editor/get-edited-post-content.js +12 -33
  45. package/build/editor/get-edited-post-content.js.map +1 -7
  46. package/build/editor/index.cjs +97 -0
  47. package/build/editor/index.cjs.map +7 -0
  48. package/build/editor/index.js +74 -96
  49. package/build/editor/index.js.map +1 -7
  50. package/build/editor/insert-block.cjs +55 -0
  51. package/build/editor/insert-block.cjs.map +7 -0
  52. package/build/editor/insert-block.js +21 -52
  53. package/build/editor/insert-block.js.map +1 -7
  54. package/build/editor/open-document-settings-sidebar.cjs +42 -0
  55. package/build/editor/open-document-settings-sidebar.cjs.map +7 -0
  56. package/build/editor/open-document-settings-sidebar.js +24 -39
  57. package/build/editor/open-document-settings-sidebar.js.map +1 -7
  58. package/build/editor/preview.cjs +42 -0
  59. package/build/editor/preview.cjs.map +7 -0
  60. package/build/editor/preview.js +18 -39
  61. package/build/editor/preview.js.map +1 -7
  62. package/build/editor/publish-post.cjs +47 -0
  63. package/build/editor/publish-post.cjs.map +7 -0
  64. package/build/editor/publish-post.js +42 -44
  65. package/build/editor/publish-post.js.map +1 -7
  66. package/build/editor/save-draft.cjs +34 -0
  67. package/build/editor/save-draft.cjs.map +7 -0
  68. package/build/editor/save-draft.js +15 -31
  69. package/build/editor/save-draft.js.map +1 -7
  70. package/build/editor/select-blocks.cjs +51 -0
  71. package/build/editor/select-blocks.cjs.map +7 -0
  72. package/build/editor/select-blocks.js +25 -48
  73. package/build/editor/select-blocks.js.map +1 -7
  74. package/build/editor/set-content.cjs +39 -0
  75. package/build/editor/set-content.cjs.map +7 -0
  76. package/build/editor/set-content.js +14 -36
  77. package/build/editor/set-content.js.map +1 -7
  78. package/build/editor/set-is-fixed-toolbar.cjs +36 -0
  79. package/build/editor/set-is-fixed-toolbar.cjs.map +7 -0
  80. package/build/editor/set-is-fixed-toolbar.js +15 -33
  81. package/build/editor/set-is-fixed-toolbar.js.map +1 -7
  82. package/build/editor/set-preferences.cjs +43 -0
  83. package/build/editor/set-preferences.cjs.map +7 -0
  84. package/build/editor/set-preferences.js +18 -40
  85. package/build/editor/set-preferences.js.map +1 -7
  86. package/build/editor/show-block-toolbar.cjs +35 -0
  87. package/build/editor/show-block-toolbar.cjs.map +7 -0
  88. package/build/editor/show-block-toolbar.js +16 -32
  89. package/build/editor/show-block-toolbar.js.map +1 -7
  90. package/build/editor/site-editor.cjs +51 -0
  91. package/build/editor/site-editor.cjs.map +7 -0
  92. package/build/editor/site-editor.js +41 -48
  93. package/build/editor/site-editor.js.map +1 -7
  94. package/build/editor/switch-editor-tool.cjs +47 -0
  95. package/build/editor/switch-editor-tool.cjs.map +7 -0
  96. package/build/editor/switch-editor-tool.js +30 -44
  97. package/build/editor/switch-editor-tool.js.map +1 -7
  98. package/build/editor/switch-to-legacy-canvas.cjs +39 -0
  99. package/build/editor/switch-to-legacy-canvas.cjs.map +7 -0
  100. package/build/editor/switch-to-legacy-canvas.js +14 -35
  101. package/build/editor/switch-to-legacy-canvas.js.map +1 -7
  102. package/build/editor/transform-block-to.cjs +46 -0
  103. package/build/editor/transform-block-to.cjs.map +7 -0
  104. package/build/editor/transform-block-to.js +21 -43
  105. package/build/editor/transform-block-to.js.map +1 -7
  106. package/build/index.cjs +51 -0
  107. package/build/index.cjs.map +7 -0
  108. package/build/index.js +18 -53
  109. package/build/index.js.map +1 -7
  110. package/build/lighthouse/index.cjs +96 -0
  111. package/build/lighthouse/index.cjs.map +7 -0
  112. package/build/lighthouse/index.js +55 -93
  113. package/build/lighthouse/index.js.map +1 -7
  114. package/build/metrics/index.cjs +309 -0
  115. package/build/metrics/index.cjs.map +7 -0
  116. package/build/metrics/index.js +251 -302
  117. package/build/metrics/index.js.map +1 -7
  118. package/build/page-utils/drag-files.cjs +143 -0
  119. package/build/page-utils/drag-files.cjs.map +7 -0
  120. package/build/page-utils/drag-files.js +112 -136
  121. package/build/page-utils/drag-files.js.map +1 -7
  122. package/build/page-utils/emulate-network-conditions.cjs +99 -0
  123. package/build/page-utils/emulate-network-conditions.cjs.map +7 -0
  124. package/build/page-utils/emulate-network-conditions.js +67 -95
  125. package/build/page-utils/emulate-network-conditions.js.map +1 -7
  126. package/build/page-utils/index.cjs +59 -0
  127. package/build/page-utils/index.cjs.map +7 -0
  128. package/build/page-utils/index.js +36 -58
  129. package/build/page-utils/index.js.map +1 -7
  130. package/build/page-utils/is-current-url.cjs +36 -0
  131. package/build/page-utils/is-current-url.cjs.map +7 -0
  132. package/build/page-utils/is-current-url.js +18 -33
  133. package/build/page-utils/is-current-url.js.map +1 -7
  134. package/build/page-utils/keycodes.cjs +55 -0
  135. package/build/page-utils/keycodes.cjs.map +7 -0
  136. package/build/page-utils/keycodes.js +39 -53
  137. package/build/page-utils/keycodes.js.map +1 -7
  138. package/build/page-utils/press-keys.cjs +165 -0
  139. package/build/page-utils/press-keys.cjs.map +7 -0
  140. package/build/page-utils/press-keys.js +130 -153
  141. package/build/page-utils/press-keys.js.map +1 -7
  142. package/build/page-utils/set-browser-viewport.cjs +39 -0
  143. package/build/page-utils/set-browser-viewport.cjs.map +7 -0
  144. package/build/page-utils/set-browser-viewport.js +42 -35
  145. package/build/page-utils/set-browser-viewport.js.map +1 -7
  146. package/build/request-utils/blocks.cjs +56 -0
  147. package/build/request-utils/blocks.cjs.map +7 -0
  148. package/build/request-utils/blocks.js +40 -51
  149. package/build/request-utils/blocks.js.map +1 -7
  150. package/build/request-utils/comments.cjs +66 -0
  151. package/build/request-utils/comments.cjs.map +7 -0
  152. package/build/request-utils/comments.js +45 -59
  153. package/build/request-utils/comments.js.map +1 -7
  154. package/build/request-utils/gutenberg-experiments.cjs +66 -0
  155. package/build/request-utils/gutenberg-experiments.cjs.map +7 -0
  156. package/build/request-utils/gutenberg-experiments.js +38 -63
  157. package/build/request-utils/gutenberg-experiments.js.map +1 -7
  158. package/build/request-utils/index.cjs +194 -0
  159. package/build/request-utils/index.cjs.map +7 -0
  160. package/build/request-utils/index.js +155 -191
  161. package/build/request-utils/index.js.map +1 -7
  162. package/build/request-utils/login.cjs +48 -0
  163. package/build/request-utils/login.cjs.map +7 -0
  164. package/build/request-utils/login.js +18 -45
  165. package/build/request-utils/login.js.map +1 -7
  166. package/build/request-utils/media.cjs +83 -0
  167. package/build/request-utils/media.cjs.map +7 -0
  168. package/build/request-utils/media.js +64 -74
  169. package/build/request-utils/media.js.map +1 -7
  170. package/build/request-utils/menus.cjs +132 -0
  171. package/build/request-utils/menus.cjs.map +7 -0
  172. package/build/request-utils/menus.js +109 -121
  173. package/build/request-utils/menus.js.map +1 -7
  174. package/build/request-utils/pages.cjs +71 -0
  175. package/build/request-utils/pages.cjs.map +7 -0
  176. package/build/request-utils/pages.js +50 -63
  177. package/build/request-utils/pages.js.map +1 -7
  178. package/build/request-utils/patterns.cjs +44 -0
  179. package/build/request-utils/patterns.cjs.map +7 -0
  180. package/build/request-utils/patterns.js +24 -41
  181. package/build/request-utils/patterns.js.map +1 -7
  182. package/build/request-utils/plugins.cjs +81 -0
  183. package/build/request-utils/plugins.cjs.map +7 -0
  184. package/build/request-utils/plugins.js +74 -70
  185. package/build/request-utils/plugins.js.map +1 -7
  186. package/build/request-utils/posts.cjs +61 -0
  187. package/build/request-utils/posts.cjs.map +7 -0
  188. package/build/request-utils/posts.js +41 -55
  189. package/build/request-utils/posts.js.map +1 -7
  190. package/build/request-utils/preferences.cjs +41 -0
  191. package/build/request-utils/preferences.cjs.map +7 -0
  192. package/build/request-utils/preferences.js +17 -38
  193. package/build/request-utils/preferences.js.map +1 -7
  194. package/build/request-utils/rest.cjs +174 -0
  195. package/build/request-utils/rest.cjs.map +7 -0
  196. package/build/request-utils/rest.js +129 -155
  197. package/build/request-utils/rest.js.map +1 -7
  198. package/build/request-utils/site-settings.cjs +45 -0
  199. package/build/request-utils/site-settings.cjs.map +7 -0
  200. package/build/request-utils/site-settings.js +28 -40
  201. package/build/request-utils/site-settings.js.map +1 -7
  202. package/build/request-utils/templates.cjs +68 -0
  203. package/build/request-utils/templates.cjs.map +7 -0
  204. package/build/request-utils/templates.js +46 -60
  205. package/build/request-utils/templates.js.map +1 -7
  206. package/build/request-utils/themes.cjs +89 -0
  207. package/build/request-utils/themes.cjs.map +7 -0
  208. package/build/request-utils/themes.js +53 -80
  209. package/build/request-utils/themes.js.map +1 -7
  210. package/build/request-utils/users.cjs +83 -0
  211. package/build/request-utils/users.cjs.map +7 -0
  212. package/build/request-utils/users.js +72 -74
  213. package/build/request-utils/users.js.map +1 -7
  214. package/build/request-utils/widgets.cjs +79 -0
  215. package/build/request-utils/widgets.cjs.map +7 -0
  216. package/build/request-utils/widgets.js +55 -73
  217. package/build/request-utils/widgets.js.map +1 -7
  218. package/build/test.cjs +136 -0
  219. package/build/test.cjs.map +7 -0
  220. package/build/test.js +146 -130
  221. package/build/test.js.map +1 -7
  222. package/build/types.cjs +19 -0
  223. package/build/types.cjs.map +7 -0
  224. package/build/types.js +2 -18
  225. package/build/types.js.map +1 -7
  226. package/build-types/index.d.ts +1 -1
  227. package/build-types/index.d.ts.map +1 -1
  228. package/package.json +7 -4
@@ -1,61 +1,47 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // packages/e2e-test-utils-playwright/src/request-utils/posts.ts
21
- var posts_exports = {};
22
- __export(posts_exports, {
23
- createPost: () => createPost,
24
- deleteAllPosts: () => deleteAllPosts
25
- });
26
- module.exports = __toCommonJS(posts_exports);
27
- async function deleteAllPosts(postType = "posts") {
28
- const posts = await this.rest({
29
- path: `/wp/v2/${postType}`,
30
- params: {
31
- per_page: 100,
32
- // All possible statuses.
33
- status: "publish,future,draft,pending,private,trash"
34
- }
35
- });
36
- await Promise.all(
37
- posts.map(
38
- (post) => this.rest({
39
- method: "DELETE",
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteAllPosts = deleteAllPosts;
4
+ exports.createPost = createPost;
5
+ /**
6
+ * Delete all posts using REST API.
7
+ *
8
+ * @param this
9
+ * @param postType The type of post to delete. Defaults to 'posts'.
10
+ */
11
+ async function deleteAllPosts(postType = 'posts') {
12
+ // List all posts.
13
+ // https://developer.wordpress.org/rest-api/reference/posts/#list-posts
14
+ const posts = await this.rest({
15
+ path: `/wp/v2/${postType}`,
16
+ params: {
17
+ per_page: 100,
18
+ // All possible statuses.
19
+ status: 'publish,future,draft,pending,private,trash',
20
+ },
21
+ });
22
+ // Delete all posts one by one.
23
+ // https://developer.wordpress.org/rest-api/reference/posts/#delete-a-post
24
+ // "/wp/v2/posts" not yet supports batch requests.
25
+ await Promise.all(posts.map((post) => this.rest({
26
+ method: 'DELETE',
40
27
  path: `/wp/v2/${postType}/${post.id}`,
41
28
  params: {
42
- force: true
43
- }
44
- })
45
- )
46
- );
29
+ force: true,
30
+ },
31
+ })));
47
32
  }
33
+ /**
34
+ * Creates a new post using the REST API.
35
+ *
36
+ * @param this
37
+ * @param payload Post attributes.
38
+ */
48
39
  async function createPost(payload) {
49
- const post = await this.rest({
50
- method: "POST",
51
- path: `/wp/v2/posts`,
52
- data: { ...payload }
53
- });
54
- return post;
40
+ const post = await this.rest({
41
+ method: 'POST',
42
+ path: `/wp/v2/posts`,
43
+ data: { ...payload },
44
+ });
45
+ return post;
55
46
  }
56
- // Annotate the CommonJS export names for ESM import in node:
57
- 0 && (module.exports = {
58
- createPost,
59
- deleteAllPosts
60
- });
61
- //# sourceMappingURL=posts.js.map
47
+ //# sourceMappingURL=posts.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/request-utils/posts.ts"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { RequestUtils } from './index';\n\nexport interface Post {\n\tid: number;\n\tcontent: string;\n\tstatus: 'publish' | 'future' | 'draft' | 'pending' | 'private';\n\tlink: string;\n}\n\nexport interface CreatePostPayload {\n\ttitle?: string;\n\tcontent?: string;\n\tstatus: 'publish' | 'future' | 'draft' | 'pending' | 'private';\n\tdate?: string;\n\tdate_gmt: string;\n}\n\n/**\n * Delete all posts using REST API.\n *\n * @param this\n * @param postType The type of post to delete. Defaults to 'posts'.\n */\nexport async function deleteAllPosts(\n\tthis: RequestUtils,\n\tpostType: string = 'posts'\n) {\n\t// List all posts.\n\t// https://developer.wordpress.org/rest-api/reference/posts/#list-posts\n\tconst posts = await this.rest< Post[] >( {\n\t\tpath: `/wp/v2/${ postType }`,\n\t\tparams: {\n\t\t\tper_page: 100,\n\t\t\t// All possible statuses.\n\t\t\tstatus: 'publish,future,draft,pending,private,trash',\n\t\t},\n\t} );\n\n\t// Delete all posts one by one.\n\t// https://developer.wordpress.org/rest-api/reference/posts/#delete-a-post\n\t// \"/wp/v2/posts\" not yet supports batch requests.\n\tawait Promise.all(\n\t\tposts.map( ( post ) =>\n\t\t\tthis.rest( {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\tpath: `/wp/v2/${ postType }/${ post.id }`,\n\t\t\t\tparams: {\n\t\t\t\t\tforce: true,\n\t\t\t\t},\n\t\t\t} )\n\t\t)\n\t);\n}\n\n/**\n * Creates a new post using the REST API.\n *\n * @param this\n * @param payload Post attributes.\n */\nexport async function createPost(\n\tthis: RequestUtils,\n\tpayload: CreatePostPayload\n) {\n\tconst post = await this.rest< Post >( {\n\t\tmethod: 'POST',\n\t\tpath: `/wp/v2/posts`,\n\t\tdata: { ...payload },\n\t} );\n\n\treturn post;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BA,eAAsB,eAErB,WAAmB,SAClB;AAGD,QAAM,QAAQ,MAAM,KAAK,KAAgB;AAAA,IACxC,MAAM,UAAW,QAAS;AAAA,IAC1B,QAAQ;AAAA,MACP,UAAU;AAAA;AAAA,MAEV,QAAQ;AAAA,IACT;AAAA,EACD,CAAE;AAKF,QAAM,QAAQ;AAAA,IACb,MAAM;AAAA,MAAK,CAAE,SACZ,KAAK,KAAM;AAAA,QACV,QAAQ;AAAA,QACR,MAAM,UAAW,QAAS,IAAK,KAAK,EAAG;AAAA,QACvC,QAAQ;AAAA,UACP,OAAO;AAAA,QACR;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD;AACD;AAQA,eAAsB,WAErB,SACC;AACD,QAAM,OAAO,MAAM,KAAK,KAAc;AAAA,IACrC,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM,EAAE,GAAG,QAAQ;AAAA,EACpB,CAAE;AAEF,SAAO;AACR;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/request-utils/posts.ts"],"names":[],"mappings":";;AA0BA,wCA6BC;AAQD,gCAWC;AAtDD;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAEnC,WAAmB,OAAO;IAE1B,kBAAkB;IAClB,uEAAuE;IACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAY;QACxC,IAAI,EAAE,UAAW,QAAS,EAAE;QAC5B,MAAM,EAAE;YACP,QAAQ,EAAE,GAAG;YACb,yBAAyB;YACzB,MAAM,EAAE,4CAA4C;SACpD;KACD,CAAE,CAAC;IAEJ,+BAA+B;IAC/B,0EAA0E;IAC1E,kDAAkD;IAClD,MAAM,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAE,CAAE,IAAI,EAAG,EAAE,CACrB,IAAI,CAAC,IAAI,CAAE;QACV,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAW,QAAS,IAAK,IAAI,CAAC,EAAG,EAAE;QACzC,MAAM,EAAE;YACP,KAAK,EAAE,IAAI;SACX;KACD,CAAE,CACH,CACD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAE/B,OAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAU;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE;KACpB,CAAE,CAAC;IAEJ,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/e2e-test-utils-playwright/src/request-utils/preferences.ts
21
+ var preferences_exports = {};
22
+ __export(preferences_exports, {
23
+ resetPreferences: () => resetPreferences
24
+ });
25
+ module.exports = __toCommonJS(preferences_exports);
26
+ async function resetPreferences() {
27
+ await this.rest({
28
+ path: "/wp/v2/users/me",
29
+ method: "PUT",
30
+ data: {
31
+ meta: {
32
+ persisted_preferences: {}
33
+ }
34
+ }
35
+ });
36
+ }
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ resetPreferences
40
+ });
41
+ //# sourceMappingURL=preferences.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/request-utils/preferences.ts"],
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { RequestUtils } from './index';\n\n/**\n * Reset user preferences\n *\n * @param this Request utils.\n */\nexport async function resetPreferences( this: RequestUtils ) {\n\tawait this.rest( {\n\t\tpath: '/wp/v2/users/me',\n\t\tmethod: 'PUT',\n\t\tdata: {\n\t\t\tmeta: {\n\t\t\t\tpersisted_preferences: {},\n\t\t\t},\n\t\t},\n\t} );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,eAAsB,mBAAuC;AAC5D,QAAM,KAAK,KAAM;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,MACL,MAAM;AAAA,QACL,uBAAuB,CAAC;AAAA,MACzB;AAAA,IACD;AAAA,EACD,CAAE;AACH;",
6
+ "names": []
7
+ }
@@ -1,41 +1,20 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // packages/e2e-test-utils-playwright/src/request-utils/preferences.ts
21
- var preferences_exports = {};
22
- __export(preferences_exports, {
23
- resetPreferences: () => resetPreferences
24
- });
25
- module.exports = __toCommonJS(preferences_exports);
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetPreferences = resetPreferences;
4
+ /**
5
+ * Reset user preferences
6
+ *
7
+ * @param this Request utils.
8
+ */
26
9
  async function resetPreferences() {
27
- await this.rest({
28
- path: "/wp/v2/users/me",
29
- method: "PUT",
30
- data: {
31
- meta: {
32
- persisted_preferences: {}
33
- }
34
- }
35
- });
10
+ await this.rest({
11
+ path: '/wp/v2/users/me',
12
+ method: 'PUT',
13
+ data: {
14
+ meta: {
15
+ persisted_preferences: {},
16
+ },
17
+ },
18
+ });
36
19
  }
37
- // Annotate the CommonJS export names for ESM import in node:
38
- 0 && (module.exports = {
39
- resetPreferences
40
- });
41
- //# sourceMappingURL=preferences.js.map
20
+ //# sourceMappingURL=preferences.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/request-utils/preferences.ts"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { RequestUtils } from './index';\n\n/**\n * Reset user preferences\n *\n * @param this Request utils.\n */\nexport async function resetPreferences( this: RequestUtils ) {\n\tawait this.rest( {\n\t\tpath: '/wp/v2/users/me',\n\t\tmethod: 'PUT',\n\t\tdata: {\n\t\t\tmeta: {\n\t\t\t\tpersisted_preferences: {},\n\t\t\t},\n\t\t},\n\t} );\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,eAAsB,mBAAuC;AAC5D,QAAM,KAAK,KAAM;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,MACL,MAAM;AAAA,QACL,uBAAuB,CAAC;AAAA,MACzB;AAAA,IACD;AAAA,EACD,CAAE;AACH;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../src/request-utils/preferences.ts"],"names":[],"mappings":";;AAUA,4CAUC;AAfD;;;;GAIG;AACI,KAAK,UAAU,gBAAgB;IACrC,MAAM,IAAI,CAAC,IAAI,CAAE;QAChB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE;YACL,IAAI,EAAE;gBACL,qBAAqB,EAAE,EAAE;aACzB;SACD;KACD,CAAE,CAAC;AACL,CAAC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/e2e-test-utils-playwright/src/request-utils/rest.ts
31
+ var rest_exports = {};
32
+ __export(rest_exports, {
33
+ batchRest: () => batchRest,
34
+ getMaxBatchSize: () => getMaxBatchSize,
35
+ rest: () => rest,
36
+ setupRest: () => setupRest
37
+ });
38
+ module.exports = __toCommonJS(rest_exports);
39
+ var fs = __toESM(require("fs/promises"));
40
+ var import_path = require("path");
41
+ var import_test = require("@playwright/test");
42
+ var import_config = require("../config.cjs");
43
+ function splitRequestsToChunks(requests, chunkSize) {
44
+ const arr = [...requests];
45
+ const cache = [];
46
+ while (arr.length) {
47
+ cache.push(arr.splice(0, chunkSize));
48
+ }
49
+ return cache;
50
+ }
51
+ async function getAPIRootURL(request) {
52
+ const response = await request.head(import_config.WP_BASE_URL);
53
+ const links = response.headers().link;
54
+ const restLink = links?.match(/<([^>]+)>; rel="https:\/\/api\.w\.org\/"/);
55
+ if (!restLink) {
56
+ throw new Error(`Failed to discover REST API endpoint.
57
+ Link header: ${links}`);
58
+ }
59
+ const [, rootURL] = restLink;
60
+ return rootURL;
61
+ }
62
+ async function setupRest() {
63
+ let nonce = "";
64
+ let rootURL = "";
65
+ await import_test.expect.poll(
66
+ async () => {
67
+ try {
68
+ [nonce, rootURL] = await Promise.all([
69
+ this.login(),
70
+ getAPIRootURL(this.request)
71
+ ]);
72
+ } catch (error) {
73
+ return error;
74
+ }
75
+ return !!(nonce && rootURL);
76
+ },
77
+ {
78
+ message: "Failed to setup REST API.",
79
+ timeout: 6e4
80
+ // 1 minute.
81
+ }
82
+ ).toBe(true);
83
+ const { cookies } = await this.request.storageState();
84
+ const storageState = {
85
+ cookies,
86
+ nonce,
87
+ rootURL
88
+ };
89
+ if (this.storageStatePath) {
90
+ await fs.mkdir((0, import_path.dirname)(this.storageStatePath), { recursive: true });
91
+ await fs.writeFile(
92
+ this.storageStatePath,
93
+ JSON.stringify(storageState),
94
+ "utf-8"
95
+ );
96
+ }
97
+ this.storageState = storageState;
98
+ return storageState;
99
+ }
100
+ async function rest(options) {
101
+ const { path, ...fetchOptions } = options;
102
+ if (!path) {
103
+ throw new Error('"path" is required to make a REST call');
104
+ }
105
+ if (!this.storageState?.nonce || !this.storageState?.rootURL) {
106
+ await this.setupRest();
107
+ }
108
+ const relativePath = path.startsWith("/") ? path.slice(1) : path;
109
+ const url = this.storageState.rootURL + relativePath;
110
+ try {
111
+ const response = await this.request.fetch(url, {
112
+ ...fetchOptions,
113
+ failOnStatusCode: false,
114
+ headers: {
115
+ "X-WP-Nonce": this.storageState.nonce,
116
+ ...fetchOptions.headers || {}
117
+ }
118
+ });
119
+ const json = await response.json();
120
+ if (!response.ok()) {
121
+ throw json;
122
+ }
123
+ return json;
124
+ } catch (error) {
125
+ if (typeof error === "object" && error !== null && Object.prototype.hasOwnProperty.call(error, "code") && error.code === "rest_cookie_invalid_nonce") {
126
+ await this.setupRest();
127
+ return this.rest(options);
128
+ }
129
+ throw error;
130
+ }
131
+ }
132
+ async function getMaxBatchSize(forceRefetch = false) {
133
+ if (!forceRefetch && this.maxBatchSize) {
134
+ return this.maxBatchSize;
135
+ }
136
+ const response = await this.rest({
137
+ method: "OPTIONS",
138
+ path: "/batch/v1"
139
+ });
140
+ this.maxBatchSize = response.endpoints[0].args.requests.maxItems;
141
+ return this.maxBatchSize;
142
+ }
143
+ async function batchRest(requests) {
144
+ const maxBatchSize = await this.getMaxBatchSize();
145
+ if (requests.length > maxBatchSize) {
146
+ const chunks = splitRequestsToChunks(requests, maxBatchSize);
147
+ const chunkResponses = await Promise.all(
148
+ chunks.map(
149
+ (chunkRequests) => this.batchRest(chunkRequests)
150
+ )
151
+ );
152
+ return chunkResponses.flat();
153
+ }
154
+ const batchResponses = await this.rest({
155
+ method: "POST",
156
+ path: "/batch/v1",
157
+ data: {
158
+ requests,
159
+ validation: "require-all-validate"
160
+ }
161
+ });
162
+ if (batchResponses.failed) {
163
+ throw batchResponses;
164
+ }
165
+ return batchResponses.responses;
166
+ }
167
+ // Annotate the CommonJS export names for ESM import in node:
168
+ 0 && (module.exports = {
169
+ batchRest,
170
+ getMaxBatchSize,
171
+ rest,
172
+ setupRest
173
+ });
174
+ //# sourceMappingURL=rest.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/request-utils/rest.ts"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport * as fs from 'fs/promises';\nimport { dirname } from 'path';\nimport { expect } from '@playwright/test';\nimport type { APIRequestContext } from '@playwright/test';\n\n/**\n * Internal dependencies\n */\nimport { WP_BASE_URL } from '../config';\nimport type { RequestUtils, StorageState } from './index';\n\nfunction splitRequestsToChunks( requests: BatchRequest[], chunkSize: number ) {\n\tconst arr = [ ...requests ];\n\tconst cache = [];\n\twhile ( arr.length ) {\n\t\tcache.push( arr.splice( 0, chunkSize ) );\n\t}\n\n\treturn cache;\n}\n\nasync function getAPIRootURL( request: APIRequestContext ) {\n\t// Discover the API root url using link header.\n\t// See https://developer.wordpress.org/rest-api/using-the-rest-api/discovery/#link-header\n\tconst response = await request.head( WP_BASE_URL );\n\tconst links = response.headers().link;\n\tconst restLink = links?.match( /<([^>]+)>; rel=\"https:\\/\\/api\\.w\\.org\\/\"/ );\n\n\tif ( ! restLink ) {\n\t\tthrow new Error( `Failed to discover REST API endpoint.\n Link header: ${ links }` );\n\t}\n\n\tconst [ , rootURL ] = restLink;\n\n\treturn rootURL;\n}\n\nasync function setupRest( this: RequestUtils ): Promise< StorageState > {\n\tlet nonce = '';\n\tlet rootURL = '';\n\n\t// Poll until the REST API is discovered.\n\t// See https://github.com/WordPress/gutenberg/issues/61627\n\tawait expect\n\t\t.poll(\n\t\t\tasync () => {\n\t\t\t\ttry {\n\t\t\t\t\t[ nonce, rootURL ] = await Promise.all( [\n\t\t\t\t\t\tthis.login(),\n\t\t\t\t\t\tgetAPIRootURL( this.request ),\n\t\t\t\t\t] );\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\t// Prints the error if the timeout is reached.\n\t\t\t\t\treturn error;\n\t\t\t\t}\n\n\t\t\t\treturn !! ( nonce && rootURL );\n\t\t\t},\n\t\t\t{\n\t\t\t\tmessage: 'Failed to setup REST API.',\n\t\t\t\ttimeout: 60_000, // 1 minute.\n\t\t\t}\n\t\t)\n\t\t.toBe( true );\n\n\tconst { cookies } = await this.request.storageState();\n\n\tconst storageState: StorageState = {\n\t\tcookies,\n\t\tnonce,\n\t\trootURL,\n\t};\n\n\tif ( this.storageStatePath ) {\n\t\tawait fs.mkdir( dirname( this.storageStatePath ), { recursive: true } );\n\t\tawait fs.writeFile(\n\t\t\tthis.storageStatePath,\n\t\t\tJSON.stringify( storageState ),\n\t\t\t'utf-8'\n\t\t);\n\t}\n\n\tthis.storageState = storageState;\n\n\treturn storageState;\n}\n\ntype RequestFetchOptions = Exclude<\n\tParameters< APIRequestContext[ 'fetch' ] >[ 1 ],\n\tundefined\n>;\nexport interface RestOptions extends RequestFetchOptions {\n\tpath: string;\n}\n\nasync function rest< RestResponse = any >(\n\tthis: RequestUtils,\n\toptions: RestOptions\n): Promise< RestResponse > {\n\tconst { path, ...fetchOptions } = options;\n\n\tif ( ! path ) {\n\t\tthrow new Error( '\"path\" is required to make a REST call' );\n\t}\n\n\tif ( ! this.storageState?.nonce || ! this.storageState?.rootURL ) {\n\t\tawait this.setupRest();\n\t}\n\n\tconst relativePath = path.startsWith( '/' ) ? path.slice( 1 ) : path;\n\n\tconst url = this.storageState!.rootURL + relativePath;\n\n\ttry {\n\t\tconst response = await this.request.fetch( url, {\n\t\t\t...fetchOptions,\n\t\t\tfailOnStatusCode: false,\n\t\t\theaders: {\n\t\t\t\t'X-WP-Nonce': this.storageState!.nonce,\n\t\t\t\t...( fetchOptions.headers || {} ),\n\t\t\t},\n\t\t} );\n\t\tconst json: RestResponse = await response.json();\n\n\t\tif ( ! response.ok() ) {\n\t\t\tthrow json;\n\t\t}\n\n\t\treturn json;\n\t} catch ( error ) {\n\t\t// Nonce in invalid, retry again with a renewed nonce.\n\t\tif (\n\t\t\ttypeof error === 'object' &&\n\t\t\terror !== null &&\n\t\t\tObject.prototype.hasOwnProperty.call( error, 'code' ) &&\n\t\t\t( error as { code: string } ).code === 'rest_cookie_invalid_nonce'\n\t\t) {\n\t\t\tawait this.setupRest();\n\n\t\t\treturn this.rest( options );\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\n/**\n * Get the maximum batch size for the REST API.\n *\n * @param this\n * @param forceRefetch Force revalidate the cached max batch size.\n */\nasync function getMaxBatchSize( this: RequestUtils, forceRefetch = false ) {\n\tif ( ! forceRefetch && this.maxBatchSize ) {\n\t\treturn this.maxBatchSize;\n\t}\n\n\tconst response = await this.rest< {\n\t\tendpoints: {\n\t\t\targs: {\n\t\t\t\trequests: {\n\t\t\t\t\tmaxItems: number;\n\t\t\t\t};\n\t\t\t};\n\t\t}[];\n\t} >( {\n\t\tmethod: 'OPTIONS',\n\t\tpath: '/batch/v1',\n\t} );\n\tthis.maxBatchSize = response.endpoints[ 0 ].args.requests.maxItems;\n\treturn this.maxBatchSize;\n}\n\nexport interface BatchRequest {\n\tmethod?: string;\n\tpath: string;\n\theaders?: Record< string, string | string[] >;\n\tbody?: any;\n}\n\nasync function batchRest< BatchResponse >(\n\tthis: RequestUtils,\n\trequests: BatchRequest[]\n): Promise< BatchResponse[] > {\n\tconst maxBatchSize = await this.getMaxBatchSize();\n\n\tif ( requests.length > maxBatchSize ) {\n\t\tconst chunks = splitRequestsToChunks( requests, maxBatchSize );\n\n\t\tconst chunkResponses = await Promise.all(\n\t\t\tchunks.map( ( chunkRequests ) =>\n\t\t\t\tthis.batchRest< BatchResponse >( chunkRequests )\n\t\t\t)\n\t\t);\n\n\t\treturn chunkResponses.flat();\n\t}\n\n\tconst batchResponses = await this.rest< {\n\t\tfailed?: string;\n\t\tresponses: BatchResponse[];\n\t} >( {\n\t\tmethod: 'POST',\n\t\tpath: '/batch/v1',\n\t\tdata: {\n\t\t\trequests,\n\t\t\tvalidation: 'require-all-validate',\n\t\t},\n\t} );\n\n\tif ( batchResponses.failed ) {\n\t\tthrow batchResponses;\n\t}\n\n\treturn batchResponses.responses;\n}\n\nexport { setupRest, rest, getMaxBatchSize, batchRest };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }