[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 /******/ (() => { // webpackBootstrap 2 /******/ "use strict"; 3 /******/ // The require scope 4 /******/ var __webpack_require__ = {}; 5 /******/ 6 /************************************************************************/ 7 /******/ /* webpack/runtime/define property getters */ 8 /******/ (() => { 9 /******/ // define getter functions for harmony exports 10 /******/ __webpack_require__.d = (exports, definition) => { 11 /******/ for(var key in definition) { 12 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 13 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 14 /******/ } 15 /******/ } 16 /******/ }; 17 /******/ })(); 18 /******/ 19 /******/ /* webpack/runtime/hasOwnProperty shorthand */ 20 /******/ (() => { 21 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 22 /******/ })(); 23 /******/ 24 /******/ /* webpack/runtime/make namespace object */ 25 /******/ (() => { 26 /******/ // define __esModule on exports 27 /******/ __webpack_require__.r = (exports) => { 28 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 29 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 30 /******/ } 31 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 32 /******/ }; 33 /******/ })(); 34 /******/ 35 /************************************************************************/ 36 var __webpack_exports__ = {}; 37 // ESM COMPAT FLAG 38 __webpack_require__.r(__webpack_exports__); 39 40 // EXPORTS 41 __webpack_require__.d(__webpack_exports__, { 42 __dangerousOptInToUnstableAPIsOnlyForCoreModules: () => (/* reexport */ __dangerousOptInToUnstableAPIsOnlyForCoreModules) 43 }); 44 45 ;// CONCATENATED MODULE: ./node_modules/@wordpress/private-apis/build-module/implementation.js 46 /** 47 * wordpress/private-apis – the utilities to enable private cross-package 48 * exports of private APIs. 49 * 50 * This "implementation.js" file is needed for the sake of the unit tests. It 51 * exports more than the public API of the package to aid in testing. 52 */ 53 54 /** 55 * The list of core modules allowed to opt-in to the private APIs. 56 */ 57 const CORE_MODULES_USING_PRIVATE_APIS = ['@wordpress/block-directory', '@wordpress/block-editor', '@wordpress/block-library', '@wordpress/blocks', '@wordpress/commands', '@wordpress/components', '@wordpress/core-commands', '@wordpress/core-data', '@wordpress/customize-widgets', '@wordpress/data', '@wordpress/edit-post', '@wordpress/edit-site', '@wordpress/edit-widgets', '@wordpress/editor', '@wordpress/format-library', '@wordpress/interface', '@wordpress/patterns', '@wordpress/preferences', '@wordpress/reusable-blocks', '@wordpress/router', '@wordpress/dataviews', '@wordpress/fields']; 58 59 /** 60 * A list of core modules that already opted-in to 61 * the privateApis package. 62 * 63 * @type {string[]} 64 */ 65 const registeredPrivateApis = []; 66 67 /* 68 * Warning for theme and plugin developers. 69 * 70 * The use of private developer APIs is intended for use by WordPress Core 71 * and the Gutenberg plugin exclusively. 72 * 73 * Dangerously opting in to using these APIs is NOT RECOMMENDED. Furthermore, 74 * the WordPress Core philosophy to strive to maintain backward compatibility 75 * for third-party developers DOES NOT APPLY to private APIs. 76 * 77 * THE CONSENT STRING FOR OPTING IN TO THESE APIS MAY CHANGE AT ANY TIME AND 78 * WITHOUT NOTICE. THIS CHANGE WILL BREAK EXISTING THIRD-PARTY CODE. SUCH A 79 * CHANGE MAY OCCUR IN EITHER A MAJOR OR MINOR RELEASE. 80 */ 81 const requiredConsent = 'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.'; 82 83 /** @type {boolean} */ 84 let allowReRegistration; 85 // The safety measure is meant for WordPress core where IS_WORDPRESS_CORE 86 // is set to true. 87 // For the general use-case, the re-registration should be allowed by default 88 // Let's default to true, then. Try/catch will fall back to "true" even if the 89 // environment variable is not explicitly defined. 90 try { 91 allowReRegistration = true ? false : 0; 92 } catch (error) { 93 allowReRegistration = true; 94 } 95 96 /** 97 * Called by a @wordpress package wishing to opt-in to accessing or exposing 98 * private private APIs. 99 * 100 * @param {string} consent The consent string. 101 * @param {string} moduleName The name of the module that is opting in. 102 * @return {{lock: typeof lock, unlock: typeof unlock}} An object containing the lock and unlock functions. 103 */ 104 const __dangerousOptInToUnstableAPIsOnlyForCoreModules = (consent, moduleName) => { 105 if (!CORE_MODULES_USING_PRIVATE_APIS.includes(moduleName)) { 106 throw new Error(`You tried to opt-in to unstable APIs as module "$moduleName}". ` + 'This feature is only for JavaScript modules shipped with WordPress core. ' + 'Please do not use it in plugins and themes as the unstable APIs will be removed ' + 'without a warning. If you ignore this error and depend on unstable features, ' + 'your product will inevitably break on one of the next WordPress releases.'); 107 } 108 if (!allowReRegistration && registeredPrivateApis.includes(moduleName)) { 109 // This check doesn't play well with Story Books / Hot Module Reloading 110 // and isn't included in the Gutenberg plugin. It only matters in the 111 // WordPress core release. 112 throw new Error(`You tried to opt-in to unstable APIs as module "$moduleName}" which is already registered. ` + 'This feature is only for JavaScript modules shipped with WordPress core. ' + 'Please do not use it in plugins and themes as the unstable APIs will be removed ' + 'without a warning. If you ignore this error and depend on unstable features, ' + 'your product will inevitably break on one of the next WordPress releases.'); 113 } 114 if (consent !== requiredConsent) { 115 throw new Error(`You tried to opt-in to unstable APIs without confirming you know the consequences. ` + 'This feature is only for JavaScript modules shipped with WordPress core. ' + 'Please do not use it in plugins and themes as the unstable APIs will removed ' + 'without a warning. If you ignore this error and depend on unstable features, ' + 'your product will inevitably break on the next WordPress release.'); 116 } 117 registeredPrivateApis.push(moduleName); 118 return { 119 lock, 120 unlock 121 }; 122 }; 123 124 /** 125 * Binds private data to an object. 126 * It does not alter the passed object in any way, only 127 * registers it in an internal map of private data. 128 * 129 * The private data can't be accessed by any other means 130 * than the `unlock` function. 131 * 132 * @example 133 * ```js 134 * const object = {}; 135 * const privateData = { a: 1 }; 136 * lock( object, privateData ); 137 * 138 * object 139 * // {} 140 * 141 * unlock( object ); 142 * // { a: 1 } 143 * ``` 144 * 145 * @param {any} object The object to bind the private data to. 146 * @param {any} privateData The private data to bind to the object. 147 */ 148 function lock(object, privateData) { 149 if (!object) { 150 throw new Error('Cannot lock an undefined object.'); 151 } 152 if (!(__private in object)) { 153 object[__private] = {}; 154 } 155 lockedData.set(object[__private], privateData); 156 } 157 158 /** 159 * Unlocks the private data bound to an object. 160 * 161 * It does not alter the passed object in any way, only 162 * returns the private data paired with it using the `lock()` 163 * function. 164 * 165 * @example 166 * ```js 167 * const object = {}; 168 * const privateData = { a: 1 }; 169 * lock( object, privateData ); 170 * 171 * object 172 * // {} 173 * 174 * unlock( object ); 175 * // { a: 1 } 176 * ``` 177 * 178 * @param {any} object The object to unlock the private data from. 179 * @return {any} The private data bound to the object. 180 */ 181 function unlock(object) { 182 if (!object) { 183 throw new Error('Cannot unlock an undefined object.'); 184 } 185 if (!(__private in object)) { 186 throw new Error('Cannot unlock an object that was not locked before. '); 187 } 188 return lockedData.get(object[__private]); 189 } 190 const lockedData = new WeakMap(); 191 192 /** 193 * Used by lock() and unlock() to uniquely identify the private data 194 * related to a containing object. 195 */ 196 const __private = Symbol('Private API ID'); 197 198 // Unit tests utilities: 199 200 /** 201 * Private function to allow the unit tests to allow 202 * a mock module to access the private APIs. 203 * 204 * @param {string} name The name of the module. 205 */ 206 function allowCoreModule(name) { 207 CORE_MODULES_USING_PRIVATE_APIS.push(name); 208 } 209 210 /** 211 * Private function to allow the unit tests to set 212 * a custom list of allowed modules. 213 */ 214 function resetAllowedCoreModules() { 215 while (CORE_MODULES_USING_PRIVATE_APIS.length) { 216 CORE_MODULES_USING_PRIVATE_APIS.pop(); 217 } 218 } 219 /** 220 * Private function to allow the unit tests to reset 221 * the list of registered private apis. 222 */ 223 function resetRegisteredPrivateApis() { 224 while (registeredPrivateApis.length) { 225 registeredPrivateApis.pop(); 226 } 227 } 228 229 ;// CONCATENATED MODULE: ./node_modules/@wordpress/private-apis/build-module/index.js 230 231 232 (window.wp = window.wp || {}).privateApis = __webpack_exports__; 233 /******/ })() 234 ;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Thu Nov 21 08:20:01 2024 | Cross-referenced by PHPXref |