@esri/hub-common 9.24.2 → 9.25.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 (237) 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/core/{helpers → _internal}/PropertyMapper.js +0 -0
  7. package/dist/es2017/core/_internal/PropertyMapper.js.map +1 -0
  8. package/dist/es2017/core/types/IHubSiteTheme.js +1 -0
  9. package/dist/es2017/core/types/IHubSiteTheme.js.map +1 -0
  10. package/dist/es2017/core/types/index.js +5 -3
  11. package/dist/es2017/core/types/index.js.map +1 -1
  12. package/dist/es2017/items/index.js +1 -0
  13. package/dist/es2017/items/index.js.map +1 -1
  14. package/dist/es2017/items/registerBrowserApp.js +25 -0
  15. package/dist/es2017/items/registerBrowserApp.js.map +1 -0
  16. package/dist/es2017/projects/HubProjectManager.js +11 -1
  17. package/dist/es2017/projects/HubProjectManager.js.map +1 -1
  18. package/dist/es2017/projects/HubProjects.js +34 -82
  19. package/dist/es2017/projects/HubProjects.js.map +1 -1
  20. package/dist/es2017/search/_internal/searchContentEntities.js +77 -0
  21. package/dist/es2017/search/_internal/searchContentEntities.js.map +1 -0
  22. package/dist/es2017/search/_searchContent.js +1 -0
  23. package/dist/es2017/search/_searchContent.js.map +1 -1
  24. package/dist/es2017/search/group-utils.js.map +1 -1
  25. package/dist/es2017/search/utils.js.map +1 -1
  26. package/dist/es2017/sites/HubSiteManager.js +155 -0
  27. package/dist/es2017/sites/HubSiteManager.js.map +1 -0
  28. package/dist/es2017/sites/HubSites.js +396 -0
  29. package/dist/es2017/sites/HubSites.js.map +1 -0
  30. package/dist/es2017/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  31. package/dist/es2017/sites/_internal/_apply-site-schema.js.map +1 -0
  32. package/dist/es2017/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  33. package/dist/es2017/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  34. package/dist/es2017/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  35. package/dist/es2017/sites/_internal/_ensure-catalog.js.map +1 -0
  36. package/dist/es2017/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  37. package/dist/es2017/sites/_internal/_ensure-telemetry.js.map +1 -0
  38. package/dist/es2017/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  39. package/dist/es2017/sites/_internal/_migrate-feed-config.js.map +1 -0
  40. package/dist/es2017/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  41. package/dist/es2017/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  42. package/dist/es2017/sites/_internal/handleDomainChanges.js +44 -0
  43. package/dist/es2017/sites/_internal/handleDomainChanges.js.map +1 -0
  44. package/dist/es2017/sites/_internal/index.js +2 -0
  45. package/dist/es2017/sites/_internal/index.js.map +1 -0
  46. package/dist/es2017/sites/domains/addSiteDomains.js +36 -0
  47. package/dist/es2017/sites/domains/addSiteDomains.js.map +1 -0
  48. package/dist/es2017/sites/domains/index.js +2 -0
  49. package/dist/es2017/sites/domains/index.js.map +1 -1
  50. package/dist/es2017/sites/domains/removeDomainByHostname.js +29 -0
  51. package/dist/es2017/sites/domains/removeDomainByHostname.js.map +1 -0
  52. package/dist/es2017/sites/fetchSiteModel.js +31 -0
  53. package/dist/es2017/sites/fetchSiteModel.js.map +1 -0
  54. package/dist/es2017/sites/index.js +6 -25
  55. package/dist/es2017/sites/index.js.map +1 -1
  56. package/dist/es2017/sites/registerSiteAsApplication.js +23 -0
  57. package/dist/es2017/sites/registerSiteAsApplication.js.map +1 -0
  58. package/dist/es2017/sites/themes.js +46 -0
  59. package/dist/es2017/sites/themes.js.map +1 -0
  60. package/dist/es2017/sites/upgrade-site-schema.js +6 -6
  61. package/dist/es2017/sites/upgrade-site-schema.js.map +1 -1
  62. package/dist/esm/ArcGISContext.js +7 -8
  63. package/dist/esm/ArcGISContext.js.map +1 -1
  64. package/dist/esm/Hub.js +23 -2
  65. package/dist/esm/Hub.js.map +1 -1
  66. package/dist/esm/core/{helpers → _internal}/PropertyMapper.js +0 -0
  67. package/dist/esm/core/_internal/PropertyMapper.js.map +1 -0
  68. package/dist/esm/core/types/IHubSiteTheme.js +1 -0
  69. package/dist/esm/core/types/IHubSiteTheme.js.map +1 -0
  70. package/dist/esm/core/types/index.js +5 -3
  71. package/dist/esm/core/types/index.js.map +1 -1
  72. package/dist/esm/items/index.js +1 -0
  73. package/dist/esm/items/index.js.map +1 -1
  74. package/dist/esm/items/registerBrowserApp.js +25 -0
  75. package/dist/esm/items/registerBrowserApp.js.map +1 -0
  76. package/dist/esm/projects/HubProjectManager.js +16 -1
  77. package/dist/esm/projects/HubProjectManager.js.map +1 -1
  78. package/dist/esm/projects/HubProjects.js +38 -81
  79. package/dist/esm/projects/HubProjects.js.map +1 -1
  80. package/dist/esm/search/_internal/searchContentEntities.js +89 -0
  81. package/dist/esm/search/_internal/searchContentEntities.js.map +1 -0
  82. package/dist/esm/search/_searchContent.js +1 -0
  83. package/dist/esm/search/_searchContent.js.map +1 -1
  84. package/dist/esm/search/group-utils.js.map +1 -1
  85. package/dist/esm/search/utils.js.map +1 -1
  86. package/dist/esm/sites/HubSiteManager.js +201 -0
  87. package/dist/esm/sites/HubSiteManager.js.map +1 -0
  88. package/dist/esm/sites/HubSites.js +448 -0
  89. package/dist/esm/sites/HubSites.js.map +1 -0
  90. package/dist/esm/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  91. package/dist/esm/sites/_internal/_apply-site-schema.js.map +1 -0
  92. package/dist/esm/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  93. package/dist/esm/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  94. package/dist/esm/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  95. package/dist/esm/sites/_internal/_ensure-catalog.js.map +1 -0
  96. package/dist/esm/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  97. package/dist/esm/sites/_internal/_ensure-telemetry.js.map +1 -0
  98. package/dist/esm/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  99. package/dist/esm/sites/_internal/_migrate-feed-config.js.map +1 -0
  100. package/dist/esm/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  101. package/dist/esm/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  102. package/dist/esm/sites/_internal/handleDomainChanges.js +49 -0
  103. package/dist/esm/sites/_internal/handleDomainChanges.js.map +1 -0
  104. package/dist/esm/sites/_internal/index.js +2 -0
  105. package/dist/esm/sites/_internal/index.js.map +1 -0
  106. package/dist/esm/sites/domains/addSiteDomains.js +36 -0
  107. package/dist/esm/sites/domains/addSiteDomains.js.map +1 -0
  108. package/dist/esm/sites/domains/index.js +2 -0
  109. package/dist/esm/sites/domains/index.js.map +1 -1
  110. package/dist/esm/sites/domains/removeDomainByHostname.js +42 -0
  111. package/dist/esm/sites/domains/removeDomainByHostname.js.map +1 -0
  112. package/dist/esm/sites/fetchSiteModel.js +34 -0
  113. package/dist/esm/sites/fetchSiteModel.js.map +1 -0
  114. package/dist/esm/sites/index.js +6 -28
  115. package/dist/esm/sites/index.js.map +1 -1
  116. package/dist/esm/sites/registerSiteAsApplication.js +23 -0
  117. package/dist/esm/sites/registerSiteAsApplication.js.map +1 -0
  118. package/dist/esm/sites/themes.js +46 -0
  119. package/dist/esm/sites/themes.js.map +1 -0
  120. package/dist/esm/sites/upgrade-site-schema.js +6 -6
  121. package/dist/esm/sites/upgrade-site-schema.js.map +1 -1
  122. package/dist/node/ArcGISContext.js +7 -8
  123. package/dist/node/ArcGISContext.js.map +1 -1
  124. package/dist/node/Hub.js +19 -2
  125. package/dist/node/Hub.js.map +1 -1
  126. package/dist/node/core/{helpers → _internal}/PropertyMapper.js +0 -0
  127. package/dist/node/core/_internal/PropertyMapper.js.map +1 -0
  128. package/dist/node/core/types/IHubSiteTheme.js +3 -0
  129. package/dist/node/core/types/IHubSiteTheme.js.map +1 -0
  130. package/dist/node/core/types/index.js +5 -3
  131. package/dist/node/core/types/index.js.map +1 -1
  132. package/dist/node/items/index.js +1 -0
  133. package/dist/node/items/index.js.map +1 -1
  134. package/dist/node/items/registerBrowserApp.js +29 -0
  135. package/dist/node/items/registerBrowserApp.js.map +1 -0
  136. package/dist/node/projects/HubProjectManager.js +10 -0
  137. package/dist/node/projects/HubProjectManager.js.map +1 -1
  138. package/dist/node/projects/HubProjects.js +32 -79
  139. package/dist/node/projects/HubProjects.js.map +1 -1
  140. package/dist/node/search/_internal/searchContentEntities.js +82 -0
  141. package/dist/node/search/_internal/searchContentEntities.js.map +1 -0
  142. package/dist/node/search/_searchContent.js +1 -0
  143. package/dist/node/search/_searchContent.js.map +1 -1
  144. package/dist/node/search/group-utils.js.map +1 -1
  145. package/dist/node/search/utils.js.map +1 -1
  146. package/dist/node/sites/HubSiteManager.js +159 -0
  147. package/dist/node/sites/HubSiteManager.js.map +1 -0
  148. package/dist/node/sites/HubSites.js +405 -0
  149. package/dist/node/sites/HubSites.js.map +1 -0
  150. package/dist/node/sites/{_apply-site-schema.js → _internal/_apply-site-schema.js} +2 -2
  151. package/dist/node/sites/_internal/_apply-site-schema.js.map +1 -0
  152. package/dist/node/sites/{_enforce-lowercase-domains.js → _internal/_enforce-lowercase-domains.js} +1 -1
  153. package/dist/node/sites/_internal/_enforce-lowercase-domains.js.map +1 -0
  154. package/dist/node/sites/{_ensure-catalog.js → _internal/_ensure-catalog.js} +1 -1
  155. package/dist/node/sites/_internal/_ensure-catalog.js.map +1 -0
  156. package/dist/node/sites/{_ensure-telemetry.js → _internal/_ensure-telemetry.js} +1 -1
  157. package/dist/node/sites/_internal/_ensure-telemetry.js.map +1 -0
  158. package/dist/node/sites/{_migrate-feed-config.js → _internal/_migrate-feed-config.js} +1 -1
  159. package/dist/node/sites/_internal/_migrate-feed-config.js.map +1 -0
  160. package/dist/node/sites/{_purge-non-guids-from-catalog.js → _internal/_purge-non-guids-from-catalog.js} +1 -1
  161. package/dist/node/sites/_internal/_purge-non-guids-from-catalog.js.map +1 -0
  162. package/dist/node/sites/_internal/handleDomainChanges.js +48 -0
  163. package/dist/node/sites/_internal/handleDomainChanges.js.map +1 -0
  164. package/dist/node/sites/_internal/index.js +5 -0
  165. package/dist/node/sites/_internal/index.js.map +1 -0
  166. package/dist/node/sites/domains/addSiteDomains.js +40 -0
  167. package/dist/node/sites/domains/addSiteDomains.js.map +1 -0
  168. package/dist/node/sites/domains/index.js +2 -0
  169. package/dist/node/sites/domains/index.js.map +1 -1
  170. package/dist/node/sites/domains/removeDomainByHostname.js +33 -0
  171. package/dist/node/sites/domains/removeDomainByHostname.js.map +1 -0
  172. package/dist/node/sites/fetchSiteModel.js +36 -0
  173. package/dist/node/sites/fetchSiteModel.js.map +1 -0
  174. package/dist/node/sites/index.js +6 -27
  175. package/dist/node/sites/index.js.map +1 -1
  176. package/dist/node/sites/registerSiteAsApplication.js +27 -0
  177. package/dist/node/sites/registerSiteAsApplication.js.map +1 -0
  178. package/dist/node/sites/themes.js +50 -0
  179. package/dist/node/sites/themes.js.map +1 -0
  180. package/dist/node/sites/upgrade-site-schema.js +6 -6
  181. package/dist/node/sites/upgrade-site-schema.js.map +1 -1
  182. package/dist/types/Hub.d.ts +15 -2
  183. package/dist/types/core/{helpers → _internal}/PropertyMapper.d.ts +0 -0
  184. package/dist/types/core/types/IHubEntityManager.d.ts +2 -5
  185. package/dist/types/core/types/IHubItemEntityManager.d.ts +10 -0
  186. package/dist/types/core/types/IHubSite.d.ts +68 -4
  187. package/dist/types/core/types/IHubSiteTheme.d.ts +28 -0
  188. package/dist/types/core/types/index.d.ts +5 -3
  189. package/dist/types/items/index.d.ts +1 -0
  190. package/dist/types/items/registerBrowserApp.d.ts +11 -0
  191. package/dist/types/projects/HubProjectManager.d.ts +8 -0
  192. package/dist/types/projects/HubProjects.d.ts +18 -0
  193. package/dist/types/search/_internal/searchContentEntities.d.ts +32 -0
  194. package/dist/types/search/utils.d.ts +1 -1
  195. package/dist/types/sites/HubSiteManager.d.ts +104 -0
  196. package/dist/types/sites/HubSites.d.ts +56 -0
  197. package/dist/types/sites/{_apply-site-schema.d.ts → _internal/_apply-site-schema.d.ts} +1 -1
  198. package/dist/types/sites/{_enforce-lowercase-domains.d.ts → _internal/_enforce-lowercase-domains.d.ts} +1 -1
  199. package/dist/types/sites/{_ensure-catalog.d.ts → _internal/_ensure-catalog.d.ts} +1 -1
  200. package/dist/types/sites/{_ensure-telemetry.d.ts → _internal/_ensure-telemetry.d.ts} +1 -1
  201. package/dist/types/sites/{_migrate-feed-config.d.ts → _internal/_migrate-feed-config.d.ts} +1 -1
  202. package/dist/types/sites/{_purge-non-guids-from-catalog.d.ts → _internal/_purge-non-guids-from-catalog.d.ts} +1 -1
  203. package/dist/types/sites/_internal/handleDomainChanges.d.ts +9 -0
  204. package/dist/types/sites/_internal/index.d.ts +1 -0
  205. package/dist/types/sites/domains/addSiteDomains.d.ts +11 -0
  206. package/dist/types/sites/domains/index.d.ts +2 -0
  207. package/dist/types/sites/domains/removeDomainByHostname.d.ts +10 -0
  208. package/dist/types/sites/fetchSiteModel.d.ts +12 -0
  209. package/dist/types/sites/index.d.ts +6 -9
  210. package/dist/types/sites/registerSiteAsApplication.d.ts +8 -0
  211. package/dist/types/sites/themes.d.ts +11 -0
  212. package/dist/umd/common.umd.js +2905 -1956
  213. package/dist/umd/common.umd.js.map +1 -1
  214. package/dist/umd/common.umd.min.js +1 -1
  215. package/dist/umd/common.umd.min.js.map +1 -1
  216. package/package.json +1 -1
  217. package/dist/es2017/core/helpers/PropertyMapper.js.map +0 -1
  218. package/dist/es2017/sites/_apply-site-schema.js.map +0 -1
  219. package/dist/es2017/sites/_enforce-lowercase-domains.js.map +0 -1
  220. package/dist/es2017/sites/_ensure-catalog.js.map +0 -1
  221. package/dist/es2017/sites/_ensure-telemetry.js.map +0 -1
  222. package/dist/es2017/sites/_migrate-feed-config.js.map +0 -1
  223. package/dist/es2017/sites/_purge-non-guids-from-catalog.js.map +0 -1
  224. package/dist/esm/core/helpers/PropertyMapper.js.map +0 -1
  225. package/dist/esm/sites/_apply-site-schema.js.map +0 -1
  226. package/dist/esm/sites/_enforce-lowercase-domains.js.map +0 -1
  227. package/dist/esm/sites/_ensure-catalog.js.map +0 -1
  228. package/dist/esm/sites/_ensure-telemetry.js.map +0 -1
  229. package/dist/esm/sites/_migrate-feed-config.js.map +0 -1
  230. package/dist/esm/sites/_purge-non-guids-from-catalog.js.map +0 -1
  231. package/dist/node/core/helpers/PropertyMapper.js.map +0 -1
  232. package/dist/node/sites/_apply-site-schema.js.map +0 -1
  233. package/dist/node/sites/_enforce-lowercase-domains.js.map +0 -1
  234. package/dist/node/sites/_ensure-catalog.js.map +0 -1
  235. package/dist/node/sites/_ensure-telemetry.js.map +0 -1
  236. package/dist/node/sites/_migrate-feed-config.js.map +0 -1
  237. package/dist/node/sites/_purge-non-guids-from-catalog.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeDomainByHostname = void 0;
