@electric-sql/pglite-postgis 0.2.13 → 0.2.15

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/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var h=Object.create;var a=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var w=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},p=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of S(e))!E.call(t,n)&&n!==r&&a(t,n,{get:()=>e[n],enumerable:!(i=y(e,n))||i.enumerable});return t};var d=(t,e,r)=>(r=t!=null?h(b(t)):{},p(e||!t||!t.__esModule?a(r,"default",{value:t,enumerable:!0}):r,t)),_=t=>p(a({},"__esModule",{value:!0}),t);var G={};w(G,{postgis:()=>N});module.exports=_(G);var R=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href,u=R();var A=Object.defineProperty,I=(t,e)=>{for(var r in e)A(t,r,{get:e[r],enumerable:!0})},g={};I(g,{IN_NODE:()=>l,WASM_PREFIX:()=>P,getFsBundle:()=>v,instantiateWasm:()=>U,pgliteProc:()=>L,rmdirRecursive:()=>m,startArtifactDownload:()=>f,toPostgresName:()=>x,uuid:()=>j});function T(){let t=process.type;return t==="renderer"||t==="worker"||t==="service-worker"}var l=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&!T(),P="/pglite",L=globalThis&&typeof globalThis.process<"u"?globalThis.process:{exitCode:void 0},o=new Map;async function f(t){l||o.has(t.toString())||o.set(t.toString(),fetch(t))}var s=new Map;async function U(t,e,r){if(r||s.has(e.toString())){let i=r||s.get(e.toString());return{instance:await WebAssembly.instantiate(i,t),module:i}}if(l){let i=await(await import("fs/promises")).readFile(e),{module:n,instance:c}=await WebAssembly.instantiate(i,t);return s.set(e.toString(),n),{instance:c,module:n}}else{o.has(e.toString())||f(e);let i=await o.get(e.toString()),{module:n,instance:c}=await WebAssembly.instantiateStreaming(i.clone(),t);return s.set(e.toString(),n),{instance:c,module:n}}}async function v(t){return l?(await(await import("fs/promises")).readFile(t)).buffer:(f(t),(await o.get(t.toString())).clone().arrayBuffer())}var j=()=>{if(globalThis.crypto?.randomUUID)return globalThis.crypto.randomUUID();let t=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(t);else for(let r=0;r<t.length;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=[];return t.forEach(r=>{e.push(r.toString(16).padStart(2,"0"))}),e.slice(0,4).join("")+"-"+e.slice(4,6).join("")+"-"+e.slice(6,8).join("")+"-"+e.slice(8,10).join("")+"-"+e.slice(10).join("")};function x(t){let e;return t.startsWith('"')&&t.endsWith('"')?e=t.substring(1,t.length-1):e=t.toLowerCase(),e}function m(t,e){try{let r=t.readdir(e).filter(i=>i!=="."&&i!=="..");for(let i of r){let n=e+"/"+i;try{t.readdir(n),m(t,n)}catch{t.unlink(n)}}t.rmdir(e)}catch{try{t.unlink(e)}catch{}}}var D=async(t,e)=>(e.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS="ENABLE_ALL",e.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS=1,e.PGLITE_ENV.PROJ_DATA=`${g.WASM_PREFIX}/share/proj`,{emscriptenOpts:e,bundlePath:new URL("./postgis.tar.gz",u)}),N={name:"postgis",setup:D};0&&(module.exports={postgis});
1
+ "use strict";var y=Object.create;var a=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var w=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},g=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of h(e))!E.call(t,n)&&n!==r&&a(t,n,{get:()=>e[n],enumerable:!(i=S(e,n))||i.enumerable});return t};var d=(t,e,r)=>(r=t!=null?y(b(t)):{},g(e||!t||!t.__esModule?a(r,"default",{value:t,enumerable:!0}):r,t)),R=t=>g(a({},"__esModule",{value:!0}),t);var W={};w(W,{postgis:()=>D});module.exports=R(W);var _=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,u=_();var A=Object.defineProperty,I=(t,e)=>{for(var r in e)A(t,r,{get:e[r],enumerable:!0})},p={};I(p,{IN_NODE:()=>l,WASM_PREFIX:()=>P,getFsBundle:()=>v,instantiateWasm:()=>L,pgliteProc:()=>U,rmdirRecursive:()=>m,startArtifactDownload:()=>f,toPostgresName:()=>N,uuid:()=>j});function T(){let t=process.type;return t==="renderer"||t==="worker"||t==="service-worker"}var l=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&!T(),P="/pglite",U=globalThis&&typeof globalThis.process<"u"?globalThis.process:{exitCode:void 0},o=new Map;async function f(t){l||o.has(t.toString())||o.set(t.toString(),fetch(t))}var s=new Map;async function L(t,e){if(typeof e!="function")return{instance:await WebAssembly.instantiate(e,t),module:e};let r=e();if(s.has(r.toString())){let i=s.get(r.toString());return{instance:await WebAssembly.instantiate(i,t),module:i}}if(l){let i=await(await import("fs/promises")).readFile(r),{module:n,instance:c}=await WebAssembly.instantiate(i,t);return s.set(r.toString(),n),{instance:c,module:n}}else{o.has(r.toString())||f(r);let i=await o.get(r.toString()),{module:n,instance:c}=await WebAssembly.instantiateStreaming(i.clone(),t);return s.set(r.toString(),n),{instance:c,module:n}}}async function v(t){return l?(await(await import("fs/promises")).readFile(t)).buffer:(f(t),(await o.get(t.toString())).clone().arrayBuffer())}var j=()=>{if(globalThis.crypto?.randomUUID)return globalThis.crypto.randomUUID();let t=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(t);else for(let r=0;r<t.length;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=[];return t.forEach(r=>{e.push(r.toString(16).padStart(2,"0"))}),e.slice(0,4).join("")+"-"+e.slice(4,6).join("")+"-"+e.slice(6,8).join("")+"-"+e.slice(8,10).join("")+"-"+e.slice(10).join("")};function N(t){let e;return t.startsWith('"')&&t.endsWith('"')?e=t.substring(1,t.length-1):e=t.toLowerCase(),e}function m(t,e){try{let r=t.readdir(e).filter(i=>i!=="."&&i!=="..");for(let i of r){let n=e+"/"+i;try{t.readdir(n),m(t,n)}catch{t.unlink(n)}}t.rmdir(e)}catch{try{t.unlink(e)}catch{}}}var x=async(t,e)=>(e.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS="ENABLE_ALL",e.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS=1,e.PGLITE_ENV.PROJ_DATA=`${p.WASM_PREFIX}/share/proj`,{emscriptenOpts:e,bundlePath:new URL("./postgis.tar.gz",u)}),D={name:"postgis",setup:x};0&&(module.exports={postgis});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../../../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.7_@types+node@20.16.11__postcss@8.4.47_tsx@4.19.2_typescript@5.6.3/node_modules/tsup/assets/cjs_shims.js","../../../pglite-utils/src/utils.ts"],"sourcesContent":["import type {\n Extension,\n ExtensionSetupResult,\n PGliteInterface,\n} from '@electric-sql/pglite'\n\nimport { pglUtils } from '@electric-sql/pglite-utils'\n\nconst setup = async (_pg: PGliteInterface, emscriptenOpts: any) => {\n emscriptenOpts.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS = 'ENABLE_ALL'\n emscriptenOpts.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS = 1\n emscriptenOpts.PGLITE_ENV.PROJ_DATA = `${pglUtils.WASM_PREFIX}/share/proj`\n\n return {\n emscriptenOpts,\n bundlePath: new URL('../release/postgis.tar.gz', import.meta.url),\n } satisfies ExtensionSetupResult\n}\n\nexport const postgis = {\n name: 'postgis',\n setup,\n} satisfies Extension\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","// Electron exposes a Node-like `process` in its renderer/worker/service-worker\n// contexts, which must use the browser fs path. Its main and utility processes\n// are real Node environments (#813).\nfunction isElectronWebContext(): boolean {\n const type = (process as { type?: string }).type\n return type === 'renderer' || type === 'worker' || type === 'service-worker'\n}\n\nexport const IN_NODE =\n typeof process === 'object' &&\n typeof process.versions === 'object' &&\n typeof process.versions.node === 'string' &&\n !isElectronWebContext()\n\nexport const WASM_PREFIX = '/pglite'\n\nexport const pgliteProc =\n globalThis && typeof globalThis.process !== 'undefined'\n ? globalThis.process\n : { exitCode: undefined }\n\nconst artifactDownloadPromises = new Map<string, Promise<Response>>()\n\nexport async function startArtifactDownload(url: URL) {\n if (IN_NODE || artifactDownloadPromises.has(url.toString())) {\n return\n }\n artifactDownloadPromises.set(url.toString(), fetch(url))\n}\n\n// This is a global cache of the Wasm modules to avoid having to re-download or\n// compile them on subsequent calls.\nconst cachedWasmModules = new Map<string, WebAssembly.Module>()\n\nexport async function instantiateWasm(\n imports: WebAssembly.Imports,\n moduleUrl: URL,\n module?: WebAssembly.Module,\n): Promise<{\n instance: WebAssembly.Instance\n module: WebAssembly.Module\n}> {\n if (module || cachedWasmModules.has(moduleUrl.toString())) {\n const mod = module || cachedWasmModules.get(moduleUrl.toString())!\n return {\n instance: await WebAssembly.instantiate(mod, imports),\n module: mod,\n }\n }\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const buffer = await fs.readFile(moduleUrl)\n const { module: newModule, instance } = await WebAssembly.instantiate(\n buffer,\n imports,\n )\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n } else {\n if (!artifactDownloadPromises.has(moduleUrl.toString())) {\n startArtifactDownload(moduleUrl)\n // wasmDownloadPromises.set(moduleUrl, fetch(moduleUrl))\n }\n const response = await artifactDownloadPromises.get(moduleUrl.toString())\n const { module: newModule, instance } =\n await WebAssembly.instantiateStreaming(response!.clone(), imports)\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n }\n}\n\nexport async function getFsBundle(fsBundleUrl: URL): Promise<ArrayBuffer> {\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const fileData = await fs.readFile(fsBundleUrl)\n return fileData.buffer\n } else {\n startArtifactDownload(fsBundleUrl)\n const response = await artifactDownloadPromises.get(fsBundleUrl.toString())\n return response!.clone().arrayBuffer()\n }\n}\n\nexport const uuid = (): string => {\n // best case, `crypto.randomUUID` is available\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID()\n }\n\n const bytes = new Uint8Array(16)\n\n if (globalThis.crypto?.getRandomValues) {\n // `crypto.getRandomValues` is available even in non-secure contexts\n globalThis.crypto.getRandomValues(bytes)\n } else {\n // fallback to Math.random, if the Crypto API is completely missing\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = Math.floor(Math.random() * 256)\n }\n }\n\n bytes[6] = (bytes[6] & 0x0f) | 0x40 // Set the 4 most significant bits to 0100\n bytes[8] = (bytes[8] & 0x3f) | 0x80 // Set the 2 most significant bits to 10\n\n const hexValues: string[] = []\n bytes.forEach((byte) => {\n hexValues.push(byte.toString(16).padStart(2, '0'))\n })\n\n return (\n hexValues.slice(0, 4).join('') +\n '-' +\n hexValues.slice(4, 6).join('') +\n '-' +\n hexValues.slice(6, 8).join('') +\n '-' +\n hexValues.slice(8, 10).join('') +\n '-' +\n hexValues.slice(10).join('')\n )\n}\n\n/**\n * Postgresql handles quoted names as CaseSensitive and unquoted as lower case.\n * If input is quoted, returns an unquoted string (same casing)\n * If input is unquoted, returns a lower-case string\n */\nexport function toPostgresName(input: string): string {\n let output\n if (input.startsWith('\"') && input.endsWith('\"')) {\n // Postgres sensitive case\n output = input.substring(1, input.length - 1)\n } else {\n // Postgres case insensitive - all to lower\n output = input.toLowerCase()\n }\n return output\n}\n\ninterface MinimalFS {\n readdir(path: string): string[]\n unlink(path: string): void\n rmdir(path: string): void\n}\n\nexport function rmdirRecursive(fs: MinimalFS, path: string) {\n try {\n // If readdir succeeds it's a directory\n const entries = fs.readdir(path).filter((n: any) => n !== '.' && n !== '..')\n for (const name of entries) {\n const child = path + '/' + name\n // Recurse or unlink depending on whether child is a directory\n try {\n fs.readdir(child)\n rmdirRecursive(fs, child)\n } catch (e) {\n // readdir failed => not a directory\n fs.unlink(child)\n }\n }\n fs.rmdir(path)\n } catch (e) {\n // not a directory: try unlink\n try {\n fs.unlink(path)\n } catch (_) {\n /* ignore if already gone */\n }\n }\n}\n"],"mappings":"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","names":["src_exports","__export","postgis","__toCommonJS","getImportMetaUrl","importMetaUrl","utils_exports","__export","IN_NODE","WASM_PREFIX","getFsBundle","instantiateWasm","pgliteProc","rmdirRecursive","startArtifactDownload","toPostgresName","uuid","isElectronWebContext","type","artifactDownloadPromises","url","cachedWasmModules","imports","moduleUrl","module","mod","buffer","newModule","instance","response","fsBundleUrl","bytes","i","hexValues","byte","input","output","fs","path","entries","n","name","child","setup","_pg","emscriptenOpts","f","importMetaUrl","postgis"]}
1
+ {"version":3,"sources":["../src/index.ts","../../../../node_modules/.pnpm/tsup@8.5.1_@microsoft+api-extractor@7.47.7_@types+node@20.16.11__postcss@8.4.47_tsx@4.19.2_typescript@5.6.3/node_modules/tsup/assets/cjs_shims.js","../../../pglite-utils/src/utils.ts"],"sourcesContent":["import type {\n Extension,\n ExtensionSetupResult,\n PGliteInterface,\n} from '@electric-sql/pglite'\n\nimport { pglUtils } from '@electric-sql/pglite-utils'\n\nconst setup = async (_pg: PGliteInterface, emscriptenOpts: any) => {\n emscriptenOpts.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS = 'ENABLE_ALL'\n emscriptenOpts.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS = 1\n emscriptenOpts.PGLITE_ENV.PROJ_DATA = `${pglUtils.WASM_PREFIX}/share/proj`\n\n return {\n emscriptenOpts,\n bundlePath: new URL('../release/postgis.tar.gz', import.meta.url),\n } satisfies ExtensionSetupResult\n}\n\nexport const postgis = {\n name: 'postgis',\n setup,\n} satisfies Extension\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","// Electron exposes a Node-like `process` in its renderer/worker/service-worker\n// contexts, which must use the browser fs path. Its main and utility processes\n// are real Node environments (#813).\nfunction isElectronWebContext(): boolean {\n const type = (process as { type?: string }).type\n return type === 'renderer' || type === 'worker' || type === 'service-worker'\n}\n\nexport const IN_NODE =\n typeof process === 'object' &&\n typeof process.versions === 'object' &&\n typeof process.versions.node === 'string' &&\n !isElectronWebContext()\n\nexport const WASM_PREFIX = '/pglite'\n\nexport const pgliteProc =\n globalThis && typeof globalThis.process !== 'undefined'\n ? globalThis.process\n : { exitCode: undefined }\n\nconst artifactDownloadPromises = new Map<string, Promise<Response>>()\n\nexport async function startArtifactDownload(url: URL) {\n if (IN_NODE || artifactDownloadPromises.has(url.toString())) {\n return\n }\n artifactDownloadPromises.set(url.toString(), fetch(url))\n}\n\n// This is a global cache of the Wasm modules to avoid having to re-download or\n// compile them on subsequent calls.\nconst cachedWasmModules = new Map<string, WebAssembly.Module>()\n\n// `moduleSource` is either a precompiled module or a function returning its URL.\n// Callers that pass a precompiled module may run where `import.meta.url` is not\n// a valid base URL (for example an IIFE or CJS bundle), so the URL must not be\n// built eagerly.\nexport async function instantiateWasm(\n imports: WebAssembly.Imports,\n moduleSource: WebAssembly.Module | (() => URL),\n): Promise<{\n instance: WebAssembly.Instance\n module: WebAssembly.Module\n}> {\n if (typeof moduleSource !== 'function') {\n return {\n instance: await WebAssembly.instantiate(moduleSource, imports),\n module: moduleSource,\n }\n }\n\n const moduleUrl = moduleSource()\n if (cachedWasmModules.has(moduleUrl.toString())) {\n const mod = cachedWasmModules.get(moduleUrl.toString())!\n return {\n instance: await WebAssembly.instantiate(mod, imports),\n module: mod,\n }\n }\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const buffer = await fs.readFile(moduleUrl)\n const { module: newModule, instance } = await WebAssembly.instantiate(\n buffer,\n imports,\n )\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n } else {\n if (!artifactDownloadPromises.has(moduleUrl.toString())) {\n startArtifactDownload(moduleUrl)\n // wasmDownloadPromises.set(moduleUrl, fetch(moduleUrl))\n }\n const response = await artifactDownloadPromises.get(moduleUrl.toString())\n const { module: newModule, instance } =\n await WebAssembly.instantiateStreaming(response!.clone(), imports)\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n }\n}\n\nexport async function getFsBundle(fsBundleUrl: URL): Promise<ArrayBuffer> {\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const fileData = await fs.readFile(fsBundleUrl)\n return fileData.buffer\n } else {\n startArtifactDownload(fsBundleUrl)\n const response = await artifactDownloadPromises.get(fsBundleUrl.toString())\n return response!.clone().arrayBuffer()\n }\n}\n\nexport const uuid = (): string => {\n // best case, `crypto.randomUUID` is available\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID()\n }\n\n const bytes = new Uint8Array(16)\n\n if (globalThis.crypto?.getRandomValues) {\n // `crypto.getRandomValues` is available even in non-secure contexts\n globalThis.crypto.getRandomValues(bytes)\n } else {\n // fallback to Math.random, if the Crypto API is completely missing\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = Math.floor(Math.random() * 256)\n }\n }\n\n bytes[6] = (bytes[6] & 0x0f) | 0x40 // Set the 4 most significant bits to 0100\n bytes[8] = (bytes[8] & 0x3f) | 0x80 // Set the 2 most significant bits to 10\n\n const hexValues: string[] = []\n bytes.forEach((byte) => {\n hexValues.push(byte.toString(16).padStart(2, '0'))\n })\n\n return (\n hexValues.slice(0, 4).join('') +\n '-' +\n hexValues.slice(4, 6).join('') +\n '-' +\n hexValues.slice(6, 8).join('') +\n '-' +\n hexValues.slice(8, 10).join('') +\n '-' +\n hexValues.slice(10).join('')\n )\n}\n\n/**\n * Postgresql handles quoted names as CaseSensitive and unquoted as lower case.\n * If input is quoted, returns an unquoted string (same casing)\n * If input is unquoted, returns a lower-case string\n */\nexport function toPostgresName(input: string): string {\n let output\n if (input.startsWith('\"') && input.endsWith('\"')) {\n // Postgres sensitive case\n output = input.substring(1, input.length - 1)\n } else {\n // Postgres case insensitive - all to lower\n output = input.toLowerCase()\n }\n return output\n}\n\ninterface MinimalFS {\n readdir(path: string): string[]\n unlink(path: string): void\n rmdir(path: string): void\n}\n\nexport function rmdirRecursive(fs: MinimalFS, path: string) {\n try {\n // If readdir succeeds it's a directory\n const entries = fs.readdir(path).filter((n: any) => n !== '.' && n !== '..')\n for (const name of entries) {\n const child = path + '/' + name\n // Recurse or unlink depending on whether child is a directory\n try {\n fs.readdir(child)\n rmdirRecursive(fs, child)\n } catch (e) {\n // readdir failed => not a directory\n fs.unlink(child)\n }\n }\n fs.rmdir(path)\n } catch (e) {\n // not a directory: try unlink\n try {\n fs.unlink(path)\n } catch (_) {\n /* ignore if already gone */\n }\n }\n}\n\nexport type IDBFS = Emscripten.FileSystemType & {\n quit: () => void\n dbs: Record<string, IDBDatabase>\n}\n\nexport type FS = typeof FS & {\n filesystems: {\n MEMFS: Emscripten.FileSystemType\n NODEFS: Emscripten.FileSystemType\n IDBFS: IDBFS\n }\n quit: () => void\n}\n"],"mappings":"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","names":["index_exports","__export","postgis","__toCommonJS","getImportMetaUrl","importMetaUrl","utils_exports","__export","IN_NODE","WASM_PREFIX","getFsBundle","instantiateWasm","pgliteProc","rmdirRecursive","startArtifactDownload","toPostgresName","uuid","isElectronWebContext","type","artifactDownloadPromises","url","cachedWasmModules","imports","moduleSource","moduleUrl","mod","buffer","newModule","instance","response","fsBundleUrl","bytes","i","hexValues","byte","input","output","fs","path","entries","n","name","child","setup","_pg","emscriptenOpts","importMetaUrl","postgis"]}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var d=Object.defineProperty,m=(t,e)=>{for(var r in e)d(t,r,{get:e[r],enumerable:!0})},c={};m(c,{IN_NODE:()=>s,WASM_PREFIX:()=>y,getFsBundle:()=>b,instantiateWasm:()=>E,pgliteProc:()=>S,rmdirRecursive:()=>g,startArtifactDownload:()=>u,toPostgresName:()=>A,uuid:()=>w});function h(){let t=process.type;return t==="renderer"||t==="worker"||t==="service-worker"}var s=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&!h(),y="/pglite",S=globalThis&&typeof globalThis.process<"u"?globalThis.process:{exitCode:void 0},o=new Map;async function u(t){s||o.has(t.toString())||o.set(t.toString(),fetch(t))}var a=new Map;async function E(t,e,r){if(r||a.has(e.toString())){let i=r||a.get(e.toString());return{instance:await WebAssembly.instantiate(i,t),module:i}}if(s){let i=await(await import("fs/promises")).readFile(e),{module:n,instance:l}=await WebAssembly.instantiate(i,t);return a.set(e.toString(),n),{instance:l,module:n}}else{o.has(e.toString())||u(e);let i=await o.get(e.toString()),{module:n,instance:l}=await WebAssembly.instantiateStreaming(i.clone(),t);return a.set(e.toString(),n),{instance:l,module:n}}}async function b(t){return s?(await(await import("fs/promises")).readFile(t)).buffer:(u(t),(await o.get(t.toString())).clone().arrayBuffer())}var w=()=>{if(globalThis.crypto?.randomUUID)return globalThis.crypto.randomUUID();let t=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(t);else for(let r=0;r<t.length;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=[];return t.forEach(r=>{e.push(r.toString(16).padStart(2,"0"))}),e.slice(0,4).join("")+"-"+e.slice(4,6).join("")+"-"+e.slice(6,8).join("")+"-"+e.slice(8,10).join("")+"-"+e.slice(10).join("")};function A(t){let e;return t.startsWith('"')&&t.endsWith('"')?e=t.substring(1,t.length-1):e=t.toLowerCase(),e}function g(t,e){try{let r=t.readdir(e).filter(i=>i!=="."&&i!=="..");for(let i of r){let n=e+"/"+i;try{t.readdir(n),g(t,n)}catch{t.unlink(n)}}t.rmdir(e)}catch{try{t.unlink(e)}catch{}}}var T=async(t,e)=>(e.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS="ENABLE_ALL",e.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS=1,e.PGLITE_ENV.PROJ_DATA=`${c.WASM_PREFIX}/share/proj`,{emscriptenOpts:e,bundlePath:new URL("./postgis.tar.gz",import.meta.url)}),R={name:"postgis",setup:T};export{R as postgis};
1
+ var d=Object.defineProperty,m=(t,e)=>{for(var r in e)d(t,r,{get:e[r],enumerable:!0})},c={};m(c,{IN_NODE:()=>s,WASM_PREFIX:()=>h,getFsBundle:()=>E,instantiateWasm:()=>b,pgliteProc:()=>S,rmdirRecursive:()=>g,startArtifactDownload:()=>u,toPostgresName:()=>A,uuid:()=>w});function y(){let t=process.type;return t==="renderer"||t==="worker"||t==="service-worker"}var s=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&!y(),h="/pglite",S=globalThis&&typeof globalThis.process<"u"?globalThis.process:{exitCode:void 0},a=new Map;async function u(t){s||a.has(t.toString())||a.set(t.toString(),fetch(t))}var o=new Map;async function b(t,e){if(typeof e!="function")return{instance:await WebAssembly.instantiate(e,t),module:e};let r=e();if(o.has(r.toString())){let i=o.get(r.toString());return{instance:await WebAssembly.instantiate(i,t),module:i}}if(s){let i=await(await import("fs/promises")).readFile(r),{module:n,instance:l}=await WebAssembly.instantiate(i,t);return o.set(r.toString(),n),{instance:l,module:n}}else{a.has(r.toString())||u(r);let i=await a.get(r.toString()),{module:n,instance:l}=await WebAssembly.instantiateStreaming(i.clone(),t);return o.set(r.toString(),n),{instance:l,module:n}}}async function E(t){return s?(await(await import("fs/promises")).readFile(t)).buffer:(u(t),(await a.get(t.toString())).clone().arrayBuffer())}var w=()=>{if(globalThis.crypto?.randomUUID)return globalThis.crypto.randomUUID();let t=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(t);else for(let r=0;r<t.length;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=[];return t.forEach(r=>{e.push(r.toString(16).padStart(2,"0"))}),e.slice(0,4).join("")+"-"+e.slice(4,6).join("")+"-"+e.slice(6,8).join("")+"-"+e.slice(8,10).join("")+"-"+e.slice(10).join("")};function A(t){let e;return t.startsWith('"')&&t.endsWith('"')?e=t.substring(1,t.length-1):e=t.toLowerCase(),e}function g(t,e){try{let r=t.readdir(e).filter(i=>i!=="."&&i!=="..");for(let i of r){let n=e+"/"+i;try{t.readdir(n),g(t,n)}catch{t.unlink(n)}}t.rmdir(e)}catch{try{t.unlink(e)}catch{}}}var T=async(t,e)=>(e.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS="ENABLE_ALL",e.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS=1,e.PGLITE_ENV.PROJ_DATA=`${c.WASM_PREFIX}/share/proj`,{emscriptenOpts:e,bundlePath:new URL("./postgis.tar.gz",import.meta.url)}),R={name:"postgis",setup:T};export{R as postgis};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../pglite-utils/src/utils.ts","../src/index.ts"],"sourcesContent":["// Electron exposes a Node-like `process` in its renderer/worker/service-worker\n// contexts, which must use the browser fs path. Its main and utility processes\n// are real Node environments (#813).\nfunction isElectronWebContext(): boolean {\n const type = (process as { type?: string }).type\n return type === 'renderer' || type === 'worker' || type === 'service-worker'\n}\n\nexport const IN_NODE =\n typeof process === 'object' &&\n typeof process.versions === 'object' &&\n typeof process.versions.node === 'string' &&\n !isElectronWebContext()\n\nexport const WASM_PREFIX = '/pglite'\n\nexport const pgliteProc =\n globalThis && typeof globalThis.process !== 'undefined'\n ? globalThis.process\n : { exitCode: undefined }\n\nconst artifactDownloadPromises = new Map<string, Promise<Response>>()\n\nexport async function startArtifactDownload(url: URL) {\n if (IN_NODE || artifactDownloadPromises.has(url.toString())) {\n return\n }\n artifactDownloadPromises.set(url.toString(), fetch(url))\n}\n\n// This is a global cache of the Wasm modules to avoid having to re-download or\n// compile them on subsequent calls.\nconst cachedWasmModules = new Map<string, WebAssembly.Module>()\n\nexport async function instantiateWasm(\n imports: WebAssembly.Imports,\n moduleUrl: URL,\n module?: WebAssembly.Module,\n): Promise<{\n instance: WebAssembly.Instance\n module: WebAssembly.Module\n}> {\n if (module || cachedWasmModules.has(moduleUrl.toString())) {\n const mod = module || cachedWasmModules.get(moduleUrl.toString())!\n return {\n instance: await WebAssembly.instantiate(mod, imports),\n module: mod,\n }\n }\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const buffer = await fs.readFile(moduleUrl)\n const { module: newModule, instance } = await WebAssembly.instantiate(\n buffer,\n imports,\n )\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n } else {\n if (!artifactDownloadPromises.has(moduleUrl.toString())) {\n startArtifactDownload(moduleUrl)\n // wasmDownloadPromises.set(moduleUrl, fetch(moduleUrl))\n }\n const response = await artifactDownloadPromises.get(moduleUrl.toString())\n const { module: newModule, instance } =\n await WebAssembly.instantiateStreaming(response!.clone(), imports)\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n }\n}\n\nexport async function getFsBundle(fsBundleUrl: URL): Promise<ArrayBuffer> {\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const fileData = await fs.readFile(fsBundleUrl)\n return fileData.buffer\n } else {\n startArtifactDownload(fsBundleUrl)\n const response = await artifactDownloadPromises.get(fsBundleUrl.toString())\n return response!.clone().arrayBuffer()\n }\n}\n\nexport const uuid = (): string => {\n // best case, `crypto.randomUUID` is available\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID()\n }\n\n const bytes = new Uint8Array(16)\n\n if (globalThis.crypto?.getRandomValues) {\n // `crypto.getRandomValues` is available even in non-secure contexts\n globalThis.crypto.getRandomValues(bytes)\n } else {\n // fallback to Math.random, if the Crypto API is completely missing\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = Math.floor(Math.random() * 256)\n }\n }\n\n bytes[6] = (bytes[6] & 0x0f) | 0x40 // Set the 4 most significant bits to 0100\n bytes[8] = (bytes[8] & 0x3f) | 0x80 // Set the 2 most significant bits to 10\n\n const hexValues: string[] = []\n bytes.forEach((byte) => {\n hexValues.push(byte.toString(16).padStart(2, '0'))\n })\n\n return (\n hexValues.slice(0, 4).join('') +\n '-' +\n hexValues.slice(4, 6).join('') +\n '-' +\n hexValues.slice(6, 8).join('') +\n '-' +\n hexValues.slice(8, 10).join('') +\n '-' +\n hexValues.slice(10).join('')\n )\n}\n\n/**\n * Postgresql handles quoted names as CaseSensitive and unquoted as lower case.\n * If input is quoted, returns an unquoted string (same casing)\n * If input is unquoted, returns a lower-case string\n */\nexport function toPostgresName(input: string): string {\n let output\n if (input.startsWith('\"') && input.endsWith('\"')) {\n // Postgres sensitive case\n output = input.substring(1, input.length - 1)\n } else {\n // Postgres case insensitive - all to lower\n output = input.toLowerCase()\n }\n return output\n}\n\ninterface MinimalFS {\n readdir(path: string): string[]\n unlink(path: string): void\n rmdir(path: string): void\n}\n\nexport function rmdirRecursive(fs: MinimalFS, path: string) {\n try {\n // If readdir succeeds it's a directory\n const entries = fs.readdir(path).filter((n: any) => n !== '.' && n !== '..')\n for (const name of entries) {\n const child = path + '/' + name\n // Recurse or unlink depending on whether child is a directory\n try {\n fs.readdir(child)\n rmdirRecursive(fs, child)\n } catch (e) {\n // readdir failed => not a directory\n fs.unlink(child)\n }\n }\n fs.rmdir(path)\n } catch (e) {\n // not a directory: try unlink\n try {\n fs.unlink(path)\n } catch (_) {\n /* ignore if already gone */\n }\n }\n}\n","import type {\n Extension,\n ExtensionSetupResult,\n PGliteInterface,\n} from '@electric-sql/pglite'\n\nimport { pglUtils } from '@electric-sql/pglite-utils'\n\nconst setup = async (_pg: PGliteInterface, emscriptenOpts: any) => {\n emscriptenOpts.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS = 'ENABLE_ALL'\n emscriptenOpts.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS = 1\n emscriptenOpts.PGLITE_ENV.PROJ_DATA = `${pglUtils.WASM_PREFIX}/share/proj`\n\n return {\n emscriptenOpts,\n bundlePath: new URL('../release/postgis.tar.gz', import.meta.url),\n } satisfies ExtensionSetupResult\n}\n\nexport const postgis = {\n name: 'postgis',\n setup,\n} satisfies Extension\n"],"mappings":"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","names":["utils_exports","__export","IN_NODE","WASM_PREFIX","getFsBundle","instantiateWasm","pgliteProc","rmdirRecursive","startArtifactDownload","toPostgresName","uuid","isElectronWebContext","type","artifactDownloadPromises","url","cachedWasmModules","imports","moduleUrl","module","mod","buffer","newModule","instance","response","fsBundleUrl","bytes","i","hexValues","byte","input","output","fs","path","entries","n","name","child","setup","_pg","emscriptenOpts","f","postgis"]}
1
+ {"version":3,"sources":["../../../pglite-utils/src/utils.ts","../src/index.ts"],"sourcesContent":["// Electron exposes a Node-like `process` in its renderer/worker/service-worker\n// contexts, which must use the browser fs path. Its main and utility processes\n// are real Node environments (#813).\nfunction isElectronWebContext(): boolean {\n const type = (process as { type?: string }).type\n return type === 'renderer' || type === 'worker' || type === 'service-worker'\n}\n\nexport const IN_NODE =\n typeof process === 'object' &&\n typeof process.versions === 'object' &&\n typeof process.versions.node === 'string' &&\n !isElectronWebContext()\n\nexport const WASM_PREFIX = '/pglite'\n\nexport const pgliteProc =\n globalThis && typeof globalThis.process !== 'undefined'\n ? globalThis.process\n : { exitCode: undefined }\n\nconst artifactDownloadPromises = new Map<string, Promise<Response>>()\n\nexport async function startArtifactDownload(url: URL) {\n if (IN_NODE || artifactDownloadPromises.has(url.toString())) {\n return\n }\n artifactDownloadPromises.set(url.toString(), fetch(url))\n}\n\n// This is a global cache of the Wasm modules to avoid having to re-download or\n// compile them on subsequent calls.\nconst cachedWasmModules = new Map<string, WebAssembly.Module>()\n\n// `moduleSource` is either a precompiled module or a function returning its URL.\n// Callers that pass a precompiled module may run where `import.meta.url` is not\n// a valid base URL (for example an IIFE or CJS bundle), so the URL must not be\n// built eagerly.\nexport async function instantiateWasm(\n imports: WebAssembly.Imports,\n moduleSource: WebAssembly.Module | (() => URL),\n): Promise<{\n instance: WebAssembly.Instance\n module: WebAssembly.Module\n}> {\n if (typeof moduleSource !== 'function') {\n return {\n instance: await WebAssembly.instantiate(moduleSource, imports),\n module: moduleSource,\n }\n }\n\n const moduleUrl = moduleSource()\n if (cachedWasmModules.has(moduleUrl.toString())) {\n const mod = cachedWasmModules.get(moduleUrl.toString())!\n return {\n instance: await WebAssembly.instantiate(mod, imports),\n module: mod,\n }\n }\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const buffer = await fs.readFile(moduleUrl)\n const { module: newModule, instance } = await WebAssembly.instantiate(\n buffer,\n imports,\n )\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n } else {\n if (!artifactDownloadPromises.has(moduleUrl.toString())) {\n startArtifactDownload(moduleUrl)\n // wasmDownloadPromises.set(moduleUrl, fetch(moduleUrl))\n }\n const response = await artifactDownloadPromises.get(moduleUrl.toString())\n const { module: newModule, instance } =\n await WebAssembly.instantiateStreaming(response!.clone(), imports)\n cachedWasmModules.set(moduleUrl.toString(), newModule)\n return {\n instance,\n module: newModule,\n }\n }\n}\n\nexport async function getFsBundle(fsBundleUrl: URL): Promise<ArrayBuffer> {\n if (IN_NODE) {\n const fs = await import('fs/promises')\n const fileData = await fs.readFile(fsBundleUrl)\n return fileData.buffer\n } else {\n startArtifactDownload(fsBundleUrl)\n const response = await artifactDownloadPromises.get(fsBundleUrl.toString())\n return response!.clone().arrayBuffer()\n }\n}\n\nexport const uuid = (): string => {\n // best case, `crypto.randomUUID` is available\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID()\n }\n\n const bytes = new Uint8Array(16)\n\n if (globalThis.crypto?.getRandomValues) {\n // `crypto.getRandomValues` is available even in non-secure contexts\n globalThis.crypto.getRandomValues(bytes)\n } else {\n // fallback to Math.random, if the Crypto API is completely missing\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = Math.floor(Math.random() * 256)\n }\n }\n\n bytes[6] = (bytes[6] & 0x0f) | 0x40 // Set the 4 most significant bits to 0100\n bytes[8] = (bytes[8] & 0x3f) | 0x80 // Set the 2 most significant bits to 10\n\n const hexValues: string[] = []\n bytes.forEach((byte) => {\n hexValues.push(byte.toString(16).padStart(2, '0'))\n })\n\n return (\n hexValues.slice(0, 4).join('') +\n '-' +\n hexValues.slice(4, 6).join('') +\n '-' +\n hexValues.slice(6, 8).join('') +\n '-' +\n hexValues.slice(8, 10).join('') +\n '-' +\n hexValues.slice(10).join('')\n )\n}\n\n/**\n * Postgresql handles quoted names as CaseSensitive and unquoted as lower case.\n * If input is quoted, returns an unquoted string (same casing)\n * If input is unquoted, returns a lower-case string\n */\nexport function toPostgresName(input: string): string {\n let output\n if (input.startsWith('\"') && input.endsWith('\"')) {\n // Postgres sensitive case\n output = input.substring(1, input.length - 1)\n } else {\n // Postgres case insensitive - all to lower\n output = input.toLowerCase()\n }\n return output\n}\n\ninterface MinimalFS {\n readdir(path: string): string[]\n unlink(path: string): void\n rmdir(path: string): void\n}\n\nexport function rmdirRecursive(fs: MinimalFS, path: string) {\n try {\n // If readdir succeeds it's a directory\n const entries = fs.readdir(path).filter((n: any) => n !== '.' && n !== '..')\n for (const name of entries) {\n const child = path + '/' + name\n // Recurse or unlink depending on whether child is a directory\n try {\n fs.readdir(child)\n rmdirRecursive(fs, child)\n } catch (e) {\n // readdir failed => not a directory\n fs.unlink(child)\n }\n }\n fs.rmdir(path)\n } catch (e) {\n // not a directory: try unlink\n try {\n fs.unlink(path)\n } catch (_) {\n /* ignore if already gone */\n }\n }\n}\n\nexport type IDBFS = Emscripten.FileSystemType & {\n quit: () => void\n dbs: Record<string, IDBDatabase>\n}\n\nexport type FS = typeof FS & {\n filesystems: {\n MEMFS: Emscripten.FileSystemType\n NODEFS: Emscripten.FileSystemType\n IDBFS: IDBFS\n }\n quit: () => void\n}\n","import type {\n Extension,\n ExtensionSetupResult,\n PGliteInterface,\n} from '@electric-sql/pglite'\n\nimport { pglUtils } from '@electric-sql/pglite-utils'\n\nconst setup = async (_pg: PGliteInterface, emscriptenOpts: any) => {\n emscriptenOpts.PGLITE_ENV.POSTGIS_GDAL_ENABLED_DRIVERS = 'ENABLE_ALL'\n emscriptenOpts.PGLITE_ENV.POSTGIS_ENABLE_OUTDB_RASTERS = 1\n emscriptenOpts.PGLITE_ENV.PROJ_DATA = `${pglUtils.WASM_PREFIX}/share/proj`\n\n return {\n emscriptenOpts,\n bundlePath: new URL('../release/postgis.tar.gz', import.meta.url),\n } satisfies ExtensionSetupResult\n}\n\nexport const postgis = {\n name: 'postgis',\n setup,\n} satisfies Extension\n"],"mappings":"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","names":["utils_exports","__export","IN_NODE","WASM_PREFIX","getFsBundle","instantiateWasm","pgliteProc","rmdirRecursive","startArtifactDownload","toPostgresName","uuid","isElectronWebContext","type","artifactDownloadPromises","url","cachedWasmModules","imports","moduleSource","moduleUrl","mod","buffer","newModule","instance","response","fsBundleUrl","bytes","i","hexValues","byte","input","output","fs","path","entries","n","name","child","setup","_pg","emscriptenOpts","p","postgis"]}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electric-sql/pglite-postgis",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "description": "PostGIS extension for PGlite",
5
5
  "author": "Electric DB Limited",
6
6
  "homepage": "https://pglite.dev",
@@ -47,11 +47,11 @@
47
47
  "@arethetypeswrong/cli": "^0.18.1",
48
48
  "@types/node": "^20.16.11",
49
49
  "vitest": "^2.1.2",
50
- "@electric-sql/pglite": "0.5.13",
51
- "@electric-sql/pglite-utils": "0.0.4"
50
+ "@electric-sql/pglite": "0.5.15",
51
+ "@electric-sql/pglite-utils": "0.0.6"
52
52
  },
53
53
  "peerDependencies": {
54
- "@electric-sql/pglite": "0.5.13"
54
+ "@electric-sql/pglite": "0.5.15"
55
55
  },
56
56
  "scripts": {
57
57
  "build": "tsup && tsx scripts/bundle-wasm.ts",