@esri/hub-common 9.40.0 → 9.41.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 (62) hide show
  1. package/dist/es2017/index.js +1 -0
  2. package/dist/es2017/index.js.map +1 -1
  3. package/dist/es2017/search/_internal/portalSearchGroups.js.map +1 -1
  4. package/dist/es2017/search/_internal/portalSearchUsers.js +89 -0
  5. package/dist/es2017/search/_internal/portalSearchUsers.js.map +1 -0
  6. package/dist/es2017/search/hubSearch.js +4 -1
  7. package/dist/es2017/search/hubSearch.js.map +1 -1
  8. package/dist/es2017/urls/getUserHomeUrl.js +12 -0
  9. package/dist/es2017/urls/getUserHomeUrl.js.map +1 -0
  10. package/dist/es2017/urls/index.js +1 -0
  11. package/dist/es2017/urls/index.js.map +1 -1
  12. package/dist/es2017/users/HubUsers.js +64 -0
  13. package/dist/es2017/users/HubUsers.js.map +1 -0
  14. package/dist/es2017/users/_internal/enrichments.js +85 -0
  15. package/dist/es2017/users/_internal/enrichments.js.map +1 -0
  16. package/dist/es2017/users/index.js +2 -0
  17. package/dist/es2017/users/index.js.map +1 -0
  18. package/dist/esm/index.js +1 -0
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/search/_internal/portalSearchGroups.js.map +1 -1
  21. package/dist/esm/search/_internal/portalSearchUsers.js +104 -0
  22. package/dist/esm/search/_internal/portalSearchUsers.js.map +1 -0
  23. package/dist/esm/search/hubSearch.js +4 -1
  24. package/dist/esm/search/hubSearch.js.map +1 -1
  25. package/dist/esm/urls/getUserHomeUrl.js +12 -0
  26. package/dist/esm/urls/getUserHomeUrl.js.map +1 -0
  27. package/dist/esm/urls/index.js +1 -0
  28. package/dist/esm/urls/index.js.map +1 -1
  29. package/dist/esm/users/HubUsers.js +66 -0
  30. package/dist/esm/users/HubUsers.js.map +1 -0
  31. package/dist/esm/users/_internal/enrichments.js +86 -0
  32. package/dist/esm/users/_internal/enrichments.js.map +1 -0
  33. package/dist/esm/users/index.js +2 -0
  34. package/dist/esm/users/index.js.map +1 -0
  35. package/dist/node/index.js +1 -0
  36. package/dist/node/index.js.map +1 -1
  37. package/dist/node/search/_internal/portalSearchGroups.js.map +1 -1
  38. package/dist/node/search/_internal/portalSearchUsers.js +93 -0
  39. package/dist/node/search/_internal/portalSearchUsers.js.map +1 -0
  40. package/dist/node/search/hubSearch.js +4 -1
  41. package/dist/node/search/hubSearch.js.map +1 -1
  42. package/dist/node/urls/getUserHomeUrl.js +16 -0
  43. package/dist/node/urls/getUserHomeUrl.js.map +1 -0
  44. package/dist/node/urls/index.js +1 -0
  45. package/dist/node/urls/index.js.map +1 -1
  46. package/dist/node/users/HubUsers.js +68 -0
  47. package/dist/node/users/HubUsers.js.map +1 -0
  48. package/dist/node/users/_internal/enrichments.js +89 -0
  49. package/dist/node/users/_internal/enrichments.js.map +1 -0
  50. package/dist/node/users/index.js +5 -0
  51. package/dist/node/users/index.js.map +1 -0
  52. package/dist/types/index.d.ts +1 -0
  53. package/dist/types/search/_internal/portalSearchUsers.d.ts +8 -0
  54. package/dist/types/search/types/types.d.ts +17 -1
  55. package/dist/types/urls/getUserHomeUrl.d.ts +10 -0
  56. package/dist/types/urls/index.d.ts +1 -0
  57. package/dist/types/users/HubUsers.d.ts +11 -0
  58. package/dist/types/users/_internal/enrichments.d.ts +28 -0
  59. package/dist/types/users/index.d.ts +1 -0
  60. package/dist/umd/common.umd.js +274 -23
  61. package/dist/umd/common.umd.js.map +1 -1
  62. package/package.json +1 -1
@@ -28,6 +28,7 @@ export * from "./utils";
28
28
  export * from "./Hub";
