@mapcreator/api 3.3.7 → 5.0.0-alpha.101

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 (496) 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 +96 -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 -344
  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 -14645
  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 -12810
  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 -27
  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/DomainLoginMethod.d.ts +0 -7
  321. package/dist/resources/Faq.d.ts +0 -7
  322. package/dist/resources/Feature.d.ts +0 -9
  323. package/dist/resources/Font.d.ts +0 -4
  324. package/dist/resources/FontFamily.d.ts +0 -11
  325. package/dist/resources/Highlight.d.ts +0 -4
  326. package/dist/resources/InsetMap.d.ts +0 -10
  327. package/dist/resources/Job.d.ts +0 -56
  328. package/dist/resources/JobResult.d.ts +0 -76
  329. package/dist/resources/JobRevision.d.ts +0 -64
  330. package/dist/resources/JobShare.d.ts +0 -15
  331. package/dist/resources/JobType.d.ts +0 -9
  332. package/dist/resources/Language.d.ts +0 -4
  333. package/dist/resources/Layer.d.ts +0 -10
  334. package/dist/resources/LayerFaq.d.ts +0 -8
  335. package/dist/resources/LayerGroup.d.ts +0 -14
  336. package/dist/resources/Mapstyle.d.ts +0 -8
  337. package/dist/resources/MapstyleSet.d.ts +0 -13
  338. package/dist/resources/MapstyleSetColor.d.ts +0 -8
  339. package/dist/resources/Message.d.ts +0 -7
  340. package/dist/resources/MessageVariant.d.ts +0 -4
  341. package/dist/resources/Notification.d.ts +0 -4
  342. package/dist/resources/Organisation.d.ts +0 -99
  343. package/dist/resources/OrganisationNote.d.ts +0 -17
  344. package/dist/resources/Permission.d.ts +0 -4
  345. package/dist/resources/ProductTour.d.ts +0 -10
  346. package/dist/resources/ProductTourStep.d.ts +0 -7
  347. package/dist/resources/Role.d.ts +0 -14
  348. package/dist/resources/Svg.d.ts +0 -4
  349. package/dist/resources/SvgSet.d.ts +0 -11
  350. package/dist/resources/Tag.d.ts +0 -9
  351. package/dist/resources/TagType.d.ts +0 -13
  352. package/dist/resources/User.d.ts +0 -119
  353. package/dist/resources/VectorChoropleth.d.ts +0 -4
  354. package/dist/resources/VectorHighlight.d.ts +0 -4
  355. package/dist/resources/base/CrudBase.d.ts +0 -66
  356. package/dist/resources/base/CrudBase.d.ts.map +0 -1
  357. package/dist/resources/base/CrudSetBase.d.ts +0 -27
  358. package/dist/resources/base/CrudSetBase.d.ts.map +0 -1
  359. package/dist/resources/base/CrudSetItemBase.d.ts +0 -19
  360. package/dist/resources/base/CrudSetItemBase.d.ts.map +0 -1
  361. package/dist/resources/base/DownloadedResource.d.ts +0 -72
  362. package/dist/resources/base/DownloadedResource.d.ts.map +0 -1
  363. package/dist/resources/base/ResourceBase.d.ts +0 -164
  364. package/dist/resources/base/ResourceBase.d.ts.map +0 -1
  365. package/dist/resources/index.d.ts +0 -48
  366. package/dist/storage/CookiesDriver.d.ts +0 -37
  367. package/dist/storage/DataStoreContract.d.ts +0 -46
  368. package/dist/storage/DummyDriver.d.ts +0 -15
  369. package/dist/storage/FileDriver.d.ts +0 -54
  370. package/dist/storage/LocalStorageDriver.d.ts +0 -13
  371. package/dist/storage/StorageManager.d.ts +0 -46
  372. package/dist/traits/HandlesImages.d.ts +0 -15
  373. package/dist/traits/Injectable.d.ts +0 -60
  374. package/dist/traits/OwnableResource.d.ts +0 -18
  375. package/dist/traits/Trait.d.ts +0 -12
  376. package/dist/utils/Logger.d.ts +0 -55
  377. package/dist/utils/Singleton.d.ts +0 -9
  378. package/dist/utils/StaticClass.d.ts +0 -7
  379. package/dist/utils/Unobservable.d.ts +0 -13
  380. package/dist/utils/base64.d.ts +0 -12
  381. package/dist/utils/geo.d.ts +0 -74
  382. package/dist/utils/hash.d.ts +0 -15
  383. package/dist/utils/helpers.d.ts +0 -47
  384. package/dist/utils/node.d.ts +0 -15
  385. package/dist/utils/reflection.d.ts +0 -43
  386. package/dist/utils/requests.d.ts +0 -24
  387. package/dist/utils/uuid.d.ts +0 -19
  388. package/manual/assets/maps4news.svg +0 -23
  389. package/manual/building.md +0 -19
  390. package/manual/css/hide_import.css +0 -3
  391. package/manual/css/sidebar_fix.css +0 -3
  392. package/manual/examples.authentication.md +0 -205
  393. package/manual/examples.md +0 -153
  394. package/manual/installation.md +0 -33
  395. package/manual/js/sandbox.js +0 -26
  396. package/src/ImageHandler.js +0 -134
  397. package/src/Mapcreator.js +0 -713
  398. package/src/PaginatedResourceListing.js +0 -300
  399. package/src/RequestParameters.js +0 -711
  400. package/src/ResourceLister.js +0 -368
  401. package/src/enums/DeletedState.js +0 -49
  402. package/src/enums/Enum.js +0 -130
  403. package/src/enums/JobShareVisibility.js +0 -43
  404. package/src/enums/ResultStatus.js +0 -49
  405. package/src/enums/index.js +0 -36
  406. package/src/errors/AbstractError.js +0 -70
  407. package/src/errors/ApiError.js +0 -139
  408. package/src/errors/GeoError.js +0 -36
  409. package/src/errors/NodeError.js +0 -36
  410. package/src/errors/OAuthError.js +0 -71
  411. package/src/errors/StaticClassError.js +0 -37
  412. package/src/errors/ValidationError.js +0 -164
  413. package/src/errors/index.js +0 -39
  414. package/src/index.js +0 -75
  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/DomainLoginMethod.js +0 -42
  435. package/src/resources/Faq.js +0 -42
  436. package/src/resources/Feature.js +0 -47
  437. package/src/resources/Font.js +0 -43
  438. package/src/resources/FontFamily.js +0 -55
  439. package/src/resources/Highlight.js +0 -39
  440. package/src/resources/InsetMap.js +0 -49
  441. package/src/resources/Job.js +0 -160
  442. package/src/resources/JobResult.js +0 -184
  443. package/src/resources/JobRevision.js +0 -201
  444. package/src/resources/JobShare.js +0 -61
  445. package/src/resources/JobType.js +0 -50
  446. package/src/resources/Language.js +0 -51
  447. package/src/resources/Layer.js +0 -48
  448. package/src/resources/LayerFaq.js +0 -47
  449. package/src/resources/LayerGroup.js +0 -57
  450. package/src/resources/Mapstyle.js +0 -45
  451. package/src/resources/MapstyleSet.js +0 -65
  452. package/src/resources/MapstyleSetColor.js +0 -51
  453. package/src/resources/Message.js +0 -94
  454. package/src/resources/MessageVariant.js +0 -37
  455. package/src/resources/Notification.js +0 -39
  456. package/src/resources/Organisation.js +0 -233
  457. package/src/resources/OrganisationNote.js +0 -57
  458. package/src/resources/Permission.js +0 -39
  459. package/src/resources/ProductTour.js +0 -53
  460. package/src/resources/ProductTourStep.js +0 -48
  461. package/src/resources/Role.js +0 -58
  462. package/src/resources/Svg.js +0 -39
  463. package/src/resources/SvgSet.js +0 -55
  464. package/src/resources/Tag.js +0 -50
  465. package/src/resources/TagType.js +0 -56
  466. package/src/resources/User.js +0 -251
  467. package/src/resources/VectorChoropleth.js +0 -40
  468. package/src/resources/VectorHighlight.js +0 -40
  469. package/src/resources/base/CrudBase.js +0 -204
  470. package/src/resources/base/CrudSetBase.js +0 -83
  471. package/src/resources/base/CrudSetItemBase.js +0 -82
  472. package/src/resources/base/DownloadedResource.js +0 -165
  473. package/src/resources/base/ResourceBase.js +0 -484
  474. package/src/resources/index.js +0 -82
  475. package/src/storage/CookiesDriver.js +0 -136
  476. package/src/storage/DataStoreContract.js +0 -111
  477. package/src/storage/DummyDriver.js +0 -91
  478. package/src/storage/FileDriver.js +0 -174
  479. package/src/storage/LocalStorageDriver.js +0 -108
  480. package/src/storage/StorageManager.js +0 -109
  481. package/src/traits/HandlesImages.js +0 -50
  482. package/src/traits/Injectable.js +0 -221
  483. package/src/traits/OwnableResource.js +0 -56
  484. package/src/traits/Trait.js +0 -43
  485. package/src/utils/Logger.js +0 -137
  486. package/src/utils/Singleton.js +0 -49
  487. package/src/utils/StaticClass.js +0 -43
  488. package/src/utils/Unobservable.js +0 -47
  489. package/src/utils/base64.js +0 -93
  490. package/src/utils/geo.js +0 -139
  491. package/src/utils/hash.js +0 -72
  492. package/src/utils/helpers.js +0 -178
  493. package/src/utils/node.js +0 -55
  494. package/src/utils/reflection.js +0 -170
  495. package/src/utils/requests.js +0 -120
  496. package/src/utils/uuid.js +0 -68
