@wordpress/e2e-test-utils-playwright 1.48.0 → 1.48.2-next.v.202606191442.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.
- package/build/admin/create-new-post.js +31 -0
- package/build/admin/create-new-post.js.map +1 -0
- package/build/admin/edit-post.js +20 -0
- package/build/admin/edit-post.js.map +1 -0
- package/{src/admin/get-page-error.ts → build/admin/get-page-error.js} +9 -12
- package/build/admin/get-page-error.js.map +1 -0
- package/build/admin/index.js +40 -0
- package/build/admin/index.js.map +1 -0
- package/build/admin/visit-admin-page.js +32 -0
- package/build/admin/visit-admin-page.js.map +1 -0
- package/build/admin/visit-site-editor.js +45 -0
- package/build/admin/visit-site-editor.js.map +1 -0
- package/build/admin/wait-for-site-editor.js +41 -0
- package/build/admin/wait-for-site-editor.js.map +1 -0
- package/build/config.js +13 -0
- package/build/config.js.map +1 -0
- package/build/editor/click-block-options-menu-item.js +17 -0
- package/build/editor/click-block-options-menu-item.js.map +1 -0
- package/build/editor/click-block-toolbar-button.js +16 -0
- package/build/editor/click-block-toolbar-button.js.map +1 -0
- package/build/editor/get-blocks.js +45 -0
- package/build/editor/get-blocks.js.map +1 -0
- package/build/editor/get-edited-post-content.js +15 -0
- package/build/editor/get-edited-post-content.js.map +1 -0
- package/build/editor/index.js +75 -0
- package/build/editor/index.js.map +1 -0
- package/build/editor/insert-block.js +23 -0
- package/build/editor/insert-block.js.map +1 -0
- package/build/editor/open-document-settings-sidebar.js +27 -0
- package/build/editor/open-document-settings-sidebar.js.map +1 -0
- package/build/editor/preview.js +21 -0
- package/build/editor/preview.js.map +1 -0
- package/build/editor/publish-post.js +45 -0
- package/build/editor/publish-post.js.map +1 -0
- package/build/editor/save-draft.js +18 -0
- package/build/editor/save-draft.js.map +1 -0
- package/build/editor/select-blocks.js +28 -0
- package/build/editor/select-blocks.js.map +1 -0
- package/build/editor/set-content.js +17 -0
- package/build/editor/set-content.js.map +1 -0
- package/build/editor/set-is-fixed-toolbar.js +18 -0
- package/build/editor/set-is-fixed-toolbar.js.map +1 -0
- package/build/editor/set-preferences.js +21 -0
- package/build/editor/set-preferences.js.map +1 -0
- package/build/editor/show-block-toolbar.js +19 -0
- package/build/editor/show-block-toolbar.js.map +1 -0
- package/build/editor/site-editor.js +44 -0
- package/build/editor/site-editor.js.map +1 -0
- package/build/editor/switch-editor-tool.js +33 -0
- package/build/editor/switch-editor-tool.js.map +1 -0
- package/build/editor/switch-to-legacy-canvas.js +18 -0
- package/build/editor/switch-to-legacy-canvas.js.map +1 -0
- package/build/editor/transform-block-to.js +24 -0
- package/build/editor/transform-block-to.js.map +1 -0
- package/build/index.js +19 -0
- package/build/index.js.map +1 -0
- package/build/lighthouse/index.js +61 -0
- package/build/lighthouse/index.js.map +1 -0
- package/build/metrics/index.js +314 -0
- package/build/metrics/index.js.map +1 -0
- package/build/page-utils/drag-files.js +119 -0
- package/build/page-utils/drag-files.js.map +1 -0
- package/build/page-utils/emulate-network-conditions.js +71 -0
- package/build/page-utils/emulate-network-conditions.js.map +1 -0
- package/build/page-utils/index.js +37 -0
- package/build/page-utils/index.js.map +1 -0
- package/build/page-utils/is-current-url.js +21 -0
- package/build/page-utils/is-current-url.js.map +1 -0
- package/build/page-utils/keycodes.js +41 -0
- package/build/page-utils/keycodes.js.map +1 -0
- package/build/page-utils/press-keys.js +141 -0
- package/build/page-utils/press-keys.js.map +1 -0
- package/{src → build}/page-utils/set-browser-viewport.js +12 -14
- package/build/page-utils/set-browser-viewport.js.map +1 -0
- package/build/request-utils/blocks.js +40 -0
- package/build/request-utils/blocks.js.map +1 -0
- package/build/request-utils/comments.js +52 -0
- package/build/request-utils/comments.js.map +1 -0
- package/build/request-utils/gutenberg-experiments.js +47 -0
- package/build/request-utils/gutenberg-experiments.js.map +1 -0
- package/build/request-utils/index.js +196 -0
- package/build/request-utils/index.js.map +1 -0
- package/build/request-utils/login.js +21 -0
- package/build/request-utils/login.js.map +1 -0
- package/build/request-utils/media.js +106 -0
- package/build/request-utils/media.js.map +1 -0
- package/build/request-utils/menus.js +116 -0
- package/build/request-utils/menus.js.map +1 -0
- package/build/request-utils/pages.js +53 -0
- package/build/request-utils/pages.js.map +1 -0
- package/build/request-utils/patterns.js +27 -0
- package/build/request-utils/patterns.js.map +1 -0
- package/build/request-utils/plugins.js +85 -0
- package/build/request-utils/plugins.js.map +1 -0
- package/build/request-utils/posts.js +42 -0
- package/build/request-utils/posts.js.map +1 -0
- package/build/request-utils/preferences.js +54 -0
- package/build/request-utils/preferences.js.map +1 -0
- package/{src/request-utils/records.ts → build/request-utils/records.js} +10 -15
- package/build/request-utils/records.js.map +1 -0
- package/build/request-utils/rest.js +181 -0
- package/build/request-utils/rest.js.map +1 -0
- package/build/request-utils/site-settings.js +33 -0
- package/build/request-utils/site-settings.js.map +1 -0
- package/build/request-utils/templates.js +54 -0
- package/build/request-utils/templates.js.map +1 -0
- package/build/request-utils/themes.js +69 -0
- package/build/request-utils/themes.js.map +1 -0
- package/build/request-utils/users.js +81 -0
- package/build/request-utils/users.js.map +1 -0
- package/build/request-utils/widgets.js +61 -0
- package/build/request-utils/widgets.js.map +1 -0
- package/build/test.js +189 -0
- package/build/test.js.map +1 -0
- package/build/types.js +3 -0
- package/build/types.js.map +1 -0
- package/package.json +8 -5
- package/src/admin/create-new-post.ts +0 -47
- package/src/admin/edit-post.ts +0 -24
- package/src/admin/index.ts +0 -52
- package/src/admin/visit-admin-page.ts +0 -43
- package/src/admin/visit-site-editor.ts +0 -62
- package/src/admin/wait-for-site-editor.ts +0 -52
- package/src/config.ts +0 -12
- package/src/editor/click-block-options-menu-item.ts +0 -18
- package/src/editor/click-block-toolbar-button.ts +0 -21
- package/src/editor/get-blocks.ts +0 -75
- package/src/editor/get-edited-post-content.ts +0 -19
- package/src/editor/index.ts +0 -95
- package/src/editor/insert-block.ts +0 -54
- package/src/editor/open-document-settings-sidebar.ts +0 -31
- package/src/editor/preview.ts +0 -32
- package/src/editor/publish-post.ts +0 -51
- package/src/editor/save-draft.ts +0 -20
- package/src/editor/select-blocks.ts +0 -48
- package/src/editor/set-content.ts +0 -24
- package/src/editor/set-is-fixed-toolbar.ts +0 -20
- package/src/editor/set-preferences.ts +0 -37
- package/src/editor/show-block-toolbar.ts +0 -20
- package/src/editor/site-editor.ts +0 -55
- package/src/editor/switch-editor-tool.ts +0 -34
- package/src/editor/switch-to-legacy-canvas.ts +0 -20
- package/src/editor/transform-block-to.ts +0 -34
- package/src/index.ts +0 -8
- package/src/lighthouse/index.ts +0 -75
- package/src/metrics/index.ts +0 -441
- package/src/page-utils/drag-files.ts +0 -173
- package/src/page-utils/emulate-network-conditions.ts +0 -101
- package/src/page-utils/index.ts +0 -54
- package/src/page-utils/is-current-url.ts +0 -20
- package/src/page-utils/keycodes.ts +0 -48
- package/src/page-utils/press-keys.ts +0 -195
- package/src/request-utils/blocks.ts +0 -58
- package/src/request-utils/comments.ts +0 -80
- package/src/request-utils/gutenberg-experiments.ts +0 -62
- package/src/request-utils/index.ts +0 -222
- package/src/request-utils/login.ts +0 -34
- package/src/request-utils/media.ts +0 -102
- package/src/request-utils/menus.ts +0 -145
- package/src/request-utils/pages.ts +0 -75
- package/src/request-utils/patterns.ts +0 -31
- package/src/request-utils/plugins.ts +0 -103
- package/src/request-utils/posts.ts +0 -69
- package/src/request-utils/preferences.ts +0 -63
- package/src/request-utils/rest.ts +0 -222
- package/src/request-utils/site-settings.ts +0 -58
- package/src/request-utils/templates.ts +0 -83
- package/src/request-utils/themes.ts +0 -110
- package/src/request-utils/users.ts +0 -125
- package/src/request-utils/widgets.js +0 -68
- package/src/test.ts +0 -204
- package/src/types.ts +0 -13
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setClipboardData = setClipboardData;
|
|
4
|
+
exports.pressKeys = pressKeys;
|
|
5
|
+
/**
|
|
6
|
+
* External dependencies
|
|
7
|
+
*/
|
|
8
|
+
const change_case_1 = require("change-case");
|
|
9
|
+
const keycodes_1 = require("./keycodes");
|
|
10
|
+
let clipboardDataHolder = {
|
|
11
|
+
'text/plain': '',
|
|
12
|
+
'text/html': '',
|
|
13
|
+
'rich-text': '',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Sets the clipboard data that can be pasted with
|
|
17
|
+
* `pressKeys( 'primary+v' )`.
|
|
18
|
+
*
|
|
19
|
+
* @param clipboardData
|
|
20
|
+
* @param clipboardData.plainText
|
|
21
|
+
* @param clipboardData.html
|
|
22
|
+
*/
|
|
23
|
+
function setClipboardData({ plainText = '', html = '' }) {
|
|
24
|
+
clipboardDataHolder = {
|
|
25
|
+
'text/plain': plainText,
|
|
26
|
+
'text/html': html,
|
|
27
|
+
'rich-text': '',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
async function emulateClipboard(page, type) {
|
|
31
|
+
const output = await page.evaluate(([_type, _clipboardData]) => {
|
|
32
|
+
const canvasDoc =
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
document.activeElement?.contentDocument ?? document;
|
|
35
|
+
const event = new ClipboardEvent(_type, {
|
|
36
|
+
bubbles: true,
|
|
37
|
+
cancelable: true,
|
|
38
|
+
clipboardData: new DataTransfer(),
|
|
39
|
+
});
|
|
40
|
+
if (!event.clipboardData) {
|
|
41
|
+
throw new Error('ClipboardEvent.clipboardData is null');
|
|
42
|
+
}
|
|
43
|
+
if (_type === 'paste') {
|
|
44
|
+
event.clipboardData.setData('text/plain', _clipboardData['text/plain']);
|
|
45
|
+
event.clipboardData.setData('text/html', _clipboardData['text/html']);
|
|
46
|
+
event.clipboardData.setData('rich-text', _clipboardData['rich-text']);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const selection = canvasDoc.defaultView.getSelection();
|
|
50
|
+
const plainText = selection.toString();
|
|
51
|
+
let html = plainText;
|
|
52
|
+
if (selection.rangeCount) {
|
|
53
|
+
const range = selection.getRangeAt(0);
|
|
54
|
+
const fragment = range.cloneContents();
|
|
55
|
+
html = Array.from(fragment.childNodes)
|
|
56
|
+
.map((node) => node.outerHTML ??
|
|
57
|
+
node.nodeValue)
|
|
58
|
+
.join('');
|
|
59
|
+
}
|
|
60
|
+
event.clipboardData.setData('text/plain', plainText);
|
|
61
|
+
event.clipboardData.setData('text/html', html);
|
|
62
|
+
}
|
|
63
|
+
canvasDoc.activeElement.dispatchEvent(event);
|
|
64
|
+
if (_type === 'paste') {
|
|
65
|
+
return event.defaultPrevented;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
'text/plain': event.clipboardData.getData('text/plain'),
|
|
69
|
+
'text/html': event.clipboardData.getData('text/html'),
|
|
70
|
+
'rich-text': event.clipboardData.getData('rich-text'),
|
|
71
|
+
};
|
|
72
|
+
}, [type, clipboardDataHolder]);
|
|
73
|
+
if (typeof output === 'object') {
|
|
74
|
+
clipboardDataHolder = output;
|
|
75
|
+
}
|
|
76
|
+
if (output === false) {
|
|
77
|
+
// Emulate paste by typing the clipboard content, which works across all
|
|
78
|
+
// elements and documents (keyboard.type does uses the nested active
|
|
79
|
+
// element automatically).
|
|
80
|
+
await page.keyboard.type(clipboardDataHolder['text/plain']);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const isAppleOS = () => process.platform === 'darwin';
|
|
84
|
+
const isWebkit = (page) => page.context().browser().browserType().name() === 'webkit';
|
|
85
|
+
const browserCache = new WeakMap();
|
|
86
|
+
const getHasNaturalTabNavigation = async (page) => {
|
|
87
|
+
if (!isAppleOS() || !isWebkit(page)) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
if (browserCache.has(page.context().browser())) {
|
|
91
|
+
return browserCache.get(page.context().browser());
|
|
92
|
+
}
|
|
93
|
+
const testPage = await page.context().newPage();
|
|
94
|
+
await testPage.setContent(`<button>1</button><button>2</button>`);
|
|
95
|
+
await testPage.getByText('1').focus();
|
|
96
|
+
await testPage.keyboard.press('Tab');
|
|
97
|
+
const featureDetected = await testPage
|
|
98
|
+
.getByText('2')
|
|
99
|
+
.evaluate((node) => node === document.activeElement);
|
|
100
|
+
browserCache.set(page.context().browser(), featureDetected);
|
|
101
|
+
await testPage.close();
|
|
102
|
+
return featureDetected;
|
|
103
|
+
};
|
|
104
|
+
const modifiers = {
|
|
105
|
+
...keycodes_1.modifiers,
|
|
106
|
+
shiftAlt: (_isApple) => _isApple() ? [keycodes_1.SHIFT, keycodes_1.ALT] : [keycodes_1.SHIFT, keycodes_1.CTRL],
|
|
107
|
+
};
|
|
108
|
+
async function pressKeys(key, { times, ...pressOptions } = {}) {
|
|
109
|
+
const hasNaturalTabNavigation = await getHasNaturalTabNavigation(this.page);
|
|
110
|
+
let command;
|
|
111
|
+
if (key.toLowerCase() === 'primary+c') {
|
|
112
|
+
command = () => emulateClipboard(this.page, 'copy');
|
|
113
|
+
}
|
|
114
|
+
else if (key.toLowerCase() === 'primary+x') {
|
|
115
|
+
command = () => emulateClipboard(this.page, 'cut');
|
|
116
|
+
}
|
|
117
|
+
else if (key.toLowerCase() === 'primary+v') {
|
|
118
|
+
command = () => emulateClipboard(this.page, 'paste');
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const keys = key.split('+').flatMap((keyCode) => {
|
|
122
|
+
if (Object.prototype.hasOwnProperty.call(modifiers, keyCode)) {
|
|
123
|
+
return modifiers[keyCode](isAppleOS).map((modifier) => modifier === keycodes_1.CTRL ? 'Control' : (0, change_case_1.capitalCase)(modifier));
|
|
124
|
+
}
|
|
125
|
+
else if (keyCode === 'Tab' && !hasNaturalTabNavigation) {
|
|
126
|
+
return ['Alt', 'Tab'];
|
|
127
|
+
}
|
|
128
|
+
return keyCode;
|
|
129
|
+
});
|
|
130
|
+
const normalizedKeys = keys.join('+');
|
|
131
|
+
command = () => this.page.keyboard.press(normalizedKeys);
|
|
132
|
+
}
|
|
133
|
+
times = times ?? 1;
|
|
134
|
+
for (let i = 0; i < times; i += 1) {
|
|
135
|
+
await command();
|
|
136
|
+
if (times > 1 && pressOptions.delay) {
|
|
137
|
+
await this.page.waitForTimeout(pressOptions.delay);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=press-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-keys.js","sourceRoot":"","sources":["../../src/page-utils/press-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Named viewport options.
|
|
3
4
|
*
|
|
4
5
|
* @typedef {"large"|"medium"|"small"} WPDimensionsName
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.setBrowserViewport = setBrowserViewport;
|
|
7
9
|
/**
|
|
8
10
|
* Viewport dimensions object.
|
|
9
11
|
*
|
|
@@ -12,7 +14,6 @@
|
|
|
12
14
|
* @property {number} width Width, in pixels.
|
|
13
15
|
* @property {number} height Height, in pixels.
|
|
14
16
|
*/
|
|
15
|
-
|
|
16
17
|
/**
|
|
17
18
|
* Predefined viewport dimensions to reference by name.
|
|
18
19
|
*
|
|
@@ -21,28 +22,25 @@
|
|
|
21
22
|
* @type {Record<WPDimensionsName, WPViewportDimensions>}
|
|
22
23
|
*/
|
|
23
24
|
const PREDEFINED_DIMENSIONS = {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
large: { width: 960, height: 700 },
|
|
26
|
+
medium: { width: 768, height: 700 },
|
|
27
|
+
small: { width: 600, height: 700 },
|
|
27
28
|
};
|
|
28
|
-
|
|
29
29
|
/**
|
|
30
30
|
* Valid argument argument type from which to derive viewport dimensions.
|
|
31
31
|
*
|
|
32
32
|
* @typedef {WPDimensionsName|WPViewportDimensions} WPViewport
|
|
33
33
|
*/
|
|
34
|
-
|
|
35
34
|
/**
|
|
36
35
|
* Sets browser viewport to specified type.
|
|
37
36
|
*
|
|
38
37
|
* @this {import('./').PageUtils}
|
|
39
38
|
* @param {WPViewport} viewport Viewport name or dimensions object to assign.
|
|
40
39
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
await this.page.setViewportSize( dimensions );
|
|
40
|
+
async function setBrowserViewport(viewport) {
|
|
41
|
+
const dimensions = typeof viewport === 'string'
|
|
42
|
+
? PREDEFINED_DIMENSIONS[viewport]
|
|
43
|
+
: viewport;
|
|
44
|
+
await this.page.setViewportSize(dimensions);
|
|
48
45
|
}
|
|
46
|
+
//# sourceMappingURL=set-browser-viewport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-browser-viewport.js","sourceRoot":"","sources":["../../src/page-utils/set-browser-viewport.js"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG;IAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACnC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CAClC,CAAC;AAEF;;;;GAIG;AAEH;;;;;GAKG;AACI,KAAK,6BAA8B,QAAQ;IACjD,MAAM,UAAU,GACf,OAAO,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,qBAAqB,CAAE,QAAQ,CAAE;QACnC,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,UAAU,CAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteAllBlocks = deleteAllBlocks;
|
|
4
|
+
exports.createBlock = createBlock;
|
|
5
|
+
/**
|
|
6
|
+
* Delete all blocks using REST API.
|
|
7
|
+
*
|
|
8
|
+
* @see https://developer.wordpress.org/rest-api/reference/blocks/#list-editor-blocks
|
|
9
|
+
* @param this
|
|
10
|
+
*/
|
|
11
|
+
async function deleteAllBlocks() {
|
|
12
|
+
// List all blocks.
|
|
13
|
+
// https://developer.wordpress.org/rest-api/reference/blocks/#list-editor-blocks
|
|
14
|
+
const blocks = await this.rest({
|
|
15
|
+
path: '/wp/v2/blocks',
|
|
16
|
+
params: {
|
|
17
|
+
per_page: 100,
|
|
18
|
+
// All possible statuses.
|
|
19
|
+
status: 'publish,future,draft,pending,private,trash',
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
// Delete blocks.
|
|
23
|
+
// https://developer.wordpress.org/rest-api/reference/blocks/#delete-a-editor-block
|
|
24
|
+
// "/wp/v2/posts" not yet supports batch requests.
|
|
25
|
+
await this.batchRest(blocks.map((block) => ({
|
|
26
|
+
method: 'DELETE',
|
|
27
|
+
path: `/wp/v2/blocks/${block.id}?force=true`,
|
|
28
|
+
})));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new block using the REST API.
|
|
32
|
+
*
|
|
33
|
+
* @see https://developer.wordpress.org/rest-api/reference/blocks/#create-a-editor-block.
|
|
34
|
+
* @param this
|
|
35
|
+
* @param payload Block payload.
|
|
36
|
+
*/
|
|
37
|
+
async function createBlock(payload) {
|
|
38
|
+
return this.createRecord('blocks', { ...payload });
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/request-utils/blocks.ts"],"names":[],"mappings":";;;;AAgBA;;;;;GAKG;AACI,KAAK;IACX,mBAAmB;IACnB,gFAAgF;IAChF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAE;QAC/B,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACP,QAAQ,EAAE,GAAG;YACb,yBAAyB;YACzB,MAAM,EAAE,4CAA4C;SACpD;KACD,CAAE,CAAC;IAEJ,iBAAiB;IACjB,mFAAmF;IACnF,kDAAkD;IAClD,MAAM,IAAI,CAAC,SAAS,CACnB,MAAM,CAAC,GAAG,CAAE,CAAE,KAAqB,EAAG,EAAE,CAAC,CAAE;QAC1C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,iBAAkB,KAAK,CAAC,EAAG,aAAa;KAC9C,CAAE,CAAE,CACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,sBAEX,OAA2B;IAE3B,OAAO,IAAI,CAAC,YAAY,CAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,CAAE,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createComment = createComment;
|
|
4
|
+
exports.deleteAllComments = deleteAllComments;
|
|
5
|
+
/**
|
|
6
|
+
* Create new comment using the REST API.
|
|
7
|
+
*
|
|
8
|
+
* @param this
|
|
9
|
+
* @param payload
|
|
10
|
+
*/
|
|
11
|
+
async function createComment(payload) {
|
|
12
|
+
const currentUser = await this.rest({
|
|
13
|
+
path: '/wp/v2/users/me',
|
|
14
|
+
method: 'GET',
|
|
15
|
+
});
|
|
16
|
+
const author = currentUser.id;
|
|
17
|
+
const comment = await this.rest({
|
|
18
|
+
method: 'POST',
|
|
19
|
+
path: '/wp/v2/comments',
|
|
20
|
+
data: { ...payload, author },
|
|
21
|
+
});
|
|
22
|
+
return comment;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Delete all comments using the REST API.
|
|
26
|
+
*
|
|
27
|
+
* @param this
|
|
28
|
+
* @param type - Optional comment type to delete.
|
|
29
|
+
*/
|
|
30
|
+
async function deleteAllComments(type) {
|
|
31
|
+
// List all comments.
|
|
32
|
+
// https://developer.wordpress.org/rest-api/reference/comments/#list-comments
|
|
33
|
+
const comments = await this.rest({
|
|
34
|
+
path: '/wp/v2/comments',
|
|
35
|
+
params: {
|
|
36
|
+
per_page: 100,
|
|
37
|
+
status: 'all',
|
|
38
|
+
type: type || 'comment',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
// Delete all comments one by one.
|
|
42
|
+
// https://developer.wordpress.org/rest-api/reference/comments/#delete-a-comment
|
|
43
|
+
// "/wp/v2/comments" doesn't support batch requests yet.
|
|
44
|
+
await Promise.all(comments.map((comment) => this.rest({
|
|
45
|
+
method: 'DELETE',
|
|
46
|
+
path: `/wp/v2/comments/${comment.id}`,
|
|
47
|
+
params: {
|
|
48
|
+
force: true,
|
|
49
|
+
},
|
|
50
|
+
})));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/request-utils/comments.ts"],"names":[],"mappings":";;;;AAqBA;;;;;GAKG;AACI,KAAK,wBAEX,OAA6B;IAE7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAU;QAC5C,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,KAAK;KACb,CAAE,CAAC;IAEJ,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAa;QAC3C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;KAC5B,CAAE,CAAC;IAEJ,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACI,KAAK,4BAAiD,IAAa;IACzE,qBAAqB;IACrB,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAE;QACjC,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACP,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,IAAI,SAAS;SACvB;KACD,CAAE,CAAC;IAEJ,kCAAkC;IAClC,gFAAgF;IAChF,wDAAwD;IACxD,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAE,CAAE,OAAgB,EAAG,EAAE,CACpC,IAAI,CAAC,IAAI,CAAE;QACV,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,mBAAoB,OAAO,CAAC,EAAG,EAAE;QACvC,MAAM,EAAE;YACP,KAAK,EAAE,IAAI;SACX;KACD,CAAE,CACH,CACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setGutenbergExperiments = setGutenbergExperiments;
|
|
4
|
+
/**
|
|
5
|
+
* Sets the Gutenberg experiments.
|
|
6
|
+
*
|
|
7
|
+
* @param this
|
|
8
|
+
* @param experiments Array of experimental flags to enable. Pass in an empty array to disable all experiments.
|
|
9
|
+
* Use 'active_templates' for the template activation feature.
|
|
10
|
+
*/
|
|
11
|
+
async function setGutenbergExperiments(experiments) {
|
|
12
|
+
// Separate regular experiments from active_templates.
|
|
13
|
+
// active_templates is stored as a separate option, not in the experiments array.
|
|
14
|
+
const regularExperiments = experiments.filter((exp) => exp !== 'active_templates');
|
|
15
|
+
const hasActiveTemplates = experiments.includes('active_templates');
|
|
16
|
+
// Build the experiments object with boolean values.
|
|
17
|
+
// When empty array is passed, we send an empty object to disable all experiments.
|
|
18
|
+
const experimentsData = {};
|
|
19
|
+
for (const experiment of regularExperiments) {
|
|
20
|
+
experimentsData[experiment] = true;
|
|
21
|
+
}
|
|
22
|
+
const settingsData = {
|
|
23
|
+
'gutenberg-experiments': experimentsData,
|
|
24
|
+
};
|
|
25
|
+
// active_templates lives in a separate top-level option. Sending `{}`
|
|
26
|
+
// enables the experiment; sending `null` deletes the option and disables
|
|
27
|
+
// it.
|
|
28
|
+
if (hasActiveTemplates) {
|
|
29
|
+
settingsData.active_templates = {};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// WP_REST_Settings_Controller rejects null updates when the stored
|
|
33
|
+
// value does not match the `type: 'object'` schema (including when the
|
|
34
|
+
// option is absent and `get_option` falls back to `false`), so we only
|
|
35
|
+
// send null when the option actually exists.
|
|
36
|
+
const currentSiteSettings = (await this.getSiteSettings());
|
|
37
|
+
if (currentSiteSettings.active_templates !== null) {
|
|
38
|
+
settingsData.active_templates = null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
await this.rest({
|
|
42
|
+
path: '/wp/v2/settings',
|
|
43
|
+
method: 'POST',
|
|
44
|
+
data: settingsData,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=gutenberg-experiments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gutenberg-experiments.js","sourceRoot":"","sources":["../../src/request-utils/gutenberg-experiments.ts"],"names":[],"mappings":";;QA6DS,uBAAuB;AAxDhC;;;;;;GAMG;AACH,KAAK,UAAU,uBAAuB,CAErC,WAAqB;IAErB,sDAAsD;IACtD,iFAAiF;IACjF,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAC5C,CAAE,GAAG,EAAG,EAAE,CAAC,GAAG,KAAK,kBAAkB,CACrC,CAAC;IACF,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAE,kBAAkB,CAAE,CAAC;IAEtE,oDAAoD;IACpD,kFAAkF;IAClF,MAAM,eAAe,GAA8B,EAAE,CAAC;IAEtD,KAAM,MAAM,UAAU,IAAI,kBAAkB,EAAG,CAAC;QAC/C,eAAe,CAAE,UAAU,CAAE,GAAG,IAAI,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAA8B;QAC/C,uBAAuB,EAAE,eAAe;KACxC,CAAC;IAEF,sEAAsE;IACtE,yEAAyE;IACzE,MAAM;IACN,IAAK,kBAAkB,EAAG,CAAC;QAC1B,YAAY,CAAC,gBAAgB,GAAG,EAAE,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,mEAAmE;QACnE,uEAAuE;QACvE,uEAAuE;QACvE,6CAA6C;QAC7C,MAAM,mBAAmB,GACxB,CAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAE7B,CAAC;QACH,IAAK,mBAAmB,CAAC,gBAAgB,KAAK,IAAI,EAAG,CAAC;YACrD,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACtC,CAAC;IACF,CAAC;IAED,MAAM,IAAI,CAAC,IAAI,CAAE;QAChB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,YAAY;KAClB,CAAE,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RequestUtils = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* External dependencies
|
|
39
|
+
*/
|
|
40
|
+
const fs = __importStar(require("fs/promises"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const test_1 = require("@playwright/test");
|
|
43
|
+
/**
|
|
44
|
+
* Internal dependencies
|
|
45
|
+
*/
|
|
46
|
+
const config_1 = require("../config");
|
|
47
|
+
const login_1 = require("./login");
|
|
48
|
+
const media_1 = require("./media");
|
|
49
|
+
const users_1 = require("./users");
|
|
50
|
+
const rest_1 = require("./rest");
|
|
51
|
+
const plugins_1 = require("./plugins");
|
|
52
|
+
const templates_1 = require("./templates");
|
|
53
|
+
const themes_1 = require("./themes");
|
|
54
|
+
const blocks_1 = require("./blocks");
|
|
55
|
+
const comments_1 = require("./comments");
|
|
56
|
+
const posts_1 = require("./posts");
|
|
57
|
+
const menus_1 = require("./menus");
|
|
58
|
+
const pages_1 = require("./pages");
|
|
59
|
+
const records_1 = require("./records");
|
|
60
|
+
const preferences_1 = require("./preferences");
|
|
61
|
+
const site_settings_1 = require("./site-settings");
|
|
62
|
+
const widgets_1 = require("./widgets");
|
|
63
|
+
const patterns_1 = require("./patterns");
|
|
64
|
+
const gutenberg_experiments_1 = require("./gutenberg-experiments");
|
|
65
|
+
class RequestUtils {
|
|
66
|
+
request;
|
|
67
|
+
user;
|
|
68
|
+
maxBatchSize;
|
|
69
|
+
storageState;
|
|
70
|
+
storageStatePath;
|
|
71
|
+
baseURL;
|
|
72
|
+
pluginsMap = null;
|
|
73
|
+
static async setup({ user, storageStatePath, baseURL = config_1.WP_BASE_URL, }) {
|
|
74
|
+
let storageState;
|
|
75
|
+
if (storageStatePath) {
|
|
76
|
+
await fs.mkdir(path.dirname(storageStatePath), {
|
|
77
|
+
recursive: true,
|
|
78
|
+
});
|
|
79
|
+
try {
|
|
80
|
+
storageState = JSON.parse(await fs.readFile(storageStatePath, 'utf-8'));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (error instanceof Error &&
|
|
84
|
+
error.code === 'ENOENT') {
|
|
85
|
+
// Ignore errors if the state is not found.
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const requestContext = await test_1.request.newContext({
|
|
93
|
+
baseURL,
|
|
94
|
+
storageState: storageState && {
|
|
95
|
+
cookies: storageState.cookies,
|
|
96
|
+
origins: [],
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
const requestUtils = new this(requestContext, {
|
|
100
|
+
user,
|
|
101
|
+
storageState,
|
|
102
|
+
storageStatePath,
|
|
103
|
+
baseURL,
|
|
104
|
+
});
|
|
105
|
+
return requestUtils;
|
|
106
|
+
}
|
|
107
|
+
constructor(requestContext, { user = config_1.WP_ADMIN_USER, storageState, storageStatePath, baseURL = config_1.WP_BASE_URL, } = {}) {
|
|
108
|
+
this.user = user;
|
|
109
|
+
this.request = requestContext;
|
|
110
|
+
this.storageStatePath = storageStatePath;
|
|
111
|
+
this.storageState = storageState;
|
|
112
|
+
this.baseURL = baseURL;
|
|
113
|
+
}
|
|
114
|
+
/** @borrows login as this.login */
|
|
115
|
+
login = login_1.login.bind(this);
|
|
116
|
+
/** @borrows setupRest as this.setupRest */
|
|
117
|
+
setupRest = rest_1.setupRest.bind(this);
|
|
118
|
+
// .bind() drops the generic types. Re-casting it to keep the type signature.
|
|
119
|
+
rest = rest_1.rest.bind(this);
|
|
120
|
+
/** @borrows getMaxBatchSize as this.getMaxBatchSize */
|
|
121
|
+
getMaxBatchSize = rest_1.getMaxBatchSize.bind(this);
|
|
122
|
+
// .bind() drops the generic types. Re-casting it to keep the type signature.
|
|
123
|
+
batchRest = rest_1.batchRest.bind(this);
|
|
124
|
+
// .bind() drops the generic types. Re-casting it to keep the type signature.
|
|
125
|
+
createRecord = records_1.createRecord.bind(this);
|
|
126
|
+
/** @borrows getPluginsMap as this.getPluginsMap */
|
|
127
|
+
getPluginsMap = plugins_1.getPluginsMap.bind(this);
|
|
128
|
+
/** @borrows activatePlugin as this.activatePlugin */
|
|
129
|
+
activatePlugin = plugins_1.activatePlugin.bind(this);
|
|
130
|
+
/** @borrows deactivatePlugin as this.deactivatePlugin */
|
|
131
|
+
deactivatePlugin = plugins_1.deactivatePlugin.bind(this);
|
|
132
|
+
/** @borrows activateTheme as this.activateTheme */
|
|
133
|
+
activateTheme = themes_1.activateTheme.bind(this);
|
|
134
|
+
/** @borrows createBlock as this.createBlock */
|
|
135
|
+
createBlock = blocks_1.createBlock.bind(this);
|
|
136
|
+
/** @borrows deleteAllBlocks as this.deleteAllBlocks */
|
|
137
|
+
deleteAllBlocks = blocks_1.deleteAllBlocks.bind(this);
|
|
138
|
+
/** @borrows createPost as this.createPost */
|
|
139
|
+
createPost = posts_1.createPost.bind(this);
|
|
140
|
+
/** @borrows deleteAllPosts as this.deleteAllPosts */
|
|
141
|
+
deleteAllPosts = posts_1.deleteAllPosts.bind(this);
|
|
142
|
+
/** @borrows createClassicMenu as this.createClassicMenu */
|
|
143
|
+
createClassicMenu = menus_1.createClassicMenu.bind(this);
|
|
144
|
+
/** @borrows createNavigationMenu as this.createNavigationMenu */
|
|
145
|
+
createNavigationMenu = menus_1.createNavigationMenu.bind(this);
|
|
146
|
+
/** @borrows deleteAllMenus as this.deleteAllMenus */
|
|
147
|
+
deleteAllMenus = menus_1.deleteAllMenus.bind(this);
|
|
148
|
+
/** @borrows getNavigationMenus as this.getNavigationMenus */
|
|
149
|
+
getNavigationMenus = menus_1.getNavigationMenus.bind(this);
|
|
150
|
+
/** @borrows createComment as this.createComment */
|
|
151
|
+
createComment = comments_1.createComment.bind(this);
|
|
152
|
+
/** @borrows deleteAllComments as this.deleteAllComments */
|
|
153
|
+
deleteAllComments = comments_1.deleteAllComments.bind(this);
|
|
154
|
+
/** @borrows deleteAllWidgets as this.deleteAllWidgets */
|
|
155
|
+
deleteAllWidgets = widgets_1.deleteAllWidgets.bind(this);
|
|
156
|
+
/** @borrows addWidgetBlock as this.addWidgetBlock */
|
|
157
|
+
addWidgetBlock = widgets_1.addWidgetBlock.bind(this);
|
|
158
|
+
/** @borrows deleteAllTemplates as this.deleteAllTemplates */
|
|
159
|
+
deleteAllTemplates = templates_1.deleteAllTemplates.bind(this);
|
|
160
|
+
/** @borrows createTemplate as this.createTemplate */
|
|
161
|
+
createTemplate = templates_1.createTemplate.bind(this);
|
|
162
|
+
/** @borrows resetPreferences as this.resetPreferences */
|
|
163
|
+
resetPreferences = preferences_1.resetPreferences.bind(this);
|
|
164
|
+
/** @borrows setPreferences as this.setPreferences */
|
|
165
|
+
setPreferences = preferences_1.setPreferences.bind(this);
|
|
166
|
+
/** @borrows listMedia as this.listMedia */
|
|
167
|
+
listMedia = media_1.listMedia.bind(this);
|
|
168
|
+
/** @borrows uploadMedia as this.uploadMedia */
|
|
169
|
+
uploadMedia = media_1.uploadMedia.bind(this);
|
|
170
|
+
/** @borrows deleteMedia as this.deleteMedia */
|
|
171
|
+
deleteMedia = media_1.deleteMedia.bind(this);
|
|
172
|
+
/** @borrows deleteAllMedia as this.deleteAllMedia */
|
|
173
|
+
deleteAllMedia = media_1.deleteAllMedia.bind(this);
|
|
174
|
+
/** @borrows createUser as this.createUser */
|
|
175
|
+
createUser = users_1.createUser.bind(this);
|
|
176
|
+
/** @borrows deleteAllUsers as this.deleteAllUsers */
|
|
177
|
+
deleteAllUsers = users_1.deleteAllUsers.bind(this);
|
|
178
|
+
/** @borrows getSiteSettings as this.getSiteSettings */
|
|
179
|
+
getSiteSettings = site_settings_1.getSiteSettings.bind(this);
|
|
180
|
+
/** @borrows updateSiteSettings as this.updateSiteSettings */
|
|
181
|
+
updateSiteSettings = site_settings_1.updateSiteSettings.bind(this);
|
|
182
|
+
/** @borrows deleteAllPages as this.deleteAllPages */
|
|
183
|
+
deleteAllPages = pages_1.deleteAllPages.bind(this);
|
|
184
|
+
/** @borrows createPage as this.createPage */
|
|
185
|
+
createPage = pages_1.createPage.bind(this);
|
|
186
|
+
/** @borrows getCurrentThemeGlobalStylesPostId as this.getCurrentThemeGlobalStylesPostId */
|
|
187
|
+
getCurrentThemeGlobalStylesPostId = themes_1.getCurrentThemeGlobalStylesPostId.bind(this);
|
|
188
|
+
/** @borrows getThemeGlobalStylesRevisions as this.getThemeGlobalStylesRevisions */
|
|
189
|
+
getThemeGlobalStylesRevisions = themes_1.getThemeGlobalStylesRevisions.bind(this);
|
|
190
|
+
/** @borrows deleteAllPatternCategories as this.deleteAllPatternCategories */
|
|
191
|
+
deleteAllPatternCategories = patterns_1.deleteAllPatternCategories.bind(this);
|
|
192
|
+
/** @borrows setGutenbergExperiments as this.setGutenbergExperiments */
|
|
193
|
+
setGutenbergExperiments = gutenberg_experiments_1.setGutenbergExperiments.bind(this);
|
|
194
|
+
}
|
|
195
|
+
exports.RequestUtils = RequestUtils;
|
|
196
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request-utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,MAAY,EAAE,wCAAoB;AAClC,MAAY,IAAI,iCAAa;AAC7B,2CAA2C;AAG3C;;GAEG;AACH,sCAAuD;AAEvD,mCAAgC;AAChC,mCAA8E;AAC9E,mCAAqD;AACrD,iCAAqE;AACrE,uCAA4E;AAC5E,2CAAiE;AACjE,qCAIkB;AAClB,qCAAwD;AACxD,yCAA8D;AAC9D,mCAAqD;AACrD,mCAKiB;AACjB,mCAAqD;AACrD,uCAAyC;AACzC,+CAAiE;AACjE,mDAAsE;AACtE,uCAA6D;AAC7D,yCAAwD;AACxD,mEAAkE;AAQlE,MAAM,YAAY;IACjB,OAAO,CAAoB;IAC3B,IAAI,CAAO;IACX,YAAY,CAAU;IACtB,YAAY,CAAgB;IAC5B,gBAAgB,CAAU;IAC1B,OAAO,CAAU;IAEjB,UAAU,GAAoC,IAAI,CAAC;IAEnD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAE,EACnB,IAAI,EACJ,gBAAgB,EAChB,OAAO,GAAG,oBAAW,GAKrB;QACA,IAAI,YAAsC,CAAC;QAC3C,IAAK,gBAAgB,EAAG,CAAC;YACxB,MAAM,EAAE,CAAC,KAAK,CAAE,IAAI,CAAC,OAAO,CAAE,gBAAgB,CAAE,EAAE;gBACjD,SAAS,EAAE,IAAI;aACf,CAAE,CAAC;YAEJ,IAAI,CAAC;gBACJ,YAAY,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,EAAE,CAAC,QAAQ,CAAE,gBAAgB,EAAE,OAAO,CAAE,CAC9C,CAAC;YACH,CAAC;YAAC,OAAQ,KAAK,EAAG,CAAC;gBAClB,IACC,KAAK,YAAY,KAAK;oBACpB,KAAgC,CAAC,IAAI,KAAK,QAAQ,EACnD,CAAC;oBACF,2CAA2C;gBAC5C,CAAC;qBAAM,CAAC;oBACP,MAAM,KAAK,CAAC;gBACb,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,cAAO,CAAC,UAAU,CAAE;YAChD,OAAO;YACP,YAAY,EAAE,YAAY,IAAI;gBAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,OAAO,EAAE,EAAE;aACX;SACD,CAAE,CAAC;QAEJ,MAAM,YAAY,GAAG,IAAI,IAAI,CAAE,cAAc,EAAE;YAC9C,IAAI;YACJ,YAAY;YACZ,gBAAgB;YAChB,OAAO;SACP,CAAE,CAAC;QAEJ,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,YACC,cAAiC,EACjC,EACC,IAAI,GAAG,sBAAa,EACpB,YAAY,EACZ,gBAAgB,EAChB,OAAO,GAAG,oBAAW,GACrB,GAKG,EAAE;QAEN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,mCAAmC;IACnC,KAAK,GAAiB,aAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACzC,2CAA2C;IAC3C,SAAS,GAAqB,gBAAS,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrD,6EAA6E;IAC7E,IAAI,GAAgB,WAAI,CAAC,IAAI,CAAE,IAAI,CAAiB,CAAC;IACrD,uDAAuD;IACvD,eAAe,GAA2B,sBAAe,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACvE,6EAA6E;IAC7E,SAAS,GAAqB,gBAAS,CAAC,IAAI,CAAE,IAAI,CAAsB,CAAC;IACzE,6EAA6E;IAC7E,YAAY,GAAwB,sBAAY,CAAC,IAAI,CACpD,IAAI,CACmB,CAAC;IACzB,mDAAmD;IACnD,aAAa,GAAyB,uBAAa,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACjE,qDAAqD;IACrD,cAAc,GAA0B,wBAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,yDAAyD;IACzD,gBAAgB,GAA4B,0BAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1E,mDAAmD;IACnD,aAAa,GAAyB,sBAAa,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACjE,+CAA+C;IAC/C,WAAW,GAAuB,oBAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC3D,uDAAuD;IACvD,eAAe,GAAG,wBAAe,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC/C,6CAA6C;IAC7C,UAAU,GAAsB,kBAAU,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxD,qDAAqD;IACrD,cAAc,GAA0B,sBAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,2DAA2D;IAC3D,iBAAiB,GAChB,yBAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAChC,iEAAiE;IACjE,oBAAoB,GACnB,4BAAoB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACnC,qDAAqD;IACrD,cAAc,GAA0B,sBAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,6DAA6D;IAC7D,kBAAkB,GACjB,0BAAkB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACjC,mDAAmD;IACnD,aAAa,GAAyB,wBAAa,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACjE,2DAA2D;IAC3D,iBAAiB,GAChB,4BAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAChC,yDAAyD;IACzD,gBAAgB,GAA4B,0BAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1E,qDAAqD;IACrD,cAAc,GAA0B,wBAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,6DAA6D;IAC7D,kBAAkB,GACjB,8BAAkB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACjC,qDAAqD;IACrD,cAAc,GAA0B,0BAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,yDAAyD;IACzD,gBAAgB,GAA4B,8BAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1E,qDAAqD;IACrD,cAAc,GAA0B,4BAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,2CAA2C;IAC3C,SAAS,GAAqB,iBAAS,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrD,+CAA+C;IAC/C,WAAW,GAAuB,mBAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC3D,+CAA+C;IAC/C,WAAW,GAAuB,mBAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC3D,qDAAqD;IACrD,cAAc,GAA0B,sBAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,6CAA6C;IAC7C,UAAU,GAAsB,kBAAU,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxD,qDAAqD;IACrD,cAAc,GAA0B,sBAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,uDAAuD;IACvD,eAAe,GAA2B,+BAAe,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACvE,6DAA6D;IAC7D,kBAAkB,GACjB,kCAAkB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACjC,qDAAqD;IACrD,cAAc,GAA0B,sBAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,6CAA6C;IAC7C,UAAU,GAAsB,kBAAU,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxD,2FAA2F;IAC3F,iCAAiC,GAChC,0CAAiC,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAChD,mFAAmF;IACnF,6BAA6B,GAC5B,sCAA6B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC5C,6EAA6E;IAC7E,0BAA0B,GAAG,qCAA0B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrE,uEAAuE;IACvE,uBAAuB,GACtB,+CAAuB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;CACtC;QAGQ,YAAY"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.login = login;
|
|
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
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/request-utils/login.ts"],"names":[],"mappings":";;QAiCS,KAAK;AAvBd,KAAK,UAAU,KAAK,CAAsB,IAAI,GAAS,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"}
|