@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
package/src/api/job.ts ADDED
@@ -0,0 +1,127 @@
1
+ import type { ApiJobShare, JobShare, JobShareVisibility } from './jobShare.js';
2
+ import { type JobSearchResult, listJobs } from './apiCommon.js';
3
+ import {
4
+ type ApiCommon,
5
+ type ApiCommonData,
6
+ type ApiError,
7
+ type ApiSuccess,
8
+ type Flatten,
9
+ type Revivers,
10
+ deletedNoneParam,
11
+ request,
12
+ } from '../utils.js';
13
+
14
+ export type Job = {
15
+ id: number;
16
+ jobTypeId: number;
17
+ title: string;
18
+ previewPath: string | undefined;
19
+ createdAt: string;
20
+ star: boolean;
21
+ jobFolderId: number | null;
22
+ userEmail: string | undefined;
23
+ jobFolderName: string | null;
24
+ userId: number;
25
+ };
26
+
27
+ export type ApiJob = {
28
+ data: {
29
+ id: number; // The job id (sortable)
30
+ job_type_id: number; // The id of the job type (searchable)
31
+ user_id: number; // The user id (searchable)
32
+ title: string; // The title of the job (searchable, sortable)
33
+ description: string | null; // The description of the job (searchable, sortable)
34
+ share_token: string | null; // The token used for sharing this job
35
+ autosave_preview_path: string | null; // The preview path of the Job
36
+ job_folder_id: number | null; // TODO: not present in API specification!
37
+ star: boolean; // TODO: not present in API specification!
38
+ } & ApiCommonData;
39
+ } & Omit<ApiSuccess, 'data'> | ApiError;
40
+
41
+ export type ApiJobData = Flatten<Exclude<ApiJob, ApiError>['data']>;
42
+
43
+ export const jobRevivers: Revivers<ApiJob, Job> = {
44
+ description: undefined,
45
+ share_token: undefined,
46
+ autosave_preview_path: undefined,
47
+
48
+ jobTypeId: () => 9,
49
+ createdAt: (data: ApiJobData) => data.created_at as string, // @ts-expect-error TS2339
50
+ previewPath: (data: ApiJobData) => (data.preview_path as string | null) ?? data.autosave_preview_path ?? undefined,
51
+ };
52
+
53
+ export async function createJob(title: string): Promise<Job> {
54
+ const path = `/v1/jobs`;
55
+ const body = { title, job_type_id: 9 };
56
+ const options = { revivers: jobRevivers };
57
+
58
+ // Technically, the returning `data` will contain only the following fields:
59
+ // Pick<ApiJobData, 'id' | 'job_type_id' | 'user_id' | 'title' | 'created_at' | 'updated_at'>
60
+
61
+ return request<ApiJob, Job>(path, body, null, options);
62
+ }
63
+
64
+ export async function getJob(jobId: number): Promise<Job> {
65
+ const path = `/v1/jobs/${jobId}`;
66
+ const options = { revivers: jobRevivers };
67
+
68
+ return request<ApiJob, Job>(path, null, null, options);
69
+ }
70
+
71
+ export async function deleteJob(jobId: number): Promise<Record<string, never>> {
72
+ const path = `/v1/jobs/${jobId}`;
73
+
74
+ return request<ApiCommon, Record<string, never>>(path, null, null, { method: 'DELETE' });
75
+ }
76
+
77
+ export async function updateJob(jobId: number, newTitle: string): Promise<Record<string, never>> {
78
+ const path = `/v1/jobs/${jobId}`;
79
+ const body = { title: newTitle };
80
+
81
+ return request<ApiCommon, Record<string, never>>(path, body, null, { method: 'PATCH' });
82
+ }
83
+
84
+ export async function updateJobFolder(jobId: number, folderId: number | null): Promise<Record<string, never>> {
85
+ const path = `/v1/jobs/${jobId}`;
86
+ const body = { job_folder_id: folderId };
87
+
88
+ return request<ApiCommon, Record<string, never>>(path, body, null, { method: 'PATCH' });
89
+ }
90
+
91
+ export async function starJob(jobId: number, star: boolean): Promise<Record<string, never>> {
92
+ const path = `/v1/jobs/${jobId}`;
93
+ const body = { star };
94
+
95
+ return request<ApiCommon, Record<string, never>>(path, body, null, { method: 'PATCH' });
96
+ }
97
+
98
+ export async function generateJobShare(
99
+ jobId: number,
100
+ visibility: JobShareVisibility,
101
+ ): Promise<JobShare> {
102
+ const path = `/v1/jobs/${jobId}/share`;
103
+ const body = { visibility };
104
+
105
+ return request<ApiJobShare, JobShare>(path, body);
106
+ }
107
+
108
+ export async function uploadJobPreview(
109
+ jobId: number,
110
+ preview: Blob,
111
+ ): Promise<Record<string, never>> {
112
+ const pathname = `/v1/jobs/${jobId}/preview`;
113
+ const path = `${pathname}?${deletedNoneParam}`;
114
+ const body = new FormData();
115
+
116
+ body.append('preview', preview);
117
+
118
+ return request<ApiCommon, Record<string, never>>(path, body);
119
+ }
120
+
121
+ export async function listFeaturedJobs(
122
+ title: string,
123
+ page: number,
124
+ options?: Record<string, unknown>,
125
+ ): Promise<JobSearchResult> {
126
+ return listJobs(`/v1/jobs/featured`, title, page, options);
127
+ }
@@ -0,0 +1,81 @@
1
+ import {
2
+ type ApiCommon,
3
+ type ApiCommonData,
4
+ type ApiError,
5
+ type ApiSuccess,
6
+ type Flatten,
7
+ type Revivers,
8
+ deletedNoneParam,
9
+ lastJobRevision,
10
+ request,
11
+ } from '../utils.js';
12
+
13
+ export type JobResult = {
14
+ jobRevisionId: number;
15
+ revision: number;
16
+ status: string;
17
+ };
18
+
19
+ export type ApiJobResult = {
20
+ data: {
21
+ job_revision_id: number; // The id of the job revision
22
+ revision: number; // The revision number of the job revision
23
+ mapstyle_id: number; // The id of the map style
24
+ interface_version: string; // The version of the interface (searchable, sortable)
25
+ fix: string; //
26
+ status: string; // The status of the job result (searchable, sortable)
27
+ fail_reason: string; // A human-readable reason of why the map failed to process
28
+ process_start: string; // The datetime when the job process started (searchable, sortable)
29
+ process_end: string; // The datetime when the job process ended (searchable, sortable)
30
+ dealt_with: boolean; // Checks if the Support fixed an issue (searchable, sortable)
31
+ bought: boolean; // Checks if the result is bought or not (searchable, sortable)
32
+ contract_id: number; // The id of the contract that was active when the map was created
33
+ callback: string; // URL to another API which can finish a map (searchable, sortable)
34
+ last_downloaded: string; // The last time the archive was downloaded (searchable, sortable)
35
+ } & ApiCommonData;
36
+ } & Omit<ApiSuccess, 'data'> | ApiError;
37
+
38
+ export type ApiJobResultData = Flatten<Exclude<ApiJobResult, ApiError>['data']>;
39
+
40
+ export const jobResultRevivers: Revivers<ApiJobResult, JobResult> = {
41
+ mapstyle_id: undefined,
42
+ interface_version: undefined,
43
+ fix: undefined,
44
+ fail_reason: undefined,
45
+ process_start: undefined,
46
+ process_end: undefined,
47
+ dealt_with: undefined,
48
+ bought: undefined,
49
+ contract_id: undefined,
50
+ callback: undefined,
51
+ last_downloaded: undefined,
52
+ };
53
+
54
+ export async function uploadJobResultPreview(
55
+ jobId: number,
56
+ blob: Blob,
57
+ ): Promise<Record<string, never>> {
58
+ const pathname = `/v1/jobs/${jobId}/revisions/${lastJobRevision}/result/preview`;
59
+ const path = `${pathname}?${deletedNoneParam}`;
60
+ const body = new FormData();
61
+
62
+ body.append('preview', blob);
63
+
64
+ return request<ApiCommon, Record<string, never>>(path, body);
65
+ }
66
+
67
+ export async function uploadJobResultHostedImage(
68
+ jobId: number,
69
+ blob: Blob,
70
+ fileName: string,
71
+ fileType: 'jpg' | 'png' | 'svg',
72
+ ): Promise<Record<string, never>> {
73
+ const pathname = `/v1/jobs/${jobId}/revisions/${lastJobRevision}/result/hosted-${fileType}`;
74
+ const path = `${pathname}?${deletedNoneParam}`;
75
+ const body = new FormData();
76
+
77
+ body.append(fileType, blob);
78
+ body.append('filename', fileName);
79
+
80
+ return request<ApiCommon, Record<string, never>>(path, body);
81
+ }
@@ -0,0 +1,170 @@
1
+ import { type ApiLayerData, type Layer, layerRevivers } from './layer.js';
2
+ import type { ApiMapstyleSetData } from './mapstyleSet.js';
3
+ import type { ApiLanguageData } from './language.js';
4
+ import {
5
+ type ApiCommon,
6
+ type ApiCommonData,
7
+ type ApiError,
8
+ type ApiSuccess,
9
+ type Flatten,
10
+ type Revivers,
11
+ defaultListHeader,
12
+ deletedNoneParam,
13
+ lastJobRevision,
14
+ request,
15
+ } from '../utils.js';
16
+
17
+ export type FileFormat =
18
+ | 'png'
19
+ | 'jpg'
20
+ | 'tiff'
21
+ | 'svg'
22
+ | 'pdf'
23
+ | 'web'
24
+ | 'web_download'
25
+ | 'webm'
26
+ | 'mp4'
27
+ | 'mov'
28
+ | 'eps'
29
+ | 'eps_log'
30
+ | 'png_sequence'
31
+ | 'jpg_sequence'
32
+ | 'mxf';
33
+
34
+ export type JobRevision = {
35
+ id: number;
36
+ jobId: number;
37
+ revision: number;
38
+ languageCode: string;
39
+ mapstyleSetId: number;
40
+ output: FileFormat;
41
+ };
42
+
43
+ export type ApiJobRevision = {
44
+ data: {
45
+ id: number; // The id of the job revision (sortable)
46
+ job_id: number; // The id of the job related to this revision (searchable, sortable)
47
+ revision: number; // The revision number (searchable, sortable)
48
+ language_code: string; // The language code of the revision (searchable, sortable)
49
+ mapstyle_set_id: number; // The id of the mapstyle set
50
+ archived: boolean; // Whether the revision has been generated (searchable, sortable)
51
+ output: FileFormat; // The output file type
52
+ } & ApiCommonData;
53
+ } & Omit<ApiSuccess, 'data'> | ApiError;
54
+
55
+ export type ApiJobRevisionData = Flatten<Exclude<ApiJobRevision, ApiError>['data']>;
56
+
57
+ export const jobRevisionRevivers: Revivers<ApiJobRevision, JobRevision> = {
58
+ archived: undefined,
59
+ };
60
+
61
+ export async function createJobRevision(
62
+ jobId: number,
63
+ languageCode: string,
64
+ mapstyleSetId: number,
65
+ layers: number[],
66
+ output: FileFormat,
67
+ jobObject: Record<string, unknown>,
68
+ ): Promise<JobRevision> {
69
+ const pathname = `/v1/jobs/${jobId}/revisions`;
70
+ const path = `${pathname}?${deletedNoneParam}`;
71
+ const body = {
72
+ language_code: languageCode,
73
+ mapstyle_set_id: mapstyleSetId,
74
+ object: JSON.stringify(jobObject),
75
+ output,
76
+ layers,
77
+ };
78
+ const options = { revivers: jobRevisionRevivers };
79
+
80
+ return request<ApiJobRevision, JobRevision>(path, body, null, options);
81
+ }
82
+
83
+ export async function getJobRevision(jobId: number): Promise<JobRevision | undefined> {
84
+ const path = `/v1/jobs/${jobId}/revisions/${lastJobRevision}`;
85
+ const options = { revivers: jobRevisionRevivers };
86
+
87
+ return request<ApiJobRevision, JobRevision>(path, null, null, options).catch(() => undefined);
88
+ }
89
+
90
+ export async function getJobRevisionObject<JobObject>(jobId: number): Promise<JobObject> {
91
+ const pathname = `/v1/jobs/${jobId}/revisions/${lastJobRevision}/object`;
92
+ const path = `${pathname}?${deletedNoneParam}`;
93
+
94
+ return request<ApiCommon, string>(path).then(JSON.parse) as Promise<JobObject>;
95
+ }
96
+
97
+ export type JobCanBuild = {
98
+ canBuild: boolean;
99
+ paymentSource: string;
100
+ reason: string | null;
101
+ };
102
+
103
+ export type ApiJobCanBuild = {
104
+ data: {
105
+ can_build: boolean;
106
+ payment_source: string;
107
+ reason: string | null;
108
+ } & ApiCommonData;
109
+ } & Omit<ApiSuccess, 'data'> | ApiError;
110
+
111
+ // Also known as `canBuild()`
112
+ export async function getJobRevisionBuild(jobId: number): Promise<boolean> {
113
+ const pathname = `/v1/jobs/${jobId}/revisions/${lastJobRevision}/build`;
114
+ const path = `${pathname}?${deletedNoneParam}`;
115
+
116
+ return request<ApiJobCanBuild, JobCanBuild>(path).then(
117
+ ({ canBuild }) => canBuild,
118
+ () => false,
119
+ );
120
+ }
121
+
122
+ // export async function registerJobRevisionBuild(
123
+ // jobId: number,
124
+ // status: string,
125
+ // start: Date,
126
+ // end: Date,
127
+ // ): Promise<JobResult> {
128
+ // const pathname = `/v1/jobs/${jobId}/revisions/${lastJobRevision}/build/register`;
129
+ // const path = `${pathname}?${deletedNoneParam}`;
130
+ // const body = { status, process_start: start, process_end: end };
131
+ // const options = { revivers: JobResultRevivers };
132
+ // // TODO: data types are unknown and possibly wrong
133
+ // // TODO: please, check before usage!
134
+ // return request<ApiJobResult, JobResult>(path, body, null, options);
135
+ // }
136
+
137
+ export async function cloneJobRevision(jobId: number, newTitle?: string): Promise<JobRevision> {
138
+ const pathname = `/v1/jobs/${jobId}/revisions/${lastJobRevision}/clone`;
139
+ const path = `${pathname}?${deletedNoneParam}`;
140
+ const body = { title: newTitle ?? null };
141
+ const options = {
142
+ revivers: {
143
+ ...jobRevisionRevivers,
144
+ layers: undefined,
145
+ language: undefined,
146
+ mapstyle_set: undefined,
147
+ },
148
+ };
149
+
150
+ type ApiJobRevisionWithData = {
151
+ data: ApiJobRevisionData & {
152
+ layers: ApiLayerData[];
153
+ language: ApiLanguageData;
154
+ mapstyle_set: ApiMapstyleSetData;
155
+ };
156
+ } & Omit<ApiSuccess, 'data'> | ApiError;
157
+
158
+ return request<ApiJobRevisionWithData, JobRevision>(path, body, null, options);
159
+ }
160
+
161
+ export async function listJobRevisionLayers(jobId: number): Promise<Layer[]> {
162
+ const path = `/v1/jobs/${jobId}/revisions/${lastJobRevision}/layers`;
163
+ const options = { revivers: layerRevivers };
164
+
165
+ type ApiLayerArray = {
166
+ data: ApiLayerData[];
167
+ } & Omit<ApiSuccess, 'data'> | ApiError;
168
+
169
+ return request<ApiLayerArray, Layer>(path, null, defaultListHeader, options);
170
+ }
@@ -0,0 +1,35 @@
1
+ import { type ApiCommon, type ApiCommonData, type ApiError, type ApiSuccess, type Flatten, request } from '../utils.js';
2
+
3
+ export type JobShareVisibility = 'private' | 'organisation' | 'public';
4
+
5
+ export type JobShare = {
6
+ id: number;
7
+ jobId: number;
8
+ visibility: JobShareVisibility;
9
+ hashKey: string;
10
+ apiUrl: string;
11
+ webUrl: string;
12
+ };
13
+
14
+ export type ApiJobShare = {
15
+ data: {
16
+ id: number; // The id of the job share (sortable)
17
+ job_id: number; // The id of the job related to this share
18
+ visibility: string; // The visibility of the job share (searchable, sortable)
19
+ hash_key: string; // The hash key of the job share
20
+ apiUrl: string; // TODO: not present in API specification!
21
+ webUrl: string; // TODO: not present in API specification!
22
+ } & ApiCommonData;
23
+ } & Omit<ApiSuccess, 'data'> | ApiError;
24
+
25
+ export type ApiJobShareData = Flatten<Exclude<ApiJobShare, ApiError>['data']>;
26
+
27
+ export type ApiJobShareArray = {
28
+ data: ApiJobShareData[];
29
+ } & Omit<ApiSuccess, 'data'> | ApiError;
30
+
31
+ export async function deleteJobShare(jobShareId: number): Promise<Record<string, never>> {
32
+ const path = `/v1/jobs/shares/${jobShareId}`;
33
+
34
+ return request<ApiCommon, Record<string, never>>(path, null, null, { method: 'DELETE' });
35
+ }
@@ -0,0 +1,26 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type JobType = {
4
+ id: number;
5
+ };
6
+
7
+ export type ApiJobType = {
8
+ data: {
9
+ id: number; // The id of the job type (sortable)
10
+ name: string; // The name of the job type (searchable, sortable)
11
+ preview: string | null; // The preview file name of the job type
12
+ description: string | null; // The description of the job type (searchable, sortable)
13
+ components: string | null; // The components of the job type
14
+ order?: number; // TODO: not present in API specification!
15
+ } & ApiCommonData;
16
+ } & Omit<ApiSuccess, 'data'> | ApiError;
17
+
18
+ export type ApiJobTypeData = Flatten<Exclude<ApiJobType, ApiError>['data']>;
19
+
20
+ export const jobTypeRevivers: Revivers<ApiJobType, JobType> = {
21
+ name: undefined,
22
+ preview: undefined,
23
+ description: undefined,
24
+ components: undefined,
25
+ order: undefined,
26
+ };
@@ -0,0 +1,19 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten } from '../utils.js';
2
+
3
+ export type Language = {
4
+ code: string;
5
+ name: string;
6
+ locale: string;
7
+ interface: boolean;
8
+ };
9
+
10
+ export type ApiLanguage = {
11
+ data: {
12
+ code: string; // The language code
13
+ name: string; // The name of the language (searchable, sortable)
14
+ locale: string; // The locale string for the language (searchable, sortable)
15
+ interface: boolean; // If this language can be used for user interfaces
16
+ } & ApiCommonData;
17
+ } & Omit<ApiSuccess, 'data'> | ApiError;
18
+
19
+ export type ApiLanguageData = Flatten<Exclude<ApiLanguage, ApiError>['data']>;
@@ -0,0 +1,36 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type Layer = {
4
+ id: number;
5
+ name: string;
6
+ description: string;
7
+ };
8
+
9
+ export type ApiLayer = {
10
+ data: {
11
+ id: number; // The id of the layer (sortable)
12
+ name: string; // The name of the layer (searchable, sortable)
13
+ path: string; // The path to the layer
14
+ description: string; // The description of the layer (searchable, sortable)
15
+ image: string | null; // The image related to a layer
16
+ scale_min: number; // The minimum scale for the layer (searchable, sortable)
17
+ scale_max: number; // The maximum scale for the layer (searchable, sortable)
18
+ pangaea_ready: boolean; // Whether a layer is prepared for Pangaea (searchable, sortable)
19
+ svg_set_id: number | null; // TODO: not present in API specification!
20
+ pivot: unknown; // TODO: not present in API specification!
21
+ order?: number; // TODO: not present in API specification!
22
+ } & ApiCommonData;
23
+ } & Omit<ApiSuccess, 'data'> | ApiError;
24
+
25
+ export type ApiLayerData = Flatten<Exclude<ApiLayer, ApiError>['data']>;
26
+
27
+ export const layerRevivers: Revivers<ApiLayer, Layer> = {
28
+ path: undefined,
29
+ image: undefined,
30
+ scale_min: undefined,
31
+ scale_max: undefined,
32
+ pangaea_ready: undefined,
33
+ svg_set_id: undefined,
34
+ pivot: undefined,
35
+ order: undefined,
36
+ };
@@ -0,0 +1,53 @@
1
+ import {
2
+ type ApiCommonData,
3
+ type ApiError,
4
+ type ApiSuccess,
5
+ type Flatten,
6
+ type Revivers,
7
+ defaultListHeader,
8
+ getSearchParams,
9
+ request,
10
+ } from '../utils.js';
11
+
12
+ export type LayerFaq = {
13
+ id: number;
14
+ name: string;
15
+ description: string;
16
+ mediaUrl: string;
17
+ readMoreUrl: string;
18
+ tags: string[];
19
+ layerId: number;
20
+ order?: number;
21
+ };
22
+
23
+ export type ApiLayerFaq = {
24
+ data: {
25
+ id: number; // The id of the layer faq (sortable)
26
+ name: string; // The name of this layer faq (searchable, sortable)
27
+ description: string; // The description of the layer faq (searchable)
28
+ media_url: string; // The image for the faq (searchable)
29
+ read_more_url: string; // A link to a page with more information (searchable)
30
+ tags: string[]; // A list of tags to search in (searchable)
31
+ layer_id: number; // TODO: not present in API specification!
32
+ order?: number; // TODO: not present in API specification!
33
+ } & ApiCommonData;
34
+ } & Omit<ApiSuccess, 'data'> | ApiError;
35
+
36
+ export type ApiLayerFaqData = Flatten<Exclude<ApiLayerFaq, ApiError>['data']>;
37
+
38
+ export const layerFaqRevivers: Revivers<ApiLayerFaq, LayerFaq> = {
39
+ order: undefined,
40
+ };
41
+
42
+ export async function listLayerFaqs(): Promise<LayerFaq[]> {
43
+ const pathname = `/v1/layer-faqs`;
44
+ const query = getSearchParams({ sort: 'order,name' });
45
+ const path = `${pathname}?${query}`;
46
+ const options = { revivers: layerFaqRevivers };
47
+
48
+ type ApiLayerFaqArray = {
49
+ data: ApiLayerFaqData[];
50
+ } & Omit<ApiSuccess, 'data'> | ApiError;
51
+
52
+ return request<ApiLayerFaqArray, LayerFaq>(path, null, defaultListHeader, options);
53
+ }
@@ -0,0 +1,69 @@
1
+ import type { Layer } from './layer.js';
2
+ import {
3
+ type ApiCommonData,
4
+ type ApiError,
5
+ type ApiSuccess,
6
+ type Flatten,
7
+ getSearchParams,
8
+ request,
9
+ } from '../utils.js';
10
+
11
+ export type LayerGroup = {
12
+ id: number;
13
+ name: string;
14
+ layers: Layer[];
15
+ };
16
+
17
+ export type ApiLayerGroup = {
18
+ data: {
19
+ id: number; // The id of the layer group (sortable)
20
+ name: string; // The name of the layer group (searchable, sortable)
21
+ } & ApiCommonData;
22
+ } & Omit<ApiSuccess, 'data'> | ApiError;
23
+
24
+ export type ApiLayerGroupData = Flatten<Exclude<ApiLayerGroup, ApiError>['data']>;
25
+
26
+ export async function listLayerGroups(layers: Layer[]): Promise<LayerGroup[]> {
27
+ const pathname = `/v1/layer-groups/for-layer-ids`;
28
+ const query = getSearchParams({ layer_ids: layers.map(layer => layer.id) });
29
+ const path = `${pathname}?${query}`;
30
+
31
+ type ApiLayerGroupArray = {
32
+ data: Array<ApiLayerGroupData & { layers: Array<{ id: number }> }>;
33
+ } & Omit<ApiSuccess, 'data'> | ApiError;
34
+
35
+ const layerGroups = await request<ApiLayerGroupArray, LayerGroup>(path);
36
+
37
+ // Arrange layers in an object by id for fast lookups
38
+ const layerMap = new Map(layers.map(layer => [layer.id, layer]));
39
+
40
+ // Create a set of all layer ids that belong to a group
41
+ const groupedLayerIds = new Set<number>();
42
+
43
+ for (const layerGroup of layerGroups) {
44
+ // Replace layers from the API response with their full representation
45
+ layerGroup.layers = layerGroup.layers
46
+ .map(groupLayer => layerMap.get(groupLayer.id))
47
+ .filter((layer): layer is Layer => layer !== undefined);
48
+
49
+ // Remember that these layers belong to a group
50
+ for (const layer of layerGroup.layers) {
51
+ groupedLayerIds.add(layer.id);
52
+ }
53
+ }
54
+
55
+ // Get a list of layers that don’t belong to any group
56
+ const miscLayers = layers.filter(layer => !groupedLayerIds.has(layer.id));
57
+
58
+ // Sort it alphabetically
59
+ miscLayers.sort((a, b) => a.name.localeCompare(b.name));
60
+
61
+ // Put them all in a separate group
62
+ const miscLayerGroup: LayerGroup = {
63
+ id: 999,
64
+ layers: miscLayers,
65
+ name: 'Other layers',
66
+ };
67
+
68
+ return [...layerGroups, miscLayerGroup];
69
+ }
@@ -0,0 +1,46 @@
1
+ import type { ApiCommonData, ApiError, ApiSuccess, Flatten, Revivers } from '../utils.js';
2
+
3
+ export type MapstyleSet = {
4
+ id: number;
5
+ name: string;
6
+ supportsSvg: boolean;
7
+ };
8
+
9
+ export type ApiMapstyleSet = {
10
+ data: {
11
+ id: number; // The id of the mapstyle set (sortable)
12
+ name: string; // The name of the mapstyle set (searchable, sortable)
13
+ description: string; // The description of the set (searchable, sortable)
14
+ supports_svg: boolean; // If the set supports svg (searchable, sortable)
15
+ job_type_id: number; // The id of the job type (searchable)
16
+ preview_lat: number; // The latitude for the preview image
17
+ preview_lon: number; // The longitude for the preview image
18
+ preview_language_code: string; // The language code of the preview
19
+ world_cache: string | null; // The name of the world cache (sortable)
20
+ world_cache_max_zoom: number | null; // The max zoom level of the world cache (sortable)
21
+ css: string | null; // Custom CSS for the MapstyleSet (sortable)
22
+ locator_ready: boolean; // If the set can be used as locator (searchable, sortable)
23
+ show_underlying_elements: boolean; // Shows elements even if behind annotations
24
+ ace_on_osm: boolean; // Use OSM source as data for ACE maps (searchable, sortable)
25
+ order?: number; // TODO: not present in API specification!
26
+ custom_settings?: string | null; // TODO: not present in API specification!
27
+ } & ApiCommonData;
28
+ } & Omit<ApiSuccess, 'data'> | ApiError;
29
+
30
+ export type ApiMapstyleSetData = Flatten<Exclude<ApiMapstyleSet, ApiError>['data']>;
31
+
32
+ export const mapstyleSetRevivers: Revivers<ApiMapstyleSet, MapstyleSet> = {
33
+ description: undefined,
34
+ job_type_id: undefined,
35
+ preview_lat: undefined,
36
+ preview_lon: undefined,
37
+ preview_language_code: undefined,
38
+ world_cache: undefined,
39
+ world_cache_max_zoom: undefined,
40
+ css: undefined,
41
+ locator_ready: undefined,
42
+ show_underlying_elements: undefined,
43
+ ace_on_osm: undefined,
44
+ order: undefined,
45
+ custom_settings: undefined,
46
+ };