@wordpress/e2e-test-utils-playwright 1.36.1-next.738bb1424.0 → 1.37.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 (227) hide show
  1. package/build/admin/create-new-post.js +48 -28
  2. package/build/admin/create-new-post.js.map +7 -1
  3. package/build/admin/edit-post.js +37 -17
  4. package/build/admin/edit-post.js.map +7 -1
  5. package/build/admin/get-page-error.js +33 -23
  6. package/build/admin/get-page-error.js.map +7 -1
  7. package/build/admin/index.js +58 -36
  8. package/build/admin/index.js.map +7 -1
  9. package/build/admin/visit-admin-page.js +44 -29
  10. package/build/admin/visit-admin-page.js.map +7 -1
  11. package/build/admin/visit-site-editor.js +73 -64
  12. package/build/admin/visit-site-editor.js.map +7 -1
  13. package/build/config.js +43 -11
  14. package/build/config.js.map +7 -1
  15. package/build/editor/click-block-options-menu-item.js +31 -14
  16. package/build/editor/click-block-options-menu-item.js.map +7 -1
  17. package/build/editor/click-block-toolbar-button.js +35 -13
  18. package/build/editor/click-block-toolbar-button.js.map +7 -1
  19. package/build/editor/get-blocks.js +61 -43
  20. package/build/editor/get-blocks.js.map +7 -1
  21. package/build/editor/get-edited-post-content.js +33 -12
  22. package/build/editor/get-edited-post-content.js.map +7 -1
  23. package/build/editor/index.js +96 -74
  24. package/build/editor/index.js.map +7 -1
  25. package/build/editor/insert-block.js +52 -21
  26. package/build/editor/insert-block.js.map +7 -1
  27. package/build/editor/open-document-settings-sidebar.js +39 -24
  28. package/build/editor/open-document-settings-sidebar.js.map +7 -1
  29. package/build/editor/preview.js +39 -18
  30. package/build/editor/preview.js.map +7 -1
  31. package/build/editor/publish-post.js +44 -42
  32. package/build/editor/publish-post.js.map +7 -1
  33. package/build/editor/save-draft.js +31 -15
  34. package/build/editor/save-draft.js.map +7 -1
  35. package/build/editor/select-blocks.js +48 -25
  36. package/build/editor/select-blocks.js.map +7 -1
  37. package/build/editor/set-content.js +36 -14
  38. package/build/editor/set-content.js.map +7 -1
  39. package/build/editor/set-is-fixed-toolbar.js +33 -15
  40. package/build/editor/set-is-fixed-toolbar.js.map +7 -1
  41. package/build/editor/set-preferences.js +40 -18
  42. package/build/editor/set-preferences.js.map +7 -1
  43. package/build/editor/show-block-toolbar.js +32 -16
  44. package/build/editor/show-block-toolbar.js.map +7 -1
  45. package/build/editor/site-editor.js +48 -41
  46. package/build/editor/site-editor.js.map +7 -1
  47. package/build/editor/switch-editor-tool.js +44 -30
  48. package/build/editor/switch-editor-tool.js.map +7 -1
  49. package/build/editor/switch-to-legacy-canvas.js +35 -14
  50. package/build/editor/switch-to-legacy-canvas.js.map +7 -1
  51. package/build/editor/transform-block-to.js +43 -21
  52. package/build/editor/transform-block-to.js.map +7 -1
  53. package/build/index.js +53 -18
  54. package/build/index.js.map +7 -1
  55. package/build/lighthouse/index.js +93 -55
  56. package/build/lighthouse/index.js.map +7 -1
  57. package/build/metrics/index.js +302 -251
  58. package/build/metrics/index.js.map +7 -1
  59. package/build/page-utils/drag-files.js +136 -112
  60. package/build/page-utils/drag-files.js.map +7 -1
  61. package/build/page-utils/emulate-network-conditions.js +95 -67
  62. package/build/page-utils/emulate-network-conditions.js.map +7 -1
  63. package/build/page-utils/index.js +58 -36
  64. package/build/page-utils/index.js.map +7 -1
  65. package/build/page-utils/is-current-url.js +33 -18
  66. package/build/page-utils/is-current-url.js.map +7 -1
  67. package/build/page-utils/keycodes.js +53 -39
  68. package/build/page-utils/keycodes.js.map +7 -1
  69. package/build/page-utils/press-keys.js +153 -130
  70. package/build/page-utils/press-keys.js.map +7 -1
  71. package/build/page-utils/set-browser-viewport.js +35 -42
  72. package/build/page-utils/set-browser-viewport.js.map +7 -1
  73. package/build/request-utils/blocks.js +51 -40
  74. package/build/request-utils/blocks.js.map +7 -1
  75. package/build/request-utils/comments.js +59 -45
  76. package/build/request-utils/comments.js.map +7 -1
  77. package/build/request-utils/gutenberg-experiments.js +63 -38
  78. package/build/request-utils/gutenberg-experiments.js.map +7 -1
  79. package/build/request-utils/index.js +191 -155
  80. package/build/request-utils/index.js.map +7 -1
  81. package/build/request-utils/login.js +45 -18
  82. package/build/request-utils/login.js.map +7 -1
  83. package/build/request-utils/media.js +74 -64
  84. package/build/request-utils/media.js.map +7 -1
  85. package/build/request-utils/menus.js +121 -109
  86. package/build/request-utils/menus.js.map +7 -1
  87. package/build/request-utils/pages.js +63 -50
  88. package/build/request-utils/pages.js.map +7 -1
  89. package/build/request-utils/patterns.js +41 -24
  90. package/build/request-utils/patterns.js.map +7 -1
  91. package/build/request-utils/plugins.js +70 -74
  92. package/build/request-utils/plugins.js.map +7 -1
  93. package/build/request-utils/posts.js +55 -41
  94. package/build/request-utils/posts.js.map +7 -1
  95. package/build/request-utils/preferences.js +38 -17
  96. package/build/request-utils/preferences.js.map +7 -1
  97. package/build/request-utils/rest.js +155 -129
  98. package/build/request-utils/rest.js.map +7 -1
  99. package/build/request-utils/site-settings.js +40 -28
  100. package/build/request-utils/site-settings.js.map +7 -1
  101. package/build/request-utils/templates.js +60 -46
  102. package/build/request-utils/templates.js.map +7 -1
  103. package/build/request-utils/themes.js +80 -53
  104. package/build/request-utils/themes.js.map +7 -1
  105. package/build/request-utils/users.js +74 -72
  106. package/build/request-utils/users.js.map +7 -1
  107. package/build/request-utils/widgets.js +73 -55
  108. package/build/request-utils/widgets.js.map +7 -1
  109. package/build/test.js +130 -146
  110. package/build/test.js.map +7 -1
  111. package/build/types.js +18 -2
  112. package/build/types.js.map +7 -1
  113. package/build-types/index.d.ts +1 -1
  114. package/build-types/index.d.ts.map +1 -1
  115. package/package.json +2 -2
  116. package/build/admin/create-new-post.cjs +0 -51
  117. package/build/admin/create-new-post.cjs.map +0 -7
  118. package/build/admin/edit-post.cjs +0 -40
  119. package/build/admin/edit-post.cjs.map +0 -7
  120. package/build/admin/get-page-error.cjs +0 -36
  121. package/build/admin/get-page-error.cjs.map +0 -7
  122. package/build/admin/index.cjs +0 -59
  123. package/build/admin/index.cjs.map +0 -7
  124. package/build/admin/visit-admin-page.cjs +0 -47
  125. package/build/admin/visit-admin-page.cjs.map +0 -7
  126. package/build/admin/visit-site-editor.cjs +0 -77
  127. package/build/admin/visit-site-editor.cjs.map +0 -7
  128. package/build/config.cjs +0 -45
  129. package/build/config.cjs.map +0 -7
  130. package/build/editor/click-block-options-menu-item.cjs +0 -34
  131. package/build/editor/click-block-options-menu-item.cjs.map +0 -7
  132. package/build/editor/click-block-toolbar-button.cjs +0 -38
  133. package/build/editor/click-block-toolbar-button.cjs.map +0 -7
  134. package/build/editor/get-blocks.cjs +0 -64
  135. package/build/editor/get-blocks.cjs.map +0 -7
  136. package/build/editor/get-edited-post-content.cjs +0 -36
  137. package/build/editor/get-edited-post-content.cjs.map +0 -7
  138. package/build/editor/index.cjs +0 -97
  139. package/build/editor/index.cjs.map +0 -7
  140. package/build/editor/insert-block.cjs +0 -55
  141. package/build/editor/insert-block.cjs.map +0 -7
  142. package/build/editor/open-document-settings-sidebar.cjs +0 -42
  143. package/build/editor/open-document-settings-sidebar.cjs.map +0 -7
  144. package/build/editor/preview.cjs +0 -42
  145. package/build/editor/preview.cjs.map +0 -7
  146. package/build/editor/publish-post.cjs +0 -47
  147. package/build/editor/publish-post.cjs.map +0 -7
  148. package/build/editor/save-draft.cjs +0 -34
  149. package/build/editor/save-draft.cjs.map +0 -7
  150. package/build/editor/select-blocks.cjs +0 -51
  151. package/build/editor/select-blocks.cjs.map +0 -7
  152. package/build/editor/set-content.cjs +0 -39
  153. package/build/editor/set-content.cjs.map +0 -7
  154. package/build/editor/set-is-fixed-toolbar.cjs +0 -36
  155. package/build/editor/set-is-fixed-toolbar.cjs.map +0 -7
  156. package/build/editor/set-preferences.cjs +0 -43
  157. package/build/editor/set-preferences.cjs.map +0 -7
  158. package/build/editor/show-block-toolbar.cjs +0 -35
  159. package/build/editor/show-block-toolbar.cjs.map +0 -7
  160. package/build/editor/site-editor.cjs +0 -51
  161. package/build/editor/site-editor.cjs.map +0 -7
  162. package/build/editor/switch-editor-tool.cjs +0 -47
  163. package/build/editor/switch-editor-tool.cjs.map +0 -7
  164. package/build/editor/switch-to-legacy-canvas.cjs +0 -39
  165. package/build/editor/switch-to-legacy-canvas.cjs.map +0 -7
  166. package/build/editor/transform-block-to.cjs +0 -46
  167. package/build/editor/transform-block-to.cjs.map +0 -7
  168. package/build/index.cjs +0 -51
  169. package/build/index.cjs.map +0 -7
  170. package/build/lighthouse/index.cjs +0 -96
  171. package/build/lighthouse/index.cjs.map +0 -7
  172. package/build/metrics/index.cjs +0 -309
  173. package/build/metrics/index.cjs.map +0 -7
  174. package/build/page-utils/drag-files.cjs +0 -143
  175. package/build/page-utils/drag-files.cjs.map +0 -7
  176. package/build/page-utils/emulate-network-conditions.cjs +0 -99
  177. package/build/page-utils/emulate-network-conditions.cjs.map +0 -7
  178. package/build/page-utils/index.cjs +0 -59
  179. package/build/page-utils/index.cjs.map +0 -7
  180. package/build/page-utils/is-current-url.cjs +0 -36
  181. package/build/page-utils/is-current-url.cjs.map +0 -7
  182. package/build/page-utils/keycodes.cjs +0 -55
  183. package/build/page-utils/keycodes.cjs.map +0 -7
  184. package/build/page-utils/press-keys.cjs +0 -165
  185. package/build/page-utils/press-keys.cjs.map +0 -7
  186. package/build/page-utils/set-browser-viewport.cjs +0 -39
  187. package/build/page-utils/set-browser-viewport.cjs.map +0 -7
  188. package/build/request-utils/blocks.cjs +0 -56
  189. package/build/request-utils/blocks.cjs.map +0 -7
  190. package/build/request-utils/comments.cjs +0 -66
  191. package/build/request-utils/comments.cjs.map +0 -7
  192. package/build/request-utils/gutenberg-experiments.cjs +0 -66
  193. package/build/request-utils/gutenberg-experiments.cjs.map +0 -7
  194. package/build/request-utils/index.cjs +0 -194
  195. package/build/request-utils/index.cjs.map +0 -7
  196. package/build/request-utils/login.cjs +0 -48
  197. package/build/request-utils/login.cjs.map +0 -7
  198. package/build/request-utils/media.cjs +0 -83
  199. package/build/request-utils/media.cjs.map +0 -7
  200. package/build/request-utils/menus.cjs +0 -132
  201. package/build/request-utils/menus.cjs.map +0 -7
  202. package/build/request-utils/pages.cjs +0 -71
  203. package/build/request-utils/pages.cjs.map +0 -7
  204. package/build/request-utils/patterns.cjs +0 -44
  205. package/build/request-utils/patterns.cjs.map +0 -7
  206. package/build/request-utils/plugins.cjs +0 -81
  207. package/build/request-utils/plugins.cjs.map +0 -7
  208. package/build/request-utils/posts.cjs +0 -61
  209. package/build/request-utils/posts.cjs.map +0 -7
  210. package/build/request-utils/preferences.cjs +0 -41
  211. package/build/request-utils/preferences.cjs.map +0 -7
  212. package/build/request-utils/rest.cjs +0 -174
  213. package/build/request-utils/rest.cjs.map +0 -7
  214. package/build/request-utils/site-settings.cjs +0 -45
  215. package/build/request-utils/site-settings.cjs.map +0 -7
  216. package/build/request-utils/templates.cjs +0 -68
  217. package/build/request-utils/templates.cjs.map +0 -7
  218. package/build/request-utils/themes.cjs +0 -89
  219. package/build/request-utils/themes.cjs.map +0 -7
  220. package/build/request-utils/users.cjs +0 -83
  221. package/build/request-utils/users.cjs.map +0 -7
  222. package/build/request-utils/widgets.cjs +0 -79
  223. package/build/request-utils/widgets.cjs.map +0 -7
  224. package/build/test.cjs +0 -136
  225. package/build/test.cjs.map +0 -7
  226. package/build/types.cjs +0 -19
  227. package/build/types.cjs.map +0 -7
