@mapcreator/api 3.3.1 → 5.0.0-alpha.13
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/LICENSE +1 -1
- package/README.md +82 -59
- package/cjs/api/apiCommon.d.ts +7 -0
- package/cjs/api/apiCommon.d.ts.map +1 -0
- package/cjs/api/apiCommon.js +32 -0
- package/cjs/api/apiCommon.js.map +1 -0
- package/cjs/api/choropleth.d.ts +206 -0
- package/cjs/api/choropleth.d.ts.map +1 -0
- package/cjs/api/choropleth.js +40 -0
- package/cjs/api/choropleth.js.map +1 -0
- package/cjs/api/color.d.ts +16 -0
- package/cjs/api/color.d.ts.map +1 -0
- package/cjs/api/color.js +8 -0
- package/cjs/api/color.js.map +1 -0
- package/cjs/api/dimension.d.ts +25 -0
- package/cjs/api/dimension.d.ts.map +1 -0
- package/cjs/api/dimension.js +19 -0
- package/cjs/api/dimension.js.map +1 -0
- package/cjs/api/dimensionSet.d.ts +15 -0
- package/cjs/api/dimensionSet.d.ts.map +1 -0
- package/cjs/api/dimensionSet.js +7 -0
- package/cjs/api/dimensionSet.js.map +1 -0
- package/cjs/api/feature.d.ts +16 -0
- package/cjs/api/feature.d.ts.map +1 -0
- package/cjs/api/feature.js +8 -0
- package/cjs/api/feature.js.map +1 -0
- package/cjs/api/font.d.ts +22 -0
- package/cjs/api/font.d.ts.map +1 -0
- package/cjs/api/font.js +10 -0
- package/cjs/api/font.js.map +1 -0
- package/cjs/api/fontFamily.d.ts +17 -0
- package/cjs/api/fontFamily.d.ts.map +1 -0
- package/cjs/api/fontFamily.js +17 -0
- package/cjs/api/fontFamily.js.map +1 -0
- package/cjs/api/highlight.d.ts +41 -0
- package/cjs/api/highlight.d.ts.map +1 -0
- package/cjs/api/highlight.js +17 -0
- package/cjs/api/highlight.js.map +1 -0
- package/cjs/api/job.d.ts +40 -0
- package/cjs/api/job.d.ts.map +1 -0
- package/cjs/api/job.js +70 -0
- package/cjs/api/job.js.map +1 -0
- package/cjs/api/jobResult.d.ts +29 -0
- package/cjs/api/jobResult.d.ts.map +1 -0
- package/cjs/api/jobResult.js +35 -0
- package/cjs/api/jobResult.js.map +1 -0
- package/cjs/api/jobRevision.d.ts +64 -0
- package/cjs/api/jobRevision.d.ts.map +1 -0
- package/cjs/api/jobRevision.js +74 -0
- package/cjs/api/jobRevision.js.map +1 -0
- package/cjs/api/jobShare.d.ts +26 -0
- package/cjs/api/jobShare.d.ts.map +1 -0
- package/cjs/api/jobShare.js +10 -0
- package/cjs/api/jobShare.js.map +1 -0
- package/cjs/api/jobType.d.ts +17 -0
- package/cjs/api/jobType.d.ts.map +1 -0
- package/cjs/api/jobType.js +11 -0
- package/cjs/api/jobType.js.map +1 -0
- package/cjs/api/language.d.ts +17 -0
- package/cjs/api/language.d.ts.map +1 -0
- package/cjs/api/language.js +3 -0
- package/cjs/api/language.js.map +1 -0
- package/cjs/api/layer.d.ts +24 -0
- package/cjs/api/layer.d.ts.map +1 -0
- package/cjs/api/layer.js +14 -0
- package/cjs/api/layer.js.map +1 -0
- package/cjs/api/layerFaq.d.ts +27 -0
- package/cjs/api/layerFaq.d.ts.map +1 -0
- package/cjs/api/layerFaq.js +16 -0
- package/cjs/api/layerFaq.js.map +1 -0
- package/cjs/api/layerGroup.d.ts +16 -0
- package/cjs/api/layerGroup.d.ts.map +1 -0
- package/cjs/api/layerGroup.js +37 -0
- package/cjs/api/layerGroup.js.map +1 -0
- package/cjs/api/mapstyleSet.d.ts +29 -0
- package/cjs/api/mapstyleSet.d.ts.map +1 -0
- package/cjs/api/mapstyleSet.js +19 -0
- package/cjs/api/mapstyleSet.js.map +1 -0
- package/cjs/api/message.d.ts +32 -0
- package/cjs/api/message.d.ts.map +1 -0
- package/cjs/api/message.js +37 -0
- package/cjs/api/message.js.map +1 -0
- package/cjs/api/organisation.d.ts +38 -0
- package/cjs/api/organisation.d.ts.map +1 -0
- package/cjs/api/organisation.js +43 -0
- package/cjs/api/organisation.js.map +1 -0
- package/cjs/api/resources.d.ts +54 -0
- package/cjs/api/resources.d.ts.map +1 -0
- package/cjs/api/resources.js +55 -0
- package/cjs/api/resources.js.map +1 -0
- package/cjs/api/svg.d.ts +21 -0
- package/cjs/api/svg.d.ts.map +1 -0
- package/cjs/api/svg.js +15 -0
- package/cjs/api/svg.js.map +1 -0
- package/cjs/api/svgSet.d.ts +22 -0
- package/cjs/api/svgSet.d.ts.map +1 -0
- package/cjs/api/svgSet.js +25 -0
- package/cjs/api/svgSet.js.map +1 -0
- package/cjs/api/user.d.ts +100 -0
- package/cjs/api/user.d.ts.map +1 -0
- package/cjs/api/user.js +126 -0
- package/cjs/api/user.js.map +1 -0
- package/cjs/index.d.ts +26 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +51 -0
- package/cjs/index.js.map +1 -0
- package/cjs/oauth.d.ts +20 -0
- package/cjs/oauth.d.ts.map +1 -0
- package/cjs/oauth.js +229 -0
- package/cjs/oauth.js.map +1 -0
- package/cjs/utils.d.ts +72 -0
- package/cjs/utils.d.ts.map +1 -0
- package/cjs/utils.js +220 -0
- package/cjs/utils.js.map +1 -0
- package/esm/api/apiCommon.d.ts +7 -0
- package/esm/api/apiCommon.d.ts.map +1 -0
- package/esm/api/apiCommon.js +28 -0
- package/esm/api/apiCommon.js.map +1 -0
- package/esm/api/choropleth.d.ts +206 -0
- package/esm/api/choropleth.d.ts.map +1 -0
- package/esm/api/choropleth.js +32 -0
- package/esm/api/choropleth.js.map +1 -0
- package/esm/api/color.d.ts +16 -0
- package/esm/api/color.d.ts.map +1 -0
- package/esm/api/color.js +5 -0
- package/esm/api/color.js.map +1 -0
- package/esm/api/dimension.d.ts +25 -0
- package/esm/api/dimension.d.ts.map +1 -0
- package/esm/api/dimension.js +16 -0
- package/esm/api/dimension.js.map +1 -0
- package/esm/api/dimensionSet.d.ts +15 -0
- package/esm/api/dimensionSet.d.ts.map +1 -0
- package/esm/api/dimensionSet.js +4 -0
- package/esm/api/dimensionSet.js.map +1 -0
- package/esm/api/feature.d.ts +16 -0
- package/esm/api/feature.d.ts.map +1 -0
- package/esm/api/feature.js +5 -0
- package/esm/api/feature.js.map +1 -0
- package/esm/api/font.d.ts +22 -0
- package/esm/api/font.d.ts.map +1 -0
- package/esm/api/font.js +7 -0
- package/esm/api/font.js.map +1 -0
- package/esm/api/fontFamily.d.ts +17 -0
- package/esm/api/fontFamily.d.ts.map +1 -0
- package/esm/api/fontFamily.js +13 -0
- package/esm/api/fontFamily.js.map +1 -0
- package/esm/api/highlight.d.ts +41 -0
- package/esm/api/highlight.d.ts.map +1 -0
- package/esm/api/highlight.js +12 -0
- package/esm/api/highlight.js.map +1 -0
- package/esm/api/job.d.ts +40 -0
- package/esm/api/job.d.ts.map +1 -0
- package/esm/api/job.js +58 -0
- package/esm/api/job.js.map +1 -0
- package/esm/api/jobResult.d.ts +29 -0
- package/esm/api/jobResult.d.ts.map +1 -0
- package/esm/api/jobResult.js +30 -0
- package/esm/api/jobResult.js.map +1 -0
- package/esm/api/jobRevision.d.ts +64 -0
- package/esm/api/jobRevision.d.ts.map +1 -0
- package/esm/api/jobRevision.js +64 -0
- package/esm/api/jobRevision.js.map +1 -0
- package/esm/api/jobShare.d.ts +26 -0
- package/esm/api/jobShare.d.ts.map +1 -0
- package/esm/api/jobShare.js +6 -0
- package/esm/api/jobShare.js.map +1 -0
- package/esm/api/jobType.d.ts +17 -0
- package/esm/api/jobType.d.ts.map +1 -0
- package/esm/api/jobType.js +8 -0
- package/esm/api/jobType.js.map +1 -0
- package/esm/api/language.d.ts +17 -0
- package/esm/api/language.d.ts.map +1 -0
- package/esm/api/language.js +2 -0
- package/esm/api/language.js.map +1 -0
- package/esm/api/layer.d.ts +24 -0
- package/esm/api/layer.d.ts.map +1 -0
- package/esm/api/layer.js +11 -0
- package/esm/api/layer.js.map +1 -0
- package/esm/api/layerFaq.d.ts +27 -0
- package/esm/api/layerFaq.d.ts.map +1 -0
- package/esm/api/layerFaq.js +12 -0
- package/esm/api/layerFaq.js.map +1 -0
- package/esm/api/layerGroup.d.ts +16 -0
- package/esm/api/layerGroup.d.ts.map +1 -0
- package/esm/api/layerGroup.js +33 -0
- package/esm/api/layerGroup.js.map +1 -0
- package/esm/api/mapstyleSet.d.ts +29 -0
- package/esm/api/mapstyleSet.d.ts.map +1 -0
- package/esm/api/mapstyleSet.js +16 -0
- package/esm/api/mapstyleSet.js.map +1 -0
- package/esm/api/message.d.ts +32 -0
- package/esm/api/message.d.ts.map +1 -0
- package/esm/api/message.js +32 -0
- package/esm/api/message.js.map +1 -0
- package/esm/api/organisation.d.ts +38 -0
- package/esm/api/organisation.d.ts.map +1 -0
- package/esm/api/organisation.js +37 -0
- package/esm/api/organisation.js.map +1 -0
- package/esm/api/resources.d.ts +54 -0
- package/esm/api/resources.d.ts.map +1 -0
- package/esm/api/resources.js +48 -0
- package/esm/api/resources.js.map +1 -0
- package/esm/api/svg.d.ts +21 -0
- package/esm/api/svg.d.ts.map +1 -0
- package/esm/api/svg.js +11 -0
- package/esm/api/svg.js.map +1 -0
- package/esm/api/svgSet.d.ts +22 -0
- package/esm/api/svgSet.d.ts.map +1 -0
- package/esm/api/svgSet.js +21 -0
- package/esm/api/svgSet.js.map +1 -0
- package/esm/api/user.d.ts +100 -0
- package/esm/api/user.d.ts.map +1 -0
- package/esm/api/user.js +110 -0
- package/esm/api/user.js.map +1 -0
- package/esm/index.d.ts +26 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +26 -0
- package/esm/index.js.map +1 -0
- package/esm/oauth.d.ts +20 -0
- package/esm/oauth.d.ts.map +1 -0
- package/esm/oauth.js +222 -0
- package/esm/oauth.js.map +1 -0
- package/esm/utils.d.ts +72 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/utils.js +206 -0
- package/esm/utils.js.map +1 -0
- package/package.json +69 -137
- package/src/README.md +126 -0
- package/src/api/apiCommon.ts +70 -0
- package/src/api/choropleth.ts +318 -0
- package/src/api/color.ts +22 -0
- package/src/api/dimension.ts +54 -0
- package/src/api/dimensionSet.ts +20 -0
- package/src/api/feature.ts +22 -0
- package/src/api/font.ts +30 -0
- package/src/api/fontFamily.ts +43 -0
- package/src/api/highlight.ts +74 -0
- package/src/api/job.ts +127 -0
- package/src/api/jobResult.ts +81 -0
- package/src/api/jobRevision.ts +200 -0
- package/src/api/jobShare.ts +35 -0
- package/src/api/jobType.ts +26 -0
- package/src/api/language.ts +19 -0
- package/src/api/layer.ts +36 -0
- package/src/api/layerFaq.ts +53 -0
- package/src/api/layerGroup.ts +69 -0
- package/src/api/mapstyleSet.ts +46 -0
- package/src/api/message.ts +80 -0
- package/src/api/organisation.ts +94 -0
- package/src/api/resources.ts +134 -0
- package/src/api/svg.ts +33 -0
- package/src/api/svgSet.ts +56 -0
- package/src/api/user.ts +280 -0
- package/src/index.ts +42 -0
- package/src/oauth.ts +292 -0
- package/src/utils.ts +342 -0
- package/dist/ImageHandler.d.ts +0 -56
- package/dist/Mapcreator.d.ts +0 -338
- package/dist/PaginatedResourceListing.d.ts +0 -156
- package/dist/RequestParameters.d.ts +0 -241
- package/dist/ResourceLister.d.ts +0 -155
- package/dist/bundle.browser.js +0 -14590
- package/dist/bundle.browser.min.js +0 -3
- package/dist/bundle.browser.min.js.LICENSE.txt +0 -74
- package/dist/bundle.js +0 -12755
- package/dist/bundle.min.js +0 -3
- package/dist/bundle.min.js.LICENSE.txt +0 -44
- package/dist/enums/DeletedState.d.ts +0 -16
- package/dist/enums/Enum.d.ts +0 -40
- package/dist/enums/JobShareVisibility.d.ts +0 -15
- package/dist/enums/ResultStatus.d.ts +0 -17
- package/dist/enums/index.d.ts +0 -5
- package/dist/errors/AbstractError.d.ts +0 -26
- package/dist/errors/ApiError.d.ts +0 -65
- package/dist/errors/GeoError.d.ts +0 -6
- package/dist/errors/NodeError.d.ts +0 -6
- package/dist/errors/OAuthError.d.ts +0 -17
- package/dist/errors/StaticClassError.d.ts +0 -7
- package/dist/errors/ValidationError.d.ts +0 -125
- package/dist/errors/index.d.ts +0 -8
- package/dist/index.d.ts +0 -27
- package/dist/oauth/DummyFlow.d.ts +0 -19
- package/dist/oauth/ImplicitFlow.d.ts +0 -68
- package/dist/oauth/ImplicitFlowPopup.d.ts +0 -25
- package/dist/oauth/OAuth.d.ts +0 -50
- package/dist/oauth/OAuthToken.d.ts +0 -67
- package/dist/oauth/PasswordFlow.d.ts +0 -56
- package/dist/oauth/StateContainer.d.ts +0 -36
- package/dist/proxy/GeoResourceProxy.d.ts +0 -69
- package/dist/proxy/OrganisationProxy.d.ts +0 -62
- package/dist/proxy/OwnedResourceProxy.d.ts +0 -60
- package/dist/proxy/ResourceProxy.d.ts +0 -32
- package/dist/proxy/SimpleResourceProxy.d.ts +0 -76
- package/dist/proxy/index.d.ts +0 -6
- package/dist/resources/Choropleth.d.ts +0 -20
- package/dist/resources/Color.d.ts +0 -9
- package/dist/resources/Contract.d.ts +0 -7
- package/dist/resources/Dimension.d.ts +0 -7
- package/dist/resources/DimensionSet.d.ts +0 -11
- package/dist/resources/Domain.d.ts +0 -7
- package/dist/resources/Faq.d.ts +0 -7
- package/dist/resources/Feature.d.ts +0 -9
- package/dist/resources/Font.d.ts +0 -4
- package/dist/resources/FontFamily.d.ts +0 -11
- package/dist/resources/Highlight.d.ts +0 -4
- package/dist/resources/InsetMap.d.ts +0 -10
- package/dist/resources/Job.d.ts +0 -56
- package/dist/resources/JobResult.d.ts +0 -76
- package/dist/resources/JobRevision.d.ts +0 -64
- package/dist/resources/JobShare.d.ts +0 -15
- package/dist/resources/JobType.d.ts +0 -9
- package/dist/resources/Language.d.ts +0 -4
- package/dist/resources/Layer.d.ts +0 -10
- package/dist/resources/LayerFaq.d.ts +0 -8
- package/dist/resources/LayerGroup.d.ts +0 -14
- package/dist/resources/Mapstyle.d.ts +0 -8
- package/dist/resources/MapstyleSet.d.ts +0 -13
- package/dist/resources/MapstyleSetColor.d.ts +0 -8
- package/dist/resources/Message.d.ts +0 -7
- package/dist/resources/MessageVariant.d.ts +0 -4
- package/dist/resources/Notification.d.ts +0 -4
- package/dist/resources/Organisation.d.ts +0 -99
- package/dist/resources/OrganisationNote.d.ts +0 -17
- package/dist/resources/Permission.d.ts +0 -4
- package/dist/resources/ProductTour.d.ts +0 -10
- package/dist/resources/ProductTourStep.d.ts +0 -7
- package/dist/resources/Role.d.ts +0 -14
- package/dist/resources/Svg.d.ts +0 -4
- package/dist/resources/SvgSet.d.ts +0 -11
- package/dist/resources/Tag.d.ts +0 -9
- package/dist/resources/TagType.d.ts +0 -13
- package/dist/resources/User.d.ts +0 -119
- package/dist/resources/VectorChoropleth.d.ts +0 -4
- package/dist/resources/VectorHighlight.d.ts +0 -4
- package/dist/resources/base/CrudBase.d.ts +0 -66
- package/dist/resources/base/CrudBase.d.ts.map +0 -1
- package/dist/resources/base/CrudSetBase.d.ts +0 -27
- package/dist/resources/base/CrudSetBase.d.ts.map +0 -1
- package/dist/resources/base/CrudSetItemBase.d.ts +0 -19
- package/dist/resources/base/CrudSetItemBase.d.ts.map +0 -1
- package/dist/resources/base/DownloadedResource.d.ts +0 -72
- package/dist/resources/base/DownloadedResource.d.ts.map +0 -1
- package/dist/resources/base/ResourceBase.d.ts +0 -164
- package/dist/resources/base/ResourceBase.d.ts.map +0 -1
- package/dist/resources/index.d.ts +0 -47
- package/dist/storage/CookiesDriver.d.ts +0 -37
- package/dist/storage/DataStoreContract.d.ts +0 -46
- package/dist/storage/DummyDriver.d.ts +0 -15
- package/dist/storage/FileDriver.d.ts +0 -54
- package/dist/storage/LocalStorageDriver.d.ts +0 -13
- package/dist/storage/StorageManager.d.ts +0 -46
- package/dist/traits/HandlesImages.d.ts +0 -15
- package/dist/traits/Injectable.d.ts +0 -60
- package/dist/traits/OwnableResource.d.ts +0 -18
- package/dist/traits/Trait.d.ts +0 -12
- package/dist/utils/Logger.d.ts +0 -55
- package/dist/utils/Singleton.d.ts +0 -9
- package/dist/utils/StaticClass.d.ts +0 -7
- package/dist/utils/Unobservable.d.ts +0 -13
- package/dist/utils/base64.d.ts +0 -12
- package/dist/utils/geo.d.ts +0 -74
- package/dist/utils/hash.d.ts +0 -15
- package/dist/utils/helpers.d.ts +0 -47
- package/dist/utils/node.d.ts +0 -15
- package/dist/utils/reflection.d.ts +0 -43
- package/dist/utils/requests.d.ts +0 -24
- package/dist/utils/uuid.d.ts +0 -19
- package/manual/assets/maps4news.svg +0 -23
- package/manual/building.md +0 -19
- package/manual/css/hide_import.css +0 -3
- package/manual/css/sidebar_fix.css +0 -3
- package/manual/examples.authentication.md +0 -205
- package/manual/examples.md +0 -153
- package/manual/installation.md +0 -33
- package/manual/js/sandbox.js +0 -26
- package/src/ImageHandler.js +0 -134
- package/src/Mapcreator.js +0 -703
- package/src/PaginatedResourceListing.js +0 -300
- package/src/RequestParameters.js +0 -711
- package/src/ResourceLister.js +0 -368
- package/src/enums/DeletedState.js +0 -49
- package/src/enums/Enum.js +0 -130
- package/src/enums/JobShareVisibility.js +0 -43
- package/src/enums/ResultStatus.js +0 -49
- package/src/enums/index.js +0 -36
- package/src/errors/AbstractError.js +0 -70
- package/src/errors/ApiError.js +0 -139
- package/src/errors/GeoError.js +0 -36
- package/src/errors/NodeError.js +0 -36
- package/src/errors/OAuthError.js +0 -71
- package/src/errors/StaticClassError.js +0 -37
- package/src/errors/ValidationError.js +0 -164
- package/src/errors/index.js +0 -39
- package/src/index.js +0 -75
- package/src/oauth/DummyFlow.js +0 -63
- package/src/oauth/ImplicitFlow.js +0 -226
- package/src/oauth/ImplicitFlowPopup.js +0 -122
- package/src/oauth/OAuth.js +0 -131
- package/src/oauth/OAuthToken.js +0 -175
- package/src/oauth/PasswordFlow.js +0 -164
- package/src/oauth/StateContainer.js +0 -111
- package/src/proxy/GeoResourceProxy.js +0 -137
- package/src/proxy/OrganisationProxy.js +0 -149
- package/src/proxy/OwnedResourceProxy.js +0 -148
- package/src/proxy/ResourceProxy.js +0 -101
- package/src/proxy/SimpleResourceProxy.js +0 -188
- package/src/proxy/index.js +0 -37
- package/src/resources/Choropleth.js +0 -66
- package/src/resources/Color.js +0 -46
- package/src/resources/Contract.js +0 -42
- package/src/resources/Dimension.js +0 -42
- package/src/resources/DimensionSet.js +0 -56
- package/src/resources/Domain.js +0 -42
- package/src/resources/Faq.js +0 -42
- package/src/resources/Feature.js +0 -47
- package/src/resources/Font.js +0 -43
- package/src/resources/FontFamily.js +0 -55
- package/src/resources/Highlight.js +0 -39
- package/src/resources/InsetMap.js +0 -49
- package/src/resources/Job.js +0 -160
- package/src/resources/JobResult.js +0 -184
- package/src/resources/JobRevision.js +0 -201
- package/src/resources/JobShare.js +0 -61
- package/src/resources/JobType.js +0 -50
- package/src/resources/Language.js +0 -51
- package/src/resources/Layer.js +0 -48
- package/src/resources/LayerFaq.js +0 -47
- package/src/resources/LayerGroup.js +0 -57
- package/src/resources/Mapstyle.js +0 -45
- package/src/resources/MapstyleSet.js +0 -65
- package/src/resources/MapstyleSetColor.js +0 -51
- package/src/resources/Message.js +0 -94
- package/src/resources/MessageVariant.js +0 -37
- package/src/resources/Notification.js +0 -39
- package/src/resources/Organisation.js +0 -233
- package/src/resources/OrganisationNote.js +0 -57
- package/src/resources/Permission.js +0 -39
- package/src/resources/ProductTour.js +0 -53
- package/src/resources/ProductTourStep.js +0 -48
- package/src/resources/Role.js +0 -58
- package/src/resources/Svg.js +0 -39
- package/src/resources/SvgSet.js +0 -55
- package/src/resources/Tag.js +0 -50
- package/src/resources/TagType.js +0 -56
- package/src/resources/User.js +0 -251
- package/src/resources/VectorChoropleth.js +0 -40
- package/src/resources/VectorHighlight.js +0 -40
- package/src/resources/base/CrudBase.js +0 -204
- package/src/resources/base/CrudSetBase.js +0 -83
- package/src/resources/base/CrudSetItemBase.js +0 -82
- package/src/resources/base/DownloadedResource.js +0 -165
- package/src/resources/base/ResourceBase.js +0 -484
- package/src/resources/index.js +0 -81
- package/src/storage/CookiesDriver.js +0 -136
- package/src/storage/DataStoreContract.js +0 -111
- package/src/storage/DummyDriver.js +0 -91
- package/src/storage/FileDriver.js +0 -174
- package/src/storage/LocalStorageDriver.js +0 -108
- package/src/storage/StorageManager.js +0 -109
- package/src/traits/HandlesImages.js +0 -50
- package/src/traits/Injectable.js +0 -221
- package/src/traits/OwnableResource.js +0 -56
- package/src/traits/Trait.js +0 -43
- package/src/utils/Logger.js +0 -137
- package/src/utils/Singleton.js +0 -49
- package/src/utils/StaticClass.js +0 -43
- package/src/utils/Unobservable.js +0 -47
- package/src/utils/base64.js +0 -93
- package/src/utils/geo.js +0 -139
- package/src/utils/hash.js +0 -72
- package/src/utils/helpers.js +0 -178
- package/src/utils/node.js +0 -55
- package/src/utils/reflection.js +0 -170
- package/src/utils/requests.js +0 -120
- package/src/utils/uuid.js +0 -68
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
# Authentication
|
|
2
|
-
Authentication is done through [OAuth]. This library provides multiple [OAuth flow]
|
|
3
|
-
implementations for authentication. A client id can be obtained through a support
|
|
4
|
-
ticket but this is planned to change in the near future. The client will first
|
|
5
|
-
check if any tokens can be found in the cache before requiring authentication.
|
|
6
|
-
If one can be found the `api.authenticate()` method will instantly resolve without
|
|
7
|
-
any side-effects. The variable `api.authenticated` will be set to true if a token
|
|
8
|
-
has been found and is still valid.
|
|
9
|
-
|
|
10
|
-
Tokens are stored in HTTPS cookies if possible and using `localStorage` when the
|
|
11
|
-
browser is not using a HTTPS connection. [Nodejs] uses a file named `.m4n_token` to store the token.
|
|
12
|
-
|
|
13
|
-
## Web
|
|
14
|
-
Multiple flows are supported for web browsers. All the web examples assume the web
|
|
15
|
-
build of the library has been included in the target page.
|
|
16
|
-
|
|
17
|
-
### Implicit Flow
|
|
18
|
-
A client id is required to use the implicit flow. The redirect url *must* be the
|
|
19
|
-
same as the one linked to the client id. The callback url is automatically
|
|
20
|
-
guessed if none is provided.
|
|
21
|
-
|
|
22
|
-
```js
|
|
23
|
-
// Obtained client id
|
|
24
|
-
var clientId = 1;
|
|
25
|
-
|
|
26
|
-
// Callback url is set to the current url by default
|
|
27
|
-
var auth = new ImplicitFlow(clientId);
|
|
28
|
-
var api = new Mapcreator(auth);
|
|
29
|
-
|
|
30
|
-
// This will hijack the page if no authentication cache can
|
|
31
|
-
// be found. Smartest thing to do is to just let it happen
|
|
32
|
-
// and initialize any other code afterwards.
|
|
33
|
-
api.authenticate().then(function() {
|
|
34
|
-
// Save the token
|
|
35
|
-
api.saveToken();
|
|
36
|
-
|
|
37
|
-
// Get the current user and dump the result to the console.
|
|
38
|
-
api.users.get('me').then(console.dir);
|
|
39
|
-
});
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### Implicit flow pop-up
|
|
43
|
-
Just like the Implicit Flow a client id is required.
|
|
44
|
-
|
|
45
|
-
```js
|
|
46
|
-
// Obtained client id
|
|
47
|
-
var clientId = 1;
|
|
48
|
-
|
|
49
|
-
// Callback url is set to the current url by default. The
|
|
50
|
-
// script is smart enough close the page if it detects that
|
|
51
|
-
// it's a child after authentication. This means that either
|
|
52
|
-
// the current page can be set as the callback (default) or
|
|
53
|
-
// a custom page that just contains `api.authenticate()`
|
|
54
|
-
// that uses ImplicitFlowPopup as the auth parameter.
|
|
55
|
-
var auth = new ImplicitFlowPopup(clientId);
|
|
56
|
-
var api = new Mapcreator(auth);
|
|
57
|
-
|
|
58
|
-
// This will create a pop-up window containing the log in
|
|
59
|
-
// page. Once the pop-up redirects back to the callback it
|
|
60
|
-
// will resolve the promise. The callback page should contain
|
|
61
|
-
api.authenticate().then(function() {
|
|
62
|
-
// Save the token
|
|
63
|
-
api.saveToken();
|
|
64
|
-
|
|
65
|
-
// Get the current user and dump the result to the console.
|
|
66
|
-
api.users.get('me').then(console.dir);
|
|
67
|
-
});
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Implicit flow pop-up (advanced)
|
|
71
|
-
Due to the nature of the implicit flow pop-up (referred to as IFP from now on)
|
|
72
|
-
method the callback page can be set to a blank page that just grabs the token
|
|
73
|
-
and then closes. This can be done in the following way.
|
|
74
|
-
|
|
75
|
-
**index.html:**
|
|
76
|
-
|
|
77
|
-
```js
|
|
78
|
-
var clientId = 1;
|
|
79
|
-
var callbackUrl = 'https://example.com/callback.html';
|
|
80
|
-
|
|
81
|
-
var auth = new ImplicitFlowPopup(clientId);
|
|
82
|
-
var api = new Mapcreator(auth);
|
|
83
|
-
|
|
84
|
-
// This will resolve once the callback page has been loaded
|
|
85
|
-
api.authenticate().then(function() {
|
|
86
|
-
// Save the token
|
|
87
|
-
api.saveToken();
|
|
88
|
-
|
|
89
|
-
// Get the current user and dump the result to the console.
|
|
90
|
-
api.users.get('me').then(console.dir);
|
|
91
|
-
});
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**callback.html:**
|
|
95
|
-
|
|
96
|
-
```js
|
|
97
|
-
var clientId = 1;
|
|
98
|
-
|
|
99
|
-
// This will instantly detect the token and close the page
|
|
100
|
-
new ImplicitFlowPopup(clientId);
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Password flow (dangerous)
|
|
104
|
-
The password flow is **NOT** intended to be used in the browser. If you do
|
|
105
|
-
decide to use the password flow then it is recommended to make sure that
|
|
106
|
-
the site is **NOT** public facing and using HTTPS. Leaking the [secret] is
|
|
107
|
-
a very bad idea.
|
|
108
|
-
|
|
109
|
-
```js
|
|
110
|
-
var clientId = 1; // client id
|
|
111
|
-
var secret = ''; // secret
|
|
112
|
-
var username = 'user@example.com'; // email is used for authentication
|
|
113
|
-
var password = 'Password1!'; // password
|
|
114
|
-
|
|
115
|
-
// Secret will be leaked if this is used on a webpage. Please only use
|
|
116
|
-
// this for non-web applications.
|
|
117
|
-
var auth = new PasswordFlow(clientId, secret, username, password);
|
|
118
|
-
var api = new Mapcreator(auth);
|
|
119
|
-
|
|
120
|
-
// This will resolve once the authentication has completed
|
|
121
|
-
api.authenticate().then(function() {
|
|
122
|
-
// Get the current user and dump the result to the console.
|
|
123
|
-
api.users.get('me').then(console.dir);
|
|
124
|
-
});
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Dummy flow
|
|
128
|
-
The dummy flow can be used when a token *should* be present in the cache.
|
|
129
|
-
|
|
130
|
-
```js
|
|
131
|
-
var auth = new DummyFlow();
|
|
132
|
-
var api = new Mapcreator(auth);
|
|
133
|
-
|
|
134
|
-
// Manually check if we're logged in
|
|
135
|
-
if (api.authenticated) {
|
|
136
|
-
console.log('Found authentication token in cache!');
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
api.authenticate().then(function() {
|
|
140
|
-
// Will only resolve if a token was found
|
|
141
|
-
console.log("We're authenticated");
|
|
142
|
-
}).catch(function(err) {
|
|
143
|
-
// This will be called if `api.authenticated` is false
|
|
144
|
-
console.log(err.toString());
|
|
145
|
-
});
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
## Nodejs
|
|
149
|
-
The library currently only supports the password flow and the dummy flow
|
|
150
|
-
for [nodejs]. Other flows might be added in the future.
|
|
151
|
-
|
|
152
|
-
### Password Flow
|
|
153
|
-
Make sure to store your [secret] somewhere safe and to only store the token
|
|
154
|
-
and **never** the unencrypted user password.
|
|
155
|
-
|
|
156
|
-
```js
|
|
157
|
-
var clientId = 1; // client id
|
|
158
|
-
var secret = ''; // secret
|
|
159
|
-
var username = 'user@example.com'; // email is used for authentication
|
|
160
|
-
var password = 'Password1!'; // password
|
|
161
|
-
|
|
162
|
-
var auth = new PasswordFlow(clientId, secret, username, password);
|
|
163
|
-
var api = new Mapcreator(auth);
|
|
164
|
-
|
|
165
|
-
// This will resolve once the authentication has completed
|
|
166
|
-
api.authenticate().then(function() {
|
|
167
|
-
// Get the current user and dump the result to the console.
|
|
168
|
-
api.users.get('me').then(console.dir);
|
|
169
|
-
});
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Dummy flow
|
|
173
|
-
The dummy flow can also be used when a token is known.
|
|
174
|
-
|
|
175
|
-
```js
|
|
176
|
-
var auth = new DummyFlow();
|
|
177
|
-
var api = new Mapcreator(auth);
|
|
178
|
-
|
|
179
|
-
var token = {
|
|
180
|
-
token: "eyJ0eXAiOiJKV1...",
|
|
181
|
-
type: "Bearer",
|
|
182
|
-
expires: "Thu, 18 May 2017 14:14:38 GMT"
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
// Set the token
|
|
186
|
-
api.auth.token = OAuthToken.fromResponseObject(token);
|
|
187
|
-
|
|
188
|
-
// Manually check if we're logged in
|
|
189
|
-
if (api.authenticated) {
|
|
190
|
-
console.log('Found authentication token in cache!');
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
api.authenticate().then(function() {
|
|
194
|
-
// Will only resolve if a token was found
|
|
195
|
-
console.log("We're authenticated");
|
|
196
|
-
}).catch(function(err) {
|
|
197
|
-
// This will be called if `api.authenticated` is false
|
|
198
|
-
console.log(err.toString());
|
|
199
|
-
});
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
[OAuth flow]: https://aaronparecki.com/oauth-2-simplified/#authorization
|
|
203
|
-
[OAuth]: https://oauth.org
|
|
204
|
-
[nodejs]: https://nodejs.org
|
|
205
|
-
[secret]: https://www.youtube.com/watch?v=zwZISypgA9M
|
package/manual/examples.md
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
# Basics
|
|
2
|
-
These examples assume that an instance of the api exists and is authenticated.
|
|
3
|
-
See the node and web authentication examples for more information on authenticating.
|
|
4
|
-
|
|
5
|
-
### Getting a resource
|
|
6
|
-
Resources are bound to the base api class by default. Resources can be fetched in
|
|
7
|
-
two ways; by selecting them (`.select`) or by fetching them (`.get`). Selecting them will only set the
|
|
8
|
-
object's id to it's properties. Fetching a resource
|
|
9
|
-
|
|
10
|
-
Fetch resource and all it's properties:
|
|
11
|
-
|
|
12
|
-
```js
|
|
13
|
-
api.colors.get(1).then(function(color) {
|
|
14
|
-
console.log(color.id + " " + color.name + ": " + color.hex);
|
|
15
|
-
})
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Select the current user to quickly obtain related mapstyle sets:
|
|
19
|
-
|
|
20
|
-
```js
|
|
21
|
-
api.users.select('me').mapstyleSets().then(function(sets) {
|
|
22
|
-
for(var i = 0; i < sets.data.length; i++) {
|
|
23
|
-
console.log(sets.data[i].name);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Selection is only usefull as a stepping stone to related resources that can be easily obtained
|
|
29
|
-
using the id of the parent. Please refer to the [api documentation] for further reference.
|
|
30
|
-
|
|
31
|
-
### Create a new resource
|
|
32
|
-
Create a new color and dump the new resource to the console after saving
|
|
33
|
-
|
|
34
|
-
```js
|
|
35
|
-
var data = {name: 'Smurf', hex: '88CCFF'};
|
|
36
|
-
api.colors.new(data).save().then(console.dir);
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Modify a resource
|
|
40
|
-
Change profession of the current user and save it.
|
|
41
|
-
|
|
42
|
-
```js
|
|
43
|
-
api.users.get('me').then(me => {
|
|
44
|
-
me.profession = 'Developer';
|
|
45
|
-
me.save(); // Optional chaining to get the updated resource
|
|
46
|
-
});
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Clone a resource
|
|
50
|
-
Setting the id to null forces the creation of a new object upon saving.
|
|
51
|
-
|
|
52
|
-
```js
|
|
53
|
-
api.colors.get(1).then(color => {
|
|
54
|
-
color.id = null;
|
|
55
|
-
color.save();
|
|
56
|
-
});
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Pagination
|
|
60
|
-
Listing resources with pagination. First page with 5 items per page
|
|
61
|
-
|
|
62
|
-
```js
|
|
63
|
-
api.colors.list(1, 5).then(page => {
|
|
64
|
-
console.log('Got resources:');
|
|
65
|
-
|
|
66
|
-
for (var i = 0; i < page.data.length; i++) {
|
|
67
|
-
console.log(page.data[i].toString());
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Loop over every page and print the result to the console.
|
|
73
|
-
|
|
74
|
-
```js
|
|
75
|
-
function parsePages(page) {
|
|
76
|
-
for (var i = 0; i < page.data.length; i++) {
|
|
77
|
-
console.log(page.data[i].toString());
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (page.hasNext) {
|
|
81
|
-
console.log('Grabbing page ' + (page.page + 1));
|
|
82
|
-
page.next().then(parsePage);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
api.colors
|
|
87
|
-
.list(1, 50)
|
|
88
|
-
.then(parsePages);
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Loop over all pages and return the data in a promise
|
|
92
|
-
|
|
93
|
-
```js
|
|
94
|
-
function parsePages(page) {
|
|
95
|
-
var data = [];
|
|
96
|
-
|
|
97
|
-
function parse(page) {
|
|
98
|
-
data = data.concat(page.data);
|
|
99
|
-
|
|
100
|
-
if(page.hasNext) {
|
|
101
|
-
return page.next().then(parse);
|
|
102
|
-
} else {
|
|
103
|
-
return data;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return parse(page);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
api.colors
|
|
111
|
-
.list(1, 50)
|
|
112
|
-
.then(parsePages)
|
|
113
|
-
.then(d => console.log('Total rows: ' + d.length));
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
Select current user but do not fetch any info to make fetching resources easier.
|
|
118
|
-
|
|
119
|
-
```js
|
|
120
|
-
api.users.select('me').colors.list().then(page => {
|
|
121
|
-
console.dir(page.data);
|
|
122
|
-
});
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Searching
|
|
126
|
-
Resource lists can be queried to search for specific records as follows:
|
|
127
|
-
|
|
128
|
-
```js
|
|
129
|
-
var query = {
|
|
130
|
-
name: '^:test',
|
|
131
|
-
scale_min: ['>:1', '<:10'],
|
|
132
|
-
}
|
|
133
|
-
api.layers.search(query).then(console.dir);
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
The `search` method is an extension of `list`. This means that `.search({})` is the same as
|
|
137
|
-
`list()`. More information about search query formatting can be found in the [api documentation].
|
|
138
|
-
|
|
139
|
-
### Canceling a requests
|
|
140
|
-
Most methods that return a promise will have a method called `cancel`. This method can be called
|
|
141
|
-
to cancel the request. If the request is running or about to be ran the promise will throw an error
|
|
142
|
-
once canceled. If the request has been completed before the promise has been canceled it will not
|
|
143
|
-
throw an error and instead complete successfully.
|
|
144
|
-
|
|
145
|
-
```js
|
|
146
|
-
// Fetch a preview
|
|
147
|
-
const promise = api.jobs.select(123456).downloadPreview();
|
|
148
|
-
|
|
149
|
-
// Turns out we don't need it anyways
|
|
150
|
-
promise.cancel();
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
[api documentation]: https://docs.mapcreator.io/
|
package/manual/installation.md
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Installation
|
|
2
|
-
Installation can be done through either [npm] or [yarn].
|
|
3
|
-
|
|
4
|
-
```sh
|
|
5
|
-
// Using npm
|
|
6
|
-
npm install --save @mapcreator/api
|
|
7
|
-
|
|
8
|
-
// Using yarn
|
|
9
|
-
yarn add @mapcreator/api
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
After installation the package can be imported as follows:
|
|
13
|
-
|
|
14
|
-
```js
|
|
15
|
-
var m4n = require('@mapcreator/api');
|
|
16
|
-
|
|
17
|
-
// Do stuff
|
|
18
|
-
var auth = new m4n.ImplicitFlow(1);
|
|
19
|
-
var api = new m4n.Mapcreator(auth);
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
or using ES6 import statements:
|
|
23
|
-
|
|
24
|
-
```js
|
|
25
|
-
import {Mapcreator, DummyFlow} from '@mapcreator/api';
|
|
26
|
-
|
|
27
|
-
// Do stuff
|
|
28
|
-
var auth = new DummyFlow();
|
|
29
|
-
var api = new Mapcreator(auth);
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
[npm]: https://npmjs.com
|
|
33
|
-
[yarn]: https://yarnpkg.com
|
package/manual/js/sandbox.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
(function() {
|
|
2
|
-
if (window.name) {
|
|
3
|
-
new window.mapcrator.ImplicitFlowPopup(1);
|
|
4
|
-
}
|
|
5
|
-
})();
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function easyAuth() {
|
|
9
|
-
var mc = window.mapcreator;
|
|
10
|
-
|
|
11
|
-
var clientId = 3;
|
|
12
|
-
var docsUrl = 'https://docs.mapcreator.io/wrapper/';
|
|
13
|
-
var auth = new mc.ImplicitFlowPopup(clientId, docsUrl);
|
|
14
|
-
var api = new mc.Mapcreator(auth);
|
|
15
|
-
|
|
16
|
-
api.host = 'https://api.beta.mapcreator.io/';
|
|
17
|
-
|
|
18
|
-
return api.authenticate();
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
console.log('You can play around with the api in here, the library is bound to window.mapcreator. Authentication ');
|
|
22
|
-
console.log('can easily be done by running the command easyAuth(). See the docs for more information here: ');
|
|
23
|
-
console.log('https://docs.mapcreator.io/wrapper/manual/examples.authentication.html');
|
|
24
|
-
console.log('Example: easyAuth().then(api => window.api = api);');
|
|
25
|
-
console.log('window.mapcreator =', window.mapcreator);
|
|
26
|
-
|
package/src/ImageHandler.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* BSD 3-Clause License
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) 2020, Mapcreator
|
|
5
|
-
* All rights reserved.
|
|
6
|
-
*
|
|
7
|
-
* Redistribution and use in source and binary forms, with or without
|
|
8
|
-
* modification, are permitted provided that the following conditions are met:
|
|
9
|
-
*
|
|
10
|
-
* Redistributions of source code must retain the above copyright notice, this
|
|
11
|
-
* list of conditions and the following disclaimer.
|
|
12
|
-
*
|
|
13
|
-
* Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
15
|
-
* and/or other materials provided with the distribution.
|
|
16
|
-
*
|
|
17
|
-
* Neither the name of the copyright holder nor the names of its
|
|
18
|
-
* contributors may be used to endorse or promote products derived from
|
|
19
|
-
* this software without specific prior written permission.
|
|
20
|
-
*
|
|
21
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
22
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
23
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
24
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
25
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
26
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
27
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
28
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
29
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
30
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
import Mapcreator from './Mapcreator';
|
|
34
|
-
import DownloadedResource from './resources/base/DownloadedResource';
|
|
35
|
-
import ResourceBase from './resources/base/ResourceBase';
|
|
36
|
-
import { isParentOf } from './utils/reflection';
|
|
37
|
-
import { FormData } from './utils/requests';
|
|
38
|
-
import { makeCancelable } from './utils/helpers';
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Image resource handler
|
|
42
|
-
* @protected
|
|
43
|
-
*/
|
|
44
|
-
export default class ImageHandler {
|
|
45
|
-
/**
|
|
46
|
-
* @param {Mapcreator} api - Api instance
|
|
47
|
-
* @param {ResourceBase} target - Instance of target item
|
|
48
|
-
*/
|
|
49
|
-
constructor (api, target) {
|
|
50
|
-
if (!isParentOf(Mapcreator, api)) {
|
|
51
|
-
throw new TypeError('Expected api to be of type Mapcreator');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (!isParentOf(ResourceBase, target)) {
|
|
55
|
-
throw new TypeError('Expected target to be of type ResourceBase');
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
this._api = api;
|
|
59
|
-
this._target = target;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Get api instance
|
|
64
|
-
* @returns {Mapcreator} - Api instance
|
|
65
|
-
*/
|
|
66
|
-
get api () {
|
|
67
|
-
return this._api;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Resource url, can be used in an image tag
|
|
72
|
-
* @returns {string} - Resource url
|
|
73
|
-
*/
|
|
74
|
-
get url () {
|
|
75
|
-
return `${this._target.url}/image`;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Delete image
|
|
80
|
-
* @throws {ApiError} - If the api returns errors
|
|
81
|
-
* @returns {CancelablePromise}
|
|
82
|
-
*/
|
|
83
|
-
delete () {
|
|
84
|
-
// use the makeCancelable helper so we don't return the response object
|
|
85
|
-
return makeCancelable(async signal => {
|
|
86
|
-
await this.api.ky.delete(this.url, { signal });
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Download the image
|
|
92
|
-
* @returns {CancelablePromise<DownloadedResource>} - image
|
|
93
|
-
* @throws {ApiError} - If the api returns errors
|
|
94
|
-
* @example
|
|
95
|
-
* // Browser
|
|
96
|
-
* layer.imageHandler.download().then(image => {
|
|
97
|
-
* $('img').src = image.createObjectURL();
|
|
98
|
-
* });
|
|
99
|
-
*
|
|
100
|
-
* // NodeJs
|
|
101
|
-
* layer.imageHandler.download().then({fileName, data} => {
|
|
102
|
-
* fs.writeFileSync(fileName, data);
|
|
103
|
-
* });
|
|
104
|
-
*/
|
|
105
|
-
download () {
|
|
106
|
-
return makeCancelable(async signal => {
|
|
107
|
-
const response = await this.api.ky.get(this.url, { signal });
|
|
108
|
-
|
|
109
|
-
return DownloadedResource.fromResponse(response);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Upload new image
|
|
115
|
-
* @param {ArrayBuffer|ArrayBufferView|File|Blob|Buffer} image - Image file
|
|
116
|
-
* @returns {CancelablePromise}
|
|
117
|
-
* @throws {ApiError} - If the api returns errors
|
|
118
|
-
*/
|
|
119
|
-
upload (image) {
|
|
120
|
-
const body = new FormData();
|
|
121
|
-
|
|
122
|
-
body.append('image', image, 'image');
|
|
123
|
-
|
|
124
|
-
const headers = {};
|
|
125
|
-
|
|
126
|
-
if (body.getHeaders) {
|
|
127
|
-
Object.assign(headers, body.getHeaders());
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
return makeCancelable(async signal => {
|
|
131
|
-
await this.api.ky.post(this.url, { headers, body, signal });
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|