@esri/hub-common 9.14.1 → 9.17.1

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 (295) hide show
  1. package/dist/es2017/ArcGISContext.js +11 -0
  2. package/dist/es2017/ArcGISContext.js.map +1 -1
  3. package/dist/es2017/ArcGISContextManager.js +13 -5
  4. package/dist/es2017/ArcGISContextManager.js.map +1 -1
  5. package/dist/es2017/Hub.js +70 -0
  6. package/dist/es2017/Hub.js.map +1 -0
  7. package/dist/es2017/HubError.js +35 -0
  8. package/dist/es2017/HubError.js.map +1 -0
  9. package/dist/es2017/collections.js +23 -0
  10. package/dist/es2017/collections.js.map +1 -1
  11. package/dist/es2017/content/_internal.js +12 -0
  12. package/dist/es2017/content/_internal.js.map +1 -1
  13. package/dist/es2017/content/index.js +30 -15
  14. package/dist/es2017/content/index.js.map +1 -1
  15. package/dist/es2017/core/helpers/PropertyMapper.js +95 -0
  16. package/dist/es2017/core/helpers/PropertyMapper.js.map +1 -0
  17. package/dist/es2017/core/index.js +3 -0
  18. package/dist/es2017/core/index.js.map +1 -0
  19. package/dist/es2017/core/traits/WithBannerImage.js +1 -0
  20. package/dist/es2017/core/traits/WithBannerImage.js.map +1 -0
  21. package/dist/es2017/core/traits/WithLayout.js +1 -0
  22. package/dist/es2017/core/traits/WithLayout.js.map +1 -0
  23. package/dist/es2017/core/traits/WithSlug.js +1 -0
  24. package/dist/es2017/core/traits/WithSlug.js.map +1 -0
  25. package/dist/es2017/core/traits/index.js +4 -0
  26. package/dist/es2017/core/traits/index.js.map +1 -0
  27. package/dist/es2017/core/types/IContentEnrichments.js +1 -0
  28. package/dist/es2017/core/types/IContentEnrichments.js.map +1 -0
  29. package/dist/es2017/core/types/IHubContent.js +1 -0
  30. package/dist/es2017/core/types/IHubContent.js.map +1 -0
  31. package/dist/es2017/core/types/IHubEntityBase.js +1 -0
  32. package/dist/es2017/core/types/IHubEntityBase.js.map +1 -0
  33. package/dist/es2017/core/types/IHubEntityManager.js +1 -0
  34. package/dist/es2017/core/types/IHubEntityManager.js.map +1 -0
  35. package/dist/es2017/core/types/IHubEvent.js +1 -0
  36. package/dist/es2017/core/types/IHubEvent.js.map +1 -0
  37. package/dist/es2017/core/types/IHubImage.js +1 -0
  38. package/dist/es2017/core/types/IHubImage.js.map +1 -0
  39. package/dist/es2017/core/types/IHubInitiative.js +1 -0
  40. package/dist/es2017/core/types/IHubInitiative.js.map +1 -0
  41. package/dist/es2017/core/types/IHubItemEntity.js +1 -0
  42. package/dist/es2017/core/types/IHubItemEntity.js.map +1 -0
  43. package/dist/es2017/core/types/IHubLayout.js +1 -0
  44. package/dist/es2017/core/types/IHubLayout.js.map +1 -0
  45. package/dist/es2017/core/types/IHubPage.js +1 -0
  46. package/dist/es2017/core/types/IHubPage.js.map +1 -0
  47. package/dist/es2017/core/types/IHubProject.js +1 -0
  48. package/dist/es2017/core/types/IHubProject.js.map +1 -0
  49. package/dist/es2017/core/types/IHubSite.js +1 -0
  50. package/dist/es2017/core/types/IHubSite.js.map +1 -0
  51. package/dist/es2017/core/types/IHubTimeline.js +1 -0
  52. package/dist/es2017/core/types/IHubTimeline.js.map +1 -0
  53. package/dist/es2017/core/types/IItemEnrichments.js +1 -0
  54. package/dist/es2017/core/types/IItemEnrichments.js.map +1 -0
  55. package/dist/es2017/core/types/index.js +15 -0
  56. package/dist/es2017/core/types/index.js.map +1 -0
  57. package/dist/es2017/index.js +11 -6
  58. package/dist/es2017/index.js.map +1 -1
  59. package/dist/es2017/items/fail-safe-update.js +2 -2
  60. package/dist/es2017/items/fail-safe-update.js.map +1 -1
  61. package/dist/es2017/items/get-model-from-options.js +2 -2
  62. package/dist/es2017/items/get-model-from-options.js.map +1 -1
  63. package/dist/es2017/items/index.js +2 -3
  64. package/dist/es2017/items/index.js.map +1 -1
  65. package/dist/es2017/items/slugs.js +92 -0
  66. package/dist/es2017/items/slugs.js.map +1 -0
  67. package/dist/es2017/models/index.js +98 -0
  68. package/dist/es2017/models/index.js.map +1 -0
  69. package/dist/es2017/{items/serialize-model.js → models/serializeModel.js} +1 -1
  70. package/dist/es2017/models/serializeModel.js.map +1 -0
  71. package/dist/es2017/projects/HubProjectManager.js +115 -0
  72. package/dist/es2017/projects/HubProjectManager.js.map +1 -0
  73. package/dist/es2017/projects/HubProjects.js +194 -0
  74. package/dist/es2017/projects/HubProjects.js.map +1 -0
  75. package/dist/es2017/projects/index.js +3 -0
  76. package/dist/es2017/projects/index.js.map +1 -0
  77. package/dist/es2017/utils/dasherize.js +25 -0
  78. package/dist/es2017/utils/dasherize.js.map +1 -0
  79. package/dist/es2017/utils/index.js +1 -0
  80. package/dist/es2017/utils/index.js.map +1 -1
  81. package/dist/esm/ArcGISContext.js +15 -0
  82. package/dist/esm/ArcGISContext.js.map +1 -1
  83. package/dist/esm/ArcGISContextManager.js +13 -5
  84. package/dist/esm/ArcGISContextManager.js.map +1 -1
  85. package/dist/esm/Hub.js +89 -0
  86. package/dist/esm/Hub.js.map +1 -0
  87. package/dist/esm/HubError.js +41 -0
  88. package/dist/esm/HubError.js.map +1 -0
  89. package/dist/esm/collections.js +23 -0
  90. package/dist/esm/collections.js.map +1 -1
  91. package/dist/esm/content/_internal.js +14 -0
  92. package/dist/esm/content/_internal.js.map +1 -1
  93. package/dist/esm/content/index.js +30 -15
  94. package/dist/esm/content/index.js.map +1 -1
  95. package/dist/esm/core/helpers/PropertyMapper.js +97 -0
  96. package/dist/esm/core/helpers/PropertyMapper.js.map +1 -0
  97. package/dist/esm/core/index.js +3 -0
  98. package/dist/esm/core/index.js.map +1 -0
  99. package/dist/esm/core/traits/WithBannerImage.js +1 -0
  100. package/dist/esm/core/traits/WithBannerImage.js.map +1 -0
  101. package/dist/esm/core/traits/WithLayout.js +1 -0
  102. package/dist/esm/core/traits/WithLayout.js.map +1 -0
  103. package/dist/esm/core/traits/WithSlug.js +1 -0
  104. package/dist/esm/core/traits/WithSlug.js.map +1 -0
  105. package/dist/esm/core/traits/index.js +4 -0
  106. package/dist/esm/core/traits/index.js.map +1 -0
  107. package/dist/esm/core/types/IContentEnrichments.js +1 -0
  108. package/dist/esm/core/types/IContentEnrichments.js.map +1 -0
  109. package/dist/esm/core/types/IHubContent.js +1 -0
  110. package/dist/esm/core/types/IHubContent.js.map +1 -0
  111. package/dist/esm/core/types/IHubEntityBase.js +1 -0
  112. package/dist/esm/core/types/IHubEntityBase.js.map +1 -0
  113. package/dist/esm/core/types/IHubEntityManager.js +1 -0
  114. package/dist/esm/core/types/IHubEntityManager.js.map +1 -0
  115. package/dist/esm/core/types/IHubEvent.js +1 -0
  116. package/dist/esm/core/types/IHubEvent.js.map +1 -0
  117. package/dist/esm/core/types/IHubImage.js +1 -0
  118. package/dist/esm/core/types/IHubImage.js.map +1 -0
  119. package/dist/esm/core/types/IHubInitiative.js +1 -0
  120. package/dist/esm/core/types/IHubInitiative.js.map +1 -0
  121. package/dist/esm/core/types/IHubItemEntity.js +1 -0
  122. package/dist/esm/core/types/IHubItemEntity.js.map +1 -0
  123. package/dist/esm/core/types/IHubLayout.js +1 -0
  124. package/dist/esm/core/types/IHubLayout.js.map +1 -0
  125. package/dist/esm/core/types/IHubPage.js +1 -0
  126. package/dist/esm/core/types/IHubPage.js.map +1 -0
  127. package/dist/esm/core/types/IHubProject.js +1 -0
  128. package/dist/esm/core/types/IHubProject.js.map +1 -0
  129. package/dist/esm/core/types/IHubSite.js +1 -0
  130. package/dist/esm/core/types/IHubSite.js.map +1 -0
  131. package/dist/esm/core/types/IHubTimeline.js +1 -0
  132. package/dist/esm/core/types/IHubTimeline.js.map +1 -0
  133. package/dist/esm/core/types/IItemEnrichments.js +1 -0
  134. package/dist/esm/core/types/IItemEnrichments.js.map +1 -0
  135. package/dist/esm/core/types/index.js +15 -0
  136. package/dist/esm/core/types/index.js.map +1 -0
  137. package/dist/esm/index.js +11 -6
  138. package/dist/esm/index.js.map +1 -1
  139. package/dist/esm/items/fail-safe-update.js +2 -2
  140. package/dist/esm/items/fail-safe-update.js.map +1 -1
  141. package/dist/esm/items/get-model-from-options.js +2 -2
  142. package/dist/esm/items/get-model-from-options.js.map +1 -1
  143. package/dist/esm/items/index.js +2 -3
  144. package/dist/esm/items/index.js.map +1 -1
  145. package/dist/esm/items/slugs.js +93 -0
  146. package/dist/esm/items/slugs.js.map +1 -0
  147. package/dist/esm/models/index.js +99 -0
  148. package/dist/esm/models/index.js.map +1 -0
  149. package/dist/esm/{items/serialize-model.js → models/serializeModel.js} +1 -1
  150. package/dist/esm/models/serializeModel.js.map +1 -0
  151. package/dist/esm/projects/HubProjectManager.js +142 -0
  152. package/dist/esm/projects/HubProjectManager.js.map +1 -0
  153. package/dist/esm/projects/HubProjects.js +225 -0
  154. package/dist/esm/projects/HubProjects.js.map +1 -0
  155. package/dist/esm/projects/index.js +3 -0
  156. package/dist/esm/projects/index.js.map +1 -0
  157. package/dist/esm/utils/dasherize.js +25 -0
  158. package/dist/esm/utils/dasherize.js.map +1 -0
  159. package/dist/esm/utils/index.js +1 -0
  160. package/dist/esm/utils/index.js.map +1 -1
  161. package/dist/node/ArcGISContext.js +11 -0
  162. package/dist/node/ArcGISContext.js.map +1 -1
  163. package/dist/node/ArcGISContextManager.js +13 -5
  164. package/dist/node/ArcGISContextManager.js.map +1 -1
  165. package/dist/node/Hub.js +74 -0
  166. package/dist/node/Hub.js.map +1 -0
  167. package/dist/node/HubError.js +38 -0
  168. package/dist/node/HubError.js.map +1 -0
  169. package/dist/node/collections.js +24 -1
  170. package/dist/node/collections.js.map +1 -1
  171. package/dist/node/content/_internal.js +13 -1
  172. package/dist/node/content/_internal.js.map +1 -1
  173. package/dist/node/content/index.js +30 -15
  174. package/dist/node/content/index.js.map +1 -1
  175. package/dist/node/core/helpers/PropertyMapper.js +101 -0
  176. package/dist/node/core/helpers/PropertyMapper.js.map +1 -0
  177. package/dist/node/core/index.js +6 -0
  178. package/dist/node/core/index.js.map +1 -0
  179. package/dist/node/core/traits/WithBannerImage.js +3 -0
  180. package/dist/node/core/traits/WithBannerImage.js.map +1 -0
  181. package/dist/node/core/traits/WithLayout.js +3 -0
  182. package/dist/node/core/traits/WithLayout.js.map +1 -0
  183. package/dist/node/core/traits/WithSlug.js +3 -0
  184. package/dist/node/core/traits/WithSlug.js.map +1 -0
  185. package/dist/node/core/traits/index.js +7 -0
  186. package/dist/node/core/traits/index.js.map +1 -0
  187. package/dist/node/core/types/IContentEnrichments.js +3 -0
  188. package/dist/node/core/types/IContentEnrichments.js.map +1 -0
  189. package/dist/node/core/types/IHubContent.js +3 -0
  190. package/dist/node/core/types/IHubContent.js.map +1 -0
  191. package/dist/node/core/types/IHubEntityBase.js +3 -0
  192. package/dist/node/core/types/IHubEntityBase.js.map +1 -0
  193. package/dist/node/core/types/IHubEntityManager.js +3 -0
  194. package/dist/node/core/types/IHubEntityManager.js.map +1 -0
  195. package/dist/node/core/types/IHubEvent.js +3 -0
  196. package/dist/node/core/types/IHubEvent.js.map +1 -0
  197. package/dist/node/core/types/IHubImage.js +3 -0
  198. package/dist/node/core/types/IHubImage.js.map +1 -0
  199. package/dist/node/core/types/IHubInitiative.js +3 -0
  200. package/dist/node/core/types/IHubInitiative.js.map +1 -0
  201. package/dist/node/core/types/IHubItemEntity.js +3 -0
  202. package/dist/node/core/types/IHubItemEntity.js.map +1 -0
  203. package/dist/node/core/types/IHubLayout.js +3 -0
  204. package/dist/node/core/types/IHubLayout.js.map +1 -0
  205. package/dist/node/core/types/IHubPage.js +3 -0
  206. package/dist/node/core/types/IHubPage.js.map +1 -0
  207. package/dist/node/core/types/IHubProject.js +3 -0
  208. package/dist/node/core/types/IHubProject.js.map +1 -0
  209. package/dist/node/core/types/IHubSite.js +3 -0
  210. package/dist/node/core/types/IHubSite.js.map +1 -0
  211. package/dist/node/core/types/IHubTimeline.js +3 -0
  212. package/dist/node/core/types/IHubTimeline.js.map +1 -0
  213. package/dist/node/core/types/IItemEnrichments.js +3 -0
  214. package/dist/node/core/types/IItemEnrichments.js.map +1 -0
  215. package/dist/node/core/types/index.js +18 -0
  216. package/dist/node/core/types/index.js.map +1 -0
  217. package/dist/node/index.js +12 -6
  218. package/dist/node/index.js.map +1 -1
  219. package/dist/node/items/fail-safe-update.js +3 -3
  220. package/dist/node/items/fail-safe-update.js.map +1 -1
  221. package/dist/node/items/get-model-from-options.js +3 -3
  222. package/dist/node/items/get-model-from-options.js.map +1 -1
  223. package/dist/node/items/index.js +2 -3
  224. package/dist/node/items/index.js.map +1 -1
  225. package/dist/node/items/slugs.js +99 -0
  226. package/dist/node/items/slugs.js.map +1 -0
  227. package/dist/node/models/index.js +106 -0
  228. package/dist/node/models/index.js.map +1 -0
  229. package/dist/node/{items/serialize-model.js → models/serializeModel.js} +1 -1
  230. package/dist/node/models/serializeModel.js.map +1 -0
  231. package/dist/node/projects/HubProjectManager.js +119 -0
  232. package/dist/node/projects/HubProjectManager.js.map +1 -0
  233. package/dist/node/projects/HubProjects.js +201 -0
  234. package/dist/node/projects/HubProjects.js.map +1 -0
  235. package/dist/node/projects/index.js +6 -0
  236. package/dist/node/projects/index.js.map +1 -0
  237. package/dist/node/utils/dasherize.js +29 -0
  238. package/dist/node/utils/dasherize.js.map +1 -0
  239. package/dist/node/utils/index.js +1 -0
  240. package/dist/node/utils/index.js.map +1 -1
  241. package/dist/types/ArcGISContext.d.ts +16 -1
  242. package/dist/types/ArcGISContextManager.d.ts +14 -0
  243. package/dist/types/Hub.d.ts +72 -0
  244. package/dist/types/HubError.d.ts +17 -0
  245. package/dist/types/collections.d.ts +12 -0
  246. package/dist/types/content/_internal.d.ts +66 -38
  247. package/dist/types/content/index.d.ts +17 -8
  248. package/dist/types/core/helpers/PropertyMapper.d.ts +69 -0
  249. package/dist/types/core/index.d.ts +2 -0
  250. package/dist/types/core/traits/WithBannerImage.d.ts +30 -0
  251. package/dist/types/core/traits/WithLayout.d.ts +54 -0
  252. package/dist/types/core/traits/WithSlug.d.ts +15 -0
  253. package/dist/types/core/traits/index.d.ts +3 -0
  254. package/dist/types/core/types/IContentEnrichments.d.ts +10 -0
  255. package/dist/types/core/types/IHubContent.d.ts +77 -0
  256. package/dist/types/core/types/IHubEntityBase.d.ts +41 -0
  257. package/dist/types/core/types/IHubEntityManager.d.ts +33 -0
  258. package/dist/types/core/types/IHubEvent.d.ts +10 -0
  259. package/dist/types/core/types/IHubImage.d.ts +25 -0
  260. package/dist/types/core/types/IHubInitiative.d.ts +8 -0
  261. package/dist/types/core/types/IHubItemEntity.d.ts +42 -0
  262. package/dist/types/core/types/IHubLayout.d.ts +20 -0
  263. package/dist/types/core/types/IHubPage.d.ts +8 -0
  264. package/dist/types/core/types/IHubProject.d.ts +15 -0
  265. package/dist/types/core/types/IHubSite.d.ts +11 -0
  266. package/dist/types/core/types/IHubTimeline.d.ts +41 -0
  267. package/dist/types/core/types/IItemEnrichments.d.ts +23 -0
  268. package/dist/types/core/types/index.d.ts +14 -0
  269. package/dist/types/index.d.ts +11 -6
  270. package/dist/types/items/index.d.ts +2 -3
  271. package/dist/types/items/slugs.d.ts +43 -0
  272. package/dist/types/models/index.d.ts +42 -0
  273. package/dist/types/{items/serialize-model.d.ts → models/serializeModel.d.ts} +0 -0
  274. package/dist/types/projects/HubProjectManager.d.ts +81 -0
  275. package/dist/types/projects/HubProjects.d.ts +31 -0
  276. package/dist/types/projects/index.d.ts +2 -0
  277. package/dist/types/search/types.d.ts +2 -0
  278. package/dist/types/types.d.ts +2 -92
  279. package/dist/types/utils/dasherize.d.ts +17 -0
  280. package/dist/types/utils/index.d.ts +1 -0
  281. package/dist/umd/common.umd.js +4588 -3687
  282. package/dist/umd/common.umd.js.map +1 -1
  283. package/dist/umd/common.umd.min.js +1 -1
  284. package/dist/umd/common.umd.min.js.map +1 -1
  285. package/package.json +1 -1
  286. package/dist/es2017/items/get-model.js +0 -19
  287. package/dist/es2017/items/get-model.js.map +0 -1
  288. package/dist/es2017/items/serialize-model.js.map +0 -1
  289. package/dist/esm/items/get-model.js +0 -19
  290. package/dist/esm/items/get-model.js.map +0 -1
  291. package/dist/esm/items/serialize-model.js.map +0 -1
  292. package/dist/node/items/get-model.js +0 -23
  293. package/dist/node/items/get-model.js.map +0 -1
  294. package/dist/node/items/serialize-model.js.map +0 -1
  295. package/dist/types/items/get-model.d.ts +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubContent.js","sourceRoot":"","sources":["../../../../src/core/types/IHubContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubEntityBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubEntityBase.js","sourceRoot":"","sources":["../../../../src/core/types/IHubEntityBase.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubEntityManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubEntityManager.js","sourceRoot":"","sources":["../../../../src/core/types/IHubEntityManager.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubEvent.js","sourceRoot":"","sources":["../../../../src/core/types/IHubEvent.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubImage.js","sourceRoot":"","sources":["../../../../src/core/types/IHubImage.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubInitiative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubInitiative.js","sourceRoot":"","sources":["../../../../src/core/types/IHubInitiative.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubItemEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubItemEntity.js","sourceRoot":"","sources":["../../../../src/core/types/IHubItemEntity.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubLayout.js","sourceRoot":"","sources":["../../../../src/core/types/IHubLayout.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubPage.js","sourceRoot":"","sources":["../../../../src/core/types/IHubPage.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubProject.js","sourceRoot":"","sources":["../../../../src/core/types/IHubProject.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubSite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubSite.js","sourceRoot":"","sources":["../../../../src/core/types/IHubSite.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IHubTimeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHubTimeline.js","sourceRoot":"","sources":["../../../../src/core/types/IHubTimeline.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=IItemEnrichments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IItemEnrichments.js","sourceRoot":"","sources":["../../../../src/core/types/IItemEnrichments.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ export * from "./IContentEnrichments";
