astro-viewer 3.6.0 → 3.8.0

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 (67) hide show
  1. package/dist/64.astroviewer.cjs +37 -0
  2. package/dist/64.astroviewer.cjs.map +1 -0
  3. package/dist/64.astroviewer.js +41 -0
  4. package/dist/64.astroviewer.js.map +1 -0
  5. package/dist/64.astroviewer.min.js +2 -0
  6. package/dist/64.astroviewer.min.js.map +1 -0
  7. package/dist/911.astroviewer.cjs +4047 -0
  8. package/dist/911.astroviewer.cjs.map +1 -0
  9. package/dist/911.astroviewer.js +735 -0
  10. package/dist/911.astroviewer.js.map +1 -0
  11. package/dist/911.astroviewer.min.js +2 -0
  12. package/dist/911.astroviewer.min.js.map +1 -0
  13. package/dist/astroviewer.cjs +3019 -479
  14. package/dist/astroviewer.cjs.map +1 -1
  15. package/dist/astroviewer.js +3172 -476
  16. package/dist/astroviewer.js.map +1 -1
  17. package/dist/astroviewer.min.js +1 -1
  18. package/dist/astroviewer.min.js.map +1 -1
  19. package/lib-esm/AstroSphere.d.ts +10 -2
  20. package/lib-esm/AstroSphere.d.ts.map +1 -1
  21. package/lib-esm/AstroSphere.js +92 -28
  22. package/lib-esm/AstroSphere.js.map +1 -1
  23. package/lib-esm/AstroViewer.d.ts +32 -23
  24. package/lib-esm/AstroViewer.d.ts.map +1 -1
  25. package/lib-esm/AstroViewer.js +125 -69
  26. package/lib-esm/AstroViewer.js.map +1 -1
  27. package/lib-esm/model/hips/AllSky.d.ts +7 -4
  28. package/lib-esm/model/hips/AllSky.d.ts.map +1 -1
  29. package/lib-esm/model/hips/AllSky.js +99 -33
  30. package/lib-esm/model/hips/AllSky.js.map +1 -1
  31. package/lib-esm/model/hips/AncestorTile.d.ts +7 -4
  32. package/lib-esm/model/hips/AncestorTile.d.ts.map +1 -1
  33. package/lib-esm/model/hips/AncestorTile.js +97 -53
  34. package/lib-esm/model/hips/AncestorTile.js.map +1 -1
  35. package/lib-esm/model/hips/FitsTileLoader.d.ts +9 -0
  36. package/lib-esm/model/hips/FitsTileLoader.d.ts.map +1 -0
  37. package/lib-esm/model/hips/FitsTileLoader.js +65 -0
  38. package/lib-esm/model/hips/FitsTileLoader.js.map +1 -0
  39. package/lib-esm/model/hips/HiPS.d.ts +16 -5
  40. package/lib-esm/model/hips/HiPS.d.ts.map +1 -1
  41. package/lib-esm/model/hips/HiPS.js +160 -72
  42. package/lib-esm/model/hips/HiPS.js.map +1 -1
  43. package/lib-esm/model/hips/HiPSCoverage.d.ts +20 -0
  44. package/lib-esm/model/hips/HiPSCoverage.d.ts.map +1 -0
  45. package/lib-esm/model/hips/HiPSCoverage.js +166 -0
  46. package/lib-esm/model/hips/HiPSCoverage.js.map +1 -0
  47. package/lib-esm/model/hips/Tile.d.ts +8 -5
  48. package/lib-esm/model/hips/Tile.d.ts.map +1 -1
  49. package/lib-esm/model/hips/Tile.js +116 -56
  50. package/lib-esm/model/hips/Tile.js.map +1 -1
  51. package/lib-esm/model/hips/TileBuffer.d.ts +13 -4
  52. package/lib-esm/model/hips/TileBuffer.d.ts.map +1 -1
  53. package/lib-esm/model/hips/TileBuffer.js +52 -11
  54. package/lib-esm/model/hips/TileBuffer.js.map +1 -1
  55. package/lib-esm/model/hips/VisibleTilesManager.d.ts +5 -5
  56. package/lib-esm/model/hips/VisibleTilesManager.d.ts.map +1 -1
  57. package/lib-esm/model/hips/VisibleTilesManager.js +6 -20
  58. package/lib-esm/model/hips/VisibleTilesManager.js.map +1 -1
  59. package/lib-esm/shader/HiPSShaderProgram.d.ts +11 -2
  60. package/lib-esm/shader/HiPSShaderProgram.d.ts.map +1 -1
  61. package/lib-esm/shader/HiPSShaderProgram.js +99 -53
  62. package/lib-esm/shader/HiPSShaderProgram.js.map +1 -1
  63. package/lib-esm/shader/ShaderManager.d.ts +2 -0
  64. package/lib-esm/shader/ShaderManager.d.ts.map +1 -1
  65. package/lib-esm/shader/ShaderManager.js +199 -96
  66. package/lib-esm/shader/ShaderManager.js.map +1 -1
  67. package/package.json +3 -3
