@loaders.gl/geotiff 4.2.0-alpha.4 → 4.2.0-alpha.6

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.
Files changed (50) hide show
  1. package/dist/dist.dev.js +222 -284
  2. package/dist/dist.min.js +30 -0
  3. package/dist/geotiff-loader.js +71 -52
  4. package/dist/index.cjs +23 -20
  5. package/dist/index.cjs.map +7 -0
  6. package/dist/index.d.ts +3 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3 -1
  9. package/dist/lib/load-geotiff.d.ts +1 -1
  10. package/dist/lib/load-geotiff.d.ts.map +1 -1
  11. package/dist/lib/load-geotiff.js +57 -21
  12. package/dist/lib/ome/load-ome-tiff.d.ts +1 -1
  13. package/dist/lib/ome/load-ome-tiff.d.ts.map +1 -1
  14. package/dist/lib/ome/load-ome-tiff.js +35 -41
  15. package/dist/lib/ome/ome-indexers.d.ts +1 -1
  16. package/dist/lib/ome/ome-indexers.d.ts.map +1 -1
  17. package/dist/lib/ome/ome-indexers.js +102 -114
  18. package/dist/lib/ome/ome-utils.d.ts +1 -1
  19. package/dist/lib/ome/ome-utils.d.ts.map +1 -1
  20. package/dist/lib/ome/ome-utils.js +56 -60
  21. package/dist/lib/ome/omexml.js +53 -55
  22. package/dist/lib/ome/utils.d.ts +2 -2
  23. package/dist/lib/ome/utils.d.ts.map +1 -1
  24. package/dist/lib/ome/utils.js +23 -12
  25. package/dist/lib/tiff-pixel-source.d.ts +1 -1
  26. package/dist/lib/tiff-pixel-source.d.ts.map +1 -1
  27. package/dist/lib/tiff-pixel-source.js +64 -84
  28. package/dist/lib/utils/tiff-utils.d.ts +1 -1
  29. package/dist/lib/utils/tiff-utils.d.ts.map +1 -1
  30. package/dist/lib/utils/tiff-utils.js +31 -18
  31. package/dist/loaders.js +40 -27
  32. package/dist/types.d.ts +1 -1
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/types.js +3 -1
  35. package/package.json +9 -4
  36. package/dist/geotiff-loader.js.map +0 -1
  37. package/dist/index.js.map +0 -1
  38. package/dist/lib/load-geotiff.js.map +0 -1
  39. package/dist/lib/ome/load-ome-tiff.js.map +0 -1
  40. package/dist/lib/ome/ome-indexers.js.map +0 -1
  41. package/dist/lib/ome/ome-utils.js.map +0 -1
  42. package/dist/lib/ome/omexml.js.map +0 -1
  43. package/dist/lib/ome/utils.js.map +0 -1
  44. package/dist/lib/tiff-pixel-source.js.map +0 -1
  45. package/dist/lib/utils/Pool.ts.disabled +0 -99
  46. package/dist/lib/utils/decoder.worker.ts.disabled +0 -21
  47. package/dist/lib/utils/proxies.ts.disabled +0 -96
  48. package/dist/lib/utils/tiff-utils.js.map +0 -1
  49. package/dist/loaders.js.map +0 -1
  50. package/dist/types.js.map +0 -1