2
+ export * from "./IItemEnrichments";
3
+ export * from "./IHubContent";
4
+ export * from "./IHubEntityBase";
5
+ export * from "./IHubItemEntity";
6
+ export * from "./IHubEntityManager";
7
+ export * from "./IHubEvent";
8
+ export * from "./IHubImage";
9
+ export * from "./IHubInitiative";
10
+ export * from "./IHubLayout";
11
+ export * from "./IHubPage";
12
+ export * from "./IHubProject";
13
+ export * from "./IHubSite";
14
+ export * from "./IHubTimeline";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -2,29 +2,34 @@
2
2
  * Apache-2.0 */
3
3
  export * from "./access";
4
4
  export * from "./api";
5
+ export * from "./ArcGISContext";
6
+ export * from "./ArcGISContextManager";
5
7
  export * from "./auth";
6
8
  export * from "./categories";
7
9
  export * from "./content";
10
+ export * from "./core";
8
11
  export * from "./downloads";
9
12
  export * from "./extent";
10
13
  export * from "./groups";
14
+ export * from "./i18n";
11
15
  export * from "./items";
16
+ export * from "./models";
12
17
  export * from "./objects";
18
+ export * from "./projects";
19
+ export * from "./request";
13
20
  export * from "./resources";
14
21
  export * from "./search";