4
+ const _1 = require(".");
5
+ const __1 = require("../..");
6
+ /**
7
+ * Remove an entry from the domain service, based on a hostname
8
+ *
9
+ * Callers must ensure the user is a member of the org that
10
+ * owns the domain entry else the call will fail.
11
+ * @param hostname
12
+ * @param hubRequestOptions
13
+ */
14
+ async function removeDomainByHostname(hostname, hubRequestOptions) {
15
+ if (hubRequestOptions.isPortal) {
16
+ throw new Error(`removeDomainByHostname is not available in ArcGIS Enterprise. Instead, edit the hubdomain typekeyword on the item`);
17
+ }
18
+ try {
19
+ const domainEntry = await _1.lookupDomain(hostname, hubRequestOptions);
20
+ // Could consider doing a check here to verify that current user
21
+ // is member of the org owning the domain record, but api will
22
+ // enforce this.
23
+ const id = __1.getProp(domainEntry, "id");
24
+ if (id) {
25
+ await _1.removeDomain(id, hubRequestOptions);
26
+ }
27
+ }
28
+ catch (ex) {
29
+ throw new Error(`Error removing domain entry for ${hostname}: ${ex}`);
30
+ }
31
+ }
32
+ exports.removeDomainByHostname = removeDomainByHostname;
33
+ //# sourceMappingURL=removeDomainByHostname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDomainByHostname.js","sourceRoot":"","sources":["../../../../src/sites/domains/removeDomainByHostname.ts"],"names":[],"mappings":";;;AACA,wBAA+C;AAC/C,6BAAgC;AAEhC;;;;;;;GAOG;AACI,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,eAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACpE,gEAAgE;QAChE,8DAA8D;QAC9D,gBAAgB;QAChB,MAAM,EAAE,GAAG,WAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,EAAE,EAAE;YACN,MAAM,eAAY,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;AArBD,wDAqBC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchSite = exports.fetchSiteModel = void 0;
4
+ const __1 = require("..");
5
+ /**
6
+ * Returns site model given various kinds of identifier
7
+ *
8
+ * @param identifier - a site item ID, site hostname, enterprise site slug, or full site URL
9
+ * @param hubRequestOptions
10
+ */
11
+ function fetchSiteModel(identifier, hubRequestOptions) {
12
+ let prms;
13
+ if (__1.isGuid(identifier)) {
14
+ prms = __1.getSiteById(identifier, hubRequestOptions);
15
+ }
16
+ else {
17
+ let hostnameOrSlug = identifier;
18
+ // get down the the hostname
19
+ hostnameOrSlug = __1.stripProtocol(hostnameOrSlug);
20
+ hostnameOrSlug = hostnameOrSlug.split("/")[0];
21
+ prms = __1.lookupDomain(hostnameOrSlug, hubRequestOptions).then(({ siteId }) => __1.getSiteById(siteId, hubRequestOptions));
22
+ }
23
+ return prms;
24
+ }
25
+ exports.fetchSiteModel = fetchSiteModel;
26
+ /**
27
+ * @private // keep out of docs
28
+ */
29
+ /* istanbul ignore next */
30
+ function fetchSite(identifier, hubRequestOptions) {
31
+ // tslint:disable-next-line
32
+ console.warn(`@esri/hub-common::fetchSite is deprecated. Please use @esri/hub-common::fetchSiteModel instead`);
33
+ return fetchSiteModel(identifier, hubRequestOptions);
34
+ }
35
+ exports.fetchSite = fetchSite;
36
+ //# sourceMappingURL=fetchSiteModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchSiteModel.js","sourceRoot":"","sources":["../../../src/sites/fetchSiteModel.ts"],"names":[],"mappings":";;;AAAA,0BAOY;AAEZ;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,UAAkB,EAClB,iBAAqC;IAErC,IAAI,IAAI,CAAC;IAET,IAAI,UAAM,CAAC,UAAU,CAAC,EAAE;QACtB,IAAI,GAAG,eAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;KACnD;SAAM;QACL,IAAI,cAAc,GAAG,UAAU,CAAC;QAEhC,4BAA4B;QAC5B,cAAc,GAAG,iBAAa,CAAC,cAAc,CAAC,CAAC;QAC/C,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,IAAI,GAAG,gBAAY,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACzE,eAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACvC,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,wCAqBC;AAED;;GAEG;AACH,0BAA0B;AAC1B,SAAgB,SAAS,CACvB,UAAkB,EAClB,iBAAqC;IAErC,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CACV,gGAAgG,CACjG,CAAC;IACF,OAAO,cAAc,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACvD,CAAC;AATD,8BASC"}
@@ -1,36 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchSite = void 0;
4
3
  const tslib_1 = require("tslib");
