at path:
ROOT
/
wp-includes
/
js
/
dist
/
api-fetch.js
run:
R
W
Run
development
DIR
2026-09-09 19:08:38
R
W
Run
script-modules
DIR
2026-09-09 19:24:58
R
W
Run
vendor
DIR
2026-09-09 19:24:59
R
W
Run
a11y.js
5.56 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
a11y.min.js
2.55 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
annotations.js
15.58 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
annotations.min.js
5.84 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
api-fetch.js
19.53 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
api-fetch.min.js
7.33 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
autop.js
9.78 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
autop.min.js
5.56 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
base-styles.js
115 By
2026-09-09 19:24:57
R
W
Run
Delete
Rename
base-styles.min.js
142 By
2026-09-09 19:24:58
R
W
Run
Delete
Rename
blob.js
2.35 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
blob.min.js
1.21 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-directory.js
372.69 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-directory.min.js
126.54 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-editor.js
3.6 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-editor.min.js
1.35 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-library.js
2.88 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-library.min.js
1.24 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-serialization-default-parser.js
6.64 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-serialization-default-parser.min.js
2.5 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
block-serialization-spec-parser.js
50.58 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
block-serialization-spec-parser.min.js
10.48 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
blocks.js
292.88 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
blocks.min.js
142.99 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
commands.js
128.65 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
commands.min.js
55.89 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
components.js
3.64 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
components.min.js
817.08 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
compose.js
83.74 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
compose.min.js
29.39 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
core-commands.js
29.11 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
core-commands.min.js
12.2 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
core-data.js
660 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
core-data.min.js
226.52 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
customize-widgets.js
111.55 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
customize-widgets.min.js
43.42 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
data-controls.js
4.2 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
data-controls.min.js
1.84 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
data.js
83.69 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
data.min.js
26.04 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
date.js
176.69 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
date.min.js
141.35 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
deprecated.js
3.11 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
deprecated.min.js
1.35 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
dom-ready.js
1.53 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
dom-ready.min.js
881 By
2026-09-09 19:24:58
R
W
Run
Delete
Rename
dom.js
35.12 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
dom.min.js
12.86 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
edit-post.js
440.78 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
edit-post.min.js
156.4 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
edit-site.js
2.2 MB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
edit-site.min.js
884.07 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
edit-widgets.js
180.29 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
edit-widgets.min.js
68.81 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
editor.js
3.78 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
editor.min.js
1.5 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
element.js
27.32 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
element.min.js
12.18 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
escape-html.js
2.36 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
escape-html.min.js
1.13 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
format-library.js
229.45 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
format-library.min.js
96.19 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
hooks.js
12.01 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
hooks.min.js
4.99 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
html-entities.js
1.71 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
html-entities.min.js
950 By
2026-09-09 19:24:58
R
W
Run
Delete
Rename
i18n.js
15.36 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
i18n.min.js
5.66 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
is-shallow-equal.js
2.77 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
is-shallow-equal.min.js
1.17 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
keyboard-shortcuts.js
10.26 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
keyboard-shortcuts.min.js
3.6 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
keycodes.js
8.36 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
keycodes.min.js
2.97 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
list-reusable-blocks.js
13.34 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
list-reusable-blocks.min.js
5.41 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
media-utils.js
1.02 MB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
media-utils.min.js
381.83 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
notices.js
9.55 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
notices.min.js
3.85 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
nux.js
4.32 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
nux.min.js
1.71 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
patterns.js
88.07 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
patterns.min.js
37.4 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
plugins.js
20.72 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
plugins.min.js
7.08 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
preferences-persistence.js
17.3 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
preferences-persistence.min.js
5.58 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
preferences.js
21.03 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
preferences.min.js
7.84 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
primitives.js
5.15 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
primitives.min.js
2.04 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
priority-queue.js
10.1 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
priority-queue.min.js
3.42 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
private-apis.js
4.42 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
private-apis.min.js
2.95 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
react-i18n.js
3.97 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
react-i18n.min.js
1.59 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
redux-routine.js
24.75 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
redux-routine.min.js
9.72 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
reusable-blocks.js
21.87 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
reusable-blocks.min.js
7.99 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
rich-text.js
104.89 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
rich-text.min.js
42.17 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
router.js
36.21 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
router.min.js
14.21 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
server-side-render.js
11.32 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
server-side-render.min.js
4.1 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
shortcode.js
8.02 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
shortcode.min.js
3.35 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
style-engine.js
18.37 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
style-engine.min.js
6.78 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
theme.js
135.48 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
theme.min.js
59.71 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
token-list.js
6.18 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
token-list.min.js
1.68 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
undo-manager.js
5.36 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
undo-manager.min.js
1.77 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
upload-media.js
115.27 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
upload-media.min.js
48.71 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
url.js
23.4 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
url.min.js
10.18 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
viewport.js
7.14 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
viewport.min.js
2.32 KB
2026-09-09 19:24:57
R
W
Run
Delete
Rename
warning.js
1.58 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
warning.min.js
816 By
2026-09-09 19:24:58
R
W
Run
Delete
Rename
widgets.js
50.14 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
widgets.min.js
20.97 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
wordcount.js
7 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
wordcount.min.js
2.51 KB
2026-09-09 19:24:58
R
W
Run
Delete
Rename
error_log
up
📄
api-fetch.js
Save
(function() { "use strict"; var wp; (wp ||= {}).apiFetch = (() => { var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // package-external:@wordpress/private-apis var require_private_apis = __commonJS({ "package-external:@wordpress/private-apis"(exports, module) { module.exports = window.wp.privateApis; } }); // package-external:@wordpress/url var require_url = __commonJS({ "package-external:@wordpress/url"(exports, module) { module.exports = window.wp.url; } }); // packages/api-fetch/build-module/index.mjs var index_exports = {}; __export(index_exports, { default: () => index_default }); var import_i18n3 = __toESM(require_i18n(), 1); // packages/api-fetch/build-module/lock-unlock.mjs var import_private_apis = __toESM(require_private_apis(), 1); var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", "@wordpress/api-fetch" ); // packages/api-fetch/build-module/middlewares/nonce.mjs function createNonceMiddleware(nonce) { const middleware = (options, next) => { const { headers = {} } = options; for (const headerName in headers) { if (headerName.toLowerCase() === "x-wp-nonce" && headers[headerName] === middleware.nonce) { return next(options); } } return next({ ...options, headers: { ...headers, "X-WP-Nonce": middleware.nonce } }); }; middleware.nonce = nonce; return middleware; } var nonce_default = createNonceMiddleware; // packages/api-fetch/build-module/middlewares/namespace-endpoint.mjs var namespaceAndEndpointMiddleware = (options, next) => { let path = options.path; let namespaceTrimmed, endpointTrimmed; if (typeof options.namespace === "string" && typeof options.endpoint === "string") { namespaceTrimmed = options.namespace.replace(/^\/|\/$/g, ""); endpointTrimmed = options.endpoint.replace(/^\//, ""); if (endpointTrimmed) { path = namespaceTrimmed + "/" + endpointTrimmed; } else { path = namespaceTrimmed; } } delete options.namespace; delete options.endpoint; return next({ ...options, path }); }; var namespace_endpoint_default = namespaceAndEndpointMiddleware; // packages/api-fetch/build-module/middlewares/root-url.mjs var createRootURLMiddleware = (rootURL) => (options, next) => { return namespace_endpoint_default(options, (optionsWithPath) => { let url = optionsWithPath.url; let path = optionsWithPath.path; let apiRoot; if (typeof path === "string") { apiRoot = rootURL; if (-1 !== rootURL.indexOf("?")) { path = path.replace("?", "&"); } path = path.replace(/^\//, ""); if ("string" === typeof apiRoot && -1 !== apiRoot.indexOf("?")) { path = path.replace("?", "&"); } url = apiRoot + path; } return next({ ...optionsWithPath, url }); }); }; var root_url_default = createRootURLMiddleware; // packages/api-fetch/build-module/middlewares/preloading.mjs var import_url = __toESM(require_url(), 1); var ENABLE_MULTI_USE = /* @__PURE__ */ Symbol("preloadingEnableMultiUse"); var CLEAR = /* @__PURE__ */ Symbol("preloadingClear"); function createPreloadingMiddleware(preloadedData) { const { OPTIONS = {}, ...GET } = Object.fromEntries( Object.entries(preloadedData).map(([path, data]) => [ (0, import_url.normalizePath)(path), data ]) ); const unusedGet = new Set(Object.keys(GET)); const unusedOptions = new Set(Object.keys(OPTIONS)); let multiUse = false; const middleware = (options, next) => { const { parse = true } = options; let rawPath = options.path; if (!rawPath && options.url) { const { rest_route: pathFromQuery, ...queryArgs } = (0, import_url.getQueryArgs)( options.url ); if (typeof pathFromQuery === "string") { rawPath = (0, import_url.addQueryArgs)(pathFromQuery, queryArgs); } } if (typeof rawPath !== "string") { return next(options); } const method = options.method || "GET"; const path = (0, import_url.normalizePath)(rawPath); if ("GET" === method && GET[path]) { const data = GET[path]; if (!multiUse) { delete GET[path]; } unusedGet.delete(path); return prepareResponse(data, !!parse); } else if ("OPTIONS" === method && OPTIONS[path]) { const data = OPTIONS[path]; if (!multiUse) { delete OPTIONS[path]; } unusedOptions.delete(path); return prepareResponse(data, !!parse); } return next(options); }; middleware[ENABLE_MULTI_USE] = () => { multiUse = true; }; middleware[CLEAR] = () => { const tags = [ ...Array.from(unusedGet, (p) => `GET ${p}`), ...Array.from(unusedOptions, (p) => `OPTIONS ${p}`) ]; if (tags.length) { console.warn( "[api-fetch][preload] Some preloads were never consumed:", tags ); } else { console.log("[api-fetch][preload] All preloads consumed."); } unusedGet.clear(); unusedOptions.clear(); for (const key of Object.keys(GET)) { delete GET[key]; } for (const key of Object.keys(OPTIONS)) { delete OPTIONS[key]; } }; return middleware; } function prepareResponse(responseData, parse) { if (parse) { return Promise.resolve(responseData.body); } try { return Promise.resolve( new window.Response(JSON.stringify(responseData.body), { status: 200, statusText: "OK", headers: responseData.headers }) ); } catch { Object.entries( responseData.headers ).forEach(([key, value]) => { if (key.toLowerCase() === "link") { responseData.headers[key] = value.replace( /<([^>]+)>/, (_, url) => `<${encodeURI(url)}>` ); } }); return Promise.resolve( parse ? responseData.body : new window.Response(JSON.stringify(responseData.body), { status: 200, statusText: "OK", headers: responseData.headers }) ); } } var preloading_default = createPreloadingMiddleware; // packages/api-fetch/build-module/middlewares/fetch-all-middleware.mjs var import_url2 = __toESM(require_url(), 1); var modifyQuery = ({ path, url, ...options }, queryArgs) => ({ ...options, url: url && (0, import_url2.addQueryArgs)(url, queryArgs), path: path && (0, import_url2.addQueryArgs)(path, queryArgs) }); var parseResponse = (response) => response.json ? response.json() : Promise.reject(response); var parseLinkHeader = (linkHeader) => { if (!linkHeader) { return {}; } const match = linkHeader.match(/<([^>]+)>; rel="next"/); return match ? { next: match[1] } : {}; }; var getNextPageUrl = (response) => { const { next } = parseLinkHeader(response.headers.get("link")); return next; }; var requestContainsUnboundedQuery = (options) => { const pathIsUnbounded = !!options.path && options.path.indexOf("per_page=-1") !== -1; const urlIsUnbounded = !!options.url && options.url.indexOf("per_page=-1") !== -1; return pathIsUnbounded || urlIsUnbounded; }; var fetchAllMiddleware = async (options, next) => { if (options.parse === false) { return next(options); } if (!requestContainsUnboundedQuery(options)) { return next(options); } const response = await index_default({ ...modifyQuery(options, { per_page: 100 }), // Ensure headers are returned for page 1. parse: false }); const results = await parseResponse(response); if (!Array.isArray(results)) { return results; } let nextPage = getNextPageUrl(response); if (!nextPage) { return results; } let mergedResults = [].concat(results); while (nextPage) { const nextResponse = await index_default({ ...options, // Ensure the URL for the next page is used instead of any provided path. path: void 0, url: nextPage, // Ensure we still get headers so we can identify the next page. parse: false }); const nextResults = await parseResponse(nextResponse); mergedResults = mergedResults.concat(nextResults); nextPage = getNextPageUrl(nextResponse); } return mergedResults; }; var fetch_all_middleware_default = fetchAllMiddleware; // packages/api-fetch/build-module/middlewares/http-v1.mjs var OVERRIDE_METHODS = /* @__PURE__ */ new Set(["PATCH", "PUT", "DELETE"]); var DEFAULT_METHOD = "GET"; var httpV1Middleware = (options, next) => { const { method = DEFAULT_METHOD } = options; if (OVERRIDE_METHODS.has(method.toUpperCase())) { options = { ...options, headers: { "Content-Type": "application/json", ...options.headers, "X-HTTP-Method-Override": method }, method: "POST" }; } return next(options); }; var http_v1_default = httpV1Middleware; // packages/api-fetch/build-module/middlewares/user-locale.mjs var import_url3 = __toESM(require_url(), 1); var userLocaleMiddleware = (options, next) => { if (typeof options.url === "string" && !(0, import_url3.hasQueryArg)(options.url, "_locale")) { options.url = (0, import_url3.addQueryArgs)(options.url, { _locale: "user" }); } if (typeof options.path === "string" && !(0, import_url3.hasQueryArg)(options.path, "_locale")) { options.path = (0, import_url3.addQueryArgs)(options.path, { _locale: "user" }); } return next(options); }; var user_locale_default = userLocaleMiddleware; // packages/api-fetch/build-module/middlewares/media-upload.mjs var import_i18n2 = __toESM(require_i18n(), 1); // packages/api-fetch/build-module/utils/response.mjs var import_i18n = __toESM(require_i18n(), 1); async function parseJsonAndNormalizeError(response) { try { return await response.json(); } catch { throw { code: "invalid_json", message: (0, import_i18n.__)("The response is not a valid JSON response.") }; } } async function parseResponseAndNormalizeError(response, shouldParseResponse = true) { if (!shouldParseResponse) { return response; } if (response.status === 204) { return null; } return await parseJsonAndNormalizeError(response); } async function parseAndThrowError(response, shouldParseResponse = true) { if (!shouldParseResponse) { throw response; } throw await parseJsonAndNormalizeError(response); } // packages/api-fetch/build-module/middlewares/media-upload.mjs function isMediaUploadRequest(options) { const isCreateMethod = !!options.method && options.method === "POST"; const isMediaEndpoint = !!options.path && options.path.indexOf("/wp/v2/media") !== -1 || !!options.url && options.url.indexOf("/wp/v2/media") !== -1; return isMediaEndpoint && isCreateMethod; } var mediaUploadMiddleware = (options, next) => { if (!isMediaUploadRequest(options)) { return next(options); } let retries = 0; const maxRetries = 5; const postProcess = (attachmentId) => { retries++; return next({ path: `/wp/v2/media/${attachmentId}/post-process`, method: "POST", data: { action: "create-image-subsizes" }, parse: false }).catch(() => { if (retries < maxRetries) { return postProcess(attachmentId); } next({ path: `/wp/v2/media/${attachmentId}?force=true`, method: "DELETE" }); return Promise.reject(); }); }; return next({ ...options, parse: false }).catch((response) => { if (!(response instanceof globalThis.Response)) { return Promise.reject(response); } const attachmentId = response.headers.get( "x-wp-upload-attachment-id" ); if (response.status >= 500 && response.status < 600 && attachmentId) { return postProcess(attachmentId).catch(() => { if (options.parse !== false) { return Promise.reject({ code: "post_process", message: (0, import_i18n2.__)( "Media upload failed. If this is a photo or a large image, please scale it down and try again." ) }); } return Promise.reject(response); }); } return parseAndThrowError(response, options.parse); }).then( (response) => parseResponseAndNormalizeError(response, options.parse) ); }; var media_upload_default = mediaUploadMiddleware; // packages/api-fetch/build-module/middlewares/theme-preview.mjs var import_url4 = __toESM(require_url(), 1); var createThemePreviewMiddleware = (themePath) => (options, next) => { if (typeof options.url === "string") { const wpThemePreview = (0, import_url4.getQueryArg)( options.url, "wp_theme_preview" ); if (wpThemePreview === void 0) { options.url = (0, import_url4.addQueryArgs)(options.url, { wp_theme_preview: themePath }); } else if (wpThemePreview === "") { options.url = (0, import_url4.removeQueryArgs)( options.url, "wp_theme_preview" ); } } if (typeof options.path === "string") { const wpThemePreview = (0, import_url4.getQueryArg)( options.path, "wp_theme_preview" ); if (wpThemePreview === void 0) { options.path = (0, import_url4.addQueryArgs)(options.path, { wp_theme_preview: themePath }); } else if (wpThemePreview === "") { options.path = (0, import_url4.removeQueryArgs)( options.path, "wp_theme_preview" ); } } return next(options); }; var theme_preview_default = createThemePreviewMiddleware; // packages/api-fetch/build-module/index.mjs var DEFAULT_HEADERS = { // The backend uses the Accept header as a condition for considering an // incoming request as a REST request. // // See: https://core.trac.wordpress.org/ticket/44534 Accept: "application/json, */*;q=0.1" }; var DEFAULT_OPTIONS = { credentials: "include" }; var middlewares = [ user_locale_default, namespace_endpoint_default, http_v1_default, fetch_all_middleware_default ]; function registerMiddleware(middleware) { middlewares.unshift(middleware); } function enablePreloadMultiUse() { for (const middleware of middlewares) { middleware[ENABLE_MULTI_USE]?.(); } } function clearPreloadedData() { for (const middleware of middlewares) { middleware[CLEAR]?.(); } } var defaultFetchHandler = (nextOptions) => { const { url, path, data, parse = true, ...remainingOptions } = nextOptions; let { body, headers } = nextOptions; headers = { ...DEFAULT_HEADERS, ...headers }; if (data) { body = JSON.stringify(data); headers["Content-Type"] = "application/json"; } const responsePromise = globalThis.fetch( // Fall back to explicitly passing `window.location` which is the behavior if `undefined` is passed. url || path || window.location.href, { ...DEFAULT_OPTIONS, ...remainingOptions, body, headers } ); return responsePromise.then( (response) => { if (!response.ok) { return parseAndThrowError(response, parse); } return parseResponseAndNormalizeError(response, parse); }, (err) => { if (err && err.name === "AbortError") { throw err; } if (!globalThis.navigator.onLine) { throw { code: "offline_error", message: (0, import_i18n3.__)( "Unable to connect. Please check your Internet connection." ) }; } throw { code: "fetch_error", message: (0, import_i18n3.__)( "Could not get a valid response from the server." ) }; } ); }; var fetchHandler = defaultFetchHandler; function setFetchHandler(newFetchHandler) { fetchHandler = newFetchHandler; } var apiFetch = (options) => { const enhancedHandler = middlewares.reduceRight( (next, middleware) => { return (workingOptions) => middleware(workingOptions, next); }, fetchHandler ); return enhancedHandler(options).catch((error) => { if (error.code !== "rest_cookie_invalid_nonce") { return Promise.reject(error); } return globalThis.fetch(apiFetch.nonceEndpoint).then((response) => { if (!response.ok) { return Promise.reject(error); } return response.text(); }).then((text) => { apiFetch.nonceMiddleware.nonce = text; return apiFetch(options); }); }); }; apiFetch.use = registerMiddleware; apiFetch.setFetchHandler = setFetchHandler; apiFetch.privateApis = {}; lock(apiFetch.privateApis, { enablePreloadMultiUse, clearPreloadedData }); apiFetch.createNonceMiddleware = nonce_default; apiFetch.createPreloadingMiddleware = preloading_default; apiFetch.createRootURLMiddleware = root_url_default; apiFetch.fetchAllMiddleware = fetch_all_middleware_default; apiFetch.mediaUploadMiddleware = media_upload_default; apiFetch.createThemePreviewMiddleware = theme_preview_default; var index_default = apiFetch; return __toCommonJS(index_exports); })(); if (typeof wp.apiFetch === 'object' && wp.apiFetch.default) { wp.apiFetch = wp.apiFetch.default; } (window.wp ||= {}).apiFetch = wp.apiFetch; })();