@wordpress/core-data 5.0.1-next.957ca95e4c.0 → 5.0.1

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/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- ## 5.0.0-next.0 (2022-08-29)
5
+ ## 5.0.0 (2022-09-13)
6
6
 
7
7
  ### Breaking Changes
8
8
 
@@ -293,39 +293,50 @@ const getEmbedPreview = url => async _ref6 => {
293
293
  * Checks whether the current user can perform the given action on the given
294
294
  * REST resource.
295
295
  *
296
- * @param {string} action Action to check. One of: 'create', 'read', 'update',
297
- * 'delete'.
298
- * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.
299
- * @param {?string} id ID of the rest resource to check.
296
+ * @param {string} requestedAction Action to check. One of: 'create', 'read', 'update',
297
+ * 'delete'.
298
+ * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.
299
+ * @param {?string} id ID of the rest resource to check.
300
300
  */
301
301
 
302
302
 
303
303
  exports.getEmbedPreview = getEmbedPreview;
304
304
 
305
- const canUser = (action, resource, id) => async _ref7 => {
306
- var _response$headers, _allowHeader$includes;
305
+ const canUser = (requestedAction, resource, id) => async _ref7 => {
306
+ var _response$headers;
307
307
 
308
308
  let {
309
- dispatch
309
+ dispatch,
310
+ registry
310
311
  } = _ref7;
311
- const methods = {
312
- create: 'POST',
313
- read: 'GET',
314
- update: 'PUT',
315
- delete: 'DELETE'
316
- };
317
- const method = methods[action];
312
+ const {
313
+ hasStartedResolution
314
+ } = registry.select(_name.STORE_NAME);
315
+ const resourcePath = id ? `${resource}/${id}` : resource;
316
+ const retrievedActions = ['create', 'read', 'update', 'delete'];
317
+
318
+ if (!retrievedActions.includes(requestedAction)) {
319
+ throw new Error(`'${requestedAction}' is not a valid action.`);
320
+ } // Prevent resolving the same resource twice.
321
+
322
+
323
+ for (const relatedAction of retrievedActions) {
324
+ if (relatedAction === requestedAction) {
325
+ continue;
326
+ }
318
327
 
319
- if (!method) {
320
- throw new Error(`'${action}' is not a valid action.`);
328
+ const isAlreadyResolving = hasStartedResolution('canUser', [relatedAction, resource, id]);
329
+
330
+ if (isAlreadyResolving) {
331
+ return;
332
+ }
321
333
  }
322
334
 
323
- const path = id ? `/wp/v2/${resource}/${id}` : `/wp/v2/${resource}`;
324
335
  let response;
325
336
 
326
337
  try {
327
338
  response = await (0, _apiFetch.default)({
328
- path,
339
+ path: `/wp/v2/${resourcePath}`,
329
340
  method: 'OPTIONS',
330
341
  parse: false
331
342
  });
@@ -339,9 +350,22 @@ const canUser = (action, resource, id) => async _ref7 => {
339
350
 
340
351
 
341
352
  const allowHeader = (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.get('allow');
342
- const key = [action, resource, id].filter(Boolean).join('/');
343
- const isAllowed = (allowHeader === null || allowHeader === void 0 ? void 0 : (_allowHeader$includes = allowHeader.includes) === null || _allowHeader$includes === void 0 ? void 0 : _allowHeader$includes.call(allowHeader, method)) || (allowHeader === null || allowHeader === void 0 ? void 0 : allowHeader.allow) === method;
344
- dispatch.receiveUserPermission(key, isAllowed);
353
+ const allowedMethods = (allowHeader === null || allowHeader === void 0 ? void 0 : allowHeader.allow) || allowHeader || '';
354
+ const permissions = {};
355
+ const methods = {
356
+ create: 'POST',
357
+ read: 'GET',
358
+ update: 'PUT',
359
+ delete: 'DELETE'
360
+ };
361
+
362
+ for (const [actionName, methodName] of Object.entries(methods)) {
363
+ permissions[actionName] = allowedMethods.includes(methodName);
364
+ }
365
+
366
+ for (const action of retrievedActions) {
367
+ dispatch.receiveUserPermission(`${action}/${resourcePath}`, permissions[action]);
368
+ }
345
369
  };
346
370
  /**
347
371
  * Checks whether the current user can perform the given action on the given
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/resolvers.js"],"names":["getAuthors","query","dispatch","path","users","receiveUserQuery","getCurrentUser","currentUser","receiveCurrentUser","getEntityRecord","kind","name","key","select","configs","entityConfig","find","config","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","undefined","_fields","Set","DEFAULT_ENTITY_KEY","join","baseURL","baseURLParams","include","hasRecords","hasEntityRecords","record","receiveEntityRecords","__unstableReleaseStoreLock","getRawEntityRecord","getEditedEntityRecord","getEntityRecords","records","Object","values","map","split","forEach","field","hasOwnProperty","context","resolutionsArgs","filter","type","selectorName","args","shouldInvalidate","action","invalidateCache","getCurrentTheme","resolveSelect","activeThemes","status","receiveCurrentTheme","getThemeSupports","getEmbedPreview","url","embedProxyResponse","receiveEmbedPreview","error","canUser","resource","id","methods","create","read","update","delete","method","Error","response","parse","allowHeader","headers","get","Boolean","isAllowed","includes","allow","receiveUserPermission","canUserEditEntityRecord","recordId","__unstable_rest_base","getAutosaves","postType","postId","rest_base","restBase","rest_namespace","restNamespace","getPostType","autosaves","length","receiveAutosaves","getAutosave","__experimentalGetTemplateForLink","link","template","window","fetch","then","res","json","data","e","__experimentalGetCurrentGlobalStylesId","globalStylesURL","_links","href","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getBlockPatterns","restPatterns","patterns","pattern","fromEntries","entries","value","getBlockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from './name';\nimport { getOrLoadEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\nimport { forwardResolver, getNormalizedCommaSeparable } from './utils';\n\n/**\n * Requests authors from the REST API.\n *\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request.\n */\nexport const getAuthors =\n\t( query ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst path = addQueryArgs(\n\t\t\t'/wp/v2/users/?who=authors&per_page=100',\n\t\t\tquery\n\t\t);\n\t\tconst users = await apiFetch( { path } );\n\t\tdispatch.receiveUserQuery( path, users );\n\t};\n\n/**\n * Requests the current user from the REST API.\n */\nexport const getCurrentUser =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst currentUser = await apiFetch( { path: '/wp/v2/users/me' } );\n\t\tdispatch.receiveCurrentUser( currentUser );\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {number|string} key Record's key\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request. If requesting specific\n * fields, fields must always include the ID.\n */\nexport const getEntityRecord =\n\t( kind, name, key = '', query ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, key ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query !== undefined && query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Disable reason: While true that an early return could leave `path`\n\t\t\t// unused, it's important that path is derived using the query prior to\n\t\t\t// additional query modifications in the condition below, since those\n\t\t\t// modifications are relevant to how the data is tracked in state, and not\n\t\t\t// for how the request is made to the REST API.\n\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst path = addQueryArgs(\n\t\t\t\tentityConfig.baseURL + ( key ? '/' + key : '' ),\n\t\t\t\t{\n\t\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t\t...query,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( query !== undefined ) {\n\t\t\t\tquery = { ...query, include: [ key ] };\n\n\t\t\t\t// The resolution cache won't consider query as reusable based on the\n\t\t\t\t// fields, so it's tested here, prior to initiating the REST request,\n\t\t\t\t// and without causing `getEntityRecords` resolution to occur.\n\t\t\t\tconst hasRecords = select.hasEntityRecords( kind, name, query );\n\t\t\t\tif ( hasRecords ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst record = await apiFetch( { path } );\n\t\t\tdispatch.receiveEntityRecords( kind, name, record, query );\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getRawEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getEditedEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests the entity's records from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {Object?} query Query Object. If requesting specific fields, fields\n * must always include the ID.\n */\nexport const getEntityRecords =\n\t( kind, name, query = {} ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst path = addQueryArgs( entityConfig.baseURL, {\n\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t...query,\n\t\t\t} );\n\n\t\t\tlet records = Object.values( await apiFetch( { path } ) );\n\t\t\t// If we request fields but the result doesn't contain the fields,\n\t\t\t// explicitely set these fields as \"undefined\"\n\t\t\t// that way we consider the query \"fullfilled\".\n\t\t\tif ( query._fields ) {\n\t\t\t\trecords = records.map( ( record ) => {\n\t\t\t\t\tquery._fields.split( ',' ).forEach( ( field ) => {\n\t\t\t\t\t\tif ( ! record.hasOwnProperty( field ) ) {\n\t\t\t\t\t\t\trecord[ field ] = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn record;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tdispatch.receiveEntityRecords( kind, name, records, query );\n\n\t\t\t// When requesting all fields, the list of results can be used to\n\t\t\t// resolve the `getEntityRecord` selector in addition to `getEntityRecords`.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/26575\n\t\t\tif ( ! query?._fields && ! query.context ) {\n\t\t\t\tconst key = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\t\t\tconst resolutionsArgs = records\n\t\t\t\t\t.filter( ( record ) => record[ key ] )\n\t\t\t\t\t.map( ( record ) => [ kind, name, record[ key ] ] );\n\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'START_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'FINISH_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\ngetEntityRecords.shouldInvalidate = ( action, kind, name ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\tkind === action.kind &&\n\t\tname === action.name\n\t);\n};\n\n/**\n * Requests the current theme.\n */\nexport const getCurrentTheme =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\n\t\tdispatch.receiveCurrentTheme( activeThemes[ 0 ] );\n\t};\n\n/**\n * Requests theme supports data from the index.\n */\nexport const getThemeSupports = forwardResolver( 'getCurrentTheme' );\n\n/**\n * Requests a preview from the from the Embed API.\n *\n * @param {string} url URL to get the preview for.\n */\nexport const getEmbedPreview =\n\t( url ) =>\n\tasync ( { dispatch } ) => {\n\t\ttry {\n\t\t\tconst embedProxyResponse = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/oembed/1.0/proxy', { url } ),\n\t\t\t} );\n\t\t\tdispatch.receiveEmbedPreview( url, embedProxyResponse );\n\t\t} catch ( error ) {\n\t\t\t// Embed API 404s if the URL cannot be embedded, so we have to catch the error from the apiRequest here.\n\t\t\tdispatch.receiveEmbedPreview( url, false );\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} action Action to check. One of: 'create', 'read', 'update',\n * 'delete'.\n * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.\n * @param {?string} id ID of the rest resource to check.\n */\nexport const canUser =\n\t( action, resource, id ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst methods = {\n\t\t\tcreate: 'POST',\n\t\t\tread: 'GET',\n\t\t\tupdate: 'PUT',\n\t\t\tdelete: 'DELETE',\n\t\t};\n\n\t\tconst method = methods[ action ];\n\t\tif ( ! method ) {\n\t\t\tthrow new Error( `'${ action }' is not a valid action.` );\n\t\t}\n\n\t\tconst path = id\n\t\t\t? `/wp/v2/${ resource }/${ id }`\n\t\t\t: `/wp/v2/${ resource }`;\n\n\t\tlet response;\n\t\ttry {\n\t\t\tresponse = await apiFetch( {\n\t\t\t\tpath,\n\t\t\t\tmethod: 'OPTIONS',\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Do nothing if our OPTIONS request comes back with an API error (4xx or\n\t\t\t// 5xx). The previously determined isAllowed value will remain in the store.\n\t\t\treturn;\n\t\t}\n\n\t\t// Optional chaining operator is used here because the API requests don't\n\t\t// return the expected result in the native version. Instead, API requests\n\t\t// only return the result, without including response properties like the headers.\n\t\tconst allowHeader = response.headers?.get( 'allow' );\n\t\tconst key = [ action, resource, id ].filter( Boolean ).join( '/' );\n\t\tconst isAllowed =\n\t\t\tallowHeader?.includes?.( method ) || allowHeader?.allow === method;\n\t\tdispatch.receiveUserPermission( key, isAllowed );\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport const canUserEditEntityRecord =\n\t( kind, name, recordId ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resource = entityConfig.__unstable_rest_base;\n\t\tawait dispatch( canUser( 'update', resource, recordId ) );\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosaves =\n\t( postType, postId ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst { rest_base: restBase, rest_namespace: restNamespace = 'wp/v2' } =\n\t\t\tawait resolveSelect.getPostType( postType );\n\t\tconst autosaves = await apiFetch( {\n\t\t\tpath: `/${ restNamespace }/${ restBase }/${ postId }/autosaves?context=edit`,\n\t\t} );\n\n\t\tif ( autosaves && autosaves.length ) {\n\t\t\tdispatch.receiveAutosaves( postId, autosaves );\n\t\t}\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * This resolver exists to ensure the underlying autosaves are fetched via\n * `getAutosaves` when a call to the `getAutosave` selector is made.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosave =\n\t( postType, postId ) =>\n\tasync ( { resolveSelect } ) => {\n\t\tawait resolveSelect.getAutosaves( postType, postId );\n\t};\n\n/**\n * Retrieve the frontend template used for a given link.\n *\n * @param {string} link Link.\n */\nexport const __experimentalGetTemplateForLink =\n\t( link ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\t// Ideally this should be using an apiFetch call\n\t\t// We could potentially do so by adding a \"filter\" to the `wp_template` end point.\n\t\t// Also it seems the returned object is not a regular REST API post type.\n\t\tlet template;\n\t\ttry {\n\t\t\ttemplate = await window\n\t\t\t\t.fetch( addQueryArgs( link, { '_wp-find-template': true } ) )\n\t\t\t\t.then( ( res ) => res.json() )\n\t\t\t\t.then( ( { data } ) => data );\n\t\t} catch ( e ) {\n\t\t\t// For non-FSE themes, it is possible that this request returns an error.\n\t\t}\n\n\t\tif ( ! template ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst record = await resolveSelect.getEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\n\t\tif ( record ) {\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t[ record ],\n\t\t\t\t{\n\t\t\t\t\t'find-template': link,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n__experimentalGetTemplateForLink.shouldInvalidate = ( action ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\taction.kind === 'postType' &&\n\t\taction.name === 'wp_template'\n\t);\n};\n\nexport const __experimentalGetCurrentGlobalStylesId =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\t\tconst globalStylesURL =\n\t\t\tactiveThemes?.[ 0 ]?._links?.[ 'wp:user-global-styles' ]?.[ 0 ]\n\t\t\t\t?.href;\n\t\tif ( globalStylesURL ) {\n\t\t\tconst globalStylesObject = await apiFetch( {\n\t\t\t\turl: globalStylesURL,\n\t\t\t} );\n\t\t\tdispatch.__experimentalReceiveCurrentGlobalStylesId(\n\t\t\t\tglobalStylesObject.id\n\t\t\t);\n\t\t}\n\t};\n\nexport const __experimentalGetCurrentThemeBaseGlobalStyles =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst themeGlobalStyles = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeBaseGlobalStyles(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tthemeGlobalStyles\n\t\t);\n\t};\n\nexport const __experimentalGetCurrentThemeGlobalStylesVariations =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst variations = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }/variations`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeGlobalStyleVariations(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tvariations\n\t\t);\n\t};\n\nexport const getBlockPatterns =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst restPatterns = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/patterns',\n\t\t} );\n\t\tconst patterns = restPatterns?.map( ( pattern ) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( pattern ).map( ( [ key, value ] ) => [\n\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\tvalue,\n\t\t\t\t] )\n\t\t\t)\n\t\t);\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERNS', patterns } );\n\t};\n\nexport const getBlockPatternCategories =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst categories = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/categories',\n\t\t} );\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERN_CATEGORIES', categories } );\n\t};\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/resolvers.js"],"names":["getAuthors","query","dispatch","path","users","receiveUserQuery","getCurrentUser","currentUser","receiveCurrentUser","getEntityRecord","kind","name","key","select","configs","entityConfig","find","config","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","undefined","_fields","Set","DEFAULT_ENTITY_KEY","join","baseURL","baseURLParams","include","hasRecords","hasEntityRecords","record","receiveEntityRecords","__unstableReleaseStoreLock","getRawEntityRecord","getEditedEntityRecord","getEntityRecords","records","Object","values","map","split","forEach","field","hasOwnProperty","context","resolutionsArgs","filter","type","selectorName","args","shouldInvalidate","action","invalidateCache","getCurrentTheme","resolveSelect","activeThemes","status","receiveCurrentTheme","getThemeSupports","getEmbedPreview","url","embedProxyResponse","receiveEmbedPreview","error","canUser","requestedAction","resource","id","registry","hasStartedResolution","resourcePath","retrievedActions","includes","Error","relatedAction","isAlreadyResolving","response","method","parse","allowHeader","headers","get","allowedMethods","allow","permissions","methods","create","read","update","delete","actionName","methodName","entries","receiveUserPermission","canUserEditEntityRecord","recordId","__unstable_rest_base","getAutosaves","postType","postId","rest_base","restBase","rest_namespace","restNamespace","getPostType","autosaves","length","receiveAutosaves","getAutosave","__experimentalGetTemplateForLink","link","template","window","fetch","then","res","json","data","e","__experimentalGetCurrentGlobalStylesId","globalStylesURL","_links","href","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getBlockPatterns","restPatterns","patterns","pattern","fromEntries","value","getBlockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from './name';\nimport { getOrLoadEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\nimport { forwardResolver, getNormalizedCommaSeparable } from './utils';\n\n/**\n * Requests authors from the REST API.\n *\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request.\n */\nexport const getAuthors =\n\t( query ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst path = addQueryArgs(\n\t\t\t'/wp/v2/users/?who=authors&per_page=100',\n\t\t\tquery\n\t\t);\n\t\tconst users = await apiFetch( { path } );\n\t\tdispatch.receiveUserQuery( path, users );\n\t};\n\n/**\n * Requests the current user from the REST API.\n */\nexport const getCurrentUser =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst currentUser = await apiFetch( { path: '/wp/v2/users/me' } );\n\t\tdispatch.receiveCurrentUser( currentUser );\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {number|string} key Record's key\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request. If requesting specific\n * fields, fields must always include the ID.\n */\nexport const getEntityRecord =\n\t( kind, name, key = '', query ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, key ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query !== undefined && query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Disable reason: While true that an early return could leave `path`\n\t\t\t// unused, it's important that path is derived using the query prior to\n\t\t\t// additional query modifications in the condition below, since those\n\t\t\t// modifications are relevant to how the data is tracked in state, and not\n\t\t\t// for how the request is made to the REST API.\n\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst path = addQueryArgs(\n\t\t\t\tentityConfig.baseURL + ( key ? '/' + key : '' ),\n\t\t\t\t{\n\t\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t\t...query,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( query !== undefined ) {\n\t\t\t\tquery = { ...query, include: [ key ] };\n\n\t\t\t\t// The resolution cache won't consider query as reusable based on the\n\t\t\t\t// fields, so it's tested here, prior to initiating the REST request,\n\t\t\t\t// and without causing `getEntityRecords` resolution to occur.\n\t\t\t\tconst hasRecords = select.hasEntityRecords( kind, name, query );\n\t\t\t\tif ( hasRecords ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst record = await apiFetch( { path } );\n\t\t\tdispatch.receiveEntityRecords( kind, name, record, query );\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getRawEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getEditedEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests the entity's records from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {Object?} query Query Object. If requesting specific fields, fields\n * must always include the ID.\n */\nexport const getEntityRecords =\n\t( kind, name, query = {} ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst path = addQueryArgs( entityConfig.baseURL, {\n\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t...query,\n\t\t\t} );\n\n\t\t\tlet records = Object.values( await apiFetch( { path } ) );\n\t\t\t// If we request fields but the result doesn't contain the fields,\n\t\t\t// explicitely set these fields as \"undefined\"\n\t\t\t// that way we consider the query \"fullfilled\".\n\t\t\tif ( query._fields ) {\n\t\t\t\trecords = records.map( ( record ) => {\n\t\t\t\t\tquery._fields.split( ',' ).forEach( ( field ) => {\n\t\t\t\t\t\tif ( ! record.hasOwnProperty( field ) ) {\n\t\t\t\t\t\t\trecord[ field ] = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn record;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tdispatch.receiveEntityRecords( kind, name, records, query );\n\n\t\t\t// When requesting all fields, the list of results can be used to\n\t\t\t// resolve the `getEntityRecord` selector in addition to `getEntityRecords`.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/26575\n\t\t\tif ( ! query?._fields && ! query.context ) {\n\t\t\t\tconst key = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\t\t\tconst resolutionsArgs = records\n\t\t\t\t\t.filter( ( record ) => record[ key ] )\n\t\t\t\t\t.map( ( record ) => [ kind, name, record[ key ] ] );\n\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'START_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'FINISH_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\ngetEntityRecords.shouldInvalidate = ( action, kind, name ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\tkind === action.kind &&\n\t\tname === action.name\n\t);\n};\n\n/**\n * Requests the current theme.\n */\nexport const getCurrentTheme =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\n\t\tdispatch.receiveCurrentTheme( activeThemes[ 0 ] );\n\t};\n\n/**\n * Requests theme supports data from the index.\n */\nexport const getThemeSupports = forwardResolver( 'getCurrentTheme' );\n\n/**\n * Requests a preview from the from the Embed API.\n *\n * @param {string} url URL to get the preview for.\n */\nexport const getEmbedPreview =\n\t( url ) =>\n\tasync ( { dispatch } ) => {\n\t\ttry {\n\t\t\tconst embedProxyResponse = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/oembed/1.0/proxy', { url } ),\n\t\t\t} );\n\t\t\tdispatch.receiveEmbedPreview( url, embedProxyResponse );\n\t\t} catch ( error ) {\n\t\t\t// Embed API 404s if the URL cannot be embedded, so we have to catch the error from the apiRequest here.\n\t\t\tdispatch.receiveEmbedPreview( url, false );\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} requestedAction Action to check. One of: 'create', 'read', 'update',\n * 'delete'.\n * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.\n * @param {?string} id ID of the rest resource to check.\n */\nexport const canUser =\n\t( requestedAction, resource, id ) =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst { hasStartedResolution } = registry.select( STORE_NAME );\n\n\t\tconst resourcePath = id ? `${ resource }/${ id }` : resource;\n\t\tconst retrievedActions = [ 'create', 'read', 'update', 'delete' ];\n\n\t\tif ( ! retrievedActions.includes( requestedAction ) ) {\n\t\t\tthrow new Error( `'${ requestedAction }' is not a valid action.` );\n\t\t}\n\n\t\t// Prevent resolving the same resource twice.\n\t\tfor ( const relatedAction of retrievedActions ) {\n\t\t\tif ( relatedAction === requestedAction ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst isAlreadyResolving = hasStartedResolution( 'canUser', [\n\t\t\t\trelatedAction,\n\t\t\t\tresource,\n\t\t\t\tid,\n\t\t\t] );\n\t\t\tif ( isAlreadyResolving ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet response;\n\t\ttry {\n\t\t\tresponse = await apiFetch( {\n\t\t\t\tpath: `/wp/v2/${ resourcePath }`,\n\t\t\t\tmethod: 'OPTIONS',\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Do nothing if our OPTIONS request comes back with an API error (4xx or\n\t\t\t// 5xx). The previously determined isAllowed value will remain in the store.\n\t\t\treturn;\n\t\t}\n\n\t\t// Optional chaining operator is used here because the API requests don't\n\t\t// return the expected result in the native version. Instead, API requests\n\t\t// only return the result, without including response properties like the headers.\n\t\tconst allowHeader = response.headers?.get( 'allow' );\n\t\tconst allowedMethods = allowHeader?.allow || allowHeader || '';\n\n\t\tconst permissions = {};\n\t\tconst methods = {\n\t\t\tcreate: 'POST',\n\t\t\tread: 'GET',\n\t\t\tupdate: 'PUT',\n\t\t\tdelete: 'DELETE',\n\t\t};\n\t\tfor ( const [ actionName, methodName ] of Object.entries( methods ) ) {\n\t\t\tpermissions[ actionName ] = allowedMethods.includes( methodName );\n\t\t}\n\n\t\tfor ( const action of retrievedActions ) {\n\t\t\tdispatch.receiveUserPermission(\n\t\t\t\t`${ action }/${ resourcePath }`,\n\t\t\t\tpermissions[ action ]\n\t\t\t);\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport const canUserEditEntityRecord =\n\t( kind, name, recordId ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resource = entityConfig.__unstable_rest_base;\n\t\tawait dispatch( canUser( 'update', resource, recordId ) );\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosaves =\n\t( postType, postId ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst { rest_base: restBase, rest_namespace: restNamespace = 'wp/v2' } =\n\t\t\tawait resolveSelect.getPostType( postType );\n\t\tconst autosaves = await apiFetch( {\n\t\t\tpath: `/${ restNamespace }/${ restBase }/${ postId }/autosaves?context=edit`,\n\t\t} );\n\n\t\tif ( autosaves && autosaves.length ) {\n\t\t\tdispatch.receiveAutosaves( postId, autosaves );\n\t\t}\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * This resolver exists to ensure the underlying autosaves are fetched via\n * `getAutosaves` when a call to the `getAutosave` selector is made.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosave =\n\t( postType, postId ) =>\n\tasync ( { resolveSelect } ) => {\n\t\tawait resolveSelect.getAutosaves( postType, postId );\n\t};\n\n/**\n * Retrieve the frontend template used for a given link.\n *\n * @param {string} link Link.\n */\nexport const __experimentalGetTemplateForLink =\n\t( link ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\t// Ideally this should be using an apiFetch call\n\t\t// We could potentially do so by adding a \"filter\" to the `wp_template` end point.\n\t\t// Also it seems the returned object is not a regular REST API post type.\n\t\tlet template;\n\t\ttry {\n\t\t\ttemplate = await window\n\t\t\t\t.fetch( addQueryArgs( link, { '_wp-find-template': true } ) )\n\t\t\t\t.then( ( res ) => res.json() )\n\t\t\t\t.then( ( { data } ) => data );\n\t\t} catch ( e ) {\n\t\t\t// For non-FSE themes, it is possible that this request returns an error.\n\t\t}\n\n\t\tif ( ! template ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst record = await resolveSelect.getEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\n\t\tif ( record ) {\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t[ record ],\n\t\t\t\t{\n\t\t\t\t\t'find-template': link,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n__experimentalGetTemplateForLink.shouldInvalidate = ( action ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\taction.kind === 'postType' &&\n\t\taction.name === 'wp_template'\n\t);\n};\n\nexport const __experimentalGetCurrentGlobalStylesId =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\t\tconst globalStylesURL =\n\t\t\tactiveThemes?.[ 0 ]?._links?.[ 'wp:user-global-styles' ]?.[ 0 ]\n\t\t\t\t?.href;\n\t\tif ( globalStylesURL ) {\n\t\t\tconst globalStylesObject = await apiFetch( {\n\t\t\t\turl: globalStylesURL,\n\t\t\t} );\n\t\t\tdispatch.__experimentalReceiveCurrentGlobalStylesId(\n\t\t\t\tglobalStylesObject.id\n\t\t\t);\n\t\t}\n\t};\n\nexport const __experimentalGetCurrentThemeBaseGlobalStyles =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst themeGlobalStyles = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeBaseGlobalStyles(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tthemeGlobalStyles\n\t\t);\n\t};\n\nexport const __experimentalGetCurrentThemeGlobalStylesVariations =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst variations = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }/variations`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeGlobalStyleVariations(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tvariations\n\t\t);\n\t};\n\nexport const getBlockPatterns =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst restPatterns = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/patterns',\n\t\t} );\n\t\tconst patterns = restPatterns?.map( ( pattern ) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( pattern ).map( ( [ key, value ] ) => [\n\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\tvalue,\n\t\t\t\t] )\n\t\t\t)\n\t\t);\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERNS', patterns } );\n\t};\n\nexport const getBlockPatternCategories =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst categories = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/categories',\n\t\t} );\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERN_CATEGORIES', categories } );\n\t};\n"]}
@@ -261,36 +261,47 @@ export const getEmbedPreview = url => async _ref6 => {
261
261
  * Checks whether the current user can perform the given action on the given
262
262
  * REST resource.
263
263
  *
264
- * @param {string} action Action to check. One of: 'create', 'read', 'update',
265
- * 'delete'.
266
- * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.
267
- * @param {?string} id ID of the rest resource to check.
264
+ * @param {string} requestedAction Action to check. One of: 'create', 'read', 'update',
265
+ * 'delete'.
266
+ * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.
267
+ * @param {?string} id ID of the rest resource to check.
268
268
  */
269
269
 
270
- export const canUser = (action, resource, id) => async _ref7 => {
271
- var _response$headers, _allowHeader$includes;
270
+ export const canUser = (requestedAction, resource, id) => async _ref7 => {
271
+ var _response$headers;
272
272
 
273
273
  let {
274
- dispatch
274
+ dispatch,
275
+ registry
275
276
  } = _ref7;
276
- const methods = {
277
- create: 'POST',
278
- read: 'GET',
279
- update: 'PUT',
280
- delete: 'DELETE'
281
- };
282
- const method = methods[action];
277
+ const {
278
+ hasStartedResolution
279
+ } = registry.select(STORE_NAME);
280
+ const resourcePath = id ? `${resource}/${id}` : resource;
281
+ const retrievedActions = ['create', 'read', 'update', 'delete'];
282
+
283
+ if (!retrievedActions.includes(requestedAction)) {
284
+ throw new Error(`'${requestedAction}' is not a valid action.`);
285
+ } // Prevent resolving the same resource twice.
286
+
287
+
288
+ for (const relatedAction of retrievedActions) {
289
+ if (relatedAction === requestedAction) {
290
+ continue;
291
+ }
283
292
 
284
- if (!method) {
285
- throw new Error(`'${action}' is not a valid action.`);
293
+ const isAlreadyResolving = hasStartedResolution('canUser', [relatedAction, resource, id]);
294
+
295
+ if (isAlreadyResolving) {
296
+ return;
297
+ }
286
298
  }
287
299
 
288
- const path = id ? `/wp/v2/${resource}/${id}` : `/wp/v2/${resource}`;
289
300
  let response;
290
301
 
291
302
  try {
292
303
  response = await apiFetch({
293
- path,
304
+ path: `/wp/v2/${resourcePath}`,
294
305
  method: 'OPTIONS',
295
306
  parse: false
296
307
  });
@@ -304,9 +315,22 @@ export const canUser = (action, resource, id) => async _ref7 => {
304
315
 
305
316
 
306
317
  const allowHeader = (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.get('allow');
307
- const key = [action, resource, id].filter(Boolean).join('/');
308
- const isAllowed = (allowHeader === null || allowHeader === void 0 ? void 0 : (_allowHeader$includes = allowHeader.includes) === null || _allowHeader$includes === void 0 ? void 0 : _allowHeader$includes.call(allowHeader, method)) || (allowHeader === null || allowHeader === void 0 ? void 0 : allowHeader.allow) === method;
309
- dispatch.receiveUserPermission(key, isAllowed);
318
+ const allowedMethods = (allowHeader === null || allowHeader === void 0 ? void 0 : allowHeader.allow) || allowHeader || '';
319
+ const permissions = {};
320
+ const methods = {
321
+ create: 'POST',
322
+ read: 'GET',
323
+ update: 'PUT',
324
+ delete: 'DELETE'
325
+ };
326
+
327
+ for (const [actionName, methodName] of Object.entries(methods)) {
328
+ permissions[actionName] = allowedMethods.includes(methodName);
329
+ }
330
+
331
+ for (const action of retrievedActions) {
332
+ dispatch.receiveUserPermission(`${action}/${resourcePath}`, permissions[action]);
333
+ }
310
334
  };
311
335
  /**
312
336
  * Checks whether the current user can perform the given action on the given
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/resolvers.js"],"names":["camelCase","addQueryArgs","apiFetch","STORE_NAME","getOrLoadEntitiesConfig","DEFAULT_ENTITY_KEY","forwardResolver","getNormalizedCommaSeparable","getAuthors","query","dispatch","path","users","receiveUserQuery","getCurrentUser","currentUser","receiveCurrentUser","getEntityRecord","kind","name","key","select","configs","entityConfig","find","config","__experimentalNoFetch","lock","__unstableAcquireStoreLock","exclusive","undefined","_fields","Set","join","baseURL","baseURLParams","include","hasRecords","hasEntityRecords","record","receiveEntityRecords","__unstableReleaseStoreLock","getRawEntityRecord","getEditedEntityRecord","getEntityRecords","records","Object","values","map","split","forEach","field","hasOwnProperty","context","resolutionsArgs","filter","type","selectorName","args","shouldInvalidate","action","invalidateCache","getCurrentTheme","resolveSelect","activeThemes","status","receiveCurrentTheme","getThemeSupports","getEmbedPreview","url","embedProxyResponse","receiveEmbedPreview","error","canUser","resource","id","methods","create","read","update","delete","method","Error","response","parse","allowHeader","headers","get","Boolean","isAllowed","includes","allow","receiveUserPermission","canUserEditEntityRecord","recordId","__unstable_rest_base","getAutosaves","postType","postId","rest_base","restBase","rest_namespace","restNamespace","getPostType","autosaves","length","receiveAutosaves","getAutosave","__experimentalGetTemplateForLink","link","template","window","fetch","then","res","json","data","e","__experimentalGetCurrentGlobalStylesId","globalStylesURL","_links","href","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getBlockPatterns","restPatterns","patterns","pattern","fromEntries","entries","value","getBlockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from './name';\nimport { getOrLoadEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\nimport { forwardResolver, getNormalizedCommaSeparable } from './utils';\n\n/**\n * Requests authors from the REST API.\n *\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request.\n */\nexport const getAuthors =\n\t( query ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst path = addQueryArgs(\n\t\t\t'/wp/v2/users/?who=authors&per_page=100',\n\t\t\tquery\n\t\t);\n\t\tconst users = await apiFetch( { path } );\n\t\tdispatch.receiveUserQuery( path, users );\n\t};\n\n/**\n * Requests the current user from the REST API.\n */\nexport const getCurrentUser =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst currentUser = await apiFetch( { path: '/wp/v2/users/me' } );\n\t\tdispatch.receiveCurrentUser( currentUser );\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {number|string} key Record's key\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request. If requesting specific\n * fields, fields must always include the ID.\n */\nexport const getEntityRecord =\n\t( kind, name, key = '', query ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, key ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query !== undefined && query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Disable reason: While true that an early return could leave `path`\n\t\t\t// unused, it's important that path is derived using the query prior to\n\t\t\t// additional query modifications in the condition below, since those\n\t\t\t// modifications are relevant to how the data is tracked in state, and not\n\t\t\t// for how the request is made to the REST API.\n\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst path = addQueryArgs(\n\t\t\t\tentityConfig.baseURL + ( key ? '/' + key : '' ),\n\t\t\t\t{\n\t\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t\t...query,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( query !== undefined ) {\n\t\t\t\tquery = { ...query, include: [ key ] };\n\n\t\t\t\t// The resolution cache won't consider query as reusable based on the\n\t\t\t\t// fields, so it's tested here, prior to initiating the REST request,\n\t\t\t\t// and without causing `getEntityRecords` resolution to occur.\n\t\t\t\tconst hasRecords = select.hasEntityRecords( kind, name, query );\n\t\t\t\tif ( hasRecords ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst record = await apiFetch( { path } );\n\t\t\tdispatch.receiveEntityRecords( kind, name, record, query );\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getRawEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getEditedEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests the entity's records from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {Object?} query Query Object. If requesting specific fields, fields\n * must always include the ID.\n */\nexport const getEntityRecords =\n\t( kind, name, query = {} ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst path = addQueryArgs( entityConfig.baseURL, {\n\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t...query,\n\t\t\t} );\n\n\t\t\tlet records = Object.values( await apiFetch( { path } ) );\n\t\t\t// If we request fields but the result doesn't contain the fields,\n\t\t\t// explicitely set these fields as \"undefined\"\n\t\t\t// that way we consider the query \"fullfilled\".\n\t\t\tif ( query._fields ) {\n\t\t\t\trecords = records.map( ( record ) => {\n\t\t\t\t\tquery._fields.split( ',' ).forEach( ( field ) => {\n\t\t\t\t\t\tif ( ! record.hasOwnProperty( field ) ) {\n\t\t\t\t\t\t\trecord[ field ] = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn record;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tdispatch.receiveEntityRecords( kind, name, records, query );\n\n\t\t\t// When requesting all fields, the list of results can be used to\n\t\t\t// resolve the `getEntityRecord` selector in addition to `getEntityRecords`.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/26575\n\t\t\tif ( ! query?._fields && ! query.context ) {\n\t\t\t\tconst key = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\t\t\tconst resolutionsArgs = records\n\t\t\t\t\t.filter( ( record ) => record[ key ] )\n\t\t\t\t\t.map( ( record ) => [ kind, name, record[ key ] ] );\n\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'START_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'FINISH_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\ngetEntityRecords.shouldInvalidate = ( action, kind, name ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\tkind === action.kind &&\n\t\tname === action.name\n\t);\n};\n\n/**\n * Requests the current theme.\n */\nexport const getCurrentTheme =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\n\t\tdispatch.receiveCurrentTheme( activeThemes[ 0 ] );\n\t};\n\n/**\n * Requests theme supports data from the index.\n */\nexport const getThemeSupports = forwardResolver( 'getCurrentTheme' );\n\n/**\n * Requests a preview from the from the Embed API.\n *\n * @param {string} url URL to get the preview for.\n */\nexport const getEmbedPreview =\n\t( url ) =>\n\tasync ( { dispatch } ) => {\n\t\ttry {\n\t\t\tconst embedProxyResponse = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/oembed/1.0/proxy', { url } ),\n\t\t\t} );\n\t\t\tdispatch.receiveEmbedPreview( url, embedProxyResponse );\n\t\t} catch ( error ) {\n\t\t\t// Embed API 404s if the URL cannot be embedded, so we have to catch the error from the apiRequest here.\n\t\t\tdispatch.receiveEmbedPreview( url, false );\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} action Action to check. One of: 'create', 'read', 'update',\n * 'delete'.\n * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.\n * @param {?string} id ID of the rest resource to check.\n */\nexport const canUser =\n\t( action, resource, id ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst methods = {\n\t\t\tcreate: 'POST',\n\t\t\tread: 'GET',\n\t\t\tupdate: 'PUT',\n\t\t\tdelete: 'DELETE',\n\t\t};\n\n\t\tconst method = methods[ action ];\n\t\tif ( ! method ) {\n\t\t\tthrow new Error( `'${ action }' is not a valid action.` );\n\t\t}\n\n\t\tconst path = id\n\t\t\t? `/wp/v2/${ resource }/${ id }`\n\t\t\t: `/wp/v2/${ resource }`;\n\n\t\tlet response;\n\t\ttry {\n\t\t\tresponse = await apiFetch( {\n\t\t\t\tpath,\n\t\t\t\tmethod: 'OPTIONS',\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Do nothing if our OPTIONS request comes back with an API error (4xx or\n\t\t\t// 5xx). The previously determined isAllowed value will remain in the store.\n\t\t\treturn;\n\t\t}\n\n\t\t// Optional chaining operator is used here because the API requests don't\n\t\t// return the expected result in the native version. Instead, API requests\n\t\t// only return the result, without including response properties like the headers.\n\t\tconst allowHeader = response.headers?.get( 'allow' );\n\t\tconst key = [ action, resource, id ].filter( Boolean ).join( '/' );\n\t\tconst isAllowed =\n\t\t\tallowHeader?.includes?.( method ) || allowHeader?.allow === method;\n\t\tdispatch.receiveUserPermission( key, isAllowed );\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport const canUserEditEntityRecord =\n\t( kind, name, recordId ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resource = entityConfig.__unstable_rest_base;\n\t\tawait dispatch( canUser( 'update', resource, recordId ) );\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosaves =\n\t( postType, postId ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst { rest_base: restBase, rest_namespace: restNamespace = 'wp/v2' } =\n\t\t\tawait resolveSelect.getPostType( postType );\n\t\tconst autosaves = await apiFetch( {\n\t\t\tpath: `/${ restNamespace }/${ restBase }/${ postId }/autosaves?context=edit`,\n\t\t} );\n\n\t\tif ( autosaves && autosaves.length ) {\n\t\t\tdispatch.receiveAutosaves( postId, autosaves );\n\t\t}\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * This resolver exists to ensure the underlying autosaves are fetched via\n * `getAutosaves` when a call to the `getAutosave` selector is made.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosave =\n\t( postType, postId ) =>\n\tasync ( { resolveSelect } ) => {\n\t\tawait resolveSelect.getAutosaves( postType, postId );\n\t};\n\n/**\n * Retrieve the frontend template used for a given link.\n *\n * @param {string} link Link.\n */\nexport const __experimentalGetTemplateForLink =\n\t( link ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\t// Ideally this should be using an apiFetch call\n\t\t// We could potentially do so by adding a \"filter\" to the `wp_template` end point.\n\t\t// Also it seems the returned object is not a regular REST API post type.\n\t\tlet template;\n\t\ttry {\n\t\t\ttemplate = await window\n\t\t\t\t.fetch( addQueryArgs( link, { '_wp-find-template': true } ) )\n\t\t\t\t.then( ( res ) => res.json() )\n\t\t\t\t.then( ( { data } ) => data );\n\t\t} catch ( e ) {\n\t\t\t// For non-FSE themes, it is possible that this request returns an error.\n\t\t}\n\n\t\tif ( ! template ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst record = await resolveSelect.getEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\n\t\tif ( record ) {\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t[ record ],\n\t\t\t\t{\n\t\t\t\t\t'find-template': link,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n__experimentalGetTemplateForLink.shouldInvalidate = ( action ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\taction.kind === 'postType' &&\n\t\taction.name === 'wp_template'\n\t);\n};\n\nexport const __experimentalGetCurrentGlobalStylesId =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\t\tconst globalStylesURL =\n\t\t\tactiveThemes?.[ 0 ]?._links?.[ 'wp:user-global-styles' ]?.[ 0 ]\n\t\t\t\t?.href;\n\t\tif ( globalStylesURL ) {\n\t\t\tconst globalStylesObject = await apiFetch( {\n\t\t\t\turl: globalStylesURL,\n\t\t\t} );\n\t\t\tdispatch.__experimentalReceiveCurrentGlobalStylesId(\n\t\t\t\tglobalStylesObject.id\n\t\t\t);\n\t\t}\n\t};\n\nexport const __experimentalGetCurrentThemeBaseGlobalStyles =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst themeGlobalStyles = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeBaseGlobalStyles(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tthemeGlobalStyles\n\t\t);\n\t};\n\nexport const __experimentalGetCurrentThemeGlobalStylesVariations =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst variations = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }/variations`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeGlobalStyleVariations(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tvariations\n\t\t);\n\t};\n\nexport const getBlockPatterns =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst restPatterns = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/patterns',\n\t\t} );\n\t\tconst patterns = restPatterns?.map( ( pattern ) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( pattern ).map( ( [ key, value ] ) => [\n\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\tvalue,\n\t\t\t\t] )\n\t\t\t)\n\t\t);\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERNS', patterns } );\n\t};\n\nexport const getBlockPatternCategories =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst categories = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/categories',\n\t\t} );\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERN_CATEGORIES', categories } );\n\t};\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/resolvers.js"],"names":["camelCase","addQueryArgs","apiFetch","STORE_NAME","getOrLoadEntitiesConfig","DEFAULT_ENTITY_KEY","forwardResolver","getNormalizedCommaSeparable","getAuthors","query","dispatch","path","users","receiveUserQuery","getCurrentUser","currentUser","receiveCurrentUser","getEntityRecord","kind","name","key","select","configs","entityConfig","find","config","__experimentalNoFetch","lock","__unstableAcquireStoreLock","exclusive","undefined","_fields","Set","join","baseURL","baseURLParams","include","hasRecords","hasEntityRecords","record","receiveEntityRecords","__unstableReleaseStoreLock","getRawEntityRecord","getEditedEntityRecord","getEntityRecords","records","Object","values","map","split","forEach","field","hasOwnProperty","context","resolutionsArgs","filter","type","selectorName","args","shouldInvalidate","action","invalidateCache","getCurrentTheme","resolveSelect","activeThemes","status","receiveCurrentTheme","getThemeSupports","getEmbedPreview","url","embedProxyResponse","receiveEmbedPreview","error","canUser","requestedAction","resource","id","registry","hasStartedResolution","resourcePath","retrievedActions","includes","Error","relatedAction","isAlreadyResolving","response","method","parse","allowHeader","headers","get","allowedMethods","allow","permissions","methods","create","read","update","delete","actionName","methodName","entries","receiveUserPermission","canUserEditEntityRecord","recordId","__unstable_rest_base","getAutosaves","postType","postId","rest_base","restBase","rest_namespace","restNamespace","getPostType","autosaves","length","receiveAutosaves","getAutosave","__experimentalGetTemplateForLink","link","template","window","fetch","then","res","json","data","e","__experimentalGetCurrentGlobalStylesId","globalStylesURL","_links","href","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getBlockPatterns","restPatterns","patterns","pattern","fromEntries","value","getBlockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from './name';\nimport { getOrLoadEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\nimport { forwardResolver, getNormalizedCommaSeparable } from './utils';\n\n/**\n * Requests authors from the REST API.\n *\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request.\n */\nexport const getAuthors =\n\t( query ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst path = addQueryArgs(\n\t\t\t'/wp/v2/users/?who=authors&per_page=100',\n\t\t\tquery\n\t\t);\n\t\tconst users = await apiFetch( { path } );\n\t\tdispatch.receiveUserQuery( path, users );\n\t};\n\n/**\n * Requests the current user from the REST API.\n */\nexport const getCurrentUser =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst currentUser = await apiFetch( { path: '/wp/v2/users/me' } );\n\t\tdispatch.receiveCurrentUser( currentUser );\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {number|string} key Record's key\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request. If requesting specific\n * fields, fields must always include the ID.\n */\nexport const getEntityRecord =\n\t( kind, name, key = '', query ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, key ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query !== undefined && query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Disable reason: While true that an early return could leave `path`\n\t\t\t// unused, it's important that path is derived using the query prior to\n\t\t\t// additional query modifications in the condition below, since those\n\t\t\t// modifications are relevant to how the data is tracked in state, and not\n\t\t\t// for how the request is made to the REST API.\n\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst path = addQueryArgs(\n\t\t\t\tentityConfig.baseURL + ( key ? '/' + key : '' ),\n\t\t\t\t{\n\t\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t\t...query,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( query !== undefined ) {\n\t\t\t\tquery = { ...query, include: [ key ] };\n\n\t\t\t\t// The resolution cache won't consider query as reusable based on the\n\t\t\t\t// fields, so it's tested here, prior to initiating the REST request,\n\t\t\t\t// and without causing `getEntityRecords` resolution to occur.\n\t\t\t\tconst hasRecords = select.hasEntityRecords( kind, name, query );\n\t\t\t\tif ( hasRecords ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst record = await apiFetch( { path } );\n\t\t\tdispatch.receiveEntityRecords( kind, name, record, query );\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getRawEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getEditedEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests the entity's records from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {Object?} query Query Object. If requesting specific fields, fields\n * must always include the ID.\n */\nexport const getEntityRecords =\n\t( kind, name, query = {} ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst path = addQueryArgs( entityConfig.baseURL, {\n\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t...query,\n\t\t\t} );\n\n\t\t\tlet records = Object.values( await apiFetch( { path } ) );\n\t\t\t// If we request fields but the result doesn't contain the fields,\n\t\t\t// explicitely set these fields as \"undefined\"\n\t\t\t// that way we consider the query \"fullfilled\".\n\t\t\tif ( query._fields ) {\n\t\t\t\trecords = records.map( ( record ) => {\n\t\t\t\t\tquery._fields.split( ',' ).forEach( ( field ) => {\n\t\t\t\t\t\tif ( ! record.hasOwnProperty( field ) ) {\n\t\t\t\t\t\t\trecord[ field ] = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn record;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tdispatch.receiveEntityRecords( kind, name, records, query );\n\n\t\t\t// When requesting all fields, the list of results can be used to\n\t\t\t// resolve the `getEntityRecord` selector in addition to `getEntityRecords`.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/26575\n\t\t\tif ( ! query?._fields && ! query.context ) {\n\t\t\t\tconst key = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\t\t\tconst resolutionsArgs = records\n\t\t\t\t\t.filter( ( record ) => record[ key ] )\n\t\t\t\t\t.map( ( record ) => [ kind, name, record[ key ] ] );\n\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'START_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'FINISH_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\ngetEntityRecords.shouldInvalidate = ( action, kind, name ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\tkind === action.kind &&\n\t\tname === action.name\n\t);\n};\n\n/**\n * Requests the current theme.\n */\nexport const getCurrentTheme =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\n\t\tdispatch.receiveCurrentTheme( activeThemes[ 0 ] );\n\t};\n\n/**\n * Requests theme supports data from the index.\n */\nexport const getThemeSupports = forwardResolver( 'getCurrentTheme' );\n\n/**\n * Requests a preview from the from the Embed API.\n *\n * @param {string} url URL to get the preview for.\n */\nexport const getEmbedPreview =\n\t( url ) =>\n\tasync ( { dispatch } ) => {\n\t\ttry {\n\t\t\tconst embedProxyResponse = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/oembed/1.0/proxy', { url } ),\n\t\t\t} );\n\t\t\tdispatch.receiveEmbedPreview( url, embedProxyResponse );\n\t\t} catch ( error ) {\n\t\t\t// Embed API 404s if the URL cannot be embedded, so we have to catch the error from the apiRequest here.\n\t\t\tdispatch.receiveEmbedPreview( url, false );\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} requestedAction Action to check. One of: 'create', 'read', 'update',\n * 'delete'.\n * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.\n * @param {?string} id ID of the rest resource to check.\n */\nexport const canUser =\n\t( requestedAction, resource, id ) =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst { hasStartedResolution } = registry.select( STORE_NAME );\n\n\t\tconst resourcePath = id ? `${ resource }/${ id }` : resource;\n\t\tconst retrievedActions = [ 'create', 'read', 'update', 'delete' ];\n\n\t\tif ( ! retrievedActions.includes( requestedAction ) ) {\n\t\t\tthrow new Error( `'${ requestedAction }' is not a valid action.` );\n\t\t}\n\n\t\t// Prevent resolving the same resource twice.\n\t\tfor ( const relatedAction of retrievedActions ) {\n\t\t\tif ( relatedAction === requestedAction ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst isAlreadyResolving = hasStartedResolution( 'canUser', [\n\t\t\t\trelatedAction,\n\t\t\t\tresource,\n\t\t\t\tid,\n\t\t\t] );\n\t\t\tif ( isAlreadyResolving ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet response;\n\t\ttry {\n\t\t\tresponse = await apiFetch( {\n\t\t\t\tpath: `/wp/v2/${ resourcePath }`,\n\t\t\t\tmethod: 'OPTIONS',\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Do nothing if our OPTIONS request comes back with an API error (4xx or\n\t\t\t// 5xx). The previously determined isAllowed value will remain in the store.\n\t\t\treturn;\n\t\t}\n\n\t\t// Optional chaining operator is used here because the API requests don't\n\t\t// return the expected result in the native version. Instead, API requests\n\t\t// only return the result, without including response properties like the headers.\n\t\tconst allowHeader = response.headers?.get( 'allow' );\n\t\tconst allowedMethods = allowHeader?.allow || allowHeader || '';\n\n\t\tconst permissions = {};\n\t\tconst methods = {\n\t\t\tcreate: 'POST',\n\t\t\tread: 'GET',\n\t\t\tupdate: 'PUT',\n\t\t\tdelete: 'DELETE',\n\t\t};\n\t\tfor ( const [ actionName, methodName ] of Object.entries( methods ) ) {\n\t\t\tpermissions[ actionName ] = allowedMethods.includes( methodName );\n\t\t}\n\n\t\tfor ( const action of retrievedActions ) {\n\t\t\tdispatch.receiveUserPermission(\n\t\t\t\t`${ action }/${ resourcePath }`,\n\t\t\t\tpermissions[ action ]\n\t\t\t);\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport const canUserEditEntityRecord =\n\t( kind, name, recordId ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resource = entityConfig.__unstable_rest_base;\n\t\tawait dispatch( canUser( 'update', resource, recordId ) );\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosaves =\n\t( postType, postId ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst { rest_base: restBase, rest_namespace: restNamespace = 'wp/v2' } =\n\t\t\tawait resolveSelect.getPostType( postType );\n\t\tconst autosaves = await apiFetch( {\n\t\t\tpath: `/${ restNamespace }/${ restBase }/${ postId }/autosaves?context=edit`,\n\t\t} );\n\n\t\tif ( autosaves && autosaves.length ) {\n\t\t\tdispatch.receiveAutosaves( postId, autosaves );\n\t\t}\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * This resolver exists to ensure the underlying autosaves are fetched via\n * `getAutosaves` when a call to the `getAutosave` selector is made.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosave =\n\t( postType, postId ) =>\n\tasync ( { resolveSelect } ) => {\n\t\tawait resolveSelect.getAutosaves( postType, postId );\n\t};\n\n/**\n * Retrieve the frontend template used for a given link.\n *\n * @param {string} link Link.\n */\nexport const __experimentalGetTemplateForLink =\n\t( link ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\t// Ideally this should be using an apiFetch call\n\t\t// We could potentially do so by adding a \"filter\" to the `wp_template` end point.\n\t\t// Also it seems the returned object is not a regular REST API post type.\n\t\tlet template;\n\t\ttry {\n\t\t\ttemplate = await window\n\t\t\t\t.fetch( addQueryArgs( link, { '_wp-find-template': true } ) )\n\t\t\t\t.then( ( res ) => res.json() )\n\t\t\t\t.then( ( { data } ) => data );\n\t\t} catch ( e ) {\n\t\t\t// For non-FSE themes, it is possible that this request returns an error.\n\t\t}\n\n\t\tif ( ! template ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst record = await resolveSelect.getEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\n\t\tif ( record ) {\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t[ record ],\n\t\t\t\t{\n\t\t\t\t\t'find-template': link,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n__experimentalGetTemplateForLink.shouldInvalidate = ( action ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\taction.kind === 'postType' &&\n\t\taction.name === 'wp_template'\n\t);\n};\n\nexport const __experimentalGetCurrentGlobalStylesId =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\t\tconst globalStylesURL =\n\t\t\tactiveThemes?.[ 0 ]?._links?.[ 'wp:user-global-styles' ]?.[ 0 ]\n\t\t\t\t?.href;\n\t\tif ( globalStylesURL ) {\n\t\t\tconst globalStylesObject = await apiFetch( {\n\t\t\t\turl: globalStylesURL,\n\t\t\t} );\n\t\t\tdispatch.__experimentalReceiveCurrentGlobalStylesId(\n\t\t\t\tglobalStylesObject.id\n\t\t\t);\n\t\t}\n\t};\n\nexport const __experimentalGetCurrentThemeBaseGlobalStyles =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst themeGlobalStyles = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeBaseGlobalStyles(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tthemeGlobalStyles\n\t\t);\n\t};\n\nexport const __experimentalGetCurrentThemeGlobalStylesVariations =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst variations = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }/variations`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeGlobalStyleVariations(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tvariations\n\t\t);\n\t};\n\nexport const getBlockPatterns =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst restPatterns = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/patterns',\n\t\t} );\n\t\tconst patterns = restPatterns?.map( ( pattern ) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( pattern ).map( ( [ key, value ] ) => [\n\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\tvalue,\n\t\t\t\t] )\n\t\t\t)\n\t\t);\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERNS', patterns } );\n\t};\n\nexport const getBlockPatternCategories =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst categories = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/categories',\n\t\t} );\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERN_CATEGORIES', categories } );\n\t};\n"]}
@@ -33,8 +33,9 @@ export const getThemeSupports: Function;
33
33
  export function getEmbedPreview(url: string): ({ dispatch }: {
34
34
  dispatch: any;
35
35
  }) => Promise<void>;
36
- export function canUser(action: string, resource: string, id: string | null): ({ dispatch }: {
36
+ export function canUser(requestedAction: string, resource: string, id: string | null): ({ dispatch, registry }: {
37
37
  dispatch: any;
38
+ registry: any;
38
39
  }) => Promise<void>;
39
40
  export function canUserEditEntityRecord(kind: string, name: string, recordId: string): ({ dispatch }: {
40
41
  dispatch: any;
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../src/resolvers.js"],"names":[],"mappings":"AAwBO,kCAHI,MAAO,SAAS;;oBAYzB;AAKK;;oBAKL;AAYK,sCAPI,MAAM,QACN,MAAM,2CAEN,MAAO,SAAS;;;oBAsEzB;AAEF;;GAEG;AACH,0CAAuE;AAEvE;;GAEG;AACH,6CAA0E;AAUnE,uCALI,MAAM,QACN,MAAM;;oBAoFf;;IAEF,kEAOC;;AAKM;;;oBAUL;AAEF;;GAEG;AACH,wCAAqE;AAO9D,qCAFI,MAAM;;oBAcf;AAWK,gCALI,MAAM,YAEN,MAAM,MACL,MAAM;;oBA0ChB;AAUK,8CAJI,MAAM,QACN,MAAM,YACN,MAAM;;oBAef;AAQK,uCAHI,MAAM,UACN,MAAM;;;oBAcf;AAWK,sCAHI,MAAM,UACN,MAAM;;oBAMf;AAOK,uDAFI,MAAM;;;oBAsCf;;IAEF,4CAOC;;AAEM;;;oBAmBL;AAEK;;;oBAWL;AAEK;;;oBAWL;AAEK;;oBAeL;AAEK;;oBAOL"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../src/resolvers.js"],"names":[],"mappings":"AAwBO,kCAHI,MAAO,SAAS;;oBAYzB;AAKK;;oBAKL;AAYK,sCAPI,MAAM,QACN,MAAM,2CAEN,MAAO,SAAS;;;oBAsEzB;AAEF;;GAEG;AACH,0CAAuE;AAEvE;;GAEG;AACH,6CAA0E;AAUnE,uCALI,MAAM,QACN,MAAM;;oBAoFf;;IAEF,kEAOC;;AAKM;;;oBAUL;AAEF;;GAEG;AACH,wCAAqE;AAO9D,qCAFI,MAAM;;oBAcf;AAWK,yCALI,MAAM,YAEN,MAAM,MACL,MAAM;;;oBAiEhB;AAUK,8CAJI,MAAM,QACN,MAAM,YACN,MAAM;;oBAef;AAQK,uCAHI,MAAM,UACN,MAAM;;;oBAcf;AAWK,sCAHI,MAAM,UACN,MAAM;;oBAMf;AAOK,uDAFI,MAAM;;;oBAsCf;;IAEF,4CAOC;;AAEM;;;oBAmBL;AAEK;;;oBAWL;AAEK;;;oBAWL;AAEK;;oBAeL;AAEK;;oBAOL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/core-data",
3
- "version": "5.0.1-next.957ca95e4c.0",
3
+ "version": "5.0.1",
4
4
  "description": "Access to and manipulation of core WordPress entities.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -31,15 +31,15 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@babel/runtime": "^7.16.0",
34
- "@wordpress/api-fetch": "^6.13.1-next.957ca95e4c.0",
35
- "@wordpress/blocks": "^11.15.1-next.957ca95e4c.0",
36
- "@wordpress/data": "^7.0.1-next.957ca95e4c.0",
37
- "@wordpress/deprecated": "^3.16.1-next.957ca95e4c.0",
38
- "@wordpress/element": "^4.14.1-next.957ca95e4c.0",
39
- "@wordpress/html-entities": "^3.16.1-next.957ca95e4c.0",
40
- "@wordpress/i18n": "^4.16.1-next.957ca95e4c.0",
41
- "@wordpress/is-shallow-equal": "^4.16.1-next.957ca95e4c.0",
42
- "@wordpress/url": "^3.17.1-next.957ca95e4c.0",
34
+ "@wordpress/api-fetch": "^6.14.0",
35
+ "@wordpress/blocks": "^11.16.1",
36
+ "@wordpress/data": "^7.1.1",
37
+ "@wordpress/deprecated": "^3.17.0",
38
+ "@wordpress/element": "^4.15.0",
39
+ "@wordpress/html-entities": "^3.17.0",
40
+ "@wordpress/i18n": "^4.17.0",
41
+ "@wordpress/is-shallow-equal": "^4.17.0",
42
+ "@wordpress/url": "^3.18.0",
43
43
  "change-case": "^4.1.2",
44
44
  "equivalent-key-map": "^0.2.2",
45
45
  "lodash": "^4.17.21",
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "272a74bbbaab10ee24424eafe9578e705fbfbbb4"
56
+ "gitHead": "56ef3f5a754e44155ee79e827c7a1d0efc1ee5aa"
57
57
  }
package/src/resolvers.js CHANGED
@@ -273,34 +273,42 @@ export const getEmbedPreview =
273
273
  * Checks whether the current user can perform the given action on the given
274
274
  * REST resource.
275
275
  *
276
- * @param {string} action Action to check. One of: 'create', 'read', 'update',
277
- * 'delete'.
278
- * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.
279
- * @param {?string} id ID of the rest resource to check.
276
+ * @param {string} requestedAction Action to check. One of: 'create', 'read', 'update',
277
+ * 'delete'.
278
+ * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.
279
+ * @param {?string} id ID of the rest resource to check.
280
280
  */
281
281
  export const canUser =
282
- ( action, resource, id ) =>
283
- async ( { dispatch } ) => {
284
- const methods = {
285
- create: 'POST',
286
- read: 'GET',
287
- update: 'PUT',
288
- delete: 'DELETE',
289
- };
282
+ ( requestedAction, resource, id ) =>
283
+ async ( { dispatch, registry } ) => {
284
+ const { hasStartedResolution } = registry.select( STORE_NAME );
285
+
286
+ const resourcePath = id ? `${ resource }/${ id }` : resource;
287
+ const retrievedActions = [ 'create', 'read', 'update', 'delete' ];
290
288
 
291
- const method = methods[ action ];
292
- if ( ! method ) {
293
- throw new Error( `'${ action }' is not a valid action.` );
289
+ if ( ! retrievedActions.includes( requestedAction ) ) {
290
+ throw new Error( `'${ requestedAction }' is not a valid action.` );
294
291
  }
295
292
 
296
- const path = id
297
- ? `/wp/v2/${ resource }/${ id }`
298
- : `/wp/v2/${ resource }`;
293
+ // Prevent resolving the same resource twice.
294
+ for ( const relatedAction of retrievedActions ) {
295
+ if ( relatedAction === requestedAction ) {
296
+ continue;
297
+ }
298
+ const isAlreadyResolving = hasStartedResolution( 'canUser', [
299
+ relatedAction,
300
+ resource,
301
+ id,
302
+ ] );
303
+ if ( isAlreadyResolving ) {
304
+ return;
305
+ }
306
+ }
299
307
 
300
308
  let response;
301
309
  try {
302
310
  response = await apiFetch( {
303
- path,
311
+ path: `/wp/v2/${ resourcePath }`,
304
312
  method: 'OPTIONS',
305
313
  parse: false,
306
314
  } );
@@ -314,10 +322,25 @@ export const canUser =
314
322
  // return the expected result in the native version. Instead, API requests
315
323
  // only return the result, without including response properties like the headers.
316
324
  const allowHeader = response.headers?.get( 'allow' );
317
- const key = [ action, resource, id ].filter( Boolean ).join( '/' );
318
- const isAllowed =
319
- allowHeader?.includes?.( method ) || allowHeader?.allow === method;
320
- dispatch.receiveUserPermission( key, isAllowed );
325
+ const allowedMethods = allowHeader?.allow || allowHeader || '';
326
+
327
+ const permissions = {};
328
+ const methods = {
329
+ create: 'POST',
330
+ read: 'GET',
331
+ update: 'PUT',
332
+ delete: 'DELETE',
333
+ };
334
+ for ( const [ actionName, methodName ] of Object.entries( methods ) ) {
335
+ permissions[ actionName ] = allowedMethods.includes( methodName );
336
+ }
337
+
338
+ for ( const action of retrievedActions ) {
339
+ dispatch.receiveUserPermission(
340
+ `${ action }/${ resourcePath }`,
341
+ permissions[ action ]
342
+ );
343
+ }
321
344
  };
322
345
 
323
346
  /**
@@ -291,7 +291,13 @@ describe( 'getEmbedPreview', () => {
291
291
  } );
292
292
 
293
293
  describe( 'canUser', () => {
294
+ let registry;
294
295
  beforeEach( async () => {
296
+ registry = {
297
+ select: jest.fn( () => ( {
298
+ hasStartedResolution: () => false,
299
+ } ) ),
300
+ };
295
301
  triggerFetch.mockReset();
296
302
  } );
297
303
 
@@ -304,7 +310,7 @@ describe( 'canUser', () => {
304
310
  Promise.reject( { status: 404 } )
305
311
  );
306
312
 
307
- await canUser( 'create', 'media' )( { dispatch } );
313
+ await canUser( 'create', 'media' )( { dispatch, registry } );
308
314
 
309
315
  expect( triggerFetch ).toHaveBeenCalledWith( {
310
316
  path: '/wp/v2/media',
@@ -324,7 +330,7 @@ describe( 'canUser', () => {
324
330
  headers: new Map( [ [ 'allow', 'GET' ] ] ),
325
331
  } ) );
326
332
 
327
- await canUser( 'create', 'media' )( { dispatch } );
333
+ await canUser( 'create', 'media' )( { dispatch, registry } );
328
334
 
329
335
  expect( triggerFetch ).toHaveBeenCalledWith( {
330
336
  path: '/wp/v2/media',
@@ -347,7 +353,7 @@ describe( 'canUser', () => {
347
353
  headers: new Map( [ [ 'allow', 'POST, GET, PUT, DELETE' ] ] ),
348
354
  } ) );
349
355
 
350
- await canUser( 'create', 'media' )( { dispatch } );
356
+ await canUser( 'create', 'media' )( { dispatch, registry } );
351
357
 
352
358
  expect( triggerFetch ).toHaveBeenCalledWith( {
353
359
  path: '/wp/v2/media',
@@ -370,7 +376,7 @@ describe( 'canUser', () => {
370
376
  headers: new Map( [ [ 'allow', 'POST, GET, PUT, DELETE' ] ] ),
371
377
  } ) );
372
378
 
373
- await canUser( 'create', 'blocks', 123 )( { dispatch } );
379
+ await canUser( 'create', 'blocks', 123 )( { dispatch, registry } );
374
380
 
375
381
  expect( triggerFetch ).toHaveBeenCalledWith( {
376
382
  path: '/wp/v2/blocks/123',
@@ -383,6 +389,114 @@ describe( 'canUser', () => {
383
389
  true
384
390
  );
385
391
  } );
392
+
393
+ it( 'runs apiFetch only once per resource', async () => {
394
+ const dispatch = Object.assign( jest.fn(), {
395
+ receiveUserPermission: jest.fn(),
396
+ } );
397
+
398
+ registry = {
399
+ select: () => ( {
400
+ hasStartedResolution: ( _, [ action ] ) => action === 'read',
401
+ } ),
402
+ };
403
+
404
+ triggerFetch.mockImplementation( () => ( {
405
+ headers: new Map( [ [ 'allow', 'POST, GET' ] ] ),
406
+ } ) );
407
+
408
+ await canUser( 'create', 'blocks' )( { dispatch, registry } );
409
+ await canUser( 'read', 'blocks' )( { dispatch, registry } );
410
+
411
+ expect( triggerFetch ).toHaveBeenCalledTimes( 1 );
412
+
413
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
414
+ 'create/blocks',
415
+ true
416
+ );
417
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
418
+ 'read/blocks',
419
+ true
420
+ );
421
+ } );
422
+
423
+ it( 'retrieves all permissions even when ID is not given', async () => {
424
+ const dispatch = Object.assign( jest.fn(), {
425
+ receiveUserPermission: jest.fn(),
426
+ } );
427
+
428
+ registry = {
429
+ select: () => ( {
430
+ hasStartedResolution: ( _, [ action ] ) => action === 'read',
431
+ } ),
432
+ };
433
+
434
+ triggerFetch.mockImplementation( () => ( {
435
+ headers: new Map( [ [ 'allow', 'POST, GET' ] ] ),
436
+ } ) );
437
+
438
+ await canUser( 'create', 'blocks' )( { dispatch, registry } );
439
+ await canUser( 'read', 'blocks' )( { dispatch, registry } );
440
+ await canUser( 'update', 'blocks' )( { dispatch, registry } );
441
+ await canUser( 'delete', 'blocks' )( { dispatch, registry } );
442
+
443
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
444
+ 'create/blocks',
445
+ true
446
+ );
447
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
448
+ 'read/blocks',
449
+ true
450
+ );
451
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
452
+ 'update/blocks',
453
+ false
454
+ );
455
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
456
+ 'delete/blocks',
457
+ false
458
+ );
459
+ } );
460
+
461
+ it( 'runs apiFetch only once per resource ID', async () => {
462
+ const dispatch = Object.assign( jest.fn(), {
463
+ receiveUserPermission: jest.fn(),
464
+ } );
465
+
466
+ registry = {
467
+ select: () => ( {
468
+ hasStartedResolution: ( _, [ action ] ) => action === 'create',
469
+ } ),
470
+ };
471
+
472
+ triggerFetch.mockImplementation( () => ( {
473
+ headers: new Map( [ [ 'allow', 'POST, GET, PUT, DELETE' ] ] ),
474
+ } ) );
475
+
476
+ await canUser( 'create', 'blocks', 123 )( { dispatch, registry } );
477
+ await canUser( 'read', 'blocks', 123 )( { dispatch, registry } );
478
+ await canUser( 'update', 'blocks', 123 )( { dispatch, registry } );
479
+ await canUser( 'delete', 'blocks', 123 )( { dispatch, registry } );
480
+
481
+ expect( triggerFetch ).toHaveBeenCalledTimes( 1 );
482
+
483
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
484
+ 'create/blocks/123',
485
+ true
486
+ );
487
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
488
+ 'read/blocks/123',
489
+ true
490
+ );
491
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
492
+ 'update/blocks/123',
493
+ true
494
+ );
495
+ expect( dispatch.receiveUserPermission ).toHaveBeenCalledWith(
496
+ 'delete/blocks/123',
497
+ true
498
+ );
499
+ } );
386
500
  } );
387
501
 
388
502
  describe( 'getAutosaves', () => {
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/uuid/index.d.ts","../api-fetch/build-types/types.d.ts","../api-fetch/build-types/middlewares/nonce.d.ts","../api-fetch/build-types/middlewares/preloading.d.ts","../api-fetch/build-types/middlewares/root-url.d.ts","../api-fetch/build-types/middlewares/fetch-all-middleware.d.ts","../api-fetch/build-types/middlewares/media-upload.d.ts","../api-fetch/build-types/index.d.ts","../url/build-types/is-url.d.ts","../url/build-types/is-email.d.ts","../url/build-types/get-protocol.d.ts","../url/build-types/is-valid-protocol.d.ts","../url/build-types/get-authority.d.ts","../url/build-types/is-valid-authority.d.ts","../url/build-types/get-path.d.ts","../url/build-types/is-valid-path.d.ts","../url/build-types/get-query-string.d.ts","../url/build-types/build-query-string.d.ts","../url/build-types/is-valid-query-string.d.ts","../url/build-types/get-path-and-query-string.d.ts","../url/build-types/get-fragment.d.ts","../url/build-types/is-valid-fragment.d.ts","../url/build-types/add-query-args.d.ts","../url/build-types/get-query-arg.d.ts","../url/build-types/get-query-args.d.ts","../url/build-types/has-query-arg.d.ts","../url/build-types/remove-query-args.d.ts","../url/build-types/prepend-http.d.ts","../url/build-types/safe-decode-uri.d.ts","../url/build-types/safe-decode-uri-component.d.ts","../url/build-types/filter-url-for-display.d.ts","../url/build-types/clean-for-slug.d.ts","../url/build-types/get-filename.d.ts","../url/build-types/normalize-path.d.ts","../url/build-types/index.d.ts","../../node_modules/utility-types/dist/aliases-and-guards.d.ts","../../node_modules/utility-types/dist/mapped-types.d.ts","../../node_modules/utility-types/dist/utility-types.d.ts","../../node_modules/utility-types/dist/functional-helpers.d.ts","../../node_modules/utility-types/dist/index.d.ts","../deprecated/build-types/index.d.ts","./src/queried-data/actions.js","../../node_modules/rememo/rememo.d.ts","./src/utils/conservative-map-item.js","./src/utils/get-normalized-comma-separable.js","./src/types.ts","./src/utils/if-matching-action.js","./src/utils/forward-resolver.js","./src/utils/on-sub-key.js","./src/utils/replace-action.js","./src/utils/with-weak-map-cache.js","./src/utils/is-raw-attribute.js","./src/utils/index.js","./src/queried-data/get-query-parts.js","./src/queried-data/selectors.js","../data/build-types/components/with-select/index.d.ts","../data/build-types/components/with-dispatch/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/@types/react/node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../data/build-types/components/with-registry/index.d.ts","../../node_modules/redux/index.d.ts","../data/build-types/types.d.ts","../data/build-types/components/use-dispatch/use-dispatch.d.ts","../data/build-types/components/use-dispatch/use-dispatch-with-map.d.ts","../data/build-types/components/use-dispatch/index.d.ts","../data/build-types/components/async-mode-provider/use-async-mode.d.ts","../data/build-types/components/async-mode-provider/context.d.ts","../data/build-types/components/async-mode-provider/index.d.ts","../data/build-types/registry.d.ts","../data/build-types/controls.d.ts","../data/build-types/redux-store/index.d.ts","../data/build-types/plugins/persistence/index.d.ts","../data/build-types/plugins/index.d.ts","../data/build-types/components/registry-provider/use-registry.d.ts","../data/build-types/components/registry-provider/context.d.ts","../data/build-types/components/registry-provider/index.d.ts","../data/build-types/components/use-select/index.d.ts","../data/build-types/factory.d.ts","../data/build-types/index.d.ts","../../node_modules/no-case/dist/index.d.ts","../../node_modules/pascal-case/dist/index.d.ts","../../node_modules/camel-case/dist/index.d.ts","../../node_modules/capital-case/dist/index.d.ts","../../node_modules/constant-case/dist/index.d.ts","../../node_modules/dot-case/dist/index.d.ts","../../node_modules/header-case/dist/index.d.ts","../../node_modules/param-case/dist/index.d.ts","../../node_modules/path-case/dist/index.d.ts","../../node_modules/sentence-case/dist/index.d.ts","../../node_modules/snake-case/dist/index.d.ts","../../node_modules/change-case/dist/index.d.ts","../i18n/build-types/sprintf.d.ts","../hooks/build-types/createAddHook.d.ts","../hooks/build-types/createRemoveHook.d.ts","../hooks/build-types/createHasHook.d.ts","../hooks/build-types/createDoingHook.d.ts","../hooks/build-types/createDidHook.d.ts","../hooks/build-types/index.d.ts","../hooks/build-types/createHooks.d.ts","../i18n/build-types/create-i18n.d.ts","../i18n/build-types/default-i18n.d.ts","../i18n/build-types/index.d.ts","./src/entities.js","./src/queried-data/reducer.js","./src/queried-data/index.js","./src/batch/default-processor.js","./src/batch/create-batch.js","./src/batch/index.js","./src/name.js","./src/actions.js","../element/build-types/react.d.ts","../element/build-types/create-interpolate-element.d.ts","../../node_modules/@types/react-dom/index.d.ts","../element/build-types/react-platform.d.ts","../element/build-types/utils.d.ts","../element/build-types/platform.d.ts","../element/build-types/serialize.d.ts","../element/build-types/raw-html.d.ts","../element/build-types/index.d.ts","./src/entity-provider.js","../is-shallow-equal/build-types/objects.d.ts","../is-shallow-equal/build-types/arrays.d.ts","../is-shallow-equal/build-types/index.d.ts","./src/reducer.js","./src/entity-types/helpers.ts","./src/entity-types/base-entity-records.ts","./src/entity-types/attachment.ts","./src/entity-types/comment.ts","./src/entity-types/menu-location.ts","./src/entity-types/nav-menu.ts","./src/entity-types/nav-menu-item.ts","./src/entity-types/page.ts","./src/entity-types/plugin.ts","./src/entity-types/post.ts","./src/entity-types/settings.ts","./src/entity-types/sidebar.ts","./src/entity-types/taxonomy.ts","./src/entity-types/theme.ts","./src/entity-types/user.ts","./src/entity-types/type.ts","./src/entity-types/widget.ts","./src/entity-types/widget-type.ts","./src/entity-types/wp-template.ts","./src/entity-types/wp-template-part.ts","./src/entity-types/index.ts","./src/selectors.ts","./src/resolvers.js","./src/locks/utils.js","./src/locks/reducer.js","./src/locks/selectors.js","./src/locks/engine.js","./src/locks/actions.js","../html-entities/build-types/index.d.ts","./src/fetch/__experimental-fetch-link-suggestions.js","./src/fetch/__experimental-fetch-url-data.js","./src/fetch/index.js","../../node_modules/memize/index.d.ts","./src/hooks/memoize.js","./src/hooks/constants.ts","./src/hooks/use-query-select.ts","./src/hooks/use-entity-record.ts","./src/hooks/use-entity-records.ts","./src/hooks/use-resource-permissions.ts","./src/hooks/index.ts","./src/index.js"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","6aae23700d45e8ac7ca7e269047aed3eecc64ce87c8fa5e52f2d98e280bd04ef","6b3d3ecbf6958624910af080a873cd84b5b99d513eb52147f18fe04a51cb19ce","ea9b95f45cd90b16200134d1f79e36380d57b866300b479b3e5b62a6dbeb92bb","14bc80bd2cb4c72aaaf27cfcdb62377cf3e3366f9e9045fa8ca232629457aca9","ff164c4671955c882140da80d0a6a69552ba5c2ddce3969f74c5c9d63683744b","dca26c859f7b4b8cf118dc9b5e99d295a3031bbd980e488819ed830ba769b890","1152220b82b14ecd456908cf61b6089b49596278eace0d10030384f8e31ba5ee","91265e9c2705df9edc7d912afe177cb9dbe4bd4fe254cc43466885544c065013","81e7db9916d6ce0323656530cb9aba444450454e5a8f3d0108f04931abb36258","7858aa21ac91fef2c9cdf96b3ae00e025efed2920ffca40a75df452d4f5a9576","eb80dedcd92c17d93f403e736e1c3e2aef39379841070221a353a7c13b57369f","029f3a1e2534e85a7cd00f3e79781003e0bcf5147d96db93594ace839803c6cf","2eea9984a7ea08e576d2970ba65a65ebba02699bccdbd0d3a08bb141e15972a1","308246446616acc5397747f35fa8788de7e6ba6cd5dc0ec2752bd75eafefcdb9","9677ef56e52539a73f1d9b89c692cf866d05017b05d9d2fe8cd35a30b42c2d47","6048b5c50d6486b1084b036a7f7d6c76c032d90cc2186f79b344a12ceb488511","26885abe66e07fd38da599d5fc9b4fa8b2df803c56e9bba99a2505e0b982c042","507dc7647a71c90e8cce85259c624b355c22e0dee1833aa4ba20c15a4f5bd21a","c30aaf3d189be8c29b2d3a7761e94b5b532fec6ba0caa74d07a4c1056469acf0","454217fe7beba4cb5497d4bc7fd3116437ce85e5217eb66f3b367fbcbfd45861","65e1ffb7b2343a1814c5cb85164f7d26bce1477b2cf04e6736f37732bc4801d6","3f810d7cac3e3729241d52d667538dc4ca27687f5d40d91f4cb5bce955df5f94","a2bedf5636ce572e507823229c9b7d4e87d97830497822d76e95a971fee78c92","17ab13eba7cde42ca7c95110c7eda405ba6aba7471437d912078d67dfada98eb","f7e734ca25cb0e8c52247b9a7d98f81ffd6ac52485bf9d8938fdbd4d828f469c","5261283f0b521fc1f255a060dcd86986985bd516822b69bb5504392462962899","44e20ca481bcc2abec1f4fcf54139caa4389f1bc16e3ee9d19a10e522903e9ab","a31eda6fcbf86596f69f7c18e6d13af58191fdc9c9620bcc67595fd9e49043ab","c93085fa9e5e568c0a45f64caa05e713fd5438e93d32f5970753e44910bdd540","1e442333978b5864818023d54d4f2e2aa0cbdfb2b486a0d43c900a7a87d61d1d","f215ce6766668f37f5e4652d0facdf55816f24aa5fc6f68c5e33754dbe5219fb","e900ec60297a15c4de70ddaade026ea4fe635e27c286fedd82dd5e963daa1930","e4e975c7339a9579209f12246e95f95216aa3558b8e7719fea2fbadaf28c574b","178efee8d4335cb61ec45c10e6de6d7afe48028963c5633f5937f25eaffa2387","bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","b192606574769a5566620f9bf19358a3994bc2726ecdeaad9c66f3333b2687c8","acc22baecb7e578a5639f47b09e19de1d81ec91cf762d6f91d68297b10c63177","d83d6ec306241a9a59716eadf007d405cbc9d77b688871089a02159087100d5c","bcfac9632a790e732341b5009a60e86d72da1d2cc383c1796a66d233c5942c6f","0292552bfdda78ed1910905ea046a336186ce82d9fab516ea21616f47147ccdc","78673ec3910aff07d76d2a24b460523c69d50afadfcd836cd9a022ad1a3ebfc2","ff41da7aeac53e419a3a7eb792ea03c77cf05e44d379dfa2190920bfe6dde09b","849507adfc66cfedda67c3384a1ec078c542263589413c5b31c195aee25dc1f2","c30b952d25562463882bbbaac6242e2cb47cd342c27388f46e4b7b0c98a4b659","c32e26a53123519e9bcf0aa960cc0a5dfb3ecebcc27fe0ccc649702b45da1e2a","59688ffdb24f7f057e35f54280e90bda1e57efee745479a1bb98321b263870e8","95d027d78b9577e00f9d4e0eba816fd21f1b2927c801f89a1db8369b837471c3","9f1a1489db159ad8956dfa60d68a51f7a740f644385220af1ccfde5d5fba79c6","91faeb8163ec860e5b5c02eda51cd16e64de95baaadfec34e0fbd9d39176ed8a","b94c955213263a318d4ab2f33479464e1ee5551b9b29859b9084f4b741dc7ed6","a355bc3ad1c78a74de3dd67cc484ea4667a3f28f7d5384bcc10d0f1a2a506901","cb1063fcd20e601b70c6ce424597018ef658b4aa5ff4bf6514a351a9222238da",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"381899b8d1d4c1be716f18cb5242ba39f66f4b1e31d45af62a32a99f8edcb39d","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"1bc82f5b3bb93df76d19730c84467b0b346187198537135d63a672956f323720","affectsGlobalScope":true},"a958d081d81c1194d1878b28f081d0144d95f4e36c6b375e357cb982e8b40705",{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},"125f94cba85ffdcd5c682bfda4739c07d994e50715b7cd8a0217c1cf50695cfe","6fca127aadf9a3a6ec914442d3995cdca17a9d1b337138da166d65663921dcac","d23aeb9ad9955d3b6df7a972355dd465aaa0f7b8c223834f9499585b75f2ab04","cf000108177216c2ffd9962c785dfe0eb36306b14817894115be2d8f470552d6","61937532d01a86bc9f9847e016305cec9b5a716db5a630a0c37049a477d18f60","c792ecb733fc79337b7b497d3298dc31217f0f2b944ade255037dea871915353","61e8a34952f23c48deff3e85e982b1b3a600d15fb4d3b7c07a9096505ad2c35c","4fe57f4d9ea10f6069813ca18818838ce21258f42e79f898b4fb7860ce0c58ca","1e525db7ea2d7369211b74756f1034e4219134c3c99c0e147998caf43b10e017","4d3af9c3e4d7e0b2eeed3f0eb0190aaaaa6655a63275fbc2f5d6a7cde8aa70ec","d2c8976d6e6874ce159fc31c8511fffde72dcdf230394750ea4ef3c02a32e52e","fb6fa5434ecf7670f3dba36bced663afe875282d1231fb3ae95eeedae85ce4cf","e4cb6f9e4d40f538e26c72cc81ebd8ebae3317f940f39696e30d1381f36e5a0a","30289252a73fce7ff4b88369c829ed1f8533ccc028c55b264fc96fb576ffdd6a","3f473bb1c974b627227610013561332ea2f8e6eed0e86e87eaef96b6146d28c8","c841bf19529e2909275a743e54d43dadc52671909fa27db84f965c4fa5ec3b6f","c8bd10b6cdcb527ce859b9c5b4b6168f270cec11cb051cc77eb4dead206b5e0f","19179e07983759a8dd6adeb0c6e5c6a9525564aa986123d426171bd586791d21","b4e123af1af6049685c93073a15868b50aebdad666d422edc72fa2b585fa8a37","f86c04a744ebcede96bac376f9a2c90f2bd3c422740d91dda4ca6233199d4977","6ae1bddee5c790439bd992abd063b9b46e0cadd676c2a8562268d1869213ff60","606244fc97a6a74b877f2e924ba7e55b233bc6acb57d7bf40ba84a5be2d9adb0","4a1cabac71036b8a14f5db1b753b579f0c901c7d7b9227e6872dadf6efb104e8","062959a1d825b96639d87be35fe497cbd3f89544bf06fdad577bbfb85fcf604c","4c3672dc8f4e4fdd3d18525b22b31f1b5481f5a415db96550d3ac5163a6c3dd3","f9a69ca445010b91fe08f08c06e0f86d79c0d776905f9bdb828477cb2a1eb7fc","ad7fd0e7ee457d4884b3aaecbcbd2a80b6803407c4ce2540c296170d4c7918ef","a50ef21605f41c6acad6c3ef0307e5311b94963c846ca093c764b80cdb5318d6","74b4035dd26d09a417c44ca23ab5ee69b173f8c2f6b2e47350ab0795cf2d4a17","918f86ee2b19cc38cb8b1a4cf8f223eb228aaa39df3604c42f700fac2f0b3ea1","762bc52248d3fab9873c7af564caf622358312cb35de42a4393b71cc36e14621","d02ec79cefaf292fae64b3be5a4416e64b4e420a6429fd458fac6e1bb4c7950e","27abed653f600ea0d5c86e94181beb42824e0f3f16337e2f9e7e9e9c2c392edf","d7871e0e653aa7197fee88886db5678bee6d42164c1f36e4bce9421ddfa7ca49","11ed10bdb3bcc99893570507eac8fece4840add97ee1d4f5a7fbf41cbfdea0d4","429fb571d3db07d3eaa2e74d43eb4190ece3e0de832ed564aeeaf08873e598eb","406d52bf33d618d846aa0d831ee004290567e328edcd4517bbff2937cc977abf","d3060e0810fc0d0dc009e6f086ef413d3c8aeaaf07da25c8d25fd4e181646acf","c0306658efb85764bb6d8d55097007c68a70539b24d0e18fb6edd6eb1778f632","08f7e6ffa66c66a636aecc5acbeb998215d9d09ccba0c558afb7df7e218edeaf","f829eb39aea4487f0ff94a42c56a1a73bc5202bbdeb03f7a638e4ab3e290d017","549d265a212fb5157c8919a4115e83529d0efadb9ab3bd674bc75e5df0fdf403","822d9ef74bb29e9b0362f9008b3bd1eec6d755ae3370839234282547aab95016","87f792436b033580a1dcc908d15851e4a5d3d7aa68b1d1c6a142706ef8b154a3","647dd8fd86e81524dc5915ec4997b8fc66d4a86ac2e37cde40e903ba1b349cb9","56a3aef852aa146f9fe362a1d09e13dae20f3794d33f66b371829348a8ee0e62","07c14b3359e3ed5607c690b9f421f84dd93887e06416d52f60889b4082030464","063f439998b87e20f46fa82cb793c5aae5c2d714a26bb8221e07f5d4c82c989d","573c9d08965a7fff6d8c08b20e525b10fdc5ba44c2feeda5b16edd6e4fd64dd0","e59d00012fb20e6746def2f4bc94650526aa6c574c49ad6a50a992f61a3ee675","e47b8ec56eb49bc1c53c9012daa9874de14ad0c5da442485aec333571c74b526","45a63e17814c570ea59407f231ef9c561510bd6edb36f17479b09b44619496c6","5d7018910750d9cb4a912577ad2951fc3fad83c30d637689b69ffc6bbb0c9f5a","d2d9e98a2b167079474768593e1e7125fc3db055add8fbdb5977e3d05a8a3696","6462da67490105ba7d98cf312c2faf8794c425781128b161ea8394d66502eec8","62359da52b6c8d00c50c2e50738fac82e902f916fdf458d8159e7edb1c60c3a8","1e0ac21bc775686383ea8c8e48bd98b385e6195b25c85525a7affd08a2cd38b9","0449615e1ed03c7d54fc435a63b7ef0cb4e5cea5ac40c9a63280a46f7eeae0ff","cbe4710c187acaa5f02b08715c1563fdad82764462654043eb68232ecb626b8d","5190f1a110a789c2f8ed8dcf2da6ce122dcb74249d0c01d19d1ed0b1c6bb02a1","3650bbe137c9c44bc6b8f44a56353b00eba9654e41a9355e6228f7f0f464c648","9c4f32d2fa2b6efeed4f9fbd98254121b17982110b48edcede96e2dc2af0894d","17dde5686b18dc71dbfd971a083498509a4bd1434f1f3b0566b1eb679441f167","a3dcfa473fb451f89860a5dc83f1994fccd151af55a87683cb6dffc0abba782b","40b369b61fd0bede44a39611baae531e6d46a718b705b9b45c5add4711f19744","225a94e9b80d9ed325a5996ddf6e8e8ec1e35d0cc78ce63b4f7bc3109c41fcfd","220b6ba3c2274aada1b2a9ad69f6966c8d36de546e708fe2b42425a265a48e2a","29733740a84bde4ceebd6415c3a47d36c9a956fdddeacec49a664665a54018b0","6e603a0983306db957764528f138c4897f0391799f876c4c1b46226c0dd8cef2","36d8781b9aa56efc6c8e0c6366ecdebf7327a2ac5b1e1490de1ad5a911457bb1","e8184f498bb78351e6d6f9fe654279d9882d58dd822a9a1178a96e7570262502","ff0a6ed7e754b2cfb1a907578f1c335b4c5ace714a5adb956f94d6192b17f078","bd3086a825d96259e7a1c79ad1bb13749d41cb79ba4336ba813cc65cbd51fd74","46adb1b5ccc5123a4592a20c1c56c8c7ef34d9b2ea43b16a271587ac2076728f","a32f1f8649b0e898d4a54e1860effc7f48dd285bc99f83dc35ccf85203736b3b","beacf8337f15a959b6e4d95d7b55432af842b0484da0f0d342a0dd75beab8fe3","8800447dd5175024126c56daa37ee888e507a5b4cb010790ccc86530a46424fb","cd04b594271be8b8eca1453116f1591ba60ce64d80183b07765a4b5e811966ea","c2c2c6c7ab6fd08050cc906a2230657bd7ae25365a38db7a4c2f84980133d0cf","8199ff7448213d4633834954dad4e5a5e7ed2e14fcfd3f5a1b53d156a1cd9972","327bc1d7e826f1be1b18c51b3444a2dfc66d3f810b43ff5f32b26587db3ea1d2","8818dcc765cb9236f6a01aaa837a3612271777a26ffbd29282a3c282f8704649","d461fc73e0721ae92652f11a61cd1014a0698fb7ddb81beac1aa7d09aa139abb","83ff1f6f71ab0ea7a2a725a864d70672acadada85bba149552c8d815684d90ea","3b5f3c05c1a13e8eaa38abc36a6452a68140cce157a0d7ee88e0695770696300","368eeb714465ced0e24057e40707a9e064d214774b3d7eb7f129cb24e2903b18","b5f5bbc6d622c252fc13b512ed42cafd65019768e3f0430637e517d9be69547f","71fce7a0dc64feb145e0f58842f43984a2e9ecd79861d8ad7315c0d272575275","066db40ccd6c90d1e57e9f163458713463d4e2771c156acf9ffb7f258646946e","2366b3f634513f748f1cc92ba9a5b015b39cf0195e25c942e3d844721f0e233d","667a5fe656b9e0bf163b829ad74d679c56e82c83456a7c5387ffca0d1f901e5e","d93931264950da279434192bb043f8e379b4a0959bcd294ca89c8b89e1a6772b","3a1cab834f4a3ceedd0dfe8c00b9ca84431454cad8730eef0d0a18d1c0f7a7aa","8d8b84756b85d1dd9d3a60d54f4410b892f931d46560f60ddc44a4decb8f9ee4","902abf1b6aeb2908452ad206db72b0d39029e000a28dff529751585a4e7e5f07","68e39d827a3bd5054e54a433fc90c118941096eb3e9f432b28ea5f88b0fe77b1","691a13dbde331d5bcce65e1463f924b78ad046c0c05ec57bca010e6435de8905","0f112494322a7ecb5dda1823f0f84255451a51d2ad862a0ae1014d361f0257de","bca410625e15b9622626f7ae8aa445153232e0d45e46f0e8dbcd632d735c8e47","e1802d98bc1c1b96b44ea5bb57126dc9757c9b99d87ee997af0ffe1d33afbdb0","4e6521886023150c01f961b93a382645704a6e42739c8277f3abd1a61806243c","e6295247cd02955c7385b55efa603d19c4d9330b1343937a9b1c023e346f1ab5","a1473225afc48a471cde6656263736febf2dc83543ad10ef66936f7ed71b2fe3","fadb19eb44c06b59275ad6f620324ea297cbaa20f744ca09d9d83ae122bee14c"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[45,47,48,49,50,51,52,53,54,55,56,57],[45,46,48,49,50,51,52,53,54,55,56,57],[46,47,48,49,50,51,52,53,54,55,56,57],[45,46,47,49,50,51,52,53,54,55,56,57],[45,46,47,48,50,51,52,53,54,55,56,57],[45,46,47,48,49,51,52,53,54,55,56,57],[45,46,47,48,49,50,52,53,54,55,56,57],[45,46,47,48,49,50,51,53,54,55,56,57],[45,46,47,48,49,50,51,52,54,55,56,57],[45,46,47,48,49,50,51,52,53,55,56,57],[45,46,47,48,49,50,51,52,53,54,56,57],[45,46,47,48,49,50,51,52,53,54,55,57],[45,46,47,48,49,50,51,52,53,54,55,56],[119],[115,116,117,118],[141],[140],[140,141,142,143,144,145,146,147,148,149,150],[143],[145],[93,94,95,96],[93],[94],[59,60,61,62,63,64],[59],[57,58,65,92,98,163,165,168,169],[166],[65],[166,167],[57,65,151,162,170],[139,163,169,179],[185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204],[205],[65,92,162,213],[65,92],[214,215],[221,222,223],[217],[98,139,179,219,220,225],[92,98,220,221,225],[139,218,219],[98,219,220,225],[139,163,169,170,180,184,205,206,207,212,216,224],[211],[209,210],[208],[57],[92,110],[99,112,164],[57,110,111,139,163],[57,100,111],[57,103,110,139,163,165,183],[65,92,110,151,163,169],[57,92,98,100,110,139,163,165,169,205],[103],[101,102,104,105,106,107,108,109],[126,127],[119,129],[134,135],[123,124],[122],[113,114,120,122,125,128,129,130,131,133,136,137,138],[132],[129],[121],[97],[171],[171,172,174,175,176,177,178],[173],[119,171],[158],[153,154,155,156,157,158],[153,154,155,156,157,159],[158,159],[160],[152,160,161],[181,182],[183],[81],[66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91]],"referencedMap":[[46,1],[47,2],[45,3],[48,4],[49,5],[50,6],[51,7],[52,8],[53,9],[54,10],[55,11],[56,12],[57,13],[173,14],[119,15],[142,16],[143,17],[151,18],[144,17],[145,17],[146,19],[147,20],[141,17],[148,20],[149,17],[150,20],[97,21],[94,22],[95,23],[65,24],[63,25],[64,25],[60,25],[61,25],[62,25],[170,26],[167,27],[166,28],[168,29],[163,30],[180,31],[187,32],[188,32],[185,33],[205,32],[189,32],[191,32],[190,32],[192,32],[193,32],[194,32],[195,32],[196,32],[197,32],[198,32],[200,32],[199,32],[202,32],[201,32],[204,32],[203,32],[214,34],[215,35],[216,36],[224,37],[218,38],[221,39],[222,40],[220,41],[223,42],[225,43],[212,44],[211,45],[209,46],[210,46],[99,47],[111,48],[165,49],[164,50],[112,51],[184,52],[207,53],[206,54],[101,47],[104,55],[110,56],[106,55],[107,55],[127,14],[128,57],[135,58],[136,59],[125,60],[123,61],[137,61],[120,14],[130,61],[139,62],[133,63],[132,64],[131,61],[129,61],[122,65],[98,66],[172,67],[179,68],[178,14],[174,69],[171,14],[177,70],[153,71],[157,71],[156,71],[155,71],[159,72],[154,71],[158,73],[160,74],[161,75],[162,76],[183,77],[181,78],[82,79],[92,80]],"exportedModulesMap":[[46,1],[47,2],[45,3],[48,4],[49,5],[50,6],[51,7],[52,8],[53,9],[54,10],[55,11],[56,12],[57,13],[173,14],[119,15],[142,16],[143,17],[151,18],[144,17],[145,17],[146,19],[147,20],[141,17],[148,20],[149,17],[150,20],[97,21],[94,22],[95,23],[65,24],[63,25],[64,25],[60,25],[61,25],[62,25],[170,26],[167,27],[166,28],[168,29],[163,30],[180,31],[187,32],[188,32],[185,33],[205,32],[189,32],[191,32],[190,32],[192,32],[193,32],[194,32],[195,32],[196,32],[197,32],[198,32],[200,32],[199,32],[202,32],[201,32],[204,32],[203,32],[214,34],[215,35],[216,36],[224,37],[218,38],[221,39],[222,40],[220,41],[223,42],[225,43],[212,44],[211,45],[209,46],[210,46],[99,47],[111,48],[165,49],[164,50],[112,51],[184,52],[207,53],[206,54],[101,47],[104,55],[110,56],[106,55],[107,55],[127,14],[128,57],[135,58],[136,59],[125,60],[123,61],[137,61],[120,14],[130,61],[139,62],[133,63],[132,64],[131,61],[129,61],[122,65],[98,66],[172,67],[179,68],[178,14],[174,69],[171,14],[177,70],[153,71],[157,71],[156,71],[155,71],[159,72],[154,71],[158,73],[160,74],[161,75],[162,76],[183,77],[181,78],[82,79],[92,80]],"semanticDiagnosticsPerFile":[46,47,45,48,49,50,51,52,53,54,55,56,57,117,173,115,119,116,118,58,142,143,151,144,145,146,217,140,147,141,148,121,100,149,150,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,93,96,97,94,95,65,63,64,60,61,62,59,170,167,166,168,163,180,187,186,188,185,205,189,191,190,192,193,194,195,196,197,198,200,199,202,201,204,203,214,215,216,219,224,218,221,222,220,223,225,212,211,209,210,208,169,99,111,165,164,112,184,207,206,103,101,105,102,104,110,109,106,107,108,127,128,126,135,136,134,125,124,123,137,114,120,113,130,138,139,133,132,131,129,122,98,172,179,176,178,174,171,177,175,153,157,156,155,159,154,158,213,160,161,162,152,182,183,181,80,75,89,88,70,90,78,77,72,68,81,82,74,83,92,67,66,71,79,73,69,76,91,85,84,87,86]},"version":"4.4.2"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/uuid/index.d.ts","../api-fetch/build-types/types.d.ts","../api-fetch/build-types/middlewares/nonce.d.ts","../api-fetch/build-types/middlewares/preloading.d.ts","../api-fetch/build-types/middlewares/root-url.d.ts","../api-fetch/build-types/middlewares/fetch-all-middleware.d.ts","../api-fetch/build-types/middlewares/media-upload.d.ts","../api-fetch/build-types/index.d.ts","../url/build-types/is-url.d.ts","../url/build-types/is-email.d.ts","../url/build-types/get-protocol.d.ts","../url/build-types/is-valid-protocol.d.ts","../url/build-types/get-authority.d.ts","../url/build-types/is-valid-authority.d.ts","../url/build-types/get-path.d.ts","../url/build-types/is-valid-path.d.ts","../url/build-types/get-query-string.d.ts","../url/build-types/build-query-string.d.ts","../url/build-types/is-valid-query-string.d.ts","../url/build-types/get-path-and-query-string.d.ts","../url/build-types/get-fragment.d.ts","../url/build-types/is-valid-fragment.d.ts","../url/build-types/add-query-args.d.ts","../url/build-types/get-query-arg.d.ts","../url/build-types/get-query-args.d.ts","../url/build-types/has-query-arg.d.ts","../url/build-types/remove-query-args.d.ts","../url/build-types/prepend-http.d.ts","../url/build-types/safe-decode-uri.d.ts","../url/build-types/safe-decode-uri-component.d.ts","../url/build-types/filter-url-for-display.d.ts","../url/build-types/clean-for-slug.d.ts","../url/build-types/get-filename.d.ts","../url/build-types/normalize-path.d.ts","../url/build-types/index.d.ts","../../node_modules/utility-types/dist/aliases-and-guards.d.ts","../../node_modules/utility-types/dist/mapped-types.d.ts","../../node_modules/utility-types/dist/utility-types.d.ts","../../node_modules/utility-types/dist/functional-helpers.d.ts","../../node_modules/utility-types/dist/index.d.ts","../deprecated/build-types/index.d.ts","./src/queried-data/actions.js","../../node_modules/rememo/rememo.d.ts","./src/utils/conservative-map-item.js","./src/utils/get-normalized-comma-separable.js","./src/types.ts","./src/utils/if-matching-action.js","./src/utils/forward-resolver.js","./src/utils/on-sub-key.js","./src/utils/replace-action.js","./src/utils/with-weak-map-cache.js","./src/utils/is-raw-attribute.js","./src/utils/index.js","./src/queried-data/get-query-parts.js","./src/queried-data/selectors.js","../data/build-types/components/with-select/index.d.ts","../data/build-types/components/with-dispatch/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/@types/react/node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../data/build-types/components/with-registry/index.d.ts","../../node_modules/redux/index.d.ts","../data/build-types/types.d.ts","../data/build-types/components/use-dispatch/use-dispatch.d.ts","../data/build-types/components/use-dispatch/use-dispatch-with-map.d.ts","../data/build-types/components/use-dispatch/index.d.ts","../data/build-types/components/async-mode-provider/use-async-mode.d.ts","../data/build-types/components/async-mode-provider/context.d.ts","../data/build-types/components/async-mode-provider/index.d.ts","../data/build-types/registry.d.ts","../data/build-types/controls.d.ts","../data/build-types/redux-store/index.d.ts","../data/build-types/plugins/persistence/index.d.ts","../data/build-types/plugins/index.d.ts","../data/build-types/components/registry-provider/use-registry.d.ts","../data/build-types/components/registry-provider/context.d.ts","../data/build-types/components/registry-provider/index.d.ts","../data/build-types/components/use-select/index.d.ts","../data/build-types/factory.d.ts","../data/build-types/index.d.ts","../../node_modules/no-case/dist/index.d.ts","../../node_modules/pascal-case/dist/index.d.ts","../../node_modules/camel-case/dist/index.d.ts","../../node_modules/capital-case/dist/index.d.ts","../../node_modules/constant-case/dist/index.d.ts","../../node_modules/dot-case/dist/index.d.ts","../../node_modules/header-case/dist/index.d.ts","../../node_modules/param-case/dist/index.d.ts","../../node_modules/path-case/dist/index.d.ts","../../node_modules/sentence-case/dist/index.d.ts","../../node_modules/snake-case/dist/index.d.ts","../../node_modules/change-case/dist/index.d.ts","../i18n/build-types/sprintf.d.ts","../hooks/build-types/createAddHook.d.ts","../hooks/build-types/createRemoveHook.d.ts","../hooks/build-types/createHasHook.d.ts","../hooks/build-types/createDoingHook.d.ts","../hooks/build-types/createDidHook.d.ts","../hooks/build-types/index.d.ts","../hooks/build-types/createHooks.d.ts","../i18n/build-types/create-i18n.d.ts","../i18n/build-types/default-i18n.d.ts","../i18n/build-types/index.d.ts","./src/entities.js","./src/queried-data/reducer.js","./src/queried-data/index.js","./src/batch/default-processor.js","./src/batch/create-batch.js","./src/batch/index.js","./src/name.js","./src/actions.js","../element/build-types/react.d.ts","../element/build-types/create-interpolate-element.d.ts","../../node_modules/@types/react-dom/index.d.ts","../element/build-types/react-platform.d.ts","../element/build-types/utils.d.ts","../element/build-types/platform.d.ts","../element/build-types/serialize.d.ts","../element/build-types/raw-html.d.ts","../element/build-types/index.d.ts","./src/entity-provider.js","../is-shallow-equal/build-types/objects.d.ts","../is-shallow-equal/build-types/arrays.d.ts","../is-shallow-equal/build-types/index.d.ts","./src/reducer.js","./src/entity-types/helpers.ts","./src/entity-types/base-entity-records.ts","./src/entity-types/attachment.ts","./src/entity-types/comment.ts","./src/entity-types/menu-location.ts","./src/entity-types/nav-menu.ts","./src/entity-types/nav-menu-item.ts","./src/entity-types/page.ts","./src/entity-types/plugin.ts","./src/entity-types/post.ts","./src/entity-types/settings.ts","./src/entity-types/sidebar.ts","./src/entity-types/taxonomy.ts","./src/entity-types/theme.ts","./src/entity-types/user.ts","./src/entity-types/type.ts","./src/entity-types/widget.ts","./src/entity-types/widget-type.ts","./src/entity-types/wp-template.ts","./src/entity-types/wp-template-part.ts","./src/entity-types/index.ts","./src/selectors.ts","./src/resolvers.js","./src/locks/utils.js","./src/locks/reducer.js","./src/locks/selectors.js","./src/locks/engine.js","./src/locks/actions.js","../html-entities/build-types/index.d.ts","./src/fetch/__experimental-fetch-link-suggestions.js","./src/fetch/__experimental-fetch-url-data.js","./src/fetch/index.js","../../node_modules/memize/index.d.ts","./src/hooks/memoize.js","./src/hooks/constants.ts","./src/hooks/use-query-select.ts","./src/hooks/use-entity-record.ts","./src/hooks/use-entity-records.ts","./src/hooks/use-resource-permissions.ts","./src/hooks/index.ts","./src/index.js"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","6aae23700d45e8ac7ca7e269047aed3eecc64ce87c8fa5e52f2d98e280bd04ef","6b3d3ecbf6958624910af080a873cd84b5b99d513eb52147f18fe04a51cb19ce","ea9b95f45cd90b16200134d1f79e36380d57b866300b479b3e5b62a6dbeb92bb","14bc80bd2cb4c72aaaf27cfcdb62377cf3e3366f9e9045fa8ca232629457aca9","ff164c4671955c882140da80d0a6a69552ba5c2ddce3969f74c5c9d63683744b","dca26c859f7b4b8cf118dc9b5e99d295a3031bbd980e488819ed830ba769b890","1152220b82b14ecd456908cf61b6089b49596278eace0d10030384f8e31ba5ee","91265e9c2705df9edc7d912afe177cb9dbe4bd4fe254cc43466885544c065013","81e7db9916d6ce0323656530cb9aba444450454e5a8f3d0108f04931abb36258","7858aa21ac91fef2c9cdf96b3ae00e025efed2920ffca40a75df452d4f5a9576","eb80dedcd92c17d93f403e736e1c3e2aef39379841070221a353a7c13b57369f","029f3a1e2534e85a7cd00f3e79781003e0bcf5147d96db93594ace839803c6cf","2eea9984a7ea08e576d2970ba65a65ebba02699bccdbd0d3a08bb141e15972a1","308246446616acc5397747f35fa8788de7e6ba6cd5dc0ec2752bd75eafefcdb9","9677ef56e52539a73f1d9b89c692cf866d05017b05d9d2fe8cd35a30b42c2d47","6048b5c50d6486b1084b036a7f7d6c76c032d90cc2186f79b344a12ceb488511","26885abe66e07fd38da599d5fc9b4fa8b2df803c56e9bba99a2505e0b982c042","507dc7647a71c90e8cce85259c624b355c22e0dee1833aa4ba20c15a4f5bd21a","c30aaf3d189be8c29b2d3a7761e94b5b532fec6ba0caa74d07a4c1056469acf0","454217fe7beba4cb5497d4bc7fd3116437ce85e5217eb66f3b367fbcbfd45861","65e1ffb7b2343a1814c5cb85164f7d26bce1477b2cf04e6736f37732bc4801d6","3f810d7cac3e3729241d52d667538dc4ca27687f5d40d91f4cb5bce955df5f94","a2bedf5636ce572e507823229c9b7d4e87d97830497822d76e95a971fee78c92","17ab13eba7cde42ca7c95110c7eda405ba6aba7471437d912078d67dfada98eb","f7e734ca25cb0e8c52247b9a7d98f81ffd6ac52485bf9d8938fdbd4d828f469c","5261283f0b521fc1f255a060dcd86986985bd516822b69bb5504392462962899","44e20ca481bcc2abec1f4fcf54139caa4389f1bc16e3ee9d19a10e522903e9ab","a31eda6fcbf86596f69f7c18e6d13af58191fdc9c9620bcc67595fd9e49043ab","c93085fa9e5e568c0a45f64caa05e713fd5438e93d32f5970753e44910bdd540","1e442333978b5864818023d54d4f2e2aa0cbdfb2b486a0d43c900a7a87d61d1d","f215ce6766668f37f5e4652d0facdf55816f24aa5fc6f68c5e33754dbe5219fb","e900ec60297a15c4de70ddaade026ea4fe635e27c286fedd82dd5e963daa1930","e4e975c7339a9579209f12246e95f95216aa3558b8e7719fea2fbadaf28c574b","178efee8d4335cb61ec45c10e6de6d7afe48028963c5633f5937f25eaffa2387","bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","b192606574769a5566620f9bf19358a3994bc2726ecdeaad9c66f3333b2687c8","acc22baecb7e578a5639f47b09e19de1d81ec91cf762d6f91d68297b10c63177","d83d6ec306241a9a59716eadf007d405cbc9d77b688871089a02159087100d5c","bcfac9632a790e732341b5009a60e86d72da1d2cc383c1796a66d233c5942c6f","0292552bfdda78ed1910905ea046a336186ce82d9fab516ea21616f47147ccdc","78673ec3910aff07d76d2a24b460523c69d50afadfcd836cd9a022ad1a3ebfc2","ff41da7aeac53e419a3a7eb792ea03c77cf05e44d379dfa2190920bfe6dde09b","849507adfc66cfedda67c3384a1ec078c542263589413c5b31c195aee25dc1f2","c30b952d25562463882bbbaac6242e2cb47cd342c27388f46e4b7b0c98a4b659","c32e26a53123519e9bcf0aa960cc0a5dfb3ecebcc27fe0ccc649702b45da1e2a","59688ffdb24f7f057e35f54280e90bda1e57efee745479a1bb98321b263870e8","95d027d78b9577e00f9d4e0eba816fd21f1b2927c801f89a1db8369b837471c3","9f1a1489db159ad8956dfa60d68a51f7a740f644385220af1ccfde5d5fba79c6","91faeb8163ec860e5b5c02eda51cd16e64de95baaadfec34e0fbd9d39176ed8a","b94c955213263a318d4ab2f33479464e1ee5551b9b29859b9084f4b741dc7ed6","a355bc3ad1c78a74de3dd67cc484ea4667a3f28f7d5384bcc10d0f1a2a506901","cb1063fcd20e601b70c6ce424597018ef658b4aa5ff4bf6514a351a9222238da",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"381899b8d1d4c1be716f18cb5242ba39f66f4b1e31d45af62a32a99f8edcb39d","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"1bc82f5b3bb93df76d19730c84467b0b346187198537135d63a672956f323720","affectsGlobalScope":true},"a958d081d81c1194d1878b28f081d0144d95f4e36c6b375e357cb982e8b40705",{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},"125f94cba85ffdcd5c682bfda4739c07d994e50715b7cd8a0217c1cf50695cfe","6fca127aadf9a3a6ec914442d3995cdca17a9d1b337138da166d65663921dcac","d23aeb9ad9955d3b6df7a972355dd465aaa0f7b8c223834f9499585b75f2ab04","cf000108177216c2ffd9962c785dfe0eb36306b14817894115be2d8f470552d6","61937532d01a86bc9f9847e016305cec9b5a716db5a630a0c37049a477d18f60","c792ecb733fc79337b7b497d3298dc31217f0f2b944ade255037dea871915353","61e8a34952f23c48deff3e85e982b1b3a600d15fb4d3b7c07a9096505ad2c35c","4fe57f4d9ea10f6069813ca18818838ce21258f42e79f898b4fb7860ce0c58ca","1e525db7ea2d7369211b74756f1034e4219134c3c99c0e147998caf43b10e017","4d3af9c3e4d7e0b2eeed3f0eb0190aaaaa6655a63275fbc2f5d6a7cde8aa70ec","d2c8976d6e6874ce159fc31c8511fffde72dcdf230394750ea4ef3c02a32e52e","fb6fa5434ecf7670f3dba36bced663afe875282d1231fb3ae95eeedae85ce4cf","e4cb6f9e4d40f538e26c72cc81ebd8ebae3317f940f39696e30d1381f36e5a0a","30289252a73fce7ff4b88369c829ed1f8533ccc028c55b264fc96fb576ffdd6a","3f473bb1c974b627227610013561332ea2f8e6eed0e86e87eaef96b6146d28c8","c841bf19529e2909275a743e54d43dadc52671909fa27db84f965c4fa5ec3b6f","c8bd10b6cdcb527ce859b9c5b4b6168f270cec11cb051cc77eb4dead206b5e0f","19179e07983759a8dd6adeb0c6e5c6a9525564aa986123d426171bd586791d21","b4e123af1af6049685c93073a15868b50aebdad666d422edc72fa2b585fa8a37","f86c04a744ebcede96bac376f9a2c90f2bd3c422740d91dda4ca6233199d4977","6ae1bddee5c790439bd992abd063b9b46e0cadd676c2a8562268d1869213ff60","606244fc97a6a74b877f2e924ba7e55b233bc6acb57d7bf40ba84a5be2d9adb0","4a1cabac71036b8a14f5db1b753b579f0c901c7d7b9227e6872dadf6efb104e8","062959a1d825b96639d87be35fe497cbd3f89544bf06fdad577bbfb85fcf604c","4c3672dc8f4e4fdd3d18525b22b31f1b5481f5a415db96550d3ac5163a6c3dd3","f9a69ca445010b91fe08f08c06e0f86d79c0d776905f9bdb828477cb2a1eb7fc","ad7fd0e7ee457d4884b3aaecbcbd2a80b6803407c4ce2540c296170d4c7918ef","a50ef21605f41c6acad6c3ef0307e5311b94963c846ca093c764b80cdb5318d6","74b4035dd26d09a417c44ca23ab5ee69b173f8c2f6b2e47350ab0795cf2d4a17","918f86ee2b19cc38cb8b1a4cf8f223eb228aaa39df3604c42f700fac2f0b3ea1","762bc52248d3fab9873c7af564caf622358312cb35de42a4393b71cc36e14621","d02ec79cefaf292fae64b3be5a4416e64b4e420a6429fd458fac6e1bb4c7950e","27abed653f600ea0d5c86e94181beb42824e0f3f16337e2f9e7e9e9c2c392edf","d7871e0e653aa7197fee88886db5678bee6d42164c1f36e4bce9421ddfa7ca49","11ed10bdb3bcc99893570507eac8fece4840add97ee1d4f5a7fbf41cbfdea0d4","429fb571d3db07d3eaa2e74d43eb4190ece3e0de832ed564aeeaf08873e598eb","406d52bf33d618d846aa0d831ee004290567e328edcd4517bbff2937cc977abf","d3060e0810fc0d0dc009e6f086ef413d3c8aeaaf07da25c8d25fd4e181646acf","c0306658efb85764bb6d8d55097007c68a70539b24d0e18fb6edd6eb1778f632","08f7e6ffa66c66a636aecc5acbeb998215d9d09ccba0c558afb7df7e218edeaf","f829eb39aea4487f0ff94a42c56a1a73bc5202bbdeb03f7a638e4ab3e290d017","549d265a212fb5157c8919a4115e83529d0efadb9ab3bd674bc75e5df0fdf403","822d9ef74bb29e9b0362f9008b3bd1eec6d755ae3370839234282547aab95016","87f792436b033580a1dcc908d15851e4a5d3d7aa68b1d1c6a142706ef8b154a3","647dd8fd86e81524dc5915ec4997b8fc66d4a86ac2e37cde40e903ba1b349cb9","56a3aef852aa146f9fe362a1d09e13dae20f3794d33f66b371829348a8ee0e62","07c14b3359e3ed5607c690b9f421f84dd93887e06416d52f60889b4082030464","063f439998b87e20f46fa82cb793c5aae5c2d714a26bb8221e07f5d4c82c989d","573c9d08965a7fff6d8c08b20e525b10fdc5ba44c2feeda5b16edd6e4fd64dd0","e59d00012fb20e6746def2f4bc94650526aa6c574c49ad6a50a992f61a3ee675","e47b8ec56eb49bc1c53c9012daa9874de14ad0c5da442485aec333571c74b526","45a63e17814c570ea59407f231ef9c561510bd6edb36f17479b09b44619496c6","5d7018910750d9cb4a912577ad2951fc3fad83c30d637689b69ffc6bbb0c9f5a","d2d9e98a2b167079474768593e1e7125fc3db055add8fbdb5977e3d05a8a3696","6462da67490105ba7d98cf312c2faf8794c425781128b161ea8394d66502eec8","62359da52b6c8d00c50c2e50738fac82e902f916fdf458d8159e7edb1c60c3a8","1e0ac21bc775686383ea8c8e48bd98b385e6195b25c85525a7affd08a2cd38b9","0449615e1ed03c7d54fc435a63b7ef0cb4e5cea5ac40c9a63280a46f7eeae0ff","cbe4710c187acaa5f02b08715c1563fdad82764462654043eb68232ecb626b8d","5190f1a110a789c2f8ed8dcf2da6ce122dcb74249d0c01d19d1ed0b1c6bb02a1","3650bbe137c9c44bc6b8f44a56353b00eba9654e41a9355e6228f7f0f464c648","9c4f32d2fa2b6efeed4f9fbd98254121b17982110b48edcede96e2dc2af0894d","17dde5686b18dc71dbfd971a083498509a4bd1434f1f3b0566b1eb679441f167","a3dcfa473fb451f89860a5dc83f1994fccd151af55a87683cb6dffc0abba782b","40b369b61fd0bede44a39611baae531e6d46a718b705b9b45c5add4711f19744","225a94e9b80d9ed325a5996ddf6e8e8ec1e35d0cc78ce63b4f7bc3109c41fcfd","220b6ba3c2274aada1b2a9ad69f6966c8d36de546e708fe2b42425a265a48e2a","29733740a84bde4ceebd6415c3a47d36c9a956fdddeacec49a664665a54018b0","6e603a0983306db957764528f138c4897f0391799f876c4c1b46226c0dd8cef2","36d8781b9aa56efc6c8e0c6366ecdebf7327a2ac5b1e1490de1ad5a911457bb1","e8184f498bb78351e6d6f9fe654279d9882d58dd822a9a1178a96e7570262502","ff0a6ed7e754b2cfb1a907578f1c335b4c5ace714a5adb956f94d6192b17f078","bd3086a825d96259e7a1c79ad1bb13749d41cb79ba4336ba813cc65cbd51fd74","46adb1b5ccc5123a4592a20c1c56c8c7ef34d9b2ea43b16a271587ac2076728f","a32f1f8649b0e898d4a54e1860effc7f48dd285bc99f83dc35ccf85203736b3b","beacf8337f15a959b6e4d95d7b55432af842b0484da0f0d342a0dd75beab8fe3","8800447dd5175024126c56daa37ee888e507a5b4cb010790ccc86530a46424fb","cd04b594271be8b8eca1453116f1591ba60ce64d80183b07765a4b5e811966ea","c2c2c6c7ab6fd08050cc906a2230657bd7ae25365a38db7a4c2f84980133d0cf","8199ff7448213d4633834954dad4e5a5e7ed2e14fcfd3f5a1b53d156a1cd9972","327bc1d7e826f1be1b18c51b3444a2dfc66d3f810b43ff5f32b26587db3ea1d2","8818dcc765cb9236f6a01aaa837a3612271777a26ffbd29282a3c282f8704649","d461fc73e0721ae92652f11a61cd1014a0698fb7ddb81beac1aa7d09aa139abb","83ff1f6f71ab0ea7a2a725a864d70672acadada85bba149552c8d815684d90ea","3b5f3c05c1a13e8eaa38abc36a6452a68140cce157a0d7ee88e0695770696300","b0d35fd661c6d3a53bc9568b079ebc3363561d6e42b773ab40f2217310b3d1a1","b5f5bbc6d622c252fc13b512ed42cafd65019768e3f0430637e517d9be69547f","71fce7a0dc64feb145e0f58842f43984a2e9ecd79861d8ad7315c0d272575275","066db40ccd6c90d1e57e9f163458713463d4e2771c156acf9ffb7f258646946e","2366b3f634513f748f1cc92ba9a5b015b39cf0195e25c942e3d844721f0e233d","667a5fe656b9e0bf163b829ad74d679c56e82c83456a7c5387ffca0d1f901e5e","d93931264950da279434192bb043f8e379b4a0959bcd294ca89c8b89e1a6772b","3a1cab834f4a3ceedd0dfe8c00b9ca84431454cad8730eef0d0a18d1c0f7a7aa","8d8b84756b85d1dd9d3a60d54f4410b892f931d46560f60ddc44a4decb8f9ee4","902abf1b6aeb2908452ad206db72b0d39029e000a28dff529751585a4e7e5f07","68e39d827a3bd5054e54a433fc90c118941096eb3e9f432b28ea5f88b0fe77b1","691a13dbde331d5bcce65e1463f924b78ad046c0c05ec57bca010e6435de8905","0f112494322a7ecb5dda1823f0f84255451a51d2ad862a0ae1014d361f0257de","bca410625e15b9622626f7ae8aa445153232e0d45e46f0e8dbcd632d735c8e47","e1802d98bc1c1b96b44ea5bb57126dc9757c9b99d87ee997af0ffe1d33afbdb0","4e6521886023150c01f961b93a382645704a6e42739c8277f3abd1a61806243c","e6295247cd02955c7385b55efa603d19c4d9330b1343937a9b1c023e346f1ab5","a1473225afc48a471cde6656263736febf2dc83543ad10ef66936f7ed71b2fe3","fadb19eb44c06b59275ad6f620324ea297cbaa20f744ca09d9d83ae122bee14c"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[45,47,48,49,50,51,52,53,54,55,56,57],[45,46,48,49,50,51,52,53,54,55,56,57],[46,47,48,49,50,51,52,53,54,55,56,57],[45,46,47,49,50,51,52,53,54,55,56,57],[45,46,47,48,50,51,52,53,54,55,56,57],[45,46,47,48,49,51,52,53,54,55,56,57],[45,46,47,48,49,50,52,53,54,55,56,57],[45,46,47,48,49,50,51,53,54,55,56,57],[45,46,47,48,49,50,51,52,54,55,56,57],[45,46,47,48,49,50,51,52,53,55,56,57],[45,46,47,48,49,50,51,52,53,54,56,57],[45,46,47,48,49,50,51,52,53,54,55,57],[45,46,47,48,49,50,51,52,53,54,55,56],[119],[115,116,117,118],[141],[140],[140,141,142,143,144,145,146,147,148,149,150],[143],[145],[93,94,95,96],[93],[94],[59,60,61,62,63,64],[59],[57,58,65,92,98,163,165,168,169],[166],[65],[166,167],[57,65,151,162,170],[139,163,169,179],[185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204],[205],[65,92,162,213],[65,92],[214,215],[221,222,223],[217],[98,139,179,219,220,225],[92,98,220,221,225],[139,218,219],[98,219,220,225],[139,163,169,170,180,184,205,206,207,212,216,224],[211],[209,210],[208],[57],[92,110],[99,112,164],[57,110,111,139,163],[57,100,111],[57,103,110,139,163,165,183],[65,92,110,151,163,169],[57,92,98,100,110,139,163,165,169,205],[103],[101,102,104,105,106,107,108,109],[126,127],[119,129],[134,135],[123,124],[122],[113,114,120,122,125,128,129,130,131,133,136,137,138],[132],[129],[121],[97],[171],[171,172,174,175,176,177,178],[173],[119,171],[158],[153,154,155,156,157,158],[153,154,155,156,157,159],[158,159],[160],[152,160,161],[181,182],[183],[81],[66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91]],"referencedMap":[[46,1],[47,2],[45,3],[48,4],[49,5],[50,6],[51,7],[52,8],[53,9],[54,10],[55,11],[56,12],[57,13],[173,14],[119,15],[142,16],[143,17],[151,18],[144,17],[145,17],[146,19],[147,20],[141,17],[148,20],[149,17],[150,20],[97,21],[94,22],[95,23],[65,24],[63,25],[64,25],[60,25],[61,25],[62,25],[170,26],[167,27],[166,28],[168,29],[163,30],[180,31],[187,32],[188,32],[185,33],[205,32],[189,32],[191,32],[190,32],[192,32],[193,32],[194,32],[195,32],[196,32],[197,32],[198,32],[200,32],[199,32],[202,32],[201,32],[204,32],[203,32],[214,34],[215,35],[216,36],[224,37],[218,38],[221,39],[222,40],[220,41],[223,42],[225,43],[212,44],[211,45],[209,46],[210,46],[99,47],[111,48],[165,49],[164,50],[112,51],[184,52],[207,53],[206,54],[101,47],[104,55],[110,56],[106,55],[107,55],[127,14],[128,57],[135,58],[136,59],[125,60],[123,61],[137,61],[120,14],[130,61],[139,62],[133,63],[132,64],[131,61],[129,61],[122,65],[98,66],[172,67],[179,68],[178,14],[174,69],[171,14],[177,70],[153,71],[157,71],[156,71],[155,71],[159,72],[154,71],[158,73],[160,74],[161,75],[162,76],[183,77],[181,78],[82,79],[92,80]],"exportedModulesMap":[[46,1],[47,2],[45,3],[48,4],[49,5],[50,6],[51,7],[52,8],[53,9],[54,10],[55,11],[56,12],[57,13],[173,14],[119,15],[142,16],[143,17],[151,18],[144,17],[145,17],[146,19],[147,20],[141,17],[148,20],[149,17],[150,20],[97,21],[94,22],[95,23],[65,24],[63,25],[64,25],[60,25],[61,25],[62,25],[170,26],[167,27],[166,28],[168,29],[163,30],[180,31],[187,32],[188,32],[185,33],[205,32],[189,32],[191,32],[190,32],[192,32],[193,32],[194,32],[195,32],[196,32],[197,32],[198,32],[200,32],[199,32],[202,32],[201,32],[204,32],[203,32],[214,34],[215,35],[216,36],[224,37],[218,38],[221,39],[222,40],[220,41],[223,42],[225,43],[212,44],[211,45],[209,46],[210,46],[99,47],[111,48],[165,49],[164,50],[112,51],[184,52],[207,53],[206,54],[101,47],[104,55],[110,56],[106,55],[107,55],[127,14],[128,57],[135,58],[136,59],[125,60],[123,61],[137,61],[120,14],[130,61],[139,62],[133,63],[132,64],[131,61],[129,61],[122,65],[98,66],[172,67],[179,68],[178,14],[174,69],[171,14],[177,70],[153,71],[157,71],[156,71],[155,71],[159,72],[154,71],[158,73],[160,74],[161,75],[162,76],[183,77],[181,78],[82,79],[92,80]],"semanticDiagnosticsPerFile":[46,47,45,48,49,50,51,52,53,54,55,56,57,117,173,115,119,116,118,58,142,143,151,144,145,146,217,140,147,141,148,121,100,149,150,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,93,96,97,94,95,65,63,64,60,61,62,59,170,167,166,168,163,180,187,186,188,185,205,189,191,190,192,193,194,195,196,197,198,200,199,202,201,204,203,214,215,216,219,224,218,221,222,220,223,225,212,211,209,210,208,169,99,111,165,164,112,184,207,206,103,101,105,102,104,110,109,106,107,108,127,128,126,135,136,134,125,124,123,137,114,120,113,130,138,139,133,132,131,129,122,98,172,179,176,178,174,171,177,175,153,157,156,155,159,154,158,213,160,161,162,152,182,183,181,80,75,89,88,70,90,78,77,72,68,81,82,74,83,92,67,66,71,79,73,69,76,91,85,84,87,86]},"version":"4.4.2"}