cod-dicomweb-server 1.3.6 → 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/main.js +62 -15
- package/dist/esm/classes/CodDicomWebServer.d.ts +2 -1
- package/dist/esm/classes/CodDicomWebServer.js +19 -11
- package/dist/esm/constants/enums.d.ts +5 -0
- package/dist/esm/constants/enums.js +6 -0
- package/dist/esm/fileAccessSystemUtils.d.ts +1 -0
- package/dist/esm/fileAccessSystemUtils.js +16 -0
- package/dist/umd/563.js +1 -1
- package/dist/umd/563.js.map +1 -1
- package/dist/umd/846.js +1 -1
- package/dist/umd/846.js.map +1 -1
- package/dist/umd/main.js +3 -3
- package/dist/umd/main.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/main.js
CHANGED
|
@@ -142,7 +142,8 @@ __webpack_require__.r(enums_namespaceObject);
|
|
|
142
142
|
__webpack_require__.d(enums_namespaceObject, {
|
|
143
143
|
DataRetrieveMode: () => (DataRetrieveMode),
|
|
144
144
|
FetchType: () => (FetchType),
|
|
145
|
-
RequestType: () => (RequestType)
|
|
145
|
+
RequestType: () => (RequestType),
|
|
146
|
+
URLType: () => (URLType)
|
|
146
147
|
});
|
|
147
148
|
|
|
148
149
|
// NAMESPACE OBJECT: ./src/constants/url.ts
|
|
@@ -183,6 +184,12 @@ var DataRetrieveMode = /*#__PURE__*/function (DataRetrieveMode) {
|
|
|
183
184
|
DataRetrieveMode[DataRetrieveMode["REQUEST"] = 1] = "REQUEST";
|
|
184
185
|
return DataRetrieveMode;
|
|
185
186
|
}({});
|
|
187
|
+
var URLType = /*#__PURE__*/function (URLType) {
|
|
188
|
+
URLType[URLType["THUMBNAIL"] = 0] = "THUMBNAIL";
|
|
189
|
+
URLType[URLType["FILE"] = 1] = "FILE";
|
|
190
|
+
URLType[URLType["OTHERS"] = 2] = "OTHERS";
|
|
191
|
+
return URLType;
|
|
192
|
+
}({});
|
|
186
193
|
// EXTERNAL MODULE: ./node_modules/dicom-parser/dist/dicomParser.min.js
|
|
187
194
|
var dicomParser_min = __webpack_require__(915);
|
|
188
195
|
;// ./src/classes/customClasses.ts
|
|
@@ -1660,6 +1667,23 @@ function _writeFile() {
|
|
|
1660
1667
|
}));
|
|
1661
1668
|
return _writeFile.apply(this, arguments);
|
|
1662
1669
|
}
|
|
1670
|
+
function download(fileName, file) {
|
|
1671
|
+
try {
|
|
1672
|
+
var blob = new Blob([file], {
|
|
1673
|
+
type: 'application/x-tar'
|
|
1674
|
+
});
|
|
1675
|
+
var url = URL.createObjectURL(blob);
|
|
1676
|
+
var a = document.createElement('a');
|
|
1677
|
+
a.href = url;
|
|
1678
|
+
a.download = fileName;
|
|
1679
|
+
a.click();
|
|
1680
|
+
URL.revokeObjectURL(url);
|
|
1681
|
+
return true;
|
|
1682
|
+
} catch (error) {
|
|
1683
|
+
console.warn("Error downloading file - ".concat(fileName, ": ") + error.message);
|
|
1684
|
+
return false;
|
|
1685
|
+
}
|
|
1686
|
+
}
|
|
1663
1687
|
function clearPartialFiles() {
|
|
1664
1688
|
return _clearPartialFiles.apply(this, arguments);
|
|
1665
1689
|
}
|
|
@@ -2047,11 +2071,17 @@ var CodDicomWebServer = /*#__PURE__*/function () {
|
|
|
2047
2071
|
}
|
|
2048
2072
|
return CodDicomWebServer_createClass(CodDicomWebServer, [{
|
|
2049
2073
|
key: "addFileUrl",
|
|
2050
|
-
value: function addFileUrl(seriesInstanceUID, url) {
|
|
2074
|
+
value: function addFileUrl(seriesInstanceUID, type, url) {
|
|
2051
2075
|
if (this.seriesUidFileUrls[seriesInstanceUID]) {
|
|
2052
|
-
this.seriesUidFileUrls[seriesInstanceUID].
|
|
2076
|
+
this.seriesUidFileUrls[seriesInstanceUID].add({
|
|
2077
|
+
type: type,
|
|
2078
|
+
url: url
|
|
2079
|
+
});
|
|
2053
2080
|
} else {
|
|
2054
|
-
this.seriesUidFileUrls[seriesInstanceUID] = [
|
|
2081
|
+
this.seriesUidFileUrls[seriesInstanceUID] = new Set([{
|
|
2082
|
+
type: type,
|
|
2083
|
+
url: url
|
|
2084
|
+
}]);
|
|
2055
2085
|
}
|
|
2056
2086
|
}
|
|
2057
2087
|
}, {
|
|
@@ -2132,7 +2162,7 @@ var CodDicomWebServer = /*#__PURE__*/function () {
|
|
|
2132
2162
|
}
|
|
2133
2163
|
throw new CustomError("Thumbnail not found for ".concat(wadorsUrl));
|
|
2134
2164
|
case 19:
|
|
2135
|
-
this.addFileUrl(seriesInstanceUID, thumbnailUrl);
|
|
2165
|
+
this.addFileUrl(seriesInstanceUID, URLType.THUMBNAIL, thumbnailUrl);
|
|
2136
2166
|
return _context.abrupt("return", this.fetchFile(thumbnailUrl, headers, {
|
|
2137
2167
|
useSharedArrayBuffer: useSharedArrayBuffer
|
|
2138
2168
|
}));
|
|
@@ -2147,7 +2177,7 @@ var CodDicomWebServer = /*#__PURE__*/function () {
|
|
|
2147
2177
|
if (fetchType === FetchType.BYTES_OPTIMIZED) {
|
|
2148
2178
|
urlWithBytes = "".concat(fileUrl, "?bytes=").concat(startByte, "-").concat(endByte);
|
|
2149
2179
|
}
|
|
2150
|
-
this.addFileUrl(seriesInstanceUID, fileUrl);
|
|
2180
|
+
this.addFileUrl(seriesInstanceUID, URLType.FILE, fileUrl);
|
|
2151
2181
|
return _context.abrupt("return", this.fetchFile(urlWithBytes, headers, {
|
|
2152
2182
|
offsets: {
|
|
2153
2183
|
startByte: startByte,
|
|
@@ -2194,7 +2224,7 @@ var CodDicomWebServer = /*#__PURE__*/function () {
|
|
|
2194
2224
|
var dataSet = (0,dicomParser_min.parseDicom)(new Uint8Array(result));
|
|
2195
2225
|
var _seriesInstanceUID = dataSet.string('0020000e');
|
|
2196
2226
|
if (_seriesInstanceUID) {
|
|
2197
|
-
_this2.addFileUrl(_seriesInstanceUID, wadorsUrl);
|
|
2227
|
+
_this2.addFileUrl(_seriesInstanceUID, URLType.OTHERS, wadorsUrl);
|
|
2198
2228
|
}
|
|
2199
2229
|
} catch (error) {
|
|
2200
2230
|
console.warn('CodDicomWebServer.ts: There is some issue parsing the file.', error);
|
|
@@ -2422,14 +2452,30 @@ var CodDicomWebServer = /*#__PURE__*/function () {
|
|
|
2422
2452
|
}
|
|
2423
2453
|
return fetchFile;
|
|
2424
2454
|
}()
|
|
2455
|
+
}, {
|
|
2456
|
+
key: "downloadSeriesFile",
|
|
2457
|
+
value: function downloadSeriesFile(seriesInstanceUID) {
|
|
2458
|
+
var _Array$from$find;
|
|
2459
|
+
var seriesFileURL = (_Array$from$find = Array.from(this.seriesUidFileUrls[seriesInstanceUID]).find(function (_ref3) {
|
|
2460
|
+
var url = _ref3.url,
|
|
2461
|
+
type = _ref3.type;
|
|
2462
|
+
return type === URLType.FILE && url.endsWith('.tar');
|
|
2463
|
+
})) === null || _Array$from$find === void 0 ? void 0 : _Array$from$find.url;
|
|
2464
|
+
if (seriesFileURL) {
|
|
2465
|
+
var seriesArrayBuffer = this.fileManager.get(seriesFileURL);
|
|
2466
|
+
return download(seriesFileURL.split('/').at(-1), seriesArrayBuffer);
|
|
2467
|
+
}
|
|
2468
|
+
return false;
|
|
2469
|
+
}
|
|
2425
2470
|
}, {
|
|
2426
2471
|
key: "delete",
|
|
2427
2472
|
value: function _delete(seriesInstanceUID) {
|
|
2428
2473
|
var _this4 = this;
|
|
2429
2474
|
var fileUrls = this.seriesUidFileUrls[seriesInstanceUID];
|
|
2430
2475
|
if (fileUrls) {
|
|
2431
|
-
fileUrls.forEach(function (
|
|
2432
|
-
|
|
2476
|
+
fileUrls.forEach(function (_ref4) {
|
|
2477
|
+
var url = _ref4.url;
|
|
2478
|
+
_this4.fileManager.remove(url);
|
|
2433
2479
|
});
|
|
2434
2480
|
}
|
|
2435
2481
|
delete this.seriesUidFileUrls[seriesInstanceUID];
|
|
@@ -2439,8 +2485,9 @@ var CodDicomWebServer = /*#__PURE__*/function () {
|
|
|
2439
2485
|
value: function deleteAll() {
|
|
2440
2486
|
var _this5 = this;
|
|
2441
2487
|
Object.values(this.seriesUidFileUrls).forEach(function (fileUrls) {
|
|
2442
|
-
fileUrls.forEach(function (
|
|
2443
|
-
|
|
2488
|
+
fileUrls.forEach(function (_ref5) {
|
|
2489
|
+
var url = _ref5.url;
|
|
2490
|
+
_this5.fileManager.remove(url);
|
|
2444
2491
|
});
|
|
2445
2492
|
});
|
|
2446
2493
|
this.seriesUidFileUrls = {};
|
|
@@ -2450,10 +2497,10 @@ var CodDicomWebServer = /*#__PURE__*/function () {
|
|
|
2450
2497
|
value: function parseMetadata(metadata, type, sopInstanceUID) {
|
|
2451
2498
|
if (type === RequestType.INSTANCE_METADATA) {
|
|
2452
2499
|
var _Object$entries$find;
|
|
2453
|
-
return (_Object$entries$find = Object.entries(metadata.cod.instances).find(function (
|
|
2454
|
-
var
|
|
2455
|
-
key =
|
|
2456
|
-
instance =
|
|
2500
|
+
return (_Object$entries$find = Object.entries(metadata.cod.instances).find(function (_ref6) {
|
|
2501
|
+
var _ref7 = CodDicomWebServer_slicedToArray(_ref6, 2),
|
|
2502
|
+
key = _ref7[0],
|
|
2503
|
+
instance = _ref7[1];
|
|
2457
2504
|
return key === sopInstanceUID;
|
|
2458
2505
|
})) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[1].metadata;
|
|
2459
2506
|
} else {
|
|
@@ -14,9 +14,10 @@ declare class CodDicomWebServer {
|
|
|
14
14
|
});
|
|
15
15
|
setOptions: (newOptions: Partial<CodDicomWebServerOptions>) => void;
|
|
16
16
|
getOptions: () => CodDicomWebServerOptions;
|
|
17
|
-
addFileUrl(seriesInstanceUID: string, url: string): void;
|
|
17
|
+
addFileUrl(seriesInstanceUID: string, type: Enums.URLType, url: string): void;
|
|
18
18
|
fetchCod(wadorsUrl: string, headers?: Record<string, string> | undefined, { useSharedArrayBuffer, fetchType }?: CODRequestOptions): Promise<ArrayBufferLike | InstanceMetadata | SeriesMetadata | undefined>;
|
|
19
19
|
fetchFile(fileUrl: string, headers: Record<string, string>, { offsets, useSharedArrayBuffer, fetchType }?: FileRequestOptions): Promise<ArrayBufferLike | undefined>;
|
|
20
|
+
downloadSeriesFile(seriesInstanceUID: string): boolean;
|
|
20
21
|
delete(seriesInstanceUID: string): void;
|
|
21
22
|
deleteAll(): void;
|
|
22
23
|
parseMetadata(metadata: JsonMetadata, type: Enums.RequestType, sopInstanceUID: string): InstanceMetadata | SeriesMetadata;
|
|
@@ -7,7 +7,7 @@ import constants, { Enums } from '../constants';
|
|
|
7
7
|
import { getDataRetrievalManager } from '../dataRetrieval/dataRetrievalManager';
|
|
8
8
|
import { CustomError } from './customClasses';
|
|
9
9
|
import { CustomErrorEvent } from './customClasses';
|
|
10
|
-
import { getDirectoryHandle } from '../fileAccessSystemUtils';
|
|
10
|
+
import { download, getDirectoryHandle } from '../fileAccessSystemUtils';
|
|
11
11
|
class CodDicomWebServer {
|
|
12
12
|
filePromises = {};
|
|
13
13
|
options = {
|
|
@@ -43,12 +43,12 @@ class CodDicomWebServer {
|
|
|
43
43
|
getOptions = () => {
|
|
44
44
|
return this.options;
|
|
45
45
|
};
|
|
46
|
-
addFileUrl(seriesInstanceUID, url) {
|
|
46
|
+
addFileUrl(seriesInstanceUID, type, url) {
|
|
47
47
|
if (this.seriesUidFileUrls[seriesInstanceUID]) {
|
|
48
|
-
this.seriesUidFileUrls[seriesInstanceUID].
|
|
48
|
+
this.seriesUidFileUrls[seriesInstanceUID].add({ type, url });
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
|
-
this.seriesUidFileUrls[seriesInstanceUID] = [url];
|
|
51
|
+
this.seriesUidFileUrls[seriesInstanceUID] = new Set([{ type, url }]);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
async fetchCod(wadorsUrl, headers = {}, { useSharedArrayBuffer = false, fetchType = constants.Enums.FetchType.API_OPTIMIZED } = {}) {
|
|
@@ -79,7 +79,7 @@ class CodDicomWebServer {
|
|
|
79
79
|
if (!thumbnailUrl) {
|
|
80
80
|
throw new CustomError(`Thumbnail not found for ${wadorsUrl}`);
|
|
81
81
|
}
|
|
82
|
-
this.addFileUrl(seriesInstanceUID, thumbnailUrl);
|
|
82
|
+
this.addFileUrl(seriesInstanceUID, Enums.URLType.THUMBNAIL, thumbnailUrl);
|
|
83
83
|
return this.fetchFile(thumbnailUrl, headers, {
|
|
84
84
|
useSharedArrayBuffer
|
|
85
85
|
});
|
|
@@ -91,7 +91,7 @@ class CodDicomWebServer {
|
|
|
91
91
|
if (fetchType === Enums.FetchType.BYTES_OPTIMIZED) {
|
|
92
92
|
urlWithBytes = `${fileUrl}?bytes=${startByte}-${endByte}`;
|
|
93
93
|
}
|
|
94
|
-
this.addFileUrl(seriesInstanceUID, fileUrl);
|
|
94
|
+
this.addFileUrl(seriesInstanceUID, Enums.URLType.FILE, fileUrl);
|
|
95
95
|
return this.fetchFile(urlWithBytes, headers, {
|
|
96
96
|
offsets: { startByte, endByte },
|
|
97
97
|
useSharedArrayBuffer,
|
|
@@ -134,7 +134,7 @@ class CodDicomWebServer {
|
|
|
134
134
|
const dataSet = parseDicom(new Uint8Array(result));
|
|
135
135
|
const seriesInstanceUID = dataSet.string('0020000e');
|
|
136
136
|
if (seriesInstanceUID) {
|
|
137
|
-
this.addFileUrl(seriesInstanceUID, wadorsUrl);
|
|
137
|
+
this.addFileUrl(seriesInstanceUID, Enums.URLType.OTHERS, wadorsUrl);
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
catch (error) {
|
|
@@ -299,19 +299,27 @@ class CodDicomWebServer {
|
|
|
299
299
|
});
|
|
300
300
|
});
|
|
301
301
|
}
|
|
302
|
+
downloadSeriesFile(seriesInstanceUID) {
|
|
303
|
+
const seriesFileURL = Array.from(this.seriesUidFileUrls[seriesInstanceUID]).find(({ url, type }) => type === Enums.URLType.FILE && url.endsWith('.tar'))?.url;
|
|
304
|
+
if (seriesFileURL) {
|
|
305
|
+
const seriesArrayBuffer = this.fileManager.get(seriesFileURL);
|
|
306
|
+
return download(seriesFileURL.split('/').at(-1), seriesArrayBuffer);
|
|
307
|
+
}
|
|
308
|
+
return false;
|
|
309
|
+
}
|
|
302
310
|
delete(seriesInstanceUID) {
|
|
303
311
|
const fileUrls = this.seriesUidFileUrls[seriesInstanceUID];
|
|
304
312
|
if (fileUrls) {
|
|
305
|
-
fileUrls.forEach((
|
|
306
|
-
this.fileManager.remove(
|
|
313
|
+
fileUrls.forEach(({ url }) => {
|
|
314
|
+
this.fileManager.remove(url);
|
|
307
315
|
});
|
|
308
316
|
}
|
|
309
317
|
delete this.seriesUidFileUrls[seriesInstanceUID];
|
|
310
318
|
}
|
|
311
319
|
deleteAll() {
|
|
312
320
|
Object.values(this.seriesUidFileUrls).forEach((fileUrls) => {
|
|
313
|
-
fileUrls.forEach((
|
|
314
|
-
this.fileManager.remove(
|
|
321
|
+
fileUrls.forEach(({ url }) => {
|
|
322
|
+
this.fileManager.remove(url);
|
|
315
323
|
});
|
|
316
324
|
});
|
|
317
325
|
this.seriesUidFileUrls = {};
|
|
@@ -22,3 +22,9 @@ export var DataRetrieveMode;
|
|
|
22
22
|
DataRetrieveMode[DataRetrieveMode["WORKER"] = 0] = "WORKER";
|
|
23
23
|
DataRetrieveMode[DataRetrieveMode["REQUEST"] = 1] = "REQUEST";
|
|
24
24
|
})(DataRetrieveMode || (DataRetrieveMode = {}));
|
|
25
|
+
export var URLType;
|
|
26
|
+
(function (URLType) {
|
|
27
|
+
URLType[URLType["THUMBNAIL"] = 0] = "THUMBNAIL";
|
|
28
|
+
URLType[URLType["FILE"] = 1] = "FILE";
|
|
29
|
+
URLType[URLType["OTHERS"] = 2] = "OTHERS";
|
|
30
|
+
})(URLType || (URLType = {}));
|
|
@@ -4,6 +4,7 @@ export declare function readFile(directoryHandle: FileSystemDirectoryHandle, nam
|
|
|
4
4
|
endByte: number;
|
|
5
5
|
}): Promise<ArrayBuffer>;
|
|
6
6
|
export declare function writeFile(directoryHandle: FileSystemDirectoryHandle, name: string, file: ArrayBuffer): Promise<void>;
|
|
7
|
+
export declare function download(fileName: string, file: ArrayBuffer): boolean;
|
|
7
8
|
export declare function clearPartialFiles(): Promise<void>;
|
|
8
9
|
export declare function createStreamingFileName(url: string): string;
|
|
9
10
|
export declare function createPartialFileName(url: string, offsets?: {
|
|
@@ -66,6 +66,22 @@ export async function writeFile(directoryHandle, name, file) {
|
|
|
66
66
|
console.warn(`Error writing the file ${name}: ${error.message}`);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
+
export function download(fileName, file) {
|
|
70
|
+
try {
|
|
71
|
+
const blob = new Blob([file], { type: 'application/x-tar' });
|
|
72
|
+
const url = URL.createObjectURL(blob);
|
|
73
|
+
const a = document.createElement('a');
|
|
74
|
+
a.href = url;
|
|
75
|
+
a.download = fileName;
|
|
76
|
+
a.click();
|
|
77
|
+
URL.revokeObjectURL(url);
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.warn(`Error downloading file - ${fileName}: ` + error.message);
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
69
85
|
export async function clearPartialFiles() {
|
|
70
86
|
try {
|
|
71
87
|
await directoryHandle.removeEntry(FILE_SYSTEM_ROUTES.Partial, { recursive: true });
|
package/dist/umd/563.js
CHANGED
package/dist/umd/563.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"563.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/filePartial.ts","webpack://cod-dicomweb-server/./src/dataRetrieval/workers/filePartialWorker.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';\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\nexport async function readFile(\n directoryHandle: FileSystemDirectoryHandle,\n name: string,\n offsets?: { startByte: number; endByte: number }\n): Promise<ArrayBuffer> {\n if (!name) {\n return;\n }\n\n let 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]);\n }\n\n const fileName = pathParts.at(-1);\n const fileHandle = await currentDir.getFileHandle(fileName);\n return await fileHandle.getFile().then((file) => file.arrayBuffer());\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n\n if (offsets && pathParts[0] === FILE_SYSTEM_ROUTES.Partial) {\n try {\n const seriesInstanceUID = pathParts.at(-1).slice(0, name.lastIndexOf('.')).split('_')[0];\n pathParts = pathParts.slice(1);\n\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i]);\n }\n\n const fileHandle = await directoryHandle.getFileHandle(seriesInstanceUID + '.tar');\n const fileArraybuffer = await fileHandle.getFile().then((file) => file.arrayBuffer());\n return fileArraybuffer.slice(offsets.startByte, offsets.endByte);\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n }\n }\n }\n}\n\nexport async function writeFile(directoryHandle: FileSystemDirectoryHandle, name: string, file: ArrayBuffer): 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[pathParts.length - 1];\n const fileHandle = await currentDir.getFileHandle(fileName, { create: true });\n // @ts-ignore\n const fileWritable = await fileHandle.createWritable();\n await fileWritable.write(file);\n await fileWritable.close();\n } catch (error) {\n console.warn(`Error writing the file ${name}: ${error.message}`);\n }\n}\n\nexport async function clearPartialFiles(): Promise<void> {\n try {\n await directoryHandle.removeEntry(FILE_SYSTEM_ROUTES.Partial, { recursive: true });\n } catch (error) {\n console.warn(`Error clearing partial files: ${error.message}`);\n }\n}\n\nexport function createStreamingFileName(url: string): string {\n return url.split('series/')[1];\n}\n\nexport function createPartialFileName(url: string, offsets?: { startByte: number; endByte: number }): string {\n const seriesInstanceUID = url.split('series/')[1].split('.tar')[0];\n const offsetPart = `${offsets ? `_${offsets?.startByte}_${offsets?.endByte}` : ''}`;\n return `${FILE_SYSTEM_ROUTES.Partial}/${seriesInstanceUID}${offsetPart}.dcm`;\n}\n","import { CustomError } from '../../classes/customClasses';\nimport { readFile, writeFile, createPartialFileName } from '../../fileAccessSystemUtils';\n\nconst filePartial = {\n async partial(\n args: {\n url: string;\n offsets?: { startByte: number; endByte: number };\n headers?: Record<string, string>;\n directoryHandle?: FileSystemDirectoryHandle;\n },\n callBack: (data: { url: string; fileArraybuffer: Uint8Array; offsets: { startByte: number; endByte: number } }) => void\n ): Promise<void | Error> {\n const { url, offsets, headers, directoryHandle } = args;\n if (offsets?.startByte && offsets?.endByte) {\n headers['Range'] = `bytes=${offsets.startByte}-${offsets.endByte - 1}`;\n }\n\n const storageName = createPartialFileName(url, offsets);\n\n if (directoryHandle) {\n const file = await readFile(directoryHandle, storageName, offsets);\n if (file) {\n callBack({ url, fileArraybuffer: new Uint8Array(file), offsets });\n return;\n }\n }\n\n await fetch(url, { headers })\n .then((response) => response.arrayBuffer())\n .then((data) => {\n callBack({ url, fileArraybuffer: new Uint8Array(data), offsets });\n\n if (directoryHandle) {\n writeFile(directoryHandle, storageName, data);\n }\n })\n .catch((error) => {\n throw new CustomError('filePartial.ts: Error when fetching file: ' + error?.message);\n });\n }\n};\n\nexport default filePartial;\n","import { expose } from 'comlink';\nimport filePartial from '../scripts/filePartial';\n\nconst filePartialWorker = {\n ...filePartial,\n partial: (args: any) => filePartial.partial(args, postMessage)\n};\n\nexpose(filePartialWorker);\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","asyncGeneratorStep","_asyncToGenerator","_next","_throw","readFile","_x","_x2","_x3","_readFile","_callee2","directoryHandle","offsets","pathParts","currentDir","fileName","fileHandle","seriesInstanceUID","_i","_fileHandle","fileArraybuffer","_context2","split","getDirectoryHandle","at","getFileHandle","getFile","file","arrayBuffer","t0","lastIndexOf","startByte","endByte","t1","writeFile","_x4","_x5","_x6","_writeFile","_callee3","fileWritable","_context3","createWritable","write","createPartialFileName","url","offsetPart","filePartial","partial","args","callBack","_callee","headers","storageName","_context","Uint8Array","fetch","response","_objectSpread"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"563.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/filePartial.ts","webpack://cod-dicomweb-server/./src/dataRetrieval/workers/filePartialWorker.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';\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\nexport async function readFile(\n directoryHandle: FileSystemDirectoryHandle,\n name: string,\n offsets?: { startByte: number; endByte: number }\n): Promise<ArrayBuffer> {\n if (!name) {\n return;\n }\n\n let 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]);\n }\n\n const fileName = pathParts.at(-1);\n const fileHandle = await currentDir.getFileHandle(fileName);\n return await fileHandle.getFile().then((file) => file.arrayBuffer());\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n\n if (offsets && pathParts[0] === FILE_SYSTEM_ROUTES.Partial) {\n try {\n const seriesInstanceUID = pathParts.at(-1).slice(0, name.lastIndexOf('.')).split('_')[0];\n pathParts = pathParts.slice(1);\n\n for (let i = 0; i < pathParts.length - 1; i++) {\n currentDir = await currentDir.getDirectoryHandle(pathParts[i]);\n }\n\n const fileHandle = await directoryHandle.getFileHandle(seriesInstanceUID + '.tar');\n const fileArraybuffer = await fileHandle.getFile().then((file) => file.arrayBuffer());\n return fileArraybuffer.slice(offsets.startByte, offsets.endByte);\n } catch (error) {\n console.warn(`Error reading the file ${name}: ${error.message}`);\n }\n }\n }\n}\n\nexport async function writeFile(directoryHandle: FileSystemDirectoryHandle, name: string, file: ArrayBuffer): 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[pathParts.length - 1];\n const fileHandle = await currentDir.getFileHandle(fileName, { create: true });\n // @ts-ignore\n const fileWritable = await fileHandle.createWritable();\n await fileWritable.write(file);\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 try {\n await directoryHandle.removeEntry(FILE_SYSTEM_ROUTES.Partial, { recursive: true });\n } catch (error) {\n console.warn(`Error clearing partial files: ${error.message}`);\n }\n}\n\nexport function createStreamingFileName(url: string): string {\n return url.split('series/')[1];\n}\n\nexport function createPartialFileName(url: string, offsets?: { startByte: number; endByte: number }): string {\n const seriesInstanceUID = url.split('series/')[1].split('.tar')[0];\n const offsetPart = `${offsets ? `_${offsets?.startByte}_${offsets?.endByte}` : ''}`;\n return `${FILE_SYSTEM_ROUTES.Partial}/${seriesInstanceUID}${offsetPart}.dcm`;\n}\n","import { CustomError } from '../../classes/customClasses';\nimport { readFile, writeFile, createPartialFileName } from '../../fileAccessSystemUtils';\n\nconst filePartial = {\n async partial(\n args: {\n url: string;\n offsets?: { startByte: number; endByte: number };\n headers?: Record<string, string>;\n directoryHandle?: FileSystemDirectoryHandle;\n },\n callBack: (data: { url: string; fileArraybuffer: Uint8Array; offsets: { startByte: number; endByte: number } }) => void\n ): Promise<void | Error> {\n const { url, offsets, headers, directoryHandle } = args;\n if (offsets?.startByte && offsets?.endByte) {\n headers['Range'] = `bytes=${offsets.startByte}-${offsets.endByte - 1}`;\n }\n\n const storageName = createPartialFileName(url, offsets);\n\n if (directoryHandle) {\n const file = await readFile(directoryHandle, storageName, offsets);\n if (file) {\n callBack({ url, fileArraybuffer: new Uint8Array(file), offsets });\n return;\n }\n }\n\n await fetch(url, { headers })\n .then((response) => response.arrayBuffer())\n .then((data) => {\n callBack({ url, fileArraybuffer: new Uint8Array(data), offsets });\n\n if (directoryHandle) {\n writeFile(directoryHandle, storageName, data);\n }\n })\n .catch((error) => {\n throw new CustomError('filePartial.ts: Error when fetching file: ' + error?.message);\n });\n }\n};\n\nexport default filePartial;\n","import { expose } from 'comlink';\nimport filePartial from '../scripts/filePartial';\n\nconst filePartialWorker = {\n ...filePartial,\n partial: (args: any) => filePartial.partial(args, postMessage)\n};\n\nexpose(filePartialWorker);\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","asyncGeneratorStep","_asyncToGenerator","_next","_throw","readFile","_x","_x2","_x3","_readFile","_callee2","directoryHandle","offsets","pathParts","currentDir","fileName","fileHandle","seriesInstanceUID","_i","_fileHandle","fileArraybuffer","_context2","split","getDirectoryHandle","at","getFileHandle","getFile","file","arrayBuffer","t0","lastIndexOf","startByte","endByte","t1","writeFile","_x4","_x5","_x6","_writeFile","_callee3","fileWritable","_context3","createWritable","write","createPartialFileName","url","offsetPart","filePartial","partial","args","callBack","_callee","headers","storageName","_context","Uint8Array","fetch","response","_objectSpread"],"sourceRoot":""}
|