5
- const urls_1 = require("../urls");
6
- const utils_1 = require("../utils");
7
- const domains_1 = require("./domains");
8
- const get_site_by_id_1 = require("./get-site-by-id");
9
- /**
10
- * Returns site model given various kinds of identifier
11
- *
12
- * @param identifier - a site item ID, site hostname, enterprise site slug, or full site URL
13
- * @param hubRequestOptions
14
- */
15
- function fetchSite(identifier, hubRequestOptions) {
16
- let prms;
17
- if (utils_1.isGuid(identifier)) {
18
- prms = get_site_by_id_1.getSiteById(identifier, hubRequestOptions);
19
- }
20
- else {
21
- let hostnameOrSlug = identifier;
22
- // get down the the hostname
23
- hostnameOrSlug = urls_1.stripProtocol(hostnameOrSlug);
24
- hostnameOrSlug = hostnameOrSlug.split("/")[0];
25
- prms = domains_1.lookupDomain(hostnameOrSlug, hubRequestOptions).then(({ siteId }) => get_site_by_id_1.getSiteById(siteId, hubRequestOptions));
26
- }
27
- return prms;
28
- }
29
- exports.fetchSite = fetchSite;
4
+ tslib_1.__exportStar(require("./_internal/_ensure-telemetry"), exports);
30
5
  tslib_1.__exportStar(require("./domains"), exports);
