@esri/hub-common 9.24.1 → 9.25.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 (264) hide show
  1. package/README.md +6 -6
  2. package/dist/es2017/ArcGISContext.js +7 -8
  3. package/dist/es2017/ArcGISContext.js.map +1 -1
  4. package/dist/es2017/Hub.js +19 -2
  5. package/dist/es2017/Hub.js.map +1 -1
  6. package/dist/es2017/content/_fetch.js +16 -3
  7. package/dist/es2017/content/_fetch.js.map +1 -1
  8. package/dist/es2017/content/fetch.js +41 -31
  9. package/dist/es2017/content/fetch.js.map +1 -1
  10. package/dist/es2017/core/{helpers → _internal}/PropertyMapper.js +0 -0
  11. package/dist/es2017/core/_internal/PropertyMapper.js.map +1 -0
  12. package/dist/es2017/core/types/IHubSiteTheme.js +1 -0
  13. package/dist/es2017/core/types/IHubSiteTheme.js.map +1 -0
  14. package/dist/es2017/core/types/index.js +5 -3
  15. package/dist/es2017/core/types/index.js.map +1 -1
  16. package/dist/es2017/items/_enrichments.js +29 -14
  17. package/dist/es2017/items/_enrichments.js.map +1 -1
  18. package/dist/es2017/items/index.js +1 -0
  19. package/dist/es2017/items/index.js.map +1 -1
  20. package/dist/es2017/items/registerBrowserApp.js +25 -0
  21. package/dist/es2017/items/registerBrowserApp.js.map +1 -0
  22. package/dist/es2017/projects/HubProjectManager.js +11 -1
  23. package/dist/es2017/projects/HubProjectManager.js.map +1 -1
  24. package/dist/es2017/projects/HubProjects.js +34 -82
  25. package/dist/es2017/projects/HubProjects.js.map +1 -1
  26. package/dist/es2017/search/_internal/searchContentEntities.js +77 -0
  27. package/dist/es2017/search/_internal/searchContentEntities.js.map +1 -0
  28. package/dist/es2017/search/_searchContent.js +1 -0
  29. package/dist/es2017/search/_searchContent.js.map +1 -1
  30. package/dist/es2017/search/group-utils.js.map +1 -1
  31. package/dist/es2017/search/utils.js.map +1 -1
  32. package/dist/es2017/sites/HubSiteManager.js +155 -0
  33. package/dist/es2017/sites/HubSiteManager.js.map +1 -0
  34. package/dist/es2017/sites/HubSites.js +396 -0
  35. package/dist/es2017/sites/HubSites.js.map +1 -0
  36. package/dist/es2017/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  37. package/dist/es2017/sites/_internal/_apply-site-schema.js.map +1 -0
  38. package/dist/es2017/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  39. package/dist/es2017/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  40. package/dist/es2017/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  41. package/dist/es2017/sites/_internal/_ensure-catalog.js.map +1 -0
  42. package/dist/es2017/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  43. package/dist/es2017/sites/_internal/_ensure-telemetry.js.map +1 -0
  44. package/dist/es2017/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  45. package/dist/es2017/sites/_internal/_migrate-feed-config.js.map +1 -0
  46. package/dist/es2017/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  47. package/dist/es2017/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  48. package/dist/es2017/sites/_internal/handleDomainChanges.js +44 -0
  49. package/dist/es2017/sites/_internal/handleDomainChanges.js.map +1 -0
  50. package/dist/es2017/sites/_internal/index.js +2 -0
  51. package/dist/es2017/sites/_internal/index.js.map +1 -0
  52. package/dist/es2017/sites/domains/addSiteDomains.js +36 -0
  53. package/dist/es2017/sites/domains/addSiteDomains.js.map +1 -0
  54. package/dist/es2017/sites/domains/index.js +2 -0
  55. package/dist/es2017/sites/domains/index.js.map +1 -1
  56. package/dist/es2017/sites/domains/removeDomainByHostname.js +29 -0
  57. package/dist/es2017/sites/domains/removeDomainByHostname.js.map +1 -0
  58. package/dist/es2017/sites/fetchSiteModel.js +31 -0
  59. package/dist/es2017/sites/fetchSiteModel.js.map +1 -0
  60. package/dist/es2017/sites/index.js +6 -25
  61. package/dist/es2017/sites/index.js.map +1 -1
  62. package/dist/es2017/sites/registerSiteAsApplication.js +23 -0
  63. package/dist/es2017/sites/registerSiteAsApplication.js.map +1 -0
  64. package/dist/es2017/sites/themes.js +46 -0
  65. package/dist/es2017/sites/themes.js.map +1 -0
  66. package/dist/es2017/sites/upgrade-site-schema.js +6 -6
  67. package/dist/es2017/sites/upgrade-site-schema.js.map +1 -1
  68. package/dist/es2017/utils/_array.js +13 -0
  69. package/dist/es2017/utils/_array.js.map +1 -0
  70. package/dist/esm/ArcGISContext.js +7 -8
  71. package/dist/esm/ArcGISContext.js.map +1 -1
  72. package/dist/esm/Hub.js +23 -2
  73. package/dist/esm/Hub.js.map +1 -1
  74. package/dist/esm/content/_fetch.js +14 -3
  75. package/dist/esm/content/_fetch.js.map +1 -1
  76. package/dist/esm/content/fetch.js +59 -42
  77. package/dist/esm/content/fetch.js.map +1 -1
  78. package/dist/esm/core/{helpers → _internal}/PropertyMapper.js +0 -0
  79. package/dist/esm/core/_internal/PropertyMapper.js.map +1 -0
  80. package/dist/esm/core/types/IHubSiteTheme.js +1 -0
  81. package/dist/esm/core/types/IHubSiteTheme.js.map +1 -0
  82. package/dist/esm/core/types/index.js +5 -3
  83. package/dist/esm/core/types/index.js.map +1 -1
  84. package/dist/esm/items/_enrichments.js +29 -14
  85. package/dist/esm/items/_enrichments.js.map +1 -1
  86. package/dist/esm/items/index.js +1 -0
  87. package/dist/esm/items/index.js.map +1 -1
  88. package/dist/esm/items/registerBrowserApp.js +25 -0
  89. package/dist/esm/items/registerBrowserApp.js.map +1 -0
  90. package/dist/esm/projects/HubProjectManager.js +16 -1
  91. package/dist/esm/projects/HubProjectManager.js.map +1 -1
  92. package/dist/esm/projects/HubProjects.js +38 -81
  93. package/dist/esm/projects/HubProjects.js.map +1 -1
  94. package/dist/esm/search/_internal/searchContentEntities.js +89 -0
  95. package/dist/esm/search/_internal/searchContentEntities.js.map +1 -0
  96. package/dist/esm/search/_searchContent.js +1 -0
  97. package/dist/esm/search/_searchContent.js.map +1 -1
  98. package/dist/esm/search/group-utils.js.map +1 -1
  99. package/dist/esm/search/utils.js.map +1 -1
  100. package/dist/esm/sites/HubSiteManager.js +201 -0
  101. package/dist/esm/sites/HubSiteManager.js.map +1 -0
  102. package/dist/esm/sites/HubSites.js +448 -0
  103. package/dist/esm/sites/HubSites.js.map +1 -0
  104. package/dist/esm/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  105. package/dist/esm/sites/_internal/_apply-site-schema.js.map +1 -0
  106. package/dist/esm/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  107. package/dist/esm/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  108. package/dist/esm/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  109. package/dist/esm/sites/_internal/_ensure-catalog.js.map +1 -0
  110. package/dist/esm/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  111. package/dist/esm/sites/_internal/_ensure-telemetry.js.map +1 -0
  112. package/dist/esm/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  113. package/dist/esm/sites/_internal/_migrate-feed-config.js.map +1 -0
  114. package/dist/esm/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  115. package/dist/esm/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  116. package/dist/esm/sites/_internal/handleDomainChanges.js +49 -0
  117. package/dist/esm/sites/_internal/handleDomainChanges.js.map +1 -0
  118. package/dist/esm/sites/_internal/index.js +2 -0
  119. package/dist/esm/sites/_internal/index.js.map +1 -0
  120. package/dist/esm/sites/domains/addSiteDomains.js +36 -0
  121. package/dist/esm/sites/domains/addSiteDomains.js.map +1 -0
  122. package/dist/esm/sites/domains/index.js +2 -0
  123. package/dist/esm/sites/domains/index.js.map +1 -1
  124. package/dist/esm/sites/domains/removeDomainByHostname.js +42 -0
  125. package/dist/esm/sites/domains/removeDomainByHostname.js.map +1 -0
  126. package/dist/esm/sites/fetchSiteModel.js +34 -0
  127. package/dist/esm/sites/fetchSiteModel.js.map +1 -0
  128. package/dist/esm/sites/index.js +6 -28
  129. package/dist/esm/sites/index.js.map +1 -1
  130. package/dist/esm/sites/registerSiteAsApplication.js +23 -0
  131. package/dist/esm/sites/registerSiteAsApplication.js.map +1 -0
  132. package/dist/esm/sites/themes.js +46 -0
  133. package/dist/esm/sites/themes.js.map +1 -0
  134. package/dist/esm/sites/upgrade-site-schema.js +6 -6
  135. package/dist/esm/sites/upgrade-site-schema.js.map +1 -1
  136. package/dist/esm/utils/_array.js +13 -0
  137. package/dist/esm/utils/_array.js.map +1 -0
  138. package/dist/node/ArcGISContext.js +7 -8
  139. package/dist/node/ArcGISContext.js.map +1 -1
  140. package/dist/node/Hub.js +19 -2
  141. package/dist/node/Hub.js.map +1 -1
  142. package/dist/node/content/_fetch.js +16 -3
  143. package/dist/node/content/_fetch.js.map +1 -1
  144. package/dist/node/content/fetch.js +41 -31
  145. package/dist/node/content/fetch.js.map +1 -1
  146. package/dist/node/core/{helpers → _internal}/PropertyMapper.js +0 -0
  147. package/dist/node/core/_internal/PropertyMapper.js.map +1 -0
  148. package/dist/node/core/types/IHubSiteTheme.js +3 -0
  149. package/dist/node/core/types/IHubSiteTheme.js.map +1 -0
  150. package/dist/node/core/types/index.js +5 -3
  151. package/dist/node/core/types/index.js.map +1 -1
  152. package/dist/node/items/_enrichments.js +30 -15
  153. package/dist/node/items/_enrichments.js.map +1 -1
  154. package/dist/node/items/index.js +1 -0
  155. package/dist/node/items/index.js.map +1 -1
  156. package/dist/node/items/registerBrowserApp.js +29 -0
  157. package/dist/node/items/registerBrowserApp.js.map +1 -0
  158. package/dist/node/projects/HubProjectManager.js +10 -0
  159. package/dist/node/projects/HubProjectManager.js.map +1 -1
  160. package/dist/node/projects/HubProjects.js +32 -79
  161. package/dist/node/projects/HubProjects.js.map +1 -1
  162. package/dist/node/search/_internal/searchContentEntities.js +82 -0
  163. package/dist/node/search/_internal/searchContentEntities.js.map +1 -0
  164. package/dist/node/search/_searchContent.js +1 -0
  165. package/dist/node/search/_searchContent.js.map +1 -1
  166. package/dist/node/search/group-utils.js.map +1 -1
  167. package/dist/node/search/utils.js.map +1 -1
  168. package/dist/node/sites/HubSiteManager.js +159 -0
  169. package/dist/node/sites/HubSiteManager.js.map +1 -0
  170. package/dist/node/sites/HubSites.js +405 -0
  171. package/dist/node/sites/HubSites.js.map +1 -0
  172. package/dist/node/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  173. package/dist/node/sites/_internal/_apply-site-schema.js.map +1 -0
  174. package/dist/node/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  175. package/dist/node/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  176. package/dist/node/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  177. package/dist/node/sites/_internal/_ensure-catalog.js.map +1 -0
  178. package/dist/node/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  179. package/dist/node/sites/_internal/_ensure-telemetry.js.map +1 -0
  180. package/dist/node/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  181. package/dist/node/sites/_internal/_migrate-feed-config.js.map +1 -0
  182. package/dist/node/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  183. package/dist/node/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  184. package/dist/node/sites/_internal/handleDomainChanges.js +48 -0
  185. package/dist/node/sites/_internal/handleDomainChanges.js.map +1 -0
  186. package/dist/node/sites/_internal/index.js +5 -0
  187. package/dist/node/sites/_internal/index.js.map +1 -0
  188. package/dist/node/sites/domains/addSiteDomains.js +40 -0
  189. package/dist/node/sites/domains/addSiteDomains.js.map +1 -0
  190. package/dist/node/sites/domains/index.js +2 -0
  191. package/dist/node/sites/domains/index.js.map +1 -1
  192. package/dist/node/sites/domains/removeDomainByHostname.js +33 -0
  193. package/dist/node/sites/domains/removeDomainByHostname.js.map +1 -0
  194. package/dist/node/sites/fetchSiteModel.js +36 -0
  195. package/dist/node/sites/fetchSiteModel.js.map +1 -0
  196. package/dist/node/sites/index.js +6 -27
  197. package/dist/node/sites/index.js.map +1 -1
  198. package/dist/node/sites/registerSiteAsApplication.js +27 -0
  199. package/dist/node/sites/registerSiteAsApplication.js.map +1 -0
  200. package/dist/node/sites/themes.js +50 -0
  201. package/dist/node/sites/themes.js.map +1 -0
  202. package/dist/node/sites/upgrade-site-schema.js +6 -6
  203. package/dist/node/sites/upgrade-site-schema.js.map +1 -1
  204. package/dist/node/utils/_array.js +16 -0
  205. package/dist/node/utils/_array.js.map +1 -0
  206. package/dist/types/Hub.d.ts +15 -2
  207. package/dist/types/content/_fetch.d.ts +9 -4
  208. package/dist/types/core/{helpers → _internal}/PropertyMapper.d.ts +0 -0
  209. package/dist/types/core/types/IHubEntityManager.d.ts +2 -5
  210. package/dist/types/core/types/IHubItemEntityManager.d.ts +10 -0
  211. package/dist/types/core/types/IHubSite.d.ts +68 -4
  212. package/dist/types/core/types/IHubSiteTheme.d.ts +28 -0
  213. package/dist/types/core/types/index.d.ts +5 -3
  214. package/dist/types/items/_enrichments.d.ts +10 -1
  215. package/dist/types/items/index.d.ts +1 -0
  216. package/dist/types/items/registerBrowserApp.d.ts +11 -0
  217. package/dist/types/projects/HubProjectManager.d.ts +8 -0
  218. package/dist/types/projects/HubProjects.d.ts +18 -0
  219. package/dist/types/search/_internal/searchContentEntities.d.ts +32 -0
  220. package/dist/types/search/utils.d.ts +1 -1
  221. package/dist/types/sites/HubSiteManager.d.ts +104 -0
  222. package/dist/types/sites/HubSites.d.ts +56 -0
  223. package/dist/types/sites/{_apply-site-schema.d.ts → _internal/_apply-site-schema.d.ts} +1 -1
  224. package/dist/types/sites/{_enforce-lowercase-domains.d.ts → _internal/_enforce-lowercase-domains.d.ts} +1 -1
  225. package/dist/types/sites/{_ensure-catalog.d.ts → _internal/_ensure-catalog.d.ts} +1 -1
  226. package/dist/types/sites/{_ensure-telemetry.d.ts → _internal/_ensure-telemetry.d.ts} +1 -1
  227. package/dist/types/sites/{_migrate-feed-config.d.ts → _internal/_migrate-feed-config.d.ts} +1 -1
  228. package/dist/types/sites/{_purge-non-guids-from-catalog.d.ts → _internal/_purge-non-guids-from-catalog.d.ts} +1 -1
  229. package/dist/types/sites/_internal/handleDomainChanges.d.ts +9 -0
  230. package/dist/types/sites/_internal/index.d.ts +1 -0
  231. package/dist/types/sites/domains/addSiteDomains.d.ts +11 -0
  232. package/dist/types/sites/domains/index.d.ts +2 -0
  233. package/dist/types/sites/domains/removeDomainByHostname.d.ts +10 -0
  234. package/dist/types/sites/fetchSiteModel.d.ts +12 -0
  235. package/dist/types/sites/index.d.ts +6 -9
  236. package/dist/types/sites/registerSiteAsApplication.d.ts +8 -0
  237. package/dist/types/sites/themes.d.ts +11 -0
  238. package/dist/types/utils/_array.d.ts +9 -0
  239. package/dist/umd/common.umd.js +3008 -2005
  240. package/dist/umd/common.umd.js.map +1 -1
  241. package/dist/umd/common.umd.min.js +1 -1
  242. package/dist/umd/common.umd.min.js.map +1 -1
  243. package/package.json +1 -1
  244. package/dist/es2017/core/helpers/PropertyMapper.js.map +0 -1
  245. package/dist/es2017/sites/_apply-site-schema.js.map +0 -1
  246. package/dist/es2017/sites/_enforce-lowercase-domains.js.map +0 -1
  247. package/dist/es2017/sites/_ensure-catalog.js.map +0 -1
  248. package/dist/es2017/sites/_ensure-telemetry.js.map +0 -1
  249. package/dist/es2017/sites/_migrate-feed-config.js.map +0 -1
  250. package/dist/es2017/sites/_purge-non-guids-from-catalog.js.map +0 -1
  251. package/dist/esm/core/helpers/PropertyMapper.js.map +0 -1
  252. package/dist/esm/sites/_apply-site-schema.js.map +0 -1
  253. package/dist/esm/sites/_enforce-lowercase-domains.js.map +0 -1
  254. package/dist/esm/sites/_ensure-catalog.js.map +0 -1
  255. package/dist/esm/sites/_ensure-telemetry.js.map +0 -1
  256. package/dist/esm/sites/_migrate-feed-config.js.map +0 -1
  257. package/dist/esm/sites/_purge-non-guids-from-catalog.js.map +0 -1
  258. package/dist/node/core/helpers/PropertyMapper.js.map +0 -1
  259. package/dist/node/sites/_apply-site-schema.js.map +0 -1
  260. package/dist/node/sites/_enforce-lowercase-domains.js.map +0 -1
  261. package/dist/node/sites/_ensure-catalog.js.map +0 -1
  262. package/dist/node/sites/_ensure-telemetry.js.map +0 -1
  263. package/dist/node/sites/_migrate-feed-config.js.map +0 -1
  264. package/dist/node/sites/_purge-non-guids-from-catalog.js.map +0 -1