@@ -176,15 +176,7 @@ export default class ShaderManager {
176
176
 
177
177
  in vec2 vTextureCoord;
178
178
 
179
- uniform sampler2D uSampler0;
180
- uniform sampler2D uSampler1;
181
- uniform sampler2D uSampler2;
182
- uniform sampler2D uSampler3;
183
- uniform sampler2D uSampler4;
184
- uniform sampler2D uSampler5;
185
- uniform sampler2D uSampler6;
186
- uniform sampler2D uSampler7;
187
-
179
+ uniform float uLayerOpacity;
188
180
  uniform float uFactor0;
189
181
  uniform float uFactor1;
190
182
  uniform float uFactor2;
@@ -194,24 +186,54 @@ export default class ShaderManager {
194
186
  uniform float uFactor6;
195
187
  uniform float uFactor7;
196
188
 
189
+ ${ShaderManager.hipsSamplersGLSL()}
190
+
197
191
  out vec4 fragColor;
198
192
 
199
193
  void main() {
200
194
  vec3 finalColor = vec3(0.0);
201
195
 
202
- if (uFactor0 >= 0.0){
203
- vec4 mycolor;
204
- #if __VERSION__ > 120
205
- vec4 color0 = texture(uSampler0, vTextureCoord);
206
- #else
207
- vec4 color0 = texture2D(uSampler0, vTextureCoord);
208
- #endif
209
- mycolor = color0;
210
- finalColor += mycolor.rgb * uFactor0;
211
- } else if (uFactor7 >= 0.0){
212
- finalColor = vec3(1.0, 0.0, 0.0);
196
+ if (uFactor0 >= 0.0) {
197
+ finalColor +=
198
+ sampleHiPSTexture0(vTextureCoord).rgb * uFactor0;
199
+ }
200
+
201
+ if (uFactor1 >= 0.0) {
202
+ finalColor +=
203
+ sampleHiPSTexture1(vTextureCoord).rgb * uFactor1;
204
+ }
205
+
206
+ if (uFactor2 >= 0.0) {
207
+ finalColor +=
208
+ sampleHiPSTexture2(vTextureCoord).rgb * uFactor2;
209
+ }
210
+
211
+ if (uFactor3 >= 0.0) {
212
+ finalColor +=
213
+ sampleHiPSTexture3(vTextureCoord).rgb * uFactor3;
214
+ }
215
+
216
+ if (uFactor4 >= 0.0) {
217
+ finalColor +=
218
+ sampleHiPSTexture4(vTextureCoord).rgb * uFactor4;
219
+ }
220
+
221
+ if (uFactor5 >= 0.0) {
222
+ finalColor +=
223
+ sampleHiPSTexture5(vTextureCoord).rgb * uFactor5;
224
+ }
225
+
226
+ if (uFactor6 >= 0.0) {
227
+ finalColor +=
228
+ sampleHiPSTexture6(vTextureCoord).rgb * uFactor6;
213
229
  }
214
- fragColor = vec4(finalColor, 1.0);
230
+
231
+ if (uFactor7 >= 0.0) {
232
+ finalColor +=
233
+ sampleHiPSTexture7(vTextureCoord).rgb * uFactor7;
234
+ }
235
+
236
+ fragColor = vec4(finalColor, uLayerOpacity);
215
237
  }`;
216
238
  }
217
239
  static hipsGrayscaleFS() {
@@ -220,15 +242,7 @@ export default class ShaderManager {
220
242
 
221
243
  in vec2 vTextureCoord;
222
244
 
223
- uniform sampler2D uSampler0;
224
- uniform sampler2D uSampler1;
225
- uniform sampler2D uSampler2;
226
- uniform sampler2D uSampler3;
227
- uniform sampler2D uSampler4;
228
- uniform sampler2D uSampler5;
229
- uniform sampler2D uSampler6;
230
- uniform sampler2D uSampler7;
231
-
245
+ uniform float uLayerOpacity;
232
246
  uniform float uFactor0;
233
247
  uniform float uFactor1;
234
248
  uniform float uFactor2;
@@ -238,116 +252,205 @@ export default class ShaderManager {
238
252
  uniform float uFactor6;
239
253
  uniform float uFactor7;
240
254
 
255
+ ${ShaderManager.hipsSamplersGLSL()}
256
+
241
257
  out vec4 fragColor;
242
258
 
243
259
  void main() {
244
260
  vec3 finalColor = vec3(0.0);
245
261
 
246
- if (uFactor0 >= 0.0){
247
- #if __VERSION__ > 120
248
- vec4 color0 = texture(uSampler0, vTextureCoord);
249
- #else
250
- vec4 color0 = texture2D(uSampler0, vTextureCoord);
251
- #endif
252
- float gray = 0.21 * color0.r + 0.71 * color0.g + 0.07 * color0.b;
253
- finalColor = color0.rgb * (1.0 - uFactor0) + vec3(gray) * uFactor0;
262
+ if (uFactor0 >= 0.0) {
263
+ vec4 color0 = sampleHiPSTexture0(vTextureCoord);
264
+
265
+ float gray =
266
+ 0.21 * color0.r +
267
+ 0.71 * color0.g +
268
+ 0.07 * color0.b;
269
+
270
+ finalColor =
271
+ color0.rgb * (1.0 - uFactor0) +
272
+ vec3(gray) * uFactor0;
254
273
  }
255
- if (uFactor1 >= 0.0){
256
- #if __VERSION__ > 120
257
- vec4 color1 = texture(uSampler1, vTextureCoord);
258
- #else
259
- vec4 color1 = texture2D(uSampler1, vTextureCoord);
260
- #endif
274
+
275
+ if (uFactor1 >= 0.0) {
276
+ vec4 color1 = sampleHiPSTexture1(vTextureCoord);
261
277
  finalColor += color1.rgb * uFactor1;
262
278
  }
263
- if (uFactor2 >= 0.0){
264
- #if __VERSION__ > 120
265
- vec4 color2 = texture(uSampler2, vTextureCoord);
266
- #else
267
- vec4 color2 = texture2D(uSampler2, vTextureCoord);
268
- #endif
279
+
280
+ if (uFactor2 >= 0.0) {
281
+ vec4 color2 = sampleHiPSTexture2(vTextureCoord);
269
282
  finalColor += color2.rgb * uFactor2;
270
283
  }
271
- if (uFactor3 >= 0.0){
272
- #if __VERSION__ > 120
273
- vec4 color3 = texture(uSampler3, vTextureCoord);
274
- #else
275
- vec4 color3 = texture2D(uSampler3, vTextureCoord);
276
- #endif
284
+
285
+ if (uFactor3 >= 0.0) {
286
+ vec4 color3 = sampleHiPSTexture3(vTextureCoord);
277
287
  finalColor += color3.rgb * uFactor3;
278
288
  }
279
- if (uFactor4 >= 0.0){
280
- #if __VERSION__ > 120
281
- vec4 color4 = texture(uSampler4, vTextureCoord);
282
- #else
283
- vec4 color4 = texture2D(uSampler4, vTextureCoord);
284
- #endif
289
+
290
+ if (uFactor4 >= 0.0) {
291
+ vec4 color4 = sampleHiPSTexture4(vTextureCoord);
285
292
  finalColor += color4.rgb * uFactor4;
286
293
  }
287
- if (uFactor5 >= 0.0){
288
- #if __VERSION__ > 120
289
- vec4 color5 = texture(uSampler5, vTextureCoord);
290
- #else
291
- vec4 color5 = texture2D(uSampler5, vTextureCoord);
292
- #endif
294
+
295
+ if (uFactor5 >= 0.0) {
296
+ vec4 color5 = sampleHiPSTexture5(vTextureCoord);
293
297
  finalColor += color5.rgb * uFactor5;
294
298
  }
295
- if (uFactor6 >= 0.0){
296
- #if __VERSION__ > 120
297
- vec4 color6 = texture(uSampler6, vTextureCoord);
298
- #else
299
- vec4 color6 = texture2D(uSampler6, vTextureCoord);
300
- #endif
299
+
300
+ if (uFactor6 >= 0.0) {
301
+ vec4 color6 = sampleHiPSTexture6(vTextureCoord);
301
302
  finalColor += color6.rgb * uFactor6;
302
303
  }
303
- if (uFactor7 >= 0.0){
304
- #if __VERSION__ > 120
305
- vec4 color7 = texture(uSampler7, vTextureCoord);
306
- #else
307
- vec4 color7 = texture2D(uSampler7, vTextureCoord);
308
- #endif
304
+
305
+ if (uFactor7 >= 0.0) {
306
+ vec4 color7 = sampleHiPSTexture7(vTextureCoord);
309
307
  finalColor += color7.rgb * uFactor7;
310
308
  }
311
- fragColor = vec4(finalColor, 1.0);
309
+
310
+ fragColor = vec4(finalColor, uLayerOpacity);
312
311
  }`;
313
312
  }
314
313
  static hipsColorMapFS() {
315
314
  return `#version 300 es
316
315
  precision mediump float;
317
316
 
317
+ uniform float uLayerOpacity;
318
+
318
319
  in vec2 vTextureCoord;
319
320
 
320
- // UBO
321
321
  layout (std140) uniform colormap {
322
322
  float r_palette[256];
323
323
  float g_palette[256];
324
324
  float b_palette[256];
325
325
  };
326
326
 
327
- uniform sampler2D uSampler0;
328
327
  uniform float uFactor0;
328
+ uniform float uFactor1;
329
+ uniform float uFactor2;
330
+ uniform float uFactor3;
331
+ uniform float uFactor4;
332
+ uniform float uFactor5;
333
+ uniform float uFactor6;
334
+ uniform float uFactor7;
335
+
336
+ ${ShaderManager.hipsSamplersGLSL()}
329
337
 
330
338
  out vec4 fragColor;
331
339
 
332
- void main() {
333
- #if __VERSION__ > 120
334
- vec4 color0 = texture(uSampler0, vTextureCoord);
335
- #else
336
- vec4 color0 = texture2D(uSampler0, vTextureCoord);
337
- #endif
340
+ vec3 applyColorMap(vec4 color) {
341
+ int x = int(clamp(color.r, 0.0, 1.0) * 255.0);
342
+ int y = int(clamp(color.g, 0.0, 1.0) * 255.0);
343
+ int z = int(clamp(color.b, 0.0, 1.0) * 255.0);
338
344
 
339
- int x = int(color0.r * 255.0);
340
345
  float px = r_palette[x] / 256.0;
341
-
342
- int y = int(color0.g * 255.0);
343
346
  float py = g_palette[y] / 256.0;
344
-
345
- int z = int(color0.b * 255.0);
346
347
  float pz = b_palette[z] / 256.0;
347
348
 
348
- // uFactor0 reserved for future blending if needed
349
- fragColor = vec4(px, py, pz, 1.0);
349
+ return vec3(px, py, pz);
350
+ }
351
+
352
+ void main() {
353
+ vec3 finalColor = vec3(0.0);
354
+
355
+ if (uFactor0 >= 0.0) {
356
+ finalColor +=
357
+ applyColorMap(
358
+ sampleHiPSTexture0(vTextureCoord)
359
+ ) * uFactor0;
360
+ }
361
+
362
+ if (uFactor1 >= 0.0) {
363
+ finalColor +=
364
+ applyColorMap(
365
+ sampleHiPSTexture1(vTextureCoord)
366
+ ) * uFactor1;
367
+ }
368
+
369
+ if (uFactor2 >= 0.0) {
370
+ finalColor +=
371
+ applyColorMap(
372
+ sampleHiPSTexture2(vTextureCoord)
373
+ ) * uFactor2;
374
+ }
375
+
376
+ if (uFactor3 >= 0.0) {
377
+ finalColor +=
378
+ applyColorMap(
379
+ sampleHiPSTexture3(vTextureCoord)
380
+ ) * uFactor3;
381
+ }
382
+
383
+ if (uFactor4 >= 0.0) {
384
+ finalColor +=
385
+ applyColorMap(
386
+ sampleHiPSTexture4(vTextureCoord)
387
+ ) * uFactor4;
388
+ }
389
+
390
+ if (uFactor5 >= 0.0) {
391
+ finalColor +=
392
+ applyColorMap(
393
+ sampleHiPSTexture5(vTextureCoord)
394
+ ) * uFactor5;
395
+ }
396
+
397
+ if (uFactor6 >= 0.0) {
398
+ finalColor +=
399
+ applyColorMap(
400
+ sampleHiPSTexture6(vTextureCoord)
401
+ ) * uFactor6;
402
+ }
403
+
404
+ if (uFactor7 >= 0.0) {
405
+ finalColor +=
406
+ applyColorMap(
407
+ sampleHiPSTexture7(vTextureCoord)
408
+ ) * uFactor7;
409
+ }
410
+
411
+ fragColor = vec4(finalColor, uLayerOpacity);
350
412
  }`;
351
413
  }
414
+ static hipsSamplerGLSL(index) {
415
+ return `
416
+ uniform sampler2D uSampler${index};
417
+ uniform int uTextureMode${index};
418
+ uniform float uDataMin${index};
419
+ uniform float uDataMax${index};
420
+
421
+ vec4 sampleHiPSTexture${index}(vec2 uv) {
422
+ vec4 color = texture(uSampler${index}, uv);
423
+
424
+ // JPG / PNG
425
+ if (uTextureMode${index} == 0) {
426
+ return color;
427
+ }
428
+
429
+ // FITS physical value stored in red channel
430
+ float value = color.r;
431
+
432
+ if (isnan(value)) {
433
+ discard;
434
+ }
435
+
436
+ float normalized = clamp(
437
+ (value - uDataMin${index}) /
438
+ (uDataMax${index} - uDataMin${index}),
439
+ 0.0,
440
+ 1.0
441
+ );
442
+
443
+ return vec4(
444
+ normalized,
445
+ normalized,
446
+ normalized,
447
+ 1.0
448
+ );
449
+ }
450
+ `;
451
+ }
452
+ static hipsSamplersGLSL() {
453
+ return Array.from({ length: 8 }, (_, index) => ShaderManager.hipsSamplerGLSL(index)).join("\n");
454
+ }
352
455
  }
353
456
  //# sourceMappingURL=ShaderManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShaderManager.js","sourceRoot":"","sources":["../../src/shader/ShaderManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;;;;;;;;;;;;MAmBL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8FL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;;;;;MAYL,CAAC;IAEL,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;MAQL,CAAC;IAEL,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO;;;;;;;;;;;;;MAaL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyCL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8FL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmCL,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"ShaderManager.js","sourceRoot":"","sources":["../../src/shader/ShaderManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;;;;;;;;;;;;MAmBL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8FL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;;;;;MAYL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO;;;;;;;;MAQL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO;;;;;;;;;;;;;MAaL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO;;;;;;;;;;;;;;;MAeL,aAAa,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgDhC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO;;;;;;;;;;;;;;;MAeL,aAAa,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwDhC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;MAsBL,aAAa,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4EhC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,KAAa;QAC1C,OAAO;gCACqB,KAAK;8BACP,KAAK;4BACP,KAAK;4BACL,KAAK;;4BAEL,KAAK;qCACI,KAAK;;;wBAGlB,KAAK;;;;;;;;;;;;2BAYF,KAAK;mBACb,KAAK,cAAc,KAAK;;;;;;;;;;;;GAYxC,CAAC;IACF,CAAC;IAEO,MAAM,CAAC,gBAAgB;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC5C,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "astro-viewer",
3
3
  "description": "3D scientific visualization engine for astronomical and Earth observation data, supporting HiPS, FITS, TAP, ADQL, footprints and WebGL-based spatial exploration.",
4
- "version": "3.6.0",
4
+ "version": "3.8.0",
5
5
  "keywords": [
6
6
  "astronomy",
7
7
  "astrophysics",
@@ -91,8 +91,8 @@
91
91
  "astrospatial-core": "^0.4.1",
92
92
  "cross-fetch": "^3.2.0",
93
93
  "gl-matrix": "^3.4.4",
94
- "jsfitsio": "^2.1.2",
95
- "wcslight": "^3.1.1"
94
+ "jsfitsio": "^3.1.0",
95
+ "wcslight": "^3.1.4"
96
96
  },
97
97
  "browser": {
98
98
  "fs": false,