@@ -1,148 +1,174 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupRest = setupRest;
4
- exports.rest = rest;
5
- exports.getMaxBatchSize = getMaxBatchSize;
6
- exports.batchRest = batchRest;
7
- /**
8
- * External dependencies
9
- */
10
- const fs = require("fs/promises");
11
- const path_1 = require("path");
12
- const test_1 = require("@playwright/test");
13
- /**
14
- * Internal dependencies
15
- */
16
- const config_1 = require("../config");
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");
17
43
  function splitRequestsToChunks(requests, chunkSize) {
18
- const arr = [...requests];
19
- const cache = [];
20
- while (arr.length) {
21
- cache.push(arr.splice(0, chunkSize));
22
- }
23
- return cache;
44
+ const arr = [...requests];
45
+ const cache = [];
46
+ while (arr.length) {
47
+ cache.push(arr.splice(0, chunkSize));
48
+ }
49
+ return cache;
24
50
  }
25
51
  async function getAPIRootURL(request) {
26
- // Discover the API root url using link header.
27
- // See https://developer.wordpress.org/rest-api/using-the-rest-api/discovery/#link-header
28
- const response = await request.head(config_1.WP_BASE_URL);
29
- const links = response.headers().link;
30
- const restLink = links?.match(/<([^>]+)>; rel="https:\/\/api\.w\.org\/"/);
31
- if (!restLink) {
32
- throw new Error(`Failed to discover REST API endpoint.
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.
33
57
  Link header: ${links}`);
34
- }
35
- const [, rootURL] = restLink;
36
- return rootURL;
58
+ }
59
+ const [, rootURL] = restLink;
60
+ return rootURL;
37
61
  }
