@esri/hub-common 9.24.2 → 9.25.2

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 (277) 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/_internal.js +7 -17
  9. package/dist/es2017/content/_internal.js.map +1 -1
  10. package/dist/es2017/content/compose.js +5 -8
  11. package/dist/es2017/content/compose.js.map +1 -1
  12. package/dist/es2017/content/fetch.js +27 -23
  13. package/dist/es2017/content/fetch.js.map +1 -1
  14. package/dist/es2017/core/{helpers → _internal}/PropertyMapper.js +0 -0
  15. package/dist/es2017/core/_internal/PropertyMapper.js.map +1 -0
  16. package/dist/es2017/core/types/IHubSiteTheme.js +1 -0
  17. package/dist/es2017/core/types/IHubSiteTheme.js.map +1 -0
  18. package/dist/es2017/core/types/index.js +5 -3
  19. package/dist/es2017/core/types/index.js.map +1 -1
  20. package/dist/es2017/items/_enrichments.js +29 -14
  21. package/dist/es2017/items/_enrichments.js.map +1 -1
  22. package/dist/es2017/items/index.js +1 -0
  23. package/dist/es2017/items/index.js.map +1 -1
  24. package/dist/es2017/items/registerBrowserApp.js +25 -0
  25. package/dist/es2017/items/registerBrowserApp.js.map +1 -0
  26. package/dist/es2017/projects/HubProjectManager.js +11 -1
  27. package/dist/es2017/projects/HubProjectManager.js.map +1 -1
  28. package/dist/es2017/projects/HubProjects.js +34 -82
  29. package/dist/es2017/projects/HubProjects.js.map +1 -1
  30. package/dist/es2017/search/_internal/searchContentEntities.js +77 -0
  31. package/dist/es2017/search/_internal/searchContentEntities.js.map +1 -0
  32. package/dist/es2017/search/_searchContent.js +1 -0
  33. package/dist/es2017/search/_searchContent.js.map +1 -1
  34. package/dist/es2017/search/group-utils.js.map +1 -1
  35. package/dist/es2017/search/utils.js.map +1 -1
  36. package/dist/es2017/sites/HubSiteManager.js +155 -0
  37. package/dist/es2017/sites/HubSiteManager.js.map +1 -0
  38. package/dist/es2017/sites/HubSites.js +396 -0
  39. package/dist/es2017/sites/HubSites.js.map +1 -0
  40. package/dist/es2017/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  41. package/dist/es2017/sites/_internal/_apply-site-schema.js.map +1 -0
  42. package/dist/es2017/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  43. package/dist/es2017/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  44. package/dist/es2017/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  45. package/dist/es2017/sites/_internal/_ensure-catalog.js.map +1 -0
  46. package/dist/es2017/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  47. package/dist/es2017/sites/_internal/_ensure-telemetry.js.map +1 -0
  48. package/dist/es2017/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  49. package/dist/es2017/sites/_internal/_migrate-feed-config.js.map +1 -0
  50. package/dist/es2017/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  51. package/dist/es2017/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  52. package/dist/es2017/sites/_internal/handleDomainChanges.js +44 -0
  53. package/dist/es2017/sites/_internal/handleDomainChanges.js.map +1 -0
  54. package/dist/es2017/sites/_internal/index.js +2 -0
  55. package/dist/es2017/sites/_internal/index.js.map +1 -0
  56. package/dist/es2017/sites/domains/addSiteDomains.js +36 -0
  57. package/dist/es2017/sites/domains/addSiteDomains.js.map +1 -0
  58. package/dist/es2017/sites/domains/index.js +2 -0
  59. package/dist/es2017/sites/domains/index.js.map +1 -1
  60. package/dist/es2017/sites/domains/removeDomainByHostname.js +29 -0
  61. package/dist/es2017/sites/domains/removeDomainByHostname.js.map +1 -0
  62. package/dist/es2017/sites/fetchSiteModel.js +31 -0
  63. package/dist/es2017/sites/fetchSiteModel.js.map +1 -0
  64. package/dist/es2017/sites/index.js +6 -25
  65. package/dist/es2017/sites/index.js.map +1 -1
  66. package/dist/es2017/sites/registerSiteAsApplication.js +23 -0
  67. package/dist/es2017/sites/registerSiteAsApplication.js.map +1 -0
  68. package/dist/es2017/sites/themes.js +46 -0
  69. package/dist/es2017/sites/themes.js.map +1 -0
  70. package/dist/es2017/sites/upgrade-site-schema.js +6 -6
  71. package/dist/es2017/sites/upgrade-site-schema.js.map +1 -1
  72. package/dist/es2017/utils/_array.js +13 -0
  73. package/dist/es2017/utils/_array.js.map +1 -0
  74. package/dist/esm/ArcGISContext.js +7 -8
  75. package/dist/esm/ArcGISContext.js.map +1 -1
  76. package/dist/esm/Hub.js +23 -2
  77. package/dist/esm/Hub.js.map +1 -1
  78. package/dist/esm/content/_fetch.js +14 -3
  79. package/dist/esm/content/_fetch.js.map +1 -1
  80. package/dist/esm/content/_internal.js +7 -17
  81. package/dist/esm/content/_internal.js.map +1 -1
  82. package/dist/esm/content/compose.js +6 -7
  83. package/dist/esm/content/compose.js.map +1 -1
  84. package/dist/esm/content/fetch.js +40 -31
  85. package/dist/esm/content/fetch.js.map +1 -1
  86. package/dist/esm/core/{helpers → _internal}/PropertyMapper.js +0 -0
  87. package/dist/esm/core/_internal/PropertyMapper.js.map +1 -0
  88. package/dist/esm/core/types/IHubSiteTheme.js +1 -0
  89. package/dist/esm/core/types/IHubSiteTheme.js.map +1 -0
  90. package/dist/esm/core/types/index.js +5 -3
  91. package/dist/esm/core/types/index.js.map +1 -1
  92. package/dist/esm/items/_enrichments.js +29 -14
  93. package/dist/esm/items/_enrichments.js.map +1 -1
  94. package/dist/esm/items/index.js +1 -0
  95. package/dist/esm/items/index.js.map +1 -1
  96. package/dist/esm/items/registerBrowserApp.js +25 -0
  97. package/dist/esm/items/registerBrowserApp.js.map +1 -0
  98. package/dist/esm/projects/HubProjectManager.js +16 -1
  99. package/dist/esm/projects/HubProjectManager.js.map +1 -1
  100. package/dist/esm/projects/HubProjects.js +38 -81
  101. package/dist/esm/projects/HubProjects.js.map +1 -1
  102. package/dist/esm/search/_internal/searchContentEntities.js +89 -0
  103. package/dist/esm/search/_internal/searchContentEntities.js.map +1 -0
  104. package/dist/esm/search/_searchContent.js +1 -0
  105. package/dist/esm/search/_searchContent.js.map +1 -1
  106. package/dist/esm/search/group-utils.js.map +1 -1
  107. package/dist/esm/search/utils.js.map +1 -1
  108. package/dist/esm/sites/HubSiteManager.js +201 -0
  109. package/dist/esm/sites/HubSiteManager.js.map +1 -0
  110. package/dist/esm/sites/HubSites.js +448 -0
  111. package/dist/esm/sites/HubSites.js.map +1 -0
  112. package/dist/esm/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  113. package/dist/esm/sites/_internal/_apply-site-schema.js.map +1 -0
  114. package/dist/esm/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  115. package/dist/esm/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  116. package/dist/esm/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  117. package/dist/esm/sites/_internal/_ensure-catalog.js.map +1 -0
  118. package/dist/esm/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  119. package/dist/esm/sites/_internal/_ensure-telemetry.js.map +1 -0
  120. package/dist/esm/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  121. package/dist/esm/sites/_internal/_migrate-feed-config.js.map +1 -0
  122. package/dist/esm/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  123. package/dist/esm/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  124. package/dist/esm/sites/_internal/handleDomainChanges.js +49 -0
  125. package/dist/esm/sites/_internal/handleDomainChanges.js.map +1 -0
  126. package/dist/esm/sites/_internal/index.js +2 -0
  127. package/dist/esm/sites/_internal/index.js.map +1 -0
  128. package/dist/esm/sites/domains/addSiteDomains.js +36 -0
  129. package/dist/esm/sites/domains/addSiteDomains.js.map +1 -0
  130. package/dist/esm/sites/domains/index.js +2 -0
  131. package/dist/esm/sites/domains/index.js.map +1 -1
  132. package/dist/esm/sites/domains/removeDomainByHostname.js +42 -0
  133. package/dist/esm/sites/domains/removeDomainByHostname.js.map +1 -0
  134. package/dist/esm/sites/fetchSiteModel.js +34 -0
  135. package/dist/esm/sites/fetchSiteModel.js.map +1 -0
  136. package/dist/esm/sites/index.js +6 -28
  137. package/dist/esm/sites/index.js.map +1 -1
  138. package/dist/esm/sites/registerSiteAsApplication.js +23 -0
  139. package/dist/esm/sites/registerSiteAsApplication.js.map +1 -0
  140. package/dist/esm/sites/themes.js +46 -0
  141. package/dist/esm/sites/themes.js.map +1 -0
  142. package/dist/esm/sites/upgrade-site-schema.js +6 -6
  143. package/dist/esm/sites/upgrade-site-schema.js.map +1 -1
  144. package/dist/esm/utils/_array.js +13 -0
  145. package/dist/esm/utils/_array.js.map +1 -0
  146. package/dist/node/ArcGISContext.js +7 -8
  147. package/dist/node/ArcGISContext.js.map +1 -1
  148. package/dist/node/Hub.js +19 -2
  149. package/dist/node/Hub.js.map +1 -1
  150. package/dist/node/content/_fetch.js +16 -3
  151. package/dist/node/content/_fetch.js.map +1 -1
  152. package/dist/node/content/_internal.js +8 -18
  153. package/dist/node/content/_internal.js.map +1 -1
  154. package/dist/node/content/compose.js +4 -7
  155. package/dist/node/content/compose.js.map +1 -1
  156. package/dist/node/content/fetch.js +27 -23
  157. package/dist/node/content/fetch.js.map +1 -1
  158. package/dist/node/core/{helpers → _internal}/PropertyMapper.js +0 -0
  159. package/dist/node/core/_internal/PropertyMapper.js.map +1 -0
  160. package/dist/node/core/types/IHubSiteTheme.js +3 -0
  161. package/dist/node/core/types/IHubSiteTheme.js.map +1 -0
  162. package/dist/node/core/types/index.js +5 -3
  163. package/dist/node/core/types/index.js.map +1 -1
  164. package/dist/node/items/_enrichments.js +30 -15
  165. package/dist/node/items/_enrichments.js.map +1 -1
  166. package/dist/node/items/index.js +1 -0
  167. package/dist/node/items/index.js.map +1 -1
  168. package/dist/node/items/registerBrowserApp.js +29 -0
  169. package/dist/node/items/registerBrowserApp.js.map +1 -0
  170. package/dist/node/projects/HubProjectManager.js +10 -0
  171. package/dist/node/projects/HubProjectManager.js.map +1 -1
  172. package/dist/node/projects/HubProjects.js +32 -79
  173. package/dist/node/projects/HubProjects.js.map +1 -1
  174. package/dist/node/search/_internal/searchContentEntities.js +82 -0
  175. package/dist/node/search/_internal/searchContentEntities.js.map +1 -0
  176. package/dist/node/search/_searchContent.js +1 -0
  177. package/dist/node/search/_searchContent.js.map +1 -1
  178. package/dist/node/search/group-utils.js.map +1 -1
  179. package/dist/node/search/utils.js.map +1 -1
  180. package/dist/node/sites/HubSiteManager.js +159 -0
  181. package/dist/node/sites/HubSiteManager.js.map +1 -0
  182. package/dist/node/sites/HubSites.js +405 -0
  183. package/dist/node/sites/HubSites.js.map +1 -0
  184. package/dist/node/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  185. package/dist/node/sites/_internal/_apply-site-schema.js.map +1 -0
  186. package/dist/node/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  187. package/dist/node/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  188. package/dist/node/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  189. package/dist/node/sites/_internal/_ensure-catalog.js.map +1 -0
  190. package/dist/node/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  191. package/dist/node/sites/_internal/_ensure-telemetry.js.map +1 -0
  192. package/dist/node/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  193. package/dist/node/sites/_internal/_migrate-feed-config.js.map +1 -0
  194. package/dist/node/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  195. package/dist/node/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  196. package/dist/node/sites/_internal/handleDomainChanges.js +48 -0
  197. package/dist/node/sites/_internal/handleDomainChanges.js.map +1 -0
  198. package/dist/node/sites/_internal/index.js +5 -0
  199. package/dist/node/sites/_internal/index.js.map +1 -0
  200. package/dist/node/sites/domains/addSiteDomains.js +40 -0
  201. package/dist/node/sites/domains/addSiteDomains.js.map +1 -0
  202. package/dist/node/sites/domains/index.js +2 -0
  203. package/dist/node/sites/domains/index.js.map +1 -1
  204. package/dist/node/sites/domains/removeDomainByHostname.js +33 -0
  205. package/dist/node/sites/domains/removeDomainByHostname.js.map +1 -0
  206. package/dist/node/sites/fetchSiteModel.js +36 -0
  207. package/dist/node/sites/fetchSiteModel.js.map +1 -0
  208. package/dist/node/sites/index.js +6 -27
  209. package/dist/node/sites/index.js.map +1 -1
  210. package/dist/node/sites/registerSiteAsApplication.js +27 -0
  211. package/dist/node/sites/registerSiteAsApplication.js.map +1 -0
  212. package/dist/node/sites/themes.js +50 -0
  213. package/dist/node/sites/themes.js.map +1 -0
  214. package/dist/node/sites/upgrade-site-schema.js +6 -6
  215. package/dist/node/sites/upgrade-site-schema.js.map +1 -1
  216. package/dist/node/utils/_array.js +16 -0
  217. package/dist/node/utils/_array.js.map +1 -0
  218. package/dist/types/Hub.d.ts +15 -2
  219. package/dist/types/content/_fetch.d.ts +9 -4
  220. package/dist/types/content/_internal.d.ts +0 -8
  221. package/dist/types/core/{helpers → _internal}/PropertyMapper.d.ts +0 -0
  222. package/dist/types/core/types/IHubEntityManager.d.ts +2 -5
  223. package/dist/types/core/types/IHubItemEntityManager.d.ts +10 -0
  224. package/dist/types/core/types/IHubSite.d.ts +68 -4
  225. package/dist/types/core/types/IHubSiteTheme.d.ts +28 -0
  226. package/dist/types/core/types/index.d.ts +5 -3
  227. package/dist/types/items/_enrichments.d.ts +10 -1
  228. package/dist/types/items/index.d.ts +1 -0
  229. package/dist/types/items/registerBrowserApp.d.ts +11 -0
  230. package/dist/types/projects/HubProjectManager.d.ts +8 -0
  231. package/dist/types/projects/HubProjects.d.ts +18 -0
  232. package/dist/types/search/_internal/searchContentEntities.d.ts +32 -0
  233. package/dist/types/search/utils.d.ts +1 -1
  234. package/dist/types/sites/HubSiteManager.d.ts +104 -0
  235. package/dist/types/sites/HubSites.d.ts +56 -0
  236. package/dist/types/sites/{_apply-site-schema.d.ts → _internal/_apply-site-schema.d.ts} +1 -1
  237. package/dist/types/sites/{_enforce-lowercase-domains.d.ts → _internal/_enforce-lowercase-domains.d.ts} +1 -1
  238. package/dist/types/sites/{_ensure-catalog.d.ts → _internal/_ensure-catalog.d.ts} +1 -1
  239. package/dist/types/sites/{_ensure-telemetry.d.ts → _internal/_ensure-telemetry.d.ts} +1 -1
  240. package/dist/types/sites/{_migrate-feed-config.d.ts → _internal/_migrate-feed-config.d.ts} +1 -1
  241. package/dist/types/sites/{_purge-non-guids-from-catalog.d.ts → _internal/_purge-non-guids-from-catalog.d.ts} +1 -1
  242. package/dist/types/sites/_internal/handleDomainChanges.d.ts +9 -0
  243. package/dist/types/sites/_internal/index.d.ts +1 -0
  244. package/dist/types/sites/domains/addSiteDomains.d.ts +11 -0
  245. package/dist/types/sites/domains/index.d.ts +2 -0
  246. package/dist/types/sites/domains/removeDomainByHostname.d.ts +10 -0
  247. package/dist/types/sites/fetchSiteModel.d.ts +12 -0
  248. package/dist/types/sites/index.d.ts +6 -9
  249. package/dist/types/sites/registerSiteAsApplication.d.ts +8 -0
  250. package/dist/types/sites/themes.d.ts +11 -0
  251. package/dist/types/utils/_array.d.ts +9 -0
  252. package/dist/umd/common.umd.js +3002 -2018
  253. package/dist/umd/common.umd.js.map +1 -1
  254. package/dist/umd/common.umd.min.js +1 -1
  255. package/dist/umd/common.umd.min.js.map +1 -1
  256. package/package.json +1 -1
  257. package/dist/es2017/core/helpers/PropertyMapper.js.map +0 -1
  258. package/dist/es2017/sites/_apply-site-schema.js.map +0 -1
  259. package/dist/es2017/sites/_enforce-lowercase-domains.js.map +0 -1
  260. package/dist/es2017/sites/_ensure-catalog.js.map +0 -1
  261. package/dist/es2017/sites/_ensure-telemetry.js.map +0 -1
  262. package/dist/es2017/sites/_migrate-feed-config.js.map +0 -1
  263. package/dist/es2017/sites/_purge-non-guids-from-catalog.js.map +0 -1
  264. package/dist/esm/core/helpers/PropertyMapper.js.map +0 -1
  265. package/dist/esm/sites/_apply-site-schema.js.map +0 -1
  266. package/dist/esm/sites/_enforce-lowercase-domains.js.map +0 -1
  267. package/dist/esm/sites/_ensure-catalog.js.map +0 -1
  268. package/dist/esm/sites/_ensure-telemetry.js.map +0 -1
  269. package/dist/esm/sites/_migrate-feed-config.js.map +0 -1
  270. package/dist/esm/sites/_purge-non-guids-from-catalog.js.map +0 -1
  271. package/dist/node/core/helpers/PropertyMapper.js.map +0 -1
  272. package/dist/node/sites/_apply-site-schema.js.map +0 -1
  273. package/dist/node/sites/_enforce-lowercase-domains.js.map +0 -1
  274. package/dist/node/sites/_ensure-catalog.js.map +0 -1
  275. package/dist/node/sites/_ensure-telemetry.js.map +0 -1
  276. package/dist/node/sites/_migrate-feed-config.js.map +0 -1
  277. package/dist/node/sites/_purge-non-guids-from-catalog.js.map +0 -1