@@ -0,0 +1,201 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import HubError from "../HubError";
3
+ // Node has issues if this is not directly imported
4
+ import { ArcGISContextManager } from "../ArcGISContextManager";
5
+ import { updateSite, destroySite, createSite, _fetchSite, convertItemToSite, searchSites, } from "./HubSites";
6
+ import { setItemThumbnail as updateItemThumbnail } from "../items/setItemThumbnail";
7
+ var HubSiteManager = /** @class */ (function () {
8
+ /**
9
+ * Private so we can employ a factory function should we need
10
+ * async work during creation
11
+ * @param contextOrManager
12
+ */
13
+ function HubSiteManager(contextOrManager) {
14
+ if (contextOrManager instanceof ArcGISContextManager) {
15
+ this._contextManager = contextOrManager;
16
+ }
17
+ else {
18
+ this._context = contextOrManager;
19
+ }
20
+ }
21
+ /**
22
+ * Factory function to construct a new HubProjectManager instance.
23
+ *
24
+ * Note: Used so that we could do async actions in the ctor.
25
+ * @param contextOrManager
26
+ * @returns
27
+ */
28
+ HubSiteManager.init = function (contextOrManager) {
29
+ return new HubSiteManager(contextOrManager);
30
+ };
31
+ Object.defineProperty(HubSiteManager.prototype, "context", {
32
+ /**
33
+ * Getter to abstract how we store the context
34
+ */
35
+ get: function () {
36
+ if (this._contextManager) {
37
+ return this._contextManager.context;
38
+ }
39
+ else {
40
+ return this._context;
41
+ }
42
+ },
43
+ enumerable: false,
44
+ configurable: true
45
+ });
46
+ /**
47
+ * Create and store a new Site
48
+ *
49
+ * This also registers the item for oAuth and
50
+ * registers domain names with the hub Domain system
51
+ *
52
+ * Sites are stored as Items in the Sharing API
53
+ * @param site
54
+ * @param requestOptions
55
+ * @returns
56
+ */
57
+ HubSiteManager.prototype.create = function (site, requestOptions) {
58
+ return __awaiter(this, void 0, void 0, function () {
59
+ return __generator(this, function (_a) {
60
+ if (requestOptions || this.context.isAuthenticated) {
61
+ // ammend in the orgUrlKey
62
+ if (!site.orgUrlKey) {
63
+ site.orgUrlKey = this.context.portal.urlKey;
64
+ }
65
+ return [2 /*return*/, createSite(site, requestOptions || this.context.hubRequestOptions)];
66
+ }
67
+ else {
68
+ throw new HubError("Create Site", "Creating Hub Sites requires authentication.");
69
+ }
70
+ return [2 /*return*/];
71
+ });
72
+ });
73
+ };
74
+ /**
75
+ * Update a Site
76
+ * @param site
77
+ * @param requestOptions
78
+ * @returns
79
+ */
80
+ HubSiteManager.prototype.update = function (site, requestOptions) {
81
+ return __awaiter(this, void 0, void 0, function () {
82
+ return __generator(this, function (_a) {
83
+ if (requestOptions || this.context.isAuthenticated) {
84
+ return [2 /*return*/, updateSite(site, requestOptions || this.context.hubRequestOptions)];
85
+ }
86
+ else {
87
+ throw new HubError("Update Site", "Updating a Hub Site requires authentication.");
88
+ }
89
+ return [2 /*return*/];
90
+ });
91
+ });
92
+ };
93
+ /**
94
+ * Destroy a Site
95
+ * This permanently removes the backing Item,
96
+ * and clears the domain entries for it.
97
+ * @param id
98
+ * @param requestOptions
99
+ * @returns
100
+ */
101
+ HubSiteManager.prototype.destroy = function (id, requestOptions) {
102
+ return __awaiter(this, void 0, void 0, function () {
103
+ return __generator(this, function (_a) {
104
+ if (requestOptions || this.context.isAuthenticated) {
105
+ return [2 /*return*/, destroySite(id, requestOptions || this.context.hubRequestOptions)];
106
+ }
107
+ else {
108
+ throw new HubError("Destroy Site", "Destroying Hub Sites requires authentication.");
109
+ }
110
+ return [2 /*return*/];
111
+ });
112
+ });
113
+ };
114
+ /**
115
+ * Fetch a Site via Id, slug or domain
116
+ *
117
+ * This function does not require a user to be
118
+ * authenticated, but it does require an `IRequestOptions`
119
+ * which contains the portal instance to communicate with
120
+ * @param identifier
121
+ * @param requestOptions
122
+ * @returns
123
+ */
124
+ HubSiteManager.prototype.fetch = function (identifier, requestOptions) {
125
+ return __awaiter(this, void 0, void 0, function () {
126
+ return __generator(this, function (_a) {
127
+ try {
128
+ if (requestOptions || this.context.hubRequestOptions) {
129
+ return [2 /*return*/, _fetchSite(identifier, requestOptions || this.context.hubRequestOptions)];
130
+ }
131
+ else {
132
+ throw new HubError("Fetch Site", "Can not retrieve context.hubRequestOptions from Context Manager. HubSiteManager is configured incorrectly.");
133
+ }
134
+ }
135
+ catch (ex) {
136
+ throw new HubError("Fetch Site", "Can not retrieve context.hubRequestOptions from Context Manager. HubSiteManager is configured incorrectly.", ex);
137
+ }
138
+ return [2 /*return*/];
139
+ });
140
+ });
141
+ };
142
+ /**
143
+ * Search for Sites
144
+ *
145
+ * @param filter
146
+ * @param opts
147
+ */
148
+ HubSiteManager.prototype.search = function (filter, options) {
149
+ return __awaiter(this, void 0, void 0, function () {
150
+ return __generator(this, function (_a) {
151
+ // if we were not passed auth, and we have a session, use it
152
+ if (!options.authentication && this.context.session) {
153
+ options.authentication = this.context.session;
154
+ }
155
+ return [2 /*return*/, searchSites(filter, options)];
156
+ });
157
+ });
158
+ };
159
+ /**
160
+ * Set the thumbnail for the Site
161
+ * @param id
162
+ * @param file
163
+ * @param filename
164
+ * @param requestOptions
165
+ * @returns
166
+ */
167
+ HubSiteManager.prototype.updateThumbnail = function (site, file, filename, requestOptions) {
168
+ return __awaiter(this, void 0, void 0, function () {
169
+ var ro;
170
+ return __generator(this, function (_a) {
171
+ switch (_a.label) {
172
+ case 0:
173
+ ro = requestOptions || this.context.userRequestOptions;
174
+ return [4 /*yield*/, updateItemThumbnail(site.id, file, filename, ro)];
175
+ case 1:
176
+ _a.sent();
177
+ // get the item so we have updated props and timestamps
178
+ return [2 /*return*/, this.fetch(site.id, requestOptions)];
179
+ }
180
+ });
181
+ });
182
+ };
183
+ /**
184
+ * Convert a Hub Project Item to a IHubProject
185
+ * @param item
186
+ * @param requestOptions
187
+ * @returns
188
+ */
189
+ HubSiteManager.prototype.fromItem = function (item, requestOptions) {
190
+ return __awaiter(this, void 0, void 0, function () {
191
+ var ro;
192
+ return __generator(this, function (_a) {
193
+ ro = requestOptions || this.context.userRequestOptions;
194
+ return [2 /*return*/, convertItemToSite(item, ro)];
195
+ });
196
+ });
197
+ };
198
+ return HubSiteManager;
199
+ }());
200
+ export { HubSiteManager };
201
+ //# sourceMappingURL=HubSiteManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HubSiteManager.js","sourceRoot":"","sources":["../../../src/sites/HubSiteManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,448 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { removeItem } from "@esri/arcgis-rest-portal";
3
+ import { addSiteDomains, cloneObject, constructSlug, createModel, ensureUniqueDomainName, fetchModelFromItem, fetchSiteModel, getHubApiUrl, getItemThumbnailUrl, getModel, getOrgDefaultTheme, getProp, mergeContentFilter, registerSiteAsApplication, removeDomainsBySiteId, setProp, setSlugKeyword, slugify, stripProtocol, updateModel, } from "..";
4
+ import { PropertyMapper } from "../core/_internal/PropertyMapper";
5
+ import { handleDomainChanges } from "./_internal";
6
+ import { searchContentEntities } from "../search/_internal/searchContentEntities";
7
+ export var HUB_SITE_ITEM_TYPE = "Hub Site Application";
8
+ export var ENTERPRISE_SITE_ITEM_TYPE = "Site Application";
9
+ /**
10
+ * Default values of a IHubSite
11
+ */
12
+ var DEFAULT_SITE = {
13
+ name: "No title provided",
14
+ tags: [],
15
+ typeKeywords: ["Hub Site", "hubSite", "DELETEMESITE"],
16
+ capabilities: [
17
+ "api_explorer",
18
+ "pages",
19
+ "my_data",
20
+ "social_logins",
21
+ "json_chart_card",
22
+ "document_iframes",
23
+ "items_view",
24
+ "app_page",
25
+ "underlinedLinks",
26
+ "globalNav",
27
+ "socialSharing",
28
+ ],
29
+ catalog: {
30
+ groups: [],
31
+ },
32
+ subdomain: "",
33
+ defaultHostname: "",
34
+ customHostname: "",
35
+ clientId: "",
36
+ map: null,
37
+ feeds: {},
38
+ pages: [],
39
+ theme: null,
40
+ contentViews: {
41
+ sidePanelOpen: {
42
+ app: true,
43
+ map: true,
44
+ dataset: true,
45
+ document: true,
46
+ feedback: true,
47
+ },
48
+ },
49
+ };
50
+ /**
51
+ * Default values for a new HubSite Model
52
+ */
53
+ var DEFAULT_SITE_MODEL = {
54
+ item: {
55
+ // type: intentionally left out as we need to
56
+ // set that based on portal/enterprise
57
+ title: "No Title Provided",
58
+ description: "No Description Provided",
59
+ snippet: "",
60
+ tags: [],
61
+ typeKeywords: ["Hub Site", "hubSite", "DELETEMESITE"],
62
+ properties: {
63
+ slug: "",
64
+ orgUrlKey: "",
65
+ defaultHostname: "",
66
+ customHostname: "",
67
+ clientId: "",
68
+ subdomain: "",
69
+ schemaVersion: 1.5,
70
+ },
71
+ url: "",
72
+ },
73
+ data: {
74
+ catalog: {
75
+ groups: [],
76
+ },
77
+ feeds: {},
78
+ values: {
79
+ title: "",
80
+ defaultHostname: "",
81
+ customHostname: "",
82
+ subdomain: "",
83
+ faviconUrl: "",
84
+ uiVersion: "2.4",
85
+ clientId: "",
86
+ map: {
87
+ basemaps: {},
88
+ },
89
+ defaultExtent: {},
90
+ pages: [],
91
+ theme: {},
92
+ layout: {
93
+ sections: [],
94
+ header: {
95
+ component: {
96
+ name: "site-header",
97
+ settings: {
98
+ fullWidth: false,
99
+ iframeHeight: "150px",
100
+ iframeUrl: "",
101
+ links: [],
102
+ logoUrl: "",
103
+ title: "default site",
104
+ markdown: "",
105
+ headerType: "default",
106
+ schemaVersion: 3,
107
+ showLogo: true,
108
+ showTitle: true,
109
+ logo: {
110
+ display: {},
111
+ state: "valid",
112
+ },
113
+ shortTitle: "",
114
+ menuLinks: [],
115
+ socialLinks: {
116
+ facebook: {},
117
+ twitter: {},
118
+ instagram: {},
119
+ youtube: {},
120
+ },
121
+ },
122
+ },
123
+ showEditor: false,
124
+ },
125
+ footer: {
126
+ component: {
127
+ name: "site-footer",
128
+ settings: {
129
+ footerType: "none",
130
+ markdown: "",
131
+ schemaVersion: 2.1,
132
+ },
133
+ },
134
+ showEditor: false,
135
+ },
136
+ },
137
+ contentViews: {
138
+ sidePanelOpen: {
139
+ app: true,
140
+ map: true,
141
+ dataset: true,
142
+ document: true,
143
+ feedback: true,
144
+ },
145
+ },
146
+ },
147
+ },
148
+ };
149
+ /**
150
+ * Returns an Array of IPropertyMap objects
151
+ * We could define these directly, but since the
152
+ * properties of IHubSite map directly to properties
153
+ * on item or data, it's slightly less verbose to
154
+ * generate the structure.
155
+ * @returns
156
+ */
157
+ function getSitePropertyMap() {
158
+ var itemProps = [
159
+ "created",
160
+ "culture",
161
+ "description",
162
+ "extent",
163
+ "id",
164
+ "modified",
165
+ "owner",
166
+ "snippet",
167
+ "tags",
168
+ "typeKeywords",
169
+ "url",
170
+ "type",
171
+ ];
172
+ var map = [];
173
+ itemProps.forEach(function (entry) {
174
+ map.push({ objectKey: entry, modelKey: "item." + entry });
175
+ });
176
+ var dataProps = ["catalog", "feeds"];
177
+ dataProps.forEach(function (entry) {
178
+ map.push({ objectKey: entry, modelKey: "data." + entry });
179
+ });
180
+ var valueProps = [
181
+ "pages",
182
+ "theme",
183
+ "capabilities",
184
+ "subdomain",
185
+ "defaultHostname",
186
+ "customHostname",
187
+ "clientId",
188
+ "defaultExtent",
189
+ "map",
190
+ "telemetry",
191
+ "headerSass",
192
+ ];
193
+ valueProps.forEach(function (entry) {
194
+ map.push({ objectKey: entry, modelKey: "data.values." + entry });
195
+ });
196
+ // Deeper/Indirect mappings
197
+ map.push({
198
+ objectKey: "slug",
199
+ modelKey: "item.properties.slug",
200
+ });
201
+ map.push({
202
+ objectKey: "orgUrlKey",
203
+ modelKey: "item.properties.orgUrlKey",
204
+ });
205
+ map.push({
206
+ objectKey: "name",
207
+ modelKey: "item.title",
208
+ });
209
+ return map;
210
+ }
211
+ // TODO: Add OperationStack & Error Handling
212
+ /**
213
+ * Create a new Hub Site
214
+ *
215
+ * Minimum properties are `name` and `org`
216
+ * @param partialSite
217
+ * @param requestOptions
218
+ */
219
+ export function createSite(partialSite, requestOptions) {
220
+ return __awaiter(this, void 0, void 0, function () {
221
+ var site, portal, _a, mapper, model, registration, updatedModel;
222
+ return __generator(this, function (_b) {
223
+ switch (_b.label) {
224
+ case 0:
225
+ site = __assign(__assign({}, DEFAULT_SITE), partialSite);
226
+ portal = requestOptions.portalSelf;
227
+ // Set the type based on the environment we are working in
228
+ site.type = requestOptions.isPortal
229
+ ? ENTERPRISE_SITE_ITEM_TYPE
230
+ : HUB_SITE_ITEM_TYPE;
231
+ // Create a slug from the title if one is not passed in
232
+ if (!site.slug) {
233
+ site.slug = constructSlug(site.name, site.orgUrlKey);
234
+ }
235
+ // Ensure slug is unique
236
+ // site.slug = await getUniqueSlug({ slug: site.slug }, requestOptions);
237
+ // add slug to keywords
238
+ site.typeKeywords = setSlugKeyword(site.typeKeywords, site.slug);
239
+ if (!site.subdomain) {
240
+ site.subdomain = slugify(site.name);
241
+ }
242
+ _a = site;
243
+ return [4 /*yield*/, ensureUniqueDomainName(site.subdomain, requestOptions)];
244
+ case 1:
245
+ _a.subdomain = _b.sent();
246
+ // Domains
247
+ if (!requestOptions.isPortal) {
248
+ // now that we know the subdomain is available, set the defaultHostname
249
+ site.defaultHostname = site.subdomain + "-" + portal.urlKey + "." + stripProtocol(getHubApiUrl(requestOptions));
250
+ // set the url
251
+ site.url = "https://" + (site.customHostname ? site.customHostname : site.defaultHostname);
252
+ }
253
+ else {
254
+ // Portal Sites use subdomain in hash based router
255
+ site.typeKeywords.push(("hubsubdomain|" + site.subdomain).toLowerCase());
256
+ site.url = requestOptions.authentication.portal.replace("/sharing/rest", "/apps/sites") + "/#/" + site.subdomain;
257
+ }
258
+ // Note: We used to use adlib for this, but it's much harder to
259
+ // use templates with typescript. i.e. you can't assign a string template
260
+ // to a property defined as `IExtent` without using `as unknown as ...`
261
+ // which basically removes typechecking
262
+ site.orgUrlKey = portal.urlKey;
263
+ // override only if not set...
264
+ if (!site.theme) {
265
+ site.theme = getOrgDefaultTheme(portal);
266
+ }
267
+ if (!site.defaultExtent) {
268
+ site.defaultExtent = portal.defaultExtent;
269
+ }
270
+ if (!site.culture) {
271
+ site.culture = portal.culture;
272
+ }
273
+ // pull the basemap from portalSelf
274
+ if (!getProp(site, "map.basemaps.primary")) {
275
+ setProp("map.basemaps.primary", portal.defaultBasemap, site);
276
+ }
277
+ // Put the title into the header
278
+ if (!getProp(site, "layout.header.component.settings.title")) {
279
+ setProp("layout.header.component.settings.title", site.name, site);
280
+ }
281
+ mapper = new PropertyMapper(getSitePropertyMap());
282
+ model = mapper.objectToModel(site, cloneObject(DEFAULT_SITE_MODEL));
283
+ return [4 /*yield*/, createModel(model, requestOptions)];
284
+ case 2:
285
+ // create the backing item
286
+ model = _b.sent();
287
+ return [4 /*yield*/, registerSiteAsApplication(model, requestOptions)];
288
+ case 3:
289
+ registration = _b.sent();
290
+ model.data.values.clientId = registration.client_id;
291
+ // Register domains
292
+ return [4 /*yield*/, addSiteDomains(model, requestOptions)];
293
+ case 4:
294
+ // Register domains
295
+ _b.sent();
296
+ return [4 /*yield*/, updateModel(model, requestOptions)];
297
+ case 5:
298
+ updatedModel = _b.sent();
299
+ // convert the model into a IHubSite and return
300
+ return [2 /*return*/, mapper.modelToObject(updatedModel, {})];
301
+ }
302
+ });
303
+ });
304
+ }
305
+ /**
306
+ * Update a Hub Site
307
+ *
308
+ * This checks for and applies domain changes
309
+ * @param site
310
+ * @param requestOptions
311
+ * @returns
312
+ */
313
+ export function updateSite(site, requestOptions) {
314
+ return __awaiter(this, void 0, void 0, function () {
315
+ var mapper, updatedModel, currentModel, modelToStore, updatedSiteModel, updatedSite;
316
+ return __generator(this, function (_a) {
317
+ switch (_a.label) {
318
+ case 0:
319
+ mapper = new PropertyMapper(getSitePropertyMap());
320
+ updatedModel = mapper.objectToModel(site, cloneObject(DEFAULT_SITE_MODEL));
321
+ return [4 /*yield*/, getModel(site.id, requestOptions)];
322
+ case 1:
323
+ currentModel = _a.sent();
324
+ // handle any domain changes
325
+ return [4 /*yield*/, handleDomainChanges(updatedModel, currentModel, requestOptions)];
326
+ case 2:
327
+ // handle any domain changes
328
+ _a.sent();
329
+ if (updatedModel.item.properties.slug !== currentModel.item.properties.slug) {
330
+ // ensure slug to keywords
331
+ updatedModel.item.typeKeywords = setSlugKeyword(updatedModel.item.typeKeywords, updatedModel.item.properties.slug);
332
+ }
333
+ modelToStore = mapper.objectToModel(site, currentModel);
334
+ return [4 /*yield*/, updateModel(modelToStore, requestOptions)];
335
+ case 3:
336
+ updatedSiteModel = _a.sent();
337
+ updatedSite = mapper.modelToObject(updatedSiteModel, site);
338
+ return [2 /*return*/, updatedSite];
339
+ }
340
+ });
341
+ });
342
+ }
343
+ /**
344
+ * Remove a Hub Site
345
+ *
346
+ * This simply removes the Site item, and it's associated domain records.
347
+ * This does not remove any Teams/Groups or content associated with the
348
+ * Site
349
+ * @param id
350
+ * @param requestOptions
351
+ * @returns
352
+ */
353
+ export function destroySite(id, requestOptions) {
354
+ return __awaiter(this, void 0, void 0, function () {
355
+ var ro;
356
+ return __generator(this, function (_a) {
357
+ switch (_a.label) {
358
+ case 0:
359
+ if (!!requestOptions.isPortal) return [3 /*break*/, 2];
360
+ return [4 /*yield*/, removeDomainsBySiteId(id, requestOptions)];
361
+ case 1:
362
+ _a.sent();
363
+ _a.label = 2;
364
+ case 2:
365
+ ro = __assign(__assign({}, requestOptions), { id: id });
366
+ return [4 /*yield*/, removeItem(ro)];
367
+ case 3:
368
+ _a.sent();
369
+ return [2 /*return*/];
370
+ }
371
+ });
372
+ });
373
+ }
374
+ /**
375
+ * Returns site model given various kinds of identifier
376
+ *
377
+ * @param identifier - a site item ID, site hostname, enterprise site slug, or full site URL
378
+ * @param requestOptions
379
+ * @private // remove when we remove existing fetchSite function
380
+ */
381
+ export function _fetchSite(identifier, requestOptions) {
382
+ return __awaiter(this, void 0, void 0, function () {
383
+ var model, mapper, site, token, us;
384
+ return __generator(this, function (_a) {
385
+ switch (_a.label) {
386
+ case 0: return [4 /*yield*/, fetchSiteModel(identifier, requestOptions)];
387
+ case 1:
388
+ model = _a.sent();
389
+ mapper = new PropertyMapper(getSitePropertyMap());
390
+ site = mapper.modelToObject(model, {});
391
+ if (requestOptions.authentication) {
392
+ us = requestOptions.authentication;
393
+ token = us.token;
394
+ }
395
+ site.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
396
+ return [2 /*return*/, site];
397
+ }
398
+ });
399
+ });
400
+ }
401
+ /**
402
+ * Convert a Hub Site Application item into a Hub Site, fetching any
403
+ * additional information that may be required
404
+ * @param item
405
+ * @param auth
406
+ * @returns
407
+ */
408
+ export function convertItemToSite(item, requestOptions) {
409
+ return __awaiter(this, void 0, void 0, function () {
410
+ var model, mapper, token, session, prj;
411
+ return __generator(this, function (_a) {
412
+ switch (_a.label) {
413
+ case 0: return [4 /*yield*/, fetchModelFromItem(item, requestOptions)];
414
+ case 1:
415
+ model = _a.sent();
416
+ mapper = new PropertyMapper(getSitePropertyMap());
417
+ if (requestOptions.authentication) {
418
+ session = requestOptions.authentication;
419
+ token = session.token;
420
+ }
421
+ prj = mapper.modelToObject(model, {});
422
+ prj.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
423
+ return [2 /*return*/, prj];
424
+ }
425
+ });
426
+ });
427
+ }
428
+ /**
429
+ * Search for Sites and get IHubSite results
430
+ * @param filter
431
+ * @param options
432
+ * @returns
433
+ */
434
+ export function searchSites(filter, options) {
435
+ return __awaiter(this, void 0, void 0, function () {
436
+ var scopingFilter, sitesFilter;
437
+ return __generator(this, function (_a) {
438
+ scopingFilter = {
439
+ filterType: "content",
440
+ type: "$site",
441
+ };
442
+ sitesFilter = mergeContentFilter([scopingFilter, filter]);
443
+ // delegate
444
+ return [2 /*return*/, searchContentEntities(sitesFilter, convertItemToSite, options)];
445
+ });
446
+ });
447
+ }
448
+ //# sourceMappingURL=HubSites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HubSites.js","sourceRoot":"","sources":["../../../src/sites/HubSites.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { getProp } from "../objects";
2
- import { cloneObject } from "../util";
1
+ import { getProp } from "../../objects";
2
+ import { cloneObject } from "../../util";
3
3
  /**
4
4
  * Apply the first schema version to the item
5
5
  * @param {Object} model Site Model