@mapcreator/api 3.3.0 → 5.0.0-alpha.12
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 +43 -0
- package/cjs/api/jobRevision.d.ts.map +1 -0
- package/cjs/api/jobRevision.js +72 -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 +43 -0
- package/esm/api/jobRevision.d.ts.map +1 -0
- package/esm/api/jobRevision.js +63 -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 +66 -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 +170 -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
package/src/utils/geo.js
DELETED
|
@@ -1,139 +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
|
-
|
|
34
|
-
import GeoError from '../errors/GeoError';
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* A geographical point
|
|
38
|
-
*/
|
|
39
|
-
export class GeoPoint {
|
|
40
|
-
/**
|
|
41
|
-
* Geographical point
|
|
42
|
-
* @param {Number} lat - latitude
|
|
43
|
-
* @param {Number} lng - longitude
|
|
44
|
-
*/
|
|
45
|
-
constructor (lat, lng) {
|
|
46
|
-
this.lat = lat;
|
|
47
|
-
this.lng = lng;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Get latitude
|
|
52
|
-
* @returns {Number} - latitude
|
|
53
|
-
*/
|
|
54
|
-
get lat () {
|
|
55
|
-
return this._lat;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Set latitude
|
|
60
|
-
* @param {Number} value - latitude
|
|
61
|
-
*/
|
|
62
|
-
set lat (value) {
|
|
63
|
-
value = Number(value);
|
|
64
|
-
|
|
65
|
-
if (!Number.isFinite(value)) {
|
|
66
|
-
throw new GeoError(`Invalid latitude: ${value}`);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
this._lat = Math.min(90, Math.max(-90, value));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Get longitude
|
|
74
|
-
* @returns {Number} - longitude
|
|
75
|
-
*/
|
|
76
|
-
get lng () {
|
|
77
|
-
return this._lng;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Set longitude
|
|
82
|
-
* @param {Number} value - longitude
|
|
83
|
-
*/
|
|
84
|
-
set lng (value) {
|
|
85
|
-
value = Number(value);
|
|
86
|
-
|
|
87
|
-
if (!Number.isFinite(value)) {
|
|
88
|
-
throw new GeoError(`Invalid longitude: ${value}`);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
this._lng = value;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Get data to be JSON encoded
|
|
96
|
-
* @returns {{lat: Number, lng: Number}} - data
|
|
97
|
-
*/
|
|
98
|
-
toJSON () {
|
|
99
|
-
return { lat: this.lat, lng: this.lng };
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Geometric boundary
|
|
105
|
-
*/
|
|
106
|
-
export class GeoBoundary {
|
|
107
|
-
/**
|
|
108
|
-
* Geometric boundary
|
|
109
|
-
* @param {Object} topLeft - top left corner of the boundary
|
|
110
|
-
* @param {Number} topLeft.lat - top left corner latitude
|
|
111
|
-
* @param {Number} topLeft.lng - top left corner longitude
|
|
112
|
-
* @param {Object} bottomRight - bottom right corner of the boundary
|
|
113
|
-
* @param {Number} bottomRight.lat - bottom right corner latitude
|
|
114
|
-
* @param {Number} bottomRight.lng - bottom right corner longitude
|
|
115
|
-
*/
|
|
116
|
-
constructor ({ lat: lat1, lng: lng1 }, { lat: lat2, lng: lng2 }) {
|
|
117
|
-
this.topLeft = new GeoPoint(lat1, lng1);
|
|
118
|
-
this.bottomRight = new GeoPoint(lat2, lng2);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
getCenter () {
|
|
122
|
-
const lat = (this.topLeft.lat + this.bottomRight.lat) / 2;
|
|
123
|
-
const lng = (this.topLeft.lng + this.bottomRight.lng) / 2;
|
|
124
|
-
|
|
125
|
-
return new GeoPoint(lat, lng);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Top left coordinate
|
|
130
|
-
* @type {GeoPoint}
|
|
131
|
-
*/
|
|
132
|
-
topLeft;
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Bottom right coordinate
|
|
136
|
-
* @type {GeoPoint}
|
|
137
|
-
*/
|
|
138
|
-
bottomRight;
|
|
139
|
-
}
|
package/src/utils/hash.js
DELETED
|
@@ -1,72 +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 stringify from 'json-stable-stringify';
|
|
34
|
-
|
|
35
|
-
const FNV1_32A_INIT = 0x811c9dc5;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Fast hash function for non-cryptographic use
|
|
39
|
-
* @param {string} str - Input to be hashed
|
|
40
|
-
* @returns {string} - String representation of the hash
|
|
41
|
-
* @private
|
|
42
|
-
*/
|
|
43
|
-
export function fnv32b (str) {
|
|
44
|
-
let hash = str
|
|
45
|
-
.split('')
|
|
46
|
-
.map(x => x.charCodeAt(0))
|
|
47
|
-
.reduce((sum, val) => {
|
|
48
|
-
sum ^= val;
|
|
49
|
-
|
|
50
|
-
return sum + (sum << 1) + (sum << 4) + (sum << 7) + (sum << 8) + (sum << 24);
|
|
51
|
-
}, FNV1_32A_INIT);
|
|
52
|
-
|
|
53
|
-
// Avalanche
|
|
54
|
-
hash ^= hash << 3;
|
|
55
|
-
hash += hash >> 5;
|
|
56
|
-
hash ^= hash << 4;
|
|
57
|
-
hash += hash >> 17;
|
|
58
|
-
hash ^= hash << 25;
|
|
59
|
-
hash += hash >> 6;
|
|
60
|
-
|
|
61
|
-
return `0000000${(hash >>> 0).toString(16)}`.substr(-8);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Fast object hashing for non-cryptographic use
|
|
66
|
-
* @param {object} data - input data
|
|
67
|
-
* @returns {string} - String reprisentation of the hash
|
|
68
|
-
* @private
|
|
69
|
-
*/
|
|
70
|
-
export function hashObject (data) {
|
|
71
|
-
return fnv32b(stringify(data));
|
|
72
|
-
}
|
package/src/utils/helpers.js
DELETED
|
@@ -1,178 +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
|
-
/**
|
|
34
|
-
* Get all the pages from a {@link PaginatedResourceListing} or a range
|
|
35
|
-
* @param {Promise<PaginatedResourceListing>|PaginatedResourceListing} page - Promise that returns a {@link PaginatedResourceListing}
|
|
36
|
-
* @param {?Number} [start=1] - Start page
|
|
37
|
-
* @param {?Number} [stop] - Stop page, defaults to the page count if not filled in.
|
|
38
|
-
* @returns {Promise<Array<ResourceBase>>} - multiple pages
|
|
39
|
-
* @throws {ApiError} - If the api returns errors
|
|
40
|
-
* @example
|
|
41
|
-
* import { helpers } from "@mapcreator/api";
|
|
42
|
-
*
|
|
43
|
-
* const promise = api.users.list(1, 50); // 50 per page is more efficient
|
|
44
|
-
*
|
|
45
|
-
* helpers.getPaginatedRange(promise).then(data => {
|
|
46
|
-
* data.map(row => `[${row.id}] ${row.name}`) // We just want the names
|
|
47
|
-
* .forEach(console.log) // Log the names and ids of every user
|
|
48
|
-
* })
|
|
49
|
-
*/
|
|
50
|
-
export async function getPaginatedRange (page, start = 1, stop) {
|
|
51
|
-
// Resolve promise if any
|
|
52
|
-
if (page instanceof Promise) {
|
|
53
|
-
page = await page;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const out = page.data;
|
|
57
|
-
const promises = [];
|
|
58
|
-
|
|
59
|
-
// Handle defaults
|
|
60
|
-
start = start || page.page;
|
|
61
|
-
stop = stop || page.pageCount;
|
|
62
|
-
|
|
63
|
-
if (start === page.page) {
|
|
64
|
-
start++;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Get all pages
|
|
68
|
-
for (let i = start; i <= stop; i++) {
|
|
69
|
-
promises.push(page.get(i));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Resolve
|
|
73
|
-
const rows = await Promise.all(promises);
|
|
74
|
-
|
|
75
|
-
return out.concat(...rows.map(x => x.data));
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Async delay
|
|
80
|
-
* @private
|
|
81
|
-
* @param {number} ms - milliseconds
|
|
82
|
-
* @returns {Promise}
|
|
83
|
-
*/
|
|
84
|
-
export const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Wraps around ky to make it return cancelable requests
|
|
88
|
-
* @param {function(*=, *=): Response} fn - ky instance
|
|
89
|
-
* @returns {function(*=, *=): Response}
|
|
90
|
-
* @private
|
|
91
|
-
*/
|
|
92
|
-
export function wrapKyCancelable (fn) {
|
|
93
|
-
return (input, options = {}) => {
|
|
94
|
-
if (typeof options === 'object' && options.hasOwnProperty('signal')) {
|
|
95
|
-
return fn(input, options);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const controller = new AbortController();
|
|
99
|
-
const promise = fn(input, { signal: controller.signal, ...options });
|
|
100
|
-
|
|
101
|
-
promise.cancel = () => controller.abort();
|
|
102
|
-
|
|
103
|
-
return promise;
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* @typedef {Promise} CancelablePromise
|
|
109
|
-
* @property {function(): void} cancel - Cancel the promise
|
|
110
|
-
*/
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Makes a promise cancelable by passing it a signal
|
|
114
|
-
* @param {function} fn - async method
|
|
115
|
-
* @returns {CancelablePromise}
|
|
116
|
-
* @private
|
|
117
|
-
*/
|
|
118
|
-
export function makeCancelable (fn) {
|
|
119
|
-
const controller = new AbortController();
|
|
120
|
-
|
|
121
|
-
const promise = fn(controller.signal);
|
|
122
|
-
|
|
123
|
-
if (promise instanceof Promise) {
|
|
124
|
-
promise.cancel = () => controller.abort();
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
return promise;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Convert Date into server format
|
|
132
|
-
* @param {Date} date - Target
|
|
133
|
-
* @returns {String} - Formatted date
|
|
134
|
-
* @private
|
|
135
|
-
*/
|
|
136
|
-
export function serializeUTCDate (date) {
|
|
137
|
-
if (!(date instanceof Date)) {
|
|
138
|
-
throw new TypeError('Expected date to be of type Date');
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const pad = num => `00${num}`.slice(-Math.max(String(num).length, 2));
|
|
142
|
-
|
|
143
|
-
let out = [
|
|
144
|
-
date.getUTCFullYear(),
|
|
145
|
-
date.getUTCMonth() + 1,
|
|
146
|
-
date.getUTCDate(),
|
|
147
|
-
].map(pad).join('-');
|
|
148
|
-
|
|
149
|
-
out += ` ${[
|
|
150
|
-
date.getUTCHours(),
|
|
151
|
-
date.getUTCMinutes(),
|
|
152
|
-
date.getUTCSeconds(),
|
|
153
|
-
].map(pad).join(':')}`;
|
|
154
|
-
|
|
155
|
-
return out;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export function clone (input, clonePrivate = true) {
|
|
159
|
-
const _clone = value => clone(value, clonePrivate);
|
|
160
|
-
|
|
161
|
-
if (typeof input !== 'object' || input === null) {
|
|
162
|
-
return input;
|
|
163
|
-
} else if (Array.isArray(input)) {
|
|
164
|
-
return input.map(_clone);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
const output = {};
|
|
168
|
-
|
|
169
|
-
for (const key of Object.keys(input)) {
|
|
170
|
-
if (!clonePrivate && key.startsWith('_')) {
|
|
171
|
-
continue;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
output[key] = _clone(input[key]);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return output;
|
|
178
|
-
}
|
package/src/utils/node.js
DELETED
|
@@ -1,55 +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
|
-
/**
|
|
34
|
-
* Test if the application is running under nodejs
|
|
35
|
-
* @returns {boolean} - Is the application running under node?
|
|
36
|
-
* @see https://nodejs.org
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
export function isNode () {
|
|
40
|
-
try {
|
|
41
|
-
return Object.prototype.toString.call(typeof process === 'undefined' ? 0 : process) === '[object process]';
|
|
42
|
-
} catch (_) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Quickly check if the window contains a variable
|
|
49
|
-
* @param {string} str - target variable
|
|
50
|
-
* @returns {boolean} - If the window contains the variable
|
|
51
|
-
* @private
|
|
52
|
-
*/
|
|
53
|
-
export function windowTest (str) {
|
|
54
|
-
return typeof window !== 'undefined' && typeof window[str] !== 'undefined';
|
|
55
|
-
}
|
package/src/utils/reflection.js
DELETED
|
@@ -1,170 +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 Trait from '../traits/Trait';
|
|
34
|
-
import { fnv32b } from './hash';
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Tests if the parent is a parent of child
|
|
38
|
-
* @param {Class|object} parent - Instance or Class
|
|
39
|
-
* @param {Class|object} child - Instance or Class
|
|
40
|
-
* @returns {boolean} - is parent a parent of child
|
|
41
|
-
* @private
|
|
42
|
-
* @example
|
|
43
|
-
* class A {}
|
|
44
|
-
* class B extends A {}
|
|
45
|
-
* class C extends B {}
|
|
46
|
-
*
|
|
47
|
-
* isParentOf(A, C) // true
|
|
48
|
-
* isParentOf(B, C) // true
|
|
49
|
-
* isParentOf(C, C) // true
|
|
50
|
-
* isParentOf(B, A) // false
|
|
51
|
-
*/
|
|
52
|
-
export function isParentOf (parent, child) {
|
|
53
|
-
if (parent === null || child === null) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
parent = typeof parent === 'function' ? parent : parent.constructor;
|
|
58
|
-
child = typeof child === 'function' ? child : child.constructor;
|
|
59
|
-
|
|
60
|
-
do {
|
|
61
|
-
if (child.name === parent.name) {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
child = Object.getPrototypeOf(child);
|
|
66
|
-
} while (child.name !== '');
|
|
67
|
-
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Get the name of the value type
|
|
74
|
-
* @param {*} value - Any value
|
|
75
|
-
* @private
|
|
76
|
-
* @returns {string} - Value type name
|
|
77
|
-
*/
|
|
78
|
-
export function getTypeName (value) {
|
|
79
|
-
if (typeof value === 'undefined') {
|
|
80
|
-
return 'undefined';
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
value = typeof value === 'function' ? value : value.constructor;
|
|
84
|
-
|
|
85
|
-
return value.name;
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Helper class for mix
|
|
91
|
-
* @see {@link mix}
|
|
92
|
-
*/
|
|
93
|
-
class Empty {
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Copy properties from source to target
|
|
98
|
-
* @param {object} target - Object for the properties to be copied to
|
|
99
|
-
* @param {object} source - Object containing properties to be copied
|
|
100
|
-
*/
|
|
101
|
-
function copyProps (target, source) {
|
|
102
|
-
Object
|
|
103
|
-
.getOwnPropertyNames(source)
|
|
104
|
-
.concat(Object.getOwnPropertySymbols(source))
|
|
105
|
-
.forEach(prop => {
|
|
106
|
-
if (!prop.match(/^(?:constructor|initializer|prototype|arguments|caller|name|bind|call|apply|toString|length)$/)) {
|
|
107
|
-
Object.defineProperty(target, prop, Object.getOwnPropertyDescriptor(source, prop));
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Mix traits into the target class
|
|
114
|
-
* @param {Class} baseClass - Target base class for the traits to be applied to
|
|
115
|
-
* @param {Class<Trait>} mixins - Traits to be applied
|
|
116
|
-
* @returns {Class} - Constructor with any traits applied
|
|
117
|
-
* @private
|
|
118
|
-
*/
|
|
119
|
-
export function mix (baseClass, ...mixins) {
|
|
120
|
-
const cocktail = class _Cocktail extends (baseClass || Empty) {
|
|
121
|
-
constructor (...args) {
|
|
122
|
-
super(...args);
|
|
123
|
-
|
|
124
|
-
mixins
|
|
125
|
-
.map(mixin => mixin.prototype.initializer)
|
|
126
|
-
.filter(initializer => typeof initializer === 'function')
|
|
127
|
-
.forEach(initializer => initializer.call(this));
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
for (const mixin of mixins) {
|
|
133
|
-
if (!isParentOf(Trait, mixin)) {
|
|
134
|
-
throw new TypeError(`Expected mixin to implement Trait for ${mixin.name}`);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
copyProps(cocktail.prototype, mixin.prototype);
|
|
138
|
-
copyProps(cocktail, mixin);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
cocktail.__mixins = mixins;
|
|
142
|
-
|
|
143
|
-
const hash = fnv32b(mixins.map(x => x.name).join(','));
|
|
144
|
-
|
|
145
|
-
Object.defineProperty(cocktail, 'name', { value: `Cocktail_${hash}` });
|
|
146
|
-
|
|
147
|
-
return cocktail;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Checks if the target has a certain trait.
|
|
152
|
-
*
|
|
153
|
-
* @param {Class|Object} Subject - Instance or class
|
|
154
|
-
* @param {Class<Trait>} TraitClass - Trait to check for
|
|
155
|
-
* @returns {boolean} - If the subject has the trait
|
|
156
|
-
* @private
|
|
157
|
-
*/
|
|
158
|
-
export function hasTrait (Subject, TraitClass) {
|
|
159
|
-
Subject = typeof Subject === 'function' ? Subject : Subject.constructor;
|
|
160
|
-
|
|
161
|
-
do {
|
|
162
|
-
if (Array.isArray(Subject.__mixins) && Subject.__mixins.includes(TraitClass)) {
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
Subject = Object.getPrototypeOf(Subject);
|
|
167
|
-
} while (Subject.name !== '');
|
|
168
|
-
|
|
169
|
-
return false;
|
|
170
|
-
}
|