@wordpress/core-data 4.0.4 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +2 -4
  2. package/build/actions.js +54 -5
  3. package/build/actions.js.map +1 -1
  4. package/build/entities.js +46 -5
  5. package/build/entities.js.map +1 -1
  6. package/build/fetch/__experimental-fetch-url-data.js +1 -1
  7. package/build/fetch/__experimental-fetch-url-data.js.map +1 -1
  8. package/build/reducer.js +16 -18
  9. package/build/reducer.js.map +1 -1
  10. package/build/resolvers.js +41 -16
  11. package/build/resolvers.js.map +1 -1
  12. package/build/selectors.js +48 -3
  13. package/build/selectors.js.map +1 -1
  14. package/build/utils/forward-resolver.js +23 -0
  15. package/build/utils/forward-resolver.js.map +1 -0
  16. package/build/utils/index.js +3 -3
  17. package/build/utils/index.js.map +1 -1
  18. package/build-module/actions.js +49 -5
  19. package/build-module/actions.js.map +1 -1
  20. package/build-module/entities.js +46 -5
  21. package/build-module/entities.js.map +1 -1
  22. package/build-module/fetch/__experimental-fetch-url-data.js +1 -1
  23. package/build-module/fetch/__experimental-fetch-url-data.js.map +1 -1
  24. package/build-module/reducer.js +14 -16
  25. package/build-module/reducer.js.map +1 -1
  26. package/build-module/resolvers.js +36 -14
  27. package/build-module/resolvers.js.map +1 -1
  28. package/build-module/selectors.js +44 -3
  29. package/build-module/selectors.js.map +1 -1
  30. package/build-module/utils/forward-resolver.js +15 -0
  31. package/build-module/utils/forward-resolver.js.map +1 -0
  32. package/build-module/utils/index.js +1 -1
  33. package/build-module/utils/index.js.map +1 -1
  34. package/package.json +6 -6
  35. package/src/actions.js +51 -5
  36. package/src/entities.js +32 -3
  37. package/src/fetch/__experimental-fetch-url-data.js +1 -1
  38. package/src/reducer.js +14 -17
  39. package/src/resolvers.js +51 -19
  40. package/src/selectors.js +43 -4
  41. package/src/test/actions.js +89 -0
  42. package/src/test/selectors.js +56 -1
  43. package/src/utils/forward-resolver.js +14 -0
  44. package/src/utils/index.js +1 -1
  45. package/build/utils/if-not-resolved.js +0 -31
  46. package/build/utils/if-not-resolved.js.map +0 -1
  47. package/build-module/utils/if-not-resolved.js +0 -23
  48. package/build-module/utils/if-not-resolved.js.map +0 -1
  49. package/src/utils/if-not-resolved.js +0 -22
  50. package/src/utils/test/if-not-resolved.js +0 -76
package/README.md CHANGED
@@ -160,11 +160,9 @@ _Returns_
160
160
 
161
161
  ### receiveThemeSupports
162
162
 
163
- Returns an action object used in signalling that the index has been received.
164
-
165
- _Parameters_
163
+ > **Deprecated** since WP 5.9, this is not useful anymore, use the selector direclty.
166
164
 
167
- - _themeSupports_ `Object`: Theme support for the current theme.
165
+ Returns an action object used in signalling that the index has been received.
168
166
 
169
167
  _Returns_
170
168
 
package/build/actions.js CHANGED
@@ -10,6 +10,8 @@ exports.receiveCurrentUser = receiveCurrentUser;
10
10
  exports.addEntities = addEntities;
11
11
  exports.receiveEntityRecords = receiveEntityRecords;
12
12
  exports.receiveCurrentTheme = receiveCurrentTheme;
13
+ exports.__experimentalReceiveCurrentGlobalStylesId = __experimentalReceiveCurrentGlobalStylesId;
14
+ exports.__experimentalReceiveThemeBaseGlobalStyles = __experimentalReceiveThemeBaseGlobalStyles;
13
15
  exports.receiveThemeSupports = receiveThemeSupports;
14
16
  exports.receiveEmbedPreview = receiveEmbedPreview;
15
17
  exports.__unstableCreateUndoLevel = __unstableCreateUndoLevel;
@@ -26,6 +28,8 @@ var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
26
28
 
27
29
  var _url = require("@wordpress/url");
28
30
 
31
+ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
32
+
29
33
  var _queriedData = require("./queried-data");
30
34
 
31
35
  var _entities = require("./entities");
@@ -142,19 +146,53 @@ function receiveCurrentTheme(currentTheme) {
142
146
  currentTheme
143
147
  };
144
148
  }
149
+ /**
150
+ * Returns an action object used in signalling that the current global styles id has been received.
151
+ *
152
+ * @param {string} currentGlobalStylesId The current global styles id.
153
+ *
154
+ * @return {Object} Action object.
155
+ */
156
+
157
+
158
+ function __experimentalReceiveCurrentGlobalStylesId(currentGlobalStylesId) {
159
+ return {
160
+ type: 'RECEIVE_CURRENT_GLOBAL_STYLES_ID',
161
+ id: currentGlobalStylesId
162
+ };
163
+ }
164
+ /**
165
+ * Returns an action object used in signalling that the theme base global styles have been received
166
+ *
167
+ * @param {string} stylesheet The theme's identifier
168
+ * @param {Object} globalStyles The global styles object.
169
+ *
170
+ * @return {Object} Action object.
171
+ */
172
+
173
+
174
+ function __experimentalReceiveThemeBaseGlobalStyles(stylesheet, globalStyles) {
175
+ return {
176
+ type: 'RECEIVE_THEME_GLOBAL_STYLES',
177
+ stylesheet,
178
+ globalStyles
179
+ };
180
+ }
145
181
  /**
146
182
  * Returns an action object used in signalling that the index has been received.
147
183
  *
148
- * @param {Object} themeSupports Theme support for the current theme.
184
+ * @deprecated since WP 5.9, this is not useful anymore, use the selector direclty.
149
185
  *
150
186
  * @return {Object} Action object.
151
187
  */
152
188
 
153
189
 
