@wordpress/e2e-test-utils-playwright 0.1.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 (183) hide show
  1. package/LICENSE.md +788 -0
  2. package/README.md +89 -0
  3. package/build/admin/create-new-post.js +49 -0
  4. package/build/admin/create-new-post.js.map +1 -0
  5. package/build/admin/get-page-error.js +27 -0
  6. package/build/admin/get-page-error.js.map +1 -0
  7. package/build/admin/index.js +32 -0
  8. package/build/admin/index.js.map +1 -0
  9. package/build/admin/visit-admin-page.js +33 -0
  10. package/build/admin/visit-admin-page.js.map +1 -0
  11. package/build/admin/visit-site-editor.js +42 -0
  12. package/build/admin/visit-site-editor.js.map +1 -0
  13. package/build/config.js +13 -0
  14. package/build/config.js.map +1 -0
  15. package/build/editor/click-block-options-menu-item.js +17 -0
  16. package/build/editor/click-block-options-menu-item.js.map +1 -0
  17. package/build/editor/click-block-toolbar-button.js +17 -0
  18. package/build/editor/click-block-toolbar-button.js.map +1 -0
  19. package/build/editor/get-blocks.js +23 -0
  20. package/build/editor/get-blocks.js.map +1 -0
  21. package/build/editor/get-edited-post-content.js +15 -0
  22. package/build/editor/get-edited-post-content.js.map +1 -0
  23. package/build/editor/index.js +63 -0
  24. package/build/editor/index.js.map +1 -0
  25. package/build/editor/insert-block.js +20 -0
  26. package/build/editor/insert-block.js.map +1 -0
  27. package/build/editor/open-document-settings-sidebar.js +27 -0
  28. package/build/editor/open-document-settings-sidebar.js.map +1 -0
  29. package/build/editor/preview.js +22 -0
  30. package/build/editor/preview.js.map +1 -0
  31. package/build/editor/publish-post.js +30 -0
  32. package/build/editor/publish-post.js.map +1 -0
  33. package/build/editor/select-blocks.js +29 -0
  34. package/build/editor/select-blocks.js.map +1 -0
  35. package/build/editor/set-content.js +17 -0
  36. package/build/editor/set-content.js.map +1 -0
  37. package/build/editor/set-is-fixed-toolbar.js +20 -0
  38. package/build/editor/set-is-fixed-toolbar.js.map +1 -0
  39. package/build/editor/show-block-toolbar.js +20 -0
  40. package/build/editor/show-block-toolbar.js.map +1 -0
  41. package/build/editor/site-editor.js +19 -0
  42. package/build/editor/site-editor.js.map +1 -0
  43. package/build/editor/transform-block-to.js +24 -0
  44. package/build/editor/transform-block-to.js.map +1 -0
  45. package/build/index.js +30 -0
  46. package/build/index.js.map +1 -0
  47. package/build/page-utils/drag-files.js +115 -0
  48. package/build/page-utils/drag-files.js.map +1 -0
  49. package/build/page-utils/index.js +32 -0
  50. package/build/page-utils/index.js.map +1 -0
  51. package/build/page-utils/is-current-url.js +22 -0
  52. package/build/page-utils/is-current-url.js.map +1 -0
  53. package/build/page-utils/press-keys.js +123 -0
  54. package/build/page-utils/press-keys.js.map +1 -0
  55. package/build/page-utils/set-browser-viewport.js +47 -0
  56. package/build/page-utils/set-browser-viewport.js.map +1 -0
  57. package/build/request-utils/blocks.js +30 -0
  58. package/build/request-utils/blocks.js.map +1 -0
  59. package/build/request-utils/comments.js +52 -0
  60. package/build/request-utils/comments.js.map +1 -0
  61. package/build/request-utils/index.js +148 -0
  62. package/build/request-utils/index.js.map +1 -0
  63. package/build/request-utils/login.js +22 -0
  64. package/build/request-utils/login.js.map +1 -0
  65. package/build/request-utils/media.js +74 -0
  66. package/build/request-utils/media.js.map +1 -0
  67. package/build/request-utils/menus.js +121 -0
  68. package/build/request-utils/menus.js.map +1 -0
  69. package/build/request-utils/pages.js +59 -0
  70. package/build/request-utils/pages.js.map +1 -0
  71. package/build/request-utils/plugins.js +69 -0
  72. package/build/request-utils/plugins.js.map +1 -0
  73. package/build/request-utils/posts.js +47 -0
  74. package/build/request-utils/posts.js.map +1 -0
  75. package/build/request-utils/preferences.js +21 -0
  76. package/build/request-utils/preferences.js.map +1 -0
  77. package/build/request-utils/rest.js +130 -0
  78. package/build/request-utils/rest.js.map +1 -0
  79. package/build/request-utils/site-settings.js +34 -0
  80. package/build/request-utils/site-settings.js.map +1 -0
  81. package/build/request-utils/templates.js +39 -0
  82. package/build/request-utils/templates.js.map +1 -0
  83. package/build/request-utils/themes.js +56 -0
  84. package/build/request-utils/themes.js.map +1 -0
  85. package/build/request-utils/users.js +82 -0
  86. package/build/request-utils/users.js.map +1 -0
  87. package/build/request-utils/widgets.js +62 -0
  88. package/build/request-utils/widgets.js.map +1 -0
  89. package/build/test.js +122 -0
  90. package/build/test.js.map +1 -0
  91. package/build/types.js +3 -0
  92. package/build/types.js.map +1 -0
  93. package/build-types/admin/create-new-post.d.ts +19 -0
  94. package/build-types/admin/create-new-post.d.ts.map +1 -0
  95. package/build-types/admin/get-page-error.d.ts +17 -0
  96. package/build-types/admin/get-page-error.d.ts.map +1 -0
  97. package/build-types/admin/index.d.ts +33 -0
  98. package/build-types/admin/index.d.ts.map +1 -0
  99. package/build-types/admin/visit-admin-page.d.ts +13 -0
  100. package/build-types/admin/visit-admin-page.d.ts.map +1 -0
  101. package/build-types/admin/visit-site-editor.d.ts +19 -0
  102. package/build-types/admin/visit-site-editor.d.ts.map +1 -0
  103. package/build-types/config.d.ts +7 -0
  104. package/build-types/config.d.ts.map +1 -0
  105. package/build-types/editor/click-block-options-menu-item.d.ts +12 -0
  106. package/build-types/editor/click-block-options-menu-item.d.ts.map +1 -0
  107. package/build-types/editor/click-block-toolbar-button.d.ts +12 -0
  108. package/build-types/editor/click-block-toolbar-button.d.ts.map +1 -0
  109. package/build-types/editor/get-blocks.d.ts +13 -0
  110. package/build-types/editor/get-blocks.d.ts.map +1 -0
  111. package/build-types/editor/get-edited-post-content.d.ts +13 -0
  112. package/build-types/editor/get-edited-post-content.d.ts.map +1 -0
  113. package/build-types/editor/index.d.ts +61 -0
  114. package/build-types/editor/index.d.ts.map +1 -0
  115. package/build-types/editor/insert-block.d.ts +19 -0
  116. package/build-types/editor/insert-block.d.ts.map +1 -0
  117. package/build-types/editor/open-document-settings-sidebar.d.ts +12 -0
  118. package/build-types/editor/open-document-settings-sidebar.d.ts.map +1 -0
  119. package/build-types/editor/preview.d.ts +17 -0
  120. package/build-types/editor/preview.d.ts.map +1 -0
  121. package/build-types/editor/publish-post.d.ts +12 -0
  122. package/build-types/editor/publish-post.d.ts.map +1 -0
  123. package/build-types/editor/select-blocks.d.ts +10 -0
  124. package/build-types/editor/select-blocks.d.ts.map +1 -0
  125. package/build-types/editor/set-content.d.ts +13 -0
  126. package/build-types/editor/set-content.d.ts.map +1 -0
  127. package/build-types/editor/set-is-fixed-toolbar.d.ts +12 -0
  128. package/build-types/editor/set-is-fixed-toolbar.d.ts.map +1 -0
  129. package/build-types/editor/show-block-toolbar.d.ts +12 -0
  130. package/build-types/editor/show-block-toolbar.d.ts.map +1 -0
  131. package/build-types/editor/site-editor.d.ts +11 -0
  132. package/build-types/editor/site-editor.d.ts.map +1 -0
  133. package/build-types/editor/transform-block-to.d.ts +12 -0
  134. package/build-types/editor/transform-block-to.d.ts.map +1 -0
  135. package/build-types/index.d.ts +7 -0
  136. package/build-types/index.d.ts.map +1 -0
  137. package/build-types/page-utils/drag-files.d.ts +40 -0
  138. package/build-types/page-utils/drag-files.d.ts.map +1 -0
  139. package/build-types/page-utils/index.d.ts +32 -0
  140. package/build-types/page-utils/index.d.ts.map +1 -0
  141. package/build-types/page-utils/is-current-url.d.ts +11 -0
  142. package/build-types/page-utils/is-current-url.d.ts.map +1 -0
  143. package/build-types/page-utils/press-keys.d.ts +25 -0
  144. package/build-types/page-utils/press-keys.d.ts.map +1 -0
  145. package/build-types/page-utils/set-browser-viewport.d.ts +34 -0
  146. package/build-types/page-utils/set-browser-viewport.d.ts.map +1 -0
  147. package/build-types/request-utils/blocks.d.ts +8 -0
  148. package/build-types/request-utils/blocks.d.ts.map +1 -0
  149. package/build-types/request-utils/comments.d.ts +31 -0
  150. package/build-types/request-utils/comments.d.ts.map +1 -0
  151. package/build-types/request-utils/index.d.ts +111 -0
  152. package/build-types/request-utils/index.d.ts.map +1 -0
  153. package/build-types/request-utils/login.d.ts +11 -0
  154. package/build-types/request-utils/login.d.ts.map +1 -0
  155. package/build-types/request-utils/media.d.ts +54 -0
  156. package/build-types/request-utils/media.d.ts.map +1 -0
  157. package/build-types/request-utils/menus.d.ts +43 -0
  158. package/build-types/request-utils/menus.d.ts.map +1 -0
  159. package/build-types/request-utils/pages.d.ts +32 -0
  160. package/build-types/request-utils/pages.d.ts.map +1 -0
  161. package/build-types/request-utils/plugins.d.ts +28 -0
  162. package/build-types/request-utils/plugins.d.ts.map +1 -0
  163. package/build-types/request-utils/posts.d.ts +30 -0
  164. package/build-types/request-utils/posts.d.ts.map +1 -0
  165. package/build-types/request-utils/preferences.d.ts +11 -0
  166. package/build-types/request-utils/preferences.d.ts.map +1 -0
  167. package/build-types/request-utils/rest.d.ts +24 -0
  168. package/build-types/request-utils/rest.d.ts.map +1 -0
  169. package/build-types/request-utils/site-settings.d.ts +40 -0
  170. package/build-types/request-utils/site-settings.d.ts.map +1 -0
  171. package/build-types/request-utils/templates.d.ts +14 -0
  172. package/build-types/request-utils/templates.d.ts.map +1 -0
  173. package/build-types/request-utils/themes.d.ts +15 -0
  174. package/build-types/request-utils/themes.d.ts.map +1 -0
  175. package/build-types/request-utils/users.d.ts +40 -0
  176. package/build-types/request-utils/users.d.ts.map +1 -0
  177. package/build-types/request-utils/widgets.d.ts +15 -0
  178. package/build-types/request-utils/widgets.d.ts.map +1 -0
  179. package/build-types/test.d.ts +15 -0
  180. package/build-types/test.d.ts.map +1 -0
  181. package/build-types/types.d.ts +7 -0
  182. package/build-types/types.d.ts.map +1 -0
  183. package/package.json +47 -0
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestUtils = void 0;
4
+ /**
5
+ * External dependencies
6
+ */
7
+ const fs = require("fs/promises");
8
+ const path = require("path");
9
+ const test_1 = require("@playwright/test");
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ const config_1 = require("../config");
14
+ const login_1 = require("./login");
15
+ const media_1 = require("./media");
16
+ const users_1 = require("./users");
17
+ const rest_1 = require("./rest");
18
+ const plugins_1 = require("./plugins");
19
+ const templates_1 = require("./templates");
20
+ const themes_1 = require("./themes");
21
+ const blocks_1 = require("./blocks");
22
+ const comments_1 = require("./comments");
23
+ const posts_1 = require("./posts");
24
+ const menus_1 = require("./menus");
25
+ const pages_1 = require("./pages");
26
+ const preferences_1 = require("./preferences");
27
+ const site_settings_1 = require("./site-settings");
28
+ const widgets_1 = require("./widgets");
29
+ class RequestUtils {
30
+ request;
31
+ user;
32
+ maxBatchSize;
33
+ storageState;
34
+ storageStatePath;
35
+ baseURL;
36
+ pluginsMap = null;
37
+ static async setup({ user, storageStatePath, baseURL = config_1.WP_BASE_URL, }) {
38
+ let storageState;
39
+ if (storageStatePath) {
40
+ await fs.mkdir(path.dirname(storageStatePath), {
41
+ recursive: true,
42
+ });
43
+ try {
44
+ storageState = JSON.parse(await fs.readFile(storageStatePath, 'utf-8'));
45
+ }
46
+ catch (error) {
47
+ if (error instanceof Error &&
48
+ error.code === 'ENOENT') {
49
+ // Ignore errors if the state is not found.
50
+ }
51
+ else {
52
+ throw error;
53
+ }
54
+ }
55
+ }
56
+ const requestContext = await test_1.request.newContext({
57
+ baseURL,
58
+ storageState: storageState && {
59
+ cookies: storageState.cookies,
60
+ origins: [],
61
+ },
62
+ });
63
+ const requestUtils = new RequestUtils(requestContext, {
64
+ user,
65
+ storageState,
66
+ storageStatePath,
67
+ baseURL,
68
+ });
69
+ return requestUtils;
70
+ }
71
+ constructor(requestContext, { user = config_1.WP_ADMIN_USER, storageState, storageStatePath, baseURL = config_1.WP_BASE_URL, } = {}) {
72
+ this.user = user;
73
+ this.request = requestContext;
74
+ this.storageStatePath = storageStatePath;
75
+ this.storageState = storageState;
76
+ this.baseURL = baseURL;
77
+ }
78
+ /** @borrows login as this.login */
79
+ login = login_1.login.bind(this);
80
+ /** @borrows setupRest as this.setupRest */
81
+ setupRest = rest_1.setupRest.bind(this);
82
+ // .bind() drops the generic types. Re-casting it to keep the type signature.
83
+ rest = rest_1.rest.bind(this);
84
+ /** @borrows getMaxBatchSize as this.getMaxBatchSize */
85
+ getMaxBatchSize = rest_1.getMaxBatchSize.bind(this);
86
+ // .bind() drops the generic types. Re-casting it to keep the type signature.
87
+ batchRest = rest_1.batchRest.bind(this);
88
+ /** @borrows getPluginsMap as this.getPluginsMap */
89
+ getPluginsMap = plugins_1.getPluginsMap.bind(this);
90
+ /** @borrows activatePlugin as this.activatePlugin */
91
+ activatePlugin = plugins_1.activatePlugin.bind(this);
92
+ /** @borrows deactivatePlugin as this.deactivatePlugin */
93
+ deactivatePlugin = plugins_1.deactivatePlugin.bind(this);
94
+ /** @borrows activateTheme as this.activateTheme */
95
+ activateTheme = themes_1.activateTheme.bind(this);
96
+ /** @borrows deleteAllBlocks as this.deleteAllBlocks */
97
+ deleteAllBlocks = blocks_1.deleteAllBlocks.bind(this);
98
+ /** @borrows createPost as this.createPost */
99
+ createPost = posts_1.createPost.bind(this);
100
+ /** @borrows deleteAllPosts as this.deleteAllPosts */
101
+ deleteAllPosts = posts_1.deleteAllPosts.bind(this);
102
+ /** @borrows createClassicMenu as this.createClassicMenu */
103
+ createClassicMenu = menus_1.createClassicMenu.bind(this);
104
+ /** @borrows createNavigationMenu as this.createNavigationMenu */
105
+ createNavigationMenu = menus_1.createNavigationMenu.bind(this);
106
+ /** @borrows deleteAllMenus as this.deleteAllMenus */
107
+ deleteAllMenus = menus_1.deleteAllMenus.bind(this);
108
+ /** @borrows getNavigationMenus as this.getNavigationMenus */
109
+ getNavigationMenus = menus_1.getNavigationMenus.bind(this);
110
+ /** @borrows createComment as this.createComment */
111
+ createComment = comments_1.createComment.bind(this);
112
+ /** @borrows deleteAllComments as this.deleteAllComments */
113
+ deleteAllComments = comments_1.deleteAllComments.bind(this);
114
+ /** @borrows deleteAllWidgets as this.deleteAllWidgets */
115
+ deleteAllWidgets = widgets_1.deleteAllWidgets.bind(this);
116
+ /** @borrows addWidgetBlock as this.addWidgetBlock */
117
+ addWidgetBlock = widgets_1.addWidgetBlock.bind(this);
118
+ /** @borrows deleteAllTemplates as this.deleteAllTemplates */
119
+ deleteAllTemplates = templates_1.deleteAllTemplates.bind(this);
120
+ /** @borrows resetPreferences as this.resetPreferences */
121
+ resetPreferences = preferences_1.resetPreferences.bind(this);
122
+ /** @borrows listMedia as this.listMedia */
123
+ listMedia = media_1.listMedia.bind(this);
124
+ /** @borrows uploadMedia as this.uploadMedia */
125
+ uploadMedia = media_1.uploadMedia.bind(this);
126
+ /** @borrows deleteMedia as this.deleteMedia */
127
+ deleteMedia = media_1.deleteMedia.bind(this);
128
+ /** @borrows deleteAllMedia as this.deleteAllMedia */
129
+ deleteAllMedia = media_1.deleteAllMedia.bind(this);
130
+ /** @borrows createUser as this.createUser */
131
+ createUser = users_1.createUser.bind(this);
132
+ /** @borrows deleteAllUsers as this.deleteAllUsers */
133
+ deleteAllUsers = users_1.deleteAllUsers.bind(this);
134
+ /** @borrows getSiteSettings as this.getSiteSettings */
135
+ getSiteSettings = site_settings_1.getSiteSettings.bind(this);
136
+ /** @borrows updateSiteSettings as this.updateSiteSettings */
137
+ updateSiteSettings = site_settings_1.updateSiteSettings.bind(this);
138
+ /** @borrows deleteAllPages as this.deleteAllPages */
139
+ deleteAllPages = pages_1.deleteAllPages.bind(this);
140
+ /** @borrows createPage as this.createPage */
141
+ createPage = pages_1.createPage.bind(this);
142
+ /** @borrows getCurrentThemeGlobalStylesPostId as this.getCurrentThemeGlobalStylesPostId */
143
+ getCurrentThemeGlobalStylesPostId = themes_1.getCurrentThemeGlobalStylesPostId.bind(this);
144
+ /** @borrows getThemeGlobalStylesRevisions as this.getThemeGlobalStylesRevisions */
145
+ getThemeGlobalStylesRevisions = themes_1.getThemeGlobalStylesRevisions.bind(this);
146
+ }
147
+ exports.RequestUtils = RequestUtils;
148
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request-utils/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.login = void 0;
4
+ async function login(user = this.user) {
5
+ // Login to admin using request context.
6
+ let response = await this.request.post('wp-login.php', {
7
+ failOnStatusCode: true,
8
+ form: {
9
+ log: user.username,
10
+ pwd: user.password,
11
+ },
12
+ });
13
+ await response.dispose();
14
+ // Get the nonce.
15
+ response = await this.request.get('wp-admin/admin-ajax.php?action=rest-nonce', {
16
+ failOnStatusCode: true,
17
+ });
18
+ const nonce = await response.text();
19
+ return nonce;
20
+ }
21
+ exports.login = login;
22
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/request-utils/login.ts"],"names":[],"mappings":";;;AAUA,KAAK,UAAU,KAAK,CAAsB,OAAa,IAAI,CAAC,IAAI;IAC/D,wCAAwC;IACxC,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,cAAc,EAAE;QACvD,gBAAgB,EAAE,IAAI;QACtB,IAAI,EAAE;YACL,GAAG,EAAE,IAAI,CAAC,QAAQ;YAClB,GAAG,EAAE,IAAI,CAAC,QAAQ;SAClB;KACD,CAAE,CAAC;IACJ,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAEzB,iBAAiB;IACjB,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAChC,2CAA2C,EAC3C;QACC,gBAAgB,EAAE,IAAI;KACtB,CACD,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEpC,OAAO,KAAK,CAAC;AACd,CAAC;AAEQ,sBAAK"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteAllMedia = exports.deleteMedia = exports.uploadMedia = exports.listMedia = void 0;
4
+ /**
5
+ * External dependencies
6
+ */
7
+ const fs = require("fs");
8
+ /**
9
+ * List all media files.
10
+ *
11
+ * @see https://developer.wordpress.org/rest-api/reference/media/#list-media
12
+ * @param this
13
+ */
14
+ async function listMedia() {
15
+ const response = await this.rest({
16
+ method: 'GET',
17
+ path: '/wp/v2/media',
18
+ params: {
19
+ per_page: 100,
20
+ },
21
+ });
22
+ return response;
23
+ }
24
+ exports.listMedia = listMedia;
25
+ /**
26
+ * Upload a media file.
27
+ *
28
+ * @see https://developer.wordpress.org/rest-api/reference/media/#create-a-media-item
29
+ * @param this
30
+ * @param filePathOrData The path or data of the file being uploaded.
31
+ */
32
+ async function uploadMedia(filePathOrData) {
33
+ const file = typeof filePathOrData === 'string'
34
+ ? fs.createReadStream(filePathOrData)
35
+ : filePathOrData;
36
+ const response = await this.rest({
37
+ method: 'POST',
38
+ path: '/wp/v2/media',
39
+ multipart: {
40
+ file,
41
+ },
42
+ });
43
+ return response;
44
+ }
45
+ exports.uploadMedia = uploadMedia;
46
+ /**
47
+ * delete a media file.
48
+ *
49
+ * @see https://developer.wordpress.org/rest-api/reference/media/#delete-a-media-item
50
+ * @param this
51
+ * @param mediaId The ID of the media file.
52
+ */
53
+ async function deleteMedia(mediaId) {
54
+ const response = await this.rest({
55
+ method: 'DELETE',
56
+ path: `/wp/v2/media/${mediaId}`,
57
+ params: { force: true },
58
+ });
59
+ return response;
60
+ }
61
+ exports.deleteMedia = deleteMedia;
62
+ /**
63
+ * delete all media files.
64
+ *
65
+ * @param this
66
+ */
67
+ async function deleteAllMedia() {
68
+ const files = await this.listMedia();
69
+ // The media endpoint doesn't support batch request yet.
70
+ const responses = await Promise.all(files.map((media) => this.deleteMedia(media.id)));
71
+ return responses;
72
+ }
73
+ exports.deleteAllMedia = deleteAllMedia;
74
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/request-utils/media.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yBAAyB;AAoBzB;;;;;GAKG;AACH,KAAK,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAa;QAC5C,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACP,QAAQ,EAAE,GAAG;SACb;KACD,CAAE,CAAC;IAEJ,OAAO,QAAQ,CAAC;AACjB,CAAC;AA8DQ,8BAAS;AA5DlB;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CAEzB,cAAsC;IAEtC,MAAM,IAAI,GACT,OAAO,cAAc,KAAK,QAAQ;QACjC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAE,cAAc,CAAE;QACvC,CAAC,CAAC,cAAc,CAAC;IAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAW;QAC1C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE;YACV,IAAI;SACJ;KACD,CAAE,CAAC;IAEJ,OAAO,QAAQ,CAAC;AACjB,CAAC;AAmCmB,kCAAW;AAjC/B;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CAAsB,OAAe;IAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAE;QACjC,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,gBAAiB,OAAQ,EAAE;QACjC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACvB,CAAE,CAAC;IAEJ,OAAO,QAAQ,CAAC;AACjB,CAAC;AAkBgC,kCAAW;AAhB5C;;;;GAIG;AACH,KAAK,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IAErC,wDAAwD;IACxD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,KAAK,CAAC,GAAG,CAAE,CAAE,KAAK,EAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,KAAK,CAAC,EAAE,CAAE,CAAE,CACtD,CAAC;IAEF,OAAO,SAAS,CAAC;AAClB,CAAC;AAE6C,wCAAc"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNavigationMenus = exports.deleteAllMenus = exports.createNavigationMenu = exports.createClassicMenu = void 0;
4
+ /**
5
+ * Create a classic menu
6
+ *
7
+ * @param name Menu name.
8
+ * @return Menu content.
9
+ */
10
+ async function createClassicMenu(name) {
11
+ const menuItems = [
12
+ {
13
+ title: 'Custom link',
14
+ url: 'http://localhost:8889/',
15
+ type: 'custom',
16
+ menu_order: 1,
17
+ },
18
+ ];
19
+ const menu = await this.rest({
20
+ method: 'POST',
21
+ path: `/wp/v2/menus/`,
22
+ data: {
23
+ name,
24
+ },
25
+ });
26
+ await this.batchRest(menuItems.map((menuItem) => ({
27
+ method: 'POST',
28
+ path: `/wp/v2/menu-items`,
29
+ body: {
30
+ menus: menu.id,
31
+ object_id: undefined,
32
+ ...menuItem,
33
+ parent: undefined,
34
+ },
35
+ })));
36
+ return menu;
37
+ }
38
+ exports.createClassicMenu = createClassicMenu;
39
+ /**
40
+ * Create a navigation menu
41
+ *
42
+ * @param menuData navigation menu post data.
43
+ * @return Menu content.
44
+ */
45
+ async function createNavigationMenu(menuData) {
46
+ return this.rest({
47
+ method: 'POST',
48
+ path: `/wp/v2/navigation/`,
49
+ data: {
50
+ status: 'publish',
51
+ ...menuData,
52
+ },
53
+ });
54
+ }
55
+ exports.createNavigationMenu = createNavigationMenu;
56
+ /**
57
+ * Delete all navigation and classic menus
58
+ *
59
+ */
60
+ async function deleteAllMenus() {
61
+ const navMenus = await this.rest({
62
+ path: `/wp/v2/navigation/`,
63
+ data: {
64
+ status: [
65
+ 'publish',
66
+ 'pending',
67
+ 'draft',
68
+ 'auto-draft',
69
+ 'future',
70
+ 'private',
71
+ 'inherit',
72
+ 'trash',
73
+ ],
74
+ },
75
+ });
76
+ if (navMenus.length) {
77
+ await this.batchRest(navMenus.map((menu) => ({
78
+ method: 'DELETE',
79
+ path: `/wp/v2/navigation/${menu.id}?force=true`,
80
+ })));
81
+ }
82
+ const classicMenus = await this.rest({
83
+ path: `/wp/v2/menus/`,
84
+ data: {
85
+ status: [
86
+ 'publish',
87
+ 'pending',
88
+ 'draft',
89
+ 'auto-draft',
90
+ 'future',
91
+ 'private',
92
+ 'inherit',
93
+ 'trash',
94
+ ],
95
+ },
96
+ });
97
+ if (classicMenus.length) {
98
+ await this.batchRest(classicMenus.map((menu) => ({
99
+ method: 'DELETE',
100
+ path: `/wp/v2/menus/${menu.id}?force=true`,
101
+ })));
102
+ }
103
+ }
104
+ exports.deleteAllMenus = deleteAllMenus;
105
+ /**
106
+ * Get latest navigation menus
107
+ *
108
+ * @param args
109
+ * @param args.status
110
+ * @return {string} Menu content.
111
+ */
112
+ async function getNavigationMenus(args) {
113
+ const navigationMenus = await this.rest({
114
+ method: 'GET',
115
+ path: `/wp/v2/navigation/`,
116
+ data: args,
117
+ });
118
+ return navigationMenus;
119
+ }
120
+ exports.getNavigationMenus = getNavigationMenus;
121
+ //# sourceMappingURL=menus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../src/request-utils/menus.ts"],"names":[],"mappings":";;;AAeA;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAsB,IAAY;IACxE,MAAM,SAAS,GAAG;QACjB;YACC,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,wBAAwB;YAC7B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,CAAC;SACb;KACD,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAoB;QAC/C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE;YACL,IAAI;SACJ;KACD,CAAE,CAAC;IAEJ,MAAM,IAAI,CAAC,SAAS,CACnB,SAAS,CAAC,GAAG,CAAE,CAAE,QAAQ,EAAG,EAAE,CAAC,CAAE;QAChC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE;YACL,KAAK,EAAE,IAAI,CAAC,EAAE;YACd,SAAS,EAAE,SAAS;YACpB,GAAG,QAAQ;YACX,MAAM,EAAE,SAAS;SACjB;KACD,CAAE,CAAE,CACL,CAAC;IAEF,OAAO,IAAI,CAAC;AACb,CAAC;AAhCD,8CAgCC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CAEzC,QAAkB;IAElB,OAAO,IAAI,CAAC,IAAI,CAAE;QACjB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE;YACL,MAAM,EAAE,SAAS;YACjB,GAAG,QAAQ;SACX;KACD,CAAE,CAAC;AACL,CAAC;AAZD,oDAYC;AAED;;;GAGG;AACI,KAAK,UAAU,cAAc;IACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAsB;QACrD,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE;YACL,MAAM,EAAE;gBACP,SAAS;gBACT,SAAS;gBACT,OAAO;gBACP,YAAY;gBACZ,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,OAAO;aACP;SACD;KACD,CAAE,CAAC;IAEJ,IAAK,QAAQ,CAAC,MAAM,EAAG;QACtB,MAAM,IAAI,CAAC,SAAS,CACnB,QAAQ,CAAC,GAAG,CAAE,CAAE,IAAI,EAAG,EAAE,CAAC,CAAE;YAC3B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,qBAAsB,IAAI,CAAC,EAAG,aAAa;SACjD,CAAE,CAAE,CACL,CAAC;KACF;IAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAsB;QACzD,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE;YACL,MAAM,EAAE;gBACP,SAAS;gBACT,SAAS;gBACT,OAAO;gBACP,YAAY;gBACZ,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,OAAO;aACP;SACD;KACD,CAAE,CAAC;IAEJ,IAAK,YAAY,CAAC,MAAM,EAAG;QAC1B,MAAM,IAAI,CAAC,SAAS,CACnB,YAAY,CAAC,GAAG,CAAE,CAAE,IAAI,EAAG,EAAE,CAAC,CAAE;YAC/B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,gBAAiB,IAAI,CAAC,EAAG,aAAa;SAC5C,CAAE,CAAE,CACL,CAAC;KACF;AACF,CAAC;AAlDD,wCAkDC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CAEvC,IAA2B;IAE3B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CAAsB;QAC5D,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,IAAI;KACV,CAAE,CAAC;IACJ,OAAO,eAAe,CAAC;AACxB,CAAC;AAVD,gDAUC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPage = exports.deleteAllPages = exports.deletePage = void 0;
4
+ const PAGE_STATUS = [
5
+ 'publish',
6
+ 'future',
7
+ 'draft',
8
+ 'pending',
9
+ 'private',
10
+ 'trash',
11
+ ];
12
+ async function deletePage(id) {
13
+ // https://developer.wordpress.org/rest-api/reference/pages/#delete-a-page
14
+ return await this.rest({
15
+ method: 'DELETE',
16
+ path: `/wp/v2/pages/${id}`,
17
+ params: {
18
+ force: true,
19
+ },
20
+ });
21
+ }
22
+ exports.deletePage = deletePage;
23
+ /**
24
+ * Delete all pages using REST API.
25
+ *
26
+ * @param this
27
+ */
28
+ async function deleteAllPages() {
29
+ // List all pages.
30
+ // https://developer.wordpress.org/rest-api/reference/pages/#list-pages
31
+ const pages = await this.rest({
32
+ path: '/wp/v2/pages',
33
+ params: {
34
+ per_page: 100,
35
+ status: PAGE_STATUS.join(','),
36
+ },
37
+ });
38
+ // Delete all pages one by one.
39
+ // "/wp/v2/pages" not yet supports batch requests.
40
+ await Promise.all(pages.map((page) => deletePage.call(this, page.id)));
41
+ }
42
+ exports.deleteAllPages = deleteAllPages;
43
+ /**
44
+ * Create a new page.
45
+ *
46
+ * @param this
47
+ * @param payload The page payload.
48
+ */
49
+ async function createPage(payload) {
50
+ // https://developer.wordpress.org/rest-api/reference/pages/#create-a-page
51
+ const page = await this.rest({
52
+ method: 'POST',
53
+ path: `/wp/v2/pages`,
54
+ params: payload,
55
+ });
56
+ return page;
57
+ }
58
+ exports.createPage = createPage;
59
+ //# sourceMappingURL=pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/request-utils/pages.ts"],"names":[],"mappings":";;;AAKA,MAAM,WAAW,GAAG;IACnB,SAAS;IACT,QAAQ;IACR,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;CACE,CAAC;AAeJ,KAAK,UAAU,UAAU,CAAsB,EAAU;IAC/D,0EAA0E;IAC1E,OAAO,MAAM,IAAI,CAAC,IAAI,CAAE;QACvB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,gBAAiB,EAAG,EAAE;QAC5B,MAAM,EAAE;YACP,KAAK,EAAE,IAAI;SACX;KACD,CAAE,CAAC;AACL,CAAC;AATD,gCASC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAY;QACxC,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACP,QAAQ,EAAE,GAAG;YAEb,MAAM,EAAE,WAAW,CAAC,IAAI,CAAE,GAAG,CAAE;SAC/B;KACD,CAAE,CAAC;IAEJ,+BAA+B;IAC/B,kDAAkD;IAClD,MAAM,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAE,CAAE,IAAI,EAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAE,CAAE,CACzD,CAAC;AACH,CAAC;AAjBD,wCAiBC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAE/B,OAA0B;IAE1B,0EAA0E;IAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAU;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,OAAO;KACf,CAAE,CAAC;IAEJ,OAAO,IAAI,CAAC;AACb,CAAC;AAZD,gCAYC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deactivatePlugin = exports.activatePlugin = exports.getPluginsMap = void 0;
4
+ /**
5
+ * External dependencies
6
+ */
7
+ const change_case_1 = require("change-case");
8
+ /**
9
+ * Fetch the plugins from API and cache them in memory,
10
+ * since they are unlikely to change during testing.
11
+ *
12
+ * @param this
13
+ * @param forceRefetch Force refetch the installed plugins to update the cache.
14
+ */
15
+ async function getPluginsMap(forceRefetch = false) {
16
+ if (!forceRefetch && this.pluginsMap) {
17
+ return this.pluginsMap;
18
+ }
19
+ const plugins = await this.rest({
20
+ path: '/wp/v2/plugins',
21
+ });
22
+ this.pluginsMap = {};
23
+ for (const plugin of plugins) {
24
+ // Ideally, we should be using sanitize_title() in PHP rather than kebabCase(),
25
+ // but we don't have the exact port of it in JS.
26
+ this.pluginsMap[(0, change_case_1.paramCase)(plugin.name)] = plugin.plugin;
27
+ }
28
+ return this.pluginsMap;
29
+ }
30
+ exports.getPluginsMap = getPluginsMap;
31
+ /**
32
+ * Activates an installed plugin.
33
+ *
34
+ * @param this RequestUtils.
35
+ * @param slug Plugin slug.
36
+ */
37
+ async function activatePlugin(slug) {
38
+ const pluginsMap = await this.getPluginsMap();
39
+ const plugin = pluginsMap[slug];
40
+ if (!plugin) {
41
+ throw new Error(`The plugin "${slug}" isn't installed`);
42
+ }
43
+ await this.rest({
44
+ method: 'PUT',
45
+ path: `/wp/v2/plugins/${plugin}`,
46
+ data: { status: 'active' },
47
+ });
48
+ }
49
+ exports.activatePlugin = activatePlugin;
50
+ /**
51
+ * Deactivates an active plugin.
52
+ *
53
+ * @param this RequestUtils.
54
+ * @param slug Plugin slug.
55
+ */
56
+ async function deactivatePlugin(slug) {
57
+ const pluginsMap = await this.getPluginsMap();
58
+ const plugin = pluginsMap[slug];
59
+ if (!plugin) {
60
+ throw new Error(`The plugin "${slug}" isn't installed`);
61
+ }
62
+ await this.rest({
63
+ method: 'PUT',
64
+ path: `/wp/v2/plugins/${plugin}`,
65
+ data: { status: 'inactive' },
66
+ });
67
+ }
68
+ exports.deactivatePlugin = deactivatePlugin;
69
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/request-utils/plugins.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,6CAAqD;AAOrD;;;;;;GAMG;AACH,KAAK,UAAU,aAAa,CAAsB,YAAY,GAAG,KAAK;IACrE,IAAK,CAAE,YAAY,IAAI,IAAI,CAAC,UAAU,EAAG;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC;KACvB;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAE;QAChC,IAAI,EAAE,gBAAgB;KACtB,CAAE,CAAC;IACJ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACrB,KAAM,MAAM,MAAM,IAAI,OAAO,EAAG;QAC/B,+EAA+E;QAC/E,gDAAgD;QAChD,IAAI,CAAC,UAAU,CAAE,IAAA,uBAAS,EAAE,MAAM,CAAC,IAAI,CAAE,CAAE,GAAG,MAAM,CAAC,MAAM,CAAC;KAC5D;IACD,OAAO,IAAI,CAAC,UAAU,CAAC;AACxB,CAAC;AA4CQ,sCAAa;AA1CtB;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAsB,IAAY;IAC9D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAE,IAAI,CAAE,CAAC;IAElC,IAAK,CAAE,MAAM,EAAG;QACf,MAAM,IAAI,KAAK,CAAE,eAAgB,IAAK,mBAAmB,CAAE,CAAC;KAC5D;IAED,MAAM,IAAI,CAAC,IAAI,CAAE;QAChB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kBAAmB,MAAO,EAAE;QAClC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC1B,CAAE,CAAC;AACL,CAAC;AAuBuB,wCAAc;AArBtC;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAAsB,IAAY;IAChE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAE,IAAI,CAAE,CAAC;IAElC,IAAK,CAAE,MAAM,EAAG;QACf,MAAM,IAAI,KAAK,CAAE,eAAgB,IAAK,mBAAmB,CAAE,CAAC;KAC5D;IAED,MAAM,IAAI,CAAC,IAAI,CAAE;QAChB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kBAAmB,MAAO,EAAE;QAClC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;KAC5B,CAAE,CAAC;AACL,CAAC;AAEuC,4CAAgB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPost = exports.deleteAllPosts = void 0;
4
+ /**
5
+ * Delete all posts using REST API.
6
+ *
7
+ * @param this
8
+ */
9
+ async function deleteAllPosts() {
10
+ // List all posts.
11
+ // https://developer.wordpress.org/rest-api/reference/posts/#list-posts
12
+ const posts = await this.rest({
13
+ path: '/wp/v2/posts',
14
+ params: {
15
+ per_page: 100,
16
+ // All possible statuses.
17
+ status: 'publish,future,draft,pending,private,trash',
18
+ },
19
+ });
20
+ // Delete all posts one by one.
21
+ // https://developer.wordpress.org/rest-api/reference/posts/#delete-a-post
22
+ // "/wp/v2/posts" not yet supports batch requests.
23
+ await Promise.all(posts.map((post) => this.rest({
24
+ method: 'DELETE',
25
+ path: `/wp/v2/posts/${post.id}`,
26
+ params: {
27
+ force: true,
28
+ },
29
+ })));
30
+ }
31
+ exports.deleteAllPosts = deleteAllPosts;
32
+ /**
33
+ * Creates a new post using the REST API.
34
+ *
35
+ * @param this
36
+ * @param payload Post attributes.
37
+ */
38
+ async function createPost(payload) {
39
+ const post = await this.rest({
40
+ method: 'POST',
41
+ path: `/wp/v2/posts`,
42
+ params: { ...payload },
43
+ });
44
+ return post;
45
+ }
46
+ exports.createPost = createPost;
47
+ //# sourceMappingURL=posts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/request-utils/posts.ts"],"names":[],"mappings":";;;AAmBA;;;;GAIG;AACI,KAAK,UAAU,cAAc;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAY;QACxC,IAAI,EAAE,cAAc;QACpB,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,gBAAiB,IAAI,CAAC,EAAG,EAAE;QACjC,MAAM,EAAE;YACP,KAAK,EAAE,IAAI;SACX;KACD,CAAE,CACH,CACD,CAAC;AACH,CAAC;AA1BD,wCA0BC;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,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE;KACtB,CAAE,CAAC;IAEJ,OAAO,IAAI,CAAC;AACb,CAAC;AAXD,gCAWC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetPreferences = void 0;
4
+ /**
5
+ * Reset user preferences
6
+ *
7
+ * @param this Request utils.
8
+ */
9
+ async function resetPreferences() {
10
+ await this.rest({
11
+ path: '/wp/v2/users/me',
12
+ method: 'PUT',
13
+ data: {
14
+ meta: {
15
+ persisted_preferences: {},
16
+ },
17
+ },
18
+ });
19
+ }
20
+ exports.resetPreferences = resetPreferences;
21
+ //# sourceMappingURL=preferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../src/request-utils/preferences.ts"],"names":[],"mappings":";;;AAKA;;;;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;AAVD,4CAUC"}