astro-viewer 1.3.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 (236) hide show
  1. package/README.md +373 -0
  2. package/dist/astroviewer.cjs +13941 -0
  3. package/dist/astroviewer.cjs.map +1 -0
  4. package/dist/astroviewer.js +2 -0
  5. package/dist/astroviewer.js.map +1 -0
  6. package/dist/astroviewer.min.js +2 -0
  7. package/dist/astroviewer.min.js.map +1 -0
  8. package/lib-esm/AstroSphere.d.ts +114 -0
  9. package/lib-esm/AstroSphere.d.ts.map +1 -0
  10. package/lib-esm/AstroSphere.js +679 -0
  11. package/lib-esm/AstroSphere.js.map +1 -0
  12. package/lib-esm/AstroViewer.d.ts +81 -0
  13. package/lib-esm/AstroViewer.d.ts.map +1 -0
  14. package/lib-esm/AstroViewer.js +348 -0
  15. package/lib-esm/AstroViewer.js.map +1 -0
  16. package/lib-esm/Camera.d.ts +74 -0
  17. package/lib-esm/Camera.d.ts.map +1 -0
  18. package/lib-esm/Camera.js +334 -0
  19. package/lib-esm/Camera.js.map +1 -0
  20. package/lib-esm/Config.d.ts +20 -0
  21. package/lib-esm/Config.d.ts.map +1 -0
  22. package/lib-esm/Config.js +32 -0
  23. package/lib-esm/Config.js.map +1 -0
  24. package/lib-esm/Global.d.ts +27 -0
  25. package/lib-esm/Global.d.ts.map +1 -0
  26. package/lib-esm/Global.js +52 -0
  27. package/lib-esm/Global.js.map +1 -0
  28. package/lib-esm/index.d.ts +17 -0
  29. package/lib-esm/index.d.ts.map +1 -0
  30. package/lib-esm/index.js +16 -0
  31. package/lib-esm/index.js.map +1 -0
  32. package/lib-esm/model/AbstractSkyEntity.d.ts +55 -0
  33. package/lib-esm/model/AbstractSkyEntity.d.ts.map +1 -0
  34. package/lib-esm/model/AbstractSkyEntity.js +153 -0
  35. package/lib-esm/model/AbstractSkyEntity.js.map +1 -0
  36. package/lib-esm/model/AstroGL.d.ts +11 -0
  37. package/lib-esm/model/AstroGL.d.ts.map +1 -0
  38. package/lib-esm/model/AstroGL.js +2 -0
  39. package/lib-esm/model/AstroGL.js.map +1 -0
  40. package/lib-esm/model/ColorMaps.d.ts +17 -0
  41. package/lib-esm/model/ColorMaps.d.ts.map +1 -0
  42. package/lib-esm/model/ColorMaps.js +1288 -0
  43. package/lib-esm/model/ColorMaps.js.map +1 -0
  44. package/lib-esm/model/FoV.d.ts +63 -0
  45. package/lib-esm/model/FoV.d.ts.map +1 -0
  46. package/lib-esm/model/FoV.js +275 -0
  47. package/lib-esm/model/FoV.js.map +1 -0
  48. package/lib-esm/model/MetadataColumn.d.ts +50 -0
  49. package/lib-esm/model/MetadataColumn.d.ts.map +1 -0
  50. package/lib-esm/model/MetadataColumn.js +95 -0
  51. package/lib-esm/model/MetadataColumn.js.map +1 -0
  52. package/lib-esm/model/MetadataManager.d.ts +43 -0
  53. package/lib-esm/model/MetadataManager.d.ts.map +1 -0
  54. package/lib-esm/model/MetadataManager.js +117 -0
  55. package/lib-esm/model/MetadataManager.js.map +1 -0
  56. package/lib-esm/model/Point.d.ts +53 -0
  57. package/lib-esm/model/Point.d.ts.map +1 -0
  58. package/lib-esm/model/Point.js +133 -0
  59. package/lib-esm/model/Point.js.map +1 -0
  60. package/lib-esm/model/Point2D.d.ts +9 -0
  61. package/lib-esm/model/Point2D.d.ts.map +1 -0
  62. package/lib-esm/model/Point2D.js +16 -0
  63. package/lib-esm/model/Point2D.js.map +1 -0
  64. package/lib-esm/model/Source.d.ts +34 -0
  65. package/lib-esm/model/Source.d.ts.map +1 -0
  66. package/lib-esm/model/Source.js +63 -0
  67. package/lib-esm/model/Source.js.map +1 -0
  68. package/lib-esm/model/catalogues/CatalogueGL.d.ts +91 -0
  69. package/lib-esm/model/catalogues/CatalogueGL.d.ts.map +1 -0
  70. package/lib-esm/model/catalogues/CatalogueGL.js +614 -0
  71. package/lib-esm/model/catalogues/CatalogueGL.js.map +1 -0
  72. package/lib-esm/model/catalogues/CatalogueProps.d.ts +2 -0
  73. package/lib-esm/model/catalogues/CatalogueProps.d.ts.map +1 -0
  74. package/lib-esm/model/catalogues/CatalogueProps.js +156 -0
  75. package/lib-esm/model/catalogues/CatalogueProps.js.map +1 -0
  76. package/lib-esm/model/footprints/Footprint.d.ts +44 -0
  77. package/lib-esm/model/footprints/Footprint.d.ts.map +1 -0
  78. package/lib-esm/model/footprints/Footprint.js +104 -0
  79. package/lib-esm/model/footprints/Footprint.js.map +1 -0
  80. package/lib-esm/model/footprints/FootprintProps.d.ts +2 -0
  81. package/lib-esm/model/footprints/FootprintProps.d.ts.map +1 -0
  82. package/lib-esm/model/footprints/FootprintProps.js +87 -0
  83. package/lib-esm/model/footprints/FootprintProps.js.map +1 -0
  84. package/lib-esm/model/footprints/FootprintSetGL.d.ts +106 -0
  85. package/lib-esm/model/footprints/FootprintSetGL.d.ts.map +1 -0
  86. package/lib-esm/model/footprints/FootprintSetGL.js +592 -0
  87. package/lib-esm/model/footprints/FootprintSetGL.js.map +1 -0
  88. package/lib-esm/model/grid/EquatorialGrid.d.ts +49 -0
  89. package/lib-esm/model/grid/EquatorialGrid.d.ts.map +1 -0
  90. package/lib-esm/model/grid/EquatorialGrid.js +302 -0
  91. package/lib-esm/model/grid/EquatorialGrid.js.map +1 -0
  92. package/lib-esm/model/grid/GridTextHelper.d.ts +26 -0
  93. package/lib-esm/model/grid/GridTextHelper.d.ts.map +1 -0
  94. package/lib-esm/model/grid/GridTextHelper.js +92 -0
  95. package/lib-esm/model/grid/GridTextHelper.js.map +1 -0
  96. package/lib-esm/model/grid/HealpixGrid.d.ts +49 -0
  97. package/lib-esm/model/grid/HealpixGrid.d.ts.map +1 -0
  98. package/lib-esm/model/grid/HealpixGrid.js +306 -0
  99. package/lib-esm/model/grid/HealpixGrid.js.map +1 -0
  100. package/lib-esm/model/hips/AllSky.d.ts +40 -0
  101. package/lib-esm/model/hips/AllSky.d.ts.map +1 -0
  102. package/lib-esm/model/hips/AllSky.js +232 -0
  103. package/lib-esm/model/hips/AllSky.js.map +1 -0
  104. package/lib-esm/model/hips/AncestorTile.d.ts +38 -0
  105. package/lib-esm/model/hips/AncestorTile.d.ts.map +1 -0
  106. package/lib-esm/model/hips/AncestorTile.js +248 -0
  107. package/lib-esm/model/hips/AncestorTile.js.map +1 -0
  108. package/lib-esm/model/hips/FoVHelper.d.ts +11 -0
  109. package/lib-esm/model/hips/FoVHelper.d.ts.map +1 -0
  110. package/lib-esm/model/hips/FoVHelper.js +107 -0
  111. package/lib-esm/model/hips/FoVHelper.js.map +1 -0
  112. package/lib-esm/model/hips/HiPS.d.ts +47 -0
  113. package/lib-esm/model/hips/HiPS.d.ts.map +1 -0
  114. package/lib-esm/model/hips/HiPS.js +222 -0
  115. package/lib-esm/model/hips/HiPS.js.map +1 -0
  116. package/lib-esm/model/hips/HiPSDescriptor.d.ts +37 -0
  117. package/lib-esm/model/hips/HiPSDescriptor.d.ts.map +1 -0
  118. package/lib-esm/model/hips/HiPSDescriptor.js +132 -0
  119. package/lib-esm/model/hips/HiPSDescriptor.js.map +1 -0
  120. package/lib-esm/model/hips/Tile.d.ts +51 -0
  121. package/lib-esm/model/hips/Tile.d.ts.map +1 -0
  122. package/lib-esm/model/hips/Tile.js +355 -0
  123. package/lib-esm/model/hips/Tile.js.map +1 -0
  124. package/lib-esm/model/hips/TileBuffer.d.ts +39 -0
  125. package/lib-esm/model/hips/TileBuffer.d.ts.map +1 -0
  126. package/lib-esm/model/hips/TileBuffer.js +148 -0
  127. package/lib-esm/model/hips/TileBuffer.js.map +1 -0
  128. package/lib-esm/model/hips/VisibleTilesManager.d.ts +35 -0
  129. package/lib-esm/model/hips/VisibleTilesManager.d.ts.map +1 -0
  130. package/lib-esm/model/hips/VisibleTilesManager.js +160 -0
  131. package/lib-esm/model/hips/VisibleTilesManager.js.map +1 -0
  132. package/lib-esm/model/tap/TapMetadata.d.ts +31 -0
  133. package/lib-esm/model/tap/TapMetadata.d.ts.map +1 -0
  134. package/lib-esm/model/tap/TapMetadata.js +55 -0
  135. package/lib-esm/model/tap/TapMetadata.js.map +1 -0
  136. package/lib-esm/model/tap/TapMetadataList.d.ts +23 -0
  137. package/lib-esm/model/tap/TapMetadataList.d.ts.map +1 -0
  138. package/lib-esm/model/tap/TapMetadataList.js +58 -0
  139. package/lib-esm/model/tap/TapMetadataList.js.map +1 -0
  140. package/lib-esm/model/tap/TapRepo.d.ts +27 -0
  141. package/lib-esm/model/tap/TapRepo.d.ts.map +1 -0
  142. package/lib-esm/model/tap/TapRepo.js +51 -0
  143. package/lib-esm/model/tap/TapRepo.js.map +1 -0
  144. package/lib-esm/services/SesameService.d.ts +14 -0
  145. package/lib-esm/services/SesameService.d.ts.map +1 -0
  146. package/lib-esm/services/SesameService.js +54 -0
  147. package/lib-esm/services/SesameService.js.map +1 -0
  148. package/lib-esm/services/helpers.d.ts +5 -0
  149. package/lib-esm/services/helpers.d.ts.map +1 -0
  150. package/lib-esm/services/helpers.js +16 -0
  151. package/lib-esm/services/helpers.js.map +1 -0
  152. package/lib-esm/services/hipsNodeService.d.ts +7 -0
  153. package/lib-esm/services/hipsNodeService.d.ts.map +1 -0
  154. package/lib-esm/services/hipsNodeService.js +65 -0
  155. package/lib-esm/services/hipsNodeService.js.map +1 -0
  156. package/lib-esm/services/parse-hipslist.d.ts +3 -0
  157. package/lib-esm/services/parse-hipslist.d.ts.map +1 -0
  158. package/lib-esm/services/parse-hipslist.js +25 -0
  159. package/lib-esm/services/parse-hipslist.js.map +1 -0
  160. package/lib-esm/services/queryCatalogueByFoV.d.ts +2 -0
  161. package/lib-esm/services/queryCatalogueByFoV.d.ts.map +1 -0
  162. package/lib-esm/services/queryCatalogueByFoV.js +56 -0
  163. package/lib-esm/services/queryCatalogueByFoV.js.map +1 -0
  164. package/lib-esm/services/queryFootprintSetByFov.d.ts +2 -0
  165. package/lib-esm/services/queryFootprintSetByFov.d.ts.map +1 -0
  166. package/lib-esm/services/queryFootprintSetByFov.js +128 -0
  167. package/lib-esm/services/queryFootprintSetByFov.js.map +1 -0
  168. package/lib-esm/services/tapRepoService.d.ts +2 -0
  169. package/lib-esm/services/tapRepoService.d.ts.map +1 -0
  170. package/lib-esm/services/tapRepoService.js +190 -0
  171. package/lib-esm/services/tapRepoService.js.map +1 -0
  172. package/lib-esm/services/types.d.ts +13 -0
  173. package/lib-esm/services/types.d.ts.map +1 -0
  174. package/lib-esm/services/types.js +2 -0
  175. package/lib-esm/services/types.js.map +1 -0
  176. package/lib-esm/shader/CatalogueShaderProgram.d.ts +35 -0
  177. package/lib-esm/shader/CatalogueShaderProgram.d.ts.map +1 -0
  178. package/lib-esm/shader/CatalogueShaderProgram.js +94 -0
  179. package/lib-esm/shader/CatalogueShaderProgram.js.map +1 -0
  180. package/lib-esm/shader/FootprintShaderProgram.d.ts +31 -0
  181. package/lib-esm/shader/FootprintShaderProgram.d.ts.map +1 -0
  182. package/lib-esm/shader/FootprintShaderProgram.js +86 -0
  183. package/lib-esm/shader/FootprintShaderProgram.js.map +1 -0
  184. package/lib-esm/shader/GridShaderManager.d.ts +6 -0
  185. package/lib-esm/shader/GridShaderManager.d.ts.map +1 -0
  186. package/lib-esm/shader/GridShaderManager.js +29 -0
  187. package/lib-esm/shader/GridShaderManager.js.map +1 -0
  188. package/lib-esm/shader/HiPSShaderProgram.d.ts +54 -0
  189. package/lib-esm/shader/HiPSShaderProgram.d.ts.map +1 -0
  190. package/lib-esm/shader/HiPSShaderProgram.js +257 -0
  191. package/lib-esm/shader/HiPSShaderProgram.js.map +1 -0
  192. package/lib-esm/shader/ShaderManager.d.ts +12 -0
  193. package/lib-esm/shader/ShaderManager.d.ts.map +1 -0
  194. package/lib-esm/shader/ShaderManager.js +344 -0
  195. package/lib-esm/shader/ShaderManager.js.map +1 -0
  196. package/lib-esm/shader/ShaderManagerMutliHiPS.d.ts +12 -0
  197. package/lib-esm/shader/ShaderManagerMutliHiPS.d.ts.map +1 -0
  198. package/lib-esm/shader/ShaderManagerMutliHiPS.js +750 -0
  199. package/lib-esm/shader/ShaderManagerMutliHiPS.js.map +1 -0
  200. package/lib-esm/utils/CoordsType.d.ts +10 -0
  201. package/lib-esm/utils/CoordsType.d.ts.map +1 -0
  202. package/lib-esm/utils/CoordsType.js +12 -0
  203. package/lib-esm/utils/CoordsType.js.map +1 -0
  204. package/lib-esm/utils/FoVUtils.d.ts +46 -0
  205. package/lib-esm/utils/FoVUtils.d.ts.map +1 -0
  206. package/lib-esm/utils/FoVUtils.js +217 -0
  207. package/lib-esm/utils/FoVUtils.js.map +1 -0
  208. package/lib-esm/utils/GeomUtils.d.ts +36 -0
  209. package/lib-esm/utils/GeomUtils.d.ts.map +1 -0
  210. package/lib-esm/utils/GeomUtils.js +267 -0
  211. package/lib-esm/utils/GeomUtils.js.map +1 -0
  212. package/lib-esm/utils/MouseHelper.d.ts +36 -0
  213. package/lib-esm/utils/MouseHelper.d.ts.map +1 -0
  214. package/lib-esm/utils/MouseHelper.js +94 -0
  215. package/lib-esm/utils/MouseHelper.js.map +1 -0
  216. package/lib-esm/utils/PerspectiveMatrixManager.d.ts +11 -0
  217. package/lib-esm/utils/PerspectiveMatrixManager.d.ts.map +1 -0
  218. package/lib-esm/utils/PerspectiveMatrixManager.js +37 -0
  219. package/lib-esm/utils/PerspectiveMatrixManager.js.map +1 -0
  220. package/lib-esm/utils/RayPickingUtils.d.ts +30 -0
  221. package/lib-esm/utils/RayPickingUtils.d.ts.map +1 -0
  222. package/lib-esm/utils/RayPickingUtils.js +112 -0
  223. package/lib-esm/utils/RayPickingUtils.js.map +1 -0
  224. package/lib-esm/utils/STCSParser.d.ts +16 -0
  225. package/lib-esm/utils/STCSParser.d.ts.map +1 -0
  226. package/lib-esm/utils/STCSParser.js +96 -0
  227. package/lib-esm/utils/STCSParser.js.map +1 -0
  228. package/lib-esm/utils/ShaderUtility.d.ts +2 -0
  229. package/lib-esm/utils/ShaderUtility.d.ts.map +1 -0
  230. package/lib-esm/utils/ShaderUtility.js +23 -0
  231. package/lib-esm/utils/ShaderUtility.js.map +1 -0
  232. package/lib-esm/utils/Utils.d.ts +32 -0
  233. package/lib-esm/utils/Utils.d.ts.map +1 -0
  234. package/lib-esm/utils/Utils.js +77 -0
  235. package/lib-esm/utils/Utils.js.map +1 -0
  236. package/package.json +82 -0