29
29
  export * from "./pages";
30
30
  export * from "./org";
31
+ export * from "./users";
31
32
  import OperationStack from "./OperationStack";
32
33
  import OperationError from "./OperationError";
33
34
  import HubError from "./HubError";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAEhB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAEhB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AAExB,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"portalSearchGroups.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchGroups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portalSearchGroups.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchGroups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { searchUsers, } from "@esri/arcgis-rest-portal";
2
+ import { enrichUserSearchResult } from "../..";
3
+ import HubError from "../../HubError";
4
+ import { expandFilter, serializeFilterGroupsForPortal } from "../filter-utils";
5
+ import { getNextFunction } from "../utils";
6
+ /**
7
+ * @private
8
+ * Portal Search implementation for Users
9
+ * @param filterGroups
10
+ * @param options
11
+ */
12
+ export async function portalSearchUsers(filterGroups, options) {
13
+ // requestOptions is always required and user must be authd
14
+ if (!options.requestOptions) {
15
+ throw new HubError("portalSearchUsers", "requestOptions: IHubRequestOptions is required.");
16
+ }
17
+ if (!options.requestOptions.authentication) {
18
+ throw new HubError("portalSearchUsers", "requestOptions must pass authentication.");
19
+ }
20
+ // Expand the individual filters in each of the groups
21
+ const expandedGroups = filterGroups.map((fg) => {
22
+ fg.filters = fg.filters.map(expandFilter);
23
+ return fg;
24
+ });
25
+ // Serialize the all the groups for portal
26
+ const so = serializeFilterGroupsForPortal(expandedGroups);
27
+ // Array of properties we want to copy from IHubSearchOptions to the ISearchOptions
28
+ const props = [
29
+ "num",
30
+ "sortField",
31
+ "sortOrder",
32
+ "include",
33
+ "start",
34
+ "requestOptions",
35
+ ];
36
+ // copy the props over
37
+ props.forEach((prop) => {
38
+ if (options.hasOwnProperty(prop)) {
39
+ so[prop] = options[prop];
40
+ }
41
+ });
42
+ // Ensure authentication gets sent
43
+ so.authentication = options.requestOptions.authentication;
44
+ // Execute search
45
+ return searchPortal(so);
46
+ }
47
+ /**
48
+ * Internal portal search, which then converts `IGroup`s to `IHubSearchResult`s
49
+ * handling enrichments & includes along the way
50
+ *
51
+ * @param searchOptions
52
+ * @returns
53
+ */
54
+ async function searchPortal(searchOptions) {
55
+ // Execute portal search
56
+ const resp = await searchUsers(searchOptions);
57
+ // create mappable fn that will close
58
+ // over the includes and requestOptions
59
+ const fn = (user) => {
60
+ return userToSearchResult(user, searchOptions.include, searchOptions.requestOptions);
61
+ };
62
+ // map over results
63
+ const results = await Promise.all(resp.results.map(fn));
64
+ // Group Search does not support aggregations
65
+ // Construct the return
66
+ return {
67
+ total: resp.total,
68
+ results,
69
+ facets: [],
70
+ hasNext: resp.nextStart > -1,
71
+ next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),
72
+ };
73
+ }
74
+ /**
75
+ * Convert an Item to a IHubSearchResult
76
+ * Fetches the includes and attaches them to the item
77
+ * @param item
78
+ * @param includes
79
+ * @param requestOptions
80
+ * @returns
81
+ */
82
+ async function userToSearchResult(user, includes = [], requestOptions) {
83
+ // Delegate to HubGroups module
84
+ // This layer of indirection is not necessary but
85
+ // aligns with how the items search works and
86
+ // allows for future specialization
87
+ return enrichUserSearchResult(user, includes, requestOptions);
88
+ }
89
+ //# sourceMappingURL=portalSearchUsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalSearchUsers.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchUsers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import HubError from "../HubError";
2
2
  import { getProp } from "../objects";
3
+ import { cloneObject } from "../util";
3
4
  import { expandApi } from "./utils";
4
5
  import { hubSearchItems, portalSearchItems, portalSearchGroups, } from "./_internal";
