@esri/hub-common 9.14.0 → 9.17.0

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 +72 -26
  2. package/dist/es2017/ArcGISContext.js.map +1 -1
  3. package/dist/es2017/ArcGISContextManager.js +20 -9
  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 +34 -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 +42 -18
  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 +76 -26
  82. package/dist/esm/ArcGISContext.js.map +1 -1
  83. package/dist/esm/ArcGISContextManager.js +20 -9
  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 +40 -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 +42 -18
  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 +72 -26
  162. package/dist/node/ArcGISContext.js.map +1 -1
  163. package/dist/node/ArcGISContextManager.js +20 -9
  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 +37 -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 +42 -18
  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 +197 -13
  242. package/dist/types/ArcGISContextManager.d.ts +21 -4
  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 +2062 -1114
  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
@@ -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,3 +13,5 @@ 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";
@@ -0,0 +1,43 @@
1
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
2
+ import { IItem } from "@esri/arcgis-rest-types";
3
+ /**
4
+ * Create a slug, namespaced to an org
5
+ * Typically used to lookup items by a human readable name in urls
6
+ *
7
+ * @param title
8
+ * @param orgKey
9
+ * @returns
10
+ */
11
+ export declare function constructSlug(title: string, orgKey: string): string;
12
+ /**
13
+ * Adds/Updates the slug typekeyword
14
+ * Returns a new array of keywords
15
+ * @param typeKeywords
16
+ * @param slug
17
+ * @returns
18
+ */
19
+ export declare function setSlugKeyword(typeKeywords: string[], slug: string): string[];
20
+ /**
21
+ * Get an item by searching for items with a typeKeyword like `slug|{slug-value}`
22
+ *
23
+ * For example, if you pass a slug `"snow-map"` into this function, it will
24
+ * search for items with `slug|snow-map` in it's typeKeywords array,
25
+ *
26
+ * @param slug
27
+ * @param requestOptions
28
+ * @returns
29
+ */
30
+ export declare function getItemBySlug(slug: string, requestOptions: IRequestOptions): Promise<IItem>;
31
+ /**
32
+ * Given a slug, search for items using that slug, incrementing the slug name until
33
+ * a unique value is found
34
+ *
35
+ * For example, if a slug of `"snow-map"` into this function and some item exists
36
+ * with that slug, it would return `"snow-map-1"`.
37
+ *
38
+ * @param slug
39
+ * @param requestOptions
40
+ * @param step
41
+ * @returns
42
+ */
43
+ export declare function getUniqueSlug(slug: string, requestOptions: IRequestOptions, step?: number): Promise<string>;
@@ -0,0 +1,42 @@
1
+ export * from "./serializeModel";
2
+ import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
3
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
4
+ import { IModel } from "..";
5
+ /**
6
+ * Gets the full item/data model for an item id
7
+ * @param {string} id
8
+ * @param {Object} requestOptions
9
+ */
10
+ export declare function getModel(id: string, requestOptions: IRequestOptions): Promise<IModel>;
11
+ /**
12
+ * Get a model by it's slug
13
+ *
14
+ * This uses the [Filter](https://developers.arcgis.com/rest/users-groups-and-items/search-reference.htm) option of the
15
+ * to search for an item that has a typekeyword of `slug|{slug-value}`
16
+ *
17
+ * This is useful for applications that want to use human-readable urls instead
18
+ * of using item ids.
19
+ *
20
+ * @param slug
21
+ * @param requestOptions
22
+ * @returns
23
+ */
24
+ export declare function getModelBySlug(slug: string, requestOptions: IRequestOptions): Promise<IModel>;
25
+ /**
26
+ * Create an item to back and IModel.
27
+ *
28
+ * @param {IModel}
29
+ * @param {IRequestOptions} requestOptions
30
+ * @returns {Promise<IModel>}
31
+ */
32
+ export declare function createModel(model: IModel, requestOptions: IUserRequestOptions): Promise<IModel>;
33
+ /**
34
+ * Update an IModel. Generic function that will be used across all
35
+ * type-specific update functions
36
+ *
37
+ * @export
38
+ * @param {IModel} "model" object (i.e. `{item:{...}, data:{...}}`)
39
+ * @param {IRequestOptions} requestOptions
40
+ * @returns {Promise<IModel>}
41
+ */
42
+ export declare function updateModel(model: IModel, requestOptions: IUserRequestOptions): Promise<IModel>;
@@ -0,0 +1,81 @@
1
+ import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
3
+ import { ArcGISContextManager } from "../ArcGISContextManager";
4
+ import { IArcGISContext } from "..";
5
+ import { IHubProject, IHubEntityManager } from "../core/types";
6
+ /**
7
+ * Centralized functions used to manage IHubProject instances
8
+ *
9
+ * This class is a convenience wrapper over util functions which
10
+ * are also directly accessible for use in scenarios where
11
+ * classes are inconvenient.
12
+ */
13
+ export declare class HubProjectManager implements IHubEntityManager<IHubProject> {
14
+ /**
15
+ * Hold a context manager, which should be a single instance for
16
+ * an application. When authentication changes, the .context
17
+ * property on the context manager will be replaced. As long as
18
+ * all the fns in this class leverage properties on .context
19
+ * everything be kept in sync.
20
+ */
21
+ private _contextManager;
22
+ /**
23
+ * Hold context directly. Allows the class to be used in places
24
+ * where an `ArcGISContextManager` is not directly available, but
25
+ * an `IArcGISContext` is
26
+ */
27
+ private _context;
28
+ /**
29
+ * Private so we can employ a factory function should we need
30
+ * async work during creation
31
+ * @param contextOrManager
32
+ */
33
+ private constructor();
34
+ /**
35
+ * Factory function to construct a new HubProjectManager instance.
36
+ *
37
+ * Note: Used so that we could do async actions in the ctor.
38
+ * @param contextOrManager
39
+ * @returns
40
+ */
41
+ static init(contextOrManager: ArcGISContextManager | IArcGISContext): HubProjectManager;
42
+ /**
43
+ * Getter to abstract how we store the context
44
+ */
45
+ private get context();
46
+ /**
47
+ * Create and store new project.
48
+ *
49
+ * Projects are stored as Items in the Sharing API
50
+ * @param project
51
+ * @param requestOptions
52
+ * @returns
53
+ */
54
+ create(project: Partial<IHubProject>, requestOptions?: IUserRequestOptions): Promise<IHubProject>;
55
+ /**
56
+ * Update a project
57
+ * @param project
58
+ * @param requestOptions
59
+ * @returns
60
+ */
61
+ update(project: IHubProject, requestOptions?: IUserRequestOptions): Promise<IHubProject>;
62
+ /**
63
+ * Destroy a project.
64
+ * This permanently removes the backing Item
65
+ * @param id
66
+ * @param requestOptions
67
+ * @returns
68
+ */
69
+ destroy(id: string, requestOptions?: IUserRequestOptions): Promise<void>;
70
+ /**
71
+ * Fetch a Project via id or it's slug
72
+ *
73
+ * This function does not require a user to be
74
+ * authenticated, but it does require an `IRequestOptions`
75
+ * which contains the portal instance to communicate with
76
+ * @param identifier
77
+ * @param requestOptions
78
+ * @returns
79
+ */
80
+ fetch(identifier: string, requestOptions?: IRequestOptions): Promise<IHubProject>;
81
+ }
@@ -0,0 +1,31 @@
1
+ import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
3
+ import { IHubProject } from "../core/types";
4
+ export declare const HUB_PROJECT_ITEM_TYPE = "Web Mapping Application";
5
+ /**
6
+ * Create a new Hub Project item
7
+ *
8
+ * Minimal properties are name and org
9
+ *
10
+ * @param project
11
+ * @param requestOptions
12
+ */
13
+ export declare function createProject(partialProject: Partial<IHubProject>, requestOptions: IUserRequestOptions): Promise<IHubProject>;
14
+ /**
15
+ * Update a Hub Project
16
+ * @param project
17
+ * @param requestOptions
18
+ */
19
+ export declare function updateProject(project: IHubProject, requestOptions: IUserRequestOptions): Promise<IHubProject>;
20
+ /**
21
+ * Get a Hub Project by id or slug
22
+ * @param identifier item id or slug
23
+ * @param requestOptions
24
+ */
25
+ export declare function getProject(identifier: string, requestOptions: IRequestOptions): Promise<IHubProject>;
26
+ /**
27
+ * Remove a Hub Project
28
+ * @param id
29
+ * @param requestOptions
30
+ */
31
+ export declare function destroyProject(id: string, requestOptions: IUserRequestOptions): Promise<void>;
@@ -0,0 +1,2 @@
1
+ export * from "./HubProjectManager";
2
+ export * from "./HubProjects";
@@ -219,6 +219,8 @@ export interface ICatalog {
219
219
  export interface ISortOption {
220
220
  label: string;
221
221
  attribute: string;
222
+ defaultOrder: string;
223
+ order: string;
222
224
  }
223
225
  /**
224
226
  * A Filter that defines a subset of a Catalog, aka a Collection
@@ -1,7 +1,6 @@
1
- import { IItem, IUser, IGroup, IGeometry, IFeatureServiceDefinition, ILayerDefinition } from "@esri/arcgis-rest-types";
1
+ import { IItem, IUser, IGroup, IGeometry } from "@esri/arcgis-rest-types";
2
2
  import { IPortal, ISearchResult } from "@esri/arcgis-rest-portal";
3
3
  import { UserSession } from "@esri/arcgis-rest-auth";
4
- import { IStructuredLicense } from "./items/get-structured-license";
5
4
  import { IRequestOptions } from "@esri/arcgis-rest-request";
6
5
  import { IFacet } from "./search";
7
6
  /**
@@ -159,6 +158,7 @@ export interface IHubGeography {
159
158
  export declare type SearchableType = IItem | IGroup | IUser;
160
159
  export declare type SearchFunction = (...args: any[]) => Promise<ISearchResult<SearchableType>>;
161
160
  /**
161
+ * DEPRECATED: Use IHubEntityBase instead.
162
162
  * Properties that are common to Hub content, community, members, etc
163
163
  *
164
164
  * @export
@@ -212,96 +212,6 @@ export interface IEnrichmentErrorInfo {
212
212
  statusCode?: number;
213
213
  message?: string;
214
214
  }
215
- /**
216
- * Properties that are common to all Hub content types (dataset, map, document, etc)
217
- *
218
- * @export
219
- * @interface IHubContent
220
- * @extends {IHubResource,IItem}
221
- */
222
- export interface IHubContent extends IHubResource, IItem {
223
- /**
224
- * The content's ID for use with the Hub API
225
- * For most content this will be the item's id
226
- * For layers this will be `<itemId>_<layerId>`
227
- * This will be undefined for private items and in enterprise
228
- * because only public online items are included in the Hub API
229
- */
230
- hubId?: string;
231
- /**
232
- * Content visibility and access control, including groups
233
- */
234
- permissions: {
235
- /** Visibility of the content */
236
- visibility: Visibility;
237
- /** Current user's control over the content */
238
- control?: AccessControl;
239
- /** The groups that have access to the item (as far as you know) */
240
- groups?: IGroup[];
241
- };
242
- family?: HubFamily;
243
- /**
244
- * Item categories are the original, non-flattened item
245
- * category strings.
246
- */
247
- itemCategories?: string[];
248
- /**
249
- * The normalized item type (we run normalizeItemType on
250
- * the item in order to compute this prop)
251
- */
252
- normalizedType?: string;
253
- /**
254
- * Date the content was published (formal metadata),
255
- * defaults to the date the content was created
256
- */
257
- publishedDate: Date;
258
- /** Description of the source of the published date */
259
- publishedDateSource?: string;
260
- updateFrequency?: string;
261
- /** Optional links to show in the Hub application for this content */
262
- actionLinks?: IActionLink[];
263
- /** Configure which Hub application actions (i.e. create web map) are available for this content */
264
- hubActions?: object;
265
- metrics?: {
266
- /** Visibility of the metrics for this content in the Hub application */
267
- visibility: Visibility | "updateGroups";
268
- };
269
- /** The content's unique URL slug in the Hub app */
270
- slug?: string;
271
- /** URL of the Portal API data endpoint for the resource */
272
- portalDataUrl?: string;
273
- /** The ids of any groups that the item belongs to */
274
- groupIds?: string[];
275
- /**
276
- * Any errors encountered when indexing or composing the content
277
- * see https://github.com/ArcGIS/hub-indexer/blob/master/docs/errors.md#response-formatting-for-errors
278
- */
279
- errors?: IEnrichmentErrorInfo[];
280
- /**
281
- * The item data associated w/ most types of content
282
- * the format of the data depends on the item type
283
- */
284
- data?: {
285
- [propName: string]: any;
286
- };
287
- /** service information (currentVersion, capabilities, maxRecordCount etc) */
288
- server?: Partial<IFeatureServiceDefinition>;
289
- /** layer information (geometryType, fields, etc) for related layers in the service */
290
- layers?: Array<Partial<ILayerDefinition>>;
291
- /** layer information (geometryType, fields, etc) */
292
- layer?: Partial<ILayerDefinition>;
293
- recordCount?: number;
294
- /** The owner's organization id */
295
- orgId?: string;
296
- /**
297
- * The owner's organization (portal) details (id, name, extent, etc)
298
- */
299
- org?: Partial<IPortal>;
300
- /** Whether the content is downloadable in the Hub app */
301
- isDownloadable: boolean;
302
- /** The content's structured license info */
303
- structuredLicense?: IStructuredLicense;
304
- }
305
215
  export interface IActionLink {
306
216
  /** Link title */
307
217
  title: string;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Dasherize a string
3
+ *
4
+ * ```javascript
5
+ * import { dasherize } from '@esri/hub-common';
6
+ * dasherize('innerHTML'); // 'inner-html'
7
+ * dasherize('action_name'); // 'action-name'
8
+ * dasherize('css-class-name'); // 'css-class-name'
9
+ * dasherize('my favorite items'); // 'my-favorite-items'
10
+ * dasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'
11
+ * ```
12
+ *
13
+ * Extracted and modified from Ember.js source code - MIT license
14
+ * @param value
15
+ * @returns
16
+ */
17
+ export declare function dasherize(value: string): string;
@@ -16,3 +16,4 @@ export * from "./logger";
16
16
  export * from "./is-update-group";
17
17
  export * from "./revertable-tasks";
18
18
  export * from "./sessionLocalStorage";
19
+ export * from "./dasherize";