@kalisio/kdk 2.5.2 → 2.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/client/components/input/KShapePicker.vue +4 -4
- package/coverage/core/api/application.js.html +344 -344
- package/coverage/core/api/authentication.js.html +79 -79
- package/coverage/core/api/db.js.html +167 -167
- package/coverage/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/core/api/hooks/hooks.authorisations.js.html +166 -163
- package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/core/api/hooks/hooks.model.js.html +280 -268
- package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/core/api/hooks/hooks.push.js.html +12 -12
- package/coverage/core/api/hooks/hooks.query.js.html +92 -92
- package/coverage/core/api/hooks/hooks.schemas.js.html +13 -13
- package/coverage/core/api/hooks/hooks.service.js.html +28 -28
- package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/core/api/hooks/hooks.users.js.html +48 -48
- package/coverage/core/api/hooks/index.html +49 -49
- package/coverage/core/api/hooks/index.js.html +11 -11
- package/coverage/core/api/index.html +42 -42
- package/coverage/core/api/index.js.html +22 -22
- package/coverage/core/api/marshall.js.html +127 -127
- package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/index.html +1 -1
- package/coverage/core/api/models/messages.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/users.model.mongodb.js.html +11 -11
- package/coverage/core/api/services/account/account.hooks.js.html +42 -42
- package/coverage/core/api/services/account/account.service.js.html +34 -34
- package/coverage/core/api/services/account/index.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +108 -120
- package/coverage/core/api/services/authorisations/index.html +19 -19
- package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/core/api/services/databases/index.html +1 -1
- package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/core/api/services/groups/index.html +1 -1
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
- package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
- package/coverage/core/api/services/import-export/index.html +1 -1
- package/coverage/core/api/services/index.html +15 -15
- package/coverage/core/api/services/index.js.html +97 -85
- package/coverage/core/api/services/mailer/index.html +1 -1
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/core/api/services/messages/index.html +5 -5
- package/coverage/core/api/services/messages/messages.hooks.js.html +11 -8
- package/coverage/core/api/services/organisations/index.html +1 -1
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/core/api/services/push/index.html +1 -1
- package/coverage/core/api/services/push/push.hooks.js.html +1 -1
- package/coverage/core/api/services/push/push.service.js.html +1 -1
- package/coverage/core/api/services/storage/index.html +1 -1
- package/coverage/core/api/services/storage/storage.hooks.js.html +36 -36
- package/coverage/core/api/services/storage/storage.service.js.html +30 -30
- package/coverage/core/api/services/tags/index.html +1 -1
- package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/core/api/services/users/index.html +7 -7
- package/coverage/core/api/services/users/users.hooks.js.html +83 -80
- package/coverage/core/api/services/users/users.service.js.html +4 -4
- package/coverage/core/api/utils.js.html +1 -1
- package/coverage/core/common/errors.js.html +2 -2
- package/coverage/core/common/index.html +30 -30
- package/coverage/core/common/index.js.html +11 -11
- package/coverage/core/common/permissions.js.html +187 -187
- package/coverage/core/common/schema.js.html +26 -26
- package/coverage/core/common/utils.js.html +61 -61
- package/coverage/core/common/utils.offline.js.html +6 -6
- package/coverage/index.html +179 -164
- package/coverage/lcov-report/core/api/application.js.html +344 -344
- package/coverage/lcov-report/core/api/authentication.js.html +79 -79
- package/coverage/lcov-report/core/api/db.js.html +167 -167
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +166 -163
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +280 -268
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +92 -92
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +13 -13
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +28 -28
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +48 -48
- package/coverage/lcov-report/core/api/hooks/index.html +49 -49
- package/coverage/lcov-report/core/api/hooks/index.js.html +11 -11
- package/coverage/lcov-report/core/api/index.html +42 -42
- package/coverage/lcov-report/core/api/index.js.html +22 -22
- package/coverage/lcov-report/core/api/marshall.js.html +127 -127
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/index.html +1 -1
- package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +11 -11
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +42 -42
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
- package/coverage/lcov-report/core/api/services/account/index.html +1 -1
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +108 -120
- package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
- package/coverage/lcov-report/core/api/services/index.html +15 -15
- package/coverage/lcov-report/core/api/services/index.js.html +97 -85
- package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/messages/index.html +5 -5
- package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +11 -8
- package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/push/index.html +1 -1
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +36 -36
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +30 -30
- package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/users/index.html +7 -7
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +83 -80
- package/coverage/lcov-report/core/api/services/users/users.service.js.html +4 -4
- package/coverage/lcov-report/core/api/utils.js.html +1 -1
- package/coverage/lcov-report/core/common/errors.js.html +2 -2
- package/coverage/lcov-report/core/common/index.html +30 -30
- package/coverage/lcov-report/core/common/index.js.html +11 -11
- package/coverage/lcov-report/core/common/permissions.js.html +187 -187
- package/coverage/lcov-report/core/common/schema.js.html +26 -26
- package/coverage/lcov-report/core/common/utils.js.html +61 -61
- package/coverage/lcov-report/core/common/utils.offline.js.html +6 -6
- package/coverage/lcov-report/index.html +179 -164
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +348 -258
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +795 -810
- package/coverage/lcov-report/map/api/hooks/index.html +54 -54
- package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
- package/coverage/lcov-report/map/api/index.html +32 -32
- package/coverage/lcov-report/map/api/index.js.html +46 -46
- package/coverage/lcov-report/map/api/marshall.js.html +72 -72
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +24 -24
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +69 -27
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/lcov-report/map/api/models/index.html +69 -54
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
- package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +112 -0
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +136 -136
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +343 -343
- package/coverage/lcov-report/map/api/services/alerts/index.html +32 -32
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +177 -162
- package/coverage/lcov-report/map/api/services/catalog/index.html +21 -21
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +160 -160
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +117 -117
- package/coverage/lcov-report/map/api/services/features/index.html +31 -31
- package/coverage/lcov-report/map/api/services/index.html +21 -21
- package/coverage/lcov-report/map/api/services/index.js.html +404 -296
- package/coverage/lcov-report/map/api/services/projects/index.html +21 -21
- package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +237 -237
- package/coverage/lcov-report/map/api/services/styles/index.html +116 -0
- package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +196 -0
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/lcov-report/map/common/errors.js.html +16 -16
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +267 -267
- package/coverage/lcov-report/map/common/grid.js.html +554 -554
- package/coverage/lcov-report/map/common/index.html +158 -158
- package/coverage/lcov-report/map/common/index.js.html +68 -68
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +73 -73
- package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +484 -484
- package/coverage/lcov-report/map/common/opendap-utils.js.html +353 -353
- package/coverage/lcov-report/map/common/permissions.js.html +42 -36
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +59 -59
- package/coverage/lcov-report/map/common/tms-utils.js.html +6 -6
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +190 -190
- package/coverage/lcov-report/map/common/wcs-utils.js.html +339 -339
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +345 -345
- package/coverage/lcov-report/map/common/wfs-utils.js.html +11 -11
- package/coverage/lcov-report/map/common/wms-utils.js.html +8 -8
- package/coverage/lcov-report/map/common/wmts-utils.js.html +7 -7
- package/coverage/lcov.info +7022 -5894
- package/coverage/map/api/hooks/hooks.catalog.js.html +348 -258
- package/coverage/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/map/api/hooks/hooks.query.js.html +795 -810
- package/coverage/map/api/hooks/index.html +54 -54
- package/coverage/map/api/hooks/index.js.html +16 -16
- package/coverage/map/api/index.html +32 -32
- package/coverage/map/api/index.js.html +46 -46
- package/coverage/map/api/marshall.js.html +72 -72
- package/coverage/map/api/models/alerts.model.mongodb.js.html +24 -24
- package/coverage/map/api/models/catalog.model.mongodb.js.html +69 -27
- package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/map/api/models/index.html +69 -54
- package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
- package/coverage/map/api/models/styles.model.mongodb.js.html +112 -0
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +136 -136
- package/coverage/map/api/services/alerts/alerts.service.js.html +343 -343
- package/coverage/map/api/services/alerts/index.html +32 -32
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +177 -162
- package/coverage/map/api/services/catalog/index.html +21 -21
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/map/api/services/daptiles/index.html +1 -1
- package/coverage/map/api/services/features/features.hooks.js.html +160 -160
- package/coverage/map/api/services/features/features.service.js.html +117 -117
- package/coverage/map/api/services/features/index.html +31 -31
- package/coverage/map/api/services/index.html +21 -21
- package/coverage/map/api/services/index.js.html +404 -296
- package/coverage/map/api/services/projects/index.html +21 -21
- package/coverage/map/api/services/projects/projects.hooks.js.html +237 -237
- package/coverage/map/api/services/styles/index.html +116 -0
- package/coverage/map/api/services/styles/styles.hooks.js.html +196 -0
- package/coverage/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/map/common/errors.js.html +16 -16
- package/coverage/map/common/geotiff-grid-source.js.html +267 -267
- package/coverage/map/common/grid.js.html +554 -554
- package/coverage/map/common/index.html +158 -158
- package/coverage/map/common/index.js.html +68 -68
- package/coverage/map/common/meteo-model-grid-source.js.html +73 -73
- package/coverage/map/common/moment-utils.js.html +18 -18
- package/coverage/map/common/opendap-grid-source.js.html +484 -484
- package/coverage/map/common/opendap-utils.js.html +353 -353
- package/coverage/map/common/permissions.js.html +42 -36
- package/coverage/map/common/time-based-grid-source.js.html +59 -59
- package/coverage/map/common/tms-utils.js.html +6 -6
- package/coverage/map/common/wcs-grid-source.js.html +190 -190
- package/coverage/map/common/wcs-utils.js.html +339 -339
- package/coverage/map/common/weacast-grid-source.js.html +345 -345
- package/coverage/map/common/wfs-utils.js.html +11 -11
- package/coverage/map/common/wms-utils.js.html +8 -8
- package/coverage/map/common/wmts-utils.js.html +7 -7
- package/coverage/tmp/coverage-151198-1753351220086-0.json +1 -0
- package/coverage/tmp/coverage-151210-1753351220070-0.json +1 -0
- package/coverage/tmp/coverage-151221-1753351129816-0.json +1 -0
- package/coverage/tmp/coverage-151233-1753351129803-0.json +1 -0
- package/coverage/tmp/coverage-151240-1753351129770-0.json +1 -0
- package/coverage/tmp/coverage-151307-1753351220058-0.json +1 -0
- package/coverage/tmp/coverage-151319-1753351220044-0.json +1 -0
- package/coverage/tmp/coverage-151326-1753351220010-0.json +1 -0
- package/map/api/services/styles/styles.hooks.js +1 -1
- package/map/client/components/KLayerEditor.vue +4 -0
- package/map/client/components/catalog/KLayerCategories.vue +2 -0
- package/map/client/components/stickies/KLevelSlider.vue +10 -8
- package/map/client/components/styles/KStyleEditor.vue +1 -1
- package/map/client/components/styles/KStyleManager.vue +7 -1
- package/map/client/composables/highlight.js +5 -1
- package/map/client/i18n/map_en.json +4 -1
- package/map/client/i18n/map_fr.json +4 -1
- package/map/client/mixins/globe/mixin.geojson-layers.js +11 -5
- package/map/client/mixins/mixin.activity.js +9 -0
- package/map/client/utils/utils.layers.js +0 -2
- package/package.json +1 -1
- package/test/api/core/push.test.js +1 -1
- package/test/api/core/test-log-2025-02-05.log +23 -0
- package/test/api/core/test-log-2025-05-21.log +15 -0
- package/test/api/core/test-log-2025-06-25.log +9 -0
- package/test/api/core/test-log-2025-07-24.log +44 -0
- package/test/api/map/test-log-2025-05-27.log +13 -0
- package/test/api/map/test-log-2025-06-23.log +7 -0
- package/test/api/map/{test-log-2025-05-26.log → test-log-2025-07-24.log} +3 -4
- package/coverage/tmp/coverage-122123-1739872365211-0.json +0 -1
- package/coverage/tmp/coverage-122135-1739872365196-0.json +0 -1
- package/coverage/tmp/coverage-122146-1739872365184-0.json +0 -1
- package/coverage/tmp/coverage-122158-1739872365169-0.json +0 -1
- package/coverage/tmp/coverage-122165-1739872365141-0.json +0 -1
- package/test/api/core/test-log-2025-05-26.log +0 -22
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">68.01% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>168/247</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">65.62% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>21/32</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">47.36% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>9/19</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">68.01% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>168/247</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -310,8 +310,151 @@
|
|
|
310
310
|
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
311
|
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
312
|
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
314
|
+
<span class="cline-any cline-yes">1x</span>
|
|
315
|
+
<span class="cline-any cline-yes">1x</span>
|
|
316
|
+
<span class="cline-any cline-yes">1x</span>
|
|
317
|
+
<span class="cline-any cline-yes">1x</span>
|
|
318
|
+
<span class="cline-any cline-yes">1x</span>
|
|
319
|
+
<span class="cline-any cline-yes">1x</span>
|
|
320
|
+
<span class="cline-any cline-yes">1x</span>
|
|
321
|
+
<span class="cline-any cline-yes">1x</span>
|
|
322
|
+
<span class="cline-any cline-yes">1x</span>
|
|
323
|
+
<span class="cline-any cline-yes">1x</span>
|
|
324
|
+
<span class="cline-any cline-yes">1x</span>
|
|
325
|
+
<span class="cline-any cline-yes">1x</span>
|
|
326
|
+
<span class="cline-any cline-yes">1x</span>
|
|
327
|
+
<span class="cline-any cline-yes">1x</span>
|
|
328
|
+
<span class="cline-any cline-yes">1x</span>
|
|
329
|
+
<span class="cline-any cline-yes">1x</span>
|
|
330
|
+
<span class="cline-any cline-yes">1x</span>
|
|
331
|
+
<span class="cline-any cline-yes">1x</span>
|
|
332
|
+
<span class="cline-any cline-yes">1x</span>
|
|
333
|
+
<span class="cline-any cline-yes">1x</span>
|
|
334
|
+
<span class="cline-any cline-yes">1x</span>
|
|
335
|
+
<span class="cline-any cline-yes">1x</span>
|
|
336
|
+
<span class="cline-any cline-yes">1x</span>
|
|
337
|
+
<span class="cline-any cline-yes">1x</span>
|
|
338
|
+
<span class="cline-any cline-yes">1x</span>
|
|
339
|
+
<span class="cline-any cline-yes">2x</span>
|
|
340
|
+
<span class="cline-any cline-yes">2x</span>
|
|
341
|
+
<span class="cline-any cline-yes">2x</span>
|
|
342
|
+
<span class="cline-any cline-yes">2x</span>
|
|
343
|
+
<span class="cline-any cline-yes">2x</span>
|
|
344
|
+
<span class="cline-any cline-yes">2x</span>
|
|
345
|
+
<span class="cline-any cline-yes">2x</span>
|
|
346
|
+
<span class="cline-any cline-yes">2x</span>
|
|
347
|
+
<span class="cline-any cline-yes">2x</span>
|
|
348
|
+
<span class="cline-any cline-yes">2x</span>
|
|
349
|
+
<span class="cline-any cline-yes">2x</span>
|
|
350
|
+
<span class="cline-any cline-yes">2x</span>
|
|
351
|
+
<span class="cline-any cline-yes">2x</span>
|
|
352
|
+
<span class="cline-any cline-yes">2x</span>
|
|
353
|
+
<span class="cline-any cline-yes">2x</span>
|
|
354
|
+
<span class="cline-any cline-yes">2x</span>
|
|
355
|
+
<span class="cline-any cline-yes">2x</span>
|
|
356
|
+
<span class="cline-any cline-yes">2x</span>
|
|
357
|
+
<span class="cline-any cline-yes">2x</span>
|
|
358
|
+
<span class="cline-any cline-yes">2x</span>
|
|
359
|
+
<span class="cline-any cline-yes">2x</span>
|
|
360
|
+
<span class="cline-any cline-yes">537x</span>
|
|
361
|
+
<span class="cline-any cline-yes">537x</span>
|
|
362
|
+
<span class="cline-any cline-yes">17x</span>
|
|
363
|
+
<span class="cline-any cline-yes">17x</span>
|
|
364
|
+
<span class="cline-any cline-yes">17x</span>
|
|
365
|
+
<span class="cline-any cline-yes">17x</span>
|
|
366
|
+
<span class="cline-any cline-yes">17x</span>
|
|
367
|
+
<span class="cline-any cline-yes">17x</span>
|
|
368
|
+
<span class="cline-any cline-yes">17x</span>
|
|
369
|
+
<span class="cline-any cline-yes">17x</span>
|
|
370
|
+
<span class="cline-any cline-yes">17x</span>
|
|
371
|
+
<span class="cline-any cline-yes">535x</span>
|
|
372
|
+
<span class="cline-any cline-yes">535x</span>
|
|
373
|
+
<span class="cline-any cline-yes">535x</span>
|
|
374
|
+
<span class="cline-any cline-yes">535x</span>
|
|
375
|
+
<span class="cline-any cline-yes">2x</span>
|
|
376
|
+
<span class="cline-any cline-yes">2x</span>
|
|
377
|
+
<span class="cline-any cline-yes">2x</span>
|
|
378
|
+
<span class="cline-any cline-yes">2x</span>
|
|
379
|
+
<span class="cline-any cline-yes">2x</span>
|
|
380
|
+
<span class="cline-any cline-no"> </span>
|
|
381
|
+
<span class="cline-any cline-no"> </span>
|
|
382
|
+
<span class="cline-any cline-no"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">2x</span>
|
|
384
|
+
<span class="cline-any cline-yes">2x</span>
|
|
385
|
+
<span class="cline-any cline-yes">2x</span>
|
|
386
|
+
<span class="cline-any cline-yes">2x</span>
|
|
387
|
+
<span class="cline-any cline-yes">2x</span>
|
|
388
|
+
<span class="cline-any cline-yes">2x</span>
|
|
389
|
+
<span class="cline-any cline-yes">2x</span>
|
|
390
|
+
<span class="cline-any cline-yes">2x</span>
|
|
391
|
+
<span class="cline-any cline-yes">11x</span>
|
|
392
|
+
<span class="cline-any cline-yes">3x</span>
|
|
393
|
+
<span class="cline-any cline-yes">3x</span>
|
|
394
|
+
<span class="cline-any cline-yes">3x</span>
|
|
395
|
+
<span class="cline-any cline-yes">11x</span>
|
|
396
|
+
<span class="cline-any cline-yes">2x</span>
|
|
397
|
+
<span class="cline-any cline-yes">2x</span>
|
|
398
|
+
<span class="cline-any cline-yes">2x</span>
|
|
399
|
+
<span class="cline-any cline-yes">2x</span>
|
|
400
|
+
<span class="cline-any cline-yes">1x</span>
|
|
401
|
+
<span class="cline-any cline-yes">1x</span>
|
|
402
|
+
<span class="cline-any cline-yes">1x</span>
|
|
403
|
+
<span class="cline-any cline-yes">1x</span>
|
|
404
|
+
<span class="cline-any cline-yes">1x</span>
|
|
405
|
+
<span class="cline-any cline-yes">1x</span>
|
|
406
|
+
<span class="cline-any cline-yes">1x</span>
|
|
407
|
+
<span class="cline-any cline-yes">1x</span>
|
|
408
|
+
<span class="cline-any cline-yes">2x</span>
|
|
409
|
+
<span class="cline-any cline-yes">2x</span>
|
|
410
|
+
<span class="cline-any cline-yes">2x</span>
|
|
411
|
+
<span class="cline-any cline-yes">2x</span>
|
|
412
|
+
<span class="cline-any cline-yes">2x</span>
|
|
413
|
+
<span class="cline-any cline-yes">1x</span>
|
|
414
|
+
<span class="cline-any cline-yes">1x</span>
|
|
415
|
+
<span class="cline-any cline-no"> </span>
|
|
416
|
+
<span class="cline-any cline-no"> </span>
|
|
417
|
+
<span class="cline-any cline-no"> </span>
|
|
418
|
+
<span class="cline-any cline-yes">1x</span>
|
|
419
|
+
<span class="cline-any cline-yes">1x</span>
|
|
420
|
+
<span class="cline-any cline-yes">2x</span>
|
|
421
|
+
<span class="cline-any cline-yes">2x</span>
|
|
422
|
+
<span class="cline-any cline-yes">2x</span>
|
|
423
|
+
<span class="cline-any cline-yes">1x</span>
|
|
424
|
+
<span class="cline-any cline-yes">1x</span>
|
|
425
|
+
<span class="cline-any cline-yes">1x</span>
|
|
426
|
+
<span class="cline-any cline-yes">1x</span>
|
|
427
|
+
<span class="cline-any cline-yes">1x</span>
|
|
428
|
+
<span class="cline-any cline-yes">4x</span>
|
|
429
|
+
<span class="cline-any cline-yes">4x</span>
|
|
430
|
+
<span class="cline-any cline-yes">4x</span>
|
|
431
|
+
<span class="cline-any cline-yes">4x</span>
|
|
432
|
+
<span class="cline-any cline-yes">1x</span>
|
|
433
|
+
<span class="cline-any cline-yes">1x</span>
|
|
434
|
+
<span class="cline-any cline-yes">1x</span>
|
|
435
|
+
<span class="cline-any cline-yes">1x</span>
|
|
436
|
+
<span class="cline-any cline-yes">1x</span>
|
|
437
|
+
<span class="cline-any cline-yes">2x</span>
|
|
438
|
+
<span class="cline-any cline-yes">2x</span>
|
|
439
|
+
<span class="cline-any cline-yes">2x</span>
|
|
440
|
+
<span class="cline-any cline-yes">2x</span>
|
|
441
|
+
<span class="cline-any cline-yes">2x</span>
|
|
314
442
|
<span class="cline-any cline-no"> </span>
|
|
443
|
+
<span class="cline-any cline-yes">2x</span>
|
|
444
|
+
<span class="cline-any cline-yes">2x</span>
|
|
445
|
+
<span class="cline-any cline-yes">2x</span>
|
|
446
|
+
<span class="cline-any cline-yes">2x</span>
|
|
447
|
+
<span class="cline-any cline-yes">2x</span>
|
|
448
|
+
<span class="cline-any cline-yes">2x</span>
|
|
449
|
+
<span class="cline-any cline-yes">2x</span>
|
|
450
|
+
<span class="cline-any cline-yes">1x</span>
|
|
451
|
+
<span class="cline-any cline-yes">1x</span>
|
|
452
|
+
<span class="cline-any cline-yes">2x</span>
|
|
453
|
+
<span class="cline-any cline-yes">2x</span>
|
|
454
|
+
<span class="cline-any cline-yes">2x</span>
|
|
455
|
+
<span class="cline-any cline-yes">2x</span>
|
|
456
|
+
<span class="cline-any cline-yes">1x</span>
|
|
457
|
+
<span class="cline-any cline-yes">1x</span>
|
|
315
458
|
<span class="cline-any cline-no"> </span>
|
|
316
459
|
<span class="cline-any cline-no"> </span>
|
|
317
460
|
<span class="cline-any cline-no"> </span>
|
|
@@ -319,12 +462,22 @@
|
|
|
319
462
|
<span class="cline-any cline-no"> </span>
|
|
320
463
|
<span class="cline-any cline-no"> </span>
|
|
321
464
|
<span class="cline-any cline-no"> </span>
|
|
465
|
+
<span class="cline-any cline-yes">1x</span>
|
|
466
|
+
<span class="cline-any cline-yes">1x</span>
|
|
467
|
+
<span class="cline-any cline-yes">1x</span>
|
|
468
|
+
<span class="cline-any cline-yes">1x</span>
|
|
469
|
+
<span class="cline-any cline-yes">1x</span>
|
|
470
|
+
<span class="cline-any cline-yes">1x</span>
|
|
471
|
+
<span class="cline-any cline-yes">1x</span>
|
|
472
|
+
<span class="cline-any cline-yes">1x</span>
|
|
322
473
|
<span class="cline-any cline-no"> </span>
|
|
323
474
|
<span class="cline-any cline-no"> </span>
|
|
324
475
|
<span class="cline-any cline-no"> </span>
|
|
325
476
|
<span class="cline-any cline-no"> </span>
|
|
326
477
|
<span class="cline-any cline-no"> </span>
|
|
327
478
|
<span class="cline-any cline-no"> </span>
|
|
479
|
+
<span class="cline-any cline-yes">1x</span>
|
|
480
|
+
<span class="cline-any cline-yes">1x</span>
|
|
328
481
|
<span class="cline-any cline-no"> </span>
|
|
329
482
|
<span class="cline-any cline-no"> </span>
|
|
330
483
|
<span class="cline-any cline-no"> </span>
|
|
@@ -335,27 +488,44 @@
|
|
|
335
488
|
<span class="cline-any cline-no"> </span>
|
|
336
489
|
<span class="cline-any cline-no"> </span>
|
|
337
490
|
<span class="cline-any cline-no"> </span>
|
|
491
|
+
<span class="cline-any cline-yes">1x</span>
|
|
492
|
+
<span class="cline-any cline-yes">1x</span>
|
|
493
|
+
<span class="cline-any cline-yes">1x</span>
|
|
494
|
+
<span class="cline-any cline-yes">1x</span>
|
|
338
495
|
<span class="cline-any cline-no"> </span>
|
|
339
496
|
<span class="cline-any cline-no"> </span>
|
|
340
497
|
<span class="cline-any cline-no"> </span>
|
|
341
498
|
<span class="cline-any cline-no"> </span>
|
|
342
499
|
<span class="cline-any cline-no"> </span>
|
|
500
|
+
<span class="cline-any cline-yes">1x</span>
|
|
501
|
+
<span class="cline-any cline-yes">1x</span>
|
|
502
|
+
<span class="cline-any cline-yes">1x</span>
|
|
343
503
|
<span class="cline-any cline-no"> </span>
|
|
344
504
|
<span class="cline-any cline-no"> </span>
|
|
345
505
|
<span class="cline-any cline-no"> </span>
|
|
346
506
|
<span class="cline-any cline-no"> </span>
|
|
347
507
|
<span class="cline-any cline-no"> </span>
|
|
508
|
+
<span class="cline-any cline-yes">1x</span>
|
|
509
|
+
<span class="cline-any cline-yes">1x</span>
|
|
510
|
+
<span class="cline-any cline-yes">1x</span>
|
|
348
511
|
<span class="cline-any cline-no"> </span>
|
|
349
512
|
<span class="cline-any cline-no"> </span>
|
|
350
513
|
<span class="cline-any cline-no"> </span>
|
|
351
514
|
<span class="cline-any cline-no"> </span>
|
|
352
515
|
<span class="cline-any cline-no"> </span>
|
|
516
|
+
<span class="cline-any cline-yes">1x</span>
|
|
517
|
+
<span class="cline-any cline-yes">1x</span>
|
|
518
|
+
<span class="cline-any cline-yes">1x</span>
|
|
353
519
|
<span class="cline-any cline-no"> </span>
|
|
354
520
|
<span class="cline-any cline-no"> </span>
|
|
355
521
|
<span class="cline-any cline-no"> </span>
|
|
356
522
|
<span class="cline-any cline-no"> </span>
|
|
357
523
|
<span class="cline-any cline-no"> </span>
|
|
358
524
|
<span class="cline-any cline-no"> </span>
|
|
525
|
+
<span class="cline-any cline-yes">1x</span>
|
|
526
|
+
<span class="cline-any cline-yes">1x</span>
|
|
527
|
+
<span class="cline-any cline-yes">1x</span>
|
|
528
|
+
<span class="cline-any cline-yes">1x</span>
|
|
359
529
|
<span class="cline-any cline-no"> </span>
|
|
360
530
|
<span class="cline-any cline-no"> </span>
|
|
361
531
|
<span class="cline-any cline-no"> </span>
|
|
@@ -381,327 +551,157 @@
|
|
|
381
551
|
<span class="cline-any cline-no"> </span>
|
|
382
552
|
<span class="cline-any cline-no"> </span>
|
|
383
553
|
<span class="cline-any cline-no"> </span>
|
|
554
|
+
<span class="cline-any cline-yes">1x</span>
|
|
555
|
+
<span class="cline-any cline-yes">1x</span>
|
|
384
556
|
<span class="cline-any cline-no"> </span>
|
|
385
557
|
<span class="cline-any cline-no"> </span>
|
|
386
558
|
<span class="cline-any cline-no"> </span>
|
|
387
|
-
<span class="cline-any cline-
|
|
388
|
-
<span class="cline-any cline-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
<span class="
|
|
399
|
-
<span class="
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
<span class="
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
<span class="
|
|
455
|
-
<span class="cline-any cline-no"> </span>
|
|
456
|
-
<span class="cline-any cline-no"> </span>
|
|
457
|
-
<span class="cline-any cline-no"> </span>
|
|
458
|
-
<span class="cline-any cline-no"> </span>
|
|
459
|
-
<span class="cline-any cline-no"> </span>
|
|
460
|
-
<span class="cline-any cline-no"> </span>
|
|
461
|
-
<span class="cline-any cline-no"> </span>
|
|
462
|
-
<span class="cline-any cline-no"> </span>
|
|
463
|
-
<span class="cline-any cline-no"> </span>
|
|
464
|
-
<span class="cline-any cline-no"> </span>
|
|
465
|
-
<span class="cline-any cline-no"> </span>
|
|
466
|
-
<span class="cline-any cline-no"> </span>
|
|
467
|
-
<span class="cline-any cline-no"> </span>
|
|
468
|
-
<span class="cline-any cline-no"> </span>
|
|
469
|
-
<span class="cline-any cline-no"> </span>
|
|
470
|
-
<span class="cline-any cline-no"> </span>
|
|
471
|
-
<span class="cline-any cline-no"> </span>
|
|
472
|
-
<span class="cline-any cline-no"> </span>
|
|
473
|
-
<span class="cline-any cline-no"> </span>
|
|
474
|
-
<span class="cline-any cline-no"> </span>
|
|
475
|
-
<span class="cline-any cline-no"> </span>
|
|
476
|
-
<span class="cline-any cline-no"> </span>
|
|
477
|
-
<span class="cline-any cline-no"> </span>
|
|
478
|
-
<span class="cline-any cline-no"> </span>
|
|
479
|
-
<span class="cline-any cline-no"> </span>
|
|
480
|
-
<span class="cline-any cline-no"> </span>
|
|
481
|
-
<span class="cline-any cline-no"> </span>
|
|
482
|
-
<span class="cline-any cline-no"> </span>
|
|
483
|
-
<span class="cline-any cline-no"> </span>
|
|
484
|
-
<span class="cline-any cline-no"> </span>
|
|
485
|
-
<span class="cline-any cline-no"> </span>
|
|
486
|
-
<span class="cline-any cline-no"> </span>
|
|
487
|
-
<span class="cline-any cline-no"> </span>
|
|
488
|
-
<span class="cline-any cline-no"> </span>
|
|
489
|
-
<span class="cline-any cline-no"> </span>
|
|
490
|
-
<span class="cline-any cline-no"> </span>
|
|
491
|
-
<span class="cline-any cline-no"> </span>
|
|
492
|
-
<span class="cline-any cline-no"> </span>
|
|
493
|
-
<span class="cline-any cline-no"> </span>
|
|
494
|
-
<span class="cline-any cline-no"> </span>
|
|
495
|
-
<span class="cline-any cline-no"> </span>
|
|
496
|
-
<span class="cline-any cline-no"> </span>
|
|
497
|
-
<span class="cline-any cline-no"> </span>
|
|
498
|
-
<span class="cline-any cline-no"> </span>
|
|
499
|
-
<span class="cline-any cline-no"> </span>
|
|
500
|
-
<span class="cline-any cline-no"> </span>
|
|
501
|
-
<span class="cline-any cline-no"> </span>
|
|
502
|
-
<span class="cline-any cline-no"> </span>
|
|
503
|
-
<span class="cline-any cline-no"> </span>
|
|
504
|
-
<span class="cline-any cline-no"> </span>
|
|
505
|
-
<span class="cline-any cline-no"> </span>
|
|
506
|
-
<span class="cline-any cline-no"> </span>
|
|
507
|
-
<span class="cline-any cline-no"> </span>
|
|
508
|
-
<span class="cline-any cline-no"> </span>
|
|
509
|
-
<span class="cline-any cline-no"> </span>
|
|
510
|
-
<span class="cline-any cline-no"> </span>
|
|
511
|
-
<span class="cline-any cline-no"> </span>
|
|
512
|
-
<span class="cline-any cline-no"> </span>
|
|
513
|
-
<span class="cline-any cline-no"> </span>
|
|
514
|
-
<span class="cline-any cline-no"> </span>
|
|
515
|
-
<span class="cline-any cline-no"> </span>
|
|
516
|
-
<span class="cline-any cline-no"> </span>
|
|
517
|
-
<span class="cline-any cline-no"> </span>
|
|
518
|
-
<span class="cline-any cline-no"> </span>
|
|
519
|
-
<span class="cline-any cline-no"> </span>
|
|
520
|
-
<span class="cline-any cline-no"> </span>
|
|
521
|
-
<span class="cline-any cline-no"> </span>
|
|
522
|
-
<span class="cline-any cline-no"> </span>
|
|
523
|
-
<span class="cline-any cline-no"> </span>
|
|
524
|
-
<span class="cline-any cline-no"> </span>
|
|
525
|
-
<span class="cline-any cline-no"> </span>
|
|
526
|
-
<span class="cline-any cline-no"> </span>
|
|
527
|
-
<span class="cline-any cline-no"> </span>
|
|
528
|
-
<span class="cline-any cline-no"> </span>
|
|
529
|
-
<span class="cline-any cline-no"> </span>
|
|
530
|
-
<span class="cline-any cline-no"> </span>
|
|
531
|
-
<span class="cline-any cline-no"> </span>
|
|
532
|
-
<span class="cline-any cline-no"> </span>
|
|
533
|
-
<span class="cline-any cline-no"> </span>
|
|
534
|
-
<span class="cline-any cline-no"> </span>
|
|
535
|
-
<span class="cline-any cline-no"> </span>
|
|
536
|
-
<span class="cline-any cline-no"> </span>
|
|
537
|
-
<span class="cline-any cline-no"> </span>
|
|
538
|
-
<span class="cline-any cline-no"> </span>
|
|
539
|
-
<span class="cline-any cline-no"> </span>
|
|
540
|
-
<span class="cline-any cline-no"> </span>
|
|
541
|
-
<span class="cline-any cline-no"> </span>
|
|
542
|
-
<span class="cline-any cline-no"> </span>
|
|
543
|
-
<span class="cline-any cline-no"> </span>
|
|
544
|
-
<span class="cline-any cline-no"> </span>
|
|
545
|
-
<span class="cline-any cline-no"> </span>
|
|
546
|
-
<span class="cline-any cline-no"> </span>
|
|
547
|
-
<span class="cline-any cline-no"> </span>
|
|
548
|
-
<span class="cline-any cline-no"> </span>
|
|
549
|
-
<span class="cline-any cline-no"> </span>
|
|
550
|
-
<span class="cline-any cline-no"> </span>
|
|
551
|
-
<span class="cline-any cline-no"> </span>
|
|
552
|
-
<span class="cline-any cline-no"> </span>
|
|
553
|
-
<span class="cline-any cline-no"> </span>
|
|
554
|
-
<span class="cline-any cline-no"> </span>
|
|
555
|
-
<span class="cline-any cline-no"> </span>
|
|
556
|
-
<span class="cline-any cline-no"> </span>
|
|
557
|
-
<span class="cline-any cline-no"> </span>
|
|
558
|
-
<span class="cline-any cline-no"> </span>
|
|
559
|
-
<span class="cline-any cline-no"> </span>
|
|
560
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import _ from 'lodash'</span></span></span>
|
|
561
|
-
<span class="cstat-no" title="statement not covered" >import fetch from 'node-fetch'</span>
|
|
562
|
-
<span class="cstat-no" title="statement not covered" >import parser from 'jsdap/src/parser.js'</span>
|
|
563
|
-
<span class="cstat-no" title="statement not covered" >import xdr from 'jsdap/src/xdr.js'</span>
|
|
564
|
-
<span class="cstat-no" title="statement not covered" >import { BaseGrid } from './grid.js'</span>
|
|
565
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
566
|
-
<span class="cstat-no" title="statement not covered" >export const opendapTypes = new Set(['Float32', 'Float64'])</span>
|
|
567
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
568
|
-
<span class="cstat-no" title="statement not covered" >export async function fetchDescriptor (url) {</span>
|
|
569
|
-
<span class="cstat-no" title="statement not covered" > const question = url.indexOf('?')</span>
|
|
570
|
-
<span class="cstat-no" title="statement not covered" > const ddsUrl = question === -1 ? `${url}.dds` : `${url.substring(0, question)}.dds${url.substring(question)}`</span>
|
|
571
|
-
<span class="cstat-no" title="statement not covered" > const dasUrl = question === -1 ? `${url}.das` : `${url.substring(0, question)}.das${url.substring(question)}`</span>
|
|
572
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
573
|
-
<span class="cstat-no" title="statement not covered" > // request dds & das concurrently</span>
|
|
574
|
-
<span class="cstat-no" title="statement not covered" > const ddsReq = fetch(ddsUrl).then(response => response.text())</span>
|
|
575
|
-
<span class="cstat-no" title="statement not covered" > const dasReq = fetch(dasUrl).then(response => response.text())</span>
|
|
576
|
-
<span class="cstat-no" title="statement not covered" > const [ddsTxt, dasTxt] = await Promise.all([ddsReq, dasReq])</span>
|
|
577
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
578
|
-
<span class="cstat-no" title="statement not covered" > /* eslint new-cap: ["error", { "newIsCap": false }] */</span>
|
|
579
|
-
<span class="cstat-no" title="statement not covered" > const dds = new parser.ddsParser(ddsTxt).parse()</span>
|
|
580
|
-
<span class="cstat-no" title="statement not covered" > const das = new parser.dasParser(dasTxt, dds).parse()</span>
|
|
581
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
582
|
-
<span class="cstat-no" title="statement not covered" > return das</span>
|
|
583
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
584
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
585
|
-
<span class="cstat-no" title="statement not covered" >export async function fetchData (query, abort = null) {</span>
|
|
586
|
-
<span class="cstat-no" title="statement not covered" > // rewritten to use fetch and support aborting request</span>
|
|
587
|
-
<span class="cstat-no" title="statement not covered" > const init = abort ? { signal: abort } : { }</span>
|
|
588
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
589
|
-
<span class="cstat-no" title="statement not covered" > // it sometimes happens that the opendap response is somehow truncated</span>
|
|
590
|
-
<span class="cstat-no" title="statement not covered" > // jsdap lib can't parse the buffer because some data is missing ..</span>
|
|
591
|
-
<span class="cstat-no" title="statement not covered" > // in this case, let the code make a few attempts before failing for good</span>
|
|
592
|
-
<span class="cstat-no" title="statement not covered" > let dds = null</span>
|
|
593
|
-
<span class="cstat-no" title="statement not covered" > let dap = null</span>
|
|
594
|
-
<span class="cstat-no" title="statement not covered" > let attempt = 0</span>
|
|
595
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
596
|
-
<span class="cstat-no" title="statement not covered" > while (!dap) {</span>
|
|
597
|
-
<span class="cstat-no" title="statement not covered" > ++attempt</span>
|
|
598
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
599
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
600
|
-
<span class="cstat-no" title="statement not covered" > const data = await fetch(query, init).then(response => response.arrayBuffer())</span>
|
|
601
|
-
<span class="cstat-no" title="statement not covered" > const view = new DataView(data)</span>
|
|
602
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
603
|
-
<span class="cstat-no" title="statement not covered" > // accumulate string till '\nData:\n' marker</span>
|
|
604
|
-
<span class="cstat-no" title="statement not covered" > let ddsTxt = ''</span>
|
|
605
|
-
<span class="cstat-no" title="statement not covered" > let byteIndex = 0</span>
|
|
606
|
-
<span class="cstat-no" title="statement not covered" > while (byteIndex < view.byteLength) {</span>
|
|
607
|
-
<span class="cstat-no" title="statement not covered" > const u8 = view.getUint8(byteIndex)</span>
|
|
608
|
-
<span class="cstat-no" title="statement not covered" > if (u8 === '\n' || u8 === 10) {</span>
|
|
609
|
-
<span class="cstat-no" title="statement not covered" > const str = String.fromCodePoint(</span>
|
|
610
|
-
<span class="cstat-no" title="statement not covered" > view.getUint8(byteIndex + 1),</span>
|
|
611
|
-
<span class="cstat-no" title="statement not covered" > view.getUint8(byteIndex + 2),</span>
|
|
612
|
-
<span class="cstat-no" title="statement not covered" > view.getUint8(byteIndex + 3),</span>
|
|
613
|
-
<span class="cstat-no" title="statement not covered" > view.getUint8(byteIndex + 4),</span>
|
|
614
|
-
<span class="cstat-no" title="statement not covered" > view.getUint8(byteIndex + 5),</span>
|
|
615
|
-
<span class="cstat-no" title="statement not covered" > view.getUint8(byteIndex + 6))</span>
|
|
616
|
-
<span class="cstat-no" title="statement not covered" > if (str === 'Data:\n') { break }</span>
|
|
617
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
618
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
619
|
-
<span class="cstat-no" title="statement not covered" > ddsTxt += String.fromCodePoint(u8)</span>
|
|
620
|
-
<span class="cstat-no" title="statement not covered" > ++byteIndex</span>
|
|
621
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
622
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
623
|
-
<span class="cstat-no" title="statement not covered" > /* eslint new-cap: ["error", { "newIsCap": false }] */</span>
|
|
624
|
-
<span class="cstat-no" title="statement not covered" > dds = new parser.ddsParser(ddsTxt).parse()</span>
|
|
625
|
-
<span class="cstat-no" title="statement not covered" > dap = new xdr.dapUnpacker(data.slice(byteIndex + 7), dds).getValue()</span>
|
|
626
|
-
<span class="cstat-no" title="statement not covered" > } catch (err) {</span>
|
|
559
|
+
<span class="cline-any cline-yes">1x</span>
|
|
560
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
|
|
561
|
+
import fetch from 'node-fetch'
|
|
562
|
+
import parser from 'jsdap/src/parser.js'
|
|
563
|
+
import xdr from 'jsdap/src/xdr.js'
|
|
564
|
+
import { BaseGrid } from './grid.js'
|
|
565
|
+
|
|
566
|
+
export const opendapTypes = new Set(['Float32', 'Float64'])
|
|
567
|
+
|
|
568
|
+
export async function fetchDescriptor (url) {
|
|
569
|
+
const question = url.indexOf('?')
|
|
570
|
+
const ddsUrl = question === -1 ? `${url}.dds` <span class="branch-0 cbranch-no" title="branch not covered" >: `${url.substring(0, question)}.dds${url.substring(question)}`</span>
|
|
571
|
+
const dasUrl = question === -1 ? `${url}.das` <span class="branch-0 cbranch-no" title="branch not covered" >: `${url.substring(0, question)}.das${url.substring(question)}`</span>
|
|
572
|
+
|
|
573
|
+
// request dds & das concurrently
|
|
574
|
+
const ddsReq = fetch(ddsUrl).then(response => response.text())
|
|
575
|
+
const dasReq = fetch(dasUrl).then(response => response.text())
|
|
576
|
+
const [ddsTxt, dasTxt] = await Promise.all([ddsReq, dasReq])
|
|
577
|
+
|
|
578
|
+
/* eslint new-cap: ["error", { "newIsCap": false }] */
|
|
579
|
+
const dds = new parser.ddsParser(ddsTxt).parse()
|
|
580
|
+
const das = new parser.dasParser(dasTxt, dds).parse()
|
|
581
|
+
|
|
582
|
+
return das
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
export async function fetchData (query, abort = null) {
|
|
586
|
+
// rewritten to use fetch and support aborting request
|
|
587
|
+
const init = abort <span class="branch-0 cbranch-no" title="branch not covered" >? { signal: abort } </span>: { }
|
|
588
|
+
|
|
589
|
+
// it sometimes happens that the opendap response is somehow truncated
|
|
590
|
+
// jsdap lib can't parse the buffer because some data is missing ..
|
|
591
|
+
// in this case, let the code make a few attempts before failing for good
|
|
592
|
+
let dds = null
|
|
593
|
+
let dap = null
|
|
594
|
+
let attempt = 0
|
|
595
|
+
|
|
596
|
+
while (!dap) {
|
|
597
|
+
++attempt
|
|
598
|
+
|
|
599
|
+
try {
|
|
600
|
+
const data = await fetch(query, init).then(response => response.arrayBuffer())
|
|
601
|
+
const view = new DataView(data)
|
|
602
|
+
|
|
603
|
+
// accumulate string till '\nData:\n' marker
|
|
604
|
+
let ddsTxt = ''
|
|
605
|
+
let byteIndex = 0
|
|
606
|
+
while (byteIndex < view.byteLength) {
|
|
607
|
+
const u8 = view.getUint8(byteIndex)
|
|
608
|
+
if (u8 === '\n' || u8 === 10) {
|
|
609
|
+
const str = String.fromCodePoint(
|
|
610
|
+
view.getUint8(byteIndex + 1),
|
|
611
|
+
view.getUint8(byteIndex + 2),
|
|
612
|
+
view.getUint8(byteIndex + 3),
|
|
613
|
+
view.getUint8(byteIndex + 4),
|
|
614
|
+
view.getUint8(byteIndex + 5),
|
|
615
|
+
view.getUint8(byteIndex + 6))
|
|
616
|
+
if (str === 'Data:\n') { break }
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
ddsTxt += String.fromCodePoint(u8)
|
|
620
|
+
++byteIndex
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/* eslint new-cap: ["error", { "newIsCap": false }] */
|
|
624
|
+
dds = new parser.ddsParser(ddsTxt).parse()
|
|
625
|
+
dap = new xdr.dapUnpacker(data.slice(byteIndex + 7), dds).getValue()
|
|
626
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (err) {</span>
|
|
627
627
|
<span class="cstat-no" title="statement not covered" > // on second attempt, rethrow error ...</span>
|
|
628
628
|
<span class="cstat-no" title="statement not covered" > if (attempt >= 2) throw err</span>
|
|
629
629
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
<span class="
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
<span class="
|
|
657
|
-
<span class="
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
<span class="
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
// build an object where each key will be the name of a queried variable
|
|
633
|
+
// and the value will be the queried variable values
|
|
634
|
+
const data = {}
|
|
635
|
+
if (dds && dap) {
|
|
636
|
+
let offset = 0
|
|
637
|
+
for (const field in dds) {
|
|
638
|
+
if (dds[field].type) {
|
|
639
|
+
data[field] = dap[offset]
|
|
640
|
+
offset += 1
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
return data
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
export function variableIsGrid (descriptor, variable) {
|
|
649
|
+
const varDesc = descriptor[variable]
|
|
650
|
+
if (varDesc === undefined) <span class="branch-0 cbranch-no" title="branch not covered" >{ return false }</span>
|
|
651
|
+
return varDesc.type === 'Grid'
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
export function variableIsArray (descriptor, variable) {
|
|
655
|
+
const varDesc = descriptor[variable]
|
|
656
|
+
if (varDesc === undefined) <span class="branch-0 cbranch-no" title="branch not covered" >{ return false }</span>
|
|
657
|
+
if (varDesc.shape === undefined) <span class="branch-0 cbranch-no" title="branch not covered" >{ return false }</span>
|
|
658
|
+
return varDesc.shape.length === 1 && opendapTypes.has(varDesc.type)
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
export <span class="fstat-no" title="function not covered" >function getArrayVariableLength (descriptor, variable) {</span>
|
|
662
662
|
<span class="cstat-no" title="statement not covered" > const varDesc = descriptor[variable]</span>
|
|
663
663
|
<span class="cstat-no" title="statement not covered" > return varDesc.shape[0]</span>
|
|
664
664
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
<span class="
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
<span class="
|
|
665
|
+
|
|
666
|
+
export function getGridDimensionLength (descriptor, variable, dimension) {
|
|
667
|
+
const varDesc = descriptor[variable]
|
|
668
|
+
return varDesc.array.shape[dimension]
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
export function makeGridIndices (descriptor, variable, dimensions) {
|
|
672
|
+
const varDesc = descriptor[variable]
|
|
673
|
+
const indices = []
|
|
674
|
+
for (let i = 0; i < varDesc.array.dimensions.length; ++i) {
|
|
675
|
+
const value = dimensions[varDesc.array.dimensions[i]]
|
|
676
|
+
if (value === undefined) <span class="branch-0 cbranch-no" title="branch not covered" >{ return [] }</span>
|
|
677
|
+
indices.push(value)
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
return indices
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
export function makeQuery (base, config) {
|
|
684
|
+
// config is expected to be an object with variables to query as keys
|
|
685
|
+
// and indices to fetch as associated values
|
|
686
|
+
// it can also be a simple list of variables to query with no interval
|
|
687
|
+
let variables
|
|
688
|
+
if (Array.isArray(config)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
689
689
|
<span class="cstat-no" title="statement not covered" > variables = config</span>
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
<span class="
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
<span class="
|
|
690
|
+
} else {
|
|
691
|
+
variables = _.keys(config).map(variable => `${variable}[${config[variable]}]`)
|
|
692
|
+
}
|
|
693
|
+
const question = base.indexOf('?')
|
|
694
|
+
const url = (question === -1 ? `${base}.dods?` <span class="branch-0 cbranch-no" title="branch not covered" >: `${base.substring(0, question)}.dods${base.substring(question)}&`)</span> + variables.join(',')
|
|
695
|
+
return encodeURI(url)
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
export function getGridDimensionIndex (descriptor, variable, dimension) {
|
|
699
|
+
const varDesc = descriptor[variable]
|
|
700
|
+
if (varDesc === undefined) <span class="branch-0 cbranch-no" title="branch not covered" >{ return -1 }</span>
|
|
701
|
+
return varDesc.array.dimensions.indexOf(dimension)
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
export <span class="fstat-no" title="function not covered" >function getMinMaxArray (vec) {</span>
|
|
705
705
|
<span class="cstat-no" title="statement not covered" > const bounds = vec.reduce((accu, value) => {</span>
|
|
706
706
|
<span class="cstat-no" title="statement not covered" > accu[0] = Math.min(accu[0], value)</span>
|
|
707
707
|
<span class="cstat-no" title="statement not covered" > accu[1] = Math.max(accu[1], value)</span>
|
|
@@ -709,22 +709,22 @@
|
|
|
709
709
|
<span class="cstat-no" title="statement not covered" > }, [vec[0], vec[0]])</span>
|
|
710
710
|
<span class="cstat-no" title="statement not covered" > return bounds</span>
|
|
711
711
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
<span class="cstat-no" title="statement not covered" >function getFirstGridValue (grid, dimension) {</span>
|
|
712
|
+
|
|
713
|
+
export function getGridValue (grid, indices) {
|
|
714
|
+
let dim = 0
|
|
715
|
+
let array = grid
|
|
716
|
+
for (; dim < indices.length - 1; ++dim) { array = array[indices[dim]] }
|
|
717
|
+
return array[indices[dim]]
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getFirstGridValue (grid, dimension) {</span></span>
|
|
721
721
|
<span class="cstat-no" title="statement not covered" > let dim = 0</span>
|
|
722
722
|
<span class="cstat-no" title="statement not covered" > let array = grid</span>
|
|
723
723
|
<span class="cstat-no" title="statement not covered" > for (; dim < dimension - 1; ++dim) { array = array[0] }</span>
|
|
724
724
|
<span class="cstat-no" title="statement not covered" > return array[0]</span>
|
|
725
725
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
726
|
-
|
|
727
|
-
<span class="
|
|
726
|
+
|
|
727
|
+
export <span class="fstat-no" title="function not covered" >function getMinMaxGrid (grid, dimension) {</span>
|
|
728
728
|
<span class="cstat-no" title="statement not covered" > if (dimension > 1) {</span>
|
|
729
729
|
<span class="cstat-no" title="statement not covered" > const init = getFirstGridValue(grid, dimension)</span>
|
|
730
730
|
<span class="cstat-no" title="statement not covered" > return grid.reduce((accu, value) => {</span>
|
|
@@ -735,44 +735,44 @@
|
|
|
735
735
|
<span class="cstat-no" title="statement not covered" > return getMinMaxArray(grid)</span>
|
|
736
736
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
737
737
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
<span class="
|
|
738
|
+
|
|
739
|
+
const makeIndicesFunctions = [
|
|
740
|
+
// latSortOrder = SortOrder.ASCENDING, lonSortOrder = SortOrder.ASCENDING
|
|
741
|
+
<span class="fstat-no" title="function not covered" > function (indices, latIndex, lonIndex, ilat, ilon, latCount, lonCount) {</span>
|
|
742
742
|
<span class="cstat-no" title="statement not covered" > const local = [...indices]</span>
|
|
743
743
|
<span class="cstat-no" title="statement not covered" > local.fill(0)</span>
|
|
744
744
|
<span class="cstat-no" title="statement not covered" > local[latIndex] = ilat</span>
|
|
745
745
|
<span class="cstat-no" title="statement not covered" > local[lonIndex] = ilon</span>
|
|
746
746
|
<span class="cstat-no" title="statement not covered" > return local</span>
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
<span class="
|
|
747
|
+
},
|
|
748
|
+
// latSortOrder = SortOrder.ASCENDING, lonSortOrder = SortOrder.DESCENDING
|
|
749
|
+
<span class="fstat-no" title="function not covered" > function (indices, latIndex, lonIndex, ilat, ilon, latCount, lonCount) {</span>
|
|
750
750
|
<span class="cstat-no" title="statement not covered" > const local = [...indices]</span>
|
|
751
751
|
<span class="cstat-no" title="statement not covered" > local.fill(0)</span>
|
|
752
752
|
<span class="cstat-no" title="statement not covered" > local[latIndex] = ilat</span>
|
|
753
753
|
<span class="cstat-no" title="statement not covered" > local[lonIndex] = lonCount - (ilon + 1)</span>
|
|
754
754
|
<span class="cstat-no" title="statement not covered" > return local</span>
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
<span class="
|
|
755
|
+
},
|
|
756
|
+
// latSortOrder = SortOrder.DESCENDING, lonSortOrder = SortOrder.ASCENDING
|
|
757
|
+
<span class="fstat-no" title="function not covered" > function (indices, latIndex, lonIndex, ilat, ilon, latCount, lonCount) {</span>
|
|
758
758
|
<span class="cstat-no" title="statement not covered" > const local = [...indices]</span>
|
|
759
759
|
<span class="cstat-no" title="statement not covered" > local.fill(0)</span>
|
|
760
760
|
<span class="cstat-no" title="statement not covered" > local[latIndex] = latCount - (ilat + 1)</span>
|
|
761
761
|
<span class="cstat-no" title="statement not covered" > local[lonIndex] = ilon</span>
|
|
762
762
|
<span class="cstat-no" title="statement not covered" > return local</span>
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
<span class="
|
|
763
|
+
},
|
|
764
|
+
// latSortOrder = SortOrder.DESCENDING, lonSortOrder = SortOrder.DESCENDING
|
|
765
|
+
<span class="fstat-no" title="function not covered" > function (indices, latIndex, lonIndex, ilat, ilon, latCount, lonCount) {</span>
|
|
766
766
|
<span class="cstat-no" title="statement not covered" > const local = [...indices]</span>
|
|
767
767
|
<span class="cstat-no" title="statement not covered" > local.fill(0)</span>
|
|
768
768
|
<span class="cstat-no" title="statement not covered" > local[latIndex] = latCount - (ilat + 1)</span>
|
|
769
769
|
<span class="cstat-no" title="statement not covered" > local[lonIndex] = lonCount - (ilon + 1)</span>
|
|
770
770
|
<span class="cstat-no" title="statement not covered" > return local</span>
|
|
771
771
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
<span class="
|
|
772
|
+
]
|
|
773
|
+
|
|
774
|
+
export class OpenDAPGrid extends BaseGrid {
|
|
775
|
+
<span class="fstat-no" title="function not covered" > constructor (sourceKey, bbox, dimensions, data, indices, latIndex, lonIndex, latSortOrder, lonSortOrder, nodata = undefined, converter = null) {</span>
|
|
776
776
|
<span class="cstat-no" title="statement not covered" > super(sourceKey, bbox, dimensions, nodata)</span>
|
|
777
777
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
778
778
|
<span class="cstat-no" title="statement not covered" > this.data = data</span>
|
|
@@ -798,12 +798,12 @@
|
|
|
798
798
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
799
799
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
800
800
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
801
|
-
|
|
802
|
-
<span class="
|
|
801
|
+
|
|
802
|
+
<span class="fstat-no" title="function not covered" > getValue (ilat, ilon) {</span>
|
|
803
803
|
<span class="cstat-no" title="statement not covered" > const indices = this.makeIndices(this.indices, this.latIndex, this.lonIndex, ilat, ilon, this.dimensions[0], this.dimensions[1])</span>
|
|
804
804
|
<span class="cstat-no" title="statement not covered" > return getGridValue(this.data, indices)</span>
|
|
805
805
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
806
|
-
|
|
806
|
+
}
|
|
807
807
|
</pre></td></tr></table></pre>
|
|
808
808
|
|
|
809
809
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -811,7 +811,7 @@
|
|
|
811
811
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
812
812
|
Code coverage generated by
|
|
813
813
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
814
|
-
at 2025-
|
|
814
|
+
at 2025-07-24T10:00:20.508Z
|
|
815
815
|
</div>
|
|
816
816
|
<script src="../../prettify.js"></script>
|
|
817
817
|
<script>
|