@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,484 +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 { camel as camelCase, snake as snakeCase } from 'case';
34
- import { AbstractClassError, AbstractError } from '../../errors/AbstractError';
35
- import Mapcreator from '../../Mapcreator';
36
- import SimpleResourceProxy from '../../proxy/SimpleResourceProxy';
37
- import Injectable from '../../traits/Injectable';
38
- import { fnv32b } from '../../utils/hash';
39
- import { isParentOf, mix } from '../../utils/reflection';
40
- import { clone, makeCancelable } from '../../utils/helpers';
41
-
42
- function unique (input) {
43
- return input.filter((v, i) => input.findIndex(vv => vv === v) === i);
44
- }
45
-
46
- /**
47
- * Resource base
48
- * @abstract
49
- */
50
- export default class ResourceBase extends mix(null, Injectable) {
51
- /**
52
- * @param {Mapcreator} api - Api instance
53
- * @param {Object<String, *>} data - Item data
54
- * @param {String} [altUrl] - Internal use, Optional alternative url for more complex routing
55
- */
56
- constructor (api, data = {}, altUrl = null) {
57
- super();
58
-
59
- if (this.constructor === ResourceBase) {
60
- throw new AbstractClassError();
61
- }
62
-
63
- if (altUrl) {
64
- this.__baseUrl = altUrl;
65
- }
66
-
67
- this.api = api;
68
-
69
- // De-reference
70
- data = clone(data);
71
-
72
- // Normalize keys to snake_case
73
- // Fix data types
74
- for (const key of Object.keys(data)) {
75
- const newKey = snakeCase(key);
76
-
77
- if (camelCase(newKey) in this) {
78
- delete data[key];
79
-
80
- continue;
81
- }
82
-
83
- data[newKey] = this._guessType(newKey, data[key]);
84
-
85
- if (newKey !== key) {
86
- delete data[key];
87
- }
88
- }
89
-
90
- this._baseProperties = data || {};
91
- this._properties = {};
92
- this._api = api;
93
-
94
- const fields = Object.keys(this._baseProperties);
95
-
96
- // Apply properties
97
- for (const key of fields) {
98
- this._applyProperty(key);
99
- }
100
-
101
- // Add deleted field if possible
102
- if (fields.includes('deleted_at')) {
103
- Object.defineProperty(this, 'deleted', {
104
- enumerable: true,
105
- configurable: true,
106
-
107
- get: () => Boolean(this.deletedAt),
108
- });
109
- }
110
-
111
- /* We keep track of any new fields by recording the
112
- * keys the object currently has. We don't need no
113
- * fancy-pants observers, Proxies etc.
114
- * snake_case only
115
- */
116
- this._knownFields = Object.keys(this).filter(x => x[0] !== '_');
117
- }
118
-
119
- /**
120
- * Get api instance
121
- * @returns {Mapcreator} - Api instance
122
- */
123
- get api () {
124
- return this._api;
125
- }
126
-
127
- /**
128
- * Set the api instance
129
- * @param {Mapcreator} value - Api instance
130
- */
131
- set api (value) {
132
- if (!isParentOf(Mapcreator, value)) {
133
- throw new TypeError('Expected api to be of type Mapcreator or null');
134
- }
135
-
136
- this._api = value;
137
- }
138
-
139
- /**
140
- * Resource path template
141
- * @returns {String} - Path template
142
- */
143
- static get resourcePath () {
144
- return `/${this.resourceName}/{id}`;
145
- }
146
-
147
- /**
148
- * Resource name
149
- * @returns {String} - Resource name
150
- * @abstract
151
- */
152
- static get resourceName () {
153
- throw new AbstractError();
154
- }
155
-
156
- /**
157
- * Returns the url key of the resource
158
- * @returns {String} - Resource key
159
- */
160
- static get resourceUrlKey () {
161
- return 'id';
162
- }
163
-
164
- /**
165
- * Protected read-only fields
166
- * @returns {Array<string>} - Array containing protected read-only fields
167
- * @protected
168
- */
169
- static get protectedFields () {
170
- return ['id', 'created_at', 'updated_at', 'deleted_at'];
171
- }
172
-
173
- /**
174
- * Returns if the resource is readonly
175
- * @returns {boolean} - Readonly
176
- */
177
- static get readonly () {
178
- return false;
179
- }
180
-
181
- /**
182
- * Moves new fields to this._properties and turns them into a getter/setter
183
- * @protected
184
- */
185
- _updateProperties () {
186
- // Build a list of new fields
187
- let fields = Object.keys(this)
188
- .filter(x => x[0] !== '_')
189
- .filter(x => !this._knownFields.includes(x));
190
-
191
- // Move the pointer from this to the properties object
192
- for (const key of fields) {
193
- const newKey = snakeCase(key);
194
-
195
- this._properties[newKey] = this[key];
196
- delete this[key];
197
-
198
- this._applyProperty(newKey);
199
- this._knownFields.push(newKey);
200
- }
201
-
202
- // Build a list of new BaseProperty fields
203
- fields = Object.keys(this._baseProperties)
204
- .filter(x => !this._knownFields.includes(camelCase(x)));
205
-
206
- for (const key of fields) {
207
- this._applyProperty(key);
208
- this._knownFields.push(key);
209
- }
210
-
211
- this._knownFields = unique(this._knownFields);
212
- }
213
-
214
- /**
215
- * Clean up instance and commit all changes locally.
216
- * This means that any changed fields will be marked
217
- * as unchanged whilst keeping their new values. The
218
- * changes will not be saved.
219
- */
220
- sanitize () {
221
- this._updateProperties();
222
- Object.assign(this._baseProperties, this._properties);
223
- this._properties = {};
224
- }
225
-
226
- /**
227
- * Resets model instance to it's original state
228
- * @param {Array<string>|string|null} [fields=null] - Fields to reset, defaults to all fields
229
- */
230
- reset (fields = null) {
231
- this._updateProperties();
232
-
233
- if (typeof fields === 'string') {
234
- this.reset([fields]);
235
- } else if (fields === null) {
236
- this._properties = {}; // Delete all
237
- } else if (Array.isArray(fields)) {
238
- fields
239
- .map(String)
240
- .map(snakeCase)
241
- .forEach(field => delete this._properties[field]);
242
- }
243
- }
244
-
245
- /**
246
- * Clone the object
247
- * @returns {ResourceBase} - Exact clone of the object
248
- */
249
- clone () {
250
- this._updateProperties();
251
-
252
- const out = new this.constructor(this.api, this._baseProperties);
253
-
254
- for (const key of Object.keys(this._properties)) {
255
- out[key] = this._properties[key];
256
- }
257
-
258
- return out;
259
- }
260
-
261
- /**
262
- * Refresh the resource by requesting it from the server again
263
- * @param {Boolean} updateSelf - Update the current instance
264
- * @returns {CancelablePromise<ResourceBase>} - Refreshed instance
265
- * @throws {ApiError} - If the api returns errors
266
- */
267
- refresh (updateSelf = true) {
268
- return makeCancelable(async signal => {
269
- const { data } = await this.api.ky.get(this.url, { signal }).json();
270
-
271
- if (updateSelf) {
272
- this._properties = {};
273
- this._baseProperties = data;
274
-
275
- this._updateProperties();
276
- }
277
-
278
- return new this.constructor(this._api, data);
279
- });
280
- }
281
-
282
- /**
283
- * Create proxy for property
284
- * @param {string} key - property key
285
- * @private
286
- */
287
- _applyProperty (key) {
288
- const desc = {
289
- enumerable: true,
290
- configurable: true,
291
-
292
- get: () => {
293
- if (this._properties.hasOwnProperty(key)) {
294
- return this._properties[key];
295
- }
296
-
297
- return this._baseProperties[key];
298
- },
299
- };
300
-
301
- if (!this.constructor.protectedFields.includes(key) && !this.constructor.readonly) {
302
- desc.set = val => {
303
- this._properties[key] = this._guessType(key, val);
304
- delete this._url; // Clears url cache
305
- };
306
- }
307
-
308
- const newKey = camelCase(key);
309
-
310
- Object.defineProperty(this, newKey, desc);
311
- }
312
-
313
- /**
314
- * Guess type based on property name
315
- * @param {string} name - Field name
316
- * @param {*} value - Field Value
317
- * @protected
318
- * @returns {*} - Original or converted value
319
- */
320
- _guessType (name, value) {
321
- if (name.endsWith('_at') || name.startsWith('date_')) {
322
- return typeof value === 'string' ? new Date(value.replace(' ', 'T')) : value;
323
- } else if (/(_|^)id$/.test(name) && value !== null) {
324
- return Number.isFinite(Number(value)) ? Number(value) : value;
325
- }
326
-
327
- return value;
328
- }
329
-
330
- /**
331
- * If the resource can be owned by an organisation
332
- * @returns {boolean} - Can be owned by an organisation
333
- */
334
- get ownable () {
335
- return false;
336
- }
337
-
338
- /**
339
- * Auto generated resource url
340
- * @returns {string} - Resource url
341
- */
342
- get url () {
343
- if (!this._url) {
344
- let url = `${this._api.url}${this.constructor.resourcePath}`;
345
-
346
- // Find and replace any keys
347
- url = url.replace(/{(\w+)}/g, (match, key) => this[camelCase(key)]);
348
-
349
- this._url = url;
350
- }
351
-
352
- return this._url;
353
- }
354
-
355
- /**
356
- * Auto generated Resource base url
357
- * @returns {string} - Resource base url
358
- */
359
- get baseUrl () {
360
- if (!this.__baseUrl) {
361
- const basePath = this.constructor.resourcePath.match(/^(\/[^{]+\b)/)[1];
362
-
363
- this.__baseUrl = `${this._api.url}${basePath}`;
364
- }
365
-
366
- return this.__baseUrl;
367
- }
368
-
369
- /**
370
- * List fields that contain object data
371
- * @returns {Array<String>} - A list of fields
372
- */
373
- get fieldNames () {
374
- const keys = unique([
375
- ...Object.keys(this._baseProperties),
376
- ...Object.keys(this._properties),
377
- ]);
378
-
379
- return keys.map(camelCase);
380
- }
381
-
382
- /**
383
- * String representation of the resource, similar to Python's __repr__
384
- * @returns {string} - Resource name and id
385
- */
386
- toString () {
387
- return `${this.constructor.name}(${this[this.resourceUrlKey]})`;
388
- }
389
-
390
- /**
391
- * Transform instance to object
392
- * @param {boolean} [camelCaseKeys=false] - camelCase object keys
393
- * @returns {{}} - Object
394
- */
395
- toObject (camelCaseKeys = false) {
396
- this._updateProperties();
397
-
398
- const out = { ...this._baseProperties, ...this._properties };
399
-
400
- if (camelCaseKeys) {
401
- for (const key of Object.keys(out)) {
402
- const ccKey = camelCase(key);
403
-
404
- if (key !== ccKey) {
405
- out[ccKey] = out[key];
406
-
407
- delete out[key];
408
- }
409
- }
410
- }
411
-
412
- return out;
413
- }
414
-
415
- /**
416
- * Macro for resource listing
417
- * @param {string|Class<ResourceBase>} Target - Target object
418
- * @param {?String} url - Target url, if null it will guess
419
- * @param {object} seedData - Internal use, used for seeding SimpleResourceProxy::new
420
- * @returns {SimpleResourceProxy} - A proxy for accessing the resource
421
- * @protected
422
- */
423
- _proxyResourceList (Target, url = null, seedData = {}) {
424
- if (!url) {
425
- url = `${Target.resourceName.replace(/s+$/, '')}s`;
426
- }
427
-
428
- if (typeof url === 'string' && !url.startsWith('/') && !url.match(/https?:/)) {
429
- url = `${this.url}/${url}`;
430
- }
431
-
432
- return new SimpleResourceProxy(this.api, Target, url, seedData);
433
- }
434
-
435
- /**
436
- * Static proxy generation
437
- * @param {string|Class} Target - Constructor or url
438
- * @param {Class?} Constructor - Constructor for a resource that the results should be cast to
439
- * @param {Object<string, *>} seedData - Optional data to seed the resolved resources
440
- * @returns {SimpleResourceProxy} - A proxy for accessing the resource
441
- * @example
442
- * user.static('jobs').lister();
443
- *
444
- * @example
445
- * class FooBar extends ResourceBase {
446
- * static get resourceName() {
447
- * return 'custom';
448
- * }
449
- * }
450
- *
451
- * api.static(FooBar)
452
- * .get(1)
453
- * .then(console.log);
454
- */
455
- static (Target, Constructor = ResourceBase, seedData = {}) {
456
- let url;
457
-
458
- if (typeof Target === 'string') {
459
- url = `${this.url}/${Target}`;
460
-
461
- const name = Constructor.name || 'AnonymousResource';
462
-
463
- Target = class AnonymousResource extends Constructor {
464
- static get resourceName () {
465
- return Object.getPrototypeOf(this).resourceName || 'anonymous';
466
- }
467
-
468
- static get resourcePath () {
469
- return url;
470
- }
471
- };
472
-
473
- Object.defineProperty(Target, 'name', {
474
- value: `${name}_${fnv32b(url)}`,
475
- });
476
- }
477
-
478
- if (!isParentOf(ResourceBase, Target)) {
479
- throw new TypeError('Expected Target to be of type String or ResourceBase constructor');
480
- }
481
-
482
- return this._proxyResourceList(Target, url, seedData);
483
- }
484
- }
@@ -1,81 +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
- export { default as Choropleth } from './Choropleth';
34
- export { default as Color } from './Color';
35
- export { default as Contract } from './Contract';
36
- export { default as Dimension } from './Dimension';
37
- export { default as DimensionSet } from './DimensionSet';
38
- export { default as Domain } from './Domain';
39
- export { default as Faq } from './Faq';
40
- export { default as Feature } from './Feature';
41
- export { default as Font } from './Font';
42
- export { default as FontFamily } from './FontFamily';
43
- export { default as Highlight } from './Highlight';
44
- export { default as InsetMap } from './InsetMap';
45
- export { default as Job } from './Job';
46
- export { default as JobResult } from './JobResult';
47
- export { default as JobRevision } from './JobRevision';
48
- export { default as JobShare } from './JobShare';
49
- export { default as JobType } from './JobType';
50
- export { default as Language } from './Language';
51
- export { default as Layer } from './Layer';
52
- export { default as LayerFaq } from './LayerFaq';
53
- export { default as LayerGroup } from './LayerGroup';
54
- export { default as Mapstyle } from './Mapstyle';
55
- export { default as MapstyleSet } from './MapstyleSet';
56
- export { default as Message } from './Message';
57
- export { default as Notification } from './Notification';
58
- export { default as Organisation } from './Organisation';
59
- export { default as OrganisationNote } from './OrganisationNote';
60
- export { default as Permission } from './Permission';
61
- export { default as ProductTour } from './ProductTour';
62
- export { default as ProductTourStep } from './ProductTourStep';
63
- export { default as Role } from './Role';
64
- export { default as Svg } from './Svg';
65
- export { default as SvgSet } from './SvgSet';
66
- export { default as Tag } from './Tag';
67
- export { default as TagType } from './TagType';
68
- export { default as User } from './User';
69
- export { default as VectorHighlight } from './VectorHighlight';
70
- export { default as VectorChoropleth } from './VectorChoropleth';
71
-
72
- import CrudBase from './base/CrudBase';
73
- import CrudSetBase from './base/CrudSetBase';
74
- import ResourceBase from './base/ResourceBase';
75
-
76
- /**
77
- * @private
78
- */
79
- export const base = {
80
- CrudBase, CrudSetBase, ResourceBase,
81
- };
@@ -1,136 +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 { isNode } from '../utils/node';
34
- import DataStoreContract from './DataStoreContract';
35
-
36
- /**
37
- * @private
38
- * @todo fix
39
- */
40
- export default class CookiesDriver extends DataStoreContract {
41
- constructor (prefix = '_m4n_') {
42
- super();
43
-
44
- this.__prefix = prefix;
45
- }
46
-
47
- /**
48
- * Cookie name prefix
49
- * @returns {String} - Prefix
50
- * @private
51
- */
52
- get _prefix () {
53
- return this.__prefix;
54
- }
55
-
56
- /**
57
- * @inheritDoc
58
- */
59
- static get secure () {
60
- return window.location.protocol === 'https:';
61
- }
62
-
63
- /**
64
- * @inheritDoc
65
- */
66
- static get available () {
67
- return !isNode();
68
- }
69
-
70
- /**
71
- * Store a value in the storage
72
- * @param {String} name - value name
73
- * @param {*} value - value
74
- * @param {Date|String} [expires=2050-01-01] - Expiration date
75
- */
76
- set (name, value, expires = new Date('2050-01-01')) {
77
- name = encodeURIComponent(this._prefix + name);
78
- value = encodeURIComponent(value);
79
-
80
- if (expires instanceof Date) {
81
- expires = expires.toUTCString();
82
- }
83
-
84
- let cookie = `${name}=${value}; expires=${expires}`;
85
-
86
- if (CookiesDriver.secure) {
87
- cookie += '; secure';
88
- }
89
-
90
- document.cookie = cookie;
91
- }
92
-
93
- /**
94
- * @inheritDoc
95
- */
96
- get (name) {
97
- name = this._prefix + name;
98
-
99
- return this._toObject()[name];
100
- }
101
-
102
- /**
103
- * @inheritDoc
104
- */
105
- remove (name) {
106
- this.set(name, '', new Date(1970));
107
- }
108
-
109
- /**
110
- * @inheritDoc
111
- */
112
- keys () {
113
- const regex = new RegExp(`^${this._prefix}`);
114
-
115
- return Object.keys(this._toObject()).map(x => x.replace(regex, ''));
116
- }
117
-
118
- /**
119
- * Extract cookies and turn them into a object
120
- * @returns {Object} - cookies
121
- * @private
122
- */
123
- _toObject () {
124
- const cookies = {};
125
-
126
- document.cookie
127
- .split(';')
128
- .map(x => x.trim().split('=').map(decodeURIComponent))
129
- .filter(x => x[0].startsWith(this._prefix))
130
- .forEach(x => {
131
- cookies[x[0]] = x[1];
132
- });
133
-
134
- return cookies;
135
- }
136
- }