@formant/data-sdk 1.80.8 → 1.80.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"PcdLoaderWorker-eaac0b31.js","sources":["../src/connector/common/duration.ts","../src/connector/common/fork.ts","../src/connector/data/StoreCache.ts","../node_modules/lzfjs/lzf.js","../src/connector/data/range.ts","../src/connector/data/pcd.ts","../src/connector/data/PcdLoaderWorker.ts"],"sourcesContent":["const millisecond = 1;\nconst second = 1000;\nconst minute = 60 * second;\nconst hour = 60 * minute;\nconst day = 24 * hour;\nconst week = 7 * day;\nconst month = 30 * day;\nconst year = 365 * day;\n\nexport const duration = {\n millisecond,\n second,\n minute,\n hour,\n day,\n week,\n month,\n year,\n} as const;\n","/**\n * Used to fire-and-forget a promise.\n * This is useful as a function wrapper to suppress floating promise warnings.\n */\nexport function fork<T>(_: Promise<T>): void {\n return undefined;\n}\n","import { duration } from \"../common/duration\";\nimport { fork } from \"../common/fork\";\n\ninterface ICacheEntryMetadata<Value> {\n generating: boolean;\n expiration: Date;\n lastValue?: Value;\n}\n\ntype CacheKey = string;\n\nexport class StoreCache<Key, Value> {\n private entries = new Map<CacheKey, Value>();\n private metadata = new Map<CacheKey, ICacheEntryMetadata<Value>>();\n private capacity!: number;\n private timeout!: number;\n\n constructor({\n capacity,\n timeout,\n }: { capacity?: number; timeout?: number } = {}) {\n this.capacity = capacity || 10000;\n this.timeout = timeout || duration.minute;\n }\n\n public get(key: Key, generator?: () => Promise<Value>): Value | undefined {\n const cacheKey = this.keyToCacheKey(key);\n const entry = this.entries.get(cacheKey);\n const metadata = this.metadata.get(cacheKey);\n\n if (\n (entry === undefined ||\n (metadata && metadata?.expiration.getTime() < Date.now())) &&\n !metadata?.generating &&\n generator\n ) {\n this.generate(key, generator());\n }\n\n if (entry === undefined && metadata && metadata.lastValue !== undefined) {\n return metadata.lastValue;\n }\n\n return entry;\n }\n\n public set(key: Key, value: Value) {\n const cacheKey = this.keyToCacheKey(key);\n this.metadata.set(cacheKey, {\n generating: false,\n expiration: new Date(Date.now() + this.timeout),\n lastValue: value,\n });\n this.entries.set(cacheKey, value);\n\n if (this.metadata.size > this.capacity) {\n this.deleteOldestEntry();\n }\n }\n\n public clear() {\n this.entries.clear();\n [...this.metadata.values()].forEach((value) => (value.generating = false));\n }\n\n public clearKey(key: string): void {\n this.metadata.delete(key);\n this.entries.delete(key);\n }\n\n private keyToCacheKey(key: Key): CacheKey {\n return JSON.stringify(key);\n }\n\n private deleteOldestEntry() {\n if (this.metadata.size < 1) {\n return;\n }\n const [key] = [...this.metadata.entries()].reduce(\n ([oldestKey, oldestEntry], [thisKey, entry]) =>\n entry.expiration.getTime() < oldestEntry.expiration.getTime()\n ? [thisKey, entry]\n : [oldestKey, oldestEntry]\n );\n this.clearKey(key);\n }\n\n private generate(key: Key, promise: Promise<Value>) {\n const cacheKey = this.keyToCacheKey(key);\n const existingMetadata = this.metadata.get(cacheKey) || {};\n this.metadata.set(cacheKey, {\n ...existingMetadata,\n generating: true,\n expiration: new Date(Date.now() + this.timeout),\n });\n setTimeout(() => {\n fork(\n promise.then((value) => {\n const metadata = this.metadata.get(cacheKey);\n const canceled = !metadata?.generating;\n if (!canceled) {\n this.set(key, value);\n }\n })\n );\n }, 0);\n }\n}\n","/**\r\n * LZF compression/decompression module. Ported from the C\r\n * implementation of liblzf, specfically lzf_c.c and lzf_d.c\r\n * @license BSD-2-Clause\r\n */\r\n\r\n \"use strict\";\r\n\r\n/**\r\n * Decompress a TypedArray (in browser) or Buffer (in node)\r\n * containing LZF compressed data.\r\n * @param {(ArrayBuffer|TypedArray|Buffer)} data - the data to be decompressed\r\n * @returns {(Uint8Array|Buffer)} - decompressed data\r\n */\r\nfunction decompress(data) {\r\n var input = new Uint8Array(data);\r\n var output = [];\r\n\r\n var ip = 0;\r\n var op = 0;\r\n\r\n do {\r\n var ctrl = input[ip++];\r\n\r\n if (ctrl < (1 << 5)) { /* literal run */\r\n ctrl++;\r\n\r\n if (ip + ctrl > input.length) {\r\n throw new Error('Invalid input'); \r\n }\r\n\r\n while (ctrl--) {\r\n output[op++] = input[ip++];\r\n }\r\n } else { /* back reference */\r\n var len = ctrl >> 5;\r\n var ref = op - ((ctrl & 0x1f) << 8) - 1;\r\n\r\n if (ip >= input.length) {\r\n throw new Error('Invalid input');\r\n }\r\n\r\n if (len == 7) {\r\n len += input[ip++];\r\n\r\n if (ip >= input.length) {\r\n throw new Error('Invalid input');\r\n }\r\n }\r\n\r\n ref -= input[ip++];\r\n\r\n if (ref < 0) {\r\n throw new Error('Invalid input');\r\n }\r\n\r\n len += 2;\r\n\r\n do {\r\n output[op++] = output[ref++];\r\n } while (--len);\r\n }\r\n } while (ip < input.length);\r\n\r\n // Return a Buffer if it exists (say in node), otherwise just\r\n // use a normal Uint8Array.\r\n if (typeof Buffer !== 'undefined') {\r\n return new Buffer(output);\r\n } else {\r\n var res = new Uint8Array(output.length);\r\n res.set(output);\r\n return res;\r\n }\r\n}\r\n\r\n/**\r\n * Compress a buffer containing some data\r\n * @param {(ArrayBuffer|TypedArray|Buffer)} data - the data to be compressed\r\n * @returns {(Uint8Array|Buffer)} - compressed data\r\n */\r\nfunction compress(data) {\r\n var HLOG = 16;\r\n var HSIZE = (1 << HLOG);\r\n var LZF_MAX_OFF = (1 << 13);\r\n var LZF_MAX_REF = ((1 << 8) + (1 << 3));\r\n var LZF_MAX_LIT = (1 << 5);\r\n\r\n function FRST(data, p) {\r\n return (((data[p]) << 8) | data[p+1]);\r\n }\r\n\r\n function NEXT(v, data, p) {\r\n return (((v) << 8) | data[p+2]);\r\n }\r\n\r\n function IDX(h) {\r\n return (((h * 0x1e35a7bd) >> (32 - HLOG - 8)) & (HSIZE - 1));\r\n }\r\n\r\n var input = new Uint8Array(data);\r\n var output = [];\r\n var htab = new Uint32Array(HSIZE);\r\n\r\n var in_end = input.length, ip = 0, hval = FRST(input, ip);\r\n var op = 1, lit = 0; /* start run */\r\n\r\n while (ip < in_end - 2) {\r\n hval = NEXT(hval, data, ip);\r\n var hslot = IDX(hval);\r\n var ref = htab[hslot];\r\n htab[hslot] = ip;\r\n\r\n var off;\r\n\r\n if (ref < ip /* the next test will actually take care of this, but this is faster */\r\n && (off = ip - ref - 1) < LZF_MAX_OFF\r\n && ref > 0\r\n && input[ref + 2] == input[ip + 2]\r\n && input[ref + 1] == input[ip + 1]\r\n && input[ref] == input[ip]\r\n ) {\r\n /* match found at *ref++ */\r\n var len = 2;\r\n var maxlen = in_end - ip - len;\r\n maxlen = maxlen > LZF_MAX_REF ? LZF_MAX_REF : maxlen;\r\n\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n if (lit == 0) {\r\n op -= 1; /* undo run if length is zero */\r\n }\r\n\r\n do {\r\n len++;\r\n }\r\n while (len < maxlen && input[ref + len] == input[ip + len]);\r\n\r\n len -= 2; /* len is now #octets - 1 */\r\n ip++;\r\n\r\n if (len < 7) {\r\n output[op++] = ((off >> 8) + (len << 5)) & 255;\r\n } else {\r\n output[op++] = ((off >> 8) + (7 << 5)) & 255;\r\n output[op++] = (len - 7) & 255;\r\n }\r\n\r\n output[op++] = off & 255;\r\n\r\n lit = 0; op++; /* start run */\r\n\r\n ip += len + 1;\r\n\r\n if (ip >= in_end - 2) {\r\n break;\r\n }\r\n\r\n --ip;\r\n --ip;\r\n hval = FRST(input, ip);\r\n\r\n hval = NEXT(hval, input, ip);\r\n htab[IDX(hval)] = ip++;\r\n\r\n hval = NEXT(hval, input, ip);\r\n htab[IDX(hval)] = ip++;\r\n } else {\r\n lit++;\r\n output[op++] = input[ip++];\r\n\r\n if (lit == LZF_MAX_LIT) {\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n lit = 0; op++; /* start run */\r\n }\r\n }\r\n }\r\n\r\n while (ip < in_end) {\r\n lit++;\r\n output[op++] = input[ip++];\r\n\r\n if (lit == LZF_MAX_LIT) {\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n lit = 0; op++; /* start run */\r\n }\r\n }\r\n\r\n if (lit != 0) {\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n }\r\n\r\n // Return a Buffer if it exists (say in node), otherwise just\r\n // use a normal Uint8Array.\r\n if (typeof Buffer !== 'undefined') {\r\n return new Buffer(output);\r\n } else {\r\n var res = new Uint8Array(output.length);\r\n res.set(output);\r\n return res;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n decompress: decompress,\r\n compress: compress\r\n};\r\n","export const range = (start: number, end: number) =>\n end <= start ? [] : new Array(end - start).fill(0).map((_, i) => i + start);\n","// @ts-ignore-next-line\nimport * as lzfjs from \"lzfjs\";\nimport { range } from \"./range\";\n\nexport type Field = \"x\" | \"y\" | \"z\" | \"rgb\" | \"rgba\" | \"intensity\";\nexport type Type = \"i\" | \"u\" | \"f\";\nexport type Data = \"ascii\" | \"binary\" | \"binary_compressed\";\n\nexport interface IPcdHeader {\n version: string;\n fields: Field[];\n size: number[];\n type: Type[];\n count: number[];\n height: number;\n width: number;\n points: number;\n data: Data;\n}\n\ninterface IOffsets {\n x?: number;\n y?: number;\n z?: number;\n rgb?: number;\n rgba?: number;\n intensity?: number;\n}\n\nexport interface IPcd {\n header: IPcdHeader;\n positions?: Float32Array;\n colors?: Float32Array;\n intensity?: Float32Array;\n}\n\nconst littleEndian = true;\n\nfunction base64ToArrayBuffer(b: string) {\n const binaryString = atob(b);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n}\n\nfunction extractHeader(buffer: ArrayBuffer): {\n header: string;\n body: ArrayBuffer;\n} {\n const chars = new Uint8Array(buffer);\n let header = \"\";\n\n let i = 0;\n for (\n ;\n i < chars.length && header.search(/[\\r\\n]DATA\\s(\\S*)\\s/i) === -1;\n i += 1\n ) {\n header += String.fromCharCode(chars[i]);\n }\n return {\n body: buffer.slice(i),\n header: header.replace(/#.*/gi, \"\"),\n };\n}\n\nfunction decompress(data: ArrayBuffer): ArrayBufferLike {\n const sizes = new Uint32Array(data, 0, 2);\n const compressedSize = sizes[0];\n if (compressedSize === 0) {\n return new ArrayBuffer(0);\n }\n return lzfjs.decompress(new Uint8Array(data, 8, compressedSize)).buffer;\n}\n\nfunction parseHeader(buffer: ArrayBuffer): {\n header: IPcdHeader;\n body: ArrayBuffer;\n} {\n const { header, body } = extractHeader(buffer);\n\n const versionMatch = /VERSION (.*)/i.exec(header);\n if (versionMatch === null) {\n throw new Error(`Missing version. Header ${header}`);\n }\n const version = versionMatch[1];\n\n const fieldsMatch = /FIELDS (.*)/i.exec(header);\n if (!fieldsMatch) {\n throw new Error(\"Missing fields\");\n }\n const fields = fieldsMatch[1].split(\" \") as Field[];\n\n const sizeMatch = /SIZE (.*)/i.exec(header);\n if (!sizeMatch) {\n throw new Error(\"Missing size\");\n }\n const size = sizeMatch[1].split(\" \").map((_) => parseInt(_, 10));\n\n const typeMatch = /TYPE (.*)/i.exec(header);\n if (!typeMatch) {\n throw new Error(\"Missing type\");\n }\n const type = typeMatch[1].split(\" \") as Type[];\n\n const countMatch = /COUNT (.*)/i.exec(header);\n let optionalCount: number[] | undefined;\n if (countMatch) {\n optionalCount = countMatch[1].split(\" \").map((_) => parseInt(_, 10));\n }\n const count = optionalCount || fields.map((_) => 1);\n\n const widthMatch = /WIDTH (.*)/i.exec(header);\n if (!widthMatch) {\n throw new Error(\"Missing width\");\n }\n const width = parseInt(widthMatch[1], 10);\n\n const heightMatch = /HEIGHT (.*)/i.exec(header);\n if (!heightMatch) {\n throw new Error(\"Missing height\");\n }\n const height = parseInt(heightMatch[1], 10);\n\n const pointsMatch = /POINTS (.*)/i.exec(header);\n let optionalPoints: number | undefined;\n if (pointsMatch) {\n optionalPoints = parseInt(pointsMatch[1], 10);\n }\n const points = optionalPoints || width * height;\n\n const dataMatch = /DATA (.*)/i.exec(header);\n if (!dataMatch) {\n throw new Error(\"Missing data\");\n }\n const data = dataMatch[1] as Data;\n\n return {\n body,\n header: {\n count,\n data,\n fields,\n height,\n points,\n size,\n type,\n version,\n width,\n },\n };\n}\n\nfunction calculateOffsets(header: IPcdHeader): {\n offsets: IOffsets;\n size: number;\n} {\n const empty: IOffsets = {};\n return header.fields.reduce(\n ({ offsets, size }, field, i) => {\n let newSize = size;\n if (field === \"x\") {\n offsets.x = newSize;\n }\n if (field === \"y\") {\n offsets.y = newSize;\n }\n if (field === \"z\") {\n offsets.z = newSize;\n }\n if (field === \"rgb\") {\n offsets.rgb = newSize;\n }\n if (field === \"rgba\") {\n offsets.rgba = newSize;\n }\n if (field === \"intensity\") {\n offsets.intensity = newSize;\n }\n if (header.data === \"ascii\") {\n newSize += 1;\n } else if (header.data === \"binary\") {\n newSize += header.size[i] * header.count[i];\n } else if (header.data === \"binary_compressed\") {\n newSize += header.size[i] * header.count[i] * header.points;\n }\n return {\n offsets,\n size: newSize,\n };\n },\n {\n offsets: empty,\n size: 0,\n }\n );\n}\n\nexport function parse(buffer: ArrayBuffer): IPcd {\n const { header, body } = parseHeader(buffer);\n\n const { offsets, size } = calculateOffsets(header);\n\n let positions: Float32Array | undefined;\n if (\n offsets.x !== undefined &&\n offsets.y !== undefined &&\n offsets.z !== undefined\n ) {\n positions = new Float32Array(header.points * 3);\n }\n\n let colors: Float32Array | undefined;\n if (offsets.rgb !== undefined || offsets.rgba !== undefined) {\n colors = new Float32Array(header.points * 4);\n }\n let intensity: Float32Array | undefined;\n if (offsets.intensity !== undefined) {\n intensity = new Float32Array(header.points);\n }\n\n if (header.data === \"ascii\") {\n const dataString: string = String.fromCharCode(...new Uint8Array(body));\n\n const lines = dataString.split(\"\\n\");\n lines.forEach((line, i) => {\n const column = line.split(\" \");\n\n if (positions !== undefined) {\n positions[i * 3 + 0] = parseFloat(column[offsets.x || 0]);\n positions[i * 3 + 1] = parseFloat(column[offsets.y || 0]);\n positions[i * 3 + 2] = parseFloat(column[offsets.z || 0]);\n }\n\n if (colors !== undefined) {\n const intArray = new Int32Array([\n parseInt(column[offsets.rgb || offsets.rgba || 0], 10),\n ]);\n const view = new DataView(intArray.buffer, 0);\n colors[i * 3 + 0] = view.getUint8(2) / 255.0;\n colors[i * 3 + 1] = view.getUint8(1) / 255.0;\n colors[i * 3 + 2] = view.getUint8(0) / 255.0;\n }\n\n if (intensity !== undefined) {\n intensity[i] = parseFloat(column[offsets.intensity || 0]);\n }\n });\n } else if (header.data === \"binary\") {\n const view = new DataView(body);\n\n range(0, header.points).forEach((i) => {\n const row = size * i;\n\n if (positions !== undefined) {\n positions[i * 3 + 0] = view.getFloat32(\n row + (offsets.x || 0),\n littleEndian\n );\n positions[i * 3 + 1] = view.getFloat32(\n row + (offsets.y || 0),\n littleEndian\n );\n positions[i * 3 + 2] = view.getFloat32(\n row + (offsets.z || 0),\n littleEndian\n );\n }\n\n if (colors !== undefined) {\n const offset = row + (offsets.rgb || offsets.rgba || 0);\n if (offset + 2 <= view.byteLength) {\n colors[i * 4 + 0] = view.getUint8(offset + 2) / 255.0;\n colors[i * 4 + 1] = view.getUint8(offset + 1) / 255.0;\n colors[i * 4 + 2] = view.getUint8(offset + 0) / 255.0;\n colors[i * 4 + 3] = 1.0;\n }\n }\n\n if (intensity !== undefined) {\n intensity[i] = view.getFloat32(\n row + (offsets.intensity || 0),\n littleEndian\n );\n }\n });\n } else if (header.data === \"binary_compressed\") {\n const uncompressed = decompress(body);\n const view = new DataView(uncompressed);\n\n range(0, header.points).forEach((i) => {\n if (positions !== undefined) {\n positions[i * 3 + 0] = view.getFloat32(\n (offsets.x || 0) + i * 4,\n littleEndian\n );\n positions[i * 3 + 1] = view.getFloat32(\n (offsets.y || 0) + i * 4,\n littleEndian\n );\n positions[i * 3 + 2] = view.getFloat32(\n (offsets.z || 0) + i * 4,\n littleEndian\n );\n }\n\n if (colors !== undefined) {\n const offset = (offsets.rgb || offsets.rgba || 0) + i * 4;\n if (offset + 2 <= view.byteLength) {\n colors[i * 4 + 0] = view.getUint8(offset + 2) / 255.0;\n colors[i * 4 + 1] = view.getUint8(offset + 1) / 255.0;\n colors[i * 4 + 2] = view.getUint8(offset + 0) / 255.0;\n colors[i * 4 + 3] = 1.0;\n }\n }\n\n if (intensity !== undefined) {\n intensity[i] = view.getFloat32(\n (offsets.intensity || 0) + i * 4,\n littleEndian\n );\n }\n });\n }\n\n return {\n colors,\n header,\n intensity,\n positions,\n };\n}\n\nexport async function loadFromUrl(path: string): Promise<IPcd> {\n const response = await fetch(path, { mode: \"cors\" });\n return parse(await response.arrayBuffer());\n}\n\nexport function loadFromBase64(data: string): IPcd {\n return parse(base64ToArrayBuffer(data));\n}\n","import { duration } from \"../common/duration\";\nimport { StoreCache } from \"./StoreCache\";\nimport { IPcd, loadFromBase64, parse } from \"./pcd\";\n\nconst cache = new StoreCache<string, IPcd>({\n capacity: 1000,\n timeout: 1 * duration.minute,\n});\n\nonmessage = async (\n event: MessageEvent<{ id?: number; url?: string; pointCloud: string }>\n) => {\n const { url, id, pointCloud } = event.data;\n\n if (url) {\n // Check if the point cloud for the given URL is already in the cache\n const cached = cache.get(url, async () => {\n // Fetch the point cloud and store it in the cache\n const pcd = parse(\n await fetch(url, { mode: \"cors\" }).then((r) => r.arrayBuffer())\n );\n return pcd;\n });\n\n if (cached) {\n postMessage({ url, pcd: cached });\n }\n }\n\n if (id && pointCloud) {\n // Process the base64-encoded point cloud\n const pcd = loadFromBase64(pointCloud);\n postMessage({ id, pcd });\n }\n};\n"],"names":["duration","fork","_","StoreCache","capacity","timeout","__publicField","key","generator","cacheKey","entry","metadata","value","oldestKey","oldestEntry","thisKey","promise","existingMetadata","decompress","data","input","output","ip","op","ctrl","len","ref","res","compress","HLOG","HSIZE","LZF_MAX_OFF","LZF_MAX_REF","LZF_MAX_LIT","FRST","p","NEXT","IDX","h","htab","in_end","hval","lit","hslot","off","maxlen","lzf","range","start","end","i","littleEndian","base64ToArrayBuffer","b","binaryString","bytes","extractHeader","buffer","chars","header","compressedSize","lzfjs.decompress","parseHeader","body","versionMatch","version","fieldsMatch","fields","sizeMatch","size","typeMatch","type","countMatch","optionalCount","count","widthMatch","width","heightMatch","height","pointsMatch","optionalPoints","points","dataMatch","calculateOffsets","empty","offsets","field","newSize","parse","positions","colors","intensity","line","column","intArray","view","row","offset","uncompressed","loadFromBase64","cache","event","url","id","pointCloud","cached","pcd"],"mappings":"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","x_google_ignoreList":[3]}
1
+ {"version":3,"file":"PcdLoaderWorker-6fe0da29.js","sources":["../src/connector/common/duration.ts","../src/connector/common/fork.ts","../src/connector/data/StoreCache.ts","../node_modules/lzfjs/lzf.js","../src/connector/data/range.ts","../src/connector/data/pcd.ts","../src/connector/data/PcdLoaderWorker.ts"],"sourcesContent":["const millisecond = 1;\nconst second = 1000;\nconst minute = 60 * second;\nconst hour = 60 * minute;\nconst day = 24 * hour;\nconst week = 7 * day;\nconst month = 30 * day;\nconst year = 365 * day;\n\nexport const duration = {\n millisecond,\n second,\n minute,\n hour,\n day,\n week,\n month,\n year,\n} as const;\n","/**\n * Used to fire-and-forget a promise.\n * This is useful as a function wrapper to suppress floating promise warnings.\n */\nexport function fork<T>(_: Promise<T>): void {\n return undefined;\n}\n","import { duration } from \"../common/duration\";\nimport { fork } from \"../common/fork\";\n\ninterface ICacheEntryMetadata<Value> {\n generating: boolean;\n expiration: Date;\n lastValue?: Value;\n}\n\ntype CacheKey = string;\n\nexport class StoreCache<Key, Value> {\n private entries = new Map<CacheKey, Value>();\n private metadata = new Map<CacheKey, ICacheEntryMetadata<Value>>();\n private capacity!: number;\n private timeout!: number;\n\n constructor({\n capacity,\n timeout,\n }: { capacity?: number; timeout?: number } = {}) {\n this.capacity = capacity || 10000;\n this.timeout = timeout || duration.minute;\n }\n\n public get(key: Key, generator?: () => Promise<Value>): Value | undefined {\n const cacheKey = this.keyToCacheKey(key);\n const entry = this.entries.get(cacheKey);\n const metadata = this.metadata.get(cacheKey);\n\n if (\n (entry === undefined ||\n (metadata && metadata?.expiration.getTime() < Date.now())) &&\n !metadata?.generating &&\n generator\n ) {\n this.generate(key, generator());\n }\n\n if (entry === undefined && metadata && metadata.lastValue !== undefined) {\n return metadata.lastValue;\n }\n\n return entry;\n }\n\n public set(key: Key, value: Value) {\n const cacheKey = this.keyToCacheKey(key);\n this.metadata.set(cacheKey, {\n generating: false,\n expiration: new Date(Date.now() + this.timeout),\n lastValue: value,\n });\n this.entries.set(cacheKey, value);\n\n if (this.metadata.size > this.capacity) {\n this.deleteOldestEntry();\n }\n }\n\n public clear() {\n this.entries.clear();\n [...this.metadata.values()].forEach((value) => (value.generating = false));\n }\n\n public clearKey(key: string): void {\n this.metadata.delete(key);\n this.entries.delete(key);\n }\n\n private keyToCacheKey(key: Key): CacheKey {\n return JSON.stringify(key);\n }\n\n private deleteOldestEntry() {\n if (this.metadata.size < 1) {\n return;\n }\n const [key] = [...this.metadata.entries()].reduce(\n ([oldestKey, oldestEntry], [thisKey, entry]) =>\n entry.expiration.getTime() < oldestEntry.expiration.getTime()\n ? [thisKey, entry]\n : [oldestKey, oldestEntry]\n );\n this.clearKey(key);\n }\n\n private generate(key: Key, promise: Promise<Value>) {\n const cacheKey = this.keyToCacheKey(key);\n const existingMetadata = this.metadata.get(cacheKey) || {};\n this.metadata.set(cacheKey, {\n ...existingMetadata,\n generating: true,\n expiration: new Date(Date.now() + this.timeout),\n });\n setTimeout(() => {\n fork(\n promise.then((value) => {\n const metadata = this.metadata.get(cacheKey);\n const canceled = !metadata?.generating;\n if (!canceled) {\n this.set(key, value);\n }\n })\n );\n }, 0);\n }\n}\n","/**\r\n * LZF compression/decompression module. Ported from the C\r\n * implementation of liblzf, specfically lzf_c.c and lzf_d.c\r\n * @license BSD-2-Clause\r\n */\r\n\r\n \"use strict\";\r\n\r\n/**\r\n * Decompress a TypedArray (in browser) or Buffer (in node)\r\n * containing LZF compressed data.\r\n * @param {(ArrayBuffer|TypedArray|Buffer)} data - the data to be decompressed\r\n * @returns {(Uint8Array|Buffer)} - decompressed data\r\n */\r\nfunction decompress(data) {\r\n var input = new Uint8Array(data);\r\n var output = [];\r\n\r\n var ip = 0;\r\n var op = 0;\r\n\r\n do {\r\n var ctrl = input[ip++];\r\n\r\n if (ctrl < (1 << 5)) { /* literal run */\r\n ctrl++;\r\n\r\n if (ip + ctrl > input.length) {\r\n throw new Error('Invalid input'); \r\n }\r\n\r\n while (ctrl--) {\r\n output[op++] = input[ip++];\r\n }\r\n } else { /* back reference */\r\n var len = ctrl >> 5;\r\n var ref = op - ((ctrl & 0x1f) << 8) - 1;\r\n\r\n if (ip >= input.length) {\r\n throw new Error('Invalid input');\r\n }\r\n\r\n if (len == 7) {\r\n len += input[ip++];\r\n\r\n if (ip >= input.length) {\r\n throw new Error('Invalid input');\r\n }\r\n }\r\n\r\n ref -= input[ip++];\r\n\r\n if (ref < 0) {\r\n throw new Error('Invalid input');\r\n }\r\n\r\n len += 2;\r\n\r\n do {\r\n output[op++] = output[ref++];\r\n } while (--len);\r\n }\r\n } while (ip < input.length);\r\n\r\n // Return a Buffer if it exists (say in node), otherwise just\r\n // use a normal Uint8Array.\r\n if (typeof Buffer !== 'undefined') {\r\n return new Buffer(output);\r\n } else {\r\n var res = new Uint8Array(output.length);\r\n res.set(output);\r\n return res;\r\n }\r\n}\r\n\r\n/**\r\n * Compress a buffer containing some data\r\n * @param {(ArrayBuffer|TypedArray|Buffer)} data - the data to be compressed\r\n * @returns {(Uint8Array|Buffer)} - compressed data\r\n */\r\nfunction compress(data) {\r\n var HLOG = 16;\r\n var HSIZE = (1 << HLOG);\r\n var LZF_MAX_OFF = (1 << 13);\r\n var LZF_MAX_REF = ((1 << 8) + (1 << 3));\r\n var LZF_MAX_LIT = (1 << 5);\r\n\r\n function FRST(data, p) {\r\n return (((data[p]) << 8) | data[p+1]);\r\n }\r\n\r\n function NEXT(v, data, p) {\r\n return (((v) << 8) | data[p+2]);\r\n }\r\n\r\n function IDX(h) {\r\n return (((h * 0x1e35a7bd) >> (32 - HLOG - 8)) & (HSIZE - 1));\r\n }\r\n\r\n var input = new Uint8Array(data);\r\n var output = [];\r\n var htab = new Uint32Array(HSIZE);\r\n\r\n var in_end = input.length, ip = 0, hval = FRST(input, ip);\r\n var op = 1, lit = 0; /* start run */\r\n\r\n while (ip < in_end - 2) {\r\n hval = NEXT(hval, data, ip);\r\n var hslot = IDX(hval);\r\n var ref = htab[hslot];\r\n htab[hslot] = ip;\r\n\r\n var off;\r\n\r\n if (ref < ip /* the next test will actually take care of this, but this is faster */\r\n && (off = ip - ref - 1) < LZF_MAX_OFF\r\n && ref > 0\r\n && input[ref + 2] == input[ip + 2]\r\n && input[ref + 1] == input[ip + 1]\r\n && input[ref] == input[ip]\r\n ) {\r\n /* match found at *ref++ */\r\n var len = 2;\r\n var maxlen = in_end - ip - len;\r\n maxlen = maxlen > LZF_MAX_REF ? LZF_MAX_REF : maxlen;\r\n\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n if (lit == 0) {\r\n op -= 1; /* undo run if length is zero */\r\n }\r\n\r\n do {\r\n len++;\r\n }\r\n while (len < maxlen && input[ref + len] == input[ip + len]);\r\n\r\n len -= 2; /* len is now #octets - 1 */\r\n ip++;\r\n\r\n if (len < 7) {\r\n output[op++] = ((off >> 8) + (len << 5)) & 255;\r\n } else {\r\n output[op++] = ((off >> 8) + (7 << 5)) & 255;\r\n output[op++] = (len - 7) & 255;\r\n }\r\n\r\n output[op++] = off & 255;\r\n\r\n lit = 0; op++; /* start run */\r\n\r\n ip += len + 1;\r\n\r\n if (ip >= in_end - 2) {\r\n break;\r\n }\r\n\r\n --ip;\r\n --ip;\r\n hval = FRST(input, ip);\r\n\r\n hval = NEXT(hval, input, ip);\r\n htab[IDX(hval)] = ip++;\r\n\r\n hval = NEXT(hval, input, ip);\r\n htab[IDX(hval)] = ip++;\r\n } else {\r\n lit++;\r\n output[op++] = input[ip++];\r\n\r\n if (lit == LZF_MAX_LIT) {\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n lit = 0; op++; /* start run */\r\n }\r\n }\r\n }\r\n\r\n while (ip < in_end) {\r\n lit++;\r\n output[op++] = input[ip++];\r\n\r\n if (lit == LZF_MAX_LIT) {\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n lit = 0; op++; /* start run */\r\n }\r\n }\r\n\r\n if (lit != 0) {\r\n output[op - lit - 1] = (lit - 1) & 255; /* stop run */\r\n }\r\n\r\n // Return a Buffer if it exists (say in node), otherwise just\r\n // use a normal Uint8Array.\r\n if (typeof Buffer !== 'undefined') {\r\n return new Buffer(output);\r\n } else {\r\n var res = new Uint8Array(output.length);\r\n res.set(output);\r\n return res;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n decompress: decompress,\r\n compress: compress\r\n};\r\n","export const range = (start: number, end: number) =>\n end <= start ? [] : new Array(end - start).fill(0).map((_, i) => i + start);\n","// @ts-ignore-next-line\nimport * as lzfjs from \"lzfjs\";\nimport { range } from \"./range\";\n\nexport type Field = \"x\" | \"y\" | \"z\" | \"rgb\" | \"rgba\" | \"intensity\";\nexport type Type = \"i\" | \"u\" | \"f\";\nexport type Data = \"ascii\" | \"binary\" | \"binary_compressed\";\n\nexport interface IPcdHeader {\n version: string;\n fields: Field[];\n size: number[];\n type: Type[];\n count: number[];\n height: number;\n width: number;\n points: number;\n data: Data;\n}\n\ninterface IOffsets {\n x?: number;\n y?: number;\n z?: number;\n rgb?: number;\n rgba?: number;\n intensity?: number;\n}\n\nexport interface IPcd {\n header: IPcdHeader;\n positions?: Float32Array;\n colors?: Float32Array;\n intensity?: Float32Array;\n}\n\nconst littleEndian = true;\n\nfunction base64ToArrayBuffer(b: string) {\n const binaryString = atob(b);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n}\n\nfunction extractHeader(buffer: ArrayBuffer): {\n header: string;\n body: ArrayBuffer;\n} {\n const chars = new Uint8Array(buffer);\n let header = \"\";\n\n let i = 0;\n for (\n ;\n i < chars.length && header.search(/[\\r\\n]DATA\\s(\\S*)\\s/i) === -1;\n i += 1\n ) {\n header += String.fromCharCode(chars[i]);\n }\n return {\n body: buffer.slice(i),\n header: header.replace(/#.*/gi, \"\"),\n };\n}\n\nfunction decompress(data: ArrayBuffer): ArrayBufferLike {\n const sizes = new Uint32Array(data, 0, 2);\n const compressedSize = sizes[0];\n if (compressedSize === 0) {\n return new ArrayBuffer(0);\n }\n return lzfjs.decompress(new Uint8Array(data, 8, compressedSize)).buffer;\n}\n\nfunction parseHeader(buffer: ArrayBuffer): {\n header: IPcdHeader;\n body: ArrayBuffer;\n} {\n const { header, body } = extractHeader(buffer);\n\n const versionMatch = /VERSION (.*)/i.exec(header);\n if (versionMatch === null) {\n throw new Error(`Missing version. Header ${header}`);\n }\n const version = versionMatch[1];\n\n const fieldsMatch = /FIELDS (.*)/i.exec(header);\n if (!fieldsMatch) {\n throw new Error(\"Missing fields\");\n }\n const fields = fieldsMatch[1].split(\" \") as Field[];\n\n const sizeMatch = /SIZE (.*)/i.exec(header);\n if (!sizeMatch) {\n throw new Error(\"Missing size\");\n }\n const size = sizeMatch[1].split(\" \").map((_) => parseInt(_, 10));\n\n const typeMatch = /TYPE (.*)/i.exec(header);\n if (!typeMatch) {\n throw new Error(\"Missing type\");\n }\n const type = typeMatch[1].split(\" \") as Type[];\n\n const countMatch = /COUNT (.*)/i.exec(header);\n let optionalCount: number[] | undefined;\n if (countMatch) {\n optionalCount = countMatch[1].split(\" \").map((_) => parseInt(_, 10));\n }\n const count = optionalCount || fields.map((_) => 1);\n\n const widthMatch = /WIDTH (.*)/i.exec(header);\n if (!widthMatch) {\n throw new Error(\"Missing width\");\n }\n const width = parseInt(widthMatch[1], 10);\n\n const heightMatch = /HEIGHT (.*)/i.exec(header);\n if (!heightMatch) {\n throw new Error(\"Missing height\");\n }\n const height = parseInt(heightMatch[1], 10);\n\n const pointsMatch = /POINTS (.*)/i.exec(header);\n let optionalPoints: number | undefined;\n if (pointsMatch) {\n optionalPoints = parseInt(pointsMatch[1], 10);\n }\n const points = optionalPoints || width * height;\n\n const dataMatch = /DATA (.*)/i.exec(header);\n if (!dataMatch) {\n throw new Error(\"Missing data\");\n }\n const data = dataMatch[1] as Data;\n\n return {\n body,\n header: {\n count,\n data,\n fields,\n height,\n points,\n size,\n type,\n version,\n width,\n },\n };\n}\n\nfunction calculateOffsets(header: IPcdHeader): {\n offsets: IOffsets;\n size: number;\n} {\n const empty: IOffsets = {};\n return header.fields.reduce(\n ({ offsets, size }, field, i) => {\n let newSize = size;\n if (field === \"x\") {\n offsets.x = newSize;\n }\n if (field === \"y\") {\n offsets.y = newSize;\n }\n if (field === \"z\") {\n offsets.z = newSize;\n }\n if (field === \"rgb\") {\n offsets.rgb = newSize;\n }\n if (field === \"rgba\") {\n offsets.rgba = newSize;\n }\n if (field === \"intensity\") {\n offsets.intensity = newSize;\n }\n if (header.data === \"ascii\") {\n newSize += 1;\n } else if (header.data === \"binary\") {\n newSize += header.size[i] * header.count[i];\n } else if (header.data === \"binary_compressed\") {\n newSize += header.size[i] * header.count[i] * header.points;\n }\n return {\n offsets,\n size: newSize,\n };\n },\n {\n offsets: empty,\n size: 0,\n }\n );\n}\n\nexport function parse(buffer: ArrayBuffer): IPcd {\n const { header, body } = parseHeader(buffer);\n\n const { offsets, size } = calculateOffsets(header);\n\n let positions: Float32Array | undefined;\n if (\n offsets.x !== undefined &&\n offsets.y !== undefined &&\n offsets.z !== undefined\n ) {\n positions = new Float32Array(header.points * 3);\n }\n\n let colors: Float32Array | undefined;\n if (offsets.rgb !== undefined || offsets.rgba !== undefined) {\n colors = new Float32Array(header.points * 4);\n }\n let intensity: Float32Array | undefined;\n if (offsets.intensity !== undefined) {\n intensity = new Float32Array(header.points);\n }\n\n if (header.data === \"ascii\") {\n const dataString: string = String.fromCharCode(...new Uint8Array(body));\n\n const lines = dataString.split(\"\\n\");\n lines.forEach((line, i) => {\n const column = line.split(\" \");\n\n if (positions !== undefined) {\n positions[i * 3 + 0] = parseFloat(column[offsets.x || 0]);\n positions[i * 3 + 1] = parseFloat(column[offsets.y || 0]);\n positions[i * 3 + 2] = parseFloat(column[offsets.z || 0]);\n }\n\n if (colors !== undefined) {\n const intArray = new Int32Array([\n parseInt(column[offsets.rgb || offsets.rgba || 0], 10),\n ]);\n const view = new DataView(intArray.buffer, 0);\n colors[i * 3 + 0] = view.getUint8(2) / 255.0;\n colors[i * 3 + 1] = view.getUint8(1) / 255.0;\n colors[i * 3 + 2] = view.getUint8(0) / 255.0;\n }\n\n if (intensity !== undefined) {\n intensity[i] = parseFloat(column[offsets.intensity || 0]);\n }\n });\n } else if (header.data === \"binary\") {\n const view = new DataView(body);\n\n range(0, header.points).forEach((i) => {\n const row = size * i;\n\n if (positions !== undefined) {\n positions[i * 3 + 0] = view.getFloat32(\n row + (offsets.x || 0),\n littleEndian\n );\n positions[i * 3 + 1] = view.getFloat32(\n row + (offsets.y || 0),\n littleEndian\n );\n positions[i * 3 + 2] = view.getFloat32(\n row + (offsets.z || 0),\n littleEndian\n );\n }\n\n if (colors !== undefined) {\n const offset = row + (offsets.rgb || offsets.rgba || 0);\n if (offset + 2 <= view.byteLength) {\n colors[i * 4 + 0] = view.getUint8(offset + 2) / 255.0;\n colors[i * 4 + 1] = view.getUint8(offset + 1) / 255.0;\n colors[i * 4 + 2] = view.getUint8(offset + 0) / 255.0;\n colors[i * 4 + 3] = 1.0;\n }\n }\n\n if (intensity !== undefined) {\n intensity[i] = view.getFloat32(\n row + (offsets.intensity || 0),\n littleEndian\n );\n }\n });\n } else if (header.data === \"binary_compressed\") {\n const uncompressed = decompress(body);\n const view = new DataView(uncompressed);\n\n range(0, header.points).forEach((i) => {\n if (positions !== undefined) {\n positions[i * 3 + 0] = view.getFloat32(\n (offsets.x || 0) + i * 4,\n littleEndian\n );\n positions[i * 3 + 1] = view.getFloat32(\n (offsets.y || 0) + i * 4,\n littleEndian\n );\n positions[i * 3 + 2] = view.getFloat32(\n (offsets.z || 0) + i * 4,\n littleEndian\n );\n }\n\n if (colors !== undefined) {\n const offset = (offsets.rgb || offsets.rgba || 0) + i * 4;\n if (offset + 2 <= view.byteLength) {\n colors[i * 4 + 0] = view.getUint8(offset + 2) / 255.0;\n colors[i * 4 + 1] = view.getUint8(offset + 1) / 255.0;\n colors[i * 4 + 2] = view.getUint8(offset + 0) / 255.0;\n colors[i * 4 + 3] = 1.0;\n }\n }\n\n if (intensity !== undefined) {\n intensity[i] = view.getFloat32(\n (offsets.intensity || 0) + i * 4,\n littleEndian\n );\n }\n });\n }\n\n return {\n colors,\n header,\n intensity,\n positions,\n };\n}\n\nexport async function loadFromUrl(path: string): Promise<IPcd> {\n const response = await fetch(path, { mode: \"cors\" });\n return parse(await response.arrayBuffer());\n}\n\nexport function loadFromBase64(data: string): IPcd {\n return parse(base64ToArrayBuffer(data));\n}\n","import { duration } from \"../common/duration\";\nimport { StoreCache } from \"./StoreCache\";\nimport { IPcd, loadFromBase64, parse } from \"./pcd\";\n\nconst cache = new StoreCache<string, IPcd>({\n capacity: 1000,\n timeout: 1 * duration.minute,\n});\n\nonmessage = async (\n event: MessageEvent<{ id?: number; url?: string; pointCloud: string }>\n) => {\n const { url, id, pointCloud } = event.data;\n\n if (url) {\n // Check if the point cloud for the given URL is already in the cache\n const cached = cache.get(url, async () => {\n // Fetch the point cloud and store it in the cache\n const pcd = parse(\n await fetch(url, { mode: \"cors\" }).then((r) => r.arrayBuffer())\n );\n return pcd;\n });\n\n if (cached) {\n postMessage({ url, pcd: cached });\n }\n }\n\n if (id && pointCloud) {\n // Process the base64-encoded point cloud\n const pcd = loadFromBase64(pointCloud);\n postMessage({ id, pcd });\n }\n};\n"],"names":["duration","fork","_","StoreCache","capacity","timeout","__publicField","key","generator","cacheKey","entry","metadata","value","oldestKey","oldestEntry","thisKey","promise","existingMetadata","decompress","data","input","output","ip","op","ctrl","len","ref","res","compress","HLOG","HSIZE","LZF_MAX_OFF","LZF_MAX_REF","LZF_MAX_LIT","FRST","p","NEXT","IDX","h","htab","in_end","hval","lit","hslot","off","maxlen","lzf","range","start","end","i","littleEndian","base64ToArrayBuffer","b","binaryString","bytes","extractHeader","buffer","chars","header","compressedSize","lzfjs.decompress","parseHeader","body","versionMatch","version","fieldsMatch","fields","sizeMatch","size","typeMatch","type","countMatch","optionalCount","count","widthMatch","width","heightMatch","height","pointsMatch","optionalPoints","points","dataMatch","calculateOffsets","empty","offsets","field","newSize","parse","positions","colors","intensity","line","column","intArray","view","row","offset","uncompressed","loadFromBase64","cache","event","url","id","pointCloud","cached","pcd"],"mappings":"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","x_google_ignoreList":[3]}
@@ -1 +1 @@
1
- {"version":3,"file":"data-loader.worker-a6fd974d.js","sources":["../node_modules/fast-json-stable-stringify/index.js","../src/connector/common/toStringSafe.ts","../src/connector/common/errorToObject.ts","../src/connector/common/errorToString.ts","../src/connector/data/loader/data-loader.worker.ts"],"sourcesContent":["'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","import stringify from \"fast-json-stable-stringify\";\n\n/**\n * Safely stringify input.\n * Similar to `JSON.stringify` but\n * doesn't throw an error if input includes circular properties.\n *\n * Warning: output is not guaranteed to be a valid JSON string.\n */\nexport function toStringSafe(input: unknown): string {\n return stringify(input, { cycles: true });\n}\n","import { toStringSafe } from \"./toStringSafe\";\n\n/**\n * Convert an error object to plain javascript object, including any custom properties.\n */\nexport function errorToObject(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any\n) {\n if (!error.stack) {\n return { message: toStringSafe(error) };\n }\n\n const { name, message, stack, ...meta } = error;\n\n return {\n name,\n message: message !== undefined ? message : toStringSafe(error),\n stack,\n meta: meta && Object.keys(meta).length === 0 ? undefined : meta,\n };\n}\n","import { errorToObject } from \"./errorToObject\";\nimport { toStringSafe } from \"./toStringSafe\";\n\n/**\n * Serialize an error object to a string, including any custom properties.\n */\nexport function errorToString(error: unknown): string {\n const { message, stack, meta } = errorToObject(error);\n\n return `${stack || message || \"\"}${\n meta && Object.keys(meta).length > 0 ? ` -- ${toStringSafe(meta)}` : \"\"\n }`;\n}\n","import { errorToString } from \"../../common/errorToString\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst context: Worker = self as any;\nconst previewLength = 1000;\n\naddEventListener(\"message\", async (event) => {\n try {\n const url: string = event.data;\n\n try {\n const response = await fetch(url, { mode: \"cors\" });\n const payload = await response.text();\n\n context.postMessage({\n json: JSON.parse(payload),\n preview: payload.substring(0, previewLength),\n length: payload.length,\n url,\n });\n } catch (error) {\n throw new Error(`Load failed ${errorToString(error)}`);\n }\n } catch (error) {\n context.postMessage({\n error: errorToString(error),\n url: event?.data?.url,\n });\n }\n});\n"],"names":["fastJsonStableStringify","data","opts","cycles","cmp","f","node","a","b","aobj","bobj","seen","stringify","i","out","seenIndex","keys","key","value","toStringSafe","input","errorToObject","error","name","message","stack","meta","errorToString","context","previewLength","event","url","payload","_a"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"data-loader.worker-a6fd974d.js","sources":["../node_modules/fast-json-stable-stringify/index.js","../src/connector/common/toStringSafe.ts","../src/connector/common/errorToObject.ts","../src/connector/common/errorToString.ts","../src/connector/data/loader/data-loader.worker.ts"],"sourcesContent":["'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","import stringify from \"fast-json-stable-stringify\";\n\n/**\n * Safely stringify input.\n * Similar to `JSON.stringify` but\n * doesn't throw an error if input includes circular properties.\n *\n * Warning: output is not guaranteed to be a valid JSON string.\n */\nexport function toStringSafe(input: unknown): string {\n return stringify(input, { cycles: true });\n}\n","import { toStringSafe } from \"./toStringSafe\";\n\n/**\n * Convert an error object to plain javascript object, including any custom properties.\n */\nexport function errorToObject(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any\n) {\n if (!error.stack) {\n return { message: toStringSafe(error) };\n }\n\n const { name, message, stack, ...meta } = error;\n\n return {\n name,\n message: message !== undefined ? message : toStringSafe(error),\n stack,\n meta: meta && Object.keys(meta).length === 0 ? undefined : meta,\n };\n}\n","import { errorToObject } from \"./errorToObject\";\nimport { toStringSafe } from \"./toStringSafe\";\n\n/**\n * Serialize an error object to a string, including any custom properties.\n */\nexport function errorToString(error: unknown): string {\n const { message, stack, meta } = errorToObject(error);\n\n return `${stack || message || \"\"}${\n meta && Object.keys(meta).length > 0 ? ` -- ${toStringSafe(meta)}` : \"\"\n }`;\n}\n","import { errorToString } from \"../../common/errorToString\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst context: Worker = self as any;\nconst previewLength = 1000;\n\naddEventListener(\"message\", async (event) => {\n try {\n const url: string = event.data;\n\n try {\n const response = await fetch(url, { mode: \"cors\" });\n const payload = await response.text();\n\n context.postMessage({\n json: JSON.parse(payload),\n preview: payload.substring(0, previewLength),\n length: payload.length,\n url,\n });\n } catch (error) {\n throw new Error(`Load failed ${errorToString(error)}`);\n }\n } catch (error) {\n context.postMessage({\n error: errorToString(error),\n url: event?.data?.url,\n });\n }\n});\n"],"names":["fastJsonStableStringify","data","opts","cycles","cmp","f","node","a","b","aobj","bobj","seen","stringify","i","out","seenIndex","keys","key","value","toStringSafe","input","errorToObject","error","name","message","stack","meta","errorToString","context","previewLength","event","url","payload","_a"],"mappings":"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","x_google_ignoreList":[0]}