@mapcreator/api 3.3.6 → 5.0.0-alpha.100

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.
Files changed (495) hide show
  1. package/LICENSE +29 -29
  2. package/README.md +86 -63
  3. package/cjs/api/apiCommon.d.ts +7 -0
  4. package/cjs/api/apiCommon.d.ts.map +1 -0
  5. package/cjs/api/apiCommon.js +31 -0
  6. package/cjs/api/apiCommon.js.map +1 -0
  7. package/cjs/api/choropleth.d.ts +138 -0
  8. package/cjs/api/choropleth.d.ts.map +1 -0
  9. package/cjs/api/choropleth.js +41 -0
  10. package/cjs/api/choropleth.js.map +1 -0
  11. package/cjs/api/color.d.ts +16 -0
  12. package/cjs/api/color.d.ts.map +1 -0
  13. package/cjs/api/color.js +8 -0
  14. package/cjs/api/color.js.map +1 -0
  15. package/cjs/api/dimension.d.ts +25 -0
  16. package/cjs/api/dimension.d.ts.map +1 -0
  17. package/cjs/api/dimension.js +14 -0
  18. package/cjs/api/dimension.js.map +1 -0
  19. package/cjs/api/dimensionSet.d.ts +15 -0
  20. package/cjs/api/dimensionSet.d.ts.map +1 -0
  21. package/cjs/api/dimensionSet.js +7 -0
  22. package/cjs/api/dimensionSet.js.map +1 -0
  23. package/cjs/api/feature.d.ts +16 -0
  24. package/cjs/api/feature.d.ts.map +1 -0
  25. package/cjs/api/feature.js +8 -0
  26. package/cjs/api/feature.js.map +1 -0
  27. package/cjs/api/font.d.ts +32 -0
  28. package/cjs/api/font.d.ts.map +1 -0
  29. package/cjs/api/font.js +15 -0
  30. package/cjs/api/font.js.map +1 -0
  31. package/cjs/api/fontFamily.d.ts +17 -0
  32. package/cjs/api/fontFamily.d.ts.map +1 -0
  33. package/cjs/api/fontFamily.js +17 -0
  34. package/cjs/api/fontFamily.js.map +1 -0
  35. package/cjs/api/geocode.d.ts +10 -0
  36. package/cjs/api/geocode.d.ts.map +1 -0
  37. package/cjs/api/geocode.js +9 -0
  38. package/cjs/api/geocode.js.map +1 -0
  39. package/cjs/api/highlight.d.ts +41 -0
  40. package/cjs/api/highlight.d.ts.map +1 -0
  41. package/cjs/api/highlight.js +25 -0
  42. package/cjs/api/highlight.js.map +1 -0
  43. package/cjs/api/insetMap.d.ts +37 -0
  44. package/cjs/api/insetMap.d.ts.map +1 -0
  45. package/cjs/api/insetMap.js +47 -0
  46. package/cjs/api/insetMap.js.map +1 -0
  47. package/cjs/api/job.d.ts +42 -0
  48. package/cjs/api/job.d.ts.map +1 -0
  49. package/cjs/api/job.js +71 -0
  50. package/cjs/api/job.js.map +1 -0
  51. package/cjs/api/jobResult.d.ts +40 -0
  52. package/cjs/api/jobResult.d.ts.map +1 -0
  53. package/cjs/api/jobResult.js +35 -0
  54. package/cjs/api/jobResult.js.map +1 -0
  55. package/cjs/api/jobRevision.d.ts +76 -0
  56. package/cjs/api/jobRevision.d.ts.map +1 -0
  57. package/cjs/api/jobRevision.js +126 -0
  58. package/cjs/api/jobRevision.js.map +1 -0
  59. package/cjs/api/jobShare.d.ts +26 -0
  60. package/cjs/api/jobShare.d.ts.map +1 -0
  61. package/cjs/api/jobShare.js +9 -0
  62. package/cjs/api/jobShare.js.map +1 -0
  63. package/cjs/api/jobType.d.ts +17 -0
  64. package/cjs/api/jobType.d.ts.map +1 -0
  65. package/cjs/api/jobType.js +11 -0
  66. package/cjs/api/jobType.js.map +1 -0
  67. package/cjs/api/language.d.ts +17 -0
  68. package/cjs/api/language.d.ts.map +1 -0
  69. package/cjs/api/language.js +3 -0
  70. package/cjs/api/language.js.map +1 -0
  71. package/cjs/api/layer.d.ts +26 -0
  72. package/cjs/api/layer.d.ts.map +1 -0
  73. package/cjs/api/layer.js +14 -0
  74. package/cjs/api/layer.js.map +1 -0
  75. package/cjs/api/layerFaq.d.ts +27 -0
  76. package/cjs/api/layerFaq.d.ts.map +1 -0
  77. package/cjs/api/layerFaq.js +16 -0
  78. package/cjs/api/layerFaq.js.map +1 -0
  79. package/cjs/api/layerGroup.d.ts +16 -0
  80. package/cjs/api/layerGroup.d.ts.map +1 -0
  81. package/cjs/api/layerGroup.js +36 -0
  82. package/cjs/api/layerGroup.js.map +1 -0
  83. package/cjs/api/mapstyleSet.d.ts +32 -0
  84. package/cjs/api/mapstyleSet.d.ts.map +1 -0
  85. package/cjs/api/mapstyleSet.js +28 -0
  86. package/cjs/api/mapstyleSet.js.map +1 -0
  87. package/cjs/api/message.d.ts +32 -0
  88. package/cjs/api/message.d.ts.map +1 -0
  89. package/cjs/api/message.js +37 -0
  90. package/cjs/api/message.js.map +1 -0
  91. package/cjs/api/organisation.d.ts +41 -0
  92. package/cjs/api/organisation.d.ts.map +1 -0
  93. package/cjs/api/organisation.js +41 -0
  94. package/cjs/api/organisation.js.map +1 -0
  95. package/cjs/api/resources.d.ts +65 -0
  96. package/cjs/api/resources.d.ts.map +1 -0
  97. package/cjs/api/resources.js +61 -0
  98. package/cjs/api/resources.js.map +1 -0
  99. package/cjs/api/svg.d.ts +21 -0
  100. package/cjs/api/svg.d.ts.map +1 -0
  101. package/cjs/api/svg.js +15 -0
  102. package/cjs/api/svg.js.map +1 -0
  103. package/cjs/api/svgSet.d.ts +22 -0
  104. package/cjs/api/svgSet.d.ts.map +1 -0
  105. package/cjs/api/svgSet.js +25 -0
  106. package/cjs/api/svgSet.js.map +1 -0
  107. package/cjs/api/user.d.ts +129 -0
  108. package/cjs/api/user.d.ts.map +1 -0
  109. package/cjs/api/user.js +145 -0
  110. package/cjs/api/user.js.map +1 -0
  111. package/cjs/index.d.ts +28 -0
  112. package/cjs/index.d.ts.map +1 -0
  113. package/cjs/index.js +53 -0
  114. package/cjs/index.js.map +1 -0
  115. package/cjs/oauth.d.ts +31 -0
  116. package/cjs/oauth.d.ts.map +1 -0
  117. package/cjs/oauth.js +76 -0
  118. package/cjs/oauth.js.map +1 -0
  119. package/cjs/utils.d.ts +72 -0
  120. package/cjs/utils.d.ts.map +1 -0
  121. package/cjs/utils.js +220 -0
  122. package/cjs/utils.js.map +1 -0
  123. package/esm/api/apiCommon.d.ts +7 -0
  124. package/esm/api/apiCommon.d.ts.map +1 -0
  125. package/esm/api/apiCommon.js +28 -0
  126. package/esm/api/apiCommon.js.map +1 -0
  127. package/esm/api/choropleth.d.ts +138 -0
  128. package/esm/api/choropleth.d.ts.map +1 -0
  129. package/esm/api/choropleth.js +34 -0
  130. package/esm/api/choropleth.js.map +1 -0
  131. package/esm/api/color.d.ts +16 -0
  132. package/esm/api/color.d.ts.map +1 -0
  133. package/esm/api/color.js +5 -0
  134. package/esm/api/color.js.map +1 -0
  135. package/esm/api/dimension.d.ts +25 -0
  136. package/esm/api/dimension.d.ts.map +1 -0
  137. package/esm/api/dimension.js +11 -0
  138. package/esm/api/dimension.js.map +1 -0
  139. package/esm/api/dimensionSet.d.ts +15 -0
  140. package/esm/api/dimensionSet.d.ts.map +1 -0
  141. package/esm/api/dimensionSet.js +4 -0
  142. package/esm/api/dimensionSet.js.map +1 -0
  143. package/esm/api/feature.d.ts +16 -0
  144. package/esm/api/feature.d.ts.map +1 -0
  145. package/esm/api/feature.js +5 -0
  146. package/esm/api/feature.js.map +1 -0
  147. package/esm/api/font.d.ts +32 -0
  148. package/esm/api/font.d.ts.map +1 -0
  149. package/esm/api/font.js +11 -0
  150. package/esm/api/font.js.map +1 -0
  151. package/esm/api/fontFamily.d.ts +17 -0
  152. package/esm/api/fontFamily.d.ts.map +1 -0
  153. package/esm/api/fontFamily.js +13 -0
  154. package/esm/api/fontFamily.js.map +1 -0
  155. package/esm/api/geocode.d.ts +10 -0
  156. package/esm/api/geocode.d.ts.map +1 -0
  157. package/esm/api/geocode.js +6 -0
  158. package/esm/api/geocode.js.map +1 -0
  159. package/esm/api/highlight.d.ts +41 -0
  160. package/esm/api/highlight.d.ts.map +1 -0
  161. package/esm/api/highlight.js +21 -0
  162. package/esm/api/highlight.js.map +1 -0
  163. package/esm/api/insetMap.d.ts +37 -0
  164. package/esm/api/insetMap.d.ts.map +1 -0
  165. package/esm/api/insetMap.js +42 -0
  166. package/esm/api/insetMap.js.map +1 -0
  167. package/esm/api/job.d.ts +42 -0
  168. package/esm/api/job.d.ts.map +1 -0
  169. package/esm/api/job.js +59 -0
  170. package/esm/api/job.js.map +1 -0
  171. package/esm/api/jobResult.d.ts +40 -0
  172. package/esm/api/jobResult.d.ts.map +1 -0
  173. package/esm/api/jobResult.js +30 -0
  174. package/esm/api/jobResult.js.map +1 -0
  175. package/esm/api/jobRevision.d.ts +76 -0
  176. package/esm/api/jobRevision.d.ts.map +1 -0
  177. package/esm/api/jobRevision.js +114 -0
  178. package/esm/api/jobRevision.js.map +1 -0
  179. package/esm/api/jobShare.d.ts +26 -0
  180. package/esm/api/jobShare.d.ts.map +1 -0
  181. package/esm/api/jobShare.js +6 -0
  182. package/esm/api/jobShare.js.map +1 -0
  183. package/esm/api/jobType.d.ts +17 -0
  184. package/esm/api/jobType.d.ts.map +1 -0
  185. package/esm/api/jobType.js +8 -0
  186. package/esm/api/jobType.js.map +1 -0
  187. package/esm/api/language.d.ts +17 -0
  188. package/esm/api/language.d.ts.map +1 -0
  189. package/esm/api/language.js +2 -0
  190. package/esm/api/language.js.map +1 -0
  191. package/esm/api/layer.d.ts +26 -0
  192. package/esm/api/layer.d.ts.map +1 -0
  193. package/esm/api/layer.js +11 -0
  194. package/esm/api/layer.js.map +1 -0
  195. package/esm/api/layerFaq.d.ts +27 -0
  196. package/esm/api/layerFaq.d.ts.map +1 -0
  197. package/esm/api/layerFaq.js +12 -0
  198. package/esm/api/layerFaq.js.map +1 -0
  199. package/esm/api/layerGroup.d.ts +16 -0
  200. package/esm/api/layerGroup.d.ts.map +1 -0
  201. package/esm/api/layerGroup.js +33 -0
  202. package/esm/api/layerGroup.js.map +1 -0
  203. package/esm/api/mapstyleSet.d.ts +32 -0
  204. package/esm/api/mapstyleSet.d.ts.map +1 -0
  205. package/esm/api/mapstyleSet.js +24 -0
  206. package/esm/api/mapstyleSet.js.map +1 -0
  207. package/esm/api/message.d.ts +32 -0
  208. package/esm/api/message.d.ts.map +1 -0
  209. package/esm/api/message.js +32 -0
  210. package/esm/api/message.js.map +1 -0
  211. package/esm/api/organisation.d.ts +41 -0
  212. package/esm/api/organisation.d.ts.map +1 -0
  213. package/esm/api/organisation.js +35 -0
  214. package/esm/api/organisation.js.map +1 -0
  215. package/esm/api/resources.d.ts +65 -0
  216. package/esm/api/resources.d.ts.map +1 -0
  217. package/esm/api/resources.js +55 -0
  218. package/esm/api/resources.js.map +1 -0
  219. package/esm/api/svg.d.ts +21 -0
  220. package/esm/api/svg.d.ts.map +1 -0
  221. package/esm/api/svg.js +11 -0
  222. package/esm/api/svg.js.map +1 -0
  223. package/esm/api/svgSet.d.ts +22 -0
  224. package/esm/api/svgSet.d.ts.map +1 -0
  225. package/esm/api/svgSet.js +21 -0
  226. package/esm/api/svgSet.js.map +1 -0
  227. package/esm/api/user.d.ts +129 -0
  228. package/esm/api/user.d.ts.map +1 -0
  229. package/esm/api/user.js +126 -0
  230. package/esm/api/user.js.map +1 -0
  231. package/esm/index.d.ts +28 -0
  232. package/esm/index.d.ts.map +1 -0
  233. package/esm/index.js +28 -0
  234. package/esm/index.js.map +1 -0
  235. package/esm/oauth.d.ts +31 -0
  236. package/esm/oauth.d.ts.map +1 -0
  237. package/esm/oauth.js +68 -0
  238. package/esm/oauth.js.map +1 -0
  239. package/esm/utils.d.ts +72 -0
  240. package/esm/utils.d.ts.map +1 -0
  241. package/esm/utils.js +206 -0
  242. package/esm/utils.js.map +1 -0
  243. package/package.json +80 -148
  244. package/src/README.md +126 -0
  245. package/src/api/apiCommon.ts +70 -0
  246. package/src/api/choropleth.ts +228 -0
  247. package/src/api/color.ts +22 -0
  248. package/src/api/dimension.ts +44 -0
  249. package/src/api/dimensionSet.ts +20 -0
  250. package/src/api/feature.ts +22 -0
  251. package/src/api/font.ts +57 -0
  252. package/src/api/fontFamily.ts +43 -0
  253. package/src/api/geocode.ts +17 -0
  254. package/src/api/highlight.ts +87 -0
  255. package/src/api/insetMap.ts +95 -0
  256. package/src/api/job.ts +130 -0
  257. package/src/api/jobResult.ts +95 -0
  258. package/src/api/jobRevision.ts +281 -0
  259. package/src/api/jobShare.ts +35 -0
  260. package/src/api/jobType.ts +26 -0
  261. package/src/api/language.ts +19 -0
  262. package/src/api/layer.ts +38 -0
  263. package/src/api/layerFaq.ts +53 -0
  264. package/src/api/layerGroup.ts +69 -0
  265. package/src/api/mapstyleSet.ts +70 -0
  266. package/src/api/message.ts +80 -0
  267. package/src/api/organisation.ts +97 -0
  268. package/src/api/resources.ts +153 -0
  269. package/src/api/svg.ts +33 -0
  270. package/src/api/svgSet.ts +56 -0
  271. package/src/api/user.ts +327 -0
  272. package/src/index.ts +44 -0
  273. package/src/oauth.ts +90 -0
  274. package/src/utils.ts +342 -0
  275. package/dist/ImageHandler.d.ts +0 -56
  276. package/dist/Mapcreator.d.ts +0 -338
  277. package/dist/PaginatedResourceListing.d.ts +0 -156
  278. package/dist/RequestParameters.d.ts +0 -241
  279. package/dist/ResourceLister.d.ts +0 -155
  280. package/dist/bundle.browser.js +0 -14711
  281. package/dist/bundle.browser.min.js +0 -3
  282. package/dist/bundle.browser.min.js.LICENSE.txt +0 -74
  283. package/dist/bundle.js +0 -12876
  284. package/dist/bundle.min.js +0 -3
  285. package/dist/bundle.min.js.LICENSE.txt +0 -44
  286. package/dist/enums/DeletedState.d.ts +0 -16
  287. package/dist/enums/Enum.d.ts +0 -40
  288. package/dist/enums/JobShareVisibility.d.ts +0 -15
  289. package/dist/enums/ResultStatus.d.ts +0 -17
  290. package/dist/enums/index.d.ts +0 -5
  291. package/dist/errors/AbstractError.d.ts +0 -26
  292. package/dist/errors/ApiError.d.ts +0 -65
  293. package/dist/errors/GeoError.d.ts +0 -6
  294. package/dist/errors/NodeError.d.ts +0 -6
  295. package/dist/errors/OAuthError.d.ts +0 -17
  296. package/dist/errors/StaticClassError.d.ts +0 -7
  297. package/dist/errors/ValidationError.d.ts +0 -125
  298. package/dist/errors/index.d.ts +0 -8
  299. package/dist/index.d.ts +0 -28
  300. package/dist/oauth/CookieFlow.d.ts +0 -25
  301. package/dist/oauth/DummyFlow.d.ts +0 -19
  302. package/dist/oauth/ImplicitFlow.d.ts +0 -68
  303. package/dist/oauth/ImplicitFlowPopup.d.ts +0 -25
  304. package/dist/oauth/OAuth.d.ts +0 -50
  305. package/dist/oauth/OAuthToken.d.ts +0 -67
  306. package/dist/oauth/PasswordFlow.d.ts +0 -56
  307. package/dist/oauth/StateContainer.d.ts +0 -36
  308. package/dist/proxy/GeoResourceProxy.d.ts +0 -69
  309. package/dist/proxy/OrganisationProxy.d.ts +0 -62
  310. package/dist/proxy/OwnedResourceProxy.d.ts +0 -60
  311. package/dist/proxy/ResourceProxy.d.ts +0 -32
  312. package/dist/proxy/SimpleResourceProxy.d.ts +0 -76
  313. package/dist/proxy/index.d.ts +0 -6
  314. package/dist/resources/Choropleth.d.ts +0 -20
  315. package/dist/resources/Color.d.ts +0 -9
  316. package/dist/resources/Contract.d.ts +0 -7
  317. package/dist/resources/Dimension.d.ts +0 -7
  318. package/dist/resources/DimensionSet.d.ts +0 -11
  319. package/dist/resources/Domain.d.ts +0 -7
  320. package/dist/resources/Faq.d.ts +0 -7
  321. package/dist/resources/Feature.d.ts +0 -9
  322. package/dist/resources/Font.d.ts +0 -4
  323. package/dist/resources/FontFamily.d.ts +0 -11
  324. package/dist/resources/Highlight.d.ts +0 -4
  325. package/dist/resources/InsetMap.d.ts +0 -10
  326. package/dist/resources/Job.d.ts +0 -56
  327. package/dist/resources/JobResult.d.ts +0 -76
  328. package/dist/resources/JobRevision.d.ts +0 -64
  329. package/dist/resources/JobShare.d.ts +0 -15
  330. package/dist/resources/JobType.d.ts +0 -9
  331. package/dist/resources/Language.d.ts +0 -4
  332. package/dist/resources/Layer.d.ts +0 -10
  333. package/dist/resources/LayerFaq.d.ts +0 -8
  334. package/dist/resources/LayerGroup.d.ts +0 -14
  335. package/dist/resources/Mapstyle.d.ts +0 -8
  336. package/dist/resources/MapstyleSet.d.ts +0 -13
  337. package/dist/resources/MapstyleSetColor.d.ts +0 -8
  338. package/dist/resources/Message.d.ts +0 -7
  339. package/dist/resources/MessageVariant.d.ts +0 -4
  340. package/dist/resources/Notification.d.ts +0 -4
  341. package/dist/resources/Organisation.d.ts +0 -99
  342. package/dist/resources/OrganisationNote.d.ts +0 -17
  343. package/dist/resources/Permission.d.ts +0 -4
  344. package/dist/resources/ProductTour.d.ts +0 -10
  345. package/dist/resources/ProductTourStep.d.ts +0 -7
  346. package/dist/resources/Role.d.ts +0 -14
  347. package/dist/resources/Svg.d.ts +0 -4
  348. package/dist/resources/SvgSet.d.ts +0 -11
  349. package/dist/resources/Tag.d.ts +0 -9
  350. package/dist/resources/TagType.d.ts +0 -13
  351. package/dist/resources/User.d.ts +0 -119
  352. package/dist/resources/VectorChoropleth.d.ts +0 -4
  353. package/dist/resources/VectorHighlight.d.ts +0 -4
  354. package/dist/resources/base/CrudBase.d.ts +0 -66
  355. package/dist/resources/base/CrudBase.d.ts.map +0 -1
  356. package/dist/resources/base/CrudSetBase.d.ts +0 -27
  357. package/dist/resources/base/CrudSetBase.d.ts.map +0 -1
  358. package/dist/resources/base/CrudSetItemBase.d.ts +0 -19
  359. package/dist/resources/base/CrudSetItemBase.d.ts.map +0 -1
  360. package/dist/resources/base/DownloadedResource.d.ts +0 -72
  361. package/dist/resources/base/DownloadedResource.d.ts.map +0 -1
  362. package/dist/resources/base/ResourceBase.d.ts +0 -164
  363. package/dist/resources/base/ResourceBase.d.ts.map +0 -1
  364. package/dist/resources/index.d.ts +0 -47
  365. package/dist/storage/CookiesDriver.d.ts +0 -37
  366. package/dist/storage/DataStoreContract.d.ts +0 -46
  367. package/dist/storage/DummyDriver.d.ts +0 -15
  368. package/dist/storage/FileDriver.d.ts +0 -54
  369. package/dist/storage/LocalStorageDriver.d.ts +0 -13
  370. package/dist/storage/StorageManager.d.ts +0 -46
  371. package/dist/traits/HandlesImages.d.ts +0 -15
  372. package/dist/traits/Injectable.d.ts +0 -60
  373. package/dist/traits/OwnableResource.d.ts +0 -18
  374. package/dist/traits/Trait.d.ts +0 -12
  375. package/dist/utils/Logger.d.ts +0 -55
  376. package/dist/utils/Singleton.d.ts +0 -9
  377. package/dist/utils/StaticClass.d.ts +0 -7
  378. package/dist/utils/Unobservable.d.ts +0 -13
  379. package/dist/utils/base64.d.ts +0 -12
  380. package/dist/utils/geo.d.ts +0 -74
  381. package/dist/utils/hash.d.ts +0 -15
  382. package/dist/utils/helpers.d.ts +0 -47
  383. package/dist/utils/node.d.ts +0 -15
  384. package/dist/utils/reflection.d.ts +0 -43
  385. package/dist/utils/requests.d.ts +0 -24
  386. package/dist/utils/uuid.d.ts +0 -19
  387. package/manual/assets/maps4news.svg +0 -23
  388. package/manual/building.md +0 -19
  389. package/manual/css/hide_import.css +0 -3
  390. package/manual/css/sidebar_fix.css +0 -3
  391. package/manual/examples.authentication.md +0 -205
  392. package/manual/examples.md +0 -153
  393. package/manual/installation.md +0 -33
  394. package/manual/js/sandbox.js +0 -26
  395. package/src/ImageHandler.js +0 -134
  396. package/src/Mapcreator.js +0 -719
  397. package/src/PaginatedResourceListing.js +0 -300
  398. package/src/RequestParameters.js +0 -711
  399. package/src/ResourceLister.js +0 -368
  400. package/src/enums/DeletedState.js +0 -49
  401. package/src/enums/Enum.js +0 -130
  402. package/src/enums/JobShareVisibility.js +0 -43
  403. package/src/enums/ResultStatus.js +0 -49
  404. package/src/enums/index.js +0 -36
  405. package/src/errors/AbstractError.js +0 -70
  406. package/src/errors/ApiError.js +0 -139
  407. package/src/errors/GeoError.js +0 -36
  408. package/src/errors/NodeError.js +0 -36
  409. package/src/errors/OAuthError.js +0 -71
  410. package/src/errors/StaticClassError.js +0 -37
  411. package/src/errors/ValidationError.js +0 -164
  412. package/src/errors/index.js +0 -39
  413. package/src/index.js +0 -76
  414. package/src/oauth/CookieFlow.js +0 -103
  415. package/src/oauth/DummyFlow.js +0 -63
  416. package/src/oauth/ImplicitFlow.js +0 -226
  417. package/src/oauth/ImplicitFlowPopup.js +0 -124
  418. package/src/oauth/OAuth.js +0 -131
  419. package/src/oauth/OAuthToken.js +0 -175
  420. package/src/oauth/PasswordFlow.js +0 -164
  421. package/src/oauth/StateContainer.js +0 -111
  422. package/src/proxy/GeoResourceProxy.js +0 -137
  423. package/src/proxy/OrganisationProxy.js +0 -149
  424. package/src/proxy/OwnedResourceProxy.js +0 -148
  425. package/src/proxy/ResourceProxy.js +0 -101
  426. package/src/proxy/SimpleResourceProxy.js +0 -188
  427. package/src/proxy/index.js +0 -37
  428. package/src/resources/Choropleth.js +0 -66
  429. package/src/resources/Color.js +0 -46
  430. package/src/resources/Contract.js +0 -42
  431. package/src/resources/Dimension.js +0 -42
  432. package/src/resources/DimensionSet.js +0 -56
  433. package/src/resources/Domain.js +0 -42
  434. package/src/resources/Faq.js +0 -42
  435. package/src/resources/Feature.js +0 -47
  436. package/src/resources/Font.js +0 -43
  437. package/src/resources/FontFamily.js +0 -55
  438. package/src/resources/Highlight.js +0 -39
  439. package/src/resources/InsetMap.js +0 -49
  440. package/src/resources/Job.js +0 -160
  441. package/src/resources/JobResult.js +0 -184
  442. package/src/resources/JobRevision.js +0 -201
  443. package/src/resources/JobShare.js +0 -61
  444. package/src/resources/JobType.js +0 -50
  445. package/src/resources/Language.js +0 -51
  446. package/src/resources/Layer.js +0 -48
  447. package/src/resources/LayerFaq.js +0 -47
  448. package/src/resources/LayerGroup.js +0 -57
  449. package/src/resources/Mapstyle.js +0 -45
  450. package/src/resources/MapstyleSet.js +0 -65
  451. package/src/resources/MapstyleSetColor.js +0 -51
  452. package/src/resources/Message.js +0 -94
  453. package/src/resources/MessageVariant.js +0 -37
  454. package/src/resources/Notification.js +0 -39
  455. package/src/resources/Organisation.js +0 -233
  456. package/src/resources/OrganisationNote.js +0 -57
  457. package/src/resources/Permission.js +0 -39
  458. package/src/resources/ProductTour.js +0 -53
  459. package/src/resources/ProductTourStep.js +0 -48
  460. package/src/resources/Role.js +0 -58
  461. package/src/resources/Svg.js +0 -39
  462. package/src/resources/SvgSet.js +0 -55
  463. package/src/resources/Tag.js +0 -50
  464. package/src/resources/TagType.js +0 -56
  465. package/src/resources/User.js +0 -251
  466. package/src/resources/VectorChoropleth.js +0 -40
  467. package/src/resources/VectorHighlight.js +0 -40
  468. package/src/resources/base/CrudBase.js +0 -204
  469. package/src/resources/base/CrudSetBase.js +0 -83
  470. package/src/resources/base/CrudSetItemBase.js +0 -82
  471. package/src/resources/base/DownloadedResource.js +0 -165
  472. package/src/resources/base/ResourceBase.js +0 -484
  473. package/src/resources/index.js +0 -81
  474. package/src/storage/CookiesDriver.js +0 -136
  475. package/src/storage/DataStoreContract.js +0 -111
  476. package/src/storage/DummyDriver.js +0 -91
  477. package/src/storage/FileDriver.js +0 -174
  478. package/src/storage/LocalStorageDriver.js +0 -108
  479. package/src/storage/StorageManager.js +0 -109
  480. package/src/traits/HandlesImages.js +0 -50
  481. package/src/traits/Injectable.js +0 -221
  482. package/src/traits/OwnableResource.js +0 -56
  483. package/src/traits/Trait.js +0 -43
  484. package/src/utils/Logger.js +0 -137
  485. package/src/utils/Singleton.js +0 -49
  486. package/src/utils/StaticClass.js +0 -43
  487. package/src/utils/Unobservable.js +0 -47
  488. package/src/utils/base64.js +0 -93
  489. package/src/utils/geo.js +0 -139
  490. package/src/utils/hash.js +0 -72
  491. package/src/utils/helpers.js +0 -178
  492. package/src/utils/node.js +0 -55
  493. package/src/utils/reflection.js +0 -170
  494. package/src/utils/requests.js +0 -120
  495. package/src/utils/uuid.js +0 -68
