@mapcreator/api 3.3.1 → 5.0.0-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +82 -59
  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 +32 -0
  6. package/cjs/api/apiCommon.js.map +1 -0
  7. package/cjs/api/choropleth.d.ts +206 -0
  8. package/cjs/api/choropleth.d.ts.map +1 -0
  9. package/cjs/api/choropleth.js +40 -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 +19 -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 +22 -0
  28. package/cjs/api/font.d.ts.map +1 -0
  29. package/cjs/api/font.js +10 -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/highlight.d.ts +41 -0
  36. package/cjs/api/highlight.d.ts.map +1 -0
  37. package/cjs/api/highlight.js +17 -0
  38. package/cjs/api/highlight.js.map +1 -0
  39. package/cjs/api/job.d.ts +40 -0
  40. package/cjs/api/job.d.ts.map +1 -0
  41. package/cjs/api/job.js +70 -0
  42. package/cjs/api/job.js.map +1 -0
  43. package/cjs/api/jobResult.d.ts +29 -0
  44. package/cjs/api/jobResult.d.ts.map +1 -0
  45. package/cjs/api/jobResult.js +35 -0
  46. package/cjs/api/jobResult.js.map +1 -0
  47. package/cjs/api/jobRevision.d.ts +43 -0
  48. package/cjs/api/jobRevision.d.ts.map +1 -0
  49. package/cjs/api/jobRevision.js +72 -0
  50. package/cjs/api/jobRevision.js.map +1 -0
  51. package/cjs/api/jobShare.d.ts +26 -0
  52. package/cjs/api/jobShare.d.ts.map +1 -0
  53. package/cjs/api/jobShare.js +10 -0
  54. package/cjs/api/jobShare.js.map +1 -0
  55. package/cjs/api/jobType.d.ts +17 -0
  56. package/cjs/api/jobType.d.ts.map +1 -0
  57. package/cjs/api/jobType.js +11 -0
  58. package/cjs/api/jobType.js.map +1 -0
  59. package/cjs/api/language.d.ts +17 -0
  60. package/cjs/api/language.d.ts.map +1 -0
  61. package/cjs/api/language.js +3 -0
  62. package/cjs/api/language.js.map +1 -0
  63. package/cjs/api/layer.d.ts +24 -0
  64. package/cjs/api/layer.d.ts.map +1 -0
  65. package/cjs/api/layer.js +14 -0
  66. package/cjs/api/layer.js.map +1 -0
  67. package/cjs/api/layerFaq.d.ts +27 -0
  68. package/cjs/api/layerFaq.d.ts.map +1 -0
  69. package/cjs/api/layerFaq.js +16 -0
  70. package/cjs/api/layerFaq.js.map +1 -0
  71. package/cjs/api/layerGroup.d.ts +16 -0
  72. package/cjs/api/layerGroup.d.ts.map +1 -0
  73. package/cjs/api/layerGroup.js +37 -0
  74. package/cjs/api/layerGroup.js.map +1 -0
  75. package/cjs/api/mapstyleSet.d.ts +29 -0
  76. package/cjs/api/mapstyleSet.d.ts.map +1 -0
  77. package/cjs/api/mapstyleSet.js +19 -0
  78. package/cjs/api/mapstyleSet.js.map +1 -0
  79. package/cjs/api/message.d.ts +32 -0
  80. package/cjs/api/message.d.ts.map +1 -0
  81. package/cjs/api/message.js +37 -0
  82. package/cjs/api/message.js.map +1 -0
  83. package/cjs/api/organisation.d.ts +38 -0
  84. package/cjs/api/organisation.d.ts.map +1 -0
  85. package/cjs/api/organisation.js +43 -0
  86. package/cjs/api/organisation.js.map +1 -0
  87. package/cjs/api/resources.d.ts +54 -0
  88. package/cjs/api/resources.d.ts.map +1 -0
  89. package/cjs/api/resources.js +55 -0
  90. package/cjs/api/resources.js.map +1 -0
  91. package/cjs/api/svg.d.ts +21 -0
  92. package/cjs/api/svg.d.ts.map +1 -0
  93. package/cjs/api/svg.js +15 -0
  94. package/cjs/api/svg.js.map +1 -0
  95. package/cjs/api/svgSet.d.ts +22 -0
  96. package/cjs/api/svgSet.d.ts.map +1 -0
  97. package/cjs/api/svgSet.js +25 -0
  98. package/cjs/api/svgSet.js.map +1 -0
  99. package/cjs/api/user.d.ts +100 -0
  100. package/cjs/api/user.d.ts.map +1 -0
  101. package/cjs/api/user.js +126 -0
  102. package/cjs/api/user.js.map +1 -0
  103. package/cjs/index.d.ts +26 -0
  104. package/cjs/index.d.ts.map +1 -0
  105. package/cjs/index.js +51 -0
  106. package/cjs/index.js.map +1 -0
  107. package/cjs/oauth.d.ts +20 -0
  108. package/cjs/oauth.d.ts.map +1 -0
  109. package/cjs/oauth.js +229 -0
  110. package/cjs/oauth.js.map +1 -0
  111. package/cjs/utils.d.ts +72 -0
  112. package/cjs/utils.d.ts.map +1 -0
  113. package/cjs/utils.js +220 -0
  114. package/cjs/utils.js.map +1 -0
  115. package/esm/api/apiCommon.d.ts +7 -0
  116. package/esm/api/apiCommon.d.ts.map +1 -0
  117. package/esm/api/apiCommon.js +28 -0
  118. package/esm/api/apiCommon.js.map +1 -0
  119. package/esm/api/choropleth.d.ts +206 -0
  120. package/esm/api/choropleth.d.ts.map +1 -0
  121. package/esm/api/choropleth.js +32 -0
  122. package/esm/api/choropleth.js.map +1 -0
  123. package/esm/api/color.d.ts +16 -0
  124. package/esm/api/color.d.ts.map +1 -0
  125. package/esm/api/color.js +5 -0
  126. package/esm/api/color.js.map +1 -0
  127. package/esm/api/dimension.d.ts +25 -0
  128. package/esm/api/dimension.d.ts.map +1 -0
  129. package/esm/api/dimension.js +16 -0
  130. package/esm/api/dimension.js.map +1 -0
  131. package/esm/api/dimensionSet.d.ts +15 -0
  132. package/esm/api/dimensionSet.d.ts.map +1 -0
  133. package/esm/api/dimensionSet.js +4 -0
  134. package/esm/api/dimensionSet.js.map +1 -0
  135. package/esm/api/feature.d.ts +16 -0
  136. package/esm/api/feature.d.ts.map +1 -0
  137. package/esm/api/feature.js +5 -0
  138. package/esm/api/feature.js.map +1 -0
  139. package/esm/api/font.d.ts +22 -0
  140. package/esm/api/font.d.ts.map +1 -0
  141. package/esm/api/font.js +7 -0
  142. package/esm/api/font.js.map +1 -0
  143. package/esm/api/fontFamily.d.ts +17 -0
  144. package/esm/api/fontFamily.d.ts.map +1 -0
  145. package/esm/api/fontFamily.js +13 -0
  146. package/esm/api/fontFamily.js.map +1 -0
  147. package/esm/api/highlight.d.ts +41 -0
  148. package/esm/api/highlight.d.ts.map +1 -0
  149. package/esm/api/highlight.js +12 -0
  150. package/esm/api/highlight.js.map +1 -0
  151. package/esm/api/job.d.ts +40 -0
  152. package/esm/api/job.d.ts.map +1 -0
  153. package/esm/api/job.js +58 -0
  154. package/esm/api/job.js.map +1 -0
  155. package/esm/api/jobResult.d.ts +29 -0
  156. package/esm/api/jobResult.d.ts.map +1 -0
  157. package/esm/api/jobResult.js +30 -0
  158. package/esm/api/jobResult.js.map +1 -0
  159. package/esm/api/jobRevision.d.ts +43 -0
  160. package/esm/api/jobRevision.d.ts.map +1 -0
  161. package/esm/api/jobRevision.js +63 -0
  162. package/esm/api/jobRevision.js.map +1 -0
  163. package/esm/api/jobShare.d.ts +26 -0
  164. package/esm/api/jobShare.d.ts.map +1 -0
  165. package/esm/api/jobShare.js +6 -0
  166. package/esm/api/jobShare.js.map +1 -0
  167. package/esm/api/jobType.d.ts +17 -0
  168. package/esm/api/jobType.d.ts.map +1 -0
  169. package/esm/api/jobType.js +8 -0
  170. package/esm/api/jobType.js.map +1 -0
  171. package/esm/api/language.d.ts +17 -0
  172. package/esm/api/language.d.ts.map +1 -0
  173. package/esm/api/language.js +2 -0
  174. package/esm/api/language.js.map +1 -0
  175. package/esm/api/layer.d.ts +24 -0
  176. package/esm/api/layer.d.ts.map +1 -0
  177. package/esm/api/layer.js +11 -0
  178. package/esm/api/layer.js.map +1 -0
  179. package/esm/api/layerFaq.d.ts +27 -0
  180. package/esm/api/layerFaq.d.ts.map +1 -0
  181. package/esm/api/layerFaq.js +12 -0
  182. package/esm/api/layerFaq.js.map +1 -0
  183. package/esm/api/layerGroup.d.ts +16 -0
  184. package/esm/api/layerGroup.d.ts.map +1 -0
  185. package/esm/api/layerGroup.js +33 -0
  186. package/esm/api/layerGroup.js.map +1 -0
  187. package/esm/api/mapstyleSet.d.ts +29 -0
  188. package/esm/api/mapstyleSet.d.ts.map +1 -0
  189. package/esm/api/mapstyleSet.js +16 -0
  190. package/esm/api/mapstyleSet.js.map +1 -0
  191. package/esm/api/message.d.ts +32 -0
  192. package/esm/api/message.d.ts.map +1 -0
  193. package/esm/api/message.js +32 -0
  194. package/esm/api/message.js.map +1 -0
  195. package/esm/api/organisation.d.ts +38 -0
  196. package/esm/api/organisation.d.ts.map +1 -0
  197. package/esm/api/organisation.js +37 -0
  198. package/esm/api/organisation.js.map +1 -0
  199. package/esm/api/resources.d.ts +54 -0
  200. package/esm/api/resources.d.ts.map +1 -0
  201. package/esm/api/resources.js +48 -0
  202. package/esm/api/resources.js.map +1 -0
  203. package/esm/api/svg.d.ts +21 -0
  204. package/esm/api/svg.d.ts.map +1 -0
  205. package/esm/api/svg.js +11 -0
  206. package/esm/api/svg.js.map +1 -0
  207. package/esm/api/svgSet.d.ts +22 -0
  208. package/esm/api/svgSet.d.ts.map +1 -0
  209. package/esm/api/svgSet.js +21 -0
  210. package/esm/api/svgSet.js.map +1 -0
  211. package/esm/api/user.d.ts +100 -0
  212. package/esm/api/user.d.ts.map +1 -0
  213. package/esm/api/user.js +110 -0
  214. package/esm/api/user.js.map +1 -0
  215. package/esm/index.d.ts +26 -0
  216. package/esm/index.d.ts.map +1 -0
  217. package/esm/index.js +26 -0
  218. package/esm/index.js.map +1 -0
  219. package/esm/oauth.d.ts +20 -0
  220. package/esm/oauth.d.ts.map +1 -0
  221. package/esm/oauth.js +222 -0
  222. package/esm/oauth.js.map +1 -0
  223. package/esm/utils.d.ts +72 -0
  224. package/esm/utils.d.ts.map +1 -0
  225. package/esm/utils.js +206 -0
  226. package/esm/utils.js.map +1 -0
  227. package/package.json +66 -137
  228. package/src/README.md +126 -0
  229. package/src/api/apiCommon.ts +70 -0
  230. package/src/api/choropleth.ts +318 -0
  231. package/src/api/color.ts +22 -0
  232. package/src/api/dimension.ts +54 -0
  233. package/src/api/dimensionSet.ts +20 -0
  234. package/src/api/feature.ts +22 -0
  235. package/src/api/font.ts +30 -0
  236. package/src/api/fontFamily.ts +43 -0
  237. package/src/api/highlight.ts +74 -0
  238. package/src/api/job.ts +127 -0
  239. package/src/api/jobResult.ts +81 -0
  240. package/src/api/jobRevision.ts +170 -0
  241. package/src/api/jobShare.ts +35 -0
  242. package/src/api/jobType.ts +26 -0
  243. package/src/api/language.ts +19 -0
  244. package/src/api/layer.ts +36 -0
  245. package/src/api/layerFaq.ts +53 -0
  246. package/src/api/layerGroup.ts +69 -0
  247. package/src/api/mapstyleSet.ts +46 -0
  248. package/src/api/message.ts +80 -0
  249. package/src/api/organisation.ts +94 -0
  250. package/src/api/resources.ts +134 -0
  251. package/src/api/svg.ts +33 -0
  252. package/src/api/svgSet.ts +56 -0
  253. package/src/api/user.ts +280 -0
  254. package/src/index.ts +42 -0
  255. package/src/oauth.ts +292 -0
  256. package/src/utils.ts +342 -0
  257. package/dist/ImageHandler.d.ts +0 -56
  258. package/dist/Mapcreator.d.ts +0 -338
  259. package/dist/PaginatedResourceListing.d.ts +0 -156
  260. package/dist/RequestParameters.d.ts +0 -241
  261. package/dist/ResourceLister.d.ts +0 -155
  262. package/dist/bundle.browser.js +0 -14590
  263. package/dist/bundle.browser.min.js +0 -3
  264. package/dist/bundle.browser.min.js.LICENSE.txt +0 -74
  265. package/dist/bundle.js +0 -12755
  266. package/dist/bundle.min.js +0 -3
  267. package/dist/bundle.min.js.LICENSE.txt +0 -44
  268. package/dist/enums/DeletedState.d.ts +0 -16
  269. package/dist/enums/Enum.d.ts +0 -40
  270. package/dist/enums/JobShareVisibility.d.ts +0 -15
  271. package/dist/enums/ResultStatus.d.ts +0 -17
  272. package/dist/enums/index.d.ts +0 -5
  273. package/dist/errors/AbstractError.d.ts +0 -26
  274. package/dist/errors/ApiError.d.ts +0 -65
  275. package/dist/errors/GeoError.d.ts +0 -6
  276. package/dist/errors/NodeError.d.ts +0 -6
  277. package/dist/errors/OAuthError.d.ts +0 -17
  278. package/dist/errors/StaticClassError.d.ts +0 -7
  279. package/dist/errors/ValidationError.d.ts +0 -125
  280. package/dist/errors/index.d.ts +0 -8
  281. package/dist/index.d.ts +0 -27
  282. package/dist/oauth/DummyFlow.d.ts +0 -19
  283. package/dist/oauth/ImplicitFlow.d.ts +0 -68
  284. package/dist/oauth/ImplicitFlowPopup.d.ts +0 -25
  285. package/dist/oauth/OAuth.d.ts +0 -50
  286. package/dist/oauth/OAuthToken.d.ts +0 -67
  287. package/dist/oauth/PasswordFlow.d.ts +0 -56
  288. package/dist/oauth/StateContainer.d.ts +0 -36
  289. package/dist/proxy/GeoResourceProxy.d.ts +0 -69
  290. package/dist/proxy/OrganisationProxy.d.ts +0 -62
  291. package/dist/proxy/OwnedResourceProxy.d.ts +0 -60
  292. package/dist/proxy/ResourceProxy.d.ts +0 -32
  293. package/dist/proxy/SimpleResourceProxy.d.ts +0 -76
  294. package/dist/proxy/index.d.ts +0 -6
  295. package/dist/resources/Choropleth.d.ts +0 -20
  296. package/dist/resources/Color.d.ts +0 -9
  297. package/dist/resources/Contract.d.ts +0 -7
  298. package/dist/resources/Dimension.d.ts +0 -7
  299. package/dist/resources/DimensionSet.d.ts +0 -11
  300. package/dist/resources/Domain.d.ts +0 -7
  301. package/dist/resources/Faq.d.ts +0 -7
  302. package/dist/resources/Feature.d.ts +0 -9
  303. package/dist/resources/Font.d.ts +0 -4
  304. package/dist/resources/FontFamily.d.ts +0 -11
  305. package/dist/resources/Highlight.d.ts +0 -4
  306. package/dist/resources/InsetMap.d.ts +0 -10
  307. package/dist/resources/Job.d.ts +0 -56
  308. package/dist/resources/JobResult.d.ts +0 -76
  309. package/dist/resources/JobRevision.d.ts +0 -64
  310. package/dist/resources/JobShare.d.ts +0 -15
  311. package/dist/resources/JobType.d.ts +0 -9
  312. package/dist/resources/Language.d.ts +0 -4
  313. package/dist/resources/Layer.d.ts +0 -10
  314. package/dist/resources/LayerFaq.d.ts +0 -8
  315. package/dist/resources/LayerGroup.d.ts +0 -14
  316. package/dist/resources/Mapstyle.d.ts +0 -8
  317. package/dist/resources/MapstyleSet.d.ts +0 -13
  318. package/dist/resources/MapstyleSetColor.d.ts +0 -8
  319. package/dist/resources/Message.d.ts +0 -7
  320. package/dist/resources/MessageVariant.d.ts +0 -4
  321. package/dist/resources/Notification.d.ts +0 -4
  322. package/dist/resources/Organisation.d.ts +0 -99
  323. package/dist/resources/OrganisationNote.d.ts +0 -17
  324. package/dist/resources/Permission.d.ts +0 -4
  325. package/dist/resources/ProductTour.d.ts +0 -10
  326. package/dist/resources/ProductTourStep.d.ts +0 -7
  327. package/dist/resources/Role.d.ts +0 -14
  328. package/dist/resources/Svg.d.ts +0 -4
  329. package/dist/resources/SvgSet.d.ts +0 -11
  330. package/dist/resources/Tag.d.ts +0 -9
  331. package/dist/resources/TagType.d.ts +0 -13
  332. package/dist/resources/User.d.ts +0 -119
  333. package/dist/resources/VectorChoropleth.d.ts +0 -4
  334. package/dist/resources/VectorHighlight.d.ts +0 -4
  335. package/dist/resources/base/CrudBase.d.ts +0 -66
  336. package/dist/resources/base/CrudBase.d.ts.map +0 -1
  337. package/dist/resources/base/CrudSetBase.d.ts +0 -27
  338. package/dist/resources/base/CrudSetBase.d.ts.map +0 -1
  339. package/dist/resources/base/CrudSetItemBase.d.ts +0 -19
  340. package/dist/resources/base/CrudSetItemBase.d.ts.map +0 -1
  341. package/dist/resources/base/DownloadedResource.d.ts +0 -72
  342. package/dist/resources/base/DownloadedResource.d.ts.map +0 -1
  343. package/dist/resources/base/ResourceBase.d.ts +0 -164
  344. package/dist/resources/base/ResourceBase.d.ts.map +0 -1
  345. package/dist/resources/index.d.ts +0 -47
  346. package/dist/storage/CookiesDriver.d.ts +0 -37
  347. package/dist/storage/DataStoreContract.d.ts +0 -46
  348. package/dist/storage/DummyDriver.d.ts +0 -15
  349. package/dist/storage/FileDriver.d.ts +0 -54
  350. package/dist/storage/LocalStorageDriver.d.ts +0 -13
  351. package/dist/storage/StorageManager.d.ts +0 -46
  352. package/dist/traits/HandlesImages.d.ts +0 -15
  353. package/dist/traits/Injectable.d.ts +0 -60
  354. package/dist/traits/OwnableResource.d.ts +0 -18
  355. package/dist/traits/Trait.d.ts +0 -12
  356. package/dist/utils/Logger.d.ts +0 -55
  357. package/dist/utils/Singleton.d.ts +0 -9
  358. package/dist/utils/StaticClass.d.ts +0 -7
  359. package/dist/utils/Unobservable.d.ts +0 -13
  360. package/dist/utils/base64.d.ts +0 -12
  361. package/dist/utils/geo.d.ts +0 -74
  362. package/dist/utils/hash.d.ts +0 -15
  363. package/dist/utils/helpers.d.ts +0 -47
  364. package/dist/utils/node.d.ts +0 -15
  365. package/dist/utils/reflection.d.ts +0 -43
  366. package/dist/utils/requests.d.ts +0 -24
  367. package/dist/utils/uuid.d.ts +0 -19
  368. package/manual/assets/maps4news.svg +0 -23
  369. package/manual/building.md +0 -19
  370. package/manual/css/hide_import.css +0 -3
  371. package/manual/css/sidebar_fix.css +0 -3
  372. package/manual/examples.authentication.md +0 -205
  373. package/manual/examples.md +0 -153
  374. package/manual/installation.md +0 -33
  375. package/manual/js/sandbox.js +0 -26
  376. package/src/ImageHandler.js +0 -134
  377. package/src/Mapcreator.js +0 -703
  378. package/src/PaginatedResourceListing.js +0 -300
  379. package/src/RequestParameters.js +0 -711
  380. package/src/ResourceLister.js +0 -368
  381. package/src/enums/DeletedState.js +0 -49
  382. package/src/enums/Enum.js +0 -130
  383. package/src/enums/JobShareVisibility.js +0 -43
  384. package/src/enums/ResultStatus.js +0 -49
  385. package/src/enums/index.js +0 -36
  386. package/src/errors/AbstractError.js +0 -70
  387. package/src/errors/ApiError.js +0 -139
  388. package/src/errors/GeoError.js +0 -36
  389. package/src/errors/NodeError.js +0 -36
  390. package/src/errors/OAuthError.js +0 -71
  391. package/src/errors/StaticClassError.js +0 -37
  392. package/src/errors/ValidationError.js +0 -164
  393. package/src/errors/index.js +0 -39
  394. package/src/index.js +0 -75
  395. package/src/oauth/DummyFlow.js +0 -63
  396. package/src/oauth/ImplicitFlow.js +0 -226
  397. package/src/oauth/ImplicitFlowPopup.js +0 -122
  398. package/src/oauth/OAuth.js +0 -131
  399. package/src/oauth/OAuthToken.js +0 -175
  400. package/src/oauth/PasswordFlow.js +0 -164
  401. package/src/oauth/StateContainer.js +0 -111
  402. package/src/proxy/GeoResourceProxy.js +0 -137
  403. package/src/proxy/OrganisationProxy.js +0 -149
  404. package/src/proxy/OwnedResourceProxy.js +0 -148
  405. package/src/proxy/ResourceProxy.js +0 -101
  406. package/src/proxy/SimpleResourceProxy.js +0 -188
  407. package/src/proxy/index.js +0 -37
  408. package/src/resources/Choropleth.js +0 -66
  409. package/src/resources/Color.js +0 -46
  410. package/src/resources/Contract.js +0 -42
  411. package/src/resources/Dimension.js +0 -42
  412. package/src/resources/DimensionSet.js +0 -56
  413. package/src/resources/Domain.js +0 -42
  414. package/src/resources/Faq.js +0 -42
  415. package/src/resources/Feature.js +0 -47
  416. package/src/resources/Font.js +0 -43
  417. package/src/resources/FontFamily.js +0 -55
  418. package/src/resources/Highlight.js +0 -39
  419. package/src/resources/InsetMap.js +0 -49
  420. package/src/resources/Job.js +0 -160
  421. package/src/resources/JobResult.js +0 -184
  422. package/src/resources/JobRevision.js +0 -201
  423. package/src/resources/JobShare.js +0 -61
  424. package/src/resources/JobType.js +0 -50
  425. package/src/resources/Language.js +0 -51
  426. package/src/resources/Layer.js +0 -48
  427. package/src/resources/LayerFaq.js +0 -47
  428. package/src/resources/LayerGroup.js +0 -57
  429. package/src/resources/Mapstyle.js +0 -45
  430. package/src/resources/MapstyleSet.js +0 -65
  431. package/src/resources/MapstyleSetColor.js +0 -51
  432. package/src/resources/Message.js +0 -94
  433. package/src/resources/MessageVariant.js +0 -37
  434. package/src/resources/Notification.js +0 -39
  435. package/src/resources/Organisation.js +0 -233
  436. package/src/resources/OrganisationNote.js +0 -57
  437. package/src/resources/Permission.js +0 -39
  438. package/src/resources/ProductTour.js +0 -53
  439. package/src/resources/ProductTourStep.js +0 -48
  440. package/src/resources/Role.js +0 -58
  441. package/src/resources/Svg.js +0 -39
  442. package/src/resources/SvgSet.js +0 -55
  443. package/src/resources/Tag.js +0 -50
  444. package/src/resources/TagType.js +0 -56
  445. package/src/resources/User.js +0 -251
  446. package/src/resources/VectorChoropleth.js +0 -40
  447. package/src/resources/VectorHighlight.js +0 -40
  448. package/src/resources/base/CrudBase.js +0 -204
  449. package/src/resources/base/CrudSetBase.js +0 -83
  450. package/src/resources/base/CrudSetItemBase.js +0 -82
  451. package/src/resources/base/DownloadedResource.js +0 -165
  452. package/src/resources/base/ResourceBase.js +0 -484
  453. package/src/resources/index.js +0 -81
  454. package/src/storage/CookiesDriver.js +0 -136
  455. package/src/storage/DataStoreContract.js +0 -111
  456. package/src/storage/DummyDriver.js +0 -91
  457. package/src/storage/FileDriver.js +0 -174
  458. package/src/storage/LocalStorageDriver.js +0 -108
  459. package/src/storage/StorageManager.js +0 -109
  460. package/src/traits/HandlesImages.js +0 -50
  461. package/src/traits/Injectable.js +0 -221
  462. package/src/traits/OwnableResource.js +0 -56
  463. package/src/traits/Trait.js +0 -43
  464. package/src/utils/Logger.js +0 -137
  465. package/src/utils/Singleton.js +0 -49
  466. package/src/utils/StaticClass.js +0 -43
  467. package/src/utils/Unobservable.js +0 -47
  468. package/src/utils/base64.js +0 -93
  469. package/src/utils/geo.js +0 -139
  470. package/src/utils/hash.js +0 -72
  471. package/src/utils/helpers.js +0 -178
  472. package/src/utils/node.js +0 -55
  473. package/src/utils/reflection.js +0 -170
  474. package/src/utils/requests.js +0 -120
  475. package/src/utils/uuid.js +0 -68