31
6
  tslib_1.__exportStar(require("./drafts"), exports);
32
- tslib_1.__exportStar(require("./_ensure-telemetry"), exports);
7
+ tslib_1.__exportStar(require("./fetchSiteModel"), exports);
33
8
  tslib_1.__exportStar(require("./get-site-by-id"), exports);
9
+ tslib_1.__exportStar(require("./HubSiteManager"), exports);
10
+ tslib_1.__exportStar(require("./HubSites"), exports);
11
+ tslib_1.__exportStar(require("./registerSiteAsApplication"), exports);
34
12
  tslib_1.__exportStar(require("./site-schema-version"), exports);
13
+ tslib_1.__exportStar(require("./themes"), exports);
35
14
  tslib_1.__exportStar(require("./upgrade-site-schema"), exports);
36
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sites/index.ts"],"names":[],"mappings":";;;;AACA,kCAAwC;AACxC,oCAAkC;AAClC,uCAAyC;AACzC,qDAA+C;AAE/C;;;;;GAKG;AACH,SAAgB,SAAS,CACvB,UAAkB,EAClB,iBAAqC;IAErC,IAAI,IAAI,CAAC;IAET,IAAI,cAAM,CAAC,UAAU,CAAC,EAAE;QACtB,IAAI,GAAG,4BAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;KACnD;SAAM;QACL,IAAI,cAAc,GAAG,UAAU,CAAC;QAEhC,4BAA4B;QAC5B,cAAc,GAAG,oBAAa,CAAC,cAAc,CAAC,CAAC;QAC/C,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,IAAI,GAAG,sBAAY,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACzE,4BAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACvC,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,8BAqBC;AAED,oDAA0B;AAC1B,mDAAyB;AACzB,8DAAoC;AACpC,2DAAiC;AACjC,gEAAsC;AACtC,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sites/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,oDAA0B;AAC1B,mDAAyB;AACzB,2DAAiC;AACjC,2DAAiC;AACjC,2DAAiC;AACjC,qDAA2B;AAC3B,sEAA4C;AAC5C,gEAAsC;AACtC,mDAAyB;AACzB,gEAAsC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerSiteAsApplication = void 0;
4
+ const __1 = require("..");
5
+ const registerBrowserApp_1 = require("../items/registerBrowserApp");
6
+ /**
7
+ * Register the Site item as an application so we can oauth against it
8
+ * @param {string} siteId Item Id of the site
9
+ * @param {Array} uris Arrayf valid uris for the site
10
+ * @param {IHubRequestOptions} hubRequestOptions
11
+ */
12
+ function registerSiteAsApplication(model, hubRequestOptions) {
13
+ // PORTAL-ENV: we can't register sites as `arcgisonline` because it will bust sign in on the portal
14
+ if (hubRequestOptions.isPortal)
15
+ return Promise.resolve({});
16
+ const uris = [model.data.values.defaultHostname];
17
+ if (__1.getProp(model, "data.values.customHostname")) {
18
+ uris.push(model.data.values.customHostname);
19
+ }
20
+ // get both the http and https versions of the urls, just to cover all the bases
21
+ const redirectUris = uris.reduce((acc, uri) => {
22
+ return acc.concat(__1._getHttpAndHttpsUris(uri));
23
+ }, []);
24
+ return registerBrowserApp_1.registerBrowserApp(model.item.id, redirectUris, hubRequestOptions);
25
+ }
26
+ exports.registerSiteAsApplication = registerSiteAsApplication;
27
+ //# sourceMappingURL=registerSiteAsApplication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerSiteAsApplication.js","sourceRoot":"","sources":["../../../src/sites/registerSiteAsApplication.ts"],"names":[],"mappings":";;;AAAA,0BAA+E;AAC/E,oEAAiE;AACjE;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,KAAa,EACb,iBAAqC;IAErC,mGAAmG;IACnG,IAAI,iBAAiB,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,WAAO,CAAC,KAAK,EAAE,4BAA4B,CAAC,EAAE;QAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;KAC7C;IACD,gFAAgF;IAChF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,wBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,uCAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAC5E,CAAC;AAhBD,8DAgBC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOrgDefaultTheme = exports.DEFAULT_THEME = void 0;
4
+ const __1 = require("..");
5
+ /**
6
+ * Default Site Theme
7
+ */
8
+ exports.DEFAULT_THEME = {
9
+ header: {
10
+ background: "#fff",
11
+ text: "#4c4c4c",
12
+ },
13
+ body: {
14
+ background: "#fff",
15
+ text: "#4c4c4c",
16
+ link: "#0079c1",
17
+ },
18
+ button: {
19
+ background: "#0079c1",
20
+ text: "#fff",
21
+ },
22
+ logo: {
23
+ small: "",
24
+ },
25
+ fonts: {
26
+ base: {
27
+ url: "",
28
+ family: "Avenir Next",
29
+ },
30
+ heading: {
31
+ url: "",
32
+ family: "Avenir Next",
33
+ },
34
+ },
35
+ };
36
+ /**
37
+ * Return the default theme, extended with values from the Org's shared theme
38
+ * @param {Object} portalSelf Org's Portal object
39
+ */
40
+ function getOrgDefaultTheme(portalSelf) {
41
+ let defaultTheme = __1.cloneObject(exports.DEFAULT_THEME);
42
+ let sharedTheme = __1.getProp(portalSelf, "portalProperties.sharedTheme");
43
+ if (sharedTheme) {
44
+ sharedTheme = __1.removeEmptyProps(sharedTheme);
45
+ defaultTheme = __1.extend(defaultTheme, sharedTheme);
46
+ }
47
+ return defaultTheme;
48
+ }
49
+ exports.getOrgDefaultTheme = getOrgDefaultTheme;
50
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/sites/themes.ts"],"names":[],"mappings":";;;AACA,0BAMY;AAEZ;;GAEG;AACU,QAAA,aAAa,GAAkB;IAC1C,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,SAAS;KAChB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KAChB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,MAAM;KACb;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;KACV;IACD,KAAK,EAAE;QACL,IAAI,EAAE;YACJ,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,aAAa;SACtB;QACD,OAAO,EAAE;YACP,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,aAAa;SACtB;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,UAAmB;IACpD,IAAI,YAAY,GAAG,eAAW,CAAC,qBAAa,CAAC,CAAC;IAC9C,IAAI,WAAW,GAAG,WAAO,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;IACtE,IAAI,WAAW,EAAE;QACf,WAAW,GAAG,oBAAgB,CAAC,WAAW,CAAC,CAAC;QAC5C,YAAY,GAAG,UAAM,CAAC,YAAY,EAAE,WAAW,CAAkB,CAAC;KACnE;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AARD,gDAQC"}
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.upgradeSiteSchema = void 0;
4
4
  const objects_1 = require("../objects");