@@ -0,0 +1,228 @@
1
+ import { type ApiError, type ApiSuccess, type Flatten, type Revivers, getSearchParams, request } from '../utils.js';
2
+
3
+ import type { RequireAtLeastOne } from 'type-fest';
4
+ import type { Polygon } from 'geojson';
5
+
6
+ export const boundingBoxRevivers: Revivers<
7
+ { data: { bounding_box: string } } & Omit<ApiSuccess, 'data'> | ApiError,
8
+ { boundingBox: Polygon }
9
+ > = {
10
+ boundingBox: (data: { bounding_box: string }) => JSON.parse(data.bounding_box) as Polygon,
11
+ };
12
+
13
+ export type ApiSearchPoint = {
14
+ lat: number;
15
+ lng: number;
16
+ };
17
+
18
+ export type ApiSearchBounds = {
19
+ min_lat: number;
20
+ min_lng: number;
21
+ max_lat: number;
22
+ max_lng: number;
23
+ };
24
+
25
+ type SingleOrGroupedAreaBase = {
26
+ id: number;
27
+ title: string;
28
+ subtitle: string;
29
+ svgPreview: string;
30
+ boundingBox: Polygon;
31
+ };
32
+
33
+ // TODO don't export this once search on click is out
34
+ export type GroupedArea = SingleOrGroupedAreaBase & {
35
+ isGroup: true;
36
+ };
37
+
38
+ // TODO don't export this once search on click is out
39
+ export type SingleArea = SingleOrGroupedAreaBase & {
40
+ isGroup: false;
41
+ properties: Record<string, string>;
42
+ vectorSource: string;
43
+ sourceLayer: string;
44
+ featureId: number;
45
+ };
46
+
47
+ export type SingleOrGroupedArea = {
48
+ id: number;
49
+ title: string;
50
+ subtitle: string;
51
+ svgPreview: string;
52
+ boundingBox: Polygon;
53
+ isGroup: boolean;
54
+ properties: Record<string, string> | null;
55
+ vectorSource: string | null;
56
+ sourceLayer: string | null;
57
+ featureId: number | null;
58
+ };
59
+
60
+ export type ApiSingleOrGroupedArea = {
61
+ data: {
62
+ id: number;
63
+ title: string;
64
+ subtitle: string;
65
+ svg_preview: string;
66
+ bounding_box: string;
67
+ is_group: boolean;
68
+ properties: string | null;
69
+ vector_source: string | null;
70
+ source_layer: string | null;
71
+ feature_id: number | null;
72
+ };
73
+ } & Omit<ApiSuccess, 'data'> | ApiError;
74
+
75
+ export type ApiSingleOrGroupedAreaData = Flatten<Exclude<ApiSingleOrGroupedArea, ApiError>['data']>;
76
+
77
+ export const singleOrGroupedAreaRevivers: Revivers<ApiSingleOrGroupedArea, SingleOrGroupedArea> = {
78
+ ...boundingBoxRevivers,
79
+ properties: (data: ApiSingleOrGroupedAreaData) =>
80
+ (data.properties != null ? JSON.parse(data.properties) as Record<string, string> : null),
81
+ };
82
+
83
+ /**
84
+ * TODO When SAGA search on click is implemented, remove mode and make searchBounds required
85
+ */
86
+ export async function searchSingleOrGroupedAreas(
87
+ language: string,
88
+ search: RequireAtLeastOne<{
89
+ searchBounds?: ApiSearchBounds;
90
+ query?: string;
91
+ searchPoint?: ApiSearchPoint;
92
+ }>,
93
+ mode: 'polygon' | 'group' | 'both' = 'both',
94
+ ): Promise<SingleOrGroupedArea[]> {
95
+ const pathname = '/v1/choropleth/polygons/search';
96
+ const query = getSearchParams({
97
+ language,
98
+ ...search.searchBounds,
99
+ ...(search.query && { query: search.query }),
100
+ ...(search.searchPoint && { point: search.searchPoint }),
101
+ mode,
102
+ });
103
+ const path = `${pathname}?${query}`;
104
+ const options = { revivers: singleOrGroupedAreaRevivers };
105
+
106
+ type ApiSingleOrGroupedAreaArray = {
107
+ data: ApiSingleOrGroupedAreaData[];
108
+ } & Omit<ApiSuccess, 'data'> | ApiError;
109
+
110
+ return request<ApiSingleOrGroupedAreaArray, SingleOrGroupedArea>(path, null, null, options);
111
+ }
112
+
113
+ export type GroupedAreaChild = {
114
+ id: number;
115
+ title: string;
116
+ vectorSource: string;
117
+ sourceLayer: string;
118
+ featureId: number;
119
+ boundingBox: Polygon;
120
+ properties: Record<string, string>;
121
+ };
122
+
123
+ type ApiGroupedAreaChild = {
124
+ data: {
125
+ id: number;
126
+ title: string;
127
+ vector_source: string;
128
+ source_layer: string;
129
+ feature_id: number;
130
+ bounding_box: string;
131
+ properties: string;
132
+ };
133
+ } & Omit<ApiSuccess, 'data'> | ApiError;
134
+
135
+ export type ApiGroupedAreaChildData = Flatten<Exclude<ApiGroupedAreaChild, ApiError>['data']>;
136
+
137
+ export const groupedAreaChildRevivers: Revivers<ApiGroupedAreaChild, GroupedAreaChild> = {
138
+ ...boundingBoxRevivers,
139
+ properties: (data: ApiGroupedAreaChildData) => JSON.parse(data.properties) as Record<string, string>,
140
+ };
141
+
142
+ export async function groupedAreaChildren(groupId: number, language: string): Promise<GroupedAreaChild[]> {
143
+ const pathname = `/v1/choropleth/groups/${groupId}/children-optimized`;
144
+ const query = getSearchParams({ language });
145
+ const path = `${pathname}?${query}`;
146
+ const options = { revivers: groupedAreaChildRevivers };
147
+
148
+ type ApiGroupedAreaChildArray = {
149
+ data: ApiGroupedAreaChildData[];
150
+ } & Omit<ApiSuccess, 'data'> | ApiError;
151
+
152
+ return request<ApiGroupedAreaChildArray, GroupedAreaChild>(path, null, null, options);
153
+ }
154
+
155
+ export type MatchedGroup = {
156
+ id: number;
157
+ sml: number;
158
+ childrenCount: number;
159
+ matchField: string;
160
+ boundingBox: Polygon;
161
+ property: string;
162
+ name: string;
163
+ };
164
+
165
+ export type ApiMatchedGroup = {
166
+ data: {
167
+ id: number;
168
+ sml: number;
169
+ children_count: number;
170
+ match_field: string;
171
+ bounding_box: string;
172
+ property: string;
173
+ name: string;
174
+ };
175
+ } & Omit<ApiSuccess, 'data'> | ApiError;
176
+
177
+ export type ApiMatchedGroupData = Flatten<Exclude<ApiMatchedGroup, ApiError>['data']>;
178
+
179
+ export async function getGroupsByDataSample(
180
+ sample: Record<string, string[]>,
181
+ language: string,
182
+ rowCount: number,
183
+ ): Promise<MatchedGroup[]> {
184
+ const path = `/v1/choropleth/groups/sample`;
185
+ const options = { revivers: boundingBoxRevivers };
186
+
187
+ type ApiMatchedGroupArray = {
188
+ data: ApiMatchedGroupData[];
189
+ } & Omit<ApiSuccess, 'data'> | ApiError;
190
+
191
+ return request<ApiMatchedGroupArray, MatchedGroup>(path, { sample, language, row_count: rowCount }, null, options);
192
+ }
193
+
194
+ export type BoundPolygon = {
195
+ index: number;
196
+ inputName: string;
197
+ id: number;
198
+ sml: number;
199
+ name: string;
200
+ };
201
+
202
+ export type ApiBoundPolygon = {
203
+ data: {
204
+ index: number;
205
+ input_name: string;
206
+ id: number;
207
+ sml: number;
208
+ name: string;
209
+ };
210
+ } & Omit<ApiSuccess, 'data'> | ApiError;
211
+
212
+ export type ApiBoundPolygonData = Flatten<Exclude<ApiBoundPolygon, ApiError>['data']>;
213
+
214
+ export async function getBoundPolygons(
215
+ groupId: number,
216
+ property: string,
217
+ data: string[],
218
+ language: string,
219
+ ): Promise<BoundPolygon[]> {
220
+ const path = `/v1/choropleth/groups/bind`;
221
+ const body = { group_id: groupId, property, data, language };
222
+
223
+ type ApiBoundPolygonArray = {
224
+ data: ApiBoundPolygonData[];
225
+ } & Omit<ApiSuccess, 'data'> | ApiError;
226
+
227
+ return request<ApiBoundPolygonArray, BoundPolygon>(path, body);
228
+ }
@@ -0,0 +1,22 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type Color = {
4
+ id: number;
5
+ hex: string;
6
+ };
7
+
8
+ export type ApiColor = {
9
+ data: {
10
+ id: number; // The color id (sortable)
11
+ name: string; // The name of the color (searchable, sortable)
12
+ hex: string; // The hex value of the color (searchable, sortable)
13
+ order?: number; // TODO: not present in API specification!
14
+ } & ApiCommonData;
15
+ } & Omit<ApiSuccess, 'data'> | ApiError;
16
+
17
+ export type ApiColorData = Flatten<Exclude<ApiColor, ApiError>['data']>;
18
+
19
+ export const colorRevivers: Revivers<ApiColor, Color> = {
20
+ name: undefined,
21
+ order: undefined,
22
+ };
@@ -0,0 +1,44 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type OutputUnit =
4
+ | 'millimeter'
5
+ | 'centimeter'
6
+ | 'inch'
7
+ | 'pixel'
8
+ | 'pica';
9
+
10
+ export type Dimension = {
11
+ id: number;
12
+ dimensionSetId: number;
13
+ name: string;
14
+ width: number;
15
+ height: number;
16
+ dpi: number;
17
+ unit: OutputUnit;
18
+ };
19
+
20
+ export type ApiDimension = {
21
+ data: {
22
+ id: number; // The dimension id (sortable)
23
+ dimension_set_id: number; // The id of the dimension set
24
+ name: string; // The name of dimension (searchable, sortable)
25
+ width: number; // The width of the dimension (searchable, sortable)
26
+ height: number; // The height of the dimension (searchable, sortable)
27
+ dpi: number; // The dpi of the dimension
28
+ unit: string; // The unit of this dimension
29
+ } & ApiCommonData;
30
+ } & Omit<ApiSuccess, 'data'> | ApiError;
31
+
32
+ export type ApiDimensionData = Flatten<Exclude<ApiDimension, ApiError>['data']>;
33
+
34
+ const keyToUnit: { [key: string]: OutputUnit } = {
35
+ MM: 'millimeter',
36
+ CM: 'centimeter',
37
+ IN: 'inch',
38
+ PX: 'pixel',
39
+ PICA: 'pica',
40
+ };
41
+
42
+ export const dimensionRevivers: Revivers<ApiDimension, Dimension> = {
43
+ unit: (data: ApiDimensionData) => keyToUnit[data.unit],
44
+ };
@@ -0,0 +1,20 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type DimensionSet = {
4
+ id: number;
5
+ name: string;
6
+ };
7
+
8
+ export type ApiDimensionSet = {
9
+ data: {
10
+ id: number; // The dimension set id (sortable)
11
+ name: string; // The dimension set name (searchable, sortable)
12
+ order?: number; // TODO: not present in API specification!
13
+ } & ApiCommonData;
14
+ } & Omit<ApiSuccess, 'data'> | ApiError;
15
+
16
+ export type ApiDimensionSetData = Flatten<Exclude<ApiDimensionSet, ApiError>['data']>;
17
+
18
+ export const dimensionSetRevivers: Revivers<ApiDimensionSet, DimensionSet> = {
19
+ order: undefined,
20
+ };
@@ -0,0 +1,22 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type Feature = {
4
+ id: number;
5
+ name: string;
6
+ };
7
+
8
+ export type ApiFeature = {
9
+ data: {
10
+ id: number; // The feature id
11
+ name: string; // The feature name (searchable, sortable)
12
+ description: string; // The description of the feature (searchable, sortable)
13
+ order?: number; // TODO: not present in API specification!
14
+ } & ApiCommonData;
15
+ } & Omit<ApiSuccess, 'data'> | ApiError;
16
+
17
+ export type ApiFeatureData = Flatten<Exclude<ApiFeature, ApiError>['data']>;
18
+
19
+ export const featureRevivers: Revivers<ApiFeature, Feature> = {
20
+ description: undefined,
21
+ order: undefined,
22
+ };
@@ -0,0 +1,57 @@
1
+ import {
2
+ type ApiCommonData,
3
+ type ApiError,
4
+ type ApiSuccess,
5
+ type Flatten,
6
+ type Revivers,
7
+ getSearchParams,
8
+ request,
9
+ } from '../utils.js';
10
+
11
+ export type Font = {
12
+ id: number;
13
+ fontFamilyId: number;
14
+ name: string;
15
+ label: string;
16
+ weight: number;
17
+ style: string;
18
+ stretch: string;
19
+ };
20
+
21
+ export type ApiFont = {
22
+ data: {
23
+ id: number; // The id of the font (sortable)
24
+ font_family_id: number; // The id of the font family
25
+ name: string; // The name of the font (searchable, sortable)
26
+ style: string; // The font style (searchable, sortable)
27
+ stretch: string; // The font stretch (searchable, sortable)
28
+ weight: number; // The font weight (searchable, sortable)
29
+ label: string; // The label of the font (searchable, sortable)
30
+ order?: number; // TODO: not present in API specification!
31
+ } & ApiCommonData;
32
+ } & Omit<ApiSuccess, 'data'> | ApiError;
33
+
34
+ export type ApiFontData = Flatten<Exclude<ApiFont, ApiError>['data']>;
35
+
36
+ type FontSearchOptions = {
37
+ family?: string;
38
+ style?: string;
39
+ weight?: string;
40
+ };
41
+
42
+ export const fontRevivers: Revivers<ApiFont, Font> = {
43
+ order: undefined,
44
+ };
45
+
46
+ export async function getFonts(searchOptions: FontSearchOptions): Promise<Font[] | Font> {
47
+ const pathname = `/v1/fonts/search`;
48
+ const query = getSearchParams(searchOptions);
49
+
50
+ const path = `${pathname}?${query}`;
51
+
52
+ type ApiFontArray = {
53
+ data: ApiFontData[];
54
+ } & Omit<ApiSuccess, 'data'> | ApiError;
55
+
56
+ return request<ApiFontArray, Font>(path);
57
+ }
@@ -0,0 +1,43 @@
1
+ import { type ApiFontData, type Font, fontRevivers } from './font.js';
2
+ import {
3
+ type ApiCommonData,
4
+ type ApiError,
5
+ type ApiSuccess,
6
+ type Flatten,
7
+ type Revivers,
8
+ defaultListHeader,
9
+ getSearchParams,
10
+ request,
11
+ } from '../utils.js';
12
+
13
+ export type FontFamily = {
14
+ id: number;
15
+ name: string;
16
+ };
17
+
18
+ export type ApiFontFamily = {
19
+ data: {
20
+ id: number; // The id of the font family (sortable)
21
+ name: string; // The name of the font family (searchable, sortable)
22
+ order?: number; // TODO: not present in API specification!
23
+ } & ApiCommonData;
24
+ } & Omit<ApiSuccess, 'data'> | ApiError;
25
+
26
+ export type ApiFontFamilyData = Flatten<Exclude<ApiFontFamily, ApiError>['data']>;
27
+
28
+ export const fontFamilyRevivers: Revivers<ApiFontFamily, FontFamily> = {
29
+ order: undefined,
30
+ };
31
+
32
+ export async function listFontFamilyFonts(fontFamilyId: number): Promise<Font[]> {
33
+ const pathname = `/v1/fonts/families/${fontFamilyId}/items`;
34
+ const query = getSearchParams({ sort: 'order' });
35
+ const path = `${pathname}?${query}`;
36
+ const options = { revivers: fontRevivers };
37
+
38
+ type ApiFontArray = {
39
+ data: ApiFontData[];
40
+ } & Omit<ApiSuccess, 'data'> | ApiError;
41
+
42
+ return request<ApiFontArray, Font>(path, null, defaultListHeader, options);
43
+ }
@@ -0,0 +1,17 @@
1
+ import { type ApiError, type ApiSuccess, request } from '../utils.js';
2
+
3
+ export type GeocodeResult = {
4
+ index: number;
5
+ lat: number | undefined;
6
+ lng: number | undefined;
7
+ };
8
+
9
+ export async function bulkGeocode(addresses: Array<{ index: number; address: string }>): Promise<GeocodeResult[]> {
10
+ const pathname = `/v1/geocode`;
11
+
12
+ type GeocodeResultArray = {
13
+ data: GeocodeResult[];
14
+ } & Omit<ApiSuccess, 'data'> | ApiError;
15
+
16
+ return request<GeocodeResultArray, GeocodeResult>(pathname, { items: addresses });
17
+ }
@@ -0,0 +1,87 @@
1
+ import type { FeatureCollection } from 'geojson';
2
+ import type { SnakeCase } from 'type-fest';
3
+ import {
4
+ APIMeta,
5
+ type ApiCommonData,
6
+ type ApiError,
7
+ type ApiSuccess,
8
+ type Flatten,
9
+ defaultListHeader,
10
+ getSearchParams,
11
+ request,
12
+ } from '../utils.js';
13
+
14
+ type FieldName = 'id' | 'name' | 'description' | 'previewPath' | 'previewJson';
15
+
16
+ export type PartialVectorHighlight = Pick<VectorHighlight, FieldName>;
17
+
18
+ export type VectorHighlight = {
19
+ id: number;
20
+ name: string;
21
+ description: string;
22
+ previewPath: string | null;
23
+ previewJson: FeatureCollection | null;
24
+
25
+ vectorSetUrl: string;
26
+ sourceLayerName: string;
27
+
28
+ lngMin: number;
29
+ lngMax: number;
30
+ latMin: number;
31
+ latMax: number;
32
+
33
+ keys: string[];
34
+ properties: Record<string, unknown>;
35
+ };
36
+
37
+ export type ApiVectorHighlight = {
38
+ data: {
39
+ id: number;
40
+ name: string;
41
+ description: string;
42
+ preview_path: string | null;
43
+ preview_json: FeatureCollection | null;
44
+
45
+ vector_set_url: string;
46
+ source_layer_name: string;
47
+
48
+ lng_min: number;
49
+ lng_max: number;
50
+ lat_min: number;
51
+ lat_max: number;
52
+
53
+ keys: string[];
54
+ properties: Record<string, unknown>;
55
+ } & ApiCommonData;
56
+ } & Omit<ApiSuccess, 'data'> | ApiError;
57
+
58
+ export type ApiVectorHighlightData = Flatten<Exclude<ApiVectorHighlight, ApiError>['data']>;
59
+
60
+ export async function listVectorHighlights(name: string): Promise<PartialVectorHighlight[]> {
61
+ const pathname = `/v1/highlights/vector`;
62
+ const query = getSearchParams({ search: { name } });
63
+ const path = `${pathname}?${query}`;
64
+
65
+ // Only request first 50 results
66
+ const headers = { ...defaultListHeader };
67
+ const options = { withMeta: true };
68
+
69
+ type ApiVectorHighlightArray = {
70
+ data: Array<Pick<ApiVectorHighlightData, SnakeCase<FieldName>>>;
71
+ } & Omit<ApiSuccess, 'data'> | ApiError;
72
+
73
+ return request<ApiVectorHighlightArray, PartialVectorHighlight>(path, null, headers, options)
74
+ .catch((error: Error) => {
75
+ if (error instanceof APIMeta) {
76
+ return (error as APIMeta<ApiVectorHighlightArray, PartialVectorHighlight>).data;
77
+ }
78
+
79
+ throw error;
80
+ });
81
+ }
82
+
83
+ export async function getVectorHighlight(highlightId: number): Promise<VectorHighlight> {
84
+ const path = `/v1/highlights/vector/${highlightId}`;
85
+
86
+ return request<ApiVectorHighlight, VectorHighlight>(path);
87
+ }
@@ -0,0 +1,95 @@
1
+ import { apiHost, authenticate, getAuthorizationHeaders, token } from '../oauth.js';
2
+ import {
3
+ APIError,
4
+ type ApiCommonData,
5
+ type ApiError,
6
+ type ApiSuccess,
7
+ type Flatten,
8
+ HTTPError,
9
+ NetworkError,
10
+ request,
11
+ } from '../utils.js';
12
+
13
+ export type InsetMap = {
14
+ id: number;
15
+ description: string;
16
+ jsonFilename: string;
17
+ latMin: number;
18
+ lngMin: number;
19
+ latMax: number;
20
+ lngMax: number;
21
+ };
22
+
23
+ export type ApiInsetMap = {
24
+ data: {
25
+ id: number;
26
+ description: string;
27
+ json_filename: string;
28
+ lat_min: number;
29
+ lng_min: number;
30
+ lat_max: number;
31
+ lng_max: number;
32
+ } & ApiCommonData;
33
+ } & Omit<ApiSuccess, 'data'> | ApiError;
34
+
35
+ export type ApiInsetMapData = Flatten<Exclude<ApiInsetMap, ApiError>['data']>;
36
+
37
+ type Boundary = {
38
+ topLeft: {
39
+ lat: number;
40
+ lng: number;
41
+ };
42
+ bottomRight: {
43
+ lat: number;
44
+ lng: number;
45
+ };
46
+ };
47
+
48
+ export async function listInsetMaps(boundary: Boundary): Promise<InsetMap[]> {
49
+ const path = `/v1/inset-maps/for-boundary`;
50
+
51
+ type ApiInsetMapArray = {
52
+ data: ApiInsetMapData[];
53
+ } & Omit<ApiSuccess, 'data'> | ApiError;
54
+
55
+ return request<ApiInsetMapArray, InsetMap>(path, { boundary });
56
+ }
57
+
58
+ export async function getInsetMap(insetMapId: number): Promise<InsetMap> {
59
+ const path = `/v1/inset-maps/${insetMapId}`;
60
+
61
+ return request<ApiInsetMap, InsetMap>(path);
62
+ }
63
+
64
+ export async function getInsetMapTopoJson<TopoJSON>(insetMapId: number): Promise<TopoJSON> {
65
+ const href = `${apiHost}/v1/inset-maps/${insetMapId}/json`;
66
+ const headers = getAuthorizationHeaders('GET');
67
+ const response = await fetch(href, { headers, ...!token && { credentials: 'include' } })
68
+ .catch((error: Error) => { throw new NetworkError(error?.message ?? error) });
69
+
70
+ if (response.ok) {
71
+ return response.json().catch(() => {
72
+ throw new APIError({
73
+ success: false,
74
+ error: { type: 'SyntaxError', message: 'Malformed JSON response' },
75
+ });
76
+ }) as Promise<TopoJSON>;
77
+ } else {
78
+ // eslint-disable-next-line default-case
79
+ switch (response.status) {
80
+ case 401:
81
+ await authenticate();
82
+ break; // NO-OP
83
+ case 403:
84
+ case 404:
85
+ case 406:
86
+ case 429:
87
+ throw new APIError({
88
+ success: false,
89
+ error: { type: 'HttpException', message: response.statusText },
90
+ });
91
+ }
92
+
93
+ throw new HTTPError(response);
94
+ }
95
+ }