154
- function receiveThemeSupports(themeSupports) {
190
+ function receiveThemeSupports() {
191
+ (0, _deprecated.default)("wp.data.dispatch( 'core' ).receiveThemeSupports", {
192
+ since: '5.9'
193
+ });
155
194
  return {
156
- type: 'RECEIVE_THEME_SUPPORTS',
157
- themeSupports
195
+ type: 'DO_NOTHING'
158
196
  };
159
197
  }
160
198
  /**
@@ -612,9 +650,20 @@ const saveEditedEntityRecord = (kind, name, recordId, options) => async ({
612
650
  return;
613
651
  }
614
652
 
653
+ const entities = await dispatch((0, _entities.getKindEntities)(kind));
654
+ const entity = (0, _lodash.find)(entities, {
655
+ kind,
656
+ name
657
+ });
658
+
659
+ if (!entity) {
660
+ return;
661
+ }
662
+
663
+ const entityIdKey = entity.key || _entities.DEFAULT_ENTITY_KEY;
615
664
  const edits = select.getEntityRecordNonTransientEdits(kind, name, recordId);
616
665
  const record = {
617
- id: recordId,
666
+ [entityIdKey]: recordId,
618
667
  ...edits
619
668
  };
620
669
  return await dispatch.saveEntityRecord(kind, name, record, options);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/actions.js"],"names":["receiveUserQuery","queryID","users","type","receiveCurrentUser","currentUser","addEntities","entities","receiveEntityRecords","kind","name","records","query","invalidateCache","edits","map","record","status","title","action","receiveCurrentTheme","currentTheme","receiveThemeSupports","themeSupports","receiveEmbedPreview","url","preview","deleteEntityRecord","recordId","__unstableFetch","apiFetch","dispatch","entity","error","deletedRecord","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","path","baseURL","method","_error","__unstableReleaseStoreLock","editEntityRecord","options","select","getEntity","Error","transientEdits","mergedEdits","getRawEntityRecord","editedRecord","getEditedEntityRecord","edit","Object","keys","reduce","acc","key","recordValue","editedRecordValue","value","undefined","meta","undo","undoIgnore","undoEdit","getUndoEdit","isUndo","redo","redoEdit","getRedoEdit","isRedo","__unstableCreateUndoLevel","saveEntityRecord","isAutosave","resolveSelect","entityIdKey","DEFAULT_ENTITY_KEY","entries","evaluatedValue","updatedRecord","persistedRecord","getCurrentUser","currentUserId","id","autosavePost","getAutosave","data","includes","newRecord","receiveAutosaves","__unstablePrePersist","__experimentalBatch","requests","batch","api","add","saveEditedEntityRecord","resultPromises","request","results","Promise","all","run","hasEditsForEntityRecord","getEntityRecordNonTransientEdits","__experimentalSaveSpecifiedEntityEdits","itemsToSave","editsToSave","some","item","receiveUploadPermissions","hasUploadPermissions","isAllowed","receiveUserPermission","postId","autosaves"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, isEqual, find } from 'lodash';\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { receiveItems, removeItems, receiveQueriedItems } from './queried-data';\nimport { getKindEntities, DEFAULT_ENTITY_KEY } from './entities';\nimport { createBatch } from './batch';\nimport { STORE_NAME } from './name';\n\n/**\n * Returns an action object used in signalling that authors have been received.\n *\n * @param {string} queryID Query ID.\n * @param {Array|Object} users Users received.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserQuery( queryID, users ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_QUERY',\n\t\tusers: castArray( users ),\n\t\tqueryID,\n\t};\n}\n\n/**\n * Returns an action used in signalling that the current user has been received.\n *\n * @param {Object} currentUser Current user object.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentUser( currentUser ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_USER',\n\t\tcurrentUser,\n\t};\n}\n\n/**\n * Returns an action object used in adding new entities.\n *\n * @param {Array} entities Entities received.\n *\n * @return {Object} Action object.\n */\nexport function addEntities( entities ) {\n\treturn {\n\t\ttype: 'ADD_ENTITIES',\n\t\tentities,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that entity records have been received.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Array|Object} records Records received.\n * @param {?Object} query Query Object.\n * @param {?boolean} invalidateCache Should invalidate query caches.\n * @param {?Object} edits Edits to reset.\n * @return {Object} Action object.\n */\nexport function receiveEntityRecords(\n\tkind,\n\tname,\n\trecords,\n\tquery,\n\tinvalidateCache = false,\n\tedits\n) {\n\t// Auto drafts should not have titles, but some plugins rely on them so we can't filter this\n\t// on the server.\n\tif ( kind === 'postType' ) {\n\t\trecords = castArray( records ).map( ( record ) =>\n\t\t\trecord.status === 'auto-draft' ? { ...record, title: '' } : record\n\t\t);\n\t}\n\tlet action;\n\tif ( query ) {\n\t\taction = receiveQueriedItems( records, query, edits );\n\t} else {\n\t\taction = receiveItems( records, edits );\n\t}\n\n\treturn {\n\t\t...action,\n\t\tkind,\n\t\tname,\n\t\tinvalidateCache,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current theme has been received.\n *\n * @param {Object} currentTheme The current theme.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentTheme( currentTheme ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_THEME',\n\t\tcurrentTheme,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the index has been received.\n *\n * @param {Object} themeSupports Theme support for the current theme.\n *\n * @return {Object} Action object.\n */\nexport function receiveThemeSupports( themeSupports ) {\n\treturn {\n\t\ttype: 'RECEIVE_THEME_SUPPORTS',\n\t\tthemeSupports,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the preview data for\n * a given URl has been received.\n *\n * @param {string} url URL to preview the embed for.\n * @param {*} preview Preview data.\n *\n * @return {Object} Action object.\n */\nexport function receiveEmbedPreview( url, preview ) {\n\treturn {\n\t\ttype: 'RECEIVE_EMBED_PREVIEW',\n\t\turl,\n\t\tpreview,\n\t};\n}\n\n/**\n * Action triggered to delete an entity record.\n *\n * @param {string} kind Kind of the deleted entity.\n * @param {string} name Name of the deleted entity.\n * @param {string} recordId Record ID of the deleted entity.\n * @param {?Object} query Special query parameters for the\n * DELETE API call.\n * @param {Object} [options] Delete options.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const deleteEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tquery,\n\t{ __unstableFetch = apiFetch } = {}\n) => async ( { dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tlet error;\n\tlet deletedRecord = false;\n\tif ( ! entity || entity?.__experimentalNoFetch ) {\n\t\treturn;\n\t}\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t} );\n\n\t\ttry {\n\t\t\tlet path = `${ entity.baseURL }/${ recordId }`;\n\n\t\t\tif ( query ) {\n\t\t\t\tpath = addQueryArgs( path, query );\n\t\t\t}\n\n\t\t\tdeletedRecord = await __unstableFetch( {\n\t\t\t\tpath,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t} );\n\n\t\t\tawait dispatch( removeItems( kind, name, recordId, true ) );\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t} );\n\n\t\treturn deletedRecord;\n\t} finally {\n\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Returns an action object that triggers an\n * edit to an entity record.\n *\n * @param {string} kind Kind of the edited entity record.\n * @param {string} name Name of the edited entity record.\n * @param {number} recordId Record ID of the edited entity record.\n * @param {Object} edits The edits.\n * @param {Object} options Options for the edit.\n * @param {boolean} options.undoIgnore Whether to ignore the edit in undo history or not.\n *\n * @return {Object} Action object.\n */\nexport const editEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tedits,\n\toptions = {}\n) => ( { select, dispatch } ) => {\n\tconst entity = select.getEntity( kind, name );\n\tif ( ! entity ) {\n\t\tthrow new Error(\n\t\t\t`The entity being edited (${ kind }, ${ name }) does not have a loaded config.`\n\t\t);\n\t}\n\tconst { transientEdits = {}, mergedEdits = {} } = entity;\n\tconst record = select.getRawEntityRecord( kind, name, recordId );\n\tconst editedRecord = select.getEditedEntityRecord( kind, name, recordId );\n\n\tconst edit = {\n\t\tkind,\n\t\tname,\n\t\trecordId,\n\t\t// Clear edits when they are equal to their persisted counterparts\n\t\t// so that the property is not considered dirty.\n\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\tconst recordValue = record[ key ];\n\t\t\tconst editedRecordValue = editedRecord[ key ];\n\t\t\tconst value = mergedEdits[ key ]\n\t\t\t\t? { ...editedRecordValue, ...edits[ key ] }\n\t\t\t\t: edits[ key ];\n\t\t\tacc[ key ] = isEqual( recordValue, value ) ? undefined : value;\n\t\t\treturn acc;\n\t\t}, {} ),\n\t\ttransientEdits,\n\t};\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...edit,\n\t\tmeta: {\n\t\t\tundo: ! options.undoIgnore && {\n\t\t\t\t...edit,\n\t\t\t\t// Send the current values for things like the first undo stack entry.\n\t\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\t\tacc[ key ] = editedRecord[ key ];\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t},\n\t} );\n};\n\n/**\n * Action triggered to undo the last edit to\n * an entity record, if any.\n *\n * @return {undefined}\n */\nexport const undo = () => ( { select, dispatch } ) => {\n\tconst undoEdit = select.getUndoEdit();\n\tif ( ! undoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...undoEdit,\n\t\tmeta: { isUndo: true },\n\t} );\n};\n\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n *\n * @return {undefined}\n */\nexport const redo = () => ( { select, dispatch } ) => {\n\tconst redoEdit = select.getRedoEdit();\n\tif ( ! redoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...redoEdit,\n\t\tmeta: { isRedo: true },\n\t} );\n};\n\n/**\n * Forces the creation of a new undo level.\n *\n * @return {Object} Action object.\n */\nexport function __unstableCreateUndoLevel() {\n\treturn { type: 'CREATE_UNDO_LEVEL' };\n}\n\n/**\n * Action triggered to save an entity record.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Object} record Record to be saved.\n * @param {Object} options Saving options.\n * @param {boolean} [options.isAutosave=false] Whether this is an autosave.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const saveEntityRecord = (\n\tkind,\n\tname,\n\trecord,\n\t{ isAutosave = false, __unstableFetch = apiFetch } = {}\n) => async ( { select, resolveSelect, dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tif ( ! entity || entity?.__experimentalNoFetch ) {\n\t\treturn;\n\t}\n\tconst entityIdKey = entity.key || DEFAULT_ENTITY_KEY;\n\tconst recordId = record[ entityIdKey ];\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId || uuid() ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\t// Evaluate optimized edits.\n\t\t// (Function edits that should be evaluated on save to avoid expensive computations on every edit.)\n\t\tfor ( const [ key, value ] of Object.entries( record ) ) {\n\t\t\tif ( typeof value === 'function' ) {\n\t\t\t\tconst evaluatedValue = value(\n\t\t\t\t\tselect.getEditedEntityRecord( kind, name, recordId )\n\t\t\t\t);\n\t\t\t\tdispatch.editEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId,\n\t\t\t\t\t{\n\t\t\t\t\t\t[ key ]: evaluatedValue,\n\t\t\t\t\t},\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\t\t\t\trecord[ key ] = evaluatedValue;\n\t\t\t}\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\tisAutosave,\n\t\t} );\n\t\tlet updatedRecord;\n\t\tlet error;\n\t\ttry {\n\t\t\tconst path = `${ entity.baseURL }${\n\t\t\t\trecordId ? '/' + recordId : ''\n\t\t\t}`;\n\t\t\tconst persistedRecord = select.getRawEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId\n\t\t\t);\n\n\t\t\tif ( isAutosave ) {\n\t\t\t\t// Most of this autosave logic is very specific to posts.\n\t\t\t\t// This is fine for now as it is the only supported autosave,\n\t\t\t\t// but ideally this should all be handled in the back end,\n\t\t\t\t// so the client just sends and receives objects.\n\t\t\t\tconst currentUser = select.getCurrentUser();\n\t\t\t\tconst currentUserId = currentUser ? currentUser.id : undefined;\n\t\t\t\tconst autosavePost = resolveSelect.getAutosave(\n\t\t\t\t\tpersistedRecord.type,\n\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\tcurrentUserId\n\t\t\t\t);\n\t\t\t\t// Autosaves need all expected fields to be present.\n\t\t\t\t// So we fallback to the previous autosave and then\n\t\t\t\t// to the actual persisted entity if the edits don't\n\t\t\t\t// have a value.\n\t\t\t\tlet data = { ...persistedRecord, ...autosavePost, ...record };\n\t\t\t\tdata = Object.keys( data ).reduce(\n\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes( key )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tacc[ key ] = data[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus:\n\t\t\t\t\t\t\tdata.status === 'auto-draft'\n\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t: data.status,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\tpath: `${ path }/autosaves`,\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tdata,\n\t\t\t\t} );\n\n\t\t\t\t// An autosave may be processed by the server as a regular save\n\t\t\t\t// when its update is requested by the author and the post had\n\t\t\t\t// draft or auto-draft status.\n\t\t\t\tif ( persistedRecord.id === updatedRecord.id ) {\n\t\t\t\t\tlet newRecord = {\n\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t...updatedRecord,\n\t\t\t\t\t};\n\t\t\t\t\tnewRecord = Object.keys( newRecord ).reduce(\n\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t// These properties are persisted in autosaves.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes(\n\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tacc[ key ] = newRecord[ key ];\n\t\t\t\t\t\t\t} else if ( key === 'status' ) {\n\t\t\t\t\t\t\t\t// Status is only persisted in autosaves when going from\n\t\t\t\t\t\t\t\t// \"auto-draft\" to \"draft\".\n\t\t\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\t\t\tpersistedRecord.status === 'auto-draft' &&\n\t\t\t\t\t\t\t\t\tnewRecord.status === 'draft'\n\t\t\t\t\t\t\t\t\t\t? newRecord.status\n\t\t\t\t\t\t\t\t\t\t: persistedRecord.status;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// These properties are not persisted in autosaves.\n\t\t\t\t\t\t\t\tacc[ key ] = persistedRecord[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnewRecord,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdispatch.receiveAutosaves(\n\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\tupdatedRecord\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet edits = record;\n\t\t\t\tif ( entity.__unstablePrePersist ) {\n\t\t\t\t\tedits = {\n\t\t\t\t\t\t...edits,\n\t\t\t\t\t\t...entity.__unstablePrePersist(\n\t\t\t\t\t\t\tpersistedRecord,\n\t\t\t\t\t\t\tedits\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\tpath,\n\t\t\t\t\tmethod: recordId ? 'PUT' : 'POST',\n\t\t\t\t\tdata: edits,\n\t\t\t\t} );\n\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\tupdatedRecord,\n\t\t\t\t\tundefined,\n\t\t\t\t\ttrue,\n\t\t\t\t\tedits\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t\tisAutosave,\n\t\t} );\n\n\t\treturn updatedRecord;\n\t} finally {\n\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Runs multiple core-data actions at the same time using one API request.\n *\n * Example:\n *\n * ```\n * const [ savedRecord, updatedRecord, deletedRecord ] =\n * await dispatch( 'core' ).__experimentalBatch( [\n * ( { saveEntityRecord } ) => saveEntityRecord( 'root', 'widget', widget ),\n * ( { saveEditedEntityRecord } ) => saveEntityRecord( 'root', 'widget', 123 ),\n * ( { deleteEntityRecord } ) => deleteEntityRecord( 'root', 'widget', 123, null ),\n * ] );\n * ```\n *\n * @param {Array} requests Array of functions which are invoked simultaneously.\n * Each function is passed an object containing\n * `saveEntityRecord`, `saveEditedEntityRecord`, and\n * `deleteEntityRecord`.\n *\n * @return {Promise} A promise that resolves to an array containing the return\n * values of each function given in `requests`.\n */\nexport const __experimentalBatch = ( requests ) => async ( { dispatch } ) => {\n\tconst batch = createBatch();\n\tconst api = {\n\t\tsaveEntityRecord( kind, name, record, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.saveEntityRecord( kind, name, record, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tsaveEditedEntityRecord( kind, name, recordId, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.saveEditedEntityRecord( kind, name, recordId, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tdeleteEntityRecord( kind, name, recordId, query, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.deleteEntityRecord( kind, name, recordId, query, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t};\n\tconst resultPromises = requests.map( ( request ) => request( api ) );\n\tconst [ , ...results ] = await Promise.all( [\n\t\tbatch.run(),\n\t\t...resultPromises,\n\t] );\n\treturn results;\n};\n\n/**\n * Action triggered to save an entity record's edits.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Object} options Saving options.\n */\nexport const saveEditedEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst record = { id: recordId, ...edits };\n\treturn await dispatch.saveEntityRecord( kind, name, record, options );\n};\n\n/**\n * Action triggered to save only specified properties for the entity.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Array} itemsToSave List of entity properties to save.\n * @param {Object} options Saving options.\n */\nexport const __experimentalSaveSpecifiedEntityEdits = (\n\tkind,\n\tname,\n\trecordId,\n\titemsToSave,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst editsToSave = {};\n\tfor ( const edit in edits ) {\n\t\tif ( itemsToSave.some( ( item ) => item === edit ) ) {\n\t\t\teditsToSave[ edit ] = edits[ edit ];\n\t\t}\n\t}\n\treturn await dispatch.saveEntityRecord( kind, name, editsToSave, options );\n};\n\n/**\n * Returns an action object used in signalling that Upload permissions have been received.\n *\n * @param {boolean} hasUploadPermissions Does the user have permission to upload files?\n *\n * @return {Object} Action object.\n */\nexport function receiveUploadPermissions( hasUploadPermissions ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey: 'create/media',\n\t\tisAllowed: hasUploadPermissions,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current user has\n * permission to perform an action on a REST resource.\n *\n * @param {string} key A key that represents the action and REST resource.\n * @param {boolean} isAllowed Whether or not the user can perform the action.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserPermission( key, isAllowed ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey,\n\t\tisAllowed,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the autosaves for a\n * post have been received.\n *\n * @param {number} postId The id of the post that is parent to the autosave.\n * @param {Array|Object} autosaves An array of autosaves or singular autosave object.\n *\n * @return {Object} Action object.\n */\nexport function receiveAutosaves( postId, autosaves ) {\n\treturn {\n\t\ttype: 'RECEIVE_AUTOSAVES',\n\t\tpostId,\n\t\tautosaves: castArray( autosaves ),\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/actions.js"],"names":["receiveUserQuery","queryID","users","type","receiveCurrentUser","currentUser","addEntities","entities","receiveEntityRecords","kind","name","records","query","invalidateCache","edits","map","record","status","title","action","receiveCurrentTheme","currentTheme","__experimentalReceiveCurrentGlobalStylesId","currentGlobalStylesId","id","__experimentalReceiveThemeBaseGlobalStyles","stylesheet","globalStyles","receiveThemeSupports","since","receiveEmbedPreview","url","preview","deleteEntityRecord","recordId","__unstableFetch","apiFetch","dispatch","entity","error","deletedRecord","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","path","baseURL","method","_error","__unstableReleaseStoreLock","editEntityRecord","options","select","getEntity","Error","transientEdits","mergedEdits","getRawEntityRecord","editedRecord","getEditedEntityRecord","edit","Object","keys","reduce","acc","key","recordValue","editedRecordValue","value","undefined","meta","undo","undoIgnore","undoEdit","getUndoEdit","isUndo","redo","redoEdit","getRedoEdit","isRedo","__unstableCreateUndoLevel","saveEntityRecord","isAutosave","resolveSelect","entityIdKey","DEFAULT_ENTITY_KEY","entries","evaluatedValue","updatedRecord","persistedRecord","getCurrentUser","currentUserId","autosavePost","getAutosave","data","includes","newRecord","receiveAutosaves","__unstablePrePersist","__experimentalBatch","requests","batch","api","add","saveEditedEntityRecord","resultPromises","request","results","Promise","all","run","hasEditsForEntityRecord","getEntityRecordNonTransientEdits","__experimentalSaveSpecifiedEntityEdits","itemsToSave","editsToSave","some","item","receiveUploadPermissions","hasUploadPermissions","isAllowed","receiveUserPermission","postId","autosaves"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, isEqual, find } from 'lodash';\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { receiveItems, removeItems, receiveQueriedItems } from './queried-data';\nimport { getKindEntities, DEFAULT_ENTITY_KEY } from './entities';\nimport { createBatch } from './batch';\nimport { STORE_NAME } from './name';\n\n/**\n * Returns an action object used in signalling that authors have been received.\n *\n * @param {string} queryID Query ID.\n * @param {Array|Object} users Users received.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserQuery( queryID, users ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_QUERY',\n\t\tusers: castArray( users ),\n\t\tqueryID,\n\t};\n}\n\n/**\n * Returns an action used in signalling that the current user has been received.\n *\n * @param {Object} currentUser Current user object.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentUser( currentUser ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_USER',\n\t\tcurrentUser,\n\t};\n}\n\n/**\n * Returns an action object used in adding new entities.\n *\n * @param {Array} entities Entities received.\n *\n * @return {Object} Action object.\n */\nexport function addEntities( entities ) {\n\treturn {\n\t\ttype: 'ADD_ENTITIES',\n\t\tentities,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that entity records have been received.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Array|Object} records Records received.\n * @param {?Object} query Query Object.\n * @param {?boolean} invalidateCache Should invalidate query caches.\n * @param {?Object} edits Edits to reset.\n * @return {Object} Action object.\n */\nexport function receiveEntityRecords(\n\tkind,\n\tname,\n\trecords,\n\tquery,\n\tinvalidateCache = false,\n\tedits\n) {\n\t// Auto drafts should not have titles, but some plugins rely on them so we can't filter this\n\t// on the server.\n\tif ( kind === 'postType' ) {\n\t\trecords = castArray( records ).map( ( record ) =>\n\t\t\trecord.status === 'auto-draft' ? { ...record, title: '' } : record\n\t\t);\n\t}\n\tlet action;\n\tif ( query ) {\n\t\taction = receiveQueriedItems( records, query, edits );\n\t} else {\n\t\taction = receiveItems( records, edits );\n\t}\n\n\treturn {\n\t\t...action,\n\t\tkind,\n\t\tname,\n\t\tinvalidateCache,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current theme has been received.\n *\n * @param {Object} currentTheme The current theme.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentTheme( currentTheme ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_THEME',\n\t\tcurrentTheme,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current global styles id has been received.\n *\n * @param {string} currentGlobalStylesId The current global styles id.\n *\n * @return {Object} Action object.\n */\nexport function __experimentalReceiveCurrentGlobalStylesId(\n\tcurrentGlobalStylesId\n) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_GLOBAL_STYLES_ID',\n\t\tid: currentGlobalStylesId,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the theme base global styles have been received\n *\n * @param {string} stylesheet The theme's identifier\n * @param {Object} globalStyles The global styles object.\n *\n * @return {Object} Action object.\n */\nexport function __experimentalReceiveThemeBaseGlobalStyles(\n\tstylesheet,\n\tglobalStyles\n) {\n\treturn {\n\t\ttype: 'RECEIVE_THEME_GLOBAL_STYLES',\n\t\tstylesheet,\n\t\tglobalStyles,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the index has been received.\n *\n * @deprecated since WP 5.9, this is not useful anymore, use the selector direclty.\n *\n * @return {Object} Action object.\n */\nexport function receiveThemeSupports() {\n\tdeprecated( \"wp.data.dispatch( 'core' ).receiveThemeSupports\", {\n\t\tsince: '5.9',\n\t} );\n\n\treturn {\n\t\ttype: 'DO_NOTHING',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the preview data for\n * a given URl has been received.\n *\n * @param {string} url URL to preview the embed for.\n * @param {*} preview Preview data.\n *\n * @return {Object} Action object.\n */\nexport function receiveEmbedPreview( url, preview ) {\n\treturn {\n\t\ttype: 'RECEIVE_EMBED_PREVIEW',\n\t\turl,\n\t\tpreview,\n\t};\n}\n\n/**\n * Action triggered to delete an entity record.\n *\n * @param {string} kind Kind of the deleted entity.\n * @param {string} name Name of the deleted entity.\n * @param {string} recordId Record ID of the deleted entity.\n * @param {?Object} query Special query parameters for the\n * DELETE API call.\n * @param {Object} [options] Delete options.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const deleteEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tquery,\n\t{ __unstableFetch = apiFetch } = {}\n) => async ( { dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tlet error;\n\tlet deletedRecord = false;\n\tif ( ! entity || entity?.__experimentalNoFetch ) {\n\t\treturn;\n\t}\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t} );\n\n\t\ttry {\n\t\t\tlet path = `${ entity.baseURL }/${ recordId }`;\n\n\t\t\tif ( query ) {\n\t\t\t\tpath = addQueryArgs( path, query );\n\t\t\t}\n\n\t\t\tdeletedRecord = await __unstableFetch( {\n\t\t\t\tpath,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t} );\n\n\t\t\tawait dispatch( removeItems( kind, name, recordId, true ) );\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t} );\n\n\t\treturn deletedRecord;\n\t} finally {\n\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Returns an action object that triggers an\n * edit to an entity record.\n *\n * @param {string} kind Kind of the edited entity record.\n * @param {string} name Name of the edited entity record.\n * @param {number} recordId Record ID of the edited entity record.\n * @param {Object} edits The edits.\n * @param {Object} options Options for the edit.\n * @param {boolean} options.undoIgnore Whether to ignore the edit in undo history or not.\n *\n * @return {Object} Action object.\n */\nexport const editEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tedits,\n\toptions = {}\n) => ( { select, dispatch } ) => {\n\tconst entity = select.getEntity( kind, name );\n\tif ( ! entity ) {\n\t\tthrow new Error(\n\t\t\t`The entity being edited (${ kind }, ${ name }) does not have a loaded config.`\n\t\t);\n\t}\n\tconst { transientEdits = {}, mergedEdits = {} } = entity;\n\tconst record = select.getRawEntityRecord( kind, name, recordId );\n\tconst editedRecord = select.getEditedEntityRecord( kind, name, recordId );\n\n\tconst edit = {\n\t\tkind,\n\t\tname,\n\t\trecordId,\n\t\t// Clear edits when they are equal to their persisted counterparts\n\t\t// so that the property is not considered dirty.\n\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\tconst recordValue = record[ key ];\n\t\t\tconst editedRecordValue = editedRecord[ key ];\n\t\t\tconst value = mergedEdits[ key ]\n\t\t\t\t? { ...editedRecordValue, ...edits[ key ] }\n\t\t\t\t: edits[ key ];\n\t\t\tacc[ key ] = isEqual( recordValue, value ) ? undefined : value;\n\t\t\treturn acc;\n\t\t}, {} ),\n\t\ttransientEdits,\n\t};\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...edit,\n\t\tmeta: {\n\t\t\tundo: ! options.undoIgnore && {\n\t\t\t\t...edit,\n\t\t\t\t// Send the current values for things like the first undo stack entry.\n\t\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\t\tacc[ key ] = editedRecord[ key ];\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t},\n\t} );\n};\n\n/**\n * Action triggered to undo the last edit to\n * an entity record, if any.\n *\n * @return {undefined}\n */\nexport const undo = () => ( { select, dispatch } ) => {\n\tconst undoEdit = select.getUndoEdit();\n\tif ( ! undoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...undoEdit,\n\t\tmeta: { isUndo: true },\n\t} );\n};\n\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n *\n * @return {undefined}\n */\nexport const redo = () => ( { select, dispatch } ) => {\n\tconst redoEdit = select.getRedoEdit();\n\tif ( ! redoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...redoEdit,\n\t\tmeta: { isRedo: true },\n\t} );\n};\n\n/**\n * Forces the creation of a new undo level.\n *\n * @return {Object} Action object.\n */\nexport function __unstableCreateUndoLevel() {\n\treturn { type: 'CREATE_UNDO_LEVEL' };\n}\n\n/**\n * Action triggered to save an entity record.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Object} record Record to be saved.\n * @param {Object} options Saving options.\n * @param {boolean} [options.isAutosave=false] Whether this is an autosave.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const saveEntityRecord = (\n\tkind,\n\tname,\n\trecord,\n\t{ isAutosave = false, __unstableFetch = apiFetch } = {}\n) => async ( { select, resolveSelect, dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tif ( ! entity || entity?.__experimentalNoFetch ) {\n\t\treturn;\n\t}\n\tconst entityIdKey = entity.key || DEFAULT_ENTITY_KEY;\n\tconst recordId = record[ entityIdKey ];\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId || uuid() ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\t// Evaluate optimized edits.\n\t\t// (Function edits that should be evaluated on save to avoid expensive computations on every edit.)\n\t\tfor ( const [ key, value ] of Object.entries( record ) ) {\n\t\t\tif ( typeof value === 'function' ) {\n\t\t\t\tconst evaluatedValue = value(\n\t\t\t\t\tselect.getEditedEntityRecord( kind, name, recordId )\n\t\t\t\t);\n\t\t\t\tdispatch.editEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId,\n\t\t\t\t\t{\n\t\t\t\t\t\t[ key ]: evaluatedValue,\n\t\t\t\t\t},\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\t\t\t\trecord[ key ] = evaluatedValue;\n\t\t\t}\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\tisAutosave,\n\t\t} );\n\t\tlet updatedRecord;\n\t\tlet error;\n\t\ttry {\n\t\t\tconst path = `${ entity.baseURL }${\n\t\t\t\trecordId ? '/' + recordId : ''\n\t\t\t}`;\n\t\t\tconst persistedRecord = select.getRawEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId\n\t\t\t);\n\n\t\t\tif ( isAutosave ) {\n\t\t\t\t// Most of this autosave logic is very specific to posts.\n\t\t\t\t// This is fine for now as it is the only supported autosave,\n\t\t\t\t// but ideally this should all be handled in the back end,\n\t\t\t\t// so the client just sends and receives objects.\n\t\t\t\tconst currentUser = select.getCurrentUser();\n\t\t\t\tconst currentUserId = currentUser ? currentUser.id : undefined;\n\t\t\t\tconst autosavePost = resolveSelect.getAutosave(\n\t\t\t\t\tpersistedRecord.type,\n\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\tcurrentUserId\n\t\t\t\t);\n\t\t\t\t// Autosaves need all expected fields to be present.\n\t\t\t\t// So we fallback to the previous autosave and then\n\t\t\t\t// to the actual persisted entity if the edits don't\n\t\t\t\t// have a value.\n\t\t\t\tlet data = { ...persistedRecord, ...autosavePost, ...record };\n\t\t\t\tdata = Object.keys( data ).reduce(\n\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes( key )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tacc[ key ] = data[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus:\n\t\t\t\t\t\t\tdata.status === 'auto-draft'\n\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t: data.status,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\tpath: `${ path }/autosaves`,\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tdata,\n\t\t\t\t} );\n\n\t\t\t\t// An autosave may be processed by the server as a regular save\n\t\t\t\t// when its update is requested by the author and the post had\n\t\t\t\t// draft or auto-draft status.\n\t\t\t\tif ( persistedRecord.id === updatedRecord.id ) {\n\t\t\t\t\tlet newRecord = {\n\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t...updatedRecord,\n\t\t\t\t\t};\n\t\t\t\t\tnewRecord = Object.keys( newRecord ).reduce(\n\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t// These properties are persisted in autosaves.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes(\n\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tacc[ key ] = newRecord[ key ];\n\t\t\t\t\t\t\t} else if ( key === 'status' ) {\n\t\t\t\t\t\t\t\t// Status is only persisted in autosaves when going from\n\t\t\t\t\t\t\t\t// \"auto-draft\" to \"draft\".\n\t\t\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\t\t\tpersistedRecord.status === 'auto-draft' &&\n\t\t\t\t\t\t\t\t\tnewRecord.status === 'draft'\n\t\t\t\t\t\t\t\t\t\t? newRecord.status\n\t\t\t\t\t\t\t\t\t\t: persistedRecord.status;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// These properties are not persisted in autosaves.\n\t\t\t\t\t\t\t\tacc[ key ] = persistedRecord[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnewRecord,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdispatch.receiveAutosaves(\n\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\tupdatedRecord\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet edits = record;\n\t\t\t\tif ( entity.__unstablePrePersist ) {\n\t\t\t\t\tedits = {\n\t\t\t\t\t\t...edits,\n\t\t\t\t\t\t...entity.__unstablePrePersist(\n\t\t\t\t\t\t\tpersistedRecord,\n\t\t\t\t\t\t\tedits\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\tpath,\n\t\t\t\t\tmethod: recordId ? 'PUT' : 'POST',\n\t\t\t\t\tdata: edits,\n\t\t\t\t} );\n\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\tupdatedRecord,\n\t\t\t\t\tundefined,\n\t\t\t\t\ttrue,\n\t\t\t\t\tedits\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t\tisAutosave,\n\t\t} );\n\n\t\treturn updatedRecord;\n\t} finally {\n\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Runs multiple core-data actions at the same time using one API request.\n *\n * Example:\n *\n * ```\n * const [ savedRecord, updatedRecord, deletedRecord ] =\n * await dispatch( 'core' ).__experimentalBatch( [\n * ( { saveEntityRecord } ) => saveEntityRecord( 'root', 'widget', widget ),\n * ( { saveEditedEntityRecord } ) => saveEntityRecord( 'root', 'widget', 123 ),\n * ( { deleteEntityRecord } ) => deleteEntityRecord( 'root', 'widget', 123, null ),\n * ] );\n * ```\n *\n * @param {Array} requests Array of functions which are invoked simultaneously.\n * Each function is passed an object containing\n * `saveEntityRecord`, `saveEditedEntityRecord`, and\n * `deleteEntityRecord`.\n *\n * @return {Promise} A promise that resolves to an array containing the return\n * values of each function given in `requests`.\n */\nexport const __experimentalBatch = ( requests ) => async ( { dispatch } ) => {\n\tconst batch = createBatch();\n\tconst api = {\n\t\tsaveEntityRecord( kind, name, record, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.saveEntityRecord( kind, name, record, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tsaveEditedEntityRecord( kind, name, recordId, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.saveEditedEntityRecord( kind, name, recordId, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tdeleteEntityRecord( kind, name, recordId, query, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.deleteEntityRecord( kind, name, recordId, query, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t};\n\tconst resultPromises = requests.map( ( request ) => request( api ) );\n\tconst [ , ...results ] = await Promise.all( [\n\t\tbatch.run(),\n\t\t...resultPromises,\n\t] );\n\treturn results;\n};\n\n/**\n * Action triggered to save an entity record's edits.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Object} options Saving options.\n */\nexport const saveEditedEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tif ( ! entity ) {\n\t\treturn;\n\t}\n\tconst entityIdKey = entity.key || DEFAULT_ENTITY_KEY;\n\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst record = { [ entityIdKey ]: recordId, ...edits };\n\treturn await dispatch.saveEntityRecord( kind, name, record, options );\n};\n\n/**\n * Action triggered to save only specified properties for the entity.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Array} itemsToSave List of entity properties to save.\n * @param {Object} options Saving options.\n */\nexport const __experimentalSaveSpecifiedEntityEdits = (\n\tkind,\n\tname,\n\trecordId,\n\titemsToSave,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst editsToSave = {};\n\tfor ( const edit in edits ) {\n\t\tif ( itemsToSave.some( ( item ) => item === edit ) ) {\n\t\t\teditsToSave[ edit ] = edits[ edit ];\n\t\t}\n\t}\n\treturn await dispatch.saveEntityRecord( kind, name, editsToSave, options );\n};\n\n/**\n * Returns an action object used in signalling that Upload permissions have been received.\n *\n * @param {boolean} hasUploadPermissions Does the user have permission to upload files?\n *\n * @return {Object} Action object.\n */\nexport function receiveUploadPermissions( hasUploadPermissions ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey: 'create/media',\n\t\tisAllowed: hasUploadPermissions,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current user has\n * permission to perform an action on a REST resource.\n *\n * @param {string} key A key that represents the action and REST resource.\n * @param {boolean} isAllowed Whether or not the user can perform the action.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserPermission( key, isAllowed ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey,\n\t\tisAllowed,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the autosaves for a\n * post have been received.\n *\n * @param {number} postId The id of the post that is parent to the autosave.\n * @param {Array|Object} autosaves An array of autosaves or singular autosave object.\n *\n * @return {Object} Action object.\n */\nexport function receiveAutosaves( postId, autosaves ) {\n\treturn {\n\t\ttype: 'RECEIVE_AUTOSAVES',\n\t\tpostId,\n\t\tautosaves: castArray( autosaves ),\n\t};\n}\n"]}
package/build/entities.js CHANGED
@@ -33,7 +33,7 @@ const defaultEntities = [{
33
33
  label: (0, _i18n.__)('Base'),
34
34
  name: '__unstableBase',
35
35
  kind: 'root',
36
- baseURL: ''
36
+ baseURL: '/'
37
37
  }, {
38
38
  label: (0, _i18n.__)('Site'),
39
39
  name: 'site',
@@ -148,6 +148,41 @@ const defaultEntities = [{
148
148
  plural: 'menuLocations',
149
149
  label: (0, _i18n.__)('Menu Location'),
150
150
  key: 'name'
151
+ }, {
152
+ name: 'navigationArea',
153
+ kind: 'root',
154
+ baseURL: '/__experimental/block-navigation-areas',
155
+ baseURLParams: {
156
+ context: 'edit'
157
+ },
158
+ plural: 'navigationAreas',
159
+ label: (0, _i18n.__)('Navigation Area'),
160
+ key: 'name',
161
+ getTitle: record => record === null || record === void 0 ? void 0 : record.description
162
+ }, {
163
+ label: (0, _i18n.__)('Global Styles'),
164
+ name: 'globalStyles',
165
+ kind: 'root',
166
+ baseURL: '/wp/v2/global-styles',
167
+ baseURLParams: {
168
+ context: 'edit'
169
+ },
170
+ plural: 'globalStylesVariations',
171
+ // should be different than name
172
+ getTitle: record => {
173
+ var _record$title;
174
+
175
+ return (record === null || record === void 0 ? void 0 : (_record$title = record.title) === null || _record$title === void 0 ? void 0 : _record$title.rendered) || (record === null || record === void 0 ? void 0 : record.title);
176
+ }
177
+ }, {
178
+ label: (0, _i18n.__)('Themes'),
179
+ name: 'theme',
180
+ kind: 'root',
181
+ baseURL: '/wp/v2/themes',
182
+ baseURLParams: {
183
+ context: 'edit'
184
+ },
185
+ key: 'stylesheet'
151
186
  }];
152
187
  exports.defaultEntities = defaultEntities;
153
188
  const kinds = [{
@@ -198,10 +233,13 @@ async function loadPostTypeEntities() {
198
233
  path: '/wp/v2/types?context=edit'
199
234
  });
200
235
  return (0, _lodash.map)(postTypes, (postType, name) => {
236
+ var _postType$rest_namesp;
237
+
201
238
  const isTemplate = ['wp_template', 'wp_template_part'].includes(name);
239
+ const namespace = (_postType$rest_namesp = postType === null || postType === void 0 ? void 0 : postType.rest_namespace) !== null && _postType$rest_namesp !== void 0 ? _postType$rest_namesp : 'wp/v2';
202
240
  return {
203
241
  kind: 'postType',
204
- baseURL: '/wp/v2/' + postType.rest_base,
242
+ baseURL: `/${namespace}/${postType.rest_base}`,
205
243
  baseURLParams: {
206
244
  context: 'edit'
207
245
  },
@@ -216,9 +254,9 @@ async function loadPostTypeEntities() {
216
254
  },
217
255
  rawAttributes: POST_RAW_ATTRIBUTES,
218
256
  getTitle: record => {
219
- var _record$title;
257
+ var _record$title2;
220
258
 
221
- return (record === null || record === void 0 ? void 0 : (_record$title = record.title) === null || _record$title === void 0 ? void 0 : _record$title.rendered) || (record === null || record === void 0 ? void 0 : record.title) || (isTemplate ? (0, _lodash.startCase)(record.slug) : String(record.id));
259
+ return (record === null || record === void 0 ? void 0 : (_record$title2 = record.title) === null || _record$title2 === void 0 ? void 0 : _record$title2.rendered) || (record === null || record === void 0 ? void 0 : record.title) || (isTemplate ? (0, _lodash.startCase)(record.slug) : String(record.id));
222
260
  },
223
261
  __unstablePrePersist: isTemplate ? undefined : prePersistPostType,
224
262
  __unstable_rest_base: postType.rest_base
@@ -237,9 +275,12 @@ async function loadTaxonomyEntities() {
237
275
  path: '/wp/v2/taxonomies?context=edit'
238
276
  });
239
277
  return (0, _lodash.map)(taxonomies, (taxonomy, name) => {
278
+ var _taxonomy$rest_namesp;
279
+
280
+ const namespace = (_taxonomy$rest_namesp = taxonomy === null || taxonomy === void 0 ? void 0 : taxonomy.rest_namespace) !== null && _taxonomy$rest_namesp !== void 0 ? _taxonomy$rest_namesp : 'wp/v2';
240
281
  return {
241
282
  kind: 'taxonomy',
242
- baseURL: '/wp/v2/' + taxonomy.rest_base,
283
+ baseURL: `/${namespace}/${taxonomy.rest_base}`,
243
284
  baseURLParams: {
244
285
  context: 'edit'
245
286
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/entities.js"],"names":["DEFAULT_ENTITY_KEY","POST_RAW_ATTRIBUTES","defaultEntities","label","name","kind","baseURL","getTitle","record","key","baseURLParams","context","rawAttributes","plural","transientEdits","blocks","kinds","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","title","postTypes","path","postType","isTemplate","includes","rest_base","labels","singular_name","selection","mergedEdits","meta","rendered","slug","String","id","__unstablePrePersist","undefined","__unstable_rest_base","taxonomies","taxonomy","getMethodName","prefix","usePlural","entity","kindPrefix","nameSuffix","suffix","getKindEntities","select","dispatch","entities","getEntitiesByKind","length","kindConfig"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { upperFirst, camelCase, map, find, get, startCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { addEntities } from './actions';\n\nexport const DEFAULT_ENTITY_KEY = 'id';\n\nconst POST_RAW_ATTRIBUTES = [ 'title', 'excerpt', 'content' ];\n\nexport const defaultEntities = [\n\t{\n\t\tlabel: __( 'Base' ),\n\t\tname: '__unstableBase',\n\t\tkind: 'root',\n\t\tbaseURL: '',\n\t},\n\t{\n\t\tlabel: __( 'Site' ),\n\t\tname: 'site',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/settings',\n\t\tgetTitle: ( record ) => {\n\t\t\treturn get( record, [ 'title' ], __( 'Site Title' ) );\n\t\t},\n\t},\n\t{\n\t\tlabel: __( 'Post Type' ),\n\t\tname: 'postType',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t},\n\t{\n\t\tname: 'media',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/media',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'mediaItems',\n\t\tlabel: __( 'Media' ),\n\t},\n\t{\n\t\tname: 'taxonomy',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/taxonomies',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'taxonomies',\n\t\tlabel: __( 'Taxonomy' ),\n\t},\n\t{\n\t\tname: 'sidebar',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/sidebars',\n\t\tplural: 'sidebars',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widget areas' ),\n\t},\n\t{\n\t\tname: 'widget',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widgets',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgets',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widgets' ),\n\t},\n\t{\n\t\tname: 'widgetType',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widget-types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgetTypes',\n\t\tlabel: __( 'Widget types' ),\n\t},\n\t{\n\t\tlabel: __( 'User' ),\n\t\tname: 'user',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/users',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'users',\n\t},\n\t{\n\t\tname: 'comment',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/comments',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'comments',\n\t\tlabel: __( 'Comment' ),\n\t},\n\t{\n\t\tname: 'menu',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menus',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menus',\n\t\tlabel: __( 'Menu' ),\n\t},\n\t{\n\t\tname: 'menuItem',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-items',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuItems',\n\t\tlabel: __( 'Menu Item' ),\n\t\trawAttributes: [ 'title', 'content' ],\n\t},\n\t{\n\t\tname: 'menuLocation',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-locations',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuLocations',\n\t\tlabel: __( 'Menu Location' ),\n\t\tkey: 'name',\n\t},\n];\n\nexport const kinds = [\n\t{ name: 'postType', loadEntities: loadPostTypeEntities },\n\t{ name: 'taxonomy', loadEntities: loadTaxonomyEntities },\n];\n\n/**\n * Returns a function to be used to retrieve extra edits to apply before persisting a post type.\n *\n * @param {Object} persistedRecord Already persisted Post\n * @param {Object} edits Edits.\n * @return {Object} Updated edits.\n */\nexport const prePersistPostType = ( persistedRecord, edits ) => {\n\tconst newEdits = {};\n\n\tif ( persistedRecord?.status === 'auto-draft' ) {\n\t\t// Saving an auto-draft should create a draft by default.\n\t\tif ( ! edits.status && ! newEdits.status ) {\n\t\t\tnewEdits.status = 'draft';\n\t\t}\n\n\t\t// Fix the auto-draft default title.\n\t\tif (\n\t\t\t( ! edits.title || edits.title === 'Auto Draft' ) &&\n\t\t\t! newEdits.title &&\n\t\t\t( ! persistedRecord?.title ||\n\t\t\t\tpersistedRecord?.title === 'Auto Draft' )\n\t\t) {\n\t\t\tnewEdits.title = '';\n\t\t}\n\t}\n\n\treturn newEdits;\n};\n\n/**\n * Returns the list of post type entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadPostTypeEntities() {\n\tconst postTypes = await apiFetch( { path: '/wp/v2/types?context=edit' } );\n\treturn map( postTypes, ( postType, name ) => {\n\t\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\t\tname\n\t\t);\n\t\treturn {\n\t\t\tkind: 'postType',\n\t\t\tbaseURL: '/wp/v2/' + postType.rest_base,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: postType.labels.singular_name,\n\t\t\ttransientEdits: {\n\t\t\t\tblocks: true,\n\t\t\t\tselection: true,\n\t\t\t},\n\t\t\tmergedEdits: { meta: true },\n\t\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t\t\tgetTitle: ( record ) =>\n\t\t\t\trecord?.title?.rendered ||\n\t\t\t\trecord?.title ||\n\t\t\t\t( isTemplate ? startCase( record.slug ) : String( record.id ) ),\n\t\t\t__unstablePrePersist: isTemplate ? undefined : prePersistPostType,\n\t\t\t__unstable_rest_base: postType.rest_base,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of the taxonomies entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadTaxonomyEntities() {\n\tconst taxonomies = await apiFetch( {\n\t\tpath: '/wp/v2/taxonomies?context=edit',\n\t} );\n\treturn map( taxonomies, ( taxonomy, name ) => {\n\t\treturn {\n\t\t\tkind: 'taxonomy',\n\t\t\tbaseURL: '/wp/v2/' + taxonomy.rest_base,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: taxonomy.labels.singular_name,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the entity's getter method name given its kind and name.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} prefix Function prefix.\n * @param {boolean} usePlural Whether to use the plural form or not.\n *\n * @return {string} Method name\n */\nexport const getMethodName = (\n\tkind,\n\tname,\n\tprefix = 'get',\n\tusePlural = false\n) => {\n\tconst entity = find( defaultEntities, { kind, name } );\n\tconst kindPrefix = kind === 'root' ? '' : upperFirst( camelCase( kind ) );\n\tconst nameSuffix =\n\t\tupperFirst( camelCase( name ) ) + ( usePlural ? 's' : '' );\n\tconst suffix =\n\t\tusePlural && entity.plural\n\t\t\t? upperFirst( camelCase( entity.plural ) )\n\t\t\t: nameSuffix;\n\treturn `${ prefix }${ kindPrefix }${ suffix }`;\n};\n\n/**\n * Loads the kind entities into the store.\n *\n * @param {string} kind Kind\n *\n * @return {Array} Entities\n */\nexport const getKindEntities = ( kind ) => async ( { select, dispatch } ) => {\n\tlet entities = select.getEntitiesByKind( kind );\n\tif ( entities && entities.length !== 0 ) {\n\t\treturn entities;\n\t}\n\n\tconst kindConfig = find( kinds, { name: kind } );\n\tif ( ! kindConfig ) {\n\t\treturn [];\n\t}\n\n\tentities = await kindConfig.loadEntities();\n\tdispatch( addEntities( entities ) );\n\n\treturn entities;\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/entities.js"],"names":["DEFAULT_ENTITY_KEY","POST_RAW_ATTRIBUTES","defaultEntities","label","name","kind","baseURL","getTitle","record","key","baseURLParams","context","rawAttributes","plural","transientEdits","blocks","description","title","rendered","kinds","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","postTypes","path","postType","isTemplate","includes","namespace","rest_namespace","rest_base","labels","singular_name","selection","mergedEdits","meta","slug","String","id","__unstablePrePersist","undefined","__unstable_rest_base","taxonomies","taxonomy","getMethodName","prefix","usePlural","entity","kindPrefix","nameSuffix","suffix","getKindEntities","select","dispatch","entities","getEntitiesByKind","length","kindConfig"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { upperFirst, camelCase, map, find, get, startCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { addEntities } from './actions';\n\nexport const DEFAULT_ENTITY_KEY = 'id';\n\nconst POST_RAW_ATTRIBUTES = [ 'title', 'excerpt', 'content' ];\n\nexport const defaultEntities = [\n\t{\n\t\tlabel: __( 'Base' ),\n\t\tname: '__unstableBase',\n\t\tkind: 'root',\n\t\tbaseURL: '/',\n\t},\n\t{\n\t\tlabel: __( 'Site' ),\n\t\tname: 'site',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/settings',\n\t\tgetTitle: ( record ) => {\n\t\t\treturn get( record, [ 'title' ], __( 'Site Title' ) );\n\t\t},\n\t},\n\t{\n\t\tlabel: __( 'Post Type' ),\n\t\tname: 'postType',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t},\n\t{\n\t\tname: 'media',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/media',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'mediaItems',\n\t\tlabel: __( 'Media' ),\n\t},\n\t{\n\t\tname: 'taxonomy',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/taxonomies',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'taxonomies',\n\t\tlabel: __( 'Taxonomy' ),\n\t},\n\t{\n\t\tname: 'sidebar',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/sidebars',\n\t\tplural: 'sidebars',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widget areas' ),\n\t},\n\t{\n\t\tname: 'widget',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widgets',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgets',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widgets' ),\n\t},\n\t{\n\t\tname: 'widgetType',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widget-types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgetTypes',\n\t\tlabel: __( 'Widget types' ),\n\t},\n\t{\n\t\tlabel: __( 'User' ),\n\t\tname: 'user',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/users',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'users',\n\t},\n\t{\n\t\tname: 'comment',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/comments',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'comments',\n\t\tlabel: __( 'Comment' ),\n\t},\n\t{\n\t\tname: 'menu',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menus',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menus',\n\t\tlabel: __( 'Menu' ),\n\t},\n\t{\n\t\tname: 'menuItem',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-items',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuItems',\n\t\tlabel: __( 'Menu Item' ),\n\t\trawAttributes: [ 'title', 'content' ],\n\t},\n\t{\n\t\tname: 'menuLocation',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-locations',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuLocations',\n\t\tlabel: __( 'Menu Location' ),\n\t\tkey: 'name',\n\t},\n\t{\n\t\tname: 'navigationArea',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/block-navigation-areas',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'navigationAreas',\n\t\tlabel: __( 'Navigation Area' ),\n\t\tkey: 'name',\n\t\tgetTitle: ( record ) => record?.description,\n\t},\n\t{\n\t\tlabel: __( 'Global Styles' ),\n\t\tname: 'globalStyles',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/global-styles',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'globalStylesVariations', // should be different than name\n\t\tgetTitle: ( record ) => record?.title?.rendered || record?.title,\n\t},\n\t{\n\t\tlabel: __( 'Themes' ),\n\t\tname: 'theme',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/themes',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tkey: 'stylesheet',\n\t},\n];\n\nexport const kinds = [\n\t{ name: 'postType', loadEntities: loadPostTypeEntities },\n\t{ name: 'taxonomy', loadEntities: loadTaxonomyEntities },\n];\n\n/**\n * Returns a function to be used to retrieve extra edits to apply before persisting a post type.\n *\n * @param {Object} persistedRecord Already persisted Post\n * @param {Object} edits Edits.\n * @return {Object} Updated edits.\n */\nexport const prePersistPostType = ( persistedRecord, edits ) => {\n\tconst newEdits = {};\n\n\tif ( persistedRecord?.status === 'auto-draft' ) {\n\t\t// Saving an auto-draft should create a draft by default.\n\t\tif ( ! edits.status && ! newEdits.status ) {\n\t\t\tnewEdits.status = 'draft';\n\t\t}\n\n\t\t// Fix the auto-draft default title.\n\t\tif (\n\t\t\t( ! edits.title || edits.title === 'Auto Draft' ) &&\n\t\t\t! newEdits.title &&\n\t\t\t( ! persistedRecord?.title ||\n\t\t\t\tpersistedRecord?.title === 'Auto Draft' )\n\t\t) {\n\t\t\tnewEdits.title = '';\n\t\t}\n\t}\n\n\treturn newEdits;\n};\n\n/**\n * Returns the list of post type entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadPostTypeEntities() {\n\tconst postTypes = await apiFetch( { path: '/wp/v2/types?context=edit' } );\n\treturn map( postTypes, ( postType, name ) => {\n\t\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\t\tname\n\t\t);\n\t\tconst namespace = postType?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'postType',\n\t\t\tbaseURL: `/${ namespace }/${ postType.rest_base }`,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: postType.labels.singular_name,\n\t\t\ttransientEdits: {\n\t\t\t\tblocks: true,\n\t\t\t\tselection: true,\n\t\t\t},\n\t\t\tmergedEdits: { meta: true },\n\t\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t\t\tgetTitle: ( record ) =>\n\t\t\t\trecord?.title?.rendered ||\n\t\t\t\trecord?.title ||\n\t\t\t\t( isTemplate ? startCase( record.slug ) : String( record.id ) ),\n\t\t\t__unstablePrePersist: isTemplate ? undefined : prePersistPostType,\n\t\t\t__unstable_rest_base: postType.rest_base,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of the taxonomies entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadTaxonomyEntities() {\n\tconst taxonomies = await apiFetch( {\n\t\tpath: '/wp/v2/taxonomies?context=edit',\n\t} );\n\treturn map( taxonomies, ( taxonomy, name ) => {\n\t\tconst namespace = taxonomy?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'taxonomy',\n\t\t\tbaseURL: `/${ namespace }/${ taxonomy.rest_base }`,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: taxonomy.labels.singular_name,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the entity's getter method name given its kind and name.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} prefix Function prefix.\n * @param {boolean} usePlural Whether to use the plural form or not.\n *\n * @return {string} Method name\n */\nexport const getMethodName = (\n\tkind,\n\tname,\n\tprefix = 'get',\n\tusePlural = false\n) => {\n\tconst entity = find( defaultEntities, { kind, name } );\n\tconst kindPrefix = kind === 'root' ? '' : upperFirst( camelCase( kind ) );\n\tconst nameSuffix =\n\t\tupperFirst( camelCase( name ) ) + ( usePlural ? 's' : '' );\n\tconst suffix =\n\t\tusePlural && entity.plural\n\t\t\t? upperFirst( camelCase( entity.plural ) )\n\t\t\t: nameSuffix;\n\treturn `${ prefix }${ kindPrefix }${ suffix }`;\n};\n\n/**\n * Loads the kind entities into the store.\n *\n * @param {string} kind Kind\n *\n * @return {Array} Entities\n */\nexport const getKindEntities = ( kind ) => async ( { select, dispatch } ) => {\n\tlet entities = select.getEntitiesByKind( kind );\n\tif ( entities && entities.length !== 0 ) {\n\t\treturn entities;\n\t}\n\n\tconst kindConfig = find( kinds, { name: kind } );\n\tif ( ! kindConfig ) {\n\t\treturn [];\n\t}\n\n\tentities = await kindConfig.loadEntities();\n\tdispatch( addEntities( entities ) );\n\n\treturn entities;\n};\n"]}
@@ -50,7 +50,7 @@ const CACHE = new Map();
50
50
  */
51
51
 
52
52
  const fetchUrlData = async (url, options = {}) => {
53
- const endpoint = '/__experimental/url-details';
53
+ const endpoint = '/wp-block-editor/v1/url-details';
54
54
  const args = {
55
55
  url: (0, _url.prependHTTP)(url)
56
56
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/fetch/__experimental-fetch-url-data.js"],"names":["CACHE","Map","fetchUrlData","url","options","endpoint","args","Promise","reject","protocol","startsWith","test","has","get","path","then","res","set"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA,MAAMA,KAAK,GAAG,IAAIC,GAAJ,EAAd;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,OAAQC,GAAR,EAAaC,OAAO,GAAG,EAAvB,KAA+B;AACnD,QAAMC,QAAQ,GAAG,6BAAjB;AAEA,QAAMC,IAAI,GAAG;AACZH,IAAAA,GAAG,EAAE,sBAAaA,GAAb;AADO,GAAb;;AAIA,MAAK,CAAE,gBAAOA,GAAP,CAAP,EAAsB;AACrB,WAAOI,OAAO,CAACC,MAAR,CAAiB,GAAGL,GAAK,sBAAzB,CAAP;AACA,GATkD,CAWnD;AACA;;;AACA,QAAMM,QAAQ,GAAG,sBAAaN,GAAb,CAAjB;;AAEA,MACC,CAAE,0BAAiBM,QAAjB,CAAF,IACA,CAAEA,QAAQ,CAACC,UAAT,CAAqB,MAArB,CADF,IAEA,CAAE,uBAAuBC,IAAvB,CAA6BR,GAA7B,CAHH,EAIE;AACD,WAAOI,OAAO,CAACC,MAAR,CACL,GAAGL,GAAK,4DADH,CAAP;AAGA;;AAED,MAAKH,KAAK,CAACY,GAAN,CAAWT,GAAX,CAAL,EAAwB;AACvB,WAAOH,KAAK,CAACa,GAAN,CAAWV,GAAX,CAAP;AACA;;AAED,SAAO,uBAAU;AAChBW,IAAAA,IAAI,EAAE,uBAAcT,QAAd,EAAwBC,IAAxB,CADU;AAEhB,OAAGF;AAFa,GAAV,EAGHW,IAHG,CAGKC,GAAF,IAAW;AACpBhB,IAAAA,KAAK,CAACiB,GAAN,CAAWd,GAAX,EAAgBa,GAAhB;AACA,WAAOA,GAAP;AACA,GANM,CAAP;AAOA,CApCD;;eAsCed,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport {\n\taddQueryArgs,\n\tprependHTTP,\n\tisURL,\n\tgetProtocol,\n\tisValidProtocol,\n} from '@wordpress/url';\n\n/**\n * A simple in-memory cache for requests.\n * This avoids repeat HTTP requests which may be beneficial\n * for those wishing to preserve low-bandwidth.\n */\nconst CACHE = new Map();\n\n/**\n * @typedef WPRemoteUrlData\n *\n * @property {string} title contents of the remote URL's `<title>` tag.\n */\n\n/**\n * Fetches data about a remote URL.\n * eg: <title> tag, favicon...etc.\n *\n * @async\n * @param {string} url the URL to request details from.\n * @param {Object?} options any options to pass to the underlying fetch.\n * @example\n * ```js\n * import { __experimentalFetchUrlData as fetchUrlData } from '@wordpress/core-data';\n *\n * //...\n *\n * export function initialize( id, settings ) {\n *\n * settings.__experimentalFetchUrlData = (\n * url\n * ) => fetchUrlData( url );\n * ```\n * @return {Promise< WPRemoteUrlData[] >} Remote URL data.\n */\nconst fetchUrlData = async ( url, options = {} ) => {\n\tconst endpoint = '/__experimental/url-details';\n\n\tconst args = {\n\t\turl: prependHTTP( url ),\n\t};\n\n\tif ( ! isURL( url ) ) {\n\t\treturn Promise.reject( `${ url } is not a valid URL.` );\n\t}\n\n\t// Test for \"http\" based URL as it is possible for valid\n\t// yet unusable URLs such as `tel:123456` to be passed.\n\tconst protocol = getProtocol( url );\n\n\tif (\n\t\t! isValidProtocol( protocol ) ||\n\t\t! protocol.startsWith( 'http' ) ||\n\t\t! /^https?:\\/\\/[^\\/\\s]/i.test( url )\n\t) {\n\t\treturn Promise.reject(\n\t\t\t`${ url } does not have a valid protocol. URLs must be \"http\" based`\n\t\t);\n\t}\n\n\tif ( CACHE.has( url ) ) {\n\t\treturn CACHE.get( url );\n\t}\n\n\treturn apiFetch( {\n\t\tpath: addQueryArgs( endpoint, args ),\n\t\t...options,\n\t} ).then( ( res ) => {\n\t\tCACHE.set( url, res );\n\t\treturn res;\n\t} );\n};\n\nexport default fetchUrlData;\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/fetch/__experimental-fetch-url-data.js"],"names":["CACHE","Map","fetchUrlData","url","options","endpoint","args","Promise","reject","protocol","startsWith","test","has","get","path","then","res","set"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA,MAAMA,KAAK,GAAG,IAAIC,GAAJ,EAAd;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,OAAQC,GAAR,EAAaC,OAAO,GAAG,EAAvB,KAA+B;AACnD,QAAMC,QAAQ,GAAG,iCAAjB;AAEA,QAAMC,IAAI,GAAG;AACZH,IAAAA,GAAG,EAAE,sBAAaA,GAAb;AADO,GAAb;;AAIA,MAAK,CAAE,gBAAOA,GAAP,CAAP,EAAsB;AACrB,WAAOI,OAAO,CAACC,MAAR,CAAiB,GAAGL,GAAK,sBAAzB,CAAP;AACA,GATkD,CAWnD;AACA;;;AACA,QAAMM,QAAQ,GAAG,sBAAaN,GAAb,CAAjB;;AAEA,MACC,CAAE,0BAAiBM,QAAjB,CAAF,IACA,CAAEA,QAAQ,CAACC,UAAT,CAAqB,MAArB,CADF,IAEA,CAAE,uBAAuBC,IAAvB,CAA6BR,GAA7B,CAHH,EAIE;AACD,WAAOI,OAAO,CAACC,MAAR,CACL,GAAGL,GAAK,4DADH,CAAP;AAGA;;AAED,MAAKH,KAAK,CAACY,GAAN,CAAWT,GAAX,CAAL,EAAwB;AACvB,WAAOH,KAAK,CAACa,GAAN,CAAWV,GAAX,CAAP;AACA;;AAED,SAAO,uBAAU;AAChBW,IAAAA,IAAI,EAAE,uBAAcT,QAAd,EAAwBC,IAAxB,CADU;AAEhB,OAAGF;AAFa,GAAV,EAGHW,IAHG,CAGKC,GAAF,IAAW;AACpBhB,IAAAA,KAAK,CAACiB,GAAN,CAAWd,GAAX,EAAgBa,GAAhB;AACA,WAAOA,GAAP;AACA,GANM,CAAP;AAOA,CApCD;;eAsCed,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport {\n\taddQueryArgs,\n\tprependHTTP,\n\tisURL,\n\tgetProtocol,\n\tisValidProtocol,\n} from '@wordpress/url';\n\n/**\n * A simple in-memory cache for requests.\n * This avoids repeat HTTP requests which may be beneficial\n * for those wishing to preserve low-bandwidth.\n */\nconst CACHE = new Map();\n\n/**\n * @typedef WPRemoteUrlData\n *\n * @property {string} title contents of the remote URL's `<title>` tag.\n */\n\n/**\n * Fetches data about a remote URL.\n * eg: <title> tag, favicon...etc.\n *\n * @async\n * @param {string} url the URL to request details from.\n * @param {Object?} options any options to pass to the underlying fetch.\n * @example\n * ```js\n * import { __experimentalFetchUrlData as fetchUrlData } from '@wordpress/core-data';\n *\n * //...\n *\n * export function initialize( id, settings ) {\n *\n * settings.__experimentalFetchUrlData = (\n * url\n * ) => fetchUrlData( url );\n * ```\n * @return {Promise< WPRemoteUrlData[] >} Remote URL data.\n */\nconst fetchUrlData = async ( url, options = {} ) => {\n\tconst endpoint = '/wp-block-editor/v1/url-details';\n\n\tconst args = {\n\t\turl: prependHTTP( url ),\n\t};\n\n\tif ( ! isURL( url ) ) {\n\t\treturn Promise.reject( `${ url } is not a valid URL.` );\n\t}\n\n\t// Test for \"http\" based URL as it is possible for valid\n\t// yet unusable URLs such as `tel:123456` to be passed.\n\tconst protocol = getProtocol( url );\n\n\tif (\n\t\t! isValidProtocol( protocol ) ||\n\t\t! protocol.startsWith( 'http' ) ||\n\t\t! /^https?:\\/\\/[^\\/\\s]/i.test( url )\n\t) {\n\t\treturn Promise.reject(\n\t\t\t`${ url } does not have a valid protocol. URLs must be \"http\" based`\n\t\t);\n\t}\n\n\tif ( CACHE.has( url ) ) {\n\t\treturn CACHE.get( url );\n\t}\n\n\treturn apiFetch( {\n\t\tpath: addQueryArgs( endpoint, args ),\n\t\t...options,\n\t} ).then( ( res ) => {\n\t\tCACHE.set( url, res );\n\t\treturn res;\n\t} );\n};\n\nexport default fetchUrlData;\n"]}
package/build/reducer.js CHANGED
@@ -10,8 +10,8 @@ exports.users = users;
10
10
  exports.currentUser = currentUser;
11
11
  exports.taxonomies = taxonomies;
12
12
  exports.currentTheme = currentTheme;
13
- exports.themes = themes;
14
- exports.themeSupports = themeSupports;
13
+ exports.currentGlobalStylesId = currentGlobalStylesId;
14
+ exports.themeBaseGlobalStyles = themeBaseGlobalStyles;
15
15
  exports.entitiesConfig = entitiesConfig;
16
16
  exports.undo = undo;
17
17
  exports.embedPreviews = embedPreviews;
@@ -147,40 +147,38 @@ function currentTheme(state = undefined, action) {
147
147
  return state;
148
148
  }
149
149
  /**
150
- * Reducer managing installed themes.
150
+ * Reducer managing the current global styles id.
151
151
  *
152
- * @param {Object} state Current state.
152
+ * @param {string} state Current state.
153
153
  * @param {Object} action Dispatched action.
154
154
  *
155
- * @return {Object} Updated state.
155
+ * @return {string} Updated state.
156
156
  */
157
157
 
158
158
 
159
- function themes(state = {}, action) {
159
+ function currentGlobalStylesId(state = undefined, action) {
160
160
  switch (action.type) {
161
- case 'RECEIVE_CURRENT_THEME':
162
- return { ...state,
163
- [action.currentTheme.stylesheet]: action.currentTheme
164
- };
161
+ case 'RECEIVE_CURRENT_GLOBAL_STYLES_ID':
162
+ return action.id;
165
163
  }
166
164
 
167
165
  return state;
168
166
  }
169
167
  /**
170
- * Reducer managing theme supports data.
168
+ * Reducer managing the theme base global styles.
171
169
  *
172
- * @param {Object} state Current state.
170
+ * @param {string} state Current state.
173
171
  * @param {Object} action Dispatched action.
174
172
  *
175
- * @return {Object} Updated state.
173
+ * @return {string} Updated state.
176
174
  */
177
175
 
178
176
 
179
- function themeSupports(state = {}, action) {
177
+ function themeBaseGlobalStyles(state = {}, action) {
180
178
  switch (action.type) {
181
- case 'RECEIVE_THEME_SUPPORTS':
179
+ case 'RECEIVE_THEME_GLOBAL_STYLES':
182
180
  return { ...state,
183
- ...action.themeSupports
181
+ [action.stylesheet]: action.globalStyles
184
182
  };
185
183
  }
186
184
 
@@ -545,10 +543,10 @@ var _default = (0, _data.combineReducers)({
545
543
  terms,
546
544
  users,
547
545
  currentTheme,
546
+ currentGlobalStylesId,
548
547
  currentUser,
548
+ themeBaseGlobalStyles,
549
549
  taxonomies,
550
- themes,
551
- themeSupports,
552
550
  entities,
553
551
  undo,
554
552
  embedPreviews,