5
5
  const site_schema_version_1 = require("./site-schema-version");
6
- const _apply_site_schema_1 = require("./_apply-site-schema");
7
- const _enforce_lowercase_domains_1 = require("./_enforce-lowercase-domains");
8
- const _ensure_catalog_1 = require("./_ensure-catalog");
9
- const _purge_non_guids_from_catalog_1 = require("./_purge-non-guids-from-catalog");
10
- const _ensure_telemetry_1 = require("./_ensure-telemetry");
11
- const _migrate_feed_config_1 = require("./_migrate-feed-config");
6
+ const _apply_site_schema_1 = require("./_internal/_apply-site-schema");
7
+ const _enforce_lowercase_domains_1 = require("./_internal/_enforce-lowercase-domains");
8
+ const _ensure_catalog_1 = require("./_internal/_ensure-catalog");
9
+ const _purge_non_guids_from_catalog_1 = require("./_internal/_purge-non-guids-from-catalog");
10
+ const _ensure_telemetry_1 = require("./_internal/_ensure-telemetry");
11
+ const _migrate_feed_config_1 = require("./_internal/_migrate-feed-config");
12
12
  /**
13
13
  * Upgrades the schema upgrades
14
14
  * @param model IModel
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-site-schema.js","sourceRoot":"","sources":["../../../src/sites/upgrade-site-schema.ts"],"names":[],"mappings":";;;AACA,wCAAqC;AACrC,+DAA4D;AAC5D,6DAAwD;AACxD,6EAAwE;AACxE,uDAAmD;AACnD,mFAA4E;AAC5E,2DAAuD;AACvD,iEAA4D;AAE5D;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,IAAI,iBAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,KAAK,yCAAmB,EAAE;QAC3E,OAAO,KAAK,CAAC;KACd;SAAM;QACL,sCAAsC;QACtC,KAAK,GAAG,qCAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,GAAG,qDAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,gCAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,GAAG,yDAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,GAAG,oCAAgB,CAAS,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,yCAAkB,CAAC,KAAK,CAAC,CAAC;QAClC,wDAAwD;QACxD,wDAAwD;QACxD,kEAAkE;QAClE,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAhBD,8CAgBC"}
1
+ {"version":3,"file":"upgrade-site-schema.js","sourceRoot":"","sources":["../../../src/sites/upgrade-site-schema.ts"],"names":[],"mappings":";;;AACA,wCAAqC;AACrC,+DAA4D;AAC5D,uEAAkE;AAClE,uFAAkF;AAClF,iEAA6D;AAC7D,6FAAsF;AACtF,qEAAiE;AACjE,2EAAsE;AAEtE;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,IAAI,iBAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,KAAK,yCAAmB,EAAE;QAC3E,OAAO,KAAK,CAAC;KACd;SAAM;QACL,sCAAsC;QACtC,KAAK,GAAG,qCAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,GAAG,qDAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,gCAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,GAAG,yDAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,GAAG,oCAAgB,CAAS,KAAK,CAAC,CAAC;QACxC,KAAK,GAAG,yCAAkB,CAAC,KAAK,CAAC,CAAC;QAClC,wDAAwD;QACxD,wDAAwD;QACxD,kEAAkE;QAClE,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAhBD,8CAgBC"}
@@ -1,3 +1,4 @@
1
+ import { HubSiteManager } from ".";
1
2
  import { ArcGISContextManager, IArcGISContextManagerOptions } from "./ArcGISContextManager";
2
3
  import { HubProjectManager } from "./projects/HubProjectManager";
3
4
  /**
@@ -44,6 +45,7 @@ export declare class Hub {
44
45
  */