@@ -0,0 +1,396 @@
1
+ import { removeItem } from "@esri/arcgis-rest-portal";
2
+ import { addSiteDomains, cloneObject, constructSlug, createModel, ensureUniqueDomainName, fetchModelFromItem, fetchSiteModel, getHubApiUrl, getItemThumbnailUrl, getModel, getOrgDefaultTheme, getProp, mergeContentFilter, registerSiteAsApplication, removeDomainsBySiteId, setProp, setSlugKeyword, slugify, stripProtocol, updateModel, } from "..";
3
+ import { PropertyMapper } from "../core/_internal/PropertyMapper";
4
+ import { handleDomainChanges } from "./_internal";
5
+ import { searchContentEntities } from "../search/_internal/searchContentEntities";
6
+ export const HUB_SITE_ITEM_TYPE = "Hub Site Application";
7
+ export const ENTERPRISE_SITE_ITEM_TYPE = "Site Application";
8
+ /**
9
+ * Default values of a IHubSite
10
+ */
11
+ const DEFAULT_SITE = {
12
+ name: "No title provided",
13
+ tags: [],
14
+ typeKeywords: ["Hub Site", "hubSite", "DELETEMESITE"],
15
+ capabilities: [
16
+ "api_explorer",
17
+ "pages",
18
+ "my_data",
19
+ "social_logins",
20
+ "json_chart_card",
21
+ "document_iframes",
22
+ "items_view",
23
+ "app_page",
24
+ "underlinedLinks",
25
+ "globalNav",
26
+ "socialSharing",
27
+ ],
28
+ catalog: {
29
+ groups: [],
30
+ },
31
+ subdomain: "",
32
+ defaultHostname: "",
33
+ customHostname: "",
34
+ clientId: "",
35
+ map: null,
36
+ feeds: {},
37
+ pages: [],
38
+ theme: null,
39
+ contentViews: {
40
+ sidePanelOpen: {
41
+ app: true,
42
+ map: true,
43
+ dataset: true,
44
+ document: true,
45
+ feedback: true,
46
+ },
47
+ },
48
+ };
49
+ /**
50
+ * Default values for a new HubSite Model
51
+ */
52
+ const DEFAULT_SITE_MODEL = {
53
+ item: {
54
+ // type: intentionally left out as we need to
55
+ // set that based on portal/enterprise
56
+ title: "No Title Provided",
57
+ description: "No Description Provided",
58
+ snippet: "",
59
+ tags: [],
60
+ typeKeywords: ["Hub Site", "hubSite", "DELETEMESITE"],
61
+ properties: {
62
+ slug: "",
63
+ orgUrlKey: "",
64
+ defaultHostname: "",
65
+ customHostname: "",
66
+ clientId: "",
67
+ subdomain: "",
68
+ schemaVersion: 1.5,
69
+ },
70
+ url: "",
71
+ },
72
+ data: {
73
+ catalog: {
74
+ groups: [],
75
+ },
76
+ feeds: {},
77
+ values: {
78
+ title: "",
79
+ defaultHostname: "",
80
+ customHostname: "",
81
+ subdomain: "",
82
+ faviconUrl: "",
83
+ uiVersion: "2.4",
84
+ clientId: "",
85
+ map: {
86
+ basemaps: {},
87
+ },
88
+ defaultExtent: {},
89
+ pages: [],
90
+ theme: {},
91
+ layout: {
92
+ sections: [],
93
+ header: {
94
+ component: {
95
+ name: "site-header",
96
+ settings: {
97
+ fullWidth: false,
98
+ iframeHeight: "150px",
99
+ iframeUrl: "",
100
+ links: [],
101
+ logoUrl: "",
102
+ title: "default site",
103
+ markdown: "",
104
+ headerType: "default",
105
+ schemaVersion: 3,
106
+ showLogo: true,
107
+ showTitle: true,
108
+ logo: {
109
+ display: {},
110
+ state: "valid",
111
+ },
112
+ shortTitle: "",
113
+ menuLinks: [],
114
+ socialLinks: {
115
+ facebook: {},
116
+ twitter: {},
117
+ instagram: {},
118
+ youtube: {},
119
+ },
120
+ },
121
+ },
122
+ showEditor: false,
123
+ },
124
+ footer: {
125
+ component: {
126
+ name: "site-footer",
127
+ settings: {
128
+ footerType: "none",
129
+ markdown: "",
130
+ schemaVersion: 2.1,
131
+ },
132
+ },
133
+ showEditor: false,
134
+ },
135
+ },
136
+ contentViews: {
137
+ sidePanelOpen: {
138
+ app: true,
139
+ map: true,
140
+ dataset: true,
141
+ document: true,
142
+ feedback: true,
143
+ },
144
+ },
145
+ },
146
+ },
147
+ };
148
+ /**
149
+ * Returns an Array of IPropertyMap objects
150
+ * We could define these directly, but since the
151
+ * properties of IHubSite map directly to properties
152
+ * on item or data, it's slightly less verbose to
153
+ * generate the structure.
154
+ * @returns
155
+ */
156
+ function getSitePropertyMap() {
157
+ const itemProps = [
158
+ "created",
159
+ "culture",
160
+ "description",
161
+ "extent",
162
+ "id",
163
+ "modified",
164
+ "owner",
165
+ "snippet",
166
+ "tags",
167
+ "typeKeywords",
168
+ "url",
169
+ "type",
170
+ ];
171
+ const map = [];
172
+ itemProps.forEach((entry) => {
173
+ map.push({ objectKey: entry, modelKey: `item.${entry}` });
174
+ });
175
+ const dataProps = ["catalog", "feeds"];
176
+ dataProps.forEach((entry) => {
177
+ map.push({ objectKey: entry, modelKey: `data.${entry}` });
178
+ });
179
+ const valueProps = [
180
+ "pages",
181
+ "theme",
182
+ "capabilities",
183
+ "subdomain",
184
+ "defaultHostname",
185
+ "customHostname",
186
+ "clientId",
187
+ "defaultExtent",
188
+ "map",
189
+ "telemetry",
190
+ "headerSass",
191
+ ];
192
+ valueProps.forEach((entry) => {
193
+ map.push({ objectKey: entry, modelKey: `data.values.${entry}` });
194
+ });
195
+ // Deeper/Indirect mappings
196
+ map.push({
197
+ objectKey: "slug",
198
+ modelKey: "item.properties.slug",
199
+ });
200
+ map.push({
201
+ objectKey: "orgUrlKey",
202
+ modelKey: "item.properties.orgUrlKey",
203
+ });
204
+ map.push({
205
+ objectKey: "name",
206
+ modelKey: "item.title",
207
+ });
208
+ return map;
209
+ }
210
+ // TODO: Add OperationStack & Error Handling
211
+ /**
212
+ * Create a new Hub Site
213
+ *
214
+ * Minimum properties are `name` and `org`
215
+ * @param partialSite
216
+ * @param requestOptions
217
+ */
218
+ export async function createSite(partialSite, requestOptions) {
219
+ const site = Object.assign(Object.assign({}, DEFAULT_SITE), partialSite);
220
+ const portal = requestOptions.portalSelf;
221
+ // Set the type based on the environment we are working in
222
+ site.type = requestOptions.isPortal
223
+ ? ENTERPRISE_SITE_ITEM_TYPE
224
+ : HUB_SITE_ITEM_TYPE;
225
+ // Create a slug from the title if one is not passed in
226
+ if (!site.slug) {
227
+ site.slug = constructSlug(site.name, site.orgUrlKey);
228
+ }
229
+ // Ensure slug is unique
230
+ // site.slug = await getUniqueSlug({ slug: site.slug }, requestOptions);
231
+ // add slug to keywords
232
+ site.typeKeywords = setSlugKeyword(site.typeKeywords, site.slug);
233
+ if (!site.subdomain) {
234
+ site.subdomain = slugify(site.name);
235
+ }
236
+ site.subdomain = await ensureUniqueDomainName(site.subdomain, requestOptions);
237
+ // Domains
238
+ if (!requestOptions.isPortal) {
239
+ // now that we know the subdomain is available, set the defaultHostname
240
+ site.defaultHostname = `${site.subdomain}-${portal.urlKey}.${stripProtocol(getHubApiUrl(requestOptions))}`;
241
+ // set the url
242
+ site.url = `https://${site.customHostname ? site.customHostname : site.defaultHostname}`;
243
+ }
244
+ else {
245
+ // Portal Sites use subdomain in hash based router
246
+ site.typeKeywords.push(`hubsubdomain|${site.subdomain}`.toLowerCase());
247
+ site.url = `${requestOptions.authentication.portal.replace(`/sharing/rest`, `/apps/sites`)}/#/${site.subdomain}`;
248
+ }
249
+ // Note: We used to use adlib for this, but it's much harder to
250
+ // use templates with typescript. i.e. you can't assign a string template
251
+ // to a property defined as `IExtent` without using `as unknown as ...`
252
+ // which basically removes typechecking
253
+ site.orgUrlKey = portal.urlKey;
254
+ // override only if not set...
255
+ if (!site.theme) {
256
+ site.theme = getOrgDefaultTheme(portal);
257
+ }
258
+ if (!site.defaultExtent) {
259
+ site.defaultExtent = portal.defaultExtent;
260
+ }
261
+ if (!site.culture) {
262
+ site.culture = portal.culture;
263
+ }
264
+ // pull the basemap from portalSelf
265
+ if (!getProp(site, "map.basemaps.primary")) {
266
+ setProp("map.basemaps.primary", portal.defaultBasemap, site);
267
+ }
268
+ // Put the title into the header
269
+ if (!getProp(site, "layout.header.component.settings.title")) {
270
+ setProp("layout.header.component.settings.title", site.name, site);
271
+ }
272
+ // Now convert the IHubSite into an IModel
273
+ const mapper = new PropertyMapper(getSitePropertyMap());
274
+ let model = mapper.objectToModel(site, cloneObject(DEFAULT_SITE_MODEL));
275
+ // create the backing item
276
+ model = await createModel(model, requestOptions);
277
+ // Register as an app
278
+ const registration = await registerSiteAsApplication(model, requestOptions);
279
+ model.data.values.clientId = registration.client_id;
280
+ // Register domains
281
+ await addSiteDomains(model, requestOptions);
282
+ // update the model
283
+ const updatedModel = await updateModel(model, requestOptions);
284
+ // convert the model into a IHubSite and return
285
+ return mapper.modelToObject(updatedModel, {});
286
+ }
287
+ /**
288
+ * Update a Hub Site
289
+ *
290
+ * This checks for and applies domain changes
291
+ * @param site
292
+ * @param requestOptions
293
+ * @returns
294
+ */
295
+ export async function updateSite(site, requestOptions) {
296
+ // Most of this work is done with an IModel, so first thing it to
297
+ // convert IHubSite to model
298
+ const mapper = new PropertyMapper(getSitePropertyMap());
299
+ // applying the site onto the default model ensures that a minimum
300
+ // set of properties exist, regardless what may have been done to
301
+ // the site pojo
302
+ const updatedModel = mapper.objectToModel(site, cloneObject(DEFAULT_SITE_MODEL));
303
+ // Fetch backing model from the portal
304
+ const currentModel = await getModel(site.id, requestOptions);
305
+ // handle any domain changes
306
+ await handleDomainChanges(updatedModel, currentModel, requestOptions);
307
+ if (updatedModel.item.properties.slug !== currentModel.item.properties.slug) {
308
+ // ensure slug to keywords
309
+ updatedModel.item.typeKeywords = setSlugKeyword(updatedModel.item.typeKeywords, updatedModel.item.properties.slug);
310
+ }
311
+ // merge the updated site onto the current model
312
+ const modelToStore = mapper.objectToModel(site, currentModel);
313
+ // update the model
314
+ const updatedSiteModel = await updateModel(modelToStore, requestOptions);
315
+ // fetch updated model
316
+ const updatedSite = mapper.modelToObject(updatedSiteModel, site);
317
+ return updatedSite;
318
+ }
319
+ /**
320
+ * Remove a Hub Site
321
+ *
322
+ * This simply removes the Site item, and it's associated domain records.
323
+ * This does not remove any Teams/Groups or content associated with the
324
+ * Site
325
+ * @param id
326
+ * @param requestOptions
327
+ * @returns
328
+ */
329
+ export async function destroySite(id, requestOptions) {
330
+ // For AGO we need to remove the domain records for the site
331
+ if (!requestOptions.isPortal) {
332
+ await removeDomainsBySiteId(id, requestOptions);
333
+ }
334
+ // now we can remove the item
335
+ const ro = Object.assign(Object.assign({}, requestOptions), { id });
336
+ await removeItem(ro);
337
+ return;
338
+ }
339
+ /**
340
+ * Returns site model given various kinds of identifier
341
+ *
342
+ * @param identifier - a site item ID, site hostname, enterprise site slug, or full site URL
343
+ * @param requestOptions
344
+ * @private // remove when we remove existing fetchSite function
345
+ */
346
+ export async function _fetchSite(identifier, requestOptions) {
347
+ // get the model
348
+ const model = await fetchSiteModel(identifier, requestOptions);
349
+ // convert to site
350
+ const mapper = new PropertyMapper(getSitePropertyMap());
351
+ const site = mapper.modelToObject(model, {});
352
+ let token;
353
+ if (requestOptions.authentication) {
354
+ const us = requestOptions.authentication;
355
+ token = us.token;
356
+ }
357
+ site.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
358
+ return site;
359
+ }
360
+ /**
361
+ * Convert a Hub Site Application item into a Hub Site, fetching any
362
+ * additional information that may be required
363
+ * @param item
364
+ * @param auth
365
+ * @returns
366
+ */
367
+ export async function convertItemToSite(item, requestOptions) {
368
+ const model = await fetchModelFromItem(item, requestOptions);
369
+ const mapper = new PropertyMapper(getSitePropertyMap());
370
+ let token;
371
+ if (requestOptions.authentication) {
372
+ const session = requestOptions.authentication;
373
+ token = session.token;
374
+ }
375
+ const prj = mapper.modelToObject(model, {});
376
+ prj.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
377
+ return prj;
378
+ }
379
+ /**
380
+ * Search for Sites and get IHubSite results
381
+ * @param filter
382
+ * @param options
383
+ * @returns
384
+ */
385
+ export async function searchSites(filter, options) {
386
+ // Scope to Hub Sites
387
+ const scopingFilter = {
388
+ filterType: "content",
389
+ type: "$site",
390
+ };
391
+ // merge filters
392
+ const sitesFilter = mergeContentFilter([scopingFilter, filter]);
393
+ // delegate
394
+ return searchContentEntities(sitesFilter, convertItemToSite, options);
395
+ }
396
+ //# 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_apply-site-schema.js","sourceRoot":"","sources":["../../../../src/sites/_internal/_apply-site-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,wDAAwD;IACxD,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,mCAAmC;IACnC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,yBAAyB;IACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE;QAC1B,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KAC5B;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;IAExC,UAAU;IACV,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACvE,0FAA0F;QAC1F,yDAAyD;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;aACtC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;YAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,KAAK,CAAC,EAAE,CAAC;aACjB;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,qCAAqC;QACrC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;KACrC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getProp, cloneObject } from "..";
1
+ import { getProp, cloneObject } from "../..";
2
2
  /**
3
3
  * Enforce lowercase domains
4
4
  * @param {Object} model Site Model
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_enforce-lowercase-domains.js","sourceRoot":"","sources":["../../../../src/sites/_internal/_enforce-lowercase-domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,mCAAmC;IACnC,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IAEzE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,wDAAwD;IACxD;QACE,WAAW;QACX,iBAAiB;QACjB,aAAa;QACb,gBAAgB;QAChB,aAAa;KACd,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,IACE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAC3C;YACA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;SACjE;IACH,CAAC,CAAC,CAAC;IACH,yBAAyB;IACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getProp, cloneObject } from "..";
1
+ import { getProp, cloneObject } from "../..";
2
2
  /**
3
3
  * Move the data.values.groups array into the
4
4
  * data.catalog object
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_ensure-catalog.js","sourceRoot":"","sources":["../../../../src/sites/_internal/_ensure-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,aAAa;IACb,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IAEzE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;QACxC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;KACjC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,yBAAyB;IACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getProp, cloneObject, deleteProp, setProp } from "..";
1
+ import { getProp, cloneObject, deleteProp, setProp, } from "../..";
2
2
  /**
3
3
  * Add telemetry config object
4
4
  * @private
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_ensure-telemetry.js","sourceRoot":"","sources":["../../../../src/sites/_internal/_ensure-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACP,WAAW,EACX,UAAU,EACV,OAAO,GACR,MAAM,OAAO,CAAC;AAEf;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAA4B,KAAQ;IAClE,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACzE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;QAC5B,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,EAAE;SACd;QACD,eAAe,EAAE;YACf,EAAE,EAAE;gBACF,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;oBACxB,EAAE,EAAE,MAAM;iBACX;aACF;SACF;KACF,CAAC;IACF,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAExC,OAAO,CAAC,+BAA+B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import { cloneObject, getProp } from "..";
1
+ import { cloneObject, getProp } from "../..";
2
2
  /**
3
3
  * Migrates the site so it can store configurations for multiple feed formats
4
4
  * (dcat-us-1.1, dcat-ap-2.0.1, etc.). If the site has an existing custom
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_migrate-feed-config.js","sourceRoot":"","sources":["../../../../src/sites/_internal/_migrate-feed-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IAEzE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACtB,IAAI,iBAAiB,EAAE;QACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;KACnE;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,mBAAmB,GAAQ;IAC/B,WAAW;IACX,kBAAkB,EAAE,UAAU;IAC9B,yBAAyB,EAAE,iBAAiB;IAC5C,eAAe,EAAE,UAAU;IAC3B,wBAAwB,EAAE,mBAAmB;IAC7C,yBAAyB,EAAE,oBAAoB;IAC/C,2BAA2B,EAAE,YAAY;IACzC,gBAAgB,EAAE,WAAW;IAC7B,8CAA8C,EAAE,qBAAqB;IAErE,gBAAgB;IAChB,cAAc,EAAE,aAAa;IAC7B,qBAAqB,EAAE,gBAAgB;IACvC,sBAAsB,EAAE,iBAAiB;IACzC,mBAAmB,EAAE,cAAc;IACnC,4BAA4B,EAAE,gBAAgB;IAC9C,gBAAgB,EAAE,QAAQ;IAC1B,oCAAoC,EAAE,+BAA+B;IACrE,uEAAuE,EACrE,8CAA8C;IAChD,2CAA2C,EACzC,mCAAmC;IACrC,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,SAAS,kBAAkB,CAAC,cAAmB;IAC7C,IAAI,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9D,oBAAoB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAC1C,uEAAuE;QACvE,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChD,oBAAoB,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getProp, cloneObject, isGuid } from "..";
1
+ import { getProp, cloneObject, isGuid } from "../..";
2
2
  /**
3
3
  * Remove any non-guid entries from the data catalog groups array
4
4
  * @param {object} model Site Model
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_purge-non-guids-from-catalog.js","sourceRoot":"","sources":["../../../../src/sites/_internal/_purge-non-guids-from-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,IAAI,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IAEzE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAElD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { getProp, removeDomainByHostname, addDomain, } from "../..";
2
+ /**
3
+ * Given two site models, determine the domain changes and apply them
4
+ * @param currentModel
5
+ * @param updatedModel
6
+ * @param requestOptions
7
+ * @private
8
+ */
9
+ export async function handleDomainChanges(updatedModel, currentModel, requestOptions) {
10
+ const defaultDomainRecord = {
11
+ clientKey: updatedModel.data.values.clientId,
12
+ orgId: requestOptions.portalSelf.id,
13
+ orgTitle: requestOptions.portalSelf.name,
14
+ orgKey: requestOptions.portalSelf.urlKey,
15
+ siteId: updatedModel.item.id,
16
+ siteTitle: updatedModel.item.title,
17
+ sslOnly: true,
18
+ };
19
+ const domainChanges = {
20
+ remove: [],
21
+ add: [],
22
+ };
23
+ ["customHostname", "defaultHostname"].forEach((key) => {
24
+ const currentValue = getProp(currentModel, `data.values.${key}`);
25
+ const updatedValue = getProp(updatedModel, `data.values.${key}`);
26
+ if (updatedValue !== currentValue) {
27
+ domainChanges.remove.push(currentValue);
28
+ domainChanges.add.push(updatedValue);
29
+ }
30
+ });
31
+ const domainChangePromises = [];
32
+ // handle additions
33
+ domainChanges.add.map((hostname) => {
34
+ const domainOpts = Object.assign({ hostname }, defaultDomainRecord);
35
+ domainChangePromises.push(addDomain(domainOpts, requestOptions));
36
+ });
37
+ // handle removals
38
+ domainChanges.remove.map((hostname) => {
39
+ domainChangePromises.push(removeDomainByHostname(hostname, requestOptions));
40
+ });
41
+ return Promise.all(domainChangePromises);
42
+ // TODO: Error handling & OperationStack
43
+ }
44
+ //# sourceMappingURL=handleDomainChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleDomainChanges.js","sourceRoot":"","sources":["../../../../src/sites/_internal/handleDomainChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAIP,sBAAsB,EACtB,SAAS,GACV,MAAM,OAAO,CAAC;AAEf;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAAoB,EACpB,YAAoB,EACpB,cAAkC;IAElC,MAAM,mBAAmB,GAA0B;QACjD,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;QAC5C,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE;QACnC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,IAAI;QACxC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,MAAM;QACxC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE;QAC5B,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK;QAClC,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,MAAM,EAAE,EAAc;QACtB,GAAG,EAAE,EAAc;KACpB,CAAC;IAEF,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACpD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC;QACjE,IAAI,YAAY,KAAK,YAAY,EAAE;YACjC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAwB,EAAE,CAAC;IAErD,mBAAmB;IACnB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjC,MAAM,UAAU,iBAAQ,EAAE,QAAQ,EAAE,EAAK,mBAAmB,CAAE,CAAC;QAC/D,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACpC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACzC,wCAAwC;AAC1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./handleDomainChanges";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sites/_internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { getProp, addDomain } from "../..";
2
+ /**
3
+ * Given a Site Model, register the domains with the Domain Service.
4
+ *
5
+ * This should only be used when creating a site. To update domains related
6
+ * to a site, use the `addDomain` and `removeDomain` functions directly
7
+ *
8
+ * @param {Object} model site model
9
+ * @param {IHubRequestOptions} hubRequestOptions
10
+ */
11
+ export function addSiteDomains(model, hubRequestOptions) {
12
+ if (hubRequestOptions.isPortal) {
13
+ return Promise.resolve([]);
14
+ }
15
+ else {
16
+ const props = ["defaultHostname", "customHostname"];
17
+ return Promise.all(props.reduce((acc, prop) => {
18
+ const hostname = getProp(model, `data.values.${prop}`);
19
+ if (hostname) {
20
+ const domainOpts = {
21
+ hostname,
22
+ clientKey: model.data.values.clientId,
23
+ orgId: hubRequestOptions.portalSelf.id,
24
+ orgTitle: hubRequestOptions.portalSelf.name,
25
+ orgKey: hubRequestOptions.portalSelf.urlKey,
26
+ siteId: model.item.id,
27
+ siteTitle: model.item.title,
28
+ sslOnly: true,
29
+ };
30
+ acc.push(addDomain(domainOpts, hubRequestOptions));
31
+ }
32
+ return acc;
33
+ }, []));
34
+ }
35
+ }
36
+ //# sourceMappingURL=addSiteDomains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSiteDomains.js","sourceRoot":"","sources":["../../../../src/sites/domains/addSiteDomains.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,iBAAqC;IAErC,IAAI,iBAAiB,CAAC,QAAQ,EAAE;QAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAC5B;SAAM;QACL,MAAM,KAAK,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC;YACvD,IAAI,QAAQ,EAAE;gBACZ,MAAM,UAAU,GAAG;oBACjB,QAAQ;oBACR,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;oBACrC,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE;oBACtC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,IAAI;oBAC3C,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,MAAM;oBAC3C,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;oBACrB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;aACpD;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAyB,CAAC,CAC9B,CAAC;KACH;AACH,CAAC"}
@@ -17,4 +17,6 @@ export * from "./remove-domains-by-site-id";
17
17
  export * from "./update-domain";