6
+ import { portalSearchUsers } from "./_internal/portalSearchUsers";
5
7
  /**
6
8
  * Main Search function for ArcGIS Hub
7
9
  *
@@ -34,6 +36,7 @@ export async function hubSearch(filterGroups, options) {
34
36
  arcgis: {
35
37
  item: portalSearchItems,
36
38
  group: portalSearchGroups,
39
+ user: portalSearchUsers,
37
40
  },
38
41
  "arcgis-hub": {
39
42
  item: hubSearchItems,
@@ -43,6 +46,6 @@ export async function hubSearch(filterGroups, options) {
43
46
  if (!fn) {
44
47
  throw new HubError(`hubSearch`, `Search via "${filterType}" filter against "${apiType}" api is not implemented`);
45
48
  }
46
- return fn(filterGroups, options);
49
+ return fn(cloneObject(filterGroups), options);
47
50
  }
48
51
  //# sourceMappingURL=hubSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AASrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,YAA6C,EAC7C,OAA0B;IAE1B,kBAAkB;IAClB,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACjD,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;KACH;IACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACxB,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,oDAAoD,CACrD,CAAC;KACH;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;QAC3B,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;KACH;IAED,8BAA8B;IAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;KACtB;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,UAAwB,CAAC;IAC5D,cAAc;IACd,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC;IAExD,MAAM,MAAM,GAAG;QACb,MAAM,EAAE;YACN,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,kBAAkB;SAC1B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,cAAc;SACrB;KACF,CAAC;IAEF,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,eAAe,UAAU,qBAAqB,OAAO,0BAA0B,CAChF,CAAC;KACH;IACD,OAAO,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAStC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,YAA6C,EAC7C,OAA0B;IAE1B,kBAAkB;IAClB,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACjD,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;KACH;IACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACxB,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,oDAAoD,CACrD,CAAC;KACH;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;QAC3B,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;KACH;IAED,8BAA8B;IAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;KACtB;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,UAAwB,CAAC;IAC5D,cAAc;IACd,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC;IAExD,MAAM,MAAM,GAAG;QACb,MAAM,EAAE;YACN,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,iBAAiB;SACxB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,cAAc;SACrB;KACF,CAAC;IAEF,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,eAAe,UAAU,qBAAqB,OAAO,0BAA0B,CAChF,CAAC;KACH;IACD,OAAO,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { getPortalUrl } from "./get-portal-url";
2
+ /**
3
+ * Return the URL of the user's page in the Portal Home application
4
+ * @param username The username
5
+ * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those
6
+ * @returns URL to the user's profile, defaults to `https://www.arcgis.com/home/user.html?user={username}`
7
+ */
8
+ export function getUserHomeUrl(username, portalUrlOrObject) {
9
+ const portalUrl = getPortalUrl(portalUrlOrObject);
10
+ return `${portalUrl}/home/user.html?user=${username}`;
11
+ }
12
+ //# sourceMappingURL=getUserHomeUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserHomeUrl.js","sourceRoot":"","sources":["../../../src/urls/getUserHomeUrl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,iBAA2E;IAE3E,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAClD,OAAO,GAAG,SAAS,wBAAwB,QAAQ,EAAE,CAAC;AACxD,CAAC"}
@@ -17,6 +17,7 @@ export * from "./convert-urls-to-anchor-tags";
17
17
  export * from "./getHubApiFromPortalUrl";
18
18
  export * from "./getPortalBaseFromOrgUrl";
19
19
  export * from "./getGroupHomeUrl";
20
+ export * from "./getUserHomeUrl";
20
21
  const MAP_OR_FEATURE_SERVER_URL_REGEX = /\/(map|feature)server/i;
