@kalisio/kdk 2.5.3 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/main.yaml +35 -6
- package/.vscode/settings.json +5 -0
- package/client.globe.js +8 -0
- package/client.js +8 -0
- package/client.map.js +8 -0
- package/core/api/hooks/hooks.push.js +3 -2
- package/core/api/hooks/hooks.tags.js +56 -0
- package/core/api/models/tags.model.mongodb.js +8 -0
- package/core/api/services/index.js +33 -2
- package/core/api/services/tags/tags.hooks.js +47 -0
- package/core/client/api.js +5 -5
- package/core/client/components/KActivity.vue +3 -2
- package/core/client/components/KChip.vue +2 -2
- package/core/client/components/KEditor.vue +3 -1
- package/core/client/components/KFollower.vue +4 -4
- package/core/client/components/KStore.vue +1 -1
- package/core/client/components/KTab.vue +20 -7
- package/core/client/components/account/KProfile.vue +9 -25
- package/core/client/components/action/KAction.vue +10 -10
- package/core/client/components/action/KToggleFullscreenAction.vue +2 -11
- package/core/client/components/app/KHome.vue +3 -2
- package/core/client/components/collection/KFilter.vue +5 -4
- package/core/client/components/collection/KGrid.vue +5 -1
- package/core/client/components/collection/KItemsFilter.vue +47 -0
- package/core/client/components/collection/KItemsSorter.vue +42 -0
- package/core/client/components/collection/KScrollDown.vue +2 -2
- package/core/client/components/collection/KSearchFilterControl.vue +3 -2
- package/core/client/components/collection/KSorter.vue +33 -37
- package/core/client/components/collection/KTagsFilterControl.vue +14 -40
- package/core/client/components/collection/KTagsFilterView.vue +10 -45
- package/core/client/components/collection/KTimeFilterControl.vue +6 -7
- package/core/client/components/collection/KTimeFilterView.vue +13 -22
- package/core/client/components/collection/KTimeLine.vue +18 -9
- package/core/client/components/form/KColorField.vue +13 -6
- package/core/client/components/form/KColorScaleField.vue +7 -12
- package/core/client/components/form/KFileField.vue +118 -89
- package/core/client/components/form/KForm.vue +30 -18
- package/core/client/components/form/KIconField.vue +4 -1
- package/core/client/components/form/KNumberField.vue +9 -2
- package/core/client/components/form/KSelectField.vue +1 -4
- package/core/client/components/form/KTagField.vue +229 -0
- package/core/client/components/form/KTextField.vue +4 -0
- package/core/client/components/form/KTextareaField.vue +3 -1
- package/core/client/components/input/KShapePicker.vue +3 -3
- package/core/client/components/layout/KFab.vue +32 -20
- package/core/client/components/layout/KPage.vue +11 -6
- package/core/client/components/layout/KWindow.vue +6 -1
- package/core/client/components/media/index.js +2 -6
- package/core/client/components/menu/KMenu.vue +12 -10
- package/core/client/components/menu/KSubMenu.vue +12 -12
- package/core/client/components/messages/KMessageCard.vue +13 -12
- package/core/client/components/messages/KMessageComposer.vue +13 -9
- package/core/client/components/messages/KMessagesTimeLine.vue +16 -8
- package/core/client/components/tags/KTagFilter.vue +99 -0
- package/core/client/components/tags/KTagItem.vue +65 -0
- package/core/client/components/tags/KTagManager.vue +198 -0
- package/core/client/components/tags/KTagSelection.vue +82 -0
- package/core/client/components/time/KDate.vue +3 -17
- package/core/client/components/time/KDateTime.vue +1 -1
- package/core/client/components/time/KTime.vue +0 -4
- package/core/client/composables/collection-filter.js +41 -2
- package/core/client/composables/collection.js +3 -3
- package/core/client/composables/index.js +1 -0
- package/core/client/composables/pwa.js +13 -0
- package/core/client/composables/session.js +7 -8
- package/core/client/composables/user.js +36 -0
- package/core/client/directives/index.js +1 -0
- package/core/client/directives/v-drop-file.js +174 -0
- package/core/client/document.js +2 -1
- package/core/client/exporter.js +17 -3
- package/core/client/i18n/core_en.json +34 -7
- package/core/client/i18n/core_fr.json +36 -9
- package/core/client/i18n.js +26 -11
- package/core/client/layout.js +5 -5
- package/core/client/mixins/mixin.base-activity.js +8 -5
- package/core/client/mixins/mixin.base-editor.js +2 -1
- package/core/client/mixins/mixin.base-field.js +3 -2
- package/core/client/mixins/mixin.base-item.js +12 -10
- package/core/client/mixins/mixin.service.js +3 -1
- package/core/client/platform.js +0 -3
- package/core/client/readers/reader.json.js +2 -2
- package/core/client/utils/index.js +2 -0
- package/core/client/utils/utils.collection.js +6 -6
- package/core/client/utils/utils.colors.js +473 -173
- package/core/client/utils/utils.files.js +19 -0
- package/core/client/utils/utils.locale.js +13 -17
- package/core/client/utils/utils.services.js +27 -0
- package/core/client/utils/utils.shapes.js +2 -2
- package/core/client/utils/utils.tags.js +17 -0
- package/core/client/utils/utils.tours.js +31 -0
- package/core/common/permissions.js +3 -0
- package/core/common/schemas/tags.update.json +35 -0
- package/core/common/schemas/users.update-profile.json +1 -1
- package/core/common/utils.js +5 -5
- package/coverage/core/api/application.js.html +464 -464
- package/coverage/core/api/authentication.js.html +219 -351
- package/coverage/core/api/db.js.html +194 -209
- package/coverage/core/api/hooks/hooks.authentication.js.html +208 -34
- package/coverage/core/api/hooks/hooks.authorisations.js.html +717 -432
- package/coverage/core/api/hooks/hooks.groups.js.html +52 -52
- package/coverage/core/api/hooks/hooks.logger.js.html +43 -43
- package/coverage/core/api/hooks/hooks.model.js.html +300 -312
- package/coverage/core/api/hooks/hooks.organisations.js.html +264 -264
- package/coverage/core/api/hooks/hooks.push.js.html +107 -119
- package/coverage/core/api/hooks/hooks.query.js.html +279 -279
- package/coverage/core/api/hooks/hooks.schemas.js.html +135 -135
- 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 +478 -205
- package/coverage/core/api/hooks/index.html +132 -102
- package/coverage/core/api/hooks/index.js.html +19 -13
- package/coverage/core/api/index.html +69 -54
- package/coverage/core/api/index.js.html +25 -25
- package/coverage/core/api/marshall.js.html +127 -127
- package/coverage/core/api/models/groups.model.mongodb.js.html +26 -26
- package/coverage/core/api/models/index.html +66 -21
- package/coverage/core/api/models/messages.model.mongodb.js.html +27 -39
- package/coverage/core/api/models/organisations.model.mongodb.js.html +16 -16
- package/coverage/core/api/models/tags.model.mongodb.js.html +30 -30
- package/coverage/core/api/models/users.model.mongodb.js.html +11 -11
- package/coverage/core/api/services/account/account.hooks.js.html +46 -46
- package/coverage/core/api/services/account/account.service.js.html +139 -139
- package/coverage/core/api/services/account/index.html +22 -22
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +230 -221
- package/coverage/core/api/services/authorisations/index.html +20 -20
- 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 +72 -72
- package/coverage/core/api/services/groups/index.html +21 -21
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +76 -76
- package/coverage/core/api/services/import-export/import-export.service.js.html +32 -32
- package/coverage/core/api/services/import-export/index.html +32 -32
- package/coverage/core/api/services/index.html +21 -21
- package/coverage/core/api/services/index.js.html +195 -171
- package/coverage/core/api/services/mailer/index.html +32 -32
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +80 -80
- package/coverage/core/api/services/mailer/mailer.service.js.html +32 -32
- package/coverage/core/api/services/messages/index.html +21 -21
- package/coverage/core/api/services/messages/messages.hooks.js.html +76 -94
- package/coverage/core/api/services/organisations/index.html +32 -32
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +72 -72
- package/coverage/core/api/services/organisations/organisations.service.js.html +163 -163
- package/coverage/core/api/services/push/index.html +32 -32
- package/coverage/core/api/services/push/push.hooks.js.html +80 -80
- package/coverage/core/api/services/push/push.service.js.html +34 -34
- package/coverage/core/api/services/storage/index.html +29 -29
- package/coverage/core/api/services/storage/storage.hooks.js.html +80 -80
- package/coverage/core/api/services/storage/storage.service.js.html +37 -37
- package/coverage/core/api/services/tags/index.html +21 -21
- package/coverage/core/api/services/tags/tags.hooks.js.html +72 -72
- package/coverage/core/api/services/users/index.html +12 -27
- package/coverage/core/api/services/users/users.hooks.js.html +84 -87
- package/coverage/core/api/utils.js.html +1 -1
- package/coverage/core/common/errors.js.html +2 -2
- package/coverage/core/common/index.html +32 -47
- package/coverage/core/common/index.js.html +11 -11
- package/coverage/core/common/permissions.js.html +579 -264
- package/coverage/core/common/schema.js.html +26 -26
- package/coverage/core/common/utils.js.html +59 -65
- package/coverage/index.html +286 -256
- package/coverage/lcov-report/core/api/application.js.html +464 -464
- package/coverage/lcov-report/core/api/authentication.js.html +219 -351
- package/coverage/lcov-report/core/api/db.js.html +194 -209
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +208 -34
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +717 -432
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +52 -52
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +43 -43
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +300 -312
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +264 -264
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +107 -119
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +279 -279
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +135 -135
- 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 +478 -205
- package/coverage/lcov-report/core/api/hooks/index.html +132 -102
- package/coverage/lcov-report/core/api/hooks/index.js.html +19 -13
- package/coverage/lcov-report/core/api/index.html +69 -54
- package/coverage/lcov-report/core/api/index.js.html +25 -25
- package/coverage/lcov-report/core/api/marshall.js.html +127 -127
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +26 -26
- package/coverage/lcov-report/core/api/models/index.html +66 -21
- package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +27 -39
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +16 -16
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +30 -30
- 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 +46 -46
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +139 -139
- package/coverage/lcov-report/core/api/services/account/index.html +22 -22
- 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 +230 -221
- package/coverage/lcov-report/core/api/services/authorisations/index.html +20 -20
- 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 +72 -72
- package/coverage/lcov-report/core/api/services/groups/index.html +21 -21
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +76 -76
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +32 -32
- package/coverage/lcov-report/core/api/services/import-export/index.html +32 -32
- package/coverage/lcov-report/core/api/services/index.html +21 -21
- package/coverage/lcov-report/core/api/services/index.js.html +195 -171
- package/coverage/lcov-report/core/api/services/mailer/index.html +32 -32
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +80 -80
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +32 -32
- package/coverage/lcov-report/core/api/services/messages/index.html +21 -21
- package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +76 -94
- package/coverage/lcov-report/core/api/services/organisations/index.html +32 -32
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +72 -72
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +163 -163
- package/coverage/lcov-report/core/api/services/push/index.html +32 -32
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +80 -80
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +34 -34
- package/coverage/lcov-report/core/api/services/storage/index.html +29 -29
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +80 -80
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +37 -37
- package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +72 -72
- package/coverage/lcov-report/core/api/services/users/index.html +12 -27
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +84 -87
- 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 +32 -47
- package/coverage/lcov-report/core/common/index.js.html +11 -11
- package/coverage/lcov-report/core/common/permissions.js.html +579 -264
- package/coverage/lcov-report/core/common/schema.js.html +26 -26
- package/coverage/lcov-report/core/common/utils.js.html +59 -65
- package/coverage/lcov-report/index.html +286 -256
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +257 -353
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +810 -795
- 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 +27 -69
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/lcov-report/map/api/models/index.html +54 -69
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
- 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 +160 -178
- 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 +114 -183
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +56 -359
- 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 +258 -495
- 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/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 -270
- 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 +36 -42
- 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 +7793 -8564
- package/coverage/map/api/hooks/hooks.catalog.js.html +257 -353
- package/coverage/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/map/api/hooks/hooks.query.js.html +810 -795
- 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 +27 -69
- package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/map/api/models/index.html +54 -69
- package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
- 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 +160 -178
- 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 +114 -183
- package/coverage/map/api/services/features/features.service.js.html +56 -359
- 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 +258 -495
- 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/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 -270
- 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 +36 -42
- 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-151166-1723543324307-0.json +1 -0
- package/coverage/tmp/coverage-151178-1723543324283-0.json +1 -0
- package/coverage/tmp/coverage-151189-1723543324271-0.json +1 -0
- package/coverage/tmp/coverage-151201-1723543324248-0.json +1 -0
- package/coverage/tmp/coverage-151208-1723543324227-0.json +1 -0
- package/extras/configs/panes.top.js +33 -11
- package/extras/configs/stickies.js +26 -16
- package/extras/configs/widgets.left.js +13 -1
- package/extras/libs/jsts.min.js +8 -0
- package/{test/client/core/account.js → extras/tests/core/account.mjs} +4 -4
- package/extras/tests/core/api.mjs +114 -0
- package/{test/client/core/collection.js → extras/tests/core/collection.mjs} +8 -8
- package/{test/client/core/dialogs.js → extras/tests/core/dialogs.mjs} +1 -1
- package/extras/tests/core/index.mjs +9 -0
- package/{test/client/core/layout.js → extras/tests/core/layout.mjs} +7 -3
- package/{test/client/core/runner.js → extras/tests/core/runner.mjs} +3 -3
- package/{test/client/core/screens.js → extras/tests/core/screens.mjs} +1 -1
- package/{test/client/core/utils.js → extras/tests/core/utils.mjs} +79 -26
- package/extras/tests/index.mjs +4 -0
- package/{test/client/map/api.js → extras/tests/map/api.mjs} +1 -1
- package/{test/client/map/catalog.js → extras/tests/map/catalog.mjs} +18 -18
- package/{test/client/map/controls.js → extras/tests/map/controls.mjs} +3 -3
- package/extras/tests/map/index.mjs +5 -0
- package/{test/client/map/time.js → extras/tests/map/time.mjs} +3 -3
- package/{test/client/map/utils.js → extras/tests/map/utils.mjs} +6 -5
- package/extras/tours/fab.js +36 -0
- package/extras/tours/layout.js +49 -0
- package/extras/tours/pane.left.js +78 -0
- package/extras/tours/pane.right.js +145 -0
- package/extras/tours/pane.top.js +239 -0
- package/map/api/config/layers.cjs +28 -13
- package/map/api/hooks/hooks.query.js +12 -7
- package/map/api/models/catalog.model.mongodb.js +17 -6
- package/map/api/services/catalog/catalog.hooks.js +1 -1
- package/map/api/services/index.js +18 -1
- package/map/client/cesium/utils/utils.cesium.js +25 -65
- package/map/client/cesium/utils/utils.features.js +1 -0
- package/map/client/cesium/utils/utils.geojson.js +1 -0
- package/map/client/cesium/utils/utils.style.js +7 -6
- package/map/client/components/KFeatureEditor.vue +3 -3
- package/map/client/components/KFeaturesChart.vue +4 -4
- package/map/client/components/KFeaturesFilterEditor.vue +19 -13
- package/map/client/components/KFeaturesFilterManager.vue +7 -4
- package/map/client/components/KFeaturesTable.vue +2 -2
- package/map/client/components/KLayerEditor.vue +6 -6
- package/map/client/components/KMeasureTool.vue +2 -1
- package/map/client/components/catalog/KBaseLayersSelector.vue +1 -1
- package/map/client/components/catalog/KCategoryItem.vue +15 -1
- package/map/client/components/catalog/KConnectLayer.vue +2 -2
- package/map/client/components/catalog/KCreateView.vue +3 -2
- package/map/client/components/catalog/KFilteredLayerItem.vue +26 -6
- package/map/client/components/catalog/KImportLayer.vue +6 -3
- package/map/client/components/catalog/KLayerCategories.vue +6 -6
- package/map/client/components/catalog/KLayerItem.vue +12 -2
- package/map/client/components/catalog/KLayersList.vue +180 -0
- package/map/client/components/catalog/KLayersPanel.vue +146 -36
- package/map/client/components/catalog/KLayersSelector.vue +96 -48
- package/map/client/components/catalog/KProjectEditor.vue +0 -9
- package/map/client/components/catalog/KProjectSelector.vue +3 -2
- package/map/client/components/catalog/KProjectsPanel.vue +23 -8
- package/map/client/components/catalog/KViewsPanel.vue +18 -8
- package/map/client/components/catalog/KWeatherLayersSelector.vue +3 -3
- package/map/client/components/form/KDirectionField.vue +3 -6
- package/map/client/components/form/KLayerCategoryField.vue +2 -2
- package/map/client/components/form/KOwsServiceField.vue +25 -24
- package/map/client/components/form/KSelectLayersField.vue +4 -4
- package/map/client/components/form/KSelectViewsField.vue +4 -4
- package/map/client/components/legend/KLayerLegend.vue +11 -2
- package/map/client/components/legend/KLegend.vue +44 -51
- package/map/client/components/location/KLocationCardSection.vue +6 -7
- package/map/client/components/location/KLocationMap.vue +23 -13
- package/map/client/components/stickies/KPosition.vue +5 -0
- package/map/client/components/stickies/KZoomControl.vue +70 -0
- package/map/client/components/styles/KLayerStyleAction.vue +59 -12
- package/map/client/components/styles/KStyleEditor.vue +71 -8
- package/map/client/components/styles/KStyleEditorSection.vue +82 -33
- package/map/client/components/styles/KStyleManager.vue +119 -59
- package/map/client/components/styles/KStylePreview.vue +9 -25
- package/map/client/components/styles/KStylePreviewItem.vue +22 -1
- package/map/client/components/tools/KSearchTool.vue +1 -1
- package/map/client/components/widget/KElevationProfile.vue +20 -17
- package/map/client/components/widget/KInformationBox.vue +5 -5
- package/map/client/components/widget/KMapillaryViewer.vue +2 -1
- package/map/client/components/widget/KTimeSeries.vue +11 -9
- package/map/client/globe.js +2 -0
- package/map/client/i18n/map_en.json +30 -7
- package/map/client/i18n/map_fr.json +30 -7
- package/map/client/leaflet/GradientPath.js +61 -24
- package/map/client/leaflet/ShapeMarker.js +12 -5
- package/map/client/leaflet/TiledMeshLayer.js +3 -3
- package/map/client/leaflet/utils/utils.geojson.js +66 -8
- package/map/client/leaflet/utils/utils.style.js +14 -15
- package/map/client/mixins/globe/mixin.base-globe.js +190 -34
- package/map/client/mixins/globe/mixin.file-layers.js +3 -0
- package/map/client/mixins/globe/mixin.geojson-layers.js +179 -31
- package/map/client/mixins/globe/mixin.opendap-layers.js +2 -1
- package/map/client/mixins/globe/mixin.style.js +23 -1
- package/map/client/mixins/globe/mixin.tooltip.js +14 -2
- package/map/client/mixins/map/mixin.base-map.js +156 -58
- package/map/client/mixins/map/mixin.edit-layers.js +18 -15
- package/map/client/mixins/map/mixin.geojson-layers.js +181 -106
- package/map/client/mixins/map/mixin.heatmap-layers.js +3 -2
- package/map/client/mixins/map/mixin.map-activity.js +6 -1
- package/map/client/mixins/map/mixin.mapillary-layers.js +2 -1
- package/map/client/mixins/map/mixin.pmtiles-layers.js +3 -3
- package/map/client/mixins/map/mixin.tiled-mesh-layers.js +3 -2
- package/map/client/mixins/map/mixin.tiled-wind-layers.js +3 -2
- package/map/client/mixins/mixin.activity.js +199 -55
- package/map/client/mixins/mixin.context.js +11 -11
- package/map/client/mixins/mixin.feature-service.js +11 -9
- package/map/client/mixins/mixin.weacast.js +5 -3
- package/map/client/readers/reader.geojson.js +3 -1
- package/map/client/utils/utils.capture.js +3 -3
- package/map/client/utils/utils.catalog.js +9 -5
- package/map/client/utils/utils.features.js +120 -54
- package/map/client/utils/utils.js +25 -10
- package/map/client/utils/utils.layers.js +148 -24
- package/map/client/utils/utils.location.js +26 -9
- package/map/client/utils/utils.schema.js +2 -1
- package/map/client/utils/utils.style.js +53 -9
- package/map/common/geotiff-grid-source.js +1 -3
- package/map/common/opendap-utils.js +0 -1
- package/map/common/tms-utils.js +0 -1
- package/map/common/wcs-utils.js +0 -1
- package/map/common/wfs-utils.js +0 -1
- package/map/common/wms-utils.js +7 -1
- package/map/common/wmts-utils.js +0 -1
- package/package.json +12 -12
- package/scripts/init_runner.sh +3 -3
- package/scripts/kash/CHANGELOG.md +27 -0
- package/scripts/kash/kash.sh +556 -237
- package/scripts/kash/scripts/run_tests.sh +44 -5
- package/scripts/setup_workspace.sh +23 -13
- package/test/api/core/config/default.cjs +2 -1
- package/test/api/core/tags.test.js +62 -0
- package/test/api/core/test-log-2024-04-22.log +84 -0
- package/test/api/core/{test-log-2025-02-05.log → test-log-2024-04-23.log} +3 -3
- package/test/api/core/test-log-2024-08-13.log +3 -0
- package/test/api/map/config/default.cjs +2 -1
- package/test/api/map/config/layers.json +9 -0
- package/test/api/map/data/openradiation.json +13811 -0
- package/test/api/map/grid-sources.test.js +1 -3
- package/test/api/map/index.test.js +60 -1
- package/test/api/map/style.test.js +30 -1
- package/test/api/map/test-log-2025-03-08.log +0 -0
- package/test.api.js +1 -1
- package/vite/App.vue +18 -0
- package/vite/AppWithGlobe.vue +84 -0
- package/vite/GlobeActivity.vue +58 -0
- package/vite/MapActivity.vue +63 -0
- package/vite/MapActivityWithGlobe.vue +63 -0
- package/vite/README.md +169 -0
- package/vite/config.js +221 -0
- package/vite/index_with_globe.html +50 -0
- package/vite/index_with_map.html +50 -0
- package/vite/package.json +173 -0
- package/vite/quasar.variables.scss +17 -0
- package/vite/vite.config.js +166 -0
- package/vite/yarn.lock +11641 -0
- package/core/client/components/media/KImageViewer.vue +0 -68
- package/core/client/components/media/KMarkdownViewer.vue +0 -55
- package/core/client/components/media/KMediaBrowser.vue +0 -301
- package/coverage/core/api/services/users/users.service.js.html +0 -100
- package/coverage/core/common/utils.offline.js.html +0 -199
- package/coverage/lcov-report/core/api/services/users/users.service.js.html +0 -100
- package/coverage/lcov-report/core/common/utils.offline.js.html +0 -199
- package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +0 -112
- package/coverage/lcov-report/map/api/services/styles/index.html +0 -116
- package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +0 -196
- package/coverage/map/api/models/styles.model.mongodb.js.html +0 -112
- package/coverage/map/api/services/styles/index.html +0 -116
- package/coverage/map/api/services/styles/styles.hooks.js.html +0 -196
- package/coverage/tmp/coverage-151198-1753351220086-0.json +0 -1
- package/coverage/tmp/coverage-151210-1753351220070-0.json +0 -1
- package/coverage/tmp/coverage-151221-1753351129816-0.json +0 -1
- package/coverage/tmp/coverage-151233-1753351129803-0.json +0 -1
- package/coverage/tmp/coverage-151240-1753351129770-0.json +0 -1
- package/coverage/tmp/coverage-151307-1753351220058-0.json +0 -1
- package/coverage/tmp/coverage-151319-1753351220044-0.json +0 -1
- package/coverage/tmp/coverage-151326-1753351220010-0.json +0 -1
- package/extras/tours/core/account-profile.js +0 -32
- package/extras/tours/core/account.js +0 -143
- package/extras/tours/core/add-member.js +0 -75
- package/extras/tours/core/add-tag.js +0 -13
- package/extras/tours/core/create-group.js +0 -19
- package/extras/tours/core/create-organisation.js +0 -19
- package/extras/tours/core/create-tag.js +0 -26
- package/extras/tours/core/edit-member-role.js +0 -13
- package/extras/tours/core/groups.js +0 -65
- package/extras/tours/core/join-group.js +0 -13
- package/extras/tours/core/login.js +0 -41
- package/extras/tours/core/members.js +0 -108
- package/extras/tours/core/register.js +0 -61
- package/extras/tours/core/send-reset-password.js +0 -14
- package/extras/tours/core/tags.js +0 -65
- package/extras/tours/map/catalog-panel.js +0 -112
- package/extras/tours/map/fab.js +0 -26
- package/extras/tours/map/navigation-bar.js +0 -187
- package/extras/tours/map/side-nav.js +0 -36
- package/test/api/core/test-log-2025-05-21.log +0 -15
- package/test/api/core/test-log-2025-06-25.log +0 -9
- package/test/api/core/test-log-2025-07-24.log +0 -44
- package/test/api/map/test-log-2025-05-27.log +0 -13
- package/test/api/map/test-log-2025-06-23.log +0 -7
- package/test/api/map/test-log-2025-07-24.log +0 -11
- package/test/client/core/api.js +0 -361
- package/test/client/core/index.js +0 -9
- package/test/client/index.js +0 -4
- package/test/client/map/index.js +0 -5
- package/test.client.js +0 -1
- /package/{test/client/core/time.js → extras/tests/core/time.mjs} +0 -0
- /package/extras/tours/{map/add-layer.js → add-layer.js} +0 -0
- /package/extras/tours/{map/catalog-categories.js → catalog-categories.js} +0 -0
- /package/extras/tours/{map/connect-layer.js → connect-layer.js} +0 -0
- /package/extras/tours/{map/create-layer.js → create-layer.js} +0 -0
- /package/extras/tours/{map/create-view.js → create-view.js} +0 -0
- /package/extras/tours/{map/import-layer.js → import-layer.js} +0 -0
- /package/extras/tours/{map/timeline.js → pane.bottom.js} +0 -0
|
@@ -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">36.94% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>58/157</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">75% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>3/4</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">20% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/10</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">36.94% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>58/157</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 low'></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>
|
|
@@ -212,41 +212,81 @@
|
|
|
212
212
|
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
213
|
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
214
|
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a
|
|
216
|
-
<
|
|
217
|
-
<
|
|
218
|
-
<
|
|
219
|
-
<
|
|
220
|
-
<
|
|
221
|
-
<
|
|
222
|
-
<
|
|
223
|
-
<span class="cline-any cline-yes">
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
225
|
-
<span class="cline-any cline-yes">
|
|
226
|
-
<span class="cline-any cline-yes">
|
|
227
|
-
<span class="cline-any cline-yes">
|
|
228
|
-
<span class="cline-any cline-yes">
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
224
|
+
<span class="cline-any cline-yes">1x</span>
|
|
225
|
+
<span class="cline-any cline-yes">1x</span>
|
|
226
|
+
<span class="cline-any cline-yes">1x</span>
|
|
227
|
+
<span class="cline-any cline-yes">1x</span>
|
|
228
|
+
<span class="cline-any cline-yes">1x</span>
|
|
229
|
+
<span class="cline-any cline-yes">1x</span>
|
|
230
|
+
<span class="cline-any cline-yes">1x</span>
|
|
231
|
+
<span class="cline-any cline-yes">1x</span>
|
|
232
|
+
<span class="cline-any cline-yes">1x</span>
|
|
233
|
+
<span class="cline-any cline-yes">1x</span>
|
|
234
|
+
<span class="cline-any cline-yes">1x</span>
|
|
235
|
+
<span class="cline-any cline-no"> </span>
|
|
236
|
+
<span class="cline-any cline-no"> </span>
|
|
237
|
+
<span class="cline-any cline-no"> </span>
|
|
238
|
+
<span class="cline-any cline-no"> </span>
|
|
239
|
+
<span class="cline-any cline-no"> </span>
|
|
240
|
+
<span class="cline-any cline-no"> </span>
|
|
241
|
+
<span class="cline-any cline-yes">1x</span>
|
|
242
|
+
<span class="cline-any cline-yes">1x</span>
|
|
243
|
+
<span class="cline-any cline-no"> </span>
|
|
244
|
+
<span class="cline-any cline-no"> </span>
|
|
245
|
+
<span class="cline-any cline-no"> </span>
|
|
246
|
+
<span class="cline-any cline-yes">1x</span>
|
|
247
|
+
<span class="cline-any cline-yes">1x</span>
|
|
248
|
+
<span class="cline-any cline-yes">7x</span>
|
|
249
|
+
<span class="cline-any cline-yes">7x</span>
|
|
250
|
+
<span class="cline-any cline-yes">7x</span>
|
|
251
|
+
<span class="cline-any cline-yes">7x</span>
|
|
252
|
+
<span class="cline-any cline-yes">7x</span>
|
|
253
|
+
<span class="cline-any cline-yes">7x</span>
|
|
254
|
+
<span class="cline-any cline-yes">7x</span>
|
|
255
|
+
<span class="cline-any cline-yes">7x</span>
|
|
256
|
+
<span class="cline-any cline-yes">7x</span>
|
|
257
|
+
<span class="cline-any cline-yes">1x</span>
|
|
258
|
+
<span class="cline-any cline-yes">1x</span>
|
|
229
259
|
<span class="cline-any cline-no"> </span>
|
|
230
260
|
<span class="cline-any cline-no"> </span>
|
|
231
261
|
<span class="cline-any cline-no"> </span>
|
|
262
|
+
<span class="cline-any cline-yes">1x</span>
|
|
263
|
+
<span class="cline-any cline-yes">1x</span>
|
|
232
264
|
<span class="cline-any cline-no"> </span>
|
|
233
265
|
<span class="cline-any cline-no"> </span>
|
|
234
266
|
<span class="cline-any cline-no"> </span>
|
|
235
267
|
<span class="cline-any cline-no"> </span>
|
|
236
268
|
<span class="cline-any cline-no"> </span>
|
|
237
269
|
<span class="cline-any cline-no"> </span>
|
|
270
|
+
<span class="cline-any cline-yes">1x</span>
|
|
271
|
+
<span class="cline-any cline-yes">1x</span>
|
|
238
272
|
<span class="cline-any cline-no"> </span>
|
|
239
273
|
<span class="cline-any cline-no"> </span>
|
|
240
274
|
<span class="cline-any cline-no"> </span>
|
|
275
|
+
<span class="cline-any cline-yes">1x</span>
|
|
276
|
+
<span class="cline-any cline-yes">1x</span>
|
|
277
|
+
<span class="cline-any cline-no"> </span>
|
|
241
278
|
<span class="cline-any cline-no"> </span>
|
|
242
279
|
<span class="cline-any cline-no"> </span>
|
|
243
280
|
<span class="cline-any cline-no"> </span>
|
|
244
281
|
<span class="cline-any cline-no"> </span>
|
|
245
282
|
<span class="cline-any cline-no"> </span>
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
283
|
+
<span class="cline-any cline-yes">1x</span>
|
|
284
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
|
+
<span class="cline-any cline-no"> </span>
|
|
248
286
|
<span class="cline-any cline-no"> </span>
|
|
249
287
|
<span class="cline-any cline-no"> </span>
|
|
288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
|
+
<span class="cline-any cline-yes">1x</span>
|
|
250
290
|
<span class="cline-any cline-no"> </span>
|
|
251
291
|
<span class="cline-any cline-no"> </span>
|
|
252
292
|
<span class="cline-any cline-no"> </span>
|
|
@@ -264,109 +304,83 @@
|
|
|
264
304
|
<span class="cline-any cline-no"> </span>
|
|
265
305
|
<span class="cline-any cline-no"> </span>
|
|
266
306
|
<span class="cline-any cline-no"> </span>
|
|
267
|
-
<span class="cline-any cline-yes">2x</span>
|
|
268
|
-
<span class="cline-any cline-yes">2x</span>
|
|
269
|
-
<span class="cline-any cline-yes">11x</span>
|
|
270
|
-
<span class="cline-any cline-yes">11x</span>
|
|
271
|
-
<span class="cline-any cline-yes">11x</span>
|
|
272
|
-
<span class="cline-any cline-yes">11x</span>
|
|
273
|
-
<span class="cline-any cline-yes">11x</span>
|
|
274
|
-
<span class="cline-any cline-yes">11x</span>
|
|
275
|
-
<span class="cline-any cline-yes">11x</span>
|
|
276
|
-
<span class="cline-any cline-yes">11x</span>
|
|
277
|
-
<span class="cline-any cline-yes">11x</span>
|
|
278
|
-
<span class="cline-any cline-yes">2x</span>
|
|
279
|
-
<span class="cline-any cline-yes">2x</span>
|
|
280
307
|
<span class="cline-any cline-no"> </span>
|
|
281
308
|
<span class="cline-any cline-no"> </span>
|
|
282
309
|
<span class="cline-any cline-no"> </span>
|
|
283
|
-
<span class="cline-any cline-yes">2x</span>
|
|
284
|
-
<span class="cline-any cline-yes">2x</span>
|
|
285
|
-
<span class="cline-any cline-yes">1x</span>
|
|
286
|
-
<span class="cline-any cline-yes">1x</span>
|
|
287
|
-
<span class="cline-any cline-yes">1x</span>
|
|
288
|
-
<span class="cline-any cline-yes">1x</span>
|
|
289
|
-
<span class="cline-any cline-yes">1x</span>
|
|
290
|
-
<span class="cline-any cline-yes">1x</span>
|
|
291
|
-
<span class="cline-any cline-yes">2x</span>
|
|
292
|
-
<span class="cline-any cline-yes">2x</span>
|
|
293
310
|
<span class="cline-any cline-no"> </span>
|
|
294
311
|
<span class="cline-any cline-no"> </span>
|
|
295
312
|
<span class="cline-any cline-no"> </span>
|
|
296
|
-
<span class="cline-any cline-yes">2x</span>
|
|
297
|
-
<span class="cline-any cline-yes">2x</span>
|
|
298
313
|
<span class="cline-any cline-no"> </span>
|
|
299
314
|
<span class="cline-any cline-no"> </span>
|
|
300
315
|
<span class="cline-any cline-no"> </span>
|
|
301
316
|
<span class="cline-any cline-no"> </span>
|
|
302
317
|
<span class="cline-any cline-no"> </span>
|
|
303
318
|
<span class="cline-any cline-no"> </span>
|
|
304
|
-
<span class="cline-any cline-yes">2x</span>
|
|
305
|
-
<span class="cline-any cline-yes">2x</span>
|
|
306
319
|
<span class="cline-any cline-no"> </span>
|
|
307
320
|
<span class="cline-any cline-no"> </span>
|
|
308
321
|
<span class="cline-any cline-no"> </span>
|
|
309
|
-
<span class="cline-any cline-
|
|
310
|
-
<span class="cline-any cline-
|
|
311
|
-
<span class="cline-any cline-yes">
|
|
312
|
-
<span class="cline-any cline-yes">
|
|
313
|
-
<span class="cline-any cline-yes">
|
|
314
|
-
<span class="cline-any cline-yes">
|
|
315
|
-
<span class="cline-any cline-yes">11x</span>
|
|
316
|
-
<span class="cline-any cline-yes">11x</span>
|
|
317
|
-
<span class="cline-any cline-yes">11x</span>
|
|
318
|
-
<span class="cline-any cline-yes">11x</span>
|
|
319
|
-
<span class="cline-any cline-yes">11x</span>
|
|
320
|
-
<span class="cline-any cline-yes">11x</span>
|
|
321
|
-
<span class="cline-any cline-yes">11x</span>
|
|
322
|
-
<span class="cline-any cline-yes">11x</span>
|
|
323
|
-
<span class="cline-any cline-yes">11x</span>
|
|
324
|
-
<span class="cline-any cline-yes">11x</span>
|
|
325
|
-
<span class="cline-any cline-yes">11x</span>
|
|
326
|
-
<span class="cline-any cline-yes">11x</span>
|
|
327
|
-
<span class="cline-any cline-yes">11x</span>
|
|
328
|
-
<span class="cline-any cline-yes">11x</span>
|
|
329
|
-
<span class="cline-any cline-yes">11x</span>
|
|
330
|
-
<span class="cline-any cline-yes">11x</span>
|
|
331
|
-
<span class="cline-any cline-yes">11x</span>
|
|
332
|
-
<span class="cline-any cline-yes">11x</span>
|
|
333
|
-
<span class="cline-any cline-yes">11x</span>
|
|
334
|
-
<span class="cline-any cline-yes">11x</span>
|
|
335
|
-
<span class="cline-any cline-yes">11x</span>
|
|
336
|
-
<span class="cline-any cline-yes">11x</span>
|
|
337
|
-
<span class="cline-any cline-yes">11x</span>
|
|
338
|
-
<span class="cline-any cline-yes">11x</span>
|
|
322
|
+
<span class="cline-any cline-no"> </span>
|
|
323
|
+
<span class="cline-any cline-no"> </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">7x</span>
|
|
327
|
+
<span class="cline-any cline-yes">7x</span>
|
|
339
328
|
<span class="cline-any cline-yes">7x</span>
|
|
340
329
|
<span class="cline-any cline-yes">7x</span>
|
|
341
330
|
<span class="cline-any cline-yes">7x</span>
|
|
342
331
|
<span class="cline-any cline-yes">7x</span>
|
|
343
332
|
<span class="cline-any cline-yes">7x</span>
|
|
344
333
|
<span class="cline-any cline-yes">7x</span>
|
|
345
|
-
<span class="cline-any cline-yes">11x</span>
|
|
346
|
-
<span class="cline-any cline-yes">11x</span>
|
|
347
|
-
<span class="cline-any cline-yes">11x</span>
|
|
348
|
-
<span class="cline-any cline-no"> </span>
|
|
349
|
-
<span class="cline-any cline-no"> </span>
|
|
350
|
-
<span class="cline-any cline-no"> </span>
|
|
351
|
-
<span class="cline-any cline-yes">11x</span>
|
|
352
|
-
<span class="cline-any cline-yes">11x</span>
|
|
353
|
-
<span class="cline-any cline-yes">11x</span>
|
|
354
334
|
<span class="cline-any cline-yes">7x</span>
|
|
355
335
|
<span class="cline-any cline-yes">7x</span>
|
|
356
336
|
<span class="cline-any cline-yes">7x</span>
|
|
357
|
-
<span class="cline-any cline-yes">11x</span>
|
|
358
|
-
<span class="cline-any cline-yes">11x</span>
|
|
359
|
-
<span class="cline-any cline-yes">11x</span>
|
|
360
337
|
<span class="cline-any cline-yes">7x</span>
|
|
361
338
|
<span class="cline-any cline-yes">7x</span>
|
|
362
339
|
<span class="cline-any cline-yes">7x</span>
|
|
363
|
-
<span class="cline-any cline-yes">
|
|
340
|
+
<span class="cline-any cline-yes">7x</span>
|
|
341
|
+
<span class="cline-any cline-yes">7x</span>
|
|
342
|
+
<span class="cline-any cline-yes">7x</span>
|
|
343
|
+
<span class="cline-any cline-yes">7x</span>
|
|
344
|
+
<span class="cline-any cline-no"> </span>
|
|
345
|
+
<span class="cline-any cline-no"> </span>
|
|
346
|
+
<span class="cline-any cline-no"> </span>
|
|
347
|
+
<span class="cline-any cline-no"> </span>
|
|
348
|
+
<span class="cline-any cline-no"> </span>
|
|
349
|
+
<span class="cline-any cline-no"> </span>
|
|
350
|
+
<span class="cline-any cline-no"> </span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-no"> </span>
|
|
353
|
+
<span class="cline-any cline-no"> </span>
|
|
354
|
+
<span class="cline-any cline-no"> </span>
|
|
355
|
+
<span class="cline-any cline-no"> </span>
|
|
356
|
+
<span class="cline-any cline-no"> </span>
|
|
357
|
+
<span class="cline-any cline-no"> </span>
|
|
358
|
+
<span class="cline-any cline-no"> </span>
|
|
359
|
+
<span class="cline-any cline-no"> </span>
|
|
360
|
+
<span class="cline-any cline-no"> </span>
|
|
361
|
+
<span class="cline-any cline-no"> </span>
|
|
362
|
+
<span class="cline-any cline-no"> </span>
|
|
363
|
+
<span class="cline-any cline-no"> </span>
|
|
364
|
+
<span class="cline-any cline-no"> </span>
|
|
365
|
+
<span class="cline-any cline-no"> </span>
|
|
366
|
+
<span class="cline-any cline-no"> </span>
|
|
367
|
+
<span class="cline-any cline-no"> </span>
|
|
368
|
+
<span class="cline-any cline-no"> </span>
|
|
369
|
+
<span class="cline-any cline-no"> </span>
|
|
370
|
+
<span class="cline-any cline-no"> </span>
|
|
371
|
+
<span class="cline-any cline-no"> </span>
|
|
372
|
+
<span class="cline-any cline-no"> </span>
|
|
373
|
+
<span class="cline-any cline-no"> </span>
|
|
374
|
+
<span class="cline-any cline-no"> </span>
|
|
375
|
+
<span class="cline-any cline-no"> </span>
|
|
376
|
+
<span class="cline-any cline-no"> </span>
|
|
377
|
+
<span class="cline-any cline-no"> </span>
|
|
378
|
+
<span class="cline-any cline-no"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">7x</span>
|
|
364
380
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
|
|
365
381
|
import path from 'path'
|
|
366
382
|
import makeDebug from 'debug'
|
|
367
383
|
import { fileURLToPath } from 'url'
|
|
368
|
-
import mongodb from 'mongodb'
|
|
369
|
-
const { ObjectID } = mongodb
|
|
370
384
|
|
|
371
385
|
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
|
372
386
|
const modelsPath = path.join(__dirname, '..', 'models')
|
|
@@ -374,44 +388,17 @@ const servicesPath = path.join(__dirname, '..', 'services')
|
|
|
374
388
|
|
|
375
389
|
const debug = makeDebug('kdk:core:services')
|
|
376
390
|
|
|
377
|
-
export <span class="fstat-no" title="function not covered" >function
|
|
391
|
+
export <span class="fstat-no" title="function not covered" >function createTagService (options = {}) {</span>
|
|
378
392
|
<span class="cstat-no" title="statement not covered" > const app = this</span>
|
|
379
|
-
<span class="cstat-no" title="statement not covered" >
|
|
380
|
-
<span class="cstat-no" title="statement not covered" >
|
|
381
|
-
<span class="cstat-no" title="statement not covered" >
|
|
382
|
-
<span class="cstat-no" title="statement not covered" >
|
|
383
|
-
<span class="cstat-no" title="statement not covered" > const contextId = (lastSlash >= 0 ? name.substring(0, lastSlash) : '')</span>
|
|
384
|
-
<span class="cstat-no" title="statement not covered" > // Check if a string is a valid MongoDB Object ID.</span>
|
|
385
|
-
<span class="cstat-no" title="statement not covered" > // We don't use ObjectID.isValid as it returns true for any string that contains 12 characters: https://jira.mongodb.org/browse/NODE-4912.</span>
|
|
386
|
-
<span class="cstat-no" title="statement not covered" > // Regular expression that checks for hex value</span>
|
|
387
|
-
<span class="cstat-no" title="statement not covered" > const checkForHexRegExp = /^[0-9a-fA-F]{24}$/</span>
|
|
388
|
-
<span class="cstat-no" title="statement not covered" > if (contextId && (contextId.length === 24) && checkForHexRegExp.test(contextId)) {</span>
|
|
389
|
-
<span class="cstat-no" title="statement not covered" > name = name.replace(contextId + '/', '')</span>
|
|
390
|
-
<span class="cstat-no" title="statement not covered" > return { name, contextId }</span>
|
|
391
|
-
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
392
|
-
<span class="cstat-no" title="statement not covered" > return { name }</span>
|
|
393
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
393
|
+
<span class="cstat-no" title="statement not covered" > return app.createService('tags', Object.assign({</span>
|
|
394
|
+
<span class="cstat-no" title="statement not covered" > servicesPath,</span>
|
|
395
|
+
<span class="cstat-no" title="statement not covered" > modelsPath</span>
|
|
396
|
+
<span class="cstat-no" title="statement not covered" > }, options))</span>
|
|
394
397
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
395
398
|
|
|
396
|
-
export <span class="fstat-no" title="function not covered" >function
|
|
399
|
+
export <span class="fstat-no" title="function not covered" >function removeTagService (options = {}) {</span>
|
|
397
400
|
<span class="cstat-no" title="statement not covered" > const app = this</span>
|
|
398
|
-
<span class="cstat-no" title="statement not covered" >
|
|
399
|
-
<span class="cstat-no" title="statement not covered" > const remoteService = app.service(service.path)</span>
|
|
400
|
-
<span class="cstat-no" title="statement not covered" > const { name, contextId } = getServiceNameAndContext.call(app, service.path)</span>
|
|
401
|
-
<span class="cstat-no" title="statement not covered" > remoteService.name = name</span>
|
|
402
|
-
<span class="cstat-no" title="statement not covered" > remoteService.context = contextId</span>
|
|
403
|
-
<span class="cstat-no" title="statement not covered" > // As remote services have no context, from the internal point of view path = name</span>
|
|
404
|
-
<span class="cstat-no" title="statement not covered" > // Unfortunately this property is already set and used by feathers-distributed and should not be altered</span>
|
|
405
|
-
<span class="cstat-no" title="statement not covered" > // remoteService.path = name</span>
|
|
406
|
-
<span class="cstat-no" title="statement not covered" > remoteService.app = app</span>
|
|
407
|
-
<span class="cstat-no" title="statement not covered" > remoteService.getPath = function (withApiPrefix) {</span>
|
|
408
|
-
<span class="cstat-no" title="statement not covered" > const path = (contextId ? contextId + '/' + name : name)</span>
|
|
409
|
-
<span class="cstat-no" title="statement not covered" > return (withApiPrefix ? app.get('apiPath') + '/' + path : path)</span>
|
|
410
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
411
|
-
<span class="cstat-no" title="statement not covered" > remoteService.getContextId = function () {</span>
|
|
412
|
-
<span class="cstat-no" title="statement not covered" > return contextId</span>
|
|
413
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
414
|
-
<span class="cstat-no" title="statement not covered" > return remoteService</span>
|
|
401
|
+
<span class="cstat-no" title="statement not covered" > return app.removeService(app.getService('tags', options.context))</span>
|
|
415
402
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
416
403
|
|
|
417
404
|
export function createStorageService (options = {}) {
|
|
@@ -430,13 +417,13 @@ export <span class="fstat-no" title="function not covered" >function removeStora
|
|
|
430
417
|
<span class="cstat-no" title="statement not covered" > return app.removeService(app.getService('storage', options.context))</span>
|
|
431
418
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
432
419
|
|
|
433
|
-
export function createMessagesService (options = {}) {
|
|
434
|
-
const app = this
|
|
435
|
-
return app.createService('messages', Object.assign({
|
|
436
|
-
servicesPath
|
|
437
|
-
modelsPath
|
|
438
|
-
}, options))
|
|
439
|
-
}
|
|
420
|
+
export <span class="fstat-no" title="function not covered" >function createMessagesService (options = {}) {</span>
|
|
421
|
+
<span class="cstat-no" title="statement not covered" > const app = this</span>
|
|
422
|
+
<span class="cstat-no" title="statement not covered" > return app.createService('messages', Object.assign({</span>
|
|
423
|
+
<span class="cstat-no" title="statement not covered" > servicesPath,</span>
|
|
424
|
+
<span class="cstat-no" title="statement not covered" > modelsPath</span>
|
|
425
|
+
<span class="cstat-no" title="statement not covered" > }, options))</span>
|
|
426
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
|
440
427
|
|
|
441
428
|
export <span class="fstat-no" title="function not covered" >function removeMessagesService (options = {}) {</span>
|
|
442
429
|
<span class="cstat-no" title="statement not covered" > const app = this</span>
|
|
@@ -456,17 +443,48 @@ export <span class="fstat-no" title="function not covered" >function removeDatab
|
|
|
456
443
|
<span class="cstat-no" title="statement not covered" > return app.removeService(app.getService('databases', options.context))</span>
|
|
457
444
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
458
445
|
|
|
446
|
+
export <span class="fstat-no" title="function not covered" >async function createOrganisationService (options = {}) {</span>
|
|
447
|
+
<span class="cstat-no" title="statement not covered" > const app = this</span>
|
|
448
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
449
|
+
<span class="cstat-no" title="statement not covered" > // Create services to manage MongoDB databases, organisations, etc.</span>
|
|
450
|
+
<span class="cstat-no" title="statement not covered" > await createDatabasesService.call(app)</span>
|
|
451
|
+
<span class="cstat-no" title="statement not covered" > const orgsService = await app.createService('organisations', { modelsPath, servicesPath })</span>
|
|
452
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
453
|
+
<span class="cstat-no" title="statement not covered" > // Replication management</span>
|
|
454
|
+
<span class="cstat-no" title="statement not covered" > const usersService = app.getService('users')</span>
|
|
455
|
+
<span class="cstat-no" title="statement not covered" > const authorisationsService = app.getService('authorisations')</span>
|
|
456
|
+
<span class="cstat-no" title="statement not covered" > // Ensure permissions are correctly distributed when replicated</span>
|
|
457
|
+
<span class="cstat-no" title="statement not covered" > usersService.on('patched', user => {</span>
|
|
458
|
+
<span class="cstat-no" title="statement not covered" > // Patching profile should not trigger abilities update since</span>
|
|
459
|
+
<span class="cstat-no" title="statement not covered" > // it is a perspective and permissions are not available in this case</span>
|
|
460
|
+
<span class="cstat-no" title="statement not covered" > // Updating abilities in this case will result in loosing permissions for orgs/groups as none are available</span>
|
|
461
|
+
<span class="cstat-no" title="statement not covered" > if (_.has(user, 'organisations') || _.has(user, 'groups')) authorisationsService.updateAbilities(user)</span>
|
|
462
|
+
<span class="cstat-no" title="statement not covered" > })</span>
|
|
463
|
+
<span class="cstat-no" title="statement not covered" > // Ensure org services are correctly distributed when replicated</span>
|
|
464
|
+
<span class="cstat-no" title="statement not covered" > orgsService.on('created', organisation => {</span>
|
|
465
|
+
<span class="cstat-no" title="statement not covered" > // Check if already done (initiator)</span>
|
|
466
|
+
<span class="cstat-no" title="statement not covered" > const orgMembersService = app.getService('members', organisation)</span>
|
|
467
|
+
<span class="cstat-no" title="statement not covered" > if (!orgMembersService) {</span>
|
|
468
|
+
<span class="cstat-no" title="statement not covered" > // Jump from infos/stats to real DB object</span>
|
|
469
|
+
<span class="cstat-no" title="statement not covered" > const db = app.db.client.db(organisation._id.toString())</span>
|
|
470
|
+
<span class="cstat-no" title="statement not covered" > orgsService.createOrganisationServices(organisation, db)</span>
|
|
471
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
472
|
+
<span class="cstat-no" title="statement not covered" > })</span>
|
|
473
|
+
<span class="cstat-no" title="statement not covered" > orgsService.on('removed', organisation => {</span>
|
|
474
|
+
<span class="cstat-no" title="statement not covered" > // Check if already done (initiator)</span>
|
|
475
|
+
<span class="cstat-no" title="statement not covered" > const orgMembersService = app.getService('members', organisation)</span>
|
|
476
|
+
<span class="cstat-no" title="statement not covered" > if (!orgMembersService) return</span>
|
|
477
|
+
<span class="cstat-no" title="statement not covered" > orgsService.removeOrganisationServices(organisation)</span>
|
|
478
|
+
<span class="cstat-no" title="statement not covered" > })</span>
|
|
479
|
+
<span class="cstat-no" title="statement not covered" > return orgsService</span>
|
|
480
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
|
481
|
+
|
|
459
482
|
export default async function () {
|
|
460
483
|
const app = this
|
|
461
484
|
|
|
462
485
|
const authConfig = app.get('authentication')
|
|
463
486
|
if (authConfig) {
|
|
464
|
-
await app.createService('users', {
|
|
465
|
-
modelsPath,
|
|
466
|
-
servicesPath,
|
|
467
|
-
methods: ['create', 'get', 'find', 'update', 'patch', 'remove', 'logout'],
|
|
468
|
-
events: ['logout']
|
|
469
|
-
})
|
|
487
|
+
await app.createService('users', { modelsPath, servicesPath })
|
|
470
488
|
debug('\'users\' service created')
|
|
471
489
|
await app.createService('account', {
|
|
472
490
|
servicesPath,
|
|
@@ -480,35 +498,41 @@ export default async function () {
|
|
|
480
498
|
const storageConfig = app.get('storage')
|
|
481
499
|
if (storageConfig) {
|
|
482
500
|
await createStorageService.call(app)
|
|
483
|
-
debug('\'storage\' service created')
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
const importExportConfig = app.get('import-export')
|
|
487
|
-
if (importExportConfig) {
|
|
488
|
-
await app.createService('import-export', {
|
|
489
|
-
servicesPath
|
|
490
|
-
events: ['import-created', 'import-completed', 'export-created', 'export-completed']
|
|
491
|
-
}, app)
|
|
492
|
-
debug('\'import-export\' service created')
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
const messagesConfig = app.get('messages')
|
|
496
|
-
|
|
501
|
+
<span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > debug('\'storage\' service created')</span></span>
|
|
502
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
503
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
504
|
+
<span class="cstat-no" title="statement not covered" > const importExportConfig = app.get('import-export')</span>
|
|
505
|
+
<span class="cstat-no" title="statement not covered" > if (importExportConfig) {</span>
|
|
506
|
+
<span class="cstat-no" title="statement not covered" > await app.createService('import-export', {</span>
|
|
507
|
+
<span class="cstat-no" title="statement not covered" > servicesPath,</span>
|
|
508
|
+
<span class="cstat-no" title="statement not covered" > events: ['import-created', 'import-completed', 'export-created', 'export-completed']</span>
|
|
509
|
+
<span class="cstat-no" title="statement not covered" > }, app)</span>
|
|
510
|
+
<span class="cstat-no" title="statement not covered" > debug('\'import-export\' service created')</span>
|
|
511
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
512
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
513
|
+
<span class="cstat-no" title="statement not covered" > const messagesConfig = app.get('messages')</span>
|
|
514
|
+
<span class="cstat-no" title="statement not covered" > if (messagesConfig) {</span>
|
|
497
515
|
<span class="cstat-no" title="statement not covered" > await createMessagesService.call(app)</span>
|
|
498
516
|
<span class="cstat-no" title="statement not covered" > debug('\'messages\' service created')</span>
|
|
499
517
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
500
|
-
|
|
501
|
-
const
|
|
502
|
-
if (
|
|
503
|
-
await
|
|
504
|
-
debug('\'
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
const
|
|
508
|
-
if (
|
|
509
|
-
await app.createService('
|
|
510
|
-
debug('\'
|
|
511
|
-
}
|
|
518
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
519
|
+
<span class="cstat-no" title="statement not covered" > const orgConfig = app.get('organisations')</span>
|
|
520
|
+
<span class="cstat-no" title="statement not covered" > if (orgConfig) {</span>
|
|
521
|
+
<span class="cstat-no" title="statement not covered" > await createOrganisationService.call(app)</span>
|
|
522
|
+
<span class="cstat-no" title="statement not covered" > debug('\'organisations\' service created')</span>
|
|
523
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
524
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
525
|
+
<span class="cstat-no" title="statement not covered" > const mailerConfig = app.get('mailer')</span>
|
|
526
|
+
<span class="cstat-no" title="statement not covered" > if (mailerConfig) {</span>
|
|
527
|
+
<span class="cstat-no" title="statement not covered" > await app.createService('mailer', { servicesPath })</span>
|
|
528
|
+
<span class="cstat-no" title="statement not covered" > debug('\'mailer\' service created')</span>
|
|
529
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
530
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
531
|
+
<span class="cstat-no" title="statement not covered" > const pushConfig = app.get('push')</span>
|
|
532
|
+
<span class="cstat-no" title="statement not covered" > if (pushConfig) {</span>
|
|
533
|
+
<span class="cstat-no" title="statement not covered" > await app.createService('push', { servicesPath })</span>
|
|
534
|
+
<span class="cstat-no" title="statement not covered" > debug('\'push\' service created')</span>
|
|
535
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
512
536
|
}
|
|
513
537
|
</pre></td></tr></table></pre>
|
|
514
538
|
|
|
@@ -517,7 +541,7 @@ export default async function () {
|
|
|
517
541
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
518
542
|
Code coverage generated by
|
|
519
543
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
520
|
-
at
|
|
544
|
+
at 2024-08-13T10:02:04.843Z
|
|
521
545
|
</div>
|
|
522
546
|
<script src="../../../prettify.js"></script>
|
|
523
547
|
<script>
|