18
18
  export * from "./_ensure-safe-domain-length";
19
19
  export * from "./ensure-unique-domain-name";
20
+ export * from "./addSiteDomains";
21
+ export * from "./removeDomainByHostname";
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sites/domains/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sites/domains/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { lookupDomain, removeDomain } from ".";
2
+ import { getProp } from "../..";
3
+ /**
4
+ * Remove an entry from the domain service, based on a hostname
5
+ *
6
+ * Callers must ensure the user is a member of the org that
7
+ * owns the domain entry else the call will fail.
8
+ * @param hostname
9
+ * @param hubRequestOptions
10
+ */
11
+ export async function removeDomainByHostname(hostname, hubRequestOptions) {
12
+ if (hubRequestOptions.isPortal) {
13
+ throw new Error(`removeDomainByHostname is not available in ArcGIS Enterprise. Instead, edit the hubdomain typekeyword on the item`);
14
+ }
15
+ try {
16
+ const domainEntry = await lookupDomain(hostname, hubRequestOptions);
17
+ // Could consider doing a check here to verify that current user
18
+ // is member of the org owning the domain record, but api will
19
+ // enforce this.
20
+ const id = getProp(domainEntry, "id");
21
+ if (id) {
22
+ await removeDomain(id, hubRequestOptions);
23
+ }
24
+ }
25
+ catch (ex) {
26
+ throw new Error(`Error removing domain entry for ${hostname}: ${ex}`);
27
+ }
28
+ }
29
+ //# sourceMappingURL=removeDomainByHostname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDomainByHostname.js","sourceRoot":"","sources":["../../../../src/sites/domains/removeDomainByHostname.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,iBAAqC;IAErC,IAAI,iBAAiB,CAAC,QAAQ,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;KACH;IACD,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACpE,gEAAgE;QAChE,8DAA8D;QAC9D,gBAAgB;QAChB,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,EAAE,EAAE;YACN,MAAM,YAAY,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;SAC3C;KACF;IAAC,OAAO,EAAE,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC;KACvE;AACH,CAAC"}