@mapcreator/api 3.3.0 → 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/esm/utils.d.ts ADDED
@@ -0,0 +1,72 @@
1
+ import type { CamelCasedProperties, SnakeCasedProperties } from 'type-fest';
2
+ export type Flatten<Type> = Type extends Array<infer Item> ? Item : Type;
3
+ export type ApiCommonData = {
4
+ created_at: string | null;
5
+ deleted_at: string | null;
6
+ updated_at: string | null;
7
+ };
8
+ export interface ApiSuccess {
9
+ success: true;
10
+ data?: Record<string, unknown> | Array<Record<string, unknown>> | string | string[];
11
+ }
12
+ export interface ApiError {
13
+ success: false;
14
+ error: {
15
+ type: string;
16
+ message: string;
17
+ validation_errors?: Record<string, string[]>;
18
+ };
19
+ }
20
+ export type ApiCommon = ApiSuccess | ApiError;
21
+ export declare const myUser = "me";
22
+ export declare const myOrganisations = "mine";
23
+ export declare const lastJobRevision = "last";
24
+ export declare const defaultListHeader: {
25
+ 'X-Per-Page': string;
26
+ };
27
+ export declare const deletedNoneParam: URLSearchParams;
28
+ export declare const keysToRemove: string[];
29
+ export declare const staticContext: {
30
+ keysToRemove: Set<string>;
31
+ keysToAdd: never[];
32
+ revivers: {};
33
+ };
34
+ export declare class NetworkError extends Error {
35
+ }
36
+ export declare class HTTPError extends Error {
37
+ statusCode: number;
38
+ constructor(response: Response);
39
+ }
40
+ export declare class APIError extends Error {
41
+ code: string;
42
+ constructor(apiError: ApiError);
43
+ }
44
+ export declare function getSearchParams(search: Record<string, unknown>): URLSearchParams;
45
+ export type Revivers<I extends ApiCommon, O extends Record<string, unknown>, R = Exclude<Flatten<Exclude<Exclude<I, ApiError>['data'], string | undefined>>, string>> = {
46
+ [K in keyof O | keyof R]?: K extends keyof O & keyof R ? ((data: R) => O[K]) | undefined : K extends Exclude<keyof O, keyof R> ? (data: R) => O[K] : K extends Exclude<keyof R, keyof O> ? undefined : never;
47
+ };
48
+ export interface ExtraOptions<I extends ApiCommon, O extends Record<string, unknown> | string> {
49
+ method?: 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
50
+ revivers?: O extends Record<string, unknown> ? Revivers<I, O> : never;
51
+ sendNull?: boolean;
52
+ withMeta?: boolean;
53
+ }
54
+ export declare class APIMeta<I extends ApiCommon, O extends Record<string, unknown> | string, A = Exclude<I, ApiError>['data'] extends unknown[] ? true : false> extends Error {
55
+ data: A extends true ? O[] : O;
56
+ status: number;
57
+ headers: Headers;
58
+ constructor(data: A extends true ? O[] : O, headers: Headers, status: number);
59
+ }
60
+ export declare function request<I extends ApiCommon, O extends Record<string, unknown> | string, A = Exclude<I, ApiError>['data'] extends unknown[] ? true : false>(path: string, body?: XMLHttpRequestBodyInit | Record<string | number, unknown> | null, extraHeaders?: Record<string, string> | null, extraOptions?: ExtraOptions<I, O>): Promise<A extends true ? O[] : O>;
61
+ interface Context<I extends ApiCommon, O extends Record<string, unknown>> {
62
+ keysToRemove: Set<string>;
63
+ keysToAdd: string[];
64
+ revivers: Revivers<I, O>;
65
+ }
66
+ export declare function getContext<I extends ApiCommon, O extends Record<string, unknown>>(revivers: Revivers<I, O>, keys?: string[]): Context<I, O>;
67
+ export declare function processData<I extends ApiCommon, O extends Record<string, unknown>>(this: Context<I, O>, data: Exclude<Flatten<Exclude<Exclude<I, ApiError>['data'], string | undefined>>, string>): O;
68
+ export declare function toApiType<T extends Record<string, unknown>>(body: T): SnakeCasedProperties<T>;
69
+ export declare function toAppType<T extends Record<string, unknown>>(body: T): CamelCasedProperties<T>;
70
+ export declare function ensureArray<T extends Record<string, unknown>>(data: T | T[]): T[];
71
+ export {};
72
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/esm/utils.js ADDED
@@ -0,0 +1,206 @@
1
+ import { apiHost, authenticate, token } from './oauth.js';
2
+ export const myUser = 'me';
3
+ export const myOrganisations = 'mine';
4
+ export const lastJobRevision = 'last';
5
+ export const defaultListHeader = { 'X-Per-Page': '50' };
6
+ export const deletedNoneParam = getSearchParams({ deleted: 'none' });
7
+ export const keysToRemove = ['created_at', 'deleted_at', 'updated_at'];
8
+ export const staticContext = { keysToRemove: new Set(keysToRemove), keysToAdd: [], revivers: {} };
9
+ // class AuthorizationError extends Error {}
10
+ export class NetworkError extends Error {
11
+ }
12
+ export class HTTPError extends Error {
13
+ constructor(response) {
14
+ super(response.statusText);
15
+ this.statusCode = response.status;
16
+ }
17
+ }
18
+ export class APIError extends Error {
19
+ constructor(apiError) {
20
+ super(apiError.error.message);
21
+ this.code = apiError.error.type;
22
+ }
23
+ }
24
+ export function getSearchParams(search) {
25
+ return new URLSearchParams(Object.entries(search).reduce((arr, [key, value]) => {
26
+ if (Array.isArray(value)) {
27
+ arr.push(...value.map(val => [`${key}[]`, String(val)]));
28
+ }
29
+ else if (value !== null && typeof value === 'object') {
30
+ const params = getSearchParams(value);
31
+ arr.push(...Array.from(params.entries()).map(([subKey, val]) => [
32
+ ~subKey.indexOf('[')
33
+ ? `${key}[${subKey.slice(0, subKey.indexOf('['))}]${subKey.slice(subKey.indexOf('['))}`
34
+ : `${key}[${subKey}]`,
35
+ val,
36
+ ]));
37
+ }
38
+ else {
39
+ arr.push([key, String(value)]);
40
+ }
41
+ return arr;
42
+ }, []));
43
+ }
44
+ export class APIMeta extends Error {
45
+ constructor(data, headers, status) {
46
+ super();
47
+ this.data = data;
48
+ this.status = status;
49
+ this.headers = headers;
50
+ }
51
+ }
52
+ export async function request(path, body, extraHeaders, extraOptions) {
53
+ const href = `${apiHost}${path}`;
54
+ const init = getRequestInit(body, extraHeaders, extraOptions);
55
+ const response = await fetch(href, init).catch((error) => {
56
+ var _a;
57
+ throw new NetworkError((_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error);
58
+ });
59
+ if (response.ok) {
60
+ const json = (await response.json().catch(() => ({
61
+ success: false,
62
+ error: { type: 'SyntaxError', message: 'Malformed JSON response' },
63
+ })));
64
+ if (json.success) {
65
+ const { data } = json;
66
+ const withMeta = extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.withMeta;
67
+ const revivers = extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.revivers;
68
+ const keys = revivers ? Object.keys(revivers) : [];
69
+ const context = revivers && keys.length
70
+ ? getContext(revivers, keys)
71
+ : staticContext;
72
+ let result;
73
+ if (Array.isArray(data)) {
74
+ let moreData = [];
75
+ const headers = response.headers;
76
+ // @ts-expect-error TS2362, get valid number or 0
77
+ const total = headers.get('X-Paginate-Total') | 0;
78
+ if (!withMeta && ((data.length && total > data.length) || response.status === 206)) {
79
+ // @ts-expect-error TS2362, get valid number or 0
80
+ const offset = `${(headers.get('X-Paginate-Offset') | 0) + data.length}`;
81
+ moreData = await request(path, body, Object.assign(Object.assign({}, extraHeaders), { 'X-Offset': offset }), extraOptions);
82
+ }
83
+ if (data.length) {
84
+ result = (typeof data[0] !== 'string'
85
+ ? data.map(processData, context)
86
+ : data).concat(moreData);
87
+ }
88
+ else {
89
+ result = moreData;
90
+ }
91
+ }
92
+ else {
93
+ if (data !== undefined) {
94
+ // @ts-expect-error TS2345, TODO: fix type error for the `context` object
95
+ result = (typeof data !== 'string' ? processData.call(context, data) : data);
96
+ }
97
+ else {
98
+ result = {};
99
+ }
100
+ }
101
+ if (withMeta) {
102
+ throw new APIMeta(result, response.headers, response.status);
103
+ }
104
+ return result;
105
+ }
106
+ else {
107
+ throw new APIError(json);
108
+ }
109
+ }
110
+ else {
111
+ // TODO: parse and process all typical errors
112
+ // eslint-disable-next-line default-case
113
+ switch (response.status) {
114
+ case 401:
115
+ authenticate();
116
+ break; // NO-OP
117
+ case 403:
118
+ case 404:
119
+ case 406:
120
+ throw new APIError((await response.json().catch(() => ({
121
+ success: false,
122
+ error: { type: 'HttpException', message: response.statusText },
123
+ }))));
124
+ case 429:
125
+ await new Promise((resolve) => { setTimeout(resolve, response.headers.get('X-RateLimit-Reset') * 1000 || 500); });
126
+ return request(path, body, extraHeaders, extraOptions);
127
+ }
128
+ throw new HTTPError(response);
129
+ }
130
+ }
131
+ function getRequestInit(body, extraHeaders, extraOptions) {
132
+ var _a;
133
+ const authorization = token ? { Authorization: token.toString() } : null;
134
+ let contentType = null;
135
+ if (body !== undefined) {
136
+ switch (true) {
137
+ case typeof body === 'string':
138
+ contentType = { 'Content-Type': 'text/plain' };
139
+ break;
140
+ case body instanceof FormData: // Autofilled with 'multipart/form-data'
141
+ case body instanceof URLSearchParams: // Autofilled with 'application/x-www-form-urlencoded'
142
+ break;
143
+ case body instanceof Blob: // File is instance of Blob too
144
+ contentType = { 'Content-Type': body.type || 'application/octet-stream' };
145
+ break;
146
+ case body instanceof ArrayBuffer:
147
+ case ArrayBuffer.isView(body):
148
+ contentType = { 'Content-Type': 'application/octet-stream' };
149
+ break;
150
+ case body === null && !(extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.sendNull):
151
+ break;
152
+ default:
153
+ contentType = { 'Content-Type': 'application/json' };
154
+ body = JSON.stringify(body);
155
+ }
156
+ }
157
+ const headers = Object.assign(Object.assign(Object.assign({ Accept: 'application/json' }, authorization), contentType), extraHeaders);
158
+ const method = (_a = extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.method) !== null && _a !== void 0 ? _a : (body != null ? 'POST' : 'GET'); // don't touch `!=` please
159
+ return { body, headers, method };
160
+ }
161
+ export function getContext(revivers, keys = Object.keys(revivers)) {
162
+ return {
163
+ keysToRemove: new Set(keys.filter(isUndefined, revivers).concat(keysToRemove)),
164
+ keysToAdd: keys.filter(isReviver, revivers),
165
+ revivers,
166
+ };
167
+ }
168
+ export function processData(data) {
169
+ const result = {};
170
+ const keys = Object.keys(data).filter(isPreserved, this.keysToRemove);
171
+ for (let i = 0; i < keys.length; ++i) {
172
+ result[toCamelCase(keys[i])] = data[keys[i]];
173
+ }
174
+ if (this.keysToAdd.length) {
175
+ const keys = this.keysToAdd;
176
+ for (let i = 0; i < keys.length; ++i) {
177
+ result[keys[i]] = this.revivers[keys[i]](data);
178
+ }
179
+ }
180
+ return result;
181
+ } /* eslint-enable @typescript-eslint/prefer-for-of */
182
+ export function toApiType(body) {
183
+ return Object.fromEntries(Object.entries(body).map(([k, v]) => [toSnakeCase(k), v]));
184
+ }
185
+ export function toAppType(body) {
186
+ return Object.fromEntries(Object.entries(body).map(([k, v]) => [toCamelCase(k), v]));
187
+ }
188
+ export function ensureArray(data) {
189
+ return Array.isArray(data) ? data : [data];
190
+ }
191
+ function toCamelCase(key) {
192
+ return key.replace(/_+(.)/g, (_, c) => c.toUpperCase());
193
+ }
194
+ function toSnakeCase(key) {
195
+ return key.replace(/[A-Z]/g, '_$&').toLowerCase();
196
+ }
197
+ function isUndefined(key) {
198
+ return this[key] === undefined;
199
+ }
200
+ function isReviver(key) {
201
+ return this[key] !== undefined;
202
+ }
203
+ function isPreserved(key) {
204
+ return !this.has(key);
205
+ }
206
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,148 +1,77 @@
1
1
  {
2
2
  "name": "@mapcreator/api",
3
- "version": "3.3.0",
3
+ "version": "5.0.0-alpha.12",
4
4
  "description": "Mapcreator JavaScript API",
5
- "main": "dist/bundle.js",
6
- "repository": "https://gitlab.com/mapcreator/api-wrapper.git",
7
- "author": "Bas Bieling <b.bieling@mapcreator.eu>",
8
5
  "license": "BSD-3-Clause",
9
- "types": "dist/index.d.ts",
6
+ "main": "./cjs/index.js",
7
+ "types": "./cjs/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./esm/index.d.ts",
11
+ "import": "./esm/index.js",
12
+ "require": "./cjs/index.js"
13
+ },
14
+ "./oauth": {
15
+ "types": "./esm/oauth.d.ts",
16
+ "import": "./esm/oauth.js",
17
+ "require": "./cjs/oauth.js"
18
+ },
19
+ "./oauth.js": {
20
+ "types": "./esm/oauth.d.ts",
21
+ "import": "./esm/oauth.js",
22
+ "require": "./cjs/oauth.js"
23
+ },
24
+ "./utils": {
25
+ "types": "./esm/utils.d.ts",
26
+ "import": "./esm/utils.js",
27
+ "require": "./cjs/utils.js"
28
+ },
29
+ "./utils.js": {
30
+ "types": "./esm/utils.d.ts",
31
+ "import": "./esm/utils.js",
32
+ "require": "./cjs/utils.js"
33
+ },
34
+ "./package.json": "./package.json",
35
+ "./*": {
36
+ "types": "./esm/api/*.d.ts",
37
+ "import": "./esm/api/*.js",
38
+ "require": "./cjs/api/*.js"
39
+ },
40
+ "./*.js": {
41
+ "types": "./esm/api/*.d.ts",
42
+ "import": "./esm/api/*.js",
43
+ "require": "./cjs/api/*.js"
44
+ }
45
+ },
46
+ "scripts": {
47
+ "build": "tsc --outDir esm && tsc -m commonjs --outDir cjs",
48
+ "clean": "npx rimraf esm/ cjs/",
49
+ "lint": "eslint --ext .ts src",
50
+ "prepublishOnly": "npm run lint && npm run clean && npm run build",
51
+ "test": "echo \"Error: no test specified\" && exit 1"
52
+ },
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "git+https://gitlab.com/mapcreator/api-wrapper.git"
56
+ },
10
57
  "files": [
11
- "dist",
12
- "src",
13
- "manual"
58
+ "cjs",
59
+ "esm",
60
+ "src"
14
61
  ],
