@loaders.gl/geotiff 4.0.0 → 4.0.1

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.
@@ -2,7 +2,7 @@
2
2
  import type { FileDirectory } from 'geotiff';
3
3
  /**
4
4
  * Pool for workers to decode chunks of the images.
5
- * This is a line-for-line copy of GeoTIFFs old implementation: https://github.com/geotiffjs/geotiff.js/blob/v1.0.0-beta.6/src/pool.js
5
+ * This is a line-for-line copy of GeoTIFFs old implementation: https://github.com/geotiffjs/geotiff.js/blob/v1.0.0-beta.8/src/pool.js
6
6
  */
7
7
  export default class Pool {
8
8
  workers: Worker[];
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.js","names":["defaultPoolSize","_globalThis$navigator","globalThis","_globalThis$navigator2","navigator","hardwareConcurrency","Pool","constructor","size","arguments","length","undefined","workers","idleWorkers","waitQueue","decoder","i","w","Worker","push","decode","fileDirectory","buffer","currentWorker","waitForWorker","Promise","resolve","reject","onmessage","event","finishTask","data","onerror","error","postMessage","idleWorker","pop","waiter","promise","destroy","terminate"],"sources":["../../../src/lib/utils/Pool.ts"],"sourcesContent":["/** eslint-disable */\nimport type {FileDirectory} from 'geotiff';\n\n// import Worker from 'web-worker:./decoder.worker.ts';\n\n// https://developer.mozilla.org/en-US/docs/Web/API/NavigatorConcurrentHardware/hardwareConcurrency\n// We need to give a different way of getting this for safari, so 4 is probably a safe bet\n// for parallel processing in the meantime. More can't really hurt since they'll just block\n// each other and not the UI thread, which is the real benefit.\nconst defaultPoolSize = globalThis?.navigator?.hardwareConcurrency ?? 4;\n\n/**\n * Pool for workers to decode chunks of the images.\n * This is a line-for-line copy of GeoTIFFs old implementation: https://github.com/geotiffjs/geotiff.js/blob/v1.0.0-beta.6/src/pool.js\n */\nexport default class Pool {\n workers: Worker[];\n idleWorkers: Worker[];\n waitQueue: any[];\n decoder: null;\n\n /**\n * @constructor\n * @param {Number} size The size of the pool. Defaults to the number of CPUs\n * available. When this parameter is `null` or 0, then the\n * decoding will be done in the main thread.\n */\n constructor(size = defaultPoolSize) {\n this.workers = [];\n this.idleWorkers = [];\n this.waitQueue = [];\n this.decoder = null;\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < size; ++i) {\n const w = new Worker('./decoder.worker');\n this.workers.push(w);\n this.idleWorkers.push(w);\n }\n }\n\n /**\n * Decode the given block of bytes with the set compression method.\n * @param {ArrayBuffer} buffer the array buffer of bytes to decode.\n * @returns {Promise.<ArrayBuffer>} the decoded result as a `Promise`\n */\n async decode(fileDirectory: FileDirectory, buffer: ArrayBuffer) {\n const currentWorker = await this.waitForWorker();\n return new Promise((resolve, reject) => {\n currentWorker.onmessage = (event) => {\n // this.workers.push(currentWorker);\n // eslint-disable-next-line\n this.finishTask(currentWorker);\n resolve(event.data[0]);\n };\n currentWorker.onerror = (error) => {\n // this.workers.push(currentWorker);\n // eslint-disable-next-line\n this.finishTask(currentWorker);\n reject(error);\n };\n currentWorker.postMessage(['decode', fileDirectory, buffer], [buffer]);\n });\n }\n\n async waitForWorker() {\n const idleWorker = this.idleWorkers.pop();\n if (idleWorker) {\n return idleWorker;\n }\n const waiter: any = {};\n const promise = new Promise((resolve) => {\n waiter.resolve = resolve;\n });\n\n this.waitQueue.push(waiter);\n return promise as Promise<Worker>;\n }\n\n async finishTask(currentWorker: Worker) {\n const waiter = this.waitQueue.pop();\n if (waiter) {\n waiter.resolve(currentWorker);\n } else {\n this.idleWorkers.push(currentWorker);\n }\n }\n\n destroy() {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < this.workers.length; ++i) {\n this.workers[i].terminate();\n }\n }\n}\n"],"mappings":";AASA,MAAMA,eAAe,IAAAC,qBAAA,GAAGC,UAAU,aAAVA,UAAU,wBAAAC,sBAAA,GAAVD,UAAU,CAAEE,SAAS,cAAAD,sBAAA,uBAArBA,sBAAA,CAAuBE,mBAAmB,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,CAAC;AAMvE,eAAe,MAAMK,IAAI,CAAC;EAYxBC,WAAWA,CAAA,EAAyB;IAAA,IAAxBC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGT,eAAe;IAAA,KAXlCY,OAAO;IAAA,KACPC,WAAW;IAAA,KACXC,SAAS;IAAA,KACTC,OAAO;IASL,IAAI,CAACH,OAAO,GAAG,EAAE;IACjB,IAAI,CAACC,WAAW,GAAG,EAAE;IACrB,IAAI,CAACC,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,OAAO,GAAG,IAAI;IAGnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,IAAI,EAAE,EAAEQ,CAAC,EAAE;MAC7B,MAAMC,CAAC,GAAG,IAAIC,MAAM,CAAC,kBAAkB,CAAC;MACxC,IAAI,CAACN,OAAO,CAACO,IAAI,CAACF,CAAC,CAAC;MACpB,IAAI,CAACJ,WAAW,CAACM,IAAI,CAACF,CAAC,CAAC;IAC1B;EACF;EAOA,MAAMG,MAAMA,CAACC,aAA4B,EAAEC,MAAmB,EAAE;IAC9D,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC;IAChD,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtCJ,aAAa,CAACK,SAAS,GAAIC,KAAK,IAAK;QAGnC,IAAI,CAACC,UAAU,CAACP,aAAa,CAAC;QAC9BG,OAAO,CAACG,KAAK,CAACE,IAAI,CAAC,CAAC,CAAC,CAAC;MACxB,CAAC;MACDR,aAAa,CAACS,OAAO,GAAIC,KAAK,IAAK;QAGjC,IAAI,CAACH,UAAU,CAACP,aAAa,CAAC;QAC9BI,MAAM,CAACM,KAAK,CAAC;MACf,CAAC;MACDV,aAAa,CAACW,WAAW,CAAC,CAAC,QAAQ,EAAEb,aAAa,EAAEC,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC;EACJ;EAEA,MAAME,aAAaA,CAAA,EAAG;IACpB,MAAMW,UAAU,GAAG,IAAI,CAACtB,WAAW,CAACuB,GAAG,CAAC,CAAC;IACzC,IAAID,UAAU,EAAE;MACd,OAAOA,UAAU;IACnB;IACA,MAAME,MAAW,GAAG,CAAC,CAAC;IACtB,MAAMC,OAAO,GAAG,IAAIb,OAAO,CAAEC,OAAO,IAAK;MACvCW,MAAM,CAACX,OAAO,GAAGA,OAAO;IAC1B,CAAC,CAAC;IAEF,IAAI,CAACZ,SAAS,CAACK,IAAI,CAACkB,MAAM,CAAC;IAC3B,OAAOC,OAAO;EAChB;EAEA,MAAMR,UAAUA,CAACP,aAAqB,EAAE;IACtC,MAAMc,MAAM,GAAG,IAAI,CAACvB,SAAS,CAACsB,GAAG,CAAC,CAAC;IACnC,IAAIC,MAAM,EAAE;MACVA,MAAM,CAACX,OAAO,CAACH,aAAa,CAAC;IAC/B,CAAC,MAAM;MACL,IAAI,CAACV,WAAW,CAACM,IAAI,CAACI,aAAa,CAAC;IACtC;EACF;EAEAgB,OAAOA,CAAA,EAAG;IAER,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACJ,OAAO,CAACF,MAAM,EAAE,EAAEM,CAAC,EAAE;MAC5C,IAAI,CAACJ,OAAO,CAACI,CAAC,CAAC,CAACwB,SAAS,CAAC,CAAC;IAC7B;EACF;AACF"}
1
+ {"version":3,"file":"Pool.js","names":["defaultPoolSize","_globalThis$navigator","globalThis","_globalThis$navigator2","navigator","hardwareConcurrency","Pool","constructor","size","arguments","length","undefined","workers","idleWorkers","waitQueue","decoder","i","w","Worker","push","decode","fileDirectory","buffer","currentWorker","waitForWorker","Promise","resolve","reject","onmessage","event","finishTask","data","onerror","error","postMessage","idleWorker","pop","waiter","promise","destroy","terminate"],"sources":["../../../src/lib/utils/Pool.ts"],"sourcesContent":["/** eslint-disable */\nimport type {FileDirectory} from 'geotiff';\n\n// import Worker from 'web-worker:./decoder.worker.ts';\n\n// https://developer.mozilla.org/en-US/docs/Web/API/NavigatorConcurrentHardware/hardwareConcurrency\n// We need to give a different way of getting this for safari, so 4 is probably a safe bet\n// for parallel processing in the meantime. More can't really hurt since they'll just block\n// each other and not the UI thread, which is the real benefit.\nconst defaultPoolSize = globalThis?.navigator?.hardwareConcurrency ?? 4;\n\n/**\n * Pool for workers to decode chunks of the images.\n * This is a line-for-line copy of GeoTIFFs old implementation: https://github.com/geotiffjs/geotiff.js/blob/v1.0.0-beta.8/src/pool.js\n */\nexport default class Pool {\n workers: Worker[];\n idleWorkers: Worker[];\n waitQueue: any[];\n decoder: null;\n\n /**\n * @constructor\n * @param {Number} size The size of the pool. Defaults to the number of CPUs\n * available. When this parameter is `null` or 0, then the\n * decoding will be done in the main thread.\n */\n constructor(size = defaultPoolSize) {\n this.workers = [];\n this.idleWorkers = [];\n this.waitQueue = [];\n this.decoder = null;\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < size; ++i) {\n const w = new Worker('./decoder.worker');\n this.workers.push(w);\n this.idleWorkers.push(w);\n }\n }\n\n /**\n * Decode the given block of bytes with the set compression method.\n * @param {ArrayBuffer} buffer the array buffer of bytes to decode.\n * @returns {Promise.<ArrayBuffer>} the decoded result as a `Promise`\n */\n async decode(fileDirectory: FileDirectory, buffer: ArrayBuffer) {\n const currentWorker = await this.waitForWorker();\n return new Promise((resolve, reject) => {\n currentWorker.onmessage = (event) => {\n // this.workers.push(currentWorker);\n // eslint-disable-next-line\n this.finishTask(currentWorker);\n resolve(event.data[0]);\n };\n currentWorker.onerror = (error) => {\n // this.workers.push(currentWorker);\n // eslint-disable-next-line\n this.finishTask(currentWorker);\n reject(error);\n };\n currentWorker.postMessage(['decode', fileDirectory, buffer], [buffer]);\n });\n }\n\n async waitForWorker() {\n const idleWorker = this.idleWorkers.pop();\n if (idleWorker) {\n return idleWorker;\n }\n const waiter: any = {};\n const promise = new Promise((resolve) => {\n waiter.resolve = resolve;\n });\n\n this.waitQueue.push(waiter);\n return promise as Promise<Worker>;\n }\n\n async finishTask(currentWorker: Worker) {\n const waiter = this.waitQueue.pop();\n if (waiter) {\n waiter.resolve(currentWorker);\n } else {\n this.idleWorkers.push(currentWorker);\n }\n }\n\n destroy() {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < this.workers.length; ++i) {\n this.workers[i].terminate();\n }\n }\n}\n"],"mappings":";AASA,MAAMA,eAAe,IAAAC,qBAAA,GAAGC,UAAU,aAAVA,UAAU,wBAAAC,sBAAA,GAAVD,UAAU,CAAEE,SAAS,cAAAD,sBAAA,uBAArBA,sBAAA,CAAuBE,mBAAmB,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,CAAC;AAMvE,eAAe,MAAMK,IAAI,CAAC;EAYxBC,WAAWA,CAAA,EAAyB;IAAA,IAAxBC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGT,eAAe;IAAA,KAXlCY,OAAO;IAAA,KACPC,WAAW;IAAA,KACXC,SAAS;IAAA,KACTC,OAAO;IASL,IAAI,CAACH,OAAO,GAAG,EAAE;IACjB,IAAI,CAACC,WAAW,GAAG,EAAE;IACrB,IAAI,CAACC,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,OAAO,GAAG,IAAI;IAGnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,IAAI,EAAE,EAAEQ,CAAC,EAAE;MAC7B,MAAMC,CAAC,GAAG,IAAIC,MAAM,CAAC,kBAAkB,CAAC;MACxC,IAAI,CAACN,OAAO,CAACO,IAAI,CAACF,CAAC,CAAC;MACpB,IAAI,CAACJ,WAAW,CAACM,IAAI,CAACF,CAAC,CAAC;IAC1B;EACF;EAOA,MAAMG,MAAMA,CAACC,aAA4B,EAAEC,MAAmB,EAAE;IAC9D,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC;IAChD,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtCJ,aAAa,CAACK,SAAS,GAAIC,KAAK,IAAK;QAGnC,IAAI,CAACC,UAAU,CAACP,aAAa,CAAC;QAC9BG,OAAO,CAACG,KAAK,CAACE,IAAI,CAAC,CAAC,CAAC,CAAC;MACxB,CAAC;MACDR,aAAa,CAACS,OAAO,GAAIC,KAAK,IAAK;QAGjC,IAAI,CAACH,UAAU,CAACP,aAAa,CAAC;QAC9BI,MAAM,CAACM,KAAK,CAAC;MACf,CAAC;MACDV,aAAa,CAACW,WAAW,CAAC,CAAC,QAAQ,EAAEb,aAAa,EAAEC,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC;EACJ;EAEA,MAAME,aAAaA,CAAA,EAAG;IACpB,MAAMW,UAAU,GAAG,IAAI,CAACtB,WAAW,CAACuB,GAAG,CAAC,CAAC;IACzC,IAAID,UAAU,EAAE;MACd,OAAOA,UAAU;IACnB;IACA,MAAME,MAAW,GAAG,CAAC,CAAC;IACtB,MAAMC,OAAO,GAAG,IAAIb,OAAO,CAAEC,OAAO,IAAK;MACvCW,MAAM,CAACX,OAAO,GAAGA,OAAO;IAC1B,CAAC,CAAC;IAEF,IAAI,CAACZ,SAAS,CAACK,IAAI,CAACkB,MAAM,CAAC;IAC3B,OAAOC,OAAO;EAChB;EAEA,MAAMR,UAAUA,CAACP,aAAqB,EAAE;IACtC,MAAMc,MAAM,GAAG,IAAI,CAACvB,SAAS,CAACsB,GAAG,CAAC,CAAC;IACnC,IAAIC,MAAM,EAAE;MACVA,MAAM,CAACX,OAAO,CAACH,aAAa,CAAC;IAC/B,CAAC,MAAM;MACL,IAAI,CAACV,WAAW,CAACM,IAAI,CAACI,aAAa,CAAC;IACtC;EACF;EAEAgB,OAAOA,CAAA,EAAG;IAER,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACJ,OAAO,CAACF,MAAM,EAAE,EAAEM,CAAC,EAAE;MAC5C,IAAI,CAACJ,OAAO,CAACI,CAAC,CAAC,CAACwB,SAAS,CAAC,CAAC;IAC7B;EACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/geotiff",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "Framework-independent loaders for tiff and geotiff",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -47,5 +47,5 @@
47
47
  "fast-xml-parser": "^4.2.5",
48
48
  "geotiff": "^1.0.4"
49
49
  },
50
- "gitHead": "9b4211dc0ecd4134a1638ac0a29c5ea9008fd971"
50
+ "gitHead": "765e5a26a6bf3f2cc02cabffc4a1e3665ec92a53"
51
51
  }
@@ -11,7 +11,7 @@ const defaultPoolSize = globalThis?.navigator?.hardwareConcurrency ?? 4;
11
11
 
12
12
  /**
13
13
  * Pool for workers to decode chunks of the images.
14
- * This is a line-for-line copy of GeoTIFFs old implementation: https://github.com/geotiffjs/geotiff.js/blob/v1.0.0-beta.6/src/pool.js
14
+ * This is a line-for-line copy of GeoTIFFs old implementation: https://github.com/geotiffjs/geotiff.js/blob/v1.0.0-beta.8/src/pool.js
15
15
  */
16
16
  export default class Pool {
17
17
  workers: Worker[];