@@ -0,0 +1,70 @@
1
+ import { type ApiJobData, type Job, jobRevivers } from './job.js';
2
+ import {
3
+ APIMeta,
4
+ type ApiError,
5
+ type ApiSuccess,
6
+ type Revivers,
7
+ defaultListHeader,
8
+ getSearchParams,
9
+ request,
10
+ } from '../utils.js';
11
+
12
+ export interface JobSearchResult {
13
+ pageCount: number;
14
+ data: Job[];
15
+ }
16
+
17
+ export async function listJobs(
18
+ pathname: string,
19
+ title: string,
20
+ page: number,
21
+ searchOptions?: Record<string, unknown>,
22
+ ): Promise<JobSearchResult> {
23
+ const defaultSearchOptions = {
24
+ sort: '-updated',
25
+ only_downloaded: false,
26
+ };
27
+
28
+ const search = { ...defaultSearchOptions, ...searchOptions };
29
+
30
+ const query = getSearchParams({
31
+ only_with_revisions: true,
32
+ search: {
33
+ job_type_id: '9',
34
+ ...(title.length > 0 && { title: `~:${title}` }),
35
+ },
36
+ ...search,
37
+ });
38
+
39
+ const path = `${pathname}?${query}`;
40
+
41
+ const headers = {
42
+ ...defaultListHeader,
43
+ 'X-Page': `${page}`,
44
+ };
45
+ const options = {
46
+ revivers: jobRevivers as Revivers<ApiJobArray, Job>,
47
+ withMeta: true,
48
+ };
49
+
50
+ type ApiJobArray = {
51
+ data: ApiJobData[];
52
+ } & Omit<ApiSuccess, 'data'> | ApiError;
53
+
54
+ const result = (await request<ApiJobArray, Job>(path, null, headers, options).catch(
55
+ (error: Error) => {
56
+ if (error instanceof APIMeta) {
57
+ const { data, headers, status } = error as APIMeta<ApiJobArray, Job>;
58
+
59
+ return { data, headers, status };
60
+ }
61
+
62
+ throw error;
63
+ },
64
+ )) as APIMeta<ApiJobArray, Job>;
65
+
66
+ return {
67
+ data: result.data,
68
+ pageCount: Number(result.headers.get('X-Paginate-Pages')),
69
+ };
70
+ }
@@ -0,0 +1,318 @@
1
+ import {
2
+ type ApiCommonData,
3
+ type ApiError,
4
+ type ApiSuccess,
5
+ type Flatten,
6
+ ensureArray,
7
+ getSearchParams,
8
+ request,
9
+ toAppType,
10
+ } from '../utils.js';
11
+ import type { FeatureCollection, Polygon } from 'geojson';
12
+ import type { SnakeCase } from 'type-fest';
13
+
14
+ type FieldName = 'id' | 'name' | 'description' | 'previewJson' | 'previewPath';
15
+
16
+ const processGroupData = (group: GroupChoropleth): GroupChoropleth => ({
17
+ ...group,
18
+ ...group.nativeParentTranslation && { nativeParentTranslation: toAppType(group.nativeParentTranslation) },
19
+ ...group.nativeRelationTranslation && { nativeRelationTranslation: toAppType(group.nativeRelationTranslation) },
20
+ ...group.englishParentTranslation && { englishParentTranslation: toAppType(group.englishParentTranslation) },
21
+ ...group.englishRelationTranslation && { englishRelationTranslation: toAppType(group.englishRelationTranslation) },
22
+ ...group.parentTranslations && { parentTranslations: ensureArray(group.parentTranslations).map(toAppType) },
23
+ ...group.relationTranslations && { relationTranslations: ensureArray(group.relationTranslations).map(toAppType) },
24
+ });
25
+
26
+ const processPolygonData = (polygon: PolygonChoropleth): PolygonChoropleth => ({
27
+ ...polygon,
28
+ ...polygon.parentGroups && { parentGroups: ensureArray(polygon.parentGroups).map(toAppType).map(processGroupData) },
29
+ ...polygon.nativeTranslation && { nativeTranslation: toAppType(polygon.nativeTranslation) },
30
+ ...polygon.englishTranslation && { englishTranslation: toAppType(polygon.englishTranslation) },
31
+ ...polygon.translations && { translations: ensureArray(polygon.translations).map(toAppType) },
32
+ });
33
+
34
+ export type PartialVectorChoropleth = Pick<VectorChoropleth, FieldName>;
35
+
36
+ export type VectorChoropleth = {
37
+ id: number;
38
+ name: string;
39
+ description: string;
40
+ previewPath: string | null;
41
+ previewJson: FeatureCollection | null;
42
+
43
+ vectorSetUrl: string;
44
+ sourceLayerName: string;
45
+
46
+ lngMin: number;
47
+ lngMax: number;
48
+ latMin: number;
49
+ latMax: number;
50
+
51
+ keys: string[];
52
+ properties: Array<Record<string, unknown>>;
53
+ };
54
+
55
+ export type ApiVectorChoropleth = {
56
+ data: {
57
+ id: number;
58
+ name: string;
59
+ description: string;
60
+ preview_path: string | null;
61
+ preview_json: FeatureCollection | null;
62
+
63
+ vector_set_url: string;
64
+ source_layer_name: string;
65
+
66
+ lng_min: number;
67
+ lng_max: number;
68
+ lat_min: number;
69
+ lat_max: number;
70
+
71
+ keys: string[];
72
+ properties: Array<Record<string, unknown>>;
73
+ } & ApiCommonData;
74
+ } & Omit<ApiSuccess, 'data'> | ApiError;
75
+
76
+ export type ApiVectorChoroplethData = Flatten<Exclude<ApiVectorChoropleth, ApiError>['data']>;
77
+
78
+ export async function listVectorChoropleths(name: string): Promise<PartialVectorChoropleth[]> {
79
+ const pathname = `/v1/choropleths/vector`;
80
+ const query = getSearchParams({ search: { name } });
81
+ const path = `${pathname}?${query}`;
82
+
83
+ type ApiVectorChoroplethArray = {
84
+ data: Array<Pick<ApiVectorChoroplethData, SnakeCase<FieldName>>>;
85
+ } & Omit<ApiSuccess, 'data'> | ApiError;
86
+
87
+ return request<ApiVectorChoroplethArray, PartialVectorChoropleth>(path);
88
+ }
89
+
90
+ export async function getVectorChoropleth(choroplethId: number): Promise<VectorChoropleth> {
91
+ const path = `/v1/choropleths/vector/${choroplethId}`;
92
+
93
+ return request<ApiVectorChoropleth, VectorChoropleth>(path);
94
+ }
95
+
96
+ export type SearchBounds = {
97
+ min_lat: number;
98
+ min_lng: number;
99
+ max_lat: number;
100
+ max_lng: number;
101
+ };
102
+
103
+ export type PolygonChoropleth = {
104
+ sml: string;
105
+ id: number;
106
+ vectorSource: string;
107
+ sourceLayer: string;
108
+ featureId: number;
109
+ previewPath: string;
110
+ allowSingle: boolean;
111
+ properties: Record<string, unknown>;
112
+ boundingBox: Polygon;
113
+ restrictedOwnership: number[] | null;
114
+ linkId: number | null;
115
+ cloning: boolean;
116
+ nativeTranslation: {
117
+ polygonId: number;
118
+ name: string;
119
+ };
120
+ englishTranslation?: {
121
+ polygonId: number;
122
+ name: string;
123
+ };
124
+ translations?: Array<{
125
+ polygonId: number;
126
+ language: string;
127
+ name: string;
128
+ }>;
129
+ parentGroups: GroupChoropleth[];
130
+ };
131
+
132
+ export type ApiPolygonChoropleth = {
133
+ data: {
134
+ sml: string;
135
+ id: number;
136
+ vector_source: string;
137
+ source_layer: string;
138
+ feature_id: number;
139
+ preview_path: string;
140
+ allow_single: boolean;
141
+ properties: Record<string, unknown>;
142
+ bounding_box: Polygon;
143
+ restricted_ownership: number[] | null;
144
+ link_id: number | null;
145
+ cloning: boolean;
146
+ native_translation: {
147
+ polygon_id: number;
148
+ name: string;
149
+ };
150
+ english_translation?: {
151
+ polygon_id: number;
152
+ name: string;
153
+ };
154
+ translations?: Array<{
155
+ polygon_id: number;
156
+ language: string;
157
+ name: string;
158
+ }>;
159
+ parent_groups: ApiGroupChoroplethData[];
160
+ } & ApiCommonData;
161
+ } & Omit<ApiSuccess, 'data'> | ApiError;
162
+
163
+ export type ApiPolygonChoroplethData = Flatten<Exclude<ApiPolygonChoropleth, ApiError>['data']>;
164
+
165
+ export async function listPolygonChoropleths(
166
+ name: string,
167
+ languages: string[],
168
+ searchBounds?: SearchBounds,
169
+ withParentGroups = false,
170
+ ): Promise<PolygonChoropleth[]> {
171
+ const pathname = `/v1/choropleth/polygons`;
172
+ const query = getSearchParams(
173
+ {
174
+ search: { name, allow_single: true },
175
+ with_parent_groups: withParentGroups,
176
+ languages,
177
+ ...searchBounds,
178
+ },
179
+ );
180
+ const path = `${pathname}?${query}`;
181
+
182
+ type ApiPolygonChoroplethArray = {
183
+ data: ApiPolygonChoroplethData[];
184
+ } & Omit<ApiSuccess, 'data'> | ApiError;
185
+
186
+ return request<ApiPolygonChoroplethArray, PolygonChoropleth>(path).then(polygons => polygons.map(processPolygonData));
187
+ }
188
+
189
+ export type GroupChoropleth = {
190
+ id: number;
191
+ polygonId: number;
192
+ relationId: number;
193
+ childrenCount: number;
194
+ sml?: string;
195
+ previewPath: string;
196
+ uniqueProperties: string[];
197
+ boundingBox: Polygon;
198
+ partialProperties: string[];
199
+ restrictedOwnership: number[] | null;
200
+ linkId: number | null;
201
+ cloning: boolean;
202
+ laravelThroughKey?: number;
203
+ nativeParentTranslation: {
204
+ polygonId: number;
205
+ name: string;
206
+ laravelThroughKey: number;
207
+ };
208
+ nativeRelationTranslation: {
209
+ relationId: number;
210
+ name: string;
211
+ laravelThroughKey: number;
212
+ };
213
+ englishParentTranslation?: {
214
+ polygonId: number;
215
+ name: string;
216
+ laravelThroughKey: number;
217
+ };
218
+ englishRelationTranslation?: {
219
+ relationId: number;
220
+ name: string;
221
+ laravelThroughKey: number;
222
+ };
223
+ parentTranslations?: Array<{
224
+ polygonId: number;
225
+ name: string;
226
+ language: string;
227
+ laravelThroughKey: number;
228
+ }>;
229
+ relationTranslations?: Array<{
230
+ relationId: number;
231
+ name: string;
232
+ language: string;
233
+ laravelThroughKey: number;
234
+ }>;
235
+ };
236
+
237
+ export type ApiGroupChoropleth = {
238
+ data: {
239
+ id: number;
240
+ polygon_id: number;
241
+ relation_id: number;
242
+ children_count: number;
243
+ sml?: number;
244
+ preview_path: string;
245
+ unique_properties: string[];
246
+ bounding_box: Polygon;
247
+ partial_properties: string[];
248
+ restricted_ownership: number[] | null;
249
+ link_id: number | null;
250
+ cloning: boolean;
251
+ laravel_through_key?: number;
252
+ native_parent_translation: {
253
+ polygon_id: number;
254
+ name: string;
255
+ laravel_through_key: number;
256
+ };
257
+ native_relation_translation: {
258
+ relation_id: number;
259
+ name: string;
260
+ laravel_through_key: number;
261
+ };
262
+ english_parent_translation?: {
263
+ polygon_id: number;
264
+ name: string;
265
+ laravel_through_key: number;
266
+ };
267
+ english_relation_translation?: {
268
+ relation_id: number;
269
+ name: string;
270
+ laravel_through_key: number;
271
+ };
272
+ parent_translations?: Array<{
273
+ polygon_id: number;
274
+ name: string;
275
+ language: string;
276
+ laravel_through_key: number;
277
+ }>;
278
+ relation_translations?: Array<{
279
+ relation_id: number;
280
+ name: string;
281
+ language: string;
282
+ laravel_through_key: number;
283
+ }>;
284
+ } & ApiCommonData;
285
+ } & Omit<ApiSuccess, 'data'> | ApiError;
286
+
287
+ export type ApiGroupChoroplethData = Flatten<Exclude<ApiGroupChoropleth, ApiError>['data']>;
288
+
289
+ export async function listGroupChoropleths(
290
+ name: string,
291
+ languages: string[],
292
+ searchBounds?: SearchBounds,
293
+ ): Promise<GroupChoropleth[]> {
294
+ const pathname = `/v1/choropleth/groups`;
295
+ const query = getSearchParams({ search: { name }, languages, ...searchBounds });
296
+ const path = `${pathname}?${query}`;
297
+
298
+ type ApiGroupChoroplethArray = {
299
+ data: ApiGroupChoroplethData[];
300
+ } & Omit<ApiSuccess, 'data'> | ApiError;
301
+
302
+ return request<ApiGroupChoroplethArray, GroupChoropleth>(path).then(groups => groups.map(processGroupData));
303
+ }
304
+
305
+ export async function listChildrenGroupChoropleths(
306
+ groupId: number,
307
+ languages: string[],
308
+ ): Promise<PolygonChoropleth[]> {
309
+ const pathname = `/v1/choropleth/groups/${groupId}/children`;
310
+ const query = getSearchParams({ languages });
311
+ const path = `${pathname}?${query}`;
312
+
313
+ type ApiPolygonChoroplethArray = {
314
+ data: ApiPolygonChoroplethData[];
315
+ } & Omit<ApiSuccess, 'data'> | ApiError;
316
+
317
+ return request<ApiPolygonChoroplethArray, PolygonChoropleth>(path).then(polygons => polygons.map(processPolygonData));
318
+ }
@@ -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,54 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type Unit =
4
+ | 'millimeter'
5
+ | 'centimeter'
6
+ | 'inch'
7
+ | 'pixel'
8
+ | 'pica'
9
+ | 'kilometer'
10
+ | 'mile'
11
+ | 'nauticalMile'
12
+ | 'foot'
13
+ | 'meter';
14
+
15
+ export type Dimension = {
16
+ id: number;
17
+ dimensionSetId: number;
18
+ name: string;
19
+ width: number;
20
+ height: number;
21
+ dpi: number;
22
+ unit: Unit;
23
+ };
24
+
25
+ export type ApiDimension = {
26
+ data: {
27
+ id: number; // The dimension id (sortable)
28
+ dimension_set_id: number; // The id of the dimension set
29
+ name: string; // The name of dimension (searchable, sortable)
30
+ width: number; // The width of the dimension (searchable, sortable)
31
+ height: number; // The height of the dimension (searchable, sortable)
32
+ dpi: number; // The dpi of the dimension
33
+ unit: string; // The unit of this dimension
34
+ } & ApiCommonData;
35
+ } & Omit<ApiSuccess, 'data'> | ApiError;
36
+
37
+ export type ApiDimensionData = Flatten<Exclude<ApiDimension, ApiError>['data']>;
38
+
39
+ const keyToUnit: { [key: string]: Unit } = {
40
+ MM: 'millimeter',
41
+ CM: 'centimeter',
42
+ IN: 'inch',
43
+ PX: 'pixel',
44
+ PICA: 'pica',
45
+ KM: 'kilometer',
46
+ MI: 'mile',
47
+ NM: 'nauticalMile',
48
+ FT: 'foot',
49
+ M: 'meter',
50
+ };
51
+
52
+ export const dimensionRevivers: Revivers<ApiDimension, Dimension> = {
53
+ unit: (data: ApiDimensionData) => keyToUnit[data.unit],
54
+ };
@@ -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,30 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type Font = {
4
+ id: number;
5
+ fontFamilyId: number;
6
+ name: string;
7
+ label: string;
8
+ };
9
+
10
+ export type ApiFont = {
11
+ data: {
12
+ id: number; // The id of the font (sortable)
13
+ font_family_id: number; // The id of the font family
14
+ name: string; // The name of the font (searchable, sortable)
15
+ style: string; // The font style (searchable, sortable)
16
+ stretch: string; // The font stretch (searchable, sortable)
17
+ weight: number; // The font weight (searchable, sortable)
18
+ label: string; // The label of the font (searchable, sortable)
19
+ order?: number; // TODO: not present in API specification!
20
+ } & ApiCommonData;
21
+ } & Omit<ApiSuccess, 'data'> | ApiError;
22
+
23
+ export type ApiFontData = Flatten<Exclude<ApiFont, ApiError>['data']>;
24
+
25
+ export const fontRevivers: Revivers<ApiFont, Font> = {
26
+ style: undefined,
27
+ stretch: undefined,
28
+ weight: undefined,
29
+ order: undefined,
30
+ };
@@ -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,74 @@
1
+ import type { FeatureCollection } from 'geojson';
2
+ import type { SnakeCase } from 'type-fest';
3
+ import {
4
+ type ApiCommonData,
5
+ type ApiError,
6
+ type ApiSuccess,
7
+ type Flatten,
8
+ getSearchParams,
9
+ request,
10
+ } from '../utils.js';
11
+
12
+ type FieldName = 'id' | 'name' | 'description' | 'previewPath' | 'previewJson';
13
+
14
+ export type PartialVectorHighlight = Pick<VectorHighlight, FieldName>;
15
+
16
+ export type VectorHighlight = {
17
+ id: number;
18
+ name: string;
19
+ description: string;
20
+ previewPath: string | null;
21
+ previewJson: FeatureCollection | null;
22
+
23
+ vectorSetUrl: string;
24
+ sourceLayerName: string;
25
+
26
+ lngMin: number;
27
+ lngMax: number;
28
+ latMin: number;
29
+ latMax: number;
30
+
31
+ keys: string[];
32
+ properties: Record<string, unknown>;
33
+ };
34
+
35
+ export type ApiVectorHighlight = {
36
+ data: {
37
+ id: number;
38
+ name: string;
39
+ description: string;
40
+ preview_path: string | null;
41
+ preview_json: FeatureCollection | null;
42
+
43
+ vector_set_url: string;
44
+ source_layer_name: string;
45
+
46
+ lng_min: number;
47
+ lng_max: number;
48
+ lat_min: number;
49
+ lat_max: number;
50
+
51
+ keys: string[];
52
+ properties: Record<string, unknown>;
53
+ } & ApiCommonData;
54
+ } & Omit<ApiSuccess, 'data'> | ApiError;
55
+
56
+ export type ApiVectorHighlightData = Flatten<Exclude<ApiVectorHighlight, ApiError>['data']>;
57
+
58
+ export async function listVectorHighlights(name: string): Promise<PartialVectorHighlight[]> {
59
+ const pathname = `/v1/highlights/vector`;
60
+ const query = getSearchParams({ search: { name } });
61
+ const path = `${pathname}?${query}`;
62
+
63
+ type ApiVectorHighlightArray = {
64
+ data: Array<Pick<ApiVectorHighlightData, SnakeCase<FieldName>>>;
65
+ } & Omit<ApiSuccess, 'data'> | ApiError;
66
+
67
+ return request<ApiVectorHighlightArray, PartialVectorHighlight>(path);
68
+ }
69
+
70
+ export async function getVectorHighlight(highlightId: number): Promise<VectorHighlight> {
71
+ const path = `/v1/highlights/vector/${highlightId}`;
72
+
73
+ return request<ApiVectorHighlight, VectorHighlight>(path);
74
+ }