cod-dicomweb-server 1.3.10 → 1.3.12

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":"846.js","mappings":"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","sources":["webpack://cod-dicomweb-server/webpack/universalModuleDefinition","webpack://cod-dicomweb-server/./node_modules/comlink/dist/esm/comlink.mjs","webpack://cod-dicomweb-server/./src/classes/customClasses.ts","webpack://cod-dicomweb-server/./src/constants/dataRetrieval.ts","webpack://cod-dicomweb-server/./src/fileAccessSystemUtils.ts","webpack://cod-dicomweb-server/./src/dataRetrieval/scripts/fileStreaming.ts","webpack://cod-dicomweb-server/./src/dataRetrieval/workers/fileStreamingWorker.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","export class CustomError extends Error {}\n\nexport class CustomErrorEvent extends Event {\n error: CustomError;\n message: string;\n\n constructor(message: string, error: CustomError) {\n super(message);\n this.message = message;\n this.error = error;\n }\n}\n\nexport class CustomMessageEvent extends MessageEvent<{\n url: string;\n position: number;\n chunk?: Uint8Array;\n isAppending?: boolean;\n fileArraybuffer?: Uint8Array;\n offsets?: { startByte: number; endByte: number };\n}> {}\n","export const FILE_PARTIAL_WORKER_NAME = 'filePartial';\nexport const FILE_STREAMING_WORKER_NAME = 'fileStreaming';\n\nexport const THRESHOLD = 10000;\n\nexport const IDB_DIR_HANDLE_KEY = 'indexed_db_directory_handle_key';\n\nexport const FILE_SYSTEM_ROUTES = {\n Partial: 'partial'\n};\n","import { get } from 'idb-keyval';\nimport { FILE_SYSTEM_ROUTES, IDB_DIR_HANDLE_KEY } from './constants/dataRetrieval';\nimport { JsonMetadata } from './types';\n\nlet directoryHandle: FileSystemDirectoryHandle;\n\nexport async function getDirectoryHandle(): Promise<FileSystemDirectoryHandle> {\n try {\n if (!directoryHandle) {\n directoryHandle = (await get(IDB_DIR_HANDLE_KEY)) as FileSystemDirectoryHandle;\n }\n\n if (!directoryHandle) {\n directoryHandle = await navigator.storage.getDirectory();\n }\n\n return directoryHandle;\n } catch (error) {\n console.warn(`Error getting directoryhandle: ${error.message}`);\n }\n}\n\nasync function readJsonFile(directoryHandle: FileSystemDirectoryHandle, name: string): Promise<JsonMetadata> {\n return await directoryHandle\n .getFileHandle(name)\n .then((fileHandle) =>\n fileHandle\n .getFile()\n .then((file) => file.text())\n .then((metadataString) => JSON.parse(metadataString))\n )\n .catch((): null => null);\n}\n\nasync function readArrayBufferFile(directoryHandle: FileSystemDirectoryHandle, name: string): Promise<ArrayBuffer> {\n return await directoryHandle\n .getFileHandle(name)\n .then((fileHandle) => fileHandle.getFile().then((file) => file.arrayBuffer()))\n .catch((): null => null);\n}\n\nexport async function readFile(\n directoryHandle: FileSystemDirectoryHandle,\n name: string,\n options: { isJson?: boolean; offsets?: { startByte: number; endByte: number } } = {}\n): Promise<ArrayBuffer | JsonMetadata> {\n if (!name) {\n return;\n }\n\n const pathParts = name.split('/');\n let currentDir = directoryHandle;\n\n try {\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i], { create: true });\n }\n\n const fileName = pathParts.at(-1);\n\n if (options.isJson) {\n return readJsonFile(currentDir, fileName);\n } else {\n return readArrayBufferFile(currentDir, fileName).catch(async () => {\n console.warn(`Error reading the file ${name} from partial folder, trying from full file`);\n\n if (options.offsets && pathParts.includes(FILE_SYSTEM_ROUTES.Partial)) {\n try {\n pathParts.splice(\n pathParts.findIndex((part) => part === FILE_SYSTEM_ROUTES.Partial),\n 1\n );\n currentDir = directoryHandle;\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i], { create: true });\n }\n\n const convertedFileName = pathParts.at(-1).split('_')[0] + '.tar';\n const fileArraybuffer = await readArrayBufferFile(currentDir, convertedFileName);\n return fileArraybuffer.slice(options.offsets.startByte, options.offsets.endByte);\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n }\n }\n });\n }\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n }\n}\n\nexport async function writeFile(\n directoryHandle: FileSystemDirectoryHandle,\n name: string,\n file: ArrayBuffer | JsonMetadata,\n isJson = false\n): Promise<void> {\n try {\n const pathParts = name.split('/');\n let currentDir = directoryHandle;\n\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i], { create: true });\n }\n\n const fileName = pathParts.at(-1);\n const fileHandle = await currentDir.getFileHandle(fileName, { create: true });\n // @ts-ignore\n const fileWritable = await fileHandle.createWritable();\n if (isJson) {\n await fileWritable.write(JSON.stringify(file));\n } else {\n await fileWritable.write(file as ArrayBuffer);\n }\n await fileWritable.close();\n } catch (error) {\n console.warn(`Error writing the file ${name}: ${error.message}`);\n }\n}\n\nexport function download(fileName: string, file: ArrayBuffer): boolean {\n try {\n const blob = new Blob([file], { type: 'application/x-tar' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName;\n a.click();\n URL.revokeObjectURL(url);\n\n return true;\n } catch (error) {\n console.warn(`Error downloading file - ${fileName}: ` + error.message);\n return false;\n }\n}\n\nexport async function clearPartialFiles(): Promise<void> {\n const removePartialFolder = async (dirHandle: FileSystemDirectoryHandle): Promise<void> => {\n // @ts-ignore\n for await (const [name, handle] of dirHandle.entries()) {\n if (handle.kind === 'directory') {\n if (name.toLowerCase() === FILE_SYSTEM_ROUTES.Partial) {\n await dirHandle.removeEntry(name, { recursive: true }).catch((e) => console.warn(`Failed to remove ${name}:`, e));\n } else {\n // Recurse into other directories\n await removePartialFolder(handle);\n }\n }\n }\n };\n\n try {\n await removePartialFolder(directoryHandle);\n } catch (error) {\n console.warn(`Error clearing partial files: ${error.message}`);\n }\n}\n\nexport function parseCachePath(url: string): string {\n const urlObj = new URL(url);\n const bucketPath = urlObj.pathname.match(/\\/(.*?)\\/studies/)[1];\n const [studyInstanceUID, _, seriesInstanceUID] = urlObj.pathname.match(/studies\\/(.*?)(\\.tar|\\/metadata.json)/)[1].split('/');\n return `${bucketPath}/${studyInstanceUID}/${seriesInstanceUID}`;\n}\n\nexport function createStreamingFileName(url: string): string {\n return `${parseCachePath(url)}/${url.split('series/')[1]}`;\n}\n\nexport function createPartialFileName(url: string, offsets?: { startByte: number; endByte: number }): string {\n const seriesInstanceUID = url.match(/series\\/(.*?).tar/)[1];\n const offsetPart = `${offsets ? `_${offsets?.startByte}_${offsets?.endByte}` : ''}`;\n return `${parseCachePath(url)}/${FILE_SYSTEM_ROUTES.Partial}/${seriesInstanceUID}${offsetPart}.dcm`;\n}\n\nexport function createMetadataFileName(url: string): string {\n return `${parseCachePath(url)}/metadata.json`;\n}\n","import { CustomError } from '../../classes/customClasses';\nimport { createStreamingFileName, readFile, writeFile } from '../../fileAccessSystemUtils';\n\nconst fileStreaming = {\n maxFetchSize: 4 * 1024 * 1024 * 1024, // 4GB\n fetchedSize: 0,\n\n setMaxFetchSize(size: number): void {\n if (size > 0) {\n this.maxFetchSize = size;\n }\n },\n\n decreaseFetchedSize(size: number): void {\n if (size > 0 && size <= this.fetchedSize) {\n this.fetchedSize -= size;\n }\n },\n\n async stream(\n args: {\n url: string;\n headers?: Record<string, string>;\n useSharedArrayBuffer?: boolean;\n directoryHandle?: FileSystemDirectoryHandle;\n },\n callBack: (data: {\n url: string;\n position: number;\n isAppending?: boolean;\n fileArraybuffer?: Uint8Array;\n chunk?: Uint8Array;\n }) => void\n ): Promise<Uint8Array | void> {\n const { url, headers, useSharedArrayBuffer, directoryHandle } = args;\n const controller = new AbortController();\n let sharedArraybuffer: SharedArrayBuffer | null = null;\n let fileArraybuffer: Uint8Array | null = null;\n\n try {\n const fileName = createStreamingFileName(url);\n if (directoryHandle) {\n const file = (await readFile(directoryHandle, fileName, { isJson: false })) as ArrayBuffer;\n if (file) {\n callBack({ url, position: file.byteLength, fileArraybuffer: new Uint8Array(file) });\n return;\n }\n }\n\n const response = await fetch(url, {\n headers: { ...headers },\n signal: controller.signal\n });\n\n if (!response.ok) {\n throw new CustomError(`HTTP error! status: ${response.status}`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n throw new CustomError('Failed to get reader from response body');\n }\n\n let result: ReadableStreamReadResult<Uint8Array>;\n let completed = false;\n const totalLength = parseInt(response.headers.get('Content-Length') || '0', 10);\n const firstChunk = await reader.read();\n completed = firstChunk.done;\n\n if (!firstChunk.value) {\n throw new CustomError('The fetched chunks does not have value');\n }\n\n if (!completed) {\n let position = firstChunk.value.length;\n\n if (this.fetchedSize + position > this.maxFetchSize) {\n controller.abort();\n throw new CustomError(`Maximum size(${this.maxFetchSize}) for fetching files reached`);\n }\n\n this.fetchedSize += position;\n\n if (useSharedArrayBuffer) {\n sharedArraybuffer = new SharedArrayBuffer(totalLength);\n fileArraybuffer = new Uint8Array(sharedArraybuffer);\n } else {\n fileArraybuffer = new Uint8Array(totalLength);\n }\n fileArraybuffer.set(firstChunk.value);\n callBack({ url, position, fileArraybuffer });\n\n while (!completed) {\n result = await reader.read();\n\n if (result.done) {\n completed = true;\n continue;\n }\n\n const chunk = result.value;\n\n if (this.fetchedSize + chunk.length > this.maxFetchSize) {\n sharedArraybuffer = null;\n fileArraybuffer = null;\n controller.abort();\n throw new CustomError(`Maximum size(${this.maxFetchSize}) for fetching files reached`);\n }\n\n this.fetchedSize += chunk.length;\n fileArraybuffer.set(chunk, position);\n position += chunk.length;\n\n callBack({\n isAppending: true,\n url,\n position: position,\n chunk: !useSharedArrayBuffer ? chunk : undefined\n });\n }\n\n if (directoryHandle) {\n writeFile(directoryHandle, fileName, fileArraybuffer.slice().buffer);\n }\n }\n } catch (error) {\n const streamingError = new CustomError(\n 'fileStreaming.ts: ' + (error as CustomError).message || 'An error occured when streaming'\n );\n console.error(streamingError.message, error);\n throw streamingError;\n } finally {\n sharedArraybuffer = null;\n fileArraybuffer = null;\n controller.abort();\n }\n }\n};\n\nexport default fileStreaming;\n","import { expose } from 'comlink';\nimport fileStreaming from '../scripts/fileStreaming';\n\nconst fileStreamingWorker = {\n ...fileStreaming,\n stream: (args: any) => fileStreaming.stream(args, postMessage)\n};\n\nexpose(fileStreamingWorker);\n"],"names":["root","factory","exports","module","define","amd","a","i","self","proxyMarker","Symbol","createEndpoint","releaseProxy","finalizer","throwMarker","isObject","val","proxyTransferHandler","canHandle","serialize","obj","port1","port2","MessageChannel","expose","deserialize","port","start","ep","target","pendingListeners","Map","addEventListener","ev","data","id","resolver","get","delete","createProxy","wrap","transferHandlers","value","serialized","Error","isError","message","name","stack","Object","assign","globalThis","allowedOrigins","callback","origin","allowedOrigin","RegExp","test","isAllowedOrigin","console","warn","type","path","argumentList","map","fromWireValue","returnValue","parent","slice","reduce","prop","rawValue","apply","proxy","transfers","transferCache","set","transfer","undefined","Promise","resolve","catch","then","wireValue","transferables","toWireValue","postMessage","removeEventListener","closeEndPoint","error","TypeError","endpoint","constructor","isMessagePort","close","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","FinalizationRegistry","newCount","isProxyReleased","Proxy","_target","unregister","unregisterProxy","clear","length","r","p","toString","bind","_thisArg","rawArgumentList","last","processArguments","construct","register","registerProxy","processed","v","arr","Array","prototype","concat","handler","serializedValue","msg","fill","Math","floor","random","Number","MAX_SAFE_INTEGER","join","CustomError","_Error","_classCallCheck","_callSuper","arguments","_inherits","_createClass","_wrapNativeSuper","FILE_SYSTEM_ROUTES","_regeneratorRuntime","e","t","n","hasOwnProperty","o","defineProperty","iterator","c","asyncIterator","u","toStringTag","enumerable","configurable","writable","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","_slicedToArray","isArray","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","asyncGeneratorStep","_asyncToGenerator","_next","_throw","readJsonFile","_x","_x2","_readJsonFile","_callee2","directoryHandle","_context2","getFileHandle","fileHandle","getFile","file","text","metadataString","JSON","parse","readArrayBufferFile","_x3","_x4","_readArrayBufferFile","_callee3","_context3","arrayBuffer","readFile","_x5","_x6","_readFile","_callee5","options","pathParts","currentDir","fileName","_args5","_context5","split","getDirectoryHandle","at","isJson","_callee4","_i","convertedFileName","fileArraybuffer","_context4","offsets","includes","splice","findIndex","part","startByte","endByte","t0","writeFile","_x7","_x8","_x9","_writeFile","_callee6","fileWritable","_args6","_context6","createWritable","write","stringify","parseCachePath","url","urlObj","URL","bucketPath","pathname","match","_urlObj$pathname$matc2","studyInstanceUID","seriesInstanceUID","createStreamingFileName","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","toPrimitive","String","_toPrimitive","_toPropertyKey","fileStreaming","maxFetchSize","fetchedSize","setMaxFetchSize","size","this","decreaseFetchedSize","stream","args","callBack","_this","_callee","headers","useSharedArrayBuffer","controller","sharedArraybuffer","_response$body","response","reader","result","completed","totalLength","firstChunk","position","chunk","streamingError","_context","AbortController","byteLength","Uint8Array","fetch","signal","ok","status","body","getReader","parseInt","read","abort","SharedArrayBuffer","isAppending","buffer"],"sourceRoot":""}
1
+ {"version":3,"file":"846.js","mappings":"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","sources":["webpack://cod-dicomweb-server/webpack/universalModuleDefinition","webpack://cod-dicomweb-server/./node_modules/comlink/dist/esm/comlink.mjs","webpack://cod-dicomweb-server/./src/classes/customClasses.ts","webpack://cod-dicomweb-server/./src/constants/dataRetrieval.ts","webpack://cod-dicomweb-server/./src/fileAccessSystemUtils.ts","webpack://cod-dicomweb-server/./src/dataRetrieval/scripts/fileStreaming.ts","webpack://cod-dicomweb-server/./src/dataRetrieval/workers/fileStreamingWorker.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","export class CustomError extends Error {}\n\nexport class CustomErrorEvent extends Event {\n error: CustomError;\n message: string;\n\n constructor(message: string, error: CustomError) {\n super(message);\n this.message = message;\n this.error = error;\n }\n}\n\nexport class CustomMessageEvent extends MessageEvent<{\n url: string;\n position: number;\n chunk?: Uint8Array;\n isAppending?: boolean;\n fileArraybuffer?: Uint8Array;\n totalLength: number;\n offsets?: { startByte: number; endByte: number };\n}> {}\n","export const FILE_PARTIAL_WORKER_NAME = 'filePartial';\nexport const FILE_STREAMING_WORKER_NAME = 'fileStreaming';\n\nexport const THRESHOLD = 10000;\n\nexport const IDB_DIR_HANDLE_KEY = 'indexed_db_directory_handle_key';\n\nexport const FILE_SYSTEM_ROUTES = {\n Partial: 'partial'\n};\n","import { get } from 'idb-keyval';\nimport { FILE_SYSTEM_ROUTES, IDB_DIR_HANDLE_KEY } from './constants/dataRetrieval';\nimport { JsonMetadata } from './types';\n\nlet directoryHandle: FileSystemDirectoryHandle;\n\nexport async function getDirectoryHandle(): Promise<FileSystemDirectoryHandle> {\n try {\n if (!directoryHandle) {\n directoryHandle = (await get(IDB_DIR_HANDLE_KEY)) as FileSystemDirectoryHandle;\n }\n\n if (!directoryHandle) {\n directoryHandle = await navigator.storage.getDirectory();\n }\n\n return directoryHandle;\n } catch (error) {\n console.warn(`Error getting directoryhandle: ${error.message}`);\n }\n}\n\nasync function readJsonFile(directoryHandle: FileSystemDirectoryHandle, name: string): Promise<JsonMetadata> {\n return await directoryHandle\n .getFileHandle(name)\n .then((fileHandle) =>\n fileHandle\n .getFile()\n .then((file) => file.text())\n .then((metadataString) => JSON.parse(metadataString))\n )\n .catch((): null => null);\n}\n\nasync function readArrayBufferFile(directoryHandle: FileSystemDirectoryHandle, name: string): Promise<ArrayBuffer> {\n return await directoryHandle\n .getFileHandle(name)\n .then((fileHandle) => fileHandle.getFile().then((file) => file.arrayBuffer()))\n .catch((): null => null);\n}\n\nexport async function readFile(\n directoryHandle: FileSystemDirectoryHandle,\n name: string,\n options: { isJson?: boolean; offsets?: { startByte: number; endByte: number } } = {}\n): Promise<ArrayBuffer | JsonMetadata> {\n if (!name) {\n return;\n }\n\n const pathParts = name.split('/');\n let currentDir = directoryHandle;\n\n try {\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i], { create: true });\n }\n\n const fileName = pathParts.at(-1);\n\n if (options.isJson) {\n return readJsonFile(currentDir, fileName);\n } else {\n return readArrayBufferFile(currentDir, fileName).catch(async () => {\n console.warn(`Error reading the file ${name} from partial folder, trying from full file`);\n\n if (options.offsets && pathParts.includes(FILE_SYSTEM_ROUTES.Partial)) {\n try {\n pathParts.splice(\n pathParts.findIndex((part) => part === FILE_SYSTEM_ROUTES.Partial),\n 1\n );\n currentDir = directoryHandle;\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i], { create: true });\n }\n\n const convertedFileName = pathParts.at(-1).split('_')[0] + '.tar';\n const fileArraybuffer = await readArrayBufferFile(currentDir, convertedFileName);\n return fileArraybuffer.slice(options.offsets.startByte, options.offsets.endByte);\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n }\n }\n });\n }\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n }\n}\n\nexport async function writeFile(\n directoryHandle: FileSystemDirectoryHandle,\n name: string,\n file: ArrayBuffer | JsonMetadata,\n isJson = false\n): Promise<void> {\n try {\n const pathParts = name.split('/');\n let currentDir = directoryHandle;\n\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i], { create: true });\n }\n\n const fileName = pathParts.at(-1);\n const fileHandle = await currentDir.getFileHandle(fileName, { create: true });\n // @ts-ignore\n const fileWritable = await fileHandle.createWritable();\n if (isJson) {\n await fileWritable.write(JSON.stringify(file));\n } else {\n await fileWritable.write(file as ArrayBuffer);\n }\n await fileWritable.close();\n } catch (error) {\n console.warn(`Error writing the file ${name}: ${error.message}`);\n }\n}\n\nexport function download(fileName: string, file: ArrayBuffer): boolean {\n try {\n const blob = new Blob([file], { type: 'application/x-tar' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName;\n a.click();\n URL.revokeObjectURL(url);\n\n return true;\n } catch (error) {\n console.warn(`Error downloading file - ${fileName}: ` + error.message);\n return false;\n }\n}\n\nexport async function clearPartialFiles(): Promise<void> {\n const removePartialFolder = async (dirHandle: FileSystemDirectoryHandle): Promise<void> => {\n // @ts-ignore\n for await (const [name, handle] of dirHandle.entries()) {\n if (handle.kind === 'directory') {\n if (name.toLowerCase() === FILE_SYSTEM_ROUTES.Partial) {\n await dirHandle.removeEntry(name, { recursive: true }).catch((e) => console.warn(`Failed to remove ${name}:`, e));\n } else {\n // Recurse into other directories\n await removePartialFolder(handle);\n }\n }\n }\n };\n\n try {\n await removePartialFolder(directoryHandle);\n } catch (error) {\n console.warn(`Error clearing partial files: ${error.message}`);\n }\n}\n\nexport function parseCachePath(url: string): string {\n const urlObj = new URL(url);\n const bucketPath = urlObj.pathname.match(/\\/(.*?)\\/studies/)[1];\n const [studyInstanceUID, _, seriesInstanceUID] = urlObj.pathname.match(/studies\\/(.*?)(\\.tar|\\/metadata.json)/)[1].split('/');\n return `${bucketPath}/${studyInstanceUID}/${seriesInstanceUID}`;\n}\n\nexport function createStreamingFileName(url: string): string {\n return `${parseCachePath(url)}/${url.split('series/')[1]}`;\n}\n\nexport function createPartialFileName(url: string, offsets?: { startByte: number; endByte: number }): string {\n const seriesInstanceUID = url.match(/series\\/(.*?).tar/)[1];\n const offsetPart = `${offsets ? `_${offsets?.startByte}_${offsets?.endByte}` : ''}`;\n return `${parseCachePath(url)}/${FILE_SYSTEM_ROUTES.Partial}/${seriesInstanceUID}${offsetPart}.dcm`;\n}\n\nexport function createMetadataFileName(url: string): string {\n return `${parseCachePath(url)}/metadata.json`;\n}\n","import { CustomError } from '../../classes/customClasses';\nimport { createStreamingFileName, readFile, writeFile } from '../../fileAccessSystemUtils';\n\nconst fileStreaming = {\n async stream(\n args: {\n url: string;\n headers?: Record<string, string>;\n useSharedArrayBuffer?: boolean;\n directoryHandle?: FileSystemDirectoryHandle;\n },\n callBack: (data: {\n url: string;\n position: number;\n isAppending?: boolean;\n fileArraybuffer?: Uint8Array;\n chunk?: Uint8Array;\n totalLength: number;\n }) => void\n ): Promise<Uint8Array | void> {\n const { url, headers, useSharedArrayBuffer, directoryHandle } = args;\n const controller = new AbortController();\n let sharedArraybuffer: SharedArrayBuffer | null = null;\n let fileArraybuffer: Uint8Array | null = null;\n\n try {\n const fileName = createStreamingFileName(url);\n if (directoryHandle) {\n const file = (await readFile(directoryHandle, fileName, { isJson: false })) as ArrayBuffer;\n if (file) {\n const totalLength = file.byteLength;\n callBack({ url, position: totalLength, fileArraybuffer: new Uint8Array(file), totalLength });\n return;\n }\n }\n\n const response = await fetch(url, {\n headers: { ...headers },\n signal: controller.signal\n });\n\n if (!response.ok) {\n throw new CustomError(`HTTP error! status: ${response.status}`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n throw new CustomError('Failed to get reader from response body');\n }\n\n let result: ReadableStreamReadResult<Uint8Array>;\n let completed = false;\n const totalLength = parseInt(response.headers.get('Content-Length') || '0', 10);\n const firstChunk = await reader.read();\n completed = firstChunk.done;\n\n if (!firstChunk.value) {\n throw new CustomError('The fetched chunks does not have value');\n }\n\n if (!completed) {\n let position = firstChunk.value.length;\n\n if (useSharedArrayBuffer) {\n sharedArraybuffer = new SharedArrayBuffer(totalLength);\n fileArraybuffer = new Uint8Array(sharedArraybuffer);\n } else {\n fileArraybuffer = new Uint8Array(totalLength);\n }\n fileArraybuffer.set(firstChunk.value);\n callBack({ url, position, fileArraybuffer, totalLength });\n\n while (!completed) {\n result = await reader.read();\n\n if (result.done) {\n completed = true;\n continue;\n }\n\n const chunk = result.value;\n\n fileArraybuffer.set(chunk, position);\n position += chunk.length;\n\n callBack({\n isAppending: true,\n url,\n position: position,\n chunk: !useSharedArrayBuffer ? chunk : undefined,\n totalLength\n });\n }\n\n if (directoryHandle) {\n writeFile(directoryHandle, fileName, fileArraybuffer.slice().buffer);\n }\n }\n } catch (error) {\n const streamingError = new CustomError(\n 'fileStreaming.ts: ' + (error as CustomError).message || 'An error occured when streaming'\n );\n console.error(streamingError.message, error);\n throw streamingError;\n } finally {\n sharedArraybuffer = null;\n fileArraybuffer = null;\n controller.abort();\n }\n }\n};\n\nexport default fileStreaming;\n","import { expose } from 'comlink';\nimport fileStreaming from '../scripts/fileStreaming';\n\nconst fileStreamingWorker = {\n ...fileStreaming,\n stream: (args: any) => fileStreaming.stream(args, postMessage)\n};\n\nexpose(fileStreamingWorker);\n"],"names":["root","factory","exports","module","define","amd","a","i","self","proxyMarker","Symbol","createEndpoint","releaseProxy","finalizer","throwMarker","isObject","val","proxyTransferHandler","canHandle","serialize","obj","port1","port2","MessageChannel","expose","deserialize","port","start","ep","target","pendingListeners","Map","addEventListener","ev","data","id","resolver","get","delete","createProxy","wrap","transferHandlers","value","serialized","Error","isError","message","name","stack","Object","assign","globalThis","allowedOrigins","callback","origin","allowedOrigin","RegExp","test","isAllowedOrigin","console","warn","type","path","argumentList","map","fromWireValue","returnValue","parent","slice","reduce","prop","rawValue","apply","proxy","transfers","transferCache","set","transfer","undefined","Promise","resolve","catch","then","wireValue","transferables","toWireValue","postMessage","removeEventListener","closeEndPoint","error","TypeError","endpoint","constructor","isMessagePort","close","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","FinalizationRegistry","newCount","isProxyReleased","Proxy","_target","unregister","unregisterProxy","clear","length","r","p","toString","bind","_thisArg","rawArgumentList","last","processArguments","construct","register","registerProxy","processed","v","arr","Array","prototype","concat","handler","serializedValue","msg","fill","Math","floor","random","Number","MAX_SAFE_INTEGER","join","CustomError","_Error","_classCallCheck","_callSuper","arguments","_inherits","_createClass","_wrapNativeSuper","FILE_SYSTEM_ROUTES","_regeneratorRuntime","e","t","n","hasOwnProperty","o","defineProperty","iterator","c","asyncIterator","u","toStringTag","enumerable","configurable","writable","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","_slicedToArray","isArray","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","asyncGeneratorStep","_asyncToGenerator","_next","_throw","readJsonFile","_x","_x2","_readJsonFile","_callee2","directoryHandle","_context2","getFileHandle","fileHandle","getFile","file","text","metadataString","JSON","parse","readArrayBufferFile","_x3","_x4","_readArrayBufferFile","_callee3","_context3","arrayBuffer","readFile","_x5","_x6","_readFile","_callee5","options","pathParts","currentDir","fileName","_args5","_context5","split","getDirectoryHandle","at","isJson","_callee4","_i","convertedFileName","fileArraybuffer","_context4","offsets","includes","splice","findIndex","part","startByte","endByte","t0","writeFile","_x7","_x8","_x9","_writeFile","_callee6","fileWritable","_args6","_context6","createWritable","write","stringify","parseCachePath","url","urlObj","URL","bucketPath","pathname","match","_urlObj$pathname$matc2","studyInstanceUID","seriesInstanceUID","createStreamingFileName","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","toPrimitive","String","_toPrimitive","_toPropertyKey","fileStreaming","stream","args","callBack","_callee","headers","useSharedArrayBuffer","controller","sharedArraybuffer","_response$body","_totalLength","response","reader","result","completed","totalLength","firstChunk","position","chunk","streamingError","_context","AbortController","byteLength","Uint8Array","fetch","signal","ok","status","body","getReader","parseInt","read","SharedArrayBuffer","isAppending","buffer","abort"],"sourceRoot":""}