38
62
  async function setupRest() {
39
- let nonce = '';
40
- let rootURL = '';
41
- // Poll until the REST API is discovered.
42
- // See https://github.com/WordPress/gutenberg/issues/61627
43
- await test_1.expect
44
- .poll(async () => {
45
- try {
46
- [nonce, rootURL] = await Promise.all([
47
- this.login(),
48
- getAPIRootURL(this.request),
49
- ]);
50
- }
51
- catch (error) {
52
- // Prints the error if the timeout is reached.
53
- return error;
54
- }
55
- return !!(nonce && rootURL);
56
- }, {
57
- message: 'Failed to setup REST API.',
58
- timeout: 60_000, // 1 minute.
59
- })
60
- .toBe(true);
61
- const { cookies } = await this.request.storageState();
62
- const storageState = {
63
- cookies,
64
- nonce,
65
- rootURL,
66
- };
67
- if (this.storageStatePath) {
68
- await fs.mkdir((0, path_1.dirname)(this.storageStatePath), { recursive: true });
69
- await fs.writeFile(this.storageStatePath, JSON.stringify(storageState), 'utf-8');
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.
70
81
  }
71
- this.storageState = storageState;
72
- return storageState;
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;
73
99
  }
74
100
  async function rest(options) {
75
- const { path, ...fetchOptions } = options;
76
- if (!path) {
77
- throw new Error('"path" is required to make a REST call');
78
- }
79
- if (!this.storageState?.nonce || !this.storageState?.rootURL) {
80
- await this.setupRest();
81
- }
82
- const relativePath = path.startsWith('/') ? path.slice(1) : path;
83
- const url = this.storageState.rootURL + relativePath;
84
- try {
85
- const response = await this.request.fetch(url, {
86
- ...fetchOptions,
87
- failOnStatusCode: false,
88
- headers: {
89
- 'X-WP-Nonce': this.storageState.nonce,
90
- ...(fetchOptions.headers || {}),
91
- },
92
- });
93
- const json = await response.json();
94
- if (!response.ok()) {
95
- throw json;
96
- }
97
- return json;
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;
98
122
  }
99
- catch (error) {
100
- // Nonce in invalid, retry again with a renewed nonce.
101
- if (typeof error === 'object' &&
102
- error !== null &&
103
- Object.prototype.hasOwnProperty.call(error, 'code') &&
104
- error.code === 'rest_cookie_invalid_nonce') {
105
- await this.setupRest();
106
- return this.rest(options);
107
- }
108
- throw error;
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);
109
128
  }