15
22
  export * from "./sites";
23
+ export * from "./surveys";
16
24
  export * from "./types";
17
25
  export * from "./urls";
18
26
  export * from "./util";
19
27
  export * from "./utils";
20
- export * from "./i18n";
21
- export * from "./request";
22
- export * from "./surveys";
23
- export * from "./ArcGISContextManager";
24
- export * from "./ArcGISContext";
28
+ export * from "./Hub";
25
29
  import OperationStack from "./OperationStack";
26
30
  import OperationError from "./OperationError";
31
+ import HubError from "./HubError";
27
32
  // Re-exports
28
- export { OperationStack, OperationError };
33
+ export { OperationStack, OperationError, HubError };
29
34
  export { btoa, atob } from "abab";
30
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAEhB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAEhB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { updateItem } from "@esri/arcgis-rest-portal";
2
- import { serializeModel } from "./serialize-model";
2
+ import { serializeModel } from "../models/serializeModel";
3
3
  import { failSafe } from "../utils";
4
4
  /**
5
5
  * Update a model's item, wrapped in a failSafe so this will not blow up if
@@ -11,7 +11,7 @@ import { failSafe } from "../utils";
11
11
  export function failSafeUpdate(model, requestOptions) {
12
12
  const failSafedUpdate = failSafe(updateItem, {
13
13
  id: model.item.id,
14
- success: true
14
+ success: true,
15
15
  });
16
16
  const opts = Object.assign({ item: serializeModel(model) }, requestOptions);
17
17
  return failSafedUpdate(opts);
@@ -1 +1 @@
1
- {"version":3,"file":"fail-safe-update.js","sourceRoot":"","sources":["../../../src/items/fail-safe-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAsB,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,cAAmC;IAEnC,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,EAAE;QAC3C,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,EAC/B,cAAc,CACO,CAAC;IACxB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"fail-safe-update.js","sourceRoot":"","sources":["../../../src/items/fail-safe-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAsB,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,cAAmC;IAEnC,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,EAAE;QAC3C,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,EAC/B,cAAc,CACO,CAAC;IACxB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { failSafe } from "../utils";
2
- import { getModel } from "./get-model";
2
+ import { getModel } from "../models";
3
3
  /**
4
4
  * To streamline passing of either a model id or the model itself, we use this function
5
5
  * to extract the model or fetch it, and return it. It uses `failSafe` and if the item
@@ -19,7 +19,7 @@ export function getModelFromOptions(modelType, options) {
19
19
  if (options[idProp]) {
20
20
  const failSafeModel = failSafe(getModel, {
21
21
  item: { id: options[idProp] },
22
- isMissing: true
22
+ isMissing: true,
23
23
  });
24
24
  return failSafeModel(options[idProp], options);
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-model-from-options.js","sourceRoot":"","sources":["../../../src/items/get-model-from-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,OAA4B;IAE5B,MAAM,SAAS,GAAG,GAAG,SAAS,OAAO,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC;IAChC,+CAA+C;IAC/C,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;KAC5C;SAAM;QACL,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE;gBACvC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC7B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;SAChD;aAAM;YACL,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,QAAQ,MAAM,YAAY,CAC9E,CAAC;SACH;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"get-model-from-options.js","sourceRoot":"","sources":["../../../src/items/get-model-from-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,OAA4B;IAE5B,MAAM,SAAS,GAAG,GAAG,SAAS,OAAO,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC;IAChC,+CAA+C;IAC/C,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;KAC5C;SAAM;QACL,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE;gBACvC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC7B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;SAChD;aAAM;YACL,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,QAAQ,MAAM,YAAY,CAC9E,CAAC;SACH;KACF;AACH,CAAC"}
@@ -2,13 +2,10 @@ export * from "./_unprotect-and-remove-item";
2
2
  export * from "./apply-properties-to-items";
3
3
  export * from "./delete-prop";
4
4
  export * from "./fail-safe-update";
5
- export * from "./get-model";
6
5
  export * from "./get-model-from-options";
7
6
  export * from "./interpolate";
8
7
  export * from "./interpolate-item-id";
9
- export * from "./normalize-solution-template-item";
10
8
  export * from "./replace-item-id";
11
- export * from "./serialize-model";
12
9
  export * from "./share-item-to-groups";
13
10
  export * from "./unprotect-model";
14
11
  export * from "./unshare-item-from-groups";
@@ -16,4 +13,6 @@ export * from "./does-item-exist-with-title";
16
13
  export * from "./get-unique-item-title";
17
14
  export * from "./fetch-all-pages";
18
15
  export * from "./get-structured-license";
16
+ export * from "./slugs";
17
+ export * from "./normalize-solution-template-item";
19
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { searchItems } from "@esri/arcgis-rest-portal";
2
+ import { slugify } from "..";
3
+ // TODO: work out how to unify content slug fns
4
+ // https: github.com/Esri/hub.js/blob/master/packages/common/src/content/index.ts#L301-L348
5
+ /**
6
+ * Create a slug, namespaced to an org
7
+ * Typically used to lookup items by a human readable name in urls
8
+ *
9
+ * @param title
10
+ * @param orgKey
11
+ * @returns
12
+ */
13
+ export function constructSlug(title, orgKey) {
14
+ return `${orgKey.toLowerCase()}-${slugify(title)}`;
15
+ }
16
+ /**
17
+ * Adds/Updates the slug typekeyword
18
+ * Returns a new array of keywords
19
+ * @param typeKeywords
20
+ * @param slug
21
+ * @returns
22
+ */
23
+ export function setSlugKeyword(typeKeywords, slug) {
24
+ // remove slug entry from array
25
+ const removed = typeKeywords.filter((entry) => {
26
+ return !entry.startsWith("slug|");
27
+ });
28
+ // now add it
29
+ removed.push(`slug|${slug}`);
30
+ return removed;
31
+ }
32
+ /**
33
+ * Get an item by searching for items with a typeKeyword like `slug|{slug-value}`
34
+ *
35
+ * For example, if you pass a slug `"snow-map"` into this function, it will
36
+ * search for items with `slug|snow-map` in it's typeKeywords array,
37
+ *
38
+ * @param slug
39
+ * @param requestOptions
40
+ * @returns
41
+ */
42
+ export function getItemBySlug(slug, requestOptions) {
43
+ const opts = {
44
+ q: "",
45
+ filter: `typekeywords:"slug|${slug}"`,
46
+ authentication: requestOptions.authentication,
47
+ };
48
+ return searchItems(opts)
49
+ .then((response) => {
50
+ if (response.results.length) {
51
+ return response.results[0];
52
+ }
53
+ else {
54
+ return null;
55
+ }
56
+ })
57
+ .catch((e) => {
58
+ throw Error(`Error in getItemBySlug ${e}`);
59
+ });
60
+ }
61
+ /**
62
+ * Given a slug, search for items using that slug, incrementing the slug name until
63
+ * a unique value is found
64
+ *
65
+ * For example, if a slug of `"snow-map"` into this function and some item exists
66
+ * with that slug, it would return `"snow-map-1"`.
67
+ *
68
+ * @param slug
69
+ * @param requestOptions
70
+ * @param step
71
+ * @returns
72
+ */
73
+ export function getUniqueSlug(slug, requestOptions, step = 0) {
74
+ let combined = slug;
75
+ if (step) {
76
+ combined = `${slug}-${step}`;
77
+ }
78
+ return getItemBySlug(combined, requestOptions)
79
+ .then((result) => {
80
+ if (result) {
81
+ step++;
82
+ return getUniqueSlug(slug, requestOptions, step);
83
+ }
84
+ else {
85
+ return combined;
86
+ }
87
+ })
88
+ .catch((e) => {
89
+ throw Error(`Error in getUniqueSlug ${e}`);
90
+ });
91
+ }
92
+ //# sourceMappingURL=slugs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/items/slugs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,+CAA+C;AAC/C,2FAA2F;AAE3F;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc;IACzD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,YAAsB,EAAE,IAAY;IACjE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACpD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,cAA+B;IAE/B,MAAM,IAAI,GAAG;QACX,CAAC,EAAE,EAAE;QACL,MAAM,EAAE,sBAAsB,IAAI,GAAG;QACrC,cAAc,EAAE,cAAc,CAAC,cAAc;KAC9C,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;YAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAC5B;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,cAA+B,EAC/B,OAAe,CAAC;IAEhB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,EAAE;QACR,QAAQ,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;KAC9B;IACD,OAAO,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC;SAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,IAAI,MAAM,EAAE;YACV,IAAI,EAAE,CAAC;YACP,OAAO,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;SAClD;aAAM;YACL,OAAO,QAAQ,CAAC;SACjB;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,98 @@
1
+ export * from "./serializeModel";
2
+ import { createItem, getItem, getItemData, updateItem, } from "@esri/arcgis-rest-portal";
3
+ import { cloneObject, getItemBySlug } from "..";
4
+ /**
5
+ * Gets the full item/data model for an item id
6
+ * @param {string} id
7
+ * @param {Object} requestOptions
8
+ */
9
+ export function getModel(id, requestOptions) {
10
+ return Promise.all([
11
+ getItem(id, requestOptions),
12
+ getItemData(id, requestOptions),
13
+ ]).then((result) => {
14
+ // shape this into a model
15
+ return {
16
+ item: result[0],
17
+ data: result[1],
18
+ };
19
+ });
20
+ }
21
+ /**
22
+ * Get a model by it's slug
23
+ *
24
+ * This uses the [Filter](https://developers.arcgis.com/rest/users-groups-and-items/search-reference.htm) option of the
25
+ * to search for an item that has a typekeyword of `slug|{slug-value}`
26
+ *
27
+ * This is useful for applications that want to use human-readable urls instead
28
+ * of using item ids.
29
+ *
30
+ * @param slug
31
+ * @param requestOptions
32
+ * @returns
33
+ */
34
+ export function getModelBySlug(slug, requestOptions) {
35
+ return getItemBySlug(slug, requestOptions)
36
+ .then((item) => {
37
+ const prms = [Promise.resolve(item)];
38
+ if (item) {
39
+ prms.push(getItemData(item.id, requestOptions));
40
+ }
41
+ else {
42
+ prms.push(Promise.resolve(null));
43
+ }
44
+ return Promise.all(prms);
45
+ })
46
+ .then((result) => {
47
+ if (result[0]) {
48
+ return {
49
+ item: result[0],
50
+ data: result[1],
51
+ };
52
+ }
53
+ else {
54
+ return null;
55
+ }
56
+ });
57
+ }
58
+ /**
59
+ * Create an item to back and IModel.
60
+ *
61
+ * @param {IModel}
62
+ * @param {IRequestOptions} requestOptions
63
+ * @returns {Promise<IModel>}
64
+ */
65
+ export function createModel(model, requestOptions) {
66
+ const clone = cloneObject(model);
67
+ const item = cloneObject(model.item);
68
+ item.data = cloneObject(model.data);
69
+ const opts = Object.assign({ item }, requestOptions);
70
+ return createItem(opts).then((response) => {
71
+ clone.item.id = response.id;
72
+ clone.item.created = new Date().getTime();
73
+ clone.item.modified = clone.item.created;
74
+ return clone;
75
+ });
76
+ }
77
+ /**
78
+ * Update an IModel. Generic function that will be used across all
79
+ * type-specific update functions
80
+ *
81
+ * @export
82
+ * @param {IModel} "model" object (i.e. `{item:{...}, data:{...}}`)
83
+ * @param {IRequestOptions} requestOptions
84
+ * @returns {Promise<IModel>}
85
+ */
86
+ export function updateModel(model, requestOptions) {
87
+ const clone = cloneObject(model);
88
+ const item = cloneObject(model.item);
89
+ item.data = cloneObject(model.data);
90
+ const opts = Object.assign({ item }, requestOptions);
91
+ return updateItem(opts).then(() => {
92
+ // update the modified prop
93
+ // this won't be exact, but it will be very close
94
+ clone.item.modified = new Date().getTime();
95
+ return clone;
96
+ });
97
+ }
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,4 @@ export function serializeModel(model) {
9
9
  serialized.text = JSON.stringify(model.data);
10
10
  return serialized;
11
11
  }
