@wordpress/core-data 4.11.0 → 4.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +2 -81
- package/build/actions.js +27 -0
- package/build/actions.js.map +1 -1
- package/build/resolvers.js +5 -3
- package/build/resolvers.js.map +1 -1
- package/build/selectors.js +5 -3
- package/build/selectors.js.map +1 -1
- package/build-module/actions.js +27 -0
- package/build-module/actions.js.map +1 -1
- package/build-module/resolvers.js +6 -4
- package/build-module/resolvers.js.map +1 -1
- package/build-module/selectors.js +6 -4
- package/build-module/selectors.js.map +1 -1
- package/package.json +11 -11
- package/src/actions.js +27 -0
- package/src/resolvers.js +6 -13
- package/src/selectors.ts +6 -4
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -90,58 +90,6 @@ _Returns_
|
|
|
90
90
|
|
|
91
91
|
- `Object`: Action object.
|
|
92
92
|
|
|
93
|
-
### receiveAutosaves
|
|
94
|
-
|
|
95
|
-
Returns an action object used in signalling that the autosaves for a
|
|
96
|
-
post have been received.
|
|
97
|
-
|
|
98
|
-
_Parameters_
|
|
99
|
-
|
|
100
|
-
- _postId_ `number`: The id of the post that is parent to the autosave.
|
|
101
|
-
- _autosaves_ `Array|Object`: An array of autosaves or singular autosave object.
|
|
102
|
-
|
|
103
|
-
_Returns_
|
|
104
|
-
|
|
105
|
-
- `Object`: Action object.
|
|
106
|
-
|
|
107
|
-
### receiveCurrentTheme
|
|
108
|
-
|
|
109
|
-
Returns an action object used in signalling that the current theme has been received.
|
|
110
|
-
|
|
111
|
-
_Parameters_
|
|
112
|
-
|
|
113
|
-
- _currentTheme_ `Object`: The current theme.
|
|
114
|
-
|
|
115
|
-
_Returns_
|
|
116
|
-
|
|
117
|
-
- `Object`: Action object.
|
|
118
|
-
|
|
119
|
-
### receiveCurrentUser
|
|
120
|
-
|
|
121
|
-
Returns an action used in signalling that the current user has been received.
|
|
122
|
-
|
|
123
|
-
_Parameters_
|
|
124
|
-
|
|
125
|
-
- _currentUser_ `Object`: Current user object.
|
|
126
|
-
|
|
127
|
-
_Returns_
|
|
128
|
-
|
|
129
|
-
- `Object`: Action object.
|
|
130
|
-
|
|
131
|
-
### receiveEmbedPreview
|
|
132
|
-
|
|
133
|
-
Returns an action object used in signalling that the preview data for
|
|
134
|
-
a given URl has been received.
|
|
135
|
-
|
|
136
|
-
_Parameters_
|
|
137
|
-
|
|
138
|
-
- _url_ `string`: URL to preview the embed for.
|
|
139
|
-
- _preview_ `*`: Preview data.
|
|
140
|
-
|
|
141
|
-
_Returns_
|
|
142
|
-
|
|
143
|
-
- `Object`: Action object.
|
|
144
|
-
|
|
145
93
|
### receiveEntityRecords
|
|
146
94
|
|
|
147
95
|
Returns an action object used in signalling that entity records have been received.
|
|
@@ -183,33 +131,6 @@ _Returns_
|
|
|
183
131
|
|
|
184
132
|
- `Object`: Action object.
|
|
185
133
|
|
|
186
|
-
### receiveUserPermission
|
|
187
|
-
|
|
188
|
-
Returns an action object used in signalling that the current user has
|
|
189
|
-
permission to perform an action on a REST resource.
|
|
190
|
-
|
|
191
|
-
_Parameters_
|
|
192
|
-
|
|
193
|
-
- _key_ `string`: A key that represents the action and REST resource.
|
|
194
|
-
- _isAllowed_ `boolean`: Whether or not the user can perform the action.
|
|
195
|
-
|
|
196
|
-
_Returns_
|
|
197
|
-
|
|
198
|
-
- `Object`: Action object.
|
|
199
|
-
|
|
200
|
-
### receiveUserQuery
|
|
201
|
-
|
|
202
|
-
Returns an action object used in signalling that authors have been received.
|
|
203
|
-
|
|
204
|
-
_Parameters_
|
|
205
|
-
|
|
206
|
-
- _queryID_ `string`: Query ID.
|
|
207
|
-
- _users_ `Array|Object`: Users received.
|
|
208
|
-
|
|
209
|
-
_Returns_
|
|
210
|
-
|
|
211
|
-
- `Object`: Action object.
|
|
212
|
-
|
|
213
134
|
### redo
|
|
214
135
|
|
|
215
136
|
Action triggered to redo the last undoed
|
|
@@ -487,7 +408,7 @@ _Parameters_
|
|
|
487
408
|
- _kind_ `K`: Entity kind.
|
|
488
409
|
- _name_ `N`: Entity name.
|
|
489
410
|
- _key_ `KeyOf< R >`: Record's key
|
|
490
|
-
- _query_ Optional query.
|
|
411
|
+
- _query_ Optional query. If requesting specific fields, fields must always include the ID.
|
|
491
412
|
|
|
492
413
|
_Returns_
|
|
493
414
|
|
|
@@ -536,7 +457,7 @@ _Parameters_
|
|
|
536
457
|
- _state_ `State`: State tree
|
|
537
458
|
- _kind_ `K`: Entity kind.
|
|
538
459
|
- _name_ `N`: Entity name.
|
|
539
|
-
- _query_ Optional terms query.
|
|
460
|
+
- _query_ Optional terms query. If requesting specific fields, fields must always include the ID.
|
|
540
461
|
|
|
541
462
|
_Returns_
|
|
542
463
|
|
package/build/actions.js
CHANGED
|
@@ -56,6 +56,9 @@ var _name = require("./name");
|
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* Returns an action object used in signalling that authors have been received.
|
|
59
|
+
* Ignored from documentation as it's internal to the data store.
|
|
60
|
+
*
|
|
61
|
+
* @ignore
|
|
59
62
|
*
|
|
60
63
|
* @param {string} queryID Query ID.
|
|
61
64
|
* @param {Array|Object} users Users received.
|
|
@@ -71,6 +74,9 @@ function receiveUserQuery(queryID, users) {
|
|
|
71
74
|
}
|
|
72
75
|
/**
|
|
73
76
|
* Returns an action used in signalling that the current user has been received.
|
|
77
|
+
* Ignored from documentation as it's internal to the data store.
|
|
78
|
+
*
|
|
79
|
+
* @ignore
|
|
74
80
|
*
|
|
75
81
|
* @param {Object} currentUser Current user object.
|
|
76
82
|
*
|
|
@@ -140,6 +146,9 @@ function receiveEntityRecords(kind, name, records, query) {
|
|
|
140
146
|
}
|
|
141
147
|
/**
|
|
142
148
|
* Returns an action object used in signalling that the current theme has been received.
|
|
149
|
+
* Ignored from documentation as it's internal to the data store.
|
|
150
|
+
*
|
|
151
|
+
* @ignore
|
|
143
152
|
*
|
|
144
153
|
* @param {Object} currentTheme The current theme.
|
|
145
154
|
*
|
|
@@ -155,6 +164,9 @@ function receiveCurrentTheme(currentTheme) {
|
|
|
155
164
|
}
|
|
156
165
|
/**
|
|
157
166
|
* Returns an action object used in signalling that the current global styles id has been received.
|
|
167
|
+
* Ignored from documentation as it's internal to the data store.
|
|
168
|
+
*
|
|
169
|
+
* @ignore
|
|
158
170
|
*
|
|
159
171
|
* @param {string} currentGlobalStylesId The current global styles id.
|
|
160
172
|
*
|
|
@@ -170,6 +182,9 @@ function __experimentalReceiveCurrentGlobalStylesId(currentGlobalStylesId) {
|
|
|
170
182
|
}
|
|
171
183
|
/**
|
|
172
184
|
* Returns an action object used in signalling that the theme base global styles have been received
|
|
185
|
+
* Ignored from documentation as it's internal to the data store.
|
|
186
|
+
*
|
|
187
|
+
* @ignore
|
|
173
188
|
*
|
|
174
189
|
* @param {string} stylesheet The theme's identifier
|
|
175
190
|
* @param {Object} globalStyles The global styles object.
|
|
@@ -187,6 +202,9 @@ function __experimentalReceiveThemeBaseGlobalStyles(stylesheet, globalStyles) {
|
|
|
187
202
|
}
|
|
188
203
|
/**
|
|
189
204
|
* Returns an action object used in signalling that the theme global styles variations have been received.
|
|
205
|
+
* Ignored from documentation as it's internal to the data store.
|
|
206
|
+
*
|
|
207
|
+
* @ignore
|
|
190
208
|
*
|
|
191
209
|
* @param {string} stylesheet The theme's identifier
|
|
192
210
|
* @param {Array} variations The global styles variations.
|
|
@@ -222,6 +240,9 @@ function receiveThemeSupports() {
|
|
|
222
240
|
/**
|
|
223
241
|
* Returns an action object used in signalling that the preview data for
|
|
224
242
|
* a given URl has been received.
|
|
243
|
+
* Ignored from documentation as it's internal to the data store.
|
|
244
|
+
*
|
|
245
|
+
* @ignore
|
|
225
246
|
*
|
|
226
247
|
* @param {string} url URL to preview the embed for.
|
|
227
248
|
* @param {*} preview Preview data.
|
|
@@ -782,6 +803,9 @@ function receiveUploadPermissions(hasUploadPermissions) {
|
|
|
782
803
|
/**
|
|
783
804
|
* Returns an action object used in signalling that the current user has
|
|
784
805
|
* permission to perform an action on a REST resource.
|
|
806
|
+
* Ignored from documentation as it's internal to the data store.
|
|
807
|
+
*
|
|
808
|
+
* @ignore
|
|
785
809
|
*
|
|
786
810
|
* @param {string} key A key that represents the action and REST resource.
|
|
787
811
|
* @param {boolean} isAllowed Whether or not the user can perform the action.
|
|
@@ -800,6 +824,9 @@ function receiveUserPermission(key, isAllowed) {
|
|
|
800
824
|
/**
|
|
801
825
|
* Returns an action object used in signalling that the autosaves for a
|
|
802
826
|
* post have been received.
|
|
827
|
+
* Ignored from documentation as it's internal to the data store.
|
|
828
|
+
*
|
|
829
|
+
* @ignore
|
|
803
830
|
*
|
|
804
831
|
* @param {number} postId The id of the post that is parent to the autosave.
|
|
805
832
|
* @param {Array|Object} autosaves An array of autosaves or singular autosave object.
|
package/build/actions.js.map
CHANGED
|
@@ -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","__experimentalReceiveCurrentGlobalStylesId","currentGlobalStylesId","id","__experimentalReceiveThemeBaseGlobalStyles","stylesheet","globalStyles","__experimentalReceiveThemeGlobalStyleVariations","variations","receiveThemeSupports","since","receiveEmbedPreview","url","preview","deleteEntityRecord","recordId","__unstableFetch","apiFetch","throwOnError","dispatch","configs","entityConfig","error","deletedRecord","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","hasError","path","baseURL","method","_error","__unstableReleaseStoreLock","editEntityRecord","options","select","getEntityConfig","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","alternative","receiveUserPermission","isAllowed","postId","autosaves"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAnBA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAT,CAA2BC,OAA3B,EAAoCC,KAApC,EAA4C;AAClD,SAAO;AACNC,IAAAA,IAAI,EAAE,oBADA;AAEND,IAAAA,KAAK,EAAE,uBAAWA,KAAX,CAFD;AAGND,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASG,kBAAT,CAA6BC,WAA7B,EAA2C;AACjD,SAAO;AACNF,IAAAA,IAAI,EAAE,sBADA;AAENE,IAAAA;AAFM,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,WAAT,CAAsBC,QAAtB,EAAiC;AACvC,SAAO;AACNJ,IAAAA,IAAI,EAAE,cADA;AAENI,IAAAA;AAFM,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,oBAAT,CACNC,IADM,EAENC,IAFM,EAGNC,OAHM,EAINC,KAJM,EAOL;AAAA,MAFDC,eAEC,uEAFiB,KAEjB;AAAA,MADDC,KACC;;AACD;AACA;AACA,MAAKL,IAAI,KAAK,UAAd,EAA2B;AAC1BE,IAAAA,OAAO,GAAG,uBAAWA,OAAX,EAAqBI,GAArB,CAA4BC,MAAF,IACnCA,MAAM,CAACC,MAAP,KAAkB,YAAlB,GAAiC,EAAE,GAAGD,MAAL;AAAaE,MAAAA,KAAK,EAAE;AAApB,KAAjC,GAA4DF,MADnD,CAAV;AAGA;;AACD,MAAIG,MAAJ;;AACA,MAAKP,KAAL,EAAa;AACZO,IAAAA,MAAM,GAAG,sCAAqBR,OAArB,EAA8BC,KAA9B,EAAqCE,KAArC,CAAT;AACA,GAFD,MAEO;AACNK,IAAAA,MAAM,GAAG,+BAAcR,OAAd,EAAuBG,KAAvB,CAAT;AACA;;AAED,SAAO,EACN,GAAGK,MADG;AAENV,IAAAA,IAFM;AAGNC,IAAAA,IAHM;AAING,IAAAA;AAJM,GAAP;AAMA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,mBAAT,CAA8BC,YAA9B,EAA6C;AACnD,SAAO;AACNlB,IAAAA,IAAI,EAAE,uBADA;AAENkB,IAAAA;AAFM,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,0CAAT,CACNC,qBADM,EAEL;AACD,SAAO;AACNpB,IAAAA,IAAI,EAAE,kCADA;AAENqB,IAAAA,EAAE,EAAED;AAFE,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASE,0CAAT,CACNC,UADM,EAENC,YAFM,EAGL;AACD,SAAO;AACNxB,IAAAA,IAAI,EAAE,6BADA;AAENuB,IAAAA,UAFM;AAGNC,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,+CAAT,CACNF,UADM,EAENG,UAFM,EAGL;AACD,SAAO;AACN1B,IAAAA,IAAI,EAAE,uCADA;AAENuB,IAAAA,UAFM;AAGNG,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,oBAAT,GAAgC;AACtC,2BAAY,iDAAZ,EAA+D;AAC9DC,IAAAA,KAAK,EAAE;AADuD,GAA/D;AAIA,SAAO;AACN5B,IAAAA,IAAI,EAAE;AADA,GAAP;AAGA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAAS6B,mBAAT,CAA8BC,GAA9B,EAAmCC,OAAnC,EAA6C;AACnD,SAAO;AACN/B,IAAAA,IAAI,EAAE,uBADA;AAEN8B,IAAAA,GAFM;AAGNC,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAMC,kBAAkB,GAC9B,UACC1B,IADD,EAECC,IAFD,EAGC0B,QAHD,EAICxB,KAJD;AAAA,MAKC;AAAEyB,IAAAA,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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 { getOrLoadEntitiesConfig, 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 record.\n * @param {string} name Name of the received entity record.\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 theme global styles variations have been received.\n *\n * @param {string} stylesheet The theme's identifier\n * @param {Array} variations The global styles variations.\n *\n * @return {Object} Action object.\n */\nexport function __experimentalReceiveThemeGlobalStyleVariations(\n\tstylesheet,\n\tvariations\n) {\n\treturn {\n\t\ttype: 'RECEIVE_THEME_GLOBAL_STYLE_VARIATIONS',\n\t\tstylesheet,\n\t\tvariations,\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 * @param {boolean} [options.throwOnError=false] If false, this action suppresses all\n * the exceptions. Defaults to false.\n */\nexport const deleteEntityRecord =\n\t(\n\t\tkind,\n\t\tname,\n\t\trecordId,\n\t\tquery,\n\t\t{ __unstableFetch = apiFetch, throwOnError = false } = {}\n\t) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = find( configs, { kind, name } );\n\t\tlet error;\n\t\tlet deletedRecord = false;\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, recordId ],\n\t\t\t{ exclusive: true }\n\t\t);\n\n\t\ttry {\n\t\t\tdispatch( {\n\t\t\t\ttype: 'DELETE_ENTITY_RECORD_START',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t} );\n\n\t\t\tlet hasError = false;\n\t\t\ttry {\n\t\t\t\tlet path = `${ entityConfig.baseURL }/${ recordId }`;\n\n\t\t\t\tif ( query ) {\n\t\t\t\t\tpath = addQueryArgs( path, query );\n\t\t\t\t}\n\n\t\t\t\tdeletedRecord = await __unstableFetch( {\n\t\t\t\t\tpath,\n\t\t\t\t\tmethod: 'DELETE',\n\t\t\t\t} );\n\n\t\t\t\tawait dispatch( removeItems( kind, name, recordId, true ) );\n\t\t\t} catch ( _error ) {\n\t\t\t\thasError = true;\n\t\t\t\terror = _error;\n\t\t\t}\n\n\t\t\tdispatch( {\n\t\t\t\ttype: 'DELETE_ENTITY_RECORD_FINISH',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\terror,\n\t\t\t} );\n\n\t\t\tif ( hasError && throwOnError ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn deletedRecord;\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\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\t( kind, name, recordId, edits, options = {} ) =>\n\t( { select, dispatch } ) => {\n\t\tconst entityConfig = select.getEntityConfig( kind, name );\n\t\tif ( ! entityConfig ) {\n\t\t\tthrow new Error(\n\t\t\t\t`The entity being edited (${ kind }, ${ name }) does not have a loaded config.`\n\t\t\t);\n\t\t}\n\t\tconst { transientEdits = {}, mergedEdits = {} } = entityConfig;\n\t\tconst record = select.getRawEntityRecord( kind, name, recordId );\n\t\tconst editedRecord = select.getEditedEntityRecord(\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t);\n\n\t\tconst edit = {\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\t// Clear edits when they are equal to their persisted counterparts\n\t\t\t// so that the property is not considered dirty.\n\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\tconst recordValue = record[ key ];\n\t\t\t\tconst editedRecordValue = editedRecord[ key ];\n\t\t\t\tconst value = mergedEdits[ key ]\n\t\t\t\t\t? { ...editedRecordValue, ...edits[ key ] }\n\t\t\t\t\t: edits[ key ];\n\t\t\t\tacc[ key ] = isEqual( recordValue, value ) ? undefined : value;\n\t\t\t\treturn acc;\n\t\t\t}, {} ),\n\t\t\ttransientEdits,\n\t\t};\n\t\tdispatch( {\n\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t...edit,\n\t\t\tmeta: {\n\t\t\t\tundo: ! options.undoIgnore && {\n\t\t\t\t\t...edit,\n\t\t\t\t\t// Send the current values for things like the first undo stack entry.\n\t\t\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\t\t\tacc[ key ] = editedRecord[ key ];\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, {} ),\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t};\n\n/**\n * Action triggered to undo the last edit to\n * an entity record, if any.\n */\nexport const undo =\n\t() =>\n\t( { select, dispatch } ) => {\n\t\tconst undoEdit = select.getUndoEdit();\n\t\tif ( ! undoEdit ) {\n\t\t\treturn;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t...undoEdit,\n\t\t\tmeta: { isUndo: true },\n\t\t} );\n\t};\n\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n */\nexport const redo =\n\t() =>\n\t( { select, dispatch } ) => {\n\t\tconst redoEdit = select.getRedoEdit();\n\t\tif ( ! redoEdit ) {\n\t\t\treturn;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t...redoEdit,\n\t\t\tmeta: { isRedo: true },\n\t\t} );\n\t};\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 * @param {boolean} [options.throwOnError=false] If false, this action suppresses all\n * the exceptions. Defaults to false.\n */\nexport const saveEntityRecord =\n\t(\n\t\tkind,\n\t\tname,\n\t\trecord,\n\t\t{\n\t\t\tisAutosave = false,\n\t\t\t__unstableFetch = apiFetch,\n\t\t\tthrowOnError = false,\n\t\t} = {}\n\t) =>\n\tasync ( { select, resolveSelect, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = find( configs, { kind, name } );\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\t\tconst entityIdKey = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\tconst recordId = record[ entityIdKey ];\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, recordId || uuid() ],\n\t\t\t{ exclusive: true }\n\t\t);\n\n\t\ttry {\n\t\t\t// Evaluate optimized edits.\n\t\t\t// (Function edits that should be evaluated on save to avoid expensive computations on every edit.)\n\t\t\tfor ( const [ key, value ] of Object.entries( record ) ) {\n\t\t\t\tif ( typeof value === 'function' ) {\n\t\t\t\t\tconst evaluatedValue = value(\n\t\t\t\t\t\tselect.getEditedEntityRecord( kind, name, recordId )\n\t\t\t\t\t);\n\t\t\t\t\tdispatch.editEntityRecord(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\trecordId,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ key ]: evaluatedValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t\t);\n\t\t\t\t\trecord[ key ] = evaluatedValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdispatch( {\n\t\t\t\ttype: 'SAVE_ENTITY_RECORD_START',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\tisAutosave,\n\t\t\t} );\n\t\t\tlet updatedRecord;\n\t\t\tlet error;\n\t\t\tlet hasError = false;\n\t\t\ttry {\n\t\t\t\tconst path = `${ entityConfig.baseURL }${\n\t\t\t\t\trecordId ? '/' + recordId : ''\n\t\t\t\t}`;\n\t\t\t\tconst persistedRecord = select.getRawEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId\n\t\t\t\t);\n\n\t\t\t\tif ( isAutosave ) {\n\t\t\t\t\t// Most of this autosave logic is very specific to posts.\n\t\t\t\t\t// This is fine for now as it is the only supported autosave,\n\t\t\t\t\t// but ideally this should all be handled in the back end,\n\t\t\t\t\t// so the client just sends and receives objects.\n\t\t\t\t\tconst currentUser = select.getCurrentUser();\n\t\t\t\t\tconst currentUserId = currentUser\n\t\t\t\t\t\t? currentUser.id\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\tconst autosavePost = await resolveSelect.getAutosave(\n\t\t\t\t\t\tpersistedRecord.type,\n\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\tcurrentUserId\n\t\t\t\t\t);\n\t\t\t\t\t// Autosaves need all expected fields to be present.\n\t\t\t\t\t// So we fallback to the previous autosave and then\n\t\t\t\t\t// to the actual persisted entity if the edits don't\n\t\t\t\t\t// have a value.\n\t\t\t\t\tlet data = {\n\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t...autosavePost,\n\t\t\t\t\t\t...record,\n\t\t\t\t\t};\n\t\t\t\t\tdata = Object.keys( data ).reduce(\n\t\t\t\t\t\t( acc, key ) => {\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 ] = data[ 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\t\tstatus:\n\t\t\t\t\t\t\t\tdata.status === 'auto-draft'\n\t\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t\t: data.status,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\t\tpath: `${ path }/autosaves`,\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tdata,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// An autosave may be processed by the server as a regular save\n\t\t\t\t\t// when its update is requested by the author and the post had\n\t\t\t\t\t// draft or auto-draft status.\n\t\t\t\t\tif ( persistedRecord.id === updatedRecord.id ) {\n\t\t\t\t\t\tlet newRecord = {\n\t\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\t...updatedRecord,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tnewRecord = Object.keys( newRecord ).reduce(\n\t\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t\t// These properties are persisted in autosaves.\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes(\n\t\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tacc[ key ] = newRecord[ key ];\n\t\t\t\t\t\t\t\t} else if ( key === 'status' ) {\n\t\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\t// \"auto-draft\" to \"draft\".\n\t\t\t\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\t\t\t\tpersistedRecord.status ===\n\t\t\t\t\t\t\t\t\t\t\t'auto-draft' &&\n\t\t\t\t\t\t\t\t\t\tnewRecord.status === 'draft'\n\t\t\t\t\t\t\t\t\t\t\t? newRecord.status\n\t\t\t\t\t\t\t\t\t\t\t: persistedRecord.status;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// These properties are not persisted in autosaves.\n\t\t\t\t\t\t\t\t\tacc[ key ] = persistedRecord[ key ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tnewRecord,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdispatch.receiveAutosaves(\n\t\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\t\tupdatedRecord\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet edits = record;\n\t\t\t\t\tif ( entityConfig.__unstablePrePersist ) {\n\t\t\t\t\t\tedits = {\n\t\t\t\t\t\t\t...edits,\n\t\t\t\t\t\t\t...entityConfig.__unstablePrePersist(\n\t\t\t\t\t\t\t\tpersistedRecord,\n\t\t\t\t\t\t\t\tedits\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tmethod: recordId ? 'PUT' : 'POST',\n\t\t\t\t\t\tdata: edits,\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\tupdatedRecord,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tedits\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch ( _error ) {\n\t\t\t\thasError = true;\n\t\t\t\terror = _error;\n\t\t\t}\n\t\t\tdispatch( {\n\t\t\t\ttype: 'SAVE_ENTITY_RECORD_FINISH',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\terror,\n\t\t\t\tisAutosave,\n\t\t\t} );\n\n\t\t\tif ( hasError && throwOnError ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn updatedRecord;\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\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 {(thunkArgs: Object) => Promise} A promise that resolves to an array containing the return\n * values of each function given in `requests`.\n */\nexport const __experimentalBatch =\n\t( requests ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst batch = createBatch();\n\t\tconst api = {\n\t\t\tsaveEntityRecord( kind, name, record, options ) {\n\t\t\t\treturn batch.add( ( add ) =>\n\t\t\t\t\tdispatch.saveEntityRecord( kind, name, record, {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t\tsaveEditedEntityRecord( kind, name, recordId, options ) {\n\t\t\t\treturn batch.add( ( add ) =>\n\t\t\t\t\tdispatch.saveEditedEntityRecord( kind, name, recordId, {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t\tdeleteEntityRecord( kind, name, recordId, query, options ) {\n\t\t\t\treturn batch.add( ( add ) =>\n\t\t\t\t\tdispatch.deleteEntityRecord( kind, name, recordId, query, {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t\tconst resultPromises = requests.map( ( request ) => request( api ) );\n\t\tconst [ , ...results ] = await Promise.all( [\n\t\t\tbatch.run(),\n\t\t\t...resultPromises,\n\t\t] );\n\t\treturn results;\n\t};\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\t( kind, name, recordId, options ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = find( configs, { kind, name } );\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\t\tconst entityIdKey = entityConfig.key || DEFAULT_ENTITY_KEY;\n\n\t\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t);\n\t\tconst record = { [ entityIdKey ]: recordId, ...edits };\n\t\treturn await dispatch.saveEntityRecord( kind, name, record, options );\n\t};\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\t( kind, name, recordId, itemsToSave, options ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t);\n\t\tconst editsToSave = {};\n\t\tfor ( const edit in edits ) {\n\t\t\tif ( itemsToSave.some( ( item ) => item === edit ) ) {\n\t\t\t\teditsToSave[ edit ] = edits[ edit ];\n\t\t\t}\n\t\t}\n\t\treturn await dispatch.saveEntityRecord(\n\t\t\tkind,\n\t\t\tname,\n\t\t\teditsToSave,\n\t\t\toptions\n\t\t);\n\t};\n\n/**\n * Returns an action object used in signalling that Upload permissions have been received.\n *\n * @deprecated since WP 5.9, use receiveUserPermission instead.\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\tdeprecated( \"wp.data.dispatch( 'core' ).receiveUploadPermissions\", {\n\t\tsince: '5.9',\n\t\talternative: 'receiveUserPermission',\n\t} );\n\n\treturn receiveUserPermission( 'create/media', hasUploadPermissions );\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","__experimentalReceiveThemeGlobalStyleVariations","variations","receiveThemeSupports","since","receiveEmbedPreview","url","preview","deleteEntityRecord","recordId","__unstableFetch","apiFetch","throwOnError","dispatch","configs","entityConfig","error","deletedRecord","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","hasError","path","baseURL","method","_error","__unstableReleaseStoreLock","editEntityRecord","options","select","getEntityConfig","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","alternative","receiveUserPermission","isAllowed","postId","autosaves"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAnBA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAT,CAA2BC,OAA3B,EAAoCC,KAApC,EAA4C;AAClD,SAAO;AACNC,IAAAA,IAAI,EAAE,oBADA;AAEND,IAAAA,KAAK,EAAE,uBAAWA,KAAX,CAFD;AAGND,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASG,kBAAT,CAA6BC,WAA7B,EAA2C;AACjD,SAAO;AACNF,IAAAA,IAAI,EAAE,sBADA;AAENE,IAAAA;AAFM,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,WAAT,CAAsBC,QAAtB,EAAiC;AACvC,SAAO;AACNJ,IAAAA,IAAI,EAAE,cADA;AAENI,IAAAA;AAFM,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,oBAAT,CACNC,IADM,EAENC,IAFM,EAGNC,OAHM,EAINC,KAJM,EAOL;AAAA,MAFDC,eAEC,uEAFiB,KAEjB;AAAA,MADDC,KACC;;AACD;AACA;AACA,MAAKL,IAAI,KAAK,UAAd,EAA2B;AAC1BE,IAAAA,OAAO,GAAG,uBAAWA,OAAX,EAAqBI,GAArB,CAA4BC,MAAF,IACnCA,MAAM,CAACC,MAAP,KAAkB,YAAlB,GAAiC,EAAE,GAAGD,MAAL;AAAaE,MAAAA,KAAK,EAAE;AAApB,KAAjC,GAA4DF,MADnD,CAAV;AAGA;;AACD,MAAIG,MAAJ;;AACA,MAAKP,KAAL,EAAa;AACZO,IAAAA,MAAM,GAAG,sCAAqBR,OAArB,EAA8BC,KAA9B,EAAqCE,KAArC,CAAT;AACA,GAFD,MAEO;AACNK,IAAAA,MAAM,GAAG,+BAAcR,OAAd,EAAuBG,KAAvB,CAAT;AACA;;AAED,SAAO,EACN,GAAGK,MADG;AAENV,IAAAA,IAFM;AAGNC,IAAAA,IAHM;AAING,IAAAA;AAJM,GAAP;AAMA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,mBAAT,CAA8BC,YAA9B,EAA6C;AACnD,SAAO;AACNlB,IAAAA,IAAI,EAAE,uBADA;AAENkB,IAAAA;AAFM,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,0CAAT,CACNC,qBADM,EAEL;AACD,SAAO;AACNpB,IAAAA,IAAI,EAAE,kCADA;AAENqB,IAAAA,EAAE,EAAED;AAFE,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASE,0CAAT,CACNC,UADM,EAENC,YAFM,EAGL;AACD,SAAO;AACNxB,IAAAA,IAAI,EAAE,6BADA;AAENuB,IAAAA,UAFM;AAGNC,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,+CAAT,CACNF,UADM,EAENG,UAFM,EAGL;AACD,SAAO;AACN1B,IAAAA,IAAI,EAAE,uCADA;AAENuB,IAAAA,UAFM;AAGNG,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,oBAAT,GAAgC;AACtC,2BAAY,iDAAZ,EAA+D;AAC9DC,IAAAA,KAAK,EAAE;AADuD,GAA/D;AAIA,SAAO;AACN5B,IAAAA,IAAI,EAAE;AADA,GAAP;AAGA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAAS6B,mBAAT,CAA8BC,GAA9B,EAAmCC,OAAnC,EAA6C;AACnD,SAAO;AACN/B,IAAAA,IAAI,EAAE,uBADA;AAEN8B,IAAAA,GAFM;AAGNC,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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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 { getOrLoadEntitiesConfig, 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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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 record.\n * @param {string} name Name of the received entity record.\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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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 theme global styles variations have been received.\n * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\n *\n * @param {string} stylesheet The theme's identifier\n * @param {Array} variations The global styles variations.\n *\n * @return {Object} Action object.\n */\nexport function __experimentalReceiveThemeGlobalStyleVariations(\n\tstylesheet,\n\tvariations\n) {\n\treturn {\n\t\ttype: 'RECEIVE_THEME_GLOBAL_STYLE_VARIATIONS',\n\t\tstylesheet,\n\t\tvariations,\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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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 * @param {boolean} [options.throwOnError=false] If false, this action suppresses all\n * the exceptions. Defaults to false.\n */\nexport const deleteEntityRecord =\n\t(\n\t\tkind,\n\t\tname,\n\t\trecordId,\n\t\tquery,\n\t\t{ __unstableFetch = apiFetch, throwOnError = false } = {}\n\t) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = find( configs, { kind, name } );\n\t\tlet error;\n\t\tlet deletedRecord = false;\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, recordId ],\n\t\t\t{ exclusive: true }\n\t\t);\n\n\t\ttry {\n\t\t\tdispatch( {\n\t\t\t\ttype: 'DELETE_ENTITY_RECORD_START',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t} );\n\n\t\t\tlet hasError = false;\n\t\t\ttry {\n\t\t\t\tlet path = `${ entityConfig.baseURL }/${ recordId }`;\n\n\t\t\t\tif ( query ) {\n\t\t\t\t\tpath = addQueryArgs( path, query );\n\t\t\t\t}\n\n\t\t\t\tdeletedRecord = await __unstableFetch( {\n\t\t\t\t\tpath,\n\t\t\t\t\tmethod: 'DELETE',\n\t\t\t\t} );\n\n\t\t\t\tawait dispatch( removeItems( kind, name, recordId, true ) );\n\t\t\t} catch ( _error ) {\n\t\t\t\thasError = true;\n\t\t\t\terror = _error;\n\t\t\t}\n\n\t\t\tdispatch( {\n\t\t\t\ttype: 'DELETE_ENTITY_RECORD_FINISH',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\terror,\n\t\t\t} );\n\n\t\t\tif ( hasError && throwOnError ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn deletedRecord;\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\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\t( kind, name, recordId, edits, options = {} ) =>\n\t( { select, dispatch } ) => {\n\t\tconst entityConfig = select.getEntityConfig( kind, name );\n\t\tif ( ! entityConfig ) {\n\t\t\tthrow new Error(\n\t\t\t\t`The entity being edited (${ kind }, ${ name }) does not have a loaded config.`\n\t\t\t);\n\t\t}\n\t\tconst { transientEdits = {}, mergedEdits = {} } = entityConfig;\n\t\tconst record = select.getRawEntityRecord( kind, name, recordId );\n\t\tconst editedRecord = select.getEditedEntityRecord(\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t);\n\n\t\tconst edit = {\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\t// Clear edits when they are equal to their persisted counterparts\n\t\t\t// so that the property is not considered dirty.\n\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\tconst recordValue = record[ key ];\n\t\t\t\tconst editedRecordValue = editedRecord[ key ];\n\t\t\t\tconst value = mergedEdits[ key ]\n\t\t\t\t\t? { ...editedRecordValue, ...edits[ key ] }\n\t\t\t\t\t: edits[ key ];\n\t\t\t\tacc[ key ] = isEqual( recordValue, value ) ? undefined : value;\n\t\t\t\treturn acc;\n\t\t\t}, {} ),\n\t\t\ttransientEdits,\n\t\t};\n\t\tdispatch( {\n\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t...edit,\n\t\t\tmeta: {\n\t\t\t\tundo: ! options.undoIgnore && {\n\t\t\t\t\t...edit,\n\t\t\t\t\t// Send the current values for things like the first undo stack entry.\n\t\t\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\t\t\tacc[ key ] = editedRecord[ key ];\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, {} ),\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t};\n\n/**\n * Action triggered to undo the last edit to\n * an entity record, if any.\n */\nexport const undo =\n\t() =>\n\t( { select, dispatch } ) => {\n\t\tconst undoEdit = select.getUndoEdit();\n\t\tif ( ! undoEdit ) {\n\t\t\treturn;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t...undoEdit,\n\t\t\tmeta: { isUndo: true },\n\t\t} );\n\t};\n\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n */\nexport const redo =\n\t() =>\n\t( { select, dispatch } ) => {\n\t\tconst redoEdit = select.getRedoEdit();\n\t\tif ( ! redoEdit ) {\n\t\t\treturn;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t...redoEdit,\n\t\t\tmeta: { isRedo: true },\n\t\t} );\n\t};\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 * @param {boolean} [options.throwOnError=false] If false, this action suppresses all\n * the exceptions. Defaults to false.\n */\nexport const saveEntityRecord =\n\t(\n\t\tkind,\n\t\tname,\n\t\trecord,\n\t\t{\n\t\t\tisAutosave = false,\n\t\t\t__unstableFetch = apiFetch,\n\t\t\tthrowOnError = false,\n\t\t} = {}\n\t) =>\n\tasync ( { select, resolveSelect, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = find( configs, { kind, name } );\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\t\tconst entityIdKey = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\tconst recordId = record[ entityIdKey ];\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, recordId || uuid() ],\n\t\t\t{ exclusive: true }\n\t\t);\n\n\t\ttry {\n\t\t\t// Evaluate optimized edits.\n\t\t\t// (Function edits that should be evaluated on save to avoid expensive computations on every edit.)\n\t\t\tfor ( const [ key, value ] of Object.entries( record ) ) {\n\t\t\t\tif ( typeof value === 'function' ) {\n\t\t\t\t\tconst evaluatedValue = value(\n\t\t\t\t\t\tselect.getEditedEntityRecord( kind, name, recordId )\n\t\t\t\t\t);\n\t\t\t\t\tdispatch.editEntityRecord(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\trecordId,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ key ]: evaluatedValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t\t);\n\t\t\t\t\trecord[ key ] = evaluatedValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdispatch( {\n\t\t\t\ttype: 'SAVE_ENTITY_RECORD_START',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\tisAutosave,\n\t\t\t} );\n\t\t\tlet updatedRecord;\n\t\t\tlet error;\n\t\t\tlet hasError = false;\n\t\t\ttry {\n\t\t\t\tconst path = `${ entityConfig.baseURL }${\n\t\t\t\t\trecordId ? '/' + recordId : ''\n\t\t\t\t}`;\n\t\t\t\tconst persistedRecord = select.getRawEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId\n\t\t\t\t);\n\n\t\t\t\tif ( isAutosave ) {\n\t\t\t\t\t// Most of this autosave logic is very specific to posts.\n\t\t\t\t\t// This is fine for now as it is the only supported autosave,\n\t\t\t\t\t// but ideally this should all be handled in the back end,\n\t\t\t\t\t// so the client just sends and receives objects.\n\t\t\t\t\tconst currentUser = select.getCurrentUser();\n\t\t\t\t\tconst currentUserId = currentUser\n\t\t\t\t\t\t? currentUser.id\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\tconst autosavePost = await resolveSelect.getAutosave(\n\t\t\t\t\t\tpersistedRecord.type,\n\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\tcurrentUserId\n\t\t\t\t\t);\n\t\t\t\t\t// Autosaves need all expected fields to be present.\n\t\t\t\t\t// So we fallback to the previous autosave and then\n\t\t\t\t\t// to the actual persisted entity if the edits don't\n\t\t\t\t\t// have a value.\n\t\t\t\t\tlet data = {\n\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t...autosavePost,\n\t\t\t\t\t\t...record,\n\t\t\t\t\t};\n\t\t\t\t\tdata = Object.keys( data ).reduce(\n\t\t\t\t\t\t( acc, key ) => {\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 ] = data[ 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\t\tstatus:\n\t\t\t\t\t\t\t\tdata.status === 'auto-draft'\n\t\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t\t: data.status,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\t\tpath: `${ path }/autosaves`,\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tdata,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// An autosave may be processed by the server as a regular save\n\t\t\t\t\t// when its update is requested by the author and the post had\n\t\t\t\t\t// draft or auto-draft status.\n\t\t\t\t\tif ( persistedRecord.id === updatedRecord.id ) {\n\t\t\t\t\t\tlet newRecord = {\n\t\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\t...updatedRecord,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tnewRecord = Object.keys( newRecord ).reduce(\n\t\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t\t// These properties are persisted in autosaves.\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes(\n\t\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tacc[ key ] = newRecord[ key ];\n\t\t\t\t\t\t\t\t} else if ( key === 'status' ) {\n\t\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\t// \"auto-draft\" to \"draft\".\n\t\t\t\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\t\t\t\tpersistedRecord.status ===\n\t\t\t\t\t\t\t\t\t\t\t'auto-draft' &&\n\t\t\t\t\t\t\t\t\t\tnewRecord.status === 'draft'\n\t\t\t\t\t\t\t\t\t\t\t? newRecord.status\n\t\t\t\t\t\t\t\t\t\t\t: persistedRecord.status;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// These properties are not persisted in autosaves.\n\t\t\t\t\t\t\t\t\tacc[ key ] = persistedRecord[ key ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tnewRecord,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdispatch.receiveAutosaves(\n\t\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\t\tupdatedRecord\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet edits = record;\n\t\t\t\t\tif ( entityConfig.__unstablePrePersist ) {\n\t\t\t\t\t\tedits = {\n\t\t\t\t\t\t\t...edits,\n\t\t\t\t\t\t\t...entityConfig.__unstablePrePersist(\n\t\t\t\t\t\t\t\tpersistedRecord,\n\t\t\t\t\t\t\t\tedits\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tmethod: recordId ? 'PUT' : 'POST',\n\t\t\t\t\t\tdata: edits,\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\tupdatedRecord,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tedits\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch ( _error ) {\n\t\t\t\thasError = true;\n\t\t\t\terror = _error;\n\t\t\t}\n\t\t\tdispatch( {\n\t\t\t\ttype: 'SAVE_ENTITY_RECORD_FINISH',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\terror,\n\t\t\t\tisAutosave,\n\t\t\t} );\n\n\t\t\tif ( hasError && throwOnError ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn updatedRecord;\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\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 {(thunkArgs: Object) => Promise} A promise that resolves to an array containing the return\n * values of each function given in `requests`.\n */\nexport const __experimentalBatch =\n\t( requests ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst batch = createBatch();\n\t\tconst api = {\n\t\t\tsaveEntityRecord( kind, name, record, options ) {\n\t\t\t\treturn batch.add( ( add ) =>\n\t\t\t\t\tdispatch.saveEntityRecord( kind, name, record, {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t\tsaveEditedEntityRecord( kind, name, recordId, options ) {\n\t\t\t\treturn batch.add( ( add ) =>\n\t\t\t\t\tdispatch.saveEditedEntityRecord( kind, name, recordId, {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t\tdeleteEntityRecord( kind, name, recordId, query, options ) {\n\t\t\t\treturn batch.add( ( add ) =>\n\t\t\t\t\tdispatch.deleteEntityRecord( kind, name, recordId, query, {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t\tconst resultPromises = requests.map( ( request ) => request( api ) );\n\t\tconst [ , ...results ] = await Promise.all( [\n\t\t\tbatch.run(),\n\t\t\t...resultPromises,\n\t\t] );\n\t\treturn results;\n\t};\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\t( kind, name, recordId, options ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = find( configs, { kind, name } );\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\t\tconst entityIdKey = entityConfig.key || DEFAULT_ENTITY_KEY;\n\n\t\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t);\n\t\tconst record = { [ entityIdKey ]: recordId, ...edits };\n\t\treturn await dispatch.saveEntityRecord( kind, name, record, options );\n\t};\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\t( kind, name, recordId, itemsToSave, options ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t);\n\t\tconst editsToSave = {};\n\t\tfor ( const edit in edits ) {\n\t\t\tif ( itemsToSave.some( ( item ) => item === edit ) ) {\n\t\t\t\teditsToSave[ edit ] = edits[ edit ];\n\t\t\t}\n\t\t}\n\t\treturn await dispatch.saveEntityRecord(\n\t\t\tkind,\n\t\t\tname,\n\t\t\teditsToSave,\n\t\t\toptions\n\t\t);\n\t};\n\n/**\n * Returns an action object used in signalling that Upload permissions have been received.\n *\n * @deprecated since WP 5.9, use receiveUserPermission instead.\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\tdeprecated( \"wp.data.dispatch( 'core' ).receiveUploadPermissions\", {\n\t\tsince: '5.9',\n\t\talternative: 'receiveUserPermission',\n\t} );\n\n\treturn receiveUserPermission( 'create/media', hasUploadPermissions );\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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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 * Ignored from documentation as it's internal to the data store.\n *\n * @ignore\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/resolvers.js
CHANGED
|
@@ -70,7 +70,8 @@ const getCurrentUser = () => async _ref2 => {
|
|
|
70
70
|
* @param {string} name Entity name.
|
|
71
71
|
* @param {number|string} key Record's key
|
|
72
72
|
* @param {Object|undefined} query Optional object of query parameters to
|
|
73
|
-
* include with request.
|
|
73
|
+
* include with request. If requesting specific
|
|
74
|
+
* fields, fields must always include the ID.
|
|
74
75
|
*/
|
|
75
76
|
|
|
76
77
|
|
|
@@ -159,7 +160,8 @@ const getEditedEntityRecord = (0, _utils.forwardResolver)('getEntityRecord');
|
|
|
159
160
|
*
|
|
160
161
|
* @param {string} kind Entity kind.
|
|
161
162
|
* @param {string} name Entity name.
|
|
162
|
-
* @param {Object?} query Query Object.
|
|
163
|
+
* @param {Object?} query Query Object. If requesting specific fields, fields
|
|
164
|
+
* must always include the ID.
|
|
163
165
|
*/
|
|
164
166
|
|
|
165
167
|
exports.getEditedEntityRecord = getEditedEntityRecord;
|
|
@@ -343,7 +345,7 @@ const canUser = (action, resource, id) => async _ref7 => {
|
|
|
343
345
|
|
|
344
346
|
|
|
345
347
|
const allowHeader = (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.get('allow');
|
|
346
|
-
const key =
|
|
348
|
+
const key = [action, resource, id].filter(Boolean).join('/');
|
|
347
349
|
const isAllowed = (0, _lodash.includes)(allowHeader, method);
|
|
348
350
|
dispatch.receiveUserPermission(key, isAllowed);
|
|
349
351
|
};
|
package/build/resolvers.js.map
CHANGED
|
@@ -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","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","undefined","_fields","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","isAllowed","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","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getBlockPatterns","restPatterns","patterns","pattern","value","getBlockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tcamelCase,\n\tcompact,\n\tfind,\n\tget,\n\tincludes,\n\tmap,\n\tmapKeys,\n\tuniq,\n} from 'lodash';\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.\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 = find( configs, { kind, name } );\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: uniq( [\n\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\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.\n */\nexport const getEntityRecords =\n\t( kind, name, query = {} ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = find( configs, { kind, name } );\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: uniq( [\n\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\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 = compact( [ action, resource, id ] ).join( '/' );\n\t\tconst isAllowed = includes( allowHeader, 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 = find( configs, { kind, name } );\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 = get( activeThemes, [\n\t\t\t0,\n\t\t\t'_links',\n\t\t\t'wp:user-global-styles',\n\t\t\t0,\n\t\t\t'href',\n\t\t] );\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 = map( restPatterns, ( pattern ) =>\n\t\t\tmapKeys( pattern, ( value, key ) => camelCase( key ) )\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","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","undefined","_fields","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","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","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getBlockPatterns","restPatterns","patterns","pattern","value","getBlockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase, find, get, includes, map, mapKeys, uniq } from 'lodash';\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 = find( configs, { kind, name } );\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: uniq( [\n\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\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 = find( configs, { kind, name } );\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: uniq( [\n\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\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 = includes( allowHeader, 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 = find( configs, { kind, name } );\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 = get( activeThemes, [\n\t\t\t0,\n\t\t\t'_links',\n\t\t\t'wp:user-global-styles',\n\t\t\t0,\n\t\t\t'href',\n\t\t] );\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 = map( restPatterns, ( pattern ) =>\n\t\t\tmapKeys( pattern, ( value, key ) => camelCase( key ) )\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"]}
|
package/build/selectors.js
CHANGED
|
@@ -245,7 +245,8 @@ function getEntityConfig(state, kind, name) {
|
|
|
245
245
|
* @param kind Entity kind.
|
|
246
246
|
* @param name Entity name.
|
|
247
247
|
* @param key Record's key
|
|
248
|
-
* @param query Optional query.
|
|
248
|
+
* @param query Optional query. If requesting specific
|
|
249
|
+
* fields, fields must always include the ID.
|
|
249
250
|
*
|
|
250
251
|
* @return Record.
|
|
251
252
|
*/
|
|
@@ -387,7 +388,8 @@ function hasEntityRecords(state, kind, name, query) {
|
|
|
387
388
|
* @param state State tree
|
|
388
389
|
* @param kind Entity kind.
|
|
389
390
|
* @param name Entity name.
|
|
390
|
-
* @param query Optional terms query.
|
|
391
|
+
* @param query Optional terms query. If requesting specific
|
|
392
|
+
* fields, fields must always include the ID.
|
|
391
393
|
*
|
|
392
394
|
* @return Records.
|
|
393
395
|
*/
|
|
@@ -818,7 +820,7 @@ function isPreviewEmbedFallback(state, url) {
|
|
|
818
820
|
|
|
819
821
|
|
|
820
822
|
function canUser(state, action, resource, id) {
|
|
821
|
-
const key =
|
|
823
|
+
const key = [action, resource, id].filter(Boolean).join('/');
|
|
822
824
|
return (0, _lodash.get)(state, ['userPermissions', key]);
|
|
823
825
|
}
|
|
824
826
|
/**
|