129
+ throw error;
130
+ }
110
131
  }
111
- /**
112
- * Get the maximum batch size for the REST API.
113
- *
114
- * @param this
115
- * @param forceRefetch Force revalidate the cached max batch size.
116
- */
117
132
  async function getMaxBatchSize(forceRefetch = false) {
118
- if (!forceRefetch && this.maxBatchSize) {
119
- return this.maxBatchSize;
120
- }
121
- const response = await this.rest({
122
- method: 'OPTIONS',
123
- path: '/batch/v1',
124
- });
125
- this.maxBatchSize = response.endpoints[0].args.requests.maxItems;
133
+ if (!forceRefetch && this.maxBatchSize) {
126
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;
127
142
  }
128
143
  async function batchRest(requests) {
129
- const maxBatchSize = await this.getMaxBatchSize();
130
- if (requests.length > maxBatchSize) {
131
- const chunks = splitRequestsToChunks(requests, maxBatchSize);
132
- const chunkResponses = await Promise.all(chunks.map((chunkRequests) => this.batchRest(chunkRequests)));
133
- return chunkResponses.flat();
134
- }
135
- const batchResponses = await this.rest({
136
- method: 'POST',
137
- path: '/batch/v1',
138
- data: {
139
- requests,
140
- validation: 'require-all-validate',
141
- },
142
- });
143
- if (batchResponses.failed) {
144
- throw batchResponses;
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"
145
160
  }
146
- return batchResponses.responses;
161
+ });
162
+ if (batchResponses.failed) {
163
+ throw batchResponses;
164
+ }
165
+ return batchResponses.responses;
147
166
  }
