@esri/hub-common 9.14.1 → 9.15.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 (291) 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 +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.map +1 -1
  12. package/dist/es2017/content/index.js +13 -14
  13. package/dist/es2017/content/index.js.map +1 -1
  14. package/dist/es2017/core/helpers/PropertyMapper.js +95 -0
  15. package/dist/es2017/core/helpers/PropertyMapper.js.map +1 -0
  16. package/dist/es2017/core/index.js +3 -0
  17. package/dist/es2017/core/index.js.map +1 -0
  18. package/dist/es2017/core/traits/WithBannerImage.js +1 -0
  19. package/dist/es2017/core/traits/WithBannerImage.js.map +1 -0
  20. package/dist/es2017/core/traits/WithLayout.js +1 -0
  21. package/dist/es2017/core/traits/WithLayout.js.map +1 -0
  22. package/dist/es2017/core/traits/WithSlug.js +1 -0
  23. package/dist/es2017/core/traits/WithSlug.js.map +1 -0
  24. package/dist/es2017/core/traits/index.js +4 -0
  25. package/dist/es2017/core/traits/index.js.map +1 -0
  26. package/dist/es2017/core/types/IContentEnrichments.js +1 -0
  27. package/dist/es2017/core/types/IContentEnrichments.js.map +1 -0
  28. package/dist/es2017/core/types/IHubContent.js +1 -0
  29. package/dist/es2017/core/types/IHubContent.js.map +1 -0
  30. package/dist/es2017/core/types/IHubEntityBase.js +1 -0
  31. package/dist/es2017/core/types/IHubEntityBase.js.map +1 -0
  32. package/dist/es2017/core/types/IHubEntityManager.js +1 -0
  33. package/dist/es2017/core/types/IHubEntityManager.js.map +1 -0
  34. package/dist/es2017/core/types/IHubEvent.js +1 -0
  35. package/dist/es2017/core/types/IHubEvent.js.map +1 -0
  36. package/dist/es2017/core/types/IHubImage.js +1 -0
  37. package/dist/es2017/core/types/IHubImage.js.map +1 -0
  38. package/dist/es2017/core/types/IHubInitiative.js +1 -0
  39. package/dist/es2017/core/types/IHubInitiative.js.map +1 -0
  40. package/dist/es2017/core/types/IHubItemEntity.js +1 -0
  41. package/dist/es2017/core/types/IHubItemEntity.js.map +1 -0
  42. package/dist/es2017/core/types/IHubLayout.js +1 -0
  43. package/dist/es2017/core/types/IHubLayout.js.map +1 -0
  44. package/dist/es2017/core/types/IHubPage.js +1 -0
  45. package/dist/es2017/core/types/IHubPage.js.map +1 -0
  46. package/dist/es2017/core/types/IHubProject.js +1 -0
  47. package/dist/es2017/core/types/IHubProject.js.map +1 -0
  48. package/dist/es2017/core/types/IHubSite.js +1 -0
  49. package/dist/es2017/core/types/IHubSite.js.map +1 -0
  50. package/dist/es2017/core/types/IHubTimeline.js +1 -0
  51. package/dist/es2017/core/types/IHubTimeline.js.map +1 -0
  52. package/dist/es2017/core/types/IItemEnrichments.js +1 -0
  53. package/dist/es2017/core/types/IItemEnrichments.js.map +1 -0
  54. package/dist/es2017/core/types/index.js +15 -0
  55. package/dist/es2017/core/types/index.js.map +1 -0
  56. package/dist/es2017/index.js +11 -6
  57. package/dist/es2017/index.js.map +1 -1
  58. package/dist/es2017/items/fail-safe-update.js +2 -2
  59. package/dist/es2017/items/fail-safe-update.js.map +1 -1
  60. package/dist/es2017/items/get-model-from-options.js +2 -2
  61. package/dist/es2017/items/get-model-from-options.js.map +1 -1
  62. package/dist/es2017/items/index.js +2 -3
  63. package/dist/es2017/items/index.js.map +1 -1
  64. package/dist/es2017/items/slugs.js +92 -0
  65. package/dist/es2017/items/slugs.js.map +1 -0
  66. package/dist/es2017/models/index.js +98 -0
  67. package/dist/es2017/models/index.js.map +1 -0
  68. package/dist/es2017/{items/serialize-model.js → models/serializeModel.js} +1 -1
  69. package/dist/es2017/models/serializeModel.js.map +1 -0
  70. package/dist/es2017/projects/HubProjectManager.js +115 -0
  71. package/dist/es2017/projects/HubProjectManager.js.map +1 -0
  72. package/dist/es2017/projects/HubProjects.js +194 -0
  73. package/dist/es2017/projects/HubProjects.js.map +1 -0
  74. package/dist/es2017/projects/index.js +3 -0
  75. package/dist/es2017/projects/index.js.map +1 -0
  76. package/dist/es2017/utils/dasherize.js +25 -0
  77. package/dist/es2017/utils/dasherize.js.map +1 -0
  78. package/dist/es2017/utils/index.js +1 -0
  79. package/dist/es2017/utils/index.js.map +1 -1
  80. package/dist/esm/ArcGISContext.js +15 -0
  81. package/dist/esm/ArcGISContext.js.map +1 -1
  82. package/dist/esm/ArcGISContextManager.js +13 -5
  83. package/dist/esm/ArcGISContextManager.js.map +1 -1
  84. package/dist/esm/Hub.js +89 -0
  85. package/dist/esm/Hub.js.map +1 -0
  86. package/dist/esm/HubError.js +40 -0
  87. package/dist/esm/HubError.js.map +1 -0
  88. package/dist/esm/collections.js +23 -0
  89. package/dist/esm/collections.js.map +1 -1
  90. package/dist/esm/content/_internal.js.map +1 -1
  91. package/dist/esm/content/index.js +13 -14
  92. package/dist/esm/content/index.js.map +1 -1
  93. package/dist/esm/core/helpers/PropertyMapper.js +97 -0
  94. package/dist/esm/core/helpers/PropertyMapper.js.map +1 -0
  95. package/dist/esm/core/index.js +3 -0
  96. package/dist/esm/core/index.js.map +1 -0
  97. package/dist/esm/core/traits/WithBannerImage.js +1 -0
  98. package/dist/esm/core/traits/WithBannerImage.js.map +1 -0
  99. package/dist/esm/core/traits/WithLayout.js +1 -0
  100. package/dist/esm/core/traits/WithLayout.js.map +1 -0
  101. package/dist/esm/core/traits/WithSlug.js +1 -0
  102. package/dist/esm/core/traits/WithSlug.js.map +1 -0
  103. package/dist/esm/core/traits/index.js +4 -0
  104. package/dist/esm/core/traits/index.js.map +1 -0
  105. package/dist/esm/core/types/IContentEnrichments.js +1 -0
  106. package/dist/esm/core/types/IContentEnrichments.js.map +1 -0
  107. package/dist/esm/core/types/IHubContent.js +1 -0
  108. package/dist/esm/core/types/IHubContent.js.map +1 -0
  109. package/dist/esm/core/types/IHubEntityBase.js +1 -0
  110. package/dist/esm/core/types/IHubEntityBase.js.map +1 -0
  111. package/dist/esm/core/types/IHubEntityManager.js +1 -0
  112. package/dist/esm/core/types/IHubEntityManager.js.map +1 -0
  113. package/dist/esm/core/types/IHubEvent.js +1 -0
  114. package/dist/esm/core/types/IHubEvent.js.map +1 -0
  115. package/dist/esm/core/types/IHubImage.js +1 -0
  116. package/dist/esm/core/types/IHubImage.js.map +1 -0
  117. package/dist/esm/core/types/IHubInitiative.js +1 -0
  118. package/dist/esm/core/types/IHubInitiative.js.map +1 -0
  119. package/dist/esm/core/types/IHubItemEntity.js +1 -0
  120. package/dist/esm/core/types/IHubItemEntity.js.map +1 -0
  121. package/dist/esm/core/types/IHubLayout.js +1 -0
  122. package/dist/esm/core/types/IHubLayout.js.map +1 -0
  123. package/dist/esm/core/types/IHubPage.js +1 -0
  124. package/dist/esm/core/types/IHubPage.js.map +1 -0
  125. package/dist/esm/core/types/IHubProject.js +1 -0
  126. package/dist/esm/core/types/IHubProject.js.map +1 -0
  127. package/dist/esm/core/types/IHubSite.js +1 -0
  128. package/dist/esm/core/types/IHubSite.js.map +1 -0
  129. package/dist/esm/core/types/IHubTimeline.js +1 -0
  130. package/dist/esm/core/types/IHubTimeline.js.map +1 -0
  131. package/dist/esm/core/types/IItemEnrichments.js +1 -0
  132. package/dist/esm/core/types/IItemEnrichments.js.map +1 -0
  133. package/dist/esm/core/types/index.js +15 -0
  134. package/dist/esm/core/types/index.js.map +1 -0
  135. package/dist/esm/index.js +11 -6
  136. package/dist/esm/index.js.map +1 -1
  137. package/dist/esm/items/fail-safe-update.js +2 -2
  138. package/dist/esm/items/fail-safe-update.js.map +1 -1
  139. package/dist/esm/items/get-model-from-options.js +2 -2
  140. package/dist/esm/items/get-model-from-options.js.map +1 -1
  141. package/dist/esm/items/index.js +2 -3
  142. package/dist/esm/items/index.js.map +1 -1
  143. package/dist/esm/items/slugs.js +93 -0
  144. package/dist/esm/items/slugs.js.map +1 -0
  145. package/dist/esm/models/index.js +99 -0
  146. package/dist/esm/models/index.js.map +1 -0
  147. package/dist/esm/{items/serialize-model.js → models/serializeModel.js} +1 -1
  148. package/dist/esm/models/serializeModel.js.map +1 -0
  149. package/dist/esm/projects/HubProjectManager.js +142 -0
  150. package/dist/esm/projects/HubProjectManager.js.map +1 -0
  151. package/dist/esm/projects/HubProjects.js +225 -0
  152. package/dist/esm/projects/HubProjects.js.map +1 -0
  153. package/dist/esm/projects/index.js +3 -0
  154. package/dist/esm/projects/index.js.map +1 -0
  155. package/dist/esm/utils/dasherize.js +25 -0
  156. package/dist/esm/utils/dasherize.js.map +1 -0
  157. package/dist/esm/utils/index.js +1 -0
  158. package/dist/esm/utils/index.js.map +1 -1
  159. package/dist/node/ArcGISContext.js +11 -0
  160. package/dist/node/ArcGISContext.js.map +1 -1
  161. package/dist/node/ArcGISContextManager.js +13 -5
  162. package/dist/node/ArcGISContextManager.js.map +1 -1
  163. package/dist/node/Hub.js +74 -0
  164. package/dist/node/Hub.js.map +1 -0
  165. package/dist/node/HubError.js +37 -0
  166. package/dist/node/HubError.js.map +1 -0
  167. package/dist/node/collections.js +24 -1
  168. package/dist/node/collections.js.map +1 -1
  169. package/dist/node/content/_internal.js.map +1 -1
  170. package/dist/node/content/index.js +13 -14
  171. package/dist/node/content/index.js.map +1 -1
  172. package/dist/node/core/helpers/PropertyMapper.js +101 -0
  173. package/dist/node/core/helpers/PropertyMapper.js.map +1 -0
  174. package/dist/node/core/index.js +6 -0
  175. package/dist/node/core/index.js.map +1 -0
  176. package/dist/node/core/traits/WithBannerImage.js +3 -0
  177. package/dist/node/core/traits/WithBannerImage.js.map +1 -0
  178. package/dist/node/core/traits/WithLayout.js +3 -0
  179. package/dist/node/core/traits/WithLayout.js.map +1 -0
  180. package/dist/node/core/traits/WithSlug.js +3 -0
  181. package/dist/node/core/traits/WithSlug.js.map +1 -0
  182. package/dist/node/core/traits/index.js +7 -0
  183. package/dist/node/core/traits/index.js.map +1 -0
  184. package/dist/node/core/types/IContentEnrichments.js +3 -0
  185. package/dist/node/core/types/IContentEnrichments.js.map +1 -0
  186. package/dist/node/core/types/IHubContent.js +3 -0
  187. package/dist/node/core/types/IHubContent.js.map +1 -0
  188. package/dist/node/core/types/IHubEntityBase.js +3 -0
  189. package/dist/node/core/types/IHubEntityBase.js.map +1 -0
  190. package/dist/node/core/types/IHubEntityManager.js +3 -0
  191. package/dist/node/core/types/IHubEntityManager.js.map +1 -0
  192. package/dist/node/core/types/IHubEvent.js +3 -0
  193. package/dist/node/core/types/IHubEvent.js.map +1 -0
  194. package/dist/node/core/types/IHubImage.js +3 -0
  195. package/dist/node/core/types/IHubImage.js.map +1 -0
  196. package/dist/node/core/types/IHubInitiative.js +3 -0
  197. package/dist/node/core/types/IHubInitiative.js.map +1 -0
  198. package/dist/node/core/types/IHubItemEntity.js +3 -0
  199. package/dist/node/core/types/IHubItemEntity.js.map +1 -0
  200. package/dist/node/core/types/IHubLayout.js +3 -0
  201. package/dist/node/core/types/IHubLayout.js.map +1 -0
  202. package/dist/node/core/types/IHubPage.js +3 -0
  203. package/dist/node/core/types/IHubPage.js.map +1 -0
  204. package/dist/node/core/types/IHubProject.js +3 -0
  205. package/dist/node/core/types/IHubProject.js.map +1 -0
  206. package/dist/node/core/types/IHubSite.js +3 -0
  207. package/dist/node/core/types/IHubSite.js.map +1 -0
  208. package/dist/node/core/types/IHubTimeline.js +3 -0
  209. package/dist/node/core/types/IHubTimeline.js.map +1 -0
  210. package/dist/node/core/types/IItemEnrichments.js +3 -0
  211. package/dist/node/core/types/IItemEnrichments.js.map +1 -0
  212. package/dist/node/core/types/index.js +18 -0
  213. package/dist/node/core/types/index.js.map +1 -0
  214. package/dist/node/index.js +12 -6
  215. package/dist/node/index.js.map +1 -1
  216. package/dist/node/items/fail-safe-update.js +3 -3
  217. package/dist/node/items/fail-safe-update.js.map +1 -1
  218. package/dist/node/items/get-model-from-options.js +3 -3
  219. package/dist/node/items/get-model-from-options.js.map +1 -1
  220. package/dist/node/items/index.js +2 -3
  221. package/dist/node/items/index.js.map +1 -1
  222. package/dist/node/items/slugs.js +99 -0
  223. package/dist/node/items/slugs.js.map +1 -0
  224. package/dist/node/models/index.js +106 -0
  225. package/dist/node/models/index.js.map +1 -0
  226. package/dist/node/{items/serialize-model.js → models/serializeModel.js} +1 -1
  227. package/dist/node/models/serializeModel.js.map +1 -0
  228. package/dist/node/projects/HubProjectManager.js +119 -0
  229. package/dist/node/projects/HubProjectManager.js.map +1 -0
  230. package/dist/node/projects/HubProjects.js +201 -0
  231. package/dist/node/projects/HubProjects.js.map +1 -0
  232. package/dist/node/projects/index.js +6 -0
  233. package/dist/node/projects/index.js.map +1 -0
  234. package/dist/node/utils/dasherize.js +29 -0
  235. package/dist/node/utils/dasherize.js.map +1 -0
  236. package/dist/node/utils/index.js +1 -0
  237. package/dist/node/utils/index.js.map +1 -1
  238. package/dist/types/ArcGISContext.d.ts +16 -1
  239. package/dist/types/ArcGISContextManager.d.ts +14 -0
  240. package/dist/types/Hub.d.ts +72 -0
  241. package/dist/types/HubError.d.ts +17 -0
  242. package/dist/types/collections.d.ts +12 -0
  243. package/dist/types/content/_internal.d.ts +57 -38
  244. package/dist/types/content/index.d.ts +8 -8
  245. package/dist/types/core/helpers/PropertyMapper.d.ts +69 -0
  246. package/dist/types/core/index.d.ts +2 -0
  247. package/dist/types/core/traits/WithBannerImage.d.ts +30 -0
  248. package/dist/types/core/traits/WithLayout.d.ts +54 -0
  249. package/dist/types/core/traits/WithSlug.d.ts +15 -0
  250. package/dist/types/core/traits/index.d.ts +3 -0
  251. package/dist/types/core/types/IContentEnrichments.d.ts +10 -0
  252. package/dist/types/core/types/IHubContent.d.ts +77 -0
  253. package/dist/types/core/types/IHubEntityBase.d.ts +41 -0
  254. package/dist/types/core/types/IHubEntityManager.d.ts +33 -0
  255. package/dist/types/core/types/IHubEvent.d.ts +10 -0
  256. package/dist/types/core/types/IHubImage.d.ts +25 -0
  257. package/dist/types/core/types/IHubInitiative.d.ts +8 -0
  258. package/dist/types/core/types/IHubItemEntity.d.ts +42 -0
  259. package/dist/types/core/types/IHubLayout.d.ts +20 -0
  260. package/dist/types/core/types/IHubPage.d.ts +8 -0
  261. package/dist/types/core/types/IHubProject.d.ts +15 -0
  262. package/dist/types/core/types/IHubSite.d.ts +11 -0
  263. package/dist/types/core/types/IHubTimeline.d.ts +41 -0
  264. package/dist/types/core/types/IItemEnrichments.d.ts +23 -0
  265. package/dist/types/core/types/index.d.ts +14 -0
  266. package/dist/types/index.d.ts +11 -6
  267. package/dist/types/items/index.d.ts +2 -3
  268. package/dist/types/items/slugs.d.ts +43 -0
  269. package/dist/types/models/index.d.ts +42 -0
  270. package/dist/types/{items/serialize-model.d.ts → models/serializeModel.d.ts} +0 -0
  271. package/dist/types/projects/HubProjectManager.d.ts +81 -0
  272. package/dist/types/projects/HubProjects.d.ts +31 -0
  273. package/dist/types/projects/index.d.ts +2 -0
  274. package/dist/types/types.d.ts +2 -92
  275. package/dist/types/utils/dasherize.d.ts +17 -0
  276. package/dist/types/utils/index.d.ts +1 -0
  277. package/dist/umd/common.umd.js +4557 -3687
  278. package/dist/umd/common.umd.js.map +1 -1
  279. package/dist/umd/common.umd.min.js +1 -1
  280. package/dist/umd/common.umd.min.js.map +1 -1
  281. package/package.json +1 -1
  282. package/dist/es2017/items/get-model.js +0 -19
  283. package/dist/es2017/items/get-model.js.map +0 -1
  284. package/dist/es2017/items/serialize-model.js.map +0 -1
  285. package/dist/esm/items/get-model.js +0 -19
  286. package/dist/esm/items/get-model.js.map +0 -1
  287. package/dist/esm/items/serialize-model.js.map +0 -1
  288. package/dist/node/items/get-model.js +0 -23
  289. package/dist/node/items/get-model.js.map +0 -1
  290. package/dist/node/items/serialize-model.js.map +0 -1
  291. package/dist/types/items/get-model.d.ts +0 -8
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.destroyProject = exports.getProject = exports.updateProject = exports.createProject = exports.HUB_PROJECT_ITEM_TYPE = void 0;
4
+ // Note - we separate these imports so we can cleanly spy on things in tests
5
+ const models_1 = require("../models");
6
+ const slugs_1 = require("../items/slugs");
7
+ const __1 = require("..");
8
+ const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
9
+ const PropertyMapper_1 = require("../core/helpers/PropertyMapper");
10
+ exports.HUB_PROJECT_ITEM_TYPE = "Web Mapping Application";
11
+ /**
12
+ * Default values of a IHubProject
13
+ */
14
+ const DEFAULT_PROJECT = {
15
+ name: "No title provided",
16
+ tags: [],
17
+ typeKeywords: ["IHubProject", "HubProject"],
18
+ };
19
+ /**
20
+ * Default values for a new HubProject Model
21
+ */
22
+ const DEFAULT_PROJECT_MODEL = {
23
+ item: {
24
+ type: exports.HUB_PROJECT_ITEM_TYPE,
25
+ title: "No Title Provided",
26
+ description: "No Description Provided",
27
+ snippet: "",
28
+ tags: [],
29
+ typeKeywords: [],
30
+ properties: {
31
+ slug: "",
32
+ },
33
+ },
34
+ data: {
35
+ display: "about",
36
+ timeline: {},
37
+ org: {},
38
+ status: "inactive",
39
+ contacts: [],
40
+ schemaVersion: 1,
41
+ },
42
+ };
43
+ /**
44
+ * Returns an Array of IPropertyMap objects
45
+ * We could define these directly, but since the
46
+ * properties of IHubProject map directly to properties
47
+ * on item or data, it's slightly less verbose to
48
+ * generate the structure.
49
+ * @returns
50
+ */
51
+ function getProjectPropertyMap() {
52
+ const itemProps = [
53
+ "created",
54
+ "culture",
55
+ "description",
56
+ "extent",
57
+ "id",
58
+ "modified",
59
+ "owner",
60
+ "snippet",
61
+ "tags",
62
+ "typeKeywords",
63
+ "url",
64
+ "type",
65
+ ];
66
+ const dataProps = [
67
+ "contacts",
68
+ "display",
69
+ "geometry",
70
+ "headerImage",
71
+ "layout",
72
+ "location",
73
+ "status",
74
+ ];
75
+ const map = [];
76
+ itemProps.forEach((entry) => {
77
+ map.push({ objectKey: entry, modelKey: `item.${entry}` });
78
+ });
79
+ dataProps.forEach((entry) => {
80
+ map.push({ objectKey: entry, modelKey: `data.${entry}` });
81
+ });
82
+ // Deeper mappings
83
+ map.push({
84
+ objectKey: "slug",
85
+ modelKey: "item.properties.slug",
86
+ });
87
+ map.push({
88
+ objectKey: "orgUrlKey",
89
+ modelKey: "item.properties.orgUrlKey",
90
+ });
91
+ map.push({
92
+ objectKey: "name",
93
+ modelKey: "item.title",
94
+ });
95
+ return map;
96
+ }
97
+ /**
98
+ * Create a new Hub Project item
99
+ *
100
+ * Minimal properties are name and org
101
+ *
102
+ * @param project
103
+ * @param requestOptions
104
+ */
105
+ async function createProject(partialProject, requestOptions) {
106
+ // merge incoming with the default
107
+ // this expansion solves the typing somehow
108
+ const project = Object.assign(Object.assign({}, DEFAULT_PROJECT), partialProject);
109
+ // Create a slug from the title if one is not passed in
110
+ if (!project.slug) {
111
+ project.slug = slugs_1.constructSlug(project.name, project.orgUrlKey);
112
+ }
113
+ // Ensure slug is unique
114
+ project.slug = await slugs_1.getUniqueSlug(project.slug, requestOptions);
115
+ // add slug to keywords
116
+ project.typeKeywords = slugs_1.setSlugKeyword(project.typeKeywords, project.slug);
117
+ // Map project object onto a default project Model
118
+ const mapper = new PropertyMapper_1.PropertyMapper(getProjectPropertyMap());
119
+ // create model from object, using the default model as a starting point
120
+ let model = mapper.objectToModel(project, __1.cloneObject(DEFAULT_PROJECT_MODEL));
121
+ // create the item
122
+ model = await models_1.createModel(model, requestOptions);
123
+ // map the model back into a IHubProject
124
+ const newProject = mapper.modelToObject(model, {});
125
+ // and return it
126
+ return newProject;
127
+ }
128
+ exports.createProject = createProject;
129
+ /**
130
+ * Update a Hub Project
131
+ * @param project
132
+ * @param requestOptions
133
+ */
134
+ async function updateProject(project, requestOptions) {
135
+ // verify that the slug is unique
136
+ // TODO: if the slug has not changed, we don't want to do this because
137
+ // the existing item will cause this to increment
138
+ project.slug = await slugs_1.getUniqueSlug(project.slug, requestOptions);
139
+ // get the backing item & data
140
+ const model = await models_1.getModel(project.id, requestOptions);
141
+ // create the PropertyMapper
142
+ const mapper = new PropertyMapper_1.PropertyMapper(getProjectPropertyMap());
143
+ // Note: Although we are fetching the model, and applying changes onto it,
144
+ // we are not attempting to handle "concurrent edit" conflict resolution
145
+ // but this is where we would apply that sort of logic
146
+ const modelToUpdate = mapper.objectToModel(project, model);
147
+ // update the backing item
148
+ const updatedModel = await models_1.updateModel(modelToUpdate, requestOptions);
149
+ // now map back into a project and return that
150
+ const updatedProject = mapper.modelToObject(updatedModel, project);
151
+ // the casting is needed because modelToObject returns a `Partial<T>`
152
+ // where as this function returns a `T`
153
+ return updatedProject;
154
+ }
155
+ exports.updateProject = updateProject;
156
+ /**
157
+ * Get a Hub Project by id or slug
158
+ * @param identifier item id or slug
159
+ * @param requestOptions
160
+ */
161
+ function getProject(identifier, requestOptions) {
162
+ let getPrms;
163
+ if (__1.isGuid(identifier)) {
164
+ // get item by id
165
+ getPrms = models_1.getModel(identifier, requestOptions);
166
+ }
167
+ else {
168
+ // search for item using filter=typekeywords:slug|identifier
169
+ getPrms = models_1.getModelBySlug(identifier, requestOptions);
170
+ }
171
+ return getPrms.then((model) => {
172
+ // transform the model into a HubProject
173
+ const mapper = new PropertyMapper_1.PropertyMapper(getProjectPropertyMap());
174
+ const project = mapper.modelToObject(model, {});
175
+ return project;
176
+ });
177
+ }
178
+ exports.getProject = getProject;
179
+ /**
180
+ * Remove a Hub Project
181
+ * @param id
182
+ * @param requestOptions
183
+ */
184
+ async function destroyProject(id, requestOptions) {
185
+ const ro = Object.assign(Object.assign({}, requestOptions), { id });
186
+ await arcgis_rest_portal_1.removeItem(ro);
187
+ return;
188
+ }
189
+ exports.destroyProject = destroyProject;
190
+ // WIP: Need to resolve how best to execute this
191
+ // i.e. delegate to searchContent or just do an item search
192
+ // and convert to IHubProject objects.
193
+ //
194
+ // export async function searchProjects(
195
+ // filter: Filter<"content">,
196
+ // opts: IHubSearchOptions
197
+ // ): Promise<ISearchResponse<IHubProject>> {
198
+ // return _searchContent(filter, opts).then((results) => {
199
+ // })
200
+ // }
201
+ //# sourceMappingURL=HubProjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./HubProjectManager"), exports);
5
+ tslib_1.__exportStar(require("./HubProjects"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/projects/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,wDAA8B"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dasherize = void 0;
4
+ /**
5
+ * Dasherize a string
6
+ *
7
+ * ```javascript
8
+ * import { dasherize } from '@esri/hub-common';
9
+ * dasherize('innerHTML'); // 'inner-html'
10
+ * dasherize('action_name'); // 'action-name'
11
+ * dasherize('css-class-name'); // 'css-class-name'
12
+ * dasherize('my favorite items'); // 'my-favorite-items'
13
+ * dasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'
14
+ * ```
15
+ *
16
+ * Extracted and modified from Ember.js source code - MIT license
17
+ * @param value
18
+ * @returns
19
+ */
20
+ function dasherize(value) {
21
+ const DECAMELIZE_REGEXP = /([a-z\d])([A-Z])/g;
22
+ const DASHERIZE_REGEXP = /[ _]/g;
23
+ return value
24
+ .replace(DECAMELIZE_REGEXP, "$1_$2")
25
+ .toLowerCase()
26
+ .replace(DASHERIZE_REGEXP, "-");
27
+ }
28
+ exports.dasherize = dasherize;
29
+ //# sourceMappingURL=dasherize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dasherize.js","sourceRoot":"","sources":["../../../src/utils/dasherize.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC;IACjC,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAPD,8BAOC"}
@@ -19,4 +19,5 @@ tslib_1.__exportStar(require("./logger"), exports);
19
19
  tslib_1.__exportStar(require("./is-update-group"), exports);
20
20
  tslib_1.__exportStar(require("./revertable-tasks"), exports);
21
21
  tslib_1.__exportStar(require("./sessionLocalStorage"), exports);
22
+ tslib_1.__exportStar(require("./dasherize"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,iEAAuC;AACvC,sEAA4C;AAC5C,sDAA4B;AAC5B,mEAAyC;AACzC,4DAAkC;AAClC,kEAAwC;AACxC,qDAA2B;AAC3B,oDAA0B;AAC1B,mDAAyB;AACzB,oDAA0B;AAC1B,4DAAkC;AAClC,2DAAiC;AACjC,6DAAmC;AACnC,mDAAyB;AACzB,4DAAkC;AAClC,6DAAmC;AACnC,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,iEAAuC;AACvC,sEAA4C;AAC5C,sDAA4B;AAC5B,mEAAyC;AACzC,4DAAkC;AAClC,kEAAwC;AACxC,qDAA2B;AAC3B,oDAA0B;AAC1B,mDAAyB;AACzB,oDAA0B;AAC1B,4DAAkC;AAClC,2DAAiC;AACjC,6DAAmC;AACnC,mDAAyB;AACzB,4DAAkC;AAClC,6DAAmC;AACnC,gEAAsC;AACtC,sDAA4B"}
@@ -125,6 +125,10 @@ export interface IArcGISContext {
125
125
  * Returns the portal object
126
126
  */
127
127
  portal: IPortal;
128
+ /**
129
+ * Additional app-specific context
130
+ */
131
+ properties: Record<string, any>;
128
132
  }
129
133
  /**
130
134
  * Options for the ArcGISContext constructor
@@ -146,7 +150,7 @@ export interface IArcGISContextOptions {
146
150
  /**
147
151
  * Hub Url that corresponds to the portal url is appropritate
148
152
  */
149
- hubUrl: string;
153
+ hubUrl?: string;
150
154
  /**
151
155
  * The current UserSession
152
156
  */
@@ -165,6 +169,10 @@ export interface IArcGISContextOptions {
165
169
  * ArcGISContextManager handles this internally
166
170
  */
167
171
  currentUser?: IUser;
172
+ /**
173
+ * Optional hash of additional context
174
+ */
175
+ properties?: Record<string, any>;
168
176
  }
169
177
  /**
170
178
  * Abstraction that holds a `UserSession`, along with
@@ -190,6 +198,7 @@ export declare class ArcGISContext implements IArcGISContext {
190
198
  private _hubUrl;
191
199
  private _portalSelf;
192
200
  private _currentUser;
201
+ private _properties;
193
202
  /**
194
203
  * Create a new instance of `ArcGISContext`.
195
204
  *
@@ -302,4 +311,10 @@ export declare class ArcGISContext implements IArcGISContext {
302
311
  * Returns the portal object as IPortal
303
312
  */
304
313
  get portal(): IPortal;
314
+ /**
315
+ * Return the properties hash that was passed in.
316
+ * Useful for app-specific context such as the active
317
+ * Site for ArcGIS Hub
318
+ */
319
+ get properties(): Record<string, any>;
305
320
  }
@@ -32,6 +32,14 @@ export interface IArcGISContextManagerOptions {
32
32
  * it will be fetched.
33
33
  */
34
34
  currentUser?: IUser;
35
+ /**
36
+ * Any additional properties to expose on the context. This allows
37
+ * an application to send additional context into the system.
38
+ * For example, in ArcGIS Hub, many times we want to pass in the
39
+ * active "Hub Site" as additional context, so we will send that in
40
+ * as a node on a properties object.
41
+ */
42
+ properties?: Record<string, any>;
35
43
  /**
36
44
  * Logging level
37
45
  * off > error > warn > info > debug > all
@@ -63,6 +71,7 @@ export declare class ArcGISContextManager {
63
71
  private _context;
64
72
  private _authentication;
65
73
  private _portalUrl;
74
+ private _properties;
66
75
  private _hubUrl;
67
76
  private _portalSelf;
68
77
  private _currentUser;
@@ -91,6 +100,11 @@ export declare class ArcGISContextManager {
91
100
  * @param auth
92
101
  */
93
102
  setAuthentication(auth: UserSession): Promise<void>;
103
+ /**
104
+ * Set the properties hash and re-create the context
105
+ * @param properties
106
+ */
107
+ setProperties(properties: Record<string, any>): void;
94
108
  /**
95
109
  * Clear the Authentication (UserSession). This should be
96
110
  * called when a user signs out of an application, but
@@ -0,0 +1,72 @@
1
+ import { ArcGISContextManager, IArcGISContextManagerOptions } from "./ArcGISContextManager";
2
+ import { HubProjectManager } from "./projects/HubProjectManager";
3
+ /**
4
+ * Options for instantiating a Hub instance
5
+ */
6
+ export interface IHubOptions {
7
+ contextManager?: ArcGISContextManager;
8
+ managerOptions?: IArcGISContextManagerOptions;
9
+ authOptions?: {
10
+ usename: string;
11
+ password: string;
12
+ portalUrl?: string;
13
+ };
14
+ }
15
+ /**
16
+ * Hub class can be used as an entry point to managing
17
+ * content, teams, sites, projects etc, in an organization's Hub.
18
+ *
19
+ * ```js
20
+ * import {Hub} from '@esri/hub-common';
21
+ * // create a Hub instance, authenticating as a specific user
22
+ * // working against arcgis online
23
+ * const myHub = await Hub.create({authOptions: {username: "casey", password: "jones"}});
24
+ *
25
+ * myHub.context.currentUser //=> {username: "casey", ...} as IUser
26
+ *
27
+ * const projectStore = await myHub.getProjectStore();
28
+ *
29
+ * const pavingProject = await projectStore.create({name: "12th Street Paving"});
30
+ * pavingProject.summary = "This is the 2024 planned paving of 12th Street, between 8th and 11th Ave";
31
+ * await projectStore.update(pavingProject);
32
+ * ```
33
+ *
34
+ * This is a convenience class. Hub Stores can be created
35
+ * directly, or the underlying functions can be imported an used
36
+ * as need for scenarios where these class structures introduce
37
+ * unwanted complexity
38
+ */
39
+ export declare class Hub {
40
+ /**
41
+ * Hold a context manager, which should be a single instance for
42
+ * an application. When authentication changes, the .context
43
+ * property on the context manager will be replaced. As long as
44
+ * all the fns in this class leverage properties on .context
45
+ * everything be kept in sync.
46
+ */
47
+ private _contextManager;
48
+ private _projectManager;
49
+ /**
50
+ * Private so we can employ a factory function should we need
51
+ * async work during creation
52
+ * @param contextManager
53
+ */
54
+ private constructor();
55
+ /**
56
+ * Factory function to construct a new HubProjectStore instance.
57
+ *
58
+ * Note: Used so that we could do async actions in the ctor.
59
+ * @param contextManager
60
+ * @returns
61
+ */
62
+ static create(options: IHubOptions): Promise<Hub>;
63
+ /**
64
+ * Getter to abstract the context manager
65
+ */
66
+ get context(): import("./ArcGISContext").IArcGISContext;
67
+ /**
68
+ * Create a Project Store connected to the current Hub
69
+ * @returns
70
+ */
71
+ get projects(): HubProjectManager;
72
+ }
@@ -0,0 +1,17 @@
1
+ import { OperationError } from ".";
2
+ /**
3
+ * Generic Hub Error with an Error stack as well
4
+ * as an optional serialized OperationStack.
5
+ *
6
+ * Also accepts a `rootCause` Error object
7
+ */
8
+ export default class HubError extends OperationError {
9
+ /**
10
+ * Creates an instance of HubError.
11
+ * @param {string} operation
12
+ * @param {string} [message]
13
+ * @param {Error} [rootCause]
14
+ * @memberof HubError
15
+ */
16
+ constructor(operation: string, message?: string, rootCause?: Error);
17
+ }
@@ -1,3 +1,15 @@
1
+ /**
2
+ * ```js
3
+ * import { getCollection } from "@esri/hub-common";
4
+ * //
5
+ * getCollection('Feature Layer')
6
+ * > 'dataset'
7
+ * ```
8
+ * Get the Hub collection for a given item type
9
+ * @param itemType The ArcGIS [item type](https://developers.arcgis.com/rest/users-groups-and-items/items-and-item-types.htm).
10
+ * @returns the Hub collection of a given item type.
11
+ */
12
+ export declare const getCollection: (type?: string) => string;
1
13
  export declare const collections: {
2
14
  [key: string]: string[];
3
15
  };
@@ -8,7 +8,7 @@
8
8
  * It's probably a good pattern to add functions here first and then
9
9
  * move them to index.ts only when they are needed by a consumer.
10
10
  */
11
- import { BBox, IHubContent, IHubGeography, GeographyProvenance } from "../types";
11
+ import { BBox, IHubContent, IHubGeography, GeographyProvenance } from "..";
12
12
  /**
13
13
  * Create a new content with updated boundary properties
14
14
  * @param content original content
@@ -17,70 +17,89 @@ import { BBox, IHubContent, IHubGeography, GeographyProvenance } from "../types"
17
17
  */
18
18
  export declare const setContentBoundary: (content: IHubContent, boundary: GeographyProvenance) => {
19
19
  boundary: IHubGeography;
20
- item: any;
20
+ item: {
21
+ properties: any;
22
+ id: string;
23
+ owner: string;
24
+ tags: string[];
25
+ created: number;
26
+ modified: number;
27
+ numViews: number;
28
+ size: number;
29
+ protected?: boolean;
30
+ title: string;
31
+ type: string;
32
+ typeKeywords?: string[];
33
+ description?: string;
34
+ snippet?: string;
35
+ documentation?: string;
36
+ extent?: number[][];
37
+ categories?: string[];
38
+ spatialReference?: import("@esri/arcgis-rest-types").ISpatialReference;
39
+ culture?: string;
40
+ url?: string;
41
+ };
42
+ slug?: string;
21
43
  hubId?: string;
44
+ identifier: string;
22
45
  permissions: {
23
46
  visibility: "private" | "public" | "org";
24
- control?: import("../types").AccessControl;
47
+ control?: import("..").AccessControl;
25
48
  groups?: import("@esri/arcgis-rest-types").IGroup[];
26
49
  };
27
- family?: import("../types").HubFamily;
28
- itemCategories?: string[];
29
- normalizedType?: string;
50
+ family?: import("..").HubFamily;
51
+ categories?: string[];
52
+ isDownloadable: boolean;
53
+ structuredLicense?: import("..").IStructuredLicense;
30
54
  publishedDate: Date;
31
55
  publishedDateSource?: string;
32
56
  updateFrequency?: string;
33
- actionLinks?: import("../types").IActionLink[];
34
- hubActions?: object;
35
- metrics?: {
36
- visibility: "private" | "public" | "org" | "updateGroups";
37
- };
38
- slug?: string;
57
+ portalHomeUrl?: string;
58
+ portalApiUrl?: string;
39
59
  portalDataUrl?: string;
40
- groupIds?: string[];
41
- errors?: import("../types").IEnrichmentErrorInfo[];
42
- data?: {
43
- [propName: string]: any;
44
- };
45
- server?: Partial<import("@esri/arcgis-rest-types").IFeatureServiceDefinition>;
46
- layers?: Partial<import("@esri/arcgis-rest-types").ILayerDefinition>[];
60
+ actionLinks?: import("..").IActionLink[];
61
+ hubActions?: object;
47
62
  layer?: Partial<import("@esri/arcgis-rest-types").ILayerDefinition>;
48
- recordCount?: number;
63
+ itemCategories?: string[];
64
+ normalizedType?: string;
49
65
  orgId?: string;
50
- org?: Partial<import("@esri/arcgis-rest-portal").IPortal>;
51
- isDownloadable: boolean;
52
- structuredLicense?: import("..").IStructuredLicense;
66
+ thumbnailUrl?: string;
67
+ owner: string;
68
+ description?: string;
69
+ culture?: string;
70
+ tags: string[];
71
+ typeKeywords?: string[];
72
+ url?: string;
73
+ id: string;
53
74
  name: string;
54
75
  summary?: string;
55
- hubType: import("../types").HubType;
56
76
  createdDate: Date;
57
- createdDateSource?: string;
77
+ createdDateSource: string;
58
78
  updatedDate: Date;
59
- updatedDateSource?: string;
60
- portalHomeUrl?: string;
61
- portalApiUrl?: string;
62
- thumbnailUrl?: string;
79
+ updatedDateSource: string;
80
+ type: string;
81
+ server?: Partial<import("@esri/arcgis-rest-types").IFeatureServiceDefinition>;
82
+ layers?: Partial<import("@esri/arcgis-rest-types").ILayerDefinition>[];
83
+ recordCount?: number;
84
+ data?: {
85
+ [propName: string]: any;
86
+ };
63
87
  metadata?: any;
64
- id: string;
65
- owner: string;
66
- tags: string[];
88
+ groupIds?: string[];
89
+ ownerUser?: import("@esri/arcgis-rest-types").IUser;
90
+ org?: Partial<import("@esri/arcgis-rest-portal").IPortal>;
91
+ errors?: import("..").IEnrichmentErrorInfo[];
67
92
  created: number;
68
93
  modified: number;
69
94
  numViews: number;
70
95
  size: number;
71
96
  protected?: boolean;
72
97
  title: string;
73
- type: string;
74
- typeKeywords?: string[];
75
- description?: string;
76
98
  snippet?: string;
77
99
  documentation?: string;
78
100
  extent?: number[][];
79
- categories?: string[];
80
101
  spatialReference?: import("@esri/arcgis-rest-types").ISpatialReference;
81
- culture?: string;
82
102
  properties?: any;
83
- url?: string;
84
103
  };
85
104
  /**
86
105
  * Create a new content with updated extent and derived properties like boundary
@@ -1,7 +1,7 @@
1
1
  import { ResourceObject } from "jsonapi-typescript";
2
2
  import { IItem } from "@esri/arcgis-rest-portal";
3
- import { HubType, HubFamily } from "../types";
4
- import { IHubContent, IModel } from "../types";
3
+ import { HubType, HubFamily, IModel } from "../types";
4
+ import { IHubContent } from "..";
5
5
  /**
6
6
  * JSONAPI dataset resource returned by the Hub API
7
7
  */
@@ -204,25 +204,25 @@ export declare function datasetToContent(dataset: DatasetResource): IHubContent;
204
204
  export declare function datasetToItem(dataset: DatasetResource): IItem;
205
205
  /**
206
206
  * returns a new content that has the specified type and
207
- * and updated related properties like normalizedType, family, etc
207
+ * and updated related properties like, family, etc
208
208
  * @param content orignal content
209
209
  * @param type new type
210
210
  * @returns new content
211
211
  */
212
212
  export declare const setContentType: (content: IHubContent, type: string) => IHubContent;
213
213
  /**
214
- * Compute the content type icon based on the normalizedType
215
- * @param normalizedType
214
+ * Compute the content type icon based on the content type
215
+ * @param content type
216
216
  * @returns content type icon
217
217
  */
218
- export declare const getContentTypeIcon: (normalizedType: string) => any;
218
+ export declare const getContentTypeIcon: (contentType: string) => any;
219
219
  /**
220
220
  * Compute the content type label
221
- * @param normalizedType
221
+ * @param contentType
222
222
  * @param isProxied
223
223
  * @returns content type label
224
224
  */
225
- export declare const getContentTypeLabel: (normalizedType: string, isProxied: boolean) => string;
225
+ export declare const getContentTypeLabel: (contentType: string, isProxied: boolean) => string;
226
226
  /**
227
227
  * returns a new content that has the specified hubId and updated identifier
228
228
  * @param content orignal content