Repository navigation
Expand file tree
/
Copy pathflutter.js
More file actions
31 lines (27 loc) · 10.6 KB
/
Copy pathflutter.js
File metadata and controls
31 lines (27 loc) · 10.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(()=>{var C={blink:!0,gecko:!1,webkit:!1,unknown:!1},j=()=>navigator.vendor==="Google Inc."||navigator.userAgent.includes("Edg/")?"blink":navigator.vendor==="Apple Computer, Inc."?"webkit":navigator.vendor===""&&navigator.userAgent.includes("Firefox")?"gecko":"unknown",_=j(),K=()=>typeof ImageDecoder>"u"?!1:_==="blink",B=()=>typeof Intl.v8BreakIterator<"u"&&typeof Intl.Segmenter<"u",F=()=>{let s=[0,97,115,109,1,0,0,0,1,5,1,95,1,120,0];return WebAssembly.validate(new Uint8Array(s))},$=()=>{let s=document.createElement("canvas");return s.width=1,s.height=1,s.getContext("webgl2")!=null?2:s.getContext("webgl")!=null?1:-1},O=()=>window.chrome&&chrome.runtime&&chrome.runtime.id,f={browserEngine:_,hasImageCodecs:K(),hasChromiumBreakIterators:B(),supportsWasmGC:F(),crossOriginIsolated:window.crossOriginIsolated,webGLVersion:$(),isChromeExtension:O()};function u(...s){return new URL(E(...s),document.baseURI).toString()}function E(...s){return s.filter(e=>!!e).map((e,n)=>n===0?L(e):H(L(e))).filter(e=>e.length).join("/")}function H(s){let e=0;for(;e<s.length&&s.charAt(e)==="/";)e++;return s.substring(e)}function L(s){let e=s.length;for(;e>0&&s.charAt(e-1)==="/";)e--;return s.substring(0,e)}function W(s,e){return s.canvasKitBaseUrl?s.canvasKitBaseUrl:e.engineRevision&&!e.useLocalCanvasKit?E("https://www.gstatic.com/flutter-canvaskit",e.engineRevision):"canvaskit"}var h=class{constructor(){this._scriptLoaded=!1}setTrustedTypesPolicy(e){this._ttPolicy=e}async loadEntrypoint(e){let{entrypointUrl:n=u("main.dart.js"),onEntrypointLoaded:t,nonce:r}=e||{};return this._loadJSEntrypoint(n,t,r)}async load(e,n,t,r,a){a??=o=>{o.initializeEngine(t).then(d=>d.runApp())};let{entrypointBaseUrl:i}=t,{entryPointBaseUrl:l}=t;if(!i&&l&&(console.warn("[deprecated] `entryPointBaseUrl` is deprecated and will be removed in a future release. Use `entrypointBaseUrl` instead."),i=l),e.compileTarget==="dart2wasm")return this._loadWasmEntrypoint(e,n,i,a);{let o=e.mainJsPath??"main.dart.js",d=u(i,o);return this._loadJSEntrypoint(d,a,r)}}didCreateEngineInitializer(e){typeof this._didCreateEngineInitializerResolve=="function"&&(this._didCreateEngineInitializerResolve(e),this._didCreateEngineInitializerResolve=null,delete _flutter.loader.didCreateEngineInitializer),typeof this._onEntrypointLoaded=="function"&&this._onEntrypointLoaded(e)}_loadJSEntrypoint(e,n,t){let r=typeof n=="function";if(!this._scriptLoaded){this._scriptLoaded=!0;let a=this._createScriptTag(e,t);if(r)console.debug("Injecting <script> tag. Using callback."),this._onEntrypointLoaded=n,document.head.append(a);else return new Promise((i,l)=>{console.debug("Injecting <script> tag. Using Promises. Use the callback approach instead!"),this._didCreateEngineInitializerResolve=i,a.addEventListener("error",l),document.head.append(a)})}}async _loadWasmEntrypoint(e,n,t,r){if(!this._scriptLoaded){this._scriptLoaded=!0,this._onEntrypointLoaded=r;let{mainWasmPath:a,jsSupportRuntimePath:i}=e,l=u(t,a),o=u(t,i);this._ttPolicy!=null&&(o=this._ttPolicy.createScriptURL(o));let c=(await import(o)).compileStreaming(fetch(l)),m;e.renderer==="skwasm"?m=(async()=>{let g=await n.skwasm;return window._flutter_skwasmInstance=g,{skwasm:g.wasmExports,skwasmWrapper:g,ffi:{memory:g.wasmMemory}}})():m=Promise.resolve({}),await(await(await c).instantiate(await m,{loadDynamicModule:async(g,A)=>{let x=fetch(u(t,g)),S=u(t,A);this._ttPolicy!=null&&(S=this._ttPolicy.createScriptURL(S));let R=import(S);return[await x,await R]}})).invokeMain()}}_createScriptTag(e,n){let t=document.createElement("script");t.type="application/javascript",n&&(t.nonce=n);let r=e;return this._ttPolicy!=null&&(r=this._ttPolicy.createScriptURL(e)),t.src=r,t}};async function I(s,e,n){if(e<0)return s;let t,r=new Promise((a,i)=>{t=setTimeout(()=>{i(new Error(`${n} took more than ${e}ms to resolve. Moving on.`,{cause:I}))},e)});return Promise.race([s,r]).finally(()=>{clearTimeout(t)})}var v=class{setTrustedTypesPolicy(e){this._ttPolicy=e}loadServiceWorker(e){if(!e||!("serviceWorker"in navigator))return Promise.resolve();let n=()=>{console.warn(`Loading the service worker using Flutter bootstrap is deprecated and will stop working in a future release.
For more details, see: https://github.com/flutter/flutter/issues/156910`)},t=()=>{let{serviceWorkerVersion:r,serviceWorkerUrl:a=u(`flutter_service_worker.js?v=${r}`),timeoutMillis:i=4e3}=e,l=a;this._ttPolicy!=null&&(l=this._ttPolicy.createScriptURL(l));let o=navigator.serviceWorker.register(l).then(d=>this._getNewServiceWorker(d,r)).then(this._waitForServiceWorkerActivation);return I(o,i,"prepareServiceWorker")};return e.serviceWorkerUrl!=null?(n(),t()):navigator.serviceWorker.getRegistration().then(r=>r?t():Promise.resolve())}async _getNewServiceWorker(e,n){if(!e.active&&(e.installing||e.waiting))return console.debug("Installing/Activating first service worker."),e.installing||e.waiting;if(e.active.scriptURL.endsWith(n))return console.debug("Loading from existing service worker."),e.active;{let t=await e.update();return console.debug("Updating service worker."),t.installing||t.waiting||t.active}}async _waitForServiceWorkerActivation(e){if(!e||e.state==="activated")if(e){console.debug("Service worker already active.");return}else throw new Error("Cannot activate a null service worker!");return new Promise((n,t)=>{e.addEventListener("statechange",()=>{e.state==="activated"&&(console.debug("Activated new service worker."),n())})})}};var y=class{constructor(e,n="flutter-js"){let t=e||[/\.js$/,/\.mjs$/];window.trustedTypes&&(this.policy=trustedTypes.createPolicy(n,{createScriptURL:function(r){if(r.startsWith("blob:"))return r;let a=new URL(r,window.location),i=a.pathname.split("/").pop();if(t.some(o=>o.test(i)))return a.toString();console.error("URL rejected by TrustedTypes policy",n,":",r,"(download prevented)")}}))}};var k=(s,e)=>{let n=window._flutter?.buildConfig?.wasmHashes,t=n?.[e];if(!t&&e.includes("/")){let o=e.split("/").pop();t=n?.[o]}let r="crossOriginStorage"in navigator&&"requestFileHandles"in navigator.crossOriginStorage;r&&console.log("Cross-Origin Storage is supported. See https://wicg.github.io/cross-origin-storage/ for more details.");let a=async o=>{let d={algorithm:"SHA-256",value:o};try{let[c]=await navigator.crossOriginStorage.requestFileHandles([d]),m=await c.getFile();return new Response(m,{headers:{"Content-Type":"application/wasm"}})}catch(c){c.name==="NotAllowedError"?console.warn(`Not allowed to retrieve ${e} (hash: ${o}).`):c.name!=="NotFoundError"&&console.warn(`Unexpected error during retrieval of ${e} (hash: ${o}).`,c)}},i=async()=>{if(r&&t){let d=await a(t);if(d)return d}let o=await fetch(s);if(r&&t&&o.ok){let d={algorithm:"SHA-256",value:t},c=o.clone();(async()=>{try{let m=await c.blob(),[w]=await navigator.crossOriginStorage.requestFileHandles([d],{create:!0}),p=await w.createWritable();await p.write(m),await p.close()}catch(m){console.warn(`Error storing ${e} (hash: ${t}):`,m)}})()}return o},l=WebAssembly.compileStreaming(i());return(o,d)=>((async()=>{let c=await l,m=await WebAssembly.instantiate(c,o);d(m,c)})(),{})};var T=(s,e,n,t)=>(window.flutterCanvasKitLoaded=(async()=>{if(window.flutterCanvasKit)return window.flutterCanvasKit;let r=n.hasChromiumBreakIterators&&n.hasImageCodecs;if(!r&&e.canvasKitVariant=="chromium")throw"Chromium CanvasKit variant specifically requested, but unsupported in this browser";let a=r&&e.canvasKitVariant!=="full",i=t;e.canvasKitVariant=="experimentalWebParagraph"?i=u(i,"experimental_webparagraph"):a&&(i=u(i,"chromium"));let l=u(i,"canvaskit.js");s.flutterTT.policy&&(l=s.flutterTT.policy.createScriptURL(l));let o="canvaskit.wasm";e.canvasKitVariant=="experimentalWebParagraph"?o="experimental_webparagraph/canvaskit.wasm":a&&(o="chromium/canvaskit.wasm");let d=k(u(i,"canvaskit.wasm"),o),c=await import(l);return window.flutterCanvasKit=await c.default({instantiateWasm:d}),window.flutterCanvasKit})(),window.flutterCanvasKitLoaded);var U=async(s,e,n,t)=>{let a=!n.hasImageCodecs||!n.hasChromiumBreakIterators?"skwasm_heavy":e.enableWimp?"wimp":"skwasm",i=u(t,`${a}.js`),l=i;s.flutterTT.policy&&(l=s.flutterTT.policy.createScriptURL(l));let o=k(u(t,`${a}.wasm`),`${a}.wasm`);return await(await import(l)).default({skwasmSingleThreaded:e.enableWimp||!n.crossOriginIsolated||n.isChromeExtension||e.forceSingleThreadedSkwasm,instantiateWasm:o,locateFile:(c,m)=>c.endsWith(".ww.js")?URL.createObjectURL(new Blob([`
"use strict";
let eventListener;
eventListener = (message) => {
const pendingMessages = [];
const data = message.data;
data["instantiateWasm"] = (info,receiveInstance) => {
const instance = new WebAssembly.Instance(data["wasm"], info);
return receiveInstance(instance, data["wasm"])
};
import(data.js).then(async (skwasm) => {
await skwasm.default(data);
removeEventListener("message", eventListener);
for (const message of pendingMessages) {
dispatchEvent(message);
}
});
removeEventListener("message", eventListener);
eventListener = (message) => {
pendingMessages.push(message);
};
addEventListener("message", eventListener);
};
addEventListener("message", eventListener);
`],{type:"application/javascript"})):u(t,c),mainScriptUrlOrBlob:i})};var P=f.supportsWasmGC,z=P&&f.webGLVersion>0,b=class{async loadEntrypoint(e){let{serviceWorker:n,...t}=e||{},r=new y,a=new v;a.setTrustedTypesPolicy(r.policy),await a.loadServiceWorker(n).catch(l=>{console.warn("Exception while loading service worker:",l)});let i=new h;return i.setTrustedTypesPolicy(r.policy),this.didCreateEngineInitializer=i.didCreateEngineInitializer.bind(i),i.loadEntrypoint(t)}async load({serviceWorkerSettings:e,onEntrypointLoaded:n,nonce:t,config:r}={}){r??={};let a=_flutter.buildConfig;if(!a)throw"FlutterLoader.load requires _flutter.buildConfig to be set";let i=r.wasmAllowList?.[f.browserEngine]??C[f.browserEngine],l=p=>{switch(p){case"skwasm":return z&&i;default:return!0}},o=p=>p.compileTarget==="dart2wasm"&&!P||r.renderer&&r.renderer!=p.renderer?!1:l(p.renderer),d=a.builds.find(o);if(!d)throw"FlutterLoader could not find a build compatible with configuration and environment.";let c={};c.flutterTT=new y,e&&(c.serviceWorkerLoader=new v,c.serviceWorkerLoader.setTrustedTypesPolicy(c.flutterTT.policy),await c.serviceWorkerLoader.loadServiceWorker(e).catch(p=>{console.warn("Exception while loading service worker:",p)}));let m=W(r,a);d.renderer==="canvaskit"?c.canvasKit=T(c,r,f,m):d.renderer==="skwasm"&&(c.skwasm=U(c,r,f,m));let w=new h;return w.setTrustedTypesPolicy(c.flutterTT.policy),this.didCreateEngineInitializer=w.didCreateEngineInitializer.bind(w),w.load(d,c,r,t,n)}};window._flutter||(window._flutter={});window._flutter.loader||(window._flutter.loader=new b);})();
//# sourceMappingURL=flutter.js.map