148
- //# sourceMappingURL=rest.js.map
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.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/request-utils/rest.ts"],"names":[],"mappings":"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"}
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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAoB;AACpB,kBAAwB;AACxB,kBAAuB;AAMvB,oBAA4B;AAG5B,SAAS,sBAAuB,UAA0B,WAAoB;AAC7E,QAAM,MAAM,CAAE,GAAG,QAAS;AAC1B,QAAM,QAAQ,CAAC;AACf,SAAQ,IAAI,QAAS;AACpB,UAAM,KAAM,IAAI,OAAQ,GAAG,SAAU,CAAE;AAAA,EACxC;AAEA,SAAO;AACR;AAEA,eAAe,cAAe,SAA6B;AAG1D,QAAM,WAAW,MAAM,QAAQ,KAAM,yBAAY;AACjD,QAAM,QAAQ,SAAS,QAAQ,EAAE;AACjC,QAAM,WAAW,OAAO,MAAO,0CAA2C;AAE1E,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO;AAAA,gBACF,KAAM,EAAG;AAAA,EACzB;AAEA,QAAM,CAAE,EAAE,OAAQ,IAAI;AAEtB,SAAO;AACR;AAEA,eAAe,YAAyD;AACvE,MAAI,QAAQ;AACZ,MAAI,UAAU;AAId,QAAM,mBACJ;AAAA,IACA,YAAY;AACX,UAAI;AACH,SAAE,OAAO,OAAQ,IAAI,MAAM,QAAQ,IAAK;AAAA,UACvC,KAAK,MAAM;AAAA,UACX,cAAe,KAAK,OAAQ;AAAA,QAC7B,CAAE;AAAA,MACH,SAAU,OAAQ;AAEjB,eAAO;AAAA,MACR;AAEA,aAAO,CAAC,EAAI,SAAS;AAAA,IACtB;AAAA,IACA;AAAA,MACC,SAAS;AAAA,MACT,SAAS;AAAA;AAAA,IACV;AAAA,EACD,EACC,KAAM,IAAK;AAEb,QAAM,EAAE,QAAQ,IAAI,MAAM,KAAK,QAAQ,aAAa;AAEpD,QAAM,eAA6B;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,MAAK,KAAK,kBAAmB;AAC5B,UAAS,aAAO,qBAAS,KAAK,gBAAiB,GAAG,EAAE,WAAW,KAAK,CAAE;AACtE,UAAS;AAAA,MACR,KAAK;AAAA,MACL,KAAK,UAAW,YAAa;AAAA,MAC7B;AAAA,IACD;AAAA,EACD;AAEA,OAAK,eAAe;AAEpB,SAAO;AACR;AAUA,eAAe,KAEd,SAC0B;AAC1B,QAAM,EAAE,MAAM,GAAG,aAAa,IAAI;AAElC,MAAK,CAAE,MAAO;AACb,UAAM,IAAI,MAAO,wCAAyC;AAAA,EAC3D;AAEA,MAAK,CAAE,KAAK,cAAc,SAAS,CAAE,KAAK,cAAc,SAAU;AACjE,UAAM,KAAK,UAAU;AAAA,EACtB;AAEA,QAAM,eAAe,KAAK,WAAY,GAAI,IAAI,KAAK,MAAO,CAAE,IAAI;AAEhE,QAAM,MAAM,KAAK,aAAc,UAAU;AAEzC,MAAI;AACH,UAAM,WAAW,MAAM,KAAK,QAAQ,MAAO,KAAK;AAAA,MAC/C,GAAG;AAAA,MACH,kBAAkB;AAAA,MAClB,SAAS;AAAA,QACR,cAAc,KAAK,aAAc;AAAA,QACjC,GAAK,aAAa,WAAW,CAAC;AAAA,MAC/B;AAAA,IACD,CAAE;AACF,UAAM,OAAqB,MAAM,SAAS,KAAK;AAE/C,QAAK,CAAE,SAAS,GAAG,GAAI;AACtB,YAAM;AAAA,IACP;AAEA,WAAO;AAAA,EACR,SAAU,OAAQ;AAEjB,QACC,OAAO,UAAU,YACjB,UAAU,QACV,OAAO,UAAU,eAAe,KAAM,OAAO,MAAO,KAClD,MAA4B,SAAS,6BACtC;AACD,YAAM,KAAK,UAAU;AAErB,aAAO,KAAK,KAAM,OAAQ;AAAA,IAC3B;AAEA,UAAM;AAAA,EACP;AACD;AAQA,eAAe,gBAAqC,eAAe,OAAQ;AAC1E,MAAK,CAAE,gBAAgB,KAAK,cAAe;AAC1C,WAAO,KAAK;AAAA,EACb;AAEA,QAAM,WAAW,MAAM,KAAK,KAQvB;AAAA,IACJ,QAAQ;AAAA,IACR,MAAM;AAAA,EACP,CAAE;AACF,OAAK,eAAe,SAAS,UAAW,CAAE,EAAE,KAAK,SAAS;AAC1D,SAAO,KAAK;AACb;AASA,eAAe,UAEd,UAC6B;AAC7B,QAAM,eAAe,MAAM,KAAK,gBAAgB;AAEhD,MAAK,SAAS,SAAS,cAAe;AACrC,UAAM,SAAS,sBAAuB,UAAU,YAAa;AAE7D,UAAM,iBAAiB,MAAM,QAAQ;AAAA,MACpC,OAAO;AAAA,QAAK,CAAE,kBACb,KAAK,UAA4B,aAAc;AAAA,MAChD;AAAA,IACD;AAEA,WAAO,eAAe,KAAK;AAAA,EAC5B;AAEA,QAAM,iBAAiB,MAAM,KAAK,KAG7B;AAAA,IACJ,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,MACL;AAAA,MACA,YAAY;AAAA,IACb;AAAA,EACD,CAAE;AAEF,MAAK,eAAe,QAAS;AAC5B,UAAM;AAAA,EACP;AAEA,SAAO,eAAe;AACvB;",
6
+ "names": []
7
+ }
@@ -1,33 +1,45 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSiteSettings = getSiteSettings;
4
- exports.updateSiteSettings = updateSiteSettings;
5
- /**
6
- * Get the site settings.
7
- *
8
- * @see https://developer.wordpress.org/rest-api/reference/settings/#retrieve-a-site-setting
9
- *
10
- * @param this RequestUtils.
11
- */
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/site-settings.ts
21
+ var site_settings_exports = {};
22
+ __export(site_settings_exports, {
23
+ getSiteSettings: () => getSiteSettings,
24
+ updateSiteSettings: () => updateSiteSettings
25
+ });
26
+ module.exports = __toCommonJS(site_settings_exports);
12
27
  async function getSiteSettings() {
13
- return await this.rest({
14
- path: '/wp/v2/settings',
15
- method: 'GET',
16
- });
28
+ return await this.rest({
29
+ path: "/wp/v2/settings",
30
+ method: "GET"
31
+ });
17
32
  }