package/dist/dist.dev.js CHANGED
@@ -2,8 +2,8 @@
2
2
  if (typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
- else if (typeof exports === 'object') exports['loader'] = factory();
6
- else root['loader'] = factory();})(globalThis, function () {
5
+ else if (typeof exports === 'object') exports['loaders'] = factory();
6
+ else root['loaders'] = factory();})(globalThis, function () {
7
7
  "use strict";
8
8
  var __exports__ = (() => {
9
9
  var __create = Object.create;
@@ -30,6 +30,7 @@ var __exports__ = (() => {
30
30
  }
31
31
  return to;
32
32
  };
33
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
33
34
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
34
35
  // If the importer is in node compatibility mode or this is not an ESM
35
36
  // file that has been converted to a CommonJS file using a Babel-
@@ -40,6 +41,13 @@ var __exports__ = (() => {
40
41
  ));
41
42
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
42
43
 
44
+ // external-global-plugin:@loaders.gl/core
45
+ var require_core = __commonJS({
46
+ "external-global-plugin:@loaders.gl/core"(exports, module) {
47
+ module.exports = globalThis.loaders;
48
+ }
49
+ });
50
+
43
51
  // ../../node_modules/xml-utils/get-attribute.js
44
52
  var require_get_attribute = __commonJS({
45
53
  "../../node_modules/xml-utils/get-attribute.js"(exports, module) {
@@ -7887,9 +7895,9 @@ var __exports__ = (() => {
7887
7895
  }
7888
7896
  });
7889
7897
 
7890
- // (disabled):../../node_modules/url/url.js
7898
+ // (disabled):url
7891
7899
  var require_url = __commonJS({
7892
- "(disabled):../../node_modules/url/url.js"() {
7900
+ "(disabled):url"() {
7893
7901
  }
7894
7902
  });
7895
7903
 
@@ -7959,6 +7967,7 @@ var __exports__ = (() => {
7959
7967
  var util = require_util();
7960
7968
  var defaultOptions = {
7961
7969
  allowBooleanAttributes: false,
7970
+ //A tag can have attributes without any value
7962
7971
  unpairedTags: []
7963
7972
  };
7964
7973
  exports.validate = function(xmlData, options) {
@@ -8029,7 +8038,11 @@ var __exports__ = (() => {
8029
8038
  const otg = tags.pop();
8030
8039
  if (tagName !== otg.tagName) {
8031
8040
  let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);
8032
- return getErrorObject("InvalidTag", "Expected closing tag '" + otg.tagName + "' (opened in line " + openPos.line + ", col " + openPos.col + ") instead of closing tag '" + tagName + "'.", getLineNumberForPosition(xmlData, tagStartPos));
8041
+ return getErrorObject(
8042
+ "InvalidTag",
8043
+ "Expected closing tag '" + otg.tagName + "' (opened in line " + openPos.line + ", col " + openPos.col + ") instead of closing tag '" + tagName + "'.",
8044
+ getLineNumberForPosition(xmlData, tagStartPos)
8045
+ );
8033
8046
  }
8034
8047
  if (tags.length == 0) {
8035
8048
  reachedRoot = true;
@@ -8044,10 +8057,7 @@ var __exports__ = (() => {
8044
8057
  return getErrorObject("InvalidXml", "Multiple possible root nodes found.", getLineNumberForPosition(xmlData, i));
8045
8058
  } else if (options.unpairedTags.indexOf(tagName) !== -1) {
8046
8059
  } else {
8047
- tags.push({
8048
- tagName,
8049
- tagStartPos
8050
- });
8060
+ tags.push({ tagName, tagStartPos });
8051
8061
  }
8052
8062
  tagFound = true;
8053
8063
  }
@@ -8091,10 +8101,7 @@ var __exports__ = (() => {
8091
8101
  } else if (tags.length == 1) {
8092
8102
  return getErrorObject("InvalidTag", "Unclosed tag '" + tags[0].tagName + "'.", getLineNumberForPosition(xmlData, tags[0].tagStartPos));
8093
8103
  } else if (tags.length > 0) {
8094
- return getErrorObject("InvalidXml", "Invalid '" + JSON.stringify(tags.map((t) => t.tagName), null, 4).replace(/\r?\n/g, "") + "' found.", {
8095
- line: 1,
8096
- col: 1
8097
- });
8104
+ return getErrorObject("InvalidXml", "Invalid '" + JSON.stringify(tags.map((t) => t.tagName), null, 4).replace(/\r?\n/g, "") + "' found.", { line: 1, col: 1 });
8098
8105
  }
8099
8106
  return true;
8100
8107
  };
@@ -8255,6 +8262,7 @@ var __exports__ = (() => {
8255
8262
  const lines = xmlData.substring(0, index).split(/\r?\n/);
8256
8263
  return {
8257
8264
  line: lines.length,
8265
+ // column number is last line's length + 1, because column numbering starts at 1:
8258
8266
  col: lines[lines.length - 1].length + 1
8259
8267
  };
8260
8268
  }
@@ -8274,10 +8282,14 @@ var __exports__ = (() => {
8274
8282
  textNodeName: "#text",
8275
8283
  ignoreAttributes: true,
8276
8284
  removeNSPrefix: false,
8285
+ // remove NS from tag name or attribute name if true
8277
8286
  allowBooleanAttributes: false,
8287
+ //a tag can have attributes without any value
8288
+ //ignoreRootElement : false,
8278
8289
  parseTagValue: true,
8279
8290
  parseAttributeValue: false,
8280
8291
  trimValues: true,
8292
+ //Trim string values of tag and attributes
8281
8293
  cdataPropName: false,
8282
8294
  numberParseOptions: {
8283
8295
  hex: true,
@@ -8291,6 +8303,7 @@ var __exports__ = (() => {
8291
8303
  return val2;
8292
8304
  },
8293
8305
  stopNodes: [],
8306
+ //nested tags will not be parsed even for errors
8294
8307
  alwaysCreateTextNode: false,
8295
8308
  isArray: () => false,
8296
8309
  commentPropName: false,
@@ -8304,6 +8317,7 @@ var __exports__ = (() => {
8304
8317
  updateTag: function(tagName, jPath, attrs) {
8305
8318
  return tagName;
8306
8319
  }
8320
+ // skipEmptyListItem: false
8307
8321
  };
8308
8322
  var buildOptions = function(options) {
8309
8323
  return Object.assign({}, defaultOptions, options);
@@ -8326,22 +8340,15 @@ var __exports__ = (() => {
8326
8340
  add(key, val2) {
8327
8341
  if (key === "__proto__")
8328
8342
  key = "#__proto__";
8329
- this.child.push({
8330
- [key]: val2
8331
- });
8343
+ this.child.push({ [key]: val2 });
8332
8344
  }
8333
8345
  addChild(node) {
8334
8346
  if (node.tagname === "__proto__")
8335
8347
  node.tagname = "#__proto__";
8336
8348
  if (node[":@"] && Object.keys(node[":@"]).length > 0) {
8337
- this.child.push({
8338
- [node.tagname]: node.child,
8339
- [":@"]: node[":@"]
8340
- });
8349
+ this.child.push({ [node.tagname]: node.child, [":@"]: node[":@"] });
8341
8350
  } else {
8342
- this.child.push({
8343
- [node.tagname]: node.child
8344
- });
8351
+ this.child.push({ [node.tagname]: node.child });
8345
8352
  }
8346
8353
  }
8347
8354
  };
@@ -8406,14 +8413,11 @@ var __exports__ = (() => {
8406
8413
  } else {
8407
8414
  throw new Error(`Invalid Tag instead of DOCTYPE`);
8408
8415
  }
8409
- return {
8410
- entities,
8411
- i
8412
- };
8416
+ return { entities, i };
8413
8417
  }
8414
8418
  function readEntityExp(xmlData, i) {
8415
8419
  let entityName2 = "";
8416
- for (; i < xmlData.length && xmlData[i] !== "'" && xmlData[i] !== '"'; i++) {
8420
+ for (; i < xmlData.length && (xmlData[i] !== "'" && xmlData[i] !== '"'); i++) {
8417
8421
  entityName2 += xmlData[i];
8418
8422
  }
8419
8423
  entityName2 = entityName2.trim();
@@ -8574,60 +8578,26 @@ var __exports__ = (() => {
8574
8578
  this.tagsNodeStack = [];
8575
8579
  this.docTypeEntities = {};
8576
8580
  this.lastEntities = {
8577
- "apos": {
8578
- regex: /&(apos|#39|#x27);/g,
8579
- val: "'"
8580
- },
8581
- "gt": {
8582
- regex: /&(gt|#62|#x3E);/g,
8583
- val: ">"
8584
- },
8585
- "lt": {
8586
- regex: /&(lt|#60|#x3C);/g,
8587
- val: "<"
8588
- },
8589
- "quot": {
8590
- regex: /&(quot|#34|#x22);/g,
8591
- val: '"'
8592
- }
8593
- };
8594
- this.ampEntity = {
8595
- regex: /&(amp|#38|#x26);/g,
8596
- val: "&"
8581
+ "apos": { regex: /&(apos|#39|#x27);/g, val: "'" },
8582
+ "gt": { regex: /&(gt|#62|#x3E);/g, val: ">" },
8583
+ "lt": { regex: /&(lt|#60|#x3C);/g, val: "<" },
8584
+ "quot": { regex: /&(quot|#34|#x22);/g, val: '"' }
8597
8585
  };
8586
+ this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: "&" };
8598
8587
  this.htmlEntities = {
8599
- "space": {
8600
- regex: /&(nbsp|#160);/g,
8601
- val: " "
8602
- },
8603
- "cent": {
8604
- regex: /&(cent|#162);/g,
8605
- val: "\xA2"
8606
- },
8607
- "pound": {
8608
- regex: /&(pound|#163);/g,
8609
- val: "\xA3"
8610
- },
8611
- "yen": {
8612
- regex: /&(yen|#165);/g,
8613
- val: "\xA5"
8614
- },
8615
- "euro": {
8616
- regex: /&(euro|#8364);/g,
8617
- val: "\u20AC"
8618
- },
8619
- "copyright": {
8620
- regex: /&(copy|#169);/g,
8621
- val: "\xA9"
8622
- },
8623
- "reg": {
8624
- regex: /&(reg|#174);/g,
8625
- val: "\xAE"
8626
- },
8627
- "inr": {
8628
- regex: /&(inr|#8377);/g,
8629
- val: "\u20B9"
8630
- }
8588
+ "space": { regex: /&(nbsp|#160);/g, val: " " },
8589
+ // "lt" : { regex: /&(lt|#60);/g, val: "<" },
8590
+ // "gt" : { regex: /&(gt|#62);/g, val: ">" },
8591
+ // "amp" : { regex: /&(amp|#38);/g, val: "&" },
8592
+ // "quot" : { regex: /&(quot|#34);/g, val: "\"" },
8593
+ // "apos" : { regex: /&(apos|#39);/g, val: "'" },
8594
+ "cent": { regex: /&(cent|#162);/g, val: "\xA2" },
8595
+ "pound": { regex: /&(pound|#163);/g, val: "\xA3" },
8596
+ "yen": { regex: /&(yen|#165);/g, val: "\xA5" },
8597
+ "euro": { regex: /&(euro|#8364);/g, val: "\u20AC" },
8598
+ "copyright": { regex: /&(copy|#169);/g, val: "\xA9" },
8599
+ "reg": { regex: /&(reg|#174);/g, val: "\xAE" },
8600
+ "inr": { regex: /&(inr|#8377);/g, val: "\u20B9" }
8631
8601
  };
8632
8602
  this.addExternalEntities = addExternalEntities;
8633
8603
  this.parseXml = parseXml;
@@ -8717,7 +8687,11 @@ var __exports__ = (() => {
8717
8687
  } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {
8718
8688
  attrs[aName] = newVal;
8719
8689
  } else {
8720
- attrs[aName] = parseValue(oldVal, this.options.parseAttributeValue, this.options.numberParseOptions);
8690
+ attrs[aName] = parseValue(
8691
+ oldVal,
8692
+ this.options.parseAttributeValue,
8693
+ this.options.numberParseOptions
8694
+ );
8721
8695
  }
8722
8696
  } else if (this.options.allowBooleanAttributes) {
8723
8697
  attrs[aName] = true;
@@ -8794,9 +8768,7 @@ var __exports__ = (() => {
8794
8768
  if (this.options.commentPropName) {
8795
8769
  const comment = xmlData.substring(i + 4, endIndex - 2);
8796
8770
  textData = this.saveTextToParentTag(textData, currentNode, jPath);
8797
- currentNode.add(this.options.commentPropName, [{
8798
- [this.options.textNodeName]: comment
8799
- }]);
8771
+ currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);
8800
8772
  }
8801
8773
  i = endIndex;
8802
8774
  } else if (xmlData.substr(i + 1, 2) === "!D") {
@@ -8808,9 +8780,7 @@ var __exports__ = (() => {
8808
8780
  const tagExp = xmlData.substring(i + 9, closeIndex);
8809
8781
  textData = this.saveTextToParentTag(textData, currentNode, jPath);
8810
8782
  if (this.options.cdataPropName) {
8811
- currentNode.add(this.options.cdataPropName, [{
8812
- [this.options.textNodeName]: tagExp
8813
- }]);
8783
+ currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);
8814
8784
  } else {
8815
8785
  let val2 = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true);
8816
8786
  if (val2 == void 0)
@@ -8933,7 +8903,14 @@ var __exports__ = (() => {
8933
8903
  if (textData) {
8934
8904
  if (isLeafNode === void 0)
8935
8905
  isLeafNode = Object.keys(currentNode.child).length === 0;
8936
- textData = this.parseTextData(textData, currentNode.tagname, jPath, false, currentNode[":@"] ? Object.keys(currentNode[":@"]).length !== 0 : false, isLeafNode);
8906
+ textData = this.parseTextData(
8907
+ textData,
8908
+ currentNode.tagname,
8909
+ jPath,
8910
+ false,
8911
+ currentNode[":@"] ? Object.keys(currentNode[":@"]).length !== 0 : false,
8912
+ isLeafNode
8913
+ );
8937
8914
  if (textData !== void 0 && textData !== "")
8938
8915
  currentNode.add(this.options.textNodeName, textData);
8939
8916
  textData = "";
@@ -9157,9 +9134,7 @@ var __exports__ = (() => {
9157
9134
  }
9158
9135
  }
9159
9136
  function isLeafTag(obj, options) {
9160
- const {
9161
- textNodeName
9162
- } = options;
9137
+ const { textNodeName } = options;
9163
9138
  const propCount = Object.keys(obj).length;
9164
9139
  if (propCount === 0) {
9165
9140
  return true;
@@ -9176,19 +9151,20 @@ var __exports__ = (() => {
9176
9151
  // ../../node_modules/fast-xml-parser/src/xmlparser/XMLParser.js
9177
9152
  var require_XMLParser = __commonJS({
9178
9153
  "../../node_modules/fast-xml-parser/src/xmlparser/XMLParser.js"(exports, module) {
9179
- var {
9180
- buildOptions
9181
- } = require_OptionsBuilder();
9154
+ var { buildOptions } = require_OptionsBuilder();
9182
9155
  var OrderedObjParser = require_OrderedObjParser();
9183
- var {
9184
- prettify
9185
- } = require_node2json();
9156
+ var { prettify } = require_node2json();
9186
9157
  var validator = require_validator();
9187
9158
  var XMLParser2 = class {
9188
9159
  constructor(options) {
9189
9160
  this.externalEntities = {};
9190
9161
  this.options = buildOptions(options);
9191
9162
  }
9163
+ /**
9164
+ * Parse XML dats to JS object
9165
+ * @param {string|Buffer} xmlData
9166
+ * @param {boolean|Object} validationOption
9167
+ */
9192
9168
  parse(xmlData, validationOption) {
9193
9169
  if (typeof xmlData === "string") {
9194
9170
  } else if (xmlData.toString) {
@@ -9212,6 +9188,11 @@ var __exports__ = (() => {
9212
9188
  else
9213
9189
  return prettify(orderedResult, this.options);
9214
9190
  }
9191
+ /**
9192
+ * Add Entity which is not by default supported by this library
9193
+ * @param {string} key
9194
+ * @param {string} value
9195
+ */
9215
9196
  addEntity(key, value) {
9216
9197
  if (value.indexOf("&") !== -1) {
9217
9198
  throw new Error("Entity value can't have '&'");
@@ -9381,24 +9362,18 @@ var __exports__ = (() => {
9381
9362
  preserveOrder: false,
9382
9363
  commentPropName: false,
9383
9364
  unpairedTags: [],
9384
- entities: [{
9385
- regex: new RegExp("&", "g"),
9386
- val: "&amp;"
9387
- }, {
9388
- regex: new RegExp(">", "g"),
9389
- val: "&gt;"
9390
- }, {
9391
- regex: new RegExp("<", "g"),
9392
- val: "&lt;"
9393
- }, {
9394
- regex: new RegExp("'", "g"),
9395
- val: "&apos;"
9396
- }, {
9397
- regex: new RegExp('"', "g"),
9398
- val: "&quot;"
9399
- }],
9365
+ entities: [
9366
+ { regex: new RegExp("&", "g"), val: "&amp;" },
9367
+ //it must be on top
9368
+ { regex: new RegExp(">", "g"), val: "&gt;" },
9369
+ { regex: new RegExp("<", "g"), val: "&lt;" },
9370
+ { regex: new RegExp("'", "g"), val: "&apos;" },
9371
+ { regex: new RegExp('"', "g"), val: "&quot;" }
9372
+ ],
9400
9373
  processEntities: true,
9401
9374
  stopNodes: [],
9375
+ // transformTagName: false,
9376
+ // transformAttributeName: false,
9402
9377
  oneListGroup: false
9403
9378
  };
9404
9379
  function Builder(options) {
@@ -9497,10 +9472,7 @@ var __exports__ = (() => {
9497
9472
  }
9498
9473
  }
9499
9474
  }
9500
- return {
9501
- attrStr,
9502
- val: val2
9503
- };
9475
+ return { attrStr, val: val2 };
9504
9476
  };
9505
9477
  Builder.prototype.buildAttrPairStr = function(attrName, val2) {
9506
9478
  val2 = this.options.attributeValueProcessor(attrName, "" + val2);
@@ -9608,13 +9580,14 @@ var __exports__ = (() => {
9608
9580
  }
9609
9581
  });
9610
9582
 
9611
- // src/index.ts
9612
- var src_exports = {};
9613
- __export(src_exports, {
9583
+ // bundle.ts
9584
+ var bundle_exports = {};
9585
+ __export(bundle_exports, {
9614
9586
  GeoTIFFLoader: () => GeoTIFFLoader,
9615
9587
  TiffPixelSource: () => TiffPixelSource,
9616
9588
  loadGeoTiff: () => loadGeoTiff
9617
9589
  });
9590
+ __reExport(bundle_exports, __toESM(require_core(), 1));
9618
9591
 
9619
9592
  // ../../node_modules/@petamoriken/float16/src/_util/messages.mjs
9620
9593
  var CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT = "Cannot convert undefined or null to object";
@@ -9626,7 +9599,12 @@ var __exports__ = (() => {
9626
9599
  };
9627
9600
  }
9628
9601
  function uncurryThisGetter(target, key) {
9629
- return uncurryThis(ReflectGetOwnPropertyDescriptor(target, key).get);
9602
+ return uncurryThis(
9603
+ ReflectGetOwnPropertyDescriptor(
9604
+ target,
9605
+ key
9606
+ ).get
9607
+ );
9630
9608
  }
9631
9609
  var {
9632
9610
  apply: ReflectApply,
@@ -9659,28 +9637,41 @@ var __exports__ = (() => {
9659
9637
  is: ObjectIs
9660
9638
  } = NativeObject;
9661
9639
  var ObjectPrototype = NativeObject.prototype;
9662
- var ObjectPrototype__lookupGetter__ = ObjectPrototype.__lookupGetter__ ? uncurryThis(ObjectPrototype.__lookupGetter__) : (object, key) => {
9663
- if (object == null) {
9664
- throw NativeTypeError(CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT);
9665
- }
9666
- let target = NativeObject(object);
9667
- do {
9668
- const descriptor = ReflectGetOwnPropertyDescriptor(target, key);
9669
- if (descriptor !== void 0) {
9670
- if (ObjectHasOwn(descriptor, "get")) {
9671
- return descriptor.get;
9672
- }
9673
- return;
9640
+ var ObjectPrototype__lookupGetter__ = (
9641
+ /** @type {any} */
9642
+ ObjectPrototype.__lookupGetter__ ? uncurryThis(
9643
+ /** @type {any} */
9644
+ ObjectPrototype.__lookupGetter__
9645
+ ) : (object, key) => {
9646
+ if (object == null) {
9647
+ throw NativeTypeError(
9648
+ CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT
9649
+ );
9674
9650
  }
9675
- } while ((target = ReflectGetPrototypeOf(target)) !== null);
9676
- };
9677
- var ObjectHasOwn = NativeObject.hasOwn || uncurryThis(ObjectPrototype.hasOwnProperty);
9651
+ let target = NativeObject(object);
9652
+ do {
9653
+ const descriptor = ReflectGetOwnPropertyDescriptor(target, key);
9654
+ if (descriptor !== void 0) {
9655
+ if (ObjectHasOwn(descriptor, "get")) {
9656
+ return descriptor.get;
9657
+ }
9658
+ return;
9659
+ }
9660
+ } while ((target = ReflectGetPrototypeOf(target)) !== null);
9661
+ }
9662
+ );
9663
+ var ObjectHasOwn = (
9664
+ /** @type {any} */
9665
+ NativeObject.hasOwn || uncurryThis(ObjectPrototype.hasOwnProperty)
9666
+ );
9678
9667
  var NativeArray = Array;
9679
9668
  var ArrayIsArray = NativeArray.isArray;
9680
9669
  var ArrayPrototype = NativeArray.prototype;
9681
9670
  var ArrayPrototypeJoin = uncurryThis(ArrayPrototype.join);
9682
9671
  var ArrayPrototypePush = uncurryThis(ArrayPrototype.push);
9683
- var ArrayPrototypeToLocaleString = uncurryThis(ArrayPrototype.toLocaleString);
9672
+ var ArrayPrototypeToLocaleString = uncurryThis(
9673
+ ArrayPrototype.toLocaleString
9674
+ );
9684
9675
  var NativeArrayPrototypeSymbolIterator = ArrayPrototype[SymbolIterator];
9685
9676
  var ArrayPrototypeSymbolIterator = uncurryThis(NativeArrayPrototypeSymbolIterator);
9686
9677
  var NativeArrayBuffer = ArrayBuffer;
@@ -9695,19 +9686,41 @@ var __exports__ = (() => {
9695
9686
  var TypedArrayPrototype = TypedArray.prototype;
9696
9687
  var NativeTypedArrayPrototypeSymbolIterator = TypedArrayPrototype[SymbolIterator];
9697
9688
  var TypedArrayPrototypeKeys = uncurryThis(TypedArrayPrototype.keys);
9698
- var TypedArrayPrototypeValues = uncurryThis(TypedArrayPrototype.values);
9699
- var TypedArrayPrototypeEntries = uncurryThis(TypedArrayPrototype.entries);
9689
+ var TypedArrayPrototypeValues = uncurryThis(
9690
+ TypedArrayPrototype.values
9691
+ );
9692
+ var TypedArrayPrototypeEntries = uncurryThis(
9693
+ TypedArrayPrototype.entries
9694
+ );
9700
9695
  var TypedArrayPrototypeSet = uncurryThis(TypedArrayPrototype.set);
9701
- var TypedArrayPrototypeReverse = uncurryThis(TypedArrayPrototype.reverse);
9696
+ var TypedArrayPrototypeReverse = uncurryThis(
9697
+ TypedArrayPrototype.reverse
9698
+ );
9702
9699
  var TypedArrayPrototypeFill = uncurryThis(TypedArrayPrototype.fill);
9703
- var TypedArrayPrototypeCopyWithin = uncurryThis(TypedArrayPrototype.copyWithin);
9700
+ var TypedArrayPrototypeCopyWithin = uncurryThis(
9701
+ TypedArrayPrototype.copyWithin
9702
+ );
9704
9703
  var TypedArrayPrototypeSort = uncurryThis(TypedArrayPrototype.sort);
9705
9704
  var TypedArrayPrototypeSlice = uncurryThis(TypedArrayPrototype.slice);
9706
- var TypedArrayPrototypeSubarray = uncurryThis(TypedArrayPrototype.subarray);
9707
- var TypedArrayPrototypeGetBuffer = uncurryThisGetter(TypedArrayPrototype, "buffer");
9708
- var TypedArrayPrototypeGetByteOffset = uncurryThisGetter(TypedArrayPrototype, "byteOffset");
9709
- var TypedArrayPrototypeGetLength = uncurryThisGetter(TypedArrayPrototype, "length");
9710
- var TypedArrayPrototypeGetSymbolToStringTag = uncurryThisGetter(TypedArrayPrototype, SymbolToStringTag);
9705
+ var TypedArrayPrototypeSubarray = uncurryThis(
9706
+ TypedArrayPrototype.subarray
9707
+ );
9708
+ var TypedArrayPrototypeGetBuffer = uncurryThisGetter(
9709
+ TypedArrayPrototype,
9710
+ "buffer"
9711
+ );
9712
+ var TypedArrayPrototypeGetByteOffset = uncurryThisGetter(
9713
+ TypedArrayPrototype,
9714
+ "byteOffset"
9715
+ );
9716
+ var TypedArrayPrototypeGetLength = uncurryThisGetter(
9717
+ TypedArrayPrototype,
9718
+ "length"
9719
+ );
9720
+ var TypedArrayPrototypeGetSymbolToStringTag = uncurryThisGetter(
9721
+ TypedArrayPrototype,
9722
+ SymbolToStringTag
9723
+ );
9711
9724
  var NativeUint32Array = Uint32Array;
9712
9725
  var NativeFloat32Array = Float32Array;
9713
9726
  var ArrayIteratorPrototype = ReflectGetPrototypeOf([][SymbolIterator]());
@@ -9716,8 +9729,12 @@ var __exports__ = (() => {
9716
9729
  }().next);
9717
9730
  var IteratorPrototype = ReflectGetPrototypeOf(ArrayIteratorPrototype);
9718
9731
  var DataViewPrototype = DataView.prototype;
9719
- var DataViewPrototypeGetUint16 = uncurryThis(DataViewPrototype.getUint16);
9720
- var DataViewPrototypeSetUint16 = uncurryThis(DataViewPrototype.setUint16);
9732
+ var DataViewPrototypeGetUint16 = uncurryThis(
9733
+ DataViewPrototype.getUint16
9734
+ );
9735
+ var DataViewPrototypeSetUint16 = uncurryThis(
9736
+ DataViewPrototype.setUint16
9737
+ );
9721
9738
  var NativeTypeError = TypeError;
9722
9739
  var NativeWeakSet = WeakSet;
9723
9740
  var WeakSetPrototype = NativeWeakSet.prototype;
@@ -9844,7 +9861,9 @@ var __exports__ = (() => {
9844
9861
 
9845
9862
  // ../../node_modules/@petamoriken/float16/src/DataView.mjs
9846
9863
  function getFloat16(dataView, byteOffset, ...opts) {
9847
- return convertToNumber(DataViewPrototypeGetUint16(dataView, byteOffset, ...safeIfNeeded(opts)));
9864
+ return convertToNumber(
9865
+ DataViewPrototypeGetUint16(dataView, byteOffset, ...safeIfNeeded(opts))
9866
+ );
9848
9867
  }
9849
9868
 
9850
9869
  // ../../node_modules/geotiff/dist-module/geotiffimage.js
@@ -12614,7 +12633,7 @@ var __exports__ = (() => {
12614
12633
  }
12615
12634
 
12616
12635
  // src/geotiff-loader.ts
12617
- var VERSION = true ? "4.2.0-alpha.4" : "latest";
12636
+ var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
12618
12637
  var GeoTIFFLoader = {
12619
12638
  id: "geotiff",
12620
12639
  name: "GeoTIFF",
@@ -12673,15 +12692,19 @@ var __exports__ = (() => {
12673
12692
  function getImageSize(source) {
12674
12693
  const interleaved = isInterleaved(source.shape);
12675
12694
  const [height, width] = source.shape.slice(interleaved ? -3 : -2);
12676
- return {
12677
- height,
12678
- width
12679
- };
12695
+ return { height, width };
12680
12696
  }
12681
12697
  var SIGNAL_ABORTED = "__vivSignalAborted";
12682
12698
 
12683
12699
  // src/lib/tiff-pixel-source.ts
12684
12700
  var TiffPixelSource = class {
12701
+ dtype;
12702
+ tileSize;
12703
+ shape;
12704
+ labels;
12705
+ meta;
12706
+ _indexer;
12707
+ // eslint-disable-next-line max-params
12685
12708
  constructor(indexer, dtype, tileSize, shape, labels, meta) {
12686
12709
  this._indexer = indexer;
12687
12710
  this.dtype = dtype;
@@ -12690,42 +12713,21 @@ var __exports__ = (() => {
12690
12713
  this.labels = labels;
12691
12714
  this.meta = meta;
12692
12715
  }
12693
- async getRaster({
12694
- selection,
12695
- signal
12696
- }) {
12716
+ async getRaster({ selection, signal }) {
12697
12717
  const image = await this._indexer(selection);
12698
- return this._readRasters(image, {
12699
- signal
12700
- });
12718
+ return this._readRasters(image, { signal });
12701
12719
  }
12702
- async getTile({
12703
- x,
12704
- y,
12705
- selection,
12706
- signal
12707
- }) {
12708
- const {
12709
- height,
12710
- width
12711
- } = this._getTileExtent(x, y);
12720
+ async getTile({ x, y, selection, signal }) {
12721
+ const { height, width } = this._getTileExtent(x, y);
12712
12722
  const x0 = x * this.tileSize;
12713
12723
  const y0 = y * this.tileSize;
12714
12724
  const window2 = [x0, y0, x0 + width, y0 + height];
12715
12725
  const image = await this._indexer(selection);
12716
- return this._readRasters(image, {
12717
- window: window2,
12718
- width,
12719
- height,
12720
- signal
12721
- });
12726
+ return this._readRasters(image, { window: window2, width, height, signal });
12722
12727
  }
12723
12728
  async _readRasters(image, props) {
12724
12729
  const interleave = isInterleaved(this.shape);
12725
- const raster = await image.readRasters({
12726
- interleave,
12727
- ...props
12728
- });
12730
+ const raster = await image.readRasters({ interleave, ...props });
12729
12731
  if (props?.signal?.aborted) {
12730
12732
  throw SIGNAL_ABORTED;
12731
12733
  }
@@ -12736,11 +12738,11 @@ var __exports__ = (() => {
12736
12738
  height: raster.height
12737
12739
  };
12738
12740
  }
12741
+ /*
12742
+ * Computes tile size given x, y coord.
12743
+ */
12739
12744
  _getTileExtent(x, y) {
12740
- const {
12741
- height: zoomLevelHeight,
12742
- width: zoomLevelWidth
12743
- } = getImageSize(this);
12745
+ const { height: zoomLevelHeight, width: zoomLevelWidth } = getImageSize(this);
12744
12746
  let height = this.tileSize;
12745
12747
  let width = this.tileSize;
12746
12748
  const maxXTileCoord = Math.floor(zoomLevelWidth / this.tileSize);
@@ -12751,10 +12753,7 @@ var __exports__ = (() => {
12751
12753
  if (y === maxYTileCoord) {
12752
12754
  height = zoomLevelHeight % this.tileSize;
12753
12755
  }
12754
- return {
12755
- height,
12756
- width
12757
- };
12756
+ return { height, width };
12758
12757
  }
12759
12758
  onTileError(err2) {
12760
12759
  console.error(err2);
@@ -12764,11 +12763,7 @@ var __exports__ = (() => {
12764
12763
  // src/lib/ome/ome-indexers.ts
12765
12764
  function getOmeLegacyIndexer(tiff, rootMeta) {
12766
12765
  const imgMeta = rootMeta[0];
12767
- const {
12768
- SizeT,
12769
- SizeC,
12770
- SizeZ
12771
- } = imgMeta.Pixels;
12766
+ const { SizeT, SizeC, SizeZ } = imgMeta.Pixels;
12772
12767
  const ifdIndexer = getOmeIFDIndexer(imgMeta);
12773
12768
  return (sel, pyramidLevel) => {
12774
12769
  const index = ifdIndexer(sel);
@@ -12786,9 +12781,7 @@ var __exports__ = (() => {
12786
12781
  if (pyramidLevel === 0) {
12787
12782
  return baseImage;
12788
12783
  }
12789
- const {
12790
- SubIFDs
12791
- } = baseImage.fileDirectory;
12784
+ const { SubIFDs } = baseImage.fileDirectory;
12792
12785
  if (!SubIFDs) {
12793
12786
  throw Error("Indexing Error: OME-TIFF is missing SubIFDs.");
12794
12787
  }
@@ -12798,58 +12791,37 @@ var __exports__ = (() => {
12798
12791
  ifdCache.set(key, tiff.parseFileDirectoryAt(subIfdOffset));
12799
12792
  }
12800
12793
  const ifd = await ifdCache.get(key);
12801
- return new baseImage.constructor(ifd.fileDirectory, ifd.geoKeyDirectory, tiff.dataView, tiff.littleEndian, tiff.cache, tiff.source);
12794
+ return new baseImage.constructor(
12795
+ ifd.fileDirectory,
12796
+ ifd.geoKeyDirectory,
12797
+ // @ts-expect-error
12798
+ tiff.dataView,
12799
+ tiff.littleEndian,
12800
+ tiff.cache,
12801
+ tiff.source
12802
+ );
12802
12803
  };
12803
12804
  }
12804
12805
  function getOmeIFDIndexer(imgMeta) {
12805
- const {
12806
- SizeC,
12807
- SizeZ,
12808
- SizeT,
12809
- DimensionOrder
12810
- } = imgMeta.Pixels;
12806
+ const { SizeC, SizeZ, SizeT, DimensionOrder } = imgMeta.Pixels;
12811
12807
  switch (DimensionOrder) {
12812
12808
  case "XYZCT": {
12813
- return ({
12814
- t,
12815
- c,
12816
- z
12817
- }) => t * SizeZ * SizeC + c * SizeZ + z;
12809
+ return ({ t, c, z }) => t * SizeZ * SizeC + c * SizeZ + z;
12818
12810
  }
12819
12811
  case "XYZTC": {
12820
- return ({
12821
- t,
12822
- c,
12823
- z
12824
- }) => c * SizeZ * SizeT + t * SizeZ + z;
12812
+ return ({ t, c, z }) => c * SizeZ * SizeT + t * SizeZ + z;
12825
12813
  }
12826
12814
  case "XYCTZ": {
12827
- return ({
12828
- t,
12829
- c,
12830
- z
12831
- }) => z * SizeC * SizeT + t * SizeC + c;
12815
+ return ({ t, c, z }) => z * SizeC * SizeT + t * SizeC + c;
12832
12816
  }
12833
12817
  case "XYCZT": {
12834
- return ({
12835
- t,
12836
- c,
12837
- z
12838
- }) => t * SizeC * SizeZ + z * SizeC + c;
12818
+ return ({ t, c, z }) => t * SizeC * SizeZ + z * SizeC + c;
12839
12819
  }
12840
12820
  case "XYTCZ": {
12841
- return ({
12842
- t,
12843
- c,
12844
- z
12845
- }) => z * SizeT * SizeC + c * SizeT + t;
12821
+ return ({ t, c, z }) => z * SizeT * SizeC + c * SizeT + t;
12846
12822
  }
12847
12823
  case "XYTZC": {
12848
- return ({
12849
- t,
12850
- c,
12851
- z
12852
- }) => c * SizeT * SizeZ + z * SizeT + t;
12824
+ return ({ t, c, z }) => c * SizeT * SizeZ + z * SizeT + t;
12853
12825
  }
12854
12826
  default: {
12855
12827
  throw new Error(`Invalid OME-XML DimensionOrder, got ${DimensionOrder}.`);
@@ -12886,9 +12858,7 @@ var __exports__ = (() => {
12886
12858
  int16: "Int16",
12887
12859
  int32: "Int32"
12888
12860
  };
12889
- function getOmePixelSourceMeta({
12890
- Pixels
12891
- }) {
12861
+ function getOmePixelSourceMeta({ Pixels }) {
12892
12862
  const labels = getLabels(Pixels.DimensionOrder);
12893
12863
  const dims = getDims(labels);
12894
12864
  const shape = Array(labels.length).fill(0);
@@ -12926,27 +12896,21 @@ var __exports__ = (() => {
12926
12896
  unit: Pixels.PhysicalSizeZUnit
12927
12897
  };
12928
12898
  }
12929
- return {
12930
- labels,
12931
- getShape,
12932
- physicalSizes,
12933
- dtype
12934
- };
12899
+ return { labels, getShape, physicalSizes, dtype };
12935
12900
  }
12936
- return {
12937
- labels,
12938
- getShape,
12939
- dtype
12940
- };
12901
+ return { labels, getShape, dtype };
12941
12902
  }
12942
12903
 
12943
12904
  // src/lib/ome/omexml.ts
12944
12905
  var import_fast_xml_parser = __toESM(require_fxp(), 1);
12945
12906
  var xmlParser = new import_fast_xml_parser.XMLParser({
12907
+ // Nests attributes withtout prefix under 'attr' key for each node
12946
12908
  attributeNamePrefix: "",
12947
12909
  attributesGroupName: "attr",
12910
+ // Parses numbers for both attributes and nodes
12948
12911
  parseTagValue: true,
12949
12912
  parseAttributeValue: true,
12913
+ // Forces attributes to be parsed
12950
12914
  ignoreAttributes: false
12951
12915
  });
12952
12916
  var parse = (str) => xmlParser.parse(str);
@@ -12958,19 +12922,11 @@ var __exports__ = (() => {
12958
12922
  return ensureArray(res.OME.Image).map((img) => {
12959
12923
  const Channels = ensureArray(img.Pixels.Channel).map((c) => {
12960
12924
  if ("Color" in c.attr) {
12961
- return {
12962
- ...c.attr,
12963
- Color: intToRgba(c.attr.Color)
12964
- };
12925
+ return { ...c.attr, Color: intToRgba(c.attr.Color) };
12965
12926
  }
12966
- return {
12967
- ...c.attr
12968
- };
12927
+ return { ...c.attr };
12969
12928
  });
12970
- const {
12971
- AquisitionDate = "",
12972
- Description = ""
12973
- } = img;
12929
+ const { AquisitionDate = "", Description = "" } = img;
12974
12930
  const image = {
12975
12931
  ...img.attr,
12976
12932
  AquisitionDate,
@@ -12983,9 +12939,7 @@ var __exports__ = (() => {
12983
12939
  return {
12984
12940
  ...image,
12985
12941
  format() {
12986
- const {
12987
- Pixels
12988
- } = image;
12942
+ const { Pixels } = image;
12989
12943
  const sizes = ["X", "Y", "Z"].map((name) => {
12990
12944
  const size = Pixels[`PhysicalSize${name}`];
12991
12945
  const unit = Pixels[`PhysicalSize${name}Unit`];
@@ -13023,37 +12977,21 @@ var __exports__ = (() => {
13023
12977
  pyramidIndexer = getOmeLegacyIndexer(tiff, omexml);
13024
12978
  }
13025
12979
  const imgMeta = omexml[0];
13026
- const {
13027
- labels,
13028
- getShape,
13029
- physicalSizes,
13030
- dtype
13031
- } = getOmePixelSourceMeta(imgMeta);
12980
+ const { labels, getShape, physicalSizes, dtype } = getOmePixelSourceMeta(imgMeta);
13032
12981
  const tileSize = firstImage.getTileWidth();
13033
- const meta = {
13034
- photometricInterpretation,
13035
- physicalSizes
13036
- };
13037
- const data = Array.from({
13038
- length: levels
13039
- }).map((_, resolution) => {
12982
+ const meta = { photometricInterpretation, physicalSizes };
12983
+ const data = Array.from({ length: levels }).map((_, resolution) => {
13040
12984
  const shape = getShape(resolution);
13041
12985
  const indexer = (sel) => pyramidIndexer(sel, resolution);
13042
12986
  const source = new TiffPixelSource(indexer, dtype, tileSize, shape, labels, meta);
13043
12987
  return source;
13044
12988
  });
13045
- return {
13046
- data,
13047
- metadata: imgMeta
13048
- };
12989
+ return { data, metadata: imgMeta };
13049
12990
  }
13050
12991
 
13051
12992
  // src/lib/load-geotiff.ts
13052
12993
  async function loadGeoTiff(source, opts = {}) {
13053
- const {
13054
- headers,
13055
- offsets
13056
- } = opts;
12994
+ const { headers, offsets } = opts;
13057
12995
  let tiff;
13058
12996
  if (source instanceof GeoTIFF) {
13059
12997
  tiff = source;
@@ -13070,7 +13008,7 @@ var __exports__ = (() => {
13070
13008
  }
13071
13009
  throw new Error("GeoTIFF not recognized.");
13072
13010
  }
13073
- return __toCommonJS(src_exports);
13011
+ return __toCommonJS(bundle_exports);
13074
13012
  })();
13075
13013
  /*! Bundled license information:
13076
13014