62
+ "bugs": {
63
+ "url": "https://gitlab.com/mapcreator/api-wrapper/issues"
64
+ },
65
+ "homepage": "https://gitlab.com/mapcreator/api-wrapper#readme",
15
66
  "dependencies": {
16
- "@babel/runtime": "^7.10.2",
17
- "case": "^1.6.3",
18
- "form-data": "^3.0.0",
19
- "json-stable-stringify": "^1.0.1",
20
- "ky": "^0.21.0",
21
- "ky-universal": "^0.8.1",
22
- "mitt": "^1.2.0"
67
+ "@types/geojson": "^7946.0.14",
68
+ "type-fest": "^4.10"
23
69
  },
24
70
  "devDependencies": {
25
- "@babel/core": "^7.10.2",
26
- "@babel/plugin-proposal-class-properties": "^7.10.1",
27
- "@babel/plugin-proposal-export-default-from": "^7.10.1",
28
- "@babel/plugin-proposal-export-namespace-from": "^7.10.1",
29
- "@babel/plugin-transform-runtime": "^7.10.1",
30
- "@babel/preset-env": "^7.10.2",
31
- "babel-eslint": "^10.1.0",
32
- "babel-jest": "^26.0.1",
33
- "babel-loader": "^8.1.0",
34
- "contributors": "^0.5.1",
35
- "dotenv-webpack": "^7.1.0",
36
- "esdoc": "^1.1.0",
37
- "esdoc-ecmascript-proposal-plugin": "^1.0.0",
38
- "esdoc-inject-script-plugin": "^1.0.0",
39
- "esdoc-inject-style-plugin": "^1.0.0",
40
- "esdoc-standard-plugin": "^1.0.0",
41
- "eslint": "^5.12.0",
42
- "eslint-plugin-compat": "^3.7.0",
43
- "eslint-plugin-promise": "^4.2.1",
44
- "fs-extra": "^9.0.1",
45
- "jest": "^26.0.1",
46
- "jest-junit": "^10.0.0",
47
- "licensecheck": "^1.3.0",
48
- "nock": "^13.0.3",
49
- "nyc": "^15.1.0",
50
- "tap-nyc": "^1.0.3",
51
- "terser-webpack-plugin": "^5.3.1",
52
- "typescript": "^4.9.4",
53
- "webpack": "^5.68.0",
54
- "webpack-bundle-analyzer": "^4.5.0",
55
- "webpack-cli": "^4.9.2",
56
- "webpack-merge": "^5.8.0",
57
- "webpack-node-externals": "^3.0.0"
58
- },
59
- "scripts": {
60
- "build": "APP_ENV=production npx webpack",
61
- "postbuild": "APP_ENV=production npx tsc || true && rm -v dist/*.map dist/**/*.map",
62
- "watch": "npx webpack --progress --watch",
63
- "docs": "npx esdoc && ./scripts/inject_docs_viewport.sh",
64
- "lint": "npx eslint --no-color --format checkstyle --output-file build/checkstyle.xml src",
65
- "clean": "rm -fr dist docs build || true",
66
- "all": "npm run clean && npm run lint && npm run build && npm run test && npm run docs",
67
- "test": "npx jest",
68
- "test-ci": "npx jest --coverage --ci --verbose"
69
- },
70
- "contributors": [
71
- "Bas Bieling <b.bieling@mapcreator.eu> (https://GitHub.com/Mechazawa)"
72
- ],
73
- "browserslist": [
74
- "> 1%",
75
- "Firefox ESR",
76
- "not dead",
77
- "not IE_mob < 12",
78
- "not OperaMini all"
79
- ],
80
- "esdoc": {
81
- "source": "./src",
82
- "destination": "./docs",
83
- "name": "mapcreator",
84
- "plugins": [
85
- {
86
- "name": "esdoc-standard-plugin",
87
- "option": {
88
- "accessor": {
89
- "access": [
90
- "public",
91
- "protected"
92
- ],
93
- "autoPrivate": true
94
- },
95
- "undocumentIdentifier": {
96
- "enable": true
97
- },
98
- "unexportedIdentifier": {
99
- "enable": false
100
- },
101
- "typeInference": {
102
- "enable": true
103
- },
104
- "brand": {
105
- "title": "Mapcreator Api Wrapper",
106
- "description": "Mapcreator Api Javascript Wrapper"
107
- },
108
- "manual": {
109
- "asset": "./manual/assets",
110
- "index": "./README.md",
111
- "files": [
112
- "./manual/examples.md",
113
- "./manual/examples.authentication.md",
114
- "./manual/building.md",
115
- "./manual/installation.md"
116
- ]
117
- }
118
- }
119
- },
120
- {
121
- "name": "esdoc-ecmascript-proposal-plugin",
122
- "option": {
123
- "all": true
124
- }
125
- },
126
- {
127
- "name": "esdoc-inject-script-plugin",
128
- "option": {
129
- "enable": true,
130
- "scripts": [
131
- "./dist/bundle.browser.js",
132
- "./manual/js/sandbox.js"
133
- ]
134
- }
135
- },
136
- {
137
- "name": "esdoc-inject-style-plugin",
138
- "option": {
139
- "enable": true,
140
- "styles": [
141
- "./manual/css/sidebar_fix.css",
142
- "./manual/css/hide_import.css"
143
- ]
144
- }
145
- }
146
- ]
71
+ "@stylistic/eslint-plugin": "~1.5",
72
+ "@typescript-eslint/eslint-plugin": "~6.15",
73
+ "@typescript-eslint/parser": "~6.15",
74
+ "eslint": "~8.57",
75
+ "typescript": "~5.4.5"
147
76
  }
