[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/js/dist/vendor/ -> wp-polyfill-importmap.js (source)

   1  /* ES Module Shims Wasm 1.8.2 */
   2  (function () {
   3  
   4    const hasWindow = typeof window !== 'undefined';
   5    const hasDocument = typeof document !== 'undefined';
   6  
   7    const noop = () => {};
   8  
   9    const optionsScript = hasDocument ? document.querySelector('script[type=esms-options]') : undefined;
  10  
  11    const esmsInitOptions = optionsScript ? JSON.parse(optionsScript.innerHTML) : {};
  12    Object.assign(esmsInitOptions, self.esmsInitOptions || {});
  13  
  14    let shimMode = hasDocument ? !!esmsInitOptions.shimMode : true;
  15  
  16    const importHook = globalHook(shimMode && esmsInitOptions.onimport);
  17    const resolveHook = globalHook(shimMode && esmsInitOptions.resolve);
  18    let fetchHook = esmsInitOptions.fetch ? globalHook(esmsInitOptions.fetch) : fetch;
  19    const metaHook = esmsInitOptions.meta ? globalHook(shimMode && esmsInitOptions.meta) : noop;
  20  
  21    const mapOverrides = esmsInitOptions.mapOverrides;
  22  
  23    let nonce = esmsInitOptions.nonce;
  24    if (!nonce && hasDocument) {
  25      const nonceElement = document.querySelector('script[nonce]');
  26      if (nonceElement)
  27        nonce = nonceElement.nonce || nonceElement.getAttribute('nonce');
  28    }
  29  
  30    const onerror = globalHook(esmsInitOptions.onerror || noop);
  31    const onpolyfill = esmsInitOptions.onpolyfill ? globalHook(esmsInitOptions.onpolyfill) : () => {
  32      console.log('%c^^ Module TypeError above is polyfilled and can be ignored ^^', 'font-weight:900;color:#391');
  33    };
  34  
  35    const { revokeBlobURLs, noLoadEventRetriggers, enforceIntegrity } = esmsInitOptions;
  36  
  37    function globalHook (name) {
  38      return typeof name === 'string' ? self[name] : name;
  39    }
  40  
  41    const enable = Array.isArray(esmsInitOptions.polyfillEnable) ? esmsInitOptions.polyfillEnable : [];
  42    const cssModulesEnabled = enable.includes('css-modules');
  43    const jsonModulesEnabled = enable.includes('json-modules');
  44  
  45    const edge = !navigator.userAgentData && !!navigator.userAgent.match(/Edge\/\d+\.\d+/);
  46  
  47    const baseUrl = hasDocument
  48      ? document.baseURI
  49      : `$location.protocol}//${location.host}${location.pathname.includes('/') 

  50      ? location.pathname.slice(0, location.pathname.lastIndexOf('/') + 1) 
  51      : location.pathname}`;
  52  
  53    const createBlob = (source, type = 'text/javascript') => URL.createObjectURL(new Blob([source], { type }));
  54    let { skip } = esmsInitOptions;
  55    if (Array.isArray(skip)) {
  56      const l = skip.map(s => new URL(s, baseUrl).href);
  57      skip = s => l.some(i => i[i.length - 1] === '/' && s.startsWith(i) || s === i);
  58    }
  59    else if (typeof skip === 'string') {
  60      const r = new RegExp(skip);
  61      skip = s => r.test(s);
  62    } else if (skip instanceof RegExp) {
  63      skip = s => skip.test(s);
  64    }
  65  
  66    const eoop = err => setTimeout(() => { throw err });
  67  
  68    const throwError = err => { (self.reportError || hasWindow && window.safari && console.error || eoop)(err), void onerror(err); };
  69  
  70    function fromParent (parent) {
  71      return parent ? ` imported from $parent}` : '';
  72    }
  73  
  74    let importMapSrcOrLazy = false;
  75  
  76    function setImportMapSrcOrLazy () {
  77      importMapSrcOrLazy = true;
  78    }
  79  
  80    // shim mode is determined on initialization, no late shim mode

  81    if (!shimMode) {
  82      if (document.querySelectorAll('script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]').length) {
  83        shimMode = true;
  84      }
  85      else {
  86        let seenScript = false;
  87        for (const script of document.querySelectorAll('script[type=module],script[type=importmap]')) {
  88          if (!seenScript) {
  89            if (script.type === 'module' && !script.ep)
  90              seenScript = true;
  91          }
  92          else if (script.type === 'importmap' && seenScript) {
  93            importMapSrcOrLazy = true;
  94            break;
  95          }
  96        }
  97      }
  98    }
  99  
 100    const backslashRegEx = /\\/g;
 101  
 102    function asURL (url) {
 103      try {
 104        if (url.indexOf(':') !== -1)
 105          return new URL(url).href;
 106      }
 107      catch (_) {}
 108    }
 109  
 110    function resolveUrl (relUrl, parentUrl) {
 111      return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (asURL(relUrl) || resolveIfNotPlainOrUrl('./' + relUrl, parentUrl));
 112    }
 113  
 114    function resolveIfNotPlainOrUrl (relUrl, parentUrl) {
 115      const hIdx = parentUrl.indexOf('#'), qIdx = parentUrl.indexOf('?');
 116      if (hIdx + qIdx > -2)
 117        parentUrl = parentUrl.slice(0, hIdx === -1 ? qIdx : qIdx === -1 || qIdx > hIdx ? hIdx : qIdx);
 118      if (relUrl.indexOf('\\') !== -1)
 119        relUrl = relUrl.replace(backslashRegEx, '/');
 120      // protocol-relative

 121      if (relUrl[0] === '/' && relUrl[1] === '/') {
 122        return parentUrl.slice(0, parentUrl.indexOf(':') + 1) + relUrl;
 123      }
 124      // relative-url

 125      else if (relUrl[0] === '.' && (relUrl[1] === '/' || relUrl[1] === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||
 126          relUrl.length === 1  && (relUrl += '/')) ||
 127          relUrl[0] === '/') {
 128        const parentProtocol = parentUrl.slice(0, parentUrl.indexOf(':') + 1);
 129        if (parentProtocol === 'blob:') {
 130          throw new TypeError(`Failed to resolve module specifier "$relUrl}". Invalid relative url or base scheme isn't hierarchical.`);
 131        }
 132        // Disabled, but these cases will give inconsistent results for deep backtracking

 133        //if (parentUrl[parentProtocol.length] !== '/')

 134        //  throw new Error('Cannot resolve');

 135        // read pathname from parent URL

 136        // pathname taken to be part after leading "/"

 137        let pathname;
 138        if (parentUrl[parentProtocol.length + 1] === '/') {
 139          // resolving to a :// so we need to read out the auth and host

 140          if (parentProtocol !== 'file:') {
 141            pathname = parentUrl.slice(parentProtocol.length + 2);
 142            pathname = pathname.slice(pathname.indexOf('/') + 1);
 143          }
 144          else {
 145            pathname = parentUrl.slice(8);
 146          }
 147        }
 148        else {
 149          // resolving to :/ so pathname is the /... part

 150          pathname = parentUrl.slice(parentProtocol.length + (parentUrl[parentProtocol.length] === '/'));
 151        }
 152  
 153        if (relUrl[0] === '/')
 154          return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl;
 155  
 156        // join together and split for removal of .. and . segments

 157        // looping the string instead of anything fancy for perf reasons

 158        // '../../../../../z' resolved to 'x/y' is just 'z'

 159        const segmented = pathname.slice(0, pathname.lastIndexOf('/') + 1) + relUrl;
 160  
 161        const output = [];
 162        let segmentIndex = -1;
 163        for (let i = 0; i < segmented.length; i++) {
 164          // busy reading a segment - only terminate on '/'

 165          if (segmentIndex !== -1) {
 166            if (segmented[i] === '/') {
 167              output.push(segmented.slice(segmentIndex, i + 1));
 168              segmentIndex = -1;
 169            }
 170            continue;
 171          }
 172          // new segment - check if it is relative

 173          else if (segmented[i] === '.') {
 174            // ../ segment

 175            if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
 176              output.pop();
 177              i += 2;
 178              continue;
 179            }
 180            // ./ segment

 181            else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
 182              i += 1;
 183              continue;
 184            }
 185          }
 186          // it is the start of a new segment

 187          while (segmented[i] === '/') i++;
 188          segmentIndex = i; 
 189        }
 190        // finish reading out the last segment

 191        if (segmentIndex !== -1)
 192          output.push(segmented.slice(segmentIndex));
 193        return parentUrl.slice(0, parentUrl.length - pathname.length) + output.join('');
 194      }
 195    }
 196  
 197    function resolveAndComposeImportMap (json, baseUrl, parentMap) {
 198      const outMap = { imports: Object.assign({}, parentMap.imports), scopes: Object.assign({}, parentMap.scopes) };
 199  
 200      if (json.imports)
 201        resolveAndComposePackages(json.imports, outMap.imports, baseUrl, parentMap);
 202  
 203      if (json.scopes)
 204        for (let s in json.scopes) {
 205          const resolvedScope = resolveUrl(s, baseUrl);
 206          resolveAndComposePackages(json.scopes[s], outMap.scopes[resolvedScope] || (outMap.scopes[resolvedScope] = {}), baseUrl, parentMap);
 207        }
 208  
 209      return outMap;
 210    }
 211  
 212    function getMatch (path, matchObj) {
 213      if (matchObj[path])
 214        return path;
 215      let sepIndex = path.length;
 216      do {
 217        const segment = path.slice(0, sepIndex + 1);
 218        if (segment in matchObj)
 219          return segment;
 220      } while ((sepIndex = path.lastIndexOf('/', sepIndex - 1)) !== -1)
 221    }
 222  
 223    function applyPackages (id, packages) {
 224      const pkgName = getMatch(id, packages);
 225      if (pkgName) {
 226        const pkg = packages[pkgName];
 227        if (pkg === null) return;
 228        return pkg + id.slice(pkgName.length);
 229      }
 230    }
 231  
 232  
 233    function resolveImportMap (importMap, resolvedOrPlain, parentUrl) {
 234      let scopeUrl = parentUrl && getMatch(parentUrl, importMap.scopes);
 235      while (scopeUrl) {
 236        const packageResolution = applyPackages(resolvedOrPlain, importMap.scopes[scopeUrl]);
 237        if (packageResolution)
 238          return packageResolution;
 239        scopeUrl = getMatch(scopeUrl.slice(0, scopeUrl.lastIndexOf('/')), importMap.scopes);
 240      }
 241      return applyPackages(resolvedOrPlain, importMap.imports) || resolvedOrPlain.indexOf(':') !== -1 && resolvedOrPlain;
 242    }
 243  
 244    function resolveAndComposePackages (packages, outPackages, baseUrl, parentMap) {
 245      for (let p in packages) {
 246        const resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl) || p;
 247        if ((!shimMode || !mapOverrides) && outPackages[resolvedLhs] && (outPackages[resolvedLhs] !== packages[resolvedLhs])) {
 248          throw Error(`Rejected map override "$resolvedLhs}" from $outPackages[resolvedLhs]} to $packages[resolvedLhs]}.`);
 249        }
 250        let target = packages[p];
 251        if (typeof target !== 'string')
 252          continue;
 253        const mapped = resolveImportMap(parentMap, resolveIfNotPlainOrUrl(target, baseUrl) || target, baseUrl);
 254        if (mapped) {
 255          outPackages[resolvedLhs] = mapped;
 256          continue;
 257        }
 258        console.warn(`Mapping "$p}" -> "$packages[p]}" does not resolve`);
 259      }
 260    }
 261  
 262    let dynamicImport = !hasDocument && (0, eval)('u=>import(u)');
 263  
 264    let supportsDynamicImport;
 265  
 266    const dynamicImportCheck = hasDocument && new Promise(resolve => {
 267      const s = Object.assign(document.createElement('script'), {
 268        src: createBlob('self._d=u=>import(u)'),
 269        ep: true
 270      });
 271      s.setAttribute('nonce', nonce);
 272      s.addEventListener('load', () => {
 273        if (!(supportsDynamicImport = !!(dynamicImport = self._d))) {
 274          let err;
 275          window.addEventListener('error', _err => err = _err);
 276          dynamicImport = (url, opts) => new Promise((resolve, reject) => {
 277            const s = Object.assign(document.createElement('script'), {
 278              type: 'module',
 279              src: createBlob(`import*as m from'$url}';self._esmsi=m`)
 280            });
 281            err = undefined;
 282            s.ep = true;
 283            if (nonce)
 284              s.setAttribute('nonce', nonce);
 285            // Safari is unique in supporting module script error events

 286            s.addEventListener('error', cb);
 287            s.addEventListener('load', cb);
 288            function cb (_err) {
 289              document.head.removeChild(s);
 290              if (self._esmsi) {
 291                resolve(self._esmsi, baseUrl);
 292                self._esmsi = undefined;
 293              }
 294              else {
 295                reject(!(_err instanceof Event) && _err || err && err.error || new Error(`Error loading $opts && opts.errUrl || url} ($s.src}).`));
 296                err = undefined;
 297              }
 298            }
 299            document.head.appendChild(s);
 300          });
 301        }
 302        document.head.removeChild(s);
 303        delete self._d;
 304        resolve();
 305      });
 306      document.head.appendChild(s);
 307    });
 308  
 309    // support browsers without dynamic import support (eg Firefox 6x)

 310    let supportsJsonAssertions = false;
 311    let supportsCssAssertions = false;
 312  
 313    const supports = hasDocument && HTMLScriptElement.supports;
 314  
 315    let supportsImportMaps = supports && supports.name === 'supports' && supports('importmap');
 316    let supportsImportMeta = supportsDynamicImport;
 317  
 318    const importMetaCheck = 'import.meta';
 319    const cssModulesCheck = `import"x"assert{type:"css"}`;
 320    const jsonModulesCheck = `import"x"assert{type:"json"}`;
 321  
 322    let featureDetectionPromise = Promise.resolve(dynamicImportCheck).then(() => {
 323      if (!supportsDynamicImport)
 324        return;
 325  
 326      if (!hasDocument)
 327        return Promise.all([
 328          supportsImportMaps || dynamicImport(createBlob(importMetaCheck)).then(() => supportsImportMeta = true, noop),
 329          cssModulesEnabled && dynamicImport(createBlob(cssModulesCheck.replace('x', createBlob('', 'text/css')))).then(() => supportsCssAssertions = true, noop),
 330          jsonModulesEnabled && dynamicImport(createBlob(jsonModulescheck.replace('x', createBlob('{}', 'text/json')))).then(() => supportsJsonAssertions = true, noop),
 331        ]);
 332  
 333      return new Promise(resolve => {
 334        const iframe = document.createElement('iframe');
 335        iframe.style.display = 'none';
 336        iframe.setAttribute('nonce', nonce);
 337        function cb ({ data }) {
 338          const isFeatureDetectionMessage = Array.isArray(data) && data[0] === 'esms';
 339          if (!isFeatureDetectionMessage) {
 340            return;
 341          }
 342          supportsImportMaps = data[1];
 343          supportsImportMeta = data[2];
 344          supportsCssAssertions = data[3];
 345          supportsJsonAssertions = data[4];
 346          resolve();
 347          document.head.removeChild(iframe);
 348          window.removeEventListener('message', cb, false);
 349        }
 350        window.addEventListener('message', cb, false);
 351  
 352        const importMapTest = `<script nonce=$nonce || ''}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"$nonce}",innerText:\`{"imports":{"x":"\$b('')}"}}\`}));Promise.all([${
 353        supportsImportMaps ? 'true,true' : `'x',b('$importMetaCheck}')`}, $cssModulesEnabled ? `b('$cssModulesCheck}'.replace('x',b('','text/css')))` : 'false'}, ${
 354        jsonModulesEnabled ? `b('$jsonModulesCheck}'.replace('x',b('{}','text/json')))` : 'false'}].map(x =>typeof x==='string'?import(x).then(x =>!!x,()=>false):x)).then(a=>parent.postMessage(['esms'].concat(a),'*'))<${''}/script>`;
 355  
 356        // Safari will call onload eagerly on head injection, but we don't want the Wechat

 357        // path to trigger before setting srcdoc, therefore we track the timing

 358        let readyForOnload = false, onloadCalledWhileNotReady = false;
 359        function doOnload () {
 360          if (!readyForOnload) {
 361            onloadCalledWhileNotReady = true;
 362            return;
 363          }
 364          // WeChat browser doesn't support setting srcdoc scripts

 365          // But iframe sandboxes don't support contentDocument so we do this as a fallback

 366          const doc = iframe.contentDocument;
 367          if (doc && doc.head.childNodes.length === 0) {
 368            const s = doc.createElement('script');
 369            if (nonce)
 370              s.setAttribute('nonce', nonce);
 371            s.innerHTML = importMapTest.slice(15 + (nonce ? nonce.length : 0), -9);
 372            doc.head.appendChild(s);
 373          }
 374        }
 375  
 376        iframe.onload = doOnload;
 377        // WeChat browser requires append before setting srcdoc

 378        document.head.appendChild(iframe);
 379  
 380        // setting srcdoc is not supported in React native webviews on iOS

 381        // setting src to a blob URL results in a navigation event in webviews

 382        // document.write gives usability warnings

 383        readyForOnload = true;
 384        if ('srcdoc' in iframe)
 385          iframe.srcdoc = importMapTest;
 386        else
 387          iframe.contentDocument.write(importMapTest);
 388        // retrigger onload for Safari only if necessary

 389        if (onloadCalledWhileNotReady) doOnload();
 390      });
 391    });
 392  
 393    /* es-module-lexer 1.4.1 */
 394    const A=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse(E,g="@"){if(!C)return init.then((()=>parse(E)));const I=E.length+1,k=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;k>0&&C.memory.grow(Math.ceil(k/65536));const K=C.sa(I-1);if((A?B:Q)(E,new Uint16Array(C.memory.buffer,K,I)),!C.parse())throw Object.assign(new Error(`Parse error $g}:$E.slice(0,C.e()).split("\n").length}:$C.e()-E.lastIndexOf("\n",C.e()-1)}`),{idx:C.e()});const o=[],D=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.ai(),g=C.id(),I=C.ss(),k=C.se();let K;C.ip()&&(K=w(E.slice(-1===g?A-1:A,-1===g?Q+1:Q))),o.push({n:K,s:A,e:Q,ss:I,se:k,d:g,a:B});}for(;C.re();){const A=C.es(),Q=C.ee(),B=C.els(),g=C.ele(),I=E.slice(A,Q),k=I[0],K=B<0?void 0:E.slice(B,g),o=K?K[0]:"";D.push({s:A,e:Q,ls:B,le:g,n:'"'===k||"'"===k?w(I):I,ln:'"'===o||"'"===o?w(K):K});}function w(A){try{return (0,eval)(A)}catch(A){}}return [o,D,!!C.f(),!!C.ms()]}function Q(A,Q){const B=A.length;let C=0;for(;C<B;){const B=A.charCodeAt(C);Q[C++]=(255&B)<<8|B>>>8;}}function B(A,Q){const B=A.length;let C=0;for(;C<B;)Q[C]=A.charCodeAt(C++);}let C;const init=WebAssembly.compile((E="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","undefined"!=typeof Buffer?Buffer.from(E,"base64"):Uint8Array.from(atob(E),(A=>A.charCodeAt(0))))).then(WebAssembly.instantiate).then((({exports:A})=>{C=A;}));var E;
 395  
 396    async function _resolve (id, parentUrl) {
 397      const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl) || asURL(id);
 398      return {
 399        r: resolveImportMap(importMap, urlResolved || id, parentUrl) || throwUnresolved(id, parentUrl),
 400        // b = bare specifier

 401        b: !urlResolved && !asURL(id)
 402      };
 403    }
 404  
 405    const resolve = resolveHook ? async (id, parentUrl) => {
 406      let result = resolveHook(id, parentUrl, defaultResolve);
 407      // will be deprecated in next major

 408      if (result && result.then)
 409        result = await result;
 410      return result ? { r: result, b: !resolveIfNotPlainOrUrl(id, parentUrl) && !asURL(id) } : _resolve(id, parentUrl);
 411    } : _resolve;
 412  
 413    // importShim('mod');

 414    // importShim('mod', { opts });

 415    // importShim('mod', { opts }, parentUrl);

 416    // importShim('mod', parentUrl);

 417    async function importShim (id, ...args) {
 418      // parentUrl if present will be the last argument

 419      let parentUrl = args[args.length - 1];
 420      if (typeof parentUrl !== 'string')
 421        parentUrl = baseUrl;
 422      // needed for shim check

 423      await initPromise;
 424      if (importHook) await importHook(id, typeof args[1] !== 'string' ? args[1] : {}, parentUrl);
 425      if (acceptingImportMaps || shimMode || !baselinePassthrough) {
 426        if (hasDocument)
 427          processScriptsAndPreloads(true);
 428        if (!shimMode)
 429          acceptingImportMaps = false;
 430      }
 431      await importMapPromise;
 432      return topLevelLoad((await resolve(id, parentUrl)).r, { credentials: 'same-origin' });
 433    }
 434  
 435    self.importShim = importShim;
 436  
 437    function defaultResolve (id, parentUrl) {
 438      return resolveImportMap(importMap, resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) || throwUnresolved(id, parentUrl);
 439    }
 440  
 441    function throwUnresolved (id, parentUrl) {
 442      throw Error(`Unable to resolve specifier '$id}'$fromParent(parentUrl)}`);
 443    }
 444  
 445    const resolveSync = (id, parentUrl = baseUrl) => {
 446      parentUrl = `$parentUrl}`;
 447      const result = resolveHook && resolveHook(id, parentUrl, defaultResolve);
 448      return result && !result.then ? result : defaultResolve(id, parentUrl);
 449    };
 450  
 451    function metaResolve (id, parentUrl = this.url) {
 452      return resolveSync(id, parentUrl);
 453    }
 454  
 455    importShim.resolve = resolveSync;
 456    importShim.getImportMap = () => JSON.parse(JSON.stringify(importMap));
 457    importShim.addImportMap = importMapIn => {
 458      if (!shimMode) throw new Error('Unsupported in polyfill mode.');
 459      importMap = resolveAndComposeImportMap(importMapIn, baseUrl, importMap);
 460    };
 461  
 462    const registry = importShim._r = {};
 463    importShim._w = {};
 464  
 465    async function loadAll (load, seen) {
 466      if (load.b || seen[load.u])
 467        return;
 468      seen[load.u] = 1;
 469      await load.L;
 470      await Promise.all(load.d.map(dep => loadAll(dep, seen)));
 471      if (!load.n)
 472        load.n = load.d.some(dep => dep.n);
 473    }
 474  
 475    let importMap = { imports: {}, scopes: {} };
 476    let baselinePassthrough;
 477  
 478    const initPromise = featureDetectionPromise.then(() => {
 479      baselinePassthrough = esmsInitOptions.polyfillEnable !== true && supportsDynamicImport && supportsImportMeta && supportsImportMaps && (!jsonModulesEnabled || supportsJsonAssertions) && (!cssModulesEnabled || supportsCssAssertions) && !importMapSrcOrLazy;
 480      if (hasDocument) {
 481        if (!supportsImportMaps) {
 482          const supports = HTMLScriptElement.supports || (type => type === 'classic' || type === 'module');
 483          HTMLScriptElement.supports = type => type === 'importmap' || supports(type);
 484        }
 485        if (shimMode || !baselinePassthrough) {
 486          new MutationObserver(mutations => {
 487            for (const mutation of mutations) {
 488              if (mutation.type !== 'childList') continue;
 489              for (const node of mutation.addedNodes) {
 490                if (node.tagName === 'SCRIPT') {
 491                  if (node.type === (shimMode ? 'module-shim' : 'module'))
 492                    processScript(node, true);
 493                  if (node.type === (shimMode ? 'importmap-shim' : 'importmap'))
 494                    processImportMap(node, true);
 495                }
 496                else if (node.tagName === 'LINK' && node.rel === (shimMode ? 'modulepreload-shim' : 'modulepreload')) {
 497                  processPreload(node);
 498                }
 499              }
 500            }
 501          }).observe(document, {childList: true, subtree: true});
 502          processScriptsAndPreloads();
 503          if (document.readyState === 'complete') {
 504            readyStateCompleteCheck();
 505          }
 506          else {
 507            async function readyListener() {
 508              await initPromise;
 509              processScriptsAndPreloads();
 510              if (document.readyState === 'complete') {
 511                readyStateCompleteCheck();
 512                document.removeEventListener('readystatechange', readyListener);
 513              }
 514            }
 515            document.addEventListener('readystatechange', readyListener);
 516          }
 517        }
 518      }
 519      return init;
 520    });
 521    let importMapPromise = initPromise;
 522    let firstPolyfillLoad = true;
 523    let acceptingImportMaps = true;
 524  
 525    async function topLevelLoad (url, fetchOpts, source, nativelyLoaded, lastStaticLoadPromise) {
 526      if (!shimMode)
 527        acceptingImportMaps = false;
 528      await initPromise;
 529      await importMapPromise;
 530      if (importHook) await importHook(url, typeof fetchOpts !== 'string' ? fetchOpts : {}, '');
 531      // early analysis opt-out - no need to even fetch if we have feature support

 532      if (!shimMode && baselinePassthrough) {
 533        // for polyfill case, only dynamic import needs a return value here, and dynamic import will never pass nativelyLoaded

 534        if (nativelyLoaded)
 535          return null;
 536        await lastStaticLoadPromise;
 537        return dynamicImport(source ? createBlob(source) : url, { errUrl: url || source });
 538      }
 539      const load = getOrCreateLoad(url, fetchOpts, null, source);
 540      const seen = {};
 541      await loadAll(load, seen);
 542      lastLoad = undefined;
 543      resolveDeps(load, seen);
 544      await lastStaticLoadPromise;
 545      if (source && !shimMode && !load.n) {
 546        if (nativelyLoaded) return;
 547        if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
 548        return await dynamicImport(createBlob(source), { errUrl: source });
 549      }
 550      if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
 551        onpolyfill();
 552        firstPolyfillLoad = false;
 553      }
 554      const module = await dynamicImport(!shimMode && !load.n && nativelyLoaded ? load.u : load.b, { errUrl: load.u });
 555      // if the top-level load is a shell, run its update function

 556      if (load.s)
 557        (await dynamicImport(load.s)).u$_(module);
 558      if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
 559      // when tla is supported, this should return the tla promise as an actual handle

 560      // so readystate can still correspond to the sync subgraph exec completions

 561      return module;
 562    }
 563  
 564    function revokeObjectURLs(registryKeys) {
 565      let batch = 0;
 566      const keysLength = registryKeys.length;
 567      const schedule = self.requestIdleCallback ? self.requestIdleCallback : self.requestAnimationFrame;
 568      schedule(cleanup);
 569      function cleanup() {
 570        const batchStartIndex = batch * 100;
 571        if (batchStartIndex > keysLength) return
 572        for (const key of registryKeys.slice(batchStartIndex, batchStartIndex + 100)) {
 573          const load = registry[key];
 574          if (load) URL.revokeObjectURL(load.b);
 575        }
 576        batch++;
 577        schedule(cleanup);
 578      }
 579    }
 580  
 581    function urlJsString (url) {
 582      return `'$url.replace(/'/g, "\\'")}'`;
 583    }
 584  
 585    let lastLoad;
 586    function resolveDeps (load, seen) {
 587      if (load.b || !seen[load.u])
 588        return;
 589      seen[load.u] = 0;
 590  
 591      for (const dep of load.d)
 592        resolveDeps(dep, seen);
 593  
 594      const [imports, exports] = load.a;
 595  
 596      // "execution"

 597      const source = load.S;
 598  
 599      // edge doesnt execute sibling in order, so we fix this up by ensuring all previous executions are explicit dependencies

 600      let resolvedSource = edge && lastLoad ? `import '$lastLoad}';` : '';
 601  
 602      // once all deps have loaded we can inline the dependency resolution blobs

 603      // and define this blob

 604      let lastIndex = 0, depIndex = 0, dynamicImportEndStack = [];
 605      function pushStringTo (originalIndex) {
 606        while (dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) {
 607          const dynamicImportEnd = dynamicImportEndStack.pop();
 608          resolvedSource += `$source.slice(lastIndex, dynamicImportEnd)}, $urlJsString(load.r)}`;
 609          lastIndex = dynamicImportEnd;
 610        }
 611        resolvedSource += source.slice(lastIndex, originalIndex);
 612        lastIndex = originalIndex;
 613      }
 614  
 615      for (const { s: start, ss: statementStart, se: statementEnd, d: dynamicImportIndex } of imports) {
 616        // dependency source replacements

 617        if (dynamicImportIndex === -1) {
 618          let depLoad = load.d[depIndex++], blobUrl = depLoad.b, cycleShell = !blobUrl;
 619          if (cycleShell) {
 620            // circular shell creation

 621            if (!(blobUrl = depLoad.s)) {
 622              blobUrl = depLoad.s = createBlob(`export function u$_(m){${
 623              depLoad.a[1].map(({ s, e }, i) => {
 624                const q = depLoad.S[s] === '"' || depLoad.S[s] === "'";
 625                return `e$_$i}=m$q ? `[` : '.'}$depLoad.S.slice(s, e)}$q ? `]` : ''}`;
 626              }).join(',')
 627            }}${
 628              depLoad.a[1].length ? `let $depLoad.a[1].map((_, i) => `e$_$i}`).join(',')};` : ''
 629            }export {${
 630              depLoad.a[1].map(({ s, e }, i) => `e$_$i} as $depLoad.S.slice(s, e)}`).join(',')
 631            }}\n//# sourceURL=$depLoad.r}?cycle`);
 632            }
 633          }
 634  
 635          pushStringTo(start - 1);
 636          resolvedSource += `/*${source.slice(start - 1, statementEnd)}*/$urlJsString(blobUrl)}`;
 637  
 638          // circular shell execution

 639          if (!cycleShell && depLoad.s) {
 640            resolvedSource += `;import*as m$_$depIndex} from'$depLoad.b}';import{u$_ as u$_$depIndex}}from'$depLoad.s}';u$_$depIndex}(m$_$depIndex})`;
 641            depLoad.s = undefined;
 642          }
 643          lastIndex = statementEnd;
 644        }
 645        // import.meta

 646        else if (dynamicImportIndex === -2) {
 647          load.m = { url: load.r, resolve: metaResolve };
 648          metaHook(load.m, load.u);
 649          pushStringTo(start);
 650          resolvedSource += `importShim._r[$urlJsString(load.u)}].m`;
 651          lastIndex = statementEnd;
 652        }
 653        // dynamic import

 654        else {
 655          pushStringTo(statementStart + 6);
 656          resolvedSource += `Shim(`;
 657          dynamicImportEndStack.push(statementEnd - 1);
 658          lastIndex = start;
 659        }
 660      }
 661  
 662      // support progressive cycle binding updates (try statement avoids tdz errors)

 663      if (load.s)
 664        resolvedSource += `\n;import{u$_}from'$load.s}';try{u$_({$exports.filter(e => e.ln).map(({ s, e, ln }) => `$source.slice(s, e)}:$ln}`).join(',')}})}catch(_){};\n`;
 665  
 666      function pushSourceURL (commentPrefix, commentStart) {
 667        const urlStart = commentStart + commentPrefix.length;
 668        const commentEnd = source.indexOf('\n', urlStart);
 669        const urlEnd = commentEnd !== -1 ? commentEnd : source.length;
 670        pushStringTo(urlStart);
 671        resolvedSource += new URL(source.slice(urlStart, urlEnd), load.r).href;
 672        lastIndex = urlEnd;
 673      }
 674  
 675      let sourceURLCommentStart = source.lastIndexOf(sourceURLCommentPrefix);
 676      let sourceMapURLCommentStart = source.lastIndexOf(sourceMapURLCommentPrefix);
 677  
 678      // ignore sourceMap comments before already spliced code

 679      if (sourceURLCommentStart < lastIndex) sourceURLCommentStart = -1;
 680      if (sourceMapURLCommentStart < lastIndex) sourceMapURLCommentStart = -1;
 681  
 682      // sourceURL first / only

 683      if (sourceURLCommentStart !== -1 && (sourceMapURLCommentStart === -1 || sourceMapURLCommentStart > sourceURLCommentStart)) {
 684        pushSourceURL(sourceURLCommentPrefix, sourceURLCommentStart);
 685      }
 686      // sourceMappingURL

 687      if (sourceMapURLCommentStart !== -1) {
 688        pushSourceURL(sourceMapURLCommentPrefix, sourceMapURLCommentStart);
 689        // sourceURL last

 690        if (sourceURLCommentStart !== -1 && (sourceURLCommentStart > sourceMapURLCommentStart))
 691          pushSourceURL(sourceURLCommentPrefix, sourceURLCommentStart);
 692      }
 693  
 694      pushStringTo(source.length);
 695  
 696      if (sourceURLCommentStart === -1)
 697        resolvedSource += sourceURLCommentPrefix + load.r;
 698  
 699      load.b = lastLoad = createBlob(resolvedSource);
 700      load.S = undefined;
 701    }
 702  
 703    const sourceURLCommentPrefix = '\n//# sourceURL=';
 704    const sourceMapURLCommentPrefix = '\n//# sourceMappingURL=';
 705  
 706    const jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
 707    const wasmContentType = /^(application)\/wasm(;|$)/;
 708    const jsonContentType = /^(text|application)\/json(;|$)/;
 709    const cssContentType = /^(text|application)\/css(;|$)/;
 710  
 711    const cssUrlRegEx = /url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
 712  
 713    // restrict in-flight fetches to a pool of 100

 714    let p = [];
 715    let c = 0;
 716    function pushFetchPool () {
 717      if (++c > 100)
 718        return new Promise(r => p.push(r));
 719    }
 720    function popFetchPool () {
 721      c--;
 722      if (p.length)
 723        p.shift()();
 724    }
 725  
 726    async function doFetch (url, fetchOpts, parent) {
 727      if (enforceIntegrity && !fetchOpts.integrity)
 728        throw Error(`No integrity for $url}$fromParent(parent)}.`);
 729      const poolQueue = pushFetchPool();
 730      if (poolQueue) await poolQueue;
 731      try {
 732        var res = await fetchHook(url, fetchOpts);
 733      }
 734      catch (e) {
 735        e.message = `Unable to fetch $url}$fromParent(parent)} - see network log for details.\n` + e.message;
 736        throw e;
 737      }
 738      finally {
 739        popFetchPool();
 740      }
 741  
 742      if (!res.ok) {
 743        const error = new TypeError(`$res.status} $res.statusText} $res.url}$fromParent(parent)}`);
 744        error.response = res;
 745        throw error;
 746      }
 747      return res;
 748    }
 749  
 750    async function fetchModule (url, fetchOpts, parent) {
 751      const res = await doFetch(url, fetchOpts, parent);
 752      const contentType = res.headers.get('content-type');
 753      if (jsContentType.test(contentType))
 754        return { r: res.url, s: await res.text(), t: 'js' };
 755      else if (wasmContentType.test(contentType)) {
 756        const module = importShim._w[url] = await WebAssembly.compileStreaming(res);
 757        let s = '', i = 0, importObj = '';
 758        for (const impt of WebAssembly.Module.imports(module)) {
 759          s += `import * as impt$i} from '$impt.module}';\n`;
 760          importObj += `'$impt.module}':impt$i++},`;
 761        }
 762        i = 0;
 763        s += `const instance = await WebAssembly.instantiate(importShim._w['$url}'], {$importObj}});\n`;
 764        for (const expt of WebAssembly.Module.exports(module)) {
 765          s += `const expt$i} = instance['$expt.name}'];\n`;
 766          s += `export { expt$i++} as "$expt.name}" };\n`;
 767        }
 768        return { r: res.url, s, t: 'wasm' };
 769      }
 770      else if (jsonContentType.test(contentType))
 771        return { r: res.url, s: `export default $await res.text()}`, t: 'json' };
 772      else if (cssContentType.test(contentType)) {
 773        return { r: res.url, s: `var s=new CSSStyleSheet();s.replaceSync(${
 774          JSON.stringify((await res.text()).replace(cssUrlRegEx, (_match, quotes = '', relUrl1, relUrl2) => `url($quotes}$resolveUrl(relUrl1 || relUrl2, url)}$quotes})`))
 775        });export default s;`, t: 'css' };
 776      }
 777      else
 778        throw Error(`Unsupported Content-Type "$contentType}" loading $url}$fromParent(parent)}. Modules must be served with a valid MIME type like application/javascript.`);
 779    }
 780  
 781    function getOrCreateLoad (url, fetchOpts, parent, source) {
 782      let load = registry[url];
 783      if (load && !source)
 784        return load;
 785  
 786      load = {
 787        // url

 788        u: url,
 789        // response url

 790        r: source ? url : undefined,
 791        // fetchPromise

 792        f: undefined,
 793        // source

 794        S: undefined,
 795        // linkPromise

 796        L: undefined,
 797        // analysis

 798        a: undefined,
 799        // deps

 800        d: undefined,
 801        // blobUrl

 802        b: undefined,
 803        // shellUrl

 804        s: undefined,
 805        // needsShim

 806        n: false,
 807        // type

 808        t: null,
 809        // meta

 810        m: null
 811      };
 812      if (registry[url]) {
 813        let i = 0;
 814        while (registry[load.u + ++i]);
 815        load.u += i;
 816      }
 817      registry[load.u] = load;
 818  
 819      load.f = (async () => {
 820        if (!source) {
 821          // preload fetch options override fetch options (race)

 822          let t;
 823          ({ r: load.r, s: source, t } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
 824          if (t && !shimMode) {
 825            if (t === 'css' && !cssModulesEnabled || t === 'json' && !jsonModulesEnabled)
 826              throw Error(`$t}-modules require <script type="esms-options">{ "polyfillEnable": ["$t}-modules"] }<${''}/script>`);
 827            if (t === 'css' && !supportsCssAssertions || t === 'json' && !supportsJsonAssertions)
 828              load.n = true;
 829          }
 830        }
 831        try {
 832          load.a = parse(source, load.u);
 833        }
 834        catch (e) {
 835          throwError(e);
 836          load.a = [[], [], false];
 837        }
 838        load.S = source;
 839        return load;
 840      })();
 841  
 842      load.L = load.f.then(async () => {
 843        let childFetchOpts = fetchOpts;
 844        load.d = (await Promise.all(load.a[0].map(async ({ n, d }) => {
 845          if (d >= 0 && !supportsDynamicImport || d === -2 && !supportsImportMeta)
 846            load.n = true;
 847          if (d !== -1 || !n) return;
 848          const { r, b } = await resolve(n, load.r || load.u);
 849          if (b && (!supportsImportMaps || importMapSrcOrLazy))
 850            load.n = true;
 851          if (d !== -1) return;
 852          if (skip && skip(r)) return { b: r };
 853          if (childFetchOpts.integrity)
 854            childFetchOpts = Object.assign({}, childFetchOpts, { integrity: undefined });
 855          return getOrCreateLoad(r, childFetchOpts, load.r).f;
 856        }))).filter(l => l);
 857      });
 858  
 859      return load;
 860    }
 861  
 862    function processScriptsAndPreloads (mapsOnly = false) {
 863      if (!mapsOnly)
 864        for (const link of document.querySelectorAll(shimMode ? 'link[rel=modulepreload-shim]' : 'link[rel=modulepreload]'))
 865          processPreload(link);
 866      for (const script of document.querySelectorAll(shimMode ? 'script[type=importmap-shim]' : 'script[type=importmap]'))
 867        processImportMap(script);
 868      if (!mapsOnly)
 869        for (const script of document.querySelectorAll(shimMode ? 'script[type=module-shim]' : 'script[type=module]'))
 870          processScript(script);
 871    }
 872  
 873    function getFetchOpts (script) {
 874      const fetchOpts = {};
 875      if (script.integrity)
 876        fetchOpts.integrity = script.integrity;
 877      if (script.referrerPolicy)
 878        fetchOpts.referrerPolicy = script.referrerPolicy;
 879      if (script.crossOrigin === 'use-credentials')
 880        fetchOpts.credentials = 'include';
 881      else if (script.crossOrigin === 'anonymous')
 882        fetchOpts.credentials = 'omit';
 883      else
 884        fetchOpts.credentials = 'same-origin';
 885      return fetchOpts;
 886    }
 887  
 888    let lastStaticLoadPromise = Promise.resolve();
 889  
 890    let domContentLoadedCnt = 1;
 891    function domContentLoadedCheck () {
 892      if (--domContentLoadedCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
 893        document.dispatchEvent(new Event('DOMContentLoaded'));
 894      }
 895    }
 896    // this should always trigger because we assume es-module-shims is itself a domcontentloaded requirement

 897    if (hasDocument) {
 898      document.addEventListener('DOMContentLoaded', async () => {
 899        await initPromise;
 900        domContentLoadedCheck();
 901      });
 902    }
 903  
 904    let readyStateCompleteCnt = 1;
 905    function readyStateCompleteCheck () {
 906      if (--readyStateCompleteCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
 907        document.dispatchEvent(new Event('readystatechange'));
 908      }
 909    }
 910  
 911    const hasNext = script => script.nextSibling || script.parentNode && hasNext(script.parentNode);
 912    const epCheck = (script, ready) => script.ep || !ready && (!script.src && !script.innerHTML || !hasNext(script)) || script.getAttribute('noshim') !== null || !(script.ep = true);
 913  
 914    function processImportMap (script, ready = readyStateCompleteCnt > 0) {
 915      if (epCheck(script, ready)) return;
 916      // we dont currently support multiple, external or dynamic imports maps in polyfill mode to match native

 917      if (script.src) {
 918        if (!shimMode)
 919          return;
 920        setImportMapSrcOrLazy();
 921      }
 922      if (acceptingImportMaps) {
 923        importMapPromise = importMapPromise
 924          .then(async () => {
 925            importMap = resolveAndComposeImportMap(script.src ? await (await doFetch(script.src, getFetchOpts(script))).json() : JSON.parse(script.innerHTML), script.src || baseUrl, importMap);
 926          })
 927          .catch(e => {
 928            console.log(e);
 929            if (e instanceof SyntaxError)
 930              e = new Error(`Unable to parse import map $e.message} in: $script.src || script.innerHTML}`);
 931            throwError(e);
 932          });
 933        if (!shimMode)
 934          acceptingImportMaps = false;
 935      }
 936    }
 937  
 938    function processScript (script, ready = readyStateCompleteCnt > 0) {
 939      if (epCheck(script, ready)) return;
 940      // does this load block readystate complete

 941      const isBlockingReadyScript = script.getAttribute('async') === null && readyStateCompleteCnt > 0;
 942      // does this load block DOMContentLoaded

 943      const isDomContentLoadedScript = domContentLoadedCnt > 0;
 944      if (isBlockingReadyScript) readyStateCompleteCnt++;
 945      if (isDomContentLoadedScript) domContentLoadedCnt++;
 946      const loadPromise = topLevelLoad(script.src || baseUrl, getFetchOpts(script), !script.src && script.innerHTML, !shimMode, isBlockingReadyScript && lastStaticLoadPromise)
 947        .then(() => {
 948          // if the type of the script tag "module-shim", browser does not dispatch a "load" event

 949          // see https://github.com/guybedford/es-module-shims/issues/346

 950          if (shimMode) {
 951            script.dispatchEvent(new Event('load'));
 952          }
 953        })
 954        .catch(throwError);
 955      if (isBlockingReadyScript)
 956        lastStaticLoadPromise = loadPromise.then(readyStateCompleteCheck);
 957      if (isDomContentLoadedScript)
 958        loadPromise.then(domContentLoadedCheck);
 959    }
 960  
 961    const fetchCache = {};
 962    function processPreload (link) {
 963      if (link.ep) return;
 964      link.ep = true;
 965      if (fetchCache[link.href])
 966        return;
 967      fetchCache[link.href] = fetchModule(link.href, getFetchOpts(link));
 968    }
 969  
 970  })();


Generated : Sat Apr 27 08:20:02 2024 Cross-referenced by PHPXref