45
46
  private _contextManager;
46
47
  private _projectManager;
48
+ private _siteManager;
47
49
  /**
48
50
  * Private so we can employ a factory function to do
49
51
  * async work during creation
@@ -57,12 +59,23 @@ export declare class Hub {
57
59
  */
58
60
  static create(options: IHubOptions): Promise<Hub>;
59
61
  /**
60
- * Getter to abstract the context manager
62
+ * Get the context
63
+ * @readonly
64
+ * @memberof Hub
61
65
  */
62
66
  get context(): import("./ArcGISContext").IArcGISContext;
63
67
  /**
64
68
  * HubProjectManager for the current Hub
65
- * @returns
69
+ *
70
+ * @readonly
71
+ * @memberof Hub
66
72
  */
67
73
  get projects(): HubProjectManager;
74
+ /**
75
+ * HubSiteManager for the current Hub
76
+ *
77
+ * @readonly
78
+ * @memberof Hub
79
+ */
80
+ get sites(): HubSiteManager;
68
81
  }
@@ -1,6 +1,7 @@
1
1
  import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
2
  import { IRequestOptions } from "@esri/arcgis-rest-request";
3
- import { Filter, IHubSearchOptions, ISearchResponse } from "../..";
3
+ import { Filter, IHubSearchOptions } from "../../search/types";
4
+ import { ISearchResponse } from "../../types";
4
5
  /**
5
6
  * Baseline CRUD+Search functions required for all Store classes
6
7
  */
