@kalisio/kdk 1.4.0 → 1.4.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/.nyc_output/{0f1a87aa-d3bb-4c61-8c1e-12294055358d.json → 03fad5e1-0985-48cc-bcbf-b53b3567b484.json} +0 -0
- package/.nyc_output/{8be4cd9f-124a-41f9-80f4-f267ced63c86.json → 0a387479-430c-4f37-afd0-7cb413b43f71.json} +0 -0
- package/.nyc_output/3def2322-4b64-4d43-886a-2f1d1ac42e7f.json +1 -0
- package/.nyc_output/{a63b0924-fd09-4e30-974f-cb4be2243b66.json → 48c4e1d1-6dc8-4531-9519-3715b705900e.json} +0 -0
- package/.nyc_output/{d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json → 5942dc79-7596-496b-aca5-0a4fbea84813.json} +0 -0
- package/.nyc_output/dcf9446b-252f-41f8-96f9-0119b21bc294.json +1 -0
- package/.nyc_output/{fb790367-ba9f-474f-84c1-f836caf9f50a.json → e4dcc112-f0f4-42fe-a481-fb65d8cb1b7d.json} +0 -0
- package/.nyc_output/processinfo/03fad5e1-0985-48cc-bcbf-b53b3567b484.json +1 -0
- package/.nyc_output/processinfo/0a387479-430c-4f37-afd0-7cb413b43f71.json +1 -0
- package/.nyc_output/processinfo/{27204015-ebfd-456f-a3bb-6a94f71946b8.json → 3def2322-4b64-4d43-886a-2f1d1ac42e7f.json} +1 -1
- package/.nyc_output/processinfo/48c4e1d1-6dc8-4531-9519-3715b705900e.json +1 -0
- package/.nyc_output/processinfo/5942dc79-7596-496b-aca5-0a4fbea84813.json +1 -0
- package/.nyc_output/processinfo/dcf9446b-252f-41f8-96f9-0119b21bc294.json +1 -0
- package/.nyc_output/processinfo/e4dcc112-f0f4-42fe-a481-fb65d8cb1b7d.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +173 -64
- package/coverage/core/api/application.js.html +7 -7
- package/coverage/core/api/authentication.js.html +1 -1
- package/coverage/core/api/db.js.html +1 -1
- package/coverage/core/api/hooks/hooks.account.js.html +1 -1
- package/coverage/core/api/hooks/hooks.authentication.js.html +26 -26
- package/coverage/core/api/hooks/hooks.authorisations.js.html +35 -35
- package/coverage/core/api/hooks/hooks.devices.js.html +41 -41
- package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/core/api/hooks/hooks.logger.js.html +7 -7
- package/coverage/core/api/hooks/hooks.model.js.html +13 -13
- package/coverage/core/api/hooks/hooks.organisations.js.html +10 -58
- package/coverage/core/api/hooks/hooks.pusher.js.html +12 -12
- package/coverage/core/api/hooks/hooks.query.js.html +1 -1
- package/coverage/core/api/hooks/hooks.service.js.html +1 -1
- package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
- package/coverage/core/api/hooks/hooks.tags.js.html +1 -1
- package/coverage/core/api/hooks/hooks.users.js.html +16 -16
- package/coverage/core/api/hooks/index.html +55 -55
- package/coverage/core/api/hooks/index.js.html +2 -2
- package/coverage/core/api/index.html +1 -1
- package/coverage/core/api/index.js.html +1 -1
- package/coverage/core/api/marshall.js.html +1 -1
- package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/index.html +1 -1
- package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
- package/coverage/core/api/oauth2-handler.js.html +1 -1
- package/coverage/core/api/oauth2-verifier.js.html +1 -1
- package/coverage/core/api/services/account/account.hooks.js.html +1 -1
- package/coverage/core/api/services/account/account.service.js.html +1 -1
- package/coverage/core/api/services/account/index.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +10 -10
- 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 +1 -1
- package/coverage/core/api/services/devices/devices.service.js.html +106 -106
- package/coverage/core/api/services/devices/index.html +21 -21
- package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/core/api/services/groups/index.html +1 -1
- package/coverage/core/api/services/index.html +1 -1
- package/coverage/core/api/services/index.js.html +2 -2
- 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 +1 -1
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/core/api/services/pusher/index.html +21 -21
- package/coverage/core/api/services/pusher/pusher.channels.js.html +1 -1
- package/coverage/core/api/services/pusher/pusher.hooks.js.html +1 -1
- package/coverage/core/api/services/pusher/pusher.service.js.html +188 -188
- 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/tags/index.html +1 -1
- package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/core/api/services/users/index.html +1 -1
- package/coverage/core/api/services/users/users.hooks.js.html +3 -3
- package/coverage/core/common/index.html +1 -1
- package/coverage/core/common/index.js.html +1 -1
- package/coverage/core/common/permissions.js.html +39 -39
- package/coverage/index.html +44 -44
- package/coverage/lcov-report/core/api/application.js.html +7 -7
- package/coverage/lcov-report/core/api/authentication.js.html +1 -1
- package/coverage/lcov-report/core/api/db.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +26 -26
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +35 -35
- package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +41 -41
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +13 -13
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +10 -58
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +16 -16
- package/coverage/lcov-report/core/api/hooks/index.html +55 -55
- package/coverage/lcov-report/core/api/hooks/index.js.html +2 -2
- package/coverage/lcov-report/core/api/index.html +1 -1
- package/coverage/lcov-report/core/api/index.js.html +1 -1
- package/coverage/lcov-report/core/api/marshall.js.html +1 -1
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/index.html +1 -1
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/oauth2-handler.js.html +1 -1
- package/coverage/lcov-report/core/api/oauth2-verifier.js.html +1 -1
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/account/index.html +1 -1
- 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 +10 -10
- 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 +1 -1
- package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +106 -106
- package/coverage/lcov-report/core/api/services/devices/index.html +21 -21
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
- package/coverage/lcov-report/core/api/services/index.html +1 -1
- package/coverage/lcov-report/core/api/services/index.js.html +2 -2
- 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 +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/index.html +21 -21
- package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +188 -188
- 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/tags/index.html +1 -1
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/users/index.html +1 -1
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +3 -3
- package/coverage/lcov-report/core/common/index.html +1 -1
- package/coverage/lcov-report/core/common/index.js.html +1 -1
- package/coverage/lcov-report/core/common/permissions.js.html +39 -39
- package/coverage/lcov-report/index.html +44 -44
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +14 -14
- package/coverage/lcov-report/map/api/hooks/index.html +7 -7
- package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
- package/coverage/lcov-report/map/api/index.html +1 -1
- package/coverage/lcov-report/map/api/index.js.html +1 -1
- package/coverage/lcov-report/map/api/marshall.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/map/api/models/index.html +1 -1
- 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/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 +1 -1
- package/coverage/lcov-report/map/api/services/index.js.html +1 -1
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/errors.js.html +1 -1
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/grid.js.html +1 -1
- package/coverage/lcov-report/map/common/index.html +1 -1
- package/coverage/lcov-report/map/common/index.js.html +1 -1
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/permissions.js.html +1 -1
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
- 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 +635 -640
- package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/map/api/hooks/hooks.query.js.html +14 -14
- package/coverage/map/api/hooks/index.html +7 -7
- package/coverage/map/api/hooks/index.js.html +1 -1
- package/coverage/map/api/index.html +1 -1
- package/coverage/map/api/index.js.html +1 -1
- package/coverage/map/api/marshall.js.html +1 -1
- 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 +1 -1
- package/coverage/map/api/models/index.html +1 -1
- 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/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 +1 -1
- package/coverage/map/api/services/index.js.html +1 -1
- package/coverage/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/map/common/errors.js.html +1 -1
- package/coverage/map/common/geotiff-grid-source.js.html +1 -1
- package/coverage/map/common/grid.js.html +1 -1
- package/coverage/map/common/index.html +1 -1
- package/coverage/map/common/index.js.html +1 -1
- package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/map/common/moment-utils.js.html +1 -1
- package/coverage/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/map/common/opendap-utils.js.html +1 -1
- package/coverage/map/common/permissions.js.html +1 -1
- package/coverage/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/map/common/tms-utils.js.html +1 -1
- package/coverage/map/common/wcs-grid-source.js.html +1 -1
- package/coverage/map/common/wcs-utils.js.html +1 -1
- package/coverage/map/common/weacast-grid-source.js.html +1 -1
- 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/lib/core/client/components/collection/KColumn.vue +2 -2
- package/lib/core/client/components/collection/KHistory.vue +14 -6
- package/lib/core/client/components/collection/KHistoryEntry.vue +7 -3
- package/lib/core/client/mixins/mixin.base-collection.js +8 -2
- package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
- package/lib/core/client/services/index.js +1 -3
- package/lib/core/client/services/index.js.map +1 -1
- package/lib/core/client/time.js +4 -1
- package/lib/core/client/time.js.map +1 -1
- package/lib/map/api/hooks/hooks.query.js +23 -11
- package/lib/map/api/hooks/hooks.query.js.map +1 -1
- package/lib/map/client/components/KLocationMap.vue +3 -1
- package/lib/map/client/components/KTimeline.vue +7 -7
- package/lib/map/client/components/catalog/KLayersSelector.vue +9 -9
- package/lib/map/client/init.js.map +1 -1
- package/lib/map/client/leaflet/MaskLayer.js +3 -3
- package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js +0 -4
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.file-layers.js +2 -2
- package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.geojson-layers.js +0 -4
- package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js +0 -4
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-service.js +2 -2
- package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
- package/lib/test/client/core/utils.js +57 -37
- package/lib/test/client/core/utils.js.map +1 -1
- package/package.json +1 -1
- package/.nyc_output/27204015-ebfd-456f-a3bb-6a94f71946b8.json +0 -1
- package/.nyc_output/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
- package/.nyc_output/processinfo/0f1a87aa-d3bb-4c61-8c1e-12294055358d.json +0 -1
- package/.nyc_output/processinfo/8be4cd9f-124a-41f9-80f4-f267ced63c86.json +0 -1
- package/.nyc_output/processinfo/a63b0924-fd09-4e30-974f-cb4be2243b66.json +0 -1
- package/.nyc_output/processinfo/d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json +0 -1
- package/.nyc_output/processinfo/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
- package/.nyc_output/processinfo/fb790367-ba9f-474f-84c1-f836caf9f50a.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"D:\\Development\\kalisio\\kdk\\core\\api\\index.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\index.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":26}},"2":{"start":{"line":8,"column":16},"end":{"line":8,"column":37}},"3":{"start":{"line":10,"column":0},"end":{"line":18,"column":3}},"4":{"start":{"line":11,"column":2},"end":{"line":11,"column":56}},"5":{"start":{"line":11,"column":49},"end":{"line":11,"column":56}},"6":{"start":{"line":12,"column":2},"end":{"line":17,"column":5}},"7":{"start":{"line":15,"column":6},"end":{"line":15,"column":28}},"8":{"start":{"line":20,"column":10},"end":{"line":20,"column":25}},"9":{"start":{"line":22,"column":0},"end":{"line":30,"column":3}},"10":{"start":{"line":23,"column":2},"end":{"line":23,"column":56}},"11":{"start":{"line":23,"column":49},"end":{"line":23,"column":56}},"12":{"start":{"line":24,"column":2},"end":{"line":29,"column":5}},"13":{"start":{"line":27,"column":6},"end":{"line":27,"column":22}},"14":{"start":{"line":32,"column":19},"end":{"line":32,"column":43}},"15":{"start":{"line":34,"column":0},"end":{"line":42,"column":3}},"16":{"start":{"line":35,"column":2},"end":{"line":35,"column":56}},"17":{"start":{"line":35,"column":49},"end":{"line":35,"column":56}},"18":{"start":{"line":36,"column":2},"end":{"line":41,"column":5}},"19":{"start":{"line":39,"column":6},"end":{"line":39,"column":31}},"20":{"start":{"line":44,"column":16},"end":{"line":44,"column":37}},"21":{"start":{"line":46,"column":0},"end":{"line":54,"column":3}},"22":{"start":{"line":47,"column":2},"end":{"line":47,"column":56}},"23":{"start":{"line":47,"column":49},"end":{"line":47,"column":56}},"24":{"start":{"line":48,"column":2},"end":{"line":53,"column":5}},"25":{"start":{"line":51,"column":6},"end":{"line":51,"column":28}},"26":{"start":{"line":56,"column":14},"end":{"line":56,"column":34}},"27":{"start":{"line":58,"column":0},"end":{"line":66,"column":3}},"28":{"start":{"line":59,"column":2},"end":{"line":59,"column":56}},"29":{"start":{"line":59,"column":49},"end":{"line":59,"column":56}},"30":{"start":{"line":60,"column":2},"end":{"line":65,"column":5}},"31":{"start":{"line":63,"column":6},"end":{"line":63,"column":26}},"32":{"start":{"line":67,"column":0},"end":{"line":67,"column":23}},"33":{"start":{"line":69,"column":13},"end":{"line":69,"column":29}},"34":{"start":{"line":71,"column":14},"end":{"line":71,"column":44}},"35":{"start":{"line":73,"column":17},"end":{"line":73,"column":50}},"36":{"start":{"line":75,"column":13},"end":{"line":75,"column":31}},"37":{"start":{"line":77,"column":12},"end":{"line":77,"column":43}},"38":{"start":{"line":79,"column":40},"end":{"line":79,"column":267}},"39":{"start":{"line":79,"column":69},"end":{"line":79,"column":80}},"40":{"start":{"line":79,"column":103},"end":{"line":79,"column":105}},"41":{"start":{"line":79,"column":107},"end":{"line":79,"column":228}},"42":{"start":{"line":79,"column":126},"end":{"line":79,"column":226}},"43":{"start":{"line":79,"column":149},"end":{"line":79,"column":224}},"44":{"start":{"line":79,"column":201},"end":{"line":79,"column":224}},"45":{"start":{"line":79,"column":229},"end":{"line":79,"column":250}},"46":{"start":{"line":79,"column":251},"end":{"line":79,"column":265}},"47":{"start":{"line":81,"column":39},"end":{"line":81,"column":93}},"48":{"start":{"line":83,"column":0},"end":{"line":83,"column":22}},"49":{"start":{"line":88,"column":14},"end":{"line":88,"column":46}},"50":{"start":{"line":91,"column":14},"end":{"line":91,"column":18}},"51":{"start":{"line":93,"column":2},"end":{"line":93,"column":33}},"52":{"start":{"line":95,"column":2},"end":{"line":95,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":31},"end":{"line":10,"column":32}},"loc":{"start":{"line":10,"column":46},"end":{"line":18,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":9},"end":{"line":14,"column":10}},"loc":{"start":{"line":14,"column":21},"end":{"line":16,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":25},"end":{"line":22,"column":26}},"loc":{"start":{"line":22,"column":40},"end":{"line":30,"column":1}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":26,"column":9},"end":{"line":26,"column":10}},"loc":{"start":{"line":26,"column":21},"end":{"line":28,"column":5}},"line":26},"4":{"name":"(anonymous_4)","decl":{"start":{"line":34,"column":34},"end":{"line":34,"column":35}},"loc":{"start":{"line":34,"column":49},"end":{"line":42,"column":1}},"line":34},"5":{"name":"(anonymous_5)","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":10}},"loc":{"start":{"line":38,"column":21},"end":{"line":40,"column":5}},"line":38},"6":{"name":"(anonymous_6)","decl":{"start":{"line":46,"column":31},"end":{"line":46,"column":32}},"loc":{"start":{"line":46,"column":46},"end":{"line":54,"column":1}},"line":46},"7":{"name":"(anonymous_7)","decl":{"start":{"line":50,"column":9},"end":{"line":50,"column":10}},"loc":{"start":{"line":50,"column":21},"end":{"line":52,"column":5}},"line":50},"8":{"name":"(anonymous_8)","decl":{"start":{"line":58,"column":29},"end":{"line":58,"column":30}},"loc":{"start":{"line":58,"column":44},"end":{"line":66,"column":1}},"line":58},"9":{"name":"(anonymous_9)","decl":{"start":{"line":62,"column":9},"end":{"line":62,"column":10}},"loc":{"start":{"line":62,"column":21},"end":{"line":64,"column":5}},"line":62},"10":{"name":"_interopRequireWildcard","decl":{"start":{"line":79,"column":9},"end":{"line":79,"column":32}},"loc":{"start":{"line":79,"column":38},"end":{"line":79,"column":269}},"line":79},"11":{"name":"_interopRequireDefault","decl":{"start":{"line":81,"column":9},"end":{"line":81,"column":31}},"loc":{"start":{"line":81,"column":37},"end":{"line":81,"column":95}},"line":81},"12":{"name":"init","decl":{"start":{"line":90,"column":9},"end":{"line":90,"column":13}},"loc":{"start":{"line":90,"column":16},"end":{"line":96,"column":1}},"line":90}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":56}},"type":"if","locations":[{"start":{"line":11,"column":2},"end":{"line":11,"column":56}},{"start":{"line":11,"column":2},"end":{"line":11,"column":56}}],"line":11},"1":{"loc":{"start":{"line":11,"column":6},"end":{"line":11,"column":47}},"type":"binary-expr","locations":[{"start":{"line":11,"column":6},"end":{"line":11,"column":23}},{"start":{"line":11,"column":27},"end":{"line":11,"column":47}}],"line":11},"2":{"loc":{"start":{"line":23,"column":2},"end":{"line":23,"column":56}},"type":"if","locations":[{"start":{"line":23,"column":2},"end":{"line":23,"column":56}},{"start":{"line":23,"column":2},"end":{"line":23,"column":56}}],"line":23},"3":{"loc":{"start":{"line":23,"column":6},"end":{"line":23,"column":47}},"type":"binary-expr","locations":[{"start":{"line":23,"column":6},"end":{"line":23,"column":23}},{"start":{"line":23,"column":27},"end":{"line":23,"column":47}}],"line":23},"4":{"loc":{"start":{"line":35,"column":2},"end":{"line":35,"column":56}},"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":35,"column":56}},{"start":{"line":35,"column":2},"end":{"line":35,"column":56}}],"line":35},"5":{"loc":{"start":{"line":35,"column":6},"end":{"line":35,"column":47}},"type":"binary-expr","locations":[{"start":{"line":35,"column":6},"end":{"line":35,"column":23}},{"start":{"line":35,"column":27},"end":{"line":35,"column":47}}],"line":35},"6":{"loc":{"start":{"line":47,"column":2},"end":{"line":47,"column":56}},"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":47,"column":56}},{"start":{"line":47,"column":2},"end":{"line":47,"column":56}}],"line":47},"7":{"loc":{"start":{"line":47,"column":6},"end":{"line":47,"column":47}},"type":"binary-expr","locations":[{"start":{"line":47,"column":6},"end":{"line":47,"column":23}},{"start":{"line":47,"column":27},"end":{"line":47,"column":47}}],"line":47},"8":{"loc":{"start":{"line":59,"column":2},"end":{"line":59,"column":56}},"type":"if","locations":[{"start":{"line":59,"column":2},"end":{"line":59,"column":56}},{"start":{"line":59,"column":2},"end":{"line":59,"column":56}}],"line":59},"9":{"loc":{"start":{"line":59,"column":6},"end":{"line":59,"column":47}},"type":"binary-expr","locations":[{"start":{"line":59,"column":6},"end":{"line":59,"column":23}},{"start":{"line":59,"column":27},"end":{"line":59,"column":47}}],"line":59},"10":{"loc":{"start":{"line":79,"column":40},"end":{"line":79,"column":267}},"type":"if","locations":[{"start":{"line":79,"column":40},"end":{"line":79,"column":267}},{"start":{"line":79,"column":40},"end":{"line":79,"column":267}}],"line":79},"11":{"loc":{"start":{"line":79,"column":44},"end":{"line":79,"column":65}},"type":"binary-expr","locations":[{"start":{"line":79,"column":44},"end":{"line":79,"column":47}},{"start":{"line":79,"column":51},"end":{"line":79,"column":65}}],"line":79},"12":{"loc":{"start":{"line":79,"column":107},"end":{"line":79,"column":228}},"type":"if","locations":[{"start":{"line":79,"column":107},"end":{"line":79,"column":228}},{"start":{"line":79,"column":107},"end":{"line":79,"column":228}}],"line":79},"13":{"loc":{"start":{"line":79,"column":149},"end":{"line":79,"column":224}},"type":"if","locations":[{"start":{"line":79,"column":149},"end":{"line":79,"column":224}},{"start":{"line":79,"column":149},"end":{"line":79,"column":224}}],"line":79},"14":{"loc":{"start":{"line":81,"column":46},"end":{"line":81,"column":92}},"type":"cond-expr","locations":[{"start":{"line":81,"column":70},"end":{"line":81,"column":73}},{"start":{"line":81,"column":76},"end":{"line":81,"column":92}}],"line":81},"15":{"loc":{"start":{"line":81,"column":46},"end":{"line":81,"column":67}},"type":"binary-expr","locations":[{"start":{"line":81,"column":46},"end":{"line":81,"column":49}},{"start":{"line":81,"column":53},"end":{"line":81,"column":67}}],"line":81}},"s":{"0":1,"1":1,"2":1,"3":1,"4":6,"5":1,"6":5,"7":1,"8":1,"9":1,"10":7,"11":0,"12":7,"13":0,"14":1,"15":1,"16":6,"17":0,"18":6,"19":5,"20":1,"21":1,"22":6,"23":0,"24":6,"25":0,"26":1,"27":1,"28":5,"29":0,"30":5,"31":2,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":2,"48":1,"49":1,"50":5,"51":5,"52":5},"f":{"0":6,"1":1,"2":7,"3":0,"4":6,"5":5,"6":6,"7":0,"8":5,"9":2,"10":1,"11":2,"12":5},"b":{"0":[1,5],"1":[6,5],"2":[0,7],"3":[7,7],"4":[0,6],"5":[6,6],"6":[0,6],"7":[6,6],"8":[0,5],"9":[5,5],"10":[1,0],"11":[1,1],"12":[0,0],"13":[0,0],"14":[1,1],"15":[2,2]},"inputSourceMap":{"version":3,"sources":["index.js"],"names":["init","hooks","debug","app","configure","services"],"mappings":";;;;;;;AACA;;AAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;kBAIwBA,I;;AAfxB;;;;;;AAEA;;IAAYC,K;;;;;;QAKHA,K,GAAAA,K;AAJT;AACA;AACA;;AAQA,MAAMC,QAAQ,qBAAU,UAAV,CAAd;;AAEe,SAASF,IAAT,GAAiB;AAC9B,QAAMG,MAAM,IAAZ;;AAEAD,QAAM,uBAAN;;AAEAC,MAAIC,SAAJ,CAAcC,kBAAd;AACD","file":"index.js","sourceRoot":"D:/Development/kalisio/kdk/core/api","sourcesContent":["import makeDebug from 'debug'\r\nimport services from './services'\r\nimport * as hooks from './hooks'\r\n// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code\r\n// Tracked here : https://github.com/babel/babel/issues/2877\r\n// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far\r\nexport * from './services'\r\nexport { hooks }\r\nexport * from './db'\r\nexport * from './application'\r\nexport * from './marshall'\r\nexport * from '../common'\r\n\r\nconst debug = makeDebug('kdk:core')\r\n\r\nexport default function init () {\r\n const app = this\r\n\r\n debug('Initializing KDK core')\r\n\r\n app.configure(services)\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"af8f853751e54b5cfe1a00e5c3700eb9e913d870","contentHash":"d84320ebcf3066e75654bfcf3f41ece243824ba09df2d8c79ca975e869cf1d3e"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\index.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\index.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":44}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":44}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":52}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":52}},"5":{"start":{"line":10,"column":0},"end":{"line":10,"column":62}},"6":{"start":{"line":12,"column":12},"end":{"line":12,"column":27}},"7":{"start":{"line":14,"column":13},"end":{"line":14,"column":42}},"8":{"start":{"line":16,"column":13},"end":{"line":16,"column":29}},"9":{"start":{"line":18,"column":14},"end":{"line":18,"column":44}},"10":{"start":{"line":20,"column":14},"end":{"line":20,"column":31}},"11":{"start":{"line":22,"column":15},"end":{"line":22,"column":46}},"12":{"start":{"line":24,"column":14},"end":{"line":24,"column":32}},"13":{"start":{"line":26,"column":15},"end":{"line":26,"column":46}},"14":{"start":{"line":28,"column":19},"end":{"line":28,"column":43}},"15":{"start":{"line":30,"column":20},"end":{"line":30,"column":56}},"16":{"start":{"line":32,"column":20},"end":{"line":32,"column":44}},"17":{"start":{"line":34,"column":21},"end":{"line":34,"column":58}},"18":{"start":{"line":36,"column":39},"end":{"line":36,"column":93}},"19":{"start":{"line":38,"column":33},"end":{"line":38,"column":456}},"20":{"start":{"line":38,"column":64},"end":{"line":38,"column":89}},"21":{"start":{"line":38,"column":91},"end":{"line":38,"column":453}},"22":{"start":{"line":38,"column":165},"end":{"line":38,"column":263}},"23":{"start":{"line":38,"column":182},"end":{"line":38,"column":195}},"24":{"start":{"line":38,"column":209},"end":{"line":38,"column":219}},"25":{"start":{"line":38,"column":239},"end":{"line":38,"column":253}},"26":{"start":{"line":38,"column":254},"end":{"line":38,"column":261}},"27":{"start":{"line":38,"column":264},"end":{"line":38,"column":426}},"28":{"start":{"line":38,"column":281},"end":{"line":38,"column":296}},"29":{"start":{"line":38,"column":306},"end":{"line":38,"column":424}},"30":{"start":{"line":38,"column":360},"end":{"line":38,"column":380}},"31":{"start":{"line":38,"column":401},"end":{"line":38,"column":420}},"32":{"start":{"line":38,"column":429},"end":{"line":38,"column":449}},"33":{"start":{"line":40,"column":18},"end":{"line":40,"column":56}},"34":{"start":{"line":41,"column":19},"end":{"line":41,"column":65}},"35":{"start":{"line":42,"column":21},"end":{"line":42,"column":69}},"36":{"start":{"line":44,"column":14},"end":{"line":44,"column":55}},"37":{"start":{"line":47,"column":14},"end":{"line":47,"column":18}},"38":{"start":{"line":49,"column":2},"end":{"line":52,"column":15}},"39":{"start":{"line":60,"column":2},"end":{"line":67,"column":4}},"40":{"start":{"line":61,"column":4},"end":{"line":61,"column":28}},"41":{"start":{"line":61,"column":18},"end":{"line":61,"column":28}},"42":{"start":{"line":62,"column":19},"end":{"line":62,"column":100}},"43":{"start":{"line":64,"column":4},"end":{"line":66,"column":28}},"44":{"start":{"line":64,"column":31},"end":{"line":64,"column":61}},"45":{"start":{"line":66,"column":9},"end":{"line":66,"column":28}},"46":{"start":{"line":71,"column":14},"end":{"line":71,"column":18}},"47":{"start":{"line":73,"column":18},"end":{"line":73,"column":49}},"48":{"start":{"line":74,"column":2},"end":{"line":93,"column":15}},"49":{"start":{"line":83,"column":20},"end":{"line":83,"column":82}},"50":{"start":{"line":84,"column":22},"end":{"line":84,"column":87}},"51":{"start":{"line":89,"column":8},"end":{"line":89,"column":37}},"52":{"start":{"line":90,"column":8},"end":{"line":90,"column":15}},"53":{"start":{"line":101,"column":14},"end":{"line":101,"column":18}},"54":{"start":{"line":104,"column":2},"end":{"line":104,"column":105}},"55":{"start":{"line":105,"column":22},"end":{"line":105,"column":113}},"56":{"start":{"line":108,"column":23},"end":{"line":108,"column":46}},"57":{"start":{"line":109,"column":32},"end":{"line":109,"column":64}},"58":{"start":{"line":111,"column":2},"end":{"line":115,"column":5}},"59":{"start":{"line":114,"column":4},"end":{"line":114,"column":87}},"60":{"start":{"line":114,"column":43},"end":{"line":114,"column":87}},"61":{"start":{"line":117,"column":2},"end":{"line":125,"column":5}},"62":{"start":{"line":119,"column":30},"end":{"line":119,"column":69}},"63":{"start":{"line":120,"column":4},"end":{"line":124,"column":5}},"64":{"start":{"line":122,"column":17},"end":{"line":122,"column":62}},"65":{"start":{"line":123,"column":6},"end":{"line":123,"column":63}},"66":{"start":{"line":126,"column":2},"end":{"line":131,"column":5}},"67":{"start":{"line":128,"column":30},"end":{"line":128,"column":69}},"68":{"start":{"line":129,"column":4},"end":{"line":129,"column":34}},"69":{"start":{"line":129,"column":27},"end":{"line":129,"column":34}},"70":{"start":{"line":130,"column":4},"end":{"line":130,"column":57}},"71":{"start":{"line":134,"column":0},"end":{"line":177,"column":3}},"72":{"start":{"line":135,"column":14},"end":{"line":135,"column":18}},"73":{"start":{"line":137,"column":21},"end":{"line":137,"column":46}},"74":{"start":{"line":138,"column":2},"end":{"line":146,"column":3}},"75":{"start":{"line":139,"column":4},"end":{"line":144,"column":7}},"76":{"start":{"line":145,"column":4},"end":{"line":145,"column":58}},"77":{"start":{"line":148,"column":22},"end":{"line":148,"column":40}},"78":{"start":{"line":149,"column":2},"end":{"line":159,"column":3}},"79":{"start":{"line":150,"column":19},"end":{"line":153,"column":6}},"80":{"start":{"line":154,"column":19},"end":{"line":154,"column":37}},"81":{"start":{"line":155,"column":4},"end":{"line":155,"column":70}},"82":{"start":{"line":156,"column":22},"end":{"line":156,"column":68}},"83":{"start":{"line":157,"column":24},"end":{"line":157,"column":84}},"84":{"start":{"line":158,"column":4},"end":{"line":158,"column":48}},"85":{"start":{"line":161,"column":20},"end":{"line":161,"column":44}},"86":{"start":{"line":162,"column":2},"end":{"line":164,"column":3}},"87":{"start":{"line":163,"column":4},"end":{"line":163,"column":40}},"88":{"start":{"line":166,"column":23},"end":{"line":166,"column":40}},"89":{"start":{"line":167,"column":2},"end":{"line":170,"column":3}},"90":{"start":{"line":168,"column":4},"end":{"line":168,"column":104}},"91":{"start":{"line":169,"column":4},"end":{"line":169,"column":51}},"92":{"start":{"line":172,"column":23},"end":{"line":172,"column":40}},"93":{"start":{"line":173,"column":2},"end":{"line":176,"column":3}},"94":{"start":{"line":174,"column":4},"end":{"line":174,"column":104}},"95":{"start":{"line":175,"column":4},"end":{"line":175,"column":51}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":31}},"loc":{"start":{"line":36,"column":37},"end":{"line":36,"column":95}},"line":36},"1":{"name":"_asyncToGenerator","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":26}},"loc":{"start":{"line":38,"column":31},"end":{"line":38,"column":458}},"line":38},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":40},"end":{"line":38,"column":41}},"loc":{"start":{"line":38,"column":52},"end":{"line":38,"column":455}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":38,"column":110},"end":{"line":38,"column":111}},"loc":{"start":{"line":38,"column":137},"end":{"line":38,"column":451}},"line":38},"4":{"name":"step","decl":{"start":{"line":38,"column":148},"end":{"line":38,"column":152}},"loc":{"start":{"line":38,"column":163},"end":{"line":38,"column":428}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":38,"column":341},"end":{"line":38,"column":342}},"loc":{"start":{"line":38,"column":358},"end":{"line":38,"column":382}},"line":38},"6":{"name":"(anonymous_6)","decl":{"start":{"line":38,"column":384},"end":{"line":38,"column":385}},"loc":{"start":{"line":38,"column":399},"end":{"line":38,"column":422}},"line":38},"7":{"name":"createTagService","decl":{"start":{"line":46,"column":9},"end":{"line":46,"column":25}},"loc":{"start":{"line":46,"column":40},"end":{"line":53,"column":1}},"line":46},"8":{"name":"removeTagService","decl":{"start":{"line":55,"column":9},"end":{"line":55,"column":25}},"loc":{"start":{"line":55,"column":35},"end":{"line":57,"column":1}},"line":55},"9":{"name":"proxyStorageId","decl":{"start":{"line":59,"column":9},"end":{"line":59,"column":23}},"loc":{"start":{"line":59,"column":33},"end":{"line":68,"column":1}},"line":59},"10":{"name":"(anonymous_10)","decl":{"start":{"line":60,"column":9},"end":{"line":60,"column":10}},"loc":{"start":{"line":60,"column":15},"end":{"line":67,"column":3}},"line":60},"11":{"name":"createStorageService","decl":{"start":{"line":70,"column":9},"end":{"line":70,"column":29}},"loc":{"start":{"line":70,"column":57},"end":{"line":94,"column":1}},"line":70},"12":{"name":"(anonymous_12)","decl":{"start":{"line":83,"column":12},"end":{"line":83,"column":13}},"loc":{"start":{"line":83,"column":20},"end":{"line":83,"column":82}},"line":83},"13":{"name":"(anonymous_13)","decl":{"start":{"line":84,"column":14},"end":{"line":84,"column":15}},"loc":{"start":{"line":84,"column":22},"end":{"line":84,"column":87}},"line":84},"14":{"name":"(anonymous_14)","decl":{"start":{"line":88,"column":26},"end":{"line":88,"column":27}},"loc":{"start":{"line":88,"column":46},"end":{"line":91,"column":7}},"line":88},"15":{"name":"removeStorageService","decl":{"start":{"line":96,"column":9},"end":{"line":96,"column":29}},"loc":{"start":{"line":96,"column":39},"end":{"line":98,"column":1}},"line":96},"16":{"name":"createOrganisationService","decl":{"start":{"line":100,"column":9},"end":{"line":100,"column":34}},"loc":{"start":{"line":100,"column":49},"end":{"line":132,"column":1}},"line":100},"17":{"name":"(anonymous_17)","decl":{"start":{"line":111,"column":29},"end":{"line":111,"column":30}},"loc":{"start":{"line":111,"column":37},"end":{"line":115,"column":3}},"line":111},"18":{"name":"(anonymous_18)","decl":{"start":{"line":117,"column":28},"end":{"line":117,"column":29}},"loc":{"start":{"line":117,"column":44},"end":{"line":125,"column":3}},"line":117},"19":{"name":"(anonymous_19)","decl":{"start":{"line":126,"column":28},"end":{"line":126,"column":29}},"loc":{"start":{"line":126,"column":44},"end":{"line":131,"column":3}},"line":126},"20":{"name":"(anonymous_20)","decl":{"start":{"line":134,"column":36},"end":{"line":134,"column":37}},"loc":{"start":{"line":134,"column":49},"end":{"line":177,"column":1}},"line":134}},"branchMap":{"0":{"loc":{"start":{"line":36,"column":46},"end":{"line":36,"column":92}},"type":"cond-expr","locations":[{"start":{"line":36,"column":70},"end":{"line":36,"column":73}},{"start":{"line":36,"column":76},"end":{"line":36,"column":92}}],"line":36},"1":{"loc":{"start":{"line":36,"column":46},"end":{"line":36,"column":67}},"type":"binary-expr","locations":[{"start":{"line":36,"column":46},"end":{"line":36,"column":49}},{"start":{"line":36,"column":53},"end":{"line":36,"column":67}}],"line":36},"2":{"loc":{"start":{"line":38,"column":264},"end":{"line":38,"column":426}},"type":"if","locations":[{"start":{"line":38,"column":264},"end":{"line":38,"column":426}},{"start":{"line":38,"column":264},"end":{"line":38,"column":426}}],"line":38},"3":{"loc":{"start":{"line":46,"column":26},"end":{"line":46,"column":38}},"type":"default-arg","locations":[{"start":{"line":46,"column":36},"end":{"line":46,"column":38}}],"line":46},"4":{"loc":{"start":{"line":61,"column":4},"end":{"line":61,"column":28}},"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":61,"column":28}},{"start":{"line":61,"column":4},"end":{"line":61,"column":28}}],"line":61},"5":{"loc":{"start":{"line":62,"column":20},"end":{"line":62,"column":93}},"type":"cond-expr","locations":[{"start":{"line":62,"column":50},"end":{"line":62,"column":72}},{"start":{"line":62,"column":75},"end":{"line":62,"column":93}}],"line":62},"6":{"loc":{"start":{"line":64,"column":4},"end":{"line":66,"column":28}},"type":"if","locations":[{"start":{"line":64,"column":4},"end":{"line":66,"column":28}},{"start":{"line":64,"column":4},"end":{"line":66,"column":28}}],"line":64},"7":{"loc":{"start":{"line":70,"column":43},"end":{"line":70,"column":55}},"type":"default-arg","locations":[{"start":{"line":70,"column":53},"end":{"line":70,"column":55}}],"line":70},"8":{"loc":{"start":{"line":83,"column":20},"end":{"line":83,"column":82}},"type":"cond-expr","locations":[{"start":{"line":83,"column":30},"end":{"line":83,"column":75}},{"start":{"line":83,"column":78},"end":{"line":83,"column":82}}],"line":83},"9":{"loc":{"start":{"line":84,"column":22},"end":{"line":84,"column":87}},"type":"cond-expr","locations":[{"start":{"line":84,"column":33},"end":{"line":84,"column":80}},{"start":{"line":84,"column":83},"end":{"line":84,"column":87}}],"line":84},"10":{"loc":{"start":{"line":100,"column":35},"end":{"line":100,"column":47}},"type":"default-arg","locations":[{"start":{"line":100,"column":45},"end":{"line":100,"column":47}}],"line":100},"11":{"loc":{"start":{"line":114,"column":4},"end":{"line":114,"column":87}},"type":"if","locations":[{"start":{"line":114,"column":4},"end":{"line":114,"column":87}},{"start":{"line":114,"column":4},"end":{"line":114,"column":87}}],"line":114},"12":{"loc":{"start":{"line":114,"column":8},"end":{"line":114,"column":41}},"type":"binary-expr","locations":[{"start":{"line":114,"column":8},"end":{"line":114,"column":26}},{"start":{"line":114,"column":30},"end":{"line":114,"column":41}}],"line":114},"13":{"loc":{"start":{"line":120,"column":4},"end":{"line":124,"column":5}},"type":"if","locations":[{"start":{"line":120,"column":4},"end":{"line":124,"column":5}},{"start":{"line":120,"column":4},"end":{"line":124,"column":5}}],"line":120},"14":{"loc":{"start":{"line":129,"column":4},"end":{"line":129,"column":34}},"type":"if","locations":[{"start":{"line":129,"column":4},"end":{"line":129,"column":34}},{"start":{"line":129,"column":4},"end":{"line":129,"column":34}}],"line":129},"15":{"loc":{"start":{"line":138,"column":2},"end":{"line":146,"column":3}},"type":"if","locations":[{"start":{"line":138,"column":2},"end":{"line":146,"column":3}},{"start":{"line":138,"column":2},"end":{"line":146,"column":3}}],"line":138},"16":{"loc":{"start":{"line":149,"column":2},"end":{"line":159,"column":3}},"type":"if","locations":[{"start":{"line":149,"column":2},"end":{"line":159,"column":3}},{"start":{"line":149,"column":2},"end":{"line":159,"column":3}}],"line":149},"17":{"loc":{"start":{"line":162,"column":2},"end":{"line":164,"column":3}},"type":"if","locations":[{"start":{"line":162,"column":2},"end":{"line":164,"column":3}},{"start":{"line":162,"column":2},"end":{"line":164,"column":3}}],"line":162},"18":{"loc":{"start":{"line":167,"column":2},"end":{"line":170,"column":3}},"type":"if","locations":[{"start":{"line":167,"column":2},"end":{"line":170,"column":3}},{"start":{"line":167,"column":2},"end":{"line":170,"column":3}}],"line":167},"19":{"loc":{"start":{"line":173,"column":2},"end":{"line":176,"column":3}},"type":"if","locations":[{"start":{"line":173,"column":2},"end":{"line":176,"column":3}},{"start":{"line":173,"column":2},"end":{"line":176,"column":3}}],"line":173}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":6,"19":1,"20":5,"21":5,"22":5,"23":5,"24":5,"25":0,"26":0,"27":5,"28":5,"29":0,"30":0,"31":0,"32":5,"33":1,"34":1,"35":1,"36":1,"37":4,"38":4,"39":8,"40":23,"41":15,"42":8,"43":8,"44":4,"45":4,"46":8,"47":8,"48":8,"49":4,"50":11,"51":1,"52":1,"53":5,"54":5,"55":5,"56":5,"57":5,"58":5,"59":42,"60":21,"61":5,"62":3,"63":3,"64":0,"65":0,"66":5,"67":3,"68":3,"69":3,"70":0,"71":1,"72":5,"73":5,"74":5,"75":5,"76":5,"77":5,"78":5,"79":5,"80":5,"81":5,"82":5,"83":5,"84":5,"85":5,"86":5,"87":5,"88":5,"89":5,"90":5,"91":5,"92":5,"93":5,"94":5,"95":5},"f":{"0":6,"1":1,"2":5,"3":5,"4":5,"5":0,"6":0,"7":4,"8":0,"9":8,"10":23,"11":8,"12":4,"13":11,"14":1,"15":0,"16":5,"17":42,"18":3,"19":3,"20":5},"b":{"0":[0,6],"1":[6,6],"2":[5,0],"3":[1],"4":[15,8],"5":[8,0],"6":[4,4],"7":[5],"8":[4,0],"9":[11,0],"10":[5],"11":[21,21],"12":[42,21],"13":[0,3],"14":[3,0],"15":[5,0],"16":[5,0],"17":[5,0],"18":[5,0],"19":[5,0]},"inputSourceMap":{"version":3,"sources":["index.js"],"names":["createTagService","removeTagService","createStorageService","removeStorageService","createOrganisationService","multipart","single","modelsPath","path","join","__dirname","servicesPath","debug","options","app","createService","Object","assign","proxyStorageId","context","id","prefix","_id","toString","startsWith","replace","blobService","proxyId","proxy","service","data","result","middlewares","before","req","res","next","feathers","file","events","orgsService","perspectives","usersService","getService","authorisationsService","on","user","organisations","groups","updateAbilities","organisation","orgMembersService","db","client","createOrganisationServices","removeOrganisationServices","authConfig","get","concat","authenticationProviders","storeConfig","aws","S3","accessKeyId","secretAccessKey","bucket","blobStore","Model","call","orgConfig","mailerConfig","pusherConfig"],"mappings":"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","file":"index.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services","sourcesContent":["import path from 'path'\r\nimport makeDebug from 'debug'\r\nimport multer from 'multer'\r\nimport aws from 'aws-sdk'\r\nimport store from 's3-blob-store'\r\nimport BlobService from 'feathers-blob'\r\nconst multipart = multer().single('file')\r\nconst modelsPath = path.join(__dirname, '..', 'models')\r\nconst servicesPath = path.join(__dirname, '..', 'services')\r\n\r\nconst debug = makeDebug('kdk:core:services')\r\n\r\nexport function createTagService (options = {}) {\r\n const app = this\r\n\r\n app.createService('tags', Object.assign({\r\n servicesPath,\r\n modelsPath\r\n }, options))\r\n}\r\n\r\nexport function removeTagService (options) {\r\n // TODO\r\n}\r\n\r\nfunction proxyStorageId (context) {\r\n return (id) => {\r\n if (!context) return id\r\n const prefix = (typeof context === 'object' ? context._id.toString() : context.toString()) + '/'\r\n // Check if context is already in ID, in this case we have to remove it on output\r\n if (id.startsWith(prefix)) return id.replace(prefix, '')\r\n // Otherwise we have to add it on input\r\n else return (prefix + id)\r\n }\r\n}\r\n\r\nexport function createStorageService (blobService, options = {}) {\r\n const app = this\r\n // Closure to keep track of context\r\n const proxyId = proxyStorageId(options.context)\r\n app.createService('storage', Object.assign({\r\n servicesPath,\r\n modelsPath,\r\n // Create a proxy on top of a Feathers blob service,\r\n // adding context as prefix on all keys on input\r\n // removing context as prefix on all keys as result\r\n proxy: {\r\n service: blobService,\r\n id: proxyId,\r\n data: (data) => (data.id ? Object.assign(data, { id: proxyId(data.id) }) : data),\r\n result: (data) => (data._id ? Object.assign(data, { _id: proxyId(data._id) }) : data)\r\n },\r\n // Add required middlewares to handle multipart form data\r\n middlewares: {\r\n before: [\r\n multipart,\r\n (req, res, next) => {\r\n req.feathers.file = req.file\r\n next()\r\n }\r\n ]\r\n }\r\n }, options))\r\n}\r\n\r\nexport function removeStorageService (options) {\r\n // TODO\r\n}\r\n\r\nexport function createOrganisationService (options = {}) {\r\n const app = this\r\n\r\n // Create services to manage MongoDB databases, organisations, etc.\r\n app.createService('databases', { servicesPath, events: ['created', 'updated', 'removed', 'patched'] }) // Internal use only, no events\r\n const orgsService = app.createService('organisations', { modelsPath, servicesPath, perspectives: ['billing'] })\r\n\r\n // Replication management\r\n const usersService = app.getService('users')\r\n const authorisationsService = app.getService('authorisations')\r\n // Ensure permissions are correctly distributed when replicated\r\n usersService.on('patched', user => {\r\n // Patching profile should not trigger abilities update since\r\n // it is a perspective and permissions are not available in this case\r\n if (user.organisations || user.groups) authorisationsService.updateAbilities(user)\r\n })\r\n // Ensure org services are correctly distributed when replicated\r\n orgsService.on('created', organisation => {\r\n // Check if already done (initiator)\r\n const orgMembersService = app.getService('members', organisation)\r\n if (!orgMembersService) {\r\n // Jump from infos/stats to real DB object\r\n const db = app.db.client.db(organisation._id.toString())\r\n orgsService.createOrganisationServices(organisation, db)\r\n }\r\n })\r\n orgsService.on('removed', organisation => {\r\n // Check if already done (initiator)\r\n const orgMembersService = app.getService('members', organisation)\r\n if (orgMembersService) return\r\n orgsService.removeOrganisationServices(organisation)\r\n })\r\n}\r\n\r\nexport default async function () {\r\n const app = this\r\n\r\n const authConfig = app.get('authentication')\r\n if (authConfig) {\r\n app.createService('users', {\r\n modelsPath,\r\n servicesPath,\r\n // Add required OAuth2 provider perspectives\r\n perspectives: ['profile'].concat(app.authenticationProviders)\r\n })\r\n app.createService('authorisations', { servicesPath })\r\n }\r\n\r\n const storeConfig = app.get('storage')\r\n if (storeConfig) {\r\n const client = new aws.S3({\r\n accessKeyId: storeConfig.accessKeyId,\r\n secretAccessKey: storeConfig.secretAccessKey\r\n })\r\n const bucket = storeConfig.bucket\r\n debug('S3 core storage client created with config ', storeConfig)\r\n const blobStore = store({ client, bucket })\r\n const blobService = BlobService({ Model: blobStore, id: '_id' })\r\n createStorageService.call(app, blobService)\r\n }\r\n\r\n const orgConfig = app.get('organisations')\r\n if (orgConfig) {\r\n createOrganisationService.call(app)\r\n }\r\n\r\n const mailerConfig = app.get('mailer')\r\n if (mailerConfig) {\r\n app.createService('mailer', { servicesPath, events: ['created', 'updated', 'removed', 'patched'] }) // Internal use only, no events\r\n app.createService('account', { servicesPath })\r\n }\r\n\r\n const pusherConfig = app.get('pusher')\r\n if (pusherConfig) {\r\n app.createService('pusher', { servicesPath, events: ['created', 'updated', 'removed', 'patched'] }) // Internal use only, no events\r\n app.createService('devices', { servicesPath })\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b81c36deef11f1980783481547592f658e629b65","contentHash":"63c36e3cbf42b61e7178d96fc409d4277cb06cf53bfbf87be3f1b916eefbb3ee"},"D:\\Development\\kalisio\\kdk\\core\\api\\db.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\db.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":53}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":32}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":32}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":40}},"5":{"start":{"line":10,"column":0},"end":{"line":10,"column":36}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":34}},"7":{"start":{"line":13,"column":14},"end":{"line":13,"column":31}},"8":{"start":{"line":15,"column":15},"end":{"line":15,"column":46}},"9":{"start":{"line":17,"column":14},"end":{"line":17,"column":31}},"10":{"start":{"line":19,"column":15},"end":{"line":19,"column":46}},"11":{"start":{"line":21,"column":13},"end":{"line":21,"column":29}},"12":{"start":{"line":23,"column":14},"end":{"line":23,"column":44}},"13":{"start":{"line":25,"column":15},"end":{"line":25,"column":33}},"14":{"start":{"line":27,"column":14},"end":{"line":27,"column":43}},"15":{"start":{"line":29,"column":15},"end":{"line":29,"column":46}},"16":{"start":{"line":31,"column":39},"end":{"line":31,"column":93}},"17":{"start":{"line":33,"column":33},"end":{"line":33,"column":456}},"18":{"start":{"line":33,"column":64},"end":{"line":33,"column":89}},"19":{"start":{"line":33,"column":91},"end":{"line":33,"column":453}},"20":{"start":{"line":33,"column":165},"end":{"line":33,"column":263}},"21":{"start":{"line":33,"column":182},"end":{"line":33,"column":195}},"22":{"start":{"line":33,"column":209},"end":{"line":33,"column":219}},"23":{"start":{"line":33,"column":239},"end":{"line":33,"column":253}},"24":{"start":{"line":33,"column":254},"end":{"line":33,"column":261}},"25":{"start":{"line":33,"column":264},"end":{"line":33,"column":426}},"26":{"start":{"line":33,"column":281},"end":{"line":33,"column":296}},"27":{"start":{"line":33,"column":306},"end":{"line":33,"column":424}},"28":{"start":{"line":33,"column":360},"end":{"line":33,"column":380}},"29":{"start":{"line":33,"column":401},"end":{"line":33,"column":420}},"30":{"start":{"line":33,"column":429},"end":{"line":33,"column":449}},"31":{"start":{"line":35,"column":14},"end":{"line":35,"column":49}},"32":{"start":{"line":38,"column":0},"end":{"line":40,"column":2}},"33":{"start":{"line":39,"column":2},"end":{"line":39,"column":23}},"34":{"start":{"line":43,"column":2},"end":{"line":43,"column":93}},"35":{"start":{"line":47,"column":2},"end":{"line":47,"column":106}},"36":{"start":{"line":52,"column":2},"end":{"line":52,"column":123}},"37":{"start":{"line":52,"column":22},"end":{"line":52,"column":32}},"38":{"start":{"line":52,"column":37},"end":{"line":52,"column":123}},"39":{"start":{"line":52,"column":73},"end":{"line":52,"column":85}},"40":{"start":{"line":52,"column":90},"end":{"line":52,"column":123}},"41":{"start":{"line":57,"column":2},"end":{"line":82,"column":5}},"42":{"start":{"line":60,"column":4},"end":{"line":81,"column":5}},"43":{"start":{"line":61,"column":6},"end":{"line":70,"column":86}},"44":{"start":{"line":62,"column":8},"end":{"line":62,"column":37}},"45":{"start":{"line":63,"column":19},"end":{"line":63,"column":40}},"46":{"start":{"line":64,"column":8},"end":{"line":66,"column":9}},"47":{"start":{"line":65,"column":10},"end":{"line":65,"column":27}},"48":{"start":{"line":67,"column":13},"end":{"line":70,"column":86}},"49":{"start":{"line":68,"column":8},"end":{"line":68,"column":43}},"50":{"start":{"line":69,"column":8},"end":{"line":69,"column":75}},"51":{"start":{"line":69,"column":38},"end":{"line":69,"column":56}},"52":{"start":{"line":69,"column":71},"end":{"line":69,"column":73}},"53":{"start":{"line":70,"column":13},"end":{"line":70,"column":86}},"54":{"start":{"line":70,"column":66},"end":{"line":70,"column":86}},"55":{"start":{"line":71,"column":11},"end":{"line":81,"column":5}},"56":{"start":{"line":72,"column":6},"end":{"line":72,"column":41}},"57":{"start":{"line":73,"column":18},"end":{"line":73,"column":70}},"58":{"start":{"line":73,"column":34},"end":{"line":73,"column":52}},"59":{"start":{"line":73,"column":67},"end":{"line":73,"column":69}},"60":{"start":{"line":75,"column":6},"end":{"line":75,"column":44}},"61":{"start":{"line":75,"column":26},"end":{"line":75,"column":44}},"62":{"start":{"line":76,"column":11},"end":{"line":81,"column":5}},"63":{"start":{"line":77,"column":6},"end":{"line":77,"column":50}},"64":{"start":{"line":77,"column":29},"end":{"line":77,"column":48}},"65":{"start":{"line":79,"column":11},"end":{"line":81,"column":5}},"66":{"start":{"line":80,"column":6},"end":{"line":80,"column":26}},"67":{"start":{"line":83,"column":2},"end":{"line":83,"column":16}},"68":{"start":{"line":88,"column":2},"end":{"line":93,"column":5}},"69":{"start":{"line":89,"column":15},"end":{"line":89,"column":69}},"70":{"start":{"line":90,"column":4},"end":{"line":92,"column":5}},"71":{"start":{"line":91,"column":6},"end":{"line":91,"column":49}},"72":{"start":{"line":98,"column":4},"end":{"line":103,"column":5}},"73":{"start":{"line":99,"column":6},"end":{"line":99,"column":21}},"74":{"start":{"line":100,"column":6},"end":{"line":100,"column":44}},"75":{"start":{"line":102,"column":6},"end":{"line":102,"column":107}},"76":{"start":{"line":104,"column":4},"end":{"line":104,"column":34}},"77":{"start":{"line":108,"column":4},"end":{"line":108,"column":25}},"78":{"start":{"line":112,"column":4},"end":{"line":115,"column":9}},"79":{"start":{"line":114,"column":6},"end":{"line":114,"column":18}},"80":{"start":{"line":121,"column":4},"end":{"line":121,"column":48}},"81":{"start":{"line":125,"column":4},"end":{"line":129,"column":5}},"82":{"start":{"line":128,"column":8},"end":{"line":128,"column":38}},"83":{"start":{"line":133,"column":0},"end":{"line":133,"column":28}},"84":{"start":{"line":136,"column":4},"end":{"line":136,"column":15}},"85":{"start":{"line":137,"column":4},"end":{"line":144,"column":5}},"86":{"start":{"line":139,"column":6},"end":{"line":139,"column":38}},"87":{"start":{"line":141,"column":6},"end":{"line":141,"column":58}},"88":{"start":{"line":143,"column":6},"end":{"line":143,"column":105}},"89":{"start":{"line":150,"column":26},"end":{"line":150,"column":50}},"90":{"start":{"line":151,"column":27},"end":{"line":151,"column":43}},"91":{"start":{"line":152,"column":4},"end":{"line":152,"column":128}},"92":{"start":{"line":152,"column":31},"end":{"line":152,"column":69}},"93":{"start":{"line":152,"column":74},"end":{"line":152,"column":128}},"94":{"start":{"line":154,"column":4},"end":{"line":154,"column":18}},"95":{"start":{"line":158,"column":16},"end":{"line":158,"column":20}},"96":{"start":{"line":160,"column":4},"end":{"line":184,"column":9}},"97":{"start":{"line":161,"column":6},"end":{"line":183,"column":7}},"98":{"start":{"line":163,"column":8},"end":{"line":163,"column":73}},"99":{"start":{"line":164,"column":8},"end":{"line":164,"column":77}},"100":{"start":{"line":165,"column":8},"end":{"line":165,"column":58}},"101":{"start":{"line":167,"column":8},"end":{"line":167,"column":28}},"102":{"start":{"line":168,"column":8},"end":{"line":168,"column":24}},"103":{"start":{"line":169,"column":8},"end":{"line":178,"column":9}},"104":{"start":{"line":170,"column":26},"end":{"line":170,"column":67}},"105":{"start":{"line":171,"column":10},"end":{"line":176,"column":11}},"106":{"start":{"line":171,"column":23},"end":{"line":171,"column":24}},"107":{"start":{"line":172,"column":27},"end":{"line":172,"column":37}},"108":{"start":{"line":173,"column":26},"end":{"line":173,"column":52}},"109":{"start":{"line":174,"column":12},"end":{"line":174,"column":79}},"110":{"start":{"line":175,"column":12},"end":{"line":175,"column":92}},"111":{"start":{"line":177,"column":10},"end":{"line":177,"column":88}},"112":{"start":{"line":177,"column":34},"end":{"line":177,"column":88}},"113":{"start":{"line":179,"column":8},"end":{"line":179,"column":25}},"114":{"start":{"line":181,"column":8},"end":{"line":181,"column":129}},"115":{"start":{"line":182,"column":8},"end":{"line":182,"column":20}},"116":{"start":{"line":188,"column":17},"end":{"line":188,"column":21}},"117":{"start":{"line":190,"column":4},"end":{"line":210,"column":9}},"118":{"start":{"line":191,"column":6},"end":{"line":209,"column":7}},"119":{"start":{"line":192,"column":8},"end":{"line":192,"column":37}},"120":{"start":{"line":193,"column":8},"end":{"line":193,"column":64}},"121":{"start":{"line":194,"column":8},"end":{"line":194,"column":30}},"122":{"start":{"line":195,"column":8},"end":{"line":195,"column":26}},"123":{"start":{"line":196,"column":8},"end":{"line":205,"column":9}},"124":{"start":{"line":197,"column":26},"end":{"line":197,"column":68}},"125":{"start":{"line":198,"column":26},"end":{"line":198,"column":66}},"126":{"start":{"line":199,"column":10},"end":{"line":201,"column":11}},"127":{"start":{"line":199,"column":23},"end":{"line":199,"column":24}},"128":{"start":{"line":200,"column":12},"end":{"line":200,"column":37}},"129":{"start":{"line":202,"column":10},"end":{"line":202,"column":31}},"130":{"start":{"line":203,"column":10},"end":{"line":203,"column":27}},"131":{"start":{"line":204,"column":10},"end":{"line":204,"column":94}},"132":{"start":{"line":204,"column":34},"end":{"line":204,"column":94}},"133":{"start":{"line":207,"column":8},"end":{"line":207,"column":103}},"134":{"start":{"line":208,"column":8},"end":{"line":208,"column":20}},"135":{"start":{"line":214,"column":4},"end":{"line":214,"column":24}},"136":{"start":{"line":218,"column":4},"end":{"line":218,"column":20}},"137":{"start":{"line":222,"column":4},"end":{"line":222,"column":49}},"138":{"start":{"line":226,"column":4},"end":{"line":229,"column":5}},"139":{"start":{"line":228,"column":6},"end":{"line":228,"column":68}},"140":{"start":{"line":230,"column":4},"end":{"line":230,"column":39}},"141":{"start":{"line":233,"column":0},"end":{"line":233,"column":38}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":31,"column":9},"end":{"line":31,"column":31}},"loc":{"start":{"line":31,"column":37},"end":{"line":31,"column":95}},"line":31},"1":{"name":"_asyncToGenerator","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":26}},"loc":{"start":{"line":33,"column":31},"end":{"line":33,"column":458}},"line":33},"2":{"name":"(anonymous_2)","decl":{"start":{"line":33,"column":40},"end":{"line":33,"column":41}},"loc":{"start":{"line":33,"column":52},"end":{"line":33,"column":455}},"line":33},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":110},"end":{"line":33,"column":111}},"loc":{"start":{"line":33,"column":137},"end":{"line":33,"column":451}},"line":33},"4":{"name":"step","decl":{"start":{"line":33,"column":148},"end":{"line":33,"column":152}},"loc":{"start":{"line":33,"column":163},"end":{"line":33,"column":428}},"line":33},"5":{"name":"(anonymous_5)","decl":{"start":{"line":33,"column":341},"end":{"line":33,"column":342}},"loc":{"start":{"line":33,"column":358},"end":{"line":33,"column":382}},"line":33},"6":{"name":"(anonymous_6)","decl":{"start":{"line":33,"column":384},"end":{"line":33,"column":385}},"loc":{"start":{"line":33,"column":399},"end":{"line":33,"column":422}},"line":33},"7":{"name":"(anonymous_7)","decl":{"start":{"line":38,"column":56},"end":{"line":38,"column":57}},"loc":{"start":{"line":38,"column":68},"end":{"line":40,"column":1}},"line":38},"8":{"name":"isObjectID","decl":{"start":{"line":42,"column":9},"end":{"line":42,"column":19}},"loc":{"start":{"line":42,"column":24},"end":{"line":44,"column":1}},"line":42},"9":{"name":"idToString","decl":{"start":{"line":46,"column":9},"end":{"line":46,"column":19}},"loc":{"start":{"line":46,"column":24},"end":{"line":48,"column":1}},"line":46},"10":{"name":"createObjectID","decl":{"start":{"line":50,"column":9},"end":{"line":50,"column":23}},"loc":{"start":{"line":50,"column":28},"end":{"line":53,"column":1}},"line":50},"11":{"name":"objectifyIDs","decl":{"start":{"line":56,"column":9},"end":{"line":56,"column":21}},"loc":{"start":{"line":56,"column":30},"end":{"line":84,"column":1}},"line":56},"12":{"name":"(anonymous_12)","decl":{"start":{"line":57,"column":34},"end":{"line":57,"column":35}},"loc":{"start":{"line":57,"column":50},"end":{"line":82,"column":3}},"line":57},"13":{"name":"(anonymous_13)","decl":{"start":{"line":69,"column":32},"end":{"line":69,"column":33}},"loc":{"start":{"line":69,"column":38},"end":{"line":69,"column":56}},"line":69},"14":{"name":"(anonymous_14)","decl":{"start":{"line":69,"column":65},"end":{"line":69,"column":66}},"loc":{"start":{"line":69,"column":71},"end":{"line":69,"column":73}},"line":69},"15":{"name":"(anonymous_15)","decl":{"start":{"line":73,"column":28},"end":{"line":73,"column":29}},"loc":{"start":{"line":73,"column":34},"end":{"line":73,"column":52}},"line":73},"16":{"name":"(anonymous_16)","decl":{"start":{"line":73,"column":61},"end":{"line":73,"column":62}},"loc":{"start":{"line":73,"column":67},"end":{"line":73,"column":69}},"line":73},"17":{"name":"(anonymous_17)","decl":{"start":{"line":77,"column":20},"end":{"line":77,"column":21}},"loc":{"start":{"line":77,"column":29},"end":{"line":77,"column":48}},"line":77},"18":{"name":"toObjectIDs","decl":{"start":{"line":87,"column":9},"end":{"line":87,"column":20}},"loc":{"start":{"line":87,"column":41},"end":{"line":94,"column":1}},"line":87},"19":{"name":"(anonymous_19)","decl":{"start":{"line":88,"column":21},"end":{"line":88,"column":22}},"loc":{"start":{"line":88,"column":33},"end":{"line":93,"column":3}},"line":88},"20":{"name":"(anonymous_20)","decl":{"start":{"line":97,"column":2},"end":{"line":97,"column":3}},"loc":{"start":{"line":97,"column":19},"end":{"line":105,"column":3}},"line":97},"21":{"name":"(anonymous_21)","decl":{"start":{"line":107,"column":2},"end":{"line":107,"column":3}},"loc":{"start":{"line":107,"column":16},"end":{"line":109,"column":3}},"line":107},"22":{"name":"(anonymous_22)","decl":{"start":{"line":111,"column":2},"end":{"line":111,"column":3}},"loc":{"start":{"line":111,"column":12},"end":{"line":116,"column":3}},"line":111},"23":{"name":"(anonymous_23)","decl":{"start":{"line":112,"column":29},"end":{"line":112,"column":30}},"loc":{"start":{"line":112,"column":42},"end":{"line":115,"column":5}},"line":112},"24":{"name":"(anonymous_24)","decl":{"start":{"line":118,"column":2},"end":{"line":118,"column":3}},"loc":{"start":{"line":118,"column":15},"end":{"line":122,"column":3}},"line":118},"25":{"name":"(anonymous_25)","decl":{"start":{"line":121,"column":29},"end":{"line":121,"column":30}},"loc":{"start":{"line":121,"column":42},"end":{"line":121,"column":44}},"line":121},"26":{"name":"(anonymous_26)","decl":{"start":{"line":124,"column":2},"end":{"line":124,"column":3}},"loc":{"start":{"line":124,"column":21},"end":{"line":130,"column":3}},"line":124},"27":{"name":"(anonymous_27)","decl":{"start":{"line":135,"column":2},"end":{"line":135,"column":3}},"loc":{"start":{"line":135,"column":19},"end":{"line":145,"column":3}},"line":135},"28":{"name":"(anonymous_28)","decl":{"start":{"line":147,"column":2},"end":{"line":147,"column":3}},"loc":{"start":{"line":147,"column":20},"end":{"line":155,"column":3}},"line":147},"29":{"name":"(anonymous_29)","decl":{"start":{"line":157,"column":2},"end":{"line":157,"column":3}},"loc":{"start":{"line":157,"column":12},"end":{"line":185,"column":3}},"line":157},"30":{"name":"(anonymous_30)","decl":{"start":{"line":160,"column":29},"end":{"line":160,"column":30}},"loc":{"start":{"line":160,"column":42},"end":{"line":184,"column":5}},"line":160},"31":{"name":"(anonymous_31)","decl":{"start":{"line":187,"column":2},"end":{"line":187,"column":3}},"loc":{"start":{"line":187,"column":15},"end":{"line":211,"column":3}},"line":187},"32":{"name":"(anonymous_32)","decl":{"start":{"line":190,"column":29},"end":{"line":190,"column":30}},"loc":{"start":{"line":190,"column":42},"end":{"line":210,"column":5}},"line":190},"33":{"name":"(anonymous_33)","decl":{"start":{"line":213,"column":2},"end":{"line":213,"column":3}},"loc":{"start":{"line":213,"column":15},"end":{"line":215,"column":3}},"line":213},"34":{"name":"(anonymous_34)","decl":{"start":{"line":217,"column":2},"end":{"line":217,"column":3}},"loc":{"start":{"line":217,"column":17},"end":{"line":219,"column":3}},"line":217},"35":{"name":"(anonymous_35)","decl":{"start":{"line":221,"column":2},"end":{"line":221,"column":3}},"loc":{"start":{"line":221,"column":13},"end":{"line":223,"column":3}},"line":221},"36":{"name":"(anonymous_36)","decl":{"start":{"line":225,"column":2},"end":{"line":225,"column":3}},"loc":{"start":{"line":225,"column":27},"end":{"line":231,"column":3}},"line":225}},"branchMap":{"0":{"loc":{"start":{"line":31,"column":46},"end":{"line":31,"column":92}},"type":"cond-expr","locations":[{"start":{"line":31,"column":70},"end":{"line":31,"column":73}},{"start":{"line":31,"column":76},"end":{"line":31,"column":92}}],"line":31},"1":{"loc":{"start":{"line":31,"column":46},"end":{"line":31,"column":67}},"type":"binary-expr","locations":[{"start":{"line":31,"column":46},"end":{"line":31,"column":49}},{"start":{"line":31,"column":53},"end":{"line":31,"column":67}}],"line":31},"2":{"loc":{"start":{"line":33,"column":264},"end":{"line":33,"column":426}},"type":"if","locations":[{"start":{"line":33,"column":264},"end":{"line":33,"column":426}},{"start":{"line":33,"column":264},"end":{"line":33,"column":426}}],"line":33},"3":{"loc":{"start":{"line":43,"column":9},"end":{"line":43,"column":92}},"type":"binary-expr","locations":[{"start":{"line":43,"column":9},"end":{"line":43,"column":11}},{"start":{"line":43,"column":15},"end":{"line":43,"column":51}},{"start":{"line":43,"column":55},"end":{"line":43,"column":92}}],"line":43},"4":{"loc":{"start":{"line":47,"column":9},"end":{"line":47,"column":105}},"type":"cond-expr","locations":[{"start":{"line":47,"column":34},"end":{"line":47,"column":100}},{"start":{"line":47,"column":103},"end":{"line":47,"column":105}}],"line":47},"5":{"loc":{"start":{"line":47,"column":34},"end":{"line":47,"column":100}},"type":"cond-expr","locations":[{"start":{"line":47,"column":66},"end":{"line":47,"column":79}},{"start":{"line":47,"column":82},"end":{"line":47,"column":100}}],"line":47},"6":{"loc":{"start":{"line":52,"column":2},"end":{"line":52,"column":123}},"type":"if","locations":[{"start":{"line":52,"column":2},"end":{"line":52,"column":123}},{"start":{"line":52,"column":2},"end":{"line":52,"column":123}}],"line":52},"7":{"loc":{"start":{"line":52,"column":37},"end":{"line":52,"column":123}},"type":"if","locations":[{"start":{"line":52,"column":37},"end":{"line":52,"column":123}},{"start":{"line":52,"column":37},"end":{"line":52,"column":123}}],"line":52},"8":{"loc":{"start":{"line":60,"column":4},"end":{"line":81,"column":5}},"type":"if","locations":[{"start":{"line":60,"column":4},"end":{"line":81,"column":5}},{"start":{"line":60,"column":4},"end":{"line":81,"column":5}}],"line":60},"9":{"loc":{"start":{"line":60,"column":8},"end":{"line":60,"column":62}},"type":"binary-expr","locations":[{"start":{"line":60,"column":8},"end":{"line":60,"column":21}},{"start":{"line":60,"column":25},"end":{"line":60,"column":45}},{"start":{"line":60,"column":49},"end":{"line":60,"column":62}}],"line":60},"10":{"loc":{"start":{"line":61,"column":6},"end":{"line":70,"column":86}},"type":"if","locations":[{"start":{"line":61,"column":6},"end":{"line":70,"column":86}},{"start":{"line":61,"column":6},"end":{"line":70,"column":86}}],"line":61},"11":{"loc":{"start":{"line":64,"column":8},"end":{"line":66,"column":9}},"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":66,"column":9}},{"start":{"line":64,"column":8},"end":{"line":66,"column":9}}],"line":64},"12":{"loc":{"start":{"line":67,"column":13},"end":{"line":70,"column":86}},"type":"if","locations":[{"start":{"line":67,"column":13},"end":{"line":70,"column":86}},{"start":{"line":67,"column":13},"end":{"line":70,"column":86}}],"line":67},"13":{"loc":{"start":{"line":70,"column":13},"end":{"line":70,"column":86}},"type":"if","locations":[{"start":{"line":70,"column":13},"end":{"line":70,"column":86}},{"start":{"line":70,"column":13},"end":{"line":70,"column":86}}],"line":70},"14":{"loc":{"start":{"line":70,"column":17},"end":{"line":70,"column":64}},"type":"binary-expr","locations":[{"start":{"line":70,"column":17},"end":{"line":70,"column":42}},{"start":{"line":70,"column":46},"end":{"line":70,"column":64}}],"line":70},"15":{"loc":{"start":{"line":71,"column":11},"end":{"line":81,"column":5}},"type":"if","locations":[{"start":{"line":71,"column":11},"end":{"line":81,"column":5}},{"start":{"line":71,"column":11},"end":{"line":81,"column":5}}],"line":71},"16":{"loc":{"start":{"line":75,"column":6},"end":{"line":75,"column":44}},"type":"if","locations":[{"start":{"line":75,"column":6},"end":{"line":75,"column":44}},{"start":{"line":75,"column":6},"end":{"line":75,"column":44}}],"line":75},"17":{"loc":{"start":{"line":76,"column":11},"end":{"line":81,"column":5}},"type":"if","locations":[{"start":{"line":76,"column":11},"end":{"line":81,"column":5}},{"start":{"line":76,"column":11},"end":{"line":81,"column":5}}],"line":76},"18":{"loc":{"start":{"line":79,"column":11},"end":{"line":81,"column":5}},"type":"if","locations":[{"start":{"line":79,"column":11},"end":{"line":81,"column":5}},{"start":{"line":79,"column":11},"end":{"line":81,"column":5}}],"line":79},"19":{"loc":{"start":{"line":79,"column":15},"end":{"line":79,"column":62}},"type":"binary-expr","locations":[{"start":{"line":79,"column":15},"end":{"line":79,"column":40}},{"start":{"line":79,"column":44},"end":{"line":79,"column":62}}],"line":79},"20":{"loc":{"start":{"line":90,"column":4},"end":{"line":92,"column":5}},"type":"if","locations":[{"start":{"line":90,"column":4},"end":{"line":92,"column":5}},{"start":{"line":90,"column":4},"end":{"line":92,"column":5}}],"line":90},"21":{"loc":{"start":{"line":125,"column":4},"end":{"line":129,"column":5}},"type":"switch","locations":[{"start":{"line":126,"column":6},"end":{"line":126,"column":21}},{"start":{"line":127,"column":6},"end":{"line":128,"column":38}}],"line":125},"22":{"loc":{"start":{"line":141,"column":26},"end":{"line":141,"column":57}},"type":"binary-expr","locations":[{"start":{"line":141,"column":26},"end":{"line":141,"column":51}},{"start":{"line":141,"column":55},"end":{"line":141,"column":57}}],"line":141},"23":{"loc":{"start":{"line":152,"column":4},"end":{"line":152,"column":128}},"type":"if","locations":[{"start":{"line":152,"column":4},"end":{"line":152,"column":128}},{"start":{"line":152,"column":4},"end":{"line":152,"column":128}}],"line":152},"24":{"loc":{"start":{"line":169,"column":8},"end":{"line":178,"column":9}},"type":"if","locations":[{"start":{"line":169,"column":8},"end":{"line":178,"column":9}},{"start":{"line":169,"column":8},"end":{"line":178,"column":9}}],"line":169},"25":{"loc":{"start":{"line":177,"column":10},"end":{"line":177,"column":88}},"type":"if","locations":[{"start":{"line":177,"column":10},"end":{"line":177,"column":88}},{"start":{"line":177,"column":10},"end":{"line":177,"column":88}}],"line":177},"26":{"loc":{"start":{"line":196,"column":8},"end":{"line":205,"column":9}},"type":"if","locations":[{"start":{"line":196,"column":8},"end":{"line":205,"column":9}},{"start":{"line":196,"column":8},"end":{"line":205,"column":9}}],"line":196},"27":{"loc":{"start":{"line":204,"column":10},"end":{"line":204,"column":94}},"type":"if","locations":[{"start":{"line":204,"column":10},"end":{"line":204,"column":94}},{"start":{"line":204,"column":10},"end":{"line":204,"column":94}}],"line":204},"28":{"loc":{"start":{"line":222,"column":11},"end":{"line":222,"column":48}},"type":"cond-expr","locations":[{"start":{"line":222,"column":20},"end":{"line":222,"column":37}},{"start":{"line":222,"column":40},"end":{"line":222,"column":48}}],"line":222},"29":{"loc":{"start":{"line":226,"column":4},"end":{"line":229,"column":5}},"type":"if","locations":[{"start":{"line":226,"column":4},"end":{"line":229,"column":5}},{"start":{"line":226,"column":4},"end":{"line":229,"column":5}}],"line":226}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":4,"17":10,"18":10,"19":10,"20":25,"21":25,"22":25,"23":0,"24":0,"25":25,"26":10,"27":15,"28":15,"29":0,"30":10,"31":1,"32":1,"33":0,"34":149,"35":24,"36":20,"37":0,"38":20,"39":0,"40":20,"41":374,"42":371,"43":63,"44":17,"45":17,"46":17,"47":17,"48":46,"49":0,"50":0,"51":0,"52":0,"53":46,"54":1,"55":308,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":307,"63":12,"64":17,"65":295,"66":80,"67":374,"68":2,"69":2,"70":2,"71":2,"72":5,"73":5,"74":5,"75":0,"76":5,"77":93,"78":0,"79":0,"80":0,"81":5,"82":5,"83":1,"84":5,"85":5,"86":5,"87":5,"88":0,"89":5,"90":5,"91":5,"92":5,"93":0,"94":5,"95":5,"96":5,"97":5,"98":5,"99":5,"100":5,"101":5,"102":5,"103":5,"104":5,"105":5,"106":5,"107":0,"108":0,"109":0,"110":0,"111":5,"112":0,"113":5,"114":0,"115":0,"116":5,"117":5,"118":5,"119":5,"120":5,"121":5,"122":5,"123":5,"124":5,"125":5,"126":5,"127":5,"128":0,"129":5,"130":5,"131":5,"132":0,"133":0,"134":0,"135":8,"136":10,"137":11,"138":11,"139":11,"140":11,"141":1},"f":{"0":4,"1":10,"2":10,"3":10,"4":25,"5":15,"6":0,"7":0,"8":149,"9":24,"10":20,"11":374,"12":371,"13":0,"14":0,"15":1,"16":1,"17":17,"18":2,"19":2,"20":5,"21":93,"22":0,"23":0,"24":0,"25":0,"26":5,"27":5,"28":5,"29":5,"30":5,"31":5,"32":5,"33":8,"34":10,"35":11,"36":11},"b":{"0":[0,4],"1":[4,4],"2":[10,15],"3":[149,149,48],"4":[24,0],"5":[12,12],"6":[0,20],"7":[0,20],"8":[63,308],"9":[371,325,308],"10":[17,46],"11":[17,0],"12":[0,46],"13":[1,45],"14":[46,46],"15":[1,307],"16":[1,0],"17":[12,295],"18":[80,215],"19":[295,83],"20":[2,0],"21":[0,5],"22":[5,5],"23":[5,0],"24":[5,0],"25":[0,5],"26":[5,0],"27":[0,5],"28":[0,11],"29":[11,0]},"inputSourceMap":{"version":3,"sources":["db.js"],"names":["isObjectID","idToString","createObjectID","objectifyIDs","toObjectIDs","debug","Object","getPrototypeOf","toBSON","toDate","id","toHexString","getTimestamp","ObjectID","isValid","toString","_id","object","_","forOwn","value","key","endsWith","Array","isArray","map","filter","includes","ids","length","forEach","entry","properties","property","get","set","Database","constructor","app","_adapter","adapter","error","errors","GeneralError","_collections","Map","connect","disconnect","create","MongoDatabase","_dbUrl","url","_secondaries","secondaries","connectionDb","dbName","indexOfDBName","lastIndexOf","indexOfOptions","indexOf","substring","_client","MongoClient","_db","db","_clients","_dbs","dbNames","keys","i","dbUrl","logger","close","clients","values","client","instance","collection","name","has"],"mappings":"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","file":"db.js","sourceRoot":"D:/Development/kalisio/kdk/core/api","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment'\r\nimport makeDebug from 'debug'\r\nimport { MongoClient, ObjectID } from 'mongodb'\r\nimport errors from '@feathersjs/errors'\r\n\r\nconst debug = makeDebug('kdk:core:db')\r\n\r\n// This ensure moment objects are correctly serialized in MongoDB\r\nObject.getPrototypeOf(moment()).toBSON = function () {\r\n return this.toDate()\r\n}\r\n\r\nexport function isObjectID (id) {\r\n return id && (typeof id.toHexString === 'function') && (typeof id.getTimestamp === 'function')\r\n}\r\n\r\nexport function idToString (id) {\r\n return (typeof id === 'object'\r\n ? (ObjectID.isValid(id)\r\n ? id.toString()\r\n : idToString(id._id))\r\n : id)\r\n}\r\n\r\nexport function createObjectID (id) {\r\n // This ensure it works even if id is already an ObjectID\r\n if (isObjectID(id)) return id\r\n else if (!ObjectID.isValid(id)) return null\r\n else return new ObjectID(id)\r\n}\r\n\r\n// Utility function used to convert from string to MongoDB IDs as required eg by queries\r\nexport function objectifyIDs (object) {\r\n _.forOwn(object, (value, key) => {\r\n // Process current attributes or recurse\r\n // Take care to nested fields like 'field._id'\r\n if (key === '_id' || key.endsWith('._id') || key === '$ne') {\r\n if (typeof value === 'string') {\r\n debug('Objectify ID ' + key)\r\n const id = createObjectID(value)\r\n if (id) {\r\n object[key] = id\r\n }\r\n } else if (Array.isArray(value)) {\r\n debug('Objectify ID array ' + key)\r\n object[key] = value.map(id => createObjectID(id)).filter(id => id)\r\n } else if ((typeof value === 'object') && !isObjectID(value)) objectifyIDs(value) // Avoid jumping inside an already transformed ObjectID\r\n } else if (['$in', '$nin'].includes(key)) {\r\n debug('Objectify ID array ' + key)\r\n const ids = value.map(id => createObjectID(id)).filter(id => id)\r\n // Take care that $in/$nin can be used for others types than Object IDs so conversion might fail\r\n if (ids.length > 0) object[key] = ids\r\n } else if (key === '$or') {\r\n value.forEach(entry => objectifyIDs(entry))\r\n // Avoid jumping inside an already transformed ObjectID\r\n } else if ((typeof value === 'object') && !isObjectID(value)) {\r\n objectifyIDs(value)\r\n }\r\n })\r\n return object\r\n}\r\n\r\n// Utility function used to convert from string to MongoDB IDs a fixed set of properties on a given object\r\nexport function toObjectIDs (object, properties) {\r\n properties.forEach(property => {\r\n const id = createObjectID(_.get(object, property))\r\n if (id) {\r\n _.set(object, property, id)\r\n }\r\n })\r\n}\r\n\r\nexport class Database {\r\n constructor (app) {\r\n try {\r\n this.app = app\r\n this._adapter = app.get('db').adapter\r\n } catch (error) {\r\n throw new errors.GeneralError('Cannot find database adapter configuration in application')\r\n }\r\n this._collections = new Map()\r\n }\r\n\r\n get adapter () {\r\n return this._adapter\r\n }\r\n\r\n async connect () {\r\n // Default implementation\r\n return null\r\n }\r\n\r\n async disconnect () {\r\n // Default implementation\r\n }\r\n\r\n static create (app) {\r\n switch (this.adapter) {\r\n case 'mongodb':\r\n default:\r\n return new MongoDatabase(app)\r\n }\r\n }\r\n}\r\n\r\nexport class MongoDatabase extends Database {\r\n constructor (app) {\r\n super(app)\r\n try {\r\n // Primary DB\r\n this._dbUrl = app.get('db').url\r\n // Secondaries if any\r\n this._secondaries = app.get('db').secondaries || {}\r\n } catch (error) {\r\n throw new errors.GeneralError('Cannot find database connection settings in application')\r\n }\r\n }\r\n\r\n connectionDb (url) {\r\n // Extract database name from url. Need to remove the connections options if any\r\n let dbName\r\n const indexOfDBName = url.lastIndexOf('/') + 1\r\n const indexOfOptions = url.indexOf('?')\r\n if (indexOfOptions === -1) dbName = url.substring(indexOfDBName)\r\n else dbName = url.substring(indexOfDBName, indexOfOptions)\r\n\r\n return dbName\r\n }\r\n\r\n async connect () {\r\n try {\r\n // Connect to primary\r\n this._client = await MongoClient.connect(this._dbUrl)\r\n this._db = await this._client.db(this.connectionDb(this._dbUrl))\r\n debug('Connected to primary DB ' + this.adapter)\r\n // Then secondaries if any\r\n this._clients = {}\r\n this._dbs = {}\r\n if (this._secondaries) {\r\n const dbNames = _.keys(this._secondaries)\r\n for (let i = 0; i < dbNames.length; i++) {\r\n const dbName = dbNames[i]\r\n const dbUrl = this._secondaries[dbName]\r\n this._clients[dbName] = await MongoClient.connect(dbUrl)\r\n this._dbs[dbName] = await this._clients[dbName].db(this.connectionDb(dbUrl))\r\n }\r\n if (dbNames.length > 0) debug('Connected to secondaries DB ' + this.adapter)\r\n }\r\n return this._db\r\n } catch (error) {\r\n this.app.logger.error('Could not connect to ' + this.adapter + ' database(s), please check your configuration', error)\r\n throw error\r\n }\r\n }\r\n\r\n async disconnect () {\r\n try {\r\n await this._client.close()\r\n debug('Disconnected from primary DB ' + this.adapter)\r\n this._client = null\r\n this._db = null\r\n if (this._secondaries) {\r\n const dbNames = _.keys(this._secondaries)\r\n const clients = _.values(this._clients)\r\n for (let i = 0; i < clients.length; i++) {\r\n await clients[i].close()\r\n }\r\n this._clients = {}\r\n this._dbs = {}\r\n if (dbNames.length > 0) debug('Disconnected from secondaries DB ' + this.adapter)\r\n }\r\n } catch (error) {\r\n this.app.logger.error('Could not disconnect from ' + this.adapter + ' database(s)', error)\r\n throw error\r\n }\r\n }\r\n\r\n get client () {\r\n return this._client\r\n }\r\n\r\n get instance () {\r\n return this._db\r\n }\r\n\r\n db (dbName) {\r\n return (dbName ? this._dbs[dbName] : this._db)\r\n }\r\n\r\n collection (name, dbName) {\r\n if (!this._collections.has(name)) {\r\n // Get collection from secondary or primary DB\r\n this._collections.set(name, this.db(dbName).collection(name))\r\n }\r\n return this._collections.get(name)\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9eb8f638478c4012d9fbc69c18a16688042877e9","contentHash":"8b184c54121ef187c9d755b76d1b250be954b89e9cbe9402b45b0c2a6a726821"},"D:\\Development\\kalisio\\kdk\\core\\api\\application.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\application.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":40}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":44}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":48}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":38}},"5":{"start":{"line":10,"column":0},"end":{"line":10,"column":38}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":26}},"7":{"start":{"line":13,"column":12},"end":{"line":13,"column":27}},"8":{"start":{"line":15,"column":13},"end":{"line":15,"column":42}},"9":{"start":{"line":17,"column":11},"end":{"line":17,"column":25}},"10":{"start":{"line":19,"column":12},"end":{"line":19,"column":40}},"11":{"start":{"line":21,"column":13},"end":{"line":21,"column":29}},"12":{"start":{"line":23,"column":14},"end":{"line":23,"column":44}},"13":{"start":{"line":25,"column":15},"end":{"line":25,"column":33}},"14":{"start":{"line":27,"column":16},"end":{"line":27,"column":48}},"15":{"start":{"line":29,"column":14},"end":{"line":29,"column":31}},"16":{"start":{"line":31,"column":15},"end":{"line":31,"column":46}},"17":{"start":{"line":33,"column":12},"end":{"line":33,"column":27}},"18":{"start":{"line":35,"column":13},"end":{"line":35,"column":42}},"19":{"start":{"line":37,"column":0},"end":{"line":37,"column":37}},"20":{"start":{"line":39,"column":19},"end":{"line":39,"column":41}},"21":{"start":{"line":41,"column":20},"end":{"line":41,"column":56}},"22":{"start":{"line":43,"column":12},"end":{"line":43,"column":27}},"23":{"start":{"line":45,"column":13},"end":{"line":45,"column":42}},"24":{"start":{"line":47,"column":14},"end":{"line":47,"column":31}},"25":{"start":{"line":49,"column":15},"end":{"line":49,"column":46}},"26":{"start":{"line":51,"column":18},"end":{"line":51,"column":40}},"27":{"start":{"line":53,"column":19},"end":{"line":53,"column":54}},"28":{"start":{"line":55,"column":15},"end":{"line":55,"column":33}},"29":{"start":{"line":57,"column":24},"end":{"line":57,"column":53}},"30":{"start":{"line":59,"column":25},"end":{"line":59,"column":66}},"31":{"start":{"line":61,"column":16},"end":{"line":61,"column":47}},"32":{"start":{"line":63,"column":17},"end":{"line":63,"column":50}},"33":{"start":{"line":65,"column":21},"end":{"line":65,"column":57}},"34":{"start":{"line":67,"column":22},"end":{"line":67,"column":60}},"35":{"start":{"line":69,"column":14},"end":{"line":69,"column":43}},"36":{"start":{"line":71,"column":15},"end":{"line":71,"column":45}},"37":{"start":{"line":73,"column":16},"end":{"line":73,"column":48}},"38":{"start":{"line":75,"column":12},"end":{"line":75,"column":47}},"39":{"start":{"line":77,"column":13},"end":{"line":77,"column":42}},"40":{"start":{"line":79,"column":16},"end":{"line":79,"column":47}},"41":{"start":{"line":81,"column":17},"end":{"line":81,"column":50}},"42":{"start":{"line":83,"column":15},"end":{"line":83,"column":33}},"43":{"start":{"line":85,"column":10},"end":{"line":85,"column":25}},"44":{"start":{"line":87,"column":22},"end":{"line":87,"column":49}},"45":{"start":{"line":89,"column":23},"end":{"line":89,"column":62}},"46":{"start":{"line":91,"column":39},"end":{"line":91,"column":93}},"47":{"start":{"line":93,"column":33},"end":{"line":93,"column":456}},"48":{"start":{"line":93,"column":64},"end":{"line":93,"column":89}},"49":{"start":{"line":93,"column":91},"end":{"line":93,"column":453}},"50":{"start":{"line":93,"column":165},"end":{"line":93,"column":263}},"51":{"start":{"line":93,"column":182},"end":{"line":93,"column":195}},"52":{"start":{"line":93,"column":209},"end":{"line":93,"column":219}},"53":{"start":{"line":93,"column":239},"end":{"line":93,"column":253}},"54":{"start":{"line":93,"column":254},"end":{"line":93,"column":261}},"55":{"start":{"line":93,"column":264},"end":{"line":93,"column":426}},"56":{"start":{"line":93,"column":281},"end":{"line":93,"column":296}},"57":{"start":{"line":93,"column":306},"end":{"line":93,"column":424}},"58":{"start":{"line":93,"column":360},"end":{"line":93,"column":380}},"59":{"start":{"line":93,"column":401},"end":{"line":93,"column":420}},"60":{"start":{"line":93,"column":429},"end":{"line":93,"column":449}},"61":{"start":{"line":95,"column":14},"end":{"line":95,"column":58}},"62":{"start":{"line":96,"column":21},"end":{"line":96,"column":73}},"63":{"start":{"line":99,"column":2},"end":{"line":99,"column":17}},"64":{"start":{"line":100,"column":16},"end":{"line":100,"column":78}},"65":{"start":{"line":101,"column":2},"end":{"line":101,"column":35}},"66":{"start":{"line":103,"column":2},"end":{"line":103,"column":50}},"67":{"start":{"line":103,"column":19},"end":{"line":103,"column":42}},"68":{"start":{"line":107,"column":23},"end":{"line":107,"column":54}},"69":{"start":{"line":108,"column":26},"end":{"line":108,"column":51}},"70":{"start":{"line":110,"column":2},"end":{"line":112,"column":3}},"71":{"start":{"line":111,"column":4},"end":{"line":111,"column":27}},"72":{"start":{"line":114,"column":13},"end":{"line":114,"column":27}},"73":{"start":{"line":115,"column":2},"end":{"line":115,"column":65}},"74":{"start":{"line":115,"column":26},"end":{"line":115,"column":65}},"75":{"start":{"line":116,"column":2},"end":{"line":116,"column":21}},"76":{"start":{"line":117,"column":2},"end":{"line":117,"column":63}},"77":{"start":{"line":117,"column":25},"end":{"line":117,"column":63}},"78":{"start":{"line":118,"column":2},"end":{"line":118,"column":27}},"79":{"start":{"line":119,"column":2},"end":{"line":119,"column":52}},"80":{"start":{"line":121,"column":2},"end":{"line":121,"column":35}},"81":{"start":{"line":125,"column":2},"end":{"line":136,"column":3}},"82":{"start":{"line":126,"column":18},"end":{"line":126,"column":83}},"83":{"start":{"line":127,"column":4},"end":{"line":127,"column":25}},"84":{"start":{"line":128,"column":4},"end":{"line":128,"column":70}},"85":{"start":{"line":130,"column":4},"end":{"line":130,"column":78}},"86":{"start":{"line":131,"column":4},"end":{"line":134,"column":5}},"87":{"start":{"line":133,"column":6},"end":{"line":133,"column":19}},"88":{"start":{"line":138,"column":2},"end":{"line":151,"column":3}},"89":{"start":{"line":139,"column":21},"end":{"line":139,"column":89}},"90":{"start":{"line":140,"column":4},"end":{"line":142,"column":7}},"91":{"start":{"line":141,"column":6},"end":{"line":141,"column":93}},"92":{"start":{"line":141,"column":27},"end":{"line":141,"column":54}},"93":{"start":{"line":141,"column":59},"end":{"line":141,"column":93}},"94":{"start":{"line":143,"column":4},"end":{"line":143,"column":73}},"95":{"start":{"line":145,"column":4},"end":{"line":145,"column":81}},"96":{"start":{"line":146,"column":4},"end":{"line":149,"column":5}},"97":{"start":{"line":148,"column":6},"end":{"line":148,"column":19}},"98":{"start":{"line":153,"column":2},"end":{"line":153,"column":17}},"99":{"start":{"line":157,"column":24},"end":{"line":157,"column":39}},"100":{"start":{"line":159,"column":4},"end":{"line":167,"column":25}},"101":{"start":{"line":161,"column":6},"end":{"line":165,"column":7}},"102":{"start":{"line":162,"column":8},"end":{"line":162,"column":47}},"103":{"start":{"line":164,"column":8},"end":{"line":164,"column":71}},"104":{"start":{"line":166,"column":6},"end":{"line":166,"column":27}},"105":{"start":{"line":167,"column":11},"end":{"line":167,"column":25}},"106":{"start":{"line":170,"column":4},"end":{"line":170,"column":57}},"107":{"start":{"line":170,"column":20},"end":{"line":170,"column":42}},"108":{"start":{"line":170,"column":47},"end":{"line":170,"column":57}},"109":{"start":{"line":173,"column":4},"end":{"line":173,"column":65}},"110":{"start":{"line":173,"column":22},"end":{"line":173,"column":48}},"111":{"start":{"line":173,"column":53},"end":{"line":173,"column":65}},"112":{"start":{"line":176,"column":4},"end":{"line":176,"column":69}},"113":{"start":{"line":176,"column":24},"end":{"line":176,"column":52}},"114":{"start":{"line":176,"column":57},"end":{"line":176,"column":69}},"115":{"start":{"line":178,"column":2},"end":{"line":209,"column":4}},"116":{"start":{"line":180,"column":6},"end":{"line":182,"column":11}},"117":{"start":{"line":181,"column":8},"end":{"line":181,"column":76}},"118":{"start":{"line":185,"column":6},"end":{"line":187,"column":11}},"119":{"start":{"line":186,"column":8},"end":{"line":186,"column":88}},"120":{"start":{"line":190,"column":6},"end":{"line":192,"column":11}},"121":{"start":{"line":191,"column":8},"end":{"line":191,"column":95}},"122":{"start":{"line":195,"column":6},"end":{"line":197,"column":11}},"123":{"start":{"line":196,"column":8},"end":{"line":196,"column":108}},"124":{"start":{"line":200,"column":6},"end":{"line":202,"column":11}},"125":{"start":{"line":201,"column":8},"end":{"line":201,"column":107}},"126":{"start":{"line":205,"column":6},"end":{"line":207,"column":11}},"127":{"start":{"line":206,"column":8},"end":{"line":206,"column":91}},"128":{"start":{"line":213,"column":32},"end":{"line":213,"column":69}},"129":{"start":{"line":215,"column":19},"end":{"line":215,"column":38}},"130":{"start":{"line":216,"column":25},"end":{"line":219,"column":13}},"131":{"start":{"line":220,"column":2},"end":{"line":220,"column":48}},"132":{"start":{"line":220,"column":31},"end":{"line":220,"column":48}},"133":{"start":{"line":222,"column":19},"end":{"line":222,"column":50}},"134":{"start":{"line":224,"column":18},"end":{"line":224,"column":23}},"135":{"start":{"line":225,"column":2},"end":{"line":238,"column":3}},"136":{"start":{"line":226,"column":4},"end":{"line":230,"column":5}},"137":{"start":{"line":227,"column":29},"end":{"line":227,"column":123}},"138":{"start":{"line":228,"column":6},"end":{"line":228,"column":42}},"139":{"start":{"line":229,"column":6},"end":{"line":229,"column":23}},"140":{"start":{"line":232,"column":4},"end":{"line":232,"column":95}},"141":{"start":{"line":233,"column":4},"end":{"line":236,"column":5}},"142":{"start":{"line":235,"column":6},"end":{"line":235,"column":19}},"143":{"start":{"line":242,"column":2},"end":{"line":256,"column":3}},"144":{"start":{"line":243,"column":4},"end":{"line":243,"column":52}},"145":{"start":{"line":244,"column":4},"end":{"line":244,"column":24}},"146":{"start":{"line":245,"column":9},"end":{"line":256,"column":3}},"147":{"start":{"line":246,"column":4},"end":{"line":246,"column":55}},"148":{"start":{"line":249,"column":4},"end":{"line":249,"column":105}},"149":{"start":{"line":251,"column":4},"end":{"line":253,"column":5}},"150":{"start":{"line":252,"column":6},"end":{"line":252,"column":51}},"151":{"start":{"line":255,"column":4},"end":{"line":255,"column":70}},"152":{"start":{"line":255,"column":31},"end":{"line":255,"column":70}},"153":{"start":{"line":259,"column":20},"end":{"line":259,"column":47}},"154":{"start":{"line":261,"column":2},"end":{"line":264,"column":3}},"155":{"start":{"line":262,"column":4},"end":{"line":262,"column":60}},"156":{"start":{"line":263,"column":4},"end":{"line":263,"column":48}},"157":{"start":{"line":265,"column":2},"end":{"line":265,"column":82}},"158":{"start":{"line":267,"column":2},"end":{"line":267,"column":77}},"159":{"start":{"line":269,"column":2},"end":{"line":285,"column":3}},"160":{"start":{"line":270,"column":4},"end":{"line":284,"column":5}},"161":{"start":{"line":271,"column":25},"end":{"line":271,"column":115}},"162":{"start":{"line":273,"column":6},"end":{"line":275,"column":7}},"163":{"start":{"line":274,"column":8},"end":{"line":274,"column":83}},"164":{"start":{"line":276,"column":6},"end":{"line":276,"column":34}},"165":{"start":{"line":278,"column":6},"end":{"line":278,"column":99}},"166":{"start":{"line":279,"column":6},"end":{"line":282,"column":7}},"167":{"start":{"line":281,"column":8},"end":{"line":281,"column":21}},"168":{"start":{"line":287,"column":2},"end":{"line":287,"column":22}},"169":{"start":{"line":288,"column":2},"end":{"line":288,"column":20}},"170":{"start":{"line":289,"column":2},"end":{"line":289,"column":35}},"171":{"start":{"line":290,"column":2},"end":{"line":290,"column":29}},"172":{"start":{"line":291,"column":2},"end":{"line":291,"column":43}},"173":{"start":{"line":294,"column":2},"end":{"line":300,"column":4}},"174":{"start":{"line":295,"column":15},"end":{"line":295,"column":27}},"175":{"start":{"line":296,"column":4},"end":{"line":298,"column":5}},"176":{"start":{"line":297,"column":6},"end":{"line":297,"column":45}},"177":{"start":{"line":299,"column":4},"end":{"line":299,"column":16}},"178":{"start":{"line":301,"column":2},"end":{"line":303,"column":4}},"179":{"start":{"line":302,"column":4},"end":{"line":302,"column":21}},"180":{"start":{"line":305,"column":2},"end":{"line":305,"column":58}},"181":{"start":{"line":306,"column":2},"end":{"line":306,"column":31}},"182":{"start":{"line":308,"column":2},"end":{"line":308,"column":17}},"183":{"start":{"line":312,"column":20},"end":{"line":312,"column":24}},"184":{"start":{"line":313,"column":2},"end":{"line":315,"column":3}},"185":{"start":{"line":314,"column":4},"end":{"line":314,"column":75}},"186":{"start":{"line":316,"column":20},"end":{"line":321,"column":3}},"187":{"start":{"line":318,"column":4},"end":{"line":318,"column":37}},"188":{"start":{"line":318,"column":25},"end":{"line":318,"column":37}},"189":{"start":{"line":319,"column":19},"end":{"line":319,"column":72}},"190":{"start":{"line":320,"column":4},"end":{"line":320,"column":29}},"191":{"start":{"line":323,"column":2},"end":{"line":368,"column":8}},"192":{"start":{"line":324,"column":15},"end":{"line":363,"column":6}},"193":{"start":{"line":325,"column":22},"end":{"line":325,"column":30}},"194":{"start":{"line":326,"column":21},"end":{"line":326,"column":46}},"195":{"start":{"line":327,"column":6},"end":{"line":327,"column":50}},"196":{"start":{"line":328,"column":21},"end":{"line":328,"column":23}},"197":{"start":{"line":329,"column":6},"end":{"line":362,"column":7}},"198":{"start":{"line":331,"column":8},"end":{"line":341,"column":9}},"199":{"start":{"line":332,"column":10},"end":{"line":340,"column":11}},"200":{"start":{"line":333,"column":33},"end":{"line":333,"column":90}},"201":{"start":{"line":334,"column":12},"end":{"line":337,"column":13}},"202":{"start":{"line":335,"column":14},"end":{"line":335,"column":83}},"203":{"start":{"line":336,"column":14},"end":{"line":336,"column":47}},"204":{"start":{"line":339,"column":12},"end":{"line":339,"column":68}},"205":{"start":{"line":342,"column":8},"end":{"line":342,"column":96}},"206":{"start":{"line":342,"column":33},"end":{"line":342,"column":96}},"207":{"start":{"line":343,"column":24},"end":{"line":343,"column":91}},"208":{"start":{"line":344,"column":8},"end":{"line":344,"column":81}},"209":{"start":{"line":344,"column":22},"end":{"line":344,"column":81}},"210":{"start":{"line":345,"column":21},"end":{"line":345,"column":23}},"211":{"start":{"line":347,"column":8},"end":{"line":347,"column":96}},"212":{"start":{"line":347,"column":49},"end":{"line":347,"column":96}},"213":{"start":{"line":349,"column":8},"end":{"line":349,"column":100}},"214":{"start":{"line":349,"column":51},"end":{"line":349,"column":100}},"215":{"start":{"line":351,"column":8},"end":{"line":351,"column":26}},"216":{"start":{"line":352,"column":8},"end":{"line":358,"column":9}},"217":{"start":{"line":353,"column":25},"end":{"line":353,"column":78}},"218":{"start":{"line":355,"column":10},"end":{"line":355,"column":27}},"219":{"start":{"line":357,"column":10},"end":{"line":357,"column":83}},"220":{"start":{"line":361,"column":8},"end":{"line":361,"column":52}},"221":{"start":{"line":365,"column":4},"end":{"line":367,"column":6}},"222":{"start":{"line":366,"column":6},"end":{"line":366,"column":41}},"223":{"start":{"line":370,"column":2},"end":{"line":370,"column":57}},"224":{"start":{"line":374,"column":2},"end":{"line":374,"column":37}},"225":{"start":{"line":375,"column":21},"end":{"line":375,"column":36}},"226":{"start":{"line":377,"column":2},"end":{"line":377,"column":33}},"227":{"start":{"line":379,"column":2},"end":{"line":384,"column":3}},"228":{"start":{"line":380,"column":4},"end":{"line":380,"column":30}},"229":{"start":{"line":383,"column":4},"end":{"line":383,"column":73}},"230":{"start":{"line":386,"column":20},"end":{"line":386,"column":76}},"231":{"start":{"line":388,"column":2},"end":{"line":400,"column":5}},"232":{"start":{"line":389,"column":20},"end":{"line":389,"column":39}},"233":{"start":{"line":391,"column":4},"end":{"line":393,"column":5}},"234":{"start":{"line":392,"column":6},"end":{"line":392,"column":80}},"235":{"start":{"line":394,"column":4},"end":{"line":399,"column":5}},"236":{"start":{"line":395,"column":6},"end":{"line":395,"column":80}},"237":{"start":{"line":398,"column":6},"end":{"line":398,"column":65}},"238":{"start":{"line":404,"column":21},"end":{"line":404,"column":42}},"239":{"start":{"line":405,"column":22},"end":{"line":405,"column":24}},"240":{"start":{"line":406,"column":22},"end":{"line":406,"column":23}},"241":{"start":{"line":408,"column":2},"end":{"line":494,"column":4}},"242":{"start":{"line":411,"column":4},"end":{"line":411,"column":34}},"243":{"start":{"line":412,"column":27},"end":{"line":412,"column":90}},"244":{"start":{"line":413,"column":29},"end":{"line":413,"column":89}},"245":{"start":{"line":415,"column":4},"end":{"line":493,"column":7}},"246":{"start":{"line":416,"column":6},"end":{"line":416,"column":22}},"247":{"start":{"line":417,"column":6},"end":{"line":417,"column":124}},"248":{"start":{"line":419,"column":6},"end":{"line":428,"column":9}},"249":{"start":{"line":420,"column":8},"end":{"line":420,"column":24}},"250":{"start":{"line":421,"column":8},"end":{"line":421,"column":22}},"251":{"start":{"line":422,"column":8},"end":{"line":422,"column":125}},"252":{"start":{"line":423,"column":8},"end":{"line":427,"column":9}},"253":{"start":{"line":424,"column":34},"end":{"line":424,"column":98}},"254":{"start":{"line":425,"column":10},"end":{"line":425,"column":106}},"255":{"start":{"line":426,"column":10},"end":{"line":426,"column":88}},"256":{"start":{"line":429,"column":6},"end":{"line":434,"column":7}},"257":{"start":{"line":430,"column":8},"end":{"line":433,"column":9}},"258":{"start":{"line":431,"column":10},"end":{"line":431,"column":114}},"259":{"start":{"line":432,"column":10},"end":{"line":432,"column":17}},"260":{"start":{"line":435,"column":6},"end":{"line":447,"column":7}},"261":{"start":{"line":436,"column":8},"end":{"line":446,"column":9}},"262":{"start":{"line":437,"column":34},"end":{"line":437,"column":98}},"263":{"start":{"line":438,"column":10},"end":{"line":438,"column":104}},"264":{"start":{"line":439,"column":10},"end":{"line":439,"column":88}},"265":{"start":{"line":440,"column":10},"end":{"line":443,"column":11}},"266":{"start":{"line":441,"column":12},"end":{"line":441,"column":116}},"267":{"start":{"line":442,"column":12},"end":{"line":442,"column":19}},"268":{"start":{"line":445,"column":10},"end":{"line":445,"column":74}},"269":{"start":{"line":454,"column":6},"end":{"line":490,"column":7}},"270":{"start":{"line":455,"column":48},"end":{"line":455,"column":68}},"271":{"start":{"line":457,"column":25},"end":{"line":457,"column":97}},"272":{"start":{"line":457,"column":91},"end":{"line":457,"column":96}},"273":{"start":{"line":458,"column":8},"end":{"line":458,"column":85}},"274":{"start":{"line":459,"column":8},"end":{"line":489,"column":11}},"275":{"start":{"line":460,"column":10},"end":{"line":487,"column":11}},"276":{"start":{"line":464,"column":12},"end":{"line":471,"column":13}},"277":{"start":{"line":465,"column":30},"end":{"line":465,"column":52}},"278":{"start":{"line":466,"column":14},"end":{"line":470,"column":15}},"279":{"start":{"line":467,"column":16},"end":{"line":467,"column":147}},"280":{"start":{"line":468,"column":16},"end":{"line":468,"column":23}},"281":{"start":{"line":469,"column":16},"end":{"line":469,"column":23}},"282":{"start":{"line":472,"column":12},"end":{"line":472,"column":142}},"283":{"start":{"line":473,"column":12},"end":{"line":486,"column":13}},"284":{"start":{"line":475,"column":14},"end":{"line":475,"column":118}},"285":{"start":{"line":485,"column":14},"end":{"line":485,"column":21}},"286":{"start":{"line":488,"column":10},"end":{"line":488,"column":17}},"287":{"start":{"line":492,"column":6},"end":{"line":492,"column":51}},"288":{"start":{"line":498,"column":14},"end":{"line":498,"column":63}},"289":{"start":{"line":501,"column":2},"end":{"line":501,"column":25}},"290":{"start":{"line":503,"column":2},"end":{"line":503,"column":48}},"291":{"start":{"line":505,"column":2},"end":{"line":505,"column":19}},"292":{"start":{"line":508,"column":2},"end":{"line":512,"column":4}},"293":{"start":{"line":509,"column":21},"end":{"line":509,"column":40}},"294":{"start":{"line":510,"column":4},"end":{"line":510,"column":29}},"295":{"start":{"line":510,"column":19},"end":{"line":510,"column":29}},"296":{"start":{"line":511,"column":4},"end":{"line":511,"column":52}},"297":{"start":{"line":514,"column":2},"end":{"line":524,"column":4}},"298":{"start":{"line":516,"column":4},"end":{"line":523,"column":5}},"299":{"start":{"line":517,"column":6},"end":{"line":517,"column":74}},"300":{"start":{"line":518,"column":11},"end":{"line":523,"column":5}},"301":{"start":{"line":520,"column":6},"end":{"line":520,"column":213}},"302":{"start":{"line":520,"column":46},"end":{"line":520,"column":125}},"303":{"start":{"line":520,"column":130},"end":{"line":520,"column":213}},"304":{"start":{"line":522,"column":6},"end":{"line":522,"column":58}},"305":{"start":{"line":526,"column":2},"end":{"line":528,"column":4}},"306":{"start":{"line":527,"column":4},"end":{"line":527,"column":57}},"307":{"start":{"line":530,"column":2},"end":{"line":532,"column":4}},"308":{"start":{"line":531,"column":4},"end":{"line":531,"column":45}},"309":{"start":{"line":534,"column":2},"end":{"line":536,"column":4}},"310":{"start":{"line":535,"column":4},"end":{"line":535,"column":45}},"311":{"start":{"line":539,"column":2},"end":{"line":548,"column":7}},"312":{"start":{"line":540,"column":16},"end":{"line":543,"column":6}},"313":{"start":{"line":541,"column":6},"end":{"line":541,"column":32}},"314":{"start":{"line":542,"column":6},"end":{"line":542,"column":18}},"315":{"start":{"line":545,"column":4},"end":{"line":547,"column":6}},"316":{"start":{"line":546,"column":6},"end":{"line":546,"column":42}},"317":{"start":{"line":549,"column":21},"end":{"line":549,"column":42}},"318":{"start":{"line":550,"column":2},"end":{"line":573,"column":3}},"319":{"start":{"line":552,"column":21},"end":{"line":552,"column":88}},"320":{"start":{"line":552,"column":82},"end":{"line":552,"column":87}},"321":{"start":{"line":553,"column":20},"end":{"line":571,"column":5}},"322":{"start":{"line":556,"column":6},"end":{"line":561,"column":7}},"323":{"start":{"line":557,"column":27},"end":{"line":557,"column":65}},"324":{"start":{"line":558,"column":8},"end":{"line":558,"column":51}},"325":{"start":{"line":560,"column":8},"end":{"line":560,"column":28}},"326":{"start":{"line":562,"column":6},"end":{"line":570,"column":7}},"327":{"start":{"line":563,"column":8},"end":{"line":563,"column":107}},"328":{"start":{"line":564,"column":8},"end":{"line":564,"column":15}},"329":{"start":{"line":566,"column":22},"end":{"line":566,"column":155}},"330":{"start":{"line":567,"column":8},"end":{"line":567,"column":31}},"331":{"start":{"line":568,"column":8},"end":{"line":568,"column":52}},"332":{"start":{"line":569,"column":8},"end":{"line":569,"column":52}},"333":{"start":{"line":572,"column":4},"end":{"line":572,"column":109}},"334":{"start":{"line":576,"column":2},"end":{"line":576,"column":48}},"335":{"start":{"line":577,"column":2},"end":{"line":577,"column":52}},"336":{"start":{"line":578,"column":2},"end":{"line":578,"column":62}},"337":{"start":{"line":579,"column":27},"end":{"line":579,"column":48}},"338":{"start":{"line":580,"column":2},"end":{"line":580,"column":85}},"339":{"start":{"line":581,"column":2},"end":{"line":581,"column":132}},"340":{"start":{"line":584,"column":2},"end":{"line":584,"column":39}},"341":{"start":{"line":585,"column":25},"end":{"line":585,"column":50}},"342":{"start":{"line":586,"column":2},"end":{"line":586,"column":128}},"343":{"start":{"line":587,"column":2},"end":{"line":587,"column":42}},"344":{"start":{"line":590,"column":2},"end":{"line":590,"column":36}},"345":{"start":{"line":592,"column":2},"end":{"line":592,"column":13}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":91,"column":9},"end":{"line":91,"column":31}},"loc":{"start":{"line":91,"column":37},"end":{"line":91,"column":95}},"line":91},"1":{"name":"_asyncToGenerator","decl":{"start":{"line":93,"column":9},"end":{"line":93,"column":26}},"loc":{"start":{"line":93,"column":31},"end":{"line":93,"column":458}},"line":93},"2":{"name":"(anonymous_2)","decl":{"start":{"line":93,"column":40},"end":{"line":93,"column":41}},"loc":{"start":{"line":93,"column":52},"end":{"line":93,"column":455}},"line":93},"3":{"name":"(anonymous_3)","decl":{"start":{"line":93,"column":110},"end":{"line":93,"column":111}},"loc":{"start":{"line":93,"column":137},"end":{"line":93,"column":451}},"line":93},"4":{"name":"step","decl":{"start":{"line":93,"column":148},"end":{"line":93,"column":152}},"loc":{"start":{"line":93,"column":163},"end":{"line":93,"column":428}},"line":93},"5":{"name":"(anonymous_5)","decl":{"start":{"line":93,"column":341},"end":{"line":93,"column":342}},"loc":{"start":{"line":93,"column":358},"end":{"line":93,"column":382}},"line":93},"6":{"name":"(anonymous_6)","decl":{"start":{"line":93,"column":384},"end":{"line":93,"column":385}},"loc":{"start":{"line":93,"column":399},"end":{"line":93,"column":422}},"line":93},"7":{"name":"tooManyRequests","decl":{"start":{"line":98,"column":9},"end":{"line":98,"column":24}},"loc":{"start":{"line":98,"column":47},"end":{"line":104,"column":1}},"line":98},"8":{"name":"(anonymous_8)","decl":{"start":{"line":103,"column":13},"end":{"line":103,"column":14}},"loc":{"start":{"line":103,"column":19},"end":{"line":103,"column":42}},"line":103},"9":{"name":"declareService","decl":{"start":{"line":106,"column":9},"end":{"line":106,"column":23}},"loc":{"start":{"line":106,"column":62},"end":{"line":122,"column":1}},"line":106},"10":{"name":"configureService","decl":{"start":{"line":124,"column":9},"end":{"line":124,"column":25}},"loc":{"start":{"line":124,"column":55},"end":{"line":154,"column":1}},"line":124},"11":{"name":"(anonymous_11)","decl":{"start":{"line":140,"column":38},"end":{"line":140,"column":39}},"loc":{"start":{"line":140,"column":60},"end":{"line":142,"column":5}},"line":140},"12":{"name":"createProxyService","decl":{"start":{"line":156,"column":9},"end":{"line":156,"column":27}},"loc":{"start":{"line":156,"column":37},"end":{"line":210,"column":1}},"line":156},"13":{"name":"proxyParams","decl":{"start":{"line":158,"column":11},"end":{"line":158,"column":22}},"loc":{"start":{"line":158,"column":31},"end":{"line":168,"column":3}},"line":158},"14":{"name":"proxyId","decl":{"start":{"line":169,"column":11},"end":{"line":169,"column":18}},"loc":{"start":{"line":169,"column":23},"end":{"line":171,"column":3}},"line":169},"15":{"name":"proxyData","decl":{"start":{"line":172,"column":11},"end":{"line":172,"column":20}},"loc":{"start":{"line":172,"column":27},"end":{"line":174,"column":3}},"line":172},"16":{"name":"proxyResult","decl":{"start":{"line":175,"column":11},"end":{"line":175,"column":22}},"loc":{"start":{"line":175,"column":29},"end":{"line":177,"column":3}},"line":175},"17":{"name":"(anonymous_17)","decl":{"start":{"line":179,"column":4},"end":{"line":179,"column":5}},"loc":{"start":{"line":179,"column":17},"end":{"line":183,"column":5}},"line":179},"18":{"name":"(anonymous_18)","decl":{"start":{"line":180,"column":31},"end":{"line":180,"column":32}},"loc":{"start":{"line":180,"column":44},"end":{"line":182,"column":7}},"line":180},"19":{"name":"(anonymous_19)","decl":{"start":{"line":184,"column":4},"end":{"line":184,"column":5}},"loc":{"start":{"line":184,"column":20},"end":{"line":188,"column":5}},"line":184},"20":{"name":"(anonymous_20)","decl":{"start":{"line":185,"column":31},"end":{"line":185,"column":32}},"loc":{"start":{"line":185,"column":44},"end":{"line":187,"column":7}},"line":185},"21":{"name":"(anonymous_21)","decl":{"start":{"line":189,"column":4},"end":{"line":189,"column":5}},"loc":{"start":{"line":189,"column":25},"end":{"line":193,"column":5}},"line":189},"22":{"name":"(anonymous_22)","decl":{"start":{"line":190,"column":31},"end":{"line":190,"column":32}},"loc":{"start":{"line":190,"column":44},"end":{"line":192,"column":7}},"line":190},"23":{"name":"(anonymous_23)","decl":{"start":{"line":194,"column":4},"end":{"line":194,"column":5}},"loc":{"start":{"line":194,"column":29},"end":{"line":198,"column":5}},"line":194},"24":{"name":"(anonymous_24)","decl":{"start":{"line":195,"column":31},"end":{"line":195,"column":32}},"loc":{"start":{"line":195,"column":44},"end":{"line":197,"column":7}},"line":195},"25":{"name":"(anonymous_25)","decl":{"start":{"line":199,"column":4},"end":{"line":199,"column":5}},"loc":{"start":{"line":199,"column":28},"end":{"line":203,"column":5}},"line":199},"26":{"name":"(anonymous_26)","decl":{"start":{"line":200,"column":31},"end":{"line":200,"column":32}},"loc":{"start":{"line":200,"column":44},"end":{"line":202,"column":7}},"line":200},"27":{"name":"(anonymous_27)","decl":{"start":{"line":204,"column":4},"end":{"line":204,"column":5}},"loc":{"start":{"line":204,"column":23},"end":{"line":208,"column":5}},"line":204},"28":{"name":"(anonymous_28)","decl":{"start":{"line":205,"column":31},"end":{"line":205,"column":32}},"loc":{"start":{"line":205,"column":44},"end":{"line":207,"column":7}},"line":205},"29":{"name":"createService","decl":{"start":{"line":212,"column":9},"end":{"line":212,"column":22}},"loc":{"start":{"line":212,"column":48},"end":{"line":309,"column":1}},"line":212},"30":{"name":"(anonymous_30)","decl":{"start":{"line":294,"column":20},"end":{"line":294,"column":21}},"loc":{"start":{"line":294,"column":45},"end":{"line":300,"column":3}},"line":294},"31":{"name":"(anonymous_31)","decl":{"start":{"line":301,"column":25},"end":{"line":301,"column":26}},"loc":{"start":{"line":301,"column":37},"end":{"line":303,"column":3}},"line":301},"32":{"name":"createWebhook","decl":{"start":{"line":311,"column":9},"end":{"line":311,"column":22}},"loc":{"start":{"line":311,"column":48},"end":{"line":371,"column":1}},"line":311},"33":{"name":"(anonymous_33)","decl":{"start":{"line":316,"column":20},"end":{"line":316,"column":21}},"loc":{"start":{"line":316,"column":31},"end":{"line":321,"column":3}},"line":316},"34":{"name":"(anonymous_34)","decl":{"start":{"line":323,"column":61},"end":{"line":323,"column":62}},"loc":{"start":{"line":323,"column":67},"end":{"line":368,"column":3}},"line":323},"35":{"name":"(anonymous_35)","decl":{"start":{"line":324,"column":33},"end":{"line":324,"column":34}},"loc":{"start":{"line":324,"column":60},"end":{"line":363,"column":5}},"line":324},"36":{"name":"(anonymous_36)","decl":{"start":{"line":365,"column":11},"end":{"line":365,"column":12}},"loc":{"start":{"line":365,"column":35},"end":{"line":367,"column":5}},"line":365},"37":{"name":"setupLogger","decl":{"start":{"line":373,"column":9},"end":{"line":373,"column":20}},"loc":{"start":{"line":373,"column":26},"end":{"line":401,"column":1}},"line":373},"38":{"name":"(anonymous_38)","decl":{"start":{"line":388,"column":20},"end":{"line":388,"column":21}},"loc":{"start":{"line":388,"column":31},"end":{"line":400,"column":3}},"line":388},"39":{"name":"setupSockets","decl":{"start":{"line":403,"column":9},"end":{"line":403,"column":21}},"loc":{"start":{"line":403,"column":27},"end":{"line":495,"column":1}},"line":403},"40":{"name":"(anonymous_40)","decl":{"start":{"line":408,"column":9},"end":{"line":408,"column":10}},"loc":{"start":{"line":408,"column":15},"end":{"line":494,"column":3}},"line":408},"41":{"name":"(anonymous_41)","decl":{"start":{"line":415,"column":24},"end":{"line":415,"column":25}},"loc":{"start":{"line":415,"column":34},"end":{"line":493,"column":5}},"line":415},"42":{"name":"(anonymous_42)","decl":{"start":{"line":419,"column":30},"end":{"line":419,"column":31}},"loc":{"start":{"line":419,"column":40},"end":{"line":428,"column":7}},"line":419},"43":{"name":"(anonymous_43)","decl":{"start":{"line":457,"column":80},"end":{"line":457,"column":81}},"loc":{"start":{"line":457,"column":91},"end":{"line":457,"column":96}},"line":457},"44":{"name":"(anonymous_44)","decl":{"start":{"line":459,"column":19},"end":{"line":459,"column":20}},"loc":{"start":{"line":459,"column":37},"end":{"line":489,"column":9}},"line":459},"45":{"name":"kalisio","decl":{"start":{"line":497,"column":9},"end":{"line":497,"column":16}},"loc":{"start":{"line":497,"column":19},"end":{"line":593,"column":1}},"line":497},"46":{"name":"(anonymous_46)","decl":{"start":{"line":508,"column":26},"end":{"line":508,"column":27}},"loc":{"start":{"line":508,"column":42},"end":{"line":512,"column":3}},"line":508},"47":{"name":"(anonymous_47)","decl":{"start":{"line":514,"column":19},"end":{"line":514,"column":20}},"loc":{"start":{"line":514,"column":44},"end":{"line":524,"column":3}},"line":514},"48":{"name":"(anonymous_48)","decl":{"start":{"line":526,"column":25},"end":{"line":526,"column":26}},"loc":{"start":{"line":526,"column":64},"end":{"line":528,"column":3}},"line":526},"49":{"name":"(anonymous_49)","decl":{"start":{"line":530,"column":22},"end":{"line":530,"column":23}},"loc":{"start":{"line":530,"column":47},"end":{"line":532,"column":3}},"line":530},"50":{"name":"(anonymous_50)","decl":{"start":{"line":534,"column":22},"end":{"line":534,"column":23}},"loc":{"start":{"line":534,"column":47},"end":{"line":536,"column":3}},"line":534},"51":{"name":"(anonymous_51)","decl":{"start":{"line":539,"column":19},"end":{"line":539,"column":20}},"loc":{"start":{"line":539,"column":25},"end":{"line":548,"column":3}},"line":539},"52":{"name":"(anonymous_52)","decl":{"start":{"line":540,"column":34},"end":{"line":540,"column":35}},"loc":{"start":{"line":540,"column":49},"end":{"line":543,"column":5}},"line":540},"53":{"name":"(anonymous_53)","decl":{"start":{"line":545,"column":11},"end":{"line":545,"column":12}},"loc":{"start":{"line":545,"column":26},"end":{"line":547,"column":5}},"line":545},"54":{"name":"(anonymous_54)","decl":{"start":{"line":552,"column":71},"end":{"line":552,"column":72}},"loc":{"start":{"line":552,"column":82},"end":{"line":552,"column":87}},"line":552},"55":{"name":"(anonymous_55)","decl":{"start":{"line":553,"column":20},"end":{"line":553,"column":21}},"loc":{"start":{"line":553,"column":40},"end":{"line":571,"column":5}},"line":553}},"branchMap":{"0":{"loc":{"start":{"line":91,"column":46},"end":{"line":91,"column":92}},"type":"cond-expr","locations":[{"start":{"line":91,"column":70},"end":{"line":91,"column":73}},{"start":{"line":91,"column":76},"end":{"line":91,"column":92}}],"line":91},"1":{"loc":{"start":{"line":91,"column":46},"end":{"line":91,"column":67}},"type":"binary-expr","locations":[{"start":{"line":91,"column":46},"end":{"line":91,"column":49}},{"start":{"line":91,"column":53},"end":{"line":91,"column":67}}],"line":91},"2":{"loc":{"start":{"line":93,"column":264},"end":{"line":93,"column":426}},"type":"if","locations":[{"start":{"line":93,"column":264},"end":{"line":93,"column":426}},{"start":{"line":93,"column":264},"end":{"line":93,"column":426}}],"line":93},"3":{"loc":{"start":{"line":106,"column":44},"end":{"line":106,"column":60}},"type":"default-arg","locations":[{"start":{"line":106,"column":58},"end":{"line":106,"column":60}}],"line":106},"4":{"loc":{"start":{"line":110,"column":2},"end":{"line":112,"column":3}},"type":"if","locations":[{"start":{"line":110,"column":2},"end":{"line":112,"column":3}},{"start":{"line":110,"column":2},"end":{"line":112,"column":3}}],"line":110},"5":{"loc":{"start":{"line":115,"column":2},"end":{"line":115,"column":65}},"type":"if","locations":[{"start":{"line":115,"column":2},"end":{"line":115,"column":65}},{"start":{"line":115,"column":2},"end":{"line":115,"column":65}}],"line":115},"6":{"loc":{"start":{"line":117,"column":2},"end":{"line":117,"column":63}},"type":"if","locations":[{"start":{"line":117,"column":2},"end":{"line":117,"column":63}},{"start":{"line":117,"column":2},"end":{"line":117,"column":63}}],"line":117},"7":{"loc":{"start":{"line":131,"column":4},"end":{"line":134,"column":5}},"type":"if","locations":[{"start":{"line":131,"column":4},"end":{"line":134,"column":5}},{"start":{"line":131,"column":4},"end":{"line":134,"column":5}}],"line":131},"8":{"loc":{"start":{"line":141,"column":6},"end":{"line":141,"column":93}},"type":"if","locations":[{"start":{"line":141,"column":6},"end":{"line":141,"column":93}},{"start":{"line":141,"column":6},"end":{"line":141,"column":93}}],"line":141},"9":{"loc":{"start":{"line":146,"column":4},"end":{"line":149,"column":5}},"type":"if","locations":[{"start":{"line":146,"column":4},"end":{"line":149,"column":5}},{"start":{"line":146,"column":4},"end":{"line":149,"column":5}}],"line":146},"10":{"loc":{"start":{"line":159,"column":4},"end":{"line":167,"column":25}},"type":"if","locations":[{"start":{"line":159,"column":4},"end":{"line":167,"column":25}},{"start":{"line":159,"column":4},"end":{"line":167,"column":25}}],"line":159},"11":{"loc":{"start":{"line":161,"column":6},"end":{"line":165,"column":7}},"type":"if","locations":[{"start":{"line":161,"column":6},"end":{"line":165,"column":7}},{"start":{"line":161,"column":6},"end":{"line":165,"column":7}}],"line":161},"12":{"loc":{"start":{"line":170,"column":4},"end":{"line":170,"column":57}},"type":"if","locations":[{"start":{"line":170,"column":4},"end":{"line":170,"column":57}},{"start":{"line":170,"column":4},"end":{"line":170,"column":57}}],"line":170},"13":{"loc":{"start":{"line":173,"column":4},"end":{"line":173,"column":65}},"type":"if","locations":[{"start":{"line":173,"column":4},"end":{"line":173,"column":65}},{"start":{"line":173,"column":4},"end":{"line":173,"column":65}}],"line":173},"14":{"loc":{"start":{"line":176,"column":4},"end":{"line":176,"column":69}},"type":"if","locations":[{"start":{"line":176,"column":4},"end":{"line":176,"column":69}},{"start":{"line":176,"column":4},"end":{"line":176,"column":69}}],"line":176},"15":{"loc":{"start":{"line":212,"column":34},"end":{"line":212,"column":46}},"type":"default-arg","locations":[{"start":{"line":212,"column":44},"end":{"line":212,"column":46}}],"line":212},"16":{"loc":{"start":{"line":220,"column":2},"end":{"line":220,"column":48}},"type":"if","locations":[{"start":{"line":220,"column":2},"end":{"line":220,"column":48}},{"start":{"line":220,"column":2},"end":{"line":220,"column":48}}],"line":220},"17":{"loc":{"start":{"line":222,"column":19},"end":{"line":222,"column":50}},"type":"binary-expr","locations":[{"start":{"line":222,"column":19},"end":{"line":222,"column":42}},{"start":{"line":222,"column":46},"end":{"line":222,"column":50}}],"line":222},"18":{"loc":{"start":{"line":226,"column":4},"end":{"line":230,"column":5}},"type":"if","locations":[{"start":{"line":226,"column":4},"end":{"line":230,"column":5}},{"start":{"line":226,"column":4},"end":{"line":230,"column":5}}],"line":226},"19":{"loc":{"start":{"line":233,"column":4},"end":{"line":236,"column":5}},"type":"if","locations":[{"start":{"line":233,"column":4},"end":{"line":236,"column":5}},{"start":{"line":233,"column":4},"end":{"line":236,"column":5}}],"line":233},"20":{"loc":{"start":{"line":242,"column":2},"end":{"line":256,"column":3}},"type":"if","locations":[{"start":{"line":242,"column":2},"end":{"line":256,"column":3}},{"start":{"line":242,"column":2},"end":{"line":256,"column":3}}],"line":242},"21":{"loc":{"start":{"line":245,"column":9},"end":{"line":256,"column":3}},"type":"if","locations":[{"start":{"line":245,"column":9},"end":{"line":256,"column":3}},{"start":{"line":245,"column":9},"end":{"line":256,"column":3}}],"line":245},"22":{"loc":{"start":{"line":251,"column":4},"end":{"line":253,"column":5}},"type":"if","locations":[{"start":{"line":251,"column":4},"end":{"line":253,"column":5}},{"start":{"line":251,"column":4},"end":{"line":253,"column":5}}],"line":251},"23":{"loc":{"start":{"line":255,"column":4},"end":{"line":255,"column":70}},"type":"if","locations":[{"start":{"line":255,"column":4},"end":{"line":255,"column":70}},{"start":{"line":255,"column":4},"end":{"line":255,"column":70}}],"line":255},"24":{"loc":{"start":{"line":259,"column":20},"end":{"line":259,"column":47}},"type":"binary-expr","locations":[{"start":{"line":259,"column":20},"end":{"line":259,"column":39}},{"start":{"line":259,"column":43},"end":{"line":259,"column":47}}],"line":259},"25":{"loc":{"start":{"line":261,"column":2},"end":{"line":264,"column":3}},"type":"if","locations":[{"start":{"line":261,"column":2},"end":{"line":264,"column":3}},{"start":{"line":261,"column":2},"end":{"line":264,"column":3}}],"line":261},"26":{"loc":{"start":{"line":269,"column":2},"end":{"line":285,"column":3}},"type":"if","locations":[{"start":{"line":269,"column":2},"end":{"line":285,"column":3}},{"start":{"line":269,"column":2},"end":{"line":285,"column":3}}],"line":269},"27":{"loc":{"start":{"line":269,"column":6},"end":{"line":269,"column":46}},"type":"binary-expr","locations":[{"start":{"line":269,"column":6},"end":{"line":269,"column":15}},{"start":{"line":269,"column":19},"end":{"line":269,"column":46}}],"line":269},"28":{"loc":{"start":{"line":273,"column":6},"end":{"line":275,"column":7}},"type":"if","locations":[{"start":{"line":273,"column":6},"end":{"line":275,"column":7}},{"start":{"line":273,"column":6},"end":{"line":275,"column":7}}],"line":273},"29":{"loc":{"start":{"line":279,"column":6},"end":{"line":282,"column":7}},"type":"if","locations":[{"start":{"line":279,"column":6},"end":{"line":282,"column":7}},{"start":{"line":279,"column":6},"end":{"line":282,"column":7}}],"line":279},"30":{"loc":{"start":{"line":296,"column":4},"end":{"line":298,"column":5}},"type":"if","locations":[{"start":{"line":296,"column":4},"end":{"line":298,"column":5}},{"start":{"line":296,"column":4},"end":{"line":298,"column":5}}],"line":296},"31":{"loc":{"start":{"line":311,"column":34},"end":{"line":311,"column":46}},"type":"default-arg","locations":[{"start":{"line":311,"column":44},"end":{"line":311,"column":46}}],"line":311},"32":{"loc":{"start":{"line":313,"column":2},"end":{"line":315,"column":3}},"type":"if","locations":[{"start":{"line":313,"column":2},"end":{"line":315,"column":3}},{"start":{"line":313,"column":2},"end":{"line":315,"column":3}}],"line":313},"33":{"loc":{"start":{"line":318,"column":4},"end":{"line":318,"column":37}},"type":"if","locations":[{"start":{"line":318,"column":4},"end":{"line":318,"column":37}},{"start":{"line":318,"column":4},"end":{"line":318,"column":37}}],"line":318},"34":{"loc":{"start":{"line":331,"column":8},"end":{"line":341,"column":9}},"type":"if","locations":[{"start":{"line":331,"column":8},"end":{"line":341,"column":9}},{"start":{"line":331,"column":8},"end":{"line":341,"column":9}}],"line":331},"35":{"loc":{"start":{"line":334,"column":12},"end":{"line":337,"column":13}},"type":"if","locations":[{"start":{"line":334,"column":12},"end":{"line":337,"column":13}},{"start":{"line":334,"column":12},"end":{"line":337,"column":13}}],"line":334},"36":{"loc":{"start":{"line":342,"column":8},"end":{"line":342,"column":96}},"type":"if","locations":[{"start":{"line":342,"column":8},"end":{"line":342,"column":96}},{"start":{"line":342,"column":8},"end":{"line":342,"column":96}}],"line":342},"37":{"loc":{"start":{"line":343,"column":56},"end":{"line":343,"column":90}},"type":"binary-expr","locations":[{"start":{"line":343,"column":56},"end":{"line":343,"column":71}},{"start":{"line":343,"column":75},"end":{"line":343,"column":90}}],"line":343},"38":{"loc":{"start":{"line":344,"column":8},"end":{"line":344,"column":81}},"type":"if","locations":[{"start":{"line":344,"column":8},"end":{"line":344,"column":81}},{"start":{"line":344,"column":8},"end":{"line":344,"column":81}}],"line":344},"39":{"loc":{"start":{"line":347,"column":8},"end":{"line":347,"column":96}},"type":"if","locations":[{"start":{"line":347,"column":8},"end":{"line":347,"column":96}},{"start":{"line":347,"column":8},"end":{"line":347,"column":96}}],"line":347},"40":{"loc":{"start":{"line":349,"column":8},"end":{"line":349,"column":100}},"type":"if","locations":[{"start":{"line":349,"column":8},"end":{"line":349,"column":100}},{"start":{"line":349,"column":8},"end":{"line":349,"column":100}}],"line":349},"41":{"loc":{"start":{"line":386,"column":20},"end":{"line":386,"column":76}},"type":"cond-expr","locations":[{"start":{"line":386,"column":33},"end":{"line":386,"column":71}},{"start":{"line":386,"column":74},"end":{"line":386,"column":76}}],"line":386},"42":{"loc":{"start":{"line":391,"column":4},"end":{"line":393,"column":5}},"type":"if","locations":[{"start":{"line":391,"column":4},"end":{"line":393,"column":5}},{"start":{"line":391,"column":4},"end":{"line":393,"column":5}}],"line":391},"43":{"loc":{"start":{"line":392,"column":22},"end":{"line":392,"column":79}},"type":"cond-expr","locations":[{"start":{"line":392,"column":63},"end":{"line":392,"column":70}},{"start":{"line":392,"column":73},"end":{"line":392,"column":79}}],"line":392},"44":{"loc":{"start":{"line":423,"column":8},"end":{"line":427,"column":9}},"type":"if","locations":[{"start":{"line":423,"column":8},"end":{"line":427,"column":9}},{"start":{"line":423,"column":8},"end":{"line":427,"column":9}}],"line":423},"45":{"loc":{"start":{"line":429,"column":6},"end":{"line":434,"column":7}},"type":"if","locations":[{"start":{"line":429,"column":6},"end":{"line":434,"column":7}},{"start":{"line":429,"column":6},"end":{"line":434,"column":7}}],"line":429},"46":{"loc":{"start":{"line":430,"column":8},"end":{"line":433,"column":9}},"type":"if","locations":[{"start":{"line":430,"column":8},"end":{"line":433,"column":9}},{"start":{"line":430,"column":8},"end":{"line":433,"column":9}}],"line":430},"47":{"loc":{"start":{"line":435,"column":6},"end":{"line":447,"column":7}},"type":"if","locations":[{"start":{"line":435,"column":6},"end":{"line":447,"column":7}},{"start":{"line":435,"column":6},"end":{"line":447,"column":7}}],"line":435},"48":{"loc":{"start":{"line":436,"column":8},"end":{"line":446,"column":9}},"type":"if","locations":[{"start":{"line":436,"column":8},"end":{"line":446,"column":9}},{"start":{"line":436,"column":8},"end":{"line":446,"column":9}}],"line":436},"49":{"loc":{"start":{"line":440,"column":10},"end":{"line":443,"column":11}},"type":"if","locations":[{"start":{"line":440,"column":10},"end":{"line":443,"column":11}},{"start":{"line":440,"column":10},"end":{"line":443,"column":11}}],"line":440},"50":{"loc":{"start":{"line":454,"column":6},"end":{"line":490,"column":7}},"type":"if","locations":[{"start":{"line":454,"column":6},"end":{"line":490,"column":7}},{"start":{"line":454,"column":6},"end":{"line":490,"column":7}}],"line":454},"51":{"loc":{"start":{"line":454,"column":10},"end":{"line":454,"column":44}},"type":"binary-expr","locations":[{"start":{"line":454,"column":10},"end":{"line":454,"column":20}},{"start":{"line":454,"column":24},"end":{"line":454,"column":44}}],"line":454},"52":{"loc":{"start":{"line":460,"column":10},"end":{"line":487,"column":11}},"type":"if","locations":[{"start":{"line":460,"column":10},"end":{"line":487,"column":11}},{"start":{"line":460,"column":10},"end":{"line":487,"column":11}}],"line":460},"53":{"loc":{"start":{"line":464,"column":12},"end":{"line":471,"column":13}},"type":"if","locations":[{"start":{"line":464,"column":12},"end":{"line":471,"column":13}},{"start":{"line":464,"column":12},"end":{"line":471,"column":13}}],"line":464},"54":{"loc":{"start":{"line":464,"column":16},"end":{"line":464,"column":66}},"type":"binary-expr","locations":[{"start":{"line":464,"column":16},"end":{"line":464,"column":33}},{"start":{"line":464,"column":37},"end":{"line":464,"column":66}}],"line":464},"55":{"loc":{"start":{"line":466,"column":14},"end":{"line":470,"column":15}},"type":"if","locations":[{"start":{"line":466,"column":14},"end":{"line":470,"column":15}},{"start":{"line":466,"column":14},"end":{"line":470,"column":15}}],"line":466},"56":{"loc":{"start":{"line":466,"column":18},"end":{"line":466,"column":46}},"type":"binary-expr","locations":[{"start":{"line":466,"column":18},"end":{"line":466,"column":25}},{"start":{"line":466,"column":29},"end":{"line":466,"column":46}}],"line":466},"57":{"loc":{"start":{"line":473,"column":12},"end":{"line":486,"column":13}},"type":"if","locations":[{"start":{"line":473,"column":12},"end":{"line":486,"column":13}},{"start":{"line":473,"column":12},"end":{"line":486,"column":13}}],"line":473},"58":{"loc":{"start":{"line":510,"column":4},"end":{"line":510,"column":29}},"type":"if","locations":[{"start":{"line":510,"column":4},"end":{"line":510,"column":29}},{"start":{"line":510,"column":4},"end":{"line":510,"column":29}}],"line":510},"59":{"loc":{"start":{"line":516,"column":4},"end":{"line":523,"column":5}},"type":"if","locations":[{"start":{"line":516,"column":4},"end":{"line":523,"column":5}},{"start":{"line":516,"column":4},"end":{"line":523,"column":5}}],"line":516},"60":{"loc":{"start":{"line":516,"column":8},"end":{"line":516,"column":46}},"type":"binary-expr","locations":[{"start":{"line":516,"column":8},"end":{"line":516,"column":15}},{"start":{"line":516,"column":19},"end":{"line":516,"column":46}}],"line":516},"61":{"loc":{"start":{"line":518,"column":11},"end":{"line":523,"column":5}},"type":"if","locations":[{"start":{"line":518,"column":11},"end":{"line":523,"column":5}},{"start":{"line":518,"column":11},"end":{"line":523,"column":5}}],"line":518},"62":{"loc":{"start":{"line":518,"column":15},"end":{"line":518,"column":53}},"type":"binary-expr","locations":[{"start":{"line":518,"column":15},"end":{"line":518,"column":22}},{"start":{"line":518,"column":26},"end":{"line":518,"column":53}}],"line":518},"63":{"loc":{"start":{"line":520,"column":6},"end":{"line":520,"column":213}},"type":"if","locations":[{"start":{"line":520,"column":6},"end":{"line":520,"column":213}},{"start":{"line":520,"column":6},"end":{"line":520,"column":213}}],"line":520},"64":{"loc":{"start":{"line":550,"column":2},"end":{"line":573,"column":3}},"type":"if","locations":[{"start":{"line":550,"column":2},"end":{"line":573,"column":3}},{"start":{"line":550,"column":2},"end":{"line":573,"column":3}}],"line":550},"65":{"loc":{"start":{"line":550,"column":6},"end":{"line":550,"column":35}},"type":"binary-expr","locations":[{"start":{"line":550,"column":6},"end":{"line":550,"column":16}},{"start":{"line":550,"column":20},"end":{"line":550,"column":35}}],"line":550},"66":{"loc":{"start":{"line":562,"column":6},"end":{"line":570,"column":7}},"type":"if","locations":[{"start":{"line":562,"column":6},"end":{"line":570,"column":7}},{"start":{"line":562,"column":6},"end":{"line":570,"column":7}}],"line":562},"67":{"loc":{"start":{"line":562,"column":10},"end":{"line":562,"column":38}},"type":"binary-expr","locations":[{"start":{"line":562,"column":10},"end":{"line":562,"column":17}},{"start":{"line":562,"column":21},"end":{"line":562,"column":38}}],"line":562},"68":{"loc":{"start":{"line":585,"column":25},"end":{"line":585,"column":50}},"type":"binary-expr","locations":[{"start":{"line":585,"column":25},"end":{"line":585,"column":44}},{"start":{"line":585,"column":48},"end":{"line":585,"column":50}}],"line":585}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":17,"47":34,"48":97,"49":97,"50":198,"51":198,"52":197,"53":1,"54":1,"55":197,"56":96,"57":101,"58":99,"59":2,"60":97,"61":1,"62":1,"63":0,"64":0,"65":0,"66":0,"67":0,"68":58,"69":58,"70":58,"71":5,"72":53,"73":53,"74":8,"75":53,"76":53,"77":0,"78":53,"79":53,"80":53,"81":58,"82":58,"83":55,"84":55,"85":3,"86":3,"87":0,"88":58,"89":58,"90":5,"91":5,"92":5,"93":0,"94":5,"95":53,"96":53,"97":0,"98":58,"99":11,"100":28,"101":16,"102":0,"103":16,"104":16,"105":12,"106":15,"107":8,"108":7,"109":11,"110":4,"111":7,"112":27,"113":11,"114":16,"115":11,"116":9,"117":9,"118":4,"119":4,"120":4,"121":4,"122":0,"123":0,"124":7,"125":7,"126":4,"127":4,"128":58,"129":58,"130":58,"131":58,"132":0,"133":58,"134":58,"135":58,"136":58,"137":25,"138":17,"139":17,"140":8,"141":8,"142":0,"143":58,"144":17,"145":17,"146":41,"147":11,"148":30,"149":30,"150":25,"151":30,"152":15,"153":58,"154":58,"155":12,"156":12,"157":58,"158":58,"159":58,"160":17,"161":17,"162":5,"163":5,"164":5,"165":12,"166":12,"167":0,"168":58,"169":58,"170":58,"171":58,"172":58,"173":58,"174":77,"175":77,"176":7,"177":77,"178":58,"179":3,"180":58,"181":58,"182":58,"183":1,"184":1,"185":0,"186":1,"187":3,"188":0,"189":3,"190":3,"191":1,"192":1,"193":4,"194":4,"195":4,"196":4,"197":4,"198":4,"199":4,"200":4,"201":3,"202":3,"203":3,"204":1,"205":3,"206":2,"207":1,"208":1,"209":0,"210":1,"211":1,"212":1,"213":1,"214":0,"215":1,"216":1,"217":1,"218":1,"219":0,"220":3,"221":1,"222":4,"223":1,"224":5,"225":5,"226":5,"227":5,"228":5,"229":0,"230":5,"231":5,"232":10,"233":10,"234":5,"235":10,"236":10,"237":0,"238":5,"239":5,"240":5,"241":5,"242":5,"243":5,"244":5,"245":5,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":5,"289":5,"290":5,"291":5,"292":5,"293":0,"294":0,"295":0,"296":0,"297":5,"298":270,"299":1,"300":269,"301":21,"302":3,"303":18,"304":248,"305":5,"306":0,"307":5,"308":58,"309":5,"310":1,"311":5,"312":5,"313":65,"314":65,"315":5,"316":65,"317":5,"318":5,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":5,"335":5,"336":5,"337":5,"338":5,"339":5,"340":5,"341":5,"342":5,"343":5,"344":5,"345":5},"f":{"0":17,"1":34,"2":97,"3":97,"4":198,"5":99,"6":2,"7":0,"8":0,"9":58,"10":58,"11":5,"12":11,"13":28,"14":15,"15":11,"16":27,"17":9,"18":9,"19":4,"20":4,"21":4,"22":4,"23":0,"24":0,"25":7,"26":7,"27":4,"28":4,"29":58,"30":77,"31":3,"32":1,"33":3,"34":1,"35":4,"36":4,"37":5,"38":10,"39":5,"40":5,"41":0,"42":0,"43":0,"44":0,"45":5,"46":0,"47":270,"48":0,"49":58,"50":1,"51":5,"52":65,"53":65,"54":0,"55":0},"b":{"0":[2,15],"1":[17,17],"2":[96,101],"3":[50],"4":[5,53],"5":[8,45],"6":[0,53],"7":[0,3],"8":[5,0],"9":[0,53],"10":[16,12],"11":[0,16],"12":[8,7],"13":[4,7],"14":[11,16],"15":[0],"16":[0,58],"17":[58,58],"18":[25,33],"19":[0,8],"20":[17,41],"21":[11,30],"22":[25,5],"23":[15,15],"24":[58,58],"25":[12,46],"26":[17,41],"27":[58,17],"28":[5,0],"29":[0,12],"30":[7,70],"31":[0],"32":[0,1],"33":[0,3],"34":[4,0],"35":[3,0],"36":[2,1],"37":[1,1],"38":[0,1],"39":[1,0],"40":[0,1],"41":[5,0],"42":[5,5],"43":[0,5],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[1,269],"60":[270,22],"61":[21,248],"62":[269,21],"63":[3,18],"64":[0,5],"65":[5,0],"66":[0,0],"67":[0,0],"68":[5,5]},"inputSourceMap":{"version":3,"sources":["application.js"],"names":["declareService","configureService","createProxyService","createService","createWebhook","kalisio","debug","debugLimiter","tooManyRequests","socket","message","key","error","TooManyRequests","translation","emit","setTimeout","disconnect","path","app","service","middlewares","feathersPath","get","feathersService","args","before","concat","push","after","use","apply","name","servicesPath","hooks","require","join","code","channels","_","forOwn","publisher","event","publish","options","targetService","proxyParams","params","proxiedParams","merge","proxyId","id","proxyData","data","proxyResult","result","find","create","update","patch","remove","createFeathersService","db","adapter","paginate","serviceOptions","Object","assign","disabled","undefined","fileName","dbService","modelsPath","configureModel","proxy","events","servicePath","contextId","context","serviceMixin","bind","mixin","getPath","withApiPrefix","getContextId","webhookPath","isAllowed","payload","filter","length","post","req","res","next","body","config","set","tokenPayload","passport","verifyJWT","accessToken","userId","user","getService","checkAuthorisation","Forbidden","BadRequest","has","operation","json","status","toJSON","setupLogger","logsConfig","logger","clear","console","logsTypes","getOwnPropertyNames","forEach","logType","level","process","env","NODE_ENV","add","transports","setupSockets","apiLimiter","connections","nbConnections","io","sockets","setMaxListeners","maxConnections","maxIpConnections","on","pid","conn","remoteAddress","reason","nbIpConnections","websocket","tokensPerInterval","interval","services","socketLimiter","SocketLimiter","packet","getTokensRemaining","tryRemoveTokens","configure","getServiceOptions","ObjectID","isValid","toString","_id","fn","call","http","handler","serviceUrl","url","URL","originalUrl","pathname","method","HttpLimiter","bodyParserConfig","bodyParser","urlencoded","extended","socketioConfig","auth","Database"],"mappings":"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","file":"application.js","sourceRoot":"D:/Development/kalisio/kdk/core/api","sourcesContent":["import path from 'path'\r\nimport url from 'url'\r\nimport makeDebug from 'debug'\r\nimport logger from 'winston'\r\nimport _ from 'lodash'\r\nimport sift from 'sift'\r\nimport 'winston-daily-rotate-file'\r\nimport compress from 'compression'\r\nimport cors from 'cors'\r\nimport helmet from 'helmet'\r\nimport bodyParser from 'body-parser'\r\nimport { RateLimiter as SocketLimiter } from 'limiter'\r\nimport HttpLimiter from 'express-rate-limit'\r\nimport feathers from '@feathersjs/feathers'\r\nimport configuration from '@feathersjs/configuration'\r\nimport { TooManyRequests, Forbidden, BadRequest } from '@feathersjs/errors'\r\nimport express from '@feathersjs/express'\r\nimport rest from '@feathersjs/express/rest'\r\nimport socketio from '@feathersjs/socketio'\r\nimport { ObjectID } from 'mongodb'\r\nimport { Database, idToString } from './db'\r\nimport auth, { authSocket } from './authentication'\r\n\r\nconst debug = makeDebug('kdk:core:application')\r\nconst debugLimiter = makeDebug('kdk:core:application:limiter')\r\n\r\nfunction tooManyRequests (socket, message, key) {\r\n debug(message)\r\n const error = new TooManyRequests(message, { translation: { key } })\r\n socket.emit('rate-limit', error)\r\n // Add a timeout so that error message is correctly handled\r\n setTimeout(() => socket.disconnect(true), 3000)\r\n}\r\n\r\nexport function declareService (path, app, service, middlewares = {}) {\r\n const feathersPath = app.get('apiPath') + '/' + path\r\n const feathersService = app.service(feathersPath)\r\n // Some internal Feathers service might internally declare the service\r\n if (feathersService) {\r\n return feathersService\r\n }\r\n // Initialize our service by providing any middleware as well\r\n let args = [feathersPath]\r\n if (middlewares.before) args = args.concat(middlewares.before)\r\n args.push(service)\r\n if (middlewares.after) args = args.concat(middlewares.after)\r\n app.use.apply(app, args)\r\n debug('Service declared on path ' + feathersPath)\r\n // Return the Feathers service, ie base service + Feathers' internals\r\n return app.service(feathersPath)\r\n}\r\n\r\nexport function configureService (name, service, servicesPath) {\r\n try {\r\n const hooks = require(path.join(servicesPath, name, name + '.hooks'))\r\n service.hooks(hooks)\r\n debug(name + ' service hooks configured on path ' + servicesPath)\r\n } catch (error) {\r\n debug('No ' + name + ' service hooks configured on path ' + servicesPath)\r\n if (error.code !== 'MODULE_NOT_FOUND') {\r\n // Log error in this case as this might be linked to a syntax error in required file\r\n debug(error)\r\n }\r\n // As this is optionnal this require has to fail silently\r\n }\r\n\r\n try {\r\n const channels = require(path.join(servicesPath, name, name + '.channels'))\r\n _.forOwn(channels, (publisher, event) => {\r\n if (event === 'all') service.publish(publisher)\r\n else service.publish(event, publisher)\r\n })\r\n debug(name + ' service channels configured on path ' + servicesPath)\r\n } catch (error) {\r\n debug('No ' + name + ' service channels configured on path ' + servicesPath)\r\n if (error.code !== 'MODULE_NOT_FOUND') {\r\n // Log error in this case as this might be linked to a syntax error in required file\r\n debug(error)\r\n }\r\n // As this is optionnal this require has to fail silently\r\n }\r\n\r\n return service\r\n}\r\n\r\nexport function createProxyService (options) {\r\n const targetService = options.service\r\n function proxyParams (params) {\r\n if (options.params) {\r\n let proxiedParams\r\n if (typeof options.params === 'function') {\r\n proxiedParams = options.params(params)\r\n } else {\r\n proxiedParams = _.merge(params, options.params)\r\n }\r\n return proxiedParams\r\n } else return params\r\n }\r\n function proxyId (id) {\r\n if (options.id) return options.id(id)\r\n else return id\r\n }\r\n function proxyData (data) {\r\n if (options.data) return options.data(data)\r\n else return data\r\n }\r\n function proxyResult (data) {\r\n if (options.result) return options.result(data)\r\n else return data\r\n }\r\n return {\r\n async find (params) { return proxyResult(await targetService.find(proxyParams(params))) },\r\n async get (id, params) { return proxyResult(await targetService.get(proxyId(id), proxyParams(params))) },\r\n async create (data, params) { return proxyResult(await targetService.create(proxyData(data), proxyParams(params))) },\r\n async update (id, data, params) { return proxyResult(await targetService.update(proxyId(id), proxyData(data), proxyParams(params))) },\r\n async patch (id, data, params) { return proxyResult(await targetService.patch(proxyId(id), proxyData(data), proxyParams(params))) },\r\n async remove (id, params) { return proxyResult(await targetService.remove(proxyId(id), proxyParams(params))) }\r\n }\r\n}\r\n\r\nexport function createService (name, app, options = {}) {\r\n const createFeathersService = require('feathers-' + app.db.adapter)\r\n\r\n const paginate = app.get('paginate')\r\n const serviceOptions = Object.assign({\r\n name: name,\r\n paginate\r\n }, options)\r\n if (serviceOptions.disabled) return undefined\r\n // For DB services a model has to be provided\r\n const fileName = serviceOptions.fileName || name\r\n\r\n let dbService = false\r\n try {\r\n if (serviceOptions.modelsPath) {\r\n const configureModel = require(path.join(serviceOptions.modelsPath, fileName + '.model.' + app.db.adapter))\r\n configureModel(app, serviceOptions)\r\n dbService = true\r\n }\r\n } catch (error) {\r\n debug('No ' + fileName + ' service model configured on path ' + serviceOptions.modelsPath)\r\n if (error.code !== 'MODULE_NOT_FOUND') {\r\n // Log error in this case as this might be linked to a syntax error in required file\r\n debug(error)\r\n }\r\n // As this is optionnal this require has to fail silently\r\n }\r\n\r\n // Initialize our service with any options it requires\r\n let service\r\n if (dbService) {\r\n service = createFeathersService(serviceOptions)\r\n dbService = service\r\n } else if (serviceOptions.proxy) {\r\n service = createProxyService(serviceOptions.proxy)\r\n } else {\r\n // Otherwise we expect the service to be provided as a Feathers service interface\r\n service = require(path.join(serviceOptions.servicesPath, fileName, fileName + '.service'))\r\n // If we get a function try to call it assuming it will return the service object\r\n if (typeof service === 'function') {\r\n service = service(name, app, serviceOptions)\r\n }\r\n // Need to set this manually for services not using class inheritance or default adapters\r\n if (serviceOptions.events) service.events = serviceOptions.events\r\n }\r\n\r\n // Get our initialized service so that we can register hooks and filters\r\n let servicePath = serviceOptions.path || name\r\n let contextId\r\n if (serviceOptions.context) {\r\n contextId = idToString(serviceOptions.context)\r\n servicePath = contextId + '/' + servicePath\r\n }\r\n service = declareService(servicePath, app, service, serviceOptions.middlewares)\r\n // Register hooks and event filters\r\n service = configureService(fileName, service, serviceOptions.servicesPath)\r\n // Optionnally a specific service mixin can be provided, apply it\r\n if (dbService && serviceOptions.servicesPath) {\r\n try {\r\n let serviceMixin = require(path.join(serviceOptions.servicesPath, fileName, fileName + '.service'))\r\n // If we get a function try to call it assuming it will return the mixin object\r\n if (typeof serviceMixin === 'function') {\r\n serviceMixin = serviceMixin.bind(dbService)(fileName, app, serviceOptions)\r\n }\r\n service.mixin(serviceMixin)\r\n } catch (error) {\r\n debug('No ' + fileName + ' service mixin configured on path ' + serviceOptions.servicesPath)\r\n if (error.code !== 'MODULE_NOT_FOUND') {\r\n // Log error in this case as this might be linked to a syntax error in required file\r\n debug(error)\r\n }\r\n // As this is optionnal this require has to fail silently\r\n }\r\n }\r\n // Then configuration\r\n service.name = name\r\n service.app = app\r\n service.options = serviceOptions\r\n service.path = servicePath\r\n service.context = serviceOptions.context\r\n\r\n // Add some utility functions\r\n service.getPath = function (withApiPrefix) {\r\n let path = service.path\r\n if (withApiPrefix) {\r\n path = app.get('apiPath') + '/' + path\r\n }\r\n return path\r\n }\r\n service.getContextId = function () {\r\n return contextId // As string\r\n }\r\n\r\n debug(service.name + ' service registration completed')\r\n app.emit('service', service)\r\n\r\n return service\r\n}\r\n\r\nexport function createWebhook (path, app, options = {}) {\r\n let webhookPath = path\r\n if (options.context) {\r\n webhookPath = idToString(options.context) + '/' + webhookPath\r\n }\r\n const isAllowed = (payload) => {\r\n // Default is to expose all services/operations\r\n if (!options.filter) return true\r\n const result = [payload].filter(sift(options.filter))\r\n return result.length > 0\r\n }\r\n\r\n app.post(app.get('apiPath') + '/webhooks/' + webhookPath, async (req, res, next) => {\r\n const payload = req.body\r\n const config = app.get('authentication')\r\n res.set('Content-Type', 'application/json')\r\n const params = {}\r\n try {\r\n // Authenticate when required\r\n if (config) {\r\n try {\r\n const tokenPayload = await app.passport.verifyJWT(payload.accessToken, config)\r\n if (tokenPayload.userId) {\r\n params.user = await app.getService('users').get(tokenPayload.userId)\r\n params.checkAuthorisation = true\r\n }\r\n } catch (error) {\r\n throw new Forbidden('Could not verify webhook')\r\n }\r\n }\r\n if (!isAllowed(payload)) throw new Forbidden('Service not allowed for webhook')\r\n const service = app.getService(payload.service, options.context || payload.context)\r\n if (!service) throw new BadRequest('Service could not be found')\r\n const args = []\r\n // Update/Patch/Remove\r\n if (_.has(payload, 'id')) args.push(_.get(payload, 'id'))\r\n // Create/Update/Patch\r\n if (_.has(payload, 'data')) args.push(_.get(payload, 'data'))\r\n // Params\r\n args.push(params)\r\n try {\r\n const result = await service[payload.operation].apply(service, args)\r\n // Send back result\r\n res.json(result)\r\n } catch (error) {\r\n throw new BadRequest('Service operation could not be performed')\r\n }\r\n } catch (error) {\r\n // Send back error\r\n res.status(error.code).json(error.toJSON())\r\n }\r\n })\r\n\r\n debug(`Webhook ${webhookPath} registration completed`)\r\n}\r\n\r\nfunction setupLogger (app) {\r\n debug('Setup application loggers')\r\n const logsConfig = app.get('logs')\r\n // Use winston default logger\r\n app.logger = logger\r\n // Remove winston defaults\r\n try {\r\n logger.clear()\r\n } catch (error) {\r\n // Logger might be down, use console\r\n console.error('Could not remove default logger transport(s)', error)\r\n }\r\n // We have one entry per log type\r\n const logsTypes = logsConfig ? Object.getOwnPropertyNames(logsConfig) : []\r\n // Create corresponding winston transports with options\r\n logsTypes.forEach(logType => {\r\n const options = logsConfig[logType]\r\n // Setup default log level if not defined\r\n if (!options.level) {\r\n options.level = (process.env.NODE_ENV === 'development' ? 'debug' : 'info')\r\n }\r\n try {\r\n logger.add(new logger.transports[logType](options))\r\n } catch (error) {\r\n // Logger might be down, use console\r\n console.error('Could not setup default log levels', error)\r\n }\r\n })\r\n}\r\n\r\nfunction setupSockets (app) {\r\n const apiLimiter = app.get('apiLimiter')\r\n const connections = {}\r\n let nbConnections = 0\r\n\r\n return io => {\r\n // By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.\r\n // The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.\r\n io.sockets.setMaxListeners(0)\r\n const maxConnections = _.get(apiLimiter, 'websocket.maxConcurrency', 0)\r\n const maxIpConnections = _.get(apiLimiter, 'websocket.concurrency', 0)\r\n\r\n io.on('connection', socket => {\r\n nbConnections++\r\n debug(`New socket connection on server with pid ${process.pid}`, socket.id, socket.conn.remoteAddress, nbConnections)\r\n // Setup disconnect handler first\r\n socket.on('disconnect', (reason) => {\r\n nbConnections--\r\n debug(reason)\r\n debug(`Socket disconnection on server with pid ${process.pid}`, socket.id, socket.conn.remoteAddress, nbConnections)\r\n if (maxIpConnections > 0) {\r\n const nbIpConnections = _.get(connections, socket.conn.remoteAddress) - 1\r\n debug('Total number of connections for', socket.id, socket.conn.remoteAddress, nbIpConnections)\r\n _.set(connections, socket.conn.remoteAddress, nbIpConnections)\r\n }\r\n })\r\n if (maxConnections > 0) {\r\n if (nbConnections > maxConnections) {\r\n tooManyRequests(socket, 'Too many concurrent connections (rate limiting)', 'RATE_LIMITING_CONCURRENCY')\r\n return\r\n }\r\n }\r\n if (maxIpConnections > 0) {\r\n if (_.has(connections, socket.conn.remoteAddress)) {\r\n const nbIpConnections = _.get(connections, socket.conn.remoteAddress) + 1\r\n debug('Total number of connections for', socket.id, socket.conn.remoteAddress, nbConnections)\r\n _.set(connections, socket.conn.remoteAddress, nbIpConnections)\r\n if (nbIpConnections > maxIpConnections) {\r\n tooManyRequests(socket, 'Too many concurrent connections (rate limiting)', 'RATE_LIMITING_CONCURRENCY')\r\n return\r\n }\r\n } else {\r\n _.set(connections, socket.conn.remoteAddress, 1)\r\n }\r\n }\r\n /* For debug purpose: trace all data received\r\n socket.use((packet, next) => {\r\n console.log(packet)\r\n next()\r\n })\r\n */\r\n if (apiLimiter && apiLimiter.websocket) {\r\n const { tokensPerInterval, interval } = apiLimiter.websocket\r\n // Function used to filter whitelisted services, defaults to none\r\n const services = _.get(apiLimiter.websocket, 'services', (service) => false)\r\n socket.socketLimiter = new SocketLimiter(tokensPerInterval, interval)\r\n socket.use((packet, next) => {\r\n if (packet.length > 0) {\r\n // Packets are formatted according to service interface,\r\n // e.g. like [service_method, service_path, id or data, params]\r\n // Bypass rate limiting on whitelist\r\n if ((packet.length > 1) && (typeof packet[1] === 'string')) {\r\n const service = app.service(packet[1])\r\n if (service && services(service)) {\r\n debugLimiter('By-pass rate limiting on whitelisted service operation', socket.id, socket.conn.remoteAddress, packet[0], packet[1])\r\n next()\r\n return\r\n }\r\n }\r\n debugLimiter(socket.socketLimiter.getTokensRemaining() + ' remaining API token for socket', socket.id, socket.conn.remoteAddress)\r\n if (!socket.socketLimiter.tryRemoveTokens(1)) { // if exceeded\r\n tooManyRequests(socket, 'Too many requests in a given amount of time (rate limiting)', 'RATE_LIMITING')\r\n // FIXME: calling this causes a client timeout\r\n // next(error)\r\n // Need to normalize the error object as JSON\r\n // let result = {}\r\n // Object.getOwnPropertyNames(error).forEach(key => (result[key] = error[key]))\r\n // Trying to send error like in https://github.com/feathersjs/transport-commons/blob/auk/src/events.js#L103\r\n // does not work either (also generates a client timeout)\r\n // socket.emit(`${servicePath} error`, result)\r\n // socket.emit(result)\r\n return\r\n }\r\n }\r\n next()\r\n })\r\n }\r\n\r\n authSocket(app, socket)\r\n })\r\n }\r\n}\r\n\r\nexport function kalisio () {\r\n const app = express(feathers())\r\n // By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.\r\n // The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.\r\n app.setMaxListeners(0)\r\n // Load app configuration first\r\n app.configure(configuration())\r\n // Then setup logger\r\n setupLogger(app)\r\n\r\n // This retrieve corresponding service options from app config if any\r\n app.getServiceOptions = function (name) {\r\n const services = app.get('services')\r\n if (!services) return {}\r\n return _.get(services, name, {})\r\n }\r\n // This avoid managing the API path before each service name\r\n app.getService = function (path, context) {\r\n // Context is given as string ID\r\n if (context && typeof context === 'string') {\r\n return app.service(app.get('apiPath') + '/' + context + '/' + path)\r\n } else if (context && typeof context === 'object') {\r\n // Could be Object ID or raw object\r\n if (ObjectID.isValid(context)) return app.service(app.get('apiPath') + '/' + context.toString() + '/' + path)\r\n else return app.service(app.get('apiPath') + '/' + context._id.toString() + '/' + path)\r\n } else {\r\n return app.service(app.get('apiPath') + '/' + path)\r\n }\r\n }\r\n // This is used to add hooks/filters to services\r\n app.configureService = function (name, service, servicesPath) {\r\n return configureService(name, service, servicesPath)\r\n }\r\n // This is used to create standard services\r\n app.createService = function (name, options) {\r\n return createService(name, app, options)\r\n }\r\n // This is used to create webhooks\r\n app.createWebhook = function (path, options) {\r\n return createWebhook(path, app, options)\r\n }\r\n // Override Feathers configure that do not manage async operations,\r\n // here we also simply call the function given as parameter but await for it\r\n app.configure = async function (fn) {\r\n await fn.call(this, this)\r\n return this\r\n }\r\n const apiLimiter = app.get('apiLimiter')\r\n if (apiLimiter && apiLimiter.http) {\r\n // Function used to filter whitelisted services, defaults to none\r\n const services = _.get(apiLimiter.http, 'services', (service) => false)\r\n const handler = (req, res, next) => {\r\n // Bypass rate limiting on whitelist\r\n let service\r\n try {\r\n const serviceUrl = new url.URL(req.originalUrl)\r\n service = app.service(serviceUrl.pathname)\r\n } catch (error) {\r\n debugLimiter(error)\r\n }\r\n if (service && services(service)) {\r\n debugLimiter('By-pass rate limiting on whitelisted service operation', req.method, path)\r\n next()\r\n } else {\r\n const error = new TooManyRequests('Too many requests in a given amount of time (rate limiting)',\r\n { translation: { key: 'RATE_LIMITING' } })\r\n res.status(error.code)\r\n res.set('Content-Type', 'application/json')\r\n res.json(Object.assign({}, error.toJSON()))\r\n }\r\n }\r\n app.use(app.get('apiPath'), new HttpLimiter(Object.assign({ handler }, apiLimiter.http)))\r\n }\r\n\r\n // Enable CORS, security, compression, and body parsing\r\n app.use(cors(app.get('cors')))\r\n app.use(helmet(app.get('helmet')))\r\n app.use(compress(app.get('compression')))\r\n const bodyParserConfig = app.get('bodyParser')\r\n app.use(bodyParser.json(_.get(bodyParserConfig, 'json')))\r\n app.use(bodyParser.urlencoded(Object.assign({ extended: true }, _.get(bodyParserConfig, 'urlencoded'))))\r\n\r\n // Set up plugins and providers\r\n app.configure(rest())\r\n const socketioConfig = app.get('socketio') || {}\r\n app.configure(socketio(Object.assign({ path: app.get('apiPath') + 'ws' }, socketioConfig), setupSockets(app)))\r\n app.configure(auth)\r\n\r\n // Initialize DB\r\n app.db = Database.create(app)\r\n\r\n return app\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2c059308dfea080ce19187228928998c2a694946","contentHash":"a55989af4fcf0d16fc5bad3db89416ffeab098d11e7517ce875e6e6222baf62d"},"D:\\Development\\kalisio\\kdk\\core\\api\\authentication.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\authentication.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":23}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":32}},"3":{"start":{"line":9,"column":13},"end":{"line":9,"column":29}},"4":{"start":{"line":11,"column":14},"end":{"line":11,"column":44}},"5":{"start":{"line":13,"column":14},"end":{"line":13,"column":31}},"6":{"start":{"line":15,"column":15},"end":{"line":15,"column":46}},"7":{"start":{"line":17,"column":0},"end":{"line":17,"column":37}},"8":{"start":{"line":19,"column":15},"end":{"line":19,"column":33}},"9":{"start":{"line":21,"column":24},"end":{"line":21,"column":53}},"10":{"start":{"line":23,"column":25},"end":{"line":23,"column":66}},"11":{"start":{"line":25,"column":14},"end":{"line":25,"column":43}},"12":{"start":{"line":27,"column":22},"end":{"line":27,"column":59}},"13":{"start":{"line":29,"column":23},"end":{"line":29,"column":62}},"14":{"start":{"line":31,"column":25},"end":{"line":31,"column":66}},"15":{"start":{"line":33,"column":26},"end":{"line":33,"column":68}},"16":{"start":{"line":35,"column":27},"end":{"line":35,"column":70}},"17":{"start":{"line":37,"column":28},"end":{"line":37,"column":72}},"18":{"start":{"line":39,"column":27},"end":{"line":39,"column":71}},"19":{"start":{"line":41,"column":28},"end":{"line":41,"column":72}},"20":{"start":{"line":43,"column":22},"end":{"line":43,"column":48}},"21":{"start":{"line":45,"column":23},"end":{"line":45,"column":62}},"22":{"start":{"line":47,"column":27},"end":{"line":47,"column":61}},"23":{"start":{"line":49,"column":28},"end":{"line":49,"column":72}},"24":{"start":{"line":51,"column":29},"end":{"line":51,"column":63}},"25":{"start":{"line":53,"column":30},"end":{"line":53,"column":76}},"26":{"start":{"line":55,"column":22},"end":{"line":55,"column":50}},"27":{"start":{"line":57,"column":23},"end":{"line":57,"column":62}},"28":{"start":{"line":59,"column":21},"end":{"line":59,"column":48}},"29":{"start":{"line":61,"column":22},"end":{"line":61,"column":60}},"30":{"start":{"line":63,"column":25},"end":{"line":63,"column":54}},"31":{"start":{"line":65,"column":26},"end":{"line":65,"column":68}},"32":{"start":{"line":67,"column":39},"end":{"line":67,"column":93}},"33":{"start":{"line":69,"column":14},"end":{"line":69,"column":61}},"34":{"start":{"line":70,"column":21},"end":{"line":70,"column":76}},"35":{"start":{"line":73,"column":2},"end":{"line":73,"column":17}},"36":{"start":{"line":74,"column":16},"end":{"line":74,"column":78}},"37":{"start":{"line":75,"column":2},"end":{"line":75,"column":35}},"38":{"start":{"line":77,"column":2},"end":{"line":77,"column":50}},"39":{"start":{"line":77,"column":19},"end":{"line":77,"column":42}},"40":{"start":{"line":81,"column":17},"end":{"line":81,"column":42}},"41":{"start":{"line":85,"column":2},"end":{"line":85,"column":49}},"42":{"start":{"line":85,"column":21},"end":{"line":85,"column":49}},"43":{"start":{"line":86,"column":2},"end":{"line":86,"column":41}},"44":{"start":{"line":90,"column":15},"end":{"line":90,"column":44}},"45":{"start":{"line":91,"column":2},"end":{"line":91,"column":43}},"46":{"start":{"line":92,"column":2},"end":{"line":97,"column":6}},"47":{"start":{"line":101,"column":15},"end":{"line":101,"column":44}},"48":{"start":{"line":102,"column":2},"end":{"line":102,"column":43}},"49":{"start":{"line":103,"column":2},"end":{"line":108,"column":6}},"50":{"start":{"line":112,"column":15},"end":{"line":112,"column":45}},"51":{"start":{"line":113,"column":2},"end":{"line":113,"column":43}},"52":{"start":{"line":114,"column":2},"end":{"line":119,"column":6}},"53":{"start":{"line":123,"column":14},"end":{"line":123,"column":18}},"54":{"start":{"line":124,"column":17},"end":{"line":124,"column":42}},"55":{"start":{"line":125,"column":2},"end":{"line":125,"column":22}},"56":{"start":{"line":125,"column":15},"end":{"line":125,"column":22}},"57":{"start":{"line":126,"column":18},"end":{"line":126,"column":32}},"58":{"start":{"line":127,"column":2},"end":{"line":129,"column":3}},"59":{"start":{"line":128,"column":4},"end":{"line":128,"column":71}},"60":{"start":{"line":131,"column":2},"end":{"line":131,"column":35}},"61":{"start":{"line":133,"column":2},"end":{"line":156,"column":3}},"62":{"start":{"line":135,"column":4},"end":{"line":155,"column":6}},"63":{"start":{"line":137,"column":6},"end":{"line":137,"column":38}},"64":{"start":{"line":137,"column":21},"end":{"line":137,"column":38}},"65":{"start":{"line":138,"column":100},"end":{"line":138,"column":121}},"66":{"start":{"line":140,"column":6},"end":{"line":140,"column":52}},"67":{"start":{"line":141,"column":6},"end":{"line":141,"column":51}},"68":{"start":{"line":141,"column":21},"end":{"line":141,"column":51}},"69":{"start":{"line":142,"column":6},"end":{"line":142,"column":51}},"70":{"start":{"line":142,"column":21},"end":{"line":142,"column":51}},"71":{"start":{"line":143,"column":6},"end":{"line":143,"column":49}},"72":{"start":{"line":143,"column":21},"end":{"line":143,"column":49}},"73":{"start":{"line":144,"column":6},"end":{"line":144,"column":49}},"74":{"start":{"line":144,"column":21},"end":{"line":144,"column":49}},"75":{"start":{"line":145,"column":6},"end":{"line":145,"column":43}},"76":{"start":{"line":145,"column":18},"end":{"line":145,"column":43}},"77":{"start":{"line":146,"column":6},"end":{"line":146,"column":45}},"78":{"start":{"line":146,"column":19},"end":{"line":146,"column":45}},"79":{"start":{"line":147,"column":6},"end":{"line":147,"column":45}},"80":{"start":{"line":147,"column":20},"end":{"line":147,"column":45}},"81":{"start":{"line":148,"column":6},"end":{"line":148,"column":61}},"82":{"start":{"line":148,"column":22},"end":{"line":148,"column":61}},"83":{"start":{"line":150,"column":23},"end":{"line":150,"column":207}},"84":{"start":{"line":151,"column":6},"end":{"line":151,"column":60}},"85":{"start":{"line":152,"column":6},"end":{"line":152,"column":48}},"86":{"start":{"line":154,"column":6},"end":{"line":154,"column":23}},"87":{"start":{"line":158,"column":2},"end":{"line":158,"column":55}},"88":{"start":{"line":159,"column":2},"end":{"line":159,"column":52}},"89":{"start":{"line":160,"column":2},"end":{"line":160,"column":54}},"90":{"start":{"line":161,"column":2},"end":{"line":164,"column":3}},"91":{"start":{"line":162,"column":26},"end":{"line":162,"column":89}},"92":{"start":{"line":163,"column":4},"end":{"line":163,"column":72}},"93":{"start":{"line":163,"column":36},"end":{"line":163,"column":70}},"94":{"start":{"line":165,"column":2},"end":{"line":168,"column":3}},"95":{"start":{"line":166,"column":26},"end":{"line":166,"column":89}},"96":{"start":{"line":167,"column":4},"end":{"line":167,"column":72}},"97":{"start":{"line":167,"column":36},"end":{"line":167,"column":70}},"98":{"start":{"line":169,"column":2},"end":{"line":172,"column":3}},"99":{"start":{"line":170,"column":27},"end":{"line":170,"column":93}},"100":{"start":{"line":171,"column":4},"end":{"line":171,"column":74}},"101":{"start":{"line":171,"column":37},"end":{"line":171,"column":72}},"102":{"start":{"line":176,"column":2},"end":{"line":181,"column":5}},"103":{"start":{"line":185,"column":21},"end":{"line":185,"column":46}},"104":{"start":{"line":186,"column":22},"end":{"line":186,"column":60}},"105":{"start":{"line":188,"column":2},"end":{"line":201,"column":3}},"106":{"start":{"line":189,"column":44},"end":{"line":189,"column":65}},"107":{"start":{"line":190,"column":4},"end":{"line":190,"column":85}},"108":{"start":{"line":191,"column":4},"end":{"line":200,"column":7}},"109":{"start":{"line":193,"column":6},"end":{"line":199,"column":7}},"110":{"start":{"line":194,"column":8},"end":{"line":194,"column":153}},"111":{"start":{"line":195,"column":8},"end":{"line":198,"column":9}},"112":{"start":{"line":197,"column":10},"end":{"line":197,"column":144}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":67,"column":9},"end":{"line":67,"column":31}},"loc":{"start":{"line":67,"column":37},"end":{"line":67,"column":95}},"line":67},"1":{"name":"tooManyRequests","decl":{"start":{"line":72,"column":9},"end":{"line":72,"column":24}},"loc":{"start":{"line":72,"column":47},"end":{"line":78,"column":1}},"line":72},"2":{"name":"(anonymous_2)","decl":{"start":{"line":77,"column":13},"end":{"line":77,"column":14}},"loc":{"start":{"line":77,"column":19},"end":{"line":77,"column":42}},"line":77},"3":{"name":"addOAuth2Client","decl":{"start":{"line":80,"column":9},"end":{"line":80,"column":24}},"loc":{"start":{"line":80,"column":50},"end":{"line":87,"column":1}},"line":80},"4":{"name":"addGithubOAuth2Client","decl":{"start":{"line":89,"column":9},"end":{"line":89,"column":30}},"loc":{"start":{"line":89,"column":50},"end":{"line":98,"column":1}},"line":89},"5":{"name":"addGoogleOAuth2Client","decl":{"start":{"line":100,"column":9},"end":{"line":100,"column":30}},"loc":{"start":{"line":100,"column":50},"end":{"line":109,"column":1}},"line":100},"6":{"name":"addCognitoOAuth2Client","decl":{"start":{"line":111,"column":9},"end":{"line":111,"column":31}},"loc":{"start":{"line":111,"column":51},"end":{"line":120,"column":1}},"line":111},"7":{"name":"auth","decl":{"start":{"line":122,"column":9},"end":{"line":122,"column":13}},"loc":{"start":{"line":122,"column":16},"end":{"line":182,"column":1}},"line":122},"8":{"name":"(anonymous_8)","decl":{"start":{"line":135,"column":28},"end":{"line":135,"column":29}},"loc":{"start":{"line":135,"column":40},"end":{"line":155,"column":5}},"line":135},"9":{"name":"(anonymous_9)","decl":{"start":{"line":163,"column":26},"end":{"line":163,"column":27}},"loc":{"start":{"line":163,"column":36},"end":{"line":163,"column":70}},"line":163},"10":{"name":"(anonymous_10)","decl":{"start":{"line":167,"column":26},"end":{"line":167,"column":27}},"loc":{"start":{"line":167,"column":36},"end":{"line":167,"column":70}},"line":167},"11":{"name":"(anonymous_11)","decl":{"start":{"line":171,"column":27},"end":{"line":171,"column":28}},"loc":{"start":{"line":171,"column":37},"end":{"line":171,"column":72}},"line":171},"12":{"name":"authSocket","decl":{"start":{"line":184,"column":9},"end":{"line":184,"column":19}},"loc":{"start":{"line":184,"column":33},"end":{"line":202,"column":1}},"line":184},"13":{"name":"(anonymous_13)","decl":{"start":{"line":191,"column":30},"end":{"line":191,"column":31}},"loc":{"start":{"line":191,"column":38},"end":{"line":200,"column":5}},"line":191}},"branchMap":{"0":{"loc":{"start":{"line":67,"column":46},"end":{"line":67,"column":92}},"type":"cond-expr","locations":[{"start":{"line":67,"column":70},"end":{"line":67,"column":73}},{"start":{"line":67,"column":76},"end":{"line":67,"column":92}}],"line":67},"1":{"loc":{"start":{"line":67,"column":46},"end":{"line":67,"column":67}},"type":"binary-expr","locations":[{"start":{"line":67,"column":46},"end":{"line":67,"column":49}},{"start":{"line":67,"column":53},"end":{"line":67,"column":67}}],"line":67},"2":{"loc":{"start":{"line":85,"column":2},"end":{"line":85,"column":49}},"type":"if","locations":[{"start":{"line":85,"column":2},"end":{"line":85,"column":49}},{"start":{"line":85,"column":2},"end":{"line":85,"column":49}}],"line":85},"3":{"loc":{"start":{"line":90,"column":15},"end":{"line":90,"column":44}},"type":"binary-expr","locations":[{"start":{"line":90,"column":15},"end":{"line":90,"column":32}},{"start":{"line":90,"column":36},"end":{"line":90,"column":44}}],"line":90},"4":{"loc":{"start":{"line":101,"column":15},"end":{"line":101,"column":44}},"type":"binary-expr","locations":[{"start":{"line":101,"column":15},"end":{"line":101,"column":32}},{"start":{"line":101,"column":36},"end":{"line":101,"column":44}}],"line":101},"5":{"loc":{"start":{"line":112,"column":15},"end":{"line":112,"column":45}},"type":"binary-expr","locations":[{"start":{"line":112,"column":15},"end":{"line":112,"column":32}},{"start":{"line":112,"column":36},"end":{"line":112,"column":45}}],"line":112},"6":{"loc":{"start":{"line":125,"column":2},"end":{"line":125,"column":22}},"type":"if","locations":[{"start":{"line":125,"column":2},"end":{"line":125,"column":22}},{"start":{"line":125,"column":2},"end":{"line":125,"column":22}}],"line":125},"7":{"loc":{"start":{"line":127,"column":2},"end":{"line":129,"column":3}},"type":"if","locations":[{"start":{"line":127,"column":2},"end":{"line":129,"column":3}},{"start":{"line":127,"column":2},"end":{"line":129,"column":3}}],"line":127},"8":{"loc":{"start":{"line":127,"column":6},"end":{"line":127,"column":29}},"type":"binary-expr","locations":[{"start":{"line":127,"column":6},"end":{"line":127,"column":13}},{"start":{"line":127,"column":17},"end":{"line":127,"column":29}}],"line":127},"9":{"loc":{"start":{"line":133,"column":2},"end":{"line":156,"column":3}},"type":"if","locations":[{"start":{"line":133,"column":2},"end":{"line":156,"column":3}},{"start":{"line":133,"column":2},"end":{"line":156,"column":3}}],"line":133},"10":{"loc":{"start":{"line":137,"column":6},"end":{"line":137,"column":38}},"type":"if","locations":[{"start":{"line":137,"column":6},"end":{"line":137,"column":38}},{"start":{"line":137,"column":6},"end":{"line":137,"column":38}}],"line":137},"11":{"loc":{"start":{"line":141,"column":6},"end":{"line":141,"column":51}},"type":"if","locations":[{"start":{"line":141,"column":6},"end":{"line":141,"column":51}},{"start":{"line":141,"column":6},"end":{"line":141,"column":51}}],"line":141},"12":{"loc":{"start":{"line":142,"column":6},"end":{"line":142,"column":51}},"type":"if","locations":[{"start":{"line":142,"column":6},"end":{"line":142,"column":51}},{"start":{"line":142,"column":6},"end":{"line":142,"column":51}}],"line":142},"13":{"loc":{"start":{"line":143,"column":6},"end":{"line":143,"column":49}},"type":"if","locations":[{"start":{"line":143,"column":6},"end":{"line":143,"column":49}},{"start":{"line":143,"column":6},"end":{"line":143,"column":49}}],"line":143},"14":{"loc":{"start":{"line":144,"column":6},"end":{"line":144,"column":49}},"type":"if","locations":[{"start":{"line":144,"column":6},"end":{"line":144,"column":49}},{"start":{"line":144,"column":6},"end":{"line":144,"column":49}}],"line":144},"15":{"loc":{"start":{"line":145,"column":6},"end":{"line":145,"column":43}},"type":"if","locations":[{"start":{"line":145,"column":6},"end":{"line":145,"column":43}},{"start":{"line":145,"column":6},"end":{"line":145,"column":43}}],"line":145},"16":{"loc":{"start":{"line":146,"column":6},"end":{"line":146,"column":45}},"type":"if","locations":[{"start":{"line":146,"column":6},"end":{"line":146,"column":45}},{"start":{"line":146,"column":6},"end":{"line":146,"column":45}}],"line":146},"17":{"loc":{"start":{"line":147,"column":6},"end":{"line":147,"column":45}},"type":"if","locations":[{"start":{"line":147,"column":6},"end":{"line":147,"column":45}},{"start":{"line":147,"column":6},"end":{"line":147,"column":45}}],"line":147},"18":{"loc":{"start":{"line":148,"column":6},"end":{"line":148,"column":61}},"type":"if","locations":[{"start":{"line":148,"column":6},"end":{"line":148,"column":61}},{"start":{"line":148,"column":6},"end":{"line":148,"column":61}}],"line":148},"19":{"loc":{"start":{"line":161,"column":2},"end":{"line":164,"column":3}},"type":"if","locations":[{"start":{"line":161,"column":2},"end":{"line":164,"column":3}},{"start":{"line":161,"column":2},"end":{"line":164,"column":3}}],"line":161},"20":{"loc":{"start":{"line":162,"column":26},"end":{"line":162,"column":89}},"type":"cond-expr","locations":[{"start":{"line":162,"column":58},"end":{"line":162,"column":73}},{"start":{"line":162,"column":76},"end":{"line":162,"column":89}}],"line":162},"21":{"loc":{"start":{"line":165,"column":2},"end":{"line":168,"column":3}},"type":"if","locations":[{"start":{"line":165,"column":2},"end":{"line":168,"column":3}},{"start":{"line":165,"column":2},"end":{"line":168,"column":3}}],"line":165},"22":{"loc":{"start":{"line":166,"column":26},"end":{"line":166,"column":89}},"type":"cond-expr","locations":[{"start":{"line":166,"column":58},"end":{"line":166,"column":73}},{"start":{"line":166,"column":76},"end":{"line":166,"column":89}}],"line":166},"23":{"loc":{"start":{"line":169,"column":2},"end":{"line":172,"column":3}},"type":"if","locations":[{"start":{"line":169,"column":2},"end":{"line":172,"column":3}},{"start":{"line":169,"column":2},"end":{"line":172,"column":3}}],"line":169},"24":{"loc":{"start":{"line":170,"column":27},"end":{"line":170,"column":93}},"type":"cond-expr","locations":[{"start":{"line":170,"column":60},"end":{"line":170,"column":76}},{"start":{"line":170,"column":79},"end":{"line":170,"column":93}}],"line":170},"25":{"loc":{"start":{"line":186,"column":22},"end":{"line":186,"column":60}},"type":"cond-expr","locations":[{"start":{"line":186,"column":35},"end":{"line":186,"column":53}},{"start":{"line":186,"column":56},"end":{"line":186,"column":60}}],"line":186},"26":{"loc":{"start":{"line":188,"column":2},"end":{"line":201,"column":3}},"type":"if","locations":[{"start":{"line":188,"column":2},"end":{"line":201,"column":3}},{"start":{"line":188,"column":2},"end":{"line":201,"column":3}}],"line":188},"27":{"loc":{"start":{"line":188,"column":6},"end":{"line":188,"column":42}},"type":"binary-expr","locations":[{"start":{"line":188,"column":6},"end":{"line":188,"column":17}},{"start":{"line":188,"column":21},"end":{"line":188,"column":42}}],"line":188},"28":{"loc":{"start":{"line":193,"column":6},"end":{"line":199,"column":7}},"type":"if","locations":[{"start":{"line":193,"column":6},"end":{"line":199,"column":7}},{"start":{"line":193,"column":6},"end":{"line":199,"column":7}}],"line":193},"29":{"loc":{"start":{"line":195,"column":8},"end":{"line":198,"column":9}},"type":"if","locations":[{"start":{"line":195,"column":8},"end":{"line":198,"column":9}},{"start":{"line":195,"column":8},"end":{"line":198,"column":9}}],"line":195}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":13,"33":1,"34":1,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":5,"54":5,"55":5,"56":0,"57":5,"58":5,"59":0,"60":5,"61":5,"62":5,"63":16,"64":12,"65":4,"66":4,"67":4,"68":4,"69":4,"70":4,"71":4,"72":4,"73":4,"74":4,"75":4,"76":4,"77":4,"78":4,"79":4,"80":0,"81":4,"82":4,"83":4,"84":4,"85":4,"86":4,"87":5,"88":5,"89":5,"90":5,"91":0,"92":0,"93":0,"94":5,"95":0,"96":0,"97":0,"98":5,"99":0,"100":0,"101":0,"102":5,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0},"f":{"0":13,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":5,"8":16,"9":0,"10":0,"11":0,"12":0,"13":0},"b":{"0":[0,13],"1":[13,13],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,5],"7":[0,5],"8":[5,0],"9":[5,0],"10":[12,4],"11":[4,0],"12":[4,0],"13":[4,0],"14":[4,0],"15":[4,0],"16":[4,0],"17":[0,4],"18":[4,0],"19":[0,5],"20":[0,0],"21":[0,5],"22":[0,0],"23":[0,5],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0]},"inputSourceMap":{"version":3,"sources":["authentication.js"],"names":["auth","authSocket","debug","debugLimiter","tooManyRequests","socket","message","key","error","TooManyRequests","translation","emit","setTimeout","disconnect","addOAuth2Client","app","name","clientConfig","config","get","authenticationProviders","push","addGithubOAuth2Client","configure","Strategy","GithubStrategy","Verifier","OAuth2Verifier","handler","addGoogleOAuth2Client","GoogleStrategy","addCognitoOAuth2Client","CognitoStrategy","limiter","http","use","path","HttpLimiter","passwordPolicy","validator","getPasswordPolicy","minLength","maxLength","uppercase","lowercase","digits","symbols","noSpaces","prohibited","PasswordValidator","is","min","max","has","not","spaces","oneOf","verifier","local","_","merge","usernameField","passwordField","pick","comparePassword","_comparePassword","options","github","githubClients","Array","isArray","forEach","google","googleClients","cognito","cognitoClients","getService","hooks","before","create","authentication","authenticate","strategies","remove","authConfig","authLimiter","websocket","tokensPerInterval","interval","authSocketLimiter","SocketLimiter","on","data","strategy","getTokensRemaining","id","conn","remoteAddress","tryRemoveTokens"],"mappings":";;;;;kBAsEwBA,I;QAmERC,U,GAAAA,U;;AAzIhB;;;;AACA;;;;AACA;;AACA;;AACA;;;;AACA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,MAAMC,QAAQ,qBAAU,yBAAV,CAAd;AACA,MAAMC,eAAe,qBAAU,iCAAV,CAArB;;AAEA,SAASC,eAAT,CAA0BC,MAA1B,EAAkCC,OAAlC,EAA2CC,GAA3C,EAAgD;AAC9CL,QAAMI,OAAN;AACA,QAAME,QAAQ,IAAIC,uBAAJ,CAAoBH,OAApB,EAA6B,EAAEI,aAAa,EAAEH,GAAF,EAAf,EAA7B,CAAd;AACAF,SAAOM,IAAP,CAAY,YAAZ,EAA0BH,KAA1B;AACA;AACAI,aAAW,MAAMP,OAAOQ,UAAP,CAAkB,IAAlB,CAAjB,EAA0C,IAA1C;AACD;;AAED,SAASC,eAAT,CAA0BC,GAA1B,EAA+BC,IAA/B,EAAqCC,YAArC,EAAmD;AACjD,QAAMC,SAASH,IAAII,GAAJ,CAAQ,gBAAR,CAAf;AACA;AACA;AACA;AACA,MAAI,CAACD,OAAOF,IAAP,CAAL,EAAmBE,OAAOF,IAAP,IAAeC,YAAf;AACnBF,MAAIK,uBAAJ,CAA4BC,IAA5B,CAAiCL,IAAjC;AACD;;AAED,SAASM,qBAAT,CAAgCP,GAAhC,EAAqCE,YAArC,EAAmD;AACjD,QAAMD,OAAOC,aAAaD,IAAb,IAAqB,QAAlC;AACAF,kBAAgBC,GAAhB,EAAqBC,IAArB,EAA2BC,YAA3B;AACAF,MAAIQ,SAAJ,CAAc,mCAAO;AACnBP,QADmB;AAEnBQ,cAAUC,wBAFS;AAGnBC,cAAUC,wBAHS;AAInBC,aAAS,6BAAcX,YAAd;AAJU,GAAP,CAAd;AAMD;;AAED,SAASY,qBAAT,CAAgCd,GAAhC,EAAqCE,YAArC,EAAmD;AACjD,QAAMD,OAAOC,aAAaD,IAAb,IAAqB,QAAlC;AACAF,kBAAgBC,GAAhB,EAAqBC,IAArB,EAA2BC,YAA3B;AACAF,MAAIQ,SAAJ,CAAc,mCAAO;AACnBP,QADmB;AAEnBQ,cAAUM,6BAFS;AAGnBJ,cAAUC,wBAHS;AAInBC,aAAS,6BAAcX,YAAd;AAJU,GAAP,CAAd;AAMD;;AAED,SAASc,sBAAT,CAAiChB,GAAjC,EAAsCE,YAAtC,EAAoD;AAClD,QAAMD,OAAOC,aAAaD,IAAb,IAAqB,SAAlC;AACAF,kBAAgBC,GAAhB,EAAqBC,IAArB,EAA2BC,YAA3B;AACAF,MAAIQ,SAAJ,CAAc,mCAAO;AACnBP,QADmB;AAEnBQ,cAAUQ,+BAFS;AAGnBN,cAAUC,wBAHS;AAInBC,aAAS,6BAAcX,YAAd;AAJU,GAAP,CAAd;AAMD;;AAEc,SAASjB,IAAT,GAAiB;AAC9B,QAAMe,MAAM,IAAZ;AACA,QAAMG,SAASH,IAAII,GAAJ,CAAQ,gBAAR,CAAf;AACA,MAAI,CAACD,MAAL,EAAa;AACb,QAAMe,UAAUf,OAAOe,OAAvB;AACA,MAAIA,WAAWA,QAAQC,IAAvB,EAA6B;AAC3BnB,QAAIoB,GAAJ,CAAQjB,OAAOkB,IAAf,EAAqB,IAAIC,0BAAJ,CAAgBJ,QAAQC,IAAxB,CAArB;AACD;AACD;AACAnB,MAAIK,uBAAJ,GAA8B,EAA9B;AACA;AACA,MAAIF,OAAOoB,cAAX,EAA2B;AACzB,QAAIC,SAAJ;AACAxB,QAAIyB,iBAAJ,GAAwB,YAAY;AAClC;AACA,UAAID,SAAJ,EAAe,OAAOA,SAAP;AACf,YAAM,EAAEE,SAAF,EAAaC,SAAb,EAAwBC,SAAxB,EAAmCC,SAAnC,EAA8CC,MAA9C,EAAsDC,OAAtD,EAA+DC,QAA/D,EAAyEC,UAAzE,KAAwF9B,OAAOoB,cAArG;;AAEAC,kBAAY,IAAIU,2BAAJ,EAAZ;AACA,UAAIR,SAAJ,EAAeF,UAAUW,EAAV,GAAeC,GAAf,CAAmBV,SAAnB;AACf,UAAIC,SAAJ,EAAeH,UAAUW,EAAV,GAAeE,GAAf,CAAmBV,SAAnB;AACf,UAAIC,SAAJ,EAAeJ,UAAUc,GAAV,GAAgBV,SAAhB;AACf,UAAIC,SAAJ,EAAeL,UAAUc,GAAV,GAAgBT,SAAhB;AACf,UAAIC,MAAJ,EAAYN,UAAUc,GAAV,GAAgBR,MAAhB;AACZ,UAAIC,OAAJ,EAAaP,UAAUc,GAAV,GAAgBP,OAAhB;AACb,UAAIC,QAAJ,EAAcR,UAAUe,GAAV,GAAgBC,MAAhB;AACd,UAAIP,UAAJ,EAAgBT,UAAUW,EAAV,GAAeI,GAAf,GAAqBE,KAArB,CAA2BR,UAA3B;AAChB;AACA,YAAMS,WAAW,IAAIC,8BAAMhC,QAAV,CAAmBX,GAAnB,EAAwB4C,iBAAEC,KAAF,CAAQ,EAAEC,eAAe,OAAjB,EAA0BC,eAAe,UAAzC,EAAR,EACvCH,iBAAEI,IAAF,CAAO7C,MAAP,EAAe,CAAC,SAAD,CAAf,CADuC,EACVA,OAAOwC,KADG,CAAxB,CAAjB;AAEAnB,gBAAUyB,eAAV,GAA4BP,SAASQ,gBAArC;AACA1B,gBAAU2B,OAAV,GAAoBhD,OAAOoB,cAA3B;;AAEA,aAAOC,SAAP;AACD,KArBD;AAsBD;AACD;AACAxB,MAAIQ,SAAJ,CAAc,8BAAeL,MAAf,CAAd;AACAH,MAAIQ,SAAJ,CAAc,kCAAd;AACAR,MAAIQ,SAAJ,CAAc,oCAAd;AACA,MAAIL,OAAOiD,MAAX,EAAmB;AACjB,UAAMC,gBAAiB,CAACC,MAAMC,OAAN,CAAcpD,OAAOiD,MAArB,CAAD,GAAgC,CAACjD,OAAOiD,MAAR,CAAhC,GAAkDjD,OAAOiD,MAAhF;AACAC,kBAAcG,OAAd,CAAsBrD,UAAUI,sBAAsBP,GAAtB,EAA2BG,MAA3B,CAAhC;AACD;AACD,MAAIA,OAAOsD,MAAX,EAAmB;AACjB,UAAMC,gBAAiB,CAACJ,MAAMC,OAAN,CAAcpD,OAAOsD,MAArB,CAAD,GAAgC,CAACtD,OAAOsD,MAAR,CAAhC,GAAkDtD,OAAOsD,MAAhF;AACAC,kBAAcF,OAAd,CAAsBrD,UAAUW,sBAAsBd,GAAtB,EAA2BG,MAA3B,CAAhC;AACD;AACD,MAAIA,OAAOwD,OAAX,EAAoB;AAClB,UAAMC,iBAAkB,CAACN,MAAMC,OAAN,CAAcpD,OAAOwD,OAArB,CAAD,GAAiC,CAACxD,OAAOwD,OAAR,CAAjC,GAAoDxD,OAAOwD,OAAnF;AACAC,mBAAeJ,OAAf,CAAuBrD,UAAUa,uBAAuBhB,GAAvB,EAA4BG,MAA5B,CAAjC;AACD;AACD;AACA;AACA;AACAH,MAAI6D,UAAJ,CAAe,gBAAf,EAAiCC,KAAjC,CAAuC;AACrCC,YAAQ;AACNC,cAAQ,CACNC,yBAAeH,KAAf,CAAqBI,YAArB,CAAkC/D,OAAOgE,UAAzC,CADM,CADF;AAINC,cAAQ,CACNH,yBAAeH,KAAf,CAAqBI,YAArB,CAAkC,KAAlC,CADM;AAJF;AAD6B,GAAvC;AAUD;;AAEM,SAAShF,UAAT,CAAqBc,GAArB,EAA0BV,MAA1B,EAAkC;AACvC,QAAM+E,aAAarE,IAAII,GAAJ,CAAQ,gBAAR,CAAnB;AACA,QAAMkE,cAAeD,aAAaA,WAAWnD,OAAxB,GAAkC,IAAvD;;AAEA,MAAIoD,eAAeA,YAAYC,SAA/B,EAA0C;AACxC,UAAM,EAAEC,iBAAF,EAAqBC,QAArB,KAAkCH,YAAYC,SAApD;AACAjF,WAAOoF,iBAAP,GAA2B,IAAIC,oBAAJ,CAAkBH,iBAAlB,EAAqCC,QAArC,CAA3B;AACAnF,WAAOsF,EAAP,CAAU,cAAV,EAA2BC,IAAD,IAAU;AAClC;AACA,UAAIA,KAAKC,QAAL,KAAkB,OAAtB,EAA+B;AAC7B1F,qBAAaE,OAAOoF,iBAAP,CAAyBK,kBAAzB,KAAgD,4CAA7D,EAA2GzF,OAAO0F,EAAlH,EAAsH1F,OAAO2F,IAAP,CAAYC,aAAlI;AACA,YAAI,CAAC5F,OAAOoF,iBAAP,CAAyBS,eAAzB,CAAyC,CAAzC,CAAL,EAAkD;AAAE;AAClD9F,0BAAgBC,MAAhB,EAAwB,4EAAxB,EAAsG,8BAAtG;AACD;AACF;AACF,KARD;AASD;AACF","file":"authentication.js","sourceRoot":"D:/Development/kalisio/kdk/core/api","sourcesContent":["import makeDebug from 'debug'\r\nimport _ from 'lodash'\r\nimport 'winston-daily-rotate-file'\r\nimport { RateLimiter as SocketLimiter } from 'limiter'\r\nimport HttpLimiter from 'express-rate-limit'\r\nimport { TooManyRequests } from '@feathersjs/errors'\r\nimport authentication from '@feathersjs/authentication'\r\nimport jwt from '@feathersjs/authentication-jwt'\r\nimport local from '@feathersjs/authentication-local'\r\nimport oauth2 from '@feathersjs/authentication-oauth2'\r\nimport GithubStrategy from 'passport-github'\r\nimport GoogleStrategy from 'passport-google-oauth20'\r\nimport CognitoStrategy from 'passport-oauth2-cognito'\r\nimport OAuth2Verifier from './oauth2-verifier'\r\nimport OAuth2Handler from './oauth2-handler'\r\nimport PasswordValidator from 'password-validator'\r\n\r\nconst debug = makeDebug('kdk:core:authentication')\r\nconst debugLimiter = makeDebug('kdk:core:authentication:limiter')\r\n\r\nfunction tooManyRequests (socket, message, key) {\r\n debug(message)\r\n const error = new TooManyRequests(message, { translation: { key } })\r\n socket.emit('rate-limit', error)\r\n // Add a timeout so that error message is correctly handled\r\n setTimeout(() => socket.disconnect(true), 3000)\r\n}\r\n\r\nfunction addOAuth2Client (app, name, clientConfig) {\r\n const config = app.get('authentication')\r\n // Feathers expect each client config to be a key in the globel app config\r\n // However on our side we manage an array of config by provider\r\n // so that we update config in place to reflect this setup in Feathers\r\n if (!config[name]) config[name] = clientConfig\r\n app.authenticationProviders.push(name)\r\n}\r\n\r\nfunction addGithubOAuth2Client (app, clientConfig) {\r\n const name = clientConfig.name || 'github'\r\n addOAuth2Client(app, name, clientConfig)\r\n app.configure(oauth2({\r\n name,\r\n Strategy: GithubStrategy,\r\n Verifier: OAuth2Verifier,\r\n handler: OAuth2Handler(clientConfig)\r\n }))\r\n}\r\n\r\nfunction addGoogleOAuth2Client (app, clientConfig) {\r\n const name = clientConfig.name || 'google'\r\n addOAuth2Client(app, name, clientConfig)\r\n app.configure(oauth2({\r\n name,\r\n Strategy: GoogleStrategy,\r\n Verifier: OAuth2Verifier,\r\n handler: OAuth2Handler(clientConfig)\r\n }))\r\n}\r\n\r\nfunction addCognitoOAuth2Client (app, clientConfig) {\r\n const name = clientConfig.name || 'cognito'\r\n addOAuth2Client(app, name, clientConfig)\r\n app.configure(oauth2({\r\n name,\r\n Strategy: CognitoStrategy,\r\n Verifier: OAuth2Verifier,\r\n handler: OAuth2Handler(clientConfig)\r\n }))\r\n}\r\n\r\nexport default function auth () {\r\n const app = this\r\n const config = app.get('authentication')\r\n if (!config) return\r\n const limiter = config.limiter\r\n if (limiter && limiter.http) {\r\n app.use(config.path, new HttpLimiter(limiter.http))\r\n }\r\n // Store availalbe OAuth2 providers\r\n app.authenticationProviders = []\r\n // Get access to password validator if a policy is defined\r\n if (config.passwordPolicy) {\r\n let validator\r\n app.getPasswordPolicy = function () {\r\n // Create on first access, should not be done outside a function because the app has not yet been correctly initialized\r\n if (validator) return validator\r\n const { minLength, maxLength, uppercase, lowercase, digits, symbols, noSpaces, prohibited } = config.passwordPolicy\r\n\r\n validator = new PasswordValidator()\r\n if (minLength) validator.is().min(minLength)\r\n if (maxLength) validator.is().max(maxLength)\r\n if (uppercase) validator.has().uppercase()\r\n if (lowercase) validator.has().lowercase()\r\n if (digits) validator.has().digits()\r\n if (symbols) validator.has().symbols()\r\n if (noSpaces) validator.not().spaces()\r\n if (prohibited) validator.is().not().oneOf(prohibited)\r\n // Add util functions/options to compare with previous passwords stored in history when required\r\n const verifier = new local.Verifier(app, _.merge({ usernameField: 'email', passwordField: 'password' },\r\n _.pick(config, ['service']), config.local))\r\n validator.comparePassword = verifier._comparePassword\r\n validator.options = config.passwordPolicy\r\n\r\n return validator\r\n }\r\n }\r\n // Set up authentication with the secret\r\n app.configure(authentication(config))\r\n app.configure(jwt())\r\n app.configure(local())\r\n if (config.github) {\r\n const githubClients = (!Array.isArray(config.github) ? [config.github] : config.github)\r\n githubClients.forEach(config => addGithubOAuth2Client(app, config))\r\n }\r\n if (config.google) {\r\n const googleClients = (!Array.isArray(config.google) ? [config.google] : config.google)\r\n googleClients.forEach(config => addGoogleOAuth2Client(app, config))\r\n }\r\n if (config.cognito) {\r\n const cognitoClients = (!Array.isArray(config.cognito) ? [config.cognito] : config.cognito)\r\n cognitoClients.forEach(config => addCognitoOAuth2Client(app, config))\r\n }\r\n // The `authentication` service is used to create a JWT.\r\n // The before `create` hook registers strategies that can be used\r\n // to create a new valid JWT (e.g. local or oauth2)\r\n app.getService('authentication').hooks({\r\n before: {\r\n create: [\r\n authentication.hooks.authenticate(config.strategies)\r\n ],\r\n remove: [\r\n authentication.hooks.authenticate('jwt')\r\n ]\r\n }\r\n })\r\n}\r\n\r\nexport function authSocket (app, socket) {\r\n const authConfig = app.get('authentication')\r\n const authLimiter = (authConfig ? authConfig.limiter : null)\r\n\r\n if (authLimiter && authLimiter.websocket) {\r\n const { tokensPerInterval, interval } = authLimiter.websocket\r\n socket.authSocketLimiter = new SocketLimiter(tokensPerInterval, interval)\r\n socket.on('authenticate', (data) => {\r\n // We only limit password guessing\r\n if (data.strategy === 'local') {\r\n debugLimiter(socket.authSocketLimiter.getTokensRemaining() + ' remaining authentication token for socket', socket.id, socket.conn.remoteAddress)\r\n if (!socket.authSocketLimiter.tryRemoveTokens(1)) { // if exceeded\r\n tooManyRequests(socket, 'Too many authentication requests in a given amount of time (rate limiting)', 'RATE_LIMITING_AUTHENTICATION')\r\n }\r\n }\r\n })\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fe25453f82d837cfbea8f08183d81c1bd0896b65","contentHash":"bb641dc42625bc5449dce264f291d483b78342588e1cb941f75e7a99c15884d4"},"D:\\Development\\kalisio\\kdk\\core\\api\\oauth2-verifier.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\oauth2-verifier.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":13},"end":{"line":7,"column":29}},"2":{"start":{"line":9,"column":14},"end":{"line":9,"column":44}},"3":{"start":{"line":11,"column":14},"end":{"line":11,"column":31}},"4":{"start":{"line":13,"column":15},"end":{"line":13,"column":46}},"5":{"start":{"line":15,"column":27},"end":{"line":15,"column":71}},"6":{"start":{"line":17,"column":39},"end":{"line":17,"column":93}},"7":{"start":{"line":19,"column":14},"end":{"line":19,"column":75}},"8":{"start":{"line":23,"column":4},"end":{"line":23,"column":55}},"9":{"start":{"line":24,"column":4},"end":{"line":24,"column":83}},"10":{"start":{"line":25,"column":4},"end":{"line":25,"column":64}},"11":{"start":{"line":26,"column":4},"end":{"line":26,"column":24}},"12":{"start":{"line":30,"column":20},"end":{"line":30,"column":32}},"13":{"start":{"line":31,"column":17},"end":{"line":31,"column":29}},"14":{"start":{"line":32,"column":15},"end":{"line":32,"column":38}},"15":{"start":{"line":33,"column":4},"end":{"line":33,"column":47}},"16":{"start":{"line":35,"column":20},"end":{"line":38,"column":5}},"17":{"start":{"line":40,"column":4},"end":{"line":40,"column":74}},"18":{"start":{"line":44,"column":20},"end":{"line":44,"column":32}},"19":{"start":{"line":45,"column":17},"end":{"line":45,"column":29}},"20":{"start":{"line":46,"column":19},"end":{"line":49,"column":5}},"21":{"start":{"line":51,"column":15},"end":{"line":51,"column":38}},"22":{"start":{"line":52,"column":4},"end":{"line":52,"column":75}},"23":{"start":{"line":54,"column":4},"end":{"line":54,"column":70}},"24":{"start":{"line":58,"column":4},"end":{"line":58,"column":34}},"25":{"start":{"line":59,"column":20},"end":{"line":59,"column":32}},"26":{"start":{"line":60,"column":18},"end":{"line":63,"column":5}},"27":{"start":{"line":64,"column":17},"end":{"line":64,"column":55}},"28":{"start":{"line":68,"column":4},"end":{"line":70,"column":5}},"29":{"start":{"line":69,"column":6},"end":{"line":69,"column":37}},"30":{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},"31":{"start":{"line":74,"column":6},"end":{"line":74,"column":44}},"32":{"start":{"line":80,"column":4},"end":{"line":82,"column":5}},"33":{"start":{"line":81,"column":6},"end":{"line":81,"column":139}},"34":{"start":{"line":81,"column":63},"end":{"line":81,"column":81}},"35":{"start":{"line":81,"column":98},"end":{"line":81,"column":137}},"36":{"start":{"line":85,"column":4},"end":{"line":89,"column":63}},"37":{"start":{"line":85,"column":76},"end":{"line":85,"column":144}},"38":{"start":{"line":86,"column":17},"end":{"line":86,"column":40}},"39":{"start":{"line":87,"column":22},"end":{"line":87,"column":58}},"40":{"start":{"line":88,"column":6},"end":{"line":88,"column":34}},"41":{"start":{"line":89,"column":22},"end":{"line":89,"column":61}},"42":{"start":{"line":93,"column":0},"end":{"line":93,"column":33}},"43":{"start":{"line":94,"column":0},"end":{"line":94,"column":36}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":17,"column":9},"end":{"line":17,"column":31}},"loc":{"start":{"line":17,"column":37},"end":{"line":17,"column":95}},"line":17},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":2},"end":{"line":22,"column":3}},"loc":{"start":{"line":22,"column":33},"end":{"line":27,"column":3}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":2},"end":{"line":29,"column":3}},"loc":{"start":{"line":29,"column":30},"end":{"line":41,"column":3}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":43,"column":2},"end":{"line":43,"column":3}},"loc":{"start":{"line":43,"column":22},"end":{"line":55,"column":3}},"line":43},"4":{"name":"(anonymous_4)","decl":{"start":{"line":57,"column":2},"end":{"line":57,"column":3}},"loc":{"start":{"line":57,"column":56},"end":{"line":90,"column":3}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":81,"column":53},"end":{"line":81,"column":54}},"loc":{"start":{"line":81,"column":63},"end":{"line":81,"column":81}},"line":81},"6":{"name":"(anonymous_6)","decl":{"start":{"line":81,"column":89},"end":{"line":81,"column":90}},"loc":{"start":{"line":81,"column":98},"end":{"line":81,"column":137}},"line":81},"7":{"name":"(anonymous_7)","decl":{"start":{"line":85,"column":66},"end":{"line":85,"column":67}},"loc":{"start":{"line":85,"column":76},"end":{"line":85,"column":144}},"line":85},"8":{"name":"(anonymous_8)","decl":{"start":{"line":85,"column":151},"end":{"line":85,"column":152}},"loc":{"start":{"line":85,"column":161},"end":{"line":89,"column":5}},"line":85},"9":{"name":"(anonymous_9)","decl":{"start":{"line":89,"column":13},"end":{"line":89,"column":14}},"loc":{"start":{"line":89,"column":22},"end":{"line":89,"column":61}},"line":89}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":46},"end":{"line":17,"column":92}},"type":"cond-expr","locations":[{"start":{"line":17,"column":70},"end":{"line":17,"column":73}},{"start":{"line":17,"column":76},"end":{"line":17,"column":92}}],"line":17},"1":{"loc":{"start":{"line":17,"column":46},"end":{"line":17,"column":67}},"type":"binary-expr","locations":[{"start":{"line":17,"column":46},"end":{"line":17,"column":49}},{"start":{"line":17,"column":53},"end":{"line":17,"column":67}}],"line":17},"2":{"loc":{"start":{"line":22,"column":19},"end":{"line":22,"column":31}},"type":"default-arg","locations":[{"start":{"line":22,"column":29},"end":{"line":22,"column":31}}],"line":22},"3":{"loc":{"start":{"line":23,"column":25},"end":{"line":23,"column":54}},"type":"binary-expr","locations":[{"start":{"line":23,"column":25},"end":{"line":23,"column":43}},{"start":{"line":23,"column":47},"end":{"line":23,"column":54}}],"line":23},"4":{"loc":{"start":{"line":24,"column":34},"end":{"line":24,"column":82}},"type":"binary-expr","locations":[{"start":{"line":24,"column":34},"end":{"line":24,"column":61}},{"start":{"line":24,"column":65},"end":{"line":24,"column":82}}],"line":24},"5":{"loc":{"start":{"line":25,"column":31},"end":{"line":25,"column":63}},"type":"binary-expr","locations":[{"start":{"line":25,"column":31},"end":{"line":25,"column":55}},{"start":{"line":25,"column":59},"end":{"line":25,"column":63}}],"line":25},"6":{"loc":{"start":{"line":68,"column":4},"end":{"line":70,"column":5}},"type":"if","locations":[{"start":{"line":68,"column":4},"end":{"line":70,"column":5}},{"start":{"line":68,"column":4},"end":{"line":70,"column":5}}],"line":68},"7":{"loc":{"start":{"line":68,"column":8},"end":{"line":68,"column":34}},"type":"binary-expr","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":11}},{"start":{"line":68,"column":15},"end":{"line":68,"column":34}}],"line":68},"8":{"loc":{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},"type":"if","locations":[{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},{"start":{"line":73,"column":4},"end":{"line":75,"column":5}}],"line":73},"9":{"loc":{"start":{"line":73,"column":8},"end":{"line":73,"column":68}},"type":"binary-expr","locations":[{"start":{"line":73,"column":8},"end":{"line":73,"column":17}},{"start":{"line":73,"column":21},"end":{"line":73,"column":24}},{"start":{"line":73,"column":28},"end":{"line":73,"column":38}},{"start":{"line":73,"column":42},"end":{"line":73,"column":68}}],"line":73},"10":{"loc":{"start":{"line":80,"column":4},"end":{"line":82,"column":5}},"type":"if","locations":[{"start":{"line":80,"column":4},"end":{"line":82,"column":5}},{"start":{"line":80,"column":4},"end":{"line":82,"column":5}}],"line":80},"11":{"loc":{"start":{"line":81,"column":98},"end":{"line":81,"column":137}},"type":"cond-expr","locations":[{"start":{"line":81,"column":106},"end":{"line":81,"column":117}},{"start":{"line":81,"column":120},"end":{"line":81,"column":137}}],"line":81},"12":{"loc":{"start":{"line":85,"column":76},"end":{"line":85,"column":144}},"type":"cond-expr","locations":[{"start":{"line":85,"column":85},"end":{"line":85,"column":117}},{"start":{"line":85,"column":120},"end":{"line":85,"column":144}}],"line":85},"13":{"loc":{"start":{"line":89,"column":22},"end":{"line":89,"column":61}},"type":"cond-expr","locations":[{"start":{"line":89,"column":30},"end":{"line":89,"column":41}},{"start":{"line":89,"column":44},"end":{"line":89,"column":61}}],"line":89}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":2,"7":1,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":1,"43":1},"f":{"0":2,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"b":{"0":[0,2],"1":[2,2],"2":[0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0,0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0]},"inputSourceMap":{"version":3,"sources":["oauth2-verifier.js"],"names":["debug","OAuth2Verifier","Verifier","constructor","app","options","emailField","emailFieldInProfile","idFieldInProfile","_updateEntity","entity","data","name","id","service","newData","idField","_","get","profile","patch","oauth","provider","_createEntity","create","verify","req","accessToken","refreshToken","done","query","$or","$limit","existing","params","then","catch","error","find","_normalizeResult","payload"],"mappings":"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","file":"oauth2-verifier.js","sourceRoot":"D:/Development/kalisio/kdk/core/api","sourcesContent":["import makeDebug from 'debug'\r\nimport _ from 'lodash'\r\nimport { Verifier } from '@feathersjs/authentication-oauth2'\r\n\r\nconst debug = makeDebug('feathers-authentication-oauth2:verify')\r\n\r\nclass OAuth2Verifier extends Verifier {\r\n constructor (app, options = {}) {\r\n options.emailField = options.emailField || 'email'\r\n options.emailFieldInProfile = options.emailFieldInProfile || 'emails[0].value'\r\n options.idFieldInProfile = options.idFieldInProfile || 'id'\r\n super(app, options)\r\n }\r\n\r\n _updateEntity (entity, data) {\r\n const options = this.options\r\n const name = options.name\r\n const id = entity[this.service.id]\r\n debug(`Updating ${options.entity}: ${id}`)\r\n\r\n const newData = {\r\n [options.idField]: _.get(data.profile, options.idFieldInProfile),\r\n [name]: data\r\n }\r\n\r\n return this.service.patch(id, newData, { oauth: { provider: name } })\r\n }\r\n\r\n _createEntity (data) {\r\n const options = this.options\r\n const name = options.name\r\n const entity = {\r\n [options.idField]: _.get(data.profile, options.idFieldInProfile),\r\n [name]: data\r\n }\r\n\r\n const id = entity[options.idField]\r\n debug(`Creating new ${options.entity} with ${options.idField}: ${id}`)\r\n\r\n return this.service.create(entity, { oauth: { provider: name } })\r\n }\r\n\r\n verify (req, accessToken, refreshToken, profile, done) {\r\n debug('Checking credentials')\r\n const options = this.options\r\n const query = {\r\n $or: [\r\n { [options.idField]: _.get(profile, options.idFieldInProfile) },\r\n { [options.emailField]: _.get(profile, options.emailFieldInProfile) }\r\n ],\r\n $limit: 1\r\n }\r\n const data = { profile, accessToken, refreshToken }\r\n let existing\r\n\r\n // Check request object for an existing entity\r\n if (req && req[options.entity]) {\r\n existing = req[options.entity]\r\n }\r\n\r\n // Check the request that came from a hook for an existing entity\r\n if (!existing && req && req.params && req.params[options.entity]) {\r\n existing = req.params[options.entity]\r\n }\r\n\r\n // If there is already an entity on the request object (ie. they are\r\n // already authenticated) attach the profile to the existing entity\r\n // because they are likely \"linking\" social accounts/profiles.\r\n if (existing) {\r\n return this._updateEntity(existing, data)\r\n .then(entity => done(null, entity))\r\n .catch(error => error ? done(error) : done(null, error))\r\n }\r\n\r\n // Find or create the user since they could have signed up via facebook.\r\n this.service\r\n .find({ query })\r\n .then(this._normalizeResult)\r\n .then(entity => entity ? this._updateEntity(entity, data) : this._createEntity(data))\r\n .then(entity => {\r\n const id = entity[this.service.id]\r\n const payload = { [`${this.options.entity}Id`]: id }\r\n done(null, entity, payload)\r\n })\r\n .catch(error => error ? done(error) : done(null, error))\r\n }\r\n}\r\n\r\nexport default OAuth2Verifier\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"27329ae0da3979c632200a1259e688268d1f2d6f","contentHash":"68b3c5d34ee020f281576d49d61a731da2f791e2a3bc8c2f1e3c1bb5fb4b3bf0"},"D:\\Development\\kalisio\\kdk\\core\\api\\oauth2-handler.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\oauth2-handler.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":41,"column":2}},"2":{"start":{"line":8,"column":2},"end":{"line":40,"column":4}},"3":{"start":{"line":9,"column":16},"end":{"line":9,"column":23}},"4":{"start":{"line":10,"column":25},"end":{"line":10,"column":75}},"5":{"start":{"line":11,"column":19},"end":{"line":11,"column":38}},"6":{"start":{"line":12,"column":20},"end":{"line":12,"column":31}},"7":{"start":{"line":13,"column":19},"end":{"line":17,"column":5}},"8":{"start":{"line":18,"column":17},"end":{"line":21,"column":5}},"9":{"start":{"line":23,"column":4},"end":{"line":23,"column":56}},"10":{"start":{"line":24,"column":4},"end":{"line":24,"column":75}},"11":{"start":{"line":25,"column":4},"end":{"line":39,"column":19}},"12":{"start":{"line":26,"column":6},"end":{"line":26,"column":24}},"13":{"start":{"line":28,"column":6},"end":{"line":36,"column":7}},"14":{"start":{"line":29,"column":8},"end":{"line":31,"column":10}},"15":{"start":{"line":31,"column":10},"end":{"line":35,"column":9}},"16":{"start":{"line":32,"column":10},"end":{"line":32,"column":159}},"17":{"start":{"line":34,"column":10},"end":{"line":34,"column":119}},"18":{"start":{"line":38,"column":6},"end":{"line":38,"column":13}},"19":{"start":{"line":43,"column":13},"end":{"line":43,"column":29}},"20":{"start":{"line":45,"column":14},"end":{"line":45,"column":44}},"21":{"start":{"line":47,"column":39},"end":{"line":47,"column":93}},"22":{"start":{"line":49,"column":14},"end":{"line":49,"column":79}},"23":{"start":{"line":51,"column":0},"end":{"line":51,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":42},"end":{"line":41,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":10}},"loc":{"start":{"line":8,"column":35},"end":{"line":40,"column":3}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":61},"end":{"line":25,"column":62}},"loc":{"start":{"line":25,"column":71},"end":{"line":39,"column":5}},"line":25},"3":{"name":"_interopRequireDefault","decl":{"start":{"line":47,"column":9},"end":{"line":47,"column":31}},"loc":{"start":{"line":47,"column":37},"end":{"line":47,"column":95}},"line":47}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":28},"end":{"line":7,"column":40}},"type":"default-arg","locations":[{"start":{"line":7,"column":38},"end":{"line":7,"column":40}}],"line":7},"1":{"loc":{"start":{"line":10,"column":25},"end":{"line":10,"column":75}},"type":"binary-expr","locations":[{"start":{"line":10,"column":25},"end":{"line":10,"column":40}},{"start":{"line":10,"column":44},"end":{"line":10,"column":69}},{"start":{"line":10,"column":73},"end":{"line":10,"column":75}}],"line":10},"2":{"loc":{"start":{"line":28,"column":6},"end":{"line":36,"column":7}},"type":"if","locations":[{"start":{"line":28,"column":6},"end":{"line":36,"column":7}},{"start":{"line":28,"column":6},"end":{"line":36,"column":7}}],"line":28},"3":{"loc":{"start":{"line":31,"column":10},"end":{"line":35,"column":9}},"type":"if","locations":[{"start":{"line":31,"column":10},"end":{"line":35,"column":9}},{"start":{"line":31,"column":10},"end":{"line":35,"column":9}}],"line":31},"4":{"loc":{"start":{"line":47,"column":46},"end":{"line":47,"column":92}},"type":"cond-expr","locations":[{"start":{"line":47,"column":70},"end":{"line":47,"column":73}},{"start":{"line":47,"column":76},"end":{"line":47,"column":92}}],"line":47},"5":{"loc":{"start":{"line":47,"column":46},"end":{"line":47,"column":67}},"type":"binary-expr","locations":[{"start":{"line":47,"column":46},"end":{"line":47,"column":49}},{"start":{"line":47,"column":53},"end":{"line":47,"column":67}}],"line":47}},"s":{"0":1,"1":1,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":1,"20":1,"21":1,"22":1,"23":1},"f":{"0":0,"1":0,"2":0,"3":1},"b":{"0":[0],"1":[0,0,0],"2":[0,0],"3":[0,0],"4":[0,1],"5":[1,1]},"inputSourceMap":{"version":3,"sources":["oauth2-handler.js"],"names":["options","req","res","next","app","authSettings","get","entity","payload","params","authenticated","data","debug","name","path","service","create","then","result","successRedirect","hook","tokenAsQueryParameter","Object","defineProperty","value","status","url","accessToken","catch"],"mappings":";;;;;;kBAIe,UAAUA,UAAU,EAApB,EAAwB;AACrC,SAAO,UAAUC,GAAV,EAAeC,GAAf,EAAoBC,IAApB,EAA0B;AAC/B,UAAMC,MAAMH,IAAIG,GAAhB;AACA,UAAMC,eAAeD,IAAIE,GAAJ,CAAQ,MAAR,KAAmBF,IAAIE,GAAJ,CAAQ,gBAAR,CAAnB,IAAgD,EAArE;AACA,UAAMC,SAASN,IAAID,QAAQO,MAAZ,CAAf;AACA,UAAMC,UAAUP,IAAIO,OAApB;AACA,UAAMC,SAAS;AACbC,qBAAe,IADF;AAEb,OAACV,QAAQO,MAAT,GAAkBA,MAFL;AAGbC;AAHa,KAAf;AAKA,UAAMG,OAAO;AACX,OAACX,QAAQO,MAAT,GAAkBA,MADP;AAEXC;AAFW,KAAb;;AAKAI,UAAO,cAAaZ,QAAQa,IAAK,kBAAjC;AACAD,UAAO,sBAAqBP,aAAaS,IAAK,gBAA9C,EAA+DP,MAA/D;AACAH,QAAIW,OAAJ,CAAYV,aAAaS,IAAzB,EAA+BE,MAA/B,CAAsCL,IAAtC,EAA4CF,MAA5C,EAAoDQ,IAApD,CAAyDC,UAAU;AACjEhB,UAAIS,IAAJ,GAAWO,MAAX;;AAEA,UAAIlB,QAAQmB,eAAZ,EAA6B;AAC3BjB,YAAIkB,IAAJ,GAAW,EAAET,MAAM;AACnB;AADW,SAAX,CAEA,IAAIX,QAAQqB,qBAAZ,EAAmC;AACjCC,iBAAOC,cAAP,CAAsBrB,IAAIkB,IAAJ,CAAST,IAA/B,EAAqC,YAArC,EAAmD,EAAEa,OAAO,EAAEC,QAAQ,GAAV,EAAeC,KAAM,GAAE1B,QAAQmB,eAAgB,iBAAgBD,OAAOS,WAAY,EAAlF,EAAT,EAAnD;AACD,SAFD,MAEO;AACLL,iBAAOC,cAAP,CAAsBrB,IAAIkB,IAAJ,CAAST,IAA/B,EAAqC,YAArC,EAAmD,EAAEa,OAAO,EAAEC,QAAQ,GAAV,EAAeC,KAAK1B,QAAQmB,eAA5B,EAAT,EAAnD;AACD;AACF;;AAEDhB;AACD,KAdD,EAcGyB,KAdH,CAcSzB,IAdT;AAeD,GAhCD;AAiCD,C;;AAtCD;;;;;;AAEA,MAAMS,QAAQ,qBAAU,2CAAV,CAAd","file":"oauth2-handler.js","sourceRoot":"D:/Development/kalisio/kdk/core/api","sourcesContent":["import makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('@feathersjs/authentication-oauth2:handler')\r\n\r\nexport default function (options = {}) {\r\n return function (req, res, next) {\r\n const app = req.app\r\n const authSettings = app.get('auth') || app.get('authentication') || {}\r\n const entity = req[options.entity]\r\n const payload = req.payload\r\n const params = {\r\n authenticated: true,\r\n [options.entity]: entity,\r\n payload\r\n }\r\n const data = {\r\n [options.entity]: entity,\r\n payload\r\n }\r\n\r\n debug(`Executing '${options.name}' OAuth Callback`)\r\n debug(`Calling create on '${authSettings.path}' service with`, entity)\r\n app.service(authSettings.path).create(data, params).then(result => {\r\n res.data = result\r\n\r\n if (options.successRedirect) {\r\n res.hook = { data: {} }\r\n // Use token in URL or cookie ?\r\n if (options.tokenAsQueryParameter) {\r\n Object.defineProperty(res.hook.data, '__redirect', { value: { status: 302, url: `${options.successRedirect}?access_token=${result.accessToken}` } })\r\n } else {\r\n Object.defineProperty(res.hook.data, '__redirect', { value: { status: 302, url: options.successRedirect } })\r\n }\r\n }\r\n\r\n next()\r\n }).catch(next)\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c963266e9231cd61065a196bfaa2ee30cf29e2cb","contentHash":"ad4de82fd10fd7b92c2513257645de2be33b3e0246cf03049d9dd27ba79c77ca"},"D:\\Development\\kalisio\\kdk\\core\\api\\marshall.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\marshall.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":60}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":48}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":36}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":38}},"5":{"start":{"line":10,"column":0},"end":{"line":10,"column":40}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":42}},"7":{"start":{"line":13,"column":14},"end":{"line":13,"column":31}},"8":{"start":{"line":15,"column":15},"end":{"line":15,"column":46}},"9":{"start":{"line":17,"column":14},"end":{"line":17,"column":31}},"10":{"start":{"line":19,"column":15},"end":{"line":19,"column":46}},"11":{"start":{"line":21,"column":39},"end":{"line":21,"column":93}},"12":{"start":{"line":25,"column":2},"end":{"line":42,"column":5}},"13":{"start":{"line":27,"column":4},"end":{"line":41,"column":5}},"14":{"start":{"line":28,"column":6},"end":{"line":28,"column":38}},"15":{"start":{"line":29,"column":11},"end":{"line":41,"column":5}},"16":{"start":{"line":30,"column":21},"end":{"line":30,"column":53}},"17":{"start":{"line":32,"column":6},"end":{"line":40,"column":7}},"18":{"start":{"line":33,"column":8},"end":{"line":33,"column":34}},"19":{"start":{"line":36,"column":21},"end":{"line":36,"column":48}},"20":{"start":{"line":37,"column":8},"end":{"line":39,"column":9}},"21":{"start":{"line":38,"column":10},"end":{"line":38,"column":43}},"22":{"start":{"line":47,"column":2},"end":{"line":58,"column":5}},"23":{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},"24":{"start":{"line":50,"column":6},"end":{"line":50,"column":32}},"25":{"start":{"line":52,"column":21},"end":{"line":52,"column":53}},"26":{"start":{"line":54,"column":6},"end":{"line":56,"column":7}},"27":{"start":{"line":55,"column":8},"end":{"line":55,"column":34}},"28":{"start":{"line":63,"column":2},"end":{"line":63,"column":20}},"29":{"start":{"line":63,"column":13},"end":{"line":63,"column":20}},"30":{"start":{"line":64,"column":15},"end":{"line":64,"column":51}},"31":{"start":{"line":65,"column":2},"end":{"line":65,"column":20}},"32":{"start":{"line":65,"column":13},"end":{"line":65,"column":20}},"33":{"start":{"line":66,"column":2},"end":{"line":78,"column":3}},"34":{"start":{"line":67,"column":4},"end":{"line":69,"column":8}},"35":{"start":{"line":68,"column":6},"end":{"line":68,"column":133}},"36":{"start":{"line":68,"column":40},"end":{"line":68,"column":68}},"37":{"start":{"line":68,"column":73},"end":{"line":68,"column":133}},"38":{"start":{"line":68,"column":100},"end":{"line":68,"column":119}},"39":{"start":{"line":68,"column":124},"end":{"line":68,"column":133}},"40":{"start":{"line":70,"column":9},"end":{"line":78,"column":3}},"41":{"start":{"line":71,"column":4},"end":{"line":71,"column":66}},"42":{"start":{"line":72,"column":9},"end":{"line":78,"column":3}},"43":{"start":{"line":73,"column":4},"end":{"line":73,"column":57}},"44":{"start":{"line":74,"column":9},"end":{"line":78,"column":3}},"45":{"start":{"line":77,"column":4},"end":{"line":77,"column":72}},"46":{"start":{"line":77,"column":47},"end":{"line":77,"column":70}},"47":{"start":{"line":83,"column":2},"end":{"line":83,"column":65}},"48":{"start":{"line":83,"column":33},"end":{"line":83,"column":63}},"49":{"start":{"line":88,"column":2},"end":{"line":88,"column":20}},"50":{"start":{"line":88,"column":13},"end":{"line":88,"column":20}},"51":{"start":{"line":89,"column":15},"end":{"line":89,"column":51}},"52":{"start":{"line":90,"column":2},"end":{"line":90,"column":20}},"53":{"start":{"line":90,"column":13},"end":{"line":90,"column":20}},"54":{"start":{"line":91,"column":2},"end":{"line":99,"column":3}},"55":{"start":{"line":92,"column":4},"end":{"line":94,"column":8}},"56":{"start":{"line":93,"column":6},"end":{"line":93,"column":169}},"57":{"start":{"line":93,"column":33},"end":{"line":93,"column":64}},"58":{"start":{"line":93,"column":69},"end":{"line":93,"column":169}},"59":{"start":{"line":93,"column":110},"end":{"line":93,"column":155}},"60":{"start":{"line":93,"column":160},"end":{"line":93,"column":169}},"61":{"start":{"line":95,"column":9},"end":{"line":99,"column":3}},"62":{"start":{"line":96,"column":4},"end":{"line":98,"column":109}},"63":{"start":{"line":96,"column":34},"end":{"line":96,"column":99}},"64":{"start":{"line":96,"column":104},"end":{"line":98,"column":109}},"65":{"start":{"line":96,"column":148},"end":{"line":96,"column":227}},"66":{"start":{"line":98,"column":9},"end":{"line":98,"column":109}},"67":{"start":{"line":98,"column":39},"end":{"line":98,"column":109}},"68":{"start":{"line":98,"column":82},"end":{"line":98,"column":107}},"69":{"start":{"line":104,"column":2},"end":{"line":104,"column":67}},"70":{"start":{"line":104,"column":33},"end":{"line":104,"column":65}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":21,"column":9},"end":{"line":21,"column":31}},"loc":{"start":{"line":21,"column":37},"end":{"line":21,"column":95}},"line":21},"1":{"name":"marshallComparisonFields","decl":{"start":{"line":24,"column":9},"end":{"line":24,"column":33}},"loc":{"start":{"line":24,"column":47},"end":{"line":43,"column":1}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":39},"end":{"line":25,"column":40}},"loc":{"start":{"line":25,"column":55},"end":{"line":42,"column":3}},"line":25},"3":{"name":"marshallSortFields","decl":{"start":{"line":46,"column":9},"end":{"line":46,"column":27}},"loc":{"start":{"line":46,"column":41},"end":{"line":59,"column":1}},"line":46},"4":{"name":"(anonymous_4)","decl":{"start":{"line":47,"column":39},"end":{"line":47,"column":40}},"loc":{"start":{"line":47,"column":55},"end":{"line":58,"column":3}},"line":47},"5":{"name":"marshallTime","decl":{"start":{"line":62,"column":9},"end":{"line":62,"column":21}},"loc":{"start":{"line":62,"column":38},"end":{"line":79,"column":1}},"line":62},"6":{"name":"(anonymous_6)","decl":{"start":{"line":67,"column":50},"end":{"line":67,"column":51}},"loc":{"start":{"line":67,"column":55},"end":{"line":69,"column":5}},"line":67},"7":{"name":"(anonymous_7)","decl":{"start":{"line":77,"column":40},"end":{"line":77,"column":41}},"loc":{"start":{"line":77,"column":47},"end":{"line":77,"column":70}},"line":77},"8":{"name":"marshallTimes","decl":{"start":{"line":82,"column":9},"end":{"line":82,"column":22}},"loc":{"start":{"line":82,"column":43},"end":{"line":84,"column":1}},"line":82},"9":{"name":"(anonymous_9)","decl":{"start":{"line":83,"column":21},"end":{"line":83,"column":22}},"loc":{"start":{"line":83,"column":33},"end":{"line":83,"column":63}},"line":83},"10":{"name":"unmarshallTime","decl":{"start":{"line":87,"column":9},"end":{"line":87,"column":23}},"loc":{"start":{"line":87,"column":40},"end":{"line":100,"column":1}},"line":87},"11":{"name":"(anonymous_11)","decl":{"start":{"line":92,"column":50},"end":{"line":92,"column":51}},"loc":{"start":{"line":92,"column":55},"end":{"line":94,"column":5}},"line":92},"12":{"name":"(anonymous_12)","decl":{"start":{"line":98,"column":75},"end":{"line":98,"column":76}},"loc":{"start":{"line":98,"column":82},"end":{"line":98,"column":107}},"line":98},"13":{"name":"unmarshallTimes","decl":{"start":{"line":103,"column":9},"end":{"line":103,"column":24}},"loc":{"start":{"line":103,"column":45},"end":{"line":105,"column":1}},"line":103},"14":{"name":"(anonymous_14)","decl":{"start":{"line":104,"column":21},"end":{"line":104,"column":22}},"loc":{"start":{"line":104,"column":33},"end":{"line":104,"column":65}},"line":104}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":46},"end":{"line":21,"column":92}},"type":"cond-expr","locations":[{"start":{"line":21,"column":70},"end":{"line":21,"column":73}},{"start":{"line":21,"column":76},"end":{"line":21,"column":92}}],"line":21},"1":{"loc":{"start":{"line":21,"column":46},"end":{"line":21,"column":67}},"type":"binary-expr","locations":[{"start":{"line":21,"column":46},"end":{"line":21,"column":49}},{"start":{"line":21,"column":53},"end":{"line":21,"column":67}}],"line":21},"2":{"loc":{"start":{"line":27,"column":4},"end":{"line":41,"column":5}},"type":"if","locations":[{"start":{"line":27,"column":4},"end":{"line":41,"column":5}},{"start":{"line":27,"column":4},"end":{"line":41,"column":5}}],"line":27},"3":{"loc":{"start":{"line":29,"column":11},"end":{"line":41,"column":5}},"type":"if","locations":[{"start":{"line":29,"column":11},"end":{"line":41,"column":5}},{"start":{"line":29,"column":11},"end":{"line":41,"column":5}}],"line":29},"4":{"loc":{"start":{"line":29,"column":15},"end":{"line":29,"column":81}},"type":"binary-expr","locations":[{"start":{"line":29,"column":15},"end":{"line":29,"column":28}},{"start":{"line":29,"column":32},"end":{"line":29,"column":46}},{"start":{"line":29,"column":50},"end":{"line":29,"column":63}},{"start":{"line":29,"column":67},"end":{"line":29,"column":81}}],"line":29},"5":{"loc":{"start":{"line":32,"column":6},"end":{"line":40,"column":7}},"type":"if","locations":[{"start":{"line":32,"column":6},"end":{"line":40,"column":7}},{"start":{"line":32,"column":6},"end":{"line":40,"column":7}}],"line":32},"6":{"loc":{"start":{"line":37,"column":8},"end":{"line":39,"column":9}},"type":"if","locations":[{"start":{"line":37,"column":8},"end":{"line":39,"column":9}},{"start":{"line":37,"column":8},"end":{"line":39,"column":9}}],"line":37},"7":{"loc":{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},{"start":{"line":49,"column":4},"end":{"line":57,"column":5}}],"line":49},"8":{"loc":{"start":{"line":54,"column":6},"end":{"line":56,"column":7}},"type":"if","locations":[{"start":{"line":54,"column":6},"end":{"line":56,"column":7}},{"start":{"line":54,"column":6},"end":{"line":56,"column":7}}],"line":54},"9":{"loc":{"start":{"line":63,"column":2},"end":{"line":63,"column":20}},"type":"if","locations":[{"start":{"line":63,"column":2},"end":{"line":63,"column":20}},{"start":{"line":63,"column":2},"end":{"line":63,"column":20}}],"line":63},"10":{"loc":{"start":{"line":65,"column":2},"end":{"line":65,"column":20}},"type":"if","locations":[{"start":{"line":65,"column":2},"end":{"line":65,"column":20}},{"start":{"line":65,"column":2},"end":{"line":65,"column":20}}],"line":65},"11":{"loc":{"start":{"line":66,"column":2},"end":{"line":78,"column":3}},"type":"if","locations":[{"start":{"line":66,"column":2},"end":{"line":78,"column":3}},{"start":{"line":66,"column":2},"end":{"line":78,"column":3}}],"line":66},"12":{"loc":{"start":{"line":68,"column":6},"end":{"line":68,"column":133}},"type":"if","locations":[{"start":{"line":68,"column":6},"end":{"line":68,"column":133}},{"start":{"line":68,"column":6},"end":{"line":68,"column":133}}],"line":68},"13":{"loc":{"start":{"line":68,"column":73},"end":{"line":68,"column":133}},"type":"if","locations":[{"start":{"line":68,"column":73},"end":{"line":68,"column":133}},{"start":{"line":68,"column":73},"end":{"line":68,"column":133}}],"line":68},"14":{"loc":{"start":{"line":70,"column":9},"end":{"line":78,"column":3}},"type":"if","locations":[{"start":{"line":70,"column":9},"end":{"line":78,"column":3}},{"start":{"line":70,"column":9},"end":{"line":78,"column":3}}],"line":70},"15":{"loc":{"start":{"line":72,"column":9},"end":{"line":78,"column":3}},"type":"if","locations":[{"start":{"line":72,"column":9},"end":{"line":78,"column":3}},{"start":{"line":72,"column":9},"end":{"line":78,"column":3}}],"line":72},"16":{"loc":{"start":{"line":74,"column":9},"end":{"line":78,"column":3}},"type":"if","locations":[{"start":{"line":74,"column":9},"end":{"line":78,"column":3}},{"start":{"line":74,"column":9},"end":{"line":78,"column":3}}],"line":74},"17":{"loc":{"start":{"line":88,"column":2},"end":{"line":88,"column":20}},"type":"if","locations":[{"start":{"line":88,"column":2},"end":{"line":88,"column":20}},{"start":{"line":88,"column":2},"end":{"line":88,"column":20}}],"line":88},"18":{"loc":{"start":{"line":90,"column":2},"end":{"line":90,"column":20}},"type":"if","locations":[{"start":{"line":90,"column":2},"end":{"line":90,"column":20}},{"start":{"line":90,"column":2},"end":{"line":90,"column":20}}],"line":90},"19":{"loc":{"start":{"line":91,"column":2},"end":{"line":99,"column":3}},"type":"if","locations":[{"start":{"line":91,"column":2},"end":{"line":99,"column":3}},{"start":{"line":91,"column":2},"end":{"line":99,"column":3}}],"line":91},"20":{"loc":{"start":{"line":93,"column":6},"end":{"line":93,"column":169}},"type":"if","locations":[{"start":{"line":93,"column":6},"end":{"line":93,"column":169}},{"start":{"line":93,"column":6},"end":{"line":93,"column":169}}],"line":93},"21":{"loc":{"start":{"line":93,"column":69},"end":{"line":93,"column":169}},"type":"if","locations":[{"start":{"line":93,"column":69},"end":{"line":93,"column":169}},{"start":{"line":93,"column":69},"end":{"line":93,"column":169}}],"line":93},"22":{"loc":{"start":{"line":95,"column":9},"end":{"line":99,"column":3}},"type":"if","locations":[{"start":{"line":95,"column":9},"end":{"line":99,"column":3}},{"start":{"line":95,"column":9},"end":{"line":99,"column":3}}],"line":95},"23":{"loc":{"start":{"line":96,"column":4},"end":{"line":98,"column":109}},"type":"if","locations":[{"start":{"line":96,"column":4},"end":{"line":98,"column":109}},{"start":{"line":96,"column":4},"end":{"line":98,"column":109}}],"line":96},"24":{"loc":{"start":{"line":96,"column":104},"end":{"line":98,"column":109}},"type":"if","locations":[{"start":{"line":96,"column":104},"end":{"line":98,"column":109}},{"start":{"line":96,"column":104},"end":{"line":98,"column":109}}],"line":96},"25":{"loc":{"start":{"line":98,"column":9},"end":{"line":98,"column":109}},"type":"if","locations":[{"start":{"line":98,"column":9},"end":{"line":98,"column":109}},{"start":{"line":98,"column":9},"end":{"line":98,"column":109}}],"line":98}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":2,"12":3,"13":6,"14":2,"15":4,"16":4,"17":4,"18":2,"19":2,"20":2,"21":2,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0},"f":{"0":2,"1":3,"2":6,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0},"b":{"0":[0,2],"1":[2,2],"2":[2,4],"3":[4,0],"4":[4,3,2,1],"5":[2,2],"6":[2,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0]},"inputSourceMap":{"version":3,"sources":["marshall.js"],"names":["marshallComparisonFields","marshallSortFields","marshallTime","marshallTimes","unmarshallTime","unmarshallTimes","queryObject","_","forOwn","value","key","number","toNumber","Number","isNaN","date","moment","utc","isValid","toDate","item","property","time","get","Array","isArray","set","map","t","isMoment","Date","format","keys","forEach","object","properties","toISOString"],"mappings":"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","file":"marshall.js","sourceRoot":"D:/Development/kalisio/kdk/core/api","sourcesContent":["import moment from 'moment'\r\nimport _ from 'lodash'\r\n\r\n// Helper function to convert comparison operator values to numbers or dates\r\nexport function marshallComparisonFields (queryObject) {\r\n _.forOwn(queryObject, (value, key) => {\r\n // Process current attributes or recurse\r\n if (typeof value === 'object') {\r\n marshallComparisonFields(value)\r\n } else if ((key === '$lt') || (key === '$lte') || (key === '$gt') || (key === '$gte')) {\r\n const number = _.toNumber(value)\r\n // Update from query string to number if required\r\n if (!Number.isNaN(number)) {\r\n queryObject[key] = number\r\n } else {\r\n // try for dates as well\r\n const date = moment.utc(value)\r\n if (date.isValid()) {\r\n queryObject[key] = date.toDate()\r\n }\r\n }\r\n }\r\n })\r\n}\r\n\r\n// Helper function to convert sort operator values to numbers\r\nexport function marshallSortFields (queryObject) {\r\n _.forOwn(queryObject, (value, key) => {\r\n // Process current attributes or recurse\r\n if (typeof value === 'object') {\r\n marshallSortFields(value)\r\n } else {\r\n const number = _.toNumber(value)\r\n // Update from query string to number if required\r\n if (!Number.isNaN(number)) {\r\n queryObject[key] = number\r\n }\r\n }\r\n })\r\n}\r\n\r\n// Helper function to convert time objects or array of time objects\r\nexport function marshallTime (item, property) {\r\n if (!item) return\r\n const time = _.get(item, property)\r\n if (!time) return\r\n if (Array.isArray(time)) {\r\n _.set(item, property, time.map(t => {\r\n if (moment.isMoment(t)) return new Date(t.format())\r\n else if (typeof t === 'string') return new Date(t)\r\n else return t\r\n }))\r\n } else if (moment.isMoment(time)) {\r\n _.set(item, property, new Date(time.format()))\r\n } else if (typeof time === 'string') {\r\n _.set(item, property, new Date(time))\r\n } else if (typeof time === 'object') { // Check if complex object such as comparison operator\r\n // If so this will recurse\r\n _.keys(time).forEach(key => marshallTime(time, key))\r\n }\r\n}\r\n\r\n// Helper function to convert time objects or array of time objects for a fixed set of properties on a given object\r\nexport function marshallTimes (object, properties) {\r\n properties.forEach(property => marshallTime(object, property))\r\n}\r\n\r\n// Helper function to convert time objects or array of time objects\r\nexport function unmarshallTime (item, property) {\r\n if (!item) return\r\n const time = _.get(item, property)\r\n if (!time) return\r\n if (Array.isArray(time)) {\r\n _.set(item, property, time.map(t => {\r\n if (typeof t === 'string') return moment.utc(t)\r\n else if (typeof t.toISOString === 'function') return moment.utc(t.toISOString())\r\n else return t\r\n }))\r\n } else if (!moment.isMoment(time)) {\r\n if (typeof time === 'string') _.set(item, property, moment.utc(time))\r\n else if (typeof time.toISOString === 'function') _.set(item, property, moment.utc(time.toISOString()))\r\n // Recurse on complex object such as comparison operator\r\n else if (typeof time === 'object') _.keys(time).forEach(key => unmarshallTime(time, key))\r\n }\r\n}\r\n\r\n// Helper function to convert time objects or array of time objects for a fixed set of properties on a given object\r\nexport function unmarshallTimes (object, properties) {\r\n properties.forEach(property => unmarshallTime(object, property))\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2fa4bf0484c1b0041411a74e9c99ccdc3dca26f2","contentHash":"e2a03833ad7816f00aab46b444ae3a752b9e73201dab068f2e090b782b505072"},"D:\\Development\\kalisio\\kdk\\core\\common\\index.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\common\\index.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":49}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":46}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":28}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":42}},"5":{"start":{"line":11,"column":14},"end":{"line":11,"column":31}},"6":{"start":{"line":13,"column":15},"end":{"line":13,"column":46}},"7":{"start":{"line":15,"column":14},"end":{"line":15,"column":33}},"8":{"start":{"line":17,"column":13},"end":{"line":17,"column":45}},"9":{"start":{"line":19,"column":19},"end":{"line":19,"column":43}},"10":{"start":{"line":21,"column":18},"end":{"line":21,"column":55}},"11":{"start":{"line":23,"column":40},"end":{"line":23,"column":267}},"12":{"start":{"line":23,"column":69},"end":{"line":23,"column":80}},"13":{"start":{"line":23,"column":103},"end":{"line":23,"column":105}},"14":{"start":{"line":23,"column":107},"end":{"line":23,"column":228}},"15":{"start":{"line":23,"column":126},"end":{"line":23,"column":226}},"16":{"start":{"line":23,"column":149},"end":{"line":23,"column":224}},"17":{"start":{"line":23,"column":201},"end":{"line":23,"column":224}},"18":{"start":{"line":23,"column":229},"end":{"line":23,"column":250}},"19":{"start":{"line":23,"column":251},"end":{"line":23,"column":265}},"20":{"start":{"line":25,"column":39},"end":{"line":25,"column":93}},"21":{"start":{"line":27,"column":0},"end":{"line":27,"column":24}},"22":{"start":{"line":31,"column":0},"end":{"line":31,"column":34}},"23":{"start":{"line":37,"column":17},"end":{"line":37,"column":50}},"24":{"start":{"line":38,"column":2},"end":{"line":38,"column":99}},"25":{"start":{"line":43,"column":12},"end":{"line":43,"column":19}},"26":{"start":{"line":44,"column":2},"end":{"line":46,"column":5}},"27":{"start":{"line":45,"column":4},"end":{"line":45,"column":45}},"28":{"start":{"line":47,"column":2},"end":{"line":47,"column":13}},"29":{"start":{"line":52,"column":2},"end":{"line":52,"column":57}}},"fnMap":{"0":{"name":"_interopRequireWildcard","decl":{"start":{"line":23,"column":9},"end":{"line":23,"column":32}},"loc":{"start":{"line":23,"column":38},"end":{"line":23,"column":269}},"line":23},"1":{"name":"_interopRequireDefault","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":31}},"loc":{"start":{"line":25,"column":37},"end":{"line":25,"column":95}},"line":25},"2":{"name":"addQueryParameter","decl":{"start":{"line":35,"column":9},"end":{"line":35,"column":26}},"loc":{"start":{"line":35,"column":54},"end":{"line":39,"column":1}},"line":35},"3":{"name":"buildUrl","decl":{"start":{"line":42,"column":9},"end":{"line":42,"column":17}},"loc":{"start":{"line":42,"column":39},"end":{"line":48,"column":1}},"line":42},"4":{"name":"(anonymous_4)","decl":{"start":{"line":44,"column":38},"end":{"line":44,"column":39}},"loc":{"start":{"line":44,"column":60},"end":{"line":46,"column":3}},"line":44},"5":{"name":"buildEncodedUrl","decl":{"start":{"line":51,"column":9},"end":{"line":51,"column":24}},"loc":{"start":{"line":51,"column":46},"end":{"line":53,"column":1}},"line":51}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":40},"end":{"line":23,"column":267}},"type":"if","locations":[{"start":{"line":23,"column":40},"end":{"line":23,"column":267}},{"start":{"line":23,"column":40},"end":{"line":23,"column":267}}],"line":23},"1":{"loc":{"start":{"line":23,"column":44},"end":{"line":23,"column":65}},"type":"binary-expr","locations":[{"start":{"line":23,"column":44},"end":{"line":23,"column":47}},{"start":{"line":23,"column":51},"end":{"line":23,"column":65}}],"line":23},"2":{"loc":{"start":{"line":23,"column":107},"end":{"line":23,"column":228}},"type":"if","locations":[{"start":{"line":23,"column":107},"end":{"line":23,"column":228}},{"start":{"line":23,"column":107},"end":{"line":23,"column":228}}],"line":23},"3":{"loc":{"start":{"line":23,"column":149},"end":{"line":23,"column":224}},"type":"if","locations":[{"start":{"line":23,"column":149},"end":{"line":23,"column":224}},{"start":{"line":23,"column":149},"end":{"line":23,"column":224}}],"line":23},"4":{"loc":{"start":{"line":25,"column":46},"end":{"line":25,"column":92}},"type":"cond-expr","locations":[{"start":{"line":25,"column":70},"end":{"line":25,"column":73}},{"start":{"line":25,"column":76},"end":{"line":25,"column":92}}],"line":25},"5":{"loc":{"start":{"line":25,"column":46},"end":{"line":25,"column":67}},"type":"binary-expr","locations":[{"start":{"line":25,"column":46},"end":{"line":25,"column":49}},{"start":{"line":25,"column":53},"end":{"line":25,"column":67}}],"line":25},"6":{"loc":{"start":{"line":37,"column":17},"end":{"line":37,"column":50}},"type":"cond-expr","locations":[{"start":{"line":37,"column":41},"end":{"line":37,"column":44}},{"start":{"line":37,"column":47},"end":{"line":37,"column":50}}],"line":37},"7":{"loc":{"start":{"line":38,"column":44},"end":{"line":38,"column":96}},"type":"cond-expr","locations":[{"start":{"line":38,"column":67},"end":{"line":38,"column":88}},{"start":{"line":38,"column":91},"end":{"line":38,"column":96}}],"line":38}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":2,"12":2,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":1,"21":1,"22":1,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0},"f":{"0":2,"1":1,"2":0,"3":0,"4":0,"5":0},"b":{"0":[2,0],"1":[2,2],"2":[0,0],"3":[0,0],"4":[0,1],"5":[1,1],"6":[0,0],"7":[0,0]},"inputSourceMap":{"version":3,"sources":["index.js"],"names":["addQueryParameter","buildUrl","buildEncodedUrl","errors","permissions","baseUrl","parameter","value","prefix","includes","Array","isArray","JSON","stringify","parameters","url","_","forOwn","key","encodeURI"],"mappings":";;;;;;QAWgBA,iB,GAAAA,iB;QAOAC,Q,GAAAA,Q;QASAC,e,GAAAA,e;;AAxBhB;;;;AACA;;IAAYC,M;;AACZ;;IAAYC,W;;;;;;QAEHD,M,GAAAA,M,EAPT;AACA;AACA;;QAMSC,W,GAAAA,W;;AAET;;AACO,SAASJ,iBAAT,CAA4BK,OAA5B,EAAqCC,SAArC,EAAgDC,KAAhD,EAAuD;AAC5D;AACA,QAAMC,SAAUH,QAAQI,QAAR,CAAiB,GAAjB,IAAwB,GAAxB,GAA8B,GAA9C;AACA,SAAQ,GAAEJ,OAAQ,GAAEG,MAAO,GAAEF,SAAU,IAAGI,MAAMC,OAAN,CAAcJ,KAAd,IAAuBK,KAAKC,SAAL,CAAeN,KAAf,CAAvB,GAA+CA,KAAM,EAA/F;AACD;;AAED;AACO,SAASN,QAAT,CAAmBI,OAAnB,EAA4BS,UAA5B,EAAwC;AAC7C,MAAIC,MAAMV,OAAV;AACAW,mBAAEC,MAAF,CAASH,UAAT,EAAqB,UAAUP,KAAV,EAAiBW,GAAjB,EAAsB;AACzCH,UAAMf,kBAAkBe,GAAlB,EAAuBG,GAAvB,EAA4BX,KAA5B,CAAN;AACD,GAFD;AAGA,SAAOQ,GAAP;AACD;;AAED;AACO,SAASb,eAAT,CAA0BG,OAA1B,EAAmCS,UAAnC,EAA+C;AACpD,SAAOK,UAAUjB,gBAAgBG,OAAhB,EAAyBS,UAAzB,CAAV,CAAP;AACD","file":"index.js","sourceRoot":"D:/Development/kalisio/kdk/core/common","sourcesContent":["// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code\r\n// Tracked here : https://github.com/babel/babel/issues/2877\r\n// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far\r\nimport _ from 'lodash'\r\nimport * as errors from './errors'\r\nimport * as permissions from './permissions'\r\n\r\nexport { errors }\r\nexport { permissions }\r\n\r\n// Append a parameter value to a given URL\r\nexport function addQueryParameter (baseUrl, parameter, value) {\r\n // Check if this is the first parameter to be added or not\r\n const prefix = (baseUrl.includes('?') ? '&' : '?')\r\n return `${baseUrl}${prefix}${parameter}=${Array.isArray(value) ? JSON.stringify(value) : value}`\r\n}\r\n\r\n// Build an URL from a given set of parameters\r\nexport function buildUrl (baseUrl, parameters) {\r\n let url = baseUrl\r\n _.forOwn(parameters, function (value, key) {\r\n url = addQueryParameter(url, key, value)\r\n })\r\n return url\r\n}\r\n\r\n// Build an encoded URL from a given set of parameters\r\nexport function buildEncodedUrl (baseUrl, parameters) {\r\n return encodeURI(buildEncodedUrl(baseUrl, parameters))\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0077585cc64e0328a0bc87402f1f303b75c61a4a","contentHash":"3787c12007571fb1b399989f69560ab024661821110d838199baf678842fd50d"},"D:\\Development\\kalisio\\kdk\\core\\common\\errors.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\common\\errors.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":7,"column":24}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["errors.js"],"names":["KError","Error"],"mappings":";;;;;AAAO,MAAMA,MAAN,SAAqBC,KAArB,CAA2B;QAArBD,M,GAAAA,M","file":"errors.js","sourceRoot":"D:/Development/kalisio/kdk/core/common","sourcesContent":["export class KError extends Error {}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"61577edc90401af8dc2a91c2ee43f294ccc81484","contentHash":"d67e01f49b30849d5b6f470569cc20851d8c321a8ead213b5ca18760366fc132"},"D:\\Development\\kalisio\\kdk\\core\\common\\permissions.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\common\\permissions.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":124}},"2":{"start":{"line":9,"column":22},"end":{"line":39,"column":4}},"3":{"start":{"line":10,"column":13},"end":{"line":34,"column":4}},"4":{"start":{"line":11,"column":35},"end":{"line":11,"column":64}},"5":{"start":{"line":14,"column":4},"end":{"line":22,"column":11}},"6":{"start":{"line":15,"column":18},"end":{"line":17,"column":8}},"7":{"start":{"line":16,"column":8},"end":{"line":16,"column":50}},"8":{"start":{"line":19,"column":6},"end":{"line":21,"column":8}},"9":{"start":{"line":20,"column":8},"end":{"line":20,"column":44}},"10":{"start":{"line":26,"column":4},"end":{"line":33,"column":7}},"11":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"12":{"start":{"line":29,"column":10},"end":{"line":29,"column":26}},"13":{"start":{"line":31,"column":8},"end":{"line":31,"column":43}},"14":{"start":{"line":36,"column":2},"end":{"line":38,"column":4}},"15":{"start":{"line":37,"column":4},"end":{"line":37,"column":39}},"16":{"start":{"line":41,"column":0},"end":{"line":41,"column":36}},"17":{"start":{"line":42,"column":0},"end":{"line":42,"column":36}},"18":{"start":{"line":43,"column":0},"end":{"line":43,"column":40}},"19":{"start":{"line":44,"column":0},"end":{"line":44,"column":40}},"20":{"start":{"line":45,"column":0},"end":{"line":45,"column":50}},"21":{"start":{"line":46,"column":0},"end":{"line":46,"column":50}},"22":{"start":{"line":47,"column":0},"end":{"line":47,"column":50}},"23":{"start":{"line":48,"column":0},"end":{"line":48,"column":52}},"24":{"start":{"line":49,"column":0},"end":{"line":49,"column":38}},"25":{"start":{"line":50,"column":0},"end":{"line":50,"column":52}},"26":{"start":{"line":51,"column":0},"end":{"line":51,"column":58}},"27":{"start":{"line":52,"column":0},"end":{"line":52,"column":60}},"28":{"start":{"line":53,"column":0},"end":{"line":53,"column":66}},"29":{"start":{"line":54,"column":0},"end":{"line":54,"column":52}},"30":{"start":{"line":55,"column":0},"end":{"line":55,"column":62}},"31":{"start":{"line":56,"column":0},"end":{"line":56,"column":64}},"32":{"start":{"line":57,"column":0},"end":{"line":57,"column":48}},"33":{"start":{"line":58,"column":0},"end":{"line":58,"column":50}},"34":{"start":{"line":59,"column":0},"end":{"line":59,"column":56}},"35":{"start":{"line":60,"column":0},"end":{"line":60,"column":42}},"36":{"start":{"line":61,"column":0},"end":{"line":61,"column":48}},"37":{"start":{"line":63,"column":14},"end":{"line":63,"column":31}},"38":{"start":{"line":65,"column":15},"end":{"line":65,"column":46}},"39":{"start":{"line":67,"column":11},"end":{"line":67,"column":35}},"40":{"start":{"line":69,"column":39},"end":{"line":69,"column":93}},"41":{"start":{"line":71,"column":33},"end":{"line":71,"column":456}},"42":{"start":{"line":71,"column":64},"end":{"line":71,"column":89}},"43":{"start":{"line":71,"column":91},"end":{"line":71,"column":453}},"44":{"start":{"line":71,"column":165},"end":{"line":71,"column":263}},"45":{"start":{"line":71,"column":182},"end":{"line":71,"column":195}},"46":{"start":{"line":71,"column":209},"end":{"line":71,"column":219}},"47":{"start":{"line":71,"column":239},"end":{"line":71,"column":253}},"48":{"start":{"line":71,"column":254},"end":{"line":71,"column":261}},"49":{"start":{"line":71,"column":264},"end":{"line":71,"column":426}},"50":{"start":{"line":71,"column":281},"end":{"line":71,"column":296}},"51":{"start":{"line":71,"column":306},"end":{"line":71,"column":424}},"52":{"start":{"line":71,"column":360},"end":{"line":71,"column":380}},"53":{"start":{"line":71,"column":401},"end":{"line":71,"column":420}},"54":{"start":{"line":71,"column":429},"end":{"line":71,"column":449}},"55":{"start":{"line":74,"column":0},"end":{"line":74,"column":41}},"56":{"start":{"line":75,"column":0},"end":{"line":75,"column":47}},"57":{"start":{"line":76,"column":0},"end":{"line":76,"column":42}},"58":{"start":{"line":77,"column":0},"end":{"line":77,"column":69}},"59":{"start":{"line":79,"column":14},"end":{"line":83,"column":1}},"60":{"start":{"line":85,"column":18},"end":{"line":85,"column":68}},"61":{"start":{"line":88,"column":2},"end":{"line":88,"column":46}},"62":{"start":{"line":92,"column":2},"end":{"line":92,"column":45}},"63":{"start":{"line":96,"column":22},"end":{"line":96,"column":24}},"64":{"start":{"line":97,"column":2},"end":{"line":99,"column":5}},"65":{"start":{"line":98,"column":4},"end":{"line":98,"column":66}},"66":{"start":{"line":98,"column":32},"end":{"line":98,"column":66}},"67":{"start":{"line":100,"column":2},"end":{"line":100,"column":21}},"68":{"start":{"line":104,"column":22},"end":{"line":104,"column":24}},"69":{"start":{"line":105,"column":2},"end":{"line":107,"column":5}},"70":{"start":{"line":106,"column":4},"end":{"line":106,"column":67}},"71":{"start":{"line":106,"column":33},"end":{"line":106,"column":67}},"72":{"start":{"line":108,"column":2},"end":{"line":108,"column":21}},"73":{"start":{"line":112,"column":12},"end":{"line":112,"column":14}},"74":{"start":{"line":115,"column":22},"end":{"line":115,"column":52}},"75":{"start":{"line":116,"column":26},"end":{"line":116,"column":79}},"76":{"start":{"line":119,"column":15},"end":{"line":119,"column":42}},"77":{"start":{"line":121,"column":2},"end":{"line":123,"column":3}},"78":{"start":{"line":122,"column":4},"end":{"line":122,"column":56}},"79":{"start":{"line":124,"column":2},"end":{"line":127,"column":3}},"80":{"start":{"line":125,"column":4},"end":{"line":125,"column":58}},"81":{"start":{"line":126,"column":4},"end":{"line":126,"column":76}},"82":{"start":{"line":128,"column":2},"end":{"line":130,"column":3}},"83":{"start":{"line":129,"column":4},"end":{"line":129,"column":58}},"84":{"start":{"line":136,"column":2},"end":{"line":136,"column":26}},"85":{"start":{"line":137,"column":2},"end":{"line":137,"column":25}},"86":{"start":{"line":139,"column":2},"end":{"line":139,"column":28}},"87":{"start":{"line":140,"column":2},"end":{"line":140,"column":27}},"88":{"start":{"line":141,"column":2},"end":{"line":141,"column":28}},"89":{"start":{"line":142,"column":2},"end":{"line":142,"column":27}},"90":{"start":{"line":143,"column":2},"end":{"line":143,"column":27}},"91":{"start":{"line":145,"column":2},"end":{"line":168,"column":3}},"92":{"start":{"line":147,"column":4},"end":{"line":147,"column":25}},"93":{"start":{"line":149,"column":4},"end":{"line":149,"column":61}},"94":{"start":{"line":151,"column":4},"end":{"line":151,"column":37}},"95":{"start":{"line":153,"column":4},"end":{"line":153,"column":30}},"96":{"start":{"line":156,"column":4},"end":{"line":156,"column":74}},"97":{"start":{"line":157,"column":4},"end":{"line":157,"column":89}},"98":{"start":{"line":158,"column":4},"end":{"line":158,"column":75}},"99":{"start":{"line":159,"column":4},"end":{"line":159,"column":90}},"100":{"start":{"line":161,"column":4},"end":{"line":161,"column":62}},"101":{"start":{"line":163,"column":4},"end":{"line":163,"column":30}},"102":{"start":{"line":164,"column":4},"end":{"line":164,"column":29}},"103":{"start":{"line":165,"column":4},"end":{"line":165,"column":30}},"104":{"start":{"line":166,"column":4},"end":{"line":166,"column":29}},"105":{"start":{"line":167,"column":4},"end":{"line":167,"column":29}},"106":{"start":{"line":171,"column":0},"end":{"line":175,"column":2}},"107":{"start":{"line":172,"column":2},"end":{"line":174,"column":3}},"108":{"start":{"line":173,"column":4},"end":{"line":173,"column":21}},"109":{"start":{"line":177,"column":0},"end":{"line":179,"column":2}},"110":{"start":{"line":178,"column":2},"end":{"line":178,"column":66}},"111":{"start":{"line":178,"column":41},"end":{"line":178,"column":64}},"112":{"start":{"line":182,"column":2},"end":{"line":182,"column":31}},"113":{"start":{"line":182,"column":18},"end":{"line":182,"column":31}},"114":{"start":{"line":186,"column":15},"end":{"line":186,"column":72}},"115":{"start":{"line":187,"column":2},"end":{"line":187,"column":115}},"116":{"start":{"line":191,"column":2},"end":{"line":191,"column":31}},"117":{"start":{"line":191,"column":18},"end":{"line":191,"column":31}},"118":{"start":{"line":193,"column":17},"end":{"line":193,"column":44}},"119":{"start":{"line":194,"column":2},"end":{"line":194,"column":43}},"120":{"start":{"line":196,"column":2},"end":{"line":196,"column":106}},"121":{"start":{"line":196,"column":15},"end":{"line":196,"column":106}},"122":{"start":{"line":198,"column":17},"end":{"line":198,"column":49}},"123":{"start":{"line":200,"column":2},"end":{"line":200,"column":16}},"124":{"start":{"line":205,"column":2},"end":{"line":221,"column":5}},"125":{"start":{"line":208,"column":4},"end":{"line":220,"column":5}},"126":{"start":{"line":209,"column":6},"end":{"line":209,"column":27}},"127":{"start":{"line":210,"column":11},"end":{"line":220,"column":5}},"128":{"start":{"line":211,"column":6},"end":{"line":211,"column":49}},"129":{"start":{"line":211,"column":28},"end":{"line":211,"column":47}},"130":{"start":{"line":215,"column":6},"end":{"line":215,"column":61}},"131":{"start":{"line":215,"column":43},"end":{"line":215,"column":61}},"132":{"start":{"line":216,"column":11},"end":{"line":220,"column":5}},"133":{"start":{"line":217,"column":6},"end":{"line":217,"column":27}},"134":{"start":{"line":219,"column":6},"end":{"line":219,"column":61}},"135":{"start":{"line":219,"column":43},"end":{"line":219,"column":61}},"136":{"start":{"line":222,"column":2},"end":{"line":222,"column":15}},"137":{"start":{"line":228,"column":2},"end":{"line":228,"column":30}},"138":{"start":{"line":228,"column":18},"end":{"line":228,"column":30}},"139":{"start":{"line":230,"column":16},"end":{"line":230,"column":59}},"140":{"start":{"line":231,"column":16},"end":{"line":231,"column":45}},"141":{"start":{"line":234,"column":2},"end":{"line":234,"column":73}},"142":{"start":{"line":238,"column":16},"end":{"line":238,"column":72}},"143":{"start":{"line":239,"column":2},"end":{"line":241,"column":3}},"144":{"start":{"line":240,"column":4},"end":{"line":240,"column":124}},"145":{"start":{"line":242,"column":2},"end":{"line":242,"column":15}},"146":{"start":{"line":247,"column":16},"end":{"line":247,"column":78}},"147":{"start":{"line":249,"column":2},"end":{"line":249,"column":40}},"148":{"start":{"line":254,"column":16},"end":{"line":254,"column":78}},"149":{"start":{"line":256,"column":2},"end":{"line":256,"column":19}},"150":{"start":{"line":258,"column":2},"end":{"line":258,"column":40}},"151":{"start":{"line":263,"column":2},"end":{"line":297,"column":3}},"152":{"start":{"line":265,"column":4},"end":{"line":265,"column":36}},"153":{"start":{"line":266,"column":4},"end":{"line":266,"column":35}},"154":{"start":{"line":268,"column":4},"end":{"line":296,"column":5}},"155":{"start":{"line":269,"column":6},"end":{"line":295,"column":9}},"156":{"start":{"line":270,"column":8},"end":{"line":294,"column":9}},"157":{"start":{"line":272,"column":10},"end":{"line":272,"column":75}},"158":{"start":{"line":274,"column":23},"end":{"line":274,"column":54}},"159":{"start":{"line":275,"column":10},"end":{"line":285,"column":11}},"160":{"start":{"line":278,"column":12},"end":{"line":278,"column":69}},"161":{"start":{"line":279,"column":12},"end":{"line":279,"column":66}},"162":{"start":{"line":280,"column":12},"end":{"line":280,"column":66}},"163":{"start":{"line":281,"column":12},"end":{"line":281,"column":63}},"164":{"start":{"line":282,"column":12},"end":{"line":282,"column":68}},"165":{"start":{"line":283,"column":12},"end":{"line":283,"column":69}},"166":{"start":{"line":284,"column":12},"end":{"line":284,"column":88}},"167":{"start":{"line":286,"column":10},"end":{"line":293,"column":11}},"168":{"start":{"line":287,"column":12},"end":{"line":287,"column":68}},"169":{"start":{"line":288,"column":12},"end":{"line":288,"column":65}},"170":{"start":{"line":289,"column":12},"end":{"line":289,"column":67}},"171":{"start":{"line":290,"column":12},"end":{"line":290,"column":77}},"172":{"start":{"line":292,"column":12},"end":{"line":292,"column":85}},"173":{"start":{"line":302,"column":2},"end":{"line":312,"column":3}},"174":{"start":{"line":303,"column":4},"end":{"line":311,"column":5}},"175":{"start":{"line":304,"column":6},"end":{"line":310,"column":9}},"176":{"start":{"line":305,"column":8},"end":{"line":309,"column":9}},"177":{"start":{"line":307,"column":10},"end":{"line":307,"column":61}},"178":{"start":{"line":317,"column":2},"end":{"line":317,"column":86}},"179":{"start":{"line":321,"column":2},"end":{"line":321,"column":87}},"180":{"start":{"line":326,"column":2},"end":{"line":326,"column":74}},"181":{"start":{"line":330,"column":2},"end":{"line":330,"column":75}},"182":{"start":{"line":334,"column":17},"end":{"line":334,"column":83}},"183":{"start":{"line":335,"column":2},"end":{"line":335,"column":71}},"184":{"start":{"line":335,"column":45},"end":{"line":335,"column":71}},"185":{"start":{"line":336,"column":2},"end":{"line":336,"column":19}},"186":{"start":{"line":340,"column":17},"end":{"line":340,"column":94}},"187":{"start":{"line":341,"column":2},"end":{"line":341,"column":71}},"188":{"start":{"line":341,"column":45},"end":{"line":341,"column":71}},"189":{"start":{"line":342,"column":2},"end":{"line":342,"column":19}},"190":{"start":{"line":346,"column":2},"end":{"line":346,"column":145}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":49},"end":{"line":9,"column":50}},"loc":{"start":{"line":9,"column":55},"end":{"line":39,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":31},"end":{"line":10,"column":32}},"loc":{"start":{"line":10,"column":60},"end":{"line":34,"column":3}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":33},"end":{"line":14,"column":34}},"loc":{"start":{"line":14,"column":39},"end":{"line":22,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":36},"end":{"line":15,"column":37}},"loc":{"start":{"line":15,"column":53},"end":{"line":17,"column":7}},"line":15},"4":{"name":"(anonymous_4)","decl":{"start":{"line":19,"column":13},"end":{"line":19,"column":14}},"loc":{"start":{"line":19,"column":28},"end":{"line":21,"column":7}},"line":19},"5":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":19},"end":{"line":27,"column":20}},"loc":{"start":{"line":27,"column":39},"end":{"line":32,"column":7}},"line":27},"6":{"name":"defineAbilities","decl":{"start":{"line":36,"column":18},"end":{"line":36,"column":33}},"loc":{"start":{"line":36,"column":38},"end":{"line":38,"column":3}},"line":36},"7":{"name":"_interopRequireDefault","decl":{"start":{"line":69,"column":9},"end":{"line":69,"column":31}},"loc":{"start":{"line":69,"column":37},"end":{"line":69,"column":95}},"line":69},"8":{"name":"_asyncToGenerator","decl":{"start":{"line":71,"column":9},"end":{"line":71,"column":26}},"loc":{"start":{"line":71,"column":31},"end":{"line":71,"column":458}},"line":71},"9":{"name":"(anonymous_9)","decl":{"start":{"line":71,"column":40},"end":{"line":71,"column":41}},"loc":{"start":{"line":71,"column":52},"end":{"line":71,"column":455}},"line":71},"10":{"name":"(anonymous_10)","decl":{"start":{"line":71,"column":110},"end":{"line":71,"column":111}},"loc":{"start":{"line":71,"column":137},"end":{"line":71,"column":451}},"line":71},"11":{"name":"step","decl":{"start":{"line":71,"column":148},"end":{"line":71,"column":152}},"loc":{"start":{"line":71,"column":163},"end":{"line":71,"column":428}},"line":71},"12":{"name":"(anonymous_12)","decl":{"start":{"line":71,"column":341},"end":{"line":71,"column":342}},"loc":{"start":{"line":71,"column":358},"end":{"line":71,"column":382}},"line":71},"13":{"name":"(anonymous_13)","decl":{"start":{"line":71,"column":384},"end":{"line":71,"column":385}},"loc":{"start":{"line":71,"column":399},"end":{"line":71,"column":422}},"line":71},"14":{"name":"isSeniorRole","decl":{"start":{"line":87,"column":9},"end":{"line":87,"column":21}},"loc":{"start":{"line":87,"column":44},"end":{"line":89,"column":1}},"line":87},"15":{"name":"isJuniorRole","decl":{"start":{"line":91,"column":9},"end":{"line":91,"column":21}},"loc":{"start":{"line":91,"column":44},"end":{"line":93,"column":1}},"line":91},"16":{"name":"getSeniorRoles","decl":{"start":{"line":95,"column":9},"end":{"line":95,"column":23}},"loc":{"start":{"line":95,"column":34},"end":{"line":101,"column":1}},"line":95},"17":{"name":"(anonymous_17)","decl":{"start":{"line":97,"column":34},"end":{"line":97,"column":35}},"loc":{"start":{"line":97,"column":42},"end":{"line":99,"column":3}},"line":97},"18":{"name":"getJuniorRoles","decl":{"start":{"line":103,"column":9},"end":{"line":103,"column":23}},"loc":{"start":{"line":103,"column":34},"end":{"line":109,"column":1}},"line":103},"19":{"name":"(anonymous_19)","decl":{"start":{"line":105,"column":34},"end":{"line":105,"column":35}},"loc":{"start":{"line":105,"column":42},"end":{"line":107,"column":3}},"line":105},"20":{"name":"defineResourceRules","decl":{"start":{"line":118,"column":9},"end":{"line":118,"column":28}},"loc":{"start":{"line":118,"column":70},"end":{"line":131,"column":1}},"line":118},"21":{"name":"defineUserAbilities","decl":{"start":{"line":134,"column":9},"end":{"line":134,"column":28}},"loc":{"start":{"line":134,"column":51},"end":{"line":169,"column":1}},"line":134},"22":{"name":"(anonymous_22)","decl":{"start":{"line":171,"column":31},"end":{"line":171,"column":32}},"loc":{"start":{"line":171,"column":47},"end":{"line":175,"column":1}},"line":171},"23":{"name":"(anonymous_23)","decl":{"start":{"line":177,"column":33},"end":{"line":177,"column":34}},"loc":{"start":{"line":177,"column":49},"end":{"line":179,"column":1}},"line":177},"24":{"name":"(anonymous_24)","decl":{"start":{"line":178,"column":23},"end":{"line":178,"column":24}},"loc":{"start":{"line":178,"column":41},"end":{"line":178,"column":64}},"line":178},"25":{"name":"hasServiceAbilities","decl":{"start":{"line":181,"column":9},"end":{"line":181,"column":28}},"loc":{"start":{"line":181,"column":49},"end":{"line":188,"column":1}},"line":181},"26":{"name":"hasResourceAbilities","decl":{"start":{"line":190,"column":9},"end":{"line":190,"column":29}},"loc":{"start":{"line":190,"column":85},"end":{"line":201,"column":1}},"line":190},"27":{"name":"removeContext","decl":{"start":{"line":204,"column":9},"end":{"line":204,"column":22}},"loc":{"start":{"line":204,"column":30},"end":{"line":223,"column":1}},"line":204},"28":{"name":"(anonymous_28)","decl":{"start":{"line":205,"column":33},"end":{"line":205,"column":34}},"loc":{"start":{"line":205,"column":49},"end":{"line":221,"column":3}},"line":205},"29":{"name":"(anonymous_29)","decl":{"start":{"line":211,"column":20},"end":{"line":211,"column":21}},"loc":{"start":{"line":211,"column":28},"end":{"line":211,"column":47}},"line":211},"30":{"name":"getQueryForAbilities","decl":{"start":{"line":227,"column":9},"end":{"line":227,"column":29}},"loc":{"start":{"line":227,"column":66},"end":{"line":235,"column":1}},"line":227},"31":{"name":"buildSubjectsQueryForResource","decl":{"start":{"line":237,"column":9},"end":{"line":237,"column":38}},"loc":{"start":{"line":237,"column":72},"end":{"line":243,"column":1}},"line":237},"32":{"name":"findSubjectsForResource","decl":{"start":{"line":245,"column":9},"end":{"line":245,"column":32}},"loc":{"start":{"line":245,"column":82},"end":{"line":250,"column":1}},"line":245},"33":{"name":"countSubjectsForResource","decl":{"start":{"line":252,"column":9},"end":{"line":252,"column":33}},"loc":{"start":{"line":252,"column":83},"end":{"line":259,"column":1}},"line":252},"34":{"name":"defineOrganisationAbilities","decl":{"start":{"line":262,"column":9},"end":{"line":262,"column":36}},"loc":{"start":{"line":262,"column":59},"end":{"line":298,"column":1}},"line":262},"35":{"name":"(anonymous_35)","decl":{"start":{"line":269,"column":36},"end":{"line":269,"column":37}},"loc":{"start":{"line":269,"column":52},"end":{"line":295,"column":7}},"line":269},"36":{"name":"defineGroupAbilities","decl":{"start":{"line":301,"column":9},"end":{"line":301,"column":29}},"loc":{"start":{"line":301,"column":52},"end":{"line":313,"column":1}},"line":301},"37":{"name":"(anonymous_37)","decl":{"start":{"line":304,"column":29},"end":{"line":304,"column":30}},"loc":{"start":{"line":304,"column":38},"end":{"line":310,"column":7}},"line":304},"38":{"name":"findMembersOfOrganisation","decl":{"start":{"line":316,"column":9},"end":{"line":316,"column":34}},"loc":{"start":{"line":316,"column":71},"end":{"line":318,"column":1}},"line":316},"39":{"name":"countMembersOfOrganisation","decl":{"start":{"line":320,"column":9},"end":{"line":320,"column":35}},"loc":{"start":{"line":320,"column":72},"end":{"line":322,"column":1}},"line":320},"40":{"name":"findMembersOfGroup","decl":{"start":{"line":325,"column":9},"end":{"line":325,"column":27}},"loc":{"start":{"line":325,"column":59},"end":{"line":327,"column":1}},"line":325},"41":{"name":"countMembersOfGroup","decl":{"start":{"line":329,"column":9},"end":{"line":329,"column":28}},"loc":{"start":{"line":329,"column":60},"end":{"line":331,"column":1}},"line":329},"42":{"name":"getRoleForOrganisation","decl":{"start":{"line":333,"column":9},"end":{"line":333,"column":31}},"loc":{"start":{"line":333,"column":54},"end":{"line":337,"column":1}},"line":333},"43":{"name":"getRoleForGroup","decl":{"start":{"line":339,"column":9},"end":{"line":339,"column":24}},"loc":{"start":{"line":339,"column":56},"end":{"line":343,"column":1}},"line":339},"44":{"name":"findGroupsWithRole","decl":{"start":{"line":345,"column":9},"end":{"line":345,"column":27}},"loc":{"start":{"line":345,"column":56},"end":{"line":347,"column":1}},"line":345}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},{"start":{"line":28,"column":8},"end":{"line":30,"column":9}}],"line":28},"1":{"loc":{"start":{"line":28,"column":12},"end":{"line":28,"column":53}},"type":"binary-expr","locations":[{"start":{"line":28,"column":12},"end":{"line":28,"column":21}},{"start":{"line":28,"column":25},"end":{"line":28,"column":53}}],"line":28},"2":{"loc":{"start":{"line":69,"column":46},"end":{"line":69,"column":92}},"type":"cond-expr","locations":[{"start":{"line":69,"column":70},"end":{"line":69,"column":73}},{"start":{"line":69,"column":76},"end":{"line":69,"column":92}}],"line":69},"3":{"loc":{"start":{"line":69,"column":46},"end":{"line":69,"column":67}},"type":"binary-expr","locations":[{"start":{"line":69,"column":46},"end":{"line":69,"column":49}},{"start":{"line":69,"column":53},"end":{"line":69,"column":67}}],"line":69},"4":{"loc":{"start":{"line":71,"column":264},"end":{"line":71,"column":426}},"type":"if","locations":[{"start":{"line":71,"column":264},"end":{"line":71,"column":426}},{"start":{"line":71,"column":264},"end":{"line":71,"column":426}}],"line":71},"5":{"loc":{"start":{"line":98,"column":4},"end":{"line":98,"column":66}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":98,"column":66}},{"start":{"line":98,"column":4},"end":{"line":98,"column":66}}],"line":98},"6":{"loc":{"start":{"line":106,"column":4},"end":{"line":106,"column":67}},"type":"if","locations":[{"start":{"line":106,"column":4},"end":{"line":106,"column":67}},{"start":{"line":106,"column":4},"end":{"line":106,"column":67}}],"line":106},"7":{"loc":{"start":{"line":121,"column":2},"end":{"line":123,"column":3}},"type":"if","locations":[{"start":{"line":121,"column":2},"end":{"line":123,"column":3}},{"start":{"line":121,"column":2},"end":{"line":123,"column":3}}],"line":121},"8":{"loc":{"start":{"line":124,"column":2},"end":{"line":127,"column":3}},"type":"if","locations":[{"start":{"line":124,"column":2},"end":{"line":127,"column":3}},{"start":{"line":124,"column":2},"end":{"line":127,"column":3}}],"line":124},"9":{"loc":{"start":{"line":128,"column":2},"end":{"line":130,"column":3}},"type":"if","locations":[{"start":{"line":128,"column":2},"end":{"line":130,"column":3}},{"start":{"line":128,"column":2},"end":{"line":130,"column":3}}],"line":128},"10":{"loc":{"start":{"line":145,"column":2},"end":{"line":168,"column":3}},"type":"if","locations":[{"start":{"line":145,"column":2},"end":{"line":168,"column":3}},{"start":{"line":145,"column":2},"end":{"line":168,"column":3}}],"line":145},"11":{"loc":{"start":{"line":145,"column":6},"end":{"line":145,"column":28}},"type":"binary-expr","locations":[{"start":{"line":145,"column":6},"end":{"line":145,"column":13}},{"start":{"line":145,"column":17},"end":{"line":145,"column":28}}],"line":145},"12":{"loc":{"start":{"line":172,"column":2},"end":{"line":174,"column":3}},"type":"if","locations":[{"start":{"line":172,"column":2},"end":{"line":174,"column":3}},{"start":{"line":172,"column":2},"end":{"line":174,"column":3}}],"line":172},"13":{"loc":{"start":{"line":182,"column":2},"end":{"line":182,"column":31}},"type":"if","locations":[{"start":{"line":182,"column":2},"end":{"line":182,"column":31}},{"start":{"line":182,"column":2},"end":{"line":182,"column":31}}],"line":182},"14":{"loc":{"start":{"line":186,"column":15},"end":{"line":186,"column":72}},"type":"cond-expr","locations":[{"start":{"line":186,"column":45},"end":{"line":186,"column":52}},{"start":{"line":186,"column":55},"end":{"line":186,"column":72}}],"line":186},"15":{"loc":{"start":{"line":187,"column":9},"end":{"line":187,"column":114}},"type":"binary-expr","locations":[{"start":{"line":187,"column":9},"end":{"line":187,"column":39}},{"start":{"line":187,"column":43},"end":{"line":187,"column":114}}],"line":187},"16":{"loc":{"start":{"line":191,"column":2},"end":{"line":191,"column":31}},"type":"if","locations":[{"start":{"line":191,"column":2},"end":{"line":191,"column":31}},{"start":{"line":191,"column":2},"end":{"line":191,"column":31}}],"line":191},"17":{"loc":{"start":{"line":196,"column":2},"end":{"line":196,"column":106}},"type":"if","locations":[{"start":{"line":196,"column":2},"end":{"line":196,"column":106}},{"start":{"line":196,"column":2},"end":{"line":196,"column":106}}],"line":196},"18":{"loc":{"start":{"line":196,"column":32},"end":{"line":196,"column":105}},"type":"cond-expr","locations":[{"start":{"line":196,"column":62},"end":{"line":196,"column":84}},{"start":{"line":196,"column":87},"end":{"line":196,"column":105}}],"line":196},"19":{"loc":{"start":{"line":208,"column":4},"end":{"line":220,"column":5}},"type":"if","locations":[{"start":{"line":208,"column":4},"end":{"line":220,"column":5}},{"start":{"line":208,"column":4},"end":{"line":220,"column":5}}],"line":208},"20":{"loc":{"start":{"line":210,"column":11},"end":{"line":220,"column":5}},"type":"if","locations":[{"start":{"line":210,"column":11},"end":{"line":220,"column":5}},{"start":{"line":210,"column":11},"end":{"line":220,"column":5}}],"line":210},"21":{"loc":{"start":{"line":215,"column":6},"end":{"line":215,"column":61}},"type":"if","locations":[{"start":{"line":215,"column":6},"end":{"line":215,"column":61}},{"start":{"line":215,"column":6},"end":{"line":215,"column":61}}],"line":215},"22":{"loc":{"start":{"line":216,"column":11},"end":{"line":220,"column":5}},"type":"if","locations":[{"start":{"line":216,"column":11},"end":{"line":220,"column":5}},{"start":{"line":216,"column":11},"end":{"line":220,"column":5}}],"line":216},"23":{"loc":{"start":{"line":219,"column":6},"end":{"line":219,"column":61}},"type":"if","locations":[{"start":{"line":219,"column":6},"end":{"line":219,"column":61}},{"start":{"line":219,"column":6},"end":{"line":219,"column":61}}],"line":219},"24":{"loc":{"start":{"line":228,"column":2},"end":{"line":228,"column":30}},"type":"if","locations":[{"start":{"line":228,"column":2},"end":{"line":228,"column":30}},{"start":{"line":228,"column":2},"end":{"line":228,"column":30}}],"line":228},"25":{"loc":{"start":{"line":234,"column":9},"end":{"line":234,"column":72}},"type":"cond-expr","locations":[{"start":{"line":234,"column":17},"end":{"line":234,"column":65}},{"start":{"line":234,"column":68},"end":{"line":234,"column":72}}],"line":234},"26":{"loc":{"start":{"line":239,"column":2},"end":{"line":241,"column":3}},"type":"if","locations":[{"start":{"line":239,"column":2},"end":{"line":241,"column":3}},{"start":{"line":239,"column":2},"end":{"line":241,"column":3}}],"line":239},"27":{"loc":{"start":{"line":240,"column":73},"end":{"line":240,"column":122}},"type":"cond-expr","locations":[{"start":{"line":240,"column":100},"end":{"line":240,"column":104}},{"start":{"line":240,"column":107},"end":{"line":240,"column":122}}],"line":240},"28":{"loc":{"start":{"line":263,"column":2},"end":{"line":297,"column":3}},"type":"if","locations":[{"start":{"line":263,"column":2},"end":{"line":297,"column":3}},{"start":{"line":263,"column":2},"end":{"line":297,"column":3}}],"line":263},"29":{"loc":{"start":{"line":268,"column":4},"end":{"line":296,"column":5}},"type":"if","locations":[{"start":{"line":268,"column":4},"end":{"line":296,"column":5}},{"start":{"line":268,"column":4},"end":{"line":296,"column":5}}],"line":268},"30":{"loc":{"start":{"line":270,"column":8},"end":{"line":294,"column":9}},"type":"if","locations":[{"start":{"line":270,"column":8},"end":{"line":294,"column":9}},{"start":{"line":270,"column":8},"end":{"line":294,"column":9}}],"line":270},"31":{"loc":{"start":{"line":275,"column":10},"end":{"line":285,"column":11}},"type":"if","locations":[{"start":{"line":275,"column":10},"end":{"line":285,"column":11}},{"start":{"line":275,"column":10},"end":{"line":285,"column":11}}],"line":275},"32":{"loc":{"start":{"line":286,"column":10},"end":{"line":293,"column":11}},"type":"if","locations":[{"start":{"line":286,"column":10},"end":{"line":293,"column":11}},{"start":{"line":286,"column":10},"end":{"line":293,"column":11}}],"line":286},"33":{"loc":{"start":{"line":302,"column":2},"end":{"line":312,"column":3}},"type":"if","locations":[{"start":{"line":302,"column":2},"end":{"line":312,"column":3}},{"start":{"line":302,"column":2},"end":{"line":312,"column":3}}],"line":302},"34":{"loc":{"start":{"line":303,"column":4},"end":{"line":311,"column":5}},"type":"if","locations":[{"start":{"line":303,"column":4},"end":{"line":311,"column":5}},{"start":{"line":303,"column":4},"end":{"line":311,"column":5}}],"line":303},"35":{"loc":{"start":{"line":305,"column":8},"end":{"line":309,"column":9}},"type":"if","locations":[{"start":{"line":305,"column":8},"end":{"line":309,"column":9}},{"start":{"line":305,"column":8},"end":{"line":309,"column":9}}],"line":305},"36":{"loc":{"start":{"line":335,"column":2},"end":{"line":335,"column":71}},"type":"if","locations":[{"start":{"line":335,"column":2},"end":{"line":335,"column":71}},{"start":{"line":335,"column":2},"end":{"line":335,"column":71}}],"line":335},"37":{"loc":{"start":{"line":341,"column":2},"end":{"line":341,"column":71}},"type":"if","locations":[{"start":{"line":341,"column":2},"end":{"line":341,"column":71}},{"start":{"line":341,"column":2},"end":{"line":341,"column":71}}],"line":341},"38":{"loc":{"start":{"line":346,"column":33},"end":{"line":346,"column":50}},"type":"binary-expr","locations":[{"start":{"line":346,"column":33},"end":{"line":346,"column":44}},{"start":{"line":346,"column":48},"end":{"line":346,"column":50}}],"line":346},"39":{"loc":{"start":{"line":346,"column":92},"end":{"line":346,"column":141}},"type":"cond-expr","locations":[{"start":{"line":346,"column":119},"end":{"line":346,"column":123}},{"start":{"line":346,"column":126},"end":{"line":346,"column":141}}],"line":346}},"s":{"0":1,"1":1,"2":1,"3":1,"4":55,"5":55,"6":55,"7":143,"8":55,"9":143,"10":55,"11":238,"12":164,"13":74,"14":1,"15":55,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":56,"42":198,"43":198,"44":396,"45":396,"46":396,"47":0,"48":0,"49":396,"50":198,"51":198,"52":198,"53":0,"54":198,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":1,"74":1,"75":1,"76":74,"77":74,"78":74,"79":74,"80":63,"81":63,"82":74,"83":54,"84":55,"85":55,"86":55,"87":55,"88":55,"89":55,"90":55,"91":55,"92":44,"93":44,"94":44,"95":44,"96":44,"97":44,"98":44,"99":44,"100":44,"101":44,"102":44,"103":44,"104":44,"105":44,"106":1,"107":8,"108":3,"109":1,"110":0,"111":0,"112":67,"113":0,"114":67,"115":67,"116":37,"117":0,"118":37,"119":37,"120":37,"121":10,"122":37,"123":37,"124":49,"125":119,"126":5,"127":114,"128":9,"129":12,"130":9,"131":0,"132":105,"133":14,"134":14,"135":0,"136":49,"137":24,"138":0,"139":24,"140":24,"141":24,"142":13,"143":13,"144":13,"145":13,"146":2,"147":2,"148":11,"149":11,"150":11,"151":44,"152":40,"153":40,"154":40,"155":40,"156":60,"157":60,"158":60,"159":60,"160":60,"161":60,"162":60,"163":60,"164":60,"165":60,"166":60,"167":60,"168":56,"169":56,"170":56,"171":56,"172":56,"173":44,"174":40,"175":28,"176":14,"177":14,"178":1,"179":0,"180":1,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0},"f":{"0":1,"1":55,"2":55,"3":143,"4":143,"5":238,"6":55,"7":1,"8":56,"9":198,"10":198,"11":396,"12":198,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":74,"21":55,"22":8,"23":0,"24":0,"25":67,"26":37,"27":49,"28":119,"29":12,"30":24,"31":13,"32":2,"33":11,"34":44,"35":60,"36":44,"37":14,"38":1,"39":0,"40":1,"41":0,"42":0,"43":0,"44":0},"b":{"0":[164,74],"1":[238,238],"2":[0,1],"3":[1,1],"4":[198,198],"5":[0,0],"6":[0,0],"7":[74,0],"8":[63,11],"9":[54,20],"10":[44,11],"11":[55,44],"12":[3,5],"13":[0,67],"14":[0,67],"15":[67,3],"16":[0,37],"17":[10,27],"18":[10,0],"19":[5,114],"20":[9,105],"21":[0,9],"22":[14,91],"23":[0,14],"24":[0,24],"25":[23,1],"26":[13,0],"27":[0,13],"28":[40,4],"29":[40,0],"30":[60,0],"31":[60,0],"32":[56,4],"33":[40,4],"34":[28,12],"35":[14,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0]},"inputSourceMap":{"version":3,"sources":["permissions.js"],"names":["subject","args","rules","can","cannot","AbilityBuilder","extract","Promise","all","hooks","map","hook","Ability","subjectName","resource","RESOURCE_TYPE_KEY","defineAbilities","isSeniorRole","isJuniorRole","getSeniorRoles","getJuniorRoles","defineResourceRules","defineUserAbilities","hasServiceAbilities","hasResourceAbilities","removeContext","getQueryForAbilities","findSubjectsForResource","countSubjectsForResource","defineOrganisationAbilities","defineGroupAbilities","findMembersOfOrganisation","countMembersOfOrganisation","findMembersOfGroup","countMembersOfGroup","getRoleForOrganisation","getRoleForGroup","findGroupsWithRole","addAlias","Roles","member","manager","owner","RoleNames","roleName","juniorName","seniorName","seniorRoles","_","forEach","role","push","juniorRoles","RESOURCE_TYPE","Symbol","for","resourceService","permissions","_id","id","toString","$regex","registerHook","includes","unregisterHook","filter","registeredHook","abilities","service","path","getPath","replace","operation","resourceType","context","object","Object","assign","result","query","forOwn","value","key","Array","isArray","item","isEmpty","rulesFor","cloneDeep","buildSubjectsQueryForResource","resourceScope","resourceId","$elemMatch","set","subjectService","find","$limit","organisations","organisation","groups","group","usersService","organisationId","membersService","groupId","user","isUndefined","undefined"],"mappings":";;;;;;;AAqGA;;+BACO,WAAgCA,OAAhC,EAAyC,GAAGC,IAA5C,EAAkD;AACvD,UAAM,EAAEC,KAAF,EAASC,GAAT,EAAcC,MAAd,KAAyBC,oBAAeC,OAAf,EAA/B;;AAEA;AACA,UAAMC,QAAQC,GAAR,CAAYC,MAAMC,GAAN;AAAA,oCAAU,WAAMC,IAAN,EAAc;AACxC,cAAMA,KAAKX,OAAL,EAAcG,GAAd,EAAmBC,MAAnB,EAA2B,GAAGH,IAA9B,CAAN;AACD,OAFiB;;AAAA;AAAA;AAAA;AAAA,SAAZ,CAAN;;AAIA;AACA;AACA,WAAO,IAAIW,YAAJ,CAAYV,KAAZ,EAAmB;AACxBW,mBAAa,oBAAY;AACvB,YAAI,CAACC,QAAD,IAAa,OAAOA,QAAP,KAAoB,QAArC,EAA+C;AAC7C,iBAAOA,QAAP;AACD;AACD,eAAOA,SAASC,iBAAT,CAAP;AACD;AANuB,KAAnB,CAAP;AAQD,G;;kBAlBqBC,e;;;;;QAjFNC,Y,GAAAA,Y;QAIAC,Y,GAAAA,Y;QAIAC,c,GAAAA,c;QAMAC,c,GAAAA,c;QAaAC,mB,GAAAA,mB;QAgBAC,mB,GAAAA,mB;QAoEAC,mB,GAAAA,mB;QASAC,oB,GAAAA,oB;QAcAC,a,GAAAA,a;QAuBAC,oB,GAAAA,oB;QAkBAC,uB,GAAAA,uB;QAOAC,wB,GAAAA,wB;QAUAC,2B,GAAAA,2B;QAuCAC,oB,GAAAA,oB;QAeAC,yB,GAAAA,yB;QAIAC,0B,GAAAA,0B;QAKAC,kB,GAAAA,kB;QAIAC,mB,GAAAA,mB;QAIAC,sB,GAAAA,sB;QAMAC,e,GAAAA,e;QAMAC,kB,GAAAA,kB;;AAxShB;;;;AACA;;;;;;AAEA;AACAzB,aAAQ0B,QAAR,CAAiB,QAAjB,EAA2B,OAA3B;AACA1B,aAAQ0B,QAAR,CAAiB,MAAjB,EAAyB,CAAC,KAAD,EAAQ,MAAR,CAAzB;AACA1B,aAAQ0B,QAAR,CAAiB,QAAjB,EAA2B,QAA3B;AACA1B,aAAQ0B,QAAR,CAAiB,KAAjB,EAAwB,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,EAA6B,QAA7B,CAAxB;;AAEO,MAAMC,wBAAQ;AACnBC,UAAQ,CADW;AAEnBC,WAAS,CAFU;AAGnBC,SAAO;AAHY,CAAd;;AAMA,MAAMC,gCAAY,CACvB,QADuB,EAEvB,SAFuB,EAGvB,OAHuB,CAAlB;;AAMA,SAAS1B,YAAT,CAAuB2B,QAAvB,EAAiCC,UAAjC,EAA6C;AAClD,SAAON,MAAMK,QAAN,KAAmBL,MAAMM,UAAN,CAA1B;AACD;;AAEM,SAAS3B,YAAT,CAAuB0B,QAAvB,EAAiCE,UAAjC,EAA6C;AAClD,SAAOP,MAAMK,QAAN,IAAkBL,MAAMO,UAAN,CAAzB;AACD;;AAEM,SAAS3B,cAAT,CAAyByB,QAAzB,EAAmC;AACxC,QAAMG,cAAc,EAApB;AACAC,mBAAEC,OAAF,CAAUV,KAAV,EAAiBW,QAAQ;AAAE,QAAIX,MAAMK,QAAN,IAAkBM,IAAtB,EAA4BH,YAAYI,IAAZ,CAAiBR,UAAUO,IAAV,CAAjB;AAAmC,GAA1F;AACA,SAAOH,WAAP;AACD;;AAEM,SAAS3B,cAAT,CAAyBwB,QAAzB,EAAmC;AACxC,QAAMQ,cAAc,EAApB;AACAJ,mBAAEC,OAAF,CAAUV,KAAV,EAAiBW,QAAQ;AAAE,QAAIX,MAAMK,QAAN,KAAmBM,IAAvB,EAA6BE,YAAYD,IAAZ,CAAiBR,UAAUO,IAAV,CAAjB;AAAmC,GAA3F;AACA,SAAOE,WAAP;AACD;;AAED;AACA,IAAI3C,QAAQ,EAAZ;;AAEA;AACO,MAAM4C,wCAAgB,MAAtB;AACA,MAAMtC,gDAAoBuC,OAAOC,GAAP,CAAWF,aAAX,CAA1B;;AAEA,SAAShC,mBAAT,CAA8BrB,OAA9B,EAAuCc,QAAvC,EAAiD0C,eAAjD,EAAkErD,GAAlE,EAAuE;AAC5E,QAAM+C,OAAOX,MAAMzB,SAAS2C,WAAf,CAAb;;AAEA,MAAIP,QAAQX,MAAMC,MAAlB,EAA0B;AACxBrC,QAAI,MAAJ,EAAYqD,eAAZ,EAA6B,EAAEE,KAAK5C,SAAS4C,GAAhB,EAA7B;AACD;AACD,MAAIR,QAAQX,MAAME,OAAlB,EAA2B;AACzBtC,QAAI,QAAJ,EAAcqD,eAAd,EAA+B,EAAEE,KAAK5C,SAAS4C,GAAhB,EAA/B;AACAvD,QAAI,CAAC,QAAD,EAAW,QAAX,CAAJ,EAA0B,gBAA1B,EAA4C,EAAEW,UAAUA,SAAS4C,GAArB,EAA5C;AACD;AACD,MAAIR,QAAQX,MAAMG,KAAlB,EAAyB;AACvBvC,QAAI,QAAJ,EAAcqD,eAAd,EAA+B,EAAEE,KAAK5C,SAAS4C,GAAhB,EAA/B;AACD;AACF;;AAED;AACO,SAASpC,mBAAT,CAA8BtB,OAA9B,EAAuCG,GAAvC,EAA4CC,MAA5C,EAAoD;AACzD;AACAD,MAAI,SAAJ,EAAe,OAAf;AACAA,MAAI,QAAJ,EAAc,OAAd;AACA;AACAA,MAAI,SAAJ,EAAe,SAAf;AACAA,MAAI,QAAJ,EAAc,SAAd;AACAA,MAAI,SAAJ,EAAe,SAAf;AACAA,MAAI,QAAJ,EAAc,SAAd;AACAA,MAAI,QAAJ,EAAc,SAAd;;AAEA,MAAIH,WAAWA,QAAQ0D,GAAvB,EAA4B;AAC1B;AACAvD,QAAI,MAAJ,EAAY,OAAZ;AACA;AACAA,QAAI,CAAC,QAAD,EAAW,QAAX,CAAJ,EAA0B,OAA1B,EAAmC,EAAEuD,KAAK1D,QAAQ0D,GAAf,EAAnC;AACA;AACAvD,QAAI,SAAJ,EAAe,gBAAf;AACA;AACAA,QAAI,SAAJ,EAAe,SAAf;AACA;AACA;AACAA,QAAI,QAAJ,EAAc,SAAd,EAAyB,EAAEwD,IAAI,aAAa3D,QAAQ0D,GAAR,CAAYE,QAAZ,EAAnB,EAAzB;AACAzD,QAAI,QAAJ,EAAc,SAAd,EAAyB,EAAEwD,IAAI,aAAa3D,QAAQ0D,GAAR,CAAYE,QAAZ,EAAb,GAAsC,YAA5C,EAAzB;AACAzD,QAAI,QAAJ,EAAc,SAAd,EAAyB,EAAEuD,KAAK,aAAa1D,QAAQ0D,GAAR,CAAYE,QAAZ,EAApB,EAAzB;AACAzD,QAAI,QAAJ,EAAc,SAAd,EAAyB,EAAEuD,KAAK,aAAa1D,QAAQ0D,GAAR,CAAYE,QAAZ,EAAb,GAAsC,YAA7C,EAAzB;AACA;AACAzD,QAAI,MAAJ,EAAY,SAAZ,EAAuB,EAAEuD,KAAK,EAAEG,QAAQ,YAAV,EAAP,EAAvB;AACA;AACA1D,QAAI,SAAJ,EAAe,SAAf;AACAA,QAAI,QAAJ,EAAc,SAAd;AACAA,QAAI,SAAJ,EAAe,SAAf;AACAA,QAAI,QAAJ,EAAc,SAAd;AACAA,QAAI,QAAJ,EAAc,SAAd;AACD;AACF;;AAuBDa,gBAAgB8C,YAAhB,GAA+B,UAAUnD,IAAV,EAAgB;AAC7C,MAAI,CAACF,MAAMsD,QAAN,CAAepD,IAAf,CAAL,EAA2B;AACzBF,UAAM0C,IAAN,CAAWxC,IAAX;AACD;AACF,CAJD;;AAMAK,gBAAgBgD,cAAhB,GAAiC,UAAUrD,IAAV,EAAgB;AAC/CF,UAAQA,MAAMwD,MAAN,CAAaC,kBAAkBA,mBAAmBvD,IAAlD,CAAR;AACD,CAFD;;AAIO,SAASY,mBAAT,CAA8B4C,SAA9B,EAAyCC,OAAzC,EAAkD;AACvD,MAAI,CAACD,SAAL,EAAgB,OAAO,KAAP;AAChB;AACA;AACA;AACA,QAAME,OAAO,OAAOD,OAAP,KAAmB,QAAnB,GAA8BA,OAA9B,GAAwCA,QAAQE,OAAR,EAArD;AACA,SAAOH,UAAUhE,GAAV,CAAc,SAAd,EAAyBkE,IAAzB,KAAkCF,UAAUhE,GAAV,CAAc,SAAd,EAAyB6C,iBAAEuB,OAAF,CAAUF,IAAV,EAAgB,OAAhB,EAAyB,IAAzB,CAAzB,CAAzC;AACD;;AAEM,SAAS7C,oBAAT,CAA+B2C,SAA/B,EAA0CK,SAA1C,EAAqDC,YAArD,EAAmEC,OAAnE,EAA4E5D,QAA5E,EAAsF;AAC3F,MAAI,CAACqD,SAAL,EAAgB,OAAO,KAAP;AAChB;AACA,QAAMQ,SAASC,OAAOC,MAAP,CAAc,EAAd,EAAkB/D,QAAlB,CAAf;AACA6D,SAAO5D,iBAAP,IAA4B0D,YAA5B;AACA;AACA,MAAIC,OAAJ,EAAaC,OAAOD,OAAP,GAAkB,OAAOA,OAAP,KAAmB,QAAnB,GAA8BA,QAAQhB,GAAR,CAAYE,QAAZ,EAA9B,GAAuDc,QAAQd,QAAR,EAAzE;;AAEb,QAAMkB,SAASX,UAAUhE,GAAV,CAAcqE,SAAd,EAAyBG,MAAzB,CAAf;;AAEA,SAAOG,MAAP;AACD;;AAED;AACO,SAASrD,aAAT,CAAwBsD,KAAxB,EAA+B;AACpC/B,mBAAEgC,MAAF,CAASD,KAAT,EAAgB,CAACE,KAAD,EAAQC,GAAR,KAAgB;AAC9B;AACA;AACA,QAAIA,QAAQ,SAAZ,EAAuB;AACrB,aAAOH,MAAML,OAAb;AACD,KAFD,MAEO,IAAIS,MAAMC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AAC/BA,YAAMhC,OAAN,CAAcoC,QAAQ5D,cAAc4D,IAAd,CAAtB;AACA;AACA;AACA;AACA,UAAIrC,iBAAEsC,OAAF,CAAUL,KAAV,CAAJ,EAAsB,OAAOF,MAAMG,GAAN,CAAP;AACvB,KANM,MAMA,IAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;AACpCxD,oBAAcwD,KAAd;AACA;AACA,UAAIjC,iBAAEsC,OAAF,CAAUL,KAAV,CAAJ,EAAsB,OAAOF,MAAMG,GAAN,CAAP;AACvB;AACF,GAhBD;AAiBA,SAAOH,KAAP;AACD;;AAED;AACA;AACO,SAASrD,oBAAT,CAA+ByC,SAA/B,EAA0CK,SAA1C,EAAqDC,YAArD,EAAmE;AACxE,MAAI,CAACN,SAAL,EAAgB,OAAO,IAAP;;AAEhB,QAAMjE,QAAQiE,UAAUoB,QAAV,CAAmBf,SAAnB,EAA8BC,YAA9B,CAAd;AACA,QAAMM,QAAQ,uBAAa7E,KAAb,CAAd;AACA;AACA;AACA,SAAQ6E,QAAQtD,cAAcuB,iBAAEwC,SAAF,CAAYT,KAAZ,CAAd,CAAR,GAA4C,IAApD;AACD;;AAED,SAASU,6BAAT,CAAwCC,aAAxC,EAAuDC,UAAvD,EAAmEzC,IAAnE,EAAyE;AACvE,QAAM6B,QAAQ,EAAE,CAACW,aAAD,GAAiB,EAAEE,YAAY,EAAElC,KAAKiC,UAAP,EAAd,EAAnB,EAAd;AACA,MAAIzC,IAAJ,EAAU;AACRF,qBAAE6C,GAAF,CAAMd,MAAMW,aAAN,CAAN,EAA4B,wBAA5B,EAAuD,OAAOxC,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkCP,UAAUO,IAAV,CAAzF;AACD;AACD,SAAO6B,KAAP;AACD;;AAEM,SAASpD,uBAAT,CAAkCmE,cAAlC,EAAkDJ,aAAlD,EAAiEC,UAAjE,EAA6EzC,IAA7E,EAAmF;AACxF;AACA,QAAM6B,QAAQU,8BAA8BC,aAA9B,EAA6CC,UAA7C,EAAyDzC,IAAzD,CAAd;AACA;AACA,SAAO4C,eAAeC,IAAf,CAAoB,EAAEhB,KAAF,EAApB,CAAP;AACD;;AAEM,SAASnD,wBAAT,CAAmCkE,cAAnC,EAAmDJ,aAAnD,EAAkEC,UAAlE,EAA8EzC,IAA9E,EAAoF;AACzF;AACA,QAAM6B,QAAQU,8BAA8BC,aAA9B,EAA6CC,UAA7C,EAAyDzC,IAAzD,CAAd;AACA;AACA6B,QAAMiB,MAAN,GAAe,CAAf;AACA;AACA,SAAOF,eAAeC,IAAf,CAAoB,EAAEhB,KAAF,EAApB,CAAP;AACD;;AAED;AACO,SAASlD,2BAAT,CAAsC7B,OAAtC,EAA+CG,GAA/C,EAAoDC,MAApD,EAA4D;AACjE,MAAIJ,OAAJ,EAAa;AACX;AACAG,QAAI,SAAJ,EAAe,eAAf;AACAA,QAAI,QAAJ,EAAc,eAAd;;AAEA,QAAIH,QAAQiG,aAAZ,EAA2B;AACzBjG,cAAQiG,aAAR,CAAsBhD,OAAtB,CAA8BiD,gBAAgB;AAC5C,YAAIA,aAAaxC,GAAjB,EAAsB;AACpB;AACArC,8BAAoBrB,OAApB,EAA6BkG,YAA7B,EAA2C,eAA3C,EAA4D/F,GAA5D;AACA;AACA,gBAAM+C,OAAOX,MAAM2D,aAAazC,WAAnB,CAAb;AACA,cAAIP,QAAQX,MAAMC,MAAlB,EAA0B;AACxB;AACA;AACArC,gBAAI,SAAJ,EAAe+F,aAAaxC,GAAb,CAAiBE,QAAjB,KAA8B,UAA7C;AACAzD,gBAAI,MAAJ,EAAY,SAAZ,EAAuB,EAAEuE,SAASwB,aAAaxC,GAAxB,EAAvB;AACAvD,gBAAI,SAAJ,EAAe+F,aAAaxC,GAAb,CAAiBE,QAAjB,KAA8B,OAA7C;AACAzD,gBAAI,MAAJ,EAAY,MAAZ,EAAoB,EAAEuE,SAASwB,aAAaxC,GAAxB,EAApB;AACAvD,gBAAI,SAAJ,EAAe+F,aAAaxC,GAAb,CAAiBE,QAAjB,KAA8B,SAA7C;AACAzD,gBAAI,SAAJ,EAAe+F,aAAaxC,GAAb,CAAiBE,QAAjB,KAA8B,UAA7C;AACAzD,gBAAI,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,CAAJ,EAAkC,SAAlC,EAA6C,EAAEuE,SAASwB,aAAaxC,GAAxB,EAA7C;AACD;AACD,cAAIR,QAAQX,MAAME,OAAlB,EAA2B;AACzBtC,gBAAI,QAAJ,EAAc,SAAd,EAAyB,EAAEuE,SAASwB,aAAaxC,GAAxB,EAAzB;AACAvD,gBAAI,QAAJ,EAAc,MAAd,EAAsB,EAAEuE,SAASwB,aAAaxC,GAAxB,EAAtB;AACAvD,gBAAI,QAAJ,EAAc,QAAd,EAAwB,EAAEuE,SAASwB,aAAaxC,GAAxB,EAAxB;AACAvD,gBAAI,CAAC,QAAD,EAAW,QAAX,CAAJ,EAA0B,MAA1B,EAAkC,EAAEuE,SAASwB,aAAaxC,GAAxB,EAAlC;AACA;AACAvD,gBAAI,CAAC,QAAD,CAAJ,EAAgB,OAAhB,EAAyB,EAAE,0BAA0B+F,aAAaxC,GAAzC,EAAzB;AACD;AACF;AACF,OA1BD;AA2BD;AACF;AACF;;AAED;AACO,SAAS5B,oBAAT,CAA+B9B,OAA/B,EAAwCG,GAAxC,EAA6CC,MAA7C,EAAqD;AAC1D,MAAIJ,OAAJ,EAAa;AACX,QAAIA,QAAQmG,MAAZ,EAAoB;AAClBnG,cAAQmG,MAAR,CAAelD,OAAf,CAAuBmD,SAAS;AAC9B,YAAIA,MAAM1C,GAAV,EAAe;AACb;AACArC,8BAAoBrB,OAApB,EAA6BoG,KAA7B,EAAoC,QAApC,EAA8CjG,GAA9C;AACA;AACD;AACF,OAND;AAOD;AACF;AACF;;AAED;AACO,SAAS4B,yBAAT,CAAoCsE,YAApC,EAAkDC,cAAlD,EAAkEpD,IAAlE,EAAwE;AAC7E,SAAOvB,wBAAwB0E,YAAxB,EAAsC,eAAtC,EAAuDC,cAAvD,EAAuEpD,IAAvE,CAAP;AACD;;AAEM,SAASlB,0BAAT,CAAqCqE,YAArC,EAAmDC,cAAnD,EAAmEpD,IAAnE,EAAyE;AAC9E,SAAOtB,yBAAyByE,YAAzB,EAAuC,eAAvC,EAAwDC,cAAxD,EAAwEpD,IAAxE,CAAP;AACD;;AAED;AACO,SAASjB,kBAAT,CAA6BsE,cAA7B,EAA6CC,OAA7C,EAAsDtD,IAAtD,EAA4D;AACjE,SAAOvB,wBAAwB4E,cAAxB,EAAwC,QAAxC,EAAkDC,OAAlD,EAA2DtD,IAA3D,CAAP;AACD;;AAEM,SAAShB,mBAAT,CAA8BqE,cAA9B,EAA8CC,OAA9C,EAAuDtD,IAAvD,EAA6D;AAClE,SAAOtB,yBAAyB2E,cAAzB,EAAyC,QAAzC,EAAmDC,OAAnD,EAA4DtD,IAA5D,CAAP;AACD;;AAEM,SAASf,sBAAT,CAAiCsE,IAAjC,EAAuCH,cAAvC,EAAuD;AAC5D,QAAMxB,SAAS9B,iBAAE+C,IAAF,CAAOU,KAAKR,aAAZ,EAA2B,EAAEvC,KAAK4C,cAAP,EAA3B,CAAf;AACA,MAAI,CAACtD,iBAAE0D,WAAF,CAAc5B,MAAd,CAAL,EAA4B,OAAOA,OAAOrB,WAAd;AAC5B,SAAOkD,SAAP;AACD;;AAEM,SAASvE,eAAT,CAA0BqE,IAA1B,EAAgCH,cAAhC,EAAgDE,OAAhD,EAAyD;AAC9D,QAAM1B,SAAS9B,iBAAE+C,IAAF,CAAOU,KAAKN,MAAZ,EAAoB,EAAEzB,SAAS4B,cAAX,EAA2B5C,KAAK8C,OAAhC,EAApB,CAAf;AACA,MAAI,CAACxD,iBAAE0D,WAAF,CAAc5B,MAAd,CAAL,EAA4B,OAAOA,OAAOrB,WAAd;AAC5B,SAAOkD,SAAP;AACD;;AAEM,SAAStE,kBAAT,CAA6BoE,IAA7B,EAAmCH,cAAnC,EAAmDpD,IAAnD,EAAyD;AAC9D,SAAOF,iBAAEiB,MAAF,CAASwC,KAAKN,MAAL,IAAe,EAAxB,EAA4B,EAAEzB,SAAS4B,cAAX,EAA2B7C,aAAc,OAAOP,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkCP,UAAUO,IAAV,CAA3E,EAA5B,CAAP;AACD","file":"permissions.js","sourceRoot":"D:/Development/kalisio/kdk/core/common","sourcesContent":["import _ from 'lodash'\r\nimport { Ability, AbilityBuilder, toMongoQuery } from 'casl/dist/umd'\r\n\r\n// Define some alias to simplify ability definitions\r\nAbility.addAlias('update', 'patch')\r\nAbility.addAlias('read', ['get', 'find'])\r\nAbility.addAlias('remove', 'delete')\r\nAbility.addAlias('all', ['read', 'create', 'update', 'remove'])\r\n\r\nexport const Roles = {\r\n member: 0,\r\n manager: 1,\r\n owner: 2\r\n}\r\n\r\nexport const RoleNames = [\r\n 'member',\r\n 'manager',\r\n 'owner'\r\n]\r\n\r\nexport function isSeniorRole (roleName, juniorName) {\r\n return Roles[roleName] >= Roles[juniorName]\r\n}\r\n\r\nexport function isJuniorRole (roleName, seniorName) {\r\n return Roles[roleName] < Roles[seniorName]\r\n}\r\n\r\nexport function getSeniorRoles (roleName) {\r\n const seniorRoles = []\r\n _.forEach(Roles, role => { if (Roles[roleName] < role) seniorRoles.push(RoleNames[role]) })\r\n return seniorRoles\r\n}\r\n\r\nexport function getJuniorRoles (roleName) {\r\n const juniorRoles = []\r\n _.forEach(Roles, role => { if (Roles[roleName] >= role) juniorRoles.push(RoleNames[role]) })\r\n return juniorRoles\r\n}\r\n\r\n// Hooks that can be added to customize abilities computation\r\nlet hooks = []\r\n\r\n// Get the unique global symbol to store resource type / context on a resource object\r\nexport const RESOURCE_TYPE = 'type'\r\nexport const RESOURCE_TYPE_KEY = Symbol.for(RESOURCE_TYPE)\r\n\r\nexport function defineResourceRules (subject, resource, resourceService, can) {\r\n const role = Roles[resource.permissions]\r\n\r\n if (role >= Roles.member) {\r\n can('read', resourceService, { _id: resource._id })\r\n }\r\n if (role >= Roles.manager) {\r\n can('update', resourceService, { _id: resource._id })\r\n can(['create', 'remove'], 'authorisations', { resource: resource._id })\r\n }\r\n if (role >= Roles.owner) {\r\n can('remove', resourceService, { _id: resource._id })\r\n }\r\n}\r\n\r\n// Hook computing default abilities for a given user\r\nexport function defineUserAbilities (subject, can, cannot) {\r\n // Allow user registration\r\n can('service', 'users')\r\n can('create', 'users')\r\n // Verification email, reset password, etc.\r\n can('service', 'account')\r\n can('create', 'account')\r\n can('service', 'devices')\r\n can('update', 'devices')\r\n can('remove', 'devices')\r\n\r\n if (subject && subject._id) {\r\n // Read user profiles for authorizing\r\n can('read', 'users')\r\n // Update user profile and destroy it\r\n can(['update', 'remove'], 'users', { _id: subject._id })\r\n // Access authorisation service, then rights will be granted on a per-resource basis\r\n can('service', 'authorisations')\r\n // Access storage service, then rights will be granted on a per-resource basis\r\n can('service', 'storage')\r\n // This is for the user avatar\r\n // take care that the storage service uses 'id' as input but produces _id as output\r\n can('create', 'storage', { id: 'avatars/' + subject._id.toString() })\r\n can('create', 'storage', { id: 'avatars/' + subject._id.toString() + '.thumbnail' })\r\n can('remove', 'storage', { _id: 'avatars/' + subject._id.toString() })\r\n can('remove', 'storage', { _id: 'avatars/' + subject._id.toString() + '.thumbnail' })\r\n // Avatar is part of user profiles so that they can be read by any\r\n can('read', 'storage', { _id: { $regex: '^avatars/*' } })\r\n // Verification email, reset password, etc.\r\n can('service', 'account')\r\n can('create', 'account')\r\n can('service', 'devices')\r\n can('update', 'devices')\r\n can('remove', 'devices')\r\n }\r\n}\r\n\r\n// Compute abilities for a given user\r\nexport async function defineAbilities (subject, ...args) {\r\n const { rules, can, cannot } = AbilityBuilder.extract()\r\n\r\n // Run registered hooks providing any additional arguments used to handle complex use cases\r\n await Promise.all(hooks.map(async hook => {\r\n await hook(subject, can, cannot, ...args)\r\n }))\r\n\r\n // CASL cannot infer the object type from the object itself so we need\r\n // to tell it how he can find the object type, i.e. service name.\r\n return new Ability(rules, {\r\n subjectName: resource => {\r\n if (!resource || typeof resource === 'string') {\r\n return resource\r\n }\r\n return resource[RESOURCE_TYPE_KEY]\r\n }\r\n })\r\n}\r\n\r\ndefineAbilities.registerHook = function (hook) {\r\n if (!hooks.includes(hook)) {\r\n hooks.push(hook)\r\n }\r\n}\r\n\r\ndefineAbilities.unregisterHook = function (hook) {\r\n hooks = hooks.filter(registeredHook => registeredHook !== hook)\r\n}\r\n\r\nexport function hasServiceAbilities (abilities, service) {\r\n if (!abilities) return false\r\n // The unique identifier of a service is its path not its name.\r\n // Indeed we have for instance a 'groups' service in each organisation\r\n // Take care that in client we have the service path while on server we have the actual object\r\n const path = typeof service === 'string' ? service : service.getPath()\r\n return abilities.can('service', path) || abilities.can('service', _.replace(path, /^.*\\//, '*/'))\r\n}\r\n\r\nexport function hasResourceAbilities (abilities, operation, resourceType, context, resource) {\r\n if (!abilities) return false\r\n // Create a shallow copy adding context and type\r\n const object = Object.assign({}, resource)\r\n object[RESOURCE_TYPE_KEY] = resourceType\r\n // Add a virtual context to take it into account for object having no link to it\r\n if (context) object.context = (typeof context === 'object' ? context._id.toString() : context.toString())\r\n\r\n const result = abilities.can(operation, object)\r\n\r\n return result\r\n}\r\n\r\n// Utility function used to remove the virtual context from query\r\nexport function removeContext (query) {\r\n _.forOwn(query, (value, key) => {\r\n // Process current attributes or recurse\r\n // Take care to nested fields like 'field._id'\r\n if (key === 'context') {\r\n delete query.context\r\n } else if (Array.isArray(value)) {\r\n value.forEach(item => removeContext(item))\r\n // Remove empty objects from array\r\n // _.remove(value, item => _.isEmpty(item))\r\n // Remove empty arrays from query\r\n if (_.isEmpty(value)) delete query[key]\r\n } else if (typeof value === 'object') {\r\n removeContext(value)\r\n // Remove empty objects from query\r\n if (_.isEmpty(value)) delete query[key]\r\n }\r\n })\r\n return query\r\n}\r\n\r\n// Get the query used to filter the objects according to given abilities\r\n// A null query indicates that access should not be granted\r\nexport function getQueryForAbilities (abilities, operation, resourceType) {\r\n if (!abilities) return null\r\n\r\n const rules = abilities.rulesFor(operation, resourceType)\r\n const query = toMongoQuery(rules)\r\n // Remove any context to avoid taking it into account because it is not really stored on objects\r\n // We clone the object here because of references to the abilities rules (see https://github.com/kalisio/kdk/issues/384)\r\n return (query ? removeContext(_.cloneDeep(query)) : null)\r\n}\r\n\r\nfunction buildSubjectsQueryForResource (resourceScope, resourceId, role) {\r\n const query = { [resourceScope]: { $elemMatch: { _id: resourceId } } }\r\n if (role) {\r\n _.set(query[resourceScope], '$elemMatch.permissions', (typeof role === 'string' ? role : RoleNames[role]))\r\n }\r\n return query\r\n}\r\n\r\nexport function findSubjectsForResource (subjectService, resourceScope, resourceId, role) {\r\n // Build the query\r\n const query = buildSubjectsQueryForResource(resourceScope, resourceId, role)\r\n // Execute the query\r\n return subjectService.find({ query })\r\n}\r\n\r\nexport function countSubjectsForResource (subjectService, resourceScope, resourceId, role) {\r\n // Build the query\r\n const query = buildSubjectsQueryForResource(resourceScope, resourceId, role)\r\n // Indicate we'd only like to count\r\n query.$limit = 0\r\n // Execute the query\r\n return subjectService.find({ query })\r\n}\r\n\r\n// Hook computing organisation abilities for a given user\r\nexport function defineOrganisationAbilities (subject, can, cannot) {\r\n if (subject) {\r\n // Create new organisations\r\n can('service', 'organisations')\r\n can('create', 'organisations')\r\n\r\n if (subject.organisations) {\r\n subject.organisations.forEach(organisation => {\r\n if (organisation._id) {\r\n // Generic rules for resources\r\n defineResourceRules(subject, organisation, 'organisations', can)\r\n // Specific rules for organisations\r\n const role = Roles[organisation.permissions]\r\n if (role >= Roles.member) {\r\n // The unique identifier of a service is its path not its name.\r\n // Indeed we have for instance a 'groups' service in each organisation.\r\n can('service', organisation._id.toString() + '/members')\r\n can('read', 'members', { context: organisation._id })\r\n can('service', organisation._id.toString() + '/tags')\r\n can('read', 'tags', { context: organisation._id })\r\n can('service', organisation._id.toString() + '/groups')\r\n can('service', organisation._id.toString() + '/storage')\r\n can(['read', 'create', 'remove'], 'storage', { context: organisation._id })\r\n }\r\n if (role >= Roles.manager) {\r\n can('update', 'members', { context: organisation._id })\r\n can('update', 'tags', { context: organisation._id })\r\n can('create', 'groups', { context: organisation._id })\r\n can(['create', 'remove'], 'tags', { context: organisation._id })\r\n // Remove invited members\r\n can(['remove'], 'users', { 'sponsor.organisationId': organisation._id })\r\n }\r\n }\r\n })\r\n }\r\n }\r\n}\r\n\r\n// Hook computing group abilities for a given user\r\nexport function defineGroupAbilities (subject, can, cannot) {\r\n if (subject) {\r\n if (subject.groups) {\r\n subject.groups.forEach(group => {\r\n if (group._id) {\r\n // Generic rules for resources\r\n defineResourceRules(subject, group, 'groups', can)\r\n // No specific rules for groups\r\n }\r\n })\r\n }\r\n }\r\n}\r\n\r\n// Helper functions to find the members of a given organisation\r\nexport function findMembersOfOrganisation (usersService, organisationId, role) {\r\n return findSubjectsForResource(usersService, 'organisations', organisationId, role)\r\n}\r\n\r\nexport function countMembersOfOrganisation (usersService, organisationId, role) {\r\n return countSubjectsForResource(usersService, 'organisations', organisationId, role)\r\n}\r\n\r\n// Helper functions to find the members of a given group\r\nexport function findMembersOfGroup (membersService, groupId, role) {\r\n return findSubjectsForResource(membersService, 'groups', groupId, role)\r\n}\r\n\r\nexport function countMembersOfGroup (membersService, groupId, role) {\r\n return countSubjectsForResource(membersService, 'groups', groupId, role)\r\n}\r\n\r\nexport function getRoleForOrganisation (user, organisationId) {\r\n const result = _.find(user.organisations, { _id: organisationId })\r\n if (!_.isUndefined(result)) return result.permissions\r\n return undefined\r\n}\r\n\r\nexport function getRoleForGroup (user, organisationId, groupId) {\r\n const result = _.find(user.groups, { context: organisationId, _id: groupId })\r\n if (!_.isUndefined(result)) return result.permissions\r\n return undefined\r\n}\r\n\r\nexport function findGroupsWithRole (user, organisationId, role) {\r\n return _.filter(user.groups || [], { context: organisationId, permissions: (typeof role === 'string' ? role : RoleNames[role]) })\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c050697432a2ba8a5349994f440d4e125f452aef","contentHash":"8e61bf1a230d4264eea43793c0e69407c5d52b837a6f517a02e00af948d156ae"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\index.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\index.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":13},"end":{"line":7,"column":39}},"2":{"start":{"line":9,"column":0},"end":{"line":17,"column":3}},"3":{"start":{"line":10,"column":2},"end":{"line":10,"column":56}},"4":{"start":{"line":10,"column":49},"end":{"line":10,"column":56}},"5":{"start":{"line":11,"column":2},"end":{"line":16,"column":5}},"6":{"start":{"line":14,"column":6},"end":{"line":14,"column":25}},"7":{"start":{"line":19,"column":14},"end":{"line":19,"column":47}},"8":{"start":{"line":21,"column":0},"end":{"line":29,"column":3}},"9":{"start":{"line":22,"column":2},"end":{"line":22,"column":56}},"10":{"start":{"line":22,"column":49},"end":{"line":22,"column":56}},"11":{"start":{"line":23,"column":2},"end":{"line":28,"column":5}},"12":{"start":{"line":26,"column":6},"end":{"line":26,"column":26}},"13":{"start":{"line":31,"column":14},"end":{"line":31,"column":47}},"14":{"start":{"line":33,"column":0},"end":{"line":41,"column":3}},"15":{"start":{"line":34,"column":2},"end":{"line":34,"column":56}},"16":{"start":{"line":34,"column":49},"end":{"line":34,"column":56}},"17":{"start":{"line":35,"column":2},"end":{"line":40,"column":5}},"18":{"start":{"line":38,"column":6},"end":{"line":38,"column":26}},"19":{"start":{"line":43,"column":14},"end":{"line":43,"column":40}},"20":{"start":{"line":45,"column":0},"end":{"line":53,"column":3}},"21":{"start":{"line":46,"column":2},"end":{"line":46,"column":56}},"22":{"start":{"line":46,"column":49},"end":{"line":46,"column":56}},"23":{"start":{"line":47,"column":2},"end":{"line":52,"column":5}},"24":{"start":{"line":50,"column":6},"end":{"line":50,"column":26}},"25":{"start":{"line":55,"column":14},"end":{"line":55,"column":39}},"26":{"start":{"line":57,"column":0},"end":{"line":65,"column":3}},"27":{"start":{"line":58,"column":2},"end":{"line":58,"column":56}},"28":{"start":{"line":58,"column":49},"end":{"line":58,"column":56}},"29":{"start":{"line":59,"column":2},"end":{"line":64,"column":5}},"30":{"start":{"line":62,"column":6},"end":{"line":62,"column":26}},"31":{"start":{"line":67,"column":14},"end":{"line":67,"column":39}},"32":{"start":{"line":69,"column":0},"end":{"line":77,"column":3}},"33":{"start":{"line":70,"column":2},"end":{"line":70,"column":56}},"34":{"start":{"line":70,"column":49},"end":{"line":70,"column":56}},"35":{"start":{"line":71,"column":2},"end":{"line":76,"column":5}},"36":{"start":{"line":74,"column":6},"end":{"line":74,"column":26}},"37":{"start":{"line":79,"column":14},"end":{"line":79,"column":38}},"38":{"start":{"line":81,"column":0},"end":{"line":89,"column":3}},"39":{"start":{"line":82,"column":2},"end":{"line":82,"column":56}},"40":{"start":{"line":82,"column":49},"end":{"line":82,"column":56}},"41":{"start":{"line":83,"column":2},"end":{"line":88,"column":5}},"42":{"start":{"line":86,"column":6},"end":{"line":86,"column":26}},"43":{"start":{"line":91,"column":14},"end":{"line":91,"column":46}},"44":{"start":{"line":93,"column":0},"end":{"line":101,"column":3}},"45":{"start":{"line":94,"column":2},"end":{"line":94,"column":56}},"46":{"start":{"line":94,"column":49},"end":{"line":94,"column":56}},"47":{"start":{"line":95,"column":2},"end":{"line":100,"column":5}},"48":{"start":{"line":98,"column":6},"end":{"line":98,"column":26}},"49":{"start":{"line":103,"column":14},"end":{"line":103,"column":39}},"50":{"start":{"line":105,"column":0},"end":{"line":113,"column":3}},"51":{"start":{"line":106,"column":2},"end":{"line":106,"column":56}},"52":{"start":{"line":106,"column":49},"end":{"line":106,"column":56}},"53":{"start":{"line":107,"column":2},"end":{"line":112,"column":5}},"54":{"start":{"line":110,"column":6},"end":{"line":110,"column":26}},"55":{"start":{"line":115,"column":15},"end":{"line":115,"column":39}},"56":{"start":{"line":117,"column":0},"end":{"line":125,"column":3}},"57":{"start":{"line":118,"column":2},"end":{"line":118,"column":56}},"58":{"start":{"line":118,"column":49},"end":{"line":118,"column":56}},"59":{"start":{"line":119,"column":2},"end":{"line":124,"column":5}},"60":{"start":{"line":122,"column":6},"end":{"line":122,"column":27}},"61":{"start":{"line":127,"column":15},"end":{"line":127,"column":41}},"62":{"start":{"line":129,"column":0},"end":{"line":137,"column":3}},"63":{"start":{"line":130,"column":2},"end":{"line":130,"column":56}},"64":{"start":{"line":130,"column":49},"end":{"line":130,"column":56}},"65":{"start":{"line":131,"column":2},"end":{"line":136,"column":5}},"66":{"start":{"line":134,"column":6},"end":{"line":134,"column":27}},"67":{"start":{"line":139,"column":15},"end":{"line":139,"column":41}},"68":{"start":{"line":141,"column":0},"end":{"line":149,"column":3}},"69":{"start":{"line":142,"column":2},"end":{"line":142,"column":56}},"70":{"start":{"line":142,"column":49},"end":{"line":142,"column":56}},"71":{"start":{"line":143,"column":2},"end":{"line":148,"column":5}},"72":{"start":{"line":146,"column":6},"end":{"line":146,"column":27}},"73":{"start":{"line":151,"column":15},"end":{"line":151,"column":38}},"74":{"start":{"line":153,"column":0},"end":{"line":161,"column":3}},"75":{"start":{"line":154,"column":2},"end":{"line":154,"column":56}},"76":{"start":{"line":154,"column":49},"end":{"line":154,"column":56}},"77":{"start":{"line":155,"column":2},"end":{"line":160,"column":5}},"78":{"start":{"line":158,"column":6},"end":{"line":158,"column":27}},"79":{"start":{"line":163,"column":15},"end":{"line":163,"column":39}},"80":{"start":{"line":165,"column":0},"end":{"line":173,"column":3}},"81":{"start":{"line":166,"column":2},"end":{"line":166,"column":56}},"82":{"start":{"line":166,"column":49},"end":{"line":166,"column":56}},"83":{"start":{"line":167,"column":2},"end":{"line":172,"column":5}},"84":{"start":{"line":170,"column":6},"end":{"line":170,"column":27}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":28},"end":{"line":9,"column":29}},"loc":{"start":{"line":9,"column":43},"end":{"line":17,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":10}},"loc":{"start":{"line":13,"column":21},"end":{"line":15,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":29},"end":{"line":21,"column":30}},"loc":{"start":{"line":21,"column":44},"end":{"line":29,"column":1}},"line":21},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":10}},"loc":{"start":{"line":25,"column":21},"end":{"line":27,"column":5}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":33,"column":29},"end":{"line":33,"column":30}},"loc":{"start":{"line":33,"column":44},"end":{"line":41,"column":1}},"line":33},"5":{"name":"(anonymous_5)","decl":{"start":{"line":37,"column":9},"end":{"line":37,"column":10}},"loc":{"start":{"line":37,"column":21},"end":{"line":39,"column":5}},"line":37},"6":{"name":"(anonymous_6)","decl":{"start":{"line":45,"column":29},"end":{"line":45,"column":30}},"loc":{"start":{"line":45,"column":44},"end":{"line":53,"column":1}},"line":45},"7":{"name":"(anonymous_7)","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":10}},"loc":{"start":{"line":49,"column":21},"end":{"line":51,"column":5}},"line":49},"8":{"name":"(anonymous_8)","decl":{"start":{"line":57,"column":29},"end":{"line":57,"column":30}},"loc":{"start":{"line":57,"column":44},"end":{"line":65,"column":1}},"line":57},"9":{"name":"(anonymous_9)","decl":{"start":{"line":61,"column":9},"end":{"line":61,"column":10}},"loc":{"start":{"line":61,"column":21},"end":{"line":63,"column":5}},"line":61},"10":{"name":"(anonymous_10)","decl":{"start":{"line":69,"column":29},"end":{"line":69,"column":30}},"loc":{"start":{"line":69,"column":44},"end":{"line":77,"column":1}},"line":69},"11":{"name":"(anonymous_11)","decl":{"start":{"line":73,"column":9},"end":{"line":73,"column":10}},"loc":{"start":{"line":73,"column":21},"end":{"line":75,"column":5}},"line":73},"12":{"name":"(anonymous_12)","decl":{"start":{"line":81,"column":29},"end":{"line":81,"column":30}},"loc":{"start":{"line":81,"column":44},"end":{"line":89,"column":1}},"line":81},"13":{"name":"(anonymous_13)","decl":{"start":{"line":85,"column":9},"end":{"line":85,"column":10}},"loc":{"start":{"line":85,"column":21},"end":{"line":87,"column":5}},"line":85},"14":{"name":"(anonymous_14)","decl":{"start":{"line":93,"column":29},"end":{"line":93,"column":30}},"loc":{"start":{"line":93,"column":44},"end":{"line":101,"column":1}},"line":93},"15":{"name":"(anonymous_15)","decl":{"start":{"line":97,"column":9},"end":{"line":97,"column":10}},"loc":{"start":{"line":97,"column":21},"end":{"line":99,"column":5}},"line":97},"16":{"name":"(anonymous_16)","decl":{"start":{"line":105,"column":29},"end":{"line":105,"column":30}},"loc":{"start":{"line":105,"column":44},"end":{"line":113,"column":1}},"line":105},"17":{"name":"(anonymous_17)","decl":{"start":{"line":109,"column":9},"end":{"line":109,"column":10}},"loc":{"start":{"line":109,"column":21},"end":{"line":111,"column":5}},"line":109},"18":{"name":"(anonymous_18)","decl":{"start":{"line":117,"column":30},"end":{"line":117,"column":31}},"loc":{"start":{"line":117,"column":45},"end":{"line":125,"column":1}},"line":117},"19":{"name":"(anonymous_19)","decl":{"start":{"line":121,"column":9},"end":{"line":121,"column":10}},"loc":{"start":{"line":121,"column":21},"end":{"line":123,"column":5}},"line":121},"20":{"name":"(anonymous_20)","decl":{"start":{"line":129,"column":30},"end":{"line":129,"column":31}},"loc":{"start":{"line":129,"column":45},"end":{"line":137,"column":1}},"line":129},"21":{"name":"(anonymous_21)","decl":{"start":{"line":133,"column":9},"end":{"line":133,"column":10}},"loc":{"start":{"line":133,"column":21},"end":{"line":135,"column":5}},"line":133},"22":{"name":"(anonymous_22)","decl":{"start":{"line":141,"column":30},"end":{"line":141,"column":31}},"loc":{"start":{"line":141,"column":45},"end":{"line":149,"column":1}},"line":141},"23":{"name":"(anonymous_23)","decl":{"start":{"line":145,"column":9},"end":{"line":145,"column":10}},"loc":{"start":{"line":145,"column":21},"end":{"line":147,"column":5}},"line":145},"24":{"name":"(anonymous_24)","decl":{"start":{"line":153,"column":30},"end":{"line":153,"column":31}},"loc":{"start":{"line":153,"column":45},"end":{"line":161,"column":1}},"line":153},"25":{"name":"(anonymous_25)","decl":{"start":{"line":157,"column":9},"end":{"line":157,"column":10}},"loc":{"start":{"line":157,"column":21},"end":{"line":159,"column":5}},"line":157},"26":{"name":"(anonymous_26)","decl":{"start":{"line":165,"column":30},"end":{"line":165,"column":31}},"loc":{"start":{"line":165,"column":45},"end":{"line":173,"column":1}},"line":165},"27":{"name":"(anonymous_27)","decl":{"start":{"line":169,"column":9},"end":{"line":169,"column":10}},"loc":{"start":{"line":169,"column":21},"end":{"line":171,"column":5}},"line":169}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":2},"end":{"line":10,"column":56}},"type":"if","locations":[{"start":{"line":10,"column":2},"end":{"line":10,"column":56}},{"start":{"line":10,"column":2},"end":{"line":10,"column":56}}],"line":10},"1":{"loc":{"start":{"line":10,"column":6},"end":{"line":10,"column":47}},"type":"binary-expr","locations":[{"start":{"line":10,"column":6},"end":{"line":10,"column":23}},{"start":{"line":10,"column":27},"end":{"line":10,"column":47}}],"line":10},"2":{"loc":{"start":{"line":22,"column":2},"end":{"line":22,"column":56}},"type":"if","locations":[{"start":{"line":22,"column":2},"end":{"line":22,"column":56}},{"start":{"line":22,"column":2},"end":{"line":22,"column":56}}],"line":22},"3":{"loc":{"start":{"line":22,"column":6},"end":{"line":22,"column":47}},"type":"binary-expr","locations":[{"start":{"line":22,"column":6},"end":{"line":22,"column":23}},{"start":{"line":22,"column":27},"end":{"line":22,"column":47}}],"line":22},"4":{"loc":{"start":{"line":34,"column":2},"end":{"line":34,"column":56}},"type":"if","locations":[{"start":{"line":34,"column":2},"end":{"line":34,"column":56}},{"start":{"line":34,"column":2},"end":{"line":34,"column":56}}],"line":34},"5":{"loc":{"start":{"line":34,"column":6},"end":{"line":34,"column":47}},"type":"binary-expr","locations":[{"start":{"line":34,"column":6},"end":{"line":34,"column":23}},{"start":{"line":34,"column":27},"end":{"line":34,"column":47}}],"line":34},"6":{"loc":{"start":{"line":46,"column":2},"end":{"line":46,"column":56}},"type":"if","locations":[{"start":{"line":46,"column":2},"end":{"line":46,"column":56}},{"start":{"line":46,"column":2},"end":{"line":46,"column":56}}],"line":46},"7":{"loc":{"start":{"line":46,"column":6},"end":{"line":46,"column":47}},"type":"binary-expr","locations":[{"start":{"line":46,"column":6},"end":{"line":46,"column":23}},{"start":{"line":46,"column":27},"end":{"line":46,"column":47}}],"line":46},"8":{"loc":{"start":{"line":58,"column":2},"end":{"line":58,"column":56}},"type":"if","locations":[{"start":{"line":58,"column":2},"end":{"line":58,"column":56}},{"start":{"line":58,"column":2},"end":{"line":58,"column":56}}],"line":58},"9":{"loc":{"start":{"line":58,"column":6},"end":{"line":58,"column":47}},"type":"binary-expr","locations":[{"start":{"line":58,"column":6},"end":{"line":58,"column":23}},{"start":{"line":58,"column":27},"end":{"line":58,"column":47}}],"line":58},"10":{"loc":{"start":{"line":70,"column":2},"end":{"line":70,"column":56}},"type":"if","locations":[{"start":{"line":70,"column":2},"end":{"line":70,"column":56}},{"start":{"line":70,"column":2},"end":{"line":70,"column":56}}],"line":70},"11":{"loc":{"start":{"line":70,"column":6},"end":{"line":70,"column":47}},"type":"binary-expr","locations":[{"start":{"line":70,"column":6},"end":{"line":70,"column":23}},{"start":{"line":70,"column":27},"end":{"line":70,"column":47}}],"line":70},"12":{"loc":{"start":{"line":82,"column":2},"end":{"line":82,"column":56}},"type":"if","locations":[{"start":{"line":82,"column":2},"end":{"line":82,"column":56}},{"start":{"line":82,"column":2},"end":{"line":82,"column":56}}],"line":82},"13":{"loc":{"start":{"line":82,"column":6},"end":{"line":82,"column":47}},"type":"binary-expr","locations":[{"start":{"line":82,"column":6},"end":{"line":82,"column":23}},{"start":{"line":82,"column":27},"end":{"line":82,"column":47}}],"line":82},"14":{"loc":{"start":{"line":94,"column":2},"end":{"line":94,"column":56}},"type":"if","locations":[{"start":{"line":94,"column":2},"end":{"line":94,"column":56}},{"start":{"line":94,"column":2},"end":{"line":94,"column":56}}],"line":94},"15":{"loc":{"start":{"line":94,"column":6},"end":{"line":94,"column":47}},"type":"binary-expr","locations":[{"start":{"line":94,"column":6},"end":{"line":94,"column":23}},{"start":{"line":94,"column":27},"end":{"line":94,"column":47}}],"line":94},"16":{"loc":{"start":{"line":106,"column":2},"end":{"line":106,"column":56}},"type":"if","locations":[{"start":{"line":106,"column":2},"end":{"line":106,"column":56}},{"start":{"line":106,"column":2},"end":{"line":106,"column":56}}],"line":106},"17":{"loc":{"start":{"line":106,"column":6},"end":{"line":106,"column":47}},"type":"binary-expr","locations":[{"start":{"line":106,"column":6},"end":{"line":106,"column":23}},{"start":{"line":106,"column":27},"end":{"line":106,"column":47}}],"line":106},"18":{"loc":{"start":{"line":118,"column":2},"end":{"line":118,"column":56}},"type":"if","locations":[{"start":{"line":118,"column":2},"end":{"line":118,"column":56}},{"start":{"line":118,"column":2},"end":{"line":118,"column":56}}],"line":118},"19":{"loc":{"start":{"line":118,"column":6},"end":{"line":118,"column":47}},"type":"binary-expr","locations":[{"start":{"line":118,"column":6},"end":{"line":118,"column":23}},{"start":{"line":118,"column":27},"end":{"line":118,"column":47}}],"line":118},"20":{"loc":{"start":{"line":130,"column":2},"end":{"line":130,"column":56}},"type":"if","locations":[{"start":{"line":130,"column":2},"end":{"line":130,"column":56}},{"start":{"line":130,"column":2},"end":{"line":130,"column":56}}],"line":130},"21":{"loc":{"start":{"line":130,"column":6},"end":{"line":130,"column":47}},"type":"binary-expr","locations":[{"start":{"line":130,"column":6},"end":{"line":130,"column":23}},{"start":{"line":130,"column":27},"end":{"line":130,"column":47}}],"line":130},"22":{"loc":{"start":{"line":142,"column":2},"end":{"line":142,"column":56}},"type":"if","locations":[{"start":{"line":142,"column":2},"end":{"line":142,"column":56}},{"start":{"line":142,"column":2},"end":{"line":142,"column":56}}],"line":142},"23":{"loc":{"start":{"line":142,"column":6},"end":{"line":142,"column":47}},"type":"binary-expr","locations":[{"start":{"line":142,"column":6},"end":{"line":142,"column":23}},{"start":{"line":142,"column":27},"end":{"line":142,"column":47}}],"line":142},"24":{"loc":{"start":{"line":154,"column":2},"end":{"line":154,"column":56}},"type":"if","locations":[{"start":{"line":154,"column":2},"end":{"line":154,"column":56}},{"start":{"line":154,"column":2},"end":{"line":154,"column":56}}],"line":154},"25":{"loc":{"start":{"line":154,"column":6},"end":{"line":154,"column":47}},"type":"binary-expr","locations":[{"start":{"line":154,"column":6},"end":{"line":154,"column":23}},{"start":{"line":154,"column":27},"end":{"line":154,"column":47}}],"line":154},"26":{"loc":{"start":{"line":166,"column":2},"end":{"line":166,"column":56}},"type":"if","locations":[{"start":{"line":166,"column":2},"end":{"line":166,"column":56}},{"start":{"line":166,"column":2},"end":{"line":166,"column":56}}],"line":166},"27":{"loc":{"start":{"line":166,"column":6},"end":{"line":166,"column":47}},"type":"binary-expr","locations":[{"start":{"line":166,"column":6},"end":{"line":166,"column":23}},{"start":{"line":166,"column":27},"end":{"line":166,"column":47}}],"line":166}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1,"6":1,"7":1,"8":1,"9":3,"10":0,"11":3,"12":4,"13":1,"14":1,"15":11,"16":0,"17":11,"18":18,"19":1,"20":1,"21":1,"22":0,"23":1,"24":1,"25":1,"26":1,"27":2,"28":0,"29":2,"30":6,"31":1,"32":1,"33":1,"34":0,"35":1,"36":5,"37":1,"38":1,"39":18,"40":0,"41":18,"42":23,"43":1,"44":1,"45":11,"46":0,"47":11,"48":11,"49":1,"50":1,"51":6,"52":0,"53":6,"54":2,"55":1,"56":1,"57":9,"58":0,"59":9,"60":2,"61":1,"62":1,"63":3,"64":0,"65":3,"66":2,"67":1,"68":1,"69":5,"70":0,"71":5,"72":4,"73":1,"74":1,"75":8,"76":0,"77":8,"78":8,"79":1,"80":1,"81":11,"82":0,"83":11,"84":15},"f":{"0":1,"1":1,"2":3,"3":4,"4":11,"5":18,"6":1,"7":1,"8":2,"9":6,"10":1,"11":5,"12":18,"13":23,"14":11,"15":11,"16":6,"17":2,"18":9,"19":2,"20":3,"21":2,"22":5,"23":4,"24":8,"25":8,"26":11,"27":15},"b":{"0":[0,1],"1":[1,1],"2":[0,3],"3":[3,3],"4":[0,11],"5":[11,11],"6":[0,1],"7":[1,1],"8":[0,2],"9":[2,2],"10":[0,1],"11":[1,1],"12":[0,18],"13":[18,18],"14":[0,11],"15":[11,11],"16":[0,6],"17":[6,6],"18":[0,9],"19":[9,9],"20":[0,3],"21":[3,3],"22":[0,5],"23":[5,5],"24":[0,8],"25":[8,8],"26":[0,11],"27":[11,11]},"inputSourceMap":{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","file":"index.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["export * from './hooks.account'\r\nexport * from './hooks.authentication'\r\nexport * from './hooks.authorisations'\r\nexport * from './hooks.devices'\r\nexport * from './hooks.groups'\r\nexport * from './hooks.logger'\r\nexport * from './hooks.model'\r\nexport * from './hooks.organisations'\r\nexport * from './hooks.pusher'\r\nexport * from './hooks.query'\r\nexport * from './hooks.service'\r\nexport * from './hooks.storage'\r\nexport * from './hooks.tags'\r\nexport * from './hooks.users'\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fbe96c1fb6e45b965692f8552bd8e87a84faeaa7","contentHash":"b54328c9049aaef21e3bf902f27da0bc4a2a2dc72d9e7c7b2520a69bd80f50b9"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.account.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.account.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":40}},"2":{"start":{"line":8,"column":26},"end":{"line":37,"column":4}},"3":{"start":{"line":9,"column":13},"end":{"line":32,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"5":{"start":{"line":11,"column":6},"end":{"line":11,"column":93}},"6":{"start":{"line":13,"column":16},"end":{"line":13,"column":24}},"7":{"start":{"line":14,"column":17},"end":{"line":14,"column":26}},"8":{"start":{"line":16,"column":4},"end":{"line":29,"column":5}},"9":{"start":{"line":17,"column":26},"end":{"line":17,"column":49}},"10":{"start":{"line":18,"column":20},"end":{"line":18,"column":60}},"11":{"start":{"line":19,"column":20},"end":{"line":19,"column":61}},"12":{"start":{"line":20,"column":6},"end":{"line":28,"column":7}},"13":{"start":{"line":21,"column":8},"end":{"line":21,"column":50}},"14":{"start":{"line":22,"column":8},"end":{"line":22,"column":61}},"15":{"start":{"line":23,"column":8},"end":{"line":23,"column":60}},"16":{"start":{"line":24,"column":13},"end":{"line":28,"column":7}},"17":{"start":{"line":25,"column":8},"end":{"line":25,"column":51}},"18":{"start":{"line":26,"column":8},"end":{"line":26,"column":73}},"19":{"start":{"line":27,"column":8},"end":{"line":27,"column":61}},"20":{"start":{"line":31,"column":4},"end":{"line":31,"column":16}},"21":{"start":{"line":34,"column":2},"end":{"line":36,"column":4}},"22":{"start":{"line":35,"column":4},"end":{"line":35,"column":39}},"23":{"start":{"line":39,"column":14},"end":{"line":39,"column":31}},"24":{"start":{"line":41,"column":15},"end":{"line":41,"column":46}},"25":{"start":{"line":43,"column":13},"end":{"line":43,"column":29}},"26":{"start":{"line":45,"column":14},"end":{"line":45,"column":44}},"27":{"start":{"line":47,"column":39},"end":{"line":47,"column":93}},"28":{"start":{"line":49,"column":33},"end":{"line":49,"column":456}},"29":{"start":{"line":49,"column":64},"end":{"line":49,"column":89}},"30":{"start":{"line":49,"column":91},"end":{"line":49,"column":453}},"31":{"start":{"line":49,"column":165},"end":{"line":49,"column":263}},"32":{"start":{"line":49,"column":182},"end":{"line":49,"column":195}},"33":{"start":{"line":49,"column":209},"end":{"line":49,"column":219}},"34":{"start":{"line":49,"column":239},"end":{"line":49,"column":253}},"35":{"start":{"line":49,"column":254},"end":{"line":49,"column":261}},"36":{"start":{"line":49,"column":264},"end":{"line":49,"column":426}},"37":{"start":{"line":49,"column":281},"end":{"line":49,"column":296}},"38":{"start":{"line":49,"column":306},"end":{"line":49,"column":424}},"39":{"start":{"line":49,"column":360},"end":{"line":49,"column":380}},"40":{"start":{"line":49,"column":401},"end":{"line":49,"column":420}},"41":{"start":{"line":49,"column":429},"end":{"line":49,"column":449}},"42":{"start":{"line":51,"column":14},"end":{"line":51,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":57},"end":{"line":8,"column":58}},"loc":{"start":{"line":8,"column":63},"end":{"line":37,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":48},"end":{"line":32,"column":3}},"line":9},"2":{"name":"populateAccountUser","decl":{"start":{"line":34,"column":18},"end":{"line":34,"column":37}},"loc":{"start":{"line":34,"column":42},"end":{"line":36,"column":3}},"line":34},"3":{"name":"_interopRequireDefault","decl":{"start":{"line":47,"column":9},"end":{"line":47,"column":31}},"loc":{"start":{"line":47,"column":37},"end":{"line":47,"column":95}},"line":47},"4":{"name":"_asyncToGenerator","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":26}},"loc":{"start":{"line":49,"column":31},"end":{"line":49,"column":458}},"line":49},"5":{"name":"(anonymous_5)","decl":{"start":{"line":49,"column":40},"end":{"line":49,"column":41}},"loc":{"start":{"line":49,"column":52},"end":{"line":49,"column":455}},"line":49},"6":{"name":"(anonymous_6)","decl":{"start":{"line":49,"column":110},"end":{"line":49,"column":111}},"loc":{"start":{"line":49,"column":137},"end":{"line":49,"column":451}},"line":49},"7":{"name":"step","decl":{"start":{"line":49,"column":148},"end":{"line":49,"column":152}},"loc":{"start":{"line":49,"column":163},"end":{"line":49,"column":428}},"line":49},"8":{"name":"(anonymous_8)","decl":{"start":{"line":49,"column":341},"end":{"line":49,"column":342}},"loc":{"start":{"line":49,"column":358},"end":{"line":49,"column":382}},"line":49},"9":{"name":"(anonymous_9)","decl":{"start":{"line":49,"column":384},"end":{"line":49,"column":385}},"loc":{"start":{"line":49,"column":399},"end":{"line":49,"column":422}},"line":49}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},{"start":{"line":10,"column":4},"end":{"line":12,"column":5}}],"line":10},"1":{"loc":{"start":{"line":16,"column":4},"end":{"line":29,"column":5}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":29,"column":5}},{"start":{"line":16,"column":4},"end":{"line":29,"column":5}}],"line":16},"2":{"loc":{"start":{"line":20,"column":6},"end":{"line":28,"column":7}},"type":"if","locations":[{"start":{"line":20,"column":6},"end":{"line":28,"column":7}},{"start":{"line":20,"column":6},"end":{"line":28,"column":7}}],"line":20},"3":{"loc":{"start":{"line":24,"column":13},"end":{"line":28,"column":7}},"type":"if","locations":[{"start":{"line":24,"column":13},"end":{"line":28,"column":7}},{"start":{"line":24,"column":13},"end":{"line":28,"column":7}}],"line":24},"4":{"loc":{"start":{"line":47,"column":46},"end":{"line":47,"column":92}},"type":"cond-expr","locations":[{"start":{"line":47,"column":70},"end":{"line":47,"column":73}},{"start":{"line":47,"column":76},"end":{"line":47,"column":92}}],"line":47},"5":{"loc":{"start":{"line":47,"column":46},"end":{"line":47,"column":67}},"type":"binary-expr","locations":[{"start":{"line":47,"column":46},"end":{"line":47,"column":49}},{"start":{"line":47,"column":53},"end":{"line":47,"column":67}}],"line":47},"6":{"loc":{"start":{"line":49,"column":264},"end":{"line":49,"column":426}},"type":"if","locations":[{"start":{"line":49,"column":264},"end":{"line":49,"column":426}},{"start":{"line":49,"column":264},"end":{"line":49,"column":426}}],"line":49}},"s":{"0":1,"1":1,"2":1,"3":1,"4":4,"5":0,"6":4,"7":4,"8":4,"9":4,"10":4,"11":4,"12":4,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":4,"21":1,"22":4,"23":1,"24":1,"25":1,"26":1,"27":2,"28":1,"29":4,"30":4,"31":8,"32":8,"33":8,"34":0,"35":0,"36":8,"37":4,"38":4,"39":4,"40":0,"41":4,"42":1},"f":{"0":1,"1":4,"2":4,"3":2,"4":1,"5":4,"6":4,"7":8,"8":4,"9":0},"b":{"0":[0,4],"1":[4,0],"2":[2,2],"3":[2,0],"4":[0,2],"5":[2,2],"6":[4,4]},"inputSourceMap":{"version":3,"sources":["hooks.account.js"],"names":["hook","type","Error","app","data","params","user","userService","getService","query","_","get","token","debug","find","resetToken","populateAccountUser"],"mappings":";;;;;;;;+BAIO,WAAoCA,IAApC,EAA0C;AAC/C,QAAIA,KAAKC,IAAL,KAAc,QAAlB,EAA4B;AAC1B,YAAM,IAAIC,KAAJ,CAAU,qEAAV,CAAN;AACD;AACD,UAAMC,MAAMH,KAAKG,GAAjB;AACA,UAAMC,OAAOJ,KAAKI,IAAlB;AACA;AACA,QAAI,CAACJ,KAAKK,MAAL,CAAYC,IAAjB,EAAuB;AACrB,YAAMC,cAAcJ,IAAIK,UAAJ,CAAe,OAAf,CAApB;AACA,YAAMC,QAAQC,iBAAEC,GAAF,CAAMP,IAAN,EAAY,YAAZ,CAAd;AACA,YAAMQ,QAAQF,iBAAEC,GAAF,CAAMP,IAAN,EAAY,aAAZ,CAAd;AACA,UAAIK,KAAJ,EAAW;AACTI,cAAM,2BAAN,EAAmCJ,KAAnC;AACAT,aAAKK,MAAL,CAAYC,IAAZ,GAAmB,MAAMC,YAAYO,IAAZ,CAAiB,EAAEL,KAAF,EAAjB,CAAzB;AACAI,cAAM,0BAAN,EAAkCb,KAAKK,MAAL,CAAYC,IAA9C;AACD,OAJD,MAIO,IAAIM,KAAJ,EAAW;AAChBC,cAAM,4BAAN,EAAoCD,KAApC;AACAZ,aAAKK,MAAL,CAAYC,IAAZ,GAAmB,MAAMC,YAAYO,IAAZ,CAAiB,EAAEC,YAAYH,KAAd,EAAjB,CAAzB;AACAC,cAAM,2BAAN,EAAmCb,KAAKK,MAAL,CAAYC,IAA/C;AACD;AACF;;AAED,WAAON,IAAP;AACD,G;;kBAvBqBgB,mB;;;;;AAJtB;;;;AACA;;;;;;;;AACA,MAAMH,QAAQ,qBAAU,wBAAV,CAAd","file":"hooks.account.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import _ from 'lodash'\r\nimport makeDebug from 'debug'\r\nconst debug = makeDebug('kdk:core:account:hooks')\r\n\r\nexport async function populateAccountUser (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'populateUser\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const app = hook.app\r\n const data = hook.data\r\n // Check whether the user has been already populated.\r\n if (!hook.params.user) {\r\n const userService = app.getService('users')\r\n const query = _.get(data, 'value.user')\r\n const token = _.get(data, 'value.token')\r\n if (query) {\r\n debug('Populating user from data', query)\r\n hook.params.user = await userService.find({ query })\r\n debug('Populated user from data', hook.params.user)\r\n } else if (token) {\r\n debug('Populating user from token', token)\r\n hook.params.user = await userService.find({ resetToken: token })\r\n debug('Populated user from token', hook.params.user)\r\n }\r\n }\r\n\r\n return hook\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"158ae59758d73234968ca1093dc5adeef6e9061f","contentHash":"3353ccf10df7a54cd09444a0d72f5a24a4bdbfb7a60cd8228345e6cbe51fcdce"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.authentication.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.authentication.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":78}},"2":{"start":{"line":8,"column":18},"end":{"line":40,"column":4}},"3":{"start":{"line":9,"column":13},"end":{"line":35,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"5":{"start":{"line":11,"column":6},"end":{"line":11,"column":91}},"6":{"start":{"line":13,"column":16},"end":{"line":13,"column":24}},"7":{"start":{"line":14,"column":17},"end":{"line":14,"column":33}},"8":{"start":{"line":15,"column":4},"end":{"line":15,"column":51}},"9":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"10":{"start":{"line":19,"column":6},"end":{"line":19,"column":42}},"11":{"start":{"line":20,"column":6},"end":{"line":20,"column":18}},"12":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"13":{"start":{"line":25,"column":6},"end":{"line":25,"column":48}},"14":{"start":{"line":26,"column":6},"end":{"line":26,"column":18}},"15":{"start":{"line":30,"column":4},"end":{"line":30,"column":36}},"16":{"start":{"line":31,"column":24},"end":{"line":31,"column":47}},"17":{"start":{"line":32,"column":4},"end":{"line":32,"column":60}},"18":{"start":{"line":34,"column":4},"end":{"line":34,"column":16}},"19":{"start":{"line":37,"column":2},"end":{"line":39,"column":4}},"20":{"start":{"line":38,"column":4},"end":{"line":38,"column":39}},"21":{"start":{"line":42,"column":19},"end":{"line":74,"column":4}},"22":{"start":{"line":43,"column":14},"end":{"line":69,"column":4}},"23":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"24":{"start":{"line":45,"column":6},"end":{"line":45,"column":92}},"25":{"start":{"line":47,"column":16},"end":{"line":47,"column":24}},"26":{"start":{"line":48,"column":17},"end":{"line":48,"column":33}},"27":{"start":{"line":49,"column":4},"end":{"line":49,"column":52}},"28":{"start":{"line":52,"column":4},"end":{"line":55,"column":5}},"29":{"start":{"line":53,"column":6},"end":{"line":53,"column":42}},"30":{"start":{"line":54,"column":6},"end":{"line":54,"column":18}},"31":{"start":{"line":58,"column":4},"end":{"line":61,"column":5}},"32":{"start":{"line":59,"column":6},"end":{"line":59,"column":48}},"33":{"start":{"line":60,"column":6},"end":{"line":60,"column":18}},"34":{"start":{"line":64,"column":4},"end":{"line":64,"column":37}},"35":{"start":{"line":65,"column":24},"end":{"line":65,"column":47}},"36":{"start":{"line":66,"column":4},"end":{"line":66,"column":78}},"37":{"start":{"line":68,"column":4},"end":{"line":68,"column":16}},"38":{"start":{"line":71,"column":2},"end":{"line":73,"column":4}},"39":{"start":{"line":72,"column":4},"end":{"line":72,"column":40}},"40":{"start":{"line":76,"column":13},"end":{"line":76,"column":29}},"41":{"start":{"line":78,"column":14},"end":{"line":78,"column":44}},"42":{"start":{"line":80,"column":39},"end":{"line":80,"column":93}},"43":{"start":{"line":82,"column":33},"end":{"line":82,"column":456}},"44":{"start":{"line":82,"column":64},"end":{"line":82,"column":89}},"45":{"start":{"line":82,"column":91},"end":{"line":82,"column":453}},"46":{"start":{"line":82,"column":165},"end":{"line":82,"column":263}},"47":{"start":{"line":82,"column":182},"end":{"line":82,"column":195}},"48":{"start":{"line":82,"column":209},"end":{"line":82,"column":219}},"49":{"start":{"line":82,"column":239},"end":{"line":82,"column":253}},"50":{"start":{"line":82,"column":254},"end":{"line":82,"column":261}},"51":{"start":{"line":82,"column":264},"end":{"line":82,"column":426}},"52":{"start":{"line":82,"column":281},"end":{"line":82,"column":296}},"53":{"start":{"line":82,"column":306},"end":{"line":82,"column":424}},"54":{"start":{"line":82,"column":360},"end":{"line":82,"column":380}},"55":{"start":{"line":82,"column":401},"end":{"line":82,"column":420}},"56":{"start":{"line":82,"column":429},"end":{"line":82,"column":449}},"57":{"start":{"line":84,"column":14},"end":{"line":84,"column":67}},"58":{"start":{"line":87,"column":21},"end":{"line":87,"column":106}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":41},"end":{"line":8,"column":42}},"loc":{"start":{"line":8,"column":47},"end":{"line":40,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":48},"end":{"line":35,"column":3}},"line":9},"2":{"name":"verifyGuest","decl":{"start":{"line":37,"column":18},"end":{"line":37,"column":29}},"loc":{"start":{"line":37,"column":34},"end":{"line":39,"column":3}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":42,"column":43},"end":{"line":42,"column":44}},"loc":{"start":{"line":42,"column":49},"end":{"line":74,"column":1}},"line":42},"4":{"name":"(anonymous_4)","decl":{"start":{"line":43,"column":32},"end":{"line":43,"column":33}},"loc":{"start":{"line":43,"column":49},"end":{"line":69,"column":3}},"line":43},"5":{"name":"consentGuest","decl":{"start":{"line":71,"column":18},"end":{"line":71,"column":30}},"loc":{"start":{"line":71,"column":36},"end":{"line":73,"column":3}},"line":71},"6":{"name":"_interopRequireDefault","decl":{"start":{"line":80,"column":9},"end":{"line":80,"column":31}},"loc":{"start":{"line":80,"column":37},"end":{"line":80,"column":95}},"line":80},"7":{"name":"_asyncToGenerator","decl":{"start":{"line":82,"column":9},"end":{"line":82,"column":26}},"loc":{"start":{"line":82,"column":31},"end":{"line":82,"column":458}},"line":82},"8":{"name":"(anonymous_8)","decl":{"start":{"line":82,"column":40},"end":{"line":82,"column":41}},"loc":{"start":{"line":82,"column":52},"end":{"line":82,"column":455}},"line":82},"9":{"name":"(anonymous_9)","decl":{"start":{"line":82,"column":110},"end":{"line":82,"column":111}},"loc":{"start":{"line":82,"column":137},"end":{"line":82,"column":451}},"line":82},"10":{"name":"step","decl":{"start":{"line":82,"column":148},"end":{"line":82,"column":152}},"loc":{"start":{"line":82,"column":163},"end":{"line":82,"column":428}},"line":82},"11":{"name":"(anonymous_11)","decl":{"start":{"line":82,"column":341},"end":{"line":82,"column":342}},"loc":{"start":{"line":82,"column":358},"end":{"line":82,"column":382}},"line":82},"12":{"name":"(anonymous_12)","decl":{"start":{"line":82,"column":384},"end":{"line":82,"column":385}},"loc":{"start":{"line":82,"column":399},"end":{"line":82,"column":422}},"line":82}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},{"start":{"line":10,"column":4},"end":{"line":12,"column":5}}],"line":10},"1":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{"line":18,"column":4},"end":{"line":21,"column":5}}],"line":18},"2":{"loc":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},{"start":{"line":24,"column":4},"end":{"line":27,"column":5}}],"line":24},"3":{"loc":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},{"start":{"line":44,"column":4},"end":{"line":46,"column":5}}],"line":44},"4":{"loc":{"start":{"line":52,"column":4},"end":{"line":55,"column":5}},"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":55,"column":5}},{"start":{"line":52,"column":4},"end":{"line":55,"column":5}}],"line":52},"5":{"loc":{"start":{"line":58,"column":4},"end":{"line":61,"column":5}},"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":61,"column":5}},{"start":{"line":58,"column":4},"end":{"line":61,"column":5}}],"line":58},"6":{"loc":{"start":{"line":80,"column":46},"end":{"line":80,"column":92}},"type":"cond-expr","locations":[{"start":{"line":80,"column":70},"end":{"line":80,"column":73}},{"start":{"line":80,"column":76},"end":{"line":80,"column":92}}],"line":80},"7":{"loc":{"start":{"line":80,"column":46},"end":{"line":80,"column":67}},"type":"binary-expr","locations":[{"start":{"line":80,"column":46},"end":{"line":80,"column":49}},{"start":{"line":80,"column":53},"end":{"line":80,"column":67}}],"line":80},"8":{"loc":{"start":{"line":82,"column":264},"end":{"line":82,"column":426}},"type":"if","locations":[{"start":{"line":82,"column":264},"end":{"line":82,"column":426}},{"start":{"line":82,"column":264},"end":{"line":82,"column":426}}],"line":82}},"s":{"0":1,"1":1,"2":1,"3":1,"4":4,"5":0,"6":4,"7":4,"8":4,"9":4,"10":3,"11":3,"12":1,"13":0,"14":0,"15":1,"16":1,"17":1,"18":1,"19":1,"20":4,"21":1,"22":1,"23":4,"24":0,"25":4,"26":4,"27":4,"28":4,"29":3,"30":3,"31":1,"32":0,"33":0,"34":1,"35":1,"36":1,"37":1,"38":1,"39":4,"40":1,"41":1,"42":1,"43":2,"44":8,"45":8,"46":10,"47":10,"48":10,"49":0,"50":0,"51":10,"52":8,"53":2,"54":2,"55":0,"56":8,"57":1,"58":1},"f":{"0":1,"1":4,"2":4,"3":1,"4":4,"5":4,"6":1,"7":2,"8":8,"9":8,"10":10,"11":2,"12":0},"b":{"0":[0,4],"1":[3,1],"2":[0,1],"3":[0,4],"4":[3,1],"5":[0,1],"6":[0,1],"7":[1,1],"8":[8,2]},"inputSourceMap":{"version":3,"sources":["hooks.authentication.js"],"names":["hook","type","Error","app","user","params","debug","_id","sponsor","isVerified","userService","getService","patch","verifyGuest","consentTerms","expireAt","consentGuest","hashPassword","require","hooks"],"mappings":";;;;;;;;+BAMO,WAA4BA,IAA5B,EAAkC;AACvC,QAAIA,KAAKC,IAAL,KAAc,OAAlB,EAA2B;AACzB,YAAM,IAAIC,KAAJ,CAAU,mEAAV,CAAN;AACD;AACD,UAAMC,MAAMH,KAAKG,GAAjB;AACA,UAAMC,OAAOJ,KAAKK,MAAL,CAAYD,IAAzB;AACAE,UAAM,6BAAN,EAAqCF,KAAKG,GAA1C;;AAEA;AACA,QAAI,CAACH,KAAKI,OAAV,EAAmB;AACjBF,YAAM,4BAAN;AACA,aAAON,IAAP;AACD;;AAED;AACA,QAAII,KAAKK,UAAT,EAAqB;AACnBH,YAAM,kCAAN;AACA,aAAON,IAAP;AACD;;AAED;AACAM,UAAM,wBAAN;AACA,UAAMI,cAAcP,IAAIQ,UAAJ,CAAe,OAAf,CAApB;AACA,UAAMD,YAAYE,KAAZ,CAAkBR,KAAKG,GAAvB,EAA4B,EAAEE,YAAY,IAAd,EAA5B,CAAN;;AAEA,WAAOT,IAAP;AACD,G;;kBA1BqBa,W;;;;;;gCA4Bf,WAA6Bb,IAA7B,EAAmC;AACxC,QAAIA,KAAKC,IAAL,KAAc,OAAlB,EAA2B;AACzB,YAAM,IAAIC,KAAJ,CAAU,oEAAV,CAAN;AACD;AACD,UAAMC,MAAMH,KAAKG,GAAjB;AACA,UAAMC,OAAOJ,KAAKK,MAAL,CAAYD,IAAzB;AACAE,UAAM,8BAAN,EAAsCF,KAAKG,GAA3C;;AAEA;AACA,QAAI,CAACH,KAAKI,OAAV,EAAmB;AACjBF,YAAM,4BAAN;AACA,aAAON,IAAP;AACD;;AAED;AACA,QAAII,KAAKU,YAAT,EAAuB;AACrBR,YAAM,kCAAN;AACA,aAAON,IAAP;AACD;;AAED;AACAM,UAAM,yBAAN;AACA,UAAMI,cAAcP,IAAIQ,UAAJ,CAAe,OAAf,CAApB;AACA,UAAMD,YAAYE,KAAZ,CAAkBR,KAAKG,GAAvB,EAA4B,EAAEO,cAAc,IAAhB,EAAsBC,UAAU,IAAhC,EAA5B,CAAN;;AAEA,WAAOf,IAAP;AACD,G;;kBA1BqBgB,Y;;;;;AAlCtB;;;;;;;;AACA,MAAMV,QAAQ,qBAAU,+BAAV,CAAd;;AAEA;AACO,MAAMW,sCAAeC,QAAQ,kCAAR,EAA4CC,KAA5C,CAAkDF,YAAvE","file":"hooks.authentication.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import makeDebug from 'debug'\r\nconst debug = makeDebug('kdk:core:authentication:hooks')\r\n\r\n// Make it more easy to acces\r\nexport const hashPassword = require('@feathersjs/authentication-local').hooks.hashPassword\r\n\r\nexport async function verifyGuest (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'verifyGuest\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n const app = hook.app\r\n const user = hook.params.user\r\n debug('verifyGuest hook called on ', user._id)\r\n\r\n // Check whether the user has been inivted. If not, nothing to do\r\n if (!user.sponsor) {\r\n debug('Logged user is not a guest')\r\n return hook\r\n }\r\n\r\n // Check whether has been already verified. If yes, nothing to do\r\n if (user.isVerified) {\r\n debug('Logged guest is already verified')\r\n return hook\r\n }\r\n\r\n // The user is a guest and need to be verified\r\n debug('Verifying logged guest')\r\n const userService = app.getService('users')\r\n await userService.patch(user._id, { isVerified: true })\r\n\r\n return hook\r\n}\r\n\r\nexport async function consentGuest (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'consentGuest\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n const app = hook.app\r\n const user = hook.params.user\r\n debug('consentGuest hook called on ', user._id)\r\n\r\n // Check whether the user has been invited. If not, nothing to do\r\n if (!user.sponsor) {\r\n debug('Logged user is not a guest')\r\n return hook\r\n }\r\n\r\n // Check whether consent has been already checked. If yes, nothing to do\r\n if (user.consentTerms) {\r\n debug('Logged guest is already verified')\r\n return hook\r\n }\r\n\r\n // The user is a guest and need to be consent\r\n debug('Consenting logged guest')\r\n const userService = app.getService('users')\r\n await userService.patch(user._id, { consentTerms: true, expireAt: null })\r\n\r\n return hook\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f4eeea5ddcbf0c3e854ad80a60e10256a4cafddd","contentHash":"fc7510c69c5ede0d3b37934f3a81b35a4de6a8d89e2ea28bfb55aad2c24a1aa7"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.authorisations.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.authorisations.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":126}},"2":{"start":{"line":8,"column":16},"end":{"line":110,"column":4}},"3":{"start":{"line":9,"column":14},"end":{"line":105,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"5":{"start":{"line":11,"column":6},"end":{"line":11,"column":90}},"6":{"start":{"line":13,"column":22},"end":{"line":13,"column":33}},"7":{"start":{"line":14,"column":25},"end":{"line":14,"column":42}},"8":{"start":{"line":15,"column":4},"end":{"line":15,"column":47}},"9":{"start":{"line":16,"column":4},"end":{"line":16,"column":61}},"10":{"start":{"line":16,"column":26},"end":{"line":16,"column":61}},"11":{"start":{"line":17,"column":4},"end":{"line":17,"column":37}},"12":{"start":{"line":18,"column":4},"end":{"line":18,"column":62}},"13":{"start":{"line":18,"column":22},"end":{"line":18,"column":62}},"14":{"start":{"line":21,"column":29},"end":{"line":21,"column":74}},"15":{"start":{"line":22,"column":4},"end":{"line":22,"column":93}},"16":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"17":{"start":{"line":25,"column":6},"end":{"line":25,"column":38}},"18":{"start":{"line":26,"column":6},"end":{"line":26,"column":33}},"19":{"start":{"line":29,"column":4},"end":{"line":32,"column":5}},"20":{"start":{"line":30,"column":6},"end":{"line":30,"column":52}},"21":{"start":{"line":31,"column":6},"end":{"line":31,"column":33}},"22":{"start":{"line":34,"column":4},"end":{"line":39,"column":5}},"23":{"start":{"line":35,"column":6},"end":{"line":35,"column":83}},"24":{"start":{"line":37,"column":6},"end":{"line":37,"column":44}},"25":{"start":{"line":38,"column":6},"end":{"line":38,"column":76}},"26":{"start":{"line":41,"column":20},"end":{"line":41,"column":40}},"27":{"start":{"line":42,"column":4},"end":{"line":101,"column":5}},"28":{"start":{"line":44,"column":35},"end":{"line":44,"column":72}},"29":{"start":{"line":45,"column":24},"end":{"line":45,"column":81}},"30":{"start":{"line":46,"column":6},"end":{"line":46,"column":40}},"31":{"start":{"line":47,"column":6},"end":{"line":47,"column":51}},"32":{"start":{"line":50,"column":6},"end":{"line":53,"column":7}},"33":{"start":{"line":51,"column":8},"end":{"line":51,"column":44}},"34":{"start":{"line":52,"column":8},"end":{"line":52,"column":103}},"35":{"start":{"line":55,"column":6},"end":{"line":98,"column":7}},"36":{"start":{"line":58,"column":8},"end":{"line":78,"column":9}},"37":{"start":{"line":59,"column":27},"end":{"line":59,"column":36}},"38":{"start":{"line":60,"column":10},"end":{"line":60,"column":49}},"39":{"start":{"line":61,"column":10},"end":{"line":64,"column":11}},"40":{"start":{"line":62,"column":12},"end":{"line":62,"column":49}},"41":{"start":{"line":63,"column":12},"end":{"line":63,"column":116}},"42":{"start":{"line":69,"column":26},"end":{"line":69,"column":123}},"43":{"start":{"line":70,"column":10},"end":{"line":77,"column":11}},"44":{"start":{"line":71,"column":12},"end":{"line":73,"column":19}},"45":{"start":{"line":72,"column":14},"end":{"line":72,"column":89}},"46":{"start":{"line":72,"column":33},"end":{"line":72,"column":64}},"47":{"start":{"line":72,"column":69},"end":{"line":72,"column":89}},"48":{"start":{"line":74,"column":12},"end":{"line":74,"column":63}},"49":{"start":{"line":76,"column":12},"end":{"line":76,"column":58}},"50":{"start":{"line":79,"column":8},"end":{"line":79,"column":41}},"51":{"start":{"line":82,"column":13},"end":{"line":98,"column":7}},"52":{"start":{"line":84,"column":25},"end":{"line":84,"column":115}},"53":{"start":{"line":85,"column":8},"end":{"line":85,"column":46}},"54":{"start":{"line":87,"column":8},"end":{"line":90,"column":9}},"55":{"start":{"line":88,"column":10},"end":{"line":88,"column":47}},"56":{"start":{"line":89,"column":10},"end":{"line":89,"column":114}},"57":{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},"58":{"start":{"line":93,"column":10},"end":{"line":93,"column":33}},"59":{"start":{"line":95,"column":8},"end":{"line":95,"column":38}},"60":{"start":{"line":96,"column":8},"end":{"line":96,"column":41}},"61":{"start":{"line":97,"column":8},"end":{"line":97,"column":20}},"62":{"start":{"line":100,"column":6},"end":{"line":100,"column":59}},"63":{"start":{"line":103,"column":4},"end":{"line":103,"column":34}},"64":{"start":{"line":104,"column":4},"end":{"line":104,"column":16}},"65":{"start":{"line":107,"column":2},"end":{"line":109,"column":4}},"66":{"start":{"line":108,"column":4},"end":{"line":108,"column":40}},"67":{"start":{"line":112,"column":45},"end":{"line":144,"column":4}},"68":{"start":{"line":113,"column":14},"end":{"line":139,"column":4}},"69":{"start":{"line":114,"column":16},"end":{"line":114,"column":24}},"70":{"start":{"line":115,"column":33},"end":{"line":115,"column":65}},"71":{"start":{"line":116,"column":16},"end":{"line":116,"column":36}},"72":{"start":{"line":117,"column":17},"end":{"line":117,"column":33}},"73":{"start":{"line":119,"column":28},"end":{"line":119,"column":57}},"74":{"start":{"line":120,"column":19},"end":{"line":120,"column":66}},"75":{"start":{"line":121,"column":4},"end":{"line":136,"column":8}},"76":{"start":{"line":123,"column":6},"end":{"line":135,"column":9}},"77":{"start":{"line":137,"column":4},"end":{"line":137,"column":72}},"78":{"start":{"line":138,"column":4},"end":{"line":138,"column":16}},"79":{"start":{"line":141,"column":2},"end":{"line":143,"column":4}},"80":{"start":{"line":142,"column":4},"end":{"line":142,"column":40}},"81":{"start":{"line":146,"column":43},"end":{"line":177,"column":4}},"82":{"start":{"line":147,"column":14},"end":{"line":172,"column":4}},"83":{"start":{"line":148,"column":16},"end":{"line":148,"column":24}},"84":{"start":{"line":149,"column":16},"end":{"line":149,"column":36}},"85":{"start":{"line":150,"column":27},"end":{"line":150,"column":54}},"86":{"start":{"line":151,"column":27},"end":{"line":151,"column":54}},"87":{"start":{"line":152,"column":21},"end":{"line":152,"column":47}},"88":{"start":{"line":153,"column":4},"end":{"line":153,"column":43}},"89":{"start":{"line":153,"column":31},"end":{"line":153,"column":43}},"90":{"start":{"line":155,"column":20},"end":{"line":155,"column":66}},"91":{"start":{"line":156,"column":21},"end":{"line":156,"column":23}},"92":{"start":{"line":157,"column":4},"end":{"line":167,"column":7}},"93":{"start":{"line":158,"column":19},"end":{"line":158,"column":37}},"94":{"start":{"line":160,"column":22},"end":{"line":160,"column":90}},"95":{"start":{"line":162,"column":25},"end":{"line":162,"column":91}},"96":{"start":{"line":164,"column":6},"end":{"line":166,"column":7}},"97":{"start":{"line":165,"column":8},"end":{"line":165,"column":116}},"98":{"start":{"line":169,"column":4},"end":{"line":169,"column":32}},"99":{"start":{"line":170,"column":4},"end":{"line":170,"column":83}},"100":{"start":{"line":171,"column":4},"end":{"line":171,"column":16}},"101":{"start":{"line":174,"column":2},"end":{"line":176,"column":4}},"102":{"start":{"line":175,"column":4},"end":{"line":175,"column":40}},"103":{"start":{"line":179,"column":0},"end":{"line":179,"column":30}},"104":{"start":{"line":180,"column":0},"end":{"line":180,"column":44}},"105":{"start":{"line":181,"column":0},"end":{"line":181,"column":48}},"106":{"start":{"line":182,"column":0},"end":{"line":182,"column":44}},"107":{"start":{"line":183,"column":0},"end":{"line":183,"column":48}},"108":{"start":{"line":184,"column":0},"end":{"line":184,"column":46}},"109":{"start":{"line":185,"column":0},"end":{"line":185,"column":42}},"110":{"start":{"line":186,"column":0},"end":{"line":186,"column":60}},"111":{"start":{"line":188,"column":14},"end":{"line":188,"column":31}},"112":{"start":{"line":190,"column":15},"end":{"line":190,"column":46}},"113":{"start":{"line":192,"column":13},"end":{"line":192,"column":29}},"114":{"start":{"line":194,"column":14},"end":{"line":194,"column":44}},"115":{"start":{"line":196,"column":27},"end":{"line":196,"column":59}},"116":{"start":{"line":198,"column":14},"end":{"line":198,"column":43}},"117":{"start":{"line":200,"column":13},"end":{"line":200,"column":37}},"118":{"start":{"line":202,"column":10},"end":{"line":202,"column":26}},"119":{"start":{"line":204,"column":19},"end":{"line":204,"column":54}},"120":{"start":{"line":206,"column":14},"end":{"line":206,"column":37}},"121":{"start":{"line":208,"column":39},"end":{"line":208,"column":93}},"122":{"start":{"line":210,"column":33},"end":{"line":210,"column":456}},"123":{"start":{"line":210,"column":64},"end":{"line":210,"column":89}},"124":{"start":{"line":210,"column":91},"end":{"line":210,"column":453}},"125":{"start":{"line":210,"column":165},"end":{"line":210,"column":263}},"126":{"start":{"line":210,"column":182},"end":{"line":210,"column":195}},"127":{"start":{"line":210,"column":209},"end":{"line":210,"column":219}},"128":{"start":{"line":210,"column":239},"end":{"line":210,"column":253}},"129":{"start":{"line":210,"column":254},"end":{"line":210,"column":261}},"130":{"start":{"line":210,"column":264},"end":{"line":210,"column":426}},"131":{"start":{"line":210,"column":281},"end":{"line":210,"column":296}},"132":{"start":{"line":210,"column":306},"end":{"line":210,"column":424}},"133":{"start":{"line":210,"column":360},"end":{"line":210,"column":380}},"134":{"start":{"line":210,"column":401},"end":{"line":210,"column":420}},"135":{"start":{"line":210,"column":429},"end":{"line":210,"column":449}},"136":{"start":{"line":212,"column":14},"end":{"line":212,"column":67}},"137":{"start":{"line":215,"column":2},"end":{"line":242,"column":7}},"138":{"start":{"line":216,"column":15},"end":{"line":237,"column":6}},"139":{"start":{"line":217,"column":23},"end":{"line":217,"column":77}},"140":{"start":{"line":218,"column":19},"end":{"line":218,"column":60}},"141":{"start":{"line":219,"column":18},"end":{"line":219,"column":58}},"142":{"start":{"line":220,"column":22},"end":{"line":220,"column":42}},"143":{"start":{"line":221,"column":6},"end":{"line":221,"column":40}},"144":{"start":{"line":223,"column":27},"end":{"line":230,"column":9}},"145":{"start":{"line":224,"column":8},"end":{"line":229,"column":120}},"146":{"start":{"line":232,"column":6},"end":{"line":234,"column":9}},"147":{"start":{"line":233,"column":8},"end":{"line":233,"column":94}},"148":{"start":{"line":235,"column":6},"end":{"line":235,"column":79}},"149":{"start":{"line":236,"column":6},"end":{"line":236,"column":18}},"150":{"start":{"line":239,"column":4},"end":{"line":241,"column":6}},"151":{"start":{"line":240,"column":6},"end":{"line":240,"column":41}},"152":{"start":{"line":246,"column":2},"end":{"line":248,"column":3}},"153":{"start":{"line":247,"column":4},"end":{"line":247,"column":95}},"154":{"start":{"line":250,"column":2},"end":{"line":250,"column":124}},"155":{"start":{"line":254,"column":2},"end":{"line":256,"column":3}},"156":{"start":{"line":255,"column":4},"end":{"line":255,"column":96}},"157":{"start":{"line":258,"column":2},"end":{"line":258,"column":103}},"158":{"start":{"line":262,"column":2},"end":{"line":264,"column":3}},"159":{"start":{"line":263,"column":4},"end":{"line":263,"column":95}},"160":{"start":{"line":266,"column":2},"end":{"line":266,"column":124}},"161":{"start":{"line":270,"column":2},"end":{"line":272,"column":3}},"162":{"start":{"line":271,"column":4},"end":{"line":271,"column":96}},"163":{"start":{"line":274,"column":2},"end":{"line":274,"column":103}},"164":{"start":{"line":278,"column":2},"end":{"line":280,"column":3}},"165":{"start":{"line":279,"column":4},"end":{"line":279,"column":96}},"166":{"start":{"line":282,"column":17},"end":{"line":282,"column":28}},"167":{"start":{"line":284,"column":24},"end":{"line":284,"column":64}},"168":{"start":{"line":285,"column":2},"end":{"line":285,"column":92}},"169":{"start":{"line":287,"column":2},"end":{"line":290,"column":3}},"170":{"start":{"line":288,"column":4},"end":{"line":288,"column":45}},"171":{"start":{"line":289,"column":4},"end":{"line":289,"column":75}},"172":{"start":{"line":292,"column":2},"end":{"line":349,"column":3}},"173":{"start":{"line":293,"column":17},"end":{"line":293,"column":28}},"174":{"start":{"line":295,"column":17},"end":{"line":295,"column":32}},"175":{"start":{"line":297,"column":18},"end":{"line":297,"column":36}},"176":{"start":{"line":298,"column":22},"end":{"line":298,"column":47}},"177":{"start":{"line":300,"column":18},"end":{"line":300,"column":59}},"178":{"start":{"line":302,"column":21},"end":{"line":302,"column":137}},"179":{"start":{"line":302,"column":62},"end":{"line":302,"column":136}},"180":{"start":{"line":304,"column":24},"end":{"line":304,"column":67}},"181":{"start":{"line":305,"column":17},"end":{"line":305,"column":74}},"182":{"start":{"line":306,"column":4},"end":{"line":309,"column":5}},"183":{"start":{"line":307,"column":6},"end":{"line":307,"column":79}},"184":{"start":{"line":308,"column":6},"end":{"line":308,"column":93}},"185":{"start":{"line":318,"column":21},"end":{"line":329,"column":6}},"186":{"start":{"line":319,"column":27},"end":{"line":319,"column":71}},"187":{"start":{"line":320,"column":30},"end":{"line":320,"column":153}},"188":{"start":{"line":320,"column":78},"end":{"line":320,"column":152}},"189":{"start":{"line":321,"column":33},"end":{"line":321,"column":90}},"190":{"start":{"line":322,"column":26},"end":{"line":322,"column":97}},"191":{"start":{"line":323,"column":22},"end":{"line":323,"column":64}},"192":{"start":{"line":324,"column":6},"end":{"line":328,"column":7}},"193":{"start":{"line":325,"column":8},"end":{"line":325,"column":47}},"194":{"start":{"line":327,"column":8},"end":{"line":327,"column":46}},"195":{"start":{"line":330,"column":4},"end":{"line":333,"column":5}},"196":{"start":{"line":331,"column":6},"end":{"line":331,"column":127}},"197":{"start":{"line":332,"column":6},"end":{"line":332,"column":95}},"198":{"start":{"line":338,"column":4},"end":{"line":342,"column":5}},"199":{"start":{"line":339,"column":6},"end":{"line":339,"column":63}},"200":{"start":{"line":340,"column":11},"end":{"line":342,"column":5}},"201":{"start":{"line":341,"column":6},"end":{"line":341,"column":64}},"202":{"start":{"line":343,"column":4},"end":{"line":348,"column":5}},"203":{"start":{"line":344,"column":6},"end":{"line":347,"column":7}},"204":{"start":{"line":345,"column":8},"end":{"line":345,"column":86}},"205":{"start":{"line":346,"column":8},"end":{"line":346,"column":95}},"206":{"start":{"line":351,"column":2},"end":{"line":351,"column":14}},"207":{"start":{"line":355,"column":2},"end":{"line":374,"column":7}},"208":{"start":{"line":356,"column":16},"end":{"line":369,"column":6}},"209":{"start":{"line":357,"column":18},"end":{"line":357,"column":26}},"210":{"start":{"line":358,"column":21},"end":{"line":358,"column":32}},"211":{"start":{"line":359,"column":35},"end":{"line":359,"column":67}},"212":{"start":{"line":360,"column":20},"end":{"line":360,"column":98}},"213":{"start":{"line":363,"column":6},"end":{"line":365,"column":7}},"214":{"start":{"line":364,"column":8},"end":{"line":364,"column":65}},"215":{"start":{"line":366,"column":24},"end":{"line":366,"column":75}},"216":{"start":{"line":367,"column":6},"end":{"line":367,"column":70}},"217":{"start":{"line":368,"column":6},"end":{"line":368,"column":18}},"218":{"start":{"line":371,"column":4},"end":{"line":373,"column":6}},"219":{"start":{"line":372,"column":6},"end":{"line":372,"column":42}},"220":{"start":{"line":378,"column":2},"end":{"line":421,"column":7}},"221":{"start":{"line":379,"column":16},"end":{"line":416,"column":6}},"222":{"start":{"line":381,"column":6},"end":{"line":381,"column":41}},"223":{"start":{"line":381,"column":29},"end":{"line":381,"column":41}},"224":{"start":{"line":382,"column":21},"end":{"line":382,"column":32}},"225":{"start":{"line":383,"column":19},"end":{"line":383,"column":34}},"226":{"start":{"line":384,"column":20},"end":{"line":384,"column":38}},"227":{"start":{"line":385,"column":20},"end":{"line":385,"column":45}},"228":{"start":{"line":386,"column":33},"end":{"line":386,"column":70}},"229":{"start":{"line":387,"column":26},"end":{"line":387,"column":97}},"230":{"start":{"line":388,"column":23},"end":{"line":388,"column":43}},"231":{"start":{"line":389,"column":23},"end":{"line":389,"column":43}},"232":{"start":{"line":390,"column":29},"end":{"line":390,"column":56}},"233":{"start":{"line":392,"column":6},"end":{"line":392,"column":110}},"234":{"start":{"line":392,"column":98},"end":{"line":392,"column":110}},"235":{"start":{"line":394,"column":6},"end":{"line":414,"column":7}},"236":{"start":{"line":396,"column":23},"end":{"line":396,"column":142}},"237":{"start":{"line":398,"column":30},"end":{"line":402,"column":13}},"238":{"start":{"line":399,"column":28},"end":{"line":399,"column":76}},"239":{"start":{"line":400,"column":32},"end":{"line":400,"column":150}},"240":{"start":{"line":401,"column":10},"end":{"line":401,"column":51}},"241":{"start":{"line":404,"column":8},"end":{"line":413,"column":9}},"242":{"start":{"line":405,"column":10},"end":{"line":405,"column":71}},"243":{"start":{"line":406,"column":31},"end":{"line":406,"column":86}},"244":{"start":{"line":407,"column":10},"end":{"line":412,"column":13}},"245":{"start":{"line":415,"column":6},"end":{"line":415,"column":18}},"246":{"start":{"line":418,"column":4},"end":{"line":420,"column":6}},"247":{"start":{"line":419,"column":6},"end":{"line":419,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":37},"end":{"line":8,"column":38}},"loc":{"start":{"line":8,"column":43},"end":{"line":110,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":32},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":49},"end":{"line":105,"column":3}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":71,"column":78},"end":{"line":71,"column":79}},"loc":{"start":{"line":71,"column":108},"end":{"line":73,"column":13}},"line":71},"3":{"name":"authorise","decl":{"start":{"line":107,"column":18},"end":{"line":107,"column":27}},"loc":{"start":{"line":107,"column":33},"end":{"line":109,"column":3}},"line":107},"4":{"name":"(anonymous_4)","decl":{"start":{"line":112,"column":95},"end":{"line":112,"column":96}},"loc":{"start":{"line":112,"column":101},"end":{"line":144,"column":1}},"line":112},"5":{"name":"(anonymous_5)","decl":{"start":{"line":113,"column":32},"end":{"line":113,"column":33}},"loc":{"start":{"line":113,"column":49},"end":{"line":139,"column":3}},"line":113},"6":{"name":"(anonymous_6)","decl":{"start":{"line":121,"column":33},"end":{"line":121,"column":34}},"loc":{"start":{"line":121,"column":50},"end":{"line":136,"column":5}},"line":121},"7":{"name":"removeOrganisationGroupsAuthorisations","decl":{"start":{"line":141,"column":18},"end":{"line":141,"column":56}},"loc":{"start":{"line":141,"column":62},"end":{"line":143,"column":3}},"line":141},"8":{"name":"(anonymous_8)","decl":{"start":{"line":146,"column":91},"end":{"line":146,"column":92}},"loc":{"start":{"line":146,"column":97},"end":{"line":177,"column":1}},"line":146},"9":{"name":"(anonymous_9)","decl":{"start":{"line":147,"column":32},"end":{"line":147,"column":33}},"loc":{"start":{"line":147,"column":49},"end":{"line":172,"column":3}},"line":147},"10":{"name":"(anonymous_10)","decl":{"start":{"line":157,"column":21},"end":{"line":157,"column":22}},"loc":{"start":{"line":157,"column":40},"end":{"line":167,"column":5}},"line":157},"11":{"name":"removeOrganisationTagsAuthorisations","decl":{"start":{"line":174,"column":18},"end":{"line":174,"column":54}},"loc":{"start":{"line":174,"column":60},"end":{"line":176,"column":3}},"line":174},"12":{"name":"_interopRequireDefault","decl":{"start":{"line":208,"column":9},"end":{"line":208,"column":31}},"loc":{"start":{"line":208,"column":37},"end":{"line":208,"column":95}},"line":208},"13":{"name":"_asyncToGenerator","decl":{"start":{"line":210,"column":9},"end":{"line":210,"column":26}},"loc":{"start":{"line":210,"column":31},"end":{"line":210,"column":458}},"line":210},"14":{"name":"(anonymous_14)","decl":{"start":{"line":210,"column":40},"end":{"line":210,"column":41}},"loc":{"start":{"line":210,"column":52},"end":{"line":210,"column":455}},"line":210},"15":{"name":"(anonymous_15)","decl":{"start":{"line":210,"column":110},"end":{"line":210,"column":111}},"loc":{"start":{"line":210,"column":137},"end":{"line":210,"column":451}},"line":210},"16":{"name":"step","decl":{"start":{"line":210,"column":148},"end":{"line":210,"column":152}},"loc":{"start":{"line":210,"column":163},"end":{"line":210,"column":428}},"line":210},"17":{"name":"(anonymous_17)","decl":{"start":{"line":210,"column":341},"end":{"line":210,"column":342}},"loc":{"start":{"line":210,"column":358},"end":{"line":210,"column":382}},"line":210},"18":{"name":"(anonymous_18)","decl":{"start":{"line":210,"column":384},"end":{"line":210,"column":385}},"loc":{"start":{"line":210,"column":399},"end":{"line":210,"column":422}},"line":210},"19":{"name":"createJWT","decl":{"start":{"line":214,"column":9},"end":{"line":214,"column":18}},"loc":{"start":{"line":214,"column":33},"end":{"line":243,"column":1}},"line":214},"20":{"name":"(anonymous_20)","decl":{"start":{"line":215,"column":10},"end":{"line":215,"column":11}},"loc":{"start":{"line":215,"column":16},"end":{"line":242,"column":3}},"line":215},"21":{"name":"(anonymous_21)","decl":{"start":{"line":216,"column":33},"end":{"line":216,"column":34}},"loc":{"start":{"line":216,"column":50},"end":{"line":237,"column":5}},"line":216},"22":{"name":"(anonymous_22)","decl":{"start":{"line":223,"column":55},"end":{"line":223,"column":56}},"loc":{"start":{"line":223,"column":71},"end":{"line":230,"column":7}},"line":223},"23":{"name":"(anonymous_23)","decl":{"start":{"line":232,"column":20},"end":{"line":232,"column":21}},"loc":{"start":{"line":232,"column":43},"end":{"line":234,"column":7}},"line":232},"24":{"name":"(anonymous_24)","decl":{"start":{"line":239,"column":11},"end":{"line":239,"column":12}},"loc":{"start":{"line":239,"column":25},"end":{"line":241,"column":5}},"line":239},"25":{"name":"populateSubjects","decl":{"start":{"line":245,"column":9},"end":{"line":245,"column":25}},"loc":{"start":{"line":245,"column":32},"end":{"line":251,"column":1}},"line":245},"26":{"name":"unpopulateSubjects","decl":{"start":{"line":253,"column":9},"end":{"line":253,"column":27}},"loc":{"start":{"line":253,"column":34},"end":{"line":259,"column":1}},"line":253},"27":{"name":"populateResource","decl":{"start":{"line":261,"column":9},"end":{"line":261,"column":25}},"loc":{"start":{"line":261,"column":32},"end":{"line":267,"column":1}},"line":261},"28":{"name":"unpopulateResource","decl":{"start":{"line":269,"column":9},"end":{"line":269,"column":27}},"loc":{"start":{"line":269,"column":34},"end":{"line":275,"column":1}},"line":269},"29":{"name":"preventEscalation","decl":{"start":{"line":277,"column":9},"end":{"line":277,"column":26}},"loc":{"start":{"line":277,"column":33},"end":{"line":352,"column":1}},"line":277},"30":{"name":"(anonymous_30)","decl":{"start":{"line":302,"column":50},"end":{"line":302,"column":51}},"loc":{"start":{"line":302,"column":62},"end":{"line":302,"column":136}},"line":302},"31":{"name":"(anonymous_31)","decl":{"start":{"line":318,"column":44},"end":{"line":318,"column":45}},"loc":{"start":{"line":318,"column":55},"end":{"line":329,"column":5}},"line":318},"32":{"name":"(anonymous_32)","decl":{"start":{"line":320,"column":66},"end":{"line":320,"column":67}},"loc":{"start":{"line":320,"column":78},"end":{"line":320,"column":152}},"line":320},"33":{"name":"updateAbilities","decl":{"start":{"line":354,"column":9},"end":{"line":354,"column":24}},"loc":{"start":{"line":354,"column":39},"end":{"line":375,"column":1}},"line":354},"34":{"name":"(anonymous_34)","decl":{"start":{"line":355,"column":10},"end":{"line":355,"column":11}},"loc":{"start":{"line":355,"column":16},"end":{"line":374,"column":3}},"line":355},"35":{"name":"(anonymous_35)","decl":{"start":{"line":356,"column":34},"end":{"line":356,"column":35}},"loc":{"start":{"line":356,"column":51},"end":{"line":369,"column":5}},"line":356},"36":{"name":"(anonymous_36)","decl":{"start":{"line":371,"column":11},"end":{"line":371,"column":12}},"loc":{"start":{"line":371,"column":26},"end":{"line":373,"column":5}},"line":371},"37":{"name":"preventRemovingLastOwner","decl":{"start":{"line":377,"column":9},"end":{"line":377,"column":33}},"loc":{"start":{"line":377,"column":49},"end":{"line":422,"column":1}},"line":377},"38":{"name":"(anonymous_38)","decl":{"start":{"line":378,"column":10},"end":{"line":378,"column":11}},"loc":{"start":{"line":378,"column":16},"end":{"line":421,"column":3}},"line":378},"39":{"name":"(anonymous_39)","decl":{"start":{"line":379,"column":34},"end":{"line":379,"column":35}},"loc":{"start":{"line":379,"column":51},"end":{"line":416,"column":5}},"line":379},"40":{"name":"(anonymous_40)","decl":{"start":{"line":398,"column":46},"end":{"line":398,"column":47}},"loc":{"start":{"line":398,"column":72},"end":{"line":402,"column":9}},"line":398},"41":{"name":"(anonymous_41)","decl":{"start":{"line":418,"column":11},"end":{"line":418,"column":12}},"loc":{"start":{"line":418,"column":26},"end":{"line":420,"column":5}},"line":418}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},{"start":{"line":10,"column":4},"end":{"line":12,"column":5}}],"line":10},"1":{"loc":{"start":{"line":16,"column":4},"end":{"line":16,"column":61}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":16,"column":61}},{"start":{"line":16,"column":4},"end":{"line":16,"column":61}}],"line":16},"2":{"loc":{"start":{"line":18,"column":4},"end":{"line":18,"column":62}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":18,"column":62}},{"start":{"line":18,"column":4},"end":{"line":18,"column":62}}],"line":18},"3":{"loc":{"start":{"line":22,"column":29},"end":{"line":22,"column":72}},"type":"cond-expr","locations":[{"start":{"line":22,"column":50},"end":{"line":22,"column":59}},{"start":{"line":22,"column":62},"end":{"line":22,"column":72}}],"line":22},"4":{"loc":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},{"start":{"line":24,"column":4},"end":{"line":27,"column":5}}],"line":24},"5":{"loc":{"start":{"line":29,"column":4},"end":{"line":32,"column":5}},"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":32,"column":5}},{"start":{"line":29,"column":4},"end":{"line":32,"column":5}}],"line":29},"6":{"loc":{"start":{"line":34,"column":4},"end":{"line":39,"column":5}},"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":39,"column":5}},{"start":{"line":34,"column":4},"end":{"line":39,"column":5}}],"line":34},"7":{"loc":{"start":{"line":38,"column":31},"end":{"line":38,"column":73}},"type":"cond-expr","locations":[{"start":{"line":38,"column":52},"end":{"line":38,"column":60}},{"start":{"line":38,"column":63},"end":{"line":38,"column":73}}],"line":38},"8":{"loc":{"start":{"line":42,"column":4},"end":{"line":101,"column":5}},"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":101,"column":5}},{"start":{"line":42,"column":4},"end":{"line":101,"column":5}}],"line":42},"9":{"loc":{"start":{"line":50,"column":6},"end":{"line":53,"column":7}},"type":"if","locations":[{"start":{"line":50,"column":6},"end":{"line":53,"column":7}},{"start":{"line":50,"column":6},"end":{"line":53,"column":7}}],"line":50},"10":{"loc":{"start":{"line":55,"column":6},"end":{"line":98,"column":7}},"type":"if","locations":[{"start":{"line":55,"column":6},"end":{"line":98,"column":7}},{"start":{"line":55,"column":6},"end":{"line":98,"column":7}}],"line":55},"11":{"loc":{"start":{"line":58,"column":8},"end":{"line":78,"column":9}},"type":"if","locations":[{"start":{"line":58,"column":8},"end":{"line":78,"column":9}},{"start":{"line":58,"column":8},"end":{"line":78,"column":9}}],"line":58},"12":{"loc":{"start":{"line":61,"column":10},"end":{"line":64,"column":11}},"type":"if","locations":[{"start":{"line":61,"column":10},"end":{"line":64,"column":11}},{"start":{"line":61,"column":10},"end":{"line":64,"column":11}}],"line":61},"13":{"loc":{"start":{"line":70,"column":10},"end":{"line":77,"column":11}},"type":"if","locations":[{"start":{"line":70,"column":10},"end":{"line":77,"column":11}},{"start":{"line":70,"column":10},"end":{"line":77,"column":11}}],"line":70},"14":{"loc":{"start":{"line":72,"column":14},"end":{"line":72,"column":89}},"type":"if","locations":[{"start":{"line":72,"column":14},"end":{"line":72,"column":89}},{"start":{"line":72,"column":14},"end":{"line":72,"column":89}}],"line":72},"15":{"loc":{"start":{"line":82,"column":13},"end":{"line":98,"column":7}},"type":"if","locations":[{"start":{"line":82,"column":13},"end":{"line":98,"column":7}},{"start":{"line":82,"column":13},"end":{"line":98,"column":7}}],"line":82},"16":{"loc":{"start":{"line":87,"column":8},"end":{"line":90,"column":9}},"type":"if","locations":[{"start":{"line":87,"column":8},"end":{"line":90,"column":9}},{"start":{"line":87,"column":8},"end":{"line":90,"column":9}}],"line":87},"17":{"loc":{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},"type":"if","locations":[{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},{"start":{"line":92,"column":8},"end":{"line":94,"column":9}}],"line":92},"18":{"loc":{"start":{"line":152,"column":21},"end":{"line":152,"column":47}},"type":"binary-expr","locations":[{"start":{"line":152,"column":21},"end":{"line":152,"column":41}},{"start":{"line":152,"column":45},"end":{"line":152,"column":47}}],"line":152},"19":{"loc":{"start":{"line":153,"column":4},"end":{"line":153,"column":43}},"type":"if","locations":[{"start":{"line":153,"column":4},"end":{"line":153,"column":43}},{"start":{"line":153,"column":4},"end":{"line":153,"column":43}}],"line":153},"20":{"loc":{"start":{"line":158,"column":19},"end":{"line":158,"column":37}},"type":"binary-expr","locations":[{"start":{"line":158,"column":19},"end":{"line":158,"column":31}},{"start":{"line":158,"column":35},"end":{"line":158,"column":37}}],"line":158},"21":{"loc":{"start":{"line":164,"column":6},"end":{"line":166,"column":7}},"type":"if","locations":[{"start":{"line":164,"column":6},"end":{"line":166,"column":7}},{"start":{"line":164,"column":6},"end":{"line":166,"column":7}}],"line":164},"22":{"loc":{"start":{"line":208,"column":46},"end":{"line":208,"column":92}},"type":"cond-expr","locations":[{"start":{"line":208,"column":70},"end":{"line":208,"column":73}},{"start":{"line":208,"column":76},"end":{"line":208,"column":92}}],"line":208},"23":{"loc":{"start":{"line":208,"column":46},"end":{"line":208,"column":67}},"type":"binary-expr","locations":[{"start":{"line":208,"column":46},"end":{"line":208,"column":49}},{"start":{"line":208,"column":53},"end":{"line":208,"column":67}}],"line":208},"24":{"loc":{"start":{"line":210,"column":264},"end":{"line":210,"column":426}},"type":"if","locations":[{"start":{"line":210,"column":264},"end":{"line":210,"column":426}},{"start":{"line":210,"column":264},"end":{"line":210,"column":426}}],"line":210},"25":{"loc":{"start":{"line":214,"column":19},"end":{"line":214,"column":31}},"type":"default-arg","locations":[{"start":{"line":214,"column":29},"end":{"line":214,"column":31}}],"line":214},"26":{"loc":{"start":{"line":217,"column":23},"end":{"line":217,"column":77}},"type":"binary-expr","locations":[{"start":{"line":217,"column":23},"end":{"line":217,"column":53}},{"start":{"line":217,"column":57},"end":{"line":217,"column":77}}],"line":217},"27":{"loc":{"start":{"line":221,"column":14},"end":{"line":221,"column":39}},"type":"cond-expr","locations":[{"start":{"line":221,"column":24},"end":{"line":221,"column":29}},{"start":{"line":221,"column":32},"end":{"line":221,"column":39}}],"line":221},"28":{"loc":{"start":{"line":226,"column":8},"end":{"line":226,"column":74}},"type":"cond-expr","locations":[{"start":{"line":226,"column":48},"end":{"line":226,"column":69}},{"start":{"line":226,"column":72},"end":{"line":226,"column":74}}],"line":226},"29":{"loc":{"start":{"line":229,"column":45},"end":{"line":229,"column":117}},"type":"cond-expr","locations":[{"start":{"line":229,"column":81},"end":{"line":229,"column":107}},{"start":{"line":229,"column":110},"end":{"line":229,"column":117}}],"line":229},"30":{"loc":{"start":{"line":233,"column":42},"end":{"line":233,"column":71}},"type":"binary-expr","locations":[{"start":{"line":233,"column":42},"end":{"line":233,"column":54}},{"start":{"line":233,"column":58},"end":{"line":233,"column":71}}],"line":233},"31":{"loc":{"start":{"line":235,"column":51},"end":{"line":235,"column":77}},"type":"cond-expr","locations":[{"start":{"line":235,"column":61},"end":{"line":235,"column":66}},{"start":{"line":235,"column":69},"end":{"line":235,"column":77}}],"line":235},"32":{"loc":{"start":{"line":246,"column":2},"end":{"line":248,"column":3}},"type":"if","locations":[{"start":{"line":246,"column":2},"end":{"line":248,"column":3}},{"start":{"line":246,"column":2},"end":{"line":248,"column":3}}],"line":246},"33":{"loc":{"start":{"line":254,"column":2},"end":{"line":256,"column":3}},"type":"if","locations":[{"start":{"line":254,"column":2},"end":{"line":256,"column":3}},{"start":{"line":254,"column":2},"end":{"line":256,"column":3}}],"line":254},"34":{"loc":{"start":{"line":262,"column":2},"end":{"line":264,"column":3}},"type":"if","locations":[{"start":{"line":262,"column":2},"end":{"line":264,"column":3}},{"start":{"line":262,"column":2},"end":{"line":264,"column":3}}],"line":262},"35":{"loc":{"start":{"line":270,"column":2},"end":{"line":272,"column":3}},"type":"if","locations":[{"start":{"line":270,"column":2},"end":{"line":272,"column":3}},{"start":{"line":270,"column":2},"end":{"line":272,"column":3}}],"line":270},"36":{"loc":{"start":{"line":278,"column":2},"end":{"line":280,"column":3}},"type":"if","locations":[{"start":{"line":278,"column":2},"end":{"line":280,"column":3}},{"start":{"line":278,"column":2},"end":{"line":280,"column":3}}],"line":278},"37":{"loc":{"start":{"line":285,"column":31},"end":{"line":285,"column":71}},"type":"cond-expr","locations":[{"start":{"line":285,"column":49},"end":{"line":285,"column":58}},{"start":{"line":285,"column":61},"end":{"line":285,"column":71}}],"line":285},"38":{"loc":{"start":{"line":287,"column":2},"end":{"line":290,"column":3}},"type":"if","locations":[{"start":{"line":287,"column":2},"end":{"line":290,"column":3}},{"start":{"line":287,"column":2},"end":{"line":290,"column":3}}],"line":287},"39":{"loc":{"start":{"line":289,"column":33},"end":{"line":289,"column":72}},"type":"cond-expr","locations":[{"start":{"line":289,"column":51},"end":{"line":289,"column":59}},{"start":{"line":289,"column":62},"end":{"line":289,"column":72}}],"line":289},"40":{"loc":{"start":{"line":292,"column":2},"end":{"line":349,"column":3}},"type":"if","locations":[{"start":{"line":292,"column":2},"end":{"line":349,"column":3}},{"start":{"line":292,"column":2},"end":{"line":349,"column":3}}],"line":292},"41":{"loc":{"start":{"line":295,"column":17},"end":{"line":295,"column":32}},"type":"binary-expr","locations":[{"start":{"line":295,"column":17},"end":{"line":295,"column":26}},{"start":{"line":295,"column":30},"end":{"line":295,"column":32}}],"line":295},"42":{"loc":{"start":{"line":297,"column":18},"end":{"line":297,"column":36}},"type":"binary-expr","locations":[{"start":{"line":297,"column":18},"end":{"line":297,"column":30}},{"start":{"line":297,"column":34},"end":{"line":297,"column":36}}],"line":297},"43":{"loc":{"start":{"line":298,"column":22},"end":{"line":298,"column":47}},"type":"binary-expr","locations":[{"start":{"line":298,"column":22},"end":{"line":298,"column":32}},{"start":{"line":298,"column":36},"end":{"line":298,"column":47}}],"line":298},"44":{"loc":{"start":{"line":302,"column":62},"end":{"line":302,"column":136}},"type":"binary-expr","locations":[{"start":{"line":302,"column":62},"end":{"line":302,"column":74}},{"start":{"line":302,"column":78},"end":{"line":302,"column":136}}],"line":302},"45":{"loc":{"start":{"line":304,"column":24},"end":{"line":304,"column":67}},"type":"cond-expr","locations":[{"start":{"line":304,"column":35},"end":{"line":304,"column":55}},{"start":{"line":304,"column":58},"end":{"line":304,"column":67}}],"line":304},"46":{"loc":{"start":{"line":305,"column":17},"end":{"line":305,"column":74}},"type":"cond-expr","locations":[{"start":{"line":305,"column":31},"end":{"line":305,"column":62}},{"start":{"line":305,"column":65},"end":{"line":305,"column":74}}],"line":305},"47":{"loc":{"start":{"line":306,"column":4},"end":{"line":309,"column":5}},"type":"if","locations":[{"start":{"line":306,"column":4},"end":{"line":309,"column":5}},{"start":{"line":306,"column":4},"end":{"line":309,"column":5}}],"line":306},"48":{"loc":{"start":{"line":320,"column":78},"end":{"line":320,"column":152}},"type":"binary-expr","locations":[{"start":{"line":320,"column":78},"end":{"line":320,"column":90}},{"start":{"line":320,"column":94},"end":{"line":320,"column":152}}],"line":320},"49":{"loc":{"start":{"line":321,"column":33},"end":{"line":321,"column":90}},"type":"cond-expr","locations":[{"start":{"line":321,"column":51},"end":{"line":321,"column":78}},{"start":{"line":321,"column":81},"end":{"line":321,"column":90}}],"line":321},"50":{"loc":{"start":{"line":322,"column":26},"end":{"line":322,"column":97}},"type":"cond-expr","locations":[{"start":{"line":322,"column":47},"end":{"line":322,"column":85}},{"start":{"line":322,"column":88},"end":{"line":322,"column":97}}],"line":322},"51":{"loc":{"start":{"line":324,"column":6},"end":{"line":328,"column":7}},"type":"if","locations":[{"start":{"line":324,"column":6},"end":{"line":328,"column":7}},{"start":{"line":324,"column":6},"end":{"line":328,"column":7}}],"line":324},"52":{"loc":{"start":{"line":325,"column":15},"end":{"line":325,"column":46}},"type":"binary-expr","locations":[{"start":{"line":325,"column":15},"end":{"line":325,"column":23}},{"start":{"line":325,"column":27},"end":{"line":325,"column":46}}],"line":325},"53":{"loc":{"start":{"line":327,"column":15},"end":{"line":327,"column":45}},"type":"binary-expr","locations":[{"start":{"line":327,"column":15},"end":{"line":327,"column":22}},{"start":{"line":327,"column":26},"end":{"line":327,"column":45}}],"line":327},"54":{"loc":{"start":{"line":330,"column":4},"end":{"line":333,"column":5}},"type":"if","locations":[{"start":{"line":330,"column":4},"end":{"line":333,"column":5}},{"start":{"line":330,"column":4},"end":{"line":333,"column":5}}],"line":330},"55":{"loc":{"start":{"line":338,"column":4},"end":{"line":342,"column":5}},"type":"if","locations":[{"start":{"line":338,"column":4},"end":{"line":342,"column":5}},{"start":{"line":338,"column":4},"end":{"line":342,"column":5}}],"line":338},"56":{"loc":{"start":{"line":340,"column":11},"end":{"line":342,"column":5}},"type":"if","locations":[{"start":{"line":340,"column":11},"end":{"line":342,"column":5}},{"start":{"line":340,"column":11},"end":{"line":342,"column":5}}],"line":340},"57":{"loc":{"start":{"line":343,"column":4},"end":{"line":348,"column":5}},"type":"if","locations":[{"start":{"line":343,"column":4},"end":{"line":348,"column":5}},{"start":{"line":343,"column":4},"end":{"line":348,"column":5}}],"line":343},"58":{"loc":{"start":{"line":344,"column":6},"end":{"line":347,"column":7}},"type":"if","locations":[{"start":{"line":344,"column":6},"end":{"line":347,"column":7}},{"start":{"line":344,"column":6},"end":{"line":347,"column":7}}],"line":344},"59":{"loc":{"start":{"line":354,"column":25},"end":{"line":354,"column":37}},"type":"default-arg","locations":[{"start":{"line":354,"column":35},"end":{"line":354,"column":37}}],"line":354},"60":{"loc":{"start":{"line":360,"column":20},"end":{"line":360,"column":98}},"type":"cond-expr","locations":[{"start":{"line":360,"column":44},"end":{"line":360,"column":84}},{"start":{"line":360,"column":87},"end":{"line":360,"column":98}}],"line":360},"61":{"loc":{"start":{"line":363,"column":6},"end":{"line":365,"column":7}},"type":"if","locations":[{"start":{"line":363,"column":6},"end":{"line":365,"column":7}},{"start":{"line":363,"column":6},"end":{"line":365,"column":7}}],"line":363},"62":{"loc":{"start":{"line":381,"column":6},"end":{"line":381,"column":41}},"type":"if","locations":[{"start":{"line":381,"column":6},"end":{"line":381,"column":41}},{"start":{"line":381,"column":6},"end":{"line":381,"column":41}}],"line":381},"63":{"loc":{"start":{"line":383,"column":19},"end":{"line":383,"column":34}},"type":"binary-expr","locations":[{"start":{"line":383,"column":19},"end":{"line":383,"column":28}},{"start":{"line":383,"column":32},"end":{"line":383,"column":34}}],"line":383},"64":{"loc":{"start":{"line":384,"column":20},"end":{"line":384,"column":38}},"type":"binary-expr","locations":[{"start":{"line":384,"column":20},"end":{"line":384,"column":32}},{"start":{"line":384,"column":36},"end":{"line":384,"column":38}}],"line":384},"65":{"loc":{"start":{"line":385,"column":20},"end":{"line":385,"column":45}},"type":"binary-expr","locations":[{"start":{"line":385,"column":20},"end":{"line":385,"column":30}},{"start":{"line":385,"column":34},"end":{"line":385,"column":45}}],"line":385},"66":{"loc":{"start":{"line":386,"column":33},"end":{"line":386,"column":70}},"type":"binary-expr","locations":[{"start":{"line":386,"column":33},"end":{"line":386,"column":49}},{"start":{"line":386,"column":53},"end":{"line":386,"column":70}}],"line":386},"67":{"loc":{"start":{"line":387,"column":26},"end":{"line":387,"column":97}},"type":"cond-expr","locations":[{"start":{"line":387,"column":47},"end":{"line":387,"column":85}},{"start":{"line":387,"column":88},"end":{"line":387,"column":97}}],"line":387},"68":{"loc":{"start":{"line":392,"column":6},"end":{"line":392,"column":110}},"type":"if","locations":[{"start":{"line":392,"column":6},"end":{"line":392,"column":110}},{"start":{"line":392,"column":6},"end":{"line":392,"column":110}}],"line":392},"69":{"loc":{"start":{"line":392,"column":10},"end":{"line":392,"column":96}},"type":"binary-expr","locations":[{"start":{"line":392,"column":10},"end":{"line":392,"column":52}},{"start":{"line":392,"column":56},"end":{"line":392,"column":96}}],"line":392},"70":{"loc":{"start":{"line":394,"column":6},"end":{"line":414,"column":7}},"type":"if","locations":[{"start":{"line":394,"column":6},"end":{"line":414,"column":7}},{"start":{"line":394,"column":6},"end":{"line":414,"column":7}}],"line":394},"71":{"loc":{"start":{"line":394,"column":10},"end":{"line":394,"column":61}},"type":"binary-expr","locations":[{"start":{"line":394,"column":10},"end":{"line":394,"column":33}},{"start":{"line":394,"column":37},"end":{"line":394,"column":45}},{"start":{"line":394,"column":49},"end":{"line":394,"column":61}}],"line":394},"72":{"loc":{"start":{"line":401,"column":17},"end":{"line":401,"column":50}},"type":"cond-expr","locations":[{"start":{"line":401,"column":33},"end":{"line":401,"column":42}},{"start":{"line":401,"column":45},"end":{"line":401,"column":50}}],"line":401},"73":{"loc":{"start":{"line":404,"column":8},"end":{"line":413,"column":9}},"type":"if","locations":[{"start":{"line":404,"column":8},"end":{"line":413,"column":9}},{"start":{"line":404,"column":8},"end":{"line":413,"column":9}}],"line":404},"74":{"loc":{"start":{"line":406,"column":31},"end":{"line":406,"column":86}},"type":"cond-expr","locations":[{"start":{"line":406,"column":47},"end":{"line":406,"column":60}},{"start":{"line":406,"column":63},"end":{"line":406,"column":86}}],"line":406}},"s":{"0":1,"1":1,"2":1,"3":1,"4":349,"5":0,"6":349,"7":349,"8":349,"9":349,"10":187,"11":349,"12":349,"13":342,"14":349,"15":349,"16":349,"17":22,"18":22,"19":349,"20":7,"21":7,"22":349,"23":87,"24":87,"25":87,"26":349,"27":349,"28":67,"29":67,"30":67,"31":67,"32":67,"33":3,"34":3,"35":64,"36":41,"37":17,"38":17,"39":17,"40":3,"41":3,"42":24,"43":24,"44":23,"45":22,"46":0,"47":22,"48":23,"49":1,"50":38,"51":23,"52":20,"53":20,"54":20,"55":1,"56":1,"57":19,"58":2,"59":19,"60":19,"61":19,"62":282,"63":323,"64":323,"65":1,"66":349,"67":1,"68":1,"69":5,"70":5,"71":5,"72":5,"73":5,"74":5,"75":5,"76":1,"77":5,"78":5,"79":1,"80":5,"81":1,"82":1,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":1,"102":0,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":2,"122":10,"123":399,"124":399,"125":518,"126":518,"127":509,"128":9,"129":9,"130":509,"131":390,"132":119,"133":119,"134":0,"135":399,"136":1,"137":2,"138":2,"139":2,"140":2,"141":2,"142":2,"143":2,"144":2,"145":2,"146":2,"147":2,"148":2,"149":2,"150":2,"151":2,"152":26,"153":0,"154":26,"155":0,"156":0,"157":0,"158":26,"159":0,"160":26,"161":0,"162":0,"163":0,"164":4,"165":0,"166":4,"167":4,"168":4,"169":4,"170":3,"171":3,"172":4,"173":3,"174":3,"175":3,"176":3,"177":3,"178":3,"179":3,"180":3,"181":3,"182":3,"183":0,"184":0,"185":3,"186":3,"187":3,"188":3,"189":3,"190":3,"191":3,"192":3,"193":1,"194":2,"195":3,"196":1,"197":1,"198":2,"199":1,"200":1,"201":0,"202":2,"203":1,"204":1,"205":1,"206":2,"207":1,"208":1,"209":9,"210":9,"211":9,"212":9,"213":9,"214":0,"215":9,"216":9,"217":9,"218":1,"219":9,"220":4,"221":4,"222":34,"223":0,"224":34,"225":34,"226":34,"227":34,"228":34,"229":34,"230":34,"231":34,"232":34,"233":34,"234":12,"235":22,"236":11,"237":11,"238":11,"239":11,"240":11,"241":11,"242":2,"243":2,"244":2,"245":20,"246":4,"247":34},"f":{"0":1,"1":349,"2":22,"3":349,"4":1,"5":5,"6":1,"7":5,"8":1,"9":0,"10":0,"11":0,"12":2,"13":10,"14":399,"15":399,"16":518,"17":119,"18":0,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":26,"26":0,"27":26,"28":0,"29":4,"30":3,"31":3,"32":3,"33":1,"34":1,"35":9,"36":9,"37":4,"38":4,"39":34,"40":11,"41":34},"b":{"0":[0,349],"1":[187,162],"2":[342,7],"3":[7,342],"4":[22,327],"5":[7,342],"6":[87,262],"7":[67,20],"8":[67,282],"9":[3,64],"10":[41,23],"11":[17,24],"12":[3,14],"13":[23,1],"14":[0,22],"15":[20,3],"16":[1,19],"17":[2,17],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,2],"23":[2,2],"24":[390,119],"25":[1],"26":[2,0],"27":[0,2],"28":[1,1],"29":[1,1],"30":[2,1],"31":[0,2],"32":[0,26],"33":[0,0],"34":[0,26],"35":[0,0],"36":[0,4],"37":[0,4],"38":[3,1],"39":[3,0],"40":[3,1],"41":[3,2],"42":[3,1],"43":[3,2],"44":[3,3],"45":[3,0],"46":[3,0],"47":[0,3],"48":[3,3],"49":[3,0],"50":[3,0],"51":[1,2],"52":[1,1],"53":[2,2],"54":[1,2],"55":[1,1],"56":[0,1],"57":[1,1],"58":[1,0],"59":[1],"60":[0,9],"61":[0,9],"62":[0,34],"63":[34,10],"64":[34,24],"65":[34,10],"66":[34,10],"67":[24,10],"68":[12,22],"69":[34,24],"70":[11,11],"71":[22,11,11],"72":[3,8],"73":[2,9],"74":[2,0]},"inputSourceMap":{"version":3,"sources":["hooks.authorisations.js"],"names":["hook","type","Error","operation","method","resourceType","service","name","debug","params","provider","user","checkAuthorisation","_","has","authorised","getPath","get","context","authorisationService","app","getService","abilities","getAbilities","rules","Forbidden","id","resource","data","dbQuery","query","transform","result","value","key","$and","$or","merge","total","skip","Object","assign","authorise","org","orgGroupService","groups","find","paginate","Promise","all","map","remove","group","_id","toString","scope","force","subjects","subjectsService","resourcesService","removeOrganisationGroupsAuthorisations","subjectService","orgTagsService","length","orgTags","promises","forEach","tags","subject","fromOrg","intersectionWith","isTagEqual","notFromOrg","differenceWith","push","patch","devices","removeOrganisationTagsAuthorisations","createJWT","populateSubjects","unpopulateSubjects","populateResource","unpopulateResource","preventEscalation","updateAbilities","preventRemovingLastOwner","options","defaults","items","isArray","Array","accessTokens","passport","payload","jwt","item","index","set","serviceField","idField","throwOnNotFound","checkEscalation","scopeName","permissions","undefined","role","Roles","isUndefined","filter","subjectScope","subjectResource","subjectPermissions","subjectRole","hasRole","authorisationRole","subjectAsItem","fetchSubject","resourceScope","grantedPermissions","grantedRole","owner","owners","removedOwners","reduce","count","resources","ownedResource","RoleNames","resourceName","translation"],"mappings":"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","file":"hooks.authorisations.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import _ from 'lodash'\r\nimport makeDebug from 'debug'\r\nimport { getItems, replaceItems } from 'feathers-hooks-common'\r\nimport { Forbidden } from '@feathersjs/errors'\r\nimport { populateObject, unpopulateObject, populateObjects, unpopulateObjects } from './hooks.query'\r\nimport { objectifyIDs } from '../db'\r\nimport { hasServiceAbilities, hasResourceAbilities, getQueryForAbilities, Roles, RoleNames, countSubjectsForResource } from '../../common/permissions'\r\nimport { isTagEqual } from './hooks.tags'\r\n\r\nconst debug = makeDebug('kdk:core:authorisations:hooks')\r\n\r\nexport function createJWT (options = {}) {\r\n return async function (hook) {\r\n const defaults = hook.app.get('authentication') || hook.app.get('auth')\r\n const user = _.get(hook, 'params.user')\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n // Generate access tokens for all items\r\n const accessTokens = await Promise.all(items.map(item => hook.app.passport.createJWT(\r\n // Provided function can be used to pick or omit properties in JWT payload\r\n (typeof options.payload === 'function' ? options.payload(user) : {}),\r\n // Provided function can be used for custom options cdepending on the user,\r\n // then we merge with default auth options for global properties like aud, iss, etc.\r\n _.merge({}, defaults, (typeof options.jwt === 'function' ? { jwt: options.jwt(user) } : options)))\r\n ))\r\n // Store access token on items\r\n items.forEach((item, index) => _.set(item, options.name || 'accessToken', accessTokens[index]))\r\n replaceItems(hook, isArray ? items : items[0])\r\n return hook\r\n }\r\n}\r\n\r\nexport function populateSubjects (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'populateSubjects\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n return populateObjects({ serviceField: 'subjectsService', idField: 'subjects', throwOnNotFound: true })(hook)\r\n}\r\n\r\nexport function unpopulateSubjects (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'unpopulateSubjects\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n return unpopulateObjects({ serviceField: 'subjectsService', idField: 'subjects' })(hook)\r\n}\r\n\r\nexport function populateResource (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'populateResource\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n return populateObject({ serviceField: 'resourcesService', idField: 'resource', throwOnNotFound: true })(hook)\r\n}\r\n\r\nexport function unpopulateResource (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'unpopulateResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n return unpopulateObject({ serviceField: 'resourcesService', idField: 'resource' })(hook)\r\n}\r\n\r\nexport function preventEscalation (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'preventEscalation\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n const params = hook.params\r\n // If called internally we skip authorisation\r\n let checkEscalation = _.has(params, 'provider')\r\n debug('Escalation check ' + (checkEscalation ? 'enabled' : 'disabled') + ' for provider')\r\n // If explicitely asked to perform/skip, override defaults\r\n if (_.has(params, 'checkEscalation')) {\r\n checkEscalation = params.checkEscalation\r\n debug('Escalation check ' + (checkEscalation ? 'forced' : 'unforced'))\r\n }\r\n\r\n if (checkEscalation) {\r\n const user = params.user\r\n // Make hook usable on remove as well\r\n const data = hook.data || {}\r\n // Make hook usable with query params as well\r\n const query = params.query || {}\r\n const scopeName = data.scope || query.scope // Get scope name first\r\n // Retrieve the right scope on the user\r\n const scope = _.get(user, scopeName, [])\r\n // Then the target resource\r\n const resource = _.find(scope, resource => resource._id && (resource._id.toString() === params.resource._id.toString()))\r\n // Then user permission level\r\n const permissions = (resource ? resource.permissions : undefined)\r\n const role = (permissions ? Roles[permissions] : undefined)\r\n if (_.isUndefined(role)) {\r\n debug('Role for authorisation not found on user for scope ' + scopeName)\r\n throw new Forbidden('You are not allowed to change authorisation on resource')\r\n }\r\n\r\n // Check if privilege escalation might occur, if so clamp to user permission level\r\n\r\n // Input subjects need to be checked:\r\n // - on create you should not be able to change permissions on others having higher permissions than yourself\r\n // (e.g. cannot change a owner into a manager when you are a manager)\r\n // - on remove you should not be able to remove permissions on others having higher permissions than yourself\r\n // (e.g. cannot remove a owner when you are a manager)\r\n const subjects = params.subjects.filter(subject => {\r\n const subjectScope = _.get(subject, scopeName, [])\r\n const subjectResource = _.find(subjectScope, resource => resource._id && (resource._id.toString() === params.resource._id.toString()))\r\n const subjectPermissions = (subjectResource ? subjectResource.permissions : undefined)\r\n const subjectRole = (subjectPermissions ? Roles[subjectPermissions] : undefined)\r\n const hasRole = !_.isUndefined(subjectRole)\r\n if (hook.method === 'create') {\r\n return (!hasRole || (subjectRole <= role)) // The first time no authorisation can be found\r\n } else {\r\n return (hasRole && (subjectRole <= role)) // Authorisation must be found on remove\r\n }\r\n })\r\n if (subjects.length < params.subjects.length) {\r\n debug(`${(params.subjects.length - subjects.length)} subjects with higher permissions level found for scope ${scopeName}`)\r\n throw new Forbidden('You are not allowed to change authorisation on subject(s)')\r\n }\r\n // Input permissions needs to be checked since:\r\n // - you should not be able to give higher permissions than your own ones to others\r\n // (e.g. cannot create a owner when you are a manager)\r\n let authorisationRole\r\n if (data.permissions) {\r\n authorisationRole = Roles[data.permissions]\r\n } else if (query.permissions) {\r\n authorisationRole = Roles[query.permissions]\r\n }\r\n if (!_.isUndefined(authorisationRole)) {\r\n if (authorisationRole > role) {\r\n debug('Cannot escalate with higher permissions level for scope ' + scopeName)\r\n throw new Forbidden('You are not allowed to change authorisation on resource')\r\n }\r\n }\r\n }\r\n\r\n return hook\r\n}\r\n\r\nexport async function authorise (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'authorise\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const operation = hook.method\r\n const resourceType = hook.service.name\r\n debug('Provider is', hook.params.provider)\r\n if (hook.params.user) debug('User is', hook.params.user)\r\n debug('Operation is', operation)\r\n if (resourceType) debug('Resource type is', resourceType)\r\n\r\n // If called internally we skip authorisation\r\n let checkAuthorisation = _.has(hook.params, 'provider')\r\n debug('Access check ' + (checkAuthorisation ? 'enabled' : 'disabled') + ' for provider')\r\n // If already checked we skip authorisation\r\n if (hook.params.authorised) {\r\n debug('Access already granted')\r\n checkAuthorisation = false\r\n }\r\n // We also skip authorisation for built-in Feathers services like authentication\r\n if (typeof hook.service.getPath !== 'function') {\r\n debug('Access disabled on built-in services')\r\n checkAuthorisation = false\r\n }\r\n // If explicitely asked to perform/skip, override defaults\r\n if (_.has(hook.params, 'checkAuthorisation')) {\r\n checkAuthorisation = _.get(hook.params, 'checkAuthorisation')\r\n // Bypass authorisation for next hooks otherwise we will loop infinitely\r\n delete hook.params.checkAuthorisation\r\n debug('Access check ' + (checkAuthorisation ? 'forced' : 'unforced'))\r\n }\r\n\r\n const context = hook.service.context\r\n if (checkAuthorisation) {\r\n // Build ability for user\r\n const authorisationService = hook.app.getService('authorisations')\r\n const abilities = await authorisationService.getAbilities(hook.params.user)\r\n hook.params.abilities = abilities\r\n debug('User abilities are', abilities.rules)\r\n\r\n // Check for access to service fisrt\r\n if (!hasServiceAbilities(abilities, hook.service)) {\r\n debug('Service access not granted')\r\n throw new Forbidden(`You are not allowed to access service ${hook.service.getPath()}`)\r\n }\r\n\r\n if (!hook.id) {\r\n // In this specific case there is no query to be run,\r\n // simply check against the object we'd like to create\r\n if (operation === 'create') {\r\n const resource = hook.data\r\n debug('Target resource is ', resource)\r\n if (!hasResourceAbilities(abilities, operation, resourceType, context, resource)) {\r\n debug('Resource access not granted')\r\n throw new Forbidden(`You are not allowed to perform ${operation} operation on ${resourceType}`)\r\n }\r\n } else {\r\n // When we find/update/patch/remove multiple items this ensures that\r\n // only the ones authorised by constraints on the resources will be fetched\r\n // This avoid fetching all first then check it one by one\r\n const dbQuery = objectifyIDs(getQueryForAbilities(abilities, operation, resourceType))\r\n if (dbQuery) {\r\n hook.params.query = _.transform(hook.params.query, (result, value, key) => {\r\n if (key === '$or') result.$and = [{ $or: value }]\r\n else result[key] = value\r\n }, {})\r\n _.merge(hook.params.query, dbQuery)\r\n } else {\r\n hook.result = { total: 0, skip: 0, data: [] }\r\n }\r\n }\r\n debug('Resource access granted')\r\n // Some specific services might not expose a get function, in this case we cannot check for authorisation\r\n // this has to be implemented by the service itself\r\n } else if (typeof hook.service.get === 'function') {\r\n // In this case (single get/update/patch/remove) we need to fetch the item first\r\n const resource = await hook.service.get(hook.id, Object.assign({ checkAuthorisation: false }, hook.params))\r\n debug('Target resource is', resource)\r\n // Then check against the object we'd like to manage\r\n if (!hasResourceAbilities(abilities, operation, resourceType, context, resource)) {\r\n debug('Resource access not granted')\r\n throw new Forbidden(`You are not allowed to perform ${operation} operation on ${resourceType}`)\r\n }\r\n // Avoid fetching again the object in this case\r\n if (operation === 'get') {\r\n hook.result = resource\r\n }\r\n hook.params.authorised = true\r\n debug('Resource access granted')\r\n return hook\r\n }\r\n } else {\r\n debug('Authorisation check skipped, access granted')\r\n }\r\n\r\n hook.params.authorised = true\r\n return hook\r\n}\r\n\r\nexport function updateAbilities (options = {}) {\r\n return async function (hook) {\r\n const app = hook.app\r\n const params = hook.params\r\n const authorisationService = app.getService('authorisations')\r\n let subject = (options.subjectAsItem ? getItems(hook) : params.user)\r\n // We might not have all information required eg on patch to compute new abilities,\r\n // in this case we have to fetch the whole subject\r\n if (options.fetchSubject) {\r\n subject = await hook.service.get(subject._id.toString())\r\n }\r\n const abilities = await authorisationService.updateAbilities(subject)\r\n debug('Abilities updated on subject', subject, abilities.rules)\r\n return hook\r\n }\r\n}\r\n\r\nexport function preventRemovingLastOwner (resourceScope) {\r\n return async function (hook) {\r\n // By pass check ?\r\n if (hook.params.force) return hook\r\n const params = hook.params\r\n const data = hook.data || {}\r\n const query = params.query || {}\r\n const scope = data.scope || query.scope\r\n const grantedPermissions = data.permissions || query.permissions\r\n const grantedRole = (grantedPermissions ? Roles[grantedPermissions] : undefined)\r\n const resource = hook.params.resource\r\n const subjects = hook.params.subjects\r\n const subjectService = hook.params.subjectsService\r\n // On create check if we try to downgrade permissions otherwise let pass through\r\n if (!_.isUndefined(grantedRole) && (grantedRole === Roles.owner)) return hook\r\n\r\n if ((scope === resourceScope) && resource && resource._id) {\r\n // Count existing owners\r\n const owners = await countSubjectsForResource(subjectService, resourceScope, resource._id, Roles.owner)\r\n // Now count owners we change/remove permissions on\r\n const removedOwners = subjects.reduce((count, subject) => {\r\n const resources = _.get(subject, resourceScope, [])\r\n const ownedResource = _.find(resources, { _id: resource._id, permissions: RoleNames[Roles.owner] })\r\n return (ownedResource ? count + 1 : count)\r\n }, 0)\r\n // If none remains stop\r\n if (removedOwners >= owners.total) {\r\n debug('Cannot remove the last owner of resource ', resource)\r\n const resourceName = resource.name ? resource.name : resource._id.toString()\r\n throw new Forbidden('You are not allowed to remove the last owner of resource ' + resourceName, {\r\n translation: {\r\n key: 'CANNOT_REMOVE_LAST_OWNER',\r\n params: { resource: resourceName }\r\n }\r\n })\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n\r\nexport async function removeOrganisationGroupsAuthorisations (hook) {\r\n const app = hook.app\r\n const authorisationService = app.getService('authorisations')\r\n const org = hook.params.resource\r\n const user = hook.params.user\r\n // Unset membership for the all org groups\r\n const orgGroupService = app.getService('groups', org)\r\n const groups = await orgGroupService.find({ paginate: false })\r\n await Promise.all(groups.map(group => {\r\n // Unset membership on group for the all org users\r\n return authorisationService.remove(group._id.toString(), {\r\n query: {\r\n scope: 'groups'\r\n },\r\n user,\r\n force: hook.params.force,\r\n // Because we already have resource set it as objects to avoid populating\r\n // Moreover used as an after hook the resource might not already exist anymore\r\n subjects: hook.params.subjects,\r\n subjectsService: hook.params.subjectsService,\r\n resource: group,\r\n resourcesService: orgGroupService\r\n })\r\n }))\r\n debug('Authorisations unset on groups for organisation ' + org._id)\r\n return hook\r\n}\r\n\r\nexport async function removeOrganisationTagsAuthorisations (hook) {\r\n const app = hook.app\r\n const org = hook.params.resource\r\n const subjectService = hook.params.subjectsService\r\n const orgTagsService = app.getService('tags', org)\r\n const subjects = hook.params.subjects || []\r\n if (subjects.length === 0) return hook\r\n // Retrieve org tags\r\n const orgTags = await orgTagsService.find({ paginate: false })\r\n const promises = []\r\n subjects.forEach(subject => {\r\n const tags = subject.tags || []\r\n // Find tags from org\r\n const fromOrg = _.intersectionWith(tags, orgTags, isTagEqual)\r\n // Clear removed tags\r\n const notFromOrg = _.differenceWith(tags, orgTags, isTagEqual)\r\n // Update subject if required\r\n if (fromOrg.length > 0) {\r\n promises.push(subjectService.patch(subject._id.toString(), { tags: notFromOrg, devices: subject.devices }))\r\n }\r\n })\r\n // Perform subject updates in parallel\r\n await Promise.all(promises)\r\n debug(`Tags unset on ${promises.length} subjects for organisation ` + org._id)\r\n return hook\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"20852be1218796532f8f5fa1c5d9c726e5f662f5","contentHash":"c6040d245d8cdbcc80e3041ed3b225904fe51b5237122a2206e67e179273235e"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.query.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.query.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":37}},"2":{"start":{"line":8,"column":23},"end":{"line":24,"column":4}},"3":{"start":{"line":9,"column":13},"end":{"line":19,"column":4}},"4":{"start":{"line":10,"column":18},"end":{"line":10,"column":35}},"5":{"start":{"line":11,"column":4},"end":{"line":11,"column":23}},"6":{"start":{"line":11,"column":16},"end":{"line":11,"column":23}},"7":{"start":{"line":12,"column":20},"end":{"line":12,"column":32}},"8":{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},"9":{"start":{"line":14,"column":25},"end":{"line":14,"column":38}},"10":{"start":{"line":16,"column":6},"end":{"line":16,"column":114}},"11":{"start":{"line":18,"column":4},"end":{"line":18,"column":16}},"12":{"start":{"line":21,"column":2},"end":{"line":23,"column":4}},"13":{"start":{"line":22,"column":4},"end":{"line":22,"column":39}},"14":{"start":{"line":26,"column":0},"end":{"line":26,"column":46}},"15":{"start":{"line":27,"column":0},"end":{"line":27,"column":58}},"16":{"start":{"line":28,"column":0},"end":{"line":28,"column":46}},"17":{"start":{"line":29,"column":0},"end":{"line":29,"column":56}},"18":{"start":{"line":30,"column":0},"end":{"line":30,"column":40}},"19":{"start":{"line":31,"column":0},"end":{"line":31,"column":44}},"20":{"start":{"line":32,"column":0},"end":{"line":32,"column":42}},"21":{"start":{"line":33,"column":0},"end":{"line":33,"column":46}},"22":{"start":{"line":35,"column":14},"end":{"line":35,"column":31}},"23":{"start":{"line":37,"column":15},"end":{"line":37,"column":46}},"24":{"start":{"line":39,"column":16},"end":{"line":39,"column":38}},"25":{"start":{"line":41,"column":15},"end":{"line":41,"column":33}},"26":{"start":{"line":43,"column":13},"end":{"line":43,"column":29}},"27":{"start":{"line":45,"column":14},"end":{"line":45,"column":44}},"28":{"start":{"line":47,"column":39},"end":{"line":47,"column":93}},"29":{"start":{"line":49,"column":33},"end":{"line":49,"column":456}},"30":{"start":{"line":49,"column":64},"end":{"line":49,"column":89}},"31":{"start":{"line":49,"column":91},"end":{"line":49,"column":453}},"32":{"start":{"line":49,"column":165},"end":{"line":49,"column":263}},"33":{"start":{"line":49,"column":182},"end":{"line":49,"column":195}},"34":{"start":{"line":49,"column":209},"end":{"line":49,"column":219}},"35":{"start":{"line":49,"column":239},"end":{"line":49,"column":253}},"36":{"start":{"line":49,"column":254},"end":{"line":49,"column":261}},"37":{"start":{"line":49,"column":264},"end":{"line":49,"column":426}},"38":{"start":{"line":49,"column":281},"end":{"line":49,"column":296}},"39":{"start":{"line":49,"column":306},"end":{"line":49,"column":424}},"40":{"start":{"line":49,"column":360},"end":{"line":49,"column":380}},"41":{"start":{"line":49,"column":401},"end":{"line":49,"column":420}},"42":{"start":{"line":49,"column":429},"end":{"line":49,"column":449}},"43":{"start":{"line":51,"column":14},"end":{"line":51,"column":58}},"44":{"start":{"line":54,"column":16},"end":{"line":54,"column":33}},"45":{"start":{"line":55,"column":2},"end":{"line":58,"column":3}},"46":{"start":{"line":57,"column":4},"end":{"line":57,"column":47}},"47":{"start":{"line":62,"column":16},"end":{"line":62,"column":33}},"48":{"start":{"line":63,"column":2},"end":{"line":66,"column":3}},"49":{"start":{"line":65,"column":4},"end":{"line":65,"column":51}},"50":{"start":{"line":70,"column":16},"end":{"line":70,"column":33}},"51":{"start":{"line":71,"column":2},"end":{"line":74,"column":3}},"52":{"start":{"line":73,"column":4},"end":{"line":73,"column":51}},"53":{"start":{"line":78,"column":16},"end":{"line":78,"column":33}},"54":{"start":{"line":79,"column":2},"end":{"line":79,"column":21}},"55":{"start":{"line":79,"column":14},"end":{"line":79,"column":21}},"56":{"start":{"line":81,"column":2},"end":{"line":87,"column":3}},"57":{"start":{"line":82,"column":4},"end":{"line":82,"column":54}},"58":{"start":{"line":83,"column":4},"end":{"line":83,"column":25}},"59":{"start":{"line":84,"column":9},"end":{"line":87,"column":3}},"60":{"start":{"line":85,"column":4},"end":{"line":85,"column":45}},"61":{"start":{"line":86,"column":4},"end":{"line":86,"column":28}},"62":{"start":{"line":88,"column":2},"end":{"line":88,"column":14}},"63":{"start":{"line":92,"column":2},"end":{"line":151,"column":4}},"64":{"start":{"line":93,"column":16},"end":{"line":93,"column":24}},"65":{"start":{"line":94,"column":17},"end":{"line":94,"column":26}},"66":{"start":{"line":95,"column":19},"end":{"line":95,"column":30}},"67":{"start":{"line":96,"column":18},"end":{"line":96,"column":30}},"68":{"start":{"line":97,"column":20},"end":{"line":97,"column":40}},"69":{"start":{"line":98,"column":23},"end":{"line":98,"column":58}},"70":{"start":{"line":99,"column":28},"end":{"line":99,"column":73}},"71":{"start":{"line":102,"column":4},"end":{"line":105,"column":5}},"72":{"start":{"line":103,"column":6},"end":{"line":103,"column":65}},"73":{"start":{"line":104,"column":6},"end":{"line":104,"column":35}},"74":{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},"75":{"start":{"line":107,"column":6},"end":{"line":107,"column":70}},"76":{"start":{"line":108,"column":6},"end":{"line":108,"column":35}},"77":{"start":{"line":113,"column":18},"end":{"line":113,"column":119}},"78":{"start":{"line":114,"column":4},"end":{"line":122,"column":5}},"79":{"start":{"line":115,"column":22},"end":{"line":115,"column":113}},"80":{"start":{"line":116,"column":6},"end":{"line":116,"column":49}},"81":{"start":{"line":117,"column":6},"end":{"line":119,"column":7}},"82":{"start":{"line":118,"column":8},"end":{"line":118,"column":96}},"83":{"start":{"line":118,"column":37},"end":{"line":118,"column":62}},"84":{"start":{"line":118,"column":67},"end":{"line":118,"column":96}},"85":{"start":{"line":120,"column":11},"end":{"line":122,"column":5}},"86":{"start":{"line":121,"column":6},"end":{"line":121,"column":146}},"87":{"start":{"line":121,"column":35},"end":{"line":121,"column":112}},"88":{"start":{"line":121,"column":117},"end":{"line":121,"column":146}},"89":{"start":{"line":124,"column":15},"end":{"line":124,"column":142}},"90":{"start":{"line":125,"column":4},"end":{"line":127,"column":5}},"91":{"start":{"line":126,"column":6},"end":{"line":126,"column":148}},"92":{"start":{"line":126,"column":35},"end":{"line":126,"column":114}},"93":{"start":{"line":126,"column":119},"end":{"line":126,"column":148}},"94":{"start":{"line":129,"column":24},"end":{"line":129,"column":133}},"95":{"start":{"line":131,"column":4},"end":{"line":131,"column":52}},"96":{"start":{"line":133,"column":4},"end":{"line":133,"column":59}},"97":{"start":{"line":135,"column":4},"end":{"line":150,"column":5}},"98":{"start":{"line":136,"column":17},"end":{"line":136,"column":43}},"99":{"start":{"line":137,"column":6},"end":{"line":137,"column":89}},"100":{"start":{"line":137,"column":23},"end":{"line":137,"column":89}},"101":{"start":{"line":138,"column":6},"end":{"line":145,"column":9}},"102":{"start":{"line":139,"column":8},"end":{"line":141,"column":9}},"103":{"start":{"line":140,"column":10},"end":{"line":140,"column":133}},"104":{"start":{"line":140,"column":39},"end":{"line":140,"column":116}},"105":{"start":{"line":140,"column":121},"end":{"line":140,"column":133}},"106":{"start":{"line":143,"column":8},"end":{"line":143,"column":57}},"107":{"start":{"line":144,"column":8},"end":{"line":144,"column":20}},"108":{"start":{"line":148,"column":6},"end":{"line":148,"column":51}},"109":{"start":{"line":149,"column":6},"end":{"line":149,"column":35}},"110":{"start":{"line":155,"column":2},"end":{"line":165,"column":4}},"111":{"start":{"line":156,"column":19},"end":{"line":156,"column":30}},"112":{"start":{"line":157,"column":23},"end":{"line":157,"column":58}},"113":{"start":{"line":158,"column":28},"end":{"line":158,"column":73}},"114":{"start":{"line":161,"column":4},"end":{"line":161,"column":47}},"115":{"start":{"line":162,"column":4},"end":{"line":162,"column":52}},"116":{"start":{"line":164,"column":4},"end":{"line":164,"column":16}},"117":{"start":{"line":169,"column":2},"end":{"line":233,"column":4}},"118":{"start":{"line":170,"column":16},"end":{"line":170,"column":24}},"119":{"start":{"line":171,"column":17},"end":{"line":171,"column":26}},"120":{"start":{"line":172,"column":19},"end":{"line":172,"column":30}},"121":{"start":{"line":173,"column":18},"end":{"line":173,"column":30}},"122":{"start":{"line":174,"column":20},"end":{"line":174,"column":40}},"123":{"start":{"line":175,"column":23},"end":{"line":175,"column":58}},"124":{"start":{"line":176,"column":28},"end":{"line":176,"column":73}},"125":{"start":{"line":179,"column":4},"end":{"line":182,"column":5}},"126":{"start":{"line":180,"column":6},"end":{"line":180,"column":65}},"127":{"start":{"line":181,"column":6},"end":{"line":181,"column":35}},"128":{"start":{"line":183,"column":4},"end":{"line":186,"column":5}},"129":{"start":{"line":184,"column":6},"end":{"line":184,"column":70}},"130":{"start":{"line":185,"column":6},"end":{"line":185,"column":35}},"131":{"start":{"line":190,"column":18},"end":{"line":190,"column":119}},"132":{"start":{"line":191,"column":4},"end":{"line":199,"column":5}},"133":{"start":{"line":192,"column":22},"end":{"line":192,"column":113}},"134":{"start":{"line":193,"column":6},"end":{"line":193,"column":49}},"135":{"start":{"line":194,"column":6},"end":{"line":196,"column":7}},"136":{"start":{"line":195,"column":8},"end":{"line":195,"column":96}},"137":{"start":{"line":195,"column":37},"end":{"line":195,"column":62}},"138":{"start":{"line":195,"column":67},"end":{"line":195,"column":96}},"139":{"start":{"line":197,"column":11},"end":{"line":199,"column":5}},"140":{"start":{"line":198,"column":6},"end":{"line":198,"column":146}},"141":{"start":{"line":198,"column":35},"end":{"line":198,"column":112}},"142":{"start":{"line":198,"column":117},"end":{"line":198,"column":146}},"143":{"start":{"line":202,"column":4},"end":{"line":202,"column":59}},"144":{"start":{"line":205,"column":15},"end":{"line":205,"column":106}},"145":{"start":{"line":207,"column":4},"end":{"line":232,"column":5}},"146":{"start":{"line":208,"column":6},"end":{"line":208,"column":40}},"147":{"start":{"line":209,"column":6},"end":{"line":214,"column":9}},"148":{"start":{"line":211,"column":8},"end":{"line":211,"column":59}},"149":{"start":{"line":212,"column":8},"end":{"line":212,"column":58}},"150":{"start":{"line":213,"column":8},"end":{"line":213,"column":20}},"151":{"start":{"line":216,"column":6},"end":{"line":216,"column":54}},"152":{"start":{"line":218,"column":6},"end":{"line":231,"column":7}},"153":{"start":{"line":219,"column":8},"end":{"line":226,"column":11}},"154":{"start":{"line":220,"column":10},"end":{"line":222,"column":11}},"155":{"start":{"line":221,"column":12},"end":{"line":221,"column":141}},"156":{"start":{"line":221,"column":41},"end":{"line":221,"column":124}},"157":{"start":{"line":221,"column":129},"end":{"line":221,"column":141}},"158":{"start":{"line":224,"column":10},"end":{"line":224,"column":61}},"159":{"start":{"line":225,"column":10},"end":{"line":225,"column":22}},"160":{"start":{"line":229,"column":8},"end":{"line":229,"column":55}},"161":{"start":{"line":230,"column":8},"end":{"line":230,"column":37}},"162":{"start":{"line":238,"column":2},"end":{"line":238,"column":35}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":51},"end":{"line":8,"column":52}},"loc":{"start":{"line":8,"column":57},"end":{"line":24,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":48},"end":{"line":19,"column":3}},"line":9},"2":{"name":"aggregationQuery","decl":{"start":{"line":21,"column":18},"end":{"line":21,"column":34}},"loc":{"start":{"line":21,"column":39},"end":{"line":23,"column":3}},"line":21},"3":{"name":"_interopRequireDefault","decl":{"start":{"line":47,"column":9},"end":{"line":47,"column":31}},"loc":{"start":{"line":47,"column":37},"end":{"line":47,"column":95}},"line":47},"4":{"name":"_asyncToGenerator","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":26}},"loc":{"start":{"line":49,"column":31},"end":{"line":49,"column":458}},"line":49},"5":{"name":"(anonymous_5)","decl":{"start":{"line":49,"column":40},"end":{"line":49,"column":41}},"loc":{"start":{"line":49,"column":52},"end":{"line":49,"column":455}},"line":49},"6":{"name":"(anonymous_6)","decl":{"start":{"line":49,"column":110},"end":{"line":49,"column":111}},"loc":{"start":{"line":49,"column":137},"end":{"line":49,"column":451}},"line":49},"7":{"name":"step","decl":{"start":{"line":49,"column":148},"end":{"line":49,"column":152}},"loc":{"start":{"line":49,"column":163},"end":{"line":49,"column":428}},"line":49},"8":{"name":"(anonymous_8)","decl":{"start":{"line":49,"column":341},"end":{"line":49,"column":342}},"loc":{"start":{"line":49,"column":358},"end":{"line":49,"column":382}},"line":49},"9":{"name":"(anonymous_9)","decl":{"start":{"line":49,"column":384},"end":{"line":49,"column":385}},"loc":{"start":{"line":49,"column":399},"end":{"line":49,"column":422}},"line":49},"10":{"name":"marshallTimeQuery","decl":{"start":{"line":53,"column":9},"end":{"line":53,"column":26}},"loc":{"start":{"line":53,"column":33},"end":{"line":59,"column":1}},"line":53},"11":{"name":"marshallComparisonQuery","decl":{"start":{"line":61,"column":9},"end":{"line":61,"column":32}},"loc":{"start":{"line":61,"column":39},"end":{"line":67,"column":1}},"line":61},"12":{"name":"marshallSortQuery","decl":{"start":{"line":69,"column":9},"end":{"line":69,"column":26}},"loc":{"start":{"line":69,"column":33},"end":{"line":75,"column":1}},"line":69},"13":{"name":"marshallCollationQuery","decl":{"start":{"line":77,"column":9},"end":{"line":77,"column":31}},"loc":{"start":{"line":77,"column":38},"end":{"line":89,"column":1}},"line":77},"14":{"name":"populateObject","decl":{"start":{"line":91,"column":9},"end":{"line":91,"column":23}},"loc":{"start":{"line":91,"column":33},"end":{"line":152,"column":1}},"line":91},"15":{"name":"(anonymous_15)","decl":{"start":{"line":92,"column":9},"end":{"line":92,"column":10}},"loc":{"start":{"line":92,"column":25},"end":{"line":151,"column":3}},"line":92},"16":{"name":"(anonymous_16)","decl":{"start":{"line":138,"column":51},"end":{"line":138,"column":52}},"loc":{"start":{"line":138,"column":61},"end":{"line":145,"column":7}},"line":138},"17":{"name":"unpopulateObject","decl":{"start":{"line":154,"column":9},"end":{"line":154,"column":25}},"loc":{"start":{"line":154,"column":35},"end":{"line":166,"column":1}},"line":154},"18":{"name":"(anonymous_18)","decl":{"start":{"line":155,"column":9},"end":{"line":155,"column":10}},"loc":{"start":{"line":155,"column":25},"end":{"line":165,"column":3}},"line":155},"19":{"name":"populateObjects","decl":{"start":{"line":168,"column":9},"end":{"line":168,"column":24}},"loc":{"start":{"line":168,"column":34},"end":{"line":234,"column":1}},"line":168},"20":{"name":"(anonymous_20)","decl":{"start":{"line":169,"column":9},"end":{"line":169,"column":10}},"loc":{"start":{"line":169,"column":25},"end":{"line":233,"column":3}},"line":169},"21":{"name":"(anonymous_21)","decl":{"start":{"line":209,"column":87},"end":{"line":209,"column":88}},"loc":{"start":{"line":209,"column":98},"end":{"line":214,"column":7}},"line":209},"22":{"name":"(anonymous_22)","decl":{"start":{"line":219,"column":75},"end":{"line":219,"column":76}},"loc":{"start":{"line":219,"column":85},"end":{"line":226,"column":9}},"line":219},"23":{"name":"unpopulateObjects","decl":{"start":{"line":236,"column":9},"end":{"line":236,"column":26}},"loc":{"start":{"line":236,"column":36},"end":{"line":239,"column":1}},"line":236}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":11,"column":23}},"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":11,"column":23}},{"start":{"line":11,"column":4},"end":{"line":11,"column":23}}],"line":11},"1":{"loc":{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},{"start":{"line":13,"column":4},"end":{"line":17,"column":5}}],"line":13},"2":{"loc":{"start":{"line":47,"column":46},"end":{"line":47,"column":92}},"type":"cond-expr","locations":[{"start":{"line":47,"column":70},"end":{"line":47,"column":73}},{"start":{"line":47,"column":76},"end":{"line":47,"column":92}}],"line":47},"3":{"loc":{"start":{"line":47,"column":46},"end":{"line":47,"column":67}},"type":"binary-expr","locations":[{"start":{"line":47,"column":46},"end":{"line":47,"column":49}},{"start":{"line":47,"column":53},"end":{"line":47,"column":67}}],"line":47},"4":{"loc":{"start":{"line":49,"column":264},"end":{"line":49,"column":426}},"type":"if","locations":[{"start":{"line":49,"column":264},"end":{"line":49,"column":426}},{"start":{"line":49,"column":264},"end":{"line":49,"column":426}}],"line":49},"5":{"loc":{"start":{"line":55,"column":2},"end":{"line":58,"column":3}},"type":"if","locations":[{"start":{"line":55,"column":2},"end":{"line":58,"column":3}},{"start":{"line":55,"column":2},"end":{"line":58,"column":3}}],"line":55},"6":{"loc":{"start":{"line":63,"column":2},"end":{"line":66,"column":3}},"type":"if","locations":[{"start":{"line":63,"column":2},"end":{"line":66,"column":3}},{"start":{"line":63,"column":2},"end":{"line":66,"column":3}}],"line":63},"7":{"loc":{"start":{"line":71,"column":2},"end":{"line":74,"column":3}},"type":"if","locations":[{"start":{"line":71,"column":2},"end":{"line":74,"column":3}},{"start":{"line":71,"column":2},"end":{"line":74,"column":3}}],"line":71},"8":{"loc":{"start":{"line":71,"column":6},"end":{"line":71,"column":26}},"type":"binary-expr","locations":[{"start":{"line":71,"column":6},"end":{"line":71,"column":11}},{"start":{"line":71,"column":15},"end":{"line":71,"column":26}}],"line":71},"9":{"loc":{"start":{"line":79,"column":2},"end":{"line":79,"column":21}},"type":"if","locations":[{"start":{"line":79,"column":2},"end":{"line":79,"column":21}},{"start":{"line":79,"column":2},"end":{"line":79,"column":21}}],"line":79},"10":{"loc":{"start":{"line":81,"column":2},"end":{"line":87,"column":3}},"type":"if","locations":[{"start":{"line":81,"column":2},"end":{"line":87,"column":3}},{"start":{"line":81,"column":2},"end":{"line":87,"column":3}}],"line":81},"11":{"loc":{"start":{"line":84,"column":9},"end":{"line":87,"column":3}},"type":"if","locations":[{"start":{"line":84,"column":9},"end":{"line":87,"column":3}},{"start":{"line":84,"column":9},"end":{"line":87,"column":3}}],"line":84},"12":{"loc":{"start":{"line":98,"column":23},"end":{"line":98,"column":58}},"type":"binary-expr","locations":[{"start":{"line":98,"column":23},"end":{"line":98,"column":39}},{"start":{"line":98,"column":43},"end":{"line":98,"column":58}}],"line":98},"13":{"loc":{"start":{"line":99,"column":28},"end":{"line":99,"column":73}},"type":"binary-expr","locations":[{"start":{"line":99,"column":28},"end":{"line":99,"column":49}},{"start":{"line":99,"column":53},"end":{"line":99,"column":73}}],"line":99},"14":{"loc":{"start":{"line":102,"column":4},"end":{"line":105,"column":5}},"type":"if","locations":[{"start":{"line":102,"column":4},"end":{"line":105,"column":5}},{"start":{"line":102,"column":4},"end":{"line":105,"column":5}}],"line":102},"15":{"loc":{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},"type":"if","locations":[{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},{"start":{"line":106,"column":4},"end":{"line":109,"column":5}}],"line":106},"16":{"loc":{"start":{"line":113,"column":18},"end":{"line":113,"column":119}},"type":"binary-expr","locations":[{"start":{"line":113,"column":18},"end":{"line":113,"column":66}},{"start":{"line":113,"column":70},"end":{"line":113,"column":119}}],"line":113},"17":{"loc":{"start":{"line":114,"column":4},"end":{"line":122,"column":5}},"type":"if","locations":[{"start":{"line":114,"column":4},"end":{"line":122,"column":5}},{"start":{"line":114,"column":4},"end":{"line":122,"column":5}}],"line":114},"18":{"loc":{"start":{"line":117,"column":6},"end":{"line":119,"column":7}},"type":"if","locations":[{"start":{"line":117,"column":6},"end":{"line":119,"column":7}},{"start":{"line":117,"column":6},"end":{"line":119,"column":7}}],"line":117},"19":{"loc":{"start":{"line":118,"column":8},"end":{"line":118,"column":96}},"type":"if","locations":[{"start":{"line":118,"column":8},"end":{"line":118,"column":96}},{"start":{"line":118,"column":8},"end":{"line":118,"column":96}}],"line":118},"20":{"loc":{"start":{"line":120,"column":11},"end":{"line":122,"column":5}},"type":"if","locations":[{"start":{"line":120,"column":11},"end":{"line":122,"column":5}},{"start":{"line":120,"column":11},"end":{"line":122,"column":5}}],"line":120},"21":{"loc":{"start":{"line":121,"column":6},"end":{"line":121,"column":146}},"type":"if","locations":[{"start":{"line":121,"column":6},"end":{"line":121,"column":146}},{"start":{"line":121,"column":6},"end":{"line":121,"column":146}}],"line":121},"22":{"loc":{"start":{"line":124,"column":15},"end":{"line":124,"column":142}},"type":"binary-expr","locations":[{"start":{"line":124,"column":15},"end":{"line":124,"column":58}},{"start":{"line":124,"column":62},"end":{"line":124,"column":106}},{"start":{"line":124,"column":110},"end":{"line":124,"column":142}}],"line":124},"23":{"loc":{"start":{"line":125,"column":4},"end":{"line":127,"column":5}},"type":"if","locations":[{"start":{"line":125,"column":4},"end":{"line":127,"column":5}},{"start":{"line":125,"column":4},"end":{"line":127,"column":5}}],"line":125},"24":{"loc":{"start":{"line":126,"column":6},"end":{"line":126,"column":148}},"type":"if","locations":[{"start":{"line":126,"column":6},"end":{"line":126,"column":148}},{"start":{"line":126,"column":6},"end":{"line":126,"column":148}}],"line":126},"25":{"loc":{"start":{"line":129,"column":24},"end":{"line":129,"column":133}},"type":"binary-expr","locations":[{"start":{"line":129,"column":24},"end":{"line":129,"column":76}},{"start":{"line":129,"column":80},"end":{"line":129,"column":133}}],"line":129},"26":{"loc":{"start":{"line":135,"column":4},"end":{"line":150,"column":5}},"type":"if","locations":[{"start":{"line":135,"column":4},"end":{"line":150,"column":5}},{"start":{"line":135,"column":4},"end":{"line":150,"column":5}}],"line":135},"27":{"loc":{"start":{"line":135,"column":8},"end":{"line":135,"column":63}},"type":"binary-expr","locations":[{"start":{"line":135,"column":8},"end":{"line":135,"column":30}},{"start":{"line":135,"column":34},"end":{"line":135,"column":63}}],"line":135},"28":{"loc":{"start":{"line":137,"column":6},"end":{"line":137,"column":89}},"type":"if","locations":[{"start":{"line":137,"column":6},"end":{"line":137,"column":89}},{"start":{"line":137,"column":6},"end":{"line":137,"column":89}}],"line":137},"29":{"loc":{"start":{"line":139,"column":8},"end":{"line":141,"column":9}},"type":"if","locations":[{"start":{"line":139,"column":8},"end":{"line":141,"column":9}},{"start":{"line":139,"column":8},"end":{"line":141,"column":9}}],"line":139},"30":{"loc":{"start":{"line":140,"column":10},"end":{"line":140,"column":133}},"type":"if","locations":[{"start":{"line":140,"column":10},"end":{"line":140,"column":133}},{"start":{"line":140,"column":10},"end":{"line":140,"column":133}}],"line":140},"31":{"loc":{"start":{"line":157,"column":23},"end":{"line":157,"column":58}},"type":"binary-expr","locations":[{"start":{"line":157,"column":23},"end":{"line":157,"column":39}},{"start":{"line":157,"column":43},"end":{"line":157,"column":58}}],"line":157},"32":{"loc":{"start":{"line":158,"column":28},"end":{"line":158,"column":73}},"type":"binary-expr","locations":[{"start":{"line":158,"column":28},"end":{"line":158,"column":49}},{"start":{"line":158,"column":53},"end":{"line":158,"column":73}}],"line":158},"33":{"loc":{"start":{"line":175,"column":23},"end":{"line":175,"column":58}},"type":"binary-expr","locations":[{"start":{"line":175,"column":23},"end":{"line":175,"column":39}},{"start":{"line":175,"column":43},"end":{"line":175,"column":58}}],"line":175},"34":{"loc":{"start":{"line":176,"column":28},"end":{"line":176,"column":73}},"type":"binary-expr","locations":[{"start":{"line":176,"column":28},"end":{"line":176,"column":49}},{"start":{"line":176,"column":53},"end":{"line":176,"column":73}}],"line":176},"35":{"loc":{"start":{"line":179,"column":4},"end":{"line":182,"column":5}},"type":"if","locations":[{"start":{"line":179,"column":4},"end":{"line":182,"column":5}},{"start":{"line":179,"column":4},"end":{"line":182,"column":5}}],"line":179},"36":{"loc":{"start":{"line":183,"column":4},"end":{"line":186,"column":5}},"type":"if","locations":[{"start":{"line":183,"column":4},"end":{"line":186,"column":5}},{"start":{"line":183,"column":4},"end":{"line":186,"column":5}}],"line":183},"37":{"loc":{"start":{"line":190,"column":18},"end":{"line":190,"column":119}},"type":"binary-expr","locations":[{"start":{"line":190,"column":18},"end":{"line":190,"column":66}},{"start":{"line":190,"column":70},"end":{"line":190,"column":119}}],"line":190},"38":{"loc":{"start":{"line":191,"column":4},"end":{"line":199,"column":5}},"type":"if","locations":[{"start":{"line":191,"column":4},"end":{"line":199,"column":5}},{"start":{"line":191,"column":4},"end":{"line":199,"column":5}}],"line":191},"39":{"loc":{"start":{"line":194,"column":6},"end":{"line":196,"column":7}},"type":"if","locations":[{"start":{"line":194,"column":6},"end":{"line":196,"column":7}},{"start":{"line":194,"column":6},"end":{"line":196,"column":7}}],"line":194},"40":{"loc":{"start":{"line":195,"column":8},"end":{"line":195,"column":96}},"type":"if","locations":[{"start":{"line":195,"column":8},"end":{"line":195,"column":96}},{"start":{"line":195,"column":8},"end":{"line":195,"column":96}}],"line":195},"41":{"loc":{"start":{"line":197,"column":11},"end":{"line":199,"column":5}},"type":"if","locations":[{"start":{"line":197,"column":11},"end":{"line":199,"column":5}},{"start":{"line":197,"column":11},"end":{"line":199,"column":5}}],"line":197},"42":{"loc":{"start":{"line":198,"column":6},"end":{"line":198,"column":146}},"type":"if","locations":[{"start":{"line":198,"column":6},"end":{"line":198,"column":146}},{"start":{"line":198,"column":6},"end":{"line":198,"column":146}}],"line":198},"43":{"loc":{"start":{"line":205,"column":15},"end":{"line":205,"column":106}},"type":"binary-expr","locations":[{"start":{"line":205,"column":15},"end":{"line":205,"column":58}},{"start":{"line":205,"column":62},"end":{"line":205,"column":106}}],"line":205},"44":{"loc":{"start":{"line":207,"column":4},"end":{"line":232,"column":5}},"type":"if","locations":[{"start":{"line":207,"column":4},"end":{"line":232,"column":5}},{"start":{"line":207,"column":4},"end":{"line":232,"column":5}}],"line":207},"45":{"loc":{"start":{"line":218,"column":6},"end":{"line":231,"column":7}},"type":"if","locations":[{"start":{"line":218,"column":6},"end":{"line":231,"column":7}},{"start":{"line":218,"column":6},"end":{"line":231,"column":7}}],"line":218},"46":{"loc":{"start":{"line":218,"column":10},"end":{"line":218,"column":65}},"type":"binary-expr","locations":[{"start":{"line":218,"column":10},"end":{"line":218,"column":32}},{"start":{"line":218,"column":36},"end":{"line":218,"column":65}}],"line":218},"47":{"loc":{"start":{"line":220,"column":10},"end":{"line":222,"column":11}},"type":"if","locations":[{"start":{"line":220,"column":10},"end":{"line":222,"column":11}},{"start":{"line":220,"column":10},"end":{"line":222,"column":11}}],"line":220},"48":{"loc":{"start":{"line":221,"column":12},"end":{"line":221,"column":141}},"type":"if","locations":[{"start":{"line":221,"column":12},"end":{"line":221,"column":141}},{"start":{"line":221,"column":12},"end":{"line":221,"column":141}}],"line":221}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":1,"13":0,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":2,"29":1,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":1,"44":0,"45":0,"46":0,"47":1,"48":1,"49":1,"50":0,"51":0,"52":0,"53":1,"54":1,"55":0,"56":1,"57":1,"58":1,"59":0,"60":0,"61":0,"62":1,"63":46,"64":46,"65":46,"66":46,"67":46,"68":46,"69":46,"70":46,"71":46,"72":12,"73":12,"74":34,"75":0,"76":0,"77":34,"78":34,"79":24,"80":24,"81":24,"82":0,"83":0,"84":0,"85":10,"86":10,"87":0,"88":10,"89":24,"90":24,"91":0,"92":0,"93":0,"94":24,"95":24,"96":24,"97":24,"98":24,"99":24,"100":0,"101":24,"102":24,"103":0,"104":0,"105":0,"106":24,"107":24,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":26,"118":26,"119":26,"120":26,"121":26,"122":26,"123":26,"124":26,"125":26,"126":8,"127":8,"128":18,"129":0,"130":0,"131":18,"132":18,"133":18,"134":18,"135":18,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":18,"144":18,"145":18,"146":5,"147":5,"148":5,"149":5,"150":5,"151":13,"152":13,"153":13,"154":13,"155":0,"156":0,"157":0,"158":13,"159":13,"160":0,"161":0,"162":0},"f":{"0":1,"1":0,"2":0,"3":2,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1,"12":0,"13":1,"14":46,"15":46,"16":24,"17":0,"18":0,"19":26,"20":26,"21":5,"22":13,"23":0},"b":{"0":[0,0],"1":[0,0],"2":[0,2],"3":[2,2],"4":[0,0],"5":[0,0],"6":[1,0],"7":[0,0],"8":[0,0],"9":[0,1],"10":[1,0],"11":[0,0],"12":[46,46],"13":[46,46],"14":[12,34],"15":[0,34],"16":[34,20],"17":[24,10],"18":[0,24],"19":[0,0],"20":[10,0],"21":[0,10],"22":[24,10,8],"23":[0,24],"24":[0,0],"25":[24,24],"26":[24,0],"27":[24,7],"28":[0,24],"29":[0,24],"30":[0,0],"31":[0,0],"32":[0,0],"33":[26,26],"34":[26,26],"35":[8,18],"36":[0,18],"37":[18,10],"38":[18,0],"39":[0,18],"40":[0,0],"41":[0,0],"42":[0,0],"43":[18,10],"44":[5,13],"45":[13,0],"46":[13,0],"47":[0,13],"48":[0,0]},"inputSourceMap":{"version":3,"sources":["hooks.query.js"],"names":["hook","query","params","service","$aggregation","collection","Model","result","aggregate","pipeline","options","toArray","aggregationQuery","marshallTimeQuery","marshallComparisonQuery","marshallSortQuery","marshallCollationQuery","populateObject","unpopulateObject","populateObjects","unpopulateObjects","debug","$sort","$locale","collation","locale","$collation","app","data","context","idProperty","nameIdAs","idField","serviceProperty","nameServiceAs","serviceField","_","get","Promise","resolve","message","getService","throwOnNotFound","Error","id","perspective","perspectiveField","set","ObjectID","isValid","args","user","Object","assign","$select","toString","then","object","unset","Array","isArray","find","paginate","objects","length"],"mappings":"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","file":"hooks.query.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["\r\nimport _ from 'lodash'\r\nimport { marshallComparisonFields, marshallSortFields, marshallTime } from '../marshall'\r\nimport { ObjectID } from 'mongodb'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:query:hooks')\r\n\r\nexport function marshallTimeQuery (hook) {\r\n const query = hook.params.query\r\n if (query) {\r\n // Need to convert from client/server side types : string or moment dates\r\n marshallTime(query, 'time')\r\n }\r\n}\r\n\r\nexport function marshallComparisonQuery (hook) {\r\n const query = hook.params.query\r\n if (query) {\r\n // Complex queries might have nested objects so we call a recursive function to handle this\r\n marshallComparisonFields(query)\r\n }\r\n}\r\n\r\nexport function marshallSortQuery (hook) {\r\n const query = hook.params.query\r\n if (query && query.$sort) {\r\n // Complex queries might have nested objects so we call a recursive function to handle this\r\n marshallSortFields(query.$sort)\r\n }\r\n}\r\n\r\nexport function marshallCollationQuery (hook) {\r\n const query = hook.params.query\r\n if (!query) return\r\n // Locale shortcut or whole query provided\r\n if (query.$locale) {\r\n hook.params.collation = { locale: query.$locale }\r\n delete query.$locale\r\n } else if (query.$collation) {\r\n hook.params.collation = query.$collation\r\n delete query.$collation\r\n }\r\n return hook\r\n}\r\n\r\nexport async function aggregationQuery (hook) {\r\n const query = hook.params.query\r\n if (!query) return\r\n const service = hook.service\r\n if (query.$aggregation) {\r\n const collection = service.Model\r\n // Set result to avoid service DB call\r\n hook.result = await collection.aggregate(query.$aggregation.pipeline, query.$aggregation.options).toArray()\r\n }\r\n return hook\r\n}\r\n\r\nexport function populateObject (options) {\r\n return function (hook) {\r\n const app = hook.app\r\n const data = hook.data\r\n const params = hook.params\r\n const query = params.query\r\n const context = hook.service.context\r\n const idProperty = options.nameIdAs || options.idField\r\n const serviceProperty = options.nameServiceAs || options.serviceField\r\n\r\n // Check if not already done\r\n if (typeof _.get(params, idProperty) === 'object') {\r\n debug(`Skipping populating ${idProperty} as already done`)\r\n return Promise.resolve(hook)\r\n }\r\n if (typeof _.get(params, serviceProperty) === 'object') {\r\n debug(`Skipping populating ${serviceProperty} as already done`)\r\n return Promise.resolve(hook)\r\n }\r\n\r\n // Get service where we can find the object to populate\r\n // Make hook usable with query params as well and service name or real object\r\n let service = _.get(data, options.serviceField) || _.get(query, options.serviceField)\r\n if (typeof service === 'string') {\r\n const message = `Cannot find the service for ${options.serviceField} = ${service} to dynamically populate.`\r\n service = app.getService(service, context)\r\n if (!service) {\r\n if (options.throwOnNotFound) throw new Error(message)\r\n else return Promise.resolve(hook)\r\n }\r\n } else if (!service) {\r\n if (options.throwOnNotFound) throw new Error(`No ${options.serviceField} given to dynamically populate.`)\r\n else return Promise.resolve(hook)\r\n }\r\n // Then the object ID\r\n const id = _.get(data, options.idField) || _.get(query, options.idField) || _.get(hook, 'id')\r\n if (!id) {\r\n if (options.throwOnNotFound) throw new Error(`Cannot find the ${options.idField} to dynamically populate.`)\r\n else return Promise.resolve(hook)\r\n }\r\n // Then the perspective if any\r\n const perspective = _.get(data, options.perspectiveField) || _.get(query, options.perspectiveField)\r\n\r\n debug(`Populating ${idProperty} with ID ${id}`)\r\n // Set the retrieved service on the same field or given one in hook params\r\n _.set(params, serviceProperty, service)\r\n // Let it work with id string or real object\r\n if (typeof id === 'string' || ObjectID.isValid(id)) {\r\n let args = { user: hook.params.user }\r\n if (perspective) args = Object.assign(args, { query: { $select: [perspective] } })\r\n return service.get(id.toString(), args).then(object => {\r\n if (!object) {\r\n if (options.throwOnNotFound) throw new Error(`Cannot find object with id ${id} to dynamically populate.`)\r\n else return hook\r\n }\r\n // Set the retrieved object on the same field or given one in hook params\r\n _.set(params, idProperty, object)\r\n return hook\r\n })\r\n } else {\r\n // Set the object on the same field or given one in hook params\r\n _.set(params, idProperty, id)\r\n return Promise.resolve(hook)\r\n }\r\n }\r\n}\r\n\r\nexport function unpopulateObject (options) {\r\n return function (hook) {\r\n const params = hook.params\r\n const idProperty = options.nameIdAs || options.idField\r\n const serviceProperty = options.nameServiceAs || options.serviceField\r\n\r\n // Check if not already done\r\n _.unset(params, idProperty)\r\n _.unset(params, serviceProperty)\r\n\r\n return hook\r\n }\r\n}\r\n\r\nexport function populateObjects (options) {\r\n return function (hook) {\r\n const app = hook.app\r\n const data = hook.data\r\n const params = hook.params\r\n const query = params.query\r\n const context = hook.service.context\r\n const idProperty = options.nameIdAs || options.idField\r\n const serviceProperty = options.nameServiceAs || options.serviceField\r\n\r\n // Check if not already done\r\n if (Array.isArray(_.get(params, idProperty))) {\r\n debug(`Skipping populating ${idProperty} as already done`)\r\n return Promise.resolve(hook)\r\n }\r\n if (typeof _.get(params, serviceProperty) === 'object') {\r\n debug(`Skipping populating ${serviceProperty} as already done`)\r\n return Promise.resolve(hook)\r\n }\r\n\r\n // Get service where we can find the object to populate\r\n // Make hook usable with query params as well and service name or real object\r\n let service = _.get(data, options.serviceField) || _.get(query, options.serviceField)\r\n if (typeof service === 'string') {\r\n const message = `Cannot find the service for ${options.serviceField} = ${service} to dynamically populate.`\r\n service = app.getService(service, context)\r\n if (!service) {\r\n if (options.throwOnNotFound) throw new Error(message)\r\n else return Promise.resolve(hook)\r\n }\r\n } else if (!service) {\r\n if (options.throwOnNotFound) throw new Error(`No ${options.serviceField} given to dynamically populate.`)\r\n else return Promise.resolve(hook)\r\n }\r\n\r\n // Set the retrieved service on the same field or given one in hook params\r\n _.set(params, serviceProperty, service)\r\n\r\n // Then the object ID\r\n const id = _.get(data, options.idField) || _.get(query, options.idField)\r\n // If no ID given we perform a find, no pagination to be sure we get all objects\r\n if (!id) {\r\n debug(`Populating ${idProperty}`)\r\n return service.find({ query: {}, paginate: false, user: hook.params.user }).then(objects => {\r\n // Set the retrieved objects on the same field or given one in hook params\r\n debug(`Populated ${objects.length} ${idProperty}`)\r\n _.set(params, idProperty, objects)\r\n return hook\r\n })\r\n } else {\r\n debug(`Populating ${idProperty} with ID ${id}`)\r\n // Let it work with id string or real object\r\n if (typeof id === 'string' || ObjectID.isValid(id)) {\r\n return service.get(id.toString(), { user: hook.params.user }).then(object => {\r\n if (!object) {\r\n if (options.throwOnNotFound) throw new Error(`Cannot find ${options.idField} = ${id} to dynamically populate.`)\r\n else return hook\r\n }\r\n // Set the retrieved object on the same field or given one in hook params\r\n _.set(params, idProperty, [object])\r\n return hook\r\n })\r\n } else {\r\n // Set the object on the same field or given one in hook params\r\n _.set(params, idProperty, [id])\r\n return Promise.resolve(hook)\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function unpopulateObjects (options) {\r\n // These are similar behaviour\r\n return unpopulateObject(options)\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6eccde20f5ccc7e9a2710965967b5b906745c5ad","contentHash":"ea8252f8fdd26717e618bad09ab3f88612cb386cafa07926ec31ebf00bd5267a"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.tags.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.tags.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":31}},"2":{"start":{"line":8,"column":17},"end":{"line":81,"column":4}},"3":{"start":{"line":9,"column":13},"end":{"line":76,"column":4}},"4":{"start":{"line":10,"column":17},"end":{"line":10,"column":57}},"5":{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},"6":{"start":{"line":12,"column":6},"end":{"line":12,"column":51}},"7":{"start":{"line":13,"column":6},"end":{"line":13,"column":35}},"8":{"start":{"line":16,"column":20},"end":{"line":16,"column":40}},"9":{"start":{"line":18,"column":25},"end":{"line":18,"column":79}},"10":{"start":{"line":19,"column":4},"end":{"line":71,"column":5}},"11":{"start":{"line":21,"column":25},"end":{"line":21,"column":95}},"12":{"start":{"line":23,"column":26},"end":{"line":23,"column":95}},"13":{"start":{"line":24,"column":6},"end":{"line":24,"column":60}},"14":{"start":{"line":25,"column":29},"end":{"line":29,"column":8}},"15":{"start":{"line":27,"column":27},"end":{"line":27,"column":78}},"16":{"start":{"line":28,"column":8},"end":{"line":28,"column":170}},"17":{"start":{"line":28,"column":25},"end":{"line":28,"column":118}},"18":{"start":{"line":28,"column":123},"end":{"line":28,"column":170}},"19":{"start":{"line":31,"column":24},"end":{"line":31,"column":90}},"20":{"start":{"line":32,"column":6},"end":{"line":32,"column":56}},"21":{"start":{"line":33,"column":28},"end":{"line":37,"column":8}},"22":{"start":{"line":35,"column":27},"end":{"line":35,"column":78}},"23":{"start":{"line":36,"column":8},"end":{"line":36,"column":153}},"24":{"start":{"line":36,"column":25},"end":{"line":36,"column":118}},"25":{"start":{"line":36,"column":123},"end":{"line":36,"column":153}},"26":{"start":{"line":38,"column":31},"end":{"line":38,"column":107}},"27":{"start":{"line":39,"column":6},"end":{"line":39,"column":52}},"28":{"start":{"line":42,"column":6},"end":{"line":44,"column":9}},"29":{"start":{"line":43,"column":8},"end":{"line":43,"column":167}},"30":{"start":{"line":43,"column":37},"end":{"line":43,"column":48}},"31":{"start":{"line":43,"column":53},"end":{"line":43,"column":167}},"32":{"start":{"line":45,"column":6},"end":{"line":45,"column":45}},"33":{"start":{"line":47,"column":6},"end":{"line":70,"column":7}},"34":{"start":{"line":49,"column":8},"end":{"line":49,"column":47}},"35":{"start":{"line":50,"column":28},"end":{"line":54,"column":10}},"36":{"start":{"line":52,"column":29},"end":{"line":52,"column":80}},"37":{"start":{"line":53,"column":10},"end":{"line":53,"column":155}},"38":{"start":{"line":53,"column":27},"end":{"line":53,"column":120}},"39":{"start":{"line":53,"column":125},"end":{"line":53,"column":155}},"40":{"start":{"line":56,"column":22},"end":{"line":56,"column":52}},"41":{"start":{"line":58,"column":8},"end":{"line":60,"column":11}},"42":{"start":{"line":59,"column":10},"end":{"line":59,"column":169}},"43":{"start":{"line":59,"column":39},"end":{"line":59,"column":50}},"44":{"start":{"line":59,"column":55},"end":{"line":59,"column":169}},"45":{"start":{"line":61,"column":8},"end":{"line":61,"column":28}},"46":{"start":{"line":63,"column":8},"end":{"line":63,"column":49}},"47":{"start":{"line":64,"column":31},"end":{"line":68,"column":10}},"48":{"start":{"line":66,"column":29},"end":{"line":66,"column":80}},"49":{"start":{"line":67,"column":10},"end":{"line":67,"column":172}},"50":{"start":{"line":67,"column":27},"end":{"line":67,"column":120}},"51":{"start":{"line":67,"column":125},"end":{"line":67,"column":172}},"52":{"start":{"line":69,"column":8},"end":{"line":69,"column":42}},"53":{"start":{"line":75,"column":4},"end":{"line":75,"column":16}},"54":{"start":{"line":78,"column":2},"end":{"line":80,"column":4}},"55":{"start":{"line":79,"column":4},"end":{"line":79,"column":39}},"56":{"start":{"line":83,"column":0},"end":{"line":83,"column":32}},"57":{"start":{"line":84,"column":0},"end":{"line":84,"column":50}},"58":{"start":{"line":85,"column":0},"end":{"line":85,"column":54}},"59":{"start":{"line":86,"column":0},"end":{"line":86,"column":34}},"60":{"start":{"line":87,"column":0},"end":{"line":87,"column":46}},"61":{"start":{"line":88,"column":0},"end":{"line":88,"column":34}},"62":{"start":{"line":89,"column":0},"end":{"line":89,"column":38}},"63":{"start":{"line":91,"column":14},"end":{"line":91,"column":31}},"64":{"start":{"line":93,"column":15},"end":{"line":93,"column":46}},"65":{"start":{"line":95,"column":14},"end":{"line":95,"column":43}},"66":{"start":{"line":97,"column":27},"end":{"line":97,"column":59}},"67":{"start":{"line":99,"column":13},"end":{"line":99,"column":37}},"68":{"start":{"line":101,"column":13},"end":{"line":101,"column":29}},"69":{"start":{"line":103,"column":14},"end":{"line":103,"column":44}},"70":{"start":{"line":105,"column":39},"end":{"line":105,"column":93}},"71":{"start":{"line":107,"column":33},"end":{"line":107,"column":456}},"72":{"start":{"line":107,"column":64},"end":{"line":107,"column":89}},"73":{"start":{"line":107,"column":91},"end":{"line":107,"column":453}},"74":{"start":{"line":107,"column":165},"end":{"line":107,"column":263}},"75":{"start":{"line":107,"column":182},"end":{"line":107,"column":195}},"76":{"start":{"line":107,"column":209},"end":{"line":107,"column":219}},"77":{"start":{"line":107,"column":239},"end":{"line":107,"column":253}},"78":{"start":{"line":107,"column":254},"end":{"line":107,"column":261}},"79":{"start":{"line":107,"column":264},"end":{"line":107,"column":426}},"80":{"start":{"line":107,"column":281},"end":{"line":107,"column":296}},"81":{"start":{"line":107,"column":306},"end":{"line":107,"column":424}},"82":{"start":{"line":107,"column":360},"end":{"line":107,"column":380}},"83":{"start":{"line":107,"column":401},"end":{"line":107,"column":420}},"84":{"start":{"line":107,"column":429},"end":{"line":107,"column":449}},"85":{"start":{"line":109,"column":14},"end":{"line":109,"column":57}},"86":{"start":{"line":113,"column":2},"end":{"line":113,"column":79}},"87":{"start":{"line":113,"column":28},"end":{"line":113,"column":79}},"88":{"start":{"line":115,"column":14},"end":{"line":115,"column":68}},"89":{"start":{"line":117,"column":2},"end":{"line":119,"column":3}},"90":{"start":{"line":118,"column":4},"end":{"line":118,"column":73}},"91":{"start":{"line":120,"column":2},"end":{"line":120,"column":15}},"92":{"start":{"line":124,"column":2},"end":{"line":126,"column":3}},"93":{"start":{"line":125,"column":4},"end":{"line":125,"column":98}},"94":{"start":{"line":129,"column":2},"end":{"line":129,"column":125}},"95":{"start":{"line":133,"column":2},"end":{"line":135,"column":3}},"96":{"start":{"line":134,"column":4},"end":{"line":134,"column":99}},"97":{"start":{"line":138,"column":2},"end":{"line":138,"column":103}},"98":{"start":{"line":142,"column":2},"end":{"line":144,"column":3}},"99":{"start":{"line":143,"column":4},"end":{"line":143,"column":90}},"100":{"start":{"line":145,"column":21},"end":{"line":145,"column":33}},"101":{"start":{"line":146,"column":16},"end":{"line":146,"column":56}},"102":{"start":{"line":147,"column":16},"end":{"line":147,"column":56}},"103":{"start":{"line":148,"column":2},"end":{"line":150,"column":3}},"104":{"start":{"line":149,"column":4},"end":{"line":149,"column":87}},"105":{"start":{"line":152,"column":2},"end":{"line":168,"column":5}},"106":{"start":{"line":155,"column":4},"end":{"line":165,"column":5}},"107":{"start":{"line":156,"column":18},"end":{"line":156,"column":32}},"108":{"start":{"line":157,"column":6},"end":{"line":157,"column":24}},"109":{"start":{"line":158,"column":6},"end":{"line":158,"column":21}},"110":{"start":{"line":159,"column":6},"end":{"line":159,"column":98}},"111":{"start":{"line":160,"column":6},"end":{"line":160,"column":72}},"112":{"start":{"line":163,"column":6},"end":{"line":163,"column":26}},"113":{"start":{"line":164,"column":6},"end":{"line":164,"column":35}},"114":{"start":{"line":167,"column":4},"end":{"line":167,"column":16}},"115":{"start":{"line":172,"column":2},"end":{"line":174,"column":3}},"116":{"start":{"line":173,"column":4},"end":{"line":173,"column":96}},"117":{"start":{"line":176,"column":21},"end":{"line":176,"column":33}},"118":{"start":{"line":177,"column":16},"end":{"line":177,"column":64}},"119":{"start":{"line":178,"column":16},"end":{"line":178,"column":64}},"120":{"start":{"line":179,"column":2},"end":{"line":181,"column":3}},"121":{"start":{"line":180,"column":4},"end":{"line":180,"column":87}},"122":{"start":{"line":183,"column":2},"end":{"line":203,"column":5}},"123":{"start":{"line":185,"column":4},"end":{"line":200,"column":5}},"124":{"start":{"line":186,"column":18},"end":{"line":186,"column":32}},"125":{"start":{"line":187,"column":6},"end":{"line":187,"column":24}},"126":{"start":{"line":188,"column":6},"end":{"line":188,"column":21}},"127":{"start":{"line":189,"column":6},"end":{"line":195,"column":7}},"128":{"start":{"line":190,"column":8},"end":{"line":190,"column":79}},"129":{"start":{"line":191,"column":8},"end":{"line":191,"column":53}},"130":{"start":{"line":193,"column":8},"end":{"line":193,"column":100}},"131":{"start":{"line":194,"column":8},"end":{"line":194,"column":74}},"132":{"start":{"line":198,"column":6},"end":{"line":198,"column":25}},"133":{"start":{"line":199,"column":6},"end":{"line":199,"column":35}},"134":{"start":{"line":202,"column":4},"end":{"line":202,"column":16}},"135":{"start":{"line":207,"column":2},"end":{"line":209,"column":3}},"136":{"start":{"line":208,"column":4},"end":{"line":208,"column":89}},"137":{"start":{"line":210,"column":14},"end":{"line":210,"column":25}},"138":{"start":{"line":211,"column":17},"end":{"line":211,"column":28}},"139":{"start":{"line":212,"column":16},"end":{"line":212,"column":28}},"140":{"start":{"line":213,"column":18},"end":{"line":213,"column":38}},"141":{"start":{"line":214,"column":27},"end":{"line":214,"column":50}},"142":{"start":{"line":215,"column":19},"end":{"line":215,"column":34}},"143":{"start":{"line":217,"column":2},"end":{"line":240,"column":3}},"144":{"start":{"line":217,"column":59},"end":{"line":217,"column":87}},"145":{"start":{"line":219,"column":4},"end":{"line":221,"column":5}},"146":{"start":{"line":220,"column":6},"end":{"line":220,"column":25}},"147":{"start":{"line":223,"column":4},"end":{"line":225,"column":5}},"148":{"start":{"line":224,"column":6},"end":{"line":224,"column":94}},"149":{"start":{"line":226,"column":4},"end":{"line":226,"column":28}},"150":{"start":{"line":227,"column":4},"end":{"line":237,"column":7}},"151":{"start":{"line":235,"column":6},"end":{"line":235,"column":109}},"152":{"start":{"line":236,"column":6},"end":{"line":236,"column":18}},"153":{"start":{"line":239,"column":4},"end":{"line":239,"column":33}},"154":{"start":{"line":244,"column":2},"end":{"line":246,"column":3}},"155":{"start":{"line":245,"column":4},"end":{"line":245,"column":91}},"156":{"start":{"line":248,"column":14},"end":{"line":248,"column":25}},"157":{"start":{"line":249,"column":17},"end":{"line":249,"column":28}},"158":{"start":{"line":250,"column":16},"end":{"line":250,"column":28}},"159":{"start":{"line":251,"column":27},"end":{"line":251,"column":50}},"160":{"start":{"line":252,"column":19},"end":{"line":252,"column":34}},"161":{"start":{"line":254,"column":19},"end":{"line":254,"column":105}},"162":{"start":{"line":254,"column":76},"end":{"line":254,"column":104}},"163":{"start":{"line":255,"column":2},"end":{"line":270,"column":3}},"164":{"start":{"line":256,"column":4},"end":{"line":256,"column":53}},"165":{"start":{"line":257,"column":4},"end":{"line":267,"column":7}},"166":{"start":{"line":265,"column":6},"end":{"line":265,"column":111}},"167":{"start":{"line":266,"column":6},"end":{"line":266,"column":18}},"168":{"start":{"line":269,"column":4},"end":{"line":269,"column":33}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":39},"end":{"line":8,"column":40}},"loc":{"start":{"line":8,"column":45},"end":{"line":81,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":48},"end":{"line":76,"column":3}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":45},"end":{"line":25,"column":46}},"loc":{"start":{"line":25,"column":60},"end":{"line":29,"column":7}},"line":25},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":42},"end":{"line":33,"column":43}},"loc":{"start":{"line":33,"column":57},"end":{"line":37,"column":7}},"line":33},"4":{"name":"(anonymous_4)","decl":{"start":{"line":42,"column":28},"end":{"line":42,"column":29}},"loc":{"start":{"line":42,"column":43},"end":{"line":44,"column":7}},"line":42},"5":{"name":"(anonymous_5)","decl":{"start":{"line":50,"column":42},"end":{"line":50,"column":43}},"loc":{"start":{"line":50,"column":57},"end":{"line":54,"column":9}},"line":50},"6":{"name":"(anonymous_6)","decl":{"start":{"line":58,"column":30},"end":{"line":58,"column":31}},"loc":{"start":{"line":58,"column":45},"end":{"line":60,"column":9}},"line":58},"7":{"name":"(anonymous_7)","decl":{"start":{"line":64,"column":45},"end":{"line":64,"column":46}},"loc":{"start":{"line":64,"column":60},"end":{"line":68,"column":9}},"line":64},"8":{"name":"updateTags","decl":{"start":{"line":78,"column":18},"end":{"line":78,"column":28}},"loc":{"start":{"line":78,"column":33},"end":{"line":80,"column":3}},"line":78},"9":{"name":"_interopRequireDefault","decl":{"start":{"line":105,"column":9},"end":{"line":105,"column":31}},"loc":{"start":{"line":105,"column":37},"end":{"line":105,"column":95}},"line":105},"10":{"name":"_asyncToGenerator","decl":{"start":{"line":107,"column":9},"end":{"line":107,"column":26}},"loc":{"start":{"line":107,"column":31},"end":{"line":107,"column":458}},"line":107},"11":{"name":"(anonymous_11)","decl":{"start":{"line":107,"column":40},"end":{"line":107,"column":41}},"loc":{"start":{"line":107,"column":52},"end":{"line":107,"column":455}},"line":107},"12":{"name":"(anonymous_12)","decl":{"start":{"line":107,"column":110},"end":{"line":107,"column":111}},"loc":{"start":{"line":107,"column":137},"end":{"line":107,"column":451}},"line":107},"13":{"name":"step","decl":{"start":{"line":107,"column":148},"end":{"line":107,"column":152}},"loc":{"start":{"line":107,"column":163},"end":{"line":107,"column":428}},"line":107},"14":{"name":"(anonymous_14)","decl":{"start":{"line":107,"column":341},"end":{"line":107,"column":342}},"loc":{"start":{"line":107,"column":358},"end":{"line":107,"column":382}},"line":107},"15":{"name":"(anonymous_15)","decl":{"start":{"line":107,"column":384},"end":{"line":107,"column":385}},"loc":{"start":{"line":107,"column":399},"end":{"line":107,"column":422}},"line":107},"16":{"name":"isTagEqual","decl":{"start":{"line":111,"column":9},"end":{"line":111,"column":19}},"loc":{"start":{"line":111,"column":32},"end":{"line":121,"column":1}},"line":111},"17":{"name":"populateTagResource","decl":{"start":{"line":123,"column":9},"end":{"line":123,"column":28}},"loc":{"start":{"line":123,"column":35},"end":{"line":130,"column":1}},"line":123},"18":{"name":"unpopulateTagResource","decl":{"start":{"line":132,"column":9},"end":{"line":132,"column":30}},"loc":{"start":{"line":132,"column":37},"end":{"line":139,"column":1}},"line":132},"19":{"name":"addTagIfNew","decl":{"start":{"line":141,"column":9},"end":{"line":141,"column":20}},"loc":{"start":{"line":141,"column":27},"end":{"line":169,"column":1}},"line":141},"20":{"name":"(anonymous_20)","decl":{"start":{"line":152,"column":59},"end":{"line":152,"column":60}},"loc":{"start":{"line":152,"column":69},"end":{"line":166,"column":3}},"line":152},"21":{"name":"(anonymous_21)","decl":{"start":{"line":166,"column":10},"end":{"line":166,"column":11}},"loc":{"start":{"line":166,"column":16},"end":{"line":168,"column":3}},"line":166},"22":{"name":"removeTagIfUnused","decl":{"start":{"line":171,"column":9},"end":{"line":171,"column":26}},"loc":{"start":{"line":171,"column":33},"end":{"line":204,"column":1}},"line":171},"23":{"name":"(anonymous_23)","decl":{"start":{"line":183,"column":59},"end":{"line":183,"column":60}},"loc":{"start":{"line":183,"column":69},"end":{"line":201,"column":3}},"line":183},"24":{"name":"(anonymous_24)","decl":{"start":{"line":201,"column":10},"end":{"line":201,"column":11}},"loc":{"start":{"line":201,"column":16},"end":{"line":203,"column":3}},"line":201},"25":{"name":"tagResource","decl":{"start":{"line":206,"column":9},"end":{"line":206,"column":20}},"loc":{"start":{"line":206,"column":27},"end":{"line":241,"column":1}},"line":206},"26":{"name":"(anonymous_26)","decl":{"start":{"line":217,"column":44},"end":{"line":217,"column":45}},"loc":{"start":{"line":217,"column":59},"end":{"line":217,"column":87}},"line":217},"27":{"name":"(anonymous_27)","decl":{"start":{"line":234,"column":12},"end":{"line":234,"column":13}},"loc":{"start":{"line":234,"column":23},"end":{"line":237,"column":5}},"line":234},"28":{"name":"untagResource","decl":{"start":{"line":243,"column":9},"end":{"line":243,"column":22}},"loc":{"start":{"line":243,"column":29},"end":{"line":271,"column":1}},"line":243},"29":{"name":"(anonymous_29)","decl":{"start":{"line":254,"column":61},"end":{"line":254,"column":62}},"loc":{"start":{"line":254,"column":76},"end":{"line":254,"column":104}},"line":254},"30":{"name":"(anonymous_30)","decl":{"start":{"line":264,"column":12},"end":{"line":264,"column":13}},"loc":{"start":{"line":264,"column":23},"end":{"line":267,"column":5}},"line":264}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},{"start":{"line":11,"column":4},"end":{"line":14,"column":5}}],"line":11},"1":{"loc":{"start":{"line":19,"column":4},"end":{"line":71,"column":5}},"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":71,"column":5}},{"start":{"line":19,"column":4},"end":{"line":71,"column":5}}],"line":19},"2":{"loc":{"start":{"line":27,"column":55},"end":{"line":27,"column":77}},"type":"binary-expr","locations":[{"start":{"line":27,"column":55},"end":{"line":27,"column":66}},{"start":{"line":27,"column":70},"end":{"line":27,"column":77}}],"line":27},"3":{"loc":{"start":{"line":28,"column":8},"end":{"line":28,"column":170}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":28,"column":170}},{"start":{"line":28,"column":8},"end":{"line":28,"column":170}}],"line":28},"4":{"loc":{"start":{"line":35,"column":55},"end":{"line":35,"column":77}},"type":"binary-expr","locations":[{"start":{"line":35,"column":55},"end":{"line":35,"column":66}},{"start":{"line":35,"column":70},"end":{"line":35,"column":77}}],"line":35},"5":{"loc":{"start":{"line":36,"column":8},"end":{"line":36,"column":153}},"type":"if","locations":[{"start":{"line":36,"column":8},"end":{"line":36,"column":153}},{"start":{"line":36,"column":8},"end":{"line":36,"column":153}}],"line":36},"6":{"loc":{"start":{"line":43,"column":8},"end":{"line":43,"column":167}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":167}},{"start":{"line":43,"column":8},"end":{"line":43,"column":167}}],"line":43},"7":{"loc":{"start":{"line":43,"column":12},"end":{"line":43,"column":35}},"type":"binary-expr","locations":[{"start":{"line":43,"column":12},"end":{"line":43,"column":20}},{"start":{"line":43,"column":24},"end":{"line":43,"column":35}}],"line":43},"8":{"loc":{"start":{"line":43,"column":85},"end":{"line":43,"column":158}},"type":"cond-expr","locations":[{"start":{"line":43,"column":115},"end":{"line":43,"column":137}},{"start":{"line":43,"column":140},"end":{"line":43,"column":158}}],"line":43},"9":{"loc":{"start":{"line":47,"column":6},"end":{"line":70,"column":7}},"type":"if","locations":[{"start":{"line":47,"column":6},"end":{"line":70,"column":7}},{"start":{"line":47,"column":6},"end":{"line":70,"column":7}}],"line":47},"10":{"loc":{"start":{"line":52,"column":57},"end":{"line":52,"column":79}},"type":"binary-expr","locations":[{"start":{"line":52,"column":57},"end":{"line":52,"column":68}},{"start":{"line":52,"column":72},"end":{"line":52,"column":79}}],"line":52},"11":{"loc":{"start":{"line":53,"column":10},"end":{"line":53,"column":155}},"type":"if","locations":[{"start":{"line":53,"column":10},"end":{"line":53,"column":155}},{"start":{"line":53,"column":10},"end":{"line":53,"column":155}}],"line":53},"12":{"loc":{"start":{"line":59,"column":10},"end":{"line":59,"column":169}},"type":"if","locations":[{"start":{"line":59,"column":10},"end":{"line":59,"column":169}},{"start":{"line":59,"column":10},"end":{"line":59,"column":169}}],"line":59},"13":{"loc":{"start":{"line":59,"column":14},"end":{"line":59,"column":37}},"type":"binary-expr","locations":[{"start":{"line":59,"column":14},"end":{"line":59,"column":22}},{"start":{"line":59,"column":26},"end":{"line":59,"column":37}}],"line":59},"14":{"loc":{"start":{"line":59,"column":87},"end":{"line":59,"column":160}},"type":"cond-expr","locations":[{"start":{"line":59,"column":117},"end":{"line":59,"column":139}},{"start":{"line":59,"column":142},"end":{"line":59,"column":160}}],"line":59},"15":{"loc":{"start":{"line":66,"column":57},"end":{"line":66,"column":79}},"type":"binary-expr","locations":[{"start":{"line":66,"column":57},"end":{"line":66,"column":68}},{"start":{"line":66,"column":72},"end":{"line":66,"column":79}}],"line":66},"16":{"loc":{"start":{"line":67,"column":10},"end":{"line":67,"column":172}},"type":"if","locations":[{"start":{"line":67,"column":10},"end":{"line":67,"column":172}},{"start":{"line":67,"column":10},"end":{"line":67,"column":172}}],"line":67},"17":{"loc":{"start":{"line":105,"column":46},"end":{"line":105,"column":92}},"type":"cond-expr","locations":[{"start":{"line":105,"column":70},"end":{"line":105,"column":73}},{"start":{"line":105,"column":76},"end":{"line":105,"column":92}}],"line":105},"18":{"loc":{"start":{"line":105,"column":46},"end":{"line":105,"column":67}},"type":"binary-expr","locations":[{"start":{"line":105,"column":46},"end":{"line":105,"column":49}},{"start":{"line":105,"column":53},"end":{"line":105,"column":67}}],"line":105},"19":{"loc":{"start":{"line":107,"column":264},"end":{"line":107,"column":426}},"type":"if","locations":[{"start":{"line":107,"column":264},"end":{"line":107,"column":426}},{"start":{"line":107,"column":264},"end":{"line":107,"column":426}}],"line":107},"20":{"loc":{"start":{"line":113,"column":2},"end":{"line":113,"column":79}},"type":"if","locations":[{"start":{"line":113,"column":2},"end":{"line":113,"column":79}},{"start":{"line":113,"column":2},"end":{"line":113,"column":79}}],"line":113},"21":{"loc":{"start":{"line":113,"column":6},"end":{"line":113,"column":26}},"type":"binary-expr","locations":[{"start":{"line":113,"column":6},"end":{"line":113,"column":14}},{"start":{"line":113,"column":18},"end":{"line":113,"column":26}}],"line":113},"22":{"loc":{"start":{"line":115,"column":14},"end":{"line":115,"column":68}},"type":"binary-expr","locations":[{"start":{"line":115,"column":14},"end":{"line":115,"column":39}},{"start":{"line":115,"column":43},"end":{"line":115,"column":68}}],"line":115},"23":{"loc":{"start":{"line":117,"column":2},"end":{"line":119,"column":3}},"type":"if","locations":[{"start":{"line":117,"column":2},"end":{"line":119,"column":3}},{"start":{"line":117,"column":2},"end":{"line":119,"column":3}}],"line":117},"24":{"loc":{"start":{"line":117,"column":6},"end":{"line":117,"column":34}},"type":"binary-expr","locations":[{"start":{"line":117,"column":6},"end":{"line":117,"column":18}},{"start":{"line":117,"column":22},"end":{"line":117,"column":34}}],"line":117},"25":{"loc":{"start":{"line":118,"column":12},"end":{"line":118,"column":72}},"type":"binary-expr","locations":[{"start":{"line":118,"column":12},"end":{"line":118,"column":17}},{"start":{"line":118,"column":21},"end":{"line":118,"column":72}}],"line":118},"26":{"loc":{"start":{"line":124,"column":2},"end":{"line":126,"column":3}},"type":"if","locations":[{"start":{"line":124,"column":2},"end":{"line":126,"column":3}},{"start":{"line":124,"column":2},"end":{"line":126,"column":3}}],"line":124},"27":{"loc":{"start":{"line":133,"column":2},"end":{"line":135,"column":3}},"type":"if","locations":[{"start":{"line":133,"column":2},"end":{"line":135,"column":3}},{"start":{"line":133,"column":2},"end":{"line":135,"column":3}}],"line":133},"28":{"loc":{"start":{"line":142,"column":2},"end":{"line":144,"column":3}},"type":"if","locations":[{"start":{"line":142,"column":2},"end":{"line":144,"column":3}},{"start":{"line":142,"column":2},"end":{"line":144,"column":3}}],"line":142},"29":{"loc":{"start":{"line":148,"column":2},"end":{"line":150,"column":3}},"type":"if","locations":[{"start":{"line":148,"column":2},"end":{"line":150,"column":3}},{"start":{"line":148,"column":2},"end":{"line":150,"column":3}}],"line":148},"30":{"loc":{"start":{"line":148,"column":6},"end":{"line":148,"column":22}},"type":"binary-expr","locations":[{"start":{"line":148,"column":6},"end":{"line":148,"column":12}},{"start":{"line":148,"column":16},"end":{"line":148,"column":22}}],"line":148},"31":{"loc":{"start":{"line":155,"column":4},"end":{"line":165,"column":5}},"type":"if","locations":[{"start":{"line":155,"column":4},"end":{"line":165,"column":5}},{"start":{"line":155,"column":4},"end":{"line":165,"column":5}}],"line":155},"32":{"loc":{"start":{"line":172,"column":2},"end":{"line":174,"column":3}},"type":"if","locations":[{"start":{"line":172,"column":2},"end":{"line":174,"column":3}},{"start":{"line":172,"column":2},"end":{"line":174,"column":3}}],"line":172},"33":{"loc":{"start":{"line":179,"column":2},"end":{"line":181,"column":3}},"type":"if","locations":[{"start":{"line":179,"column":2},"end":{"line":181,"column":3}},{"start":{"line":179,"column":2},"end":{"line":181,"column":3}}],"line":179},"34":{"loc":{"start":{"line":179,"column":6},"end":{"line":179,"column":22}},"type":"binary-expr","locations":[{"start":{"line":179,"column":6},"end":{"line":179,"column":12}},{"start":{"line":179,"column":16},"end":{"line":179,"column":22}}],"line":179},"35":{"loc":{"start":{"line":185,"column":4},"end":{"line":200,"column":5}},"type":"if","locations":[{"start":{"line":185,"column":4},"end":{"line":200,"column":5}},{"start":{"line":185,"column":4},"end":{"line":200,"column":5}}],"line":185},"36":{"loc":{"start":{"line":189,"column":6},"end":{"line":195,"column":7}},"type":"if","locations":[{"start":{"line":189,"column":6},"end":{"line":195,"column":7}},{"start":{"line":189,"column":6},"end":{"line":195,"column":7}}],"line":189},"37":{"loc":{"start":{"line":207,"column":2},"end":{"line":209,"column":3}},"type":"if","locations":[{"start":{"line":207,"column":2},"end":{"line":209,"column":3}},{"start":{"line":207,"column":2},"end":{"line":209,"column":3}}],"line":207},"38":{"loc":{"start":{"line":217,"column":2},"end":{"line":240,"column":3}},"type":"if","locations":[{"start":{"line":217,"column":2},"end":{"line":240,"column":3}},{"start":{"line":217,"column":2},"end":{"line":240,"column":3}}],"line":217},"39":{"loc":{"start":{"line":219,"column":4},"end":{"line":221,"column":5}},"type":"if","locations":[{"start":{"line":219,"column":4},"end":{"line":221,"column":5}},{"start":{"line":219,"column":4},"end":{"line":221,"column":5}}],"line":219},"40":{"loc":{"start":{"line":223,"column":4},"end":{"line":225,"column":5}},"type":"if","locations":[{"start":{"line":223,"column":4},"end":{"line":225,"column":5}},{"start":{"line":223,"column":4},"end":{"line":225,"column":5}}],"line":223},"41":{"loc":{"start":{"line":224,"column":20},"end":{"line":224,"column":93}},"type":"cond-expr","locations":[{"start":{"line":224,"column":50},"end":{"line":224,"column":72}},{"start":{"line":224,"column":75},"end":{"line":224,"column":93}}],"line":224},"42":{"loc":{"start":{"line":244,"column":2},"end":{"line":246,"column":3}},"type":"if","locations":[{"start":{"line":244,"column":2},"end":{"line":246,"column":3}},{"start":{"line":244,"column":2},"end":{"line":246,"column":3}}],"line":244},"43":{"loc":{"start":{"line":255,"column":2},"end":{"line":270,"column":3}},"type":"if","locations":[{"start":{"line":255,"column":2},"end":{"line":270,"column":3}},{"start":{"line":255,"column":2},"end":{"line":270,"column":3}}],"line":255}},"s":{"0":1,"1":1,"2":1,"3":1,"4":2,"5":2,"6":0,"7":0,"8":2,"9":2,"10":2,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":2,"34":1,"35":1,"36":1,"37":1,"38":0,"39":1,"40":1,"41":1,"42":1,"43":1,"44":0,"45":1,"46":1,"47":1,"48":1,"49":1,"50":0,"51":1,"52":1,"53":2,"54":1,"55":2,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":2,"71":1,"72":2,"73":2,"74":4,"75":4,"76":4,"77":0,"78":0,"79":4,"80":2,"81":2,"82":2,"83":0,"84":2,"85":1,"86":3,"87":1,"88":2,"89":2,"90":0,"91":2,"92":6,"93":0,"94":6,"95":0,"96":0,"97":0,"98":2,"99":0,"100":2,"101":2,"102":2,"103":2,"104":0,"105":2,"106":2,"107":0,"108":0,"109":0,"110":0,"111":0,"112":2,"113":2,"114":2,"115":2,"116":0,"117":2,"118":2,"119":2,"120":2,"121":0,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":0,"131":0,"132":0,"133":0,"134":2,"135":1,"136":0,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":0,"147":1,"148":0,"149":1,"150":1,"151":1,"152":1,"153":0,"154":1,"155":0,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":2,"163":1,"164":1,"165":1,"166":1,"167":1,"168":0},"f":{"0":1,"1":2,"2":0,"3":0,"4":0,"5":1,"6":1,"7":1,"8":2,"9":2,"10":1,"11":2,"12":2,"13":4,"14":2,"15":0,"16":3,"17":6,"18":0,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":1,"26":1,"27":1,"28":1,"29":2,"30":1},"b":{"0":[0,2],"1":[0,2],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[1,1],"10":[1,1],"11":[0,1],"12":[1,0],"13":[1,0],"14":[0,0],"15":[1,1],"16":[0,1],"17":[0,2],"18":[2,2],"19":[2,2],"20":[1,2],"21":[3,1],"22":[2,0],"23":[0,2],"24":[2,0],"25":[0,0],"26":[0,6],"27":[0,0],"28":[0,2],"29":[0,2],"30":[2,2],"31":[0,2],"32":[0,2],"33":[0,2],"34":[2,2],"35":[2,0],"36":[2,0],"37":[0,1],"38":[1,0],"39":[0,1],"40":[0,1],"41":[0,0],"42":[0,1],"43":[1,0]},"inputSourceMap":{"version":3,"sources":["hooks.tags.js"],"names":["hook","item","tags","debug","Promise","resolve","context","service","previousTags","_","get","params","commonTags","intersectionWith","isTagEqual","removedTags","differenceWith","removePromises","map","tagService","app","getService","tag","reject","Error","remove","query","addedTags","addedPromises","create","oldTags","newTags","all","Object","assign","_id","toString","concat","method","addPromises","updateTags","populateTagResource","unpopulateTagResource","addTagIfNew","removeTagIfUnused","tagResource","untagResource","tag1","tag2","equal","value","scope","type","serviceField","idField","throwOnNotFound","BadRequest","find","then","result","total","data","count","patch","resourcesService","resource","resourceTag","push","user","omit","subject","tagIndex","findIndex","pullAt"],"mappings":"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","file":"hooks.tags.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import _ from 'lodash'\r\nimport { BadRequest } from '@feathersjs/errors'\r\nimport { getItems } from 'feathers-hooks-common'\r\nimport { populateObject, unpopulateObject } from './hooks.query'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:tags:hooks')\r\n\r\nexport function isTagEqual (tag1, tag2) {\r\n // If tags already exists in DB directly use IDs for comparison\r\n if (tag1._id && tag2._id) return (tag1._id.toString() === tag2._id.toString())\r\n\r\n let equal = (tag1.value === tag2.value && tag1.scope === tag2.scope)\r\n // when context is provided use it as well\r\n if (tag1.context && tag2.context) {\r\n equal = equal && (tag1.context.toString() === tag2.context.toString())\r\n }\r\n return equal\r\n}\r\n\r\nexport function populateTagResource (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'populateTagResource\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n // Avoid populating any target resource when resource parameters are not present\r\n return populateObject({ serviceField: 'resourcesService', idField: 'resource', throwOnNotFound: false })(hook)\r\n}\r\n\r\nexport function unpopulateTagResource (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'unpopulateTagResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n // Avoid populating any target resource when resource parameters are not present\r\n return unpopulateObject({ serviceField: 'resourcesService', idField: 'resource' })(hook)\r\n}\r\n\r\nexport async function updateTags (hook) {\r\n const item = getItems(hook)\r\n if (!item.tags) {\r\n debug('No tags to update for object ', item)\r\n return Promise.resolve(hook)\r\n }\r\n // Tag service is contextual, look for context on initiator service\r\n const context = hook.service.context\r\n // Retrieve previous version of the item\r\n const previousTags = _.get(hook.params, 'previousItem.tags')\r\n if (previousTags) {\r\n // Find common tags\r\n const commonTags = _.intersectionWith(item.tags, previousTags, isTagEqual)\r\n // Clear removed tags\r\n const removedTags = _.differenceWith(previousTags, commonTags, isTagEqual)\r\n debug('Removing tags for object ', item, removedTags)\r\n const removePromises = removedTags.map(tag => {\r\n // When a contextual service is used we might not provide the context in tag, extract from service instead\r\n const tagService = hook.app.getService('tags', tag.context || context)\r\n if (!tagService) return Promise.reject(new Error('No valid context found to retrieve tag service for ', tag))\r\n else return tagService.remove(null, { query: tag })\r\n })\r\n // And add new ones\r\n const addedTags = _.differenceWith(item.tags, commonTags, isTagEqual)\r\n debug('Adding tags for object ', item, addedTags)\r\n const addedPromises = addedTags.map(tag => {\r\n // When a contextual service is used we might not provide the context in tag, extract from service instead\r\n const tagService = hook.app.getService('tags', tag.context || context)\r\n if (!tagService) return Promise.reject(new Error('No valid context found to retrieve tag service for ', tag))\r\n else return tagService.create(tag)\r\n })\r\n let [oldTags, newTags] = await Promise.all([\r\n Promise.all(removePromises),\r\n Promise.all(addedPromises)\r\n ])\r\n debug('Tags removed/added', oldTags, newTags)\r\n // Update tags to include information added when they are created (eg _id)\r\n // and add also context because tags might come from different ones on the same target object\r\n newTags = newTags.map(tag => {\r\n if (!context || tag.context) return tag\r\n else return Object.assign({ context: (typeof context === 'object' ? context._id.toString() : context.toString()) }, tag)\r\n })\r\n item.tags = commonTags.concat(newTags)\r\n } else {\r\n if (hook.method !== 'remove') {\r\n // Add new tags\r\n debug('Adding tags for object ', item)\r\n const addPromises = item.tags.map(tag => {\r\n // When a contextual service is used we might not provide the context in tag, extract from service instead\r\n const tagService = hook.app.getService('tags', tag.context || context)\r\n if (!tagService) return Promise.reject(new Error('No valid context found to retrieve tag service for ', tag))\r\n else return tagService.create(tag)\r\n })\r\n // Update tags to include information added when they are created (eg _id)\r\n let newTags = await Promise.all(addPromises)\r\n // and add also context because tags might come from different ones on the same target object\r\n newTags = newTags.map(tag => {\r\n if (!context || tag.context) return tag\r\n else return Object.assign({ context: (typeof context === 'object' ? context._id.toString() : context.toString()) }, tag)\r\n })\r\n item.tags = newTags\r\n } else {\r\n debug('Removing tags for object ', item)\r\n const removePromises = item.tags.map(tag => {\r\n // When a contextual service is used we might not provide the context in tag, extract from service instead\r\n const tagService = hook.app.getService('tags', tag.context || context)\r\n if (!tagService) return Promise.reject(new Error('No valid context found to retrieve tag service for ', tag))\r\n else return tagService.remove(null, { query: tag })\r\n })\r\n await Promise.all(removePromises)\r\n }\r\n }\r\n // Avoid transferring some internal data\r\n // item.tags = item.tags.map(tag => _.omit(tag, ['count']))\r\n\r\n return hook\r\n}\r\n\r\nexport function addTagIfNew (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'addTagIfNew\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const tagService = hook.service\r\n const value = _.get(hook, 'data.value')\r\n const scope = _.get(hook, 'data.scope')\r\n if (!value || !scope) {\r\n throw new BadRequest('Scope and value should be provided to create a tag')\r\n }\r\n\r\n return tagService.find({ query: { value, scope } })\r\n .then(result => {\r\n // If it already exist avoid creating it in DB,\r\n // simply update counter and return it\r\n if (result.total > 0) {\r\n const tag = result.data[0]\r\n hook.result = tag\r\n tag.count += 1\r\n debug('Increasing tag ' + tag.value + ' count (' + tag.count + ') with scope ' + tag.scope)\r\n return tagService.patch(tag._id.toString(), { count: tag.count })\r\n } else {\r\n // Otherwise initialize tag counter\r\n hook.data.count = 1\r\n return Promise.resolve(hook)\r\n }\r\n })\r\n .then(() => {\r\n return hook\r\n })\r\n}\r\n\r\nexport function removeTagIfUnused (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'removeTagIfUnused\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n const tagService = hook.service\r\n const value = _.get(hook.params, 'query.value')\r\n const scope = _.get(hook.params, 'query.scope')\r\n if (!value || !scope) {\r\n throw new BadRequest('Scope and value should be provided to remove a tag')\r\n }\r\n\r\n return tagService.find({ query: { value, scope } })\r\n .then(result => {\r\n // If it already exist decrease counter and erase it if not used anymore\r\n if (result.total > 0) {\r\n const tag = result.data[0]\r\n hook.result = tag\r\n tag.count -= 1\r\n if (tag.count <= 0) {\r\n debug('Removing unused tag ' + tag.value + ' with scope ' + tag.scope)\r\n return tagService.remove(tag._id.toString())\r\n } else {\r\n debug('Decreasing tag ' + tag.value + ' count (' + tag.count + ') with scope ' + tag.scope)\r\n return tagService.patch(tag._id.toString(), { count: tag.count })\r\n }\r\n } else {\r\n // Should not be possible, this will skip DB call\r\n hook.result = null\r\n return Promise.resolve(hook)\r\n }\r\n })\r\n .then(() => {\r\n return hook\r\n })\r\n}\r\n\r\nexport function tagResource (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'tagResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n const tag = hook.result\r\n const params = hook.params\r\n const query = params.query\r\n const context = hook.service.context\r\n const resourcesService = params.resourcesService\r\n const resource = params.resource\r\n // If not already tagged\r\n if (!_.find(resource.tags, resourceTag => isTagEqual(resourceTag, tag))) {\r\n // Initialize on first tag\r\n if (!resource.tags) {\r\n resource.tags = []\r\n }\r\n // Add context because tags might come from different ones on the same target object\r\n if (context) {\r\n tag.context = (typeof context === 'object' ? context._id.toString() : context.toString())\r\n }\r\n resource.tags.push(tag)\r\n return resourcesService.patch(resource._id.toString(), {\r\n tags: resource.tags\r\n }, {\r\n user: hook.params.user,\r\n // Forward query so that any update param could be processed as usual on resource\r\n // Delete own parameters from query otherwise it will be used to filter items\r\n query: _.omit(query, ['resource', 'resourcesService', 'scope', 'value', 'context'])\r\n })\r\n .then(subject => {\r\n debug('Tag ' + tag.value + ' set on resource ' + resource._id.toString() + ' with scope ' + tag.scope)\r\n return hook\r\n })\r\n } else {\r\n return Promise.resolve(hook)\r\n }\r\n}\r\n\r\nexport function untagResource (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'untagResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const tag = hook.result\r\n const params = hook.params\r\n const query = params.query\r\n const resourcesService = params.resourcesService\r\n const resource = params.resource\r\n // If already tagged\r\n const tagIndex = _.findIndex(resource.tags, resourceTag => isTagEqual(resourceTag, tag))\r\n if (tagIndex >= 0) {\r\n _.pullAt(resource.tags, tagIndex)\r\n return resourcesService.patch(resource._id.toString(), {\r\n tags: resource.tags\r\n }, {\r\n user: params.user,\r\n // Forward query so that any update param could be processed as usual on resource\r\n // Delete own parameters from query otherwise it will be used to filter items\r\n query: _.omit(query, ['resource', 'resourcesService', 'scope', 'value', 'context'])\r\n })\r\n .then(subject => {\r\n debug('Tag ' + tag.value + ' unset on resource ' + resource._id.toString() + ' with scope ' + tag.scope)\r\n return hook\r\n })\r\n } else {\r\n return Promise.resolve(hook)\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"647b514101eb75776a8c72affcc274fb7b9a7a40","contentHash":"ce34a0f309b465d949bf4bb93fe86acb9abef52468a7da782a8db6493dc3de40"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.devices.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.devices.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":39}},"2":{"start":{"line":8,"column":25},"end":{"line":49,"column":4}},"3":{"start":{"line":9,"column":13},"end":{"line":44,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"5":{"start":{"line":11,"column":6},"end":{"line":11,"column":98}},"6":{"start":{"line":14,"column":16},"end":{"line":14,"column":24}},"7":{"start":{"line":15,"column":17},"end":{"line":15,"column":33}},"8":{"start":{"line":16,"column":26},"end":{"line":16,"column":50}},"9":{"start":{"line":17,"column":23},"end":{"line":17,"column":48}},"10":{"start":{"line":18,"column":18},"end":{"line":25,"column":5}},"11":{"start":{"line":26,"column":19},"end":{"line":26,"column":30}},"12":{"start":{"line":28,"column":24},"end":{"line":28,"column":91}},"13":{"start":{"line":29,"column":21},"end":{"line":29,"column":76}},"14":{"start":{"line":32,"column":4},"end":{"line":41,"column":5}},"15":{"start":{"line":33,"column":27},"end":{"line":33,"column":97}},"16":{"start":{"line":35,"column":6},"end":{"line":35,"column":37}},"17":{"start":{"line":36,"column":6},"end":{"line":36,"column":37}},"18":{"start":{"line":37,"column":6},"end":{"line":37,"column":40}},"19":{"start":{"line":39,"column":6},"end":{"line":39,"column":43}},"20":{"start":{"line":40,"column":6},"end":{"line":40,"column":30}},"21":{"start":{"line":43,"column":4},"end":{"line":43,"column":16}},"22":{"start":{"line":46,"column":2},"end":{"line":48,"column":4}},"23":{"start":{"line":47,"column":4},"end":{"line":47,"column":39}},"24":{"start":{"line":51,"column":22},"end":{"line":51,"column":48}},"25":{"start":{"line":53,"column":23},"end":{"line":53,"column":62}},"26":{"start":{"line":55,"column":12},"end":{"line":55,"column":27}},"27":{"start":{"line":57,"column":13},"end":{"line":57,"column":42}},"28":{"start":{"line":59,"column":13},"end":{"line":59,"column":29}},"29":{"start":{"line":61,"column":14},"end":{"line":61,"column":44}},"30":{"start":{"line":63,"column":39},"end":{"line":63,"column":93}},"31":{"start":{"line":65,"column":33},"end":{"line":65,"column":456}},"32":{"start":{"line":65,"column":64},"end":{"line":65,"column":89}},"33":{"start":{"line":65,"column":91},"end":{"line":65,"column":453}},"34":{"start":{"line":65,"column":165},"end":{"line":65,"column":263}},"35":{"start":{"line":65,"column":182},"end":{"line":65,"column":195}},"36":{"start":{"line":65,"column":209},"end":{"line":65,"column":219}},"37":{"start":{"line":65,"column":239},"end":{"line":65,"column":253}},"38":{"start":{"line":65,"column":254},"end":{"line":65,"column":261}},"39":{"start":{"line":65,"column":264},"end":{"line":65,"column":426}},"40":{"start":{"line":65,"column":281},"end":{"line":65,"column":296}},"41":{"start":{"line":65,"column":306},"end":{"line":65,"column":424}},"42":{"start":{"line":65,"column":360},"end":{"line":65,"column":380}},"43":{"start":{"line":65,"column":401},"end":{"line":65,"column":420}},"44":{"start":{"line":65,"column":429},"end":{"line":65,"column":449}},"45":{"start":{"line":67,"column":14},"end":{"line":67,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":55},"end":{"line":8,"column":56}},"loc":{"start":{"line":8,"column":61},"end":{"line":49,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":48},"end":{"line":44,"column":3}},"line":9},"2":{"name":"sendNewDeviceEmail","decl":{"start":{"line":46,"column":18},"end":{"line":46,"column":36}},"loc":{"start":{"line":46,"column":41},"end":{"line":48,"column":3}},"line":46},"3":{"name":"_interopRequireDefault","decl":{"start":{"line":63,"column":9},"end":{"line":63,"column":31}},"loc":{"start":{"line":63,"column":37},"end":{"line":63,"column":95}},"line":63},"4":{"name":"_asyncToGenerator","decl":{"start":{"line":65,"column":9},"end":{"line":65,"column":26}},"loc":{"start":{"line":65,"column":31},"end":{"line":65,"column":458}},"line":65},"5":{"name":"(anonymous_5)","decl":{"start":{"line":65,"column":40},"end":{"line":65,"column":41}},"loc":{"start":{"line":65,"column":52},"end":{"line":65,"column":455}},"line":65},"6":{"name":"(anonymous_6)","decl":{"start":{"line":65,"column":110},"end":{"line":65,"column":111}},"loc":{"start":{"line":65,"column":137},"end":{"line":65,"column":451}},"line":65},"7":{"name":"step","decl":{"start":{"line":65,"column":148},"end":{"line":65,"column":152}},"loc":{"start":{"line":65,"column":163},"end":{"line":65,"column":428}},"line":65},"8":{"name":"(anonymous_8)","decl":{"start":{"line":65,"column":341},"end":{"line":65,"column":342}},"loc":{"start":{"line":65,"column":358},"end":{"line":65,"column":382}},"line":65},"9":{"name":"(anonymous_9)","decl":{"start":{"line":65,"column":384},"end":{"line":65,"column":385}},"loc":{"start":{"line":65,"column":399},"end":{"line":65,"column":422}},"line":65}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},{"start":{"line":10,"column":4},"end":{"line":12,"column":5}}],"line":10},"1":{"loc":{"start":{"line":33,"column":74},"end":{"line":33,"column":96}},"type":"binary-expr","locations":[{"start":{"line":33,"column":74},"end":{"line":33,"column":85}},{"start":{"line":33,"column":89},"end":{"line":33,"column":96}}],"line":33},"2":{"loc":{"start":{"line":63,"column":46},"end":{"line":63,"column":92}},"type":"cond-expr","locations":[{"start":{"line":63,"column":70},"end":{"line":63,"column":73}},{"start":{"line":63,"column":76},"end":{"line":63,"column":92}}],"line":63},"3":{"loc":{"start":{"line":63,"column":46},"end":{"line":63,"column":67}},"type":"binary-expr","locations":[{"start":{"line":63,"column":46},"end":{"line":63,"column":49}},{"start":{"line":63,"column":53},"end":{"line":63,"column":67}}],"line":63},"4":{"loc":{"start":{"line":65,"column":264},"end":{"line":65,"column":426}},"type":"if","locations":[{"start":{"line":65,"column":264},"end":{"line":65,"column":426}},{"start":{"line":65,"column":264},"end":{"line":65,"column":426}}],"line":65}},"s":{"0":1,"1":1,"2":1,"3":1,"4":3,"5":0,"6":3,"7":3,"8":3,"9":3,"10":3,"11":3,"12":3,"13":3,"14":3,"15":3,"16":3,"17":3,"18":3,"19":0,"20":0,"21":3,"22":1,"23":3,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":3,"31":1,"32":3,"33":3,"34":9,"35":9,"36":9,"37":0,"38":0,"39":9,"40":3,"41":6,"42":6,"43":0,"44":3,"45":1},"f":{"0":1,"1":3,"2":3,"3":3,"4":1,"5":3,"6":3,"7":9,"8":6,"9":0},"b":{"0":[0,3],"1":[3,3],"2":[0,3],"3":[3,3],"4":[3,6]},"inputSourceMap":{"version":3,"sources":["hooks.devices.js"],"names":["hook","type","Error","app","user","params","mailerService","getService","domainPath","get","email","subject","from","options","auth","to","link","device","result","templateDir","path","join","template","emails","EmailTemplate","emailContent","render","locale","html","debug","create","error","logger","sendNewDeviceEmail"],"mappings":";;;;;;;;+BAMO,WAAmCA,IAAnC,EAAyC;AAC9C,QAAIA,KAAKC,IAAL,KAAc,OAAlB,EAA2B;AACzB,YAAM,IAAIC,KAAJ,CAAU,0EAAV,CAAN;AACD;;AAED,UAAMC,MAAMH,KAAKG,GAAjB;AACA,UAAMC,OAAOJ,KAAKK,MAAL,CAAYD,IAAzB;AACA,UAAME,gBAAgBH,IAAII,UAAJ,CAAe,QAAf,CAAtB;AACA,UAAMC,aAAaL,IAAIM,GAAJ,CAAQ,QAAR,IAAoB,KAAvC;AACA,UAAMC,QAAQ;AACZC,eAAS,oCADG;AAEZC,YAAMN,cAAcO,OAAd,CAAsBC,IAAtB,CAA2BV,IAFrB;AAGZ;AACAW,UAAIX,KAAKM,KAJG;AAKZM,YAAMR,aAAa,uBALP;AAMZA;AANY,KAAd;AAQA,UAAMS,SAASjB,KAAKkB,MAApB;AACA;AACA,UAAMC,cAAcC,eAAKC,IAAL,CAAUf,cAAcO,OAAd,CAAsBM,WAAhC,EAA6C,WAA7C,CAApB;AACA,UAAMG,WAAW,IAAIC,yBAAOC,aAAX,CAAyBL,WAAzB,CAAjB;AACA;AACA;AACA,QAAI;AACF,YAAMM,eAAe,MAAMH,SAASI,MAAT,CAAgB,EAAEhB,KAAF,EAASO,MAAT,EAAiBb,IAAjB,EAAhB,EAAyCA,KAAKuB,MAAL,IAAe,OAAxD,CAA3B;AACA;AACAjB,YAAMkB,IAAN,GAAaH,aAAaG,IAA1B;AACAC,YAAM,gBAAN,EAAwBnB,KAAxB;AACA,YAAMJ,cAAcwB,MAAd,CAAqBpB,KAArB,CAAN;AACD,KAND,CAME,OAAOqB,KAAP,EAAc;AACdF,YAAM,sBAAN,EAA8BE,KAA9B;AACA5B,UAAI6B,MAAJ,CAAWD,KAAX,CAAiBA,KAAjB;AACD;;AAED,WAAO/B,IAAP;AACD,G;;kBAnCqBiC,kB;;;;;AANtB;;;;AACA;;;;AACA;;;;;;;;AAEA,MAAMJ,QAAQ,qBAAU,wBAAV,CAAd","file":"hooks.devices.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import emails from 'email-templates'\r\nimport path from 'path'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:devices:hooks')\r\n\r\nexport async function sendNewDeviceEmail (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'sendNewDeviceEmail\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const user = hook.params.user\r\n const mailerService = app.getService('mailer')\r\n const domainPath = app.get('domain') + '/#/'\r\n const email = {\r\n subject: 'Security alert - new device signin',\r\n from: mailerService.options.auth.user,\r\n // When changing email send to the new one so that it can be verified\r\n to: user.email,\r\n link: domainPath + 'home/account/security',\r\n domainPath\r\n }\r\n const device = hook.result\r\n // Build the subject & link to the app to perform the different actions\r\n const templateDir = path.join(mailerService.options.templateDir, 'newDevice')\r\n const template = new emails.EmailTemplate(templateDir)\r\n // Errors does not seem to be correctly catched by the caller\r\n // so we catch them here to avoid any problem\r\n try {\r\n const emailContent = await template.render({ email, device, user }, user.locale || 'en-us')\r\n // Update compiled content\r\n email.html = emailContent.html\r\n debug('Sending email ', email)\r\n await mailerService.create(email)\r\n } catch (error) {\r\n debug('Sending email failed', error)\r\n app.logger.error(error)\r\n }\r\n\r\n return hook\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ace70a79a8ffa952a5d22eb56a1ad62220452d36","contentHash":"4922af2b64538eb0d9f46ddf74e8b8f4dc961626c4ed02cb9d62f8121a0df5c9"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.groups.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.groups.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":62}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":62}},"3":{"start":{"line":9,"column":13},"end":{"line":9,"column":29}},"4":{"start":{"line":11,"column":14},"end":{"line":11,"column":44}},"5":{"start":{"line":13,"column":39},"end":{"line":13,"column":93}},"6":{"start":{"line":15,"column":14},"end":{"line":15,"column":59}},"7":{"start":{"line":18,"column":14},"end":{"line":18,"column":22}},"8":{"start":{"line":19,"column":31},"end":{"line":19,"column":63}},"9":{"start":{"line":20,"column":22},"end":{"line":20,"column":45}},"10":{"start":{"line":23,"column":2},"end":{"line":36,"column":5}},"11":{"start":{"line":34,"column":4},"end":{"line":34,"column":61}},"12":{"start":{"line":35,"column":4},"end":{"line":35,"column":16}},"13":{"start":{"line":40,"column":14},"end":{"line":40,"column":22}},"14":{"start":{"line":41,"column":31},"end":{"line":41,"column":63}},"15":{"start":{"line":44,"column":2},"end":{"line":58,"column":5}},"16":{"start":{"line":56,"column":4},"end":{"line":56,"column":63}},"17":{"start":{"line":57,"column":4},"end":{"line":57,"column":16}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":31}},"loc":{"start":{"line":13,"column":37},"end":{"line":13,"column":95}},"line":13},"1":{"name":"createGroupAuthorisations","decl":{"start":{"line":17,"column":9},"end":{"line":17,"column":34}},"loc":{"start":{"line":17,"column":41},"end":{"line":37,"column":1}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":33,"column":10},"end":{"line":33,"column":11}},"loc":{"start":{"line":33,"column":27},"end":{"line":36,"column":3}},"line":33},"3":{"name":"removeGroupAuthorisations","decl":{"start":{"line":39,"column":9},"end":{"line":39,"column":34}},"loc":{"start":{"line":39,"column":41},"end":{"line":59,"column":1}},"line":39},"4":{"name":"(anonymous_4)","decl":{"start":{"line":55,"column":10},"end":{"line":55,"column":11}},"loc":{"start":{"line":55,"column":27},"end":{"line":58,"column":3}},"line":55}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":46},"end":{"line":13,"column":92}},"type":"cond-expr","locations":[{"start":{"line":13,"column":70},"end":{"line":13,"column":73}},{"start":{"line":13,"column":76},"end":{"line":13,"column":92}}],"line":13},"1":{"loc":{"start":{"line":13,"column":46},"end":{"line":13,"column":67}},"type":"binary-expr","locations":[{"start":{"line":13,"column":46},"end":{"line":13,"column":49}},{"start":{"line":13,"column":53},"end":{"line":13,"column":67}}],"line":13}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2},"f":{"0":1,"1":2,"2":2,"3":2,"4":2},"b":{"0":[0,1],"1":[1,1]},"inputSourceMap":{"version":3,"sources":["hooks.groups.js"],"names":["createGroupAuthorisations","removeGroupAuthorisations","debug","hook","app","authorisationService","getService","userService","create","scope","permissions","user","params","subjects","subjectsService","resource","result","resourcesService","service","then","authorisation","_id","remove","toString","query","getContextId"],"mappings":";;;;;QAGgBA,yB,GAAAA,yB;QAuBAC,yB,GAAAA,yB;;AA1BhB;;;;;;AACA,MAAMC,QAAQ,qBAAU,uBAAV,CAAd;;AAEO,SAASF,yBAAT,CAAoCG,IAApC,EAA0C;AAC/C,QAAMC,MAAMD,KAAKC,GAAjB;AACA,QAAMC,uBAAuBD,IAAIE,UAAJ,CAAe,gBAAf,CAA7B;AACA,QAAMC,cAAcH,IAAIE,UAAJ,CAAe,OAAf,CAApB;;AAEA;AACA,SAAOD,qBAAqBG,MAArB,CAA4B;AACjCC,WAAO,QAD0B;AAEjCC,iBAAa;AAFoB,GAA5B,EAGJ;AACDC,UAAMR,KAAKS,MAAL,CAAYD,IADjB;AAED;AACAE,cAAU,CAACV,KAAKS,MAAL,CAAYD,IAAb,CAHT;AAIDG,qBAAiBP,WAJhB;AAKDQ,cAAUZ,KAAKa,MALd;AAMDC,sBAAkBd,KAAKe;AANtB,GAHI,EAWJC,IAXI,CAWCC,iBAAiB;AACrBlB,UAAM,kCAAkCC,KAAKa,MAAL,CAAYK,GAApD;AACA,WAAOlB,IAAP;AACD,GAdI,CAAP;AAeD;;AAEM,SAASF,yBAAT,CAAoCE,IAApC,EAA0C;AAC/C,QAAMC,MAAMD,KAAKC,GAAjB;AACA,QAAMC,uBAAuBD,IAAIE,UAAJ,CAAe,gBAAf,CAA7B;;AAEA;AACA,SAAOD,qBAAqBiB,MAArB,CAA4BnB,KAAKa,MAAL,CAAYK,GAAZ,CAAgBE,QAAhB,EAA5B,EAAwD;AAC7DC,WAAO;AACL;AACAV,uBAAiBX,KAAKe,OAAL,CAAaO,YAAb,KAA8B,UAF1C;AAGLhB,aAAO;AAHF,KADsD;AAM7DE,UAAMR,KAAKS,MAAL,CAAYD,IAN2C;AAO7D;AACA;AACAI,cAAUZ,KAAKa,MAT8C;AAU7DC,sBAAkBd,KAAKe;AAVsC,GAAxD,EAYJC,IAZI,CAYCC,iBAAiB;AACrBlB,UAAM,oCAAoCC,KAAKa,MAAL,CAAYK,GAAtD;AACA,WAAOlB,IAAP;AACD,GAfI,CAAP;AAgBD","file":"hooks.groups.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import makeDebug from 'debug'\r\nconst debug = makeDebug('kdk:core:groups:hooks')\r\n\r\nexport function createGroupAuthorisations (hook) {\r\n const app = hook.app\r\n const authorisationService = app.getService('authorisations')\r\n const userService = app.getService('users')\r\n\r\n // Set membership for the owner\r\n return authorisationService.create({\r\n scope: 'groups',\r\n permissions: 'owner'\r\n }, {\r\n user: hook.params.user,\r\n // Because we already have subject/resource set it as objects to avoid populating\r\n subjects: [hook.params.user],\r\n subjectsService: userService,\r\n resource: hook.result,\r\n resourcesService: hook.service\r\n })\r\n .then(authorisation => {\r\n debug('Group ownership set for user ' + hook.result._id)\r\n return hook\r\n })\r\n}\r\n\r\nexport function removeGroupAuthorisations (hook) {\r\n const app = hook.app\r\n const authorisationService = app.getService('authorisations')\r\n\r\n // Unset membership for the all org users\r\n return authorisationService.remove(hook.result._id.toString(), {\r\n query: {\r\n // Use the organisation user service to only target org users\r\n subjectsService: hook.service.getContextId() + '/members',\r\n scope: 'groups'\r\n },\r\n user: hook.params.user,\r\n // Because we already have resource set it as objects to avoid populating\r\n // Moreover used as an after hook the resource might not already exist anymore\r\n resource: hook.result,\r\n resourcesService: hook.service\r\n })\r\n .then(authorisation => {\r\n debug('Authorisations unset for group ' + hook.result._id)\r\n return hook\r\n })\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b429f67abbe891f1c839871ae45789ca09976d00","contentHash":"1fe3c69d578cbd89e346f9f192216a1b506715d5b3217aacd535d5522fe6350a"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.logger.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.logger.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":18}},"2":{"start":{"line":9,"column":16},"end":{"line":9,"column":69}},"3":{"start":{"line":11,"column":2},"end":{"line":13,"column":3}},"4":{"start":{"line":12,"column":4},"end":{"line":12,"column":41}},"5":{"start":{"line":15,"column":2},"end":{"line":19,"column":3}},"6":{"start":{"line":16,"column":4},"end":{"line":16,"column":53}},"7":{"start":{"line":18,"column":4},"end":{"line":18,"column":35}},"8":{"start":{"line":24,"column":2},"end":{"line":31,"column":3}},"9":{"start":{"line":25,"column":4},"end":{"line":25,"column":50}},"10":{"start":{"line":26,"column":4},"end":{"line":26,"column":54}},"11":{"start":{"line":28,"column":4},"end":{"line":30,"column":5}},"12":{"start":{"line":29,"column":6},"end":{"line":29,"column":56}}},"fnMap":{"0":{"name":"log","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":19},"end":{"line":32,"column":1}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":2},"end":{"line":13,"column":3}},{"start":{"line":11,"column":2},"end":{"line":13,"column":3}}],"line":11},"1":{"loc":{"start":{"line":15,"column":2},"end":{"line":19,"column":3}},"type":"if","locations":[{"start":{"line":15,"column":2},"end":{"line":19,"column":3}},{"start":{"line":15,"column":2},"end":{"line":19,"column":3}}],"line":15},"2":{"loc":{"start":{"line":24,"column":2},"end":{"line":31,"column":3}},"type":"if","locations":[{"start":{"line":24,"column":2},"end":{"line":31,"column":3}},{"start":{"line":24,"column":2},"end":{"line":31,"column":3}}],"line":24},"3":{"loc":{"start":{"line":28,"column":4},"end":{"line":30,"column":5}},"type":"if","locations":[{"start":{"line":28,"column":4},"end":{"line":30,"column":5}},{"start":{"line":28,"column":4},"end":{"line":30,"column":5}}],"line":28}},"s":{"0":1,"1":1,"2":18,"3":18,"4":18,"5":18,"6":18,"7":0,"8":18,"9":0,"10":0,"11":0,"12":0},"f":{"0":18},"b":{"0":[18,0],"1":[18,0],"2":[0,18],"3":[0,0]},"inputSourceMap":{"version":3,"sources":["hooks.logger.js"],"names":["log","hook","message","type","path","method","error","app","logger","stack","debug","process","env","NODE_ENV","silly","data","params","result"],"mappings":";;;;;QACgBA,G,GAAAA,G;AADhB;AACO,SAASA,GAAT,CAAcC,IAAd,EAAoB;AACzB,MAAIC,UAAW,GAAED,KAAKE,IAAK,KAAIF,KAAKG,IAAK,cAAaH,KAAKI,MAAO,EAAlE;;AAEA,MAAIJ,KAAKE,IAAL,KAAc,OAAlB,EAA2B;AACzBD,eAAY,KAAID,KAAKK,KAAL,CAAWJ,OAAQ,EAAnC;AACD;;AAED,MAAID,KAAKK,KAAT,EAAgB;AACdL,SAAKM,GAAL,CAASC,MAAT,CAAgBF,KAAhB,CAAsBJ,OAAtB,EAA+BD,KAAKK,KAAL,CAAWG,KAA1C;AACD,GAFD,MAEO;AACLR,SAAKM,GAAL,CAASC,MAAT,CAAgBE,KAAhB,CAAsBR,OAAtB;AACD;;AAED;AACA;AACA;AACA,MAAIS,QAAQC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1CZ,SAAKM,GAAL,CAASC,MAAT,CAAgBM,KAAhB,CAAsB,WAAtB,EAAmCb,KAAKc,IAAxC;AACAd,SAAKM,GAAL,CAASC,MAAT,CAAgBM,KAAhB,CAAsB,aAAtB,EAAqCb,KAAKe,MAA1C;;AAEA,QAAIf,KAAKgB,MAAT,EAAiB;AACfhB,WAAKM,GAAL,CAASC,MAAT,CAAgBM,KAAhB,CAAsB,aAAtB,EAAqCb,KAAKgB,MAA1C;AACD;AACF;AACF","file":"hooks.logger.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["// A hook that logs service method before, after and error\r\nexport function log (hook) {\r\n let message = `${hook.type}: ${hook.path} - Method: ${hook.method}`\r\n\r\n if (hook.type === 'error') {\r\n message += `: ${hook.error.message}`\r\n }\r\n\r\n if (hook.error) {\r\n hook.app.logger.error(message, hook.error.stack)\r\n } else {\r\n hook.app.logger.debug(message)\r\n }\r\n\r\n // Required as the logger causes high CPU usage to serialize messages\r\n // even if the current log level should discard it\r\n // See https://github.com/kalisio/kdk/issues/287\r\n if (process.env.NODE_ENV === 'development') {\r\n hook.app.logger.silly('hook.data', hook.data)\r\n hook.app.logger.silly('hook.params', hook.params)\r\n\r\n if (hook.result) {\r\n hook.app.logger.silly('hook.result', hook.result)\r\n }\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1e1ed63c03d12b8500d93d0c8b55ed91c06e8364","contentHash":"622c249a4d5b5f659f4d8a49d7ba6b60d2a79bb21fa73230546b82d88b6f721c"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.model.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.model.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":62}},"2":{"start":{"line":8,"column":29},"end":{"line":26,"column":4}},"3":{"start":{"line":9,"column":13},"end":{"line":21,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"5":{"start":{"line":11,"column":6},"end":{"line":11,"column":103}},"6":{"start":{"line":13,"column":17},"end":{"line":13,"column":57}},"7":{"start":{"line":14,"column":15},"end":{"line":14,"column":43}},"8":{"start":{"line":16,"column":4},"end":{"line":19,"column":5}},"9":{"start":{"line":17,"column":6},"end":{"line":17,"column":71}},"10":{"start":{"line":18,"column":6},"end":{"line":18,"column":67}},"11":{"start":{"line":20,"column":4},"end":{"line":20,"column":16}},"12":{"start":{"line":23,"column":2},"end":{"line":25,"column":4}},"13":{"start":{"line":24,"column":4},"end":{"line":24,"column":39}},"14":{"start":{"line":29,"column":15},"end":{"line":42,"column":4}},"15":{"start":{"line":30,"column":14},"end":{"line":37,"column":4}},"16":{"start":{"line":31,"column":19},"end":{"line":31,"column":30}},"17":{"start":{"line":32,"column":18},"end":{"line":32,"column":30}},"18":{"start":{"line":33,"column":4},"end":{"line":33,"column":38}},"19":{"start":{"line":33,"column":26},"end":{"line":33,"column":38}},"20":{"start":{"line":34,"column":23},"end":{"line":34,"column":41}},"21":{"start":{"line":35,"column":4},"end":{"line":35,"column":106}},"22":{"start":{"line":36,"column":4},"end":{"line":36,"column":16}},"23":{"start":{"line":39,"column":2},"end":{"line":41,"column":4}},"24":{"start":{"line":40,"column":4},"end":{"line":40,"column":40}},"25":{"start":{"line":47,"column":0},"end":{"line":47,"column":36}},"26":{"start":{"line":48,"column":0},"end":{"line":48,"column":40}},"27":{"start":{"line":49,"column":0},"end":{"line":49,"column":50}},"28":{"start":{"line":50,"column":0},"end":{"line":50,"column":62}},"29":{"start":{"line":51,"column":0},"end":{"line":51,"column":30}},"30":{"start":{"line":52,"column":0},"end":{"line":52,"column":44}},"31":{"start":{"line":53,"column":0},"end":{"line":53,"column":44}},"32":{"start":{"line":54,"column":0},"end":{"line":54,"column":26}},"33":{"start":{"line":55,"column":0},"end":{"line":55,"column":36}},"34":{"start":{"line":56,"column":0},"end":{"line":56,"column":24}},"35":{"start":{"line":57,"column":0},"end":{"line":57,"column":38}},"36":{"start":{"line":58,"column":0},"end":{"line":58,"column":28}},"37":{"start":{"line":59,"column":0},"end":{"line":59,"column":42}},"38":{"start":{"line":60,"column":0},"end":{"line":60,"column":36}},"39":{"start":{"line":61,"column":0},"end":{"line":61,"column":40}},"40":{"start":{"line":62,"column":0},"end":{"line":62,"column":34}},"41":{"start":{"line":64,"column":14},"end":{"line":64,"column":31}},"42":{"start":{"line":66,"column":15},"end":{"line":66,"column":46}},"43":{"start":{"line":68,"column":14},"end":{"line":68,"column":31}},"44":{"start":{"line":70,"column":15},"end":{"line":70,"column":46}},"45":{"start":{"line":72,"column":14},"end":{"line":72,"column":43}},"46":{"start":{"line":74,"column":10},"end":{"line":74,"column":26}},"47":{"start":{"line":76,"column":16},"end":{"line":76,"column":38}},"48":{"start":{"line":78,"column":27},"end":{"line":78,"column":59}},"49":{"start":{"line":80,"column":13},"end":{"line":80,"column":29}},"50":{"start":{"line":82,"column":14},"end":{"line":82,"column":44}},"51":{"start":{"line":84,"column":39},"end":{"line":84,"column":93}},"52":{"start":{"line":86,"column":33},"end":{"line":86,"column":456}},"53":{"start":{"line":86,"column":64},"end":{"line":86,"column":89}},"54":{"start":{"line":86,"column":91},"end":{"line":86,"column":453}},"55":{"start":{"line":86,"column":165},"end":{"line":86,"column":263}},"56":{"start":{"line":86,"column":182},"end":{"line":86,"column":195}},"57":{"start":{"line":86,"column":209},"end":{"line":86,"column":219}},"58":{"start":{"line":86,"column":239},"end":{"line":86,"column":253}},"59":{"start":{"line":86,"column":254},"end":{"line":86,"column":261}},"60":{"start":{"line":86,"column":264},"end":{"line":86,"column":426}},"61":{"start":{"line":86,"column":281},"end":{"line":86,"column":296}},"62":{"start":{"line":86,"column":306},"end":{"line":86,"column":424}},"63":{"start":{"line":86,"column":360},"end":{"line":86,"column":380}},"64":{"start":{"line":86,"column":401},"end":{"line":86,"column":420}},"65":{"start":{"line":86,"column":429},"end":{"line":86,"column":449}},"66":{"start":{"line":88,"column":14},"end":{"line":88,"column":58}},"67":{"start":{"line":92,"column":2},"end":{"line":99,"column":4}},"68":{"start":{"line":93,"column":16},"end":{"line":93,"column":56}},"69":{"start":{"line":94,"column":20},"end":{"line":94,"column":40}},"70":{"start":{"line":95,"column":4},"end":{"line":95,"column":38}},"71":{"start":{"line":96,"column":4},"end":{"line":96,"column":74}},"72":{"start":{"line":96,"column":26},"end":{"line":96,"column":72}},"73":{"start":{"line":97,"column":4},"end":{"line":97,"column":77}},"74":{"start":{"line":98,"column":4},"end":{"line":98,"column":16}},"75":{"start":{"line":104,"column":2},"end":{"line":111,"column":4}},"76":{"start":{"line":105,"column":16},"end":{"line":105,"column":56}},"77":{"start":{"line":106,"column":20},"end":{"line":106,"column":40}},"78":{"start":{"line":107,"column":4},"end":{"line":107,"column":38}},"79":{"start":{"line":108,"column":4},"end":{"line":108,"column":76}},"80":{"start":{"line":108,"column":26},"end":{"line":108,"column":74}},"81":{"start":{"line":109,"column":4},"end":{"line":109,"column":77}},"82":{"start":{"line":110,"column":4},"end":{"line":110,"column":16}},"83":{"start":{"line":115,"column":17},"end":{"line":115,"column":28}},"84":{"start":{"line":116,"column":16},"end":{"line":116,"column":28}},"85":{"start":{"line":117,"column":18},"end":{"line":117,"column":30}},"86":{"start":{"line":120,"column":2},"end":{"line":120,"column":64}},"87":{"start":{"line":120,"column":57},"end":{"line":120,"column":64}},"88":{"start":{"line":123,"column":2},"end":{"line":141,"column":5}},"89":{"start":{"line":125,"column":28},"end":{"line":125,"column":32}},"90":{"start":{"line":126,"column":4},"end":{"line":137,"column":5}},"91":{"start":{"line":128,"column":29},"end":{"line":128,"column":96}},"92":{"start":{"line":129,"column":6},"end":{"line":136,"column":7}},"93":{"start":{"line":130,"column":8},"end":{"line":135,"column":11}},"94":{"start":{"line":132,"column":10},"end":{"line":134,"column":11}},"95":{"start":{"line":133,"column":12},"end":{"line":133,"column":38}},"96":{"start":{"line":138,"column":4},"end":{"line":140,"column":5}},"97":{"start":{"line":139,"column":6},"end":{"line":139,"column":59}},"98":{"start":{"line":147,"column":18},"end":{"line":147,"column":30}},"99":{"start":{"line":150,"column":2},"end":{"line":150,"column":64}},"100":{"start":{"line":150,"column":57},"end":{"line":150,"column":64}},"101":{"start":{"line":152,"column":2},"end":{"line":152,"column":45}},"102":{"start":{"line":161,"column":2},"end":{"line":182,"column":4}},"103":{"start":{"line":163,"column":16},"end":{"line":163,"column":56}},"104":{"start":{"line":164,"column":20},"end":{"line":164,"column":40}},"105":{"start":{"line":165,"column":4},"end":{"line":165,"column":38}},"106":{"start":{"line":167,"column":4},"end":{"line":179,"column":7}},"107":{"start":{"line":168,"column":6},"end":{"line":178,"column":9}},"108":{"start":{"line":169,"column":23},"end":{"line":169,"column":62}},"109":{"start":{"line":170,"column":8},"end":{"line":177,"column":9}},"110":{"start":{"line":171,"column":10},"end":{"line":171,"column":58}},"111":{"start":{"line":172,"column":10},"end":{"line":174,"column":11}},"112":{"start":{"line":173,"column":12},"end":{"line":173,"column":54}},"113":{"start":{"line":175,"column":15},"end":{"line":177,"column":9}},"114":{"start":{"line":176,"column":10},"end":{"line":176,"column":87}},"115":{"start":{"line":181,"column":4},"end":{"line":181,"column":77}},"116":{"start":{"line":188,"column":14},"end":{"line":188,"column":54}},"117":{"start":{"line":189,"column":18},"end":{"line":189,"column":38}},"118":{"start":{"line":190,"column":2},"end":{"line":190,"column":36}},"119":{"start":{"line":191,"column":2},"end":{"line":191,"column":53}},"120":{"start":{"line":191,"column":24},"end":{"line":191,"column":51}},"121":{"start":{"line":192,"column":2},"end":{"line":192,"column":75}},"122":{"start":{"line":194,"column":2},"end":{"line":194,"column":66}},"123":{"start":{"line":194,"column":25},"end":{"line":194,"column":66}},"124":{"start":{"line":196,"column":2},"end":{"line":196,"column":14}},"125":{"start":{"line":202,"column":2},"end":{"line":212,"column":4}},"126":{"start":{"line":203,"column":16},"end":{"line":203,"column":56}},"127":{"start":{"line":204,"column":20},"end":{"line":204,"column":40}},"128":{"start":{"line":205,"column":4},"end":{"line":205,"column":38}},"129":{"start":{"line":206,"column":4},"end":{"line":206,"column":66}},"130":{"start":{"line":206,"column":26},"end":{"line":206,"column":64}},"131":{"start":{"line":207,"column":4},"end":{"line":207,"column":77}},"132":{"start":{"line":209,"column":4},"end":{"line":209,"column":79}},"133":{"start":{"line":209,"column":27},"end":{"line":209,"column":79}},"134":{"start":{"line":211,"column":4},"end":{"line":211,"column":16}},"135":{"start":{"line":217,"column":2},"end":{"line":229,"column":5}},"136":{"start":{"line":218,"column":15},"end":{"line":218,"column":53}},"137":{"start":{"line":219,"column":4},"end":{"line":228,"column":5}},"138":{"start":{"line":221,"column":6},"end":{"line":221,"column":40}},"139":{"start":{"line":222,"column":6},"end":{"line":227,"column":7}},"140":{"start":{"line":223,"column":8},"end":{"line":225,"column":9}},"141":{"start":{"line":224,"column":10},"end":{"line":224,"column":31}},"142":{"start":{"line":226,"column":8},"end":{"line":226,"column":53}},"143":{"start":{"line":235,"column":2},"end":{"line":244,"column":4}},"144":{"start":{"line":236,"column":16},"end":{"line":236,"column":56}},"145":{"start":{"line":237,"column":20},"end":{"line":237,"column":40}},"146":{"start":{"line":238,"column":4},"end":{"line":238,"column":38}},"147":{"start":{"line":239,"column":4},"end":{"line":239,"column":63}},"148":{"start":{"line":239,"column":26},"end":{"line":239,"column":61}},"149":{"start":{"line":240,"column":4},"end":{"line":240,"column":77}},"150":{"start":{"line":242,"column":4},"end":{"line":242,"column":76}},"151":{"start":{"line":242,"column":27},"end":{"line":242,"column":76}},"152":{"start":{"line":243,"column":4},"end":{"line":243,"column":16}},"153":{"start":{"line":249,"column":2},"end":{"line":255,"column":5}},"154":{"start":{"line":250,"column":19},"end":{"line":250,"column":57}},"155":{"start":{"line":251,"column":4},"end":{"line":254,"column":5}},"156":{"start":{"line":252,"column":19},"end":{"line":252,"column":37}},"157":{"start":{"line":253,"column":6},"end":{"line":253,"column":51}},"158":{"start":{"line":260,"column":2},"end":{"line":268,"column":4}},"159":{"start":{"line":261,"column":16},"end":{"line":261,"column":56}},"160":{"start":{"line":262,"column":20},"end":{"line":262,"column":40}},"161":{"start":{"line":263,"column":4},"end":{"line":263,"column":38}},"162":{"start":{"line":264,"column":4},"end":{"line":264,"column":52}},"163":{"start":{"line":264,"column":26},"end":{"line":264,"column":50}},"164":{"start":{"line":265,"column":4},"end":{"line":265,"column":77}},"165":{"start":{"line":267,"column":4},"end":{"line":267,"column":16}},"166":{"start":{"line":273,"column":2},"end":{"line":276,"column":5}},"167":{"start":{"line":274,"column":17},"end":{"line":274,"column":55}},"168":{"start":{"line":275,"column":4},"end":{"line":275,"column":103}},"169":{"start":{"line":275,"column":42},"end":{"line":275,"column":103}},"170":{"start":{"line":281,"column":2},"end":{"line":289,"column":4}},"171":{"start":{"line":282,"column":16},"end":{"line":282,"column":56}},"172":{"start":{"line":283,"column":20},"end":{"line":283,"column":40}},"173":{"start":{"line":284,"column":4},"end":{"line":284,"column":38}},"174":{"start":{"line":285,"column":4},"end":{"line":285,"column":54}},"175":{"start":{"line":285,"column":26},"end":{"line":285,"column":52}},"176":{"start":{"line":286,"column":4},"end":{"line":286,"column":77}},"177":{"start":{"line":288,"column":4},"end":{"line":288,"column":16}},"178":{"start":{"line":294,"column":14},"end":{"line":294,"column":54}},"179":{"start":{"line":295,"column":18},"end":{"line":295,"column":38}},"180":{"start":{"line":296,"column":2},"end":{"line":296,"column":36}},"181":{"start":{"line":298,"column":2},"end":{"line":298,"column":69}},"182":{"start":{"line":298,"column":24},"end":{"line":298,"column":67}},"183":{"start":{"line":300,"column":2},"end":{"line":300,"column":75}},"184":{"start":{"line":301,"column":2},"end":{"line":301,"column":14}},"185":{"start":{"line":305,"column":2},"end":{"line":319,"column":4}},"186":{"start":{"line":306,"column":4},"end":{"line":308,"column":5}},"187":{"start":{"line":307,"column":6},"end":{"line":307,"column":95}},"188":{"start":{"line":310,"column":16},"end":{"line":310,"column":56}},"189":{"start":{"line":311,"column":20},"end":{"line":311,"column":40}},"190":{"start":{"line":312,"column":4},"end":{"line":312,"column":38}},"191":{"start":{"line":314,"column":17},"end":{"line":314,"column":61}},"192":{"start":{"line":315,"column":4},"end":{"line":315,"column":72}},"193":{"start":{"line":315,"column":26},"end":{"line":315,"column":70}},"194":{"start":{"line":317,"column":4},"end":{"line":317,"column":77}},"195":{"start":{"line":318,"column":4},"end":{"line":318,"column":16}},"196":{"start":{"line":321,"column":2},"end":{"line":353,"column":7}},"197":{"start":{"line":322,"column":16},"end":{"line":348,"column":6}},"198":{"start":{"line":323,"column":22},"end":{"line":323,"column":91}},"199":{"start":{"line":324,"column":20},"end":{"line":324,"column":43}},"200":{"start":{"line":325,"column":17},"end":{"line":325,"column":60}},"201":{"start":{"line":327,"column":6},"end":{"line":346,"column":7}},"202":{"start":{"line":328,"column":22},"end":{"line":330,"column":9}},"203":{"start":{"line":330,"column":10},"end":{"line":330,"column":78}},"204":{"start":{"line":330,"column":51},"end":{"line":330,"column":78}},"205":{"start":{"line":331,"column":23},"end":{"line":331,"column":52}},"206":{"start":{"line":333,"column":22},"end":{"line":333,"column":74}},"207":{"start":{"line":334,"column":8},"end":{"line":345,"column":9}},"208":{"start":{"line":335,"column":24},"end":{"line":339,"column":12}},"209":{"start":{"line":341,"column":10},"end":{"line":341,"column":52}},"210":{"start":{"line":341,"column":40},"end":{"line":341,"column":52}},"211":{"start":{"line":343,"column":25},"end":{"line":343,"column":75}},"212":{"start":{"line":344,"column":10},"end":{"line":344,"column":72}},"213":{"start":{"line":344,"column":60},"end":{"line":344,"column":72}},"214":{"start":{"line":347,"column":6},"end":{"line":347,"column":18}},"215":{"start":{"line":350,"column":4},"end":{"line":352,"column":6}},"216":{"start":{"line":351,"column":6},"end":{"line":351,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":63},"end":{"line":8,"column":64}},"loc":{"start":{"line":8,"column":69},"end":{"line":26,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":48},"end":{"line":21,"column":3}},"line":9},"2":{"name":"populatePreviousObject","decl":{"start":{"line":23,"column":18},"end":{"line":23,"column":40}},"loc":{"start":{"line":23,"column":45},"end":{"line":25,"column":3}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":29,"column":35},"end":{"line":29,"column":36}},"loc":{"start":{"line":29,"column":41},"end":{"line":42,"column":1}},"line":29},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":32},"end":{"line":30,"column":33}},"loc":{"start":{"line":30,"column":49},"end":{"line":37,"column":3}},"line":30},"5":{"name":"distinct","decl":{"start":{"line":39,"column":18},"end":{"line":39,"column":26}},"loc":{"start":{"line":39,"column":32},"end":{"line":41,"column":3}},"line":39},"6":{"name":"_interopRequireDefault","decl":{"start":{"line":84,"column":9},"end":{"line":84,"column":31}},"loc":{"start":{"line":84,"column":37},"end":{"line":84,"column":95}},"line":84},"7":{"name":"_asyncToGenerator","decl":{"start":{"line":86,"column":9},"end":{"line":86,"column":26}},"loc":{"start":{"line":86,"column":31},"end":{"line":86,"column":458}},"line":86},"8":{"name":"(anonymous_8)","decl":{"start":{"line":86,"column":40},"end":{"line":86,"column":41}},"loc":{"start":{"line":86,"column":52},"end":{"line":86,"column":455}},"line":86},"9":{"name":"(anonymous_9)","decl":{"start":{"line":86,"column":110},"end":{"line":86,"column":111}},"loc":{"start":{"line":86,"column":137},"end":{"line":86,"column":451}},"line":86},"10":{"name":"step","decl":{"start":{"line":86,"column":148},"end":{"line":86,"column":152}},"loc":{"start":{"line":86,"column":163},"end":{"line":86,"column":428}},"line":86},"11":{"name":"(anonymous_11)","decl":{"start":{"line":86,"column":341},"end":{"line":86,"column":342}},"loc":{"start":{"line":86,"column":358},"end":{"line":86,"column":382}},"line":86},"12":{"name":"(anonymous_12)","decl":{"start":{"line":86,"column":384},"end":{"line":86,"column":385}},"loc":{"start":{"line":86,"column":399},"end":{"line":86,"column":422}},"line":86},"13":{"name":"processTimes","decl":{"start":{"line":91,"column":9},"end":{"line":91,"column":21}},"loc":{"start":{"line":91,"column":34},"end":{"line":100,"column":1}},"line":91},"14":{"name":"(anonymous_14)","decl":{"start":{"line":92,"column":9},"end":{"line":92,"column":10}},"loc":{"start":{"line":92,"column":25},"end":{"line":99,"column":3}},"line":92},"15":{"name":"(anonymous_15)","decl":{"start":{"line":96,"column":18},"end":{"line":96,"column":19}},"loc":{"start":{"line":96,"column":26},"end":{"line":96,"column":72}},"line":96},"16":{"name":"unprocessTimes","decl":{"start":{"line":103,"column":9},"end":{"line":103,"column":23}},"loc":{"start":{"line":103,"column":36},"end":{"line":112,"column":1}},"line":103},"17":{"name":"(anonymous_17)","decl":{"start":{"line":104,"column":9},"end":{"line":104,"column":10}},"loc":{"start":{"line":104,"column":25},"end":{"line":111,"column":3}},"line":104},"18":{"name":"(anonymous_18)","decl":{"start":{"line":108,"column":18},"end":{"line":108,"column":19}},"loc":{"start":{"line":108,"column":26},"end":{"line":108,"column":74}},"line":108},"19":{"name":"processPerspectives","decl":{"start":{"line":114,"column":9},"end":{"line":114,"column":28}},"loc":{"start":{"line":114,"column":35},"end":{"line":142,"column":1}},"line":114},"20":{"name":"(anonymous_20)","decl":{"start":{"line":123,"column":39},"end":{"line":123,"column":40}},"loc":{"start":{"line":123,"column":54},"end":{"line":141,"column":3}},"line":123},"21":{"name":"(anonymous_21)","decl":{"start":{"line":130,"column":31},"end":{"line":130,"column":32}},"loc":{"start":{"line":130,"column":40},"end":{"line":135,"column":9}},"line":130},"22":{"name":"preventUpdatePerspectives","decl":{"start":{"line":146,"column":9},"end":{"line":146,"column":34}},"loc":{"start":{"line":146,"column":41},"end":{"line":153,"column":1}},"line":146},"23":{"name":"serialize","decl":{"start":{"line":160,"column":9},"end":{"line":160,"column":18}},"loc":{"start":{"line":160,"column":40},"end":{"line":183,"column":1}},"line":160},"24":{"name":"(anonymous_24)","decl":{"start":{"line":161,"column":9},"end":{"line":161,"column":10}},"loc":{"start":{"line":161,"column":25},"end":{"line":182,"column":3}},"line":161},"25":{"name":"(anonymous_25)","decl":{"start":{"line":167,"column":18},"end":{"line":167,"column":19}},"loc":{"start":{"line":167,"column":26},"end":{"line":179,"column":5}},"line":167},"26":{"name":"(anonymous_26)","decl":{"start":{"line":168,"column":20},"end":{"line":168,"column":21}},"loc":{"start":{"line":168,"column":28},"end":{"line":178,"column":7}},"line":168},"27":{"name":"processObjectIDs","decl":{"start":{"line":187,"column":9},"end":{"line":187,"column":25}},"loc":{"start":{"line":187,"column":32},"end":{"line":197,"column":1}},"line":187},"28":{"name":"(anonymous_28)","decl":{"start":{"line":191,"column":16},"end":{"line":191,"column":17}},"loc":{"start":{"line":191,"column":24},"end":{"line":191,"column":51}},"line":191},"29":{"name":"convertObjectIDs","decl":{"start":{"line":201,"column":9},"end":{"line":201,"column":25}},"loc":{"start":{"line":201,"column":38},"end":{"line":213,"column":1}},"line":201},"30":{"name":"(anonymous_30)","decl":{"start":{"line":202,"column":9},"end":{"line":202,"column":10}},"loc":{"start":{"line":202,"column":25},"end":{"line":212,"column":3}},"line":202},"31":{"name":"(anonymous_31)","decl":{"start":{"line":206,"column":18},"end":{"line":206,"column":19}},"loc":{"start":{"line":206,"column":26},"end":{"line":206,"column":64}},"line":206},"32":{"name":"toDates","decl":{"start":{"line":216,"column":9},"end":{"line":216,"column":16}},"loc":{"start":{"line":216,"column":47},"end":{"line":230,"column":1}},"line":216},"33":{"name":"(anonymous_33)","decl":{"start":{"line":217,"column":21},"end":{"line":217,"column":22}},"loc":{"start":{"line":217,"column":33},"end":{"line":229,"column":3}},"line":217},"34":{"name":"convertDates","decl":{"start":{"line":234,"column":9},"end":{"line":234,"column":21}},"loc":{"start":{"line":234,"column":44},"end":{"line":245,"column":1}},"line":234},"35":{"name":"(anonymous_35)","decl":{"start":{"line":235,"column":9},"end":{"line":235,"column":10}},"loc":{"start":{"line":235,"column":25},"end":{"line":244,"column":3}},"line":235},"36":{"name":"(anonymous_36)","decl":{"start":{"line":239,"column":18},"end":{"line":239,"column":19}},"loc":{"start":{"line":239,"column":26},"end":{"line":239,"column":61}},"line":239},"37":{"name":"toJson","decl":{"start":{"line":248,"column":9},"end":{"line":248,"column":15}},"loc":{"start":{"line":248,"column":36},"end":{"line":256,"column":1}},"line":248},"38":{"name":"(anonymous_38)","decl":{"start":{"line":249,"column":21},"end":{"line":249,"column":22}},"loc":{"start":{"line":249,"column":33},"end":{"line":255,"column":3}},"line":249},"39":{"name":"convertToJson","decl":{"start":{"line":259,"column":9},"end":{"line":259,"column":22}},"loc":{"start":{"line":259,"column":35},"end":{"line":269,"column":1}},"line":259},"40":{"name":"(anonymous_40)","decl":{"start":{"line":260,"column":9},"end":{"line":260,"column":10}},"loc":{"start":{"line":260,"column":25},"end":{"line":268,"column":3}},"line":260},"41":{"name":"(anonymous_41)","decl":{"start":{"line":264,"column":18},"end":{"line":264,"column":19}},"loc":{"start":{"line":264,"column":26},"end":{"line":264,"column":50}},"line":264},"42":{"name":"toString","decl":{"start":{"line":272,"column":9},"end":{"line":272,"column":17}},"loc":{"start":{"line":272,"column":38},"end":{"line":277,"column":1}},"line":272},"43":{"name":"(anonymous_43)","decl":{"start":{"line":273,"column":21},"end":{"line":273,"column":22}},"loc":{"start":{"line":273,"column":33},"end":{"line":276,"column":3}},"line":273},"44":{"name":"convertToString","decl":{"start":{"line":280,"column":9},"end":{"line":280,"column":24}},"loc":{"start":{"line":280,"column":37},"end":{"line":290,"column":1}},"line":280},"45":{"name":"(anonymous_45)","decl":{"start":{"line":281,"column":9},"end":{"line":281,"column":10}},"loc":{"start":{"line":281,"column":25},"end":{"line":289,"column":3}},"line":281},"46":{"name":"(anonymous_46)","decl":{"start":{"line":285,"column":18},"end":{"line":285,"column":19}},"loc":{"start":{"line":285,"column":26},"end":{"line":285,"column":52}},"line":285},"47":{"name":"setAsDeleted","decl":{"start":{"line":292,"column":9},"end":{"line":292,"column":21}},"loc":{"start":{"line":292,"column":28},"end":{"line":302,"column":1}},"line":292},"48":{"name":"(anonymous_48)","decl":{"start":{"line":298,"column":16},"end":{"line":298,"column":17}},"loc":{"start":{"line":298,"column":24},"end":{"line":298,"column":67}},"line":298},"49":{"name":"setExpireAfter","decl":{"start":{"line":304,"column":9},"end":{"line":304,"column":23}},"loc":{"start":{"line":304,"column":40},"end":{"line":320,"column":1}},"line":304},"50":{"name":"(anonymous_50)","decl":{"start":{"line":305,"column":9},"end":{"line":305,"column":10}},"loc":{"start":{"line":305,"column":25},"end":{"line":319,"column":3}},"line":305},"51":{"name":"(anonymous_51)","decl":{"start":{"line":315,"column":18},"end":{"line":315,"column":19}},"loc":{"start":{"line":315,"column":26},"end":{"line":315,"column":70}},"line":315},"52":{"name":"checkUnique","decl":{"start":{"line":320,"column":10},"end":{"line":320,"column":21}},"loc":{"start":{"line":320,"column":36},"end":{"line":354,"column":1}},"line":320},"53":{"name":"(anonymous_53)","decl":{"start":{"line":321,"column":10},"end":{"line":321,"column":11}},"loc":{"start":{"line":321,"column":16},"end":{"line":353,"column":3}},"line":321},"54":{"name":"(anonymous_54)","decl":{"start":{"line":322,"column":34},"end":{"line":322,"column":35}},"loc":{"start":{"line":322,"column":51},"end":{"line":348,"column":5}},"line":322},"55":{"name":"(anonymous_55)","decl":{"start":{"line":350,"column":11},"end":{"line":350,"column":12}},"loc":{"start":{"line":350,"column":26},"end":{"line":352,"column":5}},"line":350}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},{"start":{"line":10,"column":4},"end":{"line":12,"column":5}}],"line":10},"1":{"loc":{"start":{"line":14,"column":15},"end":{"line":14,"column":43}},"type":"cond-expr","locations":[{"start":{"line":14,"column":25},"end":{"line":14,"column":32}},{"start":{"line":14,"column":35},"end":{"line":14,"column":43}}],"line":14},"2":{"loc":{"start":{"line":16,"column":4},"end":{"line":19,"column":5}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":19,"column":5}},{"start":{"line":16,"column":4},"end":{"line":19,"column":5}}],"line":16},"3":{"loc":{"start":{"line":33,"column":4},"end":{"line":33,"column":38}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":33,"column":38}},{"start":{"line":33,"column":4},"end":{"line":33,"column":38}}],"line":33},"4":{"loc":{"start":{"line":84,"column":46},"end":{"line":84,"column":92}},"type":"cond-expr","locations":[{"start":{"line":84,"column":70},"end":{"line":84,"column":73}},{"start":{"line":84,"column":76},"end":{"line":84,"column":92}}],"line":84},"5":{"loc":{"start":{"line":84,"column":46},"end":{"line":84,"column":67}},"type":"binary-expr","locations":[{"start":{"line":84,"column":46},"end":{"line":84,"column":49}},{"start":{"line":84,"column":53},"end":{"line":84,"column":67}}],"line":84},"6":{"loc":{"start":{"line":86,"column":264},"end":{"line":86,"column":426}},"type":"if","locations":[{"start":{"line":86,"column":264},"end":{"line":86,"column":426}},{"start":{"line":86,"column":264},"end":{"line":86,"column":426}}],"line":86},"7":{"loc":{"start":{"line":95,"column":12},"end":{"line":95,"column":37}},"type":"cond-expr","locations":[{"start":{"line":95,"column":22},"end":{"line":95,"column":27}},{"start":{"line":95,"column":30},"end":{"line":95,"column":37}}],"line":95},"8":{"loc":{"start":{"line":97,"column":49},"end":{"line":97,"column":75}},"type":"cond-expr","locations":[{"start":{"line":97,"column":59},"end":{"line":97,"column":64}},{"start":{"line":97,"column":67},"end":{"line":97,"column":75}}],"line":97},"9":{"loc":{"start":{"line":107,"column":12},"end":{"line":107,"column":37}},"type":"cond-expr","locations":[{"start":{"line":107,"column":22},"end":{"line":107,"column":27}},{"start":{"line":107,"column":30},"end":{"line":107,"column":37}}],"line":107},"10":{"loc":{"start":{"line":109,"column":49},"end":{"line":109,"column":75}},"type":"cond-expr","locations":[{"start":{"line":109,"column":59},"end":{"line":109,"column":64}},{"start":{"line":109,"column":67},"end":{"line":109,"column":75}}],"line":109},"11":{"loc":{"start":{"line":120,"column":2},"end":{"line":120,"column":64}},"type":"if","locations":[{"start":{"line":120,"column":2},"end":{"line":120,"column":64}},{"start":{"line":120,"column":2},"end":{"line":120,"column":64}}],"line":120},"12":{"loc":{"start":{"line":120,"column":6},"end":{"line":120,"column":55}},"type":"binary-expr","locations":[{"start":{"line":120,"column":6},"end":{"line":120,"column":22}},{"start":{"line":120,"column":26},"end":{"line":120,"column":55}}],"line":120},"13":{"loc":{"start":{"line":126,"column":4},"end":{"line":137,"column":5}},"type":"if","locations":[{"start":{"line":126,"column":4},"end":{"line":137,"column":5}},{"start":{"line":126,"column":4},"end":{"line":137,"column":5}}],"line":126},"14":{"loc":{"start":{"line":126,"column":8},"end":{"line":126,"column":80}},"type":"binary-expr","locations":[{"start":{"line":126,"column":8},"end":{"line":126,"column":38}},{"start":{"line":126,"column":42},"end":{"line":126,"column":80}}],"line":126},"15":{"loc":{"start":{"line":128,"column":29},"end":{"line":128,"column":96}},"type":"cond-expr","locations":[{"start":{"line":128,"column":65},"end":{"line":128,"column":80}},{"start":{"line":128,"column":83},"end":{"line":128,"column":96}}],"line":128},"16":{"loc":{"start":{"line":129,"column":6},"end":{"line":136,"column":7}},"type":"if","locations":[{"start":{"line":129,"column":6},"end":{"line":136,"column":7}},{"start":{"line":129,"column":6},"end":{"line":136,"column":7}}],"line":129},"17":{"loc":{"start":{"line":132,"column":10},"end":{"line":134,"column":11}},"type":"if","locations":[{"start":{"line":132,"column":10},"end":{"line":134,"column":11}},{"start":{"line":132,"column":10},"end":{"line":134,"column":11}}],"line":132},"18":{"loc":{"start":{"line":132,"column":14},"end":{"line":132,"column":74}},"type":"binary-expr","locations":[{"start":{"line":132,"column":14},"end":{"line":132,"column":35}},{"start":{"line":132,"column":39},"end":{"line":132,"column":74}}],"line":132},"19":{"loc":{"start":{"line":138,"column":4},"end":{"line":140,"column":5}},"type":"if","locations":[{"start":{"line":138,"column":4},"end":{"line":140,"column":5}},{"start":{"line":138,"column":4},"end":{"line":140,"column":5}}],"line":138},"20":{"loc":{"start":{"line":150,"column":2},"end":{"line":150,"column":64}},"type":"if","locations":[{"start":{"line":150,"column":2},"end":{"line":150,"column":64}},{"start":{"line":150,"column":2},"end":{"line":150,"column":64}}],"line":150},"21":{"loc":{"start":{"line":150,"column":6},"end":{"line":150,"column":55}},"type":"binary-expr","locations":[{"start":{"line":150,"column":6},"end":{"line":150,"column":22}},{"start":{"line":150,"column":26},"end":{"line":150,"column":55}}],"line":150},"22":{"loc":{"start":{"line":160,"column":26},"end":{"line":160,"column":38}},"type":"default-arg","locations":[{"start":{"line":160,"column":36},"end":{"line":160,"column":38}}],"line":160},"23":{"loc":{"start":{"line":165,"column":12},"end":{"line":165,"column":37}},"type":"cond-expr","locations":[{"start":{"line":165,"column":22},"end":{"line":165,"column":27}},{"start":{"line":165,"column":30},"end":{"line":165,"column":37}}],"line":165},"24":{"loc":{"start":{"line":170,"column":8},"end":{"line":177,"column":9}},"type":"if","locations":[{"start":{"line":170,"column":8},"end":{"line":177,"column":9}},{"start":{"line":170,"column":8},"end":{"line":177,"column":9}}],"line":170},"25":{"loc":{"start":{"line":172,"column":10},"end":{"line":174,"column":11}},"type":"if","locations":[{"start":{"line":172,"column":10},"end":{"line":174,"column":11}},{"start":{"line":172,"column":10},"end":{"line":174,"column":11}}],"line":172},"26":{"loc":{"start":{"line":175,"column":15},"end":{"line":177,"column":9}},"type":"if","locations":[{"start":{"line":175,"column":15},"end":{"line":177,"column":9}},{"start":{"line":175,"column":15},"end":{"line":177,"column":9}}],"line":175},"27":{"loc":{"start":{"line":175,"column":19},"end":{"line":175,"column":66}},"type":"binary-expr","locations":[{"start":{"line":175,"column":19},"end":{"line":175,"column":42}},{"start":{"line":175,"column":46},"end":{"line":175,"column":66}}],"line":175},"28":{"loc":{"start":{"line":181,"column":49},"end":{"line":181,"column":75}},"type":"cond-expr","locations":[{"start":{"line":181,"column":59},"end":{"line":181,"column":64}},{"start":{"line":181,"column":67},"end":{"line":181,"column":75}}],"line":181},"29":{"loc":{"start":{"line":190,"column":10},"end":{"line":190,"column":35}},"type":"cond-expr","locations":[{"start":{"line":190,"column":20},"end":{"line":190,"column":25}},{"start":{"line":190,"column":28},"end":{"line":190,"column":35}}],"line":190},"30":{"loc":{"start":{"line":192,"column":47},"end":{"line":192,"column":73}},"type":"cond-expr","locations":[{"start":{"line":192,"column":57},"end":{"line":192,"column":62}},{"start":{"line":192,"column":65},"end":{"line":192,"column":73}}],"line":192},"31":{"loc":{"start":{"line":194,"column":2},"end":{"line":194,"column":66}},"type":"if","locations":[{"start":{"line":194,"column":2},"end":{"line":194,"column":66}},{"start":{"line":194,"column":2},"end":{"line":194,"column":66}}],"line":194},"32":{"loc":{"start":{"line":205,"column":12},"end":{"line":205,"column":37}},"type":"cond-expr","locations":[{"start":{"line":205,"column":22},"end":{"line":205,"column":27}},{"start":{"line":205,"column":30},"end":{"line":205,"column":37}}],"line":205},"33":{"loc":{"start":{"line":207,"column":49},"end":{"line":207,"column":75}},"type":"cond-expr","locations":[{"start":{"line":207,"column":59},"end":{"line":207,"column":64}},{"start":{"line":207,"column":67},"end":{"line":207,"column":75}}],"line":207},"34":{"loc":{"start":{"line":209,"column":4},"end":{"line":209,"column":79}},"type":"if","locations":[{"start":{"line":209,"column":4},"end":{"line":209,"column":79}},{"start":{"line":209,"column":4},"end":{"line":209,"column":79}}],"line":209},"35":{"loc":{"start":{"line":219,"column":4},"end":{"line":228,"column":5}},"type":"if","locations":[{"start":{"line":219,"column":4},"end":{"line":228,"column":5}},{"start":{"line":219,"column":4},"end":{"line":228,"column":5}}],"line":219},"36":{"loc":{"start":{"line":222,"column":6},"end":{"line":227,"column":7}},"type":"if","locations":[{"start":{"line":222,"column":6},"end":{"line":227,"column":7}},{"start":{"line":222,"column":6},"end":{"line":227,"column":7}}],"line":222},"37":{"loc":{"start":{"line":223,"column":8},"end":{"line":225,"column":9}},"type":"if","locations":[{"start":{"line":223,"column":8},"end":{"line":225,"column":9}},{"start":{"line":223,"column":8},"end":{"line":225,"column":9}}],"line":223},"38":{"loc":{"start":{"line":238,"column":12},"end":{"line":238,"column":37}},"type":"cond-expr","locations":[{"start":{"line":238,"column":22},"end":{"line":238,"column":27}},{"start":{"line":238,"column":30},"end":{"line":238,"column":37}}],"line":238},"39":{"loc":{"start":{"line":240,"column":49},"end":{"line":240,"column":75}},"type":"cond-expr","locations":[{"start":{"line":240,"column":59},"end":{"line":240,"column":64}},{"start":{"line":240,"column":67},"end":{"line":240,"column":75}}],"line":240},"40":{"loc":{"start":{"line":242,"column":4},"end":{"line":242,"column":76}},"type":"if","locations":[{"start":{"line":242,"column":4},"end":{"line":242,"column":76}},{"start":{"line":242,"column":4},"end":{"line":242,"column":76}}],"line":242},"41":{"loc":{"start":{"line":251,"column":4},"end":{"line":254,"column":5}},"type":"if","locations":[{"start":{"line":251,"column":4},"end":{"line":254,"column":5}},{"start":{"line":251,"column":4},"end":{"line":254,"column":5}}],"line":251},"42":{"loc":{"start":{"line":251,"column":8},"end":{"line":251,"column":44}},"type":"binary-expr","locations":[{"start":{"line":251,"column":8},"end":{"line":251,"column":14}},{"start":{"line":251,"column":18},"end":{"line":251,"column":44}}],"line":251},"43":{"loc":{"start":{"line":263,"column":12},"end":{"line":263,"column":37}},"type":"cond-expr","locations":[{"start":{"line":263,"column":22},"end":{"line":263,"column":27}},{"start":{"line":263,"column":30},"end":{"line":263,"column":37}}],"line":263},"44":{"loc":{"start":{"line":265,"column":49},"end":{"line":265,"column":75}},"type":"cond-expr","locations":[{"start":{"line":265,"column":59},"end":{"line":265,"column":64}},{"start":{"line":265,"column":67},"end":{"line":265,"column":75}}],"line":265},"45":{"loc":{"start":{"line":275,"column":4},"end":{"line":275,"column":103}},"type":"if","locations":[{"start":{"line":275,"column":4},"end":{"line":275,"column":103}},{"start":{"line":275,"column":4},"end":{"line":275,"column":103}}],"line":275},"46":{"loc":{"start":{"line":275,"column":8},"end":{"line":275,"column":40}},"type":"binary-expr","locations":[{"start":{"line":275,"column":8},"end":{"line":275,"column":12}},{"start":{"line":275,"column":16},"end":{"line":275,"column":40}}],"line":275},"47":{"loc":{"start":{"line":284,"column":12},"end":{"line":284,"column":37}},"type":"cond-expr","locations":[{"start":{"line":284,"column":22},"end":{"line":284,"column":27}},{"start":{"line":284,"column":30},"end":{"line":284,"column":37}}],"line":284},"48":{"loc":{"start":{"line":286,"column":49},"end":{"line":286,"column":75}},"type":"cond-expr","locations":[{"start":{"line":286,"column":59},"end":{"line":286,"column":64}},{"start":{"line":286,"column":67},"end":{"line":286,"column":75}}],"line":286},"49":{"loc":{"start":{"line":296,"column":10},"end":{"line":296,"column":35}},"type":"cond-expr","locations":[{"start":{"line":296,"column":20},"end":{"line":296,"column":25}},{"start":{"line":296,"column":28},"end":{"line":296,"column":35}}],"line":296},"50":{"loc":{"start":{"line":300,"column":47},"end":{"line":300,"column":73}},"type":"cond-expr","locations":[{"start":{"line":300,"column":57},"end":{"line":300,"column":62}},{"start":{"line":300,"column":65},"end":{"line":300,"column":73}}],"line":300},"51":{"loc":{"start":{"line":306,"column":4},"end":{"line":308,"column":5}},"type":"if","locations":[{"start":{"line":306,"column":4},"end":{"line":308,"column":5}},{"start":{"line":306,"column":4},"end":{"line":308,"column":5}}],"line":306},"52":{"loc":{"start":{"line":312,"column":12},"end":{"line":312,"column":37}},"type":"cond-expr","locations":[{"start":{"line":312,"column":22},"end":{"line":312,"column":27}},{"start":{"line":312,"column":30},"end":{"line":312,"column":37}}],"line":312},"53":{"loc":{"start":{"line":317,"column":49},"end":{"line":317,"column":75}},"type":"cond-expr","locations":[{"start":{"line":317,"column":59},"end":{"line":317,"column":64}},{"start":{"line":317,"column":67},"end":{"line":317,"column":75}}],"line":317},"54":{"loc":{"start":{"line":320,"column":22},"end":{"line":320,"column":34}},"type":"default-arg","locations":[{"start":{"line":320,"column":32},"end":{"line":320,"column":34}}],"line":320},"55":{"loc":{"start":{"line":323,"column":22},"end":{"line":323,"column":91}},"type":"cond-expr","locations":[{"start":{"line":323,"column":40},"end":{"line":323,"column":76}},{"start":{"line":323,"column":79},"end":{"line":323,"column":91}}],"line":323},"56":{"loc":{"start":{"line":324,"column":20},"end":{"line":324,"column":43}},"type":"binary-expr","locations":[{"start":{"line":324,"column":20},"end":{"line":324,"column":33}},{"start":{"line":324,"column":37},"end":{"line":324,"column":43}}],"line":324},"57":{"loc":{"start":{"line":327,"column":6},"end":{"line":346,"column":7}},"type":"if","locations":[{"start":{"line":327,"column":6},"end":{"line":346,"column":7}},{"start":{"line":327,"column":6},"end":{"line":346,"column":7}}],"line":327},"58":{"loc":{"start":{"line":330,"column":10},"end":{"line":330,"column":78}},"type":"if","locations":[{"start":{"line":330,"column":10},"end":{"line":330,"column":78}},{"start":{"line":330,"column":10},"end":{"line":330,"column":78}}],"line":330},"59":{"loc":{"start":{"line":333,"column":22},"end":{"line":333,"column":74}},"type":"cond-expr","locations":[{"start":{"line":333,"column":46},"end":{"line":333,"column":59}},{"start":{"line":333,"column":62},"end":{"line":333,"column":74}}],"line":333},"60":{"loc":{"start":{"line":334,"column":8},"end":{"line":345,"column":9}},"type":"if","locations":[{"start":{"line":334,"column":8},"end":{"line":345,"column":9}},{"start":{"line":334,"column":8},"end":{"line":345,"column":9}}],"line":334},"61":{"loc":{"start":{"line":341,"column":10},"end":{"line":341,"column":52}},"type":"if","locations":[{"start":{"line":341,"column":10},"end":{"line":341,"column":52}},{"start":{"line":341,"column":10},"end":{"line":341,"column":52}}],"line":341},"62":{"loc":{"start":{"line":343,"column":25},"end":{"line":343,"column":75}},"type":"cond-expr","locations":[{"start":{"line":343,"column":49},"end":{"line":343,"column":58}},{"start":{"line":343,"column":61},"end":{"line":343,"column":75}}],"line":343},"63":{"loc":{"start":{"line":344,"column":10},"end":{"line":344,"column":72}},"type":"if","locations":[{"start":{"line":344,"column":10},"end":{"line":344,"column":72}},{"start":{"line":344,"column":10},"end":{"line":344,"column":72}}],"line":344}},"s":{"0":1,"1":1,"2":1,"3":1,"4":3,"5":0,"6":3,"7":3,"8":3,"9":3,"10":3,"11":3,"12":1,"13":3,"14":1,"15":1,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":1,"24":0,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":3,"52":6,"53":7,"54":7,"55":12,"56":12,"57":10,"58":2,"59":2,"60":10,"61":5,"62":5,"63":5,"64":0,"65":7,"66":1,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":54,"84":54,"85":54,"86":54,"87":23,"88":31,"89":31,"90":31,"91":1,"92":1,"93":1,"94":1,"95":1,"96":31,"97":30,"98":0,"99":0,"100":0,"101":0,"102":4,"103":203,"104":203,"105":203,"106":203,"107":190,"108":535,"109":535,"110":362,"111":362,"112":11,"113":173,"114":0,"115":203,"116":182,"117":182,"118":182,"119":182,"120":182,"121":182,"122":182,"123":70,"124":182,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":0,"152":1,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":9,"179":9,"180":9,"181":9,"182":9,"183":9,"184":9,"185":2,"186":2,"187":0,"188":2,"189":2,"190":2,"191":2,"192":2,"193":2,"194":2,"195":2,"196":4,"197":4,"198":4,"199":4,"200":4,"201":4,"202":2,"203":2,"204":0,"205":2,"206":2,"207":2,"208":2,"209":2,"210":1,"211":1,"212":1,"213":0,"214":2,"215":4,"216":4},"f":{"0":1,"1":3,"2":3,"3":1,"4":0,"5":0,"6":3,"7":6,"8":7,"9":7,"10":12,"11":5,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":54,"20":31,"21":1,"22":0,"23":4,"24":203,"25":190,"26":535,"27":182,"28":182,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":9,"48":9,"49":2,"50":2,"51":2,"52":4,"53":4,"54":4,"55":4},"b":{"0":[0,3],"1":[3,0],"2":[3,0],"3":[0,0],"4":[0,3],"5":[3,3],"6":[5,5],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[23,31],"12":[54,52],"13":[1,30],"14":[31,9],"15":[0,1],"16":[1,0],"17":[1,0],"18":[1,0],"19":[30,1],"20":[0,0],"21":[0,0],"22":[2],"23":[66,137],"24":[362,173],"25":[11,351],"26":[0,173],"27":[173,173],"28":[66,137],"29":[0,182],"30":[0,182],"31":[70,112],"32":[0,1],"33":[0,1],"34":[1,0],"35":[1,0],"36":[1,0],"37":[1,0],"38":[0,1],"39":[0,1],"40":[0,1],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,9],"50":[0,9],"51":[0,2],"52":[0,2],"53":[0,2],"54":[0],"55":[0,4],"56":[4,0],"57":[2,2],"58":[0,2],"59":[0,2],"60":[2,0],"61":[1,1],"62":[0,1],"63":[0,0]},"inputSourceMap":{"version":3,"sources":["hooks.model.js"],"names":["hook","type","Error","item","id","_id","params","previousItem","service","get","toString","debug","populatePreviousObject","query","$distinct","collection","Model","result","distinct","_","omit","processTimes","unprocessTimes","processPerspectives","preventUpdatePerspectives","serialize","processObjectIDs","convertObjectIDs","toDates","convertDates","toJson","convertToJson","convertToString","setAsDeleted","setExpireAfter","checkUnique","properties","items","isArray","Array","forEach","options","perspectives","perspective","filterPerspective","isNil","$select","selectedFields","field","startsWith","rules","rule","source","set","target","delete","unset","throwOnNotFound","object","asMoment","property","date","moment","utc","isValid","toDate","string","json","JSON","parse","stringify","delayInSeconds","Date","now","app","getService","find","total","length","error","Conflict","name","translation","key","method","data"],"mappings":"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","file":"hooks.model.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment'\r\nimport { Conflict } from '@feathersjs/errors'\r\nimport { objectifyIDs, toObjectIDs } from '../db'\r\nimport { marshallTimes, unmarshallTimes } from '../marshall'\r\nimport { discard, disallow, getItems, replaceItems } from 'feathers-hooks-common'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:model:hooks')\r\n\r\n// Need to convert from server side types (moment dates) to basic JS types when \"writing\" to DB adapters\r\nexport function processTimes (properties) {\r\n return function (hook) {\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n items.forEach(item => marshallTimes(item, properties))\r\n replaceItems(hook, isArray ? items : items[0])\r\n return hook\r\n }\r\n}\r\n\r\n// Need to convert back to server side types (moment dates) from basic JS types when \"reading\" from DB adapters\r\nexport function unprocessTimes (properties) {\r\n return function (hook) {\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n items.forEach(item => unmarshallTimes(item, properties))\r\n replaceItems(hook, isArray ? items : items[0])\r\n return hook\r\n }\r\n}\r\n\r\nexport function processPerspectives (hook) {\r\n const params = hook.params\r\n const query = params.query\r\n const service = hook.service\r\n\r\n // Test if some perspectives are defined on the model\r\n if (!service.options || !service.options.perspectives) return\r\n\r\n // Iterate through known perspectives of the model\r\n service.options.perspectives.forEach(perspective => {\r\n // Only discard if not explicitely asked by $select\r\n let filterPerspective = true\r\n if (!_.isNil(query) && !_.isNil(query.$select)) {\r\n // Transform to array to unify processing\r\n const selectedFields = (typeof query.$select === 'string' ? [query.$select] : query.$select)\r\n if (Array.isArray(selectedFields)) {\r\n selectedFields.forEach(field => {\r\n // Take care that we might only ask for a subset of perspective fields like ['perspective.fieldName']\r\n if ((field === perspective) || field.startsWith(perspective + '.')) {\r\n filterPerspective = false\r\n }\r\n })\r\n }\r\n }\r\n if (filterPerspective) {\r\n discard(perspective)(hook)\r\n }\r\n })\r\n}\r\n\r\n// When perspectives are present we disallow update in order to avoid erase them.\r\n// Indeed when requesting an object they are not retrieved by default\r\nexport function preventUpdatePerspectives (hook) {\r\n const service = hook.service\r\n\r\n // Test if some perspectives are defined on the model\r\n if (!service.options || !service.options.perspectives) return\r\n\r\n disallow()(hook)\r\n}\r\n\r\n// The hook serialize allows to copy/move some properties within the objects holded by the hook\r\n// It applies an array of rules defined by:\r\n// - source: the path to the property to be copied\r\n// - target: the path where to copy the property\r\n// - delete: a flag to define whether the hook has to delete the source property\r\nexport function serialize (rules, options = {}) {\r\n return function (hook) {\r\n // Retrieve the items from the hook\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n // Apply the rules for each item\r\n items.forEach(item => {\r\n rules.forEach(rule => {\r\n const source = _.get(item, rule.source)\r\n if (!_.isNil(source)) {\r\n _.set(item, rule.target, source)\r\n if (rule.delete) {\r\n _.unset(item, rule.source)\r\n }\r\n } else if (options.throwOnNotFound || rule.throwOnNotFound) {\r\n throw new Error('Cannot find valid input value for property ' + rule.target)\r\n }\r\n })\r\n })\r\n // Replace the items within the hook\r\n replaceItems(hook, isArray ? items : items[0])\r\n }\r\n}\r\n\r\n// The hook allows to transform the values bound to '_id' like keys as strings into Mongo ObjectIds\r\n// It inspects hook data as well as query data\r\nexport function processObjectIDs (hook) {\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n items.forEach(item => objectifyIDs(item))\r\n replaceItems(hook, isArray ? items : items[0])\r\n\r\n if (hook.params.query) objectifyIDs(hook.params.query)\r\n\r\n return hook\r\n}\r\n\r\n// The hook allows to transform a set of input properties as strings into Mongo ObjectIds\r\n// It inspects hook data as well as query data\r\nexport function convertObjectIDs (properties) {\r\n return function (hook) {\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n items.forEach(item => toObjectIDs(item, properties))\r\n replaceItems(hook, isArray ? items : items[0])\r\n\r\n if (hook.params.query) toObjectIDs(hook.params.query, properties)\r\n\r\n return hook\r\n }\r\n}\r\n\r\n// Utility function used to convert from string to Dates a fixed set of properties on a given object\r\nexport function toDates (object, properties, asMoment) {\r\n properties.forEach(property => {\r\n let date = _.get(object, property)\r\n if (date) {\r\n // We use moment to validate the date\r\n date = moment.utc(date)\r\n if (date.isValid()) {\r\n if (!asMoment) {\r\n date = date.toDate()\r\n }\r\n _.set(object, property, date)\r\n }\r\n }\r\n })\r\n}\r\n\r\n// The hook allows to transform a set of input properties as strings into a Date/Moment objects\r\n// It inspects hook data as well as query data\r\nexport function convertDates (properties, asMoment) {\r\n return function (hook) {\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n items.forEach(item => toDates(item, properties, asMoment))\r\n replaceItems(hook, isArray ? items : items[0])\r\n\r\n if (hook.params.query) toDates(hook.params.query, properties, asMoment)\r\n return hook\r\n }\r\n}\r\n\r\n// Utility function used to convert from string to JSON a fixed set of properties on a given object\r\nexport function toJson (object, properties) {\r\n properties.forEach(property => {\r\n const string = _.get(object, property)\r\n if (string && (typeof string === 'string')) {\r\n const json = JSON.parse(string)\r\n _.set(object, property, json)\r\n }\r\n })\r\n}\r\n\r\n// The hook allows to transform a set of input properties as strings into JSON objects\r\nexport function convertToJson (properties) {\r\n return function (hook) {\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n items.forEach(item => toJson(item, properties))\r\n replaceItems(hook, isArray ? items : items[0])\r\n\r\n return hook\r\n }\r\n}\r\n\r\n// Utility function used to convert from string to JSON a fixed set of properties on a given object\r\nexport function toString (object, properties) {\r\n properties.forEach(property => {\r\n const json = _.get(object, property)\r\n if (json && (typeof json === 'object')) _.set(object, property, JSON.stringify(json))\r\n })\r\n}\r\n\r\n// The hook allows to transform a set of input properties from JSON objects into strings\r\nexport function convertToString (properties) {\r\n return function (hook) {\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n items.forEach(item => toString(item, properties))\r\n replaceItems(hook, isArray ? items : items[0])\r\n\r\n return hook\r\n }\r\n}\r\n\r\nexport async function populatePreviousObject (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'populatePreviousObject\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const item = getItems(hook)\r\n const id = (hook.id ? hook.id : item._id)\r\n // Retrieve previous version of the item and make it available to next hooks\r\n if (id) {\r\n hook.params.previousItem = await hook.service.get(id.toString())\r\n debug('Populated previous object', hook.params.previousItem)\r\n }\r\n return hook\r\n}\r\n\r\nexport function setAsDeleted (hook) {\r\n // Retrieve the items from the hook\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n // Apply the rules for each item\r\n items.forEach(item => _.set(item, 'deleted', true))\r\n // Replace the items within the hook\r\n replaceItems(hook, isArray ? items : items[0])\r\n return hook\r\n}\r\n\r\nexport function setExpireAfter (delayInSeconds) {\r\n return function (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'setExpireAfter\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n // Retrieve the items from the hook\r\n let items = getItems(hook)\r\n const isArray = Array.isArray(items)\r\n items = (isArray ? items : [items])\r\n // Apply the rules for each item\r\n const date = new Date(Date.now() + 1000 * delayInSeconds)\r\n items.forEach(item => _.set(item, 'expireAt', date))\r\n // Replace the items within the hook\r\n replaceItems(hook, isArray ? items : items[0])\r\n return hook\r\n }\r\n}\r\n\r\n// Allow to use the distinct function of MongoDB\r\nexport async function distinct (hook) {\r\n const params = hook.params\r\n const query = params.query\r\n if (!query.$distinct) return hook\r\n const collection = hook.service.Model\r\n hook.result = await collection.distinct(query.$distinct, _.omit(query, ['$distinct']))\r\n return hook\r\n}\r\n\r\n// Check for already existing object according to given service/id field\r\nexport function checkUnique (options = {}) {\r\n return async (hook) => {\r\n const service = (options.service ? hook.app.getService(options.service) : hook.service)\r\n const field = options.field || 'name'\r\n const id = _.get(hook, `data.${field}`)\r\n // If not updating ID skip\r\n if (id) {\r\n const query = { [options.field]: id }\r\n // Apply processing if required\r\n if (typeof options.query === 'function') options.query(query, hook)\r\n const result = await service.find({ query })\r\n // Pagination on/off ?\r\n const total = (Array.isArray(result) ? result.length : result.total)\r\n if (total > 0) {\r\n const error = new Conflict(`Object with ${options.field} equals to ${id} already exist for service ${service.name}`, {\r\n translation: {\r\n key: 'OBJECT_ID_ALREADY_TAKEN'\r\n }\r\n })\r\n // Raise error when creating if another object with the same ID exists\r\n if (hook.method === 'create') throw error\r\n // When updating/patching we should check if it's the same object or not\r\n const object = (Array.isArray(result) ? result[0] : result.data[0])\r\n if (object._id.toString() !== hook.id.toString()) throw error\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ca4b81460539f7b6a3e42b60b76495c8db85387e","contentHash":"016088d70d15c1b2b8975145564687664adf29f8b2b0317b1fb7a28a0258d775"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.organisations.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.organisations.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":79}},"2":{"start":{"line":8,"column":29},"end":{"line":39,"column":4}},"3":{"start":{"line":9,"column":14},"end":{"line":34,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"5":{"start":{"line":11,"column":6},"end":{"line":11,"column":102}},"6":{"start":{"line":14,"column":16},"end":{"line":14,"column":24}},"7":{"start":{"line":16,"column":27},"end":{"line":16,"column":62}},"8":{"start":{"line":17,"column":17},"end":{"line":17,"column":63}},"9":{"start":{"line":19,"column":30},"end":{"line":19,"column":68}},"10":{"start":{"line":20,"column":20},"end":{"line":20,"column":69}},"11":{"start":{"line":22,"column":4},"end":{"line":30,"column":5}},"12":{"start":{"line":23,"column":21},"end":{"line":23,"column":31}},"13":{"start":{"line":24,"column":6},"end":{"line":29,"column":7}},"14":{"start":{"line":25,"column":35},"end":{"line":27,"column":10}},"15":{"start":{"line":26,"column":10},"end":{"line":26,"column":75}},"16":{"start":{"line":28,"column":8},"end":{"line":28,"column":80}},"17":{"start":{"line":32,"column":4},"end":{"line":32,"column":63}},"18":{"start":{"line":33,"column":4},"end":{"line":33,"column":16}},"19":{"start":{"line":36,"column":2},"end":{"line":38,"column":4}},"20":{"start":{"line":37,"column":4},"end":{"line":37,"column":40}},"21":{"start":{"line":41,"column":32},"end":{"line":63,"column":4}},"22":{"start":{"line":42,"column":14},"end":{"line":58,"column":4}},"23":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"24":{"start":{"line":44,"column":6},"end":{"line":44,"column":107}},"25":{"start":{"line":48,"column":4},"end":{"line":48,"column":39}},"26":{"start":{"line":48,"column":27},"end":{"line":48,"column":39}},"27":{"start":{"line":49,"column":16},"end":{"line":49,"column":24}},"28":{"start":{"line":50,"column":28},"end":{"line":50,"column":61}},"29":{"start":{"line":51,"column":19},"end":{"line":51,"column":60}},"30":{"start":{"line":52,"column":4},"end":{"line":56,"column":5}},"31":{"start":{"line":53,"column":6},"end":{"line":55,"column":9}},"32":{"start":{"line":57,"column":4},"end":{"line":57,"column":16}},"33":{"start":{"line":60,"column":2},"end":{"line":62,"column":4}},"34":{"start":{"line":61,"column":4},"end":{"line":61,"column":40}},"35":{"start":{"line":65,"column":0},"end":{"line":65,"column":50}},"36":{"start":{"line":66,"column":0},"end":{"line":66,"column":64}},"37":{"start":{"line":67,"column":0},"end":{"line":67,"column":64}},"38":{"start":{"line":68,"column":0},"end":{"line":68,"column":76}},"39":{"start":{"line":69,"column":0},"end":{"line":69,"column":76}},"40":{"start":{"line":70,"column":0},"end":{"line":70,"column":64}},"41":{"start":{"line":71,"column":0},"end":{"line":71,"column":60}},"42":{"start":{"line":72,"column":0},"end":{"line":72,"column":62}},"43":{"start":{"line":73,"column":0},"end":{"line":73,"column":62}},"44":{"start":{"line":75,"column":14},"end":{"line":75,"column":31}},"45":{"start":{"line":77,"column":15},"end":{"line":77,"column":46}},"46":{"start":{"line":79,"column":13},"end":{"line":79,"column":29}},"47":{"start":{"line":81,"column":14},"end":{"line":81,"column":44}},"48":{"start":{"line":83,"column":14},"end":{"line":83,"column":43}},"49":{"start":{"line":85,"column":39},"end":{"line":85,"column":93}},"50":{"start":{"line":87,"column":33},"end":{"line":87,"column":456}},"51":{"start":{"line":87,"column":64},"end":{"line":87,"column":89}},"52":{"start":{"line":87,"column":91},"end":{"line":87,"column":453}},"53":{"start":{"line":87,"column":165},"end":{"line":87,"column":263}},"54":{"start":{"line":87,"column":182},"end":{"line":87,"column":195}},"55":{"start":{"line":87,"column":209},"end":{"line":87,"column":219}},"56":{"start":{"line":87,"column":239},"end":{"line":87,"column":253}},"57":{"start":{"line":87,"column":254},"end":{"line":87,"column":261}},"58":{"start":{"line":87,"column":264},"end":{"line":87,"column":426}},"59":{"start":{"line":87,"column":281},"end":{"line":87,"column":296}},"60":{"start":{"line":87,"column":306},"end":{"line":87,"column":424}},"61":{"start":{"line":87,"column":360},"end":{"line":87,"column":380}},"62":{"start":{"line":87,"column":401},"end":{"line":87,"column":420}},"63":{"start":{"line":87,"column":429},"end":{"line":87,"column":449}},"64":{"start":{"line":89,"column":14},"end":{"line":89,"column":66}},"65":{"start":{"line":92,"column":2},"end":{"line":94,"column":3}},"66":{"start":{"line":93,"column":4},"end":{"line":93,"column":98}},"67":{"start":{"line":96,"column":16},"end":{"line":96,"column":66}},"68":{"start":{"line":97,"column":15},"end":{"line":97,"column":62}},"69":{"start":{"line":98,"column":2},"end":{"line":102,"column":3}},"70":{"start":{"line":100,"column":4},"end":{"line":100,"column":62}},"71":{"start":{"line":101,"column":4},"end":{"line":101,"column":61}},"72":{"start":{"line":103,"column":2},"end":{"line":103,"column":14}},"73":{"start":{"line":107,"column":2},"end":{"line":109,"column":3}},"74":{"start":{"line":108,"column":4},"end":{"line":108,"column":104}},"75":{"start":{"line":111,"column":14},"end":{"line":111,"column":22}},"76":{"start":{"line":112,"column":30},"end":{"line":112,"column":42}},"77":{"start":{"line":113,"column":26},"end":{"line":113,"column":53}},"78":{"start":{"line":116,"column":2},"end":{"line":126,"column":5}},"79":{"start":{"line":121,"column":4},"end":{"line":121,"column":61}},"80":{"start":{"line":123,"column":4},"end":{"line":123,"column":54}},"81":{"start":{"line":124,"column":4},"end":{"line":124,"column":68}},"82":{"start":{"line":125,"column":4},"end":{"line":125,"column":16}},"83":{"start":{"line":130,"column":2},"end":{"line":132,"column":3}},"84":{"start":{"line":131,"column":4},"end":{"line":131,"column":104}},"85":{"start":{"line":134,"column":14},"end":{"line":134,"column":22}},"86":{"start":{"line":135,"column":30},"end":{"line":135,"column":42}},"87":{"start":{"line":136,"column":26},"end":{"line":136,"column":53}},"88":{"start":{"line":139,"column":2},"end":{"line":145,"column":5}},"89":{"start":{"line":142,"column":4},"end":{"line":142,"column":61}},"90":{"start":{"line":143,"column":4},"end":{"line":143,"column":64}},"91":{"start":{"line":144,"column":4},"end":{"line":144,"column":16}},"92":{"start":{"line":149,"column":2},"end":{"line":151,"column":3}},"93":{"start":{"line":150,"column":4},"end":{"line":150,"column":110}},"94":{"start":{"line":153,"column":14},"end":{"line":153,"column":22}},"95":{"start":{"line":154,"column":31},"end":{"line":154,"column":63}},"96":{"start":{"line":155,"column":22},"end":{"line":155,"column":45}},"97":{"start":{"line":157,"column":2},"end":{"line":170,"column":5}},"98":{"start":{"line":168,"column":4},"end":{"line":168,"column":68}},"99":{"start":{"line":169,"column":4},"end":{"line":169,"column":16}},"100":{"start":{"line":174,"column":2},"end":{"line":176,"column":3}},"101":{"start":{"line":175,"column":4},"end":{"line":175,"column":110}},"102":{"start":{"line":178,"column":14},"end":{"line":178,"column":22}},"103":{"start":{"line":179,"column":31},"end":{"line":179,"column":63}},"104":{"start":{"line":182,"column":2},"end":{"line":195,"column":5}},"105":{"start":{"line":193,"column":4},"end":{"line":193,"column":70}},"106":{"start":{"line":194,"column":4},"end":{"line":194,"column":16}},"107":{"start":{"line":199,"column":2},"end":{"line":231,"column":7}},"108":{"start":{"line":200,"column":15},"end":{"line":226,"column":6}},"109":{"start":{"line":201,"column":6},"end":{"line":203,"column":7}},"110":{"start":{"line":202,"column":8},"end":{"line":202,"column":108}},"111":{"start":{"line":205,"column":18},"end":{"line":205,"column":26}},"112":{"start":{"line":207,"column":32},"end":{"line":207,"column":86}},"113":{"start":{"line":208,"column":22},"end":{"line":211,"column":8}},"114":{"start":{"line":213,"column":6},"end":{"line":222,"column":10}},"115":{"start":{"line":214,"column":26},"end":{"line":214,"column":73}},"116":{"start":{"line":215,"column":25},"end":{"line":215,"column":83}},"117":{"start":{"line":216,"column":8},"end":{"line":221,"column":9}},"118":{"start":{"line":217,"column":10},"end":{"line":217,"column":47}},"119":{"start":{"line":218,"column":10},"end":{"line":218,"column":85}},"120":{"start":{"line":220,"column":10},"end":{"line":220,"column":35}},"121":{"start":{"line":224,"column":6},"end":{"line":224,"column":124}},"122":{"start":{"line":225,"column":6},"end":{"line":225,"column":18}},"123":{"start":{"line":228,"column":4},"end":{"line":230,"column":6}},"124":{"start":{"line":229,"column":6},"end":{"line":229,"column":41}},"125":{"start":{"line":235,"column":2},"end":{"line":237,"column":3}},"126":{"start":{"line":236,"column":4},"end":{"line":236,"column":102}},"127":{"start":{"line":239,"column":14},"end":{"line":239,"column":22}},"128":{"start":{"line":240,"column":26},"end":{"line":240,"column":63}},"129":{"start":{"line":241,"column":2},"end":{"line":250,"column":5}},"130":{"start":{"line":242,"column":4},"end":{"line":246,"column":8}},"131":{"start":{"line":243,"column":6},"end":{"line":245,"column":9}},"132":{"start":{"line":248,"column":4},"end":{"line":248,"column":64}},"133":{"start":{"line":249,"column":4},"end":{"line":249,"column":16}},"134":{"start":{"line":254,"column":2},"end":{"line":256,"column":3}},"135":{"start":{"line":255,"column":4},"end":{"line":255,"column":103}},"136":{"start":{"line":258,"column":14},"end":{"line":258,"column":22}},"137":{"start":{"line":259,"column":30},"end":{"line":259,"column":61}},"138":{"start":{"line":261,"column":2},"end":{"line":268,"column":5}},"139":{"start":{"line":267,"column":4},"end":{"line":267,"column":70}},"140":{"start":{"line":272,"column":2},"end":{"line":274,"column":3}},"141":{"start":{"line":273,"column":4},"end":{"line":273,"column":103}},"142":{"start":{"line":276,"column":14},"end":{"line":276,"column":22}},"143":{"start":{"line":277,"column":30},"end":{"line":277,"column":61}},"144":{"start":{"line":279,"column":2},"end":{"line":283,"column":5}},"145":{"start":{"line":282,"column":4},"end":{"line":282,"column":70}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":63},"end":{"line":8,"column":64}},"loc":{"start":{"line":8,"column":69},"end":{"line":39,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":32},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":49},"end":{"line":34,"column":3}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":72},"end":{"line":25,"column":73}},"loc":{"start":{"line":25,"column":87},"end":{"line":27,"column":9}},"line":25},"3":{"name":"removeOrganisationTags","decl":{"start":{"line":36,"column":18},"end":{"line":36,"column":40}},"loc":{"start":{"line":36,"column":46},"end":{"line":38,"column":3}},"line":36},"4":{"name":"(anonymous_4)","decl":{"start":{"line":41,"column":69},"end":{"line":41,"column":70}},"loc":{"start":{"line":41,"column":75},"end":{"line":63,"column":1}},"line":41},"5":{"name":"(anonymous_5)","decl":{"start":{"line":42,"column":32},"end":{"line":42,"column":33}},"loc":{"start":{"line":42,"column":49},"end":{"line":58,"column":3}},"line":42},"6":{"name":"preventRemoveOrganisation","decl":{"start":{"line":60,"column":18},"end":{"line":60,"column":43}},"loc":{"start":{"line":60,"column":49},"end":{"line":62,"column":3}},"line":60},"7":{"name":"_interopRequireDefault","decl":{"start":{"line":85,"column":9},"end":{"line":85,"column":31}},"loc":{"start":{"line":85,"column":37},"end":{"line":85,"column":95}},"line":85},"8":{"name":"_asyncToGenerator","decl":{"start":{"line":87,"column":9},"end":{"line":87,"column":26}},"loc":{"start":{"line":87,"column":31},"end":{"line":87,"column":458}},"line":87},"9":{"name":"(anonymous_9)","decl":{"start":{"line":87,"column":40},"end":{"line":87,"column":41}},"loc":{"start":{"line":87,"column":52},"end":{"line":87,"column":455}},"line":87},"10":{"name":"(anonymous_10)","decl":{"start":{"line":87,"column":110},"end":{"line":87,"column":111}},"loc":{"start":{"line":87,"column":137},"end":{"line":87,"column":451}},"line":87},"11":{"name":"step","decl":{"start":{"line":87,"column":148},"end":{"line":87,"column":152}},"loc":{"start":{"line":87,"column":163},"end":{"line":87,"column":428}},"line":87},"12":{"name":"(anonymous_12)","decl":{"start":{"line":87,"column":341},"end":{"line":87,"column":342}},"loc":{"start":{"line":87,"column":358},"end":{"line":87,"column":382}},"line":87},"13":{"name":"(anonymous_13)","decl":{"start":{"line":87,"column":384},"end":{"line":87,"column":385}},"loc":{"start":{"line":87,"column":399},"end":{"line":87,"column":422}},"line":87},"14":{"name":"addOrganisationPlan","decl":{"start":{"line":91,"column":9},"end":{"line":91,"column":28}},"loc":{"start":{"line":91,"column":35},"end":{"line":104,"column":1}},"line":91},"15":{"name":"createOrganisationServices","decl":{"start":{"line":106,"column":9},"end":{"line":106,"column":35}},"loc":{"start":{"line":106,"column":42},"end":{"line":127,"column":1}},"line":106},"16":{"name":"(anonymous_16)","decl":{"start":{"line":120,"column":10},"end":{"line":120,"column":11}},"loc":{"start":{"line":120,"column":16},"end":{"line":126,"column":3}},"line":120},"17":{"name":"removeOrganisationServices","decl":{"start":{"line":129,"column":9},"end":{"line":129,"column":35}},"loc":{"start":{"line":129,"column":42},"end":{"line":146,"column":1}},"line":129},"18":{"name":"(anonymous_18)","decl":{"start":{"line":141,"column":10},"end":{"line":141,"column":11}},"loc":{"start":{"line":141,"column":16},"end":{"line":145,"column":3}},"line":141},"19":{"name":"createOrganisationAuthorisations","decl":{"start":{"line":148,"column":9},"end":{"line":148,"column":41}},"loc":{"start":{"line":148,"column":48},"end":{"line":171,"column":1}},"line":148},"20":{"name":"(anonymous_20)","decl":{"start":{"line":167,"column":10},"end":{"line":167,"column":11}},"loc":{"start":{"line":167,"column":27},"end":{"line":170,"column":3}},"line":167},"21":{"name":"removeOrganisationAuthorisations","decl":{"start":{"line":173,"column":9},"end":{"line":173,"column":41}},"loc":{"start":{"line":173,"column":48},"end":{"line":196,"column":1}},"line":173},"22":{"name":"(anonymous_22)","decl":{"start":{"line":192,"column":10},"end":{"line":192,"column":11}},"loc":{"start":{"line":192,"column":27},"end":{"line":195,"column":3}},"line":192},"23":{"name":"updateOrganisationResource","decl":{"start":{"line":198,"column":9},"end":{"line":198,"column":35}},"loc":{"start":{"line":198,"column":51},"end":{"line":232,"column":1}},"line":198},"24":{"name":"(anonymous_24)","decl":{"start":{"line":199,"column":10},"end":{"line":199,"column":11}},"loc":{"start":{"line":199,"column":16},"end":{"line":231,"column":3}},"line":199},"25":{"name":"(anonymous_25)","decl":{"start":{"line":200,"column":33},"end":{"line":200,"column":34}},"loc":{"start":{"line":200,"column":50},"end":{"line":226,"column":5}},"line":200},"26":{"name":"(anonymous_26)","decl":{"start":{"line":213,"column":36},"end":{"line":213,"column":37}},"loc":{"start":{"line":213,"column":54},"end":{"line":222,"column":7}},"line":213},"27":{"name":"(anonymous_27)","decl":{"start":{"line":228,"column":11},"end":{"line":228,"column":12}},"loc":{"start":{"line":228,"column":25},"end":{"line":230,"column":5}},"line":228},"28":{"name":"removeOrganisationGroups","decl":{"start":{"line":234,"column":9},"end":{"line":234,"column":33}},"loc":{"start":{"line":234,"column":40},"end":{"line":251,"column":1}},"line":234},"29":{"name":"(anonymous_29)","decl":{"start":{"line":241,"column":56},"end":{"line":241,"column":57}},"loc":{"start":{"line":241,"column":66},"end":{"line":247,"column":3}},"line":241},"30":{"name":"(anonymous_30)","decl":{"start":{"line":242,"column":34},"end":{"line":242,"column":35}},"loc":{"start":{"line":242,"column":43},"end":{"line":246,"column":5}},"line":242},"31":{"name":"(anonymous_31)","decl":{"start":{"line":247,"column":10},"end":{"line":247,"column":11}},"loc":{"start":{"line":247,"column":20},"end":{"line":250,"column":3}},"line":247},"32":{"name":"createPrivateOrganisation","decl":{"start":{"line":253,"column":9},"end":{"line":253,"column":34}},"loc":{"start":{"line":253,"column":41},"end":{"line":269,"column":1}},"line":253},"33":{"name":"(anonymous_33)","decl":{"start":{"line":266,"column":10},"end":{"line":266,"column":11}},"loc":{"start":{"line":266,"column":17},"end":{"line":268,"column":3}},"line":266},"34":{"name":"removePrivateOrganisation","decl":{"start":{"line":271,"column":9},"end":{"line":271,"column":34}},"loc":{"start":{"line":271,"column":41},"end":{"line":284,"column":1}},"line":271},"35":{"name":"(anonymous_35)","decl":{"start":{"line":281,"column":10},"end":{"line":281,"column":11}},"loc":{"start":{"line":281,"column":17},"end":{"line":283,"column":3}},"line":281}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},{"start":{"line":10,"column":4},"end":{"line":12,"column":5}}],"line":10},"1":{"loc":{"start":{"line":24,"column":6},"end":{"line":29,"column":7}},"type":"if","locations":[{"start":{"line":24,"column":6},"end":{"line":29,"column":7}},{"start":{"line":24,"column":6},"end":{"line":29,"column":7}}],"line":24},"2":{"loc":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},{"start":{"line":43,"column":4},"end":{"line":45,"column":5}}],"line":43},"3":{"loc":{"start":{"line":48,"column":4},"end":{"line":48,"column":39}},"type":"if","locations":[{"start":{"line":48,"column":4},"end":{"line":48,"column":39}},{"start":{"line":48,"column":4},"end":{"line":48,"column":39}}],"line":48},"4":{"loc":{"start":{"line":52,"column":4},"end":{"line":56,"column":5}},"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":56,"column":5}},{"start":{"line":52,"column":4},"end":{"line":56,"column":5}}],"line":52},"5":{"loc":{"start":{"line":85,"column":46},"end":{"line":85,"column":92}},"type":"cond-expr","locations":[{"start":{"line":85,"column":70},"end":{"line":85,"column":73}},{"start":{"line":85,"column":76},"end":{"line":85,"column":92}}],"line":85},"6":{"loc":{"start":{"line":85,"column":46},"end":{"line":85,"column":67}},"type":"binary-expr","locations":[{"start":{"line":85,"column":46},"end":{"line":85,"column":49}},{"start":{"line":85,"column":53},"end":{"line":85,"column":67}}],"line":85},"7":{"loc":{"start":{"line":87,"column":264},"end":{"line":87,"column":426}},"type":"if","locations":[{"start":{"line":87,"column":264},"end":{"line":87,"column":426}},{"start":{"line":87,"column":264},"end":{"line":87,"column":426}}],"line":87},"8":{"loc":{"start":{"line":92,"column":2},"end":{"line":94,"column":3}},"type":"if","locations":[{"start":{"line":92,"column":2},"end":{"line":94,"column":3}},{"start":{"line":92,"column":2},"end":{"line":94,"column":3}}],"line":92},"9":{"loc":{"start":{"line":96,"column":38},"end":{"line":96,"column":65}},"type":"binary-expr","locations":[{"start":{"line":96,"column":38},"end":{"line":96,"column":59}},{"start":{"line":96,"column":63},"end":{"line":96,"column":65}}],"line":96},"10":{"loc":{"start":{"line":98,"column":2},"end":{"line":102,"column":3}},"type":"if","locations":[{"start":{"line":98,"column":2},"end":{"line":102,"column":3}},{"start":{"line":98,"column":2},"end":{"line":102,"column":3}}],"line":98},"11":{"loc":{"start":{"line":98,"column":6},"end":{"line":98,"column":31}},"type":"binary-expr","locations":[{"start":{"line":98,"column":6},"end":{"line":98,"column":11}},{"start":{"line":98,"column":15},"end":{"line":98,"column":31}}],"line":98},"12":{"loc":{"start":{"line":107,"column":2},"end":{"line":109,"column":3}},"type":"if","locations":[{"start":{"line":107,"column":2},"end":{"line":109,"column":3}},{"start":{"line":107,"column":2},"end":{"line":109,"column":3}}],"line":107},"13":{"loc":{"start":{"line":130,"column":2},"end":{"line":132,"column":3}},"type":"if","locations":[{"start":{"line":130,"column":2},"end":{"line":132,"column":3}},{"start":{"line":130,"column":2},"end":{"line":132,"column":3}}],"line":130},"14":{"loc":{"start":{"line":149,"column":2},"end":{"line":151,"column":3}},"type":"if","locations":[{"start":{"line":149,"column":2},"end":{"line":151,"column":3}},{"start":{"line":149,"column":2},"end":{"line":151,"column":3}}],"line":149},"15":{"loc":{"start":{"line":174,"column":2},"end":{"line":176,"column":3}},"type":"if","locations":[{"start":{"line":174,"column":2},"end":{"line":176,"column":3}},{"start":{"line":174,"column":2},"end":{"line":176,"column":3}}],"line":174},"16":{"loc":{"start":{"line":201,"column":6},"end":{"line":203,"column":7}},"type":"if","locations":[{"start":{"line":201,"column":6},"end":{"line":203,"column":7}},{"start":{"line":201,"column":6},"end":{"line":203,"column":7}}],"line":201},"17":{"loc":{"start":{"line":216,"column":8},"end":{"line":221,"column":9}},"type":"if","locations":[{"start":{"line":216,"column":8},"end":{"line":221,"column":9}},{"start":{"line":216,"column":8},"end":{"line":221,"column":9}}],"line":216},"18":{"loc":{"start":{"line":235,"column":2},"end":{"line":237,"column":3}},"type":"if","locations":[{"start":{"line":235,"column":2},"end":{"line":237,"column":3}},{"start":{"line":235,"column":2},"end":{"line":237,"column":3}}],"line":235},"19":{"loc":{"start":{"line":254,"column":2},"end":{"line":256,"column":3}},"type":"if","locations":[{"start":{"line":254,"column":2},"end":{"line":256,"column":3}},{"start":{"line":254,"column":2},"end":{"line":256,"column":3}}],"line":254},"20":{"loc":{"start":{"line":272,"column":2},"end":{"line":274,"column":3}},"type":"if","locations":[{"start":{"line":272,"column":2},"end":{"line":274,"column":3}},{"start":{"line":272,"column":2},"end":{"line":274,"column":3}}],"line":272}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":1,"20":0,"21":1,"22":1,"23":3,"24":0,"25":3,"26":0,"27":3,"28":3,"29":3,"30":3,"31":0,"32":3,"33":1,"34":3,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":2,"50":6,"51":4,"52":4,"53":9,"54":9,"55":9,"56":0,"57":0,"58":9,"59":4,"60":5,"61":5,"62":0,"63":4,"64":1,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":3,"74":0,"75":3,"76":3,"77":3,"78":3,"79":3,"80":3,"81":3,"82":3,"83":3,"84":0,"85":3,"86":3,"87":3,"88":3,"89":3,"90":3,"91":3,"92":3,"93":0,"94":3,"95":3,"96":3,"97":3,"98":3,"99":3,"100":3,"101":0,"102":3,"103":3,"104":3,"105":3,"106":3,"107":4,"108":4,"109":1,"110":0,"111":1,"112":1,"113":1,"114":1,"115":2,"116":2,"117":2,"118":2,"119":2,"120":0,"121":1,"122":1,"123":4,"124":1,"125":3,"126":0,"127":3,"128":3,"129":3,"130":3,"131":0,"132":3,"133":3,"134":2,"135":0,"136":2,"137":2,"138":2,"139":2,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0},"f":{"0":1,"1":0,"2":0,"3":0,"4":1,"5":3,"6":3,"7":2,"8":6,"9":4,"10":4,"11":9,"12":5,"13":0,"14":0,"15":3,"16":3,"17":3,"18":3,"19":3,"20":3,"21":3,"22":3,"23":4,"24":4,"25":1,"26":2,"27":1,"28":3,"29":3,"30":0,"31":3,"32":2,"33":2,"34":0,"35":0},"b":{"0":[0,0],"1":[0,0],"2":[0,3],"3":[0,3],"4":[0,3],"5":[0,2],"6":[2,2],"7":[4,5],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,3],"13":[0,3],"14":[0,3],"15":[0,3],"16":[0,1],"17":[2,0],"18":[0,3],"19":[0,2],"20":[0,0]},"inputSourceMap":{"version":3,"sources":["hooks.organisations.js"],"names":["hook","type","Error","app","orgTagsService","getService","result","tags","find","paginate","orgMembersService","members","i","member","filteredTagsMember","_","filter","tag","findIndex","_id","patch","debug","removeOrganisationTags","params","force","orgGroupService","id","$limit","total","Forbidden","translation","key","preventRemoveOrganisation","addOrganisationPlan","createOrganisationServices","removeOrganisationServices","createOrganisationAuthorisations","removeOrganisationAuthorisations","updateOrganisationResource","removeOrganisationGroups","createPrivateOrganisation","removePrivateOrganisation","plans","keys","get","plan","data","length","set","organisationService","service","databaseService","create","name","toString","user","then","db","client","remove","authorisationService","userService","scope","permissions","subjects","subjectsService","resource","resourcesService","authorisation","query","resourceScope","getContextId","$elemMatch","Promise","all","map","resources","Object","assign","resolve","groups","group","profile","org"],"mappings":"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","file":"hooks.organisations.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import _ from 'lodash'\r\nimport makeDebug from 'debug'\r\nimport { Forbidden } from '@feathersjs/errors'\r\nconst debug = makeDebug('kdk:core:organisations:hooks')\r\n\r\nexport function addOrganisationPlan (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'addOrganisationPlan\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n const plans = _.keys(hook.app.get('plans') || {})\r\n const plan = _.get(hook.data, 'billing.plan')\r\n if (!plan && (plans.length > 0)) {\r\n // Add defaul plan\r\n _.set(hook.data, 'billing.plan', plans[0])\r\n debug('Added default plan to organisation: ', hook.data)\r\n }\r\n return hook\r\n}\r\n\r\nexport function createOrganisationServices (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'createOrganisationServices\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const organisationService = hook.service\r\n const databaseService = app.getService('databases')\r\n\r\n // First we create the organisation DB\r\n return databaseService.create({\r\n name: hook.result._id.toString()\r\n }, {\r\n user: hook.params.user\r\n })\r\n .then(db => {\r\n debug('DB created for organisation ' + hook.result.name)\r\n // Jump from infos/stats to real DB object\r\n db = app.db.client.db(hook.result._id.toString())\r\n organisationService.createOrganisationServices(hook.result, db)\r\n return hook\r\n })\r\n}\r\n\r\nexport function removeOrganisationServices (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'removeOrganisationServices\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const organisationService = hook.service\r\n const databaseService = app.getService('databases')\r\n\r\n // Then we remove the organisation DB\r\n return databaseService.remove(hook.result._id.toString(), {\r\n user: hook.params.user\r\n })\r\n .then(db => {\r\n debug('DB removed for organisation ' + hook.result.name)\r\n organisationService.removeOrganisationServices(hook.result)\r\n return hook\r\n })\r\n}\r\n\r\nexport function createOrganisationAuthorisations (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'createOrganisationAuthorisations\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const authorisationService = app.getService('authorisations')\r\n const userService = app.getService('users')\r\n // Set membership for the owner\r\n return authorisationService.create({\r\n scope: 'organisations',\r\n permissions: 'owner' // Owner by default\r\n }, {\r\n user: hook.params.user,\r\n // Because we already have subject/resource set it as objects to avoid populating\r\n subjects: [hook.params.user],\r\n subjectsService: userService,\r\n resource: hook.result,\r\n resourcesService: hook.service\r\n })\r\n .then(authorisation => {\r\n debug('Organisation ownership set for user ' + hook.result._id)\r\n return hook\r\n })\r\n}\r\n\r\nexport function removeOrganisationAuthorisations (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'removeOrganisationAuthorisations\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const authorisationService = app.getService('authorisations')\r\n\r\n // Unset membership for the all org users\r\n return authorisationService.remove(hook.result._id.toString(), {\r\n query: {\r\n subjectsService: hook.result._id.toString() + '/members',\r\n scope: 'organisations'\r\n },\r\n user: hook.params.user,\r\n // Because we already have resource set it as objects to avoid populating\r\n // Moreover used as an after hook the resource might not already exist anymore\r\n resource: hook.result,\r\n resourcesService: hook.service\r\n })\r\n .then(authorisation => {\r\n debug('Authorisations unset for organisation ' + hook.result._id)\r\n return hook\r\n })\r\n}\r\n\r\nexport function updateOrganisationResource (resourceScope) {\r\n return async function (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'updateOrganisationResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n // Retrieve the list of members\r\n const orgMembersService = app.getService('members', hook.service.getContextId())\r\n const members = await orgMembersService.find({\r\n query: { [resourceScope]: { $elemMatch: { _id: hook.result._id } } },\r\n paginate: false\r\n })\r\n // Update each members\r\n await Promise.all(members.map(member => {\r\n const resources = _.get(member, resourceScope, [])\r\n const resource = _.find(resources, { _id: hook.result._id })\r\n if (resource) {\r\n Object.assign(resource, hook.result)\r\n return orgMembersService.patch(member._id, { [resourceScope]: resources })\r\n } else {\r\n return Promise.resolve()\r\n }\r\n }))\r\n\r\n debug(`Updated resource ${hook.result._id} on scope ${resourceScope} for members of organisation ` + hook.result._id)\r\n return hook\r\n }\r\n}\r\n\r\nexport function removeOrganisationGroups (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'removeOrganisationGroups\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const orgGroupService = app.getService('groups', hook.result)\r\n return orgGroupService.find({ paginate: false })\r\n .then(groups => {\r\n return Promise.all(groups.map(group => {\r\n return orgGroupService.remove(group._id.toString(), {\r\n user: hook.params.user\r\n })\r\n }))\r\n })\r\n .then(groups => {\r\n debug('Removed groups for organisation ' + hook.result._id)\r\n return hook\r\n })\r\n}\r\n\r\nexport async function removeOrganisationTags (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'removeOrganisationTags\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n // Retrieve the list of tags\r\n const orgTagsService = app.getService('tags', hook.result)\r\n const tags = await orgTagsService.find({ paginate: false })\r\n // Retrieve the list of members\r\n const orgMembersService = app.getService('members', hook.result)\r\n const members = await orgMembersService.find({ paginate: false })\r\n // Update each members\r\n for (const i in members) {\r\n const member = members[i]\r\n if (member.tags) {\r\n const filteredTagsMember = _.filter(member.tags, (tag) => {\r\n return _.findIndex(tags, { _id: tag._id }) === -1\r\n })\r\n await orgMembersService.patch(member._id, { tags: filteredTagsMember })\r\n }\r\n }\r\n\r\n debug('Removed tags from organisation ' + hook.result._id)\r\n return hook\r\n}\r\n\r\nexport function createPrivateOrganisation (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'createPrivateOrganisation\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const organisationService = app.getService('organisations')\r\n // Create a private organisation for the user\r\n return organisationService.create({\r\n _id: hook.result._id, // Same ID as user, fine because in another service\r\n name: hook.result.profile.name // Same name as user\r\n }, {\r\n user: hook.result\r\n })\r\n .then(org => {\r\n debug('Private organisation created for user ' + hook.result._id)\r\n })\r\n}\r\n\r\nexport function removePrivateOrganisation (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'removePrivateOrganisation\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const organisationService = app.getService('organisations')\r\n // Remove the private user's organisation\r\n return organisationService.remove(hook.result._id.toString(), {\r\n user: hook.result\r\n })\r\n .then(org => {\r\n debug('Private organisation removed for user ' + hook.result._id)\r\n })\r\n}\r\n\r\nexport async function preventRemoveOrganisation (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'preventRemoveOrganisations\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n // By pass check ?\r\n if (hook.params.force) return hook\r\n const app = hook.app\r\n const orgGroupService = app.getService('groups', hook.id)\r\n const result = await orgGroupService.find({ $limit: 0 })\r\n if (result.total > 0) {\r\n throw new Forbidden('You are not allowed to delete the organisation', {\r\n translation: { key: 'CANNOT_REMOVE_ORGANISATION' }\r\n })\r\n }\r\n return hook\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ced8baf296081a913c6a11bf979771286c86c053","contentHash":"386499a57d0732d4d847bad9b373d5746b840cf7bbca13734bd388d843102c93"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.pusher.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.pusher.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":100}},"2":{"start":{"line":8,"column":39},"end":{"line":25,"column":4}},"3":{"start":{"line":9,"column":14},"end":{"line":20,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":10,"column":92}},"5":{"start":{"line":10,"column":63},"end":{"line":10,"column":92}},"6":{"start":{"line":12,"column":26},"end":{"line":12,"column":55}},"7":{"start":{"line":13,"column":26},"end":{"line":17,"column":6}},"8":{"start":{"line":18,"column":4},"end":{"line":18,"column":230}},"9":{"start":{"line":19,"column":4},"end":{"line":19,"column":16}},"10":{"start":{"line":22,"column":2},"end":{"line":24,"column":4}},"11":{"start":{"line":23,"column":4},"end":{"line":23,"column":40}},"12":{"start":{"line":27,"column":43},"end":{"line":45,"column":4}},"13":{"start":{"line":28,"column":14},"end":{"line":40,"column":4}},"14":{"start":{"line":29,"column":4},"end":{"line":29,"column":92}},"15":{"start":{"line":29,"column":63},"end":{"line":29,"column":92}},"16":{"start":{"line":31,"column":26},"end":{"line":31,"column":55}},"17":{"start":{"line":32,"column":28},"end":{"line":37,"column":6}},"18":{"start":{"line":38,"column":4},"end":{"line":38,"column":234}},"19":{"start":{"line":39,"column":4},"end":{"line":39,"column":16}},"20":{"start":{"line":42,"column":2},"end":{"line":44,"column":4}},"21":{"start":{"line":43,"column":4},"end":{"line":43,"column":40}},"22":{"start":{"line":47,"column":0},"end":{"line":47,"column":48}},"23":{"start":{"line":48,"column":0},"end":{"line":48,"column":34}},"24":{"start":{"line":49,"column":0},"end":{"line":49,"column":34}},"25":{"start":{"line":50,"column":0},"end":{"line":50,"column":64}},"26":{"start":{"line":52,"column":13},"end":{"line":52,"column":29}},"27":{"start":{"line":54,"column":14},"end":{"line":54,"column":44}},"28":{"start":{"line":56,"column":14},"end":{"line":56,"column":31}},"29":{"start":{"line":58,"column":15},"end":{"line":58,"column":46}},"30":{"start":{"line":60,"column":27},"end":{"line":60,"column":59}},"31":{"start":{"line":62,"column":13},"end":{"line":62,"column":37}},"32":{"start":{"line":64,"column":39},"end":{"line":64,"column":93}},"33":{"start":{"line":66,"column":33},"end":{"line":66,"column":456}},"34":{"start":{"line":66,"column":64},"end":{"line":66,"column":89}},"35":{"start":{"line":66,"column":91},"end":{"line":66,"column":453}},"36":{"start":{"line":66,"column":165},"end":{"line":66,"column":263}},"37":{"start":{"line":66,"column":182},"end":{"line":66,"column":195}},"38":{"start":{"line":66,"column":209},"end":{"line":66,"column":219}},"39":{"start":{"line":66,"column":239},"end":{"line":66,"column":253}},"40":{"start":{"line":66,"column":254},"end":{"line":66,"column":261}},"41":{"start":{"line":66,"column":264},"end":{"line":66,"column":426}},"42":{"start":{"line":66,"column":281},"end":{"line":66,"column":296}},"43":{"start":{"line":66,"column":306},"end":{"line":66,"column":424}},"44":{"start":{"line":66,"column":360},"end":{"line":66,"column":380}},"45":{"start":{"line":66,"column":401},"end":{"line":66,"column":420}},"46":{"start":{"line":66,"column":429},"end":{"line":66,"column":449}},"47":{"start":{"line":68,"column":14},"end":{"line":68,"column":59}},"48":{"start":{"line":70,"column":26},"end":{"line":70,"column":34}},"49":{"start":{"line":73,"column":2},"end":{"line":75,"column":3}},"50":{"start":{"line":74,"column":4},"end":{"line":74,"column":97}},"51":{"start":{"line":78,"column":15},"end":{"line":78,"column":17}},"52":{"start":{"line":79,"column":2},"end":{"line":83,"column":3}},"53":{"start":{"line":80,"column":4},"end":{"line":80,"column":30}},"54":{"start":{"line":81,"column":9},"end":{"line":83,"column":3}},"55":{"start":{"line":82,"column":4},"end":{"line":82,"column":38}},"56":{"start":{"line":85,"column":2},"end":{"line":85,"column":186}},"57":{"start":{"line":85,"column":27},"end":{"line":85,"column":56}},"58":{"start":{"line":85,"column":61},"end":{"line":85,"column":186}},"59":{"start":{"line":89,"column":2},"end":{"line":107,"column":7}},"60":{"start":{"line":90,"column":15},"end":{"line":102,"column":6}},"61":{"start":{"line":91,"column":6},"end":{"line":93,"column":7}},"62":{"start":{"line":92,"column":8},"end":{"line":92,"column":94}},"63":{"start":{"line":94,"column":28},"end":{"line":94,"column":57}},"64":{"start":{"line":95,"column":25},"end":{"line":95,"column":87}},"65":{"start":{"line":96,"column":6},"end":{"line":99,"column":9}},"66":{"start":{"line":100,"column":6},"end":{"line":100,"column":106}},"67":{"start":{"line":101,"column":6},"end":{"line":101,"column":18}},"68":{"start":{"line":104,"column":4},"end":{"line":106,"column":6}},"69":{"start":{"line":105,"column":6},"end":{"line":105,"column":41}},"70":{"start":{"line":111,"column":2},"end":{"line":132,"column":7}},"71":{"start":{"line":112,"column":16},"end":{"line":127,"column":6}},"72":{"start":{"line":113,"column":6},"end":{"line":115,"column":7}},"73":{"start":{"line":114,"column":8},"end":{"line":114,"column":93}},"74":{"start":{"line":117,"column":28},"end":{"line":117,"column":57}},"75":{"start":{"line":118,"column":25},"end":{"line":118,"column":87}},"76":{"start":{"line":119,"column":6},"end":{"line":124,"column":9}},"77":{"start":{"line":125,"column":6},"end":{"line":125,"column":108}},"78":{"start":{"line":126,"column":6},"end":{"line":126,"column":18}},"79":{"start":{"line":129,"column":4},"end":{"line":131,"column":6}},"80":{"start":{"line":130,"column":6},"end":{"line":130,"column":42}},"81":{"start":{"line":136,"column":2},"end":{"line":267,"column":7}},"82":{"start":{"line":137,"column":16},"end":{"line":262,"column":6}},"83":{"start":{"line":139,"column":8},"end":{"line":139,"column":72}},"84":{"start":{"line":142,"column":19},"end":{"line":142,"column":59}},"85":{"start":{"line":144,"column":19},"end":{"line":144,"column":145}},"86":{"start":{"line":145,"column":6},"end":{"line":148,"column":7}},"87":{"start":{"line":146,"column":8},"end":{"line":146,"column":62}},"88":{"start":{"line":147,"column":8},"end":{"line":147,"column":37}},"89":{"start":{"line":151,"column":26},"end":{"line":151,"column":84}},"90":{"start":{"line":152,"column":28},"end":{"line":152,"column":57}},"91":{"start":{"line":153,"column":6},"end":{"line":153,"column":57}},"92":{"start":{"line":155,"column":27},"end":{"line":155,"column":88}},"93":{"start":{"line":156,"column":6},"end":{"line":259,"column":7}},"94":{"start":{"line":157,"column":8},"end":{"line":157,"column":91}},"95":{"start":{"line":159,"column":29},"end":{"line":159,"column":106}},"96":{"start":{"line":161,"column":28},"end":{"line":161,"column":109}},"97":{"start":{"line":163,"column":8},"end":{"line":165,"column":9}},"98":{"start":{"line":164,"column":10},"end":{"line":164,"column":71}},"99":{"start":{"line":166,"column":8},"end":{"line":166,"column":97}},"100":{"start":{"line":167,"column":36},"end":{"line":174,"column":10}},"101":{"start":{"line":168,"column":10},"end":{"line":173,"column":13}},"102":{"start":{"line":176,"column":26},"end":{"line":176,"column":99}},"103":{"start":{"line":178,"column":8},"end":{"line":180,"column":9}},"104":{"start":{"line":179,"column":10},"end":{"line":179,"column":65}},"105":{"start":{"line":181,"column":8},"end":{"line":181,"column":93}},"106":{"start":{"line":182,"column":34},"end":{"line":188,"column":10}},"107":{"start":{"line":183,"column":10},"end":{"line":187,"column":13}},"108":{"start":{"line":189,"column":24},"end":{"line":189,"column":109}},"109":{"start":{"line":190,"column":8},"end":{"line":198,"column":9}},"110":{"start":{"line":190,"column":21},"end":{"line":190,"column":22}},"111":{"start":{"line":191,"column":34},"end":{"line":191,"column":47}},"112":{"start":{"line":192,"column":24},"end":{"line":192,"column":40}},"113":{"start":{"line":193,"column":10},"end":{"line":197,"column":11}},"114":{"start":{"line":194,"column":12},"end":{"line":194,"column":54}},"115":{"start":{"line":196,"column":12},"end":{"line":196,"column":57}},"116":{"start":{"line":199,"column":8},"end":{"line":207,"column":9}},"117":{"start":{"line":199,"column":21},"end":{"line":199,"column":22}},"118":{"start":{"line":200,"column":32},"end":{"line":200,"column":45}},"119":{"start":{"line":201,"column":24},"end":{"line":201,"column":38}},"120":{"start":{"line":202,"column":10},"end":{"line":206,"column":11}},"121":{"start":{"line":203,"column":12},"end":{"line":203,"column":51}},"122":{"start":{"line":205,"column":12},"end":{"line":205,"column":54}},"123":{"start":{"line":209,"column":8},"end":{"line":258,"column":9}},"124":{"start":{"line":211,"column":10},"end":{"line":211,"column":90}},"125":{"start":{"line":213,"column":10},"end":{"line":215,"column":11}},"126":{"start":{"line":214,"column":12},"end":{"line":214,"column":57}},"127":{"start":{"line":216,"column":36},"end":{"line":222,"column":12}},"128":{"start":{"line":217,"column":12},"end":{"line":221,"column":15}},"129":{"start":{"line":223,"column":26},"end":{"line":223,"column":62}},"130":{"start":{"line":224,"column":10},"end":{"line":232,"column":11}},"131":{"start":{"line":224,"column":23},"end":{"line":224,"column":24}},"132":{"start":{"line":225,"column":34},"end":{"line":225,"column":44}},"133":{"start":{"line":226,"column":26},"end":{"line":226,"column":35}},"134":{"start":{"line":227,"column":12},"end":{"line":231,"column":13}},"135":{"start":{"line":228,"column":14},"end":{"line":228,"column":53}},"136":{"start":{"line":230,"column":14},"end":{"line":230,"column":56}},"137":{"start":{"line":235,"column":10},"end":{"line":235,"column":92}},"138":{"start":{"line":237,"column":10},"end":{"line":239,"column":11}},"139":{"start":{"line":238,"column":12},"end":{"line":238,"column":59}},"140":{"start":{"line":240,"column":38},"end":{"line":247,"column":12}},"141":{"start":{"line":241,"column":12},"end":{"line":246,"column":15}},"142":{"start":{"line":248,"column":26},"end":{"line":248,"column":64}},"143":{"start":{"line":249,"column":10},"end":{"line":257,"column":11}},"144":{"start":{"line":249,"column":23},"end":{"line":249,"column":24}},"145":{"start":{"line":250,"column":36},"end":{"line":250,"column":46}},"146":{"start":{"line":251,"column":26},"end":{"line":251,"column":35}},"147":{"start":{"line":252,"column":12},"end":{"line":256,"column":13}},"148":{"start":{"line":253,"column":14},"end":{"line":253,"column":55}},"149":{"start":{"line":255,"column":14},"end":{"line":255,"column":58}},"150":{"start":{"line":261,"column":6},"end":{"line":261,"column":18}},"151":{"start":{"line":264,"column":4},"end":{"line":266,"column":6}},"152":{"start":{"line":265,"column":6},"end":{"line":265,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":83},"end":{"line":8,"column":84}},"loc":{"start":{"line":8,"column":89},"end":{"line":25,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":32},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":49},"end":{"line":20,"column":3}},"line":9},"2":{"name":"subscribeSubjectsToResourceTopic","decl":{"start":{"line":22,"column":18},"end":{"line":22,"column":50}},"loc":{"start":{"line":22,"column":56},"end":{"line":24,"column":3}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":27,"column":91},"end":{"line":27,"column":92}},"loc":{"start":{"line":27,"column":97},"end":{"line":45,"column":1}},"line":27},"4":{"name":"(anonymous_4)","decl":{"start":{"line":28,"column":32},"end":{"line":28,"column":33}},"loc":{"start":{"line":28,"column":49},"end":{"line":40,"column":3}},"line":28},"5":{"name":"unsubscribeSubjectsFromResourceTopic","decl":{"start":{"line":42,"column":18},"end":{"line":42,"column":54}},"loc":{"start":{"line":42,"column":60},"end":{"line":44,"column":3}},"line":42},"6":{"name":"_interopRequireDefault","decl":{"start":{"line":64,"column":9},"end":{"line":64,"column":31}},"loc":{"start":{"line":64,"column":37},"end":{"line":64,"column":95}},"line":64},"7":{"name":"_asyncToGenerator","decl":{"start":{"line":66,"column":9},"end":{"line":66,"column":26}},"loc":{"start":{"line":66,"column":31},"end":{"line":66,"column":458}},"line":66},"8":{"name":"(anonymous_8)","decl":{"start":{"line":66,"column":40},"end":{"line":66,"column":41}},"loc":{"start":{"line":66,"column":52},"end":{"line":66,"column":455}},"line":66},"9":{"name":"(anonymous_9)","decl":{"start":{"line":66,"column":110},"end":{"line":66,"column":111}},"loc":{"start":{"line":66,"column":137},"end":{"line":66,"column":451}},"line":66},"10":{"name":"step","decl":{"start":{"line":66,"column":148},"end":{"line":66,"column":152}},"loc":{"start":{"line":66,"column":163},"end":{"line":66,"column":428}},"line":66},"11":{"name":"(anonymous_11)","decl":{"start":{"line":66,"column":341},"end":{"line":66,"column":342}},"loc":{"start":{"line":66,"column":358},"end":{"line":66,"column":382}},"line":66},"12":{"name":"(anonymous_12)","decl":{"start":{"line":66,"column":384},"end":{"line":66,"column":385}},"loc":{"start":{"line":66,"column":399},"end":{"line":66,"column":422}},"line":66},"13":{"name":"populatePushObject","decl":{"start":{"line":72,"column":9},"end":{"line":72,"column":27}},"loc":{"start":{"line":72,"column":34},"end":{"line":86,"column":1}},"line":72},"14":{"name":"createTopic","decl":{"start":{"line":88,"column":9},"end":{"line":88,"column":20}},"loc":{"start":{"line":88,"column":30},"end":{"line":108,"column":1}},"line":88},"15":{"name":"(anonymous_15)","decl":{"start":{"line":89,"column":10},"end":{"line":89,"column":11}},"loc":{"start":{"line":89,"column":16},"end":{"line":107,"column":3}},"line":89},"16":{"name":"(anonymous_16)","decl":{"start":{"line":90,"column":33},"end":{"line":90,"column":34}},"loc":{"start":{"line":90,"column":50},"end":{"line":102,"column":5}},"line":90},"17":{"name":"(anonymous_17)","decl":{"start":{"line":104,"column":11},"end":{"line":104,"column":12}},"loc":{"start":{"line":104,"column":25},"end":{"line":106,"column":5}},"line":104},"18":{"name":"removeTopic","decl":{"start":{"line":110,"column":9},"end":{"line":110,"column":20}},"loc":{"start":{"line":110,"column":30},"end":{"line":133,"column":1}},"line":110},"19":{"name":"(anonymous_19)","decl":{"start":{"line":111,"column":10},"end":{"line":111,"column":11}},"loc":{"start":{"line":111,"column":16},"end":{"line":132,"column":3}},"line":111},"20":{"name":"(anonymous_20)","decl":{"start":{"line":112,"column":34},"end":{"line":112,"column":35}},"loc":{"start":{"line":112,"column":51},"end":{"line":127,"column":5}},"line":112},"21":{"name":"(anonymous_21)","decl":{"start":{"line":129,"column":11},"end":{"line":129,"column":12}},"loc":{"start":{"line":129,"column":26},"end":{"line":131,"column":5}},"line":129},"22":{"name":"updateSubjectSubscriptions","decl":{"start":{"line":135,"column":9},"end":{"line":135,"column":35}},"loc":{"start":{"line":135,"column":45},"end":{"line":268,"column":1}},"line":135},"23":{"name":"(anonymous_23)","decl":{"start":{"line":136,"column":10},"end":{"line":136,"column":11}},"loc":{"start":{"line":136,"column":16},"end":{"line":267,"column":3}},"line":136},"24":{"name":"(anonymous_24)","decl":{"start":{"line":137,"column":34},"end":{"line":137,"column":35}},"loc":{"start":{"line":137,"column":51},"end":{"line":262,"column":5}},"line":137},"25":{"name":"isTopicObjectEqual","decl":{"start":{"line":138,"column":15},"end":{"line":138,"column":33}},"loc":{"start":{"line":138,"column":52},"end":{"line":140,"column":7}},"line":138},"26":{"name":"(anonymous_26)","decl":{"start":{"line":167,"column":54},"end":{"line":167,"column":55}},"loc":{"start":{"line":167,"column":71},"end":{"line":174,"column":9}},"line":167},"27":{"name":"(anonymous_27)","decl":{"start":{"line":182,"column":50},"end":{"line":182,"column":51}},"loc":{"start":{"line":182,"column":67},"end":{"line":188,"column":9}},"line":182},"28":{"name":"(anonymous_28)","decl":{"start":{"line":216,"column":47},"end":{"line":216,"column":48}},"loc":{"start":{"line":216,"column":64},"end":{"line":222,"column":11}},"line":216},"29":{"name":"(anonymous_29)","decl":{"start":{"line":240,"column":49},"end":{"line":240,"column":50}},"loc":{"start":{"line":240,"column":66},"end":{"line":247,"column":11}},"line":240},"30":{"name":"(anonymous_30)","decl":{"start":{"line":264,"column":11},"end":{"line":264,"column":12}},"loc":{"start":{"line":264,"column":26},"end":{"line":266,"column":5}},"line":264}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":92}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":10,"column":92}},{"start":{"line":10,"column":4},"end":{"line":10,"column":92}}],"line":10},"1":{"loc":{"start":{"line":10,"column":8},"end":{"line":10,"column":61}},"type":"binary-expr","locations":[{"start":{"line":10,"column":8},"end":{"line":10,"column":29}},{"start":{"line":10,"column":33},"end":{"line":10,"column":61}}],"line":10},"2":{"loc":{"start":{"line":18,"column":135},"end":{"line":18,"column":205}},"type":"binary-expr","locations":[{"start":{"line":18,"column":135},"end":{"line":18,"column":168}},{"start":{"line":18,"column":172},"end":{"line":18,"column":205}}],"line":18},"3":{"loc":{"start":{"line":29,"column":4},"end":{"line":29,"column":92}},"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":29,"column":92}},{"start":{"line":29,"column":4},"end":{"line":29,"column":92}}],"line":29},"4":{"loc":{"start":{"line":29,"column":8},"end":{"line":29,"column":61}},"type":"binary-expr","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":29}},{"start":{"line":29,"column":33},"end":{"line":29,"column":61}}],"line":29},"5":{"loc":{"start":{"line":38,"column":139},"end":{"line":38,"column":209}},"type":"binary-expr","locations":[{"start":{"line":38,"column":139},"end":{"line":38,"column":172}},{"start":{"line":38,"column":176},"end":{"line":38,"column":209}}],"line":38},"6":{"loc":{"start":{"line":64,"column":46},"end":{"line":64,"column":92}},"type":"cond-expr","locations":[{"start":{"line":64,"column":70},"end":{"line":64,"column":73}},{"start":{"line":64,"column":76},"end":{"line":64,"column":92}}],"line":64},"7":{"loc":{"start":{"line":64,"column":46},"end":{"line":64,"column":67}},"type":"binary-expr","locations":[{"start":{"line":64,"column":46},"end":{"line":64,"column":49}},{"start":{"line":64,"column":53},"end":{"line":64,"column":67}}],"line":64},"8":{"loc":{"start":{"line":66,"column":264},"end":{"line":66,"column":426}},"type":"if","locations":[{"start":{"line":66,"column":264},"end":{"line":66,"column":426}},{"start":{"line":66,"column":264},"end":{"line":66,"column":426}}],"line":66},"9":{"loc":{"start":{"line":73,"column":2},"end":{"line":75,"column":3}},"type":"if","locations":[{"start":{"line":73,"column":2},"end":{"line":75,"column":3}},{"start":{"line":73,"column":2},"end":{"line":75,"column":3}}],"line":73},"10":{"loc":{"start":{"line":79,"column":2},"end":{"line":83,"column":3}},"type":"if","locations":[{"start":{"line":79,"column":2},"end":{"line":83,"column":3}},{"start":{"line":79,"column":2},"end":{"line":83,"column":3}}],"line":79},"11":{"loc":{"start":{"line":81,"column":9},"end":{"line":83,"column":3}},"type":"if","locations":[{"start":{"line":81,"column":9},"end":{"line":83,"column":3}},{"start":{"line":81,"column":9},"end":{"line":83,"column":3}}],"line":81},"12":{"loc":{"start":{"line":81,"column":13},"end":{"line":81,"column":45}},"type":"binary-expr","locations":[{"start":{"line":81,"column":13},"end":{"line":81,"column":24}},{"start":{"line":81,"column":28},"end":{"line":81,"column":45}}],"line":81},"13":{"loc":{"start":{"line":85,"column":2},"end":{"line":85,"column":186}},"type":"if","locations":[{"start":{"line":85,"column":2},"end":{"line":85,"column":186}},{"start":{"line":85,"column":2},"end":{"line":85,"column":186}}],"line":85},"14":{"loc":{"start":{"line":91,"column":6},"end":{"line":93,"column":7}},"type":"if","locations":[{"start":{"line":91,"column":6},"end":{"line":93,"column":7}},{"start":{"line":91,"column":6},"end":{"line":93,"column":7}}],"line":91},"15":{"loc":{"start":{"line":113,"column":6},"end":{"line":115,"column":7}},"type":"if","locations":[{"start":{"line":113,"column":6},"end":{"line":115,"column":7}},{"start":{"line":113,"column":6},"end":{"line":115,"column":7}}],"line":113},"16":{"loc":{"start":{"line":144,"column":19},"end":{"line":144,"column":145}},"type":"cond-expr","locations":[{"start":{"line":144,"column":43},"end":{"line":144,"column":84}},{"start":{"line":144,"column":87},"end":{"line":144,"column":145}}],"line":144},"17":{"loc":{"start":{"line":145,"column":6},"end":{"line":148,"column":7}},"type":"if","locations":[{"start":{"line":145,"column":6},"end":{"line":148,"column":7}},{"start":{"line":145,"column":6},"end":{"line":148,"column":7}}],"line":145},"18":{"loc":{"start":{"line":153,"column":15},"end":{"line":153,"column":56}},"type":"cond-expr","locations":[{"start":{"line":153,"column":39},"end":{"line":153,"column":45}},{"start":{"line":153,"column":48},"end":{"line":153,"column":56}}],"line":153},"19":{"loc":{"start":{"line":156,"column":6},"end":{"line":259,"column":7}},"type":"if","locations":[{"start":{"line":156,"column":6},"end":{"line":259,"column":7}},{"start":{"line":156,"column":6},"end":{"line":259,"column":7}}],"line":156},"20":{"loc":{"start":{"line":157,"column":25},"end":{"line":157,"column":90}},"type":"cond-expr","locations":[{"start":{"line":157,"column":57},"end":{"line":157,"column":71}},{"start":{"line":157,"column":74},"end":{"line":157,"column":90}}],"line":157},"21":{"loc":{"start":{"line":163,"column":8},"end":{"line":165,"column":9}},"type":"if","locations":[{"start":{"line":163,"column":8},"end":{"line":165,"column":9}},{"start":{"line":163,"column":8},"end":{"line":165,"column":9}}],"line":163},"22":{"loc":{"start":{"line":172,"column":20},"end":{"line":172,"column":67}},"type":"cond-expr","locations":[{"start":{"line":172,"column":44},"end":{"line":172,"column":48}},{"start":{"line":172,"column":51},"end":{"line":172,"column":67}}],"line":172},"23":{"loc":{"start":{"line":178,"column":8},"end":{"line":180,"column":9}},"type":"if","locations":[{"start":{"line":178,"column":8},"end":{"line":180,"column":9}},{"start":{"line":178,"column":8},"end":{"line":180,"column":9}}],"line":178},"24":{"loc":{"start":{"line":186,"column":20},"end":{"line":186,"column":67}},"type":"cond-expr","locations":[{"start":{"line":186,"column":44},"end":{"line":186,"column":48}},{"start":{"line":186,"column":51},"end":{"line":186,"column":67}}],"line":186},"25":{"loc":{"start":{"line":193,"column":10},"end":{"line":197,"column":11}},"type":"if","locations":[{"start":{"line":193,"column":10},"end":{"line":197,"column":11}},{"start":{"line":193,"column":10},"end":{"line":197,"column":11}}],"line":193},"26":{"loc":{"start":{"line":202,"column":10},"end":{"line":206,"column":11}},"type":"if","locations":[{"start":{"line":202,"column":10},"end":{"line":206,"column":11}},{"start":{"line":202,"column":10},"end":{"line":206,"column":11}}],"line":202},"27":{"loc":{"start":{"line":209,"column":8},"end":{"line":258,"column":9}},"type":"if","locations":[{"start":{"line":209,"column":8},"end":{"line":258,"column":9}},{"start":{"line":209,"column":8},"end":{"line":258,"column":9}}],"line":209},"28":{"loc":{"start":{"line":213,"column":10},"end":{"line":215,"column":11}},"type":"if","locations":[{"start":{"line":213,"column":10},"end":{"line":215,"column":11}},{"start":{"line":213,"column":10},"end":{"line":215,"column":11}}],"line":213},"29":{"loc":{"start":{"line":220,"column":22},"end":{"line":220,"column":69}},"type":"cond-expr","locations":[{"start":{"line":220,"column":46},"end":{"line":220,"column":50}},{"start":{"line":220,"column":53},"end":{"line":220,"column":69}}],"line":220},"30":{"loc":{"start":{"line":227,"column":12},"end":{"line":231,"column":13}},"type":"if","locations":[{"start":{"line":227,"column":12},"end":{"line":231,"column":13}},{"start":{"line":227,"column":12},"end":{"line":231,"column":13}}],"line":227},"31":{"loc":{"start":{"line":237,"column":10},"end":{"line":239,"column":11}},"type":"if","locations":[{"start":{"line":237,"column":10},"end":{"line":239,"column":11}},{"start":{"line":237,"column":10},"end":{"line":239,"column":11}}],"line":237},"32":{"loc":{"start":{"line":245,"column":22},"end":{"line":245,"column":69}},"type":"cond-expr","locations":[{"start":{"line":245,"column":46},"end":{"line":245,"column":50}},{"start":{"line":245,"column":53},"end":{"line":245,"column":69}}],"line":245},"33":{"loc":{"start":{"line":252,"column":12},"end":{"line":256,"column":13}},"type":"if","locations":[{"start":{"line":252,"column":12},"end":{"line":256,"column":13}},{"start":{"line":252,"column":12},"end":{"line":256,"column":13}}],"line":252}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":1,"11":0,"12":1,"13":1,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":1,"21":0,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":2,"33":2,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":1,"48":1,"49":11,"50":0,"51":11,"52":11,"53":7,"54":4,"55":4,"56":11,"57":5,"58":6,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0},"f":{"0":1,"1":0,"2":0,"3":1,"4":0,"5":0,"6":2,"7":2,"8":0,"9":0,"10":0,"11":0,"12":0,"13":11,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,2],"7":[2,2],"8":[0,0],"9":[0,11],"10":[7,4],"11":[4,0],"12":[4,4],"13":[5,6],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0]},"inputSourceMap":{"version":3,"sources":["hooks.pusher.js"],"names":["hook","params","resource","topics","Promise","resolve","pusherService","app","getService","subscriptions","create","action","pushObject","pushObjectService","resourcesService","users","subjects","debug","length","_id","toString","path","name","subscribeSubjectsToResourceTopic","unsubscriptions","remove","query","unsubscribeSubjectsFromResourceTopic","populatePushObject","createTopic","removeTopic","updateSubjectSubscriptions","defaultTopicField","type","Error","data","serviceField","idField","throwOnNotFound","options","topicField","_","get","result","service","patch","method","isTopicObjectEqual","object1","object2","isEqual","item","subjectAsItem","field","itemService","context","Array","isArray","previousTopics","previousItem","commonTopics","intersectionWith","removedTopics","differenceWith","filter","user","unsubscribePromises","map","topic","addedTopics","subscribePromises","results","all","i"],"mappings":"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","file":"hooks.pusher.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import makeDebug from 'debug'\r\nimport _ from 'lodash'\r\nimport { getItems } from 'feathers-hooks-common'\r\nimport { populateObject } from './hooks.query'\r\n\r\nconst debug = makeDebug('kdk:core:pusher:hooks')\r\n\r\nconst defaultTopicField = 'topics'\r\n\r\nexport function populatePushObject (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'populatePushObject\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n // This hook is only for some of the operations\r\n let action = ''\r\n if (hook.data) {\r\n action = hook.data.action\r\n } else if (hook.params && hook.params.query) {\r\n action = hook.params.query.action\r\n }\r\n\r\n if (action === 'device') return Promise.resolve(hook)\r\n else return populateObject({ serviceField: 'pushObjectService', idField: 'pushObject', throwOnNotFound: true })(hook)\r\n}\r\n\r\nexport function createTopic (options) {\r\n return async function (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'createTopic\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const pusherService = hook.app.getService('pusher')\r\n const topicField = _.get(options, 'topicField', defaultTopicField)\r\n hook.result = await pusherService.create(\r\n { action: 'topic', topicField }, {\r\n pushObject: hook.result,\r\n pushObjectService: hook.service\r\n })\r\n debug('Added topic to object ' + hook.result._id.toString() + ' from service ' + hook.service.path)\r\n return hook\r\n }\r\n}\r\n\r\nexport function removeTopic (options) {\r\n return async function (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'removeTopic\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const pusherService = hook.app.getService('pusher')\r\n const topicField = _.get(options, 'topicField', defaultTopicField)\r\n await pusherService.remove(hook.result._id.toString(), {\r\n query: { action: 'topic', topicField },\r\n pushObject: hook.result,\r\n pushObjectService: hook.service,\r\n patch: hook.method !== 'remove' // Do not patch object when it is deleted\r\n })\r\n debug('Removed topic on object ' + hook.result._id.toString() + ' from service ' + hook.service.path)\r\n return hook\r\n }\r\n}\r\n\r\nexport async function subscribeSubjectsToResourceTopic (hook) {\r\n if (!hook.params.resource || !hook.params.resource.topics) return Promise.resolve(hook)\r\n\r\n const pusherService = hook.app.getService('pusher')\r\n const subscriptions = await pusherService.create(\r\n { action: 'subscriptions' }, {\r\n pushObject: hook.params.resource,\r\n pushObjectService: hook.params.resourcesService,\r\n users: hook.params.subjects\r\n })\r\n debug('Subscribed ' + subscriptions.length + ' users on topic object ' + hook.params.resource._id.toString() + ' from service ' + (hook.params.resourcesService.path || hook.params.resourcesService.name), hook.params.subjects)\r\n return hook\r\n}\r\n\r\nexport async function unsubscribeSubjectsFromResourceTopic (hook) {\r\n if (!hook.params.resource || !hook.params.resource.topics) return Promise.resolve(hook)\r\n\r\n const pusherService = hook.app.getService('pusher')\r\n const unsubscriptions = await pusherService.remove(hook.params.resource._id.toString(), {\r\n query: { action: 'subscriptions' },\r\n pushObject: hook.params.resource,\r\n pushObjectService: hook.params.resourcesService,\r\n users: hook.params.subjects\r\n })\r\n debug('Unsubscribed ' + unsubscriptions.length + ' users on topic object ' + hook.params.resource._id.toString() + ' from service ' + (hook.params.resourcesService.path || hook.params.resourcesService.name), hook.params.subjects)\r\n return hook\r\n}\r\n\r\nexport function updateSubjectSubscriptions (options) {\r\n return async function (hook) {\r\n function isTopicObjectEqual (object1, object2) {\r\n return _.isEqual(object1.topics, object2.topics)\r\n }\r\n\r\n const item = getItems(hook)\r\n // Field might be on the service object or subject\r\n let topics = (options.subjectAsItem\r\n ? _.get(item, options.field) : _.get(hook.params, 'user.' + options.field))\r\n if (!topics) {\r\n debug('No subscriptions to update for object ', item)\r\n return Promise.resolve(hook)\r\n }\r\n\r\n // Service can be contextual, look for context on initiator service\r\n const itemService = hook.app.getService(options.service, hook.service.context)\r\n const pusherService = hook.app.getService('pusher')\r\n topics = (Array.isArray(topics) ? topics : [topics])\r\n // Retrieve previous version of the item\r\n let previousTopics = _.get(hook.params.previousItem, options.field)\r\n if (previousTopics) {\r\n previousTopics = (Array.isArray(previousTopics) ? previousTopics : [previousTopics])\r\n // Find common topics\r\n const commonTopics = _.intersectionWith(topics, previousTopics, isTopicObjectEqual)\r\n // Unsubscribe removed topics\r\n let removedTopics = _.differenceWith(previousTopics, commonTopics, isTopicObjectEqual)\r\n // Apply filter if any\r\n if (typeof options.filter === 'function') {\r\n removedTopics = options.filter('unsubscribe', removedTopics)\r\n }\r\n debug('Removing topic subscriptions for object ', item, removedTopics, hook.params.user)\r\n const unsubscribePromises = removedTopics.map(topic => pusherService.remove(topic._id.toString(), {\r\n query: { action: 'subscriptions' },\r\n pushObject: topic,\r\n pushObjectService: itemService,\r\n users: [(options.subjectAsItem ? item : hook.params.user)]\r\n }))\r\n // And subscribe new ones\r\n let addedTopics = _.differenceWith(topics, commonTopics, isTopicObjectEqual)\r\n // Apply filter if any\r\n if (typeof options.filter === 'function') {\r\n addedTopics = options.filter('subscribe', addedTopics)\r\n }\r\n debug('Adding topic subscriptions for object ', item, addedTopics, hook.params.user)\r\n const subscribePromises = addedTopics.map(topic => pusherService.create(\r\n { action: 'subscriptions' }, {\r\n pushObject: topic,\r\n pushObjectService: itemService,\r\n users: [(options.subjectAsItem ? item : hook.params.user)]\r\n }))\r\n const results = await Promise.all([Promise.all(unsubscribePromises), Promise.all(subscribePromises)])\r\n for (let i = 0; i < results[0].length; i++) {\r\n const unsubscriptions = results[0][i]\r\n const topic = removedTopics[i]\r\n if (unsubscriptions.length > 0) {\r\n debug('Unsubscribed from topic ' + topic)\r\n } else {\r\n debug('No unsubscription on topic ' + topic)\r\n }\r\n }\r\n for (let i = 0; i < results[1].length; i++) {\r\n const subscriptions = results[1][i]\r\n const topic = addedTopics[i]\r\n if (subscriptions.length > 0) {\r\n debug('Subscribed from topic ', topic)\r\n } else {\r\n debug('No subscription on topic ', topic)\r\n }\r\n }\r\n } else {\r\n if (hook.method !== 'remove') {\r\n // Subscribed new topics\r\n debug('Adding topic subscriptions for object ', item, topics, hook.params.user)\r\n // Apply filter if any\r\n if (typeof options.filter === 'function') {\r\n topics = options.filter('subscribe', topics)\r\n }\r\n const subscribePromises = topics.map(topic => pusherService.create(\r\n { action: 'subscriptions' }, {\r\n pushObject: topic,\r\n pushObjectService: itemService,\r\n users: [(options.subjectAsItem ? item : hook.params.user)]\r\n }))\r\n const results = await Promise.all(subscribePromises)\r\n for (let i = 0; i < results.length; i++) {\r\n const subscriptions = results[i]\r\n const topic = topics[i]\r\n if (subscriptions.length > 0) {\r\n debug('Subscribed from topic ', topic)\r\n } else {\r\n debug('No subscription on topic ', topic)\r\n }\r\n }\r\n } else {\r\n // Subscribed new topics\r\n debug('Removing topic subscriptions for object ', item, topics, hook.params.user)\r\n // Apply filter if any\r\n if (typeof options.filter === 'function') {\r\n topics = options.filter('unsubscribe', topics)\r\n }\r\n const unsubscribePromises = topics.map(topic => pusherService.remove(topic._id.toString(), {\r\n query: { action: 'subscriptions' },\r\n pushObject: topic,\r\n pushObjectService: itemService,\r\n users: [(options.subjectAsItem ? item : hook.params.user)]\r\n }))\r\n const results = await Promise.all(unsubscribePromises)\r\n for (let i = 0; i < results.length; i++) {\r\n const unsubscriptions = results[i]\r\n const topic = topics[i]\r\n if (unsubscriptions.length > 0) {\r\n debug('Unsubscribed from topic ', topic)\r\n } else {\r\n debug('No unsubscription on topic ', topic)\r\n }\r\n }\r\n }\r\n }\r\n\r\n return hook\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e78245853fad6f1c390f3b1f68b86193526f5898","contentHash":"ec24c85b78b44d45de3a97d302456b0a5c84b8965dac824d2dc50a49f0621c45"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":32}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":30}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":32}},"4":{"start":{"line":10,"column":14},"end":{"line":10,"column":43}},"5":{"start":{"line":12,"column":16},"end":{"line":12,"column":47}},"6":{"start":{"line":14,"column":15},"end":{"line":14,"column":33}},"7":{"start":{"line":16,"column":13},"end":{"line":16,"column":29}},"8":{"start":{"line":18,"column":14},"end":{"line":18,"column":44}},"9":{"start":{"line":20,"column":39},"end":{"line":20,"column":93}},"10":{"start":{"line":22,"column":33},"end":{"line":22,"column":456}},"11":{"start":{"line":22,"column":64},"end":{"line":22,"column":89}},"12":{"start":{"line":22,"column":91},"end":{"line":22,"column":453}},"13":{"start":{"line":22,"column":165},"end":{"line":22,"column":263}},"14":{"start":{"line":22,"column":182},"end":{"line":22,"column":195}},"15":{"start":{"line":22,"column":209},"end":{"line":22,"column":219}},"16":{"start":{"line":22,"column":239},"end":{"line":22,"column":253}},"17":{"start":{"line":22,"column":254},"end":{"line":22,"column":261}},"18":{"start":{"line":22,"column":264},"end":{"line":22,"column":426}},"19":{"start":{"line":22,"column":281},"end":{"line":22,"column":296}},"20":{"start":{"line":22,"column":306},"end":{"line":22,"column":424}},"21":{"start":{"line":22,"column":360},"end":{"line":22,"column":380}},"22":{"start":{"line":22,"column":401},"end":{"line":22,"column":420}},"23":{"start":{"line":22,"column":429},"end":{"line":22,"column":449}},"24":{"start":{"line":24,"column":14},"end":{"line":24,"column":60}},"25":{"start":{"line":27,"column":2},"end":{"line":27,"column":24}},"26":{"start":{"line":31,"column":18},"end":{"line":31,"column":87}},"27":{"start":{"line":33,"column":2},"end":{"line":55,"column":4}},"28":{"start":{"line":34,"column":4},"end":{"line":36,"column":5}},"29":{"start":{"line":35,"column":6},"end":{"line":35,"column":90}},"30":{"start":{"line":37,"column":22},"end":{"line":37,"column":33}},"31":{"start":{"line":38,"column":20},"end":{"line":38,"column":37}},"32":{"start":{"line":39,"column":20},"end":{"line":39,"column":24}},"33":{"start":{"line":40,"column":4},"end":{"line":42,"column":5}},"34":{"start":{"line":41,"column":6},"end":{"line":41,"column":24}},"35":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"36":{"start":{"line":44,"column":6},"end":{"line":44,"column":24}},"37":{"start":{"line":47,"column":4},"end":{"line":53,"column":5}},"38":{"start":{"line":48,"column":6},"end":{"line":48,"column":104}},"39":{"start":{"line":49,"column":6},"end":{"line":52,"column":7}},"40":{"start":{"line":51,"column":8},"end":{"line":51,"column":170}},"41":{"start":{"line":54,"column":4},"end":{"line":54,"column":16}},"42":{"start":{"line":59,"column":2},"end":{"line":101,"column":7}},"43":{"start":{"line":60,"column":15},"end":{"line":96,"column":6}},"44":{"start":{"line":61,"column":6},"end":{"line":63,"column":7}},"45":{"start":{"line":62,"column":8},"end":{"line":62,"column":93}},"46":{"start":{"line":64,"column":18},"end":{"line":64,"column":26}},"47":{"start":{"line":65,"column":24},"end":{"line":65,"column":57}},"48":{"start":{"line":66,"column":18},"end":{"line":66,"column":67}},"49":{"start":{"line":68,"column":6},"end":{"line":94,"column":7}},"50":{"start":{"line":69,"column":20},"end":{"line":69,"column":31}},"51":{"start":{"line":71,"column":28},"end":{"line":71,"column":63}},"52":{"start":{"line":72,"column":8},"end":{"line":89,"column":9}},"53":{"start":{"line":74,"column":10},"end":{"line":78,"column":11}},"54":{"start":{"line":75,"column":12},"end":{"line":75,"column":50}},"55":{"start":{"line":77,"column":12},"end":{"line":77,"column":76}},"56":{"start":{"line":80,"column":24},"end":{"line":80,"column":37}},"57":{"start":{"line":81,"column":10},"end":{"line":85,"column":11}},"58":{"start":{"line":82,"column":12},"end":{"line":82,"column":54}},"59":{"start":{"line":84,"column":12},"end":{"line":84,"column":48}},"60":{"start":{"line":86,"column":10},"end":{"line":86,"column":48}},"61":{"start":{"line":88,"column":10},"end":{"line":88,"column":44}},"62":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"63":{"start":{"line":92,"column":10},"end":{"line":92,"column":156}},"64":{"start":{"line":95,"column":6},"end":{"line":95,"column":18}},"65":{"start":{"line":98,"column":4},"end":{"line":100,"column":6}},"66":{"start":{"line":99,"column":6},"end":{"line":99,"column":41}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":20,"column":9},"end":{"line":20,"column":31}},"loc":{"start":{"line":20,"column":37},"end":{"line":20,"column":95}},"line":20},"1":{"name":"_asyncToGenerator","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":26}},"loc":{"start":{"line":22,"column":31},"end":{"line":22,"column":458}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":40},"end":{"line":22,"column":41}},"loc":{"start":{"line":22,"column":52},"end":{"line":22,"column":455}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":22,"column":110},"end":{"line":22,"column":111}},"loc":{"start":{"line":22,"column":137},"end":{"line":22,"column":451}},"line":22},"4":{"name":"step","decl":{"start":{"line":22,"column":148},"end":{"line":22,"column":152}},"loc":{"start":{"line":22,"column":163},"end":{"line":22,"column":428}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":22,"column":341},"end":{"line":22,"column":342}},"loc":{"start":{"line":22,"column":358},"end":{"line":22,"column":382}},"line":22},"6":{"name":"(anonymous_6)","decl":{"start":{"line":22,"column":384},"end":{"line":22,"column":385}},"loc":{"start":{"line":22,"column":399},"end":{"line":22,"column":422}},"line":22},"7":{"name":"skipEvents","decl":{"start":{"line":26,"column":9},"end":{"line":26,"column":19}},"loc":{"start":{"line":26,"column":26},"end":{"line":28,"column":1}},"line":26},"8":{"name":"rateLimit","decl":{"start":{"line":30,"column":9},"end":{"line":30,"column":18}},"loc":{"start":{"line":30,"column":28},"end":{"line":56,"column":1}},"line":30},"9":{"name":"(anonymous_9)","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":10}},"loc":{"start":{"line":33,"column":25},"end":{"line":55,"column":3}},"line":33},"10":{"name":"countLimit","decl":{"start":{"line":58,"column":9},"end":{"line":58,"column":19}},"loc":{"start":{"line":58,"column":29},"end":{"line":102,"column":1}},"line":58},"11":{"name":"(anonymous_11)","decl":{"start":{"line":59,"column":10},"end":{"line":59,"column":11}},"loc":{"start":{"line":59,"column":16},"end":{"line":101,"column":3}},"line":59},"12":{"name":"(anonymous_12)","decl":{"start":{"line":60,"column":33},"end":{"line":60,"column":34}},"loc":{"start":{"line":60,"column":50},"end":{"line":96,"column":5}},"line":60},"13":{"name":"(anonymous_13)","decl":{"start":{"line":98,"column":11},"end":{"line":98,"column":12}},"loc":{"start":{"line":98,"column":25},"end":{"line":100,"column":5}},"line":98}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":46},"end":{"line":20,"column":92}},"type":"cond-expr","locations":[{"start":{"line":20,"column":70},"end":{"line":20,"column":73}},{"start":{"line":20,"column":76},"end":{"line":20,"column":92}}],"line":20},"1":{"loc":{"start":{"line":20,"column":46},"end":{"line":20,"column":67}},"type":"binary-expr","locations":[{"start":{"line":20,"column":46},"end":{"line":20,"column":49}},{"start":{"line":20,"column":53},"end":{"line":20,"column":67}}],"line":20},"2":{"loc":{"start":{"line":22,"column":264},"end":{"line":22,"column":426}},"type":"if","locations":[{"start":{"line":22,"column":264},"end":{"line":22,"column":426}},{"start":{"line":22,"column":264},"end":{"line":22,"column":426}}],"line":22},"3":{"loc":{"start":{"line":34,"column":4},"end":{"line":36,"column":5}},"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":36,"column":5}},{"start":{"line":34,"column":4},"end":{"line":36,"column":5}}],"line":34},"4":{"loc":{"start":{"line":40,"column":4},"end":{"line":42,"column":5}},"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":42,"column":5}},{"start":{"line":40,"column":4},"end":{"line":42,"column":5}}],"line":40},"5":{"loc":{"start":{"line":40,"column":8},"end":{"line":40,"column":60}},"type":"binary-expr","locations":[{"start":{"line":40,"column":8},"end":{"line":40,"column":25}},{"start":{"line":40,"column":29},"end":{"line":40,"column":60}}],"line":40},"6":{"loc":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},{"start":{"line":43,"column":4},"end":{"line":45,"column":5}}],"line":43},"7":{"loc":{"start":{"line":43,"column":8},"end":{"line":43,"column":54}},"type":"binary-expr","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":23}},{"start":{"line":43,"column":27},"end":{"line":43,"column":54}}],"line":43},"8":{"loc":{"start":{"line":47,"column":4},"end":{"line":53,"column":5}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":53,"column":5}},{"start":{"line":47,"column":4},"end":{"line":53,"column":5}}],"line":47},"9":{"loc":{"start":{"line":49,"column":6},"end":{"line":52,"column":7}},"type":"if","locations":[{"start":{"line":49,"column":6},"end":{"line":52,"column":7}},{"start":{"line":49,"column":6},"end":{"line":52,"column":7}}],"line":49},"10":{"loc":{"start":{"line":61,"column":6},"end":{"line":63,"column":7}},"type":"if","locations":[{"start":{"line":61,"column":6},"end":{"line":63,"column":7}},{"start":{"line":61,"column":6},"end":{"line":63,"column":7}}],"line":61},"11":{"loc":{"start":{"line":66,"column":18},"end":{"line":66,"column":67}},"type":"cond-expr","locations":[{"start":{"line":66,"column":30},"end":{"line":66,"column":53}},{"start":{"line":66,"column":56},"end":{"line":66,"column":67}}],"line":66},"12":{"loc":{"start":{"line":68,"column":6},"end":{"line":94,"column":7}},"type":"if","locations":[{"start":{"line":68,"column":6},"end":{"line":94,"column":7}},{"start":{"line":68,"column":6},"end":{"line":94,"column":7}}],"line":68},"13":{"loc":{"start":{"line":72,"column":8},"end":{"line":89,"column":9}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":89,"column":9}},{"start":{"line":72,"column":8},"end":{"line":89,"column":9}}],"line":72},"14":{"loc":{"start":{"line":74,"column":10},"end":{"line":78,"column":11}},"type":"if","locations":[{"start":{"line":74,"column":10},"end":{"line":78,"column":11}},{"start":{"line":74,"column":10},"end":{"line":78,"column":11}}],"line":74},"15":{"loc":{"start":{"line":81,"column":10},"end":{"line":85,"column":11}},"type":"if","locations":[{"start":{"line":81,"column":10},"end":{"line":85,"column":11}},{"start":{"line":81,"column":10},"end":{"line":85,"column":11}}],"line":81},"16":{"loc":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"type":"if","locations":[{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},{"start":{"line":91,"column":8},"end":{"line":93,"column":9}}],"line":91}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":3,"12":3,"13":6,"14":6,"15":5,"16":1,"17":1,"18":5,"19":2,"20":3,"21":3,"22":0,"23":3,"24":1,"25":0,"26":1,"27":1,"28":3,"29":0,"30":3,"31":3,"32":3,"33":3,"34":0,"35":3,"36":0,"37":3,"38":3,"39":3,"40":1,"41":2,"42":1,"43":1,"44":3,"45":0,"46":3,"47":3,"48":3,"49":3,"50":3,"51":3,"52":3,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":3,"62":3,"63":1,"64":2,"65":1,"66":3},"f":{"0":1,"1":1,"2":3,"3":3,"4":6,"5":3,"6":0,"7":0,"8":1,"9":3,"10":1,"11":1,"12":3,"13":3},"b":{"0":[0,1],"1":[1,1],"2":[2,3],"3":[0,3],"4":[0,3],"5":[3,0],"6":[0,3],"7":[3,3],"8":[3,0],"9":[1,2],"10":[0,3],"11":[0,3],"12":[3,0],"13":[0,3],"14":[0,0],"15":[0,0],"16":[1,2]},"inputSourceMap":{"version":3,"sources":["hooks.service.js"],"names":["skipEvents","rateLimit","countLimit","debug","hook","SKIP","options","limiter","RateLimiter","tokensPerInterval","interval","type","Error","operation","method","service","name","getTokensRemaining","tryRemoveTokens","TooManyRequests","translation","key","app","customMax","max","count","customCount","getService","context","query","$limit","Object","assign","find","total","Forbidden"],"mappings":"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","file":"hooks.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import { TooManyRequests, Forbidden } from '@feathersjs/errors'\r\nimport { SKIP } from '@feathersjs/feathers'\r\nimport { RateLimiter } from 'limiter'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:service:hooks')\r\n\r\nexport function skipEvents (hook) {\r\n return SKIP\r\n}\r\n\r\nexport function rateLimit (options) {\r\n const limiter = new RateLimiter(options.tokensPerInterval, options.interval)\r\n\r\n return function (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'rateLimit\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const operation = hook.method\r\n const service = hook.service.name\r\n let rateLimit = true\r\n if (options.operation && (options.operation !== operation)) {\r\n rateLimit = false\r\n }\r\n if (options.service && (options.service !== service)) {\r\n rateLimit = false\r\n }\r\n\r\n if (rateLimit) {\r\n debug(limiter.getTokensRemaining() + ' remaining token for rateLimit hook on service ' + service)\r\n if (!limiter.tryRemoveTokens(1)) { // if exceeded\r\n throw new TooManyRequests('Too many requests in a given amount of time (rate limiting) on service ' + service, { translation: { key: 'RATE_LIMITING' } })\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n\r\nexport function countLimit (options) {\r\n return async function (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'countLimit\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const app = hook.app\r\n const customMax = (typeof options.max === 'function')\r\n const max = (customMax ? await options.max(hook) : options.max)\r\n // -1 means no limit\r\n if (max >= 0) {\r\n let count = options.max\r\n // Either we build a count request using a service or the caller has its own count routine\r\n const customCount = (typeof options.count === 'function')\r\n if (!customCount) {\r\n let service\r\n if (typeof options.service === 'function') {\r\n service = await options.service(hook)\r\n } else {\r\n service = app.getService(options.service, hook.service.context)\r\n }\r\n // Indicate we'd only like to count\r\n const query = { $limit: 0 }\r\n if (typeof options.query === 'function') {\r\n Object.assign(query, options.query(hook))\r\n } else {\r\n Object.assign(query, options.query)\r\n }\r\n count = service.find({ query }).total\r\n } else {\r\n count = await options.count(hook)\r\n }\r\n\r\n if (count > max) {\r\n throw new Forbidden('Resource quota exceeded (count limiting) on service ' + options.service, { translation: { key: 'COUNT_LIMITING' } })\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0458cb41b6906d0d83855526b870c137f541b616","contentHash":"18378f57e65ac6ba8abf420b11314e65340d7f7f27a5af9c49975ccfe7973d9a"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.storage.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.storage.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":66}},"2":{"start":{"line":8,"column":23},"end":{"line":57,"column":4}},"3":{"start":{"line":9,"column":13},"end":{"line":52,"column":4}},"4":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"5":{"start":{"line":11,"column":6},"end":{"line":11,"column":96}},"6":{"start":{"line":13,"column":17},"end":{"line":13,"column":26}},"7":{"start":{"line":14,"column":19},"end":{"line":14,"column":30}},"8":{"start":{"line":15,"column":18},"end":{"line":15,"column":30}},"9":{"start":{"line":16,"column":17},"end":{"line":16,"column":28}},"10":{"start":{"line":17,"column":28},"end":{"line":17,"column":120}},"11":{"start":{"line":19,"column":18},"end":{"line":19,"column":105}},"12":{"start":{"line":22,"column":4},"end":{"line":24,"column":5}},"13":{"start":{"line":23,"column":6},"end":{"line":23,"column":35}},"14":{"start":{"line":25,"column":20},"end":{"line":25,"column":40}},"15":{"start":{"line":26,"column":29},"end":{"line":26,"column":52}},"16":{"start":{"line":27,"column":21},"end":{"line":27,"column":36}},"17":{"start":{"line":28,"column":22},"end":{"line":28,"column":69}},"18":{"start":{"line":29,"column":23},"end":{"line":29,"column":93}},"19":{"start":{"line":31,"column":4},"end":{"line":33,"column":5}},"20":{"start":{"line":32,"column":6},"end":{"line":32,"column":101}},"21":{"start":{"line":34,"column":4},"end":{"line":40,"column":5}},"22":{"start":{"line":36,"column":6},"end":{"line":36,"column":41}},"23":{"start":{"line":36,"column":24},"end":{"line":36,"column":41}},"24":{"start":{"line":37,"column":6},"end":{"line":37,"column":35}},"25":{"start":{"line":39,"column":6},"end":{"line":39,"column":31}},"26":{"start":{"line":42,"column":4},"end":{"line":49,"column":7}},"27":{"start":{"line":50,"column":4},"end":{"line":50,"column":78}},"28":{"start":{"line":51,"column":4},"end":{"line":51,"column":16}},"29":{"start":{"line":54,"column":2},"end":{"line":56,"column":4}},"30":{"start":{"line":55,"column":4},"end":{"line":55,"column":39}},"31":{"start":{"line":59,"column":25},"end":{"line":104,"column":4}},"32":{"start":{"line":60,"column":14},"end":{"line":99,"column":4}},"33":{"start":{"line":61,"column":4},"end":{"line":63,"column":5}},"34":{"start":{"line":62,"column":6},"end":{"line":62,"column":98}},"35":{"start":{"line":65,"column":19},"end":{"line":65,"column":30}},"36":{"start":{"line":66,"column":18},"end":{"line":66,"column":30}},"37":{"start":{"line":67,"column":17},"end":{"line":67,"column":28}},"38":{"start":{"line":68,"column":28},"end":{"line":68,"column":81}},"39":{"start":{"line":69,"column":29},"end":{"line":69,"column":52}},"40":{"start":{"line":70,"column":21},"end":{"line":70,"column":36}},"41":{"start":{"line":71,"column":22},"end":{"line":71,"column":69}},"42":{"start":{"line":74,"column":4},"end":{"line":87,"column":5}},"43":{"start":{"line":75,"column":30},"end":{"line":77,"column":8}},"44":{"start":{"line":76,"column":8},"end":{"line":76,"column":51}},"45":{"start":{"line":78,"column":6},"end":{"line":82,"column":7}},"46":{"start":{"line":80,"column":8},"end":{"line":80,"column":50}},"47":{"start":{"line":81,"column":8},"end":{"line":81,"column":62}},"48":{"start":{"line":85,"column":6},"end":{"line":85,"column":31}},"49":{"start":{"line":86,"column":6},"end":{"line":86,"column":25}},"50":{"start":{"line":89,"column":4},"end":{"line":96,"column":7}},"51":{"start":{"line":97,"column":4},"end":{"line":97,"column":78}},"52":{"start":{"line":98,"column":4},"end":{"line":98,"column":16}},"53":{"start":{"line":101,"column":2},"end":{"line":103,"column":4}},"54":{"start":{"line":102,"column":4},"end":{"line":102,"column":40}},"55":{"start":{"line":106,"column":0},"end":{"line":106,"column":64}},"56":{"start":{"line":107,"column":0},"end":{"line":107,"column":68}},"57":{"start":{"line":108,"column":0},"end":{"line":108,"column":46}},"58":{"start":{"line":110,"column":14},"end":{"line":110,"column":31}},"59":{"start":{"line":112,"column":15},"end":{"line":112,"column":46}},"60":{"start":{"line":114,"column":13},"end":{"line":114,"column":37}},"61":{"start":{"line":116,"column":13},"end":{"line":116,"column":29}},"62":{"start":{"line":118,"column":14},"end":{"line":118,"column":44}},"63":{"start":{"line":120,"column":39},"end":{"line":120,"column":93}},"64":{"start":{"line":122,"column":33},"end":{"line":122,"column":456}},"65":{"start":{"line":122,"column":64},"end":{"line":122,"column":89}},"66":{"start":{"line":122,"column":91},"end":{"line":122,"column":453}},"67":{"start":{"line":122,"column":165},"end":{"line":122,"column":263}},"68":{"start":{"line":122,"column":182},"end":{"line":122,"column":195}},"69":{"start":{"line":122,"column":209},"end":{"line":122,"column":219}},"70":{"start":{"line":122,"column":239},"end":{"line":122,"column":253}},"71":{"start":{"line":122,"column":254},"end":{"line":122,"column":261}},"72":{"start":{"line":122,"column":264},"end":{"line":122,"column":426}},"73":{"start":{"line":122,"column":281},"end":{"line":122,"column":296}},"74":{"start":{"line":122,"column":306},"end":{"line":122,"column":424}},"75":{"start":{"line":122,"column":360},"end":{"line":122,"column":380}},"76":{"start":{"line":122,"column":401},"end":{"line":122,"column":420}},"77":{"start":{"line":122,"column":429},"end":{"line":122,"column":449}},"78":{"start":{"line":124,"column":14},"end":{"line":124,"column":60}},"79":{"start":{"line":127,"column":2},"end":{"line":127,"column":33}},"80":{"start":{"line":131,"column":2},"end":{"line":133,"column":3}},"81":{"start":{"line":132,"column":4},"end":{"line":132,"column":102}},"82":{"start":{"line":136,"column":2},"end":{"line":136,"column":125}},"83":{"start":{"line":140,"column":2},"end":{"line":142,"column":3}},"84":{"start":{"line":141,"column":4},"end":{"line":141,"column":106}},"85":{"start":{"line":144,"column":2},"end":{"line":144,"column":103}},"86":{"start":{"line":148,"column":2},"end":{"line":178,"column":7}},"87":{"start":{"line":149,"column":16},"end":{"line":173,"column":6}},"88":{"start":{"line":150,"column":22},"end":{"line":150,"column":42}},"89":{"start":{"line":151,"column":29},"end":{"line":151,"column":68}},"90":{"start":{"line":152,"column":6},"end":{"line":152,"column":157}},"91":{"start":{"line":152,"column":27},"end":{"line":152,"column":157}},"92":{"start":{"line":153,"column":23},"end":{"line":153,"column":34}},"93":{"start":{"line":154,"column":26},"end":{"line":154,"column":73}},"94":{"start":{"line":156,"column":6},"end":{"line":171,"column":7}},"95":{"start":{"line":157,"column":8},"end":{"line":157,"column":91}},"96":{"start":{"line":158,"column":8},"end":{"line":170,"column":9}},"97":{"start":{"line":159,"column":33},"end":{"line":159,"column":35}},"98":{"start":{"line":160,"column":10},"end":{"line":164,"column":13}},"99":{"start":{"line":161,"column":12},"end":{"line":161,"column":71}},"100":{"start":{"line":163,"column":12},"end":{"line":163,"column":86}},"101":{"start":{"line":165,"column":10},"end":{"line":165,"column":44}},"102":{"start":{"line":167,"column":10},"end":{"line":167,"column":55}},"103":{"start":{"line":169,"column":10},"end":{"line":169,"column":70}},"104":{"start":{"line":172,"column":6},"end":{"line":172,"column":18}},"105":{"start":{"line":175,"column":4},"end":{"line":177,"column":6}},"106":{"start":{"line":176,"column":6},"end":{"line":176,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":51},"end":{"line":8,"column":52}},"loc":{"start":{"line":8,"column":57},"end":{"line":57,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":48},"end":{"line":52,"column":3}},"line":9},"2":{"name":"attachToResource","decl":{"start":{"line":54,"column":18},"end":{"line":54,"column":34}},"loc":{"start":{"line":54,"column":39},"end":{"line":56,"column":3}},"line":54},"3":{"name":"(anonymous_3)","decl":{"start":{"line":59,"column":55},"end":{"line":59,"column":56}},"loc":{"start":{"line":59,"column":61},"end":{"line":104,"column":1}},"line":59},"4":{"name":"(anonymous_4)","decl":{"start":{"line":60,"column":32},"end":{"line":60,"column":33}},"loc":{"start":{"line":60,"column":49},"end":{"line":99,"column":3}},"line":60},"5":{"name":"(anonymous_5)","decl":{"start":{"line":75,"column":70},"end":{"line":75,"column":71}},"loc":{"start":{"line":75,"column":92},"end":{"line":77,"column":7}},"line":75},"6":{"name":"detachFromResource","decl":{"start":{"line":101,"column":18},"end":{"line":101,"column":36}},"loc":{"start":{"line":101,"column":42},"end":{"line":103,"column":3}},"line":101},"7":{"name":"_interopRequireDefault","decl":{"start":{"line":120,"column":9},"end":{"line":120,"column":31}},"loc":{"start":{"line":120,"column":37},"end":{"line":120,"column":95}},"line":120},"8":{"name":"_asyncToGenerator","decl":{"start":{"line":122,"column":9},"end":{"line":122,"column":26}},"loc":{"start":{"line":122,"column":31},"end":{"line":122,"column":458}},"line":122},"9":{"name":"(anonymous_9)","decl":{"start":{"line":122,"column":40},"end":{"line":122,"column":41}},"loc":{"start":{"line":122,"column":52},"end":{"line":122,"column":455}},"line":122},"10":{"name":"(anonymous_10)","decl":{"start":{"line":122,"column":110},"end":{"line":122,"column":111}},"loc":{"start":{"line":122,"column":137},"end":{"line":122,"column":451}},"line":122},"11":{"name":"step","decl":{"start":{"line":122,"column":148},"end":{"line":122,"column":152}},"loc":{"start":{"line":122,"column":163},"end":{"line":122,"column":428}},"line":122},"12":{"name":"(anonymous_12)","decl":{"start":{"line":122,"column":341},"end":{"line":122,"column":342}},"loc":{"start":{"line":122,"column":358},"end":{"line":122,"column":382}},"line":122},"13":{"name":"(anonymous_13)","decl":{"start":{"line":122,"column":384},"end":{"line":122,"column":385}},"loc":{"start":{"line":122,"column":399},"end":{"line":122,"column":422}},"line":122},"14":{"name":"isAttachmentEqual","decl":{"start":{"line":126,"column":9},"end":{"line":126,"column":26}},"loc":{"start":{"line":126,"column":41},"end":{"line":128,"column":1}},"line":126},"15":{"name":"populateAttachmentResource","decl":{"start":{"line":130,"column":9},"end":{"line":130,"column":35}},"loc":{"start":{"line":130,"column":42},"end":{"line":137,"column":1}},"line":130},"16":{"name":"unpopulateAttachmentResource","decl":{"start":{"line":139,"column":9},"end":{"line":139,"column":37}},"loc":{"start":{"line":139,"column":44},"end":{"line":145,"column":1}},"line":139},"17":{"name":"removeAttachments","decl":{"start":{"line":147,"column":9},"end":{"line":147,"column":26}},"loc":{"start":{"line":147,"column":44},"end":{"line":179,"column":1}},"line":147},"18":{"name":"(anonymous_18)","decl":{"start":{"line":148,"column":10},"end":{"line":148,"column":11}},"loc":{"start":{"line":148,"column":16},"end":{"line":178,"column":3}},"line":148},"19":{"name":"(anonymous_19)","decl":{"start":{"line":149,"column":34},"end":{"line":149,"column":35}},"loc":{"start":{"line":149,"column":51},"end":{"line":173,"column":5}},"line":149},"20":{"name":"(anonymous_20)","decl":{"start":{"line":160,"column":30},"end":{"line":160,"column":31}},"loc":{"start":{"line":160,"column":52},"end":{"line":164,"column":11}},"line":160},"21":{"name":"(anonymous_21)","decl":{"start":{"line":175,"column":11},"end":{"line":175,"column":12}},"loc":{"start":{"line":175,"column":26},"end":{"line":177,"column":5}},"line":175}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":12,"column":5}},{"start":{"line":10,"column":4},"end":{"line":12,"column":5}}],"line":10},"1":{"loc":{"start":{"line":17,"column":28},"end":{"line":17,"column":120}},"type":"binary-expr","locations":[{"start":{"line":17,"column":28},"end":{"line":17,"column":63}},{"start":{"line":17,"column":67},"end":{"line":17,"column":103}},{"start":{"line":17,"column":107},"end":{"line":17,"column":120}}],"line":17},"2":{"loc":{"start":{"line":19,"column":18},"end":{"line":19,"column":105}},"type":"binary-expr","locations":[{"start":{"line":19,"column":18},"end":{"line":19,"column":55}},{"start":{"line":19,"column":59},"end":{"line":19,"column":97}},{"start":{"line":19,"column":101},"end":{"line":19,"column":105}}],"line":19},"3":{"loc":{"start":{"line":22,"column":4},"end":{"line":24,"column":5}},"type":"if","locations":[{"start":{"line":22,"column":4},"end":{"line":24,"column":5}},{"start":{"line":22,"column":4},"end":{"line":24,"column":5}}],"line":22},"4":{"loc":{"start":{"line":31,"column":4},"end":{"line":33,"column":5}},"type":"if","locations":[{"start":{"line":31,"column":4},"end":{"line":33,"column":5}},{"start":{"line":31,"column":4},"end":{"line":33,"column":5}}],"line":31},"5":{"loc":{"start":{"line":32,"column":27},"end":{"line":32,"column":100}},"type":"cond-expr","locations":[{"start":{"line":32,"column":57},"end":{"line":32,"column":79}},{"start":{"line":32,"column":82},"end":{"line":32,"column":100}}],"line":32},"6":{"loc":{"start":{"line":34,"column":4},"end":{"line":40,"column":5}},"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":40,"column":5}},{"start":{"line":34,"column":4},"end":{"line":40,"column":5}}],"line":34},"7":{"loc":{"start":{"line":36,"column":6},"end":{"line":36,"column":41}},"type":"if","locations":[{"start":{"line":36,"column":6},"end":{"line":36,"column":41}},{"start":{"line":36,"column":6},"end":{"line":36,"column":41}}],"line":36},"8":{"loc":{"start":{"line":61,"column":4},"end":{"line":63,"column":5}},"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":63,"column":5}},{"start":{"line":61,"column":4},"end":{"line":63,"column":5}}],"line":61},"9":{"loc":{"start":{"line":68,"column":28},"end":{"line":68,"column":81}},"type":"binary-expr","locations":[{"start":{"line":68,"column":28},"end":{"line":68,"column":64}},{"start":{"line":68,"column":68},"end":{"line":68,"column":81}}],"line":68},"10":{"loc":{"start":{"line":74,"column":4},"end":{"line":87,"column":5}},"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":87,"column":5}},{"start":{"line":74,"column":4},"end":{"line":87,"column":5}}],"line":74},"11":{"loc":{"start":{"line":78,"column":6},"end":{"line":82,"column":7}},"type":"if","locations":[{"start":{"line":78,"column":6},"end":{"line":82,"column":7}},{"start":{"line":78,"column":6},"end":{"line":82,"column":7}}],"line":78},"12":{"loc":{"start":{"line":120,"column":46},"end":{"line":120,"column":92}},"type":"cond-expr","locations":[{"start":{"line":120,"column":70},"end":{"line":120,"column":73}},{"start":{"line":120,"column":76},"end":{"line":120,"column":92}}],"line":120},"13":{"loc":{"start":{"line":120,"column":46},"end":{"line":120,"column":67}},"type":"binary-expr","locations":[{"start":{"line":120,"column":46},"end":{"line":120,"column":49}},{"start":{"line":120,"column":53},"end":{"line":120,"column":67}}],"line":120},"14":{"loc":{"start":{"line":122,"column":264},"end":{"line":122,"column":426}},"type":"if","locations":[{"start":{"line":122,"column":264},"end":{"line":122,"column":426}},{"start":{"line":122,"column":264},"end":{"line":122,"column":426}}],"line":122},"15":{"loc":{"start":{"line":131,"column":2},"end":{"line":133,"column":3}},"type":"if","locations":[{"start":{"line":131,"column":2},"end":{"line":133,"column":3}},{"start":{"line":131,"column":2},"end":{"line":133,"column":3}}],"line":131},"16":{"loc":{"start":{"line":140,"column":2},"end":{"line":142,"column":3}},"type":"if","locations":[{"start":{"line":140,"column":2},"end":{"line":142,"column":3}},{"start":{"line":140,"column":2},"end":{"line":142,"column":3}}],"line":140},"17":{"loc":{"start":{"line":152,"column":6},"end":{"line":152,"column":157}},"type":"if","locations":[{"start":{"line":152,"column":6},"end":{"line":152,"column":157}},{"start":{"line":152,"column":6},"end":{"line":152,"column":157}}],"line":152},"18":{"loc":{"start":{"line":156,"column":6},"end":{"line":171,"column":7}},"type":"if","locations":[{"start":{"line":156,"column":6},"end":{"line":171,"column":7}},{"start":{"line":156,"column":6},"end":{"line":171,"column":7}}],"line":156},"19":{"loc":{"start":{"line":158,"column":8},"end":{"line":170,"column":9}},"type":"if","locations":[{"start":{"line":158,"column":8},"end":{"line":170,"column":9}},{"start":{"line":158,"column":8},"end":{"line":170,"column":9}}],"line":158}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":0,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":0,"21":1,"22":1,"23":1,"24":1,"25":0,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":0,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":0,"49":0,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":2,"64":2,"65":2,"66":2,"67":4,"68":4,"69":4,"70":0,"71":0,"72":4,"73":2,"74":2,"75":2,"76":0,"77":2,"78":1,"79":1,"80":8,"81":0,"82":8,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0},"f":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2,"8":2,"9":2,"10":2,"11":4,"12":2,"13":0,"14":1,"15":8,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0},"b":{"0":[0,1],"1":[1,1,1],"2":[1,1,1],"3":[0,1],"4":[0,1],"5":[0,0],"6":[1,0],"7":[1,0],"8":[0,1],"9":[1,1],"10":[1,0],"11":[1,0],"12":[0,2],"13":[2,2],"14":[2,2],"15":[0,8],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0]},"inputSourceMap":{"version":3,"sources":["hooks.storage.js"],"names":["hook","type","Error","data","params","query","file","result","attachmentField","_","get","isArray","context","service","resourcesService","resource","attachments","attachment","Object","assign","_id","omit","toString","push","patch","user","debug","attachToResource","Array","attachmentIndex","findIndex","isAttachmentEqual","pullAt","detachFromResource","populateAttachmentResource","unpopulateAttachmentResource","removeAttachments","file1","file2","serviceField","idField","throwOnNotFound","storageService","app","getService","Promise","reject","name","removePromises","forEach","remove","all"],"mappings":"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","file":"hooks.storage.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import _ from 'lodash'\r\nimport { populateObject, unpopulateObject } from './hooks.query'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:storage:hooks')\r\n\r\nfunction isAttachmentEqual (file1, file2) {\r\n return file1._id === file2._id\r\n}\r\n\r\nexport function populateAttachmentResource (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'populateStorageResource\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n // Avoid populating any target resource when resource parameters are not present\r\n return populateObject({ serviceField: 'resourcesService', idField: 'resource', throwOnNotFound: false })(hook)\r\n}\r\n\r\nexport function unpopulateAttachmentResource (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'unpopulateAttachmentResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n return unpopulateObject({ serviceField: 'resourcesService', idField: 'resource' })(hook)\r\n}\r\n\r\nexport async function attachToResource (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'attachToResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n const data = hook.data\r\n const params = hook.params\r\n const query = params.query\r\n const file = hook.result\r\n const attachmentField = _.get(data, 'field') || _.get(query, 'field') || 'attachments'\r\n // By default attachments are stored in an array\r\n let isArray = _.get(data, 'isArray') || _.get(query, 'isArray') || true\r\n // Take care that because file uploads might be submitted by external multipart form data middlewares\r\n // all parameters types might be string\r\n if (typeof (isArray) !== 'boolean') {\r\n isArray = (isArray === 'true')\r\n }\r\n const context = hook.service.context\r\n const resourcesService = params.resourcesService\r\n const resource = params.resource\r\n let attachments = _.get(resource, attachmentField)\r\n const attachment = Object.assign({ _id: file._id }, _.omit(file, ['uri']))\r\n // Add context because attachments might come from different ones on the same target object\r\n if (context) {\r\n attachment.context = (typeof context === 'object' ? context._id.toString() : context.toString())\r\n }\r\n if (isArray) {\r\n // Initialize on first attachment\r\n if (!attachments) attachments = []\r\n attachments.push(attachment)\r\n } else {\r\n attachments = attachment\r\n }\r\n\r\n await resourcesService.patch(resource._id.toString(), {\r\n [attachmentField]: attachments\r\n }, {\r\n user: params.user,\r\n // Forward query so that any update param could be processed as usual on resource\r\n // Delete own parameters from query otherwise it will be used to filter items\r\n query: _.omit(query, ['resource', 'resourcesService'])\r\n })\r\n debug('Attached file on resource ' + resource._id.toString(), attachment)\r\n return hook\r\n}\r\n\r\nexport async function detachFromResource (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'detachFromResource\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const params = hook.params\r\n const query = params.query\r\n const file = hook.result\r\n const attachmentField = _.get(query, 'field') || 'attachments'\r\n const resourcesService = params.resourcesService\r\n const resource = params.resource\r\n let attachments = _.get(resource, attachmentField)\r\n let attachment\r\n // List of attachments\r\n if (Array.isArray(attachments)) {\r\n const attachmentIndex = _.findIndex(attachments, attachment => isAttachmentEqual(attachment, file))\r\n if (attachmentIndex >= 0) {\r\n // Keep track of it for logging\r\n attachment = attachments[attachmentIndex]\r\n _.pullAt(attachments, attachmentIndex)\r\n }\r\n } else {\r\n // Single attachment object\r\n attachment = attachments\r\n attachments = null\r\n }\r\n\r\n await resourcesService.patch(resource._id.toString(), {\r\n [attachmentField]: attachments\r\n }, {\r\n user: params.user,\r\n // Forward query so that any update param could be processed as usual on resource\r\n // Delete own parameters from query otherwise it will be used to filter items\r\n query: _.omit(query, ['resource', 'resourcesService'])\r\n })\r\n debug('Detached file on resource ' + resource._id.toString(), attachment)\r\n return hook\r\n}\r\n\r\nexport function removeAttachments (attachmentField) {\r\n return async function (hook) {\r\n const context = hook.service.context\r\n const storageService = hook.app.getService('storage', context)\r\n if (!storageService) return Promise.reject(new Error('No valid context found to retrieve storage service for initiator service ' + hook.service.name))\r\n const resource = hook.result\r\n const attachments = _.get(resource, attachmentField)\r\n // Process with each attachment\r\n if (attachments) {\r\n debug('Removing attachments for resource ' + resource._id.toString(), attachments)\r\n if (Array.isArray(attachments)) {\r\n const removePromises = []\r\n attachments.forEach(attachment => {\r\n removePromises.push(storageService.remove(attachment._id))\r\n // Thumbnail as well\r\n removePromises.push(storageService.remove(attachment._id + '.thumbnail'))\r\n })\r\n await Promise.all(removePromises)\r\n } else {\r\n await storageService.remove(attachments._id)\r\n // Thumbnail as well\r\n await storageService.remove(attachments._id + '.thumbnail')\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4e4746c4ec798647cefb9846339155c445a1c450","contentHash":"ec2610e5fddca2ff8de2f57fb05548c4ec8416f4d59a4cb963dfd8cee741a03d"},"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.users.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\hooks\\hooks.users.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":54}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":54}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":44}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":46}},"5":{"start":{"line":10,"column":0},"end":{"line":10,"column":44}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":48}},"7":{"start":{"line":12,"column":0},"end":{"line":12,"column":54}},"8":{"start":{"line":13,"column":0},"end":{"line":13,"column":50}},"9":{"start":{"line":14,"column":0},"end":{"line":14,"column":42}},"10":{"start":{"line":15,"column":0},"end":{"line":15,"column":48}},"11":{"start":{"line":16,"column":0},"end":{"line":16,"column":46}},"12":{"start":{"line":18,"column":14},"end":{"line":18,"column":31}},"13":{"start":{"line":20,"column":15},"end":{"line":20,"column":46}},"14":{"start":{"line":22,"column":13},"end":{"line":22,"column":29}},"15":{"start":{"line":24,"column":14},"end":{"line":24,"column":44}},"16":{"start":{"line":26,"column":25},"end":{"line":26,"column":54}},"17":{"start":{"line":28,"column":26},"end":{"line":28,"column":68}},"18":{"start":{"line":30,"column":27},"end":{"line":30,"column":59}},"19":{"start":{"line":32,"column":14},"end":{"line":32,"column":43}},"20":{"start":{"line":34,"column":19},"end":{"line":34,"column":54}},"21":{"start":{"line":36,"column":39},"end":{"line":36,"column":93}},"22":{"start":{"line":38,"column":33},"end":{"line":38,"column":456}},"23":{"start":{"line":38,"column":64},"end":{"line":38,"column":89}},"24":{"start":{"line":38,"column":91},"end":{"line":38,"column":453}},"25":{"start":{"line":38,"column":165},"end":{"line":38,"column":263}},"26":{"start":{"line":38,"column":182},"end":{"line":38,"column":195}},"27":{"start":{"line":38,"column":209},"end":{"line":38,"column":219}},"28":{"start":{"line":38,"column":239},"end":{"line":38,"column":253}},"29":{"start":{"line":38,"column":254},"end":{"line":38,"column":261}},"30":{"start":{"line":38,"column":264},"end":{"line":38,"column":426}},"31":{"start":{"line":38,"column":281},"end":{"line":38,"column":296}},"32":{"start":{"line":38,"column":306},"end":{"line":38,"column":424}},"33":{"start":{"line":38,"column":360},"end":{"line":38,"column":380}},"34":{"start":{"line":38,"column":401},"end":{"line":38,"column":420}},"35":{"start":{"line":38,"column":429},"end":{"line":38,"column":449}},"36":{"start":{"line":40,"column":20},"end":{"line":40,"column":71}},"37":{"start":{"line":42,"column":14},"end":{"line":42,"column":58}},"38":{"start":{"line":45,"column":2},"end":{"line":93,"column":7}},"39":{"start":{"line":46,"column":15},"end":{"line":88,"column":6}},"40":{"start":{"line":47,"column":6},"end":{"line":49,"column":7}},"41":{"start":{"line":48,"column":8},"end":{"line":48,"column":103}},"42":{"start":{"line":51,"column":6},"end":{"line":51,"column":41}},"43":{"start":{"line":51,"column":29},"end":{"line":51,"column":41}},"44":{"start":{"line":52,"column":18},"end":{"line":52,"column":26}},"45":{"start":{"line":53,"column":19},"end":{"line":53,"column":59}},"46":{"start":{"line":54,"column":19},"end":{"line":54,"column":63}},"47":{"start":{"line":56,"column":28},"end":{"line":56,"column":96}},"48":{"start":{"line":57,"column":30},"end":{"line":57,"column":115}},"49":{"start":{"line":58,"column":6},"end":{"line":86,"column":7}},"50":{"start":{"line":59,"column":8},"end":{"line":59,"column":57}},"51":{"start":{"line":60,"column":26},"end":{"line":60,"column":49}},"52":{"start":{"line":62,"column":23},"end":{"line":62,"column":72}},"53":{"start":{"line":64,"column":8},"end":{"line":73,"column":9}},"54":{"start":{"line":64,"column":21},"end":{"line":64,"column":22}},"55":{"start":{"line":65,"column":10},"end":{"line":72,"column":11}},"56":{"start":{"line":66,"column":12},"end":{"line":66,"column":93}},"57":{"start":{"line":68,"column":12},"end":{"line":68,"column":36}},"58":{"start":{"line":69,"column":12},"end":{"line":69,"column":18}},"59":{"start":{"line":75,"column":8},"end":{"line":85,"column":9}},"60":{"start":{"line":76,"column":10},"end":{"line":84,"column":13}},"61":{"start":{"line":80,"column":16},"end":{"line":80,"column":61}},"62":{"start":{"line":87,"column":6},"end":{"line":87,"column":18}},"63":{"start":{"line":90,"column":4},"end":{"line":92,"column":6}},"64":{"start":{"line":91,"column":6},"end":{"line":91,"column":41}},"65":{"start":{"line":97,"column":2},"end":{"line":122,"column":4}},"66":{"start":{"line":98,"column":4},"end":{"line":100,"column":5}},"67":{"start":{"line":99,"column":6},"end":{"line":99,"column":102}},"68":{"start":{"line":101,"column":16},"end":{"line":101,"column":24}},"69":{"start":{"line":102,"column":17},"end":{"line":102,"column":57}},"70":{"start":{"line":103,"column":4},"end":{"line":120,"column":5}},"71":{"start":{"line":104,"column":24},"end":{"line":104,"column":47}},"72":{"start":{"line":106,"column":19},"end":{"line":106,"column":43}},"73":{"start":{"line":107,"column":28},"end":{"line":107,"column":63}},"74":{"start":{"line":108,"column":23},"end":{"line":108,"column":64}},"75":{"start":{"line":109,"column":6},"end":{"line":119,"column":7}},"76":{"start":{"line":110,"column":39},"end":{"line":110,"column":92}},"77":{"start":{"line":111,"column":34},"end":{"line":111,"column":88}},"78":{"start":{"line":112,"column":8},"end":{"line":112,"column":114}},"79":{"start":{"line":113,"column":8},"end":{"line":113,"column":41}},"80":{"start":{"line":115,"column":20},"end":{"line":115,"column":73}},"81":{"start":{"line":116,"column":8},"end":{"line":116,"column":70}},"82":{"start":{"line":116,"column":44},"end":{"line":116,"column":70}},"83":{"start":{"line":117,"column":8},"end":{"line":117,"column":77}},"84":{"start":{"line":118,"column":8},"end":{"line":118,"column":59}},"85":{"start":{"line":121,"column":4},"end":{"line":121,"column":16}},"86":{"start":{"line":126,"column":2},"end":{"line":158,"column":4}},"87":{"start":{"line":127,"column":4},"end":{"line":129,"column":5}},"88":{"start":{"line":128,"column":6},"end":{"line":128,"column":97}},"89":{"start":{"line":130,"column":16},"end":{"line":130,"column":24}},"90":{"start":{"line":131,"column":17},"end":{"line":131,"column":26}},"91":{"start":{"line":132,"column":26},"end":{"line":132,"column":61}},"92":{"start":{"line":133,"column":35},"end":{"line":133,"column":79}},"93":{"start":{"line":135,"column":4},"end":{"line":139,"column":5}},"94":{"start":{"line":136,"column":6},"end":{"line":136,"column":100}},"95":{"start":{"line":138,"column":6},"end":{"line":138,"column":59}},"96":{"start":{"line":141,"column":25},"end":{"line":141,"column":53}},"97":{"start":{"line":143,"column":4},"end":{"line":156,"column":5}},"98":{"start":{"line":144,"column":24},"end":{"line":144,"column":47}},"99":{"start":{"line":146,"column":6},"end":{"line":150,"column":7}},"100":{"start":{"line":147,"column":8},"end":{"line":149,"column":81}},"101":{"start":{"line":148,"column":10},"end":{"line":148,"column":142}},"102":{"start":{"line":153,"column":6},"end":{"line":155,"column":7}},"103":{"start":{"line":154,"column":8},"end":{"line":154,"column":109}},"104":{"start":{"line":157,"column":4},"end":{"line":157,"column":16}},"105":{"start":{"line":162,"column":2},"end":{"line":164,"column":3}},"106":{"start":{"line":163,"column":4},"end":{"line":163,"column":96}},"107":{"start":{"line":167,"column":2},"end":{"line":167,"column":37}},"108":{"start":{"line":167,"column":25},"end":{"line":167,"column":37}},"109":{"start":{"line":168,"column":15},"end":{"line":168,"column":31}},"110":{"start":{"line":170,"column":2},"end":{"line":182,"column":3}},"111":{"start":{"line":172,"column":32},"end":{"line":172,"column":142}},"112":{"start":{"line":173,"column":4},"end":{"line":181,"column":5}},"113":{"start":{"line":174,"column":6},"end":{"line":174,"column":46}},"114":{"start":{"line":175,"column":6},"end":{"line":180,"column":9}},"115":{"start":{"line":183,"column":2},"end":{"line":183,"column":14}},"116":{"start":{"line":187,"column":14},"end":{"line":187,"column":22}},"117":{"start":{"line":188,"column":18},"end":{"line":188,"column":58}},"118":{"start":{"line":189,"column":31},"end":{"line":189,"column":63}},"119":{"start":{"line":190,"column":23},"end":{"line":190,"column":46}},"120":{"start":{"line":193,"column":2},"end":{"line":204,"column":5}},"121":{"start":{"line":202,"column":4},"end":{"line":202,"column":65}},"122":{"start":{"line":203,"column":4},"end":{"line":203,"column":16}},"123":{"start":{"line":208,"column":2},"end":{"line":245,"column":7}},"124":{"start":{"line":209,"column":16},"end":{"line":240,"column":6}},"125":{"start":{"line":210,"column":6},"end":{"line":212,"column":7}},"126":{"start":{"line":211,"column":8},"end":{"line":211,"column":100}},"127":{"start":{"line":214,"column":18},"end":{"line":214,"column":26}},"128":{"start":{"line":215,"column":35},"end":{"line":215,"column":66}},"129":{"start":{"line":216,"column":35},"end":{"line":216,"column":67}},"130":{"start":{"line":217,"column":27},"end":{"line":217,"column":50}},"131":{"start":{"line":218,"column":22},"end":{"line":218,"column":62}},"132":{"start":{"line":219,"column":28},"end":{"line":219,"column":78}},"133":{"start":{"line":221,"column":6},"end":{"line":236,"column":10}},"134":{"start":{"line":223,"column":8},"end":{"line":223,"column":98}},"135":{"start":{"line":223,"column":91},"end":{"line":223,"column":98}},"136":{"start":{"line":224,"column":8},"end":{"line":235,"column":11}},"137":{"start":{"line":238,"column":6},"end":{"line":238,"column":77}},"138":{"start":{"line":239,"column":6},"end":{"line":239,"column":18}},"139":{"start":{"line":242,"column":4},"end":{"line":244,"column":6}},"140":{"start":{"line":243,"column":6},"end":{"line":243,"column":42}},"141":{"start":{"line":249,"column":2},"end":{"line":251,"column":3}},"142":{"start":{"line":250,"column":4},"end":{"line":250,"column":99}},"143":{"start":{"line":254,"column":2},"end":{"line":256,"column":3}},"144":{"start":{"line":255,"column":4},"end":{"line":255,"column":67}},"145":{"start":{"line":255,"column":38},"end":{"line":255,"column":67}},"146":{"start":{"line":258,"column":25},"end":{"line":258,"column":55}},"147":{"start":{"line":259,"column":2},"end":{"line":261,"column":5}},"148":{"start":{"line":260,"column":4},"end":{"line":260,"column":16}},"149":{"start":{"line":266,"column":2},"end":{"line":268,"column":3}},"150":{"start":{"line":267,"column":4},"end":{"line":267,"column":98}},"151":{"start":{"line":270,"column":25},"end":{"line":270,"column":55}},"152":{"start":{"line":271,"column":2},"end":{"line":273,"column":5}},"153":{"start":{"line":272,"column":4},"end":{"line":272,"column":16}},"154":{"start":{"line":277,"column":25},"end":{"line":277,"column":55}},"155":{"start":{"line":279,"column":2},"end":{"line":287,"column":5}},"156":{"start":{"line":281,"column":21},"end":{"line":281,"column":26}},"157":{"start":{"line":282,"column":4},"end":{"line":284,"column":5}},"158":{"start":{"line":283,"column":6},"end":{"line":283,"column":56}},"159":{"start":{"line":283,"column":38},"end":{"line":283,"column":56}},"160":{"start":{"line":285,"column":4},"end":{"line":285,"column":38}},"161":{"start":{"line":286,"column":4},"end":{"line":286,"column":16}},"162":{"start":{"line":291,"column":2},"end":{"line":291,"column":48}},"163":{"start":{"line":295,"column":2},"end":{"line":295,"column":61}},"164":{"start":{"line":296,"column":24},"end":{"line":296,"column":53}},"165":{"start":{"line":297,"column":15},"end":{"line":297,"column":31}},"166":{"start":{"line":299,"column":29},"end":{"line":299,"column":31}},"167":{"start":{"line":300,"column":2},"end":{"line":307,"column":3}},"168":{"start":{"line":301,"column":4},"end":{"line":306,"column":7}},"169":{"start":{"line":302,"column":6},"end":{"line":305,"column":10}},"170":{"start":{"line":308,"column":2},"end":{"line":308,"column":63}},"171":{"start":{"line":308,"column":57},"end":{"line":308,"column":61}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":31}},"loc":{"start":{"line":36,"column":37},"end":{"line":36,"column":95}},"line":36},"1":{"name":"_asyncToGenerator","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":26}},"loc":{"start":{"line":38,"column":31},"end":{"line":38,"column":458}},"line":38},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":40},"end":{"line":38,"column":41}},"loc":{"start":{"line":38,"column":52},"end":{"line":38,"column":455}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":38,"column":110},"end":{"line":38,"column":111}},"loc":{"start":{"line":38,"column":137},"end":{"line":38,"column":451}},"line":38},"4":{"name":"step","decl":{"start":{"line":38,"column":148},"end":{"line":38,"column":152}},"loc":{"start":{"line":38,"column":163},"end":{"line":38,"column":428}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":38,"column":341},"end":{"line":38,"column":342}},"loc":{"start":{"line":38,"column":358},"end":{"line":38,"column":382}},"line":38},"6":{"name":"(anonymous_6)","decl":{"start":{"line":38,"column":384},"end":{"line":38,"column":385}},"loc":{"start":{"line":38,"column":399},"end":{"line":38,"column":422}},"line":38},"7":{"name":"enforcePasswordPolicy","decl":{"start":{"line":44,"column":9},"end":{"line":44,"column":30}},"loc":{"start":{"line":44,"column":45},"end":{"line":94,"column":1}},"line":44},"8":{"name":"(anonymous_8)","decl":{"start":{"line":45,"column":10},"end":{"line":45,"column":11}},"loc":{"start":{"line":45,"column":16},"end":{"line":93,"column":3}},"line":45},"9":{"name":"(anonymous_9)","decl":{"start":{"line":46,"column":33},"end":{"line":46,"column":34}},"loc":{"start":{"line":46,"column":50},"end":{"line":88,"column":5}},"line":46},"10":{"name":"(anonymous_10)","decl":{"start":{"line":79,"column":31},"end":{"line":79,"column":32}},"loc":{"start":{"line":79,"column":47},"end":{"line":81,"column":15}},"line":79},"11":{"name":"(anonymous_11)","decl":{"start":{"line":90,"column":11},"end":{"line":90,"column":12}},"loc":{"start":{"line":90,"column":25},"end":{"line":92,"column":5}},"line":90},"12":{"name":"storePreviousPassword","decl":{"start":{"line":96,"column":9},"end":{"line":96,"column":30}},"loc":{"start":{"line":96,"column":45},"end":{"line":123,"column":1}},"line":96},"13":{"name":"(anonymous_13)","decl":{"start":{"line":97,"column":9},"end":{"line":97,"column":10}},"loc":{"start":{"line":97,"column":25},"end":{"line":122,"column":3}},"line":97},"14":{"name":"generatePassword","decl":{"start":{"line":125,"column":9},"end":{"line":125,"column":25}},"loc":{"start":{"line":125,"column":40},"end":{"line":159,"column":1}},"line":125},"15":{"name":"(anonymous_15)","decl":{"start":{"line":126,"column":9},"end":{"line":126,"column":10}},"loc":{"start":{"line":126,"column":25},"end":{"line":158,"column":3}},"line":126},"16":{"name":"preventRemoveUser","decl":{"start":{"line":161,"column":9},"end":{"line":161,"column":26}},"loc":{"start":{"line":161,"column":33},"end":{"line":184,"column":1}},"line":161},"17":{"name":"joinOrganisation","decl":{"start":{"line":186,"column":9},"end":{"line":186,"column":25}},"loc":{"start":{"line":186,"column":32},"end":{"line":205,"column":1}},"line":186},"18":{"name":"(anonymous_18)","decl":{"start":{"line":201,"column":10},"end":{"line":201,"column":11}},"loc":{"start":{"line":201,"column":27},"end":{"line":204,"column":3}},"line":201},"19":{"name":"leaveOrganisations","decl":{"start":{"line":207,"column":9},"end":{"line":207,"column":27}},"loc":{"start":{"line":207,"column":61},"end":{"line":246,"column":1}},"line":207},"20":{"name":"(anonymous_20)","decl":{"start":{"line":208,"column":10},"end":{"line":208,"column":11}},"loc":{"start":{"line":208,"column":16},"end":{"line":245,"column":3}},"line":208},"21":{"name":"(anonymous_21)","decl":{"start":{"line":209,"column":34},"end":{"line":209,"column":35}},"loc":{"start":{"line":209,"column":51},"end":{"line":240,"column":5}},"line":209},"22":{"name":"(anonymous_22)","decl":{"start":{"line":221,"column":42},"end":{"line":221,"column":43}},"loc":{"start":{"line":221,"column":66},"end":{"line":236,"column":7}},"line":221},"23":{"name":"(anonymous_23)","decl":{"start":{"line":242,"column":11},"end":{"line":242,"column":12}},"loc":{"start":{"line":242,"column":26},"end":{"line":244,"column":5}},"line":242},"24":{"name":"sendVerificationEmail","decl":{"start":{"line":248,"column":9},"end":{"line":248,"column":30}},"loc":{"start":{"line":248,"column":37},"end":{"line":262,"column":1}},"line":248},"25":{"name":"(anonymous_25)","decl":{"start":{"line":259,"column":81},"end":{"line":259,"column":82}},"loc":{"start":{"line":259,"column":91},"end":{"line":261,"column":3}},"line":259},"26":{"name":"sendInvitationEmail","decl":{"start":{"line":264,"column":9},"end":{"line":264,"column":28}},"loc":{"start":{"line":264,"column":35},"end":{"line":274,"column":1}},"line":264},"27":{"name":"(anonymous_27)","decl":{"start":{"line":271,"column":75},"end":{"line":271,"column":76}},"loc":{"start":{"line":271,"column":85},"end":{"line":273,"column":3}},"line":271},"28":{"name":"addVerification","decl":{"start":{"line":276,"column":9},"end":{"line":276,"column":24}},"loc":{"start":{"line":276,"column":31},"end":{"line":288,"column":1}},"line":276},"29":{"name":"(anonymous_29)","decl":{"start":{"line":279,"column":78},"end":{"line":279,"column":79}},"loc":{"start":{"line":279,"column":86},"end":{"line":287,"column":3}},"line":279},"30":{"name":"removeVerification","decl":{"start":{"line":290,"column":9},"end":{"line":290,"column":27}},"loc":{"start":{"line":290,"column":34},"end":{"line":292,"column":1}},"line":290},"31":{"name":"unregisterDevices","decl":{"start":{"line":294,"column":9},"end":{"line":294,"column":26}},"loc":{"start":{"line":294,"column":33},"end":{"line":309,"column":1}},"line":294},"32":{"name":"(anonymous_32)","decl":{"start":{"line":301,"column":25},"end":{"line":301,"column":26}},"loc":{"start":{"line":301,"column":35},"end":{"line":306,"column":5}},"line":301},"33":{"name":"(anonymous_33)","decl":{"start":{"line":308,"column":46},"end":{"line":308,"column":47}},"loc":{"start":{"line":308,"column":57},"end":{"line":308,"column":61}},"line":308}},"branchMap":{"0":{"loc":{"start":{"line":36,"column":46},"end":{"line":36,"column":92}},"type":"cond-expr","locations":[{"start":{"line":36,"column":70},"end":{"line":36,"column":73}},{"start":{"line":36,"column":76},"end":{"line":36,"column":92}}],"line":36},"1":{"loc":{"start":{"line":36,"column":46},"end":{"line":36,"column":67}},"type":"binary-expr","locations":[{"start":{"line":36,"column":46},"end":{"line":36,"column":49}},{"start":{"line":36,"column":53},"end":{"line":36,"column":67}}],"line":36},"2":{"loc":{"start":{"line":38,"column":264},"end":{"line":38,"column":426}},"type":"if","locations":[{"start":{"line":38,"column":264},"end":{"line":38,"column":426}},{"start":{"line":38,"column":264},"end":{"line":38,"column":426}}],"line":38},"3":{"loc":{"start":{"line":44,"column":31},"end":{"line":44,"column":43}},"type":"default-arg","locations":[{"start":{"line":44,"column":41},"end":{"line":44,"column":43}}],"line":44},"4":{"loc":{"start":{"line":47,"column":6},"end":{"line":49,"column":7}},"type":"if","locations":[{"start":{"line":47,"column":6},"end":{"line":49,"column":7}},{"start":{"line":47,"column":6},"end":{"line":49,"column":7}}],"line":47},"5":{"loc":{"start":{"line":51,"column":6},"end":{"line":51,"column":41}},"type":"if","locations":[{"start":{"line":51,"column":6},"end":{"line":51,"column":41}},{"start":{"line":51,"column":6},"end":{"line":51,"column":41}}],"line":51},"6":{"loc":{"start":{"line":54,"column":19},"end":{"line":54,"column":63}},"type":"cond-expr","locations":[{"start":{"line":54,"column":40},"end":{"line":54,"column":44}},{"start":{"line":54,"column":47},"end":{"line":54,"column":63}}],"line":54},"7":{"loc":{"start":{"line":56,"column":55},"end":{"line":56,"column":95}},"type":"binary-expr","locations":[{"start":{"line":56,"column":55},"end":{"line":56,"column":76}},{"start":{"line":56,"column":80},"end":{"line":56,"column":95}}],"line":56},"8":{"loc":{"start":{"line":57,"column":57},"end":{"line":57,"column":110}},"type":"binary-expr","locations":[{"start":{"line":57,"column":57},"end":{"line":57,"column":87}},{"start":{"line":57,"column":91},"end":{"line":57,"column":110}}],"line":57},"9":{"loc":{"start":{"line":58,"column":6},"end":{"line":86,"column":7}},"type":"if","locations":[{"start":{"line":58,"column":6},"end":{"line":86,"column":7}},{"start":{"line":58,"column":6},"end":{"line":86,"column":7}}],"line":58},"10":{"loc":{"start":{"line":58,"column":10},"end":{"line":58,"column":67}},"type":"binary-expr","locations":[{"start":{"line":58,"column":10},"end":{"line":58,"column":23}},{"start":{"line":58,"column":27},"end":{"line":58,"column":42}},{"start":{"line":58,"column":46},"end":{"line":58,"column":67}}],"line":58},"11":{"loc":{"start":{"line":75,"column":8},"end":{"line":85,"column":9}},"type":"if","locations":[{"start":{"line":75,"column":8},"end":{"line":85,"column":9}},{"start":{"line":75,"column":8},"end":{"line":85,"column":9}}],"line":75},"12":{"loc":{"start":{"line":96,"column":31},"end":{"line":96,"column":43}},"type":"default-arg","locations":[{"start":{"line":96,"column":41},"end":{"line":96,"column":43}}],"line":96},"13":{"loc":{"start":{"line":98,"column":4},"end":{"line":100,"column":5}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":100,"column":5}},{"start":{"line":98,"column":4},"end":{"line":100,"column":5}}],"line":98},"14":{"loc":{"start":{"line":103,"column":4},"end":{"line":120,"column":5}},"type":"if","locations":[{"start":{"line":103,"column":4},"end":{"line":120,"column":5}},{"start":{"line":103,"column":4},"end":{"line":120,"column":5}}],"line":103},"15":{"loc":{"start":{"line":103,"column":8},"end":{"line":103,"column":57}},"type":"binary-expr","locations":[{"start":{"line":103,"column":8},"end":{"line":103,"column":29}},{"start":{"line":103,"column":33},"end":{"line":103,"column":57}}],"line":103},"16":{"loc":{"start":{"line":107,"column":28},"end":{"line":107,"column":63}},"type":"binary-expr","locations":[{"start":{"line":107,"column":28},"end":{"line":107,"column":49}},{"start":{"line":107,"column":53},"end":{"line":107,"column":63}}],"line":107},"17":{"loc":{"start":{"line":109,"column":6},"end":{"line":119,"column":7}},"type":"if","locations":[{"start":{"line":109,"column":6},"end":{"line":119,"column":7}},{"start":{"line":109,"column":6},"end":{"line":119,"column":7}}],"line":109},"18":{"loc":{"start":{"line":110,"column":39},"end":{"line":110,"column":92}},"type":"binary-expr","locations":[{"start":{"line":110,"column":39},"end":{"line":110,"column":69}},{"start":{"line":110,"column":73},"end":{"line":110,"column":92}}],"line":110},"19":{"loc":{"start":{"line":116,"column":8},"end":{"line":116,"column":70}},"type":"if","locations":[{"start":{"line":116,"column":8},"end":{"line":116,"column":70}},{"start":{"line":116,"column":8},"end":{"line":116,"column":70}}],"line":116},"20":{"loc":{"start":{"line":125,"column":26},"end":{"line":125,"column":38}},"type":"default-arg","locations":[{"start":{"line":125,"column":36},"end":{"line":125,"column":38}}],"line":125},"21":{"loc":{"start":{"line":127,"column":4},"end":{"line":129,"column":5}},"type":"if","locations":[{"start":{"line":127,"column":4},"end":{"line":129,"column":5}},{"start":{"line":127,"column":4},"end":{"line":129,"column":5}}],"line":127},"22":{"loc":{"start":{"line":132,"column":26},"end":{"line":132,"column":61}},"type":"binary-expr","locations":[{"start":{"line":132,"column":26},"end":{"line":132,"column":47}},{"start":{"line":132,"column":51},"end":{"line":132,"column":61}}],"line":132},"23":{"loc":{"start":{"line":133,"column":35},"end":{"line":133,"column":79}},"type":"binary-expr","locations":[{"start":{"line":133,"column":35},"end":{"line":133,"column":65}},{"start":{"line":133,"column":69},"end":{"line":133,"column":79}}],"line":133},"24":{"loc":{"start":{"line":135,"column":4},"end":{"line":139,"column":5}},"type":"if","locations":[{"start":{"line":135,"column":4},"end":{"line":139,"column":5}},{"start":{"line":135,"column":4},"end":{"line":139,"column":5}}],"line":135},"25":{"loc":{"start":{"line":143,"column":4},"end":{"line":156,"column":5}},"type":"if","locations":[{"start":{"line":143,"column":4},"end":{"line":156,"column":5}},{"start":{"line":143,"column":4},"end":{"line":156,"column":5}}],"line":143},"26":{"loc":{"start":{"line":146,"column":6},"end":{"line":150,"column":7}},"type":"if","locations":[{"start":{"line":146,"column":6},"end":{"line":150,"column":7}},{"start":{"line":146,"column":6},"end":{"line":150,"column":7}}],"line":146},"27":{"loc":{"start":{"line":146,"column":10},"end":{"line":146,"column":118}},"type":"binary-expr","locations":[{"start":{"line":146,"column":10},"end":{"line":146,"column":52}},{"start":{"line":146,"column":56},"end":{"line":146,"column":118}}],"line":146},"28":{"loc":{"start":{"line":148,"column":85},"end":{"line":148,"column":118}},"type":"binary-expr","locations":[{"start":{"line":148,"column":85},"end":{"line":148,"column":112}},{"start":{"line":148,"column":116},"end":{"line":148,"column":118}}],"line":148},"29":{"loc":{"start":{"line":153,"column":6},"end":{"line":155,"column":7}},"type":"if","locations":[{"start":{"line":153,"column":6},"end":{"line":155,"column":7}},{"start":{"line":153,"column":6},"end":{"line":155,"column":7}}],"line":153},"30":{"loc":{"start":{"line":162,"column":2},"end":{"line":164,"column":3}},"type":"if","locations":[{"start":{"line":162,"column":2},"end":{"line":164,"column":3}},{"start":{"line":162,"column":2},"end":{"line":164,"column":3}}],"line":162},"31":{"loc":{"start":{"line":167,"column":2},"end":{"line":167,"column":37}},"type":"if","locations":[{"start":{"line":167,"column":2},"end":{"line":167,"column":37}},{"start":{"line":167,"column":2},"end":{"line":167,"column":37}}],"line":167},"32":{"loc":{"start":{"line":170,"column":2},"end":{"line":182,"column":3}},"type":"if","locations":[{"start":{"line":170,"column":2},"end":{"line":182,"column":3}},{"start":{"line":170,"column":2},"end":{"line":182,"column":3}}],"line":170},"33":{"loc":{"start":{"line":170,"column":6},"end":{"line":170,"column":70}},"type":"binary-expr","locations":[{"start":{"line":170,"column":6},"end":{"line":170,"column":48}},{"start":{"line":170,"column":52},"end":{"line":170,"column":70}}],"line":170},"34":{"loc":{"start":{"line":173,"column":4},"end":{"line":181,"column":5}},"type":"if","locations":[{"start":{"line":173,"column":4},"end":{"line":181,"column":5}},{"start":{"line":173,"column":4},"end":{"line":181,"column":5}}],"line":173},"35":{"loc":{"start":{"line":207,"column":28},"end":{"line":207,"column":59}},"type":"default-arg","locations":[{"start":{"line":207,"column":38},"end":{"line":207,"column":59}}],"line":207},"36":{"loc":{"start":{"line":210,"column":6},"end":{"line":212,"column":7}},"type":"if","locations":[{"start":{"line":210,"column":6},"end":{"line":212,"column":7}},{"start":{"line":210,"column":6},"end":{"line":212,"column":7}}],"line":210},"37":{"loc":{"start":{"line":223,"column":8},"end":{"line":223,"column":98}},"type":"if","locations":[{"start":{"line":223,"column":8},"end":{"line":223,"column":98}},{"start":{"line":223,"column":8},"end":{"line":223,"column":98}}],"line":223},"38":{"loc":{"start":{"line":223,"column":12},"end":{"line":223,"column":89}},"type":"binary-expr","locations":[{"start":{"line":223,"column":12},"end":{"line":223,"column":31}},{"start":{"line":223,"column":35},"end":{"line":223,"column":89}}],"line":223},"39":{"loc":{"start":{"line":249,"column":2},"end":{"line":251,"column":3}},"type":"if","locations":[{"start":{"line":249,"column":2},"end":{"line":251,"column":3}},{"start":{"line":249,"column":2},"end":{"line":251,"column":3}}],"line":249},"40":{"loc":{"start":{"line":255,"column":4},"end":{"line":255,"column":67}},"type":"if","locations":[{"start":{"line":255,"column":4},"end":{"line":255,"column":67}},{"start":{"line":255,"column":4},"end":{"line":255,"column":67}}],"line":255},"41":{"loc":{"start":{"line":266,"column":2},"end":{"line":268,"column":3}},"type":"if","locations":[{"start":{"line":266,"column":2},"end":{"line":268,"column":3}},{"start":{"line":266,"column":2},"end":{"line":268,"column":3}}],"line":266},"42":{"loc":{"start":{"line":283,"column":6},"end":{"line":283,"column":56}},"type":"if","locations":[{"start":{"line":283,"column":6},"end":{"line":283,"column":56}},{"start":{"line":283,"column":6},"end":{"line":283,"column":56}}],"line":283},"43":{"loc":{"start":{"line":300,"column":2},"end":{"line":307,"column":3}},"type":"if","locations":[{"start":{"line":300,"column":2},"end":{"line":307,"column":3}},{"start":{"line":300,"column":2},"end":{"line":307,"column":3}}],"line":300}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":3,"22":3,"23":18,"24":18,"25":22,"26":22,"27":18,"28":4,"29":4,"30":18,"31":14,"32":4,"33":4,"34":0,"35":18,"36":1,"37":1,"38":2,"39":2,"40":15,"41":0,"42":15,"43":0,"44":15,"45":15,"46":15,"47":15,"48":15,"49":15,"50":11,"51":11,"52":11,"53":11,"54":11,"55":1,"56":1,"57":1,"58":1,"59":11,"60":4,"61":18,"62":11,"63":2,"64":15,"65":2,"66":3,"67":0,"68":3,"69":3,"70":3,"71":3,"72":3,"73":3,"74":3,"75":3,"76":3,"77":3,"78":3,"79":3,"80":3,"81":3,"82":0,"83":3,"84":3,"85":3,"86":2,"87":2,"88":0,"89":2,"90":2,"91":2,"92":2,"93":2,"94":0,"95":0,"96":2,"97":2,"98":2,"99":2,"100":2,"101":2,"102":0,"103":0,"104":2,"105":4,"106":0,"107":4,"108":0,"109":4,"110":4,"111":4,"112":4,"113":1,"114":1,"115":3,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":3,"126":0,"127":3,"128":3,"129":3,"130":3,"131":3,"132":3,"133":3,"134":1,"135":0,"136":1,"137":3,"138":3,"139":1,"140":3,"141":1,"142":0,"143":1,"144":0,"145":0,"146":1,"147":1,"148":1,"149":1,"150":0,"151":1,"152":1,"153":1,"154":2,"155":2,"156":2,"157":2,"158":0,"159":0,"160":2,"161":2,"162":2,"163":3,"164":3,"165":3,"166":3,"167":3,"168":1,"169":1,"170":3,"171":3},"f":{"0":3,"1":3,"2":18,"3":18,"4":22,"5":4,"6":0,"7":2,"8":2,"9":15,"10":18,"11":15,"12":2,"13":3,"14":2,"15":2,"16":4,"17":1,"18":1,"19":1,"20":1,"21":3,"22":1,"23":3,"24":1,"25":1,"26":1,"27":1,"28":2,"29":2,"30":2,"31":3,"32":1,"33":3},"b":{"0":[0,3],"1":[3,3],"2":[14,4],"3":[0],"4":[0,15],"5":[0,15],"6":[11,4],"7":[15,11],"8":[15,15],"9":[11,4],"10":[15,11,11],"11":[4,7],"12":[0],"13":[0,3],"14":[3,0],"15":[3,3],"16":[3,3],"17":[3,0],"18":[3,3],"19":[0,3],"20":[2],"21":[0,2],"22":[2,2],"23":[2,2],"24":[0,2],"25":[2,0],"26":[2,0],"27":[2,0],"28":[2,0],"29":[0,0],"30":[0,4],"31":[0,4],"32":[4,0],"33":[4,4],"34":[1,3],"35":[1],"36":[0,3],"37":[0,1],"38":[1,1],"39":[0,1],"40":[0,0],"41":[0,1],"42":[0,0],"43":[1,2]},"inputSourceMap":{"version":3,"sources":["hooks.users.js"],"names":["enforcePasswordPolicy","storePreviousPassword","generatePassword","preventRemoveUser","joinOrganisation","leaveOrganisations","sendVerificationEmail","sendInvitationEmail","addVerification","removeVerification","unregisterDevices","verifyHooks","require","hooks","debug","options","hook","type","Error","params","force","app","item","user","userAsItem","clearPassword","_","get","passwordField","hashedPasswords","previousPasswordsField","getPasswordPolicy","validator","result","validate","list","i","length","comparePassword","password","push","error","isEmpty","BadRequest","translation","key","keys","map","rule","toUpperCase","Object","assign","failedRules","omit","data","previousItem","previousPasswords","max","shift","suggestedPasswordField","set","unset","passwordRule","RegExp","minLength","_id","toString","id","organisations","owningOrganisations","filter","permissions","RoleNames","Roles","owner","Forbidden","name","subject","authorisationService","getService","usersService","create","scope","sponsor","roleGranted","resource","organisationId","resourcesService","subjectsService","subjects","then","authorisation","skipPrivate","organisationsService","Promise","all","organisation","remove","query","provider","authenticationProviders","resolve","accountService","notifier","getPath","isVerified","pusherService","unregisterPromises","devices","forEach","device","registrationId","action","results"],"mappings":"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","file":"hooks.users.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/hooks","sourcesContent":["import _ from 'lodash'\r\nimport makeDebug from 'debug'\r\nimport generateRandomPassword from 'password-generator'\r\nimport { getItems, replaceItems } from 'feathers-hooks-common'\r\nimport { Forbidden, BadRequest } from '@feathersjs/errors'\r\nimport { Roles, RoleNames } from '../../common/permissions'\r\n\r\nconst verifyHooks = require('feathers-authentication-management').hooks\r\n\r\nconst debug = makeDebug('kdk:core:users:hooks')\r\n\r\nexport function enforcePasswordPolicy (options = {}) {\r\n return async function (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'enforePasswordPolicy\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n // By pass check ?\r\n if (hook.params.force) return hook\r\n const app = hook.app\r\n const item = getItems(hook)\r\n const user = options.userAsItem ? item : hook.params.user\r\n // Get both password(s) since some rules target one and some the other one(s)\r\n const clearPassword = _.get(item, options.passwordField || 'clearPassword')\r\n const hashedPasswords = _.get(user, options.previousPasswordsField || 'previousPasswords', [])\r\n if (clearPassword && hashedPasswords && app.getPasswordPolicy) {\r\n debug('Enforcing password policy on user', user)\r\n const validator = app.getPasswordPolicy()\r\n // First check the clear password\r\n const result = validator.validate(clearPassword, { list: true })\r\n // Then check for the last used passwords using password policy verifier\r\n for (let i = 0; i < hashedPasswords.length; i++) {\r\n try {\r\n await validator.comparePassword({ password: hashedPasswords[i] }, clearPassword)\r\n // If we have found a similar password stop\r\n result.push('previous')\r\n break\r\n } catch (error) {\r\n // Check next one\r\n }\r\n }\r\n\r\n if (!_.isEmpty(result)) {\r\n throw new BadRequest('The provided password does not comply to the password policy', {\r\n translation: {\r\n key: 'WEAK_PASSWORD',\r\n keys: result.map(rule => 'WEAK_PASSWORD_' + rule.toUpperCase()),\r\n params: Object.assign({ failedRules: result }, _.omit(validator.options, ['prohibited']))\r\n }\r\n })\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n\r\nexport function storePreviousPassword (options = {}) {\r\n return function (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'storePreviousPassword\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const app = hook.app\r\n const data = getItems(hook)\r\n if (app.getPasswordPolicy && hook.params.previousItem) {\r\n const validator = app.getPasswordPolicy()\r\n // Based on previous password value\r\n const user = hook.params.previousItem\r\n const passwordField = options.passwordField || 'password'\r\n const password = _.get(user, passwordField)\r\n if (password) {\r\n const previousPasswordsField = options.previousPasswordsField || 'previousPasswords'\r\n const previousPasswords = _.get(user, previousPasswordsField, [])\r\n debug(`Moving previous password from field ${passwordField} in field ${previousPasswords} on user`, user)\r\n previousPasswords.push(password)\r\n // Pop oldest password when required\r\n const max = _.get(validator, 'options.history', 5)\r\n if (previousPasswords.length > max) previousPasswords.shift()\r\n Object.assign(data, { [previousPasswordsField]: previousPasswords })\r\n replaceItems(hook, data)\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n\r\nexport function generatePassword (options = {}) {\r\n return function (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'generatePassword\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n const app = hook.app\r\n const data = hook.data\r\n const passwordField = options.passwordField || 'password'\r\n const suggestedPasswordField = options.suggestedPasswordField || 'password'\r\n // If a password is already provided and compliant with rules we will use it\r\n if (_.get(data, suggestedPasswordField)) {\r\n _.set(data, passwordField, _.get(data, suggestedPasswordField))\r\n // Avoid leaking clear password\r\n _.unset(data, suggestedPasswordField)\r\n }\r\n // Generated password rule\r\n const passwordRule = new RegExp('[\\\\w\\\\d\\\\?\\\\-]')\r\n // If we have a password policy ensure we match it\r\n if (app.getPasswordPolicy) {\r\n const validator = app.getPasswordPolicy()\r\n // Check if a compliant password has been provided, otherwise generate it\r\n if (!_.get(data, passwordField) || !validator.validate(_.get(data, passwordField))) {\r\n do {\r\n _.set(data, passwordField, generateRandomPassword(validator.options.minLength || 12, false, passwordRule))\r\n } while (!validator.validate(_.get(data, passwordField)))\r\n }\r\n } else {\r\n // Check if a password has been provided, otherwise generate it\r\n if (!_.get(data, passwordField)) {\r\n _.set(data, passwordField, generateRandomPassword(12, false, passwordRule))\r\n }\r\n }\r\n return hook\r\n }\r\n}\r\n\r\nexport function preventRemoveUser (hook) {\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'preventRemoveUser\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n // By pass check ?\r\n if (hook.params.force) return hook\r\n const user = hook.params.user\r\n // Check if the target is the current user\r\n if ((user._id.toString() === hook.id.toString()) && user.organisations) {\r\n // We must ensure the user is no more a owner of an organisation\r\n const owningOrganisations = _.filter(user.organisations, { permissions: RoleNames[Roles.owner] })\r\n if (!_.isEmpty(owningOrganisations)) {\r\n debug('Cannot remove the user: ', user)\r\n throw new Forbidden('You are not allowed to delete the user ' + user.name, {\r\n translation: {\r\n key: 'CANNOT_REMOVE_USER',\r\n params: { user: user.name }\r\n }\r\n })\r\n }\r\n }\r\n return hook\r\n}\r\n\r\nexport function joinOrganisation (hook) {\r\n const app = hook.app\r\n const subject = getItems(hook)\r\n const authorisationService = app.getService('authorisations')\r\n const usersService = app.getService('users')\r\n\r\n // Set membership for the created user\r\n return authorisationService.create({\r\n scope: 'organisations',\r\n permissions: subject.sponsor.roleGranted, // Member by default\r\n resource: subject.sponsor.organisationId,\r\n resourcesService: 'organisations'\r\n }, {\r\n subjectsService: usersService,\r\n subjects: [subject]\r\n })\r\n .then(authorisation => {\r\n debug('Organisation membership set for user ' + subject._id)\r\n return hook\r\n })\r\n}\r\n\r\nexport function leaveOrganisations (options = { skipPrivate: true }) {\r\n return async function (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'leaveOrganisations\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n const app = hook.app\r\n const organisationsService = app.getService('organisations')\r\n const authorisationService = app.getService('authorisations')\r\n const usersService = app.getService('users')\r\n const subject = getItems(hook)\r\n const organisations = _.get(subject, 'organisations', [])\r\n\r\n await Promise.all(organisations.map(organisation => {\r\n // Unset membership on org except private org if required\r\n if (options.skipPrivate && organisation._id.toString() === subject._id.toString()) return\r\n return authorisationService.remove(organisation._id.toString(), {\r\n query: {\r\n scope: 'organisations'\r\n },\r\n user: hook.params.user,\r\n // Because we already have resource set it as objects to avoid populating\r\n // Moreover used as an after hook the subject might not already exist anymore\r\n subjects: [subject],\r\n subjectsService: usersService,\r\n resource: organisation,\r\n resourcesService: organisationsService\r\n })\r\n }))\r\n\r\n debug('Membership unset for all organisations on user ' + subject._id)\r\n return hook\r\n }\r\n}\r\n\r\nexport function sendVerificationEmail (hook) {\r\n if (hook.type !== 'after') {\r\n throw new Error('The \\'sendVerificationEmail\\' hook should only be used as a \\'after\\' hook.')\r\n }\r\n\r\n // Check for by-passing OAuth2 providers\r\n for (const provider of hook.app.authenticationProviders) {\r\n if (hook.result[provider + 'Id']) return Promise.resolve(hook)\r\n }\r\n\r\n const accountService = hook.app.getService('account')\r\n return accountService.options.notifier('resendVerifySignup', hook.result)\r\n .then(result => {\r\n return hook\r\n })\r\n}\r\n\r\nexport function sendInvitationEmail (hook) {\r\n // Before because we need to send the clear password by email\r\n if (hook.type !== 'before') {\r\n throw new Error('The \\'sendInvitationEmail\\' hook should only be used as a \\'before\\' hook.')\r\n }\r\n\r\n const accountService = hook.app.getService('account')\r\n return accountService.options.notifier('sendInvitation', hook.data)\r\n .then(result => {\r\n return hook\r\n })\r\n}\r\n\r\nexport function addVerification (hook) {\r\n const accountService = hook.app.getService('account')\r\n\r\n return verifyHooks.addVerification(accountService.getPath(true))(hook)\r\n .then(hook => {\r\n // Check for OAuth2 providers\r\n let isVerified = false\r\n for (const provider of hook.app.authenticationProviders) {\r\n if (hook.data[provider + 'Id']) isVerified = true\r\n }\r\n hook.data.isVerified = isVerified\r\n return hook\r\n })\r\n}\r\n\r\nexport function removeVerification (hook) {\r\n return verifyHooks.removeVerification()(hook)\r\n}\r\n\r\nexport function unregisterDevices (hook) {\r\n debug('Unregistering devices for user ', hook.params.user)\r\n const pusherService = hook.app.getService('pusher')\r\n const user = hook.params.user\r\n // Process with each registered device\r\n const unregisterPromises = []\r\n if (user.devices) {\r\n user.devices.forEach(device => {\r\n unregisterPromises.push(\r\n pusherService.remove(device.registrationId,\r\n {\r\n query: { action: 'device' },\r\n user: hook.params.user\r\n })\r\n )\r\n })\r\n }\r\n return Promise.all(unregisterPromises)\r\n .then(results => hook)\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a76d2f9cde2cd1c934c720202b7412000036f2cb","contentHash":"e01e066998cf65c0605d49ac851a2e492836a3d2c65f9a285e7dd9549e63d3f8"},"D:\\Development\\kalisio\\kdk\\core\\api\\models\\users.model.mongodb.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\models\\users.model.mongodb.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":12,"column":2}},"1":{"start":{"line":4,"column":2},"end":{"line":4,"column":45}},"2":{"start":{"line":5,"column":2},"end":{"line":5,"column":60}},"3":{"start":{"line":8,"column":2},"end":{"line":8,"column":114}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":114}},"5":{"start":{"line":11,"column":2},"end":{"line":11,"column":72}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":41},"end":{"line":12,"column":1}},"line":3}},"branchMap":{},"s":{"0":1,"1":5,"2":5,"3":5,"4":5,"5":5},"f":{"0":5},"b":{},"inputSourceMap":{"version":3,"sources":["users.model.mongodb.js"],"names":["module","exports","app","options","Model","db","collection","createIndex","email","unique","name","collation","locale","strength","expireAt","expireAfterSeconds"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,UAAUC,GAAV,EAAeC,OAAf,EAAwB;AACvCA,UAAQC,KAAR,GAAgBF,IAAIG,EAAJ,CAAOC,UAAP,CAAkB,OAAlB,CAAhB;AACAH,UAAQC,KAAR,CAAcG,WAAd,CAA0B,EAAEC,OAAO,CAAT,EAA1B,EAAwC,EAAEC,QAAQ,IAAV,EAAxC;AACA;AACA;AACAN,UAAQC,KAAR,CAAcG,WAAd,CAA0B,EAAE,gBAAgB,CAAlB,EAA1B,EAAiD,EAAEG,MAAM,SAAR,EAAmBC,WAAW,EAAEC,QAAQ,IAAV,EAAgBC,UAAU,CAA1B,EAA9B,EAAjD;AACAV,UAAQC,KAAR,CAAcG,WAAd,CAA0B,EAAE,gBAAgB,CAAlB,EAA1B,EAAiD,EAAEG,MAAM,SAAR,EAAmBC,WAAW,EAAEC,QAAQ,IAAV,EAAgBC,UAAU,CAA1B,EAA9B,EAAjD;AACA;AACAV,UAAQC,KAAR,CAAcG,WAAd,CAA0B,EAAEO,UAAU,CAAZ,EAA1B,EAA2C,EAAEC,oBAAoB,CAAtB,EAA3C;AACD,CATD","file":"users.model.mongodb.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/models","sourcesContent":["module.exports = function (app, options) {\r\n options.Model = app.db.collection('users')\r\n options.Model.createIndex({ email: 1 }, { unique: true })\r\n // Collation provided in query ensure sorting to be case insensitive w.r.t. user's language\r\n // We built indices with collation to cover the most used languages, it requires different naming...\r\n options.Model.createIndex({ 'profile.name': 1 }, { name: 'name-en', collation: { locale: 'en', strength: 1 } })\r\n options.Model.createIndex({ 'profile.name': 1 }, { name: 'name-fr', collation: { locale: 'fr', strength: 1 } })\r\n // Inactive user account might expire at a given date\r\n options.Model.createIndex({ expireAt: 1 }, { expireAfterSeconds: 0 })\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f289c0f0b272f6529f0d19e001c3f94678003a72","contentHash":"939ba6be3cf2fba9763612ea57c4d6eeddbbba5a25bc745e8bb9a5d6d05832b0"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\users\\users.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\users\\users.hooks.js","statementMap":{"0":{"start":{"line":3,"column":14},"end":{"line":3,"column":31}},"1":{"start":{"line":5,"column":15},"end":{"line":5,"column":46}},"2":{"start":{"line":7,"column":13},"end":{"line":7,"column":35}},"3":{"start":{"line":9,"column":39},"end":{"line":9,"column":93}},"4":{"start":{"line":11,"column":20},"end":{"line":11,"column":52}},"5":{"start":{"line":13,"column":0},"end":{"line":62,"column":2}},"6":{"start":{"line":18,"column":38},"end":{"line":18,"column":114}},"7":{"start":{"line":19,"column":21},"end":{"line":19,"column":51}},"8":{"start":{"line":20,"column":6},"end":{"line":20,"column":31}},"9":{"start":{"line":20,"column":19},"end":{"line":20,"column":31}},"10":{"start":{"line":21,"column":6},"end":{"line":26,"column":9}},"11":{"start":{"line":22,"column":29},"end":{"line":22,"column":45}},"12":{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},"13":{"start":{"line":24,"column":10},"end":{"line":24,"column":283}},"14":{"start":{"line":27,"column":6},"end":{"line":27,"column":18}},"15":{"start":{"line":38,"column":38},"end":{"line":38,"column":86}},"16":{"start":{"line":39,"column":37},"end":{"line":39,"column":85}},"17":{"start":{"line":44,"column":35},"end":{"line":44,"column":55}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":31}},"loc":{"start":{"line":9,"column":37},"end":{"line":9,"column":95}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":30},"end":{"line":18,"column":31}},"loc":{"start":{"line":18,"column":38},"end":{"line":18,"column":114}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":151},"end":{"line":18,"column":152}},"loc":{"start":{"line":18,"column":159},"end":{"line":28,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":47},"end":{"line":21,"column":48}},"loc":{"start":{"line":21,"column":59},"end":{"line":26,"column":7}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":38,"column":30},"end":{"line":38,"column":31}},"loc":{"start":{"line":38,"column":38},"end":{"line":38,"column":86}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":39,"column":29},"end":{"line":39,"column":30}},"loc":{"start":{"line":39,"column":37},"end":{"line":39,"column":85}},"line":39},"6":{"name":"(anonymous_6)","decl":{"start":{"line":44,"column":27},"end":{"line":44,"column":28}},"loc":{"start":{"line":44,"column":35},"end":{"line":44,"column":55}},"line":44}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":46},"end":{"line":9,"column":92}},"type":"cond-expr","locations":[{"start":{"line":9,"column":70},"end":{"line":9,"column":73}},{"start":{"line":9,"column":76},"end":{"line":9,"column":92}}],"line":9},"1":{"loc":{"start":{"line":9,"column":46},"end":{"line":9,"column":67}},"type":"binary-expr","locations":[{"start":{"line":9,"column":46},"end":{"line":9,"column":49}},{"start":{"line":9,"column":53},"end":{"line":9,"column":67}}],"line":9},"2":{"loc":{"start":{"line":20,"column":6},"end":{"line":20,"column":31}},"type":"if","locations":[{"start":{"line":20,"column":6},"end":{"line":20,"column":31}},{"start":{"line":20,"column":6},"end":{"line":20,"column":31}}],"line":20},"3":{"loc":{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},{"start":{"line":23,"column":8},"end":{"line":25,"column":9}}],"line":23},"4":{"loc":{"start":{"line":24,"column":69},"end":{"line":24,"column":117}},"type":"binary-expr","locations":[{"start":{"line":24,"column":69},"end":{"line":24,"column":100}},{"start":{"line":24,"column":104},"end":{"line":24,"column":117}}],"line":24},"5":{"loc":{"start":{"line":24,"column":174},"end":{"line":24,"column":227}},"type":"binary-expr","locations":[{"start":{"line":24,"column":174},"end":{"line":24,"column":206}},{"start":{"line":24,"column":210},"end":{"line":24,"column":227}}],"line":24},"6":{"loc":{"start":{"line":38,"column":38},"end":{"line":38,"column":86}},"type":"binary-expr","locations":[{"start":{"line":38,"column":38},"end":{"line":38,"column":56}},{"start":{"line":38,"column":60},"end":{"line":38,"column":86}}],"line":38},"7":{"loc":{"start":{"line":39,"column":37},"end":{"line":39,"column":85}},"type":"binary-expr","locations":[{"start":{"line":39,"column":37},"end":{"line":39,"column":55}},{"start":{"line":39,"column":59},"end":{"line":39,"column":85}}],"line":39}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":11,"7":11,"8":11,"9":0,"10":11,"11":0,"12":0,"13":0,"14":11,"15":0,"16":42,"17":180},"f":{"0":1,"1":11,"2":11,"3":0,"4":0,"5":42,"6":180},"b":{"0":[0,1],"1":[1,1],"2":[0,11],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[42,3]},"inputSourceMap":{"version":3,"sources":["users.hooks.js"],"names":["commonHooks","require","module","exports","before","all","find","get","create","when","hook","_","app","disallow","config","authenticationProviders","forEach","provider","clientConfig","has","source","nameFieldInProfile","target","emailFieldInProfile","throwOnNotFound","delete","userAsItem","discard","update","data","password","getPasswordPolicy","populatePreviousObject","patch","remove","after","params","error"],"mappings":"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","file":"users.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/users","sourcesContent":["import _ from 'lodash'\r\nimport { serialize, updateAbilities, populatePreviousObject, hashPassword, enforcePasswordPolicy, storePreviousPassword } from '../../hooks'\r\nconst commonHooks = require('feathers-hooks-common')\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [\r\n commonHooks.when(hook => _.get(hook.app.get('authentication'), 'disallowRegistration'),\r\n commonHooks.disallow('external')),\r\n hook => {\r\n const config = hook.app.get('authentication')\r\n if (!config) return hook\r\n hook.app.authenticationProviders.forEach(provider => {\r\n const clientConfig = config[provider]\r\n if (_.has(hook, `data.${provider}`)) {\r\n serialize([\r\n { source: `${provider}.profile.` + (clientConfig.nameFieldInProfile || 'displayName'), target: 'name' },\r\n { source: `${provider}.profile.` + (clientConfig.emailFieldInProfile || 'emails[0].value'), target: 'email' }\r\n ], { throwOnNotFound: true })(hook)\r\n }\r\n })\r\n return hook\r\n },\r\n serialize([\r\n { source: 'name', target: 'profile.name', delete: true },\r\n { source: 'email', target: 'profile.description' }\r\n ], { throwOnNotFound: true }),\r\n serialize([\r\n // Enforcing password policy requires both the clear and hashed password,\r\n // Keep track of clear password here since hashPassword() remove it\r\n // FIXME: for testing purpose we create users without a password for now\r\n // should it be fixed for safety ?\r\n { source: 'password', target: 'clearPassword' }\r\n ], { throwOnNotFound: false }),\r\n hashPassword(),\r\n enforcePasswordPolicy({ userAsItem: true }),\r\n // Now we have enforced password policy remove the clear password\r\n // (we only store hashed password for safety)\r\n commonHooks.discard('clearPassword')\r\n ],\r\n // when changing password store previous one for password policy\r\n update: [commonHooks.when(hook => hook.data.password && hook.app.getPasswordPolicy, populatePreviousObject, storePreviousPassword({ userAsItem: true }))],\r\n patch: [commonHooks.when(hook => hook.data.password && hook.app.getPasswordPolicy, populatePreviousObject, storePreviousPassword({ userAsItem: true }))],\r\n remove: []\r\n },\r\n\r\n after: {\r\n all: [\r\n commonHooks.when(hook => hook.params.provider, commonHooks.discard('password'), commonHooks.discard('previousPasswords')),\r\n serialize([\r\n { source: 'profile.name', target: 'name' },\r\n { source: 'profile.avatar', target: 'avatar' },\r\n { source: 'profile.description', target: 'description' }\r\n ])\r\n ],\r\n find: [],\r\n get: [],\r\n create: [updateAbilities()],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dabccf8b6081b5f8b69e0ef470cef2e36800dde7","contentHash":"df4c5b8041bbc86067bf870ea03a4af5a27d2afa156b715afc195ac2280b2a87"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\authorisations\\authorisations.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\authorisations\\authorisations.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":14},"end":{"line":7,"column":31}},"2":{"start":{"line":9,"column":15},"end":{"line":9,"column":46}},"3":{"start":{"line":11,"column":16},"end":{"line":11,"column":36}},"4":{"start":{"line":13,"column":17},"end":{"line":13,"column":50}},"5":{"start":{"line":15,"column":13},"end":{"line":15,"column":29}},"6":{"start":{"line":17,"column":14},"end":{"line":17,"column":44}},"7":{"start":{"line":19,"column":19},"end":{"line":19,"column":57}},"8":{"start":{"line":21,"column":39},"end":{"line":21,"column":93}},"9":{"start":{"line":23,"column":33},"end":{"line":23,"column":456}},"10":{"start":{"line":23,"column":64},"end":{"line":23,"column":89}},"11":{"start":{"line":23,"column":91},"end":{"line":23,"column":453}},"12":{"start":{"line":23,"column":165},"end":{"line":23,"column":263}},"13":{"start":{"line":23,"column":182},"end":{"line":23,"column":195}},"14":{"start":{"line":23,"column":209},"end":{"line":23,"column":219}},"15":{"start":{"line":23,"column":239},"end":{"line":23,"column":253}},"16":{"start":{"line":23,"column":254},"end":{"line":23,"column":261}},"17":{"start":{"line":23,"column":264},"end":{"line":23,"column":426}},"18":{"start":{"line":23,"column":281},"end":{"line":23,"column":296}},"19":{"start":{"line":23,"column":306},"end":{"line":23,"column":424}},"20":{"start":{"line":23,"column":360},"end":{"line":23,"column":380}},"21":{"start":{"line":23,"column":401},"end":{"line":23,"column":420}},"22":{"start":{"line":23,"column":429},"end":{"line":23,"column":449}},"23":{"start":{"line":25,"column":14},"end":{"line":25,"column":69}},"24":{"start":{"line":28,"column":23},"end":{"line":28,"column":34}},"25":{"start":{"line":30,"column":0},"end":{"line":178,"column":2}},"26":{"start":{"line":35,"column":16},"end":{"line":35,"column":20}},"27":{"start":{"line":37,"column":18},"end":{"line":37,"column":30}},"28":{"start":{"line":38,"column":20},"end":{"line":38,"column":51}},"29":{"start":{"line":40,"column":22},"end":{"line":40,"column":47}},"30":{"start":{"line":41,"column":4},"end":{"line":77,"column":11}},"31":{"start":{"line":42,"column":17},"end":{"line":72,"column":8}},"32":{"start":{"line":44,"column":22},"end":{"line":44,"column":66}},"33":{"start":{"line":46,"column":23},"end":{"line":48,"column":10}},"34":{"start":{"line":47,"column":10},"end":{"line":47,"column":92}},"35":{"start":{"line":50,"column":8},"end":{"line":56,"column":9}},"36":{"start":{"line":51,"column":10},"end":{"line":51,"column":56}},"37":{"start":{"line":52,"column":10},"end":{"line":54,"column":11}},"38":{"start":{"line":53,"column":12},"end":{"line":53,"column":105}},"39":{"start":{"line":55,"column":10},"end":{"line":55,"column":31}},"40":{"start":{"line":59,"column":8},"end":{"line":59,"column":69}},"41":{"start":{"line":62,"column":8},"end":{"line":62,"column":56}},"42":{"start":{"line":63,"column":8},"end":{"line":63,"column":130}},"43":{"start":{"line":64,"column":8},"end":{"line":68,"column":11}},"44":{"start":{"line":69,"column":8},"end":{"line":69,"column":45}},"45":{"start":{"line":70,"column":8},"end":{"line":70,"column":156}},"46":{"start":{"line":71,"column":8},"end":{"line":71,"column":23}},"47":{"start":{"line":74,"column":6},"end":{"line":76,"column":8}},"48":{"start":{"line":75,"column":8},"end":{"line":75,"column":43}},"49":{"start":{"line":84,"column":17},"end":{"line":84,"column":21}},"50":{"start":{"line":86,"column":18},"end":{"line":86,"column":30}},"51":{"start":{"line":87,"column":22},"end":{"line":87,"column":33}},"52":{"start":{"line":88,"column":4},"end":{"line":119,"column":11}},"53":{"start":{"line":89,"column":18},"end":{"line":114,"column":8}},"54":{"start":{"line":91,"column":22},"end":{"line":91,"column":66}},"55":{"start":{"line":93,"column":26},"end":{"line":95,"column":10}},"56":{"start":{"line":94,"column":10},"end":{"line":94,"column":75}},"57":{"start":{"line":96,"column":8},"end":{"line":112,"column":9}},"58":{"start":{"line":99,"column":10},"end":{"line":99,"column":58}},"59":{"start":{"line":101,"column":10},"end":{"line":111,"column":11}},"60":{"start":{"line":102,"column":12},"end":{"line":102,"column":117}},"61":{"start":{"line":103,"column":12},"end":{"line":107,"column":15}},"62":{"start":{"line":108,"column":12},"end":{"line":108,"column":50}},"63":{"start":{"line":109,"column":12},"end":{"line":109,"column":120}},"64":{"start":{"line":110,"column":12},"end":{"line":110,"column":27}},"65":{"start":{"line":113,"column":8},"end":{"line":113,"column":23}},"66":{"start":{"line":116,"column":6},"end":{"line":118,"column":8}},"67":{"start":{"line":117,"column":8},"end":{"line":117,"column":44}},"68":{"start":{"line":123,"column":19},"end":{"line":123,"column":43}},"69":{"start":{"line":124,"column":4},"end":{"line":130,"column":5}},"70":{"start":{"line":126,"column":6},"end":{"line":126,"column":73}},"71":{"start":{"line":127,"column":6},"end":{"line":127,"column":50}},"72":{"start":{"line":129,"column":6},"end":{"line":129,"column":55}},"73":{"start":{"line":136,"column":17},"end":{"line":136,"column":21}},"74":{"start":{"line":138,"column":4},"end":{"line":158,"column":9}},"75":{"start":{"line":139,"column":6},"end":{"line":145,"column":7}},"76":{"start":{"line":140,"column":8},"end":{"line":144,"column":9}},"77":{"start":{"line":141,"column":10},"end":{"line":141,"column":104}},"78":{"start":{"line":141,"column":56},"end":{"line":141,"column":104}},"79":{"start":{"line":143,"column":10},"end":{"line":143,"column":88}},"80":{"start":{"line":143,"column":48},"end":{"line":143,"column":88}},"81":{"start":{"line":147,"column":24},"end":{"line":147,"column":84}},"82":{"start":{"line":149,"column":6},"end":{"line":155,"column":7}},"83":{"start":{"line":150,"column":8},"end":{"line":154,"column":9}},"84":{"start":{"line":151,"column":10},"end":{"line":151,"column":62}},"85":{"start":{"line":153,"column":10},"end":{"line":153,"column":54}},"86":{"start":{"line":157,"column":6},"end":{"line":157,"column":23}},"87":{"start":{"line":163,"column":17},"end":{"line":163,"column":21}},"88":{"start":{"line":165,"column":4},"end":{"line":176,"column":9}},"89":{"start":{"line":166,"column":6},"end":{"line":172,"column":7}},"90":{"start":{"line":167,"column":8},"end":{"line":171,"column":9}},"91":{"start":{"line":168,"column":10},"end":{"line":168,"column":51}},"92":{"start":{"line":170,"column":10},"end":{"line":170,"column":43}},"93":{"start":{"line":174,"column":24},"end":{"line":174,"column":58}},"94":{"start":{"line":175,"column":6},"end":{"line":175,"column":23}},"95":{"start":{"line":179,"column":0},"end":{"line":179,"column":36}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":21,"column":9},"end":{"line":21,"column":31}},"loc":{"start":{"line":21,"column":37},"end":{"line":21,"column":95}},"line":21},"1":{"name":"_asyncToGenerator","decl":{"start":{"line":23,"column":9},"end":{"line":23,"column":26}},"loc":{"start":{"line":23,"column":31},"end":{"line":23,"column":458}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":40},"end":{"line":23,"column":41}},"loc":{"start":{"line":23,"column":52},"end":{"line":23,"column":455}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":110},"end":{"line":23,"column":111}},"loc":{"start":{"line":23,"column":137},"end":{"line":23,"column":451}},"line":23},"4":{"name":"step","decl":{"start":{"line":23,"column":148},"end":{"line":23,"column":152}},"loc":{"start":{"line":23,"column":163},"end":{"line":23,"column":428}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":341},"end":{"line":23,"column":342}},"loc":{"start":{"line":23,"column":358},"end":{"line":23,"column":382}},"line":23},"6":{"name":"(anonymous_6)","decl":{"start":{"line":23,"column":384},"end":{"line":23,"column":385}},"loc":{"start":{"line":23,"column":399},"end":{"line":23,"column":422}},"line":23},"7":{"name":"(anonymous_7)","decl":{"start":{"line":34,"column":2},"end":{"line":34,"column":3}},"loc":{"start":{"line":34,"column":23},"end":{"line":78,"column":3}},"line":34},"8":{"name":"(anonymous_8)","decl":{"start":{"line":41,"column":44},"end":{"line":41,"column":45}},"loc":{"start":{"line":41,"column":50},"end":{"line":77,"column":5}},"line":41},"9":{"name":"(anonymous_9)","decl":{"start":{"line":42,"column":35},"end":{"line":42,"column":36}},"loc":{"start":{"line":42,"column":55},"end":{"line":72,"column":7}},"line":42},"10":{"name":"(anonymous_10)","decl":{"start":{"line":46,"column":52},"end":{"line":46,"column":53}},"loc":{"start":{"line":46,"column":72},"end":{"line":48,"column":9}},"line":46},"11":{"name":"(anonymous_11)","decl":{"start":{"line":74,"column":13},"end":{"line":74,"column":14}},"loc":{"start":{"line":74,"column":27},"end":{"line":76,"column":7}},"line":74},"12":{"name":"(anonymous_12)","decl":{"start":{"line":83,"column":2},"end":{"line":83,"column":3}},"loc":{"start":{"line":83,"column":21},"end":{"line":120,"column":3}},"line":83},"13":{"name":"(anonymous_13)","decl":{"start":{"line":88,"column":44},"end":{"line":88,"column":45}},"loc":{"start":{"line":88,"column":50},"end":{"line":119,"column":5}},"line":88},"14":{"name":"(anonymous_14)","decl":{"start":{"line":89,"column":36},"end":{"line":89,"column":37}},"loc":{"start":{"line":89,"column":56},"end":{"line":114,"column":7}},"line":89},"15":{"name":"(anonymous_15)","decl":{"start":{"line":93,"column":57},"end":{"line":93,"column":58}},"loc":{"start":{"line":93,"column":77},"end":{"line":95,"column":9}},"line":93},"16":{"name":"(anonymous_16)","decl":{"start":{"line":116,"column":13},"end":{"line":116,"column":14}},"loc":{"start":{"line":116,"column":28},"end":{"line":118,"column":7}},"line":116},"17":{"name":"(anonymous_17)","decl":{"start":{"line":122,"column":2},"end":{"line":122,"column":3}},"loc":{"start":{"line":122,"column":13},"end":{"line":131,"column":3}},"line":122},"18":{"name":"(anonymous_18)","decl":{"start":{"line":135,"column":2},"end":{"line":135,"column":3}},"loc":{"start":{"line":135,"column":24},"end":{"line":159,"column":3}},"line":135},"19":{"name":"(anonymous_19)","decl":{"start":{"line":138,"column":29},"end":{"line":138,"column":30}},"loc":{"start":{"line":138,"column":42},"end":{"line":158,"column":5}},"line":138},"20":{"name":"(anonymous_20)","decl":{"start":{"line":162,"column":2},"end":{"line":162,"column":3}},"loc":{"start":{"line":162,"column":27},"end":{"line":177,"column":3}},"line":162},"21":{"name":"(anonymous_21)","decl":{"start":{"line":165,"column":29},"end":{"line":165,"column":30}},"loc":{"start":{"line":165,"column":42},"end":{"line":176,"column":5}},"line":165}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":46},"end":{"line":21,"column":92}},"type":"cond-expr","locations":[{"start":{"line":21,"column":70},"end":{"line":21,"column":73}},{"start":{"line":21,"column":76},"end":{"line":21,"column":92}}],"line":21},"1":{"loc":{"start":{"line":21,"column":46},"end":{"line":21,"column":67}},"type":"binary-expr","locations":[{"start":{"line":21,"column":46},"end":{"line":21,"column":49}},{"start":{"line":21,"column":53},"end":{"line":21,"column":67}}],"line":21},"2":{"loc":{"start":{"line":23,"column":264},"end":{"line":23,"column":426}},"type":"if","locations":[{"start":{"line":23,"column":264},"end":{"line":23,"column":426}},{"start":{"line":23,"column":264},"end":{"line":23,"column":426}}],"line":23},"3":{"loc":{"start":{"line":40,"column":22},"end":{"line":40,"column":47}},"type":"binary-expr","locations":[{"start":{"line":40,"column":22},"end":{"line":40,"column":32}},{"start":{"line":40,"column":36},"end":{"line":40,"column":47}}],"line":40},"4":{"loc":{"start":{"line":47,"column":17},"end":{"line":47,"column":91}},"type":"binary-expr","locations":[{"start":{"line":47,"column":17},"end":{"line":47,"column":29}},{"start":{"line":47,"column":33},"end":{"line":47,"column":91}}],"line":47},"5":{"loc":{"start":{"line":50,"column":8},"end":{"line":56,"column":9}},"type":"if","locations":[{"start":{"line":50,"column":8},"end":{"line":56,"column":9}},{"start":{"line":50,"column":8},"end":{"line":56,"column":9}}],"line":50},"6":{"loc":{"start":{"line":52,"column":10},"end":{"line":54,"column":11}},"type":"if","locations":[{"start":{"line":52,"column":10},"end":{"line":54,"column":11}},{"start":{"line":52,"column":10},"end":{"line":54,"column":11}}],"line":52},"7":{"loc":{"start":{"line":53,"column":31},"end":{"line":53,"column":104}},"type":"cond-expr","locations":[{"start":{"line":53,"column":61},"end":{"line":53,"column":83}},{"start":{"line":53,"column":86},"end":{"line":53,"column":104}}],"line":53},"8":{"loc":{"start":{"line":59,"column":31},"end":{"line":59,"column":68}},"type":"binary-expr","locations":[{"start":{"line":59,"column":31},"end":{"line":59,"column":47}},{"start":{"line":59,"column":51},"end":{"line":59,"column":68}}],"line":59},"9":{"loc":{"start":{"line":94,"column":17},"end":{"line":94,"column":74}},"type":"binary-expr","locations":[{"start":{"line":94,"column":17},"end":{"line":94,"column":29}},{"start":{"line":94,"column":33},"end":{"line":94,"column":74}}],"line":94},"10":{"loc":{"start":{"line":96,"column":8},"end":{"line":112,"column":9}},"type":"if","locations":[{"start":{"line":96,"column":8},"end":{"line":112,"column":9}},{"start":{"line":96,"column":8},"end":{"line":112,"column":9}}],"line":96},"11":{"loc":{"start":{"line":101,"column":10},"end":{"line":111,"column":11}},"type":"if","locations":[{"start":{"line":101,"column":10},"end":{"line":111,"column":11}},{"start":{"line":101,"column":10},"end":{"line":111,"column":11}}],"line":101},"12":{"loc":{"start":{"line":124,"column":4},"end":{"line":130,"column":5}},"type":"if","locations":[{"start":{"line":124,"column":4},"end":{"line":130,"column":5}},{"start":{"line":124,"column":4},"end":{"line":130,"column":5}}],"line":124},"13":{"loc":{"start":{"line":124,"column":8},"end":{"line":124,"column":30}},"type":"binary-expr","locations":[{"start":{"line":124,"column":8},"end":{"line":124,"column":14}},{"start":{"line":124,"column":18},"end":{"line":124,"column":30}}],"line":124},"14":{"loc":{"start":{"line":126,"column":42},"end":{"line":126,"column":71}},"type":"binary-expr","locations":[{"start":{"line":126,"column":42},"end":{"line":126,"column":63}},{"start":{"line":126,"column":67},"end":{"line":126,"column":71}}],"line":126},"15":{"loc":{"start":{"line":139,"column":6},"end":{"line":145,"column":7}},"type":"if","locations":[{"start":{"line":139,"column":6},"end":{"line":145,"column":7}},{"start":{"line":139,"column":6},"end":{"line":145,"column":7}}],"line":139},"16":{"loc":{"start":{"line":140,"column":8},"end":{"line":144,"column":9}},"type":"if","locations":[{"start":{"line":140,"column":8},"end":{"line":144,"column":9}},{"start":{"line":140,"column":8},"end":{"line":144,"column":9}}],"line":140},"17":{"loc":{"start":{"line":140,"column":12},"end":{"line":140,"column":34}},"type":"binary-expr","locations":[{"start":{"line":140,"column":12},"end":{"line":140,"column":19}},{"start":{"line":140,"column":23},"end":{"line":140,"column":34}}],"line":140},"18":{"loc":{"start":{"line":141,"column":10},"end":{"line":141,"column":104}},"type":"if","locations":[{"start":{"line":141,"column":10},"end":{"line":141,"column":104}},{"start":{"line":141,"column":10},"end":{"line":141,"column":104}}],"line":141},"19":{"loc":{"start":{"line":143,"column":10},"end":{"line":143,"column":88}},"type":"if","locations":[{"start":{"line":143,"column":10},"end":{"line":143,"column":88}},{"start":{"line":143,"column":10},"end":{"line":143,"column":88}}],"line":143},"20":{"loc":{"start":{"line":149,"column":6},"end":{"line":155,"column":7}},"type":"if","locations":[{"start":{"line":149,"column":6},"end":{"line":155,"column":7}},{"start":{"line":149,"column":6},"end":{"line":155,"column":7}}],"line":149},"21":{"loc":{"start":{"line":150,"column":8},"end":{"line":154,"column":9}},"type":"if","locations":[{"start":{"line":150,"column":8},"end":{"line":154,"column":9}},{"start":{"line":150,"column":8},"end":{"line":154,"column":9}}],"line":150},"22":{"loc":{"start":{"line":150,"column":12},"end":{"line":150,"column":34}},"type":"binary-expr","locations":[{"start":{"line":150,"column":12},"end":{"line":150,"column":19}},{"start":{"line":150,"column":23},"end":{"line":150,"column":34}}],"line":150},"23":{"loc":{"start":{"line":166,"column":6},"end":{"line":172,"column":7}},"type":"if","locations":[{"start":{"line":166,"column":6},"end":{"line":172,"column":7}},{"start":{"line":166,"column":6},"end":{"line":172,"column":7}}],"line":166},"24":{"loc":{"start":{"line":167,"column":8},"end":{"line":171,"column":9}},"type":"if","locations":[{"start":{"line":167,"column":8},"end":{"line":171,"column":9}},{"start":{"line":167,"column":8},"end":{"line":171,"column":9}}],"line":167},"25":{"loc":{"start":{"line":167,"column":12},"end":{"line":167,"column":34}},"type":"binary-expr","locations":[{"start":{"line":167,"column":12},"end":{"line":167,"column":19}},{"start":{"line":167,"column":23},"end":{"line":167,"column":34}}],"line":167}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":3,"9":191,"10":192,"11":192,"12":340,"13":340,"14":340,"15":0,"16":0,"17":340,"18":192,"19":148,"20":148,"21":0,"22":192,"23":1,"24":1,"25":1,"26":12,"27":12,"28":12,"29":12,"30":12,"31":12,"32":12,"33":12,"34":5,"35":12,"36":10,"37":10,"38":4,"39":10,"40":12,"41":12,"42":12,"43":12,"44":12,"45":12,"46":12,"47":12,"48":12,"49":10,"50":10,"51":10,"52":10,"53":10,"54":11,"55":11,"56":12,"57":11,"58":10,"59":10,"60":9,"61":9,"62":9,"63":9,"64":9,"65":2,"66":10,"67":11,"68":5,"69":5,"70":5,"71":5,"72":0,"73":118,"74":118,"75":118,"76":118,"77":103,"78":59,"79":15,"80":4,"81":55,"82":55,"83":55,"84":44,"85":11,"86":55,"87":51,"88":51,"89":51,"90":51,"91":42,"92":9,"93":51,"94":51,"95":1},"f":{"0":3,"1":191,"2":192,"3":192,"4":340,"5":148,"6":0,"7":12,"8":12,"9":12,"10":5,"11":12,"12":10,"13":10,"14":11,"15":12,"16":11,"17":5,"18":118,"19":118,"20":51,"21":51},"b":{"0":[0,3],"1":[3,3],"2":[192,148],"3":[12,0],"4":[5,5],"5":[10,2],"6":[4,6],"7":[4,0],"8":[12,0],"9":[12,12],"10":[10,1],"11":[9,1],"12":[5,0],"13":[5,5],"14":[5,0],"15":[118,0],"16":[103,15],"17":[118,103],"18":[59,44],"19":[4,11],"20":[55,0],"21":[44,11],"22":[55,44],"23":[51,0],"24":[42,9],"25":[51,42]},"inputSourceMap":{"version":3,"sources":["authorisations.service.js"],"names":["debug","ANONYMOUS_USER","create","data","params","query","context","resourcesService","scopeName","scope","Promise","all","subjects","map","subject","_","get","resource","find","_id","toString","Object","assign","push","permissions","set","subjectsService","patch","user","updateAbilities","remove","id","resources","length","deleted","setup","app","config","cache","LruCache","maxUsers","getAbilities","has","abilities","del"],"mappings":"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","file":"authorisations.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/authorisations","sourcesContent":["import _ from 'lodash'\r\nimport LruCache from 'lru-cache'\r\nimport makeDebug from 'debug'\r\nimport { defineAbilities } from '../../../common/permissions'\r\n\r\nconst debug = makeDebug('kdk:core:authorisations:service')\r\n\r\n// Global key to store abilities in cache for anonymous users\r\nconst ANONYMOUS_USER = 'anonymous'\r\n\r\nexport default {\r\n // Used to change permissions for a subject on a resource\r\n // We pass parameters in the query/data object\r\n // The params object should be already filled by populate hooks\r\n create (data, params) {\r\n const query = params.query\r\n const context = params.resourcesService.context\r\n // Make hook usable with query params as well\r\n const scopeName = data.scope || query.scope // Get scope name first\r\n return Promise.all(params.subjects.map(async subject => {\r\n // Then retrieve the right scope on the subject\r\n const scope = _.get(subject, scopeName, [])\r\n // Then the target resource\r\n let resource = _.find(scope, resource => resource._id && (resource._id.toString() === params.resource._id.toString()))\r\n // On first authorisation create the resource in scope\r\n if (!resource) {\r\n resource = Object.assign({}, params.resource)\r\n if (context) {\r\n resource.context = (typeof context === 'object' ? context._id.toString() : context.toString())\r\n }\r\n scope.push(resource)\r\n }\r\n // Hooks should have populate subject/resource,\r\n // now we have to set permissions on the given subject's scope\r\n resource.permissions = data.permissions || query.permissions\r\n // This cover the case when we create the scope on the first auth,\r\n // so that if the caller want to get back the update subject he can have it\r\n _.set(subject, scopeName, scope)\r\n debug('Updating scope ' + scopeName + ' for subject ' + subject._id + ' on resource ' + params.resource._id + ':', scope)\r\n subject = await params.subjectsService.patch(subject._id, {\r\n [scopeName]: scope\r\n }, {\r\n user: params.user\r\n })\r\n await this.updateAbilities(subject)\r\n debug('Authorisation ' + data.permissions + ' set for subject ' + subject._id + ' on resource ' + params.resource._id + ' with scope ' + scopeName)\r\n return subject\r\n }))\r\n },\r\n\r\n // Used to remove permissions for a subject on a resource\r\n // We use ID as target resource and pass parameters in the query object\r\n // The params object should be already filled by populate hooks\r\n remove (id, params) {\r\n const query = params.query\r\n const scopeName = query.scope // Get scope name first\r\n return Promise.all(params.subjects.map(async subject => {\r\n // Then retrieve the right scope on the subject\r\n const scope = _.get(subject, scopeName, [])\r\n // Remove the target resource if any\r\n const resources = _.remove(scope, resource => resource._id && (resource._id.toString() === id.toString()))\r\n if (resources.length > 0) {\r\n // This cover the case when we create the scope on the first auth,\r\n // so that if the caller want to get back the update subject he can have it\r\n _.set(subject, scopeName, scope)\r\n // Skip patching if the subject is currently deleted\r\n if (!subject.deleted) {\r\n debug('Updating scope ' + scopeName + ' for subject ' + subject._id + ' on resource ' + id + ':', scope)\r\n subject = await params.subjectsService.patch(subject._id, {\r\n [scopeName]: scope\r\n }, {\r\n user: params.user\r\n })\r\n await this.updateAbilities(subject)\r\n debug('Authorisation unset for subject ' + subject._id + ' on resource ' + id + ' with scope ' + scopeName)\r\n return subject\r\n }\r\n }\r\n return subject\r\n }))\r\n },\r\n\r\n setup (app) {\r\n const config = app.get('authorisation')\r\n if (config && config.cache) {\r\n // Store abilities of the N most active users in LRU cache (defaults to 1000)\r\n this.cache = new LruCache(config.cache.maxUsers || 1000)\r\n debug('Using LRU cache for user abilities')\r\n } else {\r\n debug('Do not use LRU cache for user abilities')\r\n }\r\n },\r\n\r\n // Compute abilities for a given user and set it in cache the first time\r\n // or get it from cache if found\r\n async getAbilities (subject) {\r\n if (this.cache) {\r\n if (subject && subject._id) {\r\n if (this.cache.has(subject._id.toString())) return this.cache.get(subject._id.toString())\r\n } else {\r\n if (this.cache.has(ANONYMOUS_USER)) return this.cache.get(ANONYMOUS_USER)\r\n }\r\n }\r\n // Provide app for any complex use case requiring to make requests\r\n const abilities = await defineAbilities(subject, this.app)\r\n\r\n if (this.cache) {\r\n if (subject && subject._id) {\r\n this.cache.set(subject._id.toString(), abilities)\r\n } else {\r\n this.cache.set(ANONYMOUS_USER, abilities)\r\n }\r\n }\r\n\r\n return abilities\r\n },\r\n\r\n // Compute abilities for a given user and update it in cache\r\n async updateAbilities (subject) {\r\n if (this.cache) {\r\n if (subject && subject._id) {\r\n this.cache.del(subject._id.toString())\r\n } else {\r\n this.cache.del(ANONYMOUS_USER)\r\n }\r\n }\r\n\r\n const abilities = await this.getAbilities(subject)\r\n return abilities\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"00758926246185a2c6d0cdf5b70c83ce642af5a2","contentHash":"f3dec5bbaa2021434d33a9f918729894add7f2a064871ceecd72073fdc3c33a3"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\authorisations\\authorisations.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\authorisations\\authorisations.hooks.js","statementMap":{"0":{"start":{"line":3,"column":13},"end":{"line":3,"column":35}},"1":{"start":{"line":5,"column":0},"end":{"line":35,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["authorisations.hooks.js"],"names":["module","exports","before","all","find","get","create","populateSubjects","populateResource","update","patch","remove","after","error"],"mappings":";;AAAA;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,EADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,CAACC,uBAAD,EAAmBC,uBAAnB,CAJF;AAKNC,YAAQ,EALF;AAMNC,WAAO,EAND;AAONC,YAAQ,CAACJ,uBAAD,EAAmBC,uBAAnB;AAPF,GADO;;AAWfI,SAAO;AACLT,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLG,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH,GAXQ;;AAqBfE,SAAO;AACLV,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLG,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AArBQ,CAAjB","file":"authorisations.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/authorisations","sourcesContent":["import { populateSubjects, populateResource } from '../../hooks'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [populateSubjects, populateResource],\r\n update: [],\r\n patch: [],\r\n remove: [populateSubjects, populateResource]\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"33b60f2f7c830df2c82b68a9707d9f3808b38340","contentHash":"f70227f00498c146ab7fce2accf68d66bc317ad692d78f1204dfe0e8374390db"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\storage\\storage.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\storage\\storage.hooks.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":3,"column":59}},"1":{"start":{"line":5,"column":13},"end":{"line":5,"column":35}},"2":{"start":{"line":8,"column":0},"end":{"line":59,"column":2}},"3":{"start":{"line":15,"column":6},"end":{"line":21,"column":7}},"4":{"start":{"line":19,"column":8},"end":{"line":19,"column":51}},"5":{"start":{"line":20,"column":8},"end":{"line":20,"column":58}},"6":{"start":{"line":23,"column":6},"end":{"line":23,"column":68}},"7":{"start":{"line":23,"column":28},"end":{"line":23,"column":68}},"8":{"start":{"line":37,"column":6},"end":{"line":39,"column":7}},"9":{"start":{"line":38,"column":8},"end":{"line":38,"column":57}},"10":{"start":{"line":40,"column":6},"end":{"line":42,"column":7}},"11":{"start":{"line":41,"column":8},"end":{"line":41,"column":42}},"12":{"start":{"line":43,"column":45},"end":{"line":43,"column":65}},"13":{"start":{"line":47,"column":51},"end":{"line":47,"column":71}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":48},"end":{"line":13,"column":49}},"loc":{"start":{"line":13,"column":56},"end":{"line":24,"column":5}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":35,"column":13},"end":{"line":35,"column":14}},"loc":{"start":{"line":35,"column":21},"end":{"line":43,"column":5}},"line":35},"2":{"name":"(anonymous_2)","decl":{"start":{"line":43,"column":37},"end":{"line":43,"column":38}},"loc":{"start":{"line":43,"column":45},"end":{"line":43,"column":65}},"line":43},"3":{"name":"(anonymous_3)","decl":{"start":{"line":47,"column":43},"end":{"line":47,"column":44}},"loc":{"start":{"line":47,"column":51},"end":{"line":47,"column":71}},"line":47}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":6},"end":{"line":21,"column":7}},"type":"if","locations":[{"start":{"line":15,"column":6},"end":{"line":21,"column":7}},{"start":{"line":15,"column":6},"end":{"line":21,"column":7}}],"line":15},"1":{"loc":{"start":{"line":15,"column":10},"end":{"line":15,"column":44}},"type":"binary-expr","locations":[{"start":{"line":15,"column":10},"end":{"line":15,"column":24}},{"start":{"line":15,"column":28},"end":{"line":15,"column":44}}],"line":15},"2":{"loc":{"start":{"line":23,"column":6},"end":{"line":23,"column":68}},"type":"if","locations":[{"start":{"line":23,"column":6},"end":{"line":23,"column":68}},{"start":{"line":23,"column":6},"end":{"line":23,"column":68}}],"line":23},"3":{"loc":{"start":{"line":37,"column":6},"end":{"line":39,"column":7}},"type":"if","locations":[{"start":{"line":37,"column":6},"end":{"line":39,"column":7}},{"start":{"line":37,"column":6},"end":{"line":39,"column":7}}],"line":37},"4":{"loc":{"start":{"line":40,"column":6},"end":{"line":42,"column":7}},"type":"if","locations":[{"start":{"line":40,"column":6},"end":{"line":42,"column":7}},{"start":{"line":40,"column":6},"end":{"line":42,"column":7}}],"line":40}},"s":{"0":1,"1":1,"2":1,"3":4,"4":1,"5":1,"6":4,"7":0,"8":4,"9":1,"10":4,"11":0,"12":4,"13":4},"f":{"0":4,"1":4,"2":4,"3":4},"b":{"0":[1,3],"1":[4,1],"2":[0,4],"3":[1,3],"4":[0,4]},"inputSourceMap":{"version":3,"sources":["storage.hooks.js"],"names":["module","exports","before","all","find","get","create","populateAttachmentResource","hook","data","uri","params","file","buffer","contentType","mimetype","public","s3","ACL","update","patch","remove","after","result","name","originalname","resource","attachToResource","detachFromResource","error"],"mappings":";;AACA;;AACA;;AAFA;AAIAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,EADC;AAENC,UAAM,CAAC,oCAAD,CAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,CACNC,iCADM,EAELC,IAAD,IAAU;AACR;AACA,UAAI,CAACA,KAAKC,IAAL,CAAUC,GAAX,IAAkBF,KAAKG,MAAL,CAAYC,IAAlC,EAAwC;AACtC;AACA;AACA;AACAJ,aAAKC,IAAL,CAAUI,MAAV,GAAmBL,KAAKG,MAAL,CAAYC,IAAZ,CAAiBC,MAApC;AACAL,aAAKC,IAAL,CAAUK,WAAV,GAAwBN,KAAKG,MAAL,CAAYC,IAAZ,CAAiBG,QAAzC;AACD;AACD;AACA,UAAIP,KAAKC,IAAL,CAAUO,MAAd,EAAsBR,KAAKG,MAAL,CAAYM,EAAZ,GAAiB,EAAEC,KAAK,aAAP,EAAjB;AACvB,KAbK,CAJF;AAmBNC,YAAQ,CAAC,oCAAD,CAnBF;AAoBNC,WAAO,CAAC,oCAAD,CApBD;AAqBNC,YAAQ,CAACd,iCAAD;AArBF,GADO;;AAyBfe,SAAO;AACLnB,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAIL;AACAC,YAAQ,CACLE,IAAD,IAAU;AACR;AACA,UAAIA,KAAKG,MAAL,CAAYC,IAAhB,EAAsB;AACpBJ,aAAKe,MAAL,CAAYC,IAAZ,GAAmBhB,KAAKG,MAAL,CAAYC,IAAZ,CAAiBa,YAApC;AACD;AACD,UAAIjB,KAAKC,IAAL,CAAUe,IAAd,EAAoB;AAClBhB,aAAKe,MAAL,CAAYC,IAAZ,GAAmBhB,KAAKC,IAAL,CAAUe,IAA7B;AACD;AACF,KATK,EAUN,8BAAIhB,QAAQA,KAAKG,MAAL,CAAYe,QAAxB,EAAkCC,uBAAlC,CAVM,EAU+C,kCAAQ,KAAR,CAV/C,CALH;AAiBLR,YAAQ,EAjBH;AAkBLC,WAAO,EAlBF;AAmBL;AACAC,YAAQ,CAAC,8BAAIb,QAAQA,KAAKG,MAAL,CAAYe,QAAxB,EAAkCE,yBAAlC,CAAD,EAAwD,kCAAQ,KAAR,CAAxD;AApBH,GAzBQ;;AAgDfC,SAAO;AACL1B,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLa,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AAhDQ,CAAjB","file":"storage.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/storage","sourcesContent":["// import { getBase64DataURI } from 'dauria'\r\nimport { disallow, discard, iff } from 'feathers-hooks-common'\r\nimport { populateAttachmentResource, attachToResource, detachFromResource } from '../../hooks'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [],\r\n find: [disallow()],\r\n get: [],\r\n create: [\r\n populateAttachmentResource,\r\n (hook) => {\r\n // If form multipart data transform to data buffer for blob service\r\n if (!hook.data.uri && hook.params.file) {\r\n // Before https://github.com/feathersjs-ecosystem/feathers-blob/releases/tag/v1.5.0 only data URI were supported\r\n // hook.data.uri = getBase64DataURI(hook.params.file.buffer, hook.params.file.mimetype)\r\n // Now raw buffers are\r\n hook.data.buffer = hook.params.file.buffer\r\n hook.data.contentType = hook.params.file.mimetype\r\n }\r\n // Makes uploaded files public when required\r\n if (hook.data.public) hook.params.s3 = { ACL: 'public-read' }\r\n }\r\n ],\r\n update: [disallow()],\r\n patch: [disallow()],\r\n remove: [populateAttachmentResource]\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n // Let the attachment on the resource object occur only when resource has been found\r\n create: [\r\n (hook) => {\r\n // If form multipart data get filename\r\n if (hook.params.file) {\r\n hook.result.name = hook.params.file.originalname\r\n }\r\n if (hook.data.name) {\r\n hook.result.name = hook.data.name\r\n }\r\n },\r\n iff(hook => hook.params.resource, attachToResource), discard('uri')\r\n ],\r\n update: [],\r\n patch: [],\r\n // Let the detachment on the resource object occur only when resource has been found\r\n remove: [iff(hook => hook.params.resource, detachFromResource), discard('uri')]\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fef0ee18c95216d97f908e33eb610519654c9bfe","contentHash":"c813744b21debaa39458894cc5c1b7afbad6ff5f01d25450aac68387affcfdc3"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\databases\\databases.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\databases\\databases.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":9,"column":2}},"2":{"start":{"line":8,"column":2},"end":{"line":8,"column":115}},"3":{"start":{"line":11,"column":33},"end":{"line":11,"column":71}},"4":{"start":{"line":13,"column":34},"end":{"line":13,"column":84}},"5":{"start":{"line":15,"column":39},"end":{"line":15,"column":93}},"6":{"start":{"line":17,"column":0},"end":{"line":17,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":48},"end":{"line":9,"column":1}},"line":7},"1":{"name":"_interopRequireDefault","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":31}},"loc":{"start":{"line":15,"column":37},"end":{"line":15,"column":95}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":46},"end":{"line":15,"column":92}},"type":"cond-expr","locations":[{"start":{"line":15,"column":70},"end":{"line":15,"column":73}},{"start":{"line":15,"column":76},"end":{"line":15,"column":92}}],"line":15},"1":{"loc":{"start":{"line":15,"column":46},"end":{"line":15,"column":67}},"type":"binary-expr","locations":[{"start":{"line":15,"column":46},"end":{"line":15,"column":49}},{"start":{"line":15,"column":53},"end":{"line":15,"column":67}}],"line":15}},"s":{"0":1,"1":1,"2":5,"3":1,"4":1,"5":1,"6":1},"f":{"0":5,"1":1},"b":{"0":[0,1],"1":[1,1]},"inputSourceMap":{"version":3,"sources":["databases.service.js"],"names":["name","app","options","mongoManager","database","adminDb","db","instance","admin","client"],"mappings":";;;;;;kBAEe,UAAUA,IAAV,EAAgBC,GAAhB,EAAqBC,OAArB,EAA8B;AAC3C,SAAOC,oCAAaC,QAAb,CAAsB,EAAEC,SAASJ,IAAIK,EAAJ,CAAOC,QAAP,CAAgBC,KAAhB,EAAX,EAAoCC,QAAQR,IAAIK,EAAJ,CAAOG,MAAnD,EAAtB,CAAP;AACD,C;;AAJD","file":"databases.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/databases","sourcesContent":["import mongoManager from 'feathers-mongodb-management'\r\n\r\nexport default function (name, app, options) {\r\n return mongoManager.database({ adminDb: app.db.instance.admin(), client: app.db.client })\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ee6faab030ef92f8ca43d80e21d57d0038acddbd","contentHash":"583b0581fdb49074d114fbae7d276674b6bf1da9e46265303f22da779d3b144a"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\databases\\databases.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\databases\\databases.hooks.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":3,"column":59}},"1":{"start":{"line":5,"column":0},"end":{"line":36,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["databases.hooks.js"],"names":["module","exports","before","all","find","get","create","update","patch","remove","after","error"],"mappings":";;AAAA;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACN;AACAC,SAAK,CAAC,mCAAS,UAAT,CAAD,CAFC;AAGNC,UAAM,EAHA;AAINC,SAAK,EAJC;AAKNC,YAAQ,EALF;AAMNC,YAAQ,EANF;AAONC,WAAO,EAPD;AAQNC,YAAQ;AARF,GADO;;AAYfC,SAAO;AACLP,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH,GAZQ;;AAsBfE,SAAO;AACLR,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AAtBQ,CAAjB","file":"databases.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/databases","sourcesContent":["import { disallow } from 'feathers-hooks-common'\r\n\r\nmodule.exports = {\r\n before: {\r\n // Only used internally\r\n all: [disallow('external')],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7408bf0d8a82f47bcb070314e2247ecbbe90a617","contentHash":"9fa25bc262726ae38e0004fbe1ef3d333c0959081ddff2d5508cc15365c94868"},"D:\\Development\\kalisio\\kdk\\core\\api\\models\\organisations.model.mongodb.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\models\\organisations.model.mongodb.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":2}},"1":{"start":{"line":4,"column":2},"end":{"line":4,"column":53}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":41},"end":{"line":5,"column":1}},"line":3}},"branchMap":{},"s":{"0":1,"1":5},"f":{"0":5},"b":{},"inputSourceMap":{"version":3,"sources":["organisations.model.mongodb.js"],"names":["module","exports","app","options","Model","db","collection"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,UAAUC,GAAV,EAAeC,OAAf,EAAwB;AACvCA,UAAQC,KAAR,GAAgBF,IAAIG,EAAJ,CAAOC,UAAP,CAAkB,eAAlB,CAAhB;AACD,CAFD","file":"organisations.model.mongodb.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/models","sourcesContent":["module.exports = function (app, options) {\r\n options.Model = app.db.collection('organisations')\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d1b114e332494b2075c7aef069c53740fba3749b","contentHash":"c5932fd2c88918e16813236caa8eedc4e2cc677e7e43fee5116f38901dd15bda"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\organisations\\organisations.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\organisations\\organisations.hooks.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":33,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["organisations.hooks.js"],"names":["module","exports","before","all","find","get","create","update","patch","remove","after","error"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,EADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,EAJF;AAKNC,YAAQ,EALF;AAMNC,WAAO,EAND;AAONC,YAAQ;AAPF,GADO;;AAWfC,SAAO;AACLP,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH,GAXQ;;AAqBfE,SAAO;AACLR,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AArBQ,CAAjB","file":"organisations.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/organisations","sourcesContent":["module.exports = {\r\n before: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"118209bb27e8f2516fc7f14f70a8a14d20254a65","contentHash":"75be3e15827373f77740fb54b7b9e63e81df9aab3138fa56571b50431fa7fb32"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\organisations\\organisations.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\organisations\\organisations.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":76,"column":2}},"2":{"start":{"line":8,"column":17},"end":{"line":8,"column":35}},"3":{"start":{"line":9,"column":17},"end":{"line":12,"column":4}},"4":{"start":{"line":13,"column":17},"end":{"line":13,"column":30}},"5":{"start":{"line":14,"column":2},"end":{"line":14,"column":63}},"6":{"start":{"line":16,"column":2},"end":{"line":75,"column":4}},"7":{"start":{"line":21,"column":6},"end":{"line":23,"column":7}},"8":{"start":{"line":22,"column":8},"end":{"line":22,"column":50}},"9":{"start":{"line":27,"column":6},"end":{"line":27,"column":120}},"10":{"start":{"line":27,"column":95},"end":{"line":27,"column":118}},"11":{"start":{"line":31,"column":6},"end":{"line":38,"column":9}},"12":{"start":{"line":39,"column":6},"end":{"line":39,"column":77}},"13":{"start":{"line":40,"column":6},"end":{"line":45,"column":9}},"14":{"start":{"line":46,"column":6},"end":{"line":46,"column":76}},"15":{"start":{"line":47,"column":6},"end":{"line":47,"column":72}},"16":{"start":{"line":48,"column":6},"end":{"line":48,"column":74}},"17":{"start":{"line":49,"column":24},"end":{"line":49,"column":70}},"18":{"start":{"line":50,"column":26},"end":{"line":50,"column":86}},"19":{"start":{"line":51,"column":6},"end":{"line":51,"column":85}},"20":{"start":{"line":52,"column":6},"end":{"line":52,"column":77}},"21":{"start":{"line":54,"column":6},"end":{"line":54,"column":137}},"22":{"start":{"line":54,"column":71},"end":{"line":54,"column":135}},"23":{"start":{"line":59,"column":6},"end":{"line":59,"column":138}},"24":{"start":{"line":59,"column":76},"end":{"line":59,"column":136}},"25":{"start":{"line":63,"column":18},"end":{"line":63,"column":22}},"26":{"start":{"line":65,"column":6},"end":{"line":73,"column":11}},"27":{"start":{"line":67,"column":30},"end":{"line":67,"column":67}},"28":{"start":{"line":68,"column":8},"end":{"line":72,"column":11}},"29":{"start":{"line":70,"column":21},"end":{"line":70,"column":72}},"30":{"start":{"line":71,"column":10},"end":{"line":71,"column":61}},"31":{"start":{"line":78,"column":14},"end":{"line":78,"column":31}},"32":{"start":{"line":80,"column":15},"end":{"line":80,"column":46}},"33":{"start":{"line":82,"column":12},"end":{"line":82,"column":27}},"34":{"start":{"line":84,"column":13},"end":{"line":84,"column":42}},"35":{"start":{"line":86,"column":13},"end":{"line":86,"column":29}},"36":{"start":{"line":88,"column":14},"end":{"line":88,"column":44}},"37":{"start":{"line":90,"column":14},"end":{"line":90,"column":32}},"38":{"start":{"line":92,"column":15},"end":{"line":92,"column":46}},"39":{"start":{"line":94,"column":19},"end":{"line":94,"column":43}},"40":{"start":{"line":96,"column":20},"end":{"line":96,"column":56}},"41":{"start":{"line":98,"column":20},"end":{"line":98,"column":44}},"42":{"start":{"line":100,"column":21},"end":{"line":100,"column":58}},"43":{"start":{"line":102,"column":9},"end":{"line":102,"column":24}},"44":{"start":{"line":104,"column":39},"end":{"line":104,"column":93}},"45":{"start":{"line":106,"column":33},"end":{"line":106,"column":456}},"46":{"start":{"line":106,"column":64},"end":{"line":106,"column":89}},"47":{"start":{"line":106,"column":91},"end":{"line":106,"column":453}},"48":{"start":{"line":106,"column":165},"end":{"line":106,"column":263}},"49":{"start":{"line":106,"column":182},"end":{"line":106,"column":195}},"50":{"start":{"line":106,"column":209},"end":{"line":106,"column":219}},"51":{"start":{"line":106,"column":239},"end":{"line":106,"column":253}},"52":{"start":{"line":106,"column":254},"end":{"line":106,"column":261}},"53":{"start":{"line":106,"column":264},"end":{"line":106,"column":426}},"54":{"start":{"line":106,"column":281},"end":{"line":106,"column":296}},"55":{"start":{"line":106,"column":306},"end":{"line":106,"column":424}},"56":{"start":{"line":106,"column":360},"end":{"line":106,"column":380}},"57":{"start":{"line":106,"column":401},"end":{"line":106,"column":420}},"58":{"start":{"line":106,"column":429},"end":{"line":106,"column":449}},"59":{"start":{"line":108,"column":21},"end":{"line":108,"column":75}},"60":{"start":{"line":109,"column":19},"end":{"line":109,"column":71}},"61":{"start":{"line":111,"column":14},"end":{"line":111,"column":68}},"62":{"start":{"line":113,"column":0},"end":{"line":113,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":48},"end":{"line":76,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":43},"end":{"line":24,"column":5}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":45},"end":{"line":28,"column":5}},"line":26},"3":{"name":"(anonymous_3)","decl":{"start":{"line":27,"column":77},"end":{"line":27,"column":78}},"loc":{"start":{"line":27,"column":95},"end":{"line":27,"column":118}},"line":27},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":49},"end":{"line":55,"column":5}},"line":30},"5":{"name":"(anonymous_5)","decl":{"start":{"line":54,"column":63},"end":{"line":54,"column":64}},"loc":{"start":{"line":54,"column":71},"end":{"line":54,"column":135}},"line":54},"6":{"name":"(anonymous_6)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":45},"end":{"line":60,"column":5}},"line":57},"7":{"name":"(anonymous_7)","decl":{"start":{"line":59,"column":68},"end":{"line":59,"column":69}},"loc":{"start":{"line":59,"column":76},"end":{"line":59,"column":136}},"line":59},"8":{"name":"(anonymous_8)","decl":{"start":{"line":62,"column":4},"end":{"line":62,"column":5}},"loc":{"start":{"line":62,"column":29},"end":{"line":74,"column":5}},"line":62},"9":{"name":"(anonymous_9)","decl":{"start":{"line":65,"column":31},"end":{"line":65,"column":32}},"loc":{"start":{"line":65,"column":44},"end":{"line":73,"column":7}},"line":65},"10":{"name":"(anonymous_10)","decl":{"start":{"line":68,"column":30},"end":{"line":68,"column":31}},"loc":{"start":{"line":68,"column":54},"end":{"line":72,"column":9}},"line":68},"11":{"name":"_interopRequireDefault","decl":{"start":{"line":104,"column":9},"end":{"line":104,"column":31}},"loc":{"start":{"line":104,"column":37},"end":{"line":104,"column":95}},"line":104},"12":{"name":"_asyncToGenerator","decl":{"start":{"line":106,"column":9},"end":{"line":106,"column":26}},"loc":{"start":{"line":106,"column":31},"end":{"line":106,"column":458}},"line":106},"13":{"name":"(anonymous_13)","decl":{"start":{"line":106,"column":40},"end":{"line":106,"column":41}},"loc":{"start":{"line":106,"column":52},"end":{"line":106,"column":455}},"line":106},"14":{"name":"(anonymous_14)","decl":{"start":{"line":106,"column":110},"end":{"line":106,"column":111}},"loc":{"start":{"line":106,"column":137},"end":{"line":106,"column":451}},"line":106},"15":{"name":"step","decl":{"start":{"line":106,"column":148},"end":{"line":106,"column":152}},"loc":{"start":{"line":106,"column":163},"end":{"line":106,"column":428}},"line":106},"16":{"name":"(anonymous_16)","decl":{"start":{"line":106,"column":341},"end":{"line":106,"column":342}},"loc":{"start":{"line":106,"column":358},"end":{"line":106,"column":382}},"line":106},"17":{"name":"(anonymous_17)","decl":{"start":{"line":106,"column":384},"end":{"line":106,"column":385}},"loc":{"start":{"line":106,"column":399},"end":{"line":106,"column":422}},"line":106}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":6},"end":{"line":23,"column":7}},"type":"if","locations":[{"start":{"line":21,"column":6},"end":{"line":23,"column":7}},{"start":{"line":21,"column":6},"end":{"line":23,"column":7}}],"line":21},"1":{"loc":{"start":{"line":104,"column":46},"end":{"line":104,"column":92}},"type":"cond-expr","locations":[{"start":{"line":104,"column":70},"end":{"line":104,"column":73}},{"start":{"line":104,"column":76},"end":{"line":104,"column":92}}],"line":104},"2":{"loc":{"start":{"line":104,"column":46},"end":{"line":104,"column":67}},"type":"binary-expr","locations":[{"start":{"line":104,"column":46},"end":{"line":104,"column":49}},{"start":{"line":104,"column":53},"end":{"line":104,"column":67}}],"line":104},"3":{"loc":{"start":{"line":106,"column":264},"end":{"line":106,"column":426}},"type":"if","locations":[{"start":{"line":106,"column":264},"end":{"line":106,"column":426}},{"start":{"line":106,"column":264},"end":{"line":106,"column":426}}],"line":106}},"s":{"0":1,"1":1,"2":5,"3":5,"4":5,"5":5,"6":5,"7":0,"8":0,"9":0,"10":0,"11":3,"12":3,"13":3,"14":3,"15":3,"16":3,"17":3,"18":3,"19":3,"20":3,"21":3,"22":0,"23":3,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":6,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":1,"60":1,"61":1,"62":1},"f":{"0":5,"1":0,"2":0,"3":0,"4":3,"5":0,"6":3,"7":0,"8":0,"9":0,"10":0,"11":6,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0},"b":{"0":[0,0],"1":[0,6],"2":[6,6],"3":[0,0]},"inputSourceMap":{"version":3,"sources":["organisations.service.js"],"names":["name","app","options","config","get","client","aws","S3","accessKeyId","secretAccessKey","bucket","debug","organisationServicesHooks","registerOrganisationServicesHook","hook","includes","push","unregisterOrganisationServicesHook","filter","registeredHook","createOrganisationServices","organisation","db","createService","servicesPath","context","proxy","service","getService","params","query","_id","toString","modelsPath","createTagService","call","blobStore","blobService","Model","id","createStorageService","_","forEach","removeOrganisationServices","forEachRight","configureOrganisations","organisations","find","paginate","path","join","__dirname"],"mappings":"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","file":"organisations.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/organisations","sourcesContent":["import _ from 'lodash'\r\nimport path from 'path'\r\nimport makeDebug from 'debug'\r\nimport aws from 'aws-sdk'\r\nimport store from 's3-blob-store'\r\nimport BlobService from 'feathers-blob'\r\nimport { createTagService, createStorageService } from '../.'\r\nconst servicesPath = path.join(__dirname, '..', '..', 'services')\r\nconst modelsPath = path.join(__dirname, '..', '..', 'models')\r\n\r\nconst debug = makeDebug('kdk:core:organisations:service')\r\n\r\nexport default function (name, app, options) {\r\n const config = app.get('storage')\r\n const client = new aws.S3({\r\n accessKeyId: config.accessKeyId,\r\n secretAccessKey: config.secretAccessKey\r\n })\r\n const bucket = config.bucket\r\n debug('S3 team storage client created with config ', config)\r\n\r\n return {\r\n // Hooks that can be added to customize organization services\r\n organisationServicesHooks: [],\r\n\r\n registerOrganisationServicesHook (hook) {\r\n if (!this.organisationServicesHooks.includes(hook)) {\r\n this.organisationServicesHooks.push(hook)\r\n }\r\n },\r\n\r\n unregisterOrganisationServicesHook (hook) {\r\n this.organisationServicesHooks = this.organisationServicesHooks.filter(registeredHook => registeredHook !== hook)\r\n },\r\n\r\n createOrganisationServices (organisation, db) {\r\n this.app.createService('members', {\r\n servicesPath,\r\n context: organisation,\r\n proxy: {\r\n service: this.app.getService('users'),\r\n params: { query: { 'organisations._id': organisation._id.toString() } }\r\n }\r\n })\r\n debug('Members service created for organisation ' + organisation.name)\r\n this.app.createService('groups', {\r\n modelsPath,\r\n servicesPath,\r\n context: organisation,\r\n db\r\n })\r\n debug('Groups service created for organisation ' + organisation.name)\r\n createTagService.call(this.app, { context: organisation, db })\r\n debug('Tags service created for organisation ' + organisation.name)\r\n const blobStore = store({ client, bucket })\r\n const blobService = BlobService({ Model: blobStore, id: '_id' })\r\n createStorageService.call(this.app, blobService, { context: organisation })\r\n debug('Storage service created for organisation ' + organisation.name)\r\n // Run registered hooks\r\n _.forEach(this.organisationServicesHooks, hook => hook.createOrganisationServices.call(this.app, organisation, db))\r\n },\r\n\r\n removeOrganisationServices (organisation) {\r\n // Run registered hooks (reverse order with respect to creation)\r\n _.forEachRight(this.organisationServicesHooks, hook => hook.removeOrganisationServices.call(this.app, organisation))\r\n },\r\n\r\n async configureOrganisations () {\r\n // Reinstanciated services for all organisations\r\n const organisations = await this.find({ paginate: false })\r\n organisations.forEach(organisation => {\r\n // Get org DB\r\n const db = this.app.db.client.db(organisation._id.toString())\r\n this.createOrganisationServices(organisation, db)\r\n })\r\n }\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d06cda72bc6678dac1b279447e2016661655b64c","contentHash":"a38e0a683b6639f7b2dcac5f710f326a0126d51c9645396f9eda09f275f1a0d0"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\mailer\\mailer.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\mailer\\mailer.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":12,"column":2}},"2":{"start":{"line":9,"column":2},"end":{"line":9,"column":44}},"3":{"start":{"line":10,"column":2},"end":{"line":10,"column":48}},"4":{"start":{"line":11,"column":2},"end":{"line":11,"column":48}},"5":{"start":{"line":14,"column":22},"end":{"line":14,"column":48}},"6":{"start":{"line":16,"column":23},"end":{"line":16,"column":62}},"7":{"start":{"line":18,"column":13},"end":{"line":18,"column":29}},"8":{"start":{"line":20,"column":14},"end":{"line":20,"column":44}},"9":{"start":{"line":22,"column":39},"end":{"line":22,"column":93}},"10":{"start":{"line":24,"column":14},"end":{"line":24,"column":61}},"11":{"start":{"line":26,"column":0},"end":{"line":26,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":48},"end":{"line":12,"column":1}},"line":7},"1":{"name":"_interopRequireDefault","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":31}},"loc":{"start":{"line":22,"column":37},"end":{"line":22,"column":95}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":46},"end":{"line":22,"column":92}},"type":"cond-expr","locations":[{"start":{"line":22,"column":70},"end":{"line":22,"column":73}},{"start":{"line":22,"column":76},"end":{"line":22,"column":92}}],"line":22},"1":{"loc":{"start":{"line":22,"column":46},"end":{"line":22,"column":67}},"type":"binary-expr","locations":[{"start":{"line":22,"column":46},"end":{"line":22,"column":49}},{"start":{"line":22,"column":53},"end":{"line":22,"column":67}}],"line":22}},"s":{"0":1,"1":1,"2":5,"3":5,"4":5,"5":1,"6":1,"7":1,"8":1,"9":2,"10":1,"11":1},"f":{"0":5,"1":2},"b":{"0":[0,2],"1":[2,2]},"inputSourceMap":{"version":3,"sources":["mailer.service.js"],"names":["name","app","options","Object","assign","get","debug"],"mappings":";;;;;;kBAKe,UAAUA,IAAV,EAAgBC,GAAhB,EAAqBC,OAArB,EAA8B;AAC3C;AACAC,SAAOC,MAAP,CAAcF,OAAd,EAAuBD,IAAII,GAAJ,CAAQ,QAAR,CAAvB;AACAC,QAAM,6BAAN,EAAqCJ,OAArC;AACA,SAAO,8BAAOA,OAAP,CAAP;AACD,C;;AAVD;;;;AACA;;;;;;AAEA,MAAMI,QAAQ,qBAAU,yBAAV,CAAd","file":"mailer.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/mailer","sourcesContent":["import mailer from 'feathers-mailer'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:mailer:service')\r\n\r\nexport default function (name, app, options) {\r\n // Keep track of config\r\n Object.assign(options, app.get('mailer'))\r\n debug('Mailer created with config ', options)\r\n return mailer(options)\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"96f8281bf497ee38ca8042fc91722769d8bfe1d8","contentHash":"627dcfb083d6f9e8901e7d8a76fe383f723880173f0f4bf292b439a62fd27115"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\mailer\\mailer.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\mailer\\mailer.hooks.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":3,"column":59}},"1":{"start":{"line":5,"column":0},"end":{"line":35,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["mailer.hooks.js"],"names":["module","exports","before","all","find","get","create","update","patch","remove","after","error"],"mappings":";;AAAA;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,CAAC,mCAAS,UAAT,CAAD,CADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,EAJF;AAKNC,YAAQ,EALF;AAMNC,WAAO,EAND;AAONC,YAAQ;AAPF,GADO;;AAWfC,SAAO;AACLP,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH,GAXQ;;AAqBfE,SAAO;AACLR,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AArBQ,CAAjB","file":"mailer.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/mailer","sourcesContent":["import { disallow } from 'feathers-hooks-common'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [disallow('external')],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"852e152829e11684a5bb338b7c38e6e6b45a4f3b","contentHash":"38b3257a5b561cc83be3d059399fdda22a3647ccdd6b629ad3281abde51c9a59"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\account\\account.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\account\\account.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":117,"column":2}},"2":{"start":{"line":9,"column":2},"end":{"line":102,"column":7}},"3":{"start":{"line":10,"column":15},"end":{"line":97,"column":6}},"4":{"start":{"line":11,"column":26},"end":{"line":11,"column":49}},"5":{"start":{"line":14,"column":6},"end":{"line":16,"column":7}},"6":{"start":{"line":15,"column":8},"end":{"line":15,"column":91}},"7":{"start":{"line":15,"column":35},"end":{"line":15,"column":91}},"8":{"start":{"line":18,"column":6},"end":{"line":28,"column":7}},"9":{"start":{"line":19,"column":33},"end":{"line":19,"column":75}},"10":{"start":{"line":20,"column":8},"end":{"line":27,"column":9}},"11":{"start":{"line":21,"column":10},"end":{"line":26,"column":14}},"12":{"start":{"line":30,"column":28},"end":{"line":30,"column":52}},"13":{"start":{"line":31,"column":25},"end":{"line":31,"column":50}},"14":{"start":{"line":32,"column":20},"end":{"line":38,"column":7}},"15":{"start":{"line":38,"column":31},"end":{"line":38,"column":35}},"16":{"start":{"line":39,"column":6},"end":{"line":82,"column":7}},"17":{"start":{"line":42,"column":10},"end":{"line":42,"column":48}},"18":{"start":{"line":43,"column":10},"end":{"line":43,"column":72}},"19":{"start":{"line":44,"column":10},"end":{"line":44,"column":16}},"20":{"start":{"line":47,"column":10},"end":{"line":47,"column":68}},"21":{"start":{"line":48,"column":10},"end":{"line":48,"column":16}},"22":{"start":{"line":51,"column":10},"end":{"line":51,"column":48}},"23":{"start":{"line":52,"column":10},"end":{"line":52,"column":72}},"24":{"start":{"line":53,"column":10},"end":{"line":53,"column":16}},"25":{"start":{"line":56,"column":10},"end":{"line":56,"column":52}},"26":{"start":{"line":57,"column":10},"end":{"line":57,"column":16}},"27":{"start":{"line":60,"column":10},"end":{"line":60,"column":54}},"28":{"start":{"line":61,"column":10},"end":{"line":61,"column":16}},"29":{"start":{"line":64,"column":10},"end":{"line":64,"column":65}},"30":{"start":{"line":65,"column":10},"end":{"line":65,"column":74}},"31":{"start":{"line":66,"column":10},"end":{"line":66,"column":16}},"32":{"start":{"line":68,"column":10},"end":{"line":77,"column":11}},"33":{"start":{"line":69,"column":12},"end":{"line":69,"column":71}},"34":{"start":{"line":70,"column":17},"end":{"line":77,"column":11}},"35":{"start":{"line":71,"column":12},"end":{"line":76,"column":13}},"36":{"start":{"line":72,"column":30},"end":{"line":72,"column":68}},"37":{"start":{"line":73,"column":14},"end":{"line":73,"column":43}},"38":{"start":{"line":78,"column":10},"end":{"line":78,"column":36}},"39":{"start":{"line":79,"column":10},"end":{"line":79,"column":44}},"40":{"start":{"line":80,"column":10},"end":{"line":80,"column":49}},"41":{"start":{"line":81,"column":10},"end":{"line":81,"column":16}},"42":{"start":{"line":83,"column":26},"end":{"line":83,"column":98}},"43":{"start":{"line":84,"column":23},"end":{"line":84,"column":78}},"44":{"start":{"line":87,"column":6},"end":{"line":96,"column":7}},"45":{"start":{"line":88,"column":29},"end":{"line":88,"column":91}},"46":{"start":{"line":90,"column":8},"end":{"line":90,"column":39}},"47":{"start":{"line":91,"column":8},"end":{"line":91,"column":39}},"48":{"start":{"line":92,"column":8},"end":{"line":92,"column":43}},"49":{"start":{"line":94,"column":8},"end":{"line":94,"column":45}},"50":{"start":{"line":95,"column":8},"end":{"line":95,"column":32}},"51":{"start":{"line":99,"column":4},"end":{"line":101,"column":6}},"52":{"start":{"line":100,"column":6},"end":{"line":100,"column":41}},"53":{"start":{"line":104,"column":22},"end":{"line":104,"column":53}},"54":{"start":{"line":105,"column":22},"end":{"line":105,"column":45}},"55":{"start":{"line":106,"column":2},"end":{"line":114,"column":6}},"56":{"start":{"line":116,"column":2},"end":{"line":116,"column":34}},"57":{"start":{"line":119,"column":40},"end":{"line":119,"column":85}},"58":{"start":{"line":121,"column":41},"end":{"line":121,"column":98}},"59":{"start":{"line":123,"column":14},"end":{"line":123,"column":43}},"60":{"start":{"line":125,"column":22},"end":{"line":125,"column":48}},"61":{"start":{"line":127,"column":23},"end":{"line":127,"column":62}},"62":{"start":{"line":129,"column":12},"end":{"line":129,"column":27}},"63":{"start":{"line":131,"column":13},"end":{"line":131,"column":42}},"64":{"start":{"line":133,"column":13},"end":{"line":133,"column":29}},"65":{"start":{"line":135,"column":14},"end":{"line":135,"column":44}},"66":{"start":{"line":137,"column":14},"end":{"line":137,"column":31}},"67":{"start":{"line":139,"column":15},"end":{"line":139,"column":46}},"68":{"start":{"line":141,"column":39},"end":{"line":141,"column":93}},"69":{"start":{"line":143,"column":33},"end":{"line":143,"column":456}},"70":{"start":{"line":143,"column":64},"end":{"line":143,"column":89}},"71":{"start":{"line":143,"column":91},"end":{"line":143,"column":453}},"72":{"start":{"line":143,"column":165},"end":{"line":143,"column":263}},"73":{"start":{"line":143,"column":182},"end":{"line":143,"column":195}},"74":{"start":{"line":143,"column":209},"end":{"line":143,"column":219}},"75":{"start":{"line":143,"column":239},"end":{"line":143,"column":253}},"76":{"start":{"line":143,"column":254},"end":{"line":143,"column":261}},"77":{"start":{"line":143,"column":264},"end":{"line":143,"column":426}},"78":{"start":{"line":143,"column":281},"end":{"line":143,"column":296}},"79":{"start":{"line":143,"column":306},"end":{"line":143,"column":424}},"80":{"start":{"line":143,"column":360},"end":{"line":143,"column":380}},"81":{"start":{"line":143,"column":401},"end":{"line":143,"column":420}},"82":{"start":{"line":143,"column":429},"end":{"line":143,"column":449}},"83":{"start":{"line":145,"column":14},"end":{"line":145,"column":62}},"84":{"start":{"line":147,"column":0},"end":{"line":147,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":48},"end":{"line":117,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":22},"end":{"line":9,"column":23}},"loc":{"start":{"line":9,"column":28},"end":{"line":102,"column":3}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":33},"end":{"line":10,"column":34}},"loc":{"start":{"line":10,"column":73},"end":{"line":97,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":99,"column":11},"end":{"line":99,"column":12}},"loc":{"start":{"line":99,"column":35},"end":{"line":101,"column":5}},"line":99},"4":{"name":"_interopRequireDefault","decl":{"start":{"line":141,"column":9},"end":{"line":141,"column":31}},"loc":{"start":{"line":141,"column":37},"end":{"line":141,"column":95}},"line":141},"5":{"name":"_asyncToGenerator","decl":{"start":{"line":143,"column":9},"end":{"line":143,"column":26}},"loc":{"start":{"line":143,"column":31},"end":{"line":143,"column":458}},"line":143},"6":{"name":"(anonymous_6)","decl":{"start":{"line":143,"column":40},"end":{"line":143,"column":41}},"loc":{"start":{"line":143,"column":52},"end":{"line":143,"column":455}},"line":143},"7":{"name":"(anonymous_7)","decl":{"start":{"line":143,"column":110},"end":{"line":143,"column":111}},"loc":{"start":{"line":143,"column":137},"end":{"line":143,"column":451}},"line":143},"8":{"name":"step","decl":{"start":{"line":143,"column":148},"end":{"line":143,"column":152}},"loc":{"start":{"line":143,"column":163},"end":{"line":143,"column":428}},"line":143},"9":{"name":"(anonymous_9)","decl":{"start":{"line":143,"column":341},"end":{"line":143,"column":342}},"loc":{"start":{"line":143,"column":358},"end":{"line":143,"column":382}},"line":143},"10":{"name":"(anonymous_10)","decl":{"start":{"line":143,"column":384},"end":{"line":143,"column":385}},"loc":{"start":{"line":143,"column":399},"end":{"line":143,"column":422}},"line":143}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":91}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":15,"column":91}},{"start":{"line":15,"column":8},"end":{"line":15,"column":91}}],"line":15},"1":{"loc":{"start":{"line":18,"column":6},"end":{"line":28,"column":7}},"type":"if","locations":[{"start":{"line":18,"column":6},"end":{"line":28,"column":7}},{"start":{"line":18,"column":6},"end":{"line":28,"column":7}}],"line":18},"2":{"loc":{"start":{"line":18,"column":10},"end":{"line":18,"column":59}},"type":"binary-expr","locations":[{"start":{"line":18,"column":10},"end":{"line":18,"column":26}},{"start":{"line":18,"column":30},"end":{"line":18,"column":59}}],"line":18},"3":{"loc":{"start":{"line":20,"column":8},"end":{"line":27,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":27,"column":9}},{"start":{"line":20,"column":8},"end":{"line":27,"column":9}}],"line":20},"4":{"loc":{"start":{"line":35,"column":12},"end":{"line":35,"column":77}},"type":"cond-expr","locations":[{"start":{"line":35,"column":40},"end":{"line":35,"column":64}},{"start":{"line":35,"column":67},"end":{"line":35,"column":77}}],"line":35},"5":{"loc":{"start":{"line":39,"column":6},"end":{"line":82,"column":7}},"type":"switch","locations":[{"start":{"line":40,"column":8},"end":{"line":44,"column":16}},{"start":{"line":45,"column":8},"end":{"line":48,"column":16}},{"start":{"line":49,"column":8},"end":{"line":53,"column":16}},{"start":{"line":54,"column":8},"end":{"line":57,"column":16}},{"start":{"line":58,"column":8},"end":{"line":61,"column":16}},{"start":{"line":62,"column":8},"end":{"line":66,"column":16}},{"start":{"line":67,"column":8},"end":{"line":81,"column":16}}],"line":39},"6":{"loc":{"start":{"line":68,"column":10},"end":{"line":77,"column":11}},"type":"if","locations":[{"start":{"line":68,"column":10},"end":{"line":77,"column":11}},{"start":{"line":68,"column":10},"end":{"line":77,"column":11}}],"line":68},"7":{"loc":{"start":{"line":70,"column":17},"end":{"line":77,"column":11}},"type":"if","locations":[{"start":{"line":70,"column":17},"end":{"line":77,"column":11}},{"start":{"line":70,"column":17},"end":{"line":77,"column":11}}],"line":70},"8":{"loc":{"start":{"line":88,"column":68},"end":{"line":88,"column":90}},"type":"binary-expr","locations":[{"start":{"line":88,"column":68},"end":{"line":88,"column":79}},{"start":{"line":88,"column":83},"end":{"line":88,"column":90}}],"line":88},"9":{"loc":{"start":{"line":141,"column":46},"end":{"line":141,"column":92}},"type":"cond-expr","locations":[{"start":{"line":141,"column":70},"end":{"line":141,"column":73}},{"start":{"line":141,"column":76},"end":{"line":141,"column":92}}],"line":141},"10":{"loc":{"start":{"line":141,"column":46},"end":{"line":141,"column":67}},"type":"binary-expr","locations":[{"start":{"line":141,"column":46},"end":{"line":141,"column":49}},{"start":{"line":141,"column":53},"end":{"line":141,"column":67}}],"line":141},"11":{"loc":{"start":{"line":143,"column":264},"end":{"line":143,"column":426}},"type":"if","locations":[{"start":{"line":143,"column":264},"end":{"line":143,"column":426}},{"start":{"line":143,"column":264},"end":{"line":143,"column":426}}],"line":143}},"s":{"0":1,"1":1,"2":5,"3":5,"4":8,"5":8,"6":0,"7":0,"8":8,"9":0,"10":0,"11":0,"12":8,"13":8,"14":8,"15":8,"16":8,"17":1,"18":1,"19":1,"20":2,"21":2,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":0,"35":0,"36":0,"37":0,"38":1,"39":1,"40":1,"41":1,"42":8,"43":8,"44":8,"45":8,"46":8,"47":8,"48":8,"49":0,"50":0,"51":5,"52":8,"53":5,"54":5,"55":5,"56":5,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":5,"69":5,"70":8,"71":8,"72":16,"73":16,"74":16,"75":0,"76":0,"77":16,"78":8,"79":8,"80":8,"81":0,"82":8,"83":1,"84":1},"f":{"0":5,"1":5,"2":8,"3":8,"4":5,"5":5,"6":8,"7":8,"8":16,"9":8,"10":0},"b":{"0":[0,0],"1":[0,8],"2":[8,0],"3":[0,0],"4":[1,7],"5":[1,2,1,1,1,1,1],"6":[1,0],"7":[0,0],"8":[8,8],"9":[0,5],"10":[5,5],"11":[8,8]},"inputSourceMap":{"version":3,"sources":["account.service.js"],"names":["name","app","options","notifier","type","user","notifierOptions","userService","getService","identityProvider","provider","authenticationProviders","_","startCase","userWithPassword","get","_id","toString","password","Promise","reject","BadRequest","translation","key","params","mailerService","domainPath","email","from","auth","to","verifyChanges","emailTemplateDir","subject","link","verifyToken","resetToken","has","sponsor","id","error","templateDir","path","join","template","emails","EmailTemplate","emailContent","render","locale","html","debug","create","logger","servicePath","configure","skipIsVerifiedCheck","service","getPath"],"mappings":"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","file":"account.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/account","sourcesContent":["import accountManager from 'feathers-authentication-management'\r\nimport { BadRequest } from '@feathersjs/errors'\r\nimport emails from 'email-templates'\r\nimport path from 'path'\r\nimport makeDebug from 'debug'\r\nimport _ from 'lodash'\r\n\r\nconst debug = makeDebug('kdk:core:account:service')\r\n\r\nexport default function (name, app, options) {\r\n // Keep track of notifier\r\n options.notifier = async function (type, user, notifierOptions) {\r\n const userService = app.getService('users')\r\n // Using OAuth2 providers disallow some operations\r\n let identityProvider\r\n for (const provider of app.authenticationProviders) {\r\n if (user[provider + 'Id']) identityProvider = _.startCase(provider)\r\n }\r\n // Password/Identity change is already filtered by the fact the user does not have an old password to be provided\r\n if (identityProvider && (type === 'resendVerifySignup')) {\r\n const userWithPassword = await userService.get(user._id.toString())\r\n if (!userWithPassword.password) {\r\n return Promise.reject(new BadRequest(`You cannot update your account because it is managed by ${identityProvider}`, {\r\n translation: {\r\n key: 'OAUTH2_PROVIDER',\r\n params: { provider: identityProvider }\r\n }\r\n }))\r\n }\r\n }\r\n\r\n const mailerService = app.getService('mailer')\r\n const domainPath = app.get('domain') + '/#/'\r\n const email = {\r\n from: mailerService.options.auth.user,\r\n // When changing email send to the new one so that it can be verified\r\n to: (type === 'identityChange' ? user.verifyChanges.email : user.email),\r\n domainPath\r\n }\r\n // Build the subject & link to the app to perform the different actions\r\n let emailTemplateDir = type\r\n switch (type) {\r\n case 'resendVerifySignup': // send another email with link for verifying user's email addr\r\n email.subject = 'Confirm your signup'\r\n email.link = domainPath + 'verify-signup/' + user.verifyToken\r\n break\r\n case 'verifySignup': // inform that user's email is now confirmed\r\n email.subject = 'Thank you, your email has been verified'\r\n break\r\n case 'sendResetPwd': // send email with link to reset password\r\n email.subject = 'Reset your password'\r\n email.link = domainPath + 'reset-password/' + user.resetToken\r\n break\r\n case 'resetPwd': // inform that user's password is now reset\r\n email.subject = 'Your password was reset'\r\n break\r\n case 'passwordChange': // inform that user's password is now changed\r\n email.subject = 'Your password was changed'\r\n break\r\n case 'identityChange': // inform that user's email has now changed\r\n email.subject = 'Your account information was changed'\r\n email.link = domainPath + 'change-identity/' + user.verifyToken\r\n break\r\n case 'sendInvitation':\r\n if (_.has(user, 'sponsor.name')) {\r\n email.sponsor = _.get(user, 'sponsor.name')\r\n } else if (_.has(user, 'sponsor.id')) {\r\n try {\r\n const sponsor = await userService.get(user.sponsor.id)\r\n email.sponsor = sponsor.name\r\n } catch (error) {\r\n // We will not send the sponsor name in this case\r\n }\r\n }\r\n email.subject = 'Welcome'\r\n email.link = domainPath + 'login'\r\n emailTemplateDir = 'confirmInvitation'\r\n break\r\n }\r\n const templateDir = path.join(mailerService.options.templateDir, emailTemplateDir)\r\n const template = new emails.EmailTemplate(templateDir)\r\n // Errors does not seem to be correctly catched by the caller\r\n // so we catch them here to avoid any problem\r\n try {\r\n const emailContent = await template.render({ email, user }, user.locale || 'en-us')\r\n // Update compiled content\r\n email.html = emailContent.html\r\n debug('Sending email ', email)\r\n return mailerService.create(email)\r\n } catch (error) {\r\n debug('Sending email failed', error)\r\n app.logger.error(error)\r\n }\r\n }\r\n\r\n const servicePath = app.get('apiPath') + '/account'\r\n const userService = app.getService('users')\r\n app.configure(accountManager({\r\n // By default it is impossible to reset password if email is not verified\r\n // The problem is that if you loose your password before validating your email you are blocked,\r\n // as a consequence we release this constraint\r\n skipIsVerifiedCheck: true,\r\n service: userService.getPath(true),\r\n path: servicePath,\r\n notifier: options.notifier\r\n }))\r\n\r\n return app.service(servicePath)\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8d321a34524319b8e82a337fbf3cd081d3421ffb","contentHash":"6a0c8d9b347edfc8a1cb230e1db8cbeb0080a67c481ff4fb8d78f5a6a94bc875"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\account\\account.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\account\\account.hooks.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":3,"column":59}},"1":{"start":{"line":5,"column":13},"end":{"line":5,"column":35}},"2":{"start":{"line":7,"column":0},"end":{"line":37,"column":2}},"3":{"start":{"line":12,"column":52},"end":{"line":12,"column":128}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":44},"end":{"line":12,"column":45}},"loc":{"start":{"line":12,"column":52},"end":{"line":12,"column":128}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":52},"end":{"line":12,"column":128}},"type":"binary-expr","locations":[{"start":{"line":12,"column":52},"end":{"line":12,"column":87}},{"start":{"line":12,"column":91},"end":{"line":12,"column":128}}],"line":12}},"s":{"0":1,"1":1,"2":1,"3":10},"f":{"0":10},"b":{"0":[10,8]},"inputSourceMap":{"version":3,"sources":["account.hooks.js"],"names":["module","exports","before","all","find","get","create","hook","data","action","populateAccountUser","userAsItem","passwordField","update","patch","remove","after","error"],"mappings":";;AAAA;;AACA;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,EADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,CAAC,+BAAKC,QAAQA,KAAKC,IAAL,CAAUC,MAAV,KAAqB,cAArB,IAAuCF,KAAKC,IAAL,CAAUC,MAAV,KAAqB,gBAAzE,EACPC,0BADO,EACc,kCAAsB,EAAEC,YAAY,KAAd,EAAqBC,eAAe,gBAApC,EAAtB,CADd,CAAD,CAJF;AAMNC,YAAQ,EANF;AAONC,WAAO,EAPD;AAQNC,YAAQ;AARF,GADO;;AAYfC,SAAO;AACLb,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLO,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH,GAZQ;;AAsBfE,SAAO;AACLd,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLO,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AAtBQ,CAAjB","file":"account.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/account","sourcesContent":["import { when } from 'feathers-hooks-common'\r\nimport { populateAccountUser, enforcePasswordPolicy } from '../../hooks'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [when(hook => hook.data.action === 'resetPwdLong' || hook.data.action === 'passwordChange',\r\n populateAccountUser, enforcePasswordPolicy({ userAsItem: false, passwordField: 'value.password' }))],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8fabd0f45530b19051c32b23350d39e584c017c1","contentHash":"4f713cffc5bb9df9093e729857bdc8ca5f8f963a74fb1af05cddd8afc793179b"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\pusher\\pusher.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\pusher\\pusher.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":416,"column":2}},"2":{"start":{"line":8,"column":17},"end":{"line":8,"column":34}},"3":{"start":{"line":10,"column":4},"end":{"line":10,"column":147}},"4":{"start":{"line":10,"column":68},"end":{"line":10,"column":113}},"5":{"start":{"line":10,"column":118},"end":{"line":10,"column":147}},"6":{"start":{"line":13,"column":26},"end":{"line":13,"column":28}},"7":{"start":{"line":14,"column":2},"end":{"line":22,"column":5}},"8":{"start":{"line":15,"column":22},"end":{"line":18,"column":52}},"9":{"start":{"line":19,"column":27},"end":{"line":19,"column":61}},"10":{"start":{"line":20,"column":4},"end":{"line":20,"column":61}},"11":{"start":{"line":21,"column":4},"end":{"line":21,"column":41}},"12":{"start":{"line":23,"column":2},"end":{"line":415,"column":4}},"13":{"start":{"line":26,"column":6},"end":{"line":26,"column":116}},"14":{"start":{"line":26,"column":67},"end":{"line":26,"column":114}},"15":{"start":{"line":30,"column":6},"end":{"line":32,"column":7}},"16":{"start":{"line":31,"column":8},"end":{"line":31,"column":52}},"17":{"start":{"line":33,"column":26},"end":{"line":35,"column":7}},"18":{"start":{"line":35,"column":20},"end":{"line":35,"column":21}},"19":{"start":{"line":36,"column":6},"end":{"line":46,"column":7}},"20":{"start":{"line":38,"column":8},"end":{"line":45,"column":9}},"21":{"start":{"line":39,"column":10},"end":{"line":39,"column":76}},"22":{"start":{"line":40,"column":15},"end":{"line":45,"column":9}},"23":{"start":{"line":41,"column":10},"end":{"line":41,"column":76}},"24":{"start":{"line":44,"column":10},"end":{"line":44,"column":96}},"25":{"start":{"line":47,"column":6},"end":{"line":70,"column":7}},"26":{"start":{"line":48,"column":8},"end":{"line":48,"column":39}},"27":{"start":{"line":49,"column":13},"end":{"line":70,"column":7}},"28":{"start":{"line":50,"column":8},"end":{"line":50,"column":44}},"29":{"start":{"line":51,"column":8},"end":{"line":51,"column":41}},"30":{"start":{"line":52,"column":13},"end":{"line":70,"column":7}},"31":{"start":{"line":54,"column":20},"end":{"line":57,"column":9}},"32":{"start":{"line":58,"column":8},"end":{"line":58,"column":53}},"33":{"start":{"line":58,"column":27},"end":{"line":58,"column":53}},"34":{"start":{"line":59,"column":8},"end":{"line":59,"column":51}},"35":{"start":{"line":62,"column":21},"end":{"line":65,"column":9}},"36":{"start":{"line":66,"column":8},"end":{"line":66,"column":54}},"37":{"start":{"line":66,"column":26},"end":{"line":66,"column":54}},"38":{"start":{"line":67,"column":8},"end":{"line":67,"column":58}},"39":{"start":{"line":67,"column":27},"end":{"line":67,"column":58}},"40":{"start":{"line":68,"column":8},"end":{"line":68,"column":73}},"41":{"start":{"line":68,"column":31},"end":{"line":68,"column":73}},"42":{"start":{"line":69,"column":8},"end":{"line":69,"column":51}},"43":{"start":{"line":71,"column":6},"end":{"line":71,"column":25}},"44":{"start":{"line":74,"column":20},"end":{"line":74,"column":22}},"45":{"start":{"line":75,"column":6},"end":{"line":85,"column":7}},"46":{"start":{"line":75,"column":24},"end":{"line":75,"column":47}},"47":{"start":{"line":75,"column":52},"end":{"line":85,"column":7}},"48":{"start":{"line":77,"column":8},"end":{"line":79,"column":11}},"49":{"start":{"line":80,"column":13},"end":{"line":85,"column":7}},"50":{"start":{"line":82,"column":8},"end":{"line":84,"column":11}},"51":{"start":{"line":86,"column":6},"end":{"line":86,"column":21}},"52":{"start":{"line":89,"column":6},"end":{"line":109,"column":9}},"53":{"start":{"line":90,"column":28},"end":{"line":90,"column":67}},"54":{"start":{"line":91,"column":8},"end":{"line":94,"column":9}},"55":{"start":{"line":92,"column":10},"end":{"line":92,"column":159}},"56":{"start":{"line":93,"column":10},"end":{"line":93,"column":17}},"57":{"start":{"line":96,"column":24},"end":{"line":96,"column":45}},"58":{"start":{"line":97,"column":31},"end":{"line":97,"column":128}},"59":{"start":{"line":97,"column":76},"end":{"line":97,"column":127}},"60":{"start":{"line":98,"column":8},"end":{"line":102,"column":9}},"61":{"start":{"line":99,"column":10},"end":{"line":99,"column":161}},"62":{"start":{"line":100,"column":10},"end":{"line":100,"column":30}},"63":{"start":{"line":101,"column":10},"end":{"line":101,"column":17}},"64":{"start":{"line":103,"column":8},"end":{"line":108,"column":11}},"65":{"start":{"line":104,"column":10},"end":{"line":107,"column":11}},"66":{"start":{"line":104,"column":19},"end":{"line":104,"column":31}},"67":{"start":{"line":105,"column":12},"end":{"line":105,"column":140}},"68":{"start":{"line":106,"column":12},"end":{"line":106,"column":33}},"69":{"start":{"line":112,"column":6},"end":{"line":140,"column":9}},"70":{"start":{"line":114,"column":24},"end":{"line":114,"column":45}},"71":{"start":{"line":115,"column":31},"end":{"line":115,"column":128}},"72":{"start":{"line":115,"column":76},"end":{"line":115,"column":127}},"73":{"start":{"line":116,"column":8},"end":{"line":119,"column":9}},"74":{"start":{"line":117,"column":10},"end":{"line":117,"column":150}},"75":{"start":{"line":118,"column":10},"end":{"line":118,"column":17}},"76":{"start":{"line":120,"column":28},"end":{"line":120,"column":67}},"77":{"start":{"line":121,"column":8},"end":{"line":124,"column":9}},"78":{"start":{"line":122,"column":10},"end":{"line":122,"column":157}},"79":{"start":{"line":123,"column":10},"end":{"line":123,"column":17}},"80":{"start":{"line":126,"column":8},"end":{"line":139,"column":11}},"81":{"start":{"line":127,"column":10},"end":{"line":138,"column":11}},"82":{"start":{"line":127,"column":19},"end":{"line":127,"column":31}},"83":{"start":{"line":127,"column":36},"end":{"line":138,"column":11}},"84":{"start":{"line":129,"column":12},"end":{"line":129,"column":163}},"85":{"start":{"line":130,"column":12},"end":{"line":135,"column":15}},"86":{"start":{"line":131,"column":14},"end":{"line":134,"column":15}},"87":{"start":{"line":131,"column":23},"end":{"line":131,"column":35}},"88":{"start":{"line":132,"column":16},"end":{"line":132,"column":55}},"89":{"start":{"line":133,"column":16},"end":{"line":133,"column":32}},"90":{"start":{"line":137,"column":12},"end":{"line":137,"column":28}},"91":{"start":{"line":143,"column":6},"end":{"line":163,"column":9}},"92":{"start":{"line":145,"column":24},"end":{"line":145,"column":45}},"93":{"start":{"line":146,"column":23},"end":{"line":146,"column":105}},"94":{"start":{"line":146,"column":64},"end":{"line":146,"column":104}},"95":{"start":{"line":147,"column":8},"end":{"line":151,"column":9}},"96":{"start":{"line":148,"column":10},"end":{"line":148,"column":104}},"97":{"start":{"line":149,"column":10},"end":{"line":149,"column":20}},"98":{"start":{"line":150,"column":10},"end":{"line":150,"column":17}},"99":{"start":{"line":152,"column":28},"end":{"line":152,"column":67}},"100":{"start":{"line":153,"column":8},"end":{"line":156,"column":9}},"101":{"start":{"line":154,"column":10},"end":{"line":154,"column":157}},"102":{"start":{"line":155,"column":10},"end":{"line":155,"column":17}},"103":{"start":{"line":157,"column":8},"end":{"line":162,"column":11}},"104":{"start":{"line":158,"column":10},"end":{"line":161,"column":11}},"105":{"start":{"line":158,"column":19},"end":{"line":158,"column":31}},"106":{"start":{"line":159,"column":12},"end":{"line":159,"column":141}},"107":{"start":{"line":160,"column":12},"end":{"line":160,"column":28}},"108":{"start":{"line":167,"column":30},"end":{"line":167,"column":32}},"109":{"start":{"line":168,"column":22},"end":{"line":168,"column":43}},"110":{"start":{"line":169,"column":6},"end":{"line":189,"column":9}},"111":{"start":{"line":170,"column":28},"end":{"line":170,"column":67}},"112":{"start":{"line":171,"column":8},"end":{"line":188,"column":12}},"113":{"start":{"line":172,"column":10},"end":{"line":175,"column":11}},"114":{"start":{"line":173,"column":12},"end":{"line":173,"column":168}},"115":{"start":{"line":174,"column":12},"end":{"line":174,"column":19}},"116":{"start":{"line":176,"column":30},"end":{"line":176,"column":83}},"117":{"start":{"line":177,"column":10},"end":{"line":187,"column":13}},"118":{"start":{"line":178,"column":12},"end":{"line":186,"column":13}},"119":{"start":{"line":181,"column":14},"end":{"line":181,"column":182}},"120":{"start":{"line":182,"column":14},"end":{"line":182,"column":56}},"121":{"start":{"line":184,"column":14},"end":{"line":184,"column":187}},"122":{"start":{"line":185,"column":14},"end":{"line":185,"column":61}},"123":{"start":{"line":190,"column":6},"end":{"line":190,"column":143}},"124":{"start":{"line":190,"column":58},"end":{"line":190,"column":141}},"125":{"start":{"line":190,"column":100},"end":{"line":190,"column":136}},"126":{"start":{"line":193,"column":6},"end":{"line":218,"column":11}},"127":{"start":{"line":195,"column":30},"end":{"line":195,"column":32}},"128":{"start":{"line":196,"column":8},"end":{"line":208,"column":11}},"129":{"start":{"line":197,"column":10},"end":{"line":207,"column":14}},"130":{"start":{"line":199,"column":12},"end":{"line":206,"column":15}},"131":{"start":{"line":200,"column":14},"end":{"line":205,"column":15}},"132":{"start":{"line":201,"column":16},"end":{"line":201,"column":28}},"133":{"start":{"line":203,"column":16},"end":{"line":203,"column":132}},"134":{"start":{"line":204,"column":16},"end":{"line":204,"column":62}},"135":{"start":{"line":209,"column":24},"end":{"line":209,"column":56}},"136":{"start":{"line":210,"column":23},"end":{"line":212,"column":14}},"137":{"start":{"line":211,"column":10},"end":{"line":211,"column":46}},"138":{"start":{"line":213,"column":8},"end":{"line":217,"column":9}},"139":{"start":{"line":214,"column":10},"end":{"line":214,"column":69}},"140":{"start":{"line":216,"column":10},"end":{"line":216,"column":24}},"141":{"start":{"line":222,"column":30},"end":{"line":222,"column":32}},"142":{"start":{"line":223,"column":6},"end":{"line":236,"column":9}},"143":{"start":{"line":224,"column":8},"end":{"line":235,"column":12}},"144":{"start":{"line":225,"column":27},"end":{"line":225,"column":96}},"145":{"start":{"line":226,"column":30},"end":{"line":226,"column":83}},"146":{"start":{"line":227,"column":10},"end":{"line":234,"column":13}},"147":{"start":{"line":228,"column":12},"end":{"line":233,"column":13}},"148":{"start":{"line":229,"column":14},"end":{"line":229,"column":26}},"149":{"start":{"line":231,"column":14},"end":{"line":231,"column":174}},"150":{"start":{"line":232,"column":14},"end":{"line":232,"column":61}},"151":{"start":{"line":237,"column":6},"end":{"line":237,"column":143}},"152":{"start":{"line":237,"column":58},"end":{"line":237,"column":141}},"153":{"start":{"line":237,"column":100},"end":{"line":237,"column":136}},"154":{"start":{"line":240,"column":18},"end":{"line":240,"column":22}},"155":{"start":{"line":242,"column":6},"end":{"line":283,"column":11}},"156":{"start":{"line":245,"column":38},"end":{"line":245,"column":94}},"157":{"start":{"line":247,"column":39},"end":{"line":247,"column":41}},"158":{"start":{"line":248,"column":30},"end":{"line":248,"column":32}},"159":{"start":{"line":249,"column":8},"end":{"line":275,"column":11}},"160":{"start":{"line":250,"column":27},"end":{"line":250,"column":96}},"161":{"start":{"line":252,"column":10},"end":{"line":263,"column":13}},"162":{"start":{"line":253,"column":12},"end":{"line":262,"column":16}},"163":{"start":{"line":254,"column":14},"end":{"line":261,"column":17}},"164":{"start":{"line":255,"column":16},"end":{"line":260,"column":17}},"165":{"start":{"line":256,"column":18},"end":{"line":256,"column":95}},"166":{"start":{"line":258,"column":18},"end":{"line":258,"column":125}},"167":{"start":{"line":259,"column":18},"end":{"line":259,"column":65}},"168":{"start":{"line":265,"column":10},"end":{"line":274,"column":14}},"169":{"start":{"line":266,"column":12},"end":{"line":273,"column":15}},"170":{"start":{"line":267,"column":14},"end":{"line":272,"column":15}},"171":{"start":{"line":268,"column":16},"end":{"line":268,"column":28}},"172":{"start":{"line":270,"column":16},"end":{"line":270,"column":132}},"173":{"start":{"line":271,"column":16},"end":{"line":271,"column":34}},"174":{"start":{"line":276,"column":8},"end":{"line":276,"column":50}},"175":{"start":{"line":277,"column":26},"end":{"line":277,"column":58}},"176":{"start":{"line":278,"column":8},"end":{"line":282,"column":9}},"177":{"start":{"line":279,"column":10},"end":{"line":279,"column":67}},"178":{"start":{"line":281,"column":10},"end":{"line":281,"column":27}},"179":{"start":{"line":287,"column":35},"end":{"line":287,"column":37}},"180":{"start":{"line":288,"column":6},"end":{"line":312,"column":9}},"181":{"start":{"line":290,"column":8},"end":{"line":311,"column":11}},"182":{"start":{"line":291,"column":26},"end":{"line":291,"column":47}},"183":{"start":{"line":293,"column":10},"end":{"line":310,"column":13}},"184":{"start":{"line":294,"column":12},"end":{"line":309,"column":13}},"185":{"start":{"line":295,"column":14},"end":{"line":308,"column":18}},"186":{"start":{"line":296,"column":33},"end":{"line":296,"column":102}},"187":{"start":{"line":297,"column":16},"end":{"line":307,"column":19}},"188":{"start":{"line":298,"column":18},"end":{"line":306,"column":19}},"189":{"start":{"line":301,"column":20},"end":{"line":301,"column":171}},"190":{"start":{"line":302,"column":20},"end":{"line":302,"column":88}},"191":{"start":{"line":304,"column":20},"end":{"line":304,"column":157}},"192":{"start":{"line":305,"column":20},"end":{"line":305,"column":99}},"193":{"start":{"line":313,"column":6},"end":{"line":313,"column":47}},"194":{"start":{"line":316,"column":35},"end":{"line":316,"column":37}},"195":{"start":{"line":317,"column":6},"end":{"line":332,"column":9}},"196":{"start":{"line":318,"column":8},"end":{"line":331,"column":12}},"197":{"start":{"line":319,"column":27},"end":{"line":319,"column":96}},"198":{"start":{"line":320,"column":10},"end":{"line":330,"column":13}},"199":{"start":{"line":321,"column":12},"end":{"line":329,"column":13}},"200":{"start":{"line":324,"column":14},"end":{"line":324,"column":164}},"201":{"start":{"line":325,"column":14},"end":{"line":325,"column":26}},"202":{"start":{"line":327,"column":14},"end":{"line":327,"column":179}},"203":{"start":{"line":328,"column":14},"end":{"line":328,"column":37}},"204":{"start":{"line":333,"column":6},"end":{"line":333,"column":47}},"205":{"start":{"line":338,"column":6},"end":{"line":369,"column":9}},"206":{"start":{"line":339,"column":39},"end":{"line":339,"column":41}},"207":{"start":{"line":341,"column":8},"end":{"line":367,"column":11}},"208":{"start":{"line":343,"column":10},"end":{"line":366,"column":13}},"209":{"start":{"line":344,"column":12},"end":{"line":365,"column":15}},"210":{"start":{"line":345,"column":30},"end":{"line":345,"column":51}},"211":{"start":{"line":346,"column":14},"end":{"line":364,"column":17}},"212":{"start":{"line":347,"column":16},"end":{"line":363,"column":17}},"213":{"start":{"line":348,"column":18},"end":{"line":362,"column":22}},"214":{"start":{"line":349,"column":40},"end":{"line":349,"column":79}},"215":{"start":{"line":350,"column":37},"end":{"line":350,"column":106}},"216":{"start":{"line":351,"column":20},"end":{"line":361,"column":23}},"217":{"start":{"line":352,"column":22},"end":{"line":360,"column":23}},"218":{"start":{"line":355,"column":24},"end":{"line":355,"column":167}},"219":{"start":{"line":356,"column":24},"end":{"line":356,"column":92}},"220":{"start":{"line":358,"column":24},"end":{"line":358,"column":153}},"221":{"start":{"line":359,"column":24},"end":{"line":359,"column":116}},"222":{"start":{"line":368,"column":8},"end":{"line":368,"column":51}},"223":{"start":{"line":373,"column":6},"end":{"line":373,"column":70}},"224":{"start":{"line":375,"column":6},"end":{"line":389,"column":7}},"225":{"start":{"line":378,"column":10},"end":{"line":378,"column":61}},"226":{"start":{"line":380,"column":10},"end":{"line":380,"column":140}},"227":{"start":{"line":382,"column":10},"end":{"line":382,"column":121}},"228":{"start":{"line":385,"column":31},"end":{"line":385,"column":67}},"229":{"start":{"line":387,"column":12},"end":{"line":387,"column":204}},"230":{"start":{"line":393,"column":6},"end":{"line":393,"column":70}},"231":{"start":{"line":395,"column":6},"end":{"line":398,"column":7}},"232":{"start":{"line":397,"column":10},"end":{"line":397,"column":65}},"233":{"start":{"line":402,"column":20},"end":{"line":402,"column":32}},"234":{"start":{"line":403,"column":6},"end":{"line":403,"column":71}},"235":{"start":{"line":405,"column":6},"end":{"line":413,"column":7}},"236":{"start":{"line":408,"column":10},"end":{"line":408,"column":52}},"237":{"start":{"line":410,"column":10},"end":{"line":410,"column":141}},"238":{"start":{"line":412,"column":10},"end":{"line":412,"column":122}},"239":{"start":{"line":418,"column":14},"end":{"line":418,"column":31}},"240":{"start":{"line":420,"column":15},"end":{"line":420,"column":46}},"241":{"start":{"line":422,"column":14},"end":{"line":422,"column":31}},"242":{"start":{"line":424,"column":15},"end":{"line":424,"column":46}},"243":{"start":{"line":426,"column":14},"end":{"line":426,"column":43}},"244":{"start":{"line":428,"column":17},"end":{"line":428,"column":38}},"245":{"start":{"line":430,"column":18},"end":{"line":430,"column":52}},"246":{"start":{"line":432,"column":13},"end":{"line":432,"column":29}},"247":{"start":{"line":434,"column":14},"end":{"line":434,"column":44}},"248":{"start":{"line":436,"column":39},"end":{"line":436,"column":93}},"249":{"start":{"line":438,"column":33},"end":{"line":438,"column":456}},"250":{"start":{"line":438,"column":64},"end":{"line":438,"column":89}},"251":{"start":{"line":438,"column":91},"end":{"line":438,"column":453}},"252":{"start":{"line":438,"column":165},"end":{"line":438,"column":263}},"253":{"start":{"line":438,"column":182},"end":{"line":438,"column":195}},"254":{"start":{"line":438,"column":209},"end":{"line":438,"column":219}},"255":{"start":{"line":438,"column":239},"end":{"line":438,"column":253}},"256":{"start":{"line":438,"column":254},"end":{"line":438,"column":261}},"257":{"start":{"line":438,"column":264},"end":{"line":438,"column":426}},"258":{"start":{"line":438,"column":281},"end":{"line":438,"column":296}},"259":{"start":{"line":438,"column":306},"end":{"line":438,"column":424}},"260":{"start":{"line":438,"column":360},"end":{"line":438,"column":380}},"261":{"start":{"line":438,"column":401},"end":{"line":438,"column":420}},"262":{"start":{"line":438,"column":429},"end":{"line":438,"column":449}},"263":{"start":{"line":440,"column":14},"end":{"line":440,"column":61}},"264":{"start":{"line":441,"column":26},"end":{"line":441,"column":34}},"265":{"start":{"line":443,"column":0},"end":{"line":443,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":48},"end":{"line":416,"column":1}},"line":7},"1":{"name":"generateTopicName","decl":{"start":{"line":9,"column":11},"end":{"line":9,"column":28}},"loc":{"start":{"line":9,"column":50},"end":{"line":11,"column":3}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":44},"end":{"line":14,"column":45}},"loc":{"start":{"line":14,"column":71},"end":{"line":22,"column":3}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":32},"end":{"line":27,"column":5}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":52},"end":{"line":26,"column":53}},"loc":{"start":{"line":26,"column":67},"end":{"line":26,"column":114}},"line":26},"5":{"name":"(anonymous_5)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":41},"end":{"line":72,"column":5}},"line":28},"6":{"name":"(anonymous_6)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":21},"end":{"line":87,"column":5}},"line":73},"7":{"name":"(anonymous_7)","decl":{"start":{"line":88,"column":4},"end":{"line":88,"column":5}},"loc":{"start":{"line":88,"column":31},"end":{"line":110,"column":5}},"line":88},"8":{"name":"(anonymous_8)","decl":{"start":{"line":89,"column":25},"end":{"line":89,"column":26}},"loc":{"start":{"line":89,"column":46},"end":{"line":109,"column":7}},"line":89},"9":{"name":"(anonymous_9)","decl":{"start":{"line":97,"column":62},"end":{"line":97,"column":63}},"loc":{"start":{"line":97,"column":76},"end":{"line":97,"column":127}},"line":97},"10":{"name":"(anonymous_10)","decl":{"start":{"line":103,"column":55},"end":{"line":103,"column":56}},"loc":{"start":{"line":103,"column":77},"end":{"line":108,"column":9}},"line":103},"11":{"name":"(anonymous_11)","decl":{"start":{"line":111,"column":4},"end":{"line":111,"column":5}},"loc":{"start":{"line":111,"column":47},"end":{"line":141,"column":5}},"line":111},"12":{"name":"(anonymous_12)","decl":{"start":{"line":112,"column":25},"end":{"line":112,"column":26}},"loc":{"start":{"line":112,"column":46},"end":{"line":140,"column":7}},"line":112},"13":{"name":"(anonymous_13)","decl":{"start":{"line":115,"column":62},"end":{"line":115,"column":63}},"loc":{"start":{"line":115,"column":76},"end":{"line":115,"column":127}},"line":115},"14":{"name":"(anonymous_14)","decl":{"start":{"line":126,"column":40},"end":{"line":126,"column":41}},"loc":{"start":{"line":126,"column":61},"end":{"line":139,"column":9}},"line":126},"15":{"name":"(anonymous_15)","decl":{"start":{"line":130,"column":94},"end":{"line":130,"column":95}},"loc":{"start":{"line":130,"column":115},"end":{"line":135,"column":13}},"line":130},"16":{"name":"(anonymous_16)","decl":{"start":{"line":142,"column":4},"end":{"line":142,"column":5}},"loc":{"start":{"line":142,"column":39},"end":{"line":164,"column":5}},"line":142},"17":{"name":"(anonymous_17)","decl":{"start":{"line":143,"column":25},"end":{"line":143,"column":26}},"loc":{"start":{"line":143,"column":46},"end":{"line":163,"column":7}},"line":143},"18":{"name":"(anonymous_18)","decl":{"start":{"line":146,"column":54},"end":{"line":146,"column":55}},"loc":{"start":{"line":146,"column":64},"end":{"line":146,"column":104}},"line":146},"19":{"name":"(anonymous_19)","decl":{"start":{"line":157,"column":43},"end":{"line":157,"column":44}},"loc":{"start":{"line":157,"column":50},"end":{"line":162,"column":9}},"line":157},"20":{"name":"(anonymous_20)","decl":{"start":{"line":165,"column":4},"end":{"line":165,"column":5}},"loc":{"start":{"line":165,"column":36},"end":{"line":191,"column":5}},"line":165},"21":{"name":"(anonymous_21)","decl":{"start":{"line":169,"column":22},"end":{"line":169,"column":23}},"loc":{"start":{"line":169,"column":32},"end":{"line":189,"column":7}},"line":169},"22":{"name":"(anonymous_22)","decl":{"start":{"line":171,"column":41},"end":{"line":171,"column":42}},"loc":{"start":{"line":171,"column":62},"end":{"line":188,"column":9}},"line":171},"23":{"name":"(anonymous_23)","decl":{"start":{"line":177,"column":59},"end":{"line":177,"column":60}},"loc":{"start":{"line":177,"column":79},"end":{"line":187,"column":11}},"line":177},"24":{"name":"(anonymous_24)","decl":{"start":{"line":190,"column":47},"end":{"line":190,"column":48}},"loc":{"start":{"line":190,"column":58},"end":{"line":190,"column":141}},"line":190},"25":{"name":"(anonymous_25)","decl":{"start":{"line":190,"column":73},"end":{"line":190,"column":74}},"loc":{"start":{"line":190,"column":100},"end":{"line":190,"column":136}},"line":190},"26":{"name":"(anonymous_26)","decl":{"start":{"line":192,"column":4},"end":{"line":192,"column":5}},"loc":{"start":{"line":192,"column":68},"end":{"line":219,"column":5}},"line":192},"27":{"name":"(anonymous_27)","decl":{"start":{"line":193,"column":31},"end":{"line":193,"column":32}},"loc":{"start":{"line":193,"column":44},"end":{"line":218,"column":7}},"line":193},"28":{"name":"(anonymous_28)","decl":{"start":{"line":196,"column":32},"end":{"line":196,"column":33}},"loc":{"start":{"line":196,"column":55},"end":{"line":208,"column":9}},"line":196},"29":{"name":"(anonymous_29)","decl":{"start":{"line":197,"column":41},"end":{"line":197,"column":42}},"loc":{"start":{"line":197,"column":68},"end":{"line":207,"column":11}},"line":197},"30":{"name":"(anonymous_30)","decl":{"start":{"line":199,"column":76},"end":{"line":199,"column":77}},"loc":{"start":{"line":199,"column":101},"end":{"line":206,"column":13}},"line":199},"31":{"name":"(anonymous_31)","decl":{"start":{"line":210,"column":38},"end":{"line":210,"column":39}},"loc":{"start":{"line":210,"column":63},"end":{"line":212,"column":9}},"line":210},"32":{"name":"(anonymous_32)","decl":{"start":{"line":220,"column":4},"end":{"line":220,"column":5}},"loc":{"start":{"line":220,"column":57},"end":{"line":238,"column":5}},"line":220},"33":{"name":"(anonymous_33)","decl":{"start":{"line":223,"column":30},"end":{"line":223,"column":31}},"loc":{"start":{"line":223,"column":45},"end":{"line":236,"column":7}},"line":223},"34":{"name":"(anonymous_34)","decl":{"start":{"line":224,"column":41},"end":{"line":224,"column":42}},"loc":{"start":{"line":224,"column":62},"end":{"line":235,"column":9}},"line":224},"35":{"name":"(anonymous_35)","decl":{"start":{"line":227,"column":60},"end":{"line":227,"column":61}},"loc":{"start":{"line":227,"column":80},"end":{"line":234,"column":11}},"line":227},"36":{"name":"(anonymous_36)","decl":{"start":{"line":237,"column":47},"end":{"line":237,"column":48}},"loc":{"start":{"line":237,"column":58},"end":{"line":237,"column":141}},"line":237},"37":{"name":"(anonymous_37)","decl":{"start":{"line":237,"column":73},"end":{"line":237,"column":74}},"loc":{"start":{"line":237,"column":100},"end":{"line":237,"column":136}},"line":237},"38":{"name":"(anonymous_38)","decl":{"start":{"line":239,"column":4},"end":{"line":239,"column":5}},"loc":{"start":{"line":239,"column":68},"end":{"line":284,"column":5}},"line":239},"39":{"name":"(anonymous_39)","decl":{"start":{"line":242,"column":31},"end":{"line":242,"column":32}},"loc":{"start":{"line":242,"column":44},"end":{"line":283,"column":7}},"line":242},"40":{"name":"(anonymous_40)","decl":{"start":{"line":249,"column":32},"end":{"line":249,"column":33}},"loc":{"start":{"line":249,"column":58},"end":{"line":275,"column":9}},"line":249},"41":{"name":"(anonymous_41)","decl":{"start":{"line":252,"column":43},"end":{"line":252,"column":44}},"loc":{"start":{"line":252,"column":67},"end":{"line":263,"column":11}},"line":252},"42":{"name":"(anonymous_42)","decl":{"start":{"line":253,"column":52},"end":{"line":253,"column":53}},"loc":{"start":{"line":253,"column":79},"end":{"line":262,"column":13}},"line":253},"43":{"name":"(anonymous_43)","decl":{"start":{"line":254,"column":68},"end":{"line":254,"column":69}},"loc":{"start":{"line":254,"column":83},"end":{"line":261,"column":15}},"line":254},"44":{"name":"(anonymous_44)","decl":{"start":{"line":265,"column":41},"end":{"line":265,"column":42}},"loc":{"start":{"line":265,"column":68},"end":{"line":274,"column":11}},"line":265},"45":{"name":"(anonymous_45)","decl":{"start":{"line":266,"column":46},"end":{"line":266,"column":47}},"loc":{"start":{"line":266,"column":61},"end":{"line":273,"column":13}},"line":266},"46":{"name":"(anonymous_46)","decl":{"start":{"line":285,"column":4},"end":{"line":285,"column":5}},"loc":{"start":{"line":285,"column":59},"end":{"line":314,"column":5}},"line":285},"47":{"name":"(anonymous_47)","decl":{"start":{"line":288,"column":30},"end":{"line":288,"column":31}},"loc":{"start":{"line":288,"column":45},"end":{"line":312,"column":7}},"line":288},"48":{"name":"(anonymous_48)","decl":{"start":{"line":290,"column":22},"end":{"line":290,"column":23}},"loc":{"start":{"line":290,"column":30},"end":{"line":311,"column":9}},"line":290},"49":{"name":"(anonymous_49)","decl":{"start":{"line":293,"column":26},"end":{"line":293,"column":27}},"loc":{"start":{"line":293,"column":36},"end":{"line":310,"column":11}},"line":293},"50":{"name":"(anonymous_50)","decl":{"start":{"line":295,"column":52},"end":{"line":295,"column":53}},"loc":{"start":{"line":295,"column":73},"end":{"line":308,"column":15}},"line":295},"51":{"name":"(anonymous_51)","decl":{"start":{"line":297,"column":60},"end":{"line":297,"column":61}},"loc":{"start":{"line":297,"column":86},"end":{"line":307,"column":17}},"line":297},"52":{"name":"(anonymous_52)","decl":{"start":{"line":315,"column":4},"end":{"line":315,"column":5}},"loc":{"start":{"line":315,"column":49},"end":{"line":334,"column":5}},"line":315},"53":{"name":"(anonymous_53)","decl":{"start":{"line":317,"column":30},"end":{"line":317,"column":31}},"loc":{"start":{"line":317,"column":45},"end":{"line":332,"column":7}},"line":317},"54":{"name":"(anonymous_54)","decl":{"start":{"line":318,"column":46},"end":{"line":318,"column":47}},"loc":{"start":{"line":318,"column":67},"end":{"line":331,"column":9}},"line":318},"55":{"name":"(anonymous_55)","decl":{"start":{"line":320,"column":49},"end":{"line":320,"column":50}},"loc":{"start":{"line":320,"column":73},"end":{"line":330,"column":11}},"line":320},"56":{"name":"(anonymous_56)","decl":{"start":{"line":335,"column":4},"end":{"line":335,"column":5}},"loc":{"start":{"line":335,"column":59},"end":{"line":370,"column":5}},"line":335},"57":{"name":"(anonymous_57)","decl":{"start":{"line":338,"column":68},"end":{"line":338,"column":69}},"loc":{"start":{"line":338,"column":93},"end":{"line":369,"column":7}},"line":338},"58":{"name":"(anonymous_58)","decl":{"start":{"line":341,"column":38},"end":{"line":341,"column":39}},"loc":{"start":{"line":341,"column":55},"end":{"line":367,"column":9}},"line":341},"59":{"name":"(anonymous_59)","decl":{"start":{"line":343,"column":32},"end":{"line":343,"column":33}},"loc":{"start":{"line":343,"column":48},"end":{"line":366,"column":11}},"line":343},"60":{"name":"(anonymous_60)","decl":{"start":{"line":344,"column":26},"end":{"line":344,"column":27}},"loc":{"start":{"line":344,"column":34},"end":{"line":365,"column":13}},"line":344},"61":{"name":"(anonymous_61)","decl":{"start":{"line":346,"column":30},"end":{"line":346,"column":31}},"loc":{"start":{"line":346,"column":40},"end":{"line":364,"column":15}},"line":346},"62":{"name":"(anonymous_62)","decl":{"start":{"line":348,"column":58},"end":{"line":348,"column":59}},"loc":{"start":{"line":348,"column":79},"end":{"line":362,"column":19}},"line":348},"63":{"name":"(anonymous_63)","decl":{"start":{"line":351,"column":74},"end":{"line":351,"column":75}},"loc":{"start":{"line":351,"column":81},"end":{"line":361,"column":21}},"line":351},"64":{"name":"(anonymous_64)","decl":{"start":{"line":372,"column":4},"end":{"line":372,"column":5}},"loc":{"start":{"line":372,"column":25},"end":{"line":390,"column":5}},"line":372},"65":{"name":"(anonymous_65)","decl":{"start":{"line":392,"column":4},"end":{"line":392,"column":5}},"loc":{"start":{"line":392,"column":29},"end":{"line":399,"column":5}},"line":392},"66":{"name":"(anonymous_66)","decl":{"start":{"line":401,"column":4},"end":{"line":401,"column":5}},"loc":{"start":{"line":401,"column":23},"end":{"line":414,"column":5}},"line":401},"67":{"name":"_interopRequireDefault","decl":{"start":{"line":436,"column":9},"end":{"line":436,"column":31}},"loc":{"start":{"line":436,"column":37},"end":{"line":436,"column":95}},"line":436},"68":{"name":"_asyncToGenerator","decl":{"start":{"line":438,"column":9},"end":{"line":438,"column":26}},"loc":{"start":{"line":438,"column":31},"end":{"line":438,"column":458}},"line":438},"69":{"name":"(anonymous_69)","decl":{"start":{"line":438,"column":40},"end":{"line":438,"column":41}},"loc":{"start":{"line":438,"column":52},"end":{"line":438,"column":455}},"line":438},"70":{"name":"(anonymous_70)","decl":{"start":{"line":438,"column":110},"end":{"line":438,"column":111}},"loc":{"start":{"line":438,"column":137},"end":{"line":438,"column":451}},"line":438},"71":{"name":"step","decl":{"start":{"line":438,"column":148},"end":{"line":438,"column":152}},"loc":{"start":{"line":438,"column":163},"end":{"line":438,"column":428}},"line":438},"72":{"name":"(anonymous_72)","decl":{"start":{"line":438,"column":341},"end":{"line":438,"column":342}},"loc":{"start":{"line":438,"column":358},"end":{"line":438,"column":382}},"line":438},"73":{"name":"(anonymous_73)","decl":{"start":{"line":438,"column":384},"end":{"line":438,"column":385}},"loc":{"start":{"line":438,"column":399},"end":{"line":438,"column":422}},"line":438}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":147}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":10,"column":147}},{"start":{"line":10,"column":4},"end":{"line":10,"column":147}}],"line":10},"1":{"loc":{"start":{"line":10,"column":8},"end":{"line":10,"column":66}},"type":"binary-expr","locations":[{"start":{"line":10,"column":8},"end":{"line":10,"column":24}},{"start":{"line":10,"column":28},"end":{"line":10,"column":66}}],"line":10},"2":{"loc":{"start":{"line":30,"column":6},"end":{"line":32,"column":7}},"type":"if","locations":[{"start":{"line":30,"column":6},"end":{"line":32,"column":7}},{"start":{"line":30,"column":6},"end":{"line":32,"column":7}}],"line":30},"3":{"loc":{"start":{"line":36,"column":6},"end":{"line":46,"column":7}},"type":"if","locations":[{"start":{"line":36,"column":6},"end":{"line":46,"column":7}},{"start":{"line":36,"column":6},"end":{"line":46,"column":7}}],"line":36},"4":{"loc":{"start":{"line":36,"column":10},"end":{"line":36,"column":48}},"type":"binary-expr","locations":[{"start":{"line":36,"column":10},"end":{"line":36,"column":27}},{"start":{"line":36,"column":31},"end":{"line":36,"column":48}}],"line":36},"5":{"loc":{"start":{"line":38,"column":8},"end":{"line":45,"column":9}},"type":"if","locations":[{"start":{"line":38,"column":8},"end":{"line":45,"column":9}},{"start":{"line":38,"column":8},"end":{"line":45,"column":9}}],"line":38},"6":{"loc":{"start":{"line":38,"column":12},"end":{"line":38,"column":104}},"type":"binary-expr","locations":[{"start":{"line":38,"column":12},"end":{"line":38,"column":56}},{"start":{"line":38,"column":60},"end":{"line":38,"column":104}}],"line":38},"7":{"loc":{"start":{"line":40,"column":15},"end":{"line":45,"column":9}},"type":"if","locations":[{"start":{"line":40,"column":15},"end":{"line":45,"column":9}},{"start":{"line":40,"column":15},"end":{"line":45,"column":9}}],"line":40},"8":{"loc":{"start":{"line":40,"column":19},"end":{"line":40,"column":89}},"type":"binary-expr","locations":[{"start":{"line":40,"column":19},"end":{"line":40,"column":52}},{"start":{"line":40,"column":56},"end":{"line":40,"column":89}}],"line":40},"9":{"loc":{"start":{"line":47,"column":6},"end":{"line":70,"column":7}},"type":"if","locations":[{"start":{"line":47,"column":6},"end":{"line":70,"column":7}},{"start":{"line":47,"column":6},"end":{"line":70,"column":7}}],"line":47},"10":{"loc":{"start":{"line":49,"column":13},"end":{"line":70,"column":7}},"type":"if","locations":[{"start":{"line":49,"column":13},"end":{"line":70,"column":7}},{"start":{"line":49,"column":13},"end":{"line":70,"column":7}}],"line":49},"11":{"loc":{"start":{"line":52,"column":13},"end":{"line":70,"column":7}},"type":"if","locations":[{"start":{"line":52,"column":13},"end":{"line":70,"column":7}},{"start":{"line":52,"column":13},"end":{"line":70,"column":7}}],"line":52},"12":{"loc":{"start":{"line":58,"column":8},"end":{"line":58,"column":53}},"type":"if","locations":[{"start":{"line":58,"column":8},"end":{"line":58,"column":53}},{"start":{"line":58,"column":8},"end":{"line":58,"column":53}}],"line":58},"13":{"loc":{"start":{"line":66,"column":8},"end":{"line":66,"column":54}},"type":"if","locations":[{"start":{"line":66,"column":8},"end":{"line":66,"column":54}},{"start":{"line":66,"column":8},"end":{"line":66,"column":54}}],"line":66},"14":{"loc":{"start":{"line":67,"column":8},"end":{"line":67,"column":58}},"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":67,"column":58}},{"start":{"line":67,"column":8},"end":{"line":67,"column":58}}],"line":67},"15":{"loc":{"start":{"line":68,"column":8},"end":{"line":68,"column":73}},"type":"if","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":73}},{"start":{"line":68,"column":8},"end":{"line":68,"column":73}}],"line":68},"16":{"loc":{"start":{"line":75,"column":6},"end":{"line":85,"column":7}},"type":"if","locations":[{"start":{"line":75,"column":6},"end":{"line":85,"column":7}},{"start":{"line":75,"column":6},"end":{"line":85,"column":7}}],"line":75},"17":{"loc":{"start":{"line":75,"column":52},"end":{"line":85,"column":7}},"type":"if","locations":[{"start":{"line":75,"column":52},"end":{"line":85,"column":7}},{"start":{"line":75,"column":52},"end":{"line":85,"column":7}}],"line":75},"18":{"loc":{"start":{"line":75,"column":56},"end":{"line":75,"column":99}},"type":"binary-expr","locations":[{"start":{"line":75,"column":56},"end":{"line":75,"column":66}},{"start":{"line":75,"column":70},"end":{"line":75,"column":99}}],"line":75},"19":{"loc":{"start":{"line":80,"column":13},"end":{"line":85,"column":7}},"type":"if","locations":[{"start":{"line":80,"column":13},"end":{"line":85,"column":7}},{"start":{"line":80,"column":13},"end":{"line":85,"column":7}}],"line":80},"20":{"loc":{"start":{"line":80,"column":17},"end":{"line":80,"column":62}},"type":"binary-expr","locations":[{"start":{"line":80,"column":17},"end":{"line":80,"column":27}},{"start":{"line":80,"column":31},"end":{"line":80,"column":62}}],"line":80},"21":{"loc":{"start":{"line":91,"column":8},"end":{"line":94,"column":9}},"type":"if","locations":[{"start":{"line":91,"column":8},"end":{"line":94,"column":9}},{"start":{"line":91,"column":8},"end":{"line":94,"column":9}}],"line":91},"22":{"loc":{"start":{"line":98,"column":8},"end":{"line":102,"column":9}},"type":"if","locations":[{"start":{"line":98,"column":8},"end":{"line":102,"column":9}},{"start":{"line":98,"column":8},"end":{"line":102,"column":9}}],"line":98},"23":{"loc":{"start":{"line":104,"column":10},"end":{"line":107,"column":11}},"type":"if","locations":[{"start":{"line":104,"column":10},"end":{"line":107,"column":11}},{"start":{"line":104,"column":10},"end":{"line":107,"column":11}}],"line":104},"24":{"loc":{"start":{"line":116,"column":8},"end":{"line":119,"column":9}},"type":"if","locations":[{"start":{"line":116,"column":8},"end":{"line":119,"column":9}},{"start":{"line":116,"column":8},"end":{"line":119,"column":9}}],"line":116},"25":{"loc":{"start":{"line":121,"column":8},"end":{"line":124,"column":9}},"type":"if","locations":[{"start":{"line":121,"column":8},"end":{"line":124,"column":9}},{"start":{"line":121,"column":8},"end":{"line":124,"column":9}}],"line":121},"26":{"loc":{"start":{"line":127,"column":10},"end":{"line":138,"column":11}},"type":"if","locations":[{"start":{"line":127,"column":10},"end":{"line":138,"column":11}},{"start":{"line":127,"column":10},"end":{"line":138,"column":11}}],"line":127},"27":{"loc":{"start":{"line":127,"column":36},"end":{"line":138,"column":11}},"type":"if","locations":[{"start":{"line":127,"column":36},"end":{"line":138,"column":11}},{"start":{"line":127,"column":36},"end":{"line":138,"column":11}}],"line":127},"28":{"loc":{"start":{"line":127,"column":40},"end":{"line":127,"column":109}},"type":"binary-expr","locations":[{"start":{"line":127,"column":40},"end":{"line":127,"column":75}},{"start":{"line":127,"column":79},"end":{"line":127,"column":109}}],"line":127},"29":{"loc":{"start":{"line":131,"column":14},"end":{"line":134,"column":15}},"type":"if","locations":[{"start":{"line":131,"column":14},"end":{"line":134,"column":15}},{"start":{"line":131,"column":14},"end":{"line":134,"column":15}}],"line":131},"30":{"loc":{"start":{"line":147,"column":8},"end":{"line":151,"column":9}},"type":"if","locations":[{"start":{"line":147,"column":8},"end":{"line":151,"column":9}},{"start":{"line":147,"column":8},"end":{"line":151,"column":9}}],"line":147},"31":{"loc":{"start":{"line":153,"column":8},"end":{"line":156,"column":9}},"type":"if","locations":[{"start":{"line":153,"column":8},"end":{"line":156,"column":9}},{"start":{"line":153,"column":8},"end":{"line":156,"column":9}}],"line":153},"32":{"loc":{"start":{"line":158,"column":10},"end":{"line":161,"column":11}},"type":"if","locations":[{"start":{"line":158,"column":10},"end":{"line":161,"column":11}},{"start":{"line":158,"column":10},"end":{"line":161,"column":11}}],"line":158},"33":{"loc":{"start":{"line":172,"column":10},"end":{"line":175,"column":11}},"type":"if","locations":[{"start":{"line":172,"column":10},"end":{"line":175,"column":11}},{"start":{"line":172,"column":10},"end":{"line":175,"column":11}}],"line":172},"34":{"loc":{"start":{"line":178,"column":12},"end":{"line":186,"column":13}},"type":"if","locations":[{"start":{"line":178,"column":12},"end":{"line":186,"column":13}},{"start":{"line":178,"column":12},"end":{"line":186,"column":13}}],"line":178},"35":{"loc":{"start":{"line":192,"column":54},"end":{"line":192,"column":66}},"type":"default-arg","locations":[{"start":{"line":192,"column":62},"end":{"line":192,"column":66}}],"line":192},"36":{"loc":{"start":{"line":200,"column":14},"end":{"line":205,"column":15}},"type":"if","locations":[{"start":{"line":200,"column":14},"end":{"line":205,"column":15}},{"start":{"line":200,"column":14},"end":{"line":205,"column":15}}],"line":200},"37":{"loc":{"start":{"line":213,"column":8},"end":{"line":217,"column":9}},"type":"if","locations":[{"start":{"line":213,"column":8},"end":{"line":217,"column":9}},{"start":{"line":213,"column":8},"end":{"line":217,"column":9}}],"line":213},"38":{"loc":{"start":{"line":228,"column":12},"end":{"line":233,"column":13}},"type":"if","locations":[{"start":{"line":228,"column":12},"end":{"line":233,"column":13}},{"start":{"line":228,"column":12},"end":{"line":233,"column":13}}],"line":228},"39":{"loc":{"start":{"line":239,"column":54},"end":{"line":239,"column":66}},"type":"default-arg","locations":[{"start":{"line":239,"column":62},"end":{"line":239,"column":66}}],"line":239},"40":{"loc":{"start":{"line":255,"column":16},"end":{"line":260,"column":17}},"type":"if","locations":[{"start":{"line":255,"column":16},"end":{"line":260,"column":17}},{"start":{"line":255,"column":16},"end":{"line":260,"column":17}}],"line":255},"41":{"loc":{"start":{"line":267,"column":14},"end":{"line":272,"column":15}},"type":"if","locations":[{"start":{"line":267,"column":14},"end":{"line":272,"column":15}},{"start":{"line":267,"column":14},"end":{"line":272,"column":15}}],"line":267},"42":{"loc":{"start":{"line":278,"column":8},"end":{"line":282,"column":9}},"type":"if","locations":[{"start":{"line":278,"column":8},"end":{"line":282,"column":9}},{"start":{"line":278,"column":8},"end":{"line":282,"column":9}}],"line":278},"43":{"loc":{"start":{"line":294,"column":12},"end":{"line":309,"column":13}},"type":"if","locations":[{"start":{"line":294,"column":12},"end":{"line":309,"column":13}},{"start":{"line":294,"column":12},"end":{"line":309,"column":13}}],"line":294},"44":{"loc":{"start":{"line":298,"column":18},"end":{"line":306,"column":19}},"type":"if","locations":[{"start":{"line":298,"column":18},"end":{"line":306,"column":19}},{"start":{"line":298,"column":18},"end":{"line":306,"column":19}}],"line":298},"45":{"loc":{"start":{"line":321,"column":12},"end":{"line":329,"column":13}},"type":"if","locations":[{"start":{"line":321,"column":12},"end":{"line":329,"column":13}},{"start":{"line":321,"column":12},"end":{"line":329,"column":13}}],"line":321},"46":{"loc":{"start":{"line":347,"column":16},"end":{"line":363,"column":17}},"type":"if","locations":[{"start":{"line":347,"column":16},"end":{"line":363,"column":17}},{"start":{"line":347,"column":16},"end":{"line":363,"column":17}}],"line":347},"47":{"loc":{"start":{"line":352,"column":22},"end":{"line":360,"column":23}},"type":"if","locations":[{"start":{"line":352,"column":22},"end":{"line":360,"column":23}},{"start":{"line":352,"column":22},"end":{"line":360,"column":23}}],"line":352},"48":{"loc":{"start":{"line":375,"column":6},"end":{"line":389,"column":7}},"type":"switch","locations":[{"start":{"line":376,"column":8},"end":{"line":378,"column":61}},{"start":{"line":379,"column":8},"end":{"line":380,"column":140}},{"start":{"line":381,"column":8},"end":{"line":382,"column":121}},{"start":{"line":383,"column":8},"end":{"line":388,"column":11}}],"line":375},"49":{"loc":{"start":{"line":380,"column":88},"end":{"line":380,"column":124}},"type":"binary-expr","locations":[{"start":{"line":380,"column":88},"end":{"line":380,"column":103}},{"start":{"line":380,"column":107},"end":{"line":380,"column":124}}],"line":380},"50":{"loc":{"start":{"line":382,"column":83},"end":{"line":382,"column":119}},"type":"binary-expr","locations":[{"start":{"line":382,"column":83},"end":{"line":382,"column":98}},{"start":{"line":382,"column":102},"end":{"line":382,"column":119}}],"line":382},"51":{"loc":{"start":{"line":385,"column":31},"end":{"line":385,"column":67}},"type":"binary-expr","locations":[{"start":{"line":385,"column":31},"end":{"line":385,"column":46}},{"start":{"line":385,"column":50},"end":{"line":385,"column":67}}],"line":385},"52":{"loc":{"start":{"line":387,"column":19},"end":{"line":387,"column":203}},"type":"cond-expr","locations":[{"start":{"line":387,"column":73},"end":{"line":387,"column":146}},{"start":{"line":387,"column":149},"end":{"line":387,"column":203}}],"line":387},"53":{"loc":{"start":{"line":395,"column":6},"end":{"line":398,"column":7}},"type":"switch","locations":[{"start":{"line":396,"column":8},"end":{"line":397,"column":65}}],"line":395},"54":{"loc":{"start":{"line":405,"column":6},"end":{"line":413,"column":7}},"type":"switch","locations":[{"start":{"line":406,"column":8},"end":{"line":408,"column":52}},{"start":{"line":409,"column":8},"end":{"line":410,"column":141}},{"start":{"line":411,"column":8},"end":{"line":412,"column":122}}],"line":405},"55":{"loc":{"start":{"line":410,"column":88},"end":{"line":410,"column":125}},"type":"binary-expr","locations":[{"start":{"line":410,"column":88},"end":{"line":410,"column":104}},{"start":{"line":410,"column":108},"end":{"line":410,"column":125}}],"line":410},"56":{"loc":{"start":{"line":412,"column":83},"end":{"line":412,"column":120}},"type":"binary-expr","locations":[{"start":{"line":412,"column":83},"end":{"line":412,"column":99}},{"start":{"line":412,"column":103},"end":{"line":412,"column":120}}],"line":412},"57":{"loc":{"start":{"line":436,"column":46},"end":{"line":436,"column":92}},"type":"cond-expr","locations":[{"start":{"line":436,"column":70},"end":{"line":436,"column":73}},{"start":{"line":436,"column":76},"end":{"line":436,"column":92}}],"line":436},"58":{"loc":{"start":{"line":436,"column":46},"end":{"line":436,"column":67}},"type":"binary-expr","locations":[{"start":{"line":436,"column":46},"end":{"line":436,"column":49}},{"start":{"line":436,"column":53},"end":{"line":436,"column":67}}],"line":436},"59":{"loc":{"start":{"line":438,"column":264},"end":{"line":438,"column":426}},"type":"if","locations":[{"start":{"line":438,"column":264},"end":{"line":438,"column":426}},{"start":{"line":438,"column":264},"end":{"line":438,"column":426}}],"line":438}},"s":{"0":1,"1":1,"2":5,"3":2,"4":2,"5":0,"6":5,"7":5,"8":10,"9":10,"10":10,"11":10,"12":5,"13":16,"14":18,"15":4,"16":4,"17":4,"18":4,"19":4,"20":0,"21":0,"22":0,"23":0,"24":0,"25":4,"26":1,"27":3,"28":0,"29":0,"30":3,"31":0,"32":0,"33":0,"34":0,"35":3,"36":3,"37":3,"38":3,"39":0,"40":3,"41":0,"42":3,"43":4,"44":14,"45":14,"46":13,"47":1,"48":0,"49":1,"50":0,"51":14,"52":3,"53":3,"54":3,"55":0,"56":0,"57":3,"58":3,"59":2,"60":3,"61":0,"62":0,"63":0,"64":3,"65":3,"66":0,"67":3,"68":3,"69":2,"70":2,"71":2,"72":3,"73":2,"74":0,"75":0,"76":2,"77":2,"78":0,"79":0,"80":2,"81":2,"82":1,"83":1,"84":1,"85":1,"86":1,"87":0,"88":1,"89":1,"90":0,"91":2,"92":2,"93":2,"94":3,"95":2,"96":0,"97":0,"98":0,"99":2,"100":2,"101":0,"102":0,"103":2,"104":2,"105":0,"106":2,"107":2,"108":1,"109":1,"110":1,"111":2,"112":2,"113":2,"114":0,"115":0,"116":2,"117":2,"118":2,"119":0,"120":0,"121":2,"122":2,"123":1,"124":1,"125":2,"126":1,"127":1,"128":1,"129":2,"130":2,"131":2,"132":0,"133":2,"134":2,"135":1,"136":1,"137":2,"138":1,"139":1,"140":0,"141":1,"142":1,"143":2,"144":2,"145":2,"146":2,"147":0,"148":0,"149":0,"150":0,"151":1,"152":0,"153":0,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":2,"161":2,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":2,"169":2,"170":1,"171":0,"172":1,"173":1,"174":1,"175":1,"176":0,"177":0,"178":0,"179":1,"180":1,"181":2,"182":2,"183":2,"184":4,"185":2,"186":2,"187":2,"188":0,"189":0,"190":0,"191":0,"192":0,"193":1,"194":2,"195":2,"196":4,"197":4,"198":4,"199":4,"200":0,"201":0,"202":4,"203":4,"204":2,"205":1,"206":1,"207":1,"208":2,"209":4,"210":4,"211":4,"212":8,"213":4,"214":4,"215":4,"216":4,"217":4,"218":0,"219":0,"220":4,"221":4,"222":1,"223":7,"224":7,"225":3,"226":1,"227":1,"228":2,"229":2,"230":2,"231":2,"232":2,"233":4,"234":4,"235":4,"236":2,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":4,"249":2,"250":2,"251":2,"252":5,"253":5,"254":5,"255":0,"256":0,"257":5,"258":1,"259":4,"260":3,"261":0,"262":2,"263":1,"264":1,"265":1},"f":{"0":5,"1":2,"2":10,"3":16,"4":18,"5":4,"6":14,"7":3,"8":3,"9":2,"10":3,"11":2,"12":2,"13":3,"14":2,"15":1,"16":2,"17":2,"18":3,"19":2,"20":1,"21":2,"22":2,"23":2,"24":1,"25":2,"26":1,"27":1,"28":2,"29":2,"30":2,"31":2,"32":1,"33":2,"34":2,"35":0,"36":0,"37":0,"38":1,"39":1,"40":2,"41":0,"42":0,"43":0,"44":2,"45":1,"46":1,"47":2,"48":2,"49":4,"50":2,"51":0,"52":2,"53":4,"54":4,"55":4,"56":1,"57":1,"58":2,"59":4,"60":4,"61":8,"62":4,"63":4,"64":7,"65":2,"66":4,"67":4,"68":2,"69":2,"70":2,"71":5,"72":3,"73":0},"b":{"0":[2,0],"1":[2,2],"2":[4,0],"3":[0,4],"4":[4,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[1,3],"10":[0,3],"11":[0,3],"12":[0,0],"13":[3,0],"14":[0,3],"15":[0,3],"16":[13,1],"17":[0,1],"18":[1,0],"19":[0,1],"20":[1,1],"21":[0,3],"22":[0,3],"23":[0,3],"24":[0,2],"25":[0,2],"26":[1,1],"27":[1,0],"28":[1,0],"29":[0,1],"30":[0,2],"31":[0,2],"32":[0,2],"33":[0,2],"34":[0,2],"35":[1],"36":[0,2],"37":[1,0],"38":[0,0],"39":[1],"40":[0,0],"41":[0,1],"42":[0,0],"43":[2,2],"44":[0,0],"45":[0,4],"46":[4,4],"47":[0,4],"48":[3,1,1,2],"49":[1,1],"50":[1,1],"51":[2,2],"52":[1,1],"53":[2],"54":[2,1,1],"55":[1,1],"56":[1,1],"57":[0,4],"58":[4,4],"59":[1,4]},"inputSourceMap":{"version":3,"sources":["pusher.service.js"],"names":["name","app","options","config","get","generateTopicName","object","application","topicName","_id","toString","snsApplications","_","forOwn","platforms","platformArn","platform","snsConfig","Object","assign","platformApplicationArn","omit","snsApplication","SNS","debug","push","getSnsApplication","find","toUpperCase","getMessagePayload","message","title","body","jsonMessage","default","notId","createdAt","updatedAt","moment","isMoment","valueOf","Date","getTime","SUPPORTED_PLATFORMS","SMS","sms","EMAIL","subject","email","IOS","aps","alert","sound","APNS","JSON","stringify","data","soundname","vibration","vibrationPattern","GCM","getDevices","user","devices","phone","registrationId","arn","createDevice","device","Promise","resolve","reject","Error","previousDevice","userDevice","addUser","err","endpointArn","updateDevice","getUser","attributes","Token","Enabled","setAttributes","removeDevice","deleteUser","publishToDevices","messagePromises","forEach","sendMessage","messageId","all","then","results","reduce","messageIds","createPlatformTopics","service","topicField","patch","topicPromises","createTopic","topicArn","topics","topic","publishToPlatformTopics","publishToTopic","removePlatformTopics","platformSubscriptions","getPlatformSubscriptions","unsubscriptionPromises","i","unsubscribe","subscription","SubscriptionArn","GeneralError","deleteTopic","topicArns","createPlatformSubscriptions","users","subscriptionPromises","subscribe","subscriptionArn","getSubscriptions","subscriptions","length","removePlatformSubscriptions","Endpoint","create","params","action","pushObject","pushObjectService","defaultTopicField","update","id","remove","query"],"mappings":"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","file":"pusher.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/pusher","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment'\r\nimport { GeneralError } from '@feathersjs/errors'\r\nimport SNS from 'sns-mobile'\r\nimport makeDebug from 'debug'\r\n\r\nconst debug = makeDebug('kdk:core:pusher:service')\r\nconst defaultTopicField = 'topics'\r\n\r\nexport default function (name, app, options) {\r\n const config = app.get('pusher')\r\n function generateTopicName (object, application) {\r\n if (config.topicName && (typeof config.topicName === 'function')) return config.topicName(object, application)\r\n else return object._id.toString()\r\n }\r\n // Instanciate a SNS interface for each platform found in config\r\n const snsApplications = []\r\n _.forOwn(config.platforms, (platformArn, platform) => {\r\n const snsConfig = Object.assign({\r\n platform,\r\n platformApplicationArn: platformArn\r\n }, _.omit(config, ['platforms']))\r\n const snsApplication = new SNS(snsConfig)\r\n debug('SNS application created with config ', snsConfig)\r\n snsApplications.push(snsApplication)\r\n })\r\n return {\r\n // Used to retrieve the underlying interface for a platform\r\n getSnsApplication (platform) {\r\n return _.find(snsApplications, application => application.platform === platform.toUpperCase())\r\n },\r\n getMessagePayload (message, platform) {\r\n // Transform in internal data structure if only a string is given\r\n if (typeof message === 'string') {\r\n message = { title: message, body: message }\r\n }\r\n const jsonMessage = { default: message.title }\r\n // For stacking we need a unique increasing ID per notification on Android\r\n let notId = 1\r\n if (message.createdAt && message.updatedAt) {\r\n // Use the difference in seconds between creation/update time\r\n if (moment.isMoment(message.createdAt) && moment.isMoment(message.updatedAt)) {\r\n notId = (message.updatedAt.valueOf() - message.createdAt.valueOf())\r\n } else if (message.createdAt instanceof Date && message.updatedAt instanceof Date) {\r\n notId = (message.updatedAt.getTime() - message.createdAt.getTime())\r\n } else {\r\n // Assume strings\r\n notId = (new Date(message.updatedAt).getTime() - new Date(message.createdAt).getTime())\r\n }\r\n }\r\n if (platform === SNS.SUPPORTED_PLATFORMS.SMS) {\r\n jsonMessage.sms = message.body\r\n } else if (platform === SNS.SUPPORTED_PLATFORMS.EMAIL) {\r\n jsonMessage.subject = message.title\r\n jsonMessage.email = message.body\r\n } else if (platform === SNS.SUPPORTED_PLATFORMS.IOS) {\r\n // iOS\r\n const aps = {\r\n alert: message.title,\r\n notId\r\n }\r\n if (message.sound) aps.sound = message.sound\r\n jsonMessage.APNS = JSON.stringify({ aps })\r\n } else {\r\n // ANDROID\r\n const data = {\r\n title: message.title,\r\n notId\r\n }\r\n if (message.body) data.message = message.body\r\n if (message.sound) data.soundname = message.sound\r\n if (message.vibration) data.vibrationPattern = message.vibration\r\n jsonMessage.GCM = JSON.stringify({ data })\r\n }\r\n return jsonMessage\r\n },\r\n getDevices (user) {\r\n let devices = []\r\n if (user.devices) devices = user.devices\r\n else if (user.phone && this.getSnsApplication('SMS')) {\r\n // Specific case of SMS, in this case the number replace the device registration ID/arn ARN\r\n devices.push({\r\n registrationId: user.phone, arn: user.phone, platform: 'SMS'\r\n })\r\n } else if (user.email && this.getSnsApplication('EMAIL')) {\r\n // Specific case of Email, in this case the address replace the device registration ID/arn ARN\r\n devices.push({\r\n registrationId: user.email, arn: user.email, platform: 'EMAIL'\r\n })\r\n }\r\n return devices\r\n },\r\n createDevice (device, user) {\r\n return new Promise((resolve, reject) => {\r\n const application = this.getSnsApplication(device.platform)\r\n if (!application) {\r\n reject(new Error('Cannot register device with token ' + device.registrationId + ' because there is no platform application for ' + device.platform))\r\n return\r\n }\r\n // Check if already registered\r\n const devices = this.getDevices(user)\r\n const previousDevice = _.find(devices, userDevice => userDevice.registrationId === device.registrationId)\r\n if (previousDevice) {\r\n debug('Already registered device with token ' + previousDevice.registrationId + ' and ARN ' + previousDevice.arn + ' for user ' + user._id.toString())\r\n resolve(device.arn)\r\n return\r\n }\r\n application.addUser(device.registrationId, '', (err, endpointArn) => {\r\n if (err) reject(err)\r\n else {\r\n debug('Registered device with token ' + device.registrationId + ' and ARN ' + endpointArn + ' for user ' + user._id.toString())\r\n resolve(endpointArn)\r\n }\r\n })\r\n })\r\n },\r\n updateDevice (registrationId, device, user) {\r\n return new Promise((resolve, reject) => {\r\n // Check if already registered\r\n const devices = this.getDevices(user)\r\n const previousDevice = _.find(devices, userDevice => userDevice.registrationId === device.registrationId)\r\n if (!previousDevice) {\r\n reject(new Error('Cannot find device with token ' + device.registrationId + ' and ARN ' + device.arn + ' for user ' + user._id.toString()))\r\n return\r\n }\r\n const application = this.getSnsApplication(device.platform)\r\n if (!application) {\r\n reject(new Error('Cannot update device with token ' + device.registrationId + ' because there is no platform application for ' + device.platform))\r\n return\r\n }\r\n // First check if device do exists\r\n application.getUser(device.arn, (err, attributes) => {\r\n if (err) reject(err)\r\n else if ((attributes.Token !== registrationId) || (attributes.Enabled === 'false')) {\r\n // Update token and ensure device is enabled\r\n debug('Updating device with token ' + device.registrationId + ' and ARN ' + device.arn + ' to ' + registrationId + ' for user ' + user._id.toString())\r\n application.setAttributes(device.arn, { Token: registrationId, Enabled: 'true' }, (err, attributes) => {\r\n if (err) reject(err)\r\n else {\r\n device.registrationId = registrationId\r\n resolve(device)\r\n }\r\n })\r\n } else {\r\n resolve(device)\r\n }\r\n })\r\n })\r\n },\r\n removeDevice (registrationId, user) {\r\n return new Promise((resolve, reject) => {\r\n // Check if already registered\r\n const devices = this.getDevices(user)\r\n const device = _.find(devices, device => device.registrationId === registrationId)\r\n if (!device) {\r\n debug('Cannot find device with token ' + registrationId + ' for user ' + user._id.toString())\r\n resolve()\r\n return\r\n }\r\n const application = this.getSnsApplication(device.platform)\r\n if (!application) {\r\n reject(new Error('Cannot unbind device with token ' + device.registrationId + ' because there is no platform application for ' + device.platform))\r\n return\r\n }\r\n application.deleteUser(device.arn, (err) => {\r\n if (err) reject(err)\r\n else {\r\n debug('Unregistered device with token ' + device.registrationId + ' and ARN ' + device.arn + ' for user ' + user._id.toString())\r\n resolve(device)\r\n }\r\n })\r\n })\r\n },\r\n publishToDevices (user, message) {\r\n // Process with each registered platform\r\n const messagePromises = []\r\n const devices = this.getDevices(user)\r\n devices.forEach(device => {\r\n const application = this.getSnsApplication(device.platform)\r\n messagePromises.push(new Promise((resolve, reject) => {\r\n if (!application) {\r\n reject(new Error('Cannot send message to device with token ' + device.registrationId + ' because there is no platform application for ' + device.platform))\r\n return\r\n }\r\n const jsonMessage = this.getMessagePayload(message, application.platform)\r\n application.sendMessage(device.arn, jsonMessage, (err, messageId) => {\r\n if (err) {\r\n // Be tolerant to SNS errors because some endpoints might have been revoked\r\n // reject(err)\r\n debug('Unable to publish message to device with token ' + device.registrationId + ' and ARN ' + device.arn + ' for platform ' + application.platform, jsonMessage, err)\r\n resolve({ [application.platform]: null })\r\n } else {\r\n debug('Published message ' + messageId + ' to device with token ' + device.registrationId + ' and ARN ' + device.arn + ' for platform ' + application.platform, jsonMessage)\r\n resolve({ [application.platform]: messageId })\r\n }\r\n })\r\n }))\r\n })\r\n return Promise.all(messagePromises)\r\n .then(results => results.reduce((messageIds, messageId) => Object.assign(messageIds, messageId), {}))\r\n },\r\n async createPlatformTopics (object, service, topicField, patch = true) {\r\n // Process with each registered platform\r\n const topicPromises = []\r\n snsApplications.forEach(application => {\r\n topicPromises.push(new Promise((resolve, reject) => {\r\n // The topic name will be the object ID\r\n application.createTopic(generateTopicName(object, application), (err, topicArn) => {\r\n if (err) {\r\n reject(err)\r\n } else {\r\n debug('Created topic ' + object._id.toString() + ' with ARN ' + topicArn + ' for platform ' + application.platform)\r\n resolve({ [application.platform]: topicArn })\r\n }\r\n })\r\n }))\r\n })\r\n const results = await Promise.all(topicPromises)\r\n const topics = results.reduce((topics, topic) => Object.assign(topics, topic), {})\r\n if (patch) {\r\n return service.patch(object._id, { [topicField]: topics })\r\n } else {\r\n return topics\r\n }\r\n },\r\n publishToPlatformTopics (object, message, topicField) {\r\n // Process with each registered platform\r\n const messagePromises = []\r\n snsApplications.forEach(application => {\r\n messagePromises.push(new Promise((resolve, reject) => {\r\n const topicArn = _.get(object, topicField + '.' + application.platform)\r\n const jsonMessage = this.getMessagePayload(message, application.platform)\r\n application.publishToTopic(topicArn, jsonMessage, (err, messageId) => {\r\n if (err) {\r\n reject(err)\r\n } else {\r\n debug('Published message ' + messageId + ' to topic ' + object._id.toString() + ' with ARN ' + topicArn + ' for platform ' + application.platform, jsonMessage)\r\n resolve({ [application.platform]: messageId })\r\n }\r\n })\r\n }))\r\n })\r\n return Promise.all(messagePromises)\r\n .then(results => results.reduce((messageIds, messageId) => Object.assign(messageIds, messageId), {}))\r\n },\r\n async removePlatformTopics (object, service, topicField, patch = true) {\r\n // First get all subscribers of the topic because we do not store them\r\n // Process with each registered platform\r\n const platformSubscriptions = await this.getPlatformSubscriptions(object, topicField)\r\n // Process with each registered platform\r\n const unsubscriptionPromises = []\r\n const topicPromises = []\r\n snsApplications.forEach((application, i) => {\r\n const topicArn = _.get(object, topicField + '.' + application.platform)\r\n // Unsubscribe all users\r\n platformSubscriptions[i].forEach(subscription => {\r\n unsubscriptionPromises.push(new Promise((resolve, reject) => {\r\n application.unsubscribe(subscription.SubscriptionArn, (err) => {\r\n if (err) {\r\n reject(new GeneralError(err, { arn: subscription.SubscriptionArn }))\r\n } else {\r\n debug('Unsubscribed device with ARN ' + subscription.SubscriptionArn + ' from topic with ARN ' + topicArn)\r\n resolve({ arn: subscription.SubscriptionArn })\r\n }\r\n })\r\n }))\r\n })\r\n // Then delete topic\r\n topicPromises.push(new Promise((resolve, reject) => {\r\n application.deleteTopic(topicArn, (err) => {\r\n if (err) {\r\n reject(err)\r\n } else {\r\n debug('Removed topic ' + object._id.toString() + ' with ARN ' + topicArn + ' for platform ' + application.platform)\r\n resolve(topicArn)\r\n }\r\n })\r\n }))\r\n })\r\n await Promise.all(unsubscriptionPromises)\r\n const topicArns = await Promise.all(topicPromises)\r\n if (patch) {\r\n return service.patch(object._id, { [topicField]: null })\r\n } else {\r\n return topicArns\r\n }\r\n },\r\n createPlatformSubscriptions (object, users, topicField) {\r\n // Process with each registered platform\r\n const subscriptionPromises = []\r\n snsApplications.forEach(application => {\r\n // Then each target user\r\n users.forEach(user => {\r\n const devices = this.getDevices(user)\r\n // Then each target device\r\n devices.forEach(device => {\r\n if (device.platform.toUpperCase() === application.platform) {\r\n subscriptionPromises.push(new Promise((resolve, reject) => {\r\n const topicArn = _.get(object, topicField + '.' + application.platform)\r\n application.subscribe(device.arn, topicArn, (err, subscriptionArn) => {\r\n if (err) {\r\n // Be tolerant to SNS errors because some endpoints might have been revoked\r\n // reject(new GeneralError(err, { [device.registrationId]: { user: user._id } }))\r\n debug('Unable to subscribe device with token ' + device.registrationId + ' and ARN ' + device.arn + ' to application topic with ARN ' + topicArn, err)\r\n resolve({ [device.registrationId]: { user: user._id, arn: null } })\r\n } else {\r\n debug('Subscribed device with token ' + device.registrationId + ' and ARN ' + device.arn + ' to application topic with ARN ' + topicArn)\r\n resolve({ [device.registrationId]: { user: user._id, arn: subscriptionArn } })\r\n }\r\n })\r\n }))\r\n }\r\n })\r\n })\r\n })\r\n return Promise.all(subscriptionPromises)\r\n },\r\n getPlatformSubscriptions (object, topicField) {\r\n const subscriptionPromises = []\r\n snsApplications.forEach(application => {\r\n subscriptionPromises.push(new Promise((resolve, reject) => {\r\n const topicArn = _.get(object, topicField + '.' + application.platform)\r\n application.getSubscriptions(topicArn, (err, subscriptions) => {\r\n if (err) {\r\n // Be tolerant to SNS errors because some topics might have been deleted\r\n // reject(err)\r\n debug('Unable to retrieve subscriptions for topic ' + object._id.toString() + ' with ARN ' + topicArn + ' for platform ' + application.platform, err)\r\n resolve([])\r\n } else {\r\n debug('Retrieved ' + subscriptions.length + ' subscriptions for topic ' + object._id.toString() + ' with ARN ' + topicArn + ' for platform ' + application.platform)\r\n resolve(subscriptions)\r\n }\r\n })\r\n }))\r\n })\r\n return Promise.all(subscriptionPromises)\r\n },\r\n removePlatformSubscriptions (object, users, topicField) {\r\n // First get all subscribers of the topic because we do not store them\r\n // Process with each registered platform\r\n return this.getPlatformSubscriptions(object, topicField)\r\n .then(platformSubscriptions => {\r\n const unsubscriptionPromises = []\r\n // Process with each registered platform\r\n platformSubscriptions.forEach(subscriptions => {\r\n // Remove the given subscribers from the topic\r\n subscriptions.forEach(subscription => {\r\n users.forEach(user => {\r\n const devices = this.getDevices(user)\r\n devices.forEach(device => {\r\n if (device.arn === subscription.Endpoint) {\r\n unsubscriptionPromises.push(new Promise((resolve, reject) => {\r\n const application = this.getSnsApplication(device.platform)\r\n const topicArn = _.get(object, topicField + '.' + application.platform)\r\n application.unsubscribe(subscription.SubscriptionArn, (err) => {\r\n if (err) {\r\n // Be tolerant to SNS errors because some endpoints might have been revoked\r\n // reject(new GeneralError(err, { [device.registrationId]: { user: user._id } }))\r\n debug('Unable to unsubscribe device with token ' + device.registrationId + ' and ARN ' + device.arn + ' from topic with ARN ' + topicArn, err)\r\n resolve({ [device.registrationId]: { user: user._id, arn: null } })\r\n } else {\r\n debug('Unsubscribed device with token ' + device.registrationId + ' and ARN ' + device.arn + ' from topic with ARN ' + topicArn)\r\n resolve({ [device.registrationId]: { user: user._id, arn: subscription.SubscriptionArn } })\r\n }\r\n })\r\n }))\r\n }\r\n })\r\n })\r\n })\r\n })\r\n return Promise.all(unsubscriptionPromises)\r\n })\r\n },\r\n // Used to perform service actions such as create a user, a push notification, a topic, etc.\r\n create (data, params) {\r\n debug(`pusher service called for create action=${data.action}`)\r\n\r\n switch (data.action) {\r\n case 'device':\r\n // return this.registerDevice(data.device, params.user, params.patch)\r\n return this.createDevice(data.device, params.user)\r\n case 'topic':\r\n return this.createPlatformTopics(params.pushObject, params.pushObjectService, data.topicField || defaultTopicField, params.patch)\r\n case 'subscriptions':\r\n return this.createPlatformSubscriptions(params.pushObject, params.users, data.topicField || defaultTopicField)\r\n case 'message': {\r\n const topicField = data.topicField || defaultTopicField\r\n // If no topic we assume we want to publish on specific devices\r\n return _.get(params.pushObject, topicField)\r\n ? this.publishToPlatformTopics(params.pushObject, data.message, topicField)\r\n : this.publishToDevices(params.pushObject, data.message)\r\n }\r\n }\r\n },\r\n // Used to perform service actions such as update a user\r\n update (id, data, params) {\r\n debug(`pusher service called for update action=${data.action}`)\r\n\r\n switch (data.action) {\r\n case 'device':\r\n return this.updateDevice(id, data.device, params.user)\r\n }\r\n },\r\n // Used to perform service actions such as remove a user, a topic, etc.\r\n remove (id, params) {\r\n const query = params.query\r\n debug(`pusher service called for remove action=${query.action}`)\r\n\r\n switch (query.action) {\r\n case 'device':\r\n // return this.unregisterDevice(id, params.user, params.patch)\r\n return this.removeDevice(id, params.user)\r\n case 'topic':\r\n return this.removePlatformTopics(params.pushObject, params.pushObjectService, query.topicField || defaultTopicField, params.patch)\r\n case 'subscriptions':\r\n return this.removePlatformSubscriptions(params.pushObject, params.users, query.topicField || defaultTopicField)\r\n }\r\n }\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b54cbb96d9cf7a5e1154148f5dc08bbd10c472cd","contentHash":"774351ccdcdb3303e81f1174c90bad4862b8032ff8324a5fb477649b88c6567a"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\pusher\\pusher.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\pusher\\pusher.hooks.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":3,"column":59}},"1":{"start":{"line":5,"column":13},"end":{"line":5,"column":35}},"2":{"start":{"line":7,"column":0},"end":{"line":37,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["pusher.hooks.js"],"names":["module","exports","before","all","find","get","create","populatePushObject","update","patch","remove","after","error"],"mappings":";;AAAA;;AACA;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,CAAC,mCAAS,UAAT,CAAD,CADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,CAACC,yBAAD,CAJF;AAKNC,YAAQ,EALF;AAMNC,WAAO,EAND;AAONC,YAAQ,CAACH,yBAAD;AAPF,GADO;;AAWfI,SAAO;AACLR,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLE,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH,GAXQ;;AAqBfE,SAAO;AACLT,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLE,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AArBQ,CAAjB","file":"pusher.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/pusher","sourcesContent":["import { disallow } from 'feathers-hooks-common'\r\nimport { populatePushObject } from '../../hooks'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [disallow('external')],\r\n find: [],\r\n get: [],\r\n create: [populatePushObject],\r\n update: [],\r\n patch: [],\r\n remove: [populatePushObject]\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"85bc0a2e6c77cadac6681677cb473824870d70d7","contentHash":"337b5ce52807625e87f5db201af8878cffdb3c1589ca5c74aa826f37e6ab6587"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\pusher\\pusher.channels.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\pusher\\pusher.channels.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":2}},"1":{"start":{"line":4,"column":26},"end":{"line":4,"column":90}},"2":{"start":{"line":4,"column":84},"end":{"line":4,"column":89}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":7},"end":{"line":4,"column":8}},"loc":{"start":{"line":4,"column":26},"end":{"line":4,"column":90}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":70},"end":{"line":4,"column":71}},"loc":{"start":{"line":4,"column":84},"end":{"line":4,"column":89}},"line":4}},"branchMap":{},"s":{"0":1,"1":0,"2":0},"f":{"0":0,"1":0},"b":{},"inputSourceMap":{"version":3,"sources":["pusher.channels.js"],"names":["module","exports","all","data","context","app","channel","filter","connection"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB;AACfC,OAAK,CAACC,IAAD,EAAOC,OAAP,KAAmBA,QAAQC,GAAR,CAAYC,OAAZ,CAAoB,eAApB,EAAqCC,MAArC,CAA4CC,cAAc,KAA1D;AADT,CAAjB","file":"pusher.channels.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/pusher","sourcesContent":["module.exports = {\r\n all: (data, context) => context.app.channel('authenticated').filter(connection => false)\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d57c9f19380745a8d55237e2a9a7642f55c027c7","contentHash":"b06f0f41e95fa5ba23f797b9a3631cd368f3965a8664829a9ef997a02a03c5e7"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\devices\\devices.service.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\devices\\devices.service.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":7,"column":0},"end":{"line":114,"column":2}},"2":{"start":{"line":9,"column":2},"end":{"line":9,"column":45}},"3":{"start":{"line":10,"column":2},"end":{"line":10,"column":57}},"4":{"start":{"line":11,"column":2},"end":{"line":113,"column":4}},"5":{"start":{"line":13,"column":22},"end":{"line":13,"column":40}},"6":{"start":{"line":15,"column":19},"end":{"line":15,"column":68}},"7":{"start":{"line":16,"column":6},"end":{"line":16,"column":54}},"8":{"start":{"line":19,"column":22},"end":{"line":19,"column":40}},"9":{"start":{"line":21,"column":29},"end":{"line":21,"column":88}},"10":{"start":{"line":22,"column":6},"end":{"line":22,"column":64}},"11":{"start":{"line":26,"column":29},"end":{"line":26,"column":64}},"12":{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},"13":{"start":{"line":28,"column":8},"end":{"line":28,"column":71}},"14":{"start":{"line":30,"column":8},"end":{"line":30,"column":21}},"15":{"start":{"line":34,"column":18},"end":{"line":34,"column":22}},"16":{"start":{"line":36,"column":6},"end":{"line":79,"column":11}},"17":{"start":{"line":39,"column":8},"end":{"line":39,"column":43}},"18":{"start":{"line":40,"column":29},"end":{"line":40,"column":52}},"19":{"start":{"line":41,"column":30},"end":{"line":41,"column":54}},"20":{"start":{"line":44,"column":21},"end":{"line":44,"column":32}},"21":{"start":{"line":45,"column":24},"end":{"line":45,"column":42}},"22":{"start":{"line":49,"column":21},"end":{"line":49,"column":55}},"23":{"start":{"line":50,"column":27},"end":{"line":50,"column":31}},"24":{"start":{"line":51,"column":8},"end":{"line":65,"column":9}},"25":{"start":{"line":52,"column":10},"end":{"line":52,"column":61}},"26":{"start":{"line":54,"column":10},"end":{"line":64,"column":11}},"27":{"start":{"line":55,"column":12},"end":{"line":55,"column":92}},"28":{"start":{"line":56,"column":12},"end":{"line":56,"column":33}},"29":{"start":{"line":58,"column":12},"end":{"line":58,"column":25}},"30":{"start":{"line":60,"column":12},"end":{"line":62,"column":15}},"31":{"start":{"line":61,"column":14},"end":{"line":61,"column":53}},"32":{"start":{"line":66,"column":8},"end":{"line":75,"column":9}},"33":{"start":{"line":67,"column":10},"end":{"line":67,"column":43}},"34":{"start":{"line":69,"column":10},"end":{"line":69,"column":56}},"35":{"start":{"line":71,"column":10},"end":{"line":71,"column":31}},"36":{"start":{"line":72,"column":10},"end":{"line":72,"column":54}},"37":{"start":{"line":74,"column":10},"end":{"line":74,"column":51}},"38":{"start":{"line":76,"column":8},"end":{"line":76,"column":41}},"39":{"start":{"line":77,"column":8},"end":{"line":77,"column":92}},"40":{"start":{"line":78,"column":8},"end":{"line":78,"column":22}},"41":{"start":{"line":82,"column":6},"end":{"line":90,"column":11}},"42":{"start":{"line":84,"column":21},"end":{"line":84,"column":32}},"43":{"start":{"line":85,"column":30},"end":{"line":85,"column":54}},"44":{"start":{"line":87,"column":8},"end":{"line":87,"column":42}},"45":{"start":{"line":88,"column":8},"end":{"line":88,"column":92}},"46":{"start":{"line":89,"column":8},"end":{"line":89,"column":20}},"47":{"start":{"line":93,"column":19},"end":{"line":93,"column":23}},"48":{"start":{"line":95,"column":6},"end":{"line":111,"column":11}},"49":{"start":{"line":97,"column":8},"end":{"line":97,"column":42}},"50":{"start":{"line":98,"column":29},"end":{"line":98,"column":52}},"51":{"start":{"line":99,"column":30},"end":{"line":99,"column":54}},"52":{"start":{"line":101,"column":21},"end":{"line":101,"column":32}},"53":{"start":{"line":102,"column":24},"end":{"line":102,"column":42}},"54":{"start":{"line":104,"column":8},"end":{"line":104,"column":78}},"55":{"start":{"line":105,"column":23},"end":{"line":105,"column":66}},"56":{"start":{"line":106,"column":8},"end":{"line":108,"column":11}},"57":{"start":{"line":107,"column":10},"end":{"line":107,"column":50}},"58":{"start":{"line":109,"column":8},"end":{"line":109,"column":92}},"59":{"start":{"line":110,"column":8},"end":{"line":110,"column":22}},"60":{"start":{"line":116,"column":13},"end":{"line":116,"column":29}},"61":{"start":{"line":118,"column":14},"end":{"line":118,"column":44}},"62":{"start":{"line":120,"column":14},"end":{"line":120,"column":31}},"63":{"start":{"line":122,"column":15},"end":{"line":122,"column":46}},"64":{"start":{"line":124,"column":39},"end":{"line":124,"column":93}},"65":{"start":{"line":126,"column":33},"end":{"line":126,"column":456}},"66":{"start":{"line":126,"column":64},"end":{"line":126,"column":89}},"67":{"start":{"line":126,"column":91},"end":{"line":126,"column":453}},"68":{"start":{"line":126,"column":165},"end":{"line":126,"column":263}},"69":{"start":{"line":126,"column":182},"end":{"line":126,"column":195}},"70":{"start":{"line":126,"column":209},"end":{"line":126,"column":219}},"71":{"start":{"line":126,"column":239},"end":{"line":126,"column":253}},"72":{"start":{"line":126,"column":254},"end":{"line":126,"column":261}},"73":{"start":{"line":126,"column":264},"end":{"line":126,"column":426}},"74":{"start":{"line":126,"column":281},"end":{"line":126,"column":296}},"75":{"start":{"line":126,"column":306},"end":{"line":126,"column":424}},"76":{"start":{"line":126,"column":360},"end":{"line":126,"column":380}},"77":{"start":{"line":126,"column":401},"end":{"line":126,"column":420}},"78":{"start":{"line":126,"column":429},"end":{"line":126,"column":449}},"79":{"start":{"line":128,"column":14},"end":{"line":128,"column":62}},"80":{"start":{"line":130,"column":0},"end":{"line":130,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":48},"end":{"line":114,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":35},"end":{"line":17,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":45},"end":{"line":23,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":37},"end":{"line":32,"column":5}},"line":24},"4":{"name":"(anonymous_4)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":29},"end":{"line":80,"column":5}},"line":33},"5":{"name":"(anonymous_5)","decl":{"start":{"line":36,"column":31},"end":{"line":36,"column":32}},"loc":{"start":{"line":36,"column":44},"end":{"line":79,"column":7}},"line":36},"6":{"name":"(anonymous_6)","decl":{"start":{"line":60,"column":45},"end":{"line":60,"column":46}},"loc":{"start":{"line":60,"column":67},"end":{"line":62,"column":13}},"line":60},"7":{"name":"(anonymous_7)","decl":{"start":{"line":81,"column":4},"end":{"line":81,"column":5}},"loc":{"start":{"line":81,"column":25},"end":{"line":91,"column":5}},"line":81},"8":{"name":"(anonymous_8)","decl":{"start":{"line":82,"column":31},"end":{"line":82,"column":32}},"loc":{"start":{"line":82,"column":44},"end":{"line":90,"column":7}},"line":82},"9":{"name":"(anonymous_9)","decl":{"start":{"line":92,"column":4},"end":{"line":92,"column":5}},"loc":{"start":{"line":92,"column":23},"end":{"line":112,"column":5}},"line":92},"10":{"name":"(anonymous_10)","decl":{"start":{"line":95,"column":31},"end":{"line":95,"column":32}},"loc":{"start":{"line":95,"column":44},"end":{"line":111,"column":7}},"line":95},"11":{"name":"(anonymous_11)","decl":{"start":{"line":106,"column":41},"end":{"line":106,"column":42}},"loc":{"start":{"line":106,"column":63},"end":{"line":108,"column":9}},"line":106},"12":{"name":"_interopRequireDefault","decl":{"start":{"line":124,"column":9},"end":{"line":124,"column":31}},"loc":{"start":{"line":124,"column":37},"end":{"line":124,"column":95}},"line":124},"13":{"name":"_asyncToGenerator","decl":{"start":{"line":126,"column":9},"end":{"line":126,"column":26}},"loc":{"start":{"line":126,"column":31},"end":{"line":126,"column":458}},"line":126},"14":{"name":"(anonymous_14)","decl":{"start":{"line":126,"column":40},"end":{"line":126,"column":41}},"loc":{"start":{"line":126,"column":52},"end":{"line":126,"column":455}},"line":126},"15":{"name":"(anonymous_15)","decl":{"start":{"line":126,"column":110},"end":{"line":126,"column":111}},"loc":{"start":{"line":126,"column":137},"end":{"line":126,"column":451}},"line":126},"16":{"name":"step","decl":{"start":{"line":126,"column":148},"end":{"line":126,"column":152}},"loc":{"start":{"line":126,"column":163},"end":{"line":126,"column":428}},"line":126},"17":{"name":"(anonymous_17)","decl":{"start":{"line":126,"column":341},"end":{"line":126,"column":342}},"loc":{"start":{"line":126,"column":358},"end":{"line":126,"column":382}},"line":126},"18":{"name":"(anonymous_18)","decl":{"start":{"line":126,"column":384},"end":{"line":126,"column":385}},"loc":{"start":{"line":126,"column":399},"end":{"line":126,"column":422}},"line":126}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":22},"end":{"line":13,"column":40}},"type":"binary-expr","locations":[{"start":{"line":13,"column":22},"end":{"line":13,"column":34}},{"start":{"line":13,"column":38},"end":{"line":13,"column":40}}],"line":13},"1":{"loc":{"start":{"line":15,"column":19},"end":{"line":15,"column":68}},"type":"cond-expr","locations":[{"start":{"line":15,"column":48},"end":{"line":15,"column":54}},{"start":{"line":15,"column":57},"end":{"line":15,"column":68}}],"line":15},"2":{"loc":{"start":{"line":19,"column":22},"end":{"line":19,"column":40}},"type":"binary-expr","locations":[{"start":{"line":19,"column":22},"end":{"line":19,"column":34}},{"start":{"line":19,"column":38},"end":{"line":19,"column":40}}],"line":19},"3":{"loc":{"start":{"line":21,"column":29},"end":{"line":21,"column":88}},"type":"cond-expr","locations":[{"start":{"line":21,"column":58},"end":{"line":21,"column":64}},{"start":{"line":21,"column":67},"end":{"line":21,"column":88}}],"line":21},"4":{"loc":{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},"type":"if","locations":[{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},{"start":{"line":27,"column":6},"end":{"line":31,"column":7}}],"line":27},"5":{"loc":{"start":{"line":45,"column":24},"end":{"line":45,"column":42}},"type":"binary-expr","locations":[{"start":{"line":45,"column":24},"end":{"line":45,"column":36}},{"start":{"line":45,"column":40},"end":{"line":45,"column":42}}],"line":45},"6":{"loc":{"start":{"line":51,"column":8},"end":{"line":65,"column":9}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":65,"column":9}},{"start":{"line":51,"column":8},"end":{"line":65,"column":9}}],"line":51},"7":{"loc":{"start":{"line":66,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":66,"column":8},"end":{"line":75,"column":9}},{"start":{"line":66,"column":8},"end":{"line":75,"column":9}}],"line":66},"8":{"loc":{"start":{"line":102,"column":24},"end":{"line":102,"column":42}},"type":"binary-expr","locations":[{"start":{"line":102,"column":24},"end":{"line":102,"column":36}},{"start":{"line":102,"column":40},"end":{"line":102,"column":42}}],"line":102},"9":{"loc":{"start":{"line":124,"column":46},"end":{"line":124,"column":92}},"type":"cond-expr","locations":[{"start":{"line":124,"column":70},"end":{"line":124,"column":73}},{"start":{"line":124,"column":76},"end":{"line":124,"column":92}}],"line":124},"10":{"loc":{"start":{"line":124,"column":46},"end":{"line":124,"column":67}},"type":"binary-expr","locations":[{"start":{"line":124,"column":46},"end":{"line":124,"column":49}},{"start":{"line":124,"column":53},"end":{"line":124,"column":67}}],"line":124},"11":{"loc":{"start":{"line":126,"column":264},"end":{"line":126,"column":426}},"type":"if","locations":[{"start":{"line":126,"column":264},"end":{"line":126,"column":426}},{"start":{"line":126,"column":264},"end":{"line":126,"column":426}}],"line":126}},"s":{"0":1,"1":1,"2":5,"3":5,"4":5,"5":4,"6":4,"7":4,"8":1,"9":1,"10":1,"11":0,"12":0,"13":0,"14":0,"15":4,"16":4,"17":4,"18":4,"19":4,"20":4,"21":4,"22":4,"23":4,"24":4,"25":2,"26":2,"27":2,"28":1,"29":1,"30":1,"31":2,"32":4,"33":3,"34":3,"35":3,"36":3,"37":1,"38":4,"39":4,"40":4,"41":3,"42":3,"43":3,"44":3,"45":3,"46":3,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":2,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":2,"65":8,"66":8,"67":8,"68":22,"69":22,"70":22,"71":0,"72":0,"73":22,"74":8,"75":14,"76":13,"77":1,"78":8,"79":1,"80":1},"f":{"0":5,"1":4,"2":1,"3":0,"4":4,"5":4,"6":2,"7":3,"8":3,"9":1,"10":1,"11":2,"12":2,"13":8,"14":8,"15":8,"16":22,"17":13,"18":1},"b":{"0":[4,1],"1":[0,4],"2":[1,0],"3":[1,0],"4":[0,0],"5":[4,1],"6":[2,2],"7":[3,1],"8":[1,0],"9":[0,2],"10":[2,2],"11":[8,14]},"inputSourceMap":{"version":3,"sources":["devices.service.js"],"names":["name","app","options","Object","assign","get","debug","findDeviceByUuid","device","user","devices","uuid","_","find","findDeviceByRegistrationId","registrationId","isDeviceRegistered","previousDevice","update","id","data","params","usersService","getService","pusherService","createDevice","_id","action","error","remove","userDevice","create","push","lastActivity","Date","patch","checkAuthorisation","arn","query"],"mappings":";;;;;;kBAKe,UAAUA,IAAV,EAAgBC,GAAhB,EAAqBC,OAArB,EAA8B;AAC3C;AACAC,SAAOC,MAAP,CAAcF,OAAd,EAAuBD,IAAII,GAAJ,CAAQ,SAAR,CAAvB;AACAC,QAAM,sCAAN,EAA8CJ,OAA9C;AACA,SAAO;AACLK,qBAAkBC,MAAlB,EAA0BC,IAA1B,EAAgC;AAC9B,YAAMC,UAAUD,KAAKC,OAAL,IAAgB,EAAhC;AACA;AACA,YAAMC,OAAQ,OAAOH,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCA,OAAOG,IAA3D;AACA,aAAOC,iBAAEC,IAAF,CAAOH,OAAP,EAAgB,EAAEC,IAAF,EAAhB,CAAP;AACD,KANI;AAOLG,+BAA4BN,MAA5B,EAAoCC,IAApC,EAA0C;AACxC,YAAMC,UAAUD,KAAKC,OAAL,IAAgB,EAAhC;AACA;AACA,YAAMK,iBAAkB,OAAOP,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCA,OAAOO,cAArE;AACA,aAAOH,iBAAEC,IAAF,CAAOH,OAAP,EAAgB,EAAEK,cAAF,EAAhB,CAAP;AACD,KAZI;AAaLC,uBAAoBR,MAApB,EAA4BC,IAA5B,EAAkC;AAChC;AACA,YAAMQ,iBAAiB,KAAKV,gBAAL,CAAsBC,MAAtB,EAA8BC,IAA9B,CAAvB;AACA,UAAIQ,cAAJ,EAAoB;AAClB,eAAQA,eAAeF,cAAf,KAAkCP,OAAOO,cAAjD;AACD,OAFD,MAEO;AACL,eAAO,KAAP;AACD;AACF,KArBI;AAsBCG,UAAN,CAAcC,EAAd,EAAkBC,IAAlB,EAAwBC,MAAxB,EAAgC;AAAA;;AAAA;AAC9B;AACA;AACAf,cAAM,iBAAN,EAAyBa,EAAzB,EAA6BC,IAA7B;AACA,cAAME,eAAerB,IAAIsB,UAAJ,CAAe,OAAf,CAArB;AACA,cAAMC,gBAAgBvB,IAAIsB,UAAJ,CAAe,QAAf,CAAtB;;AAEA;AACA,cAAMd,OAAOY,OAAOZ,IAApB;AACA,cAAMC,UAAUD,KAAKC,OAAL,IAAgB,EAAhC;;AAEA;AACA;AACA,YAAIF,SAAS,MAAKD,gBAAL,CAAsBa,IAAtB,EAA4BX,IAA5B,CAAb;AACA,YAAIgB,eAAe,IAAnB;AACA,YAAIjB,MAAJ,EAAY;AACVF,gBAAM,iCAAN,EAAyCG,KAAKiB,GAA9C;AACA;AACA,cAAI;AACFlB,qBAAS,MAAMgB,cAAcN,MAAd,CAAqBC,EAArB,EAAyB,EAAEQ,QAAQ,QAAV,EAAoBnB,MAApB,EAAzB,EAAuD,EAAEC,IAAF,EAAvD,CAAf;AACAgB,2BAAe,KAAf;AACD,WAHD,CAGE,OAAOG,KAAP,EAAc;AACdtB,kBAAMsB,KAAN;AACA;AACAhB,6BAAEiB,MAAF,CAASnB,OAAT,EAAkB;AAAA,qBAAcoB,WAAWnB,IAAX,KAAoBH,OAAOG,IAAzC;AAAA,aAAlB;AACA;AACD;AACF;AACD,YAAIc,YAAJ,EAAkB;AAChBjB,mBAASL,OAAOC,MAAP,CAAc,EAAd,EAAkBgB,IAAlB,CAAT;AACA;AACAZ,mBAAS,MAAM,MAAKuB,MAAL,CAAYvB,MAAZ,EAAoB,EAAEC,IAAF,EAApB,CAAf;AACA;AACAC,kBAAQsB,IAAR,CAAaxB,MAAb;AACAF,gBAAM,8BAAN,EAAsCG,IAAtC;AACD,SAPD,MAOO;AACLH,gBAAM,2BAAN,EAAmCG,IAAnC;AACD;AACDD,eAAOyB,YAAP,GAAsB,IAAIC,IAAJ,EAAtB;AACA,cAAMZ,aAAaa,KAAb,CAAmB1B,KAAKiB,GAAxB,EAA6B,EAAEhB,OAAF,EAA7B,EAA0C,EAAED,IAAF,EAAQ2B,oBAAoB,IAA5B,EAA1C,CAAN;AACA,eAAO5B,MAAP;AAxC8B;AAyC/B,KA/DI;AAgECuB,UAAN,CAAcX,IAAd,EAAoBC,MAApB,EAA4B;AAAA;AAC1B;AACA,cAAMZ,OAAOY,OAAOZ,IAApB;AACA,cAAMe,gBAAgBvB,IAAIsB,UAAJ,CAAe,QAAf,CAAtB;AACA;AACAjB,cAAM,oBAAN,EAA4Bc,IAA5B;AACAA,aAAKiB,GAAL,GAAW,MAAMb,cAAcO,MAAd,CAAqB,EAAEJ,QAAQ,QAAV,EAAoBnB,QAAQY,IAA5B,EAArB,EAAyD,EAAEX,IAAF,EAAzD,CAAjB;AACA,eAAOW,IAAP;AAP0B;AAQ3B,KAxEI;AAyECS,UAAN,CAAcV,EAAd,EAAkBE,MAAlB,EAA0B;AAAA;;AAAA;AACxB;AACAf,cAAM,sBAAN,EAA8Ba,EAA9B;AACA,cAAMG,eAAerB,IAAIsB,UAAJ,CAAe,OAAf,CAArB;AACA,cAAMC,gBAAgBvB,IAAIsB,UAAJ,CAAe,QAAf,CAAtB;AACA;AACA,cAAMd,OAAOY,OAAOZ,IAApB;AACA,cAAMC,UAAUD,KAAKC,OAAL,IAAgB,EAAhC;;AAEA,cAAMc,cAAcK,MAAd,CAAqBV,EAArB,EAAyB,EAAEmB,OAAO,EAAEX,QAAQ,QAAV,EAAT,EAA+BlB,IAA/B,EAAzB,CAAN;AACA,cAAMD,SAAS,OAAKM,0BAAL,CAAgCK,EAAhC,EAAoCV,IAApC,CAAf;AACAG,yBAAEiB,MAAF,CAASnB,OAAT,EAAkB;AAAA,iBAAcoB,WAAWf,cAAX,KAA8BI,EAA5C;AAAA,SAAlB;AACA,cAAMG,aAAaa,KAAb,CAAmB1B,KAAKiB,GAAxB,EAA6B,EAAEhB,OAAF,EAA7B,EAA0C,EAAED,IAAF,EAAQ2B,oBAAoB,IAA5B,EAA1C,CAAN;AACA,eAAO5B,MAAP;AAbwB;AAczB;AAvFI,GAAP;AAyFD,C;;AAlGD;;;;AACA;;;;;;;;AAEA,MAAMF,QAAQ,qBAAU,0BAAV,CAAd","file":"devices.service.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/devices","sourcesContent":["import makeDebug from 'debug'\r\nimport _ from 'lodash'\r\n\r\nconst debug = makeDebug('kdk:core:devices:service')\r\n\r\nexport default function (name, app, options) {\r\n // Keep track of config\r\n Object.assign(options, app.get('devices'))\r\n debug('devices service created with config ', options)\r\n return {\r\n findDeviceByUuid (device, user) {\r\n const devices = user.devices || []\r\n // Input could be a device object or an ID\r\n const uuid = (typeof device === 'string' ? device : device.uuid)\r\n return _.find(devices, { uuid })\r\n },\r\n findDeviceByRegistrationId (device, user) {\r\n const devices = user.devices || []\r\n // Input could be a device object or an ID\r\n const registrationId = (typeof device === 'string' ? device : device.registrationId)\r\n return _.find(devices, { registrationId })\r\n },\r\n isDeviceRegistered (device, user) {\r\n // Find existing device if any\r\n const previousDevice = this.findDeviceByUuid(device, user)\r\n if (previousDevice) {\r\n return (previousDevice.registrationId === device.registrationId)\r\n } else {\r\n return false\r\n }\r\n },\r\n async update (id, data, params) {\r\n // id: registrationId\r\n // data: device\r\n debug('Updating device', id, data)\r\n const usersService = app.getService('users')\r\n const pusherService = app.getService('pusher')\r\n\r\n // Retrieve the user's devices\r\n const user = params.user\r\n const devices = user.devices || []\r\n\r\n // Check whether we need to update or to register the device\r\n // according to https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html\r\n let device = this.findDeviceByUuid(data, user)\r\n let createDevice = true\r\n if (device) {\r\n debug('Device already stored for user ', user._id)\r\n // Check if registration is ok\r\n try {\r\n device = await pusherService.update(id, { action: 'device', device }, { user })\r\n createDevice = false\r\n } catch (error) {\r\n debug(error)\r\n // Device is not registered anymore, remove it from user list\r\n _.remove(devices, userDevice => userDevice.uuid === device.uuid)\r\n // Then we will try to register it again\r\n }\r\n }\r\n if (createDevice) {\r\n device = Object.assign({}, data)\r\n // Bind the device\r\n device = await this.create(device, { user })\r\n // Store new device\r\n devices.push(device)\r\n debug('Storing new device for user ', user)\r\n } else {\r\n debug('Updating device for user ', user)\r\n }\r\n device.lastActivity = new Date()\r\n await usersService.patch(user._id, { devices }, { user, checkAuthorisation: true })\r\n return device\r\n },\r\n async create (data, params) {\r\n // data: device\r\n const user = params.user\r\n const pusherService = app.getService('pusher')\r\n // Bind the device\r\n debug('Binding new device', data)\r\n data.arn = await pusherService.create({ action: 'device', device: data }, { user })\r\n return data\r\n },\r\n async remove (id, params) {\r\n // id: registrationId\r\n debug('Unbinding old device', id)\r\n const usersService = app.getService('users')\r\n const pusherService = app.getService('pusher')\r\n // Retrieve the user's devices\r\n const user = params.user\r\n const devices = user.devices || []\r\n\r\n await pusherService.remove(id, { query: { action: 'device' }, user })\r\n const device = this.findDeviceByRegistrationId(id, user)\r\n _.remove(devices, userDevice => userDevice.registrationId === id)\r\n await usersService.patch(user._id, { devices }, { user, checkAuthorisation: true })\r\n return device\r\n }\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a248358585f1a30a5a509b74f881c401eb8e39b3","contentHash":"02d19e012a28a53ebbd04ac48e3ce55d931c6358d84582909fff8ab34238d519"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\devices\\devices.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\devices\\devices.hooks.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":3,"column":59}},"1":{"start":{"line":5,"column":0},"end":{"line":35,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["devices.hooks.js"],"names":["module","exports","before","all","find","get","create","update","patch","remove","after","error"],"mappings":";;AAAA;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,EADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,CAAC,mCAAS,UAAT,CAAD,CAJF;AAKNC,YAAQ,EALF;AAMNC,WAAO,EAND;AAONC,YAAQ;AAPF,GADO;;AAWfC,SAAO;AACLP,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH,GAXQ;;AAqBfE,SAAO;AACLR,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AArBQ,CAAjB","file":"devices.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/devices","sourcesContent":["import { disallow } from 'feathers-hooks-common'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [disallow('external')],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"93a9f87fb2f1a7129f385ec2dfdcc25b53b93563","contentHash":"c87dd9b4cbd6d895d29ee09b0f3762f4951fa5cd39087b9767fc0d596d0a644d"},"D:\\Development\\kalisio\\kdk\\core\\api\\models\\tags.model.mongodb.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\models\\tags.model.mongodb.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":12,"column":2}},"1":{"start":{"line":4,"column":13},"end":{"line":4,"column":33}},"2":{"start":{"line":5,"column":2},"end":{"line":5,"column":40}},"3":{"start":{"line":7,"column":2},"end":{"line":7,"column":70}},"4":{"start":{"line":10,"column":2},"end":{"line":10,"column":106}},"5":{"start":{"line":11,"column":2},"end":{"line":11,"column":106}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":41},"end":{"line":12,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":13},"end":{"line":4,"column":33}},"type":"binary-expr","locations":[{"start":{"line":4,"column":13},"end":{"line":4,"column":23}},{"start":{"line":4,"column":27},"end":{"line":4,"column":33}}],"line":4}},"s":{"0":1,"1":4,"2":4,"3":4,"4":4,"5":4},"f":{"0":4},"b":{"0":[4,1]},"inputSourceMap":{"version":3,"sources":["tags.model.mongodb.js"],"names":["module","exports","app","options","db","Model","collection","createIndex","scope","value","unique","name","collation","locale","strength"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,UAAUC,GAAV,EAAeC,OAAf,EAAwB;AACvC,QAAMC,KAAKD,QAAQC,EAAR,IAAcF,IAAIE,EAA7B;AACAD,UAAQE,KAAR,GAAgBD,GAAGE,UAAH,CAAc,MAAd,CAAhB;AACA;AACAH,UAAQE,KAAR,CAAcE,WAAd,CAA0B,EAAEC,OAAO,CAAT,EAAYC,OAAO,CAAnB,EAA1B,EAAkD,EAAEC,QAAQ,IAAV,EAAlD;AACA;AACA;AACAP,UAAQE,KAAR,CAAcE,WAAd,CAA0B,EAAEE,OAAO,CAAT,EAA1B,EAAwC,EAAEE,MAAM,UAAR,EAAoBC,WAAW,EAAEC,QAAQ,IAAV,EAAgBC,UAAU,CAA1B,EAA/B,EAAxC;AACAX,UAAQE,KAAR,CAAcE,WAAd,CAA0B,EAAEE,OAAO,CAAT,EAA1B,EAAwC,EAAEE,MAAM,UAAR,EAAoBC,WAAW,EAAEC,QAAQ,IAAV,EAAgBC,UAAU,CAA1B,EAA/B,EAAxC;AACD,CATD","file":"tags.model.mongodb.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/models","sourcesContent":["module.exports = function (app, options) {\r\n const db = options.db || app.db\r\n options.Model = db.collection('tags')\r\n // Use compound index to have unique pairs scope/value\r\n options.Model.createIndex({ scope: 1, value: 1 }, { unique: true })\r\n // Collation provided in query ensure sorting to be case insensitive w.r.t. user's language\r\n // We built indices with collation to cover the most used languages, it requires different naming...\r\n options.Model.createIndex({ value: 1 }, { name: 'value-en', collation: { locale: 'en', strength: 1 } })\r\n options.Model.createIndex({ value: 1 }, { name: 'value-fr', collation: { locale: 'fr', strength: 1 } })\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"75078014821dfe97ff6051dc6bf7e481f96c9b03","contentHash":"718ceadee10245b77b4398ec4b1f09a131559cd68f164ec02e88c0e363cd0f74"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\tags\\tags.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\tags\\tags.hooks.js","statementMap":{"0":{"start":{"line":3,"column":14},"end":{"line":3,"column":31}},"1":{"start":{"line":5,"column":15},"end":{"line":5,"column":46}},"2":{"start":{"line":7,"column":13},"end":{"line":7,"column":35}},"3":{"start":{"line":9,"column":27},"end":{"line":9,"column":59}},"4":{"start":{"line":11,"column":39},"end":{"line":11,"column":93}},"5":{"start":{"line":13,"column":0},"end":{"line":48,"column":2}},"6":{"start":{"line":18,"column":79},"end":{"line":18,"column":163}},"7":{"start":{"line":23,"column":79},"end":{"line":23,"column":179}},"8":{"start":{"line":31,"column":51},"end":{"line":31,"column":71}},"9":{"start":{"line":33,"column":51},"end":{"line":33,"column":91}},"10":{"start":{"line":34,"column":50},"end":{"line":34,"column":90}},"11":{"start":{"line":36,"column":51},"end":{"line":36,"column":71}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":11,"column":9},"end":{"line":11,"column":31}},"loc":{"start":{"line":11,"column":37},"end":{"line":11,"column":95}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":71},"end":{"line":18,"column":72}},"loc":{"start":{"line":18,"column":79},"end":{"line":18,"column":163}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":71},"end":{"line":23,"column":72}},"loc":{"start":{"line":23,"column":79},"end":{"line":23,"column":179}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":43},"end":{"line":31,"column":44}},"loc":{"start":{"line":31,"column":51},"end":{"line":31,"column":71}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":33,"column":43},"end":{"line":33,"column":44}},"loc":{"start":{"line":33,"column":51},"end":{"line":33,"column":91}},"line":33},"5":{"name":"(anonymous_5)","decl":{"start":{"line":34,"column":42},"end":{"line":34,"column":43}},"loc":{"start":{"line":34,"column":50},"end":{"line":34,"column":90}},"line":34},"6":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":43},"end":{"line":36,"column":44}},"loc":{"start":{"line":36,"column":51},"end":{"line":36,"column":71}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":46},"end":{"line":11,"column":92}},"type":"cond-expr","locations":[{"start":{"line":11,"column":70},"end":{"line":11,"column":73}},{"start":{"line":11,"column":76},"end":{"line":11,"column":92}}],"line":11},"1":{"loc":{"start":{"line":11,"column":46},"end":{"line":11,"column":67}},"type":"binary-expr","locations":[{"start":{"line":11,"column":46},"end":{"line":11,"column":49}},{"start":{"line":11,"column":53},"end":{"line":11,"column":67}}],"line":11},"2":{"loc":{"start":{"line":18,"column":79},"end":{"line":18,"column":163}},"type":"binary-expr","locations":[{"start":{"line":18,"column":79},"end":{"line":18,"column":119}},{"start":{"line":18,"column":123},"end":{"line":18,"column":163}}],"line":18},"3":{"loc":{"start":{"line":23,"column":79},"end":{"line":23,"column":179}},"type":"binary-expr","locations":[{"start":{"line":23,"column":79},"end":{"line":23,"column":127}},{"start":{"line":23,"column":131},"end":{"line":23,"column":179}}],"line":23}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":2,"7":4,"8":2,"9":0,"10":0,"11":4},"f":{"0":1,"1":2,"2":4,"3":2,"4":0,"5":0,"6":4},"b":{"0":[0,1],"1":[1,1],"2":[2,2],"3":[4,2]},"inputSourceMap":{"version":3,"sources":["tags.hooks.js"],"names":["module","exports","before","all","find","get","create","populateTagResource","hook","_","has","addTagIfNew","update","patch","remove","params","removeTagIfUnused","after","resource","tagResource","untagResource","error"],"mappings":";;AAAA;;;;AACA;;AACA;;;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,EADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,CAACC,0BAAD,EAAsB,8BAAIC,QAAQC,iBAAEC,GAAF,CAAMF,IAAN,EAAY,YAAZ,KAA6BC,iBAAEC,GAAF,CAAMF,IAAN,EAAY,YAAZ,CAAzC,EAAoEG,kBAApE,CAAtB,CAJF;AAKNC,YAAQ,EALF;AAMNC,WAAO,EAND;AAON;AACA;AACAC,YAAQ,CAACP,0BAAD,EAAsB,8BAAIC,QAAQC,iBAAEC,GAAF,CAAMF,KAAKO,MAAX,EAAmB,aAAnB,KAAqCN,iBAAEC,GAAF,CAAMF,KAAKO,MAAX,EAAmB,aAAnB,CAAjD,EAAoFC,wBAApF,CAAtB;AATF,GADO;;AAafC,SAAO;AACLd,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAIL;AACAC,YAAQ,CAAC,8BAAIE,QAAQA,KAAKO,MAAL,CAAYG,QAAxB,EAAkCC,kBAAlC,CAAD,CALH;AAML;AACAP,YAAQ,CAAC,8BAAIJ,QAAQC,iBAAEC,GAAF,CAAMF,IAAN,EAAY,YAAZ,CAAZ,EAAuC,uCAA2B,MAA3B,CAAvC,CAAD,CAPH;AAQLK,WAAO,CAAC,8BAAIL,QAAQC,iBAAEC,GAAF,CAAMF,IAAN,EAAY,YAAZ,CAAZ,EAAuC,uCAA2B,MAA3B,CAAvC,CAAD,CARF;AASL;AACAM,YAAQ,CAAC,8BAAIN,QAAQA,KAAKO,MAAL,CAAYG,QAAxB,EAAkCE,oBAAlC,CAAD;AAVH,GAbQ;;AA0BfC,SAAO;AACLlB,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLM,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AA1BQ,CAAjB","file":"tags.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/tags","sourcesContent":["import _ from 'lodash'\r\nimport { populateTagResource, addTagIfNew, removeTagIfUnused, tagResource, untagResource, updateOrganisationResource } from '../../hooks'\r\nimport { iff } from 'feathers-hooks-common'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [populateTagResource, iff(hook => _.has(hook, 'data.value') && _.has(hook, 'data.scope'), addTagIfNew)],\r\n update: [],\r\n patch: [],\r\n // Let the removal of the actual tag object by ID pass without running these hooks\r\n // Indeed the initial call is used to remove the tag from the resource with the ID of the resource given, not the tag one\r\n remove: [populateTagResource, iff(hook => _.has(hook.params, 'query.value') && _.has(hook.params, 'query.scope'), removeTagIfUnused)]\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n // Let the tagging of the resource object occur only when resource has been found\r\n create: [iff(hook => hook.params.resource, tagResource)],\r\n // Tags are patched internally for reference counting, update only if value is changed\r\n update: [iff(hook => _.has(hook, 'data.value'), updateOrganisationResource('tags'))],\r\n patch: [iff(hook => _.has(hook, 'data.value'), updateOrganisationResource('tags'))],\r\n // Let the untagging of the resource object occur only when resource has been found\r\n remove: [iff(hook => hook.params.resource, untagResource)]\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e9f5d66d86034c6f349170860c09678e6c2224f0","contentHash":"17634d781123e97765019a4c0b9a7dbd66215dda479ab663abad93df7253c177"},"D:\\Development\\kalisio\\kdk\\core\\api\\models\\groups.model.mongodb.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\models\\groups.model.mongodb.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":10,"column":2}},"1":{"start":{"line":4,"column":13},"end":{"line":4,"column":33}},"2":{"start":{"line":5,"column":2},"end":{"line":5,"column":42}},"3":{"start":{"line":8,"column":2},"end":{"line":8,"column":104}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":104}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":41},"end":{"line":10,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":13},"end":{"line":4,"column":33}},"type":"binary-expr","locations":[{"start":{"line":4,"column":13},"end":{"line":4,"column":23}},{"start":{"line":4,"column":27},"end":{"line":4,"column":33}}],"line":4}},"s":{"0":1,"1":3,"2":3,"3":3,"4":3},"f":{"0":3},"b":{"0":[3,0]},"inputSourceMap":{"version":3,"sources":["groups.model.mongodb.js"],"names":["module","exports","app","options","db","Model","collection","createIndex","name","collation","locale","strength"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,UAAUC,GAAV,EAAeC,OAAf,EAAwB;AACvC,QAAMC,KAAKD,QAAQC,EAAR,IAAcF,IAAIE,EAA7B;AACAD,UAAQE,KAAR,GAAgBD,GAAGE,UAAH,CAAc,QAAd,CAAhB;AACA;AACA;AACAH,UAAQE,KAAR,CAAcE,WAAd,CAA0B,EAAEC,MAAM,CAAR,EAA1B,EAAuC,EAAEA,MAAM,SAAR,EAAmBC,WAAW,EAAEC,QAAQ,IAAV,EAAgBC,UAAU,CAA1B,EAA9B,EAAvC;AACAR,UAAQE,KAAR,CAAcE,WAAd,CAA0B,EAAEC,MAAM,CAAR,EAA1B,EAAuC,EAAEA,MAAM,SAAR,EAAmBC,WAAW,EAAEC,QAAQ,IAAV,EAAgBC,UAAU,CAA1B,EAA9B,EAAvC;AACD,CAPD","file":"groups.model.mongodb.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/models","sourcesContent":["module.exports = function (app, options) {\r\n const db = options.db || app.db\r\n options.Model = db.collection('groups')\r\n // Collation provided in query ensure sorting to be case insensitive w.r.t. user's language\r\n // We built indices with collation to cover the most used languages, it requires different naming...\r\n options.Model.createIndex({ name: 1 }, { name: 'name-en', collation: { locale: 'en', strength: 1 } })\r\n options.Model.createIndex({ name: 1 }, { name: 'name-fr', collation: { locale: 'fr', strength: 1 } })\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f58b3616db94333b56cf9b7b040b14691904fb18","contentHash":"2b7f3041f526798d346f119af94be256f5279fadd205d2313588577203c5172b"},"D:\\Development\\kalisio\\kdk\\core\\api\\services\\groups\\groups.hooks.js":{"path":"D:\\Development\\kalisio\\kdk\\core\\api\\services\\groups\\groups.hooks.js","statementMap":{"0":{"start":{"line":3,"column":13},"end":{"line":3,"column":35}},"1":{"start":{"line":5,"column":0},"end":{"line":35,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["groups.hooks.js"],"names":["module","exports","before","all","find","get","create","update","patch","remove","after","error"],"mappings":";;AAAA;;AAEAA,OAAOC,OAAP,GAAiB;AACfC,UAAQ;AACNC,SAAK,EADC;AAENC,UAAM,EAFA;AAGNC,SAAK,EAHC;AAINC,YAAQ,EAJF;AAKNC,YAAQ,EALF;AAMNC,WAAO,EAND;AAONC,YAAQ;AAPF,GADO;;AAWfC,SAAO;AACLP,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,CAAC,uCAA2B,QAA3B,CAAD,CALH;AAMLC,WAAO,CAAC,uCAA2B,QAA3B,CAAD,CANF;AAOLC,YAAQ;AAPH,GAXQ;;AAqBfE,SAAO;AACLR,SAAK,EADA;AAELC,UAAM,EAFD;AAGLC,SAAK,EAHA;AAILC,YAAQ,EAJH;AAKLC,YAAQ,EALH;AAMLC,WAAO,EANF;AAOLC,YAAQ;AAPH;AArBQ,CAAjB","file":"groups.hooks.js","sourceRoot":"D:/Development/kalisio/kdk/core/api/services/groups","sourcesContent":["import { updateOrganisationResource } from '../../hooks'\r\n\r\nmodule.exports = {\r\n before: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n },\r\n\r\n after: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [updateOrganisationResource('groups')],\r\n patch: [updateOrganisationResource('groups')],\r\n remove: []\r\n },\r\n\r\n error: {\r\n all: [],\r\n find: [],\r\n get: [],\r\n create: [],\r\n update: [],\r\n patch: [],\r\n remove: []\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d678a885558911bc7f9070adede044fcb223dafa","contentHash":"5678f6d0c9b930cb8c49b64b895847e735c98ea8f52056d384f8bf6b21480801"}}
|