@@ -0,0 +1,160 @@
1
+ import global from '../../Global.js';
2
+ import { Pointing, Vec3 } from 'healpixjs';
3
+ import RayPickingUtils from '../../utils/RayPickingUtils.js';
4
+ // import { newTileBuffer } from './TileBuffer.js';
5
+ import { TileBuffer } from './TileBuffer.js';
6
+ import { vec4, mat4 } from 'gl-matrix';
7
+ // import healpixGridSingleton from '../grid/HealpixGridSingleton.js';
8
+ // import {HealpixGridSingleton} from '../grid/HealpixGridSingleton.js';
9
+ import { bootSetup } from '../../Config.js';
10
+ export class VisibleTilesManager {
11
+ _visibleTilesByOrder;
12
+ _ancestorsMap;
13
+ initialised;
14
+ _galVisibleTilesByOrder;
15
+ _galAncestorsMap;
16
+ _galacticMatrixInverted;
17
+ _galacticMatrix;
18
+ insideSphere = bootSetup.insideSphere;
19
+ _tileBuffer;
20
+ _healpixGrid;
21
+ _webgl;
22
+ constructor(webgl, hipsShaderProgram, healpixGrid) {
23
+ this._webgl = webgl;
24
+ this._healpixGrid = healpixGrid;
25
+ this._visibleTilesByOrder = { pixels: [], order: 0 };
26
+ this._ancestorsMap = new Map();
27
+ this.initialised = false;
28
+ this._galVisibleTilesByOrder = { pixels: [], order: 0 };
29
+ this._galAncestorsMap = new Map();
30
+ // Matrices for galactic <-> equatorial
31
+ this._galacticMatrixInverted = mat4.create();
32
+ this._galacticMatrix = mat4.create();
33
+ // From https://observablehq.com/@fil/galactic-rotations (single-precision friendly)
34
+ // This matrix is (galactic -> equatorial); we store its inverse too.
35
+ mat4.set(this._galacticMatrixInverted, -0.054876, -0.873437, -0.483835, 0, 0.494109, -0.44483, 0.746982, -0, -0.867666, -0.198076, 0.455984, 0, 0, 0, 0, 1);
36
+ mat4.invert(this._galacticMatrix, this._galacticMatrixInverted);
37
+ this._tileBuffer = new TileBuffer(1, webgl, hipsShaderProgram, this);
38
+ }
39
+ get healpixGrid() {
40
+ return this._healpixGrid;
41
+ }
42
+ get tileBuffer() {
43
+ return this._tileBuffer;
44
+ }
45
+ init(insideSphere) {
46
+ this.initialised = true;
47
+ this.insideSphere = insideSphere;
48
+ // this.computeVisiblePixels();
49
+ // setInterval(() => this.computeVisiblePixels(), 500);
50
+ }
51
+ getVisibleOrder() {
52
+ // return healpixGridSingleton.visibleorder;
53
+ return this._healpixGrid.visibleorder;
54
+ }
55
+ // computeVisiblePixels(): void {
56
+ computeVisiblePixels(order, webgl, camera, pMatrix) {
57
+ if (!this.initialised)
58
+ return;
59
+ // let order = healpixGridSingleton.visibleorder;
60
+ if (global.insideSphere && order < 3) {
61
+ order = 3;
62
+ }
63
+ this._ancestorsMap.set(order, []);
64
+ this._galAncestorsMap.set(order, []);
65
+ let pixels = [];
66
+ let galTiles = [];
67
+ if (order === 0) {
68
+ const geomhealpix = global.getHealpix(0);
69
+ const npix = geomhealpix.getNPix();
70
+ for (let i = 0; i < npix; i++) {
71
+ pixels.push(i);
72
+ this._ancestorsMap.get(order).push(i);
73
+ galTiles.push(i);
74
+ this._galAncestorsMap.get(order).push(i);
75
+ }
76
+ }
77
+ else {
78
+ const geomhealpix = global.getHealpix(order);
79
+ // const maxX = (global.gl as GL).canvas.width;
80
+ // const maxY = (global.gl as GL).canvas.height;
81
+ const maxX = webgl.canvas.width;
82
+ const maxY = webgl.canvas.height;
83
+ // Sample a grid of screen points, project to the sphere, then to galactic
84
+ for (let i = 0; i <= maxX; i += maxX / 30) {
85
+ for (let j = 0; j <= maxY; j += maxY / 30) {
86
+ const hit = RayPickingUtils.getIntersectionPointWithSingleModel(i, j, this._healpixGrid, this._webgl, camera, pMatrix);
87
+ if (hit.length > 0) {
88
+ // Equatorial -> Galactic (use _galacticMatrix)
89
+ const galVec = vec4.create();
90
+ vec4.transformMat4(galVec, [hit[0], hit[1], hit[2], 1], this._galacticMatrix);
91
+ // Index in galactic HEALPix
92
+ const galPoint = new Pointing(new Vec3(galVec[0], galVec[1], galVec[2]));
93
+ const galTileNo = geomhealpix.ang2pix(galPoint);
94
+ // Index in equatorial HEALPix
95
+ const curPoint = new Pointing(new Vec3(hit[0], hit[1], hit[2]));
96
+ const currPixNo = geomhealpix.ang2pix(curPoint);
97
+ if (!pixels.includes(currPixNo)) {
98
+ pixels.push(currPixNo);
99
+ this._ancestorsMap.get(order).push(currPixNo);
100
+ // newTileBuffer.addTile(order, currPixNo);
101
+ this._tileBuffer.addTile(order, currPixNo);
102
+ }
103
+ if (!galTiles.includes(galTileNo)) {
104
+ galTiles.push(galTileNo);
105
+ this._galAncestorsMap.get(order).push(galTileNo);
106
+ // newTileBuffer.addGalTile(order, galTileNo);
107
+ this._tileBuffer.addGalTile(order, galTileNo);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ this._visibleTilesByOrder = { pixels: pixels, order: order };
114
+ this._galVisibleTilesByOrder = { pixels: galTiles, order: order };
115
+ // Build ancestor pyramids down to order 0
116
+ for (let o = 1; o < order; o++) {
117
+ const tgtOrder = order - o;
118
+ const list = this._ancestorsMap.get(tgtOrder) ?? [];
119
+ this._ancestorsMap.set(tgtOrder, list);
120
+ for (let p = 0; p < pixels.length; p++) {
121
+ const parent = pixels[p] >> (2 * o);
122
+ if (!list.includes(parent)) {
123
+ list.push(parent);
124
+ // newTileBuffer.addTile(tgtOrder, parent);
125
+ this._tileBuffer.addTile(tgtOrder, parent);
126
+ }
127
+ }
128
+ }
129
+ for (let o = 1; o < order; o++) {
130
+ const tgtOrder = order - o;
131
+ const list = this._galAncestorsMap.get(tgtOrder) ?? [];
132
+ this._galAncestorsMap.set(tgtOrder, list);
133
+ for (let p = 0; p < galTiles.length; p++) {
134
+ const parent = galTiles[p] >> (2 * o);
135
+ if (!list.includes(parent)) {
136
+ list.push(parent);
137
+ // newTileBuffer.addGalTile(tgtOrder, parent);
138
+ this._tileBuffer.addGalTile(tgtOrder, parent);
139
+ }
140
+ }
141
+ }
142
+ }
143
+ get visibleTilesByOrder() {
144
+ return this._visibleTilesByOrder;
145
+ }
146
+ get ancestorsMap() {
147
+ return this._ancestorsMap;
148
+ }
149
+ get galVisibleTilesByOrder() {
150
+ return this._galVisibleTilesByOrder;
151
+ }
152
+ get galAncestorsMap() {
153
+ return this._galAncestorsMap;
154
+ }
155
+ get visibleOrder() {
156
+ return this._visibleTilesByOrder.order;
157
+ }
158
+ }
159
+ // export const visibleTilesManager = new VisibleTilesManager();
160
+ //# sourceMappingURL=VisibleTilesManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisibleTilesManager.js","sourceRoot":"","sources":["../../../src/model/hips/VisibleTilesManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab77)
3
+ */
4
+ export declare class TapMetadata {
5
+ private _name;
6
+ private _description;
7
+ private _unit;
8
+ private _dataType;
9
+ private _ucd;
10
+ private _uType;
11
+ private _index?;
12
+ /**
13
+ *
14
+ * @param name - column name
15
+ * @param description - column description
16
+ * @param unit - physical unit
17
+ * @param datatype - ADQL datatype
18
+ * @param ucd - Unified Content Descriptor
19
+ * @param utype - ObsCore / STC-S type
20
+ */
21
+ constructor(name: string, description: string, unit: string, datatype: string, ucd: string, utype: string);
22
+ get name(): string;
23
+ get description(): string;
24
+ get unit(): string;
25
+ get datatype(): string;
26
+ get ucd(): string;
27
+ get uType(): string;
28
+ get index(): number | undefined;
29
+ set index(idx: number | undefined);
30
+ }
31
+ //# sourceMappingURL=TapMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TapMetadata.d.ts","sourceRoot":"","sources":["../../../src/model/tap/TapMetadata.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAC,CAAQ;IAEvB;;;;;;;;OAQG;gBAED,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM;IAUf,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAEhC;CACF"}
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+ /**
3
+ * @author Fabrizio Giordano (Fab77)
4
+ */
5
+ export class TapMetadata {
6
+ _name;
7
+ _description;
8
+ _unit;
9
+ _dataType;
10
+ _ucd;
11
+ _uType;
12
+ _index;
13
+ /**
14
+ *
15
+ * @param name - column name
16
+ * @param description - column description
17
+ * @param unit - physical unit
18
+ * @param datatype - ADQL datatype
19
+ * @param ucd - Unified Content Descriptor
20
+ * @param utype - ObsCore / STC-S type
21
+ */
22
+ constructor(name, description, unit, datatype, ucd, utype) {
23
+ this._name = name;
24
+ this._description = description;
25
+ this._unit = unit;
26
+ this._dataType = datatype;
27
+ this._ucd = ucd;
28
+ this._uType = utype;
29
+ }
30
+ get name() {
31
+ return this._name;
32
+ }
33
+ get description() {
34
+ return this._description;
35
+ }
36
+ get unit() {
37
+ return this._unit;
38
+ }
39
+ get datatype() {
40
+ return this._dataType;
41
+ }
42
+ get ucd() {
43
+ return this._ucd;
44
+ }
45
+ get uType() {
46
+ return this._uType;
47
+ }
48
+ get index() {
49
+ return this._index;
50
+ }
51
+ set index(idx) {
52
+ this._index = idx;
53
+ }
54
+ }
55
+ //# sourceMappingURL=TapMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TapMetadata.js","sourceRoot":"","sources":["../../../src/model/tap/TapMetadata.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ;;GAEG;AAEH,MAAM,OAAO,WAAW;IACd,KAAK,CAAQ;IACb,YAAY,CAAQ;IACpB,KAAK,CAAQ;IACb,SAAS,CAAQ;IACjB,IAAI,CAAQ;IACZ,MAAM,CAAQ;IACd,MAAM,CAAS;IAEvB;;;;;;;;OAQG;IACH,YACE,IAAY,EACZ,WAAmB,EACnB,IAAY,EACZ,QAAgB,EAChB,GAAW,EACX,KAAa;QAEb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,GAAuB;QAC/B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IACnB,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab77)
3
+ */
4
+ import { TapMetadata } from './TapMetadata.js';
5
+ export declare class TapMetadataList {
6
+ private _posEqRAMetaColumns;
7
+ private _posEqDecMetaColumns;
8
+ private _sRegionMetaColumns;
9
+ private _pgSphereMetaColumns;
10
+ private _metadataList;
11
+ constructor();
12
+ /**
13
+ * Add a TapMetadata entry and classify it into relevant groups
14
+ */
15
+ addMetadata(tapMetadata: TapMetadata): void;
16
+ get metadataList(): TapMetadata[];
17
+ set metadataList(metadataList: TapMetadata[]);
18
+ get pgSphereMetaColumns(): TapMetadata[];
19
+ get sRegionMetaColumns(): TapMetadata[];
20
+ get posEqRAMetaColumns(): TapMetadata[];
21
+ get posEqDecMetaColumns(): TapMetadata[];
22
+ }
23
+ //# sourceMappingURL=TapMetadataList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TapMetadataList.d.ts","sourceRoot":"","sources":["../../../src/model/tap/TapMetadataList.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAE5C,qBAAa,eAAe;IAC1B,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,oBAAoB,CAAe;IAC3C,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,oBAAoB,CAAe;IAC3C,OAAO,CAAC,aAAa,CAAe;;IAUpC;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAyB3C,IAAI,YAAY,IAAI,WAAW,EAAE,CAEhC;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,WAAW,EAAE,EAE3C;IAED,IAAI,mBAAmB,IAAI,WAAW,EAAE,CAEvC;IAED,IAAI,kBAAkB,IAAI,WAAW,EAAE,CAEtC;IAED,IAAI,kBAAkB,IAAI,WAAW,EAAE,CAEtC;IAED,IAAI,mBAAmB,IAAI,WAAW,EAAE,CAEvC;CACF"}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+ export class TapMetadataList {
3
+ _posEqRAMetaColumns; // ucd.includes('pos.eq.ra')
4
+ _posEqDecMetaColumns; // ucd.includes('pos.eq.dec')
5
+ _sRegionMetaColumns; // STC-S / s_region candidates
6
+ _pgSphereMetaColumns; // ucd.includes('pos.outline.meta.pgsphere')
7
+ _metadataList;
8
+ constructor() {
9
+ this._metadataList = [];
10
+ this._posEqRAMetaColumns = [];
11
+ this._posEqDecMetaColumns = [];
12
+ this._sRegionMetaColumns = [];
13
+ this._pgSphereMetaColumns = [];
14
+ }
15
+ /**
16
+ * Add a TapMetadata entry and classify it into relevant groups
17
+ */
18
+ addMetadata(tapMetadata) {
19
+ const length = this._metadataList.push(tapMetadata);
20
+ const idx = length - 1;
21
+ tapMetadata.index = idx;
22
+ if (tapMetadata.ucd?.includes('pos.eq.ra')) {
23
+ this._posEqRAMetaColumns.push(tapMetadata);
24
+ }
25
+ else if (tapMetadata.ucd?.includes('pos.eq.dec')) {
26
+ this._posEqDecMetaColumns.push(tapMetadata);
27
+ }
28
+ if (tapMetadata.ucd?.includes('pos.outline;meta.pgsphere')) {
29
+ this._pgSphereMetaColumns.push(tapMetadata);
30
+ }
31
+ if (tapMetadata.uType?.includes('Char.SpatialAxis.Coverage.Support.Area') ||
32
+ tapMetadata.datatype?.includes('adql:REGION') ||
33
+ tapMetadata.ucd?.includes('pos.outline;obs.field') ||
34
+ tapMetadata.name === 'stc_s' // for ESASky
35
+ ) {
36
+ this._sRegionMetaColumns.push(tapMetadata);
37
+ }
38
+ }
39
+ get metadataList() {
40
+ return this._metadataList;
41
+ }
42
+ set metadataList(metadataList) {
43
+ this._metadataList = metadataList;
44
+ }
45
+ get pgSphereMetaColumns() {
46
+ return this._pgSphereMetaColumns;
47
+ }
48
+ get sRegionMetaColumns() {
49
+ return this._sRegionMetaColumns;
50
+ }
51
+ get posEqRAMetaColumns() {
52
+ return this._posEqRAMetaColumns;
53
+ }
54
+ get posEqDecMetaColumns() {
55
+ return this._posEqDecMetaColumns;
56
+ }
57
+ }
58
+ //# sourceMappingURL=TapMetadataList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TapMetadataList.js","sourceRoot":"","sources":["../../../src/model/tap/TapMetadataList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAOZ,MAAM,OAAO,eAAe;IAClB,mBAAmB,CAAe,CAAC,4BAA4B;IAC/D,oBAAoB,CAAe,CAAC,6BAA6B;IACjE,mBAAmB,CAAe,CAAE,8BAA8B;IAClE,oBAAoB,CAAe,CAAC,4CAA4C;IAChF,aAAa,CAAe;IAEpC;QACE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;QAC7B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAA;QAC9B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;QAC7B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,WAAwB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;QACtB,WAAW,CAAC,KAAK,GAAG,GAAG,CAAA;QAEvB,IAAI,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5C,CAAC;aAAM,IAAI,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC7C,CAAC;QAED,IACE,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,wCAAwC,CAAC;YACrE,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;YAC7C,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,uBAAuB,CAAC;YAClD,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,aAAa;UAC1C,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,IAAI,YAAY,CAAC,YAA2B;QAC1C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;IACnC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAA;IAClC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAA;IAClC,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab77)
3
+ */
4
+ import { FootprintSetGL } from '../footprints/FootprintSetGL.js';
5
+ import { CatalogueGL } from '../catalogues/CatalogueGL.js';
6
+ export type ADQLFunction = string | {
7
+ name: string;
8
+ signature?: string;
9
+ doc?: string;
10
+ };
11
+ export declare class TapRepo {
12
+ private _adqlFunctionList;
13
+ private _cataloguesList;
14
+ private _observationsList;
15
+ private _notClassified;
16
+ private _tapBaseURL;
17
+ constructor(tapUrl: string);
18
+ get tapBaseUrl(): string;
19
+ setCataloguesList(cataloguesList: CatalogueGL[]): void;
20
+ setObservationsList(observationList: FootprintSetGL[]): void;
21
+ setNotClassifiedList(notClassifiedList: unknown[]): void;
22
+ get cataloguesList(): CatalogueGL[];
23
+ get observationsList(): FootprintSetGL[];
24
+ set adqlFunctionList(adqlFunctionList: ADQLFunction[] | undefined);
25
+ get adqlFunctionList(): ADQLFunction[];
26
+ }
27
+ //# sourceMappingURL=TapRepo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TapRepo.d.ts","sourceRoot":"","sources":["../../../src/model/tap/TapRepo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtF,qBAAa,OAAO;IAClB,OAAO,CAAC,iBAAiB,CAAgB;IAEzC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,cAAc,CAAW;IAKjC,OAAO,CAAC,WAAW,CAAQ;gBAEf,MAAM,EAAE,MAAM;IAa1B,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,iBAAiB,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI;IAItD,mBAAmB,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,IAAI;IAI5D,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAI;IAYxD,IAAI,cAAc,IAAI,WAAW,EAAE,CAElC;IAED,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAEvC;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,YAAY,EAAE,GAAG,SAAS,EAIhE;IAED,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAErC;CACF"}
@@ -0,0 +1,51 @@
1
+ export class TapRepo {
2
+ _adqlFunctionList;
3
+ _cataloguesList;
4
+ _observationsList;
5
+ _notClassified;
6
+ // private _activeObservations: FootprintSetGL[]
7
+ // private _activeCatalogues: CatalogueGL[]
8
+ _tapBaseURL;
9
+ constructor(tapUrl) {
10
+ this._tapBaseURL = tapUrl;
11
+ this._cataloguesList = [];
12
+ this._observationsList = [];
13
+ this._notClassified = [];
14
+ // this._activeObservations = []
15
+ // this._activeCatalogues = []
16
+ this._adqlFunctionList = [];
17
+ }
18
+ get tapBaseUrl() {
19
+ return this._tapBaseURL;
20
+ }
21
+ setCataloguesList(cataloguesList) {
22
+ this._cataloguesList = cataloguesList;
23
+ }
24
+ setObservationsList(observationList) {
25
+ this._observationsList = observationList;
26
+ }
27
+ setNotClassifiedList(notClassifiedList) {
28
+ this._notClassified = notClassifiedList;
29
+ }
30
+ // setCatalogueActive(catalogue: CatalogueGL): void {
31
+ // this._activeCatalogues.push(catalogue)
32
+ // }
33
+ // setObservationActive(observation: FootprintSetGL): void {
34
+ // this._activeObservations.push(observation)
35
+ // }
36
+ get cataloguesList() {
37
+ return this._cataloguesList;
38
+ }
39
+ get observationsList() {
40
+ return this._observationsList;
41
+ }
42
+ set adqlFunctionList(adqlFunctionList) {
43
+ if (adqlFunctionList !== undefined) {
44
+ this._adqlFunctionList = adqlFunctionList;
45
+ }
46
+ }
47
+ get adqlFunctionList() {
48
+ return this._adqlFunctionList;
49
+ }
50
+ }
51
+ //# sourceMappingURL=TapRepo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TapRepo.js","sourceRoot":"","sources":["../../../src/model/tap/TapRepo.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,OAAO;IACV,iBAAiB,CAAgB;IAEjC,eAAe,CAAe;IAC9B,iBAAiB,CAAkB;IACnC,cAAc,CAAW;IAEjC,gDAAgD;IAChD,2CAA2C;IAEnC,WAAW,CAAQ;IAE3B,YAAY,MAAc;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;QAEzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QAExB,gCAAgC;QAChC,8BAA8B;QAE9B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,iBAAiB,CAAC,cAA6B;QAC7C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAA;IACvC,CAAC;IAED,mBAAmB,CAAC,eAAiC;QACnD,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,oBAAoB,CAAC,iBAA4B;QAC/C,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAA;IACzC,CAAC;IAED,qDAAqD;IACrD,2CAA2C;IAC3C,IAAI;IAEJ,4DAA4D;IAC5D,+CAA+C;IAC/C,IAAI;IAEJ,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;IAED,IAAI,gBAAgB,CAAC,gBAA4C;QAC/D,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab)
3
+ */
4
+ export type SesameResult = {
5
+ ra: number;
6
+ dec: number;
7
+ } | null;
8
+ declare class SesameService {
9
+ private readonly baseURL;
10
+ queryByTargetName(targetName: string): Promise<SesameResult>;
11
+ }
12
+ export declare const sesameService: SesameService;
13
+ export default sesameService;
14
+ //# sourceMappingURL=SesameService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SesameService.d.ts","sourceRoot":"","sources":["../../src/services/SesameService.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAA;AAE7D,cAAM,aAAa;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;IAE1E,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA+CnE;AAED,eAAO,MAAM,aAAa,eAAsB,CAAA;AAChD,eAAe,aAAa,CAAA"}
@@ -0,0 +1,54 @@
1
+ // SesameService.ts
2
+ /**
3
+ * @author Fabrizio Giordano (Fab)
4
+ */
5
+ class SesameService {
6
+ baseURL = 'https://cdsweb.u-strasbg.fr/cgi-bin/nph-sesame/-ox?';
7
+ async queryByTargetName(targetName) {
8
+ const url = this.baseURL + encodeURIComponent(targetName);
9
+ try {
10
+ const res = await fetch(url, { method: 'GET', mode: 'cors' });
11
+ const raw = await res.text();
12
+ const xmlStr = raw.replace(/\n\t|\t|\n/g, '');
13
+ const parser = new DOMParser();
14
+ const doc = parser.parseFromString(xmlStr, 'application/xml');
15
+ const root = doc.firstElementChild;
16
+ if (!root) {
17
+ console.error('Sesame XML parse error: missing root node');
18
+ return null;
19
+ }
20
+ if (doc.childElementCount > 1) {
21
+ console.error('Sesame XML parse error: more than 1 root child');
22
+ return null;
23
+ }
24
+ // Iterate <Target> nodes
25
+ for (const node of Array.from(root.children)) {
26
+ if (node.nodeName !== 'Target')
27
+ continue;
28
+ // Find first <Resolver> child with jradeg/jdedeg
29
+ for (const resolver of Array.from(node.children)) {
30
+ if (resolver.nodeName !== 'Resolver')
31
+ continue;
32
+ const raNode = resolver.getElementsByTagName('jradeg')[0];
33
+ const decNode = resolver.getElementsByTagName('jdedeg')[0];
34
+ if (!raNode || !decNode)
35
+ continue;
36
+ const ra = Number(raNode.textContent ?? '');
37
+ const dec = Number(decNode.textContent ?? '');
38
+ if (Number.isFinite(ra) && Number.isFinite(dec)) {
39
+ return { ra, dec };
40
+ }
41
+ }
42
+ }
43
+ // Not found
44
+ return null;
45
+ }
46
+ catch (err) {
47
+ console.error('Sesame query failed:', err);
48
+ return null;
49
+ }
50
+ }
51
+ }
52
+ export const sesameService = new SesameService();
53
+ export default sesameService;
54
+ //# sourceMappingURL=SesameService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SesameService.js","sourceRoot":"","sources":["../../src/services/SesameService.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB;;GAEG;AAIH,MAAM,aAAa;IACA,OAAO,GAAG,qDAAqD,CAAA;IAEhF,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAEzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YAC7D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAA;YAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;YAE7D,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,CAAA;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;gBAC1D,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,GAAG,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;gBAC/D,OAAO,IAAI,CAAA;YACb,CAAC;YAED,yBAAyB;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;oBAAE,SAAQ;gBAExC,iDAAiD;gBACjD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjD,IAAI,QAAQ,CAAC,QAAQ,KAAK,UAAU;wBAAE,SAAQ;oBAE9C,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;wBAAE,SAAQ;oBAEjC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;oBAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;oBAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAChD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,YAAY;YACZ,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;YAC1C,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;AAChD,eAAe,aAAa,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare const toHttps: (url: string) => string;
2
+ export declare const urlJoin: (base: string, path: string) => string;
3
+ export declare function fetchText(url: string): Promise<string>;
4
+ export declare function fetchJson<T>(url: string): Promise<T>;
5
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/services/helpers.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,WAC6B,CAAA;AAEhE,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,WACE,CAAA;AAEpD,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5D;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAI1D"}
@@ -0,0 +1,16 @@
1
+ // helpers.ts
2
+ export const toHttps = (url) => url.startsWith('http:') ? url.replace('http:', 'https:') : url;
3
+ export const urlJoin = (base, path) => new URL(path.replace(/^\/+/, ''), base).toString();
4
+ export async function fetchText(url) {
5
+ const res = await fetch(url, { method: 'GET', mode: 'cors' });
6
+ if (!res.ok)
7
+ throw new Error(`${res.status} ${res.statusText}`);
8
+ return res.text();
9
+ }
10
+ export async function fetchJson(url) {
11
+ const res = await fetch(url, { method: 'GET', mode: 'cors' });
12
+ if (!res.ok)
13
+ throw new Error(`${res.status} ${res.statusText}`);
14
+ return res.json();
15
+ }
16
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/services/helpers.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CACrC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CACpD,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;AAEpD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7D,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IAC/D,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,GAAW;IAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7D,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IAC/D,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAA;AACjC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { HiPSDescriptor } from '../model/hips/HiPSDescriptor.js';
2
+ import type { HiPSItem } from './types.js';
3
+ export declare function getHiPSNodeListFile(): Promise<unknown[]>;
4
+ export declare function getHiPSDescriptor(hipsUrl: string): Promise<HiPSDescriptor | null>;
5
+ export declare function addHiPSNode(hipsNodeUrl: string): Promise<HiPSItem[]>;
6
+ export declare function addHiPS(hipsUrl: string): Promise<HiPSDescriptor | null>;
7
+ //# sourceMappingURL=hipsNodeService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hipsNodeService.d.ts","sourceRoot":"","sources":["../../src/services/hipsNodeService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAG9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAI1C,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAQ9D;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAUvF;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAuB1E;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAU7E"}
@@ -0,0 +1,65 @@
1
+ // hips-node-repo.ts
2
+ import { HiPSDescriptor } from '../model/hips/HiPSDescriptor.js';
3
+ import { toHttps, urlJoin, fetchText, fetchJson } from './helpers.js';
4
+ import { parseHipsList } from './parse-hipslist.js';
5
+ let nextId = 1;
6
+ export async function getHiPSNodeListFile() {
7
+ const url = new URL('http://localhost:4000/hips/nodelist');
8
+ try {
9
+ return await fetchJson(url.toString());
10
+ }
11
+ catch (err) {
12
+ console.log('[HiPSNodeRepo]', err);
13
+ return [];
14
+ }
15
+ }
16
+ export async function getHiPSDescriptor(hipsUrl) {
17
+ const httpsUrl = toHttps(hipsUrl);
18
+ const propsUrl = urlJoin(httpsUrl, '/properties');
19
+ try {
20
+ const data = await fetchText(propsUrl);
21
+ return new HiPSDescriptor(data, httpsUrl);
22
+ }
23
+ catch (err) {
24
+ console.log('[HiPSNodeRepo] url', httpsUrl, '[Error]', err);
25
+ return null;
26
+ }
27
+ }
28
+ export async function addHiPSNode(hipsNodeUrl) {
29
+ const listUrl = urlJoin(hipsNodeUrl, '/hipslist');
30
+ const items = [];
31
+ try {
32
+ const text = await fetchText(listUrl);
33
+ const entries = parseHipsList(text);
34
+ for (const e of entries) {
35
+ const url = e.hips_service_url?.trim();
36
+ if (!url)
37
+ continue;
38
+ const desc = await addHiPS(url);
39
+ items.push({
40
+ id: nextId++,
41
+ hipsDescriptor: desc,
42
+ provider: hipsNodeUrl,
43
+ hips: {}
44
+ });
45
+ }
46
+ return items;
47
+ }
48
+ catch (err) {
49
+ console.log('[HiPSNodeRepo]', err);
50
+ return items;
51
+ }
52
+ }
53
+ export async function addHiPS(hipsUrl) {
54
+ const httpsUrl = toHttps(hipsUrl);
55
+ const propsUrl = urlJoin(httpsUrl, '/properties');
56
+ try {
57
+ const data = await fetchText(propsUrl);
58
+ return new HiPSDescriptor(data, httpsUrl);
59
+ }
60
+ catch (err) {
61
+ console.log('[HiPSNodeRepo] url', httpsUrl, '[Error]', err);
62
+ return null;
63
+ }
64
+ }
65
+ //# sourceMappingURL=hipsNodeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hipsNodeService.js","sourceRoot":"","sources":["../../src/services/hipsNodeService.ts"],"names":[],"mappings":"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"}