@@ -32,10 +33,6 @@ export interface IHubEntityManager<T> {
32
33
  */
33
34
  fetch(identifier: string, requestOptions: IRequestOptions): Promise<T>;
34
35
  /**
35
- * [WIP] We need to work out how best to handle the typing on this. Simply
36
- * delegating to `searchContent` with a filter constraining to an Entity type
37
- * will return `ISearchResponse<IHubContent>` and not the expected type.
38
- *
39
36
  * Search for Entitys of type `T`
40
37
  *
41
38
  * Note: When implementing, this should be a search for things of type `T`
@@ -1,4 +1,6 @@
1
1
  import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
3
+ import { IItem } from "@esri/arcgis-rest-types";
2
4
  /**
3
5
  * Item specific functions that must be implemented by Managers which operate against
4
6
  * items stored in the Portal API
@@ -12,4 +14,12 @@ export interface IHubItemEntityManager<T> {
12
14
  * @param requestOptions
13
15
  */
14
16
  updateThumbnail(entity: T, file: any, filename: string, requestOptions?: IUserRequestOptions): Promise<T>;
17
+ /**
18
+ * Given an item, do any additional data fetching and return
19
+ * a type `T`
20
+ *
21
+ * @param item
22
+ * @param requestOptions
23
+ */
24
+ fromItem(item: IItem, requestOptions: IRequestOptions): Promise<T>;
15
25
  }
@@ -1,11 +1,75 @@
1
+ import { IExtent } from "@esri/arcgis-rest-feature-layer";
2
+ import { IWithSlug } from "../traits/WithSlug";
1
3
  import { IWithLayout } from "../traits/WithLayout";
2
4
  import { IHubItemEntity } from "./IHubItemEntity";
3
5
  /**
4
6
  * DRAFT: Under development and more properties will likely be added
5
7
  * @internal
6
8
  */
7
- export interface IHubSite extends IHubItemEntity, IWithLayout {
8
- header: Record<string, any>;
9
- footer: Record<string, any>;
10
- pages: Record<string, any>;
9
+ export interface IHubSite extends IHubItemEntity, IWithSlug, IWithLayout {
10
+ /**
11
+ * Array of minimal page objects
12
+ */
13
+ pages: Array<{
14
+ title: string;
15
+ id: string;
16
+ slug: string;
17
+ }>;
18
+ /**
19
+ * Site Theme as json
20
+ */
21
+ theme: Record<string, any>;
22
+ /**
23
+ * Array of capabilities enabled for the site
24
+ */
25
+ capabilities: string[];
26
+ /**
27
+ * Currently not an actual ICatalog
28
+ */
29
+ catalog: {
30
+ groups: string[];
31
+ [key: string]: any;
32
+ };
33
+ /**
34
+ * Subdomain of the site
35
+ * Will be prepended to `<org-key>.hub.arcgis.com`
36
+ */
37
+ subdomain: string;
38
+ /**
39
+ * Full hostname
40
+ * Looks like`<subdomain>-<org-key>.hub.arcgis.com`
41
+ */
42
+ defaultHostname: string;
43
+ /**
44
+ * Custom Domain Name
45
+ */
46
+ customHostname: string;
47
+ /**
48
+ * oAuth Client Id for the Site
49
+ */
50
+ clientId: string;
51
+ /**
52
+ * Feed configurations
53
+ */
54
+ feeds: Record<string, any>;
55
+ /**
56
+ * Default extent used when loading maps on the site
57
+ */
58
+ defaultExtent: IExtent;
59
+ /**
60
+ * Default map configuration for the site
61
+ */
62
+ map: Record<string, any>;
63
+ /**
64
+ * Content Views settings
65
+ */
66
+ contentViews: Record<string, any>;
67
+ /**
68
+ * Site Telemetry Settings
69
+ */
70
+ telemetry: Record<string, any>;
71
+ /**
72
+ * Header CSS
73
+ */
74
+ headerSass: string;
11
75
  }
@@ -0,0 +1,28 @@
1
+ export interface IHubSiteTheme {
2
+ header: {
3
+ background: string;
4
+ text: string;
5
+ };
6
+ body: {
7
+ background: string;
8
+ text: string;
9
+ link: string;
10
+ };
11
+ button: {
12
+ background: string;
13
+ text: string;
14
+ };
15
+ logo: {
16
+ small: string;
17
+ };
18
+ fonts: {
19
+ base: {
20
+ url: string;
21
+ family: string;
22
+ };
23
+ heading: {
24
+ url: string;
25
+ family: string;
26
+ };
27
+ };
28
+ }
@@ -1,15 +1,17 @@
1
- export * from "./IItemEnrichments";
2
- export * from "./IHubContentEnrichments";
3
1
  export * from "./IHubContent";
2
+ export * from "./IHubContentEnrichments";
4
3
  export * from "./IHubEntityBase";
5
- export * from "./IHubItemEntity";
6
4
  export * from "./IHubEntityManager";
7
5
  export * from "./IHubEvent";
8
6
  export * from "./IHubImage";
9
7
  export * from "./IHubInitiative";
8
+ export * from "./IHubItemEntity";
9
+ export * from "./IHubItemEntityManager";
10
10
  export * from "./IHubLayout";
11
11
  export * from "./IHubPage";
12
12
  export * from "./IHubProject";
13
13
  export * from "./IHubSite";
14
+ export * from "./IHubSiteTheme";
14
15
  export * from "./IHubTimeline";
16
+ export * from "./IItemEnrichments";
15
17
  export * from "./IServerEnrichments";
@@ -16,3 +16,4 @@ export * from "./get-structured-license";
16
16
  export * from "./slugs";
17
17
  export * from "./normalize-solution-template-item";
18
18
  export * from "./setItemThumbnail";
19
+ export * from "./registerBrowserApp";
@@ -0,0 +1,11 @@
1
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
2
+ /**
3
+ * Register an Item as an application, enabling oAuth flows at custom
4
+ * domains. Only item types with "Application" in the name are valid
5
+ * with this API call.
6
+ * @param {string} itemId Item Id of item to create an application for
7
+ * @param {Array} redirectUris Array of valid redirect uris for the app
8
+ * @param {string} appType Defaults to "browser"
9
+ * @param {IRequestOptions} requestOptions
10
+ */
11
+ export declare function registerBrowserApp(itemId: string, redirectUris: string[], requestOptions: IRequestOptions): Promise<any>;
@@ -4,6 +4,7 @@ import { ArcGISContextManager } from "../ArcGISContextManager";
4
4
  import { Filter, IArcGISContext, IHubSearchOptions, ISearchResponse } from "..";
5
5
  import { IHubEntityManager, IHubProject } from "../core/types";
6
6
  import { IHubItemEntityManager } from "../core/types/IHubItemEntityManager";
7
+ import { IItem } from "@esri/arcgis-rest-types";
7
8
  /**
8
9
  * Centralized functions used to manage IHubProject instances
9
10
  *
@@ -96,4 +97,11 @@ export declare class HubProjectManager implements IHubEntityManager<IHubProject>
96
97
  * @returns
97
98
  */
98
99
  updateThumbnail(project: IHubProject, file: any, filename: string, requestOptions?: IUserRequestOptions): Promise<IHubProject>;
100
+ /**
101
+ * Convert a Hub Project Item to a IHubProject
102
+ * @param item
103
+ * @param requestOptions
104
+ * @returns
105
+ */
106
+ fromItem(item: IItem, requestOptions?: IRequestOptions): Promise<IHubProject>;
99
107
  }
