@kalisio/kdk 2.1.6 → 2.1.7
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/.codeclimate.yml +34 -34
- package/.nycrc +5 -5
- package/.travis.doc.sh +8 -8
- package/.travis.test.sh +40 -40
- package/CHANGELOG.md +727 -727
- package/LICENSE +21 -21
- package/README.md +32 -32
- package/core/api/application.js +591 -591
- package/core/api/authentication.js +203 -203
- package/core/api/db.js +226 -226
- package/core/api/hooks/hooks.authentication.js +73 -73
- package/core/api/hooks/hooks.authorisations.js +376 -376
- package/core/api/hooks/hooks.groups.js +48 -48
- package/core/api/hooks/hooks.logger.js +26 -26
- package/core/api/hooks/hooks.model.js +290 -290
- package/core/api/hooks/hooks.organisations.js +156 -156
- package/core/api/hooks/hooks.push.js +56 -56
- package/core/api/hooks/hooks.query.js +246 -246
- package/core/api/hooks/hooks.schemas.js +73 -73
- package/core/api/hooks/hooks.service.js +78 -78
- package/core/api/hooks/hooks.storage.js +36 -36
- package/core/api/hooks/hooks.users.js +261 -261
- package/core/api/hooks/index.js +12 -12
- package/core/api/index.js +21 -21
- package/core/api/marshall.js +90 -90
- package/core/api/models/groups.model.mongodb.js +8 -8
- package/core/api/models/organisations.model.mongodb.js +3 -3
- package/core/api/models/tags.model.mongodb.js +10 -10
- package/core/api/models/users.model.mongodb.js +10 -10
- package/core/api/services/account/account.hooks.js +37 -37
- package/core/api/services/account/account.service.js +117 -117
- package/core/api/services/authorisations/authorisations.hooks.js +33 -33
- package/core/api/services/authorisations/authorisations.service.js +139 -139
- package/core/api/services/databases/databases.hooks.js +36 -36
- package/core/api/services/databases/databases.service.js +5 -5
- package/core/api/services/groups/groups.hooks.js +31 -31
- package/core/api/services/index.js +126 -126
- package/core/api/services/mailer/mailer.hooks.js +35 -35
- package/core/api/services/mailer/mailer.service.js +11 -11
- package/core/api/services/organisations/organisations.hooks.js +31 -31
- package/core/api/services/organisations/organisations.service.js +86 -86
- package/core/api/services/push/push.hooks.js +35 -35
- package/core/api/services/push/push.service.js +12 -12
- package/core/api/services/storage/storage.hooks.js +35 -35
- package/core/api/services/storage/storage.service.js +29 -29
- package/core/api/services/tags/tags.hooks.js +31 -31
- package/core/api/services/users/users.hooks.js +75 -75
- package/core/api/utils.js +11 -11
- package/core/client/api.js +293 -293
- package/core/client/capabilities.js +22 -22
- package/core/client/components/KAction.vue +393 -393
- package/core/client/components/KAvatar.vue +129 -129
- package/core/client/components/KBlock.vue +67 -67
- package/core/client/components/KChip.vue +68 -68
- package/core/client/components/KChipsPane.vue +103 -103
- package/core/client/components/KContent.vue +105 -105
- package/core/client/components/KDialog.vue +160 -160
- package/core/client/components/KExpandable.vue +49 -49
- package/core/client/components/KLogo.vue +32 -32
- package/core/client/components/KModal.vue +173 -173
- package/core/client/components/KPanel.vue +64 -64
- package/core/client/components/KScrollArea.vue +88 -88
- package/core/client/components/KSponsor.vue +40 -40
- package/core/client/components/KStamp.vue +65 -65
- package/core/client/components/KStore.vue +102 -102
- package/core/client/components/KTextArea.vue +143 -143
- package/core/client/components/KTree.vue +31 -31
- package/core/client/components/KVersion.vue +19 -19
- package/core/client/components/account/KAccount.vue +68 -68
- package/core/client/components/account/KDeleteAccountManager.vue +62 -62
- package/core/client/components/account/KEmailManager.vue +128 -128
- package/core/client/components/account/KPasswordManager.vue +90 -90
- package/core/client/components/account/KProfile.vue +109 -109
- package/core/client/components/account/KResetPassword.vue +120 -120
- package/core/client/components/account/KSendResetPassword.vue +97 -97
- package/core/client/components/account/KSubscription.vue +71 -71
- package/core/client/components/account/KSubscriptionsManager.vue +46 -46
- package/core/client/components/account/KVerifyEmailManager.vue +105 -105
- package/core/client/components/account/index.js +7 -7
- package/core/client/components/app/KAbout.vue +98 -98
- package/core/client/components/app/KHome.vue +12 -12
- package/core/client/components/app/KPlatform.vue +55 -55
- package/core/client/components/app/KSettings.vue +42 -42
- package/core/client/components/app/KTerms.vue +41 -41
- package/core/client/components/app/KTour.vue +448 -448
- package/core/client/components/app/KWelcome.vue +133 -133
- package/core/client/components/app/index.js +11 -11
- package/core/client/components/chart/KChart.vue +197 -197
- package/core/client/components/chart/KDataTable.vue +183 -183
- package/core/client/components/chart/KStatisticsChart.vue +94 -94
- package/core/client/components/chart/KTimeSeriesChart.vue +431 -431
- package/core/client/components/chart/index.js +9 -9
- package/core/client/components/collection/KBoard.vue +65 -65
- package/core/client/components/collection/KCard.vue +196 -196
- package/core/client/components/collection/KCardSection.vue +52 -52
- package/core/client/components/collection/KColumn.vue +229 -225
- package/core/client/components/collection/KFilter.vue +158 -158
- package/core/client/components/collection/KGrid.vue +121 -121
- package/core/client/components/collection/KHistory.vue +118 -112
- package/core/client/components/collection/KHistoryEntry.vue +111 -111
- package/core/client/components/collection/KItem.vue +128 -128
- package/core/client/components/collection/KList.vue +135 -135
- package/core/client/components/collection/KSorter.vue +46 -46
- package/core/client/components/collection/KTable.vue +238 -238
- package/core/client/components/collection/index.js +19 -19
- package/core/client/components/editor/KEditor.vue +52 -52
- package/core/client/components/editor/KModalEditor.vue +96 -96
- package/core/client/components/editor/index.js +7 -7
- package/core/client/components/form/KChipsField.vue +162 -162
- package/core/client/components/form/KColorField.vue +69 -69
- package/core/client/components/form/KColorScaleField.vue +86 -86
- package/core/client/components/form/KDateTimeRangeField.vue +65 -65
- package/core/client/components/form/KDatetimeField.vue +70 -70
- package/core/client/components/form/KEmailField.vue +33 -33
- package/core/client/components/form/KFileField.vue +161 -161
- package/core/client/components/form/KForm.vue +247 -247
- package/core/client/components/form/KIconField.vue +101 -101
- package/core/client/components/form/KItemField.vue +123 -123
- package/core/client/components/form/KNumberField.vue +33 -33
- package/core/client/components/form/KOptionsField.vue +63 -63
- package/core/client/components/form/KPasswordField.vue +57 -57
- package/core/client/components/form/KPhoneField.vue +32 -32
- package/core/client/components/form/KPropertyItemField.vue +119 -119
- package/core/client/components/form/KRoleField.vue +60 -60
- package/core/client/components/form/KSelectField.vue +143 -143
- package/core/client/components/form/KTextField.vue +48 -48
- package/core/client/components/form/KTextareaField.vue +88 -88
- package/core/client/components/form/KToggleField.vue +46 -46
- package/core/client/components/form/KTokenField.vue +80 -80
- package/core/client/components/form/KUnitField.vue +57 -57
- package/core/client/components/form/KUrlField.vue +32 -32
- package/core/client/components/form/KView.vue +118 -118
- package/core/client/components/form/index.js +7 -7
- package/core/client/components/index.js +48 -48
- package/core/client/components/input/KColorChooser.vue +63 -63
- package/core/client/components/input/KIconChooser.vue +308 -308
- package/core/client/components/input/KOptionsChooser.vue +122 -122
- package/core/client/components/input/KPalette.vue +40 -40
- package/core/client/components/input/index.js +11 -11
- package/core/client/components/layout/KFab.vue +113 -113
- package/core/client/components/layout/KLayout.vue +64 -64
- package/core/client/components/layout/KOpener.vue +140 -140
- package/core/client/components/layout/KPage.vue +320 -320
- package/core/client/components/layout/KPageSticky.vue +53 -53
- package/core/client/components/layout/KWindow.vue +443 -443
- package/core/client/components/layout/index.js +13 -13
- package/core/client/components/media/KColorScale.vue +254 -254
- package/core/client/components/media/KImageViewer.vue +44 -44
- package/core/client/components/media/KMarkdownViewer.vue +55 -55
- package/core/client/components/media/KMediaBrowser.vue +340 -340
- package/core/client/components/media/KShape.vue +120 -120
- package/core/client/components/media/index.js +13 -13
- package/core/client/components/menu/KMenu.vue +147 -147
- package/core/client/components/menu/KRadialFab.vue +122 -122
- package/core/client/components/menu/KRadialFabItem.vue +73 -73
- package/core/client/components/menu/index.js +9 -9
- package/core/client/components/screen/KEndpointScreen.vue +80 -80
- package/core/client/components/screen/KErrorScreen.vue +24 -24
- package/core/client/components/screen/KLoginScreen.vue +84 -84
- package/core/client/components/screen/KLogoutScreen.vue +20 -20
- package/core/client/components/screen/KRegisterScreen.vue +114 -114
- package/core/client/components/screen/KScreen.vue +106 -106
- package/core/client/components/screen/KScreenFooter.vue +32 -32
- package/core/client/components/screen/KScreenHeader.vue +17 -17
- package/core/client/components/screen/index.js +5 -5
- package/core/client/components/team/KAddMember.vue +375 -375
- package/core/client/components/team/KAddTag.vue +121 -121
- package/core/client/components/team/KChangeRole.vue +118 -118
- package/core/client/components/team/KGroupCard.vue +110 -110
- package/core/client/components/team/KGroupsActivity.vue +66 -66
- package/core/client/components/team/KJoinGroup.vue +132 -132
- package/core/client/components/team/KMemberCard.vue +328 -328
- package/core/client/components/team/KMemberFilter.vue +49 -49
- package/core/client/components/team/KMembersActivity.vue +126 -126
- package/core/client/components/team/KOrganisationsActivity.vue +53 -53
- package/core/client/components/team/KTagCard.vue +72 -72
- package/core/client/components/team/KTagsActivity.vue +61 -61
- package/core/client/components/team/index.js +9 -9
- package/core/client/components/time/KAbsoluteTimeRange.vue +183 -183
- package/core/client/components/time/KDate.vue +75 -75
- package/core/client/components/time/KDateTime.vue +172 -172
- package/core/client/components/time/KDateTimeRange.vue +118 -118
- package/core/client/components/time/KRelativeTimeRanges.vue +193 -193
- package/core/client/components/time/KTime.vue +74 -74
- package/core/client/components/time/index.js +7 -7
- package/core/client/components/viewer/KModalViewer.vue +47 -47
- package/core/client/components/viewer/KViewer.vue +30 -30
- package/core/client/composables/activity.js +67 -67
- package/core/client/composables/collection.js +181 -181
- package/core/client/composables/index.js +8 -8
- package/core/client/composables/pwa.js +71 -71
- package/core/client/composables/schema.js +64 -64
- package/core/client/composables/selection.js +88 -88
- package/core/client/composables/session.js +172 -172
- package/core/client/composables/store.js +49 -49
- package/core/client/composables/version.js +47 -47
- package/core/client/events.js +3 -3
- package/core/client/filter.js +60 -60
- package/core/client/guards.js +101 -101
- package/core/client/hooks/hooks.events.js +7 -7
- package/core/client/hooks/hooks.logger.js +24 -24
- package/core/client/hooks/hooks.users.js +22 -22
- package/core/client/hooks/index.js +3 -3
- package/core/client/i18n/core_en.json +845 -845
- package/core/client/i18n/core_fr.json +843 -843
- package/core/client/i18n.js +88 -88
- package/core/client/index.js +84 -84
- package/core/client/layout.js +323 -323
- package/core/client/local-storage.js +28 -28
- package/core/client/mixins/index.js +12 -12
- package/core/client/mixins/mixin.account.js +61 -61
- package/core/client/mixins/mixin.base-activity.js +232 -232
- package/core/client/mixins/mixin.base-collection.js +162 -162
- package/core/client/mixins/mixin.base-context.js +54 -54
- package/core/client/mixins/mixin.base-editor.js +194 -194
- package/core/client/mixins/mixin.base-field.js +105 -105
- package/core/client/mixins/mixin.base-item.js +166 -166
- package/core/client/mixins/mixin.base-modal.js +36 -36
- package/core/client/mixins/mixin.base-viewer.js +43 -43
- package/core/client/mixins/mixin.object-proxy.js +46 -46
- package/core/client/mixins/mixin.schema-proxy.js +97 -97
- package/core/client/mixins/mixin.service.js +22 -22
- package/core/client/reader.js +65 -65
- package/core/client/readers/index.js +3 -3
- package/core/client/readers/reader.blob.js +39 -39
- package/core/client/readers/reader.csv.js +36 -36
- package/core/client/readers/reader.json.js +34 -34
- package/core/client/search.js +47 -47
- package/core/client/services/index.js +49 -49
- package/core/client/services/local-settings.service.js +67 -67
- package/core/client/sorter.js +31 -31
- package/core/client/storage.js +102 -102
- package/core/client/store.js +39 -39
- package/core/client/theme.js +40 -40
- package/core/client/time.js +167 -167
- package/core/client/units.js +218 -218
- package/core/client/utils/index.js +203 -203
- package/core/client/utils/utils.account.js +52 -52
- package/core/client/utils/utils.colors.js +36 -36
- package/core/client/utils/utils.content.js +185 -185
- package/core/client/utils/utils.locale.js +28 -28
- package/core/client/utils/utils.platform.js +11 -11
- package/core/client/utils/utils.push.js +53 -53
- package/core/client/utils/utils.pwa.js +62 -62
- package/core/client/utils/utils.session.js +89 -89
- package/core/common/errors.js +1 -1
- package/core/common/index.js +10 -10
- package/core/common/permissions.js +318 -318
- package/core/common/schema.js +35 -35
- package/core/common/schemas/groups.create.json +28 -28
- package/core/common/schemas/groups.update.json +28 -28
- package/core/common/schemas/organisations.create.json +28 -28
- package/core/common/schemas/organisations.update.json +49 -49
- package/core/common/schemas/settings.update.json +234 -234
- package/core/common/schemas/tags.create.json +35 -35
- package/core/common/schemas/tags.update.json +35 -35
- package/core/common/schemas/users.update-profile.json +33 -33
- package/core/common/utils.js +45 -45
- package/core.api.js +5 -5
- package/core.client.js +5 -5
- package/core.common.js +1 -1
- package/coverage/core/api/application.js.html +272 -332
- package/coverage/core/api/authentication.js.html +56 -56
- package/coverage/core/api/db.js.html +132 -144
- package/coverage/core/api/hooks/hooks.account.js.html +1 -1
- package/coverage/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/core/api/hooks/hooks.authorisations.js.html +187 -199
- package/coverage/core/api/hooks/{hooks.push.js.html → hooks.devices.js.html} +56 -77
- package/coverage/core/api/hooks/hooks.groups.js.html +7 -7
- package/coverage/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/core/api/hooks/hooks.model.js.html +160 -166
- package/coverage/core/api/hooks/hooks.organisations.js.html +406 -136
- package/coverage/core/api/hooks/hooks.pusher.js.html +730 -0
- package/coverage/core/api/hooks/hooks.query.js.html +129 -129
- package/coverage/core/api/hooks/hooks.schemas.js.html +22 -82
- package/coverage/core/api/hooks/hooks.service.js.html +13 -13
- package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/core/api/hooks/hooks.tags.js.html +1 -1
- package/coverage/core/api/hooks/hooks.users.js.html +126 -63
- package/coverage/core/api/hooks/index.html +119 -74
- package/coverage/core/api/hooks/index.js.html +26 -17
- package/coverage/core/api/index.html +26 -41
- package/coverage/core/api/index.js.html +17 -17
- package/coverage/core/api/marshall.js.html +21 -21
- package/coverage/core/api/models/groups.model.mongodb.js.html +8 -8
- package/coverage/core/api/models/index.html +1 -1
- package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/tags.model.mongodb.js.html +10 -10
- package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
- package/coverage/core/api/oauth2-handler.js.html +202 -0
- package/coverage/core/api/oauth2-verifier.js.html +355 -0
- package/coverage/core/api/services/account/account.hooks.js.html +4 -4
- package/coverage/core/api/services/account/account.service.js.html +15 -12
- package/coverage/core/api/services/account/index.html +10 -10
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +77 -77
- package/coverage/core/api/services/authorisations/index.html +1 -1
- 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/devices/devices.hooks.js.html +190 -0
- package/coverage/core/api/services/devices/devices.service.js.html +382 -0
- package/coverage/core/api/services/devices/index.html +131 -0
- package/coverage/core/api/services/groups/groups.hooks.js.html +13 -7
- package/coverage/core/api/services/groups/index.html +5 -5
- package/coverage/core/api/services/index.html +19 -19
- package/coverage/core/api/services/index.js.html +80 -83
- package/coverage/core/api/services/mailer/index.html +1 -1
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/core/api/services/organisations/index.html +11 -11
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/core/api/services/organisations/organisations.service.js.html +32 -56
- package/coverage/{lcov-report/core/api/services/push → core/api/services/pusher}/index.html +36 -21
- package/coverage/{lcov-report/core/api/services/push/push.service.js.html → core/api/services/pusher/pusher.channels.js.html} +11 -38
- package/coverage/{lcov-report/core/api/services/push/push.hooks.js.html → core/api/services/pusher/pusher.hooks.js.html} +8 -8
- package/coverage/core/api/services/pusher/pusher.service.js.html +1420 -0
- package/coverage/core/api/services/storage/index.html +1 -1
- package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
- package/coverage/core/api/services/storage/storage.service.js.html +22 -22
- package/coverage/core/api/services/tags/index.html +7 -7
- package/coverage/core/api/services/tags/tags.hooks.js.html +54 -12
- package/coverage/core/api/services/users/index.html +1 -1
- package/coverage/core/api/services/users/users.hooks.js.html +3 -3
- package/coverage/core/common/errors.js.html +2 -2
- package/coverage/core/common/index.html +19 -19
- package/coverage/core/common/index.js.html +11 -11
- package/coverage/core/common/permissions.js.html +249 -273
- package/coverage/core/common/schema.js.html +23 -23
- package/coverage/core/common/utils.js.html +14 -14
- package/coverage/index.html +131 -116
- package/coverage/lcov-report/core/api/application.js.html +272 -332
- package/coverage/lcov-report/core/api/authentication.js.html +56 -56
- package/coverage/lcov-report/core/api/db.js.html +132 -144
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +187 -199
- package/coverage/lcov-report/core/api/hooks/{hooks.push.js.html → hooks.devices.js.html} +56 -77
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +160 -166
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +406 -136
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +730 -0
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +129 -129
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +22 -82
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +13 -13
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +126 -63
- package/coverage/lcov-report/core/api/hooks/index.html +119 -74
- package/coverage/lcov-report/core/api/hooks/index.js.html +26 -17
- package/coverage/lcov-report/core/api/index.html +26 -41
- package/coverage/lcov-report/core/api/index.js.html +17 -17
- package/coverage/lcov-report/core/api/marshall.js.html +21 -21
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +8 -8
- package/coverage/lcov-report/core/api/models/index.html +1 -1
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +10 -10
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/oauth2-handler.js.html +202 -0
- package/coverage/lcov-report/core/api/oauth2-verifier.js.html +355 -0
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +4 -4
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +15 -12
- package/coverage/lcov-report/core/api/services/account/index.html +10 -10
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +77 -77
- package/coverage/lcov-report/core/api/services/authorisations/index.html +1 -1
- 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/devices/devices.hooks.js.html +190 -0
- package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +382 -0
- package/coverage/lcov-report/core/api/services/devices/index.html +131 -0
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +13 -7
- package/coverage/lcov-report/core/api/services/groups/index.html +5 -5
- package/coverage/lcov-report/core/api/services/index.html +19 -19
- package/coverage/lcov-report/core/api/services/index.js.html +80 -83
- package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/index.html +11 -11
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +32 -56
- package/coverage/{core/api/services/push → lcov-report/core/api/services/pusher}/index.html +36 -21
- package/coverage/{core/api/services/push/push.service.js.html → lcov-report/core/api/services/pusher/pusher.channels.js.html} +11 -38
- package/coverage/{core/api/services/push/push.hooks.js.html → lcov-report/core/api/services/pusher/pusher.hooks.js.html} +8 -8
- package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +1420 -0
- package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +22 -22
- package/coverage/lcov-report/core/api/services/tags/index.html +7 -7
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +54 -12
- package/coverage/lcov-report/core/api/services/users/index.html +1 -1
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +3 -3
- package/coverage/lcov-report/core/common/errors.js.html +2 -2
- package/coverage/lcov-report/core/common/index.html +19 -19
- package/coverage/lcov-report/core/common/index.js.html +11 -11
- package/coverage/lcov-report/core/common/permissions.js.html +249 -273
- package/coverage/lcov-report/core/common/schema.js.html +23 -23
- package/coverage/lcov-report/core/common/utils.js.html +14 -14
- package/coverage/lcov-report/index.html +131 -116
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +48 -48
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +51 -51
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +40 -46
- package/coverage/lcov-report/map/api/hooks/index.html +49 -49
- package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
- package/coverage/lcov-report/map/api/index.html +26 -26
- package/coverage/lcov-report/map/api/index.js.html +38 -38
- package/coverage/lcov-report/map/api/marshall.js.html +17 -17
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +11 -5
- package/coverage/lcov-report/map/api/models/index.html +5 -5
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/features/index.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
- package/coverage/lcov-report/map/api/services/index.html +17 -17
- package/coverage/lcov-report/map/api/services/index.js.html +81 -90
- 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 +53 -53
- package/coverage/lcov-report/map/common/grid.js.html +298 -298
- package/coverage/lcov-report/map/common/index.html +148 -148
- package/coverage/lcov-report/map/common/index.js.html +67 -67
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +68 -68
- package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +60 -60
- package/coverage/lcov-report/map/common/opendap-utils.js.html +113 -113
- package/coverage/lcov-report/map/common/permissions.js.html +11 -11
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +54 -54
- package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +42 -42
- package/coverage/lcov-report/map/common/wcs-utils.js.html +211 -211
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +72 -72
- package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
- package/coverage/lcov.info +5502 -3743
- package/coverage/map/api/hooks/hooks.catalog.js.html +48 -48
- package/coverage/map/api/hooks/hooks.features.js.html +51 -51
- package/coverage/map/api/hooks/hooks.query.js.html +40 -46
- package/coverage/map/api/hooks/index.html +49 -49
- package/coverage/map/api/hooks/index.js.html +16 -16
- package/coverage/map/api/index.html +26 -26
- package/coverage/map/api/index.js.html +38 -38
- package/coverage/map/api/marshall.js.html +17 -17
- package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/features.model.mongodb.js.html +11 -5
- package/coverage/map/api/models/index.html +5 -5
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/map/api/services/alerts/index.html +1 -1
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
- package/coverage/map/api/services/catalog/index.html +1 -1
- 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 +1 -1
- package/coverage/map/api/services/features/features.service.js.html +1 -1
- package/coverage/map/api/services/features/index.html +1 -1
- package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
- package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
- package/coverage/map/api/services/geocoder/index.html +1 -1
- package/coverage/map/api/services/index.html +17 -17
- package/coverage/map/api/services/index.js.html +81 -90
- 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 +53 -53
- package/coverage/map/common/grid.js.html +298 -298
- package/coverage/map/common/index.html +148 -148
- package/coverage/map/common/index.js.html +67 -67
- package/coverage/map/common/meteo-model-grid-source.js.html +68 -68
- package/coverage/map/common/moment-utils.js.html +18 -18
- package/coverage/map/common/opendap-grid-source.js.html +60 -60
- package/coverage/map/common/opendap-utils.js.html +113 -113
- package/coverage/map/common/permissions.js.html +11 -11
- package/coverage/map/common/time-based-grid-source.js.html +54 -54
- package/coverage/map/common/tms-utils.js.html +1 -1
- package/coverage/map/common/wcs-grid-source.js.html +42 -42
- package/coverage/map/common/wcs-utils.js.html +211 -211
- package/coverage/map/common/weacast-grid-source.js.html +72 -72
- package/coverage/map/common/wfs-utils.js.html +1 -1
- package/coverage/map/common/wms-utils.js.html +1 -1
- package/coverage/map/common/wmts-utils.js.html +1 -1
- package/coverage/tmp/coverage-19264-1684834146599-0.json +1 -0
- package/coverage/tmp/coverage-2508-1684834182408-0.json +1 -0
- package/coverage/tmp/coverage-25908-1684834189369-0.json +1 -0
- package/coverage/tmp/coverage-32364-1684834189420-0.json +1 -0
- package/coverage/tmp/coverage-36604-1684834189485-0.json +1 -0
- package/coverage/tmp/coverage-40652-1684834182272-0.json +1 -0
- package/coverage/tmp/coverage-48484-1684834182342-0.json +1 -0
- package/coverage/tmp/coverage-51652-1684834189584-0.json +1 -0
- package/coverage/tmp/coverage-9776-1684834189519-0.json +1 -0
- package/extras/css/core.variables.scss +38 -38
- package/extras/icons/center-on-feature.svg +315 -315
- package/extras/icons/json.svg +83 -83
- package/extras/icons/map-legend.svg +251 -251
- package/extras/icons/target.svg +37 -37
- package/extras/tours/core/account-profile.js +32 -32
- package/extras/tours/core/account.js +143 -143
- package/extras/tours/core/add-member.js +74 -74
- package/extras/tours/core/add-tag.js +12 -12
- package/extras/tours/core/create-group.js +19 -19
- package/extras/tours/core/create-organisation.js +19 -19
- package/extras/tours/core/create-tag.js +26 -26
- package/extras/tours/core/edit-member-role.js +13 -13
- package/extras/tours/core/groups.js +65 -65
- package/extras/tours/core/join-group.js +13 -13
- package/extras/tours/core/login.js +41 -41
- package/extras/tours/core/members.js +108 -108
- package/extras/tours/core/register.js +61 -61
- package/extras/tours/core/send-reset-password.js +14 -14
- package/extras/tours/core/tags.js +65 -65
- package/extras/tours/map/add-layer.js +28 -28
- package/extras/tours/map/catalog-categories.js +59 -59
- package/extras/tours/map/catalog-panel.js +112 -112
- package/extras/tours/map/connect-layer.js +39 -39
- package/extras/tours/map/create-layer.js +33 -33
- package/extras/tours/map/create-view.js +25 -25
- package/extras/tours/map/fab.js +26 -26
- package/extras/tours/map/import-layer.js +33 -33
- package/extras/tours/map/navigation-bar.js +185 -185
- package/extras/tours/map/side-nav.js +35 -35
- package/extras/tours/map/timeline.js +77 -77
- package/map/api/config/categories.cjs +42 -42
- package/map/api/config/layers.cjs +43 -43
- package/map/api/config/sublegends.cjs +42 -42
- package/map/api/hooks/hooks.catalog.js +85 -85
- package/map/api/hooks/hooks.features.js +84 -84
- package/map/api/hooks/hooks.query.js +361 -361
- package/map/api/hooks/index.js +3 -3
- package/map/api/index.js +18 -18
- package/map/api/marshall.js +31 -31
- package/map/api/models/alerts.model.mongodb.js +7 -7
- package/map/api/models/catalog.model.mongodb.js +14 -14
- package/map/api/models/features.model.mongodb.js +37 -37
- package/map/api/services/alerts/alerts.hooks.js +63 -63
- package/map/api/services/alerts/alerts.service.js +175 -175
- package/map/api/services/catalog/catalog.hooks.js +76 -76
- package/map/api/services/daptiles/daptiles.service.js +475 -475
- package/map/api/services/features/features.hooks.js +40 -40
- package/map/api/services/features/features.service.js +52 -52
- package/map/api/services/geocoder/geocoder.hooks.js +31 -31
- package/map/api/services/geocoder/geocoder.service.js +79 -79
- package/map/api/services/index.js +228 -228
- package/map/client/canvas-draw-context.js +16 -16
- package/map/client/cesium/utils.js +133 -133
- package/map/client/components/KCaptureToolbar.vue +155 -155
- package/map/client/components/KColorLegend.vue +349 -349
- package/map/client/components/KCompass.vue +143 -143
- package/map/client/components/KEditLayerData.vue +85 -85
- package/map/client/components/KFeatureActionButton.vue +119 -119
- package/map/client/components/KFeatureEditor.vue +92 -92
- package/map/client/components/KFeaturesChart.vue +285 -285
- package/map/client/components/KFeaturesFilter.vue +259 -259
- package/map/client/components/KFeaturesTable.vue +99 -99
- package/map/client/components/KLayerEditionToolbar.vue +54 -54
- package/map/client/components/KLayerEditor.vue +48 -48
- package/map/client/components/KLayerStyleEditor.vue +118 -118
- package/map/client/components/KLayerStyleForm.vue +906 -906
- package/map/client/components/KLevelSlider.vue +100 -100
- package/map/client/components/KMeasureTool.vue +568 -568
- package/map/client/components/KPositionIndicator.vue +90 -90
- package/map/client/components/KTimeline.vue +293 -293
- package/map/client/components/KTimezoneMap.vue +158 -158
- package/map/client/components/KUrlLegend.vue +122 -122
- package/map/client/components/catalog/KAddLayer.vue +66 -66
- package/map/client/components/catalog/KBaseLayersSelector.vue +114 -114
- package/map/client/components/catalog/KConnectLayer.vue +323 -323
- package/map/client/components/catalog/KCreateLayer.vue +184 -184
- package/map/client/components/catalog/KCreateView.vue +108 -108
- package/map/client/components/catalog/KFilteredLayerItem.vue +53 -53
- package/map/client/components/catalog/KImportLayer.vue +168 -168
- package/map/client/components/catalog/KLayerCategories.vue +274 -274
- package/map/client/components/catalog/KLayerItem.vue +70 -70
- package/map/client/components/catalog/KLayersPanel.vue +137 -137
- package/map/client/components/catalog/KLayersSelector.vue +78 -78
- package/map/client/components/catalog/KViewSelector.vue +46 -46
- package/map/client/components/catalog/KViewsPanel.vue +123 -123
- package/map/client/components/catalog/KWeatherLayersSelector.vue +129 -129
- package/map/client/components/form/KDirectionField.vue +113 -113
- package/map/client/components/form/KLayerCategoryField.vue +46 -46
- package/map/client/components/form/KLocationField.vue +189 -189
- package/map/client/components/form/KOwsLayerField.vue +130 -130
- package/map/client/components/form/KOwsServiceField.vue +238 -238
- package/map/client/components/form/KTimezoneField.vue +142 -142
- package/map/client/components/index.js +1 -1
- package/map/client/components/legend/KColorScaleLegend.vue +31 -31
- package/map/client/components/legend/KImageLegend.vue +52 -52
- package/map/client/components/legend/KLegend.vue +191 -191
- package/map/client/components/legend/KLegendRenderer.vue +20 -20
- package/map/client/components/legend/KSymbolsLegend.vue +101 -101
- package/map/client/components/location/KGeocodersFilter.vue +44 -44
- package/map/client/components/location/KLocationCardSection.vue +61 -61
- package/map/client/components/location/KLocationMap.vue +280 -280
- package/map/client/components/location/KLocationSearch.vue +144 -144
- package/map/client/components/location/KLocationTip.vue +29 -29
- package/map/client/components/tools/KGeolocateTool.vue +46 -46
- package/map/client/components/tools/KSearchTool.vue +93 -93
- package/map/client/components/widget/KElevationProfile.vue +454 -454
- package/map/client/components/widget/KInformationBox.vue +145 -145
- package/map/client/components/widget/KMapillaryViewer.vue +178 -178
- package/map/client/components/widget/KStackableTimeSeries.vue +214 -214
- package/map/client/components/widget/KTimeSeries.vue +500 -500
- package/map/client/composables/activity.js +88 -88
- package/map/client/composables/highlight.js +214 -214
- package/map/client/composables/index.js +7 -7
- package/map/client/composables/location.js +53 -53
- package/map/client/composables/measure.js +42 -42
- package/map/client/composables/probe.js +133 -133
- package/map/client/composables/selection.js +300 -300
- package/map/client/composables/weather.js +213 -213
- package/map/client/elevation-utils.js +258 -258
- package/map/client/geolocation.js +119 -119
- package/map/client/globe.js +13 -13
- package/map/client/i18n/map_en.json +645 -645
- package/map/client/i18n/map_fr.json +646 -646
- package/map/client/index.js +18 -18
- package/map/client/init.js +80 -80
- package/map/client/leaflet/GSMaPLayer.js +55 -55
- package/map/client/leaflet/GradientPath.js +180 -180
- package/map/client/leaflet/MaskLayer.js +57 -57
- package/map/client/leaflet/TiledFeatureLayer.js +572 -572
- package/map/client/leaflet/TiledMeshLayer.js +486 -486
- package/map/client/leaflet/TiledWindLayer.js +384 -384
- package/map/client/leaflet/utils.js +246 -246
- package/map/client/map.js +15 -15
- package/map/client/mixins/globe/index.js +8 -8
- package/map/client/mixins/globe/mixin.base-globe.js +462 -462
- package/map/client/mixins/globe/mixin.file-layers.js +40 -40
- package/map/client/mixins/globe/mixin.geojson-layers.js +314 -314
- package/map/client/mixins/globe/mixin.globe-activity.js +52 -52
- package/map/client/mixins/globe/mixin.opendap-layers.js +51 -51
- package/map/client/mixins/globe/mixin.popup.js +82 -82
- package/map/client/mixins/globe/mixin.style.js +110 -110
- package/map/client/mixins/globe/mixin.tooltip.js +101 -101
- package/map/client/mixins/index.js +9 -9
- package/map/client/mixins/map/index.js +16 -16
- package/map/client/mixins/map/mixin.base-map.js +592 -592
- package/map/client/mixins/map/mixin.canvas-layers.js +529 -529
- package/map/client/mixins/map/mixin.edit-layers.js +474 -474
- package/map/client/mixins/map/mixin.file-layers.js +49 -49
- package/map/client/mixins/map/mixin.forecast-layers.js +79 -79
- package/map/client/mixins/map/mixin.geojson-layers.js +557 -557
- package/map/client/mixins/map/mixin.georaster-layers.js +114 -114
- package/map/client/mixins/map/mixin.gsmap-layers.js +27 -27
- package/map/client/mixins/map/mixin.heatmap-layers.js +116 -116
- package/map/client/mixins/map/mixin.map-activity.js +38 -38
- package/map/client/mixins/map/mixin.mapillary-layers.js +45 -45
- package/map/client/mixins/map/mixin.popup.js +53 -53
- package/map/client/mixins/map/mixin.style.js +73 -73
- package/map/client/mixins/map/mixin.tiled-mesh-layers.js +120 -120
- package/map/client/mixins/map/mixin.tiled-wind-layers.js +126 -126
- package/map/client/mixins/map/mixin.tooltip.js +47 -47
- package/map/client/mixins/mixin.activity.js +477 -477
- package/map/client/mixins/mixin.catalog-panel.js +26 -26
- package/map/client/mixins/mixin.context.js +262 -262
- package/map/client/mixins/mixin.feature-selection.js +28 -28
- package/map/client/mixins/mixin.feature-service.js +403 -403
- package/map/client/mixins/mixin.infobox.js +29 -29
- package/map/client/mixins/mixin.levels.js +66 -66
- package/map/client/mixins/mixin.style.js +29 -29
- package/map/client/mixins/mixin.weacast.js +212 -212
- package/map/client/pixi-utils.js +256 -256
- package/map/client/readers/index.js +4 -4
- package/map/client/readers/reader.geojson.js +64 -64
- package/map/client/readers/reader.gpx.js +36 -36
- package/map/client/readers/reader.kml.js +36 -36
- package/map/client/readers/reader.shp.js +82 -82
- package/map/client/utils/index.js +3 -3
- package/map/client/utils/utils.js +228 -228
- package/map/client/utils/utils.location.js +45 -45
- package/map/client/utils/utils.schema.js +75 -75
- package/map/client/utils.all.js +3 -3
- package/map/client/utils.globe.js +2 -2
- package/map/client/utils.js +4 -4
- package/map/client/utils.map.js +2 -2
- package/map/common/dynamic-grid-source.js +127 -127
- package/map/common/errors.js +3 -3
- package/map/common/geotiff-grid-source.js +150 -150
- package/map/common/grid.js +509 -509
- package/map/common/index.js +29 -29
- package/map/common/meteo-model-grid-source.js +157 -157
- package/map/common/moment-utils.js +24 -24
- package/map/common/opendap-grid-source.js +261 -261
- package/map/common/opendap-utils.js +247 -247
- package/map/common/permissions.js +11 -11
- package/map/common/schemas/catalog.update.json +28 -28
- package/map/common/time-based-grid-source.js +111 -111
- package/map/common/tms-utils.js +63 -63
- package/map/common/wcs-grid-source.js +93 -93
- package/map/common/wcs-utils.js +167 -167
- package/map/common/weacast-grid-source.js +316 -316
- package/map/common/wfs-utils.js +163 -163
- package/map/common/wms-utils.js +117 -117
- package/map/common/wmts-utils.js +154 -154
- package/map.api.js +5 -5
- package/map.client.globe.js +5 -5
- package/map.client.js +5 -5
- package/map.client.map.js +5 -5
- package/map.common.js +1 -1
- package/map.config.cjs +9 -9
- package/package.json +161 -161
- package/test/api/core/account.test.js +485 -485
- package/test/api/core/client.test.js.skip +37 -37
- package/test/api/core/config/default.cjs +118 -118
- package/test/api/core/config/email-templates/confirmInvitation/html.ejs +18 -18
- package/test/api/core/config/email-templates/identityChange/html.ejs +14 -14
- package/test/api/core/config/email-templates/newDevice/html.ejs +7 -7
- package/test/api/core/config/email-templates/newSubscription/html.ejs +7 -7
- package/test/api/core/config/email-templates/passwordChange/html.ejs +5 -5
- package/test/api/core/config/email-templates/resendVerifySignup/html.ejs +12 -12
- package/test/api/core/config/email-templates/resetPwd/html.ejs +5 -5
- package/test/api/core/config/email-templates/sendResetPwd/html.ejs +12 -12
- package/test/api/core/config/email-templates/verifySignup/html.ejs +3 -3
- package/test/api/core/data/invalid-objects.json +59 -59
- package/test/api/core/data/schema.json +57 -57
- package/test/api/core/data/valid-objects.json +37 -37
- package/test/api/core/hooks.test.js +330 -330
- package/test/api/core/index.js +1 -1
- package/test/api/core/index.test.js +478 -478
- package/test/api/core/push.test.js +197 -197
- package/test/api/core/schemas.test.js +82 -82
- package/test/api/core/storage.test.js +153 -153
- package/test/api/core/team.test.js +670 -670
- package/test/api/core/utils.js +92 -92
- package/test/api/index.js +3 -3
- package/test/api/map/alerts.test.js +560 -560
- package/test/api/map/config/default.cjs +125 -125
- package/test/api/map/config/layers.json +38 -38
- package/test/api/map/data/DescribeCoverage.xml +54 -54
- package/test/api/map/data/adsb.observations.json +131 -131
- package/test/api/map/data/dataset.grb.das +55 -55
- package/test/api/map/data/dataset.grb.dds +17 -17
- package/test/api/map/data/vigicrues.observations.json +47041 -47041
- package/test/api/map/data/vigicrues.stations.json +15421 -15421
- package/test/api/map/data/zones.json +1227 -1227
- package/test/api/map/grid-sources.test.js +313 -313
- package/test/api/map/hooks.test.js +98 -98
- package/test/api/map/index.test.js +563 -563
- package/test/api/map/test-log-2022-12-01.log +19 -0
- package/test/api/map/test-log-2023-01-05.log +4 -0
- package/test/api/map/test-log-2023-01-09.log +3 -0
- package/test/api/map/{test-log-2023-09-21.log → test-log-2023-02-05.log} +11 -12
- package/test/api/map/test-log-2023-02-14.log +82 -0
- package/test/api/map/test-log-2023-02-28.log +28 -0
- package/test/api/map/{test-log-2023-07-19.log → test-log-2023-03-02.log} +11 -13
- package/test/api/map/test-log-2023-03-06.log +11 -0
- package/test/api/map/test-log-2023-03-07.log +61 -0
- package/test/api/map/test-log-2023-03-31.log +11 -0
- package/test/api/map/test-log-2023-05-23.log +11 -0
- package/test/api/map/test-log-2023-05-24.log +11 -0
- package/test/client/core/account.js +36 -36
- package/test/client/core/api.js +361 -361
- package/test/client/core/collection.js +64 -64
- package/test/client/core/index.js +8 -8
- package/test/client/core/layout.js +116 -116
- package/test/client/core/runner.js +224 -224
- package/test/client/core/screens.js +35 -35
- package/test/client/core/time.js +10 -10
- package/test/client/core/utils.js +260 -260
- package/test/client/index.js +3 -3
- package/test/client/map/catalog.js +193 -193
- package/test/client/map/controls.js +41 -41
- package/test/client/map/index.js +4 -4
- package/test/client/map/time.js +24 -24
- package/test/client/map/utils.js +27 -27
- package/coverage/core/api/utils.js.html +0 -118
- package/coverage/lcov-report/core/api/utils.js.html +0 -118
- package/coverage/tmp/coverage-59096-1692631696256-0.json +0 -1
- package/coverage/tmp/coverage-59108-1692631696233-0.json +0 -1
- package/coverage/tmp/coverage-59119-1692631696222-0.json +0 -1
- package/coverage/tmp/coverage-59131-1692631696200-0.json +0 -1
- package/coverage/tmp/coverage-59138-1692631696175-0.json +0 -1
- package/test/api/core/test-log-2023-07-10.log +0 -2
- package/test/api/core/test-log-2023-07-12.log +0 -0
- package/test/api/core/test-log-2023-07-18.log +0 -78
- package/test/api/core/test-log-2023-07-19.log +0 -44
- package/test/api/core/test-log-2023-08-01.log +0 -162
- package/test/api/core/test-log-2023-08-21.log +0 -66
- package/test/api/core/test-log-2023-08-22.log +0 -96
- package/test/api/core/test-log-2023-08-23.log +0 -22
- package/test/api/core/test-log-2023-09-20.log +0 -22
- package/test/api/core/test-log-2023-09-21.log +0 -105
- package/test/api/core/test-log-2023-10-04.log +0 -22
- package/test/api/map/test-log-2023-07-18.log +0 -62
- package/test/api/map/test-log-2023-08-21.log +0 -65
- package/test/api/map/test-log-2023-09-20.log +0 -60
- /package/test/api/core/{test-log-2023-07-04.log → test-log-2023-06-05.log} +0 -0
package/core/api/db.js
CHANGED
|
@@ -1,226 +1,226 @@
|
|
|
1
|
-
import _ from 'lodash'
|
|
2
|
-
import moment from 'moment'
|
|
3
|
-
import makeDebug from 'debug'
|
|
4
|
-
import mongodb from 'mongodb'
|
|
5
|
-
import errors from '@feathersjs/errors'
|
|
6
|
-
|
|
7
|
-
const { MongoClient, ObjectID } = mongodb
|
|
8
|
-
const debug = makeDebug('kdk:core:db')
|
|
9
|
-
|
|
10
|
-
// This ensure moment objects are correctly serialized in MongoDB
|
|
11
|
-
Object.getPrototypeOf(moment()).toBSON = function () {
|
|
12
|
-
return this.toDate()
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function isObjectID (id) {
|
|
16
|
-
return id && (typeof id.toHexString === 'function') && (typeof id.getTimestamp === 'function')
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function idToString (id) {
|
|
20
|
-
return (typeof id === 'object'
|
|
21
|
-
? (ObjectID.isValid(id)
|
|
22
|
-
? id.toString()
|
|
23
|
-
: idToString(id._id))
|
|
24
|
-
: id)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function createObjectID (id) {
|
|
28
|
-
// This ensure it works even if id is already an ObjectID
|
|
29
|
-
if (isObjectID(id)) return id
|
|
30
|
-
// Take care that numbers could be a valid object ID
|
|
31
|
-
else if ((typeof id === 'number') || !ObjectID.isValid(id)) return null
|
|
32
|
-
else return new ObjectID(id)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Utility function used to convert from string to MongoDB IDs as required eg by queries
|
|
36
|
-
// It only processes _id properties or operators (eg $ne, $in) to be converted
|
|
37
|
-
// If you have others properties to be converted use toObjectIDs
|
|
38
|
-
export function objectifyIDs (object) {
|
|
39
|
-
// Avoid destructuring already transformed Date, ObjectID or arrays
|
|
40
|
-
if (_.isPlainObject(object)) {
|
|
41
|
-
_.forOwn(object, (value, key) => {
|
|
42
|
-
// Process current attributes or recurse
|
|
43
|
-
// Take care to nested fields like 'field._id'
|
|
44
|
-
if (key === '_id' || key.endsWith('._id') || key === '$ne') {
|
|
45
|
-
if (typeof value === 'string') {
|
|
46
|
-
const id = createObjectID(value)
|
|
47
|
-
if (id) {
|
|
48
|
-
object[key] = id
|
|
49
|
-
}
|
|
50
|
-
debug('Objectify ID ' + key, id)
|
|
51
|
-
} else if (Array.isArray(value)) {
|
|
52
|
-
debug('Objectify ID array ' + key)
|
|
53
|
-
object[key] = value.map(id => createObjectID(id)).filter(id => id)
|
|
54
|
-
} else objectifyIDs(value)
|
|
55
|
-
} else if (['$in', '$nin'].includes(key)) {
|
|
56
|
-
debug('Objectify ID array ' + key)
|
|
57
|
-
const ids = value.map(id => createObjectID(id)).filter(id => id)
|
|
58
|
-
// Take care that $in/$nin can be used for others types than Object IDs so conversion might fail
|
|
59
|
-
if (ids.length > 0) object[key] = ids
|
|
60
|
-
} else if ((key === '$or') || (key === '$and')) {
|
|
61
|
-
value.forEach(entry => objectifyIDs(entry))
|
|
62
|
-
} else {
|
|
63
|
-
if (!Array.isArray(value)) objectifyIDs(value)
|
|
64
|
-
else value.forEach(entry => objectifyIDs(entry))
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
return object
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Utility function used to convert a fixed set of properties on a given object from string to MongoDB IDs
|
|
72
|
-
export function toObjectIDs (object, properties) {
|
|
73
|
-
properties.forEach(property => {
|
|
74
|
-
const value = _.get(object, property)
|
|
75
|
-
const id = createObjectID(value)
|
|
76
|
-
if (id) _.set(object, property, id)
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export class Database {
|
|
81
|
-
constructor (app) {
|
|
82
|
-
try {
|
|
83
|
-
this.app = app
|
|
84
|
-
this._adapter = app.get('db').adapter
|
|
85
|
-
} catch (error) {
|
|
86
|
-
throw new errors.GeneralError('Cannot find database adapter configuration in application')
|
|
87
|
-
}
|
|
88
|
-
this._collections = new Map()
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
get adapter () {
|
|
92
|
-
return this._adapter
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
async connect () {
|
|
96
|
-
// Default implementation
|
|
97
|
-
return null
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
async disconnect () {
|
|
101
|
-
// Default implementation
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
async healthcheck () {
|
|
105
|
-
// Default implementation
|
|
106
|
-
return false
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
static create (app) {
|
|
110
|
-
switch (this.adapter) {
|
|
111
|
-
case 'mongodb':
|
|
112
|
-
default:
|
|
113
|
-
return new MongoDatabase(app)
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export class MongoDatabase extends Database {
|
|
119
|
-
constructor (app) {
|
|
120
|
-
super(app)
|
|
121
|
-
try {
|
|
122
|
-
// Primary DB
|
|
123
|
-
this._dbUrl = app.get('db').url
|
|
124
|
-
// Secondaries if any
|
|
125
|
-
this._secondaries = app.get('db').secondaries || {}
|
|
126
|
-
} catch (error) {
|
|
127
|
-
throw new errors.GeneralError('Cannot find database connection settings in application')
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
connectionDb (url) {
|
|
132
|
-
// Extract database name from url. Need to remove the connections options if any
|
|
133
|
-
let dbName
|
|
134
|
-
const indexOfDBName = url.lastIndexOf('/') + 1
|
|
135
|
-
const indexOfOptions = url.indexOf('?')
|
|
136
|
-
if (indexOfOptions === -1) dbName = url.substring(indexOfDBName)
|
|
137
|
-
else dbName = url.substring(indexOfDBName, indexOfOptions)
|
|
138
|
-
|
|
139
|
-
return dbName
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
async connect () {
|
|
143
|
-
try {
|
|
144
|
-
// Connect to primary
|
|
145
|
-
this._client = await MongoClient.connect(this._dbUrl)
|
|
146
|
-
this._db = await this._client.db(this.connectionDb(this._dbUrl))
|
|
147
|
-
debug('Connected to primary DB ' + this.adapter)
|
|
148
|
-
// Then secondaries if any
|
|
149
|
-
this._clients = {}
|
|
150
|
-
this._dbs = {}
|
|
151
|
-
if (this._secondaries) {
|
|
152
|
-
const dbNames = _.keys(this._secondaries)
|
|
153
|
-
for (let i = 0; i < dbNames.length; i++) {
|
|
154
|
-
const dbName = dbNames[i]
|
|
155
|
-
const dbUrl = this._secondaries[dbName]
|
|
156
|
-
this._clients[dbName] = await MongoClient.connect(dbUrl)
|
|
157
|
-
this._dbs[dbName] = await this._clients[dbName].db(this.connectionDb(dbUrl))
|
|
158
|
-
}
|
|
159
|
-
if (dbNames.length > 0) debug('Connected to secondaries DB ' + this.adapter)
|
|
160
|
-
}
|
|
161
|
-
return this._db
|
|
162
|
-
} catch (error) {
|
|
163
|
-
this.app.logger.error('Could not connect to ' + this.adapter + ' database(s), please check your configuration', error)
|
|
164
|
-
throw error
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
async disconnect () {
|
|
169
|
-
try {
|
|
170
|
-
await this._client.close()
|
|
171
|
-
debug('Disconnected from primary DB ' + this.adapter)
|
|
172
|
-
this._client = null
|
|
173
|
-
this._db = null
|
|
174
|
-
if (this._secondaries) {
|
|
175
|
-
const dbNames = _.keys(this._secondaries)
|
|
176
|
-
const clients = _.values(this._clients)
|
|
177
|
-
for (let i = 0; i < clients.length; i++) {
|
|
178
|
-
await clients[i].close()
|
|
179
|
-
}
|
|
180
|
-
this._clients = {}
|
|
181
|
-
this._dbs = {}
|
|
182
|
-
if (dbNames.length > 0) debug('Disconnected from secondaries DB ' + this.adapter)
|
|
183
|
-
}
|
|
184
|
-
} catch (error) {
|
|
185
|
-
this.app.logger.error('Could not disconnect from ' + this.adapter + ' database(s)', error)
|
|
186
|
-
throw error
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
async healthcheck () {
|
|
191
|
-
try {
|
|
192
|
-
await this.instance.admin().ping()
|
|
193
|
-
if (this._secondaries) {
|
|
194
|
-
const dbNames = _.keys(this._secondaries)
|
|
195
|
-
for (let i = 0; i < dbNames.length; i++) {
|
|
196
|
-
const dbName = dbNames[i]
|
|
197
|
-
await this._dbs[dbName].admin().ping()
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
return true
|
|
201
|
-
} catch (error) {
|
|
202
|
-
this.app.logger.error('Healthcheck from ' + this.adapter + ' database(s) failed', error)
|
|
203
|
-
return false
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
get client () {
|
|
208
|
-
return this._client
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
get instance () {
|
|
212
|
-
return this._db
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
db (dbName) {
|
|
216
|
-
return (dbName ? this._dbs[dbName] : this._db)
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
collection (name, dbName) {
|
|
220
|
-
if (!this._collections.has(name)) {
|
|
221
|
-
// Get collection from secondary or primary DB
|
|
222
|
-
this._collections.set(name, this.db(dbName).collection(name))
|
|
223
|
-
}
|
|
224
|
-
return this._collections.get(name)
|
|
225
|
-
}
|
|
226
|
-
}
|
|
1
|
+
import _ from 'lodash'
|
|
2
|
+
import moment from 'moment'
|
|
3
|
+
import makeDebug from 'debug'
|
|
4
|
+
import mongodb from 'mongodb'
|
|
5
|
+
import errors from '@feathersjs/errors'
|
|
6
|
+
|
|
7
|
+
const { MongoClient, ObjectID } = mongodb
|
|
8
|
+
const debug = makeDebug('kdk:core:db')
|
|
9
|
+
|
|
10
|
+
// This ensure moment objects are correctly serialized in MongoDB
|
|
11
|
+
Object.getPrototypeOf(moment()).toBSON = function () {
|
|
12
|
+
return this.toDate()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function isObjectID (id) {
|
|
16
|
+
return id && (typeof id.toHexString === 'function') && (typeof id.getTimestamp === 'function')
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function idToString (id) {
|
|
20
|
+
return (typeof id === 'object'
|
|
21
|
+
? (ObjectID.isValid(id)
|
|
22
|
+
? id.toString()
|
|
23
|
+
: idToString(id._id))
|
|
24
|
+
: id)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function createObjectID (id) {
|
|
28
|
+
// This ensure it works even if id is already an ObjectID
|
|
29
|
+
if (isObjectID(id)) return id
|
|
30
|
+
// Take care that numbers could be a valid object ID
|
|
31
|
+
else if ((typeof id === 'number') || !ObjectID.isValid(id)) return null
|
|
32
|
+
else return new ObjectID(id)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Utility function used to convert from string to MongoDB IDs as required eg by queries
|
|
36
|
+
// It only processes _id properties or operators (eg $ne, $in) to be converted
|
|
37
|
+
// If you have others properties to be converted use toObjectIDs
|
|
38
|
+
export function objectifyIDs (object) {
|
|
39
|
+
// Avoid destructuring already transformed Date, ObjectID or arrays
|
|
40
|
+
if (_.isPlainObject(object)) {
|
|
41
|
+
_.forOwn(object, (value, key) => {
|
|
42
|
+
// Process current attributes or recurse
|
|
43
|
+
// Take care to nested fields like 'field._id'
|
|
44
|
+
if (key === '_id' || key.endsWith('._id') || key === '$ne') {
|
|
45
|
+
if (typeof value === 'string') {
|
|
46
|
+
const id = createObjectID(value)
|
|
47
|
+
if (id) {
|
|
48
|
+
object[key] = id
|
|
49
|
+
}
|
|
50
|
+
debug('Objectify ID ' + key, id)
|
|
51
|
+
} else if (Array.isArray(value)) {
|
|
52
|
+
debug('Objectify ID array ' + key)
|
|
53
|
+
object[key] = value.map(id => createObjectID(id)).filter(id => id)
|
|
54
|
+
} else objectifyIDs(value)
|
|
55
|
+
} else if (['$in', '$nin'].includes(key)) {
|
|
56
|
+
debug('Objectify ID array ' + key)
|
|
57
|
+
const ids = value.map(id => createObjectID(id)).filter(id => id)
|
|
58
|
+
// Take care that $in/$nin can be used for others types than Object IDs so conversion might fail
|
|
59
|
+
if (ids.length > 0) object[key] = ids
|
|
60
|
+
} else if ((key === '$or') || (key === '$and')) {
|
|
61
|
+
value.forEach(entry => objectifyIDs(entry))
|
|
62
|
+
} else {
|
|
63
|
+
if (!Array.isArray(value)) objectifyIDs(value)
|
|
64
|
+
else value.forEach(entry => objectifyIDs(entry))
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
return object
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Utility function used to convert a fixed set of properties on a given object from string to MongoDB IDs
|
|
72
|
+
export function toObjectIDs (object, properties) {
|
|
73
|
+
properties.forEach(property => {
|
|
74
|
+
const value = _.get(object, property)
|
|
75
|
+
const id = createObjectID(value)
|
|
76
|
+
if (id) _.set(object, property, id)
|
|
77
|
+
})
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export class Database {
|
|
81
|
+
constructor (app) {
|
|
82
|
+
try {
|
|
83
|
+
this.app = app
|
|
84
|
+
this._adapter = app.get('db').adapter
|
|
85
|
+
} catch (error) {
|
|
86
|
+
throw new errors.GeneralError('Cannot find database adapter configuration in application')
|
|
87
|
+
}
|
|
88
|
+
this._collections = new Map()
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
get adapter () {
|
|
92
|
+
return this._adapter
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async connect () {
|
|
96
|
+
// Default implementation
|
|
97
|
+
return null
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async disconnect () {
|
|
101
|
+
// Default implementation
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async healthcheck () {
|
|
105
|
+
// Default implementation
|
|
106
|
+
return false
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
static create (app) {
|
|
110
|
+
switch (this.adapter) {
|
|
111
|
+
case 'mongodb':
|
|
112
|
+
default:
|
|
113
|
+
return new MongoDatabase(app)
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export class MongoDatabase extends Database {
|
|
119
|
+
constructor (app) {
|
|
120
|
+
super(app)
|
|
121
|
+
try {
|
|
122
|
+
// Primary DB
|
|
123
|
+
this._dbUrl = app.get('db').url
|
|
124
|
+
// Secondaries if any
|
|
125
|
+
this._secondaries = app.get('db').secondaries || {}
|
|
126
|
+
} catch (error) {
|
|
127
|
+
throw new errors.GeneralError('Cannot find database connection settings in application')
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
connectionDb (url) {
|
|
132
|
+
// Extract database name from url. Need to remove the connections options if any
|
|
133
|
+
let dbName
|
|
134
|
+
const indexOfDBName = url.lastIndexOf('/') + 1
|
|
135
|
+
const indexOfOptions = url.indexOf('?')
|
|
136
|
+
if (indexOfOptions === -1) dbName = url.substring(indexOfDBName)
|
|
137
|
+
else dbName = url.substring(indexOfDBName, indexOfOptions)
|
|
138
|
+
|
|
139
|
+
return dbName
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
async connect () {
|
|
143
|
+
try {
|
|
144
|
+
// Connect to primary
|
|
145
|
+
this._client = await MongoClient.connect(this._dbUrl)
|
|
146
|
+
this._db = await this._client.db(this.connectionDb(this._dbUrl))
|
|
147
|
+
debug('Connected to primary DB ' + this.adapter)
|
|
148
|
+
// Then secondaries if any
|
|
149
|
+
this._clients = {}
|
|
150
|
+
this._dbs = {}
|
|
151
|
+
if (this._secondaries) {
|
|
152
|
+
const dbNames = _.keys(this._secondaries)
|
|
153
|
+
for (let i = 0; i < dbNames.length; i++) {
|
|
154
|
+
const dbName = dbNames[i]
|
|
155
|
+
const dbUrl = this._secondaries[dbName]
|
|
156
|
+
this._clients[dbName] = await MongoClient.connect(dbUrl)
|
|
157
|
+
this._dbs[dbName] = await this._clients[dbName].db(this.connectionDb(dbUrl))
|
|
158
|
+
}
|
|
159
|
+
if (dbNames.length > 0) debug('Connected to secondaries DB ' + this.adapter)
|
|
160
|
+
}
|
|
161
|
+
return this._db
|
|
162
|
+
} catch (error) {
|
|
163
|
+
this.app.logger.error('Could not connect to ' + this.adapter + ' database(s), please check your configuration', error)
|
|
164
|
+
throw error
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
async disconnect () {
|
|
169
|
+
try {
|
|
170
|
+
await this._client.close()
|
|
171
|
+
debug('Disconnected from primary DB ' + this.adapter)
|
|
172
|
+
this._client = null
|
|
173
|
+
this._db = null
|
|
174
|
+
if (this._secondaries) {
|
|
175
|
+
const dbNames = _.keys(this._secondaries)
|
|
176
|
+
const clients = _.values(this._clients)
|
|
177
|
+
for (let i = 0; i < clients.length; i++) {
|
|
178
|
+
await clients[i].close()
|
|
179
|
+
}
|
|
180
|
+
this._clients = {}
|
|
181
|
+
this._dbs = {}
|
|
182
|
+
if (dbNames.length > 0) debug('Disconnected from secondaries DB ' + this.adapter)
|
|
183
|
+
}
|
|
184
|
+
} catch (error) {
|
|
185
|
+
this.app.logger.error('Could not disconnect from ' + this.adapter + ' database(s)', error)
|
|
186
|
+
throw error
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
async healthcheck () {
|
|
191
|
+
try {
|
|
192
|
+
await this.instance.admin().ping()
|
|
193
|
+
if (this._secondaries) {
|
|
194
|
+
const dbNames = _.keys(this._secondaries)
|
|
195
|
+
for (let i = 0; i < dbNames.length; i++) {
|
|
196
|
+
const dbName = dbNames[i]
|
|
197
|
+
await this._dbs[dbName].admin().ping()
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return true
|
|
201
|
+
} catch (error) {
|
|
202
|
+
this.app.logger.error('Healthcheck from ' + this.adapter + ' database(s) failed', error)
|
|
203
|
+
return false
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
get client () {
|
|
208
|
+
return this._client
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
get instance () {
|
|
212
|
+
return this._db
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
db (dbName) {
|
|
216
|
+
return (dbName ? this._dbs[dbName] : this._db)
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
collection (name, dbName) {
|
|
220
|
+
if (!this._collections.has(name)) {
|
|
221
|
+
// Get collection from secondary or primary DB
|
|
222
|
+
this._collections.set(name, this.db(dbName).collection(name))
|
|
223
|
+
}
|
|
224
|
+
return this._collections.get(name)
|
|
225
|
+
}
|
|
226
|
+
}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import makeDebug from 'debug'
|
|
2
|
-
import common from 'feathers-hooks-common'
|
|
3
|
-
import local from '@feathersjs/authentication-local'
|
|
4
|
-
|
|
5
|
-
const debug = makeDebug('kdk:core:authentication:hooks')
|
|
6
|
-
const { discard } = common
|
|
7
|
-
|
|
8
|
-
// Make it more easy to acces
|
|
9
|
-
export const hashPassword = local.hooks.hashPassword
|
|
10
|
-
|
|
11
|
-
export async function verifyGuest (hook) {
|
|
12
|
-
if (hook.type !== 'after') {
|
|
13
|
-
throw new Error('The \'verifyGuest\' hook should only be used as a \'after\' hook.')
|
|
14
|
-
}
|
|
15
|
-
const app = hook.app
|
|
16
|
-
const user = hook.result.user
|
|
17
|
-
debug('verifyGuest hook called on ', user._id)
|
|
18
|
-
|
|
19
|
-
// Check whether the user has been inivted. If not, nothing to do
|
|
20
|
-
if (!user.sponsor) {
|
|
21
|
-
debug('Logged user is not a guest')
|
|
22
|
-
return hook
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Check whether has been already verified. If yes, nothing to do
|
|
26
|
-
if (user.isVerified) {
|
|
27
|
-
debug('Logged guest is already verified')
|
|
28
|
-
return hook
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// The user is a guest and need to be verified
|
|
32
|
-
debug('Verifying logged guest')
|
|
33
|
-
const userService = app.getService('users')
|
|
34
|
-
await userService.patch(user._id, { isVerified: true })
|
|
35
|
-
|
|
36
|
-
return hook
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export async function consentGuest (hook) {
|
|
40
|
-
if (hook.type !== 'after') {
|
|
41
|
-
throw new Error('The \'consentGuest\' hook should only be used as a \'after\' hook.')
|
|
42
|
-
}
|
|
43
|
-
const app = hook.app
|
|
44
|
-
const user = hook.result.user
|
|
45
|
-
debug('consentGuest hook called on ', user._id)
|
|
46
|
-
|
|
47
|
-
// Check whether the user has been invited. If not, nothing to do
|
|
48
|
-
if (!user.sponsor) {
|
|
49
|
-
debug('Logged user is not a guest')
|
|
50
|
-
return hook
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Check whether consent has been already checked. If yes, nothing to do
|
|
54
|
-
if (user.consentTerms) {
|
|
55
|
-
debug('Logged guest is already verified')
|
|
56
|
-
return hook
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// The user is a guest and need to be consent
|
|
60
|
-
debug('Consenting logged guest')
|
|
61
|
-
const userService = app.getService('users')
|
|
62
|
-
await userService.patch(user._id, { consentTerms: true, expireAt: null })
|
|
63
|
-
|
|
64
|
-
return hook
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export function discardAuthenticationProviders (hook) {
|
|
68
|
-
const providers = hook.app.authenticationProviders || []
|
|
69
|
-
|
|
70
|
-
// Iterate through known providers
|
|
71
|
-
for (const provider of providers) {
|
|
72
|
-
discard(provider)(hook)
|
|
73
|
-
}
|
|
1
|
+
import makeDebug from 'debug'
|
|
2
|
+
import common from 'feathers-hooks-common'
|
|
3
|
+
import local from '@feathersjs/authentication-local'
|
|
4
|
+
|
|
5
|
+
const debug = makeDebug('kdk:core:authentication:hooks')
|
|
6
|
+
const { discard } = common
|
|
7
|
+
|
|
8
|
+
// Make it more easy to acces
|
|
9
|
+
export const hashPassword = local.hooks.hashPassword
|
|
10
|
+
|
|
11
|
+
export async function verifyGuest (hook) {
|
|
12
|
+
if (hook.type !== 'after') {
|
|
13
|
+
throw new Error('The \'verifyGuest\' hook should only be used as a \'after\' hook.')
|
|
14
|
+
}
|
|
15
|
+
const app = hook.app
|
|
16
|
+
const user = hook.result.user
|
|
17
|
+
debug('verifyGuest hook called on ', user._id)
|
|
18
|
+
|
|
19
|
+
// Check whether the user has been inivted. If not, nothing to do
|
|
20
|
+
if (!user.sponsor) {
|
|
21
|
+
debug('Logged user is not a guest')
|
|
22
|
+
return hook
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Check whether has been already verified. If yes, nothing to do
|
|
26
|
+
if (user.isVerified) {
|
|
27
|
+
debug('Logged guest is already verified')
|
|
28
|
+
return hook
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// The user is a guest and need to be verified
|
|
32
|
+
debug('Verifying logged guest')
|
|
33
|
+
const userService = app.getService('users')
|
|
34
|
+
await userService.patch(user._id, { isVerified: true })
|
|
35
|
+
|
|
36
|
+
return hook
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export async function consentGuest (hook) {
|
|
40
|
+
if (hook.type !== 'after') {
|
|
41
|
+
throw new Error('The \'consentGuest\' hook should only be used as a \'after\' hook.')
|
|
42
|
+
}
|
|
43
|
+
const app = hook.app
|
|
44
|
+
const user = hook.result.user
|
|
45
|
+
debug('consentGuest hook called on ', user._id)
|
|
46
|
+
|
|
47
|
+
// Check whether the user has been invited. If not, nothing to do
|
|
48
|
+
if (!user.sponsor) {
|
|
49
|
+
debug('Logged user is not a guest')
|
|
50
|
+
return hook
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Check whether consent has been already checked. If yes, nothing to do
|
|
54
|
+
if (user.consentTerms) {
|
|
55
|
+
debug('Logged guest is already verified')
|
|
56
|
+
return hook
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// The user is a guest and need to be consent
|
|
60
|
+
debug('Consenting logged guest')
|
|
61
|
+
const userService = app.getService('users')
|
|
62
|
+
await userService.patch(user._id, { consentTerms: true, expireAt: null })
|
|
63
|
+
|
|
64
|
+
return hook
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function discardAuthenticationProviders (hook) {
|
|
68
|
+
const providers = hook.app.authenticationProviders || []
|
|
69
|
+
|
|
70
|
+
// Iterate through known providers
|
|
71
|
+
for (const provider of providers) {
|
|
72
|
+
discard(provider)(hook)
|
|
73
|
+
}
|
|
74
74
|
}
|