@kalisio/kdk 2.2.2 → 2.3.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/.eslintignore +1 -0
- package/.github/workflows/main.yaml +67 -0
- package/.gitmodules +3 -0
- package/README.md +1 -2
- package/core/api/hooks/hooks.query.js +15 -2
- package/core/api/marshall.js +35 -4
- package/core/client/api.js +1 -1
- package/core/client/components/KActivity.vue +73 -0
- package/core/client/components/KContent.vue +1 -1
- package/core/client/components/KSponsor.vue +2 -13
- package/core/client/components/account/KDeleteAccountManager.vue +1 -1
- package/core/client/components/account/KPasswordManager.vue +1 -1
- package/core/client/components/action/KAction.vue +294 -0
- package/core/client/components/action/KBugReportAction.vue +37 -0
- package/core/client/components/action/index.js +7 -0
- package/core/client/components/app/KAbout.vue +16 -63
- package/core/client/components/app/KPlatform.vue +1 -1
- package/core/client/components/app/KSettings.vue +14 -14
- package/core/client/components/app/KTour.vue +6 -8
- package/core/client/components/app/KWelcome.vue +1 -1
- package/core/client/components/app/index.js +4 -0
- package/core/client/components/chart/KDataTable.vue +40 -25
- package/core/client/components/chart/KTimeSeriesChart.vue +20 -12
- package/core/client/components/collection/KCard.vue +1 -1
- package/core/client/components/collection/KCardSection.vue +3 -2
- package/core/client/components/collection/KColumn.vue +1 -1
- package/core/client/components/collection/KFilter.vue +6 -1
- package/core/client/components/document/KDocument.vue +83 -0
- package/core/client/components/document/KHtml.vue +23 -0
- package/core/client/components/document/KMarkdown.vue +37 -0
- package/core/client/components/document/index.js +9 -0
- package/core/client/components/form/KForm.vue +6 -2
- package/core/client/components/form/KSelectField.vue +1 -1
- package/core/client/components/index.js +1 -4
- package/core/client/components/input/KOptionsChooser.vue +1 -1
- package/core/client/components/layout/KFab.vue +1 -1
- package/core/client/components/layout/KPage.vue +3 -2
- package/core/client/components/layout/KWindow.vue +1 -1
- package/core/client/components/media/KColorScale.vue +16 -6
- package/core/client/components/screen/KLoginScreen.vue +1 -1
- package/core/client/components/screen/KRegisterScreen.vue +1 -1
- package/core/client/components/team/KAddMember.vue +7 -7
- package/core/client/components/team/KGroupCard.vue +1 -1
- package/core/client/components/team/KMemberFilter.vue +1 -1
- package/core/client/components/team/KTagCard.vue +1 -1
- package/core/client/components/time/KRelativeTimeRanges.vue +16 -1
- package/core/client/components/time/KTimeControl.vue +1 -0
- package/core/client/components/tool/KExportTool.vue +1 -1
- package/core/client/composables/collection.js +1 -1
- package/core/client/composables/index.js +1 -0
- package/core/client/composables/layout.js +50 -0
- package/core/client/composables/session.js +6 -0
- package/core/client/filter.js +9 -6
- package/core/client/guards.js +29 -6
- package/core/client/i18n/core_en.json +4 -1
- package/core/client/i18n/core_fr.json +8 -5
- package/core/client/i18n.js +14 -0
- package/core/client/layout.js +25 -14
- package/core/client/mixins/mixin.base-activity.js +16 -0
- package/core/client/services/index.js +27 -26
- package/core/client/services/local-settings.service.js +2 -3
- package/core/client/units.js +6 -1
- package/core/client/utils/index.js +3 -0
- package/core/client/utils/utils.actions.js +93 -0
- package/core/client/utils/utils.colors.js +1 -1
- package/core/client/utils/utils.data.js +22 -0
- package/core/client/utils/utils.shapes.js +16 -6
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/core/api/application.js.html +1870 -0
- package/coverage/core/api/authentication.js.html +742 -0
- package/coverage/core/api/db.js.html +778 -0
- package/coverage/core/api/hooks/hooks.authentication.js.html +313 -0
- package/coverage/core/api/hooks/hooks.authorisations.js.html +1243 -0
- package/coverage/core/api/hooks/hooks.groups.js.html +229 -0
- package/coverage/core/api/hooks/hooks.logger.js.html +163 -0
- package/coverage/core/api/hooks/hooks.model.js.html +955 -0
- package/coverage/core/api/hooks/hooks.organisations.js.html +541 -0
- package/coverage/core/api/hooks/hooks.push.js.html +253 -0
- package/coverage/core/api/hooks/hooks.query.js.html +862 -0
- package/coverage/core/api/hooks/hooks.schemas.js.html +304 -0
- package/coverage/core/api/hooks/hooks.service.js.html +319 -0
- package/coverage/core/api/hooks/hooks.storage.js.html +193 -0
- package/coverage/core/api/hooks/hooks.users.js.html +868 -0
- package/coverage/core/api/hooks/index.html +296 -0
- package/coverage/core/api/hooks/index.js.html +121 -0
- package/coverage/core/api/index.html +191 -0
- package/coverage/core/api/index.js.html +148 -0
- package/coverage/core/api/marshall.js.html +448 -0
- package/coverage/core/api/models/groups.model.mongodb.js.html +109 -0
- package/coverage/core/api/models/index.html +161 -0
- package/coverage/core/api/models/organisations.model.mongodb.js.html +94 -0
- package/coverage/core/api/models/tags.model.mongodb.js.html +115 -0
- package/coverage/core/api/models/users.model.mongodb.js.html +115 -0
- package/coverage/core/api/services/account/account.hooks.js.html +208 -0
- package/coverage/core/api/services/account/account.service.js.html +436 -0
- package/coverage/core/api/services/account/index.html +131 -0
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +502 -0
- package/coverage/core/api/services/authorisations/index.html +131 -0
- package/coverage/core/api/services/databases/databases.hooks.js.html +193 -0
- package/coverage/core/api/services/databases/databases.service.js.html +100 -0
- package/coverage/core/api/services/databases/index.html +131 -0
- package/coverage/core/api/services/groups/groups.hooks.js.html +178 -0
- package/coverage/core/api/services/groups/index.html +116 -0
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +184 -0
- package/coverage/core/api/services/import-export/import-export.service.js.html +118 -0
- package/coverage/core/api/services/import-export/index.html +131 -0
- package/coverage/core/api/services/index.html +116 -0
- package/coverage/core/api/services/index.js.html +499 -0
- package/coverage/core/api/services/mailer/index.html +131 -0
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +190 -0
- package/coverage/core/api/services/mailer/mailer.service.js.html +118 -0
- package/coverage/core/api/services/organisations/index.html +131 -0
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +178 -0
- package/coverage/core/api/services/organisations/organisations.service.js.html +343 -0
- package/coverage/core/api/services/push/index.html +131 -0
- package/coverage/core/api/services/push/push.hooks.js.html +190 -0
- package/coverage/core/api/services/push/push.service.js.html +121 -0
- package/coverage/core/api/services/storage/index.html +131 -0
- package/coverage/core/api/services/storage/storage.hooks.js.html +190 -0
- package/coverage/core/api/services/storage/storage.service.js.html +172 -0
- package/coverage/core/api/services/tags/index.html +116 -0
- package/coverage/core/api/services/tags/tags.hooks.js.html +178 -0
- package/coverage/core/api/services/users/index.html +116 -0
- package/coverage/core/api/services/users/users.hooks.js.html +307 -0
- package/coverage/core/api/utils.js.html +118 -0
- package/coverage/core/common/errors.js.html +88 -0
- package/coverage/core/common/index.html +176 -0
- package/coverage/core/common/index.js.html +115 -0
- package/coverage/core/common/permissions.js.html +1048 -0
- package/coverage/core/common/schema.js.html +190 -0
- package/coverage/core/common/utils.js.html +220 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +491 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/core/api/application.js.html +1870 -0
- package/coverage/lcov-report/core/api/authentication.js.html +742 -0
- package/coverage/lcov-report/core/api/db.js.html +778 -0
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +313 -0
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +1243 -0
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +229 -0
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +163 -0
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +955 -0
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +541 -0
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +253 -0
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +862 -0
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +304 -0
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +319 -0
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +193 -0
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +868 -0
- package/coverage/lcov-report/core/api/hooks/index.html +296 -0
- package/coverage/lcov-report/core/api/hooks/index.js.html +121 -0
- package/coverage/lcov-report/core/api/index.html +191 -0
- package/coverage/lcov-report/core/api/index.js.html +148 -0
- package/coverage/lcov-report/core/api/marshall.js.html +448 -0
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +109 -0
- package/coverage/lcov-report/core/api/models/index.html +161 -0
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +94 -0
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +115 -0
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +115 -0
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +208 -0
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +436 -0
- package/coverage/lcov-report/core/api/services/account/index.html +131 -0
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +502 -0
- package/coverage/lcov-report/core/api/services/authorisations/index.html +131 -0
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +193 -0
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +100 -0
- package/coverage/lcov-report/core/api/services/databases/index.html +131 -0
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +178 -0
- package/coverage/lcov-report/core/api/services/groups/index.html +116 -0
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +184 -0
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +118 -0
- package/coverage/lcov-report/core/api/services/import-export/index.html +131 -0
- package/coverage/lcov-report/core/api/services/index.html +116 -0
- package/coverage/lcov-report/core/api/services/index.js.html +499 -0
- package/coverage/lcov-report/core/api/services/mailer/index.html +131 -0
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +190 -0
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +118 -0
- package/coverage/lcov-report/core/api/services/organisations/index.html +131 -0
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +178 -0
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +343 -0
- package/coverage/lcov-report/core/api/services/push/index.html +131 -0
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +190 -0
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +121 -0
- package/coverage/lcov-report/core/api/services/storage/index.html +131 -0
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +190 -0
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +172 -0
- package/coverage/lcov-report/core/api/services/tags/index.html +116 -0
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +178 -0
- package/coverage/lcov-report/core/api/services/users/index.html +116 -0
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +307 -0
- package/coverage/lcov-report/core/api/utils.js.html +118 -0
- package/coverage/lcov-report/core/common/errors.js.html +88 -0
- package/coverage/lcov-report/core/common/index.html +176 -0
- package/coverage/lcov-report/core/common/index.js.html +115 -0
- package/coverage/lcov-report/core/common/permissions.js.html +1048 -0
- package/coverage/lcov-report/core/common/schema.js.html +190 -0
- package/coverage/lcov-report/core/common/utils.js.html +220 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +491 -0
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +457 -0
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +397 -0
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1309 -0
- package/coverage/lcov-report/map/api/hooks/index.html +161 -0
- package/coverage/lcov-report/map/api/hooks/index.js.html +94 -0
- package/coverage/lcov-report/map/api/index.html +131 -0
- package/coverage/lcov-report/map/api/index.js.html +139 -0
- package/coverage/lcov-report/map/api/marshall.js.html +178 -0
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +106 -0
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +127 -0
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +196 -0
- package/coverage/lcov-report/map/api/models/index.html +161 -0
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +109 -0
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +274 -0
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +610 -0
- package/coverage/lcov-report/map/api/services/alerts/index.html +131 -0
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +316 -0
- package/coverage/lcov-report/map/api/services/catalog/index.html +116 -0
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1510 -0
- package/coverage/lcov-report/map/api/services/daptiles/index.html +116 -0
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +241 -0
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +241 -0
- package/coverage/lcov-report/map/api/services/features/index.html +131 -0
- package/coverage/lcov-report/map/api/services/index.html +116 -0
- package/coverage/lcov-report/map/api/services/index.js.html +817 -0
- package/coverage/lcov-report/map/api/services/projects/index.html +116 -0
- package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +439 -0
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +466 -0
- package/coverage/lcov-report/map/common/errors.js.html +94 -0
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +541 -0
- package/coverage/lcov-report/map/common/grid.js.html +1612 -0
- package/coverage/lcov-report/map/common/index.html +371 -0
- package/coverage/lcov-report/map/common/index.js.html +172 -0
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +556 -0
- package/coverage/lcov-report/map/common/moment-utils.js.html +157 -0
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +868 -0
- package/coverage/lcov-report/map/common/opendap-utils.js.html +826 -0
- package/coverage/lcov-report/map/common/permissions.js.html +124 -0
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +418 -0
- package/coverage/lcov-report/map/common/tms-utils.js.html +274 -0
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +364 -0
- package/coverage/lcov-report/map/common/wcs-utils.js.html +586 -0
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1033 -0
- package/coverage/lcov-report/map/common/wfs-utils.js.html +574 -0
- package/coverage/lcov-report/map/common/wms-utils.js.html +451 -0
- package/coverage/lcov-report/map/common/wmts-utils.js.html +547 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov.info +11128 -0
- package/coverage/map/api/hooks/hooks.catalog.js.html +457 -0
- package/coverage/map/api/hooks/hooks.features.js.html +397 -0
- package/coverage/map/api/hooks/hooks.query.js.html +1309 -0
- package/coverage/map/api/hooks/index.html +161 -0
- package/coverage/map/api/hooks/index.js.html +94 -0
- package/coverage/map/api/index.html +131 -0
- package/coverage/map/api/index.js.html +139 -0
- package/coverage/map/api/marshall.js.html +178 -0
- package/coverage/map/api/models/alerts.model.mongodb.js.html +106 -0
- package/coverage/map/api/models/catalog.model.mongodb.js.html +127 -0
- package/coverage/map/api/models/features.model.mongodb.js.html +196 -0
- package/coverage/map/api/models/index.html +161 -0
- package/coverage/map/api/models/projects.model.mongodb.js.html +109 -0
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +274 -0
- package/coverage/map/api/services/alerts/alerts.service.js.html +610 -0
- package/coverage/map/api/services/alerts/index.html +131 -0
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +316 -0
- package/coverage/map/api/services/catalog/index.html +116 -0
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1510 -0
- package/coverage/map/api/services/daptiles/index.html +116 -0
- package/coverage/map/api/services/features/features.hooks.js.html +241 -0
- package/coverage/map/api/services/features/features.service.js.html +241 -0
- package/coverage/map/api/services/features/index.html +131 -0
- package/coverage/map/api/services/index.html +116 -0
- package/coverage/map/api/services/index.js.html +817 -0
- package/coverage/map/api/services/projects/index.html +116 -0
- package/coverage/map/api/services/projects/projects.hooks.js.html +439 -0
- package/coverage/map/common/dynamic-grid-source.js.html +466 -0
- package/coverage/map/common/errors.js.html +94 -0
- package/coverage/map/common/geotiff-grid-source.js.html +541 -0
- package/coverage/map/common/grid.js.html +1612 -0
- package/coverage/map/common/index.html +371 -0
- package/coverage/map/common/index.js.html +172 -0
- package/coverage/map/common/meteo-model-grid-source.js.html +556 -0
- package/coverage/map/common/moment-utils.js.html +157 -0
- package/coverage/map/common/opendap-grid-source.js.html +868 -0
- package/coverage/map/common/opendap-utils.js.html +826 -0
- package/coverage/map/common/permissions.js.html +124 -0
- package/coverage/map/common/time-based-grid-source.js.html +418 -0
- package/coverage/map/common/tms-utils.js.html +274 -0
- package/coverage/map/common/wcs-grid-source.js.html +364 -0
- package/coverage/map/common/wcs-utils.js.html +586 -0
- package/coverage/map/common/weacast-grid-source.js.html +1033 -0
- package/coverage/map/common/wfs-utils.js.html +574 -0
- package/coverage/map/common/wms-utils.js.html +451 -0
- package/coverage/map/common/wmts-utils.js.html +547 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/tmp/coverage-137435-1719398750767-0.json +1 -0
- package/coverage/tmp/coverage-137447-1719398750752-0.json +1 -0
- package/coverage/tmp/coverage-137458-1719398750740-0.json +1 -0
- package/coverage/tmp/coverage-137470-1719398750728-0.json +1 -0
- package/coverage/tmp/coverage-137477-1719398750691-0.json +1 -0
- package/map/api/hooks/hooks.query.js +5 -2
- package/map/api/services/catalog/catalog.hooks.js +4 -5
- package/map/client/cesium/utils/index.js +2 -1
- package/map/client/cesium/utils/utils.cesium.js +8 -0
- package/map/client/cesium/utils/utils.features.js +2 -2
- package/map/client/cesium/utils/utils.style.js +19 -17
- package/map/client/components/KCompass.vue +25 -3
- package/map/client/components/KEditLayerData.vue +1 -1
- package/map/client/components/KPositionIndicator.vue +1 -1
- package/map/client/components/catalog/KConnectLayer.vue +2 -2
- package/map/client/components/catalog/KCreateView.vue +2 -2
- package/map/client/components/form/KDirectionField.vue +4 -0
- package/map/client/components/form/KOwsLayerField.vue +4 -4
- package/map/client/components/form/KOwsServiceField.vue +3 -4
- package/map/client/components/legend/KLegend.vue +13 -15
- package/map/client/components/tools/KGeolocateTool.vue +1 -1
- package/map/client/components/widget/KStackableTimeSeries.vue +3 -0
- package/map/client/composables/highlight.js +4 -1
- package/map/client/elevation-utils.js +2 -2
- package/map/client/i18n/map_en.json +3 -1
- package/map/client/i18n/map_fr.json +3 -1
- package/map/client/mixins/globe/mixin.base-globe.js +121 -80
- package/map/client/mixins/globe/mixin.file-layers.js +2 -2
- package/map/client/mixins/globe/mixin.geojson-layers.js +24 -19
- package/map/client/mixins/globe/mixin.globe-activity.js +3 -3
- package/map/client/mixins/globe/mixin.opendap-layers.js +3 -3
- package/map/client/mixins/globe/mixin.style.js +5 -5
- package/map/client/mixins/globe/mixin.tooltip.js +5 -3
- package/map/client/mixins/map/mixin.base-map.js +42 -4
- package/map/client/mixins/map/mixin.canvas-layers.js +0 -1
- package/map/client/mixins/map/mixin.geojson-layers.js +10 -5
- package/map/client/mixins/mixin.activity.js +2 -2
- package/map/client/mixins/mixin.feature-selection.js +7 -5
- package/map/client/mixins/mixin.levels.js +1 -1
- package/map/client/utils/utils.catalog.js +15 -0
- package/map/client/utils/utils.location.js +2 -1
- package/map/client/utils/utils.style.js +1 -1
- package/map/common/geotiff-grid-source.js +5 -3
- package/map/common/grid.js +2 -2
- package/map/common/meteo-model-grid-source.js +1 -1
- package/map/common/time-based-grid-source.js +1 -1
- package/map/common/wmts-utils.js +11 -11
- package/package.json +12 -8
- package/scripts/build_docs.sh +37 -0
- package/scripts/init_runner.sh +30 -0
- package/scripts/kash/.github/workflows/run_tests.yaml +33 -0
- package/scripts/kash/README.md +2 -0
- package/scripts/kash/kash.sh +1657 -0
- package/scripts/kash/scripts/run_tests.sh +151 -0
- package/scripts/run_tests.sh +48 -0
- package/scripts/setup_workspace.sh +42 -0
- package/test/api/core/hooks.test.js +31 -0
- package/test/api/core/test-log-2023-12-19.log +7 -0
- package/test/api/core/test-log-2024-01-04.log +14 -0
- package/test/api/core/test-log-2024-05-14.log +6 -0
- package/test/api/core/test-log-2024-06-06.log +23 -0
- package/test/api/core/test-log-2024-06-26.log +25 -0
- package/test/api/core/test-log-2024-06-28.log +2 -0
- package/test/api/map/grid-sources.test.js +3 -1
- package/test/api/map/hooks.test.js +58 -12
- package/test/api/map/test-log-2023-11-24.log +121 -0
- package/test/api/map/test-log-2023-12-12.log +29 -0
- package/test/api/map/test-log-2023-12-13.log +5 -0
- package/test/api/map/test-log-2024-01-04.log +2 -0
- package/test/api/map/test-log-2024-01-11.log +1 -0
- package/test/api/map/test-log-2024-01-25.log +19 -0
- package/test/api/map/test-log-2024-06-06.log +39 -0
- package/test/client/core/collection.js +2 -2
- package/test/client/core/dialogs.js +13 -0
- package/test/client/core/index.js +6 -5
- package/test/client/core/layout.js +1 -13
- package/test/client/core/runner.js +41 -20
- package/test/client/core/screens.js +6 -0
- package/test/client/core/utils.js +23 -19
- package/.travis.doc.sh +0 -8
- package/.travis.test.sh +0 -72
- package/core/client/components/KAction.vue +0 -393
- package/core/client/components/KBlock.vue +0 -67
- package/core/client/components/app/KTerms.vue +0 -41
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
set -x
|
|
4
|
+
|
|
5
|
+
THIS_FILE=$(readlink -f "${BASH_SOURCE[0]}")
|
|
6
|
+
THIS_DIR=$(dirname "$THIS_FILE")
|
|
7
|
+
ROOT_DIR=$(dirname "$THIS_DIR")
|
|
8
|
+
|
|
9
|
+
. "$ROOT_DIR/kash.sh"
|
|
10
|
+
|
|
11
|
+
### Github Actions
|
|
12
|
+
|
|
13
|
+
init_github() {
|
|
14
|
+
install_reqs yq age sops nvm node16 node18 node20 cc_test_reporter
|
|
15
|
+
|
|
16
|
+
# mongo is not available for alpine hosts
|
|
17
|
+
if [ "$OS_ID" != "alpine" ]; then
|
|
18
|
+
install_reqs mongo4 mongo5 mongo6 mongo7
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
install_reqs kubectl helm helmfile k9s
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
## Requirements helpers
|
|
25
|
+
|
|
26
|
+
ensure_yq
|
|
27
|
+
ensure_age
|
|
28
|
+
ensure_sops
|
|
29
|
+
|
|
30
|
+
# These can't fail since we ensured bins were installed
|
|
31
|
+
command -v yq
|
|
32
|
+
command -v age
|
|
33
|
+
command -v sops
|
|
34
|
+
|
|
35
|
+
if [ "$CI" = true ]; then
|
|
36
|
+
begin_group "Init $CI_ID"
|
|
37
|
+
|
|
38
|
+
# Make sure installing stuff doesnt mess with cwd
|
|
39
|
+
CURRENT_DIR=$(pwd)
|
|
40
|
+
init_"${CI_ID}"
|
|
41
|
+
[ "$CURRENT_DIR" != "$(pwd)" ] && exit 1
|
|
42
|
+
|
|
43
|
+
end_group "Init $CI_ID"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
## Utils
|
|
47
|
+
|
|
48
|
+
mkdir -p "$TMP_DIR/utils"
|
|
49
|
+
cd "$TMP_DIR/utils"
|
|
50
|
+
curl -OLsS "https://raw.githubusercontent.com/kalisio/krawler/master/package.json"
|
|
51
|
+
[ "$(get_json_value "$TMP_DIR/utils/package.json" 'name')" != "@kalisio/krawler" ] && exit 1
|
|
52
|
+
cd ~-
|
|
53
|
+
|
|
54
|
+
## Git helpers
|
|
55
|
+
|
|
56
|
+
case "$CI_ID" in
|
|
57
|
+
github)
|
|
58
|
+
[ "$(get_git_branch "$ROOT_DIR" )" != "$GITHUB_REF_NAME" ] && exit 1
|
|
59
|
+
;;
|
|
60
|
+
gitlab)
|
|
61
|
+
[ "$(get_git_branch "$ROOT_DIR" )" != "$CI_COMMIT_REF_NAME" ] && exit 1
|
|
62
|
+
;;
|
|
63
|
+
*)
|
|
64
|
+
;;
|
|
65
|
+
esac
|
|
66
|
+
|
|
67
|
+
echo "Committer is $(get_git_commit_author_name "$ROOT_DIR") <$(get_git_commit_author_email "$ROOT_DIR")>"
|
|
68
|
+
echo "Commit message is $(get_git_commit_message "$ROOT_DIR")"
|
|
69
|
+
|
|
70
|
+
git_shallow_clone https://github.com/kalisio/feathers-s3.git "$TMP_DIR/feathers-s3.master"
|
|
71
|
+
git_shallow_clone https://github.com/kalisio/feathers-s3.git "$TMP_DIR/feathers-s3.v1.3.0" v1.3.0
|
|
72
|
+
|
|
73
|
+
[ "$(get_git_branch "$TMP_DIR/feathers-s3.master" )" != "master" ] && exit 1
|
|
74
|
+
[ "$(get_git_branch "$TMP_DIR/feathers-s3.v1.3.0" )" != "" ] && exit 1
|
|
75
|
+
|
|
76
|
+
[ "$(get_git_tag "$TMP_DIR/feathers-s3.master" )" != "" ] && exit 1
|
|
77
|
+
[ "$(get_git_tag "$TMP_DIR/feathers-s3.v1.3.0" )" != "v1.3.0" ] && exit 1
|
|
78
|
+
|
|
79
|
+
[ "$(get_git_commit_sha "$TMP_DIR/feathers-s3.v1.3.0" )" != "e28f53c386a2f74de7bdee7231b97e7150177cc7" ] && exit 1
|
|
80
|
+
|
|
81
|
+
git_shallow_clone https://github.com/kalisio/kApp.git "$TMP_DIR/kApp.master"
|
|
82
|
+
git_shallow_clone https://github.com/kalisio/kApp.git "$TMP_DIR/kApp.v1.3" test-v1.3
|
|
83
|
+
git_shallow_clone https://github.com/kalisio/kApp.git "$TMP_DIR/kApp.v1.3.0" prod-v1.3.0
|
|
84
|
+
|
|
85
|
+
[ "$(get_git_branch "$TMP_DIR/kApp.master" )" != "master" ] && exit 1
|
|
86
|
+
[ "$(get_git_branch "$TMP_DIR/kApp.v1.3" )" != "test-v1.3" ] && exit 1
|
|
87
|
+
|
|
88
|
+
[ "$(get_git_tag "$TMP_DIR/kApp.master" )" != "" ] && exit 1
|
|
89
|
+
[ "$(get_git_tag "$TMP_DIR/kApp.v1.3" )" != "" ] && exit 1
|
|
90
|
+
[ "$(get_git_tag "$TMP_DIR/kApp.v1.3.0" )" != "prod-v1.3.0" ] && exit 1
|
|
91
|
+
|
|
92
|
+
## Kalisio helpers
|
|
93
|
+
|
|
94
|
+
# Setup a fake workspace with additional dependencies
|
|
95
|
+
mkdir -p "$TMP_DIR/fake"
|
|
96
|
+
setup_workspace "$TMP_DIR/fake" "https://github.com/kalisio/kApp.git" \
|
|
97
|
+
"https://github.com/kalisio/feathers-s3.git" \
|
|
98
|
+
"https://github.com/kalisio/feathers-import-export.git"
|
|
99
|
+
|
|
100
|
+
# And check everything expected is in there
|
|
101
|
+
[ ! -d "$TMP_DIR/fake/development" ] && exit 1
|
|
102
|
+
[ ! -d "$TMP_DIR/fake/feathers-s3" ] && exit 1
|
|
103
|
+
[ ! -d "$TMP_DIR/fake/feathers-import-export" ] && exit 1
|
|
104
|
+
|
|
105
|
+
[ "$(get_flavor_from_git "$TMP_DIR/kApp.master" )" != "dev" ] && exit 1
|
|
106
|
+
[ "$(get_flavor_from_git "$TMP_DIR/kApp.v1.3" )" != "test" ] && exit 1
|
|
107
|
+
[ "$(get_flavor_from_git "$TMP_DIR/kApp.v1.3.0" )" != "prod" ] && exit 1
|
|
108
|
+
|
|
109
|
+
[ "$(get_git_ref_from_container_tag "1.1.1-test")" != "test-v1.1" ] && exit 1
|
|
110
|
+
[ "$(get_git_ref_from_container_tag "test")" != "test" ] && exit 1
|
|
111
|
+
[ "$(get_git_ref_from_container_tag "1.1.1-prod")" != "prod-v1.1.1" ] && exit 1
|
|
112
|
+
[ "$(get_git_ref_from_container_tag "1.1.1-dev")" != "master" ] && exit 1
|
|
113
|
+
[ "$(get_git_ref_from_container_tag "dev")" != "master" ] && exit 1
|
|
114
|
+
|
|
115
|
+
## App helpers
|
|
116
|
+
|
|
117
|
+
init_app_infos "$TMP_DIR/kApp.master" "$TMP_DIR/kli"
|
|
118
|
+
|
|
119
|
+
[ "$(get_app_name)" != "kapp" ] && exit 1
|
|
120
|
+
# [ "$(get_app_version)" != "kapp" ] && exit 1
|
|
121
|
+
[ "$(get_app_flavor)" != "dev" ] && exit 1
|
|
122
|
+
|
|
123
|
+
init_app_infos "$TMP_DIR/kApp.v1.3" "$TMP_DIR/kli"
|
|
124
|
+
|
|
125
|
+
[ "$(get_app_name)" != "kapp" ] && exit 1
|
|
126
|
+
[ "$(get_app_version)" != "1.3.0" ] && exit 1
|
|
127
|
+
[ "$(get_app_flavor)" != "test" ] && exit 1
|
|
128
|
+
|
|
129
|
+
init_app_infos "$TMP_DIR/kApp.v1.3.0" "$TMP_DIR/kli"
|
|
130
|
+
|
|
131
|
+
[ "$(get_app_name)" != "kapp" ] && exit 1
|
|
132
|
+
[ "$(get_app_version)" != "1.3.0" ] && exit 1
|
|
133
|
+
[ "$(get_app_flavor)" != "prod" ] && exit 1
|
|
134
|
+
|
|
135
|
+
## Lib helpers
|
|
136
|
+
|
|
137
|
+
# git clone --depth 1 https://github.com/kalisio/feathers-s3.git "$TMP_DIR/feathers-s3.master"
|
|
138
|
+
|
|
139
|
+
init_lib_infos "$TMP_DIR/feathers-s3.master"
|
|
140
|
+
|
|
141
|
+
[ "$(get_lib_name)" != "@kalisio/feathers-s3" ] && exit 1
|
|
142
|
+
|
|
143
|
+
## Job helpers
|
|
144
|
+
|
|
145
|
+
git_shallow_clone https://github.com/kalisio/k-icos.git "$TMP_DIR/k-icos.master"
|
|
146
|
+
|
|
147
|
+
init_job_infos "$TMP_DIR/k-icos.master"
|
|
148
|
+
|
|
149
|
+
[ "$(get_job_name)" != "k-icos" ] && exit 1
|
|
150
|
+
|
|
151
|
+
exit 0
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
# set -x
|
|
4
|
+
|
|
5
|
+
THIS_FILE=$(readlink -f "${BASH_SOURCE[0]}")
|
|
6
|
+
THIS_DIR=$(dirname "$THIS_FILE")
|
|
7
|
+
ROOT_DIR=$(dirname "$THIS_DIR")
|
|
8
|
+
WORKSPACE_DIR="$(dirname "$ROOT_DIR")"
|
|
9
|
+
|
|
10
|
+
. "$THIS_DIR/kash/kash.sh"
|
|
11
|
+
|
|
12
|
+
## Parse options
|
|
13
|
+
##
|
|
14
|
+
|
|
15
|
+
NODE_VER=16
|
|
16
|
+
MONGO_VER="4"
|
|
17
|
+
CI_STEP_NAME="Run tests"
|
|
18
|
+
CODE_COVERAGE=false
|
|
19
|
+
while getopts "m:n:cr:" option; do
|
|
20
|
+
case $option in
|
|
21
|
+
m) # defines mongo version
|
|
22
|
+
MONGO_VER=$OPTARG
|
|
23
|
+
;;
|
|
24
|
+
n) # defines node version
|
|
25
|
+
NODE_VER=$OPTARG
|
|
26
|
+
;;
|
|
27
|
+
c) # publish code coverage
|
|
28
|
+
CODE_COVERAGE=true
|
|
29
|
+
;;
|
|
30
|
+
r) # report outcome to slack
|
|
31
|
+
CI_STEP_NAME=$OPTARG
|
|
32
|
+
load_env_files "$WORKSPACE_DIR/development/common/SLACK_WEBHOOK_LIBS.enc.env"
|
|
33
|
+
trap 'slack_ci_report "$ROOT_DIR" "$CI_STEP_NAME" "$?" "$SLACK_WEBHOOK_LIBS"' EXIT
|
|
34
|
+
;;
|
|
35
|
+
*)
|
|
36
|
+
;;
|
|
37
|
+
esac
|
|
38
|
+
done
|
|
39
|
+
|
|
40
|
+
## Init workspace
|
|
41
|
+
##
|
|
42
|
+
|
|
43
|
+
. "$WORKSPACE_DIR/development/workspaces/libs/libs.sh" kdk
|
|
44
|
+
|
|
45
|
+
## Run tests
|
|
46
|
+
##
|
|
47
|
+
|
|
48
|
+
run_lib_tests "$ROOT_DIR" "$CODE_COVERAGE" "$NODE_VER" "$MONGO_VER"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
# set -x
|
|
4
|
+
|
|
5
|
+
THIS_FILE=$(readlink -f "${BASH_SOURCE[0]}")
|
|
6
|
+
THIS_DIR=$(dirname "$THIS_FILE")
|
|
7
|
+
ROOT_DIR=$(dirname "$THIS_DIR")
|
|
8
|
+
WORKSPACE_DIR="$(dirname "$ROOT_DIR")"
|
|
9
|
+
|
|
10
|
+
. "$THIS_DIR/kash/kash.sh"
|
|
11
|
+
|
|
12
|
+
## Parse options
|
|
13
|
+
##
|
|
14
|
+
|
|
15
|
+
begin_group "Setting up workspace ..."
|
|
16
|
+
|
|
17
|
+
if [ "$CI" != true ]; then
|
|
18
|
+
while getopts "b:t" option; do
|
|
19
|
+
case $option in
|
|
20
|
+
b) # defines branch
|
|
21
|
+
WORKSPACE_BRANCH=$OPTARG;;
|
|
22
|
+
t) # defines tag
|
|
23
|
+
WORKSPACE_TAG=$OPTARG;;
|
|
24
|
+
*)
|
|
25
|
+
;;
|
|
26
|
+
esac
|
|
27
|
+
done
|
|
28
|
+
|
|
29
|
+
shift $((OPTIND-1))
|
|
30
|
+
WORKSPACE_DIR="$1"
|
|
31
|
+
|
|
32
|
+
# Clone project in the workspace
|
|
33
|
+
git_shallow_clone "$KALISIO_GITHUB_URL/kalisio/kdk.git" "$WORKSPACE_DIR/kdk" "${WORKSPACE_TAG:-${WORKSPACE_BRANCH:-}}"
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
setup_lib_workspace "$WORKSPACE_DIR" "$KALISIO_GITHUB_URL/kalisio/development.git" \
|
|
37
|
+
"https://github.com/kalisio/feathers-distributed.git" \
|
|
38
|
+
"https://github.com/kalisio/feathers-webpush.git" \
|
|
39
|
+
"https://github.com/kalisio/feathers-s3.git" \
|
|
40
|
+
"https://github.com/kalisio/feathers-import-export.git"
|
|
41
|
+
|
|
42
|
+
end_group "Setting up workspace ..."
|
|
@@ -220,6 +220,37 @@ describe('core:hooks', () => {
|
|
|
220
220
|
expect(hook.params.collation.locale).to.equal('fr')
|
|
221
221
|
})
|
|
222
222
|
|
|
223
|
+
it('marshalls HTTP queries', () => {
|
|
224
|
+
const now = new Date()
|
|
225
|
+
const datetime = now.toISOString()
|
|
226
|
+
const notADateTime = datetime.replace('T', 'Z')
|
|
227
|
+
const query = {
|
|
228
|
+
booleanTrue: 'true',
|
|
229
|
+
booleanFalse: 'false',
|
|
230
|
+
notABoolean: 'falsy',
|
|
231
|
+
number: '223',
|
|
232
|
+
notANumber: '22E',
|
|
233
|
+
datetime,
|
|
234
|
+
notADateTime
|
|
235
|
+
}
|
|
236
|
+
const hook = {
|
|
237
|
+
type: 'before',
|
|
238
|
+
params: { provider: 'socketio', query }
|
|
239
|
+
}
|
|
240
|
+
// Nothing should happen with websocket provider
|
|
241
|
+
hooks.marshallHttpQuery(hook)
|
|
242
|
+
expect(hook.params.query).to.deep.equal(query)
|
|
243
|
+
hook.params.provider = 'rest'
|
|
244
|
+
hooks.marshallHttpQuery(hook)
|
|
245
|
+
expect(hook.params.query.booleanTrue).to.equal(true)
|
|
246
|
+
expect(hook.params.query.booleanFalse).to.equal(false)
|
|
247
|
+
expect(hook.params.query.notABoolean).to.equal('falsy')
|
|
248
|
+
expect(hook.params.query.number).to.equal(223)
|
|
249
|
+
expect(hook.params.query.notANumber).to.equal('22E')
|
|
250
|
+
expect(hook.params.query.datetime.valueOf()).to.equal(now.valueOf())
|
|
251
|
+
expect(hook.params.query.notADateTime).to.equal(notADateTime)
|
|
252
|
+
})
|
|
253
|
+
|
|
223
254
|
it('diacristic search', () => {
|
|
224
255
|
const hook = {
|
|
225
256
|
type: 'before',
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{"level":"info","message":"This is a log test"}
|
|
2
|
+
{"level":"error","message":"error: api/tags - Method: create: You are not allowed to access service tags"}
|
|
3
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
4
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
5
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to change authorisation on resource"}
|
|
6
|
+
{"level":"error","message":"error: api/authorisations - Method: remove: You are not allowed to change authorisation on subject(s)"}
|
|
7
|
+
{"level":"info","message":"This is a log test"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
2
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
3
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
4
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
5
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
6
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
7
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
8
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
9
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
10
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
11
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
12
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
13
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
14
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{"level":"error","message":"error: api/tags - Method: create: You are not allowed to access service tags"}
|
|
2
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
3
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
4
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to change authorisation on resource"}
|
|
5
|
+
{"level":"error","message":"error: api/authorisations - Method: remove: You are not allowed to change authorisation on subject(s)"}
|
|
6
|
+
{"level":"info","message":"This is a log test"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
2
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
3
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
4
|
+
{"level":"error","message":"error: api/tags - Method: create: You are not allowed to access service tags"}
|
|
5
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
6
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
7
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to change authorisation on resource"}
|
|
8
|
+
{"level":"error","message":"error: api/authorisations - Method: remove: You are not allowed to change authorisation on subject(s)"}
|
|
9
|
+
{"level":"info","message":"This is a log test"}
|
|
10
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
11
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
12
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
13
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
14
|
+
{"level":"error","message":"error: api/storage - Method: get: The specified key does not exist."}
|
|
15
|
+
{"level":"error","message":"error: api/storage - Method: get: The specified key does not exist."}
|
|
16
|
+
{"level":"error","message":"error: api/organisations - Method: create: You are not allowed to access service organisations"}
|
|
17
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to perform create operation on authorisations"}
|
|
18
|
+
{"level":"error","message":"error: api/666168414d1b825f7ae70b7a/storage - Method: get: You are not allowed to access service 666168414d1b825f7ae70b7a/storage"}
|
|
19
|
+
{"level":"error","message":"error: api/666168414d1b825f7ae70b7a/groups - Method: create: You are not allowed to perform create operation on groups"}
|
|
20
|
+
{"level":"error","message":"error: api/666168414d1b825f7ae70b7a/groups - Method: patch: You are not allowed to perform patch operation on groups"}
|
|
21
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to perform create operation on authorisations"}
|
|
22
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to perform create operation on authorisations"}
|
|
23
|
+
{"level":"error","message":"error: api/users - Method: remove: You are not allowed to delete the user undefined"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{"level":"info","message":"This is a log test"}
|
|
2
|
+
{"level":"info","message":"This is a log test"}
|
|
3
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
4
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
5
|
+
{"level":"error","message":"error: api/account - Method: create: The provided password does not comply to the password policy"}
|
|
6
|
+
{"level":"error","message":"error: api/tags - Method: create: You are not allowed to access service tags"}
|
|
7
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
8
|
+
{"level":"error","message":"error: api/users - Method: create: The provided password does not comply to the password policy"}
|
|
9
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to change authorisation on resource"}
|
|
10
|
+
{"level":"error","message":"error: api/authorisations - Method: remove: You are not allowed to change authorisation on subject(s)"}
|
|
11
|
+
{"level":"info","message":"This is a log test"}
|
|
12
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
13
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
14
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
15
|
+
{"level":"error","message":"error: api/service - Method: create: validation failed"}
|
|
16
|
+
{"level":"error","message":"error: api/storage - Method: get: The specified key does not exist."}
|
|
17
|
+
{"level":"error","message":"error: api/storage - Method: get: The specified key does not exist."}
|
|
18
|
+
{"level":"error","message":"error: api/organisations - Method: create: You are not allowed to access service organisations"}
|
|
19
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to perform create operation on authorisations"}
|
|
20
|
+
{"level":"error","message":"error: api/667bf15d0cf7df1907e6875c/storage - Method: get: You are not allowed to access service 667bf15d0cf7df1907e6875c/storage"}
|
|
21
|
+
{"level":"error","message":"error: api/667bf15d0cf7df1907e6875c/groups - Method: create: You are not allowed to perform create operation on groups"}
|
|
22
|
+
{"level":"error","message":"error: api/667bf15d0cf7df1907e6875c/groups - Method: patch: You are not allowed to perform patch operation on groups"}
|
|
23
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to perform create operation on authorisations"}
|
|
24
|
+
{"level":"error","message":"error: api/authorisations - Method: create: You are not allowed to perform create operation on authorisations"}
|
|
25
|
+
{"level":"error","message":"error: api/users - Method: remove: You are not allowed to delete the user undefined"}
|
|
@@ -155,7 +155,9 @@ describe('map:grid-source', () => {
|
|
|
155
155
|
describe('geotiff', () => {
|
|
156
156
|
const geotiffOptions = {
|
|
157
157
|
geotiff: {
|
|
158
|
-
url: 'http://kMap.test/data.tif'
|
|
158
|
+
url: 'http://kMap.test/data.tif',
|
|
159
|
+
// because nock doesnt know howto intercept fecth
|
|
160
|
+
forceXHR: true
|
|
159
161
|
}
|
|
160
162
|
}
|
|
161
163
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import chai from 'chai'
|
|
2
2
|
import chailint from 'chai-lint'
|
|
3
|
+
import _ from 'lodash'
|
|
3
4
|
import { hooks } from '../../../map/api/index.js'
|
|
4
5
|
|
|
5
6
|
const { util, expect } = chai
|
|
@@ -65,6 +66,19 @@ describe('map:hooks', () => {
|
|
|
65
66
|
})
|
|
66
67
|
|
|
67
68
|
it('convert results as GeoJson', () => {
|
|
69
|
+
const json = [{
|
|
70
|
+
location: { lat: -4, lon: 33 },
|
|
71
|
+
pickedProperty: '1',
|
|
72
|
+
omittedProperty: '1'
|
|
73
|
+
}, {
|
|
74
|
+
location: { lat: 47, lon: -96 },
|
|
75
|
+
pickedProperty: '2',
|
|
76
|
+
omittedProperty: '2'
|
|
77
|
+
}, {
|
|
78
|
+
location: null,
|
|
79
|
+
pickedProperty: '3',
|
|
80
|
+
omittedProperty: '3'
|
|
81
|
+
}]
|
|
68
82
|
const hook = {
|
|
69
83
|
type: 'after',
|
|
70
84
|
params: {
|
|
@@ -72,24 +86,56 @@ describe('map:hooks', () => {
|
|
|
72
86
|
geoJson: true
|
|
73
87
|
}
|
|
74
88
|
},
|
|
75
|
-
result:
|
|
76
|
-
location: { lat: -4, lon: 33 }
|
|
77
|
-
}, {
|
|
78
|
-
location: { lat: 47, lon: -96 }
|
|
79
|
-
}]
|
|
89
|
+
result: _.cloneDeep(json)
|
|
80
90
|
}
|
|
81
91
|
hooks.marshallSpatialQuery(hook)
|
|
82
|
-
hooks.asGeoJson({
|
|
92
|
+
hooks.asGeoJson({
|
|
93
|
+
longitudeProperty: 'location.lon',
|
|
94
|
+
latitudeProperty: 'location.lat',
|
|
95
|
+
pick: ['pickedProperty'],
|
|
96
|
+
properties: true
|
|
97
|
+
})(hook)
|
|
83
98
|
expect(hook.result.type).toExist()
|
|
84
99
|
expect(hook.result.type).to.equal('FeatureCollection')
|
|
85
100
|
expect(hook.result.features).toExist()
|
|
86
101
|
expect(hook.result.features.length).to.equal(2)
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
hook.result.features.forEach((feature, index) => {
|
|
103
|
+
expect(feature.type).to.equal('Feature')
|
|
104
|
+
expect(feature.properties).toExist()
|
|
105
|
+
expect(feature.properties.pickedProperty).toExist()
|
|
106
|
+
expect(feature.properties.omittedProperty).beUndefined()
|
|
107
|
+
expect(feature.geometry).toExist()
|
|
108
|
+
expect(feature.geometry.type).to.equal('Point')
|
|
109
|
+
expect(feature.geometry.coordinates).toExist()
|
|
110
|
+
if (index === 0) expect(feature.geometry.coordinates).to.deep.equal([33, -4])
|
|
111
|
+
if (index === 1) expect(feature.geometry.coordinates).to.deep.equal([-96, 47])
|
|
112
|
+
})
|
|
113
|
+
hook.result = _.cloneDeep(json)
|
|
114
|
+
hooks.asGeoJson({
|
|
115
|
+
longitudeProperty: 'location.lon',
|
|
116
|
+
latitudeProperty: 'location.lat',
|
|
117
|
+
omit: ['omittedProperty', 'location'],
|
|
118
|
+
properties: true,
|
|
119
|
+
allowNullGeometries: true,
|
|
120
|
+
asFeatureCollection: false
|
|
121
|
+
})(hook)
|
|
122
|
+
expect(Array.isArray(hook.result)).beTrue()
|
|
123
|
+
expect(hook.result.length).to.equal(3)
|
|
124
|
+
hook.result.forEach((feature, index) => {
|
|
125
|
+
expect(feature.type).to.equal('Feature')
|
|
126
|
+
expect(feature.properties).toExist()
|
|
127
|
+
expect(feature.properties.pickedProperty).toExist()
|
|
128
|
+
expect(feature.properties.omittedProperty).beUndefined()
|
|
129
|
+
if (index === 2) {
|
|
130
|
+
expect(feature.geometry).beNull()
|
|
131
|
+
} else {
|
|
132
|
+
expect(feature.geometry).toExist()
|
|
133
|
+
expect(feature.geometry.type).to.equal('Point')
|
|
134
|
+
expect(feature.geometry.coordinates).toExist()
|
|
135
|
+
if (index === 0) expect(feature.geometry.coordinates).to.deep.equal([33, -4])
|
|
136
|
+
if (index === 1) expect(feature.geometry.coordinates).to.deep.equal([-96, 47])
|
|
137
|
+
}
|
|
138
|
+
})
|
|
93
139
|
})
|
|
94
140
|
|
|
95
141
|
// Cleanup
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
{"level":"info","message":"Logger configured"}
|
|
2
|
+
{"level":"info","message":"Initializing weacast-gfs plugin"}
|
|
3
|
+
{"level":"info","message":"Initializing gfs-world forecast"}
|
|
4
|
+
{"level":"info","message":"Checking for up-to-date forecast data on gfs-world/u-wind"}
|
|
5
|
+
{"level":"info","message":"Checking for up-to-date forecast data on gfs-world/v-wind"}
|
|
6
|
+
{"level":"info","message":"Completed forecast data update on gfs-world/v-wind"}
|
|
7
|
+
{"level":"info","message":"Completed forecast data update on gfs-world/u-wind"}
|
|
8
|
+
{"level":"error","message":"Cannot check alert 6560edb696964d00e096371b as target probes service is not available"}
|
|
9
|
+
{"level":"error","message":"Cannot check alert 6560edb696964d00e096371b as target probes service is not available"}
|
|
10
|
+
{"level":"error","message":"Cannot check alert 6560edd496964d00e096371d as no data is available for gfs-world"}
|
|
11
|
+
{"level":"error","message":"Cannot check alert 6560edf396964d00e0963c60 as no data is available for features service vigicrues-observations"}
|
|
12
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
13
|
+
{"level":"info","message":"Logger configured"}
|
|
14
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
15
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
16
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
17
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
18
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
19
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
20
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id 'undefined'"}
|
|
21
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
22
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id 'undefined'"}
|
|
23
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
24
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
25
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id 'undefined'"}
|
|
26
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
27
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
28
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
29
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id 'undefined'"}
|
|
30
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
31
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
32
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
33
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
34
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id 'undefined'"}
|
|
35
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
36
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
37
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
38
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
39
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
40
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id 'undefined'"}
|
|
41
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
42
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id 'undefined'"}
|
|
43
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
44
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
45
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
46
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id 'undefined'"}
|
|
47
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
48
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f5105b2896094bc3ade3'"}
|
|
49
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f5105b2896094bc3ade3'"}
|
|
50
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id '6560f5105b2896094bc3ade3'"}
|
|
51
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f23fa730c1065eb2b261'"}
|
|
52
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f5105b2896094bc3ade3'"}
|
|
53
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f23fa730c1065eb2b261'"}
|
|
54
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f5105b2896094bc3ade3'"}
|
|
55
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id '6560f23fa730c1065eb2b261'"}
|
|
56
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f2bf3b373006d417a79e'"}
|
|
57
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f2bf3b373006d417a79e'"}
|
|
58
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f4329491dd0826567006'"}
|
|
59
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f4329491dd0826567006'"}
|
|
60
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f314fa31230723811b92'"}
|
|
61
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f314fa31230723811b92'"}
|
|
62
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f3adac425907a6623eab'"}
|
|
63
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f3adac425907a6623eab'"}
|
|
64
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
65
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f52d121e4409a04c3727'"}
|
|
66
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f52d121e4409a04c3727'"}
|
|
67
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id '6560f52d121e4409a04c3727'"}
|
|
68
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f3adac425907a6623eab'"}
|
|
69
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f3adac425907a6623eab'"}
|
|
70
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id '6560f3adac425907a6623eab'"}
|
|
71
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f23fa730c1065eb2b261'"}
|
|
72
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f5105b2896094bc3ade3'"}
|
|
73
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f23fa730c1065eb2b261'"}
|
|
74
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f5105b2896094bc3ade3'"}
|
|
75
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f314fa31230723811b92'"}
|
|
76
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f52d121e4409a04c3727'"}
|
|
77
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f314fa31230723811b92'"}
|
|
78
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f52d121e4409a04c3727'"}
|
|
79
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f2bf3b373006d417a79e'"}
|
|
80
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f2bf3b373006d417a79e'"}
|
|
81
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f4329491dd0826567006'"}
|
|
82
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f4329491dd0826567006'"}
|
|
83
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
84
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f5d187faf30a2c89bae1'"}
|
|
85
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f5d187faf30a2c89bae1'"}
|
|
86
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id '6560f5d187faf30a2c89bae1'"}
|
|
87
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading '_id')"}
|
|
88
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
89
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f5d4a6d8650a5b17cbf4'"}
|
|
90
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f5d4a6d8650a5b17cbf4'"}
|
|
91
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id '6560f5d4a6d8650a5b17cbf4'"}
|
|
92
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading '_id')"}
|
|
93
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
94
|
+
{"level":"error","message":"error: api/catalog - Method: get: No record found for id '6560f5fef875210ab381de76'"}
|
|
95
|
+
{"level":"error","message":"error: api/catalog - Method: patch: No record found for id '6560f5fef875210ab381de76'"}
|
|
96
|
+
{"level":"error","message":"error: api/catalog - Method: remove: No record found for id '6560f5fef875210ab381de76'"}
|
|
97
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading '_id')"}
|
|
98
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
99
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading '_id')"}
|
|
100
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
101
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading '_id')"}
|
|
102
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
103
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading '_id')"}
|
|
104
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
105
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
106
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
107
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
108
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
109
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
110
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
111
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading 'toString')"}
|
|
112
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading 'toString')"}
|
|
113
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
114
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Assignment to constant variable."}
|
|
115
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Assignment to constant variable."}
|
|
116
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading 'toString')"}
|
|
117
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
118
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading 'toString')"}
|
|
119
|
+
{"level":"error","message":"error: api/catalog - Method: remove: Cannot read properties of undefined (reading 'toString')"}
|
|
120
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|
|
121
|
+
{"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
|