@php-wasm/web 3.0.40 → 3.0.42
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/index.cjs +1 -1
- package/index.cjs.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +17 -17
package/index.cjs
CHANGED
|
@@ -17,6 +17,6 @@ Content-Length: 0\r
|
|
|
17
17
|
\r
|
|
18
18
|
`);E=new ReadableStream({async start(P){u.length>0&&P.enqueue(u),s&&P.close()},async pull(P){const{done:we,value:K}=await x.read();if(U+=(K==null?void 0:K.length)||0,K&&(P.enqueue(K),N=h.concatUint8Arrays([N,K||new Uint8Array]).slice(-5)),we||C==="content-length"&&A!==void 0&&U>=A||C==="chunked"&&N.every((ye,Le)=>ye===pe[Le])){P.close();return}}}),C==="chunked"&&(E=E.pipeThrough(new Ze))}const y=c.headers.get("Host")??t,fe=new URL(c.path,r+"://"+y);return new Request(fe.toString(),{method:c.method,headers:c.headers,body:E,duplex:"half"})}static parseRequestHeaders(e){const t=new TextDecoder().decode(e),r=t.split(`
|
|
19
19
|
`)[0],[n,s]=r.split(" "),a=new Headers;for(const _ of t.split(`\r
|
|
20
|
-
`).slice(1)){if(_==="")break;const[S,c]=_.split(": ");a.set(S,c)}return{method:n,path:s,headers:a}}}function nt(i,e){const t=i.length,r=e.length,n=t-r;for(let s=0;s<=n;s++){let a=!0;for(let _=0;_<r;_++)if(i[s+_]!==e[_]){a=!1;break}if(a)return s}return-1}async function st(i=d.LatestSupportedPHPVersion){switch(i){case"8.5":return(await import("@php-wasm/web-8-5")).getIntlExtensionPath();case"8.4":return(await import("@php-wasm/web-8-4")).getIntlExtensionPath();case"8.3":return(await import("@php-wasm/web-8-3")).getIntlExtensionPath();case"8.2":return(await import("@php-wasm/web-8-2")).getIntlExtensionPath();case"8.1":return(await import("@php-wasm/web-8-1")).getIntlExtensionPath();case"8.0":return(await import("@php-wasm/web-8-0")).getIntlExtensionPath();case"7.4":return(await import("@php-wasm/web-7-4")).getIntlExtensionPath();case"7.3":return(await import("@php-wasm/web-7-3")).getIntlExtensionPath();case"7.2":return(await import("@php-wasm/web-7-2")).getIntlExtensionPath()}throw new Error(`Unsupported PHP version ${i}`)}async function it(i=d.LatestSupportedPHPVersion,e){const t=Pe.createMemoizedFetch(fetch),r="intl.so",n="icu.dat",s=await st(i),a=(await import("./
|
|
20
|
+
`).slice(1)){if(_==="")break;const[S,c]=_.split(": ");a.set(S,c)}return{method:n,path:s,headers:a}}}function nt(i,e){const t=i.length,r=e.length,n=t-r;for(let s=0;s<=n;s++){let a=!0;for(let _=0;_<r;_++)if(i[s+_]!==e[_]){a=!1;break}if(a)return s}return-1}async function st(i=d.LatestSupportedPHPVersion){switch(i){case"8.5":return(await import("@php-wasm/web-8-5")).getIntlExtensionPath();case"8.4":return(await import("@php-wasm/web-8-4")).getIntlExtensionPath();case"8.3":return(await import("@php-wasm/web-8-3")).getIntlExtensionPath();case"8.2":return(await import("@php-wasm/web-8-2")).getIntlExtensionPath();case"8.1":return(await import("@php-wasm/web-8-1")).getIntlExtensionPath();case"8.0":return(await import("@php-wasm/web-8-0")).getIntlExtensionPath();case"7.4":return(await import("@php-wasm/web-7-4")).getIntlExtensionPath();case"7.3":return(await import("@php-wasm/web-7-3")).getIntlExtensionPath();case"7.2":return(await import("@php-wasm/web-7-2")).getIntlExtensionPath()}throw new Error(`Unsupported PHP version ${i}`)}async function it(i=d.LatestSupportedPHPVersion,e){const t=Pe.createMemoizedFetch(fetch),r="intl.so",n="icu.dat",s=await st(i),a=(await import("./shared/icu.dat")).default,[_,S]=await Promise.all([t(s).then(c=>c.arrayBuffer()),t(a).then(c=>c.arrayBuffer())]);return{...e,ENV:{...e.ENV,PHP_INI_SCAN_DIR:"/internal/shared/extensions",ICU_DATA:"/internal/shared"},onRuntimeInitialized:c=>{e.onRuntimeInitialized&&e.onRuntimeInitialized(c),d.FSHelpers.fileExists(c.FS,"/internal/shared/extensions")||c.FS.mkdirTree("/internal/shared/extensions"),d.FSHelpers.fileExists(c.FS,`/internal/shared/extensions/${r}`)||c.FS.writeFile(`/internal/shared/extensions/${r}`,new Uint8Array(_)),d.FSHelpers.fileExists(c.FS,"/internal/shared/extensions/intl.ini")||c.FS.writeFile("/internal/shared/extensions/intl.ini",[`extension=/internal/shared/extensions/${r}`].join(`
|
|
21
21
|
`)),d.FSHelpers.fileExists(c.FS,`${c.ENV.ICU_DATA}/${n}`)||(c.FS.mkdirTree(c.ENV.ICU_DATA),c.FS.writeFile(`${c.ENV.ICU_DATA}/icudt74l.dat`,new Uint8Array(S)))}}}const at=()=>({websocket:{decorator:i=>class extends i{constructor(){try{super()}catch{}}send(){return null}}}});async function _t(i,e={}){var s;"setImmediate"in globalThis||(globalThis.setImmediate=a=>setTimeout(a,0));let t={...at(),...e.emscriptenOptions||{}};e.tcpOverFetch&&(t=Qe(t,e.tcpOverFetch)),e.withIntl&&(t=it(i,t));const[r,n]=await Promise.all([ae(i),t]);return(s=e.onPhpLoaderModuleLoaded)==null||s.call(e,r),await d.loadPHPRuntime(r,n)}function ot(i,e){window.addEventListener("message",t=>{t.source===i.contentWindow&&(e&&t.origin!==e||typeof t.data!="object"||t.data.type!=="relay"||window.parent.postMessage(t.data,"*"))}),window.addEventListener("message",t=>{var r;t.source===window.parent&&(typeof t.data!="object"||t.data.type!=="relay"||(r=i==null?void 0:i.contentWindow)==null||r.postMessage(t.data))})}async function ct(i){const e=new Worker(i,{type:"module"});return new Promise((t,r)=>{e.onerror=s=>{const a=new Error(`WebWorker failed to load at ${i}. ${s.message?`Original error: ${s.message}`:""}`);a.filename=s.filename,r(a)};function n(s){s.data==="worker-script-started"&&(t(e),e.removeEventListener("message",n))}e.addEventListener("message",n)})}function St(i,e={initialSync:{}}){return e={...e,initialSync:{...e.initialSync,direction:e.initialSync.direction??"opfs-to-memfs"}},async function(t,r,n){return e.initialSync.direction==="opfs-to-memfs"?(d.FSHelpers.fileExists(r,n)&&d.FSHelpers.rmdir(r,n),d.FSHelpers.mkdir(r,n),await lt(r,i,n)):await Te(r,i,n,e.initialSync.onProgress),ht(t,i,n)}}async function lt(i,e,t){d.FSHelpers.mkdir(i,t);const r=new h.Semaphore({concurrency:40}),n=[],s=[[e,t]];for(;s.length>0;){const[a,_]=s.pop();for await(const S of a.values()){const c=r.run(async()=>{const C=h.joinPaths(_,S.name);if(S.kind==="directory"){try{i.mkdir(C)}catch(A){if((A==null?void 0:A.errno)!==20)throw M.logger.error(A),A}s.push([S,C])}else if(S.kind==="file"){const A=await S.getFile(),u=new Uint8Array(await A.arrayBuffer());i.createDataFile(_,S.name,u,!0,!0,!0)}n.splice(n.indexOf(c),1)});n.push(c)}for(;s.length===0&&n.length>0;)await Promise.any(n)}}async function Te(i,e,t,r){i.mkdirTree(t);const n=[];async function s(C,A){await Promise.all(i.readdir(C).filter(u=>u!=="."&&u!=="..").map(async u=>{const E=h.joinPaths(C,u);if(!Ct(i,E)){n.push([A,E,u]);return}const y=await A.getDirectoryHandle(u,{create:!0});return await s(E,y)}))}await s(t,e);let a=0;const _=r&&Ht(r,100),S=100,c=new Set;try{for(const[C,A,u]of n){const E=F(C,u,i,A).then(()=>{a++,c.delete(E),_==null||_({files:a,total:n.length})});c.add(E),c.size>=S&&(await Promise.race(c),_==null||_({files:a,total:n.length}))}}finally{await Promise.allSettled(c)}}function Ct(i,e){return i.isDir(i.lookupPath(e,{follow:!0}).node.mode)}async function F(i,e,t,r){let n;try{n=t.readFile(r,{encoding:"binary"})}catch{return}const s=await i.getFileHandle(e,{create:!0}),a=s.createWritable!==void 0?await s.createWritable():await s.createSyncAccessHandle();try{await a.truncate(0),await a.write(n)}finally{await a.close()}}function ht(i,e,t){const r=[],n=$.journalFSEvents(i,t,_=>{r.push(_)}),s=new At(i,e,t);async function a(){if(r.length===0)return;const _=await i.semaphore.acquire(),S=[...r];r.splice(0,S.length);const c=$.normalizeFilesystemOperations(S);try{for(const C of c)await s.processEntry(C)}finally{_()}}return i.addEventListener("request.end",a),i.addEventListener("filesystem.write",a),function(){n(),i.removeEventListener("request.end",a),i.removeEventListener("filesystem.write",a)}}class At{constructor(e,t,r){this.php=e,this.opfs=t,this.memfsRoot=se(r)}toOpfsPath(e){return se(e.substring(this.memfsRoot.length))}async processEntry(e){if(!e.path.startsWith(this.memfsRoot)||e.path===this.memfsRoot)return;const t=this.toOpfsPath(e.path),r=await ie(this.opfs,t),n=ut(t);if(n)try{if(e.operation==="DELETE")try{await r.removeEntry(n,{recursive:!0})}catch{}else if(e.operation==="CREATE")e.nodeType==="directory"?await r.getDirectoryHandle(n,{create:!0}):await r.getFileHandle(n,{create:!0});else if(e.operation==="WRITE")await F(r,n,this.php[d.__private__dont__use].FS,e.path);else if(e.operation==="RENAME"&&e.toPath.startsWith(this.memfsRoot)){const s=this.toOpfsPath(e.toPath),a=await ie(this.opfs,s);if(e.nodeType==="directory"){const _=await a.getDirectoryHandle(n,{create:!0});await Te(this.php[d.__private__dont__use].FS,_,e.toPath),await r.removeEntry(n,{recursive:!0})}else{try{await r.removeEntry(n)}catch{}await F(a,h.basename(s),this.php[d.__private__dont__use].FS,e.toPath)}}}catch(s){throw M.logger.log({entry:e,name:n}),M.logger.error(s),s}}}function se(i){return i.replace(/\/$/,"").replace(/\/\/+/g,"/")}function ut(i){return i.substring(i.lastIndexOf("/")+1)}async function ie(i,e){const t=e.replace(/^\/+|\/+$/g,"").replace(/\/+/,"/");if(!t)return i;const r=t.split("/");let n=i;for(let s=0;s<r.length-1;s++){const a=r[s];n=await n.getDirectoryHandle(a,{create:!0})}return n}function Ht(i,e){let t=0,r,n;return function(...a){n=a;const _=Date.now()-t;if(r===void 0){const S=Math.max(0,e-_);r=setTimeout(()=>{r=void 0,t=Date.now(),i(...n)},S)}}}Object.defineProperty(exports,"consumeAPI",{enumerable:!0,get:()=>d.consumeAPI});Object.defineProperty(exports,"exposeAPI",{enumerable:!0,get:()=>d.exposeAPI});exports.FirewallInterferenceError=de;exports.certificateToPEM=$e;exports.createDirectoryHandleMountHandler=St;exports.fetchWithCorsProxy=Ee;exports.generateCertificate=Ae;exports.getPHPLoaderModule=ae;exports.loadWebRuntime=_t;exports.privateKeyToPEM=Ve;exports.setupPostMessageRelay=ot;exports.spawnPHPWorkerThread=ct;
|
|
22
22
|
//# sourceMappingURL=index.cjs.map
|