@@ -1,5 +1,6 @@
1
1
  import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
2
2
  import { Filter, IHubSearchOptions, ISearchResponse } from "..";
3
+ import { IItem } from "@esri/arcgis-rest-portal";
3
4
  import { IRequestOptions } from "@esri/arcgis-rest-request";
4
5
  import { IHubProject } from "../core/types";
5
6
  export declare const HUB_PROJECT_ITEM_TYPE = "Hub Project";
@@ -30,4 +31,21 @@ export declare function fetchProject(identifier: string, requestOptions: IReques
30
31
  * @param requestOptions
31
32
  */
32
33
  export declare function destroyProject(id: string, requestOptions: IUserRequestOptions): Promise<void>;
34
+ /**
35
+ * Search for Projects, and get IHubProject results
36
+ *
37
+ * Different from `searchContent` in that this returns the specific entity type
38
+ *
39
+ * @param filter
40
+ * @param options
41
+ * @returns
42
+ */
33
43
  export declare function searchProjects(filter: Filter<"content">, options: IHubSearchOptions): Promise<ISearchResponse<IHubProject>>;
44
+ /**
45
+ * Convert an Hub Project Item into a Hub Project, fetching any additional
46
+ * information that may be required
47
+ * @param item
48
+ * @param auth
49
+ * @returns
50
+ */
51
+ export declare function convertItemToProject(item: IItem, requestOptions: IRequestOptions): Promise<IHubProject>;
@@ -0,0 +1,32 @@
1
+ import { ISearchOptions } from "@esri/arcgis-rest-portal";
2
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
3
+ import { IItem } from "@esri/arcgis-rest-types";
4
+ import { ISearchResponse } from "../../types";
5
+ import { Filter, IHubSearchOptions } from "../../search/types";
6
+ /**
7
+ * Definition of `convertItemTo<T>` functions
8
+ */
9
+ export declare type ItemToEntityFunction<T> = (i: IItem, ro?: IRequestOptions) => Promise<T>;
10
+ /**
11
+ * Generic search that returns Hub Entity types converted from items
12
+ * by the passed in `ItemToEntityFunction`
13
+ *
14
+ * This abstraction is used to ensure that searching from any of the
15
+ * entity managers / modules is consistent, and returns the entity
16
+ * types, instead of `IItem` or `IHubContent`
17
+ *
18
+ * @param filter
19
+ * @param convertFn
20
+ * @param options
21
+ * @returns
22
+ */
23
+ export declare function searchContentEntities<T>(filter: Filter<"content">, convertFn: ItemToEntityFunction<T>, options: IHubSearchOptions): Promise<ISearchResponse<T>>;
24
+ /**
25
+ * Return a function that holds a closure containing
26
+ * a hub entity specific conversion function. This
27
+ * allows the `.next()` function to use the function on
28
+ * subsequent calls
29
+ * @param convertFn
30
+ * @returns
31
+ */
32
+ export declare function createContentEntitySearchFn<T>(convertFn: ItemToEntityFunction<T>): (v: ISearchOptions) => Promise<ISearchResponse<T>>;
@@ -1,6 +1,6 @@
1
1
  import { IUser } from "@esri/arcgis-rest-auth";
2
2
  import { IGroup, ISearchOptions } from "@esri/arcgis-rest-portal";
3
- import { ISearchResponse } from "..";
3
+ import { ISearchResponse } from "../types";
4
4
  import { IMatchOptions, IDateRange, IRelativeDate, IWellKnownApis, IApiDefinition, NamedApis } from "./types";
5
5
  /**
6
6
  * Well known APIs