18
- /**
19
- * Update the site settings.
20
- *
21
- * @see https://developer.wordpress.org/rest-api/reference/settings/#update-a-site-setting
22
- *
23
- * @param this RequestUtils.
24
- * @param siteSettings The partial settings payload to update.
25
- */
26
33
  async function updateSiteSettings(siteSettings) {
27
- return await this.rest({
28
- path: '/wp/v2/settings',
29
- method: 'POST',
30
- data: siteSettings,
31
- });
34
+ return await this.rest({
35
+ path: "/wp/v2/settings",
36
+ method: "POST",
37
+ data: siteSettings
38
+ });
32
39
  }
33
- //# sourceMappingURL=site-settings.js.map
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ getSiteSettings,
43
+ updateSiteSettings
44
+ });
45
+ //# sourceMappingURL=site-settings.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"site-settings.js","sourceRoot":"","sources":["../../src/request-utils/site-settings.ts"],"names":[],"mappings":";;AAiCA,0CAKC;AAUD,gDASC;AA/BD;;;;;;GAMG;AACI,KAAK,UAAU,eAAe;IACpC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAkB;QACvC,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,KAAK;KACb,CAAE,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,kBAAkB,CAEvC,YAAqC;IAErC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAkB;QACvC,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,YAAY;KAClB,CAAE,CAAC;AACL,CAAC"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/request-utils/site-settings.ts"],
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { RequestUtils } from './index';\n\ntype SiteSettings = {\n\ttitle: string;\n\tdescription: string;\n\turl: string;\n\temail: string;\n\ttimezone: string;\n\tdate_format: string;\n\ttime_format: string;\n\tstart_of_week: number;\n\tlanguage: string;\n\tuse_smilies: boolean;\n\tdefault_category: number;\n\tdefault_post_format: string;\n\tposts_per_page: number;\n\tdefault_ping_status: 'open' | 'closed';\n\tdefault_comment_status: 'open' | 'closed';\n\tshow_on_front: 'posts' | 'page';\n\tpage_on_front: number;\n\tpage_for_posts: number;\n};\n\n/**\n * Get the site settings.\n *\n * @see https://developer.wordpress.org/rest-api/reference/settings/#retrieve-a-site-setting\n *\n * @param this RequestUtils.\n */\nexport async function getSiteSettings( this: RequestUtils ) {\n\treturn await this.rest< SiteSettings >( {\n\t\tpath: '/wp/v2/settings',\n\t\tmethod: 'GET',\n\t} );\n}\n\n/**\n * Update the site settings.\n *\n * @see https://developer.wordpress.org/rest-api/reference/settings/#update-a-site-setting\n *\n * @param this RequestUtils.\n * @param siteSettings The partial settings payload to update.\n */\nexport async function updateSiteSettings(\n\tthis: RequestUtils,\n\tsiteSettings: Partial< SiteSettings >\n) {\n\treturn await this.rest< SiteSettings >( {\n\t\tpath: '/wp/v2/settings',\n\t\tmethod: 'POST',\n\t\tdata: siteSettings,\n\t} );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCA,eAAsB,kBAAsC;AAC3D,SAAO,MAAM,KAAK,KAAsB;AAAA,IACvC,MAAM;AAAA,IACN,QAAQ;AAAA,EACT,CAAE;AACH;AAUA,eAAsB,mBAErB,cACC;AACD,SAAO,MAAM,KAAK,KAAsB;AAAA,IACvC,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,EACP,CAAE;AACH;",
6
+ "names": []
7
+ }
@@ -1,54 +1,68 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteAllTemplates = deleteAllTemplates;
4
- exports.createTemplate = createTemplate;
5
- const PATH_MAPPING = {
6
- wp_template: '/wp/v2/templates',
7
- wp_template_part: '/wp/v2/template-parts',
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/templates.ts
21
+ var templates_exports = {};
22
+ __export(templates_exports, {
23
+ createTemplate: () => createTemplate,
24
+ deleteAllTemplates: () => deleteAllTemplates
25
+ });
26
+ module.exports = __toCommonJS(templates_exports);
27
+ var PATH_MAPPING = {
28
+ wp_template: "/wp/v2/templates",
29
+ wp_template_part: "/wp/v2/template-parts"
8
30
  };
9
- /**
10
- * Delete all the templates of given type.
11
- *
12
- * @param this
13
- * @param type - Template type to delete.
14
- */
15
31
  async function deleteAllTemplates(type) {
16
- const path = PATH_MAPPING[type];
17
- if (!path) {
18
- throw new Error(`Unsupported template type: ${type}.`);
32
+ const path = PATH_MAPPING[type];
33
+ if (!path) {
34
+ throw new Error(`Unsupported template type: ${type}.`);
35
+ }
36
+ const templates = await this.rest({ path });
37
+ for (const template of templates) {
38
+ if (!template?.id || !template?.wp_id) {
39
+ continue;
19
40
  }
20
- const templates = await this.rest({ path });
21
- for (const template of templates) {
22
- if (!template?.id || !template?.wp_id) {
23
- continue;
24
- }
25
- try {
26
- await this.rest({
27
- method: 'DELETE',
28
- path: `${path}/${template.id}`,
29
- params: { force: true },
30
- });
31
- }
32
- catch (responseError) {
33
- // Disable reason - the error provides valuable feedback about issues with tests.
34
- // eslint-disable-next-line no-console
35
- console.warn(`deleteAllTemplates failed to delete template (id: ${template.wp_id}) with the following error`, responseError);
36
- }
41
+ try {
42
+ await this.rest({
43
+ method: "DELETE",
44
+ path: `${path}/${template.id}`,
45
+ params: { force: true }
46
+ });
47
+ } catch (responseError) {
48
+ console.warn(
49
+ `deleteAllTemplates failed to delete template (id: ${template.wp_id}) with the following error`,
50
+ responseError
51
+ );
37
52
  }
53
+ }
38
54
  }
39
- /**
40
- * Creates a new template using the REST API.
41
- *
42
- * @param this
43
- * @param type Template type to delete.
44
- * @param payload Template attributes.
45
- */
46
55
  async function createTemplate(type, payload) {
47
- const template = await this.rest({
48
- method: 'POST',
49
- path: PATH_MAPPING[type],
50
- params: { ...payload, type, status: 'publish', is_wp_suggestion: true },
51
- });
52
- return template;
56
+ const template = await this.rest({
57
+ method: "POST",
58
+ path: PATH_MAPPING[type],
59
+ params: { ...payload, type, status: "publish", is_wp_suggestion: true }
60
+ });
61
+ return template;
53
62
  }
54
- //# sourceMappingURL=templates.js.map
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ createTemplate,
66
+ deleteAllTemplates
67
+ });
68
+ //# sourceMappingURL=templates.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/request-utils/templates.ts"],"names":[],"mappings":";;AAkFS,gDAAkB;AAAE,wCAAc;AA/D3C,MAAM,YAAY,GAAG;IACpB,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,uBAAuB;CACzC,CAAC;AAEF;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAAsB,IAAkB;IACxE,MAAM,IAAI,GAAG,YAAY,CAAE,IAAI,CAAE,CAAC;IAElC,IAAK,CAAE,IAAI,EAAG,CAAC;QACd,MAAM,IAAI,KAAK,CAAE,8BAA+B,IAAK,GAAG,CAAE,CAAC;IAC5D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAgB,EAAE,IAAI,EAAE,CAAE,CAAC;IAE5D,KAAM,MAAM,QAAQ,IAAI,SAAS,EAAG,CAAC;QACpC,IAAK,CAAE,QAAQ,EAAE,EAAE,IAAI,CAAE,QAAQ,EAAE,KAAK,EAAG,CAAC;YAC3C,SAAS;QACV,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,IAAI,CAAE;gBAChB,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,GAAI,IAAK,IAAK,QAAQ,CAAC,EAAG,EAAE;gBAClC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACvB,CAAE,CAAC;QACL,CAAC;QAAC,OAAQ,aAAa,EAAG,CAAC;YAC1B,iFAAiF;YACjF,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACX,qDAAsD,QAAQ,CAAC,KAAM,4BAA4B,EACjG,aAAa,CACb,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,cAAc,CAE5B,IAAkB,EAClB,OAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAc;QAC7C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,YAAY,CAAE,IAAI,CAAE;QAC1B,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE;KACvE,CAAE,CAAC;IAEJ,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/request-utils/templates.ts"],
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { RequestUtils } from './index';\n\ntype TemplateType = 'wp_template' | 'wp_template_part';\n\ninterface Template {\n\twp_id: number;\n\tid: string;\n}\n\ninterface CreateTemplatePayload {\n\tslug: string;\n\ttitle?: string;\n\tcontent?: string;\n\tdescription?: string;\n}\n\nconst PATH_MAPPING = {\n\twp_template: '/wp/v2/templates',\n\twp_template_part: '/wp/v2/template-parts',\n};\n\n/**\n * Delete all the templates of given type.\n *\n * @param this\n * @param type - Template type to delete.\n */\nasync function deleteAllTemplates( this: RequestUtils, type: TemplateType ) {\n\tconst path = PATH_MAPPING[ type ];\n\n\tif ( ! path ) {\n\t\tthrow new Error( `Unsupported template type: ${ type }.` );\n\t}\n\n\tconst templates = await this.rest< Template[] >( { path } );\n\n\tfor ( const template of templates ) {\n\t\tif ( ! template?.id || ! template?.wp_id ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.rest( {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\tpath: `${ path }/${ template.id }`,\n\t\t\t\tparams: { force: true },\n\t\t\t} );\n\t\t} catch ( responseError ) {\n\t\t\t// Disable reason - the error provides valuable feedback about issues with tests.\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t`deleteAllTemplates failed to delete template (id: ${ template.wp_id }) with the following error`,\n\t\t\t\tresponseError\n\t\t\t);\n\t\t}\n\t}\n}\n\n/**\n * Creates a new template using the REST API.\n *\n * @param this\n * @param type Template type to delete.\n * @param payload Template attributes.\n */\nasync function createTemplate(\n\tthis: RequestUtils,\n\ttype: TemplateType,\n\tpayload: CreateTemplatePayload\n) {\n\tconst template = await this.rest< Template >( {\n\t\tmethod: 'POST',\n\t\tpath: PATH_MAPPING[ type ],\n\t\tparams: { ...payload, type, status: 'publish', is_wp_suggestion: true },\n\t} );\n\n\treturn template;\n}\n\nexport { deleteAllTemplates, createTemplate };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBA,IAAM,eAAe;AAAA,EACpB,aAAa;AAAA,EACb,kBAAkB;AACnB;AAQA,eAAe,mBAAwC,MAAqB;AAC3E,QAAM,OAAO,aAAc,IAAK;AAEhC,MAAK,CAAE,MAAO;AACb,UAAM,IAAI,MAAO,8BAA+B,IAAK,GAAI;AAAA,EAC1D;AAEA,QAAM,YAAY,MAAM,KAAK,KAAoB,EAAE,KAAK,CAAE;AAE1D,aAAY,YAAY,WAAY;AACnC,QAAK,CAAE,UAAU,MAAM,CAAE,UAAU,OAAQ;AAC1C;AAAA,IACD;AAEA,QAAI;AACH,YAAM,KAAK,KAAM;AAAA,QAChB,QAAQ;AAAA,QACR,MAAM,GAAI,IAAK,IAAK,SAAS,EAAG;AAAA,QAChC,QAAQ,EAAE,OAAO,KAAK;AAAA,MACvB,CAAE;AAAA,IACH,SAAU,eAAgB;AAGzB,cAAQ;AAAA,QACP,qDAAsD,SAAS,KAAM;AAAA,QACrE;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AASA,eAAe,eAEd,MACA,SACC;AACD,QAAM,WAAW,MAAM,KAAK,KAAkB;AAAA,IAC7C,QAAQ;AAAA,IACR,MAAM,aAAc,IAAK;AAAA,IACzB,QAAQ,EAAE,GAAG,SAAS,MAAM,QAAQ,WAAW,kBAAkB,KAAK;AAAA,EACvE,CAAE;AAEF,SAAO;AACR;",
6
+ "names": []
7
+ }