12
- //# sourceMappingURL=serialize-model.js.map
12
+ //# sourceMappingURL=serializeModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeModel.js","sourceRoot":"","sources":["../../../src/models/serializeModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAMtC;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;IAC/D,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,115 @@
1
+ import { createProject, updateProject, destroyProject, getProject, } from "./HubProjects";
2
+ // Node has issues if this is not directly imported
3
+ import { ArcGISContextManager } from "../ArcGISContextManager";
4
+ import { HubError } from "..";
5
+ /**
6
+ * Centralized functions used to manage IHubProject instances
7
+ *
8
+ * This class is a convenience wrapper over util functions which
9
+ * are also directly accessible for use in scenarios where
10
+ * classes are inconvenient.
11
+ */
12
+ export class HubProjectManager {
13
+ /**
14
+ * Private so we can employ a factory function should we need
15
+ * async work during creation
16
+ * @param contextOrManager
17
+ */
18
+ constructor(contextOrManager) {
19
+ if (contextOrManager instanceof ArcGISContextManager) {
20
+ this._contextManager = contextOrManager;
21
+ }
22
+ else {
23
+ this._context = contextOrManager;
24
+ }
25
+ }
26
+ /**
27
+ * Factory function to construct a new HubProjectManager instance.
28
+ *
29
+ * Note: Used so that we could do async actions in the ctor.
30
+ * @param contextOrManager
31
+ * @returns
32
+ */
33
+ static init(contextOrManager) {
34
+ return new HubProjectManager(contextOrManager);
35
+ }
36
+ /**
37
+ * Getter to abstract how we store the context
38
+ */
39
+ get context() {
40
+ if (this._contextManager) {
41
+ return this._contextManager.context;
42
+ }
43
+ else {
44
+ return this._context;
45
+ }
46
+ }
47
+ /**
48
+ * Create and store new project.
49
+ *
50
+ * Projects are stored as Items in the Sharing API
51
+ * @param project
52
+ * @param requestOptions
53
+ * @returns
54
+ */
55
+ async create(project, requestOptions) {
56
+ if (requestOptions || this.context.isAuthenticated) {
57
+ // ammend in the orgUrlKey
58
+ if (!project.orgUrlKey) {
59
+ project.orgUrlKey = this.context.portal.urlKey;
60
+ }
61
+ return createProject(project, requestOptions || this.context.userRequestOptions);
62
+ }
63
+ else {
64
+ throw new HubError("Create Project", "Creating Hub Projects requires authentication.");
65
+ }
66
+ }
67
+ /**
68
+ * Update a project
69
+ * @param project
70
+ * @param requestOptions
71
+ * @returns
72
+ */
73
+ async update(project, requestOptions) {
74
+ if (requestOptions || this.context.isAuthenticated) {
75
+ return updateProject(project, requestOptions || this.context.userRequestOptions);
76
+ }
77
+ else {
78
+ throw new HubError("Update Project", "Updating Hub Projects requires authentication.");
79
+ }
80
+ }
81
+ /**
82
+ * Destroy a project.
83
+ * This permanently removes the backing Item
84
+ * @param id
85
+ * @param requestOptions
86
+ * @returns
87
+ */
88
+ async destroy(id, requestOptions) {
89
+ if (requestOptions || this.context.isAuthenticated) {
90
+ return destroyProject(id, requestOptions || this.context.userRequestOptions);
91
+ }
92
+ else {
93
+ throw new HubError("Destroy Project", "Destroying Hub Projects requires authentication.");
94
+ }
95
+ }
96
+ /**
97
+ * Fetch a Project via id or it's slug
98
+ *
99
+ * This function does not require a user to be
100
+ * authenticated, but it does require an `IRequestOptions`
101
+ * which contains the portal instance to communicate with
102
+ * @param identifier
103
+ * @param requestOptions
104
+ * @returns
105
+ */
106
+ async fetch(identifier, requestOptions) {
107
+ if (requestOptions || this.context.requestOptions) {
108
+ return getProject(identifier, requestOptions || this.context.requestOptions);
109
+ }
110
+ else {
111
+ throw new HubError("Get Project", "Can not retrieve context.requestOptions from Context Manager. HubProjectManager is configured incorrectly.");
112
+ }
113
+ }
114
+ }
115
+ //# sourceMappingURL=HubProjectManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HubProjectManager.js","sourceRoot":"","sources":["../../../src/projects/HubProjectManager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,mDAAmD;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAkB,MAAM,IAAI,CAAC;AAG9C;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IAgB5B;;;;OAIG;IACH,YAAoB,gBAAuD;QACzE,IAAI,gBAAgB,YAAY,oBAAoB,EAAE;YACpD,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SAClC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CACT,gBAAuD;QAEvD,OAAO,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,OAA6B,EAC7B,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,0BAA0B;YAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;aAChD;YACD,OAAO,aAAa,CAClB,OAAO,EACP,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,gDAAgD,CACjD,CAAC;SACH;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,OAAoB,EACpB,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,OAAO,aAAa,CAClB,OAAO,EACP,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,gDAAgD,CACjD,CAAC;SACH;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,EAAU,EACV,cAAoC;QAEpC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClD,OAAO,cAAc,CACnB,EAAE,EACF,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,iBAAiB,EACjB,kDAAkD,CACnD,CAAC;SACH;IACH,CAAC;IACD;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CACT,UAAkB,EAClB,cAAgC;QAEhC,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YACjD,OAAO,UAAU,CACf,UAAU,EACV,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAC9C,CAAC;SACH;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,4GAA4G,CAC7G,CAAC;SACH;IACH,CAAC;CAgBF"}