@@ -1,40 +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 ResourceBase from './base/ResourceBase';
35
-
36
- export default class VectorChoropleth extends ResourceBase {
37
- static get resourceName () {
38
- return 'choropleths/vector';
39
- }
40
- }
@@ -1,40 +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 ResourceBase from './base/ResourceBase';
35
-
36
- export default class VectorHighlight extends ResourceBase {
37
- static get resourceName () {
38
- return 'highlights/vector';
39
- }
40
- }
@@ -1,204 +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 { AbstractClassError } from '../../errors';
34
- import ResourceBase from './ResourceBase';
35
- import { makeCancelable, serializeUTCDate } from '../../utils/helpers';
36
-
37
- /**
38
- * Base of all resource items that support Crud operations
39
- * @abstract
40
- */
41
- export default class CrudBase extends ResourceBase {
42
- /**
43
- * @param {Mapcreator} api - Api instance
44
- * @param {Object<String, *>} data - Item data
45
- * @param {String} [altUrl] - Internal use, Optional alternative url for more complex routing
46
- */
47
- constructor (api, data = {}, altUrl = null) {
48
- super(api, data, altUrl);
49
-
50
- if (this.constructor === CrudBase) {
51
- throw new AbstractClassError();
52
- }
53
- }
54
-
55
- /**
56
- * Build data for create operation
57
- * @returns {Object<String, *>} - Create data
58
- * @protected
59
- */
60
- _buildCreateData () {
61
- this._updateProperties();
62
-
63
- const out = {};
64
- const keys = [].concat(
65
- Object.keys(this._properties),
66
- Object.keys(this._baseProperties),
67
- ).filter((item, pos, self) => self.indexOf(item) === pos);
68
-
69
- for (const key of keys) {
70
- out[key] = this._properties[key] || this._baseProperties[key];
71
- }
72
-
73
- delete out.id;
74
-
75
- return out;
76
- }
77
-
78
- /**
79
- * Save item. This will create a new item if `id` is unset
80
- * @returns {CancelablePromise<CrudBase>} - Current instance
81
- * @throws {ApiError} - If the api returns errors
82
- * @throws {ValidationError} - If the submitted data isn't valid
83
- */
84
- save () {
85
- return this.id ? this._update() : this._create();
86
- }
87
-
88
- /**
89
- * Store new item
90
- * @returns {CancelablePromise<CrudBase>} - Current instance
91
- * @throws {ApiError} - If the api returns errors
92
- * @throws {ValidationError} - If the submitted data isn't valid
93
- * @private
94
- */
95
- _create () {
96
- return makeCancelable(async signal => {
97
- const json = this._prepareData(this._buildCreateData());
98
-
99
- const { data } = await this.api.ky.post(this.baseUrl, { json, signal }).json();
100
-
101
- this._properties = {};
102
- this._baseProperties = data;
103
-
104
- this._updateProperties();
105
-
106
- return this;
107
- });
108
- }
109
-
110
- /**
111
- * Update existing item
112
- * @returns {CancelablePromise<CrudBase>} - Current instance
113
- * @throws {ApiError} - If the api returns errors
114
- * @throws {ValidationError} - If the submitted data isn't valid
115
- * @protected
116
- */
117
- _update () {
118
- this._updateProperties();
119
-
120
- return makeCancelable(async signal => {
121
- // We'll just fake it, no need to bother the server
122
- // with an empty request.
123
- if (Object.keys(this._properties).length === 0) {
124
- return this;
125
- }
126
-
127
- const json = this._prepareData(this._properties);
128
-
129
- await this.api.ky.patch(this.url, { json, signal });
130
-
131
- // Reset changes
132
- Object.assign(this._baseProperties, this._properties);
133
- this._properties = {};
134
-
135
- if ('updated_at' in this._baseProperties) {
136
- this._baseProperties['updated_at'] = new Date();
137
- }
138
-
139
- return this;
140
- });
141
- }
142
-
143
- /**
144
- * Delete item
145
- * @param {Boolean} [updateSelf=true] - Update current instance (set the deletedAt property)
146
- * @returns {CancelablePromise<CrudBase>} - Current instance
147
- * @throws {ApiError} - If the api returns errors
148
- * @throws {ValidationError} - If the submitted data isn't valid
149
- */
150
- delete (updateSelf = true) {
151
- return makeCancelable(async signal => {
152
- await this.api.ky.delete(this.url, { signal });
153
-
154
- if (updateSelf) {
155
- this._baseProperties['deleted_at'] = new Date();
156
- }
157
-
158
- return this;
159
- });
160
- }
161
-
162
- /**
163
- * Restore item
164
- * @param {Boolean} [updateSelf=true] - Update current instance (unset the deletedAt property)
165
- * @returns {CancelablePromise<CrudBase>} - New restored instance
166
- * @throws {ApiError} - If the api returns errors
167
- * @throws {ValidationError} - If the submitted data isn't valid
168
- */
169
- restore (updateSelf = true) {
170
- return makeCancelable(async signal => {
171
- const { data } = await this.api.ky.put(this.url, { signal }).json();
172
- const instance = new this.constructor(this.api, data);
173
-
174
- if (updateSelf) {
175
- this._properties = {};
176
- this._baseProperties = data;
177
-
178
- this._updateProperties();
179
- }
180
-
181
- return instance;
182
- });
183
- }
184
-
185
- /**
186
- * Prepare data to be sent to the api
187
- * @param {Object} data
188
- * @returns {Object} prepared
189
- * @private
190
- */
191
- _prepareData (data) {
192
- const output = {};
193
-
194
- for (const [key, value] of Object.entries(data)) {
195
- if (value instanceof Date) {
196
- output[key] = serializeUTCDate(value);
197
- } else {
198
- output[key] = value;
199
- }
200
- }
201
-
202
- return output;
203
- }
204
- }
@@ -1,83 +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 { AbstractError } from '../../errors/AbstractError';
34
- import CrudBase from './CrudBase';
35
- import { camel as camelCase } from 'case';
36
-
37
- /**
38
- * Crud base for resource sets
39
- * @abstract
40
- */
41
- export default class CrudSetBase extends CrudBase {
42
-
43
- /**
44
- * Get items associated with the set
45
- * @returns {SimpleResourceProxy} - A proxy for accessing the resource
46
- */
47
- get items () {
48
- const url = `${this.url}/items`;
49
- const data = {};
50
-
51
- data[this.constructor.foreignKeyName] = this.id;
52
-
53
- return this._proxyResourceList(this._Child, url, data);
54
- }
55
-
56
- /**
57
- * Child constructor
58
- * @returns {Class<ResourceBase>} - Child constructor
59
- * @abstract
60
- * @protected
61
- */
62
- get _Child () {
63
- throw new AbstractError();
64
- }
65
-
66
- /**
67
- * Get the foreign key name
68
- * @returns {string} - Foreign key name
69
- * @example
70
- * api.fontFamilies.select(1).constructor.foreignKeyName === 'fontFamilyId'
71
- */
72
- static get foreignKeyName () {
73
- if (!this._fk) {
74
- let key = this.name; // ex: FontFamily
75
-
76
- key = camelCase(key); // ex: fontFamily
77
-
78
- this._fk = `${key}Id`;
79
- }
80
-
81
- return this._fk;
82
- }
83
- }
@@ -1,82 +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 { AbstractClassError } from '../../errors/AbstractError';
34
- import CrudBase from './CrudBase';
35
- import { camel as camelCase } from 'case';
36
-
37
- /**
38
- * Items that are part of a set
39
- * @abstract
40
- */
41
- export default class CrudSetItemBase extends CrudBase {
42
- /**
43
- * @param {Mapcreator} api - Api instance
44
- * @param {Object<String, *>} data - Item data
45
- * @param {String} [altUrl] - Internal use, Optional alternative url for more complex routing
46
- */
47
- constructor (api, data = {}, altUrl = null) {
48
- super(api, data, altUrl);
49
-
50
- if (this.constructor === CrudBase) {
51
- throw new AbstractClassError();
52
- }
53
- }
54
-
55
- get hasParent () {
56
- const parentKey = camelCase(this.constructor.parentKey);
57
-
58
- return this.hasOwnProperty(parentKey);
59
- }
60
-
61
- /**
62
- * Get the parent id
63
- * @returns {number|undefined} - Parent number
64
- */
65
- get parentId () {
66
- if (this.hasParent) {
67
- const parentKey = camelCase(this.constructor.parentKey);
68
-
69
- return Number(this[parentKey]);
70
- }
71
-
72
- return void 0;
73
- }
74
-
75
- /**
76
- * Get the parent key
77
- * @returns {string} - Parent key
78
- */
79
- static get parentKey () {
80
- return this.resourceName.replace(/s$/, '_set_id');
81
- }
82
- }
@@ -1,165 +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 { base64Encode } from '../../utils/base64';
34
- import { isNode } from '../../utils/node';
35
-
36
- /**
37
- * Downloaded resource from the api
38
- */
39
- export default class DownloadedResource {
40
- /**
41
- *
42
- * @param {ArrayBuffer|Buffer} data - Data
43
- * @param {string} [type=application/octet-stream] - Mime-type
44
- * @param {string} [fileName=Untitled] - File name
45
- */
46
- constructor (data, type = 'application/octet-stream', fileName = 'Untitled') {
47
- this._data = data;
48
- this._type = type;
49
- this._fileName = fileName;
50
- }
51
-
52
- /**
53
- * Build instance from response
54
- * @param {Response} response - Response
55
- * @returns {DownloadedResource} - Instance
56
- */
57
- static async fromResponse (response) {
58
- // Get data
59
- const data = await response.arrayBuffer();
60
-
61
- // Find mimeType
62
- let mimeType;
63
- const contentType = response.headers.get('content-type');
64
-
65
- if (contentType) {
66
- mimeType = contentType.split(';')[0].trim();
67
- }
68
-
69
- // Extract file name
70
- let fileName;
71
- const contentDisposition = response.headers.get('content-disposition');
72
-
73
- if (contentDisposition) {
74
- const regex = /filename[^;=\n]*=((['"])(.*?)\2|([^;\s]*))/i;
75
- const matches = regex.exec(contentDisposition);
76
-
77
- if (matches) {
78
- fileName = matches[3] || matches[4];
79
- }
80
- }
81
-
82
- return new DownloadedResource(data, mimeType, fileName);
83
- }
84
-
85
- /**
86
- * In Nodejs it will return a {@link Buffer} and in the browser it will respond with a {@link ArrayBuffer}
87
- * @returns {ArrayBuffer|Buffer} - Resource data
88
- */
89
- get data () {
90
- return this._data;
91
- }
92
-
93
- /**
94
- * Resource mime-type
95
- * @return {string} - Mime-type
96
- */
97
- get type () {
98
- return this._type;
99
- }
100
-
101
- /**
102
- * Resource file name, if available
103
- * @return {string} - File name
104
- */
105
- get fileName () {
106
- return this._fileName;
107
- }
108
-
109
- /**
110
- * Get the size of the data
111
- * @return {Number} - Size in bytes
112
- */
113
- get size () {
114
- return this.data.length;
115
- }
116
-
117
- /**
118
- * Create a object url
119
- * The URL lifetime is tied to the document in the window on which it
120
- * was created. The new object URL represents the resource.
121
- * *Do not forget* to release the object urls once used.
122
- * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
123
- * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Memory_management
124
- * @return {string} - Object url
125
- */
126
- createObjectUrl () {
127
- if (isNode()) {
128
- throw new Error('Object urls are not supported by Node');
129
- }
130
-
131
- return URL.createObjectURL(this.createBlob());
132
- }
133
-
134
- /**
135
- * Create a blob from the resource
136
- * @returns {Blob}
137
- */
138
- createBlob () {
139
- return new Blob([this.data], { type: this.type });
140
- }
141
-
142
- /**
143
- * Get base64-encoded data uri
144
- * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
145
- * @returns {string} - Data uri
146
- */
147
- toDataUri () {
148
- return `data:${this.type};base64,${this.toBase64()}`;
149
- }
150
-
151
- /**
152
- * Base64 encode data
153
- * @returns {string} - Base64 encoded data
154
- */
155
- toBase64 () {
156
- return base64Encode(this.data);
157
- }
158
-
159
- /**
160
- * @inheritDoc
161
- */
162
- toString () {
163
- return this.data.toString();
164
- }
165
- }