148
77
  }
package/src/README.md ADDED
@@ -0,0 +1,126 @@
1
+ ### Used type system
2
+
3
+ We use type declarations for both the data coming over the wire and the data used by the application. In general, these types differ only in the presence of additional fields in the data arriving over the network (like `created_at`), and used naming convention. Data over the network uses the so-called snake case.
4
+
5
+ All in all, we can use TypeScript's native mechanisms to convert one type to another and fully define just one type:
6
+
7
+ ```typescript
8
+ import type { CamelCasedProperties } from 'type-fest';
9
+
10
+ type ApiType =
11
+ | ({
12
+ data: {
13
+ prop: unknown;
14
+ } & ApiCommonData;
15
+ } & Omit<ApiSuccess, 'data'>)
16
+ | ApiError;
17
+
18
+ type AppType = CamelCasedProperties<Omit<Exclude<ApiType, ApiError>['data'], keyof ApiCommonData>>;
19
+ ```
20
+
21
+ or in reverse order:
22
+
23
+ ```typescript
24
+ import type { SnakeCasedProperties } from 'type-fest';
25
+
26
+ type AppType = {
27
+ prop: unknown;
28
+ };
29
+
30
+ type ApiType =
31
+ | ({
32
+ data: SnakeCasedProperties<AppType> & ApiCommonData;
33
+ } & Omit<ApiSuccess, 'data'>)
34
+ | ApiError;
35
+ ```
36
+
37
+ But the decision was made not to do this, since it may be more difficult for the developer to make the conversion in their head than to see it in front of their eyes.
38
+
39
+ ### Using a `request()`
40
+
41
+ The function has the following signature:
42
+
43
+ ```typescript
44
+ async function request<I extends ApiCommon, O extends Record<string, unknown> | string>(
45
+ path: string,
46
+ body?: XMLHttpRequestBodyInit | Record<string | number, unknown> | null,
47
+ extraHeaders?: Record<string, string> | null,
48
+ extraOptions?: ExtraOptions<I, O>,
49
+ ): Promise<O | O[]> { /* ... */ }
50
+ ```
51
+
52
+ Let's take it step by step.
53
+
54
+ `I extends ApiCommon` - represents the type of data we receive over the network.
55
+
56
+ `O extends Record<string, unknown> | string` - represents the data type that will be used in the application.
57
+
58
+ Ideally you should describe and convey both types. This will help to check the data types in the arguments passed.
59
+ See current data types for an example.
60
+
61
+ `path: string` - the path to the resource, must include the API version, but must not include the schema or authority.
62
+ Example: `/v1/jobs/12345`
63
+
64
+ `body?: XMLHttpRequestBodyInit | Record<string | number, unknown> | null` - any meaningful body type. In general,
65
+ the presence of an JSON object is assumed (or the absence of one for methods that only request data), but you can
66
+ also pass `Blob`, `FormData`, `URLSearchParams` or just `ArrayBuffer`. The required content type will be added to
67
+ the headers automatically.
68
+
69
+ `extraHeaders?: Record<string, string> | null` - the object with additional headers.
70
+
71
+ `extraOptions?: ExtraOptions<I, O>` - where `ExtraOptions<I, O>` is defined like this:
72
+
73
+ ```typescript
74
+ interface ExtraOptions<I extends ApiCommon, O extends Record<string, unknown> | string> {
75
+ method?: 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
76
+ revivers?: O extends Record<string, unknown> ? Revivers<I, O> : never;
77
+ sendNull?: boolean;
78
+ withMeta?: boolean;
79
+ }
80
+ ```
81
+
82
+ Most fields are self-explanatory.
83
+
84
+ `sendNull` can be used if you really want to pass `null` as body content.
85
+
86
+ `revivers` is used to specify an object that can modify the behavior of the internal handler of data coming over
87
+ the network. Let's take a closer look at this moment.
88
+
89
+ #### Revivers
90
+
91
+ By default, the `request()` function does the following things with data coming over the network:
92
+
93
+ - It removes `created_at`, `updated_at`, `deleted_at` fields from the output objects.
94
+ - It preserves all the remaining fields but converts their names into camelCase.
95
+
96
+ When passing an object with revivers you can a couple of things:
97
+
98
+ - You can list the fields that you want **to exclude** from the result object. To do this, the field must be assigned an
99
+ `undefined` value.
100
+ - You can **add** new fields or **modify** the type of existing ones. To do this, you need to pass a function as a field
101
+ value, which will receive the original object as input.
102
+
103
+ Example:
104
+
105
+ ```typescript
106
+ const jobRevivers: Revivers<ApiJob, Job> = {
107
+ user_id: undefined,
108
+ description: undefined,
109
+ share_token: undefined,
110
+ autosave_preview_path: undefined,
111
+ job_folder_id: undefined,
112
+
113
+ jobTypeId: () => 9,
114
+ createdAt: (data: ApiJobData) => data.created_at as string,
115
+ previewPath: (data: ApiJobData) => (data.preview_path as string | null) ?? data.autosave_preview_path ?? undefined,
116
+ };
117
+ ```
118
+
119
+ `user_id`, `description`, `share_token`, `autosave_preview_path`, `job_folder_id` fields will be excluded from the
120
+ result object.
121
+
122
+ `jobTypeId` will be always **9**.
123
+
124
+ `createdAt` will be returned (please note that that field is excluded by default)
125
+
126
+ `previewPath` - some actions will be performed with the source data.