21
22
  /**
22
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAElC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAE,EAAE;IACrD,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,YAAY,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC;AAC/D,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAE,EAAE;IACrD,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,YAAY,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC;AAC/D,CAAC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { fetchUserEnrichments } from "./_internal/enrichments";
2
+ import { getProp } from "../objects";
3
+ import { getUserThumbnailUrl } from "../search";
4
+ import { parseInclude } from "../search/_internal/parseInclude";
5
+ import { getUserHomeUrl } from "../urls";
6
+ import { unique } from "../util";
7
+ import { mapBy } from "../utils";
8
+ /**
9
+ * Enrich a User object
10
+ * @param user
11
+ * @param includes
12
+ * @param requestOptions
13
+ * @returns
14
+ */
15
+ export async function enrichUserSearchResult(user, include, requestOptions) {
16
+ // Create the basic structure
17
+ const result = {
18
+ access: user.access,
19
+ id: user.username,
20
+ type: "User",
21
+ name: user.fullName,
22
+ owner: user.username,
23
+ summary: user.description,
24
+ createdDate: new Date(user.created),
25
+ createdDateSource: "user.created",
26
+ updatedDate: new Date(user.modified),
27
+ updatedDateSource: "user.modified",
28
+ family: "people",
29
+ links: {
30
+ self: "not-implemented",
31
+ siteRelative: "not-implemented",
32
+ thumbnail: "not-implemented",
33
+ },
34
+ };
35
+ // Informal Enrichments - basically adding type-specific props
36
+ // derived directly from the entity
37
+ // default includes
38
+ const DEFAULTS = ["org.name AS orgName"];
39
+ // merge includes
40
+ include = [...DEFAULTS, ...include].filter(unique);
41
+ // Parse the includes into a valid set of enrichments
42
+ const specs = include.map(parseInclude);
43
+ // Extract out the low-level enrichments needed
44
+ const enrichments = mapBy("enrichment", specs).filter(unique);
45
+ // fetch the enrichments
46
+ let enriched = {};
47
+ // Ignoring the else, because we currently have defaults, but want the guards
48
+ // so if we remove that in the future, we don't call the fn
49
+ /* istanbul ignore else */
50
+ if (enrichments.length) {
51
+ enriched = await fetchUserEnrichments(user, enrichments, requestOptions);
52
+ }
53
+ // map the enriched props onto the result
54
+ specs.forEach((spec) => {
55
+ result[spec.prop] = getProp(enriched, spec.path);
56
+ });
57
+ const token = requestOptions.authentication.token;
58
+ // Handle links
59
+ result.links.thumbnail = getUserThumbnailUrl(requestOptions.portal, user, token);
60
+ result.links.self = getUserHomeUrl(result.id, requestOptions);
61
+ result.links.siteRelative = `/people/${result.id}`;
62
+ return result;
63
+ }
64
+ //# sourceMappingURL=HubUsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HubUsers.js","sourceRoot":"","sources":["../../../src/users/HubUsers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAoB,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAW,EACX,OAAiB,EACjB,cAAkC;IAElC,6BAA6B;IAC7B,MAAM,MAAM,GAAqB;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAqB;QAClC,EAAE,EAAE,IAAI,CAAC,QAAQ;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,KAAK,EAAE,IAAI,CAAC,QAAQ;QACpB,OAAO,EAAE,IAAI,CAAC,WAAW;QACzB,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,iBAAiB,EAAE,cAAc;QACjC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,iBAAiB,EAAE,eAAe;QAClC,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE;YACL,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,iBAAiB;YAC/B,SAAS,EAAE,iBAAiB;SAC7B;KACF,CAAC;IAEF,8DAA8D;IAC9D,mCAAmC;IAEnC,mBAAmB;IACnB,MAAM,QAAQ,GAAa,CAAC,qBAAqB,CAAC,CAAC;IAEnD,iBAAiB;IACjB,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,qDAAqD;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,+CAA+C;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,wBAAwB;IACxB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,6EAA6E;IAC7E,2DAA2D;IAC3D,0BAA0B;IAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;QACtB,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;KAC1E;IAED,yCAAyC;IACzC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC;IAElD,eAAe;IACf,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAC1C,cAAc,CAAC,MAAM,EACrB,IAAI,EACJ,KAAK,CACN,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,WAAW,MAAM,CAAC,EAAE,EAAE,CAAC;IAEnD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { getPortalBaseFromOrgUrl, fetchOrg } from "../..";
2
+ import { getEnrichmentErrors } from "../../items/_enrichments";
3
+ import OperationStack from "../../OperationStack";
4
+ import { createOperationPipeline } from "../../utils";
5
+ const enrichUserOrg = (input) => {
6
+ const { data, stack, requestOptions } = input;
7
+ const opId = stack.start("enrichUserOrg");
8
+ const options = Object.assign(Object.assign({}, requestOptions), {
9
+ // In order to get the correct response, we must pass options.portal
10
+ // as a base portal url (e.g., www.arcgis.com, qaext.arcgis.com, etc)
11
+ // **not** an org portal (i.e. org.maps.arcgis.com).
12
+ portal: `${getPortalBaseFromOrgUrl(requestOptions.portal)}/sharing/rest` });
13
+ // TODO: Add Caching
14
+ // Had implemented a simple caching system, but it leads to unstable
15
+ // tests because we can't deterministically clear it
16
+ // if (!orgCache[data.user.orgId]) {
17
+ // orgCache[data.user.orgId] = fetchOrg(data.user.orgId, options);
18
+ // }
19
+ // return (orgCache[data.user.orgId] as Promise<IPortal>)
20
+ return fetchOrg(data.user.orgId, options)
21
+ .then((results) => {
22
+ stack.finish(opId);
23
+ return {
24
+ data: Object.assign(Object.assign({}, data), {
25
+ org: results,
26
+ }),
27
+ stack,
28
+ requestOptions,
29
+ };
30
+ })
31
+ .catch((error) => handleEnrichmentError(error, input, opId));
32
+ };
33
+ /**
34
+ * Simple cache for user org's. This does not expire
35
+ * but that seems reasonable as Org props rarely change
36
+ */
37
+ // This works find at run-time, but it's a problem in tests
38
+ // where we are validating calls. Will work with Randy to
39
+ // create something that's more robust
40
+ // const orgCache: Record<string, any> = {};
41
+ // add the error to the content.errors,
42
+ // log current stack operation as finished with an error
43
+ // and return output that can be piped into the next operation
44
+ const handleEnrichmentError = (error, input, opId) => {
45
+ const { data, stack, requestOptions } = input;
46
+ stack.finish(opId, { error });
47
+ return {
48
+ data: Object.assign(Object.assign({}, data), { errors: getEnrichmentErrors(error, data.errors) }),
49
+ stack,
50
+ requestOptions,
51
+ };
52
+ };
53
+ /**
54
+ * Available enrichments for Groups
55
+ */
56
+ const groupEnrichementOperations = {
57
+ org: enrichUserOrg,
58
+ };
59
+ /**
60
+ * Fetch enrichments for Users
61
+ * @param group
62
+ * @param enrichments
63
+ * @param requestOptions
64
+ * @returns
65
+ */
66
+ export function fetchUserEnrichments(user, enrichments, requestOptions) {
67
+ // create a pipeline of enrichment operations
68
+ const operations = enrichments.reduce((ops, enrichment) => {
69
+ const operation = groupEnrichementOperations[enrichment];
70
+ // only include the enrichments that we know how to fetch
71
+ operation && ops.push(operation);
72
+ return ops;
73
+ }, []);
74
+ const pipeline = createOperationPipeline(operations);
75
+ // execute pipeline and return the item and enrichments
76
+ return pipeline({
77
+ data: { user },
78
+ stack: new OperationStack(),
79
+ requestOptions,
80
+ }).then((output) => {
81
+ // TODO: send telemetry so we have info on what enrichments are requested and possible errors
82
+ return output.data;
83
+ });
84
+ }
85
+ //# sourceMappingURL=enrichments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichments.js","sourceRoot":"","sources":["../../../../src/users/_internal/enrichments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAa,MAAM,aAAa,CAAC;AAgCjE,MAAM,aAAa,GAAG,CACpB,KAAqC,EACI,EAAE;IAC3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC1C,MAAM,OAAO,mCACR,cAAc;QACjB,oEAAoE;QACpE,qEAAqE;QACrE,oDAAoD;QACpD,MAAM,EAAE,GAAG,uBAAuB,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,GACzE,CAAC;IACF,oBAAoB;IACpB,oEAAoE;IACpE,oDAAoD;IACpD,oCAAoC;IACpC,oEAAoE;IACpE,IAAI;IAEJ,yDAAyD;IACzD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;SACtC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO;YACL,IAAI,kCACC,IAAI,GACJ;gBACD,GAAG,EAAE,OAAO;aACb,CACF;YACD,KAAK;YACL,cAAc;SACf,CAAC;IACJ,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;;GAGG;AACH,2DAA2D;AAC3D,yDAAyD;AACzD,sCAAsC;AACtC,4CAA4C;AAE5C,uCAAuC;AACvC,wDAAwD;AACxD,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,CAC5B,KAAqB,EACrB,KAAqC,EACrC,IAAY,EACoB,EAAE;IAClC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC9C,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9B,OAAO;QACL,IAAI,kCACC,IAAI,KACP,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAChD;QACD,KAAK;QACL,cAAc;KACf,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,0BAA0B,GAA8B;IAC5D,GAAG,EAAE,aAAa;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAW,EACX,WAA6B,EAC7B,cAAmC;IAEnC,6CAA6C;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;QACxD,MAAM,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;QACzD,yDAAyD;QACzD,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,QAAQ,GAAG,uBAAuB,CAAsB,UAAU,CAAC,CAAC;IAC1E,uDAAuD;IACvD,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,EAAE,IAAI,EAAE;QACd,KAAK,EAAE,IAAI,cAAc,EAAE;QAC3B,cAAc;KACf,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACjB,6FAA6F;QAC7F,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./HubUsers";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/users/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
package/dist/esm/index.js CHANGED
@@ -28,6 +28,7 @@ export * from "./utils";
28
28
  export * from "./Hub";
29
29
  export * from "./pages";
30
30
  export * from "./org";
31
+ export * from "./users";
31
32
  import OperationStack from "./OperationStack";
32
33
  import OperationError from "./OperationError";
33
34
  import HubError from "./HubError";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAEhB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAEhB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AAExB,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"portalSearchGroups.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchGroups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portalSearchGroups.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchGroups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { searchUsers, } from "@esri/arcgis-rest-portal";
3
+ import { enrichUserSearchResult } from "../..";
4
+ import HubError from "../../HubError";
5
+ import { expandFilter, serializeFilterGroupsForPortal } from "../filter-utils";
6
+ import { getNextFunction } from "../utils";
7
+ /**
8
+ * @private
9
+ * Portal Search implementation for Users
10
+ * @param filterGroups
11
+ * @param options
12
+ */
13
+ export function portalSearchUsers(filterGroups, options) {
14
+ return __awaiter(this, void 0, void 0, function () {
15
+ var expandedGroups, so, props;
16
+ return __generator(this, function (_a) {
17
+ // requestOptions is always required and user must be authd
18
+ if (!options.requestOptions) {
19
+ throw new HubError("portalSearchUsers", "requestOptions: IHubRequestOptions is required.");
20
+ }
21
+ if (!options.requestOptions.authentication) {
22
+ throw new HubError("portalSearchUsers", "requestOptions must pass authentication.");
23
+ }
24
+ expandedGroups = filterGroups.map(function (fg) {
25
+ fg.filters = fg.filters.map(expandFilter);
26
+ return fg;
27
+ });
28
+ so = serializeFilterGroupsForPortal(expandedGroups);
29
+ props = [
30
+ "num",
31
+ "sortField",
32
+ "sortOrder",
33
+ "include",
34
+ "start",
35
+ "requestOptions",
36
+ ];
37
+ // copy the props over
38
+ props.forEach(function (prop) {
39
+ if (options.hasOwnProperty(prop)) {
40
+ so[prop] = options[prop];
41
+ }
42
+ });
43
+ // Ensure authentication gets sent
44
+ so.authentication = options.requestOptions.authentication;
45
+ // Execute search
46
+ return [2 /*return*/, searchPortal(so)];
47
+ });
48
+ });
49
+ }
50
+ /**
51
+ * Internal portal search, which then converts `IGroup`s to `IHubSearchResult`s
52
+ * handling enrichments & includes along the way
53
+ *
54
+ * @param searchOptions
55
+ * @returns
56
+ */
57
+ function searchPortal(searchOptions) {
58
+ return __awaiter(this, void 0, void 0, function () {
59
+ var resp, fn, results;
60
+ return __generator(this, function (_a) {
61
+ switch (_a.label) {
62
+ case 0: return [4 /*yield*/, searchUsers(searchOptions)];
63
+ case 1:
64
+ resp = _a.sent();
65
+ fn = function (user) {
66
+ return userToSearchResult(user, searchOptions.include, searchOptions.requestOptions);
67
+ };
68
+ return [4 /*yield*/, Promise.all(resp.results.map(fn))];
69
+ case 2:
70
+ results = _a.sent();
71
+ // Group Search does not support aggregations
72
+ // Construct the return
73
+ return [2 /*return*/, {
74
+ total: resp.total,
75
+ results: results,
76
+ facets: [],
77
+ hasNext: resp.nextStart > -1,
78
+ next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),
79
+ }];
80
+ }
81
+ });
82
+ });
83
+ }
84
+ /**
85
+ * Convert an Item to a IHubSearchResult
86
+ * Fetches the includes and attaches them to the item
87
+ * @param item
88
+ * @param includes
89
+ * @param requestOptions
90
+ * @returns
91
+ */
92
+ function userToSearchResult(user, includes, requestOptions) {
93
+ if (includes === void 0) { includes = []; }
94
+ return __awaiter(this, void 0, void 0, function () {
95
+ return __generator(this, function (_a) {
96
+ // Delegate to HubGroups module
97
+ // This layer of indirection is not necessary but
98
+ // aligns with how the items search works and
99
+ // allows for future specialization
100
+ return [2 /*return*/, enrichUserSearchResult(user, includes, requestOptions)];
101
+ });
102
+ });
103
+ }
104
+ //# sourceMappingURL=portalSearchUsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalSearchUsers.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchUsers.ts"],"names":[],"mappings":";AAAA,OAAO,EAGL,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAU,MAAM,OAAO,CAAC;AAEvD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAQ/E,OAAO,EAAa,eAAe,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAgB,iBAAiB,CACrC,YAAyC,EACzC,OAA0B;;;;YAE1B,2DAA2D;YAC3D,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC3B,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,iDAAiD,CAClD,CAAC;aACH;YAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE;gBAC1C,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,0CAA0C,CAC3C,CAAC;aACH;YAGK,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,UAAC,EAAE;gBACzC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1C,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAGG,EAAE,GAAG,8BAA8B,CAAC,cAAc,CAAC,CAAC;YAEpD,KAAK,GAAmC;gBAC5C,KAAK;gBACL,WAAW;gBACX,WAAW;gBACX,SAAS;gBACT,OAAO;gBACP,gBAAgB;aACjB,CAAC;YACF,sBAAsB;YACtB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;gBACjB,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBAChC,EAAE,CAAC,IAA4B,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;iBAClD;YACH,CAAC,CAAC,CAAC;YAEH,kCAAkC;YAClC,EAAE,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC;YAE1D,iBAAiB;YACjB,sBAAO,YAAY,CAAC,EAAwB,CAAC,EAAC;;;CAC/C;AAED;;;;;;GAMG;AACH,SAAe,YAAY,CACzB,aAAiC;;;;;wBAGpB,qBAAM,WAAW,CAAC,aAAa,CAAC,EAAA;;oBAAvC,IAAI,GAAG,SAAgC;oBAIvC,EAAE,GAAG,UAAC,IAAW;wBACrB,OAAO,kBAAkB,CACvB,IAAI,EACJ,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,cAAc,CAC7B,CAAC;oBACJ,CAAC,CAAC;oBAGc,qBAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAA;;oBAAjD,OAAO,GAAG,SAAuC;oBAEvD,6CAA6C;oBAC7C,uBAAuB;oBACvB,sBAAO;4BACL,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,OAAO,SAAA;4BACP,MAAM,EAAE,EAAE;4BACV,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;4BAC5B,IAAI,EAAE,eAAe,CACnB,aAAa,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,EACV,YAAY,CACb;yBACF,EAAC;;;;CACH;AAED;;;;;;;GAOG;AACH,SAAe,kBAAkB,CAC/B,IAAW,EACX,QAAuB,EACvB,cAAmC;IADnC,yBAAA,EAAA,aAAuB;;;YAGvB,+BAA+B;YAC/B,iDAAiD;YACjD,6CAA6C;YAC7C,mCAAmC;YACnC,sBAAO,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAC;;;CAC/D"}
@@ -1,8 +1,10 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
2
  import HubError from "../HubError";
3
3
  import { getProp } from "../objects";
4
+ import { cloneObject } from "../util";
4
5
  import { expandApi } from "./utils";
5
6
  import { hubSearchItems, portalSearchItems, portalSearchGroups, } from "./_internal";
7
+ import { portalSearchUsers } from "./_internal/portalSearchUsers";
6
8
  /**
7
9
  * Main Search function for ArcGIS Hub
8
10
  *
@@ -36,6 +38,7 @@ export function hubSearch(filterGroups, options) {
36
38
  arcgis: {
37
39
  item: portalSearchItems,
38
40
  group: portalSearchGroups,
41
+ user: portalSearchUsers,
39
42
  },
40
43
  "arcgis-hub": {
41
44
  item: hubSearchItems,
@@ -45,7 +48,7 @@ export function hubSearch(filterGroups, options) {
45
48
  if (!fn) {
46
49
  throw new HubError("hubSearch", "Search via \"" + filterType + "\" filter against \"" + apiType + "\" api is not implemented");
47
50
  }
48
- return [2 /*return*/, fn(filterGroups, options)];
51
+ return [2 /*return*/, fn(cloneObject(filterGroups), options)];
49
52
  });
50
53
  });
51
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AASrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB;;;;;;;;GAQG;AACH,MAAM,UAAgB,SAAS,CAC7B,YAA6C,EAC7C,OAA0B;;;;YAE1B,kBAAkB;YAClB,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACjD,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;aACH;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACxB,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,oDAAoD,CACrD,CAAC;aACH;YAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC3B,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;aACH;YAED,8BAA8B;YAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;aACtB;YAGK,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,UAAwB,CAAC;YAEtD,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC;YAElD,MAAM,GAAG;gBACb,MAAM,EAAE;oBACN,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,kBAAkB;iBAC1B;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,cAAc;iBACrB;aACF,CAAC;YAEI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAK,OAAO,SAAI,UAAY,CAAC,CAAC;YACvD,IAAI,CAAC,EAAE,EAAE;gBACP,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,kBAAe,UAAU,4BAAqB,OAAO,8BAA0B,CAChF,CAAC;aACH;YACD,sBAAO,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,EAAC;;;CAClC"}
1
+ {"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAStC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAgB,SAAS,CAC7B,YAA6C,EAC7C,OAA0B;;;;YAE1B,kBAAkB;YAClB,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACjD,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;aACH;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACxB,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,oDAAoD,CACrD,CAAC;aACH;YAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC3B,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,iDAAiD,CAClD,CAAC;aACH;YAED,8BAA8B;YAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;aACtB;YAGK,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,UAAwB,CAAC;YAEtD,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC;YAElD,MAAM,GAAG;gBACb,MAAM,EAAE;oBACN,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,kBAAkB;oBACzB,IAAI,EAAE,iBAAiB;iBACxB;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,cAAc;iBACrB;aACF,CAAC;YAEI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAK,OAAO,SAAI,UAAY,CAAC,CAAC;YACvD,IAAI,CAAC,EAAE,EAAE;gBACP,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,kBAAe,UAAU,4BAAqB,OAAO,8BAA0B,CAChF,CAAC;aACH;YACD,sBAAO,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EAAC;;;CAC/C"}
@@ -0,0 +1,12 @@
1
+ import { getPortalUrl } from "./get-portal-url";
2
+ /**
3
+ * Return the URL of the user's page in the Portal Home application
4
+ * @param username The username
5
+ * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those
6
+ * @returns URL to the user's profile, defaults to `https://www.arcgis.com/home/user.html?user={username}`
7
+ */
8
+ export function getUserHomeUrl(username, portalUrlOrObject) {
9
+ var portalUrl = getPortalUrl(portalUrlOrObject);
10
+ return portalUrl + "/home/user.html?user=" + username;
11
+ }
12
+ //# sourceMappingURL=getUserHomeUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserHomeUrl.js","sourceRoot":"","sources":["../../../src/urls/getUserHomeUrl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,iBAA2E;IAE3E,IAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAClD,OAAU,SAAS,6BAAwB,QAAU,CAAC;AACxD,CAAC"}
@@ -17,6 +17,7 @@ export * from "./convert-urls-to-anchor-tags";
17
17
  export * from "./getHubApiFromPortalUrl";
18
18
  export * from "./getPortalBaseFromOrgUrl";
19
19
  export * from "./getGroupHomeUrl";
20
+ export * from "./getUserHomeUrl";
20
21
  var MAP_OR_FEATURE_SERVER_URL_REGEX = /\/(map|feature)server/i;
21
22
  /**
22
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAElC,IAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,GAAW;IACjD,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,GAAW;IAC/C,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACzD,IAAM,YAAY,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,YAAY,IAAO,UAAU,CAAC,YAAY,CAAC,aAAU,CAAC;AAC/D,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,IAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,GAAW;IACjD,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,GAAW;IAC/C,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACzD,IAAM,YAAY,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,YAAY,IAAO,UAAU,CAAC,YAAY,CAAC,aAAU,CAAC;AAC/D,CAAC,CAAC"}