@esri/hub-common 9.7.1 → 9.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/es2017/content.js +20 -9
  2. package/dist/es2017/content.js.map +1 -1
  3. package/dist/es2017/search/_searchContent.js +66 -53
  4. package/dist/es2017/search/_searchContent.js.map +1 -1
  5. package/dist/es2017/search/_searchGroups.js +67 -41
  6. package/dist/es2017/search/_searchGroups.js.map +1 -1
  7. package/dist/es2017/search/_searchUsers.js +83 -0
  8. package/dist/es2017/search/_searchUsers.js.map +1 -0
  9. package/dist/es2017/search/index.js +2 -0
  10. package/dist/es2017/search/index.js.map +1 -1
  11. package/dist/es2017/search/user-utils.js +132 -0
  12. package/dist/es2017/search/user-utils.js.map +1 -0
  13. package/dist/es2017/search/utils.js +76 -37
  14. package/dist/es2017/search/utils.js.map +1 -1
  15. package/dist/es2017/sites/upgrade-site-schema.js +3 -0
  16. package/dist/es2017/sites/upgrade-site-schema.js.map +1 -1
  17. package/dist/esm/content.js +20 -9
  18. package/dist/esm/content.js.map +1 -1
  19. package/dist/esm/search/_searchContent.js +71 -62
  20. package/dist/esm/search/_searchContent.js.map +1 -1
  21. package/dist/esm/search/_searchGroups.js +75 -49
  22. package/dist/esm/search/_searchGroups.js.map +1 -1
  23. package/dist/esm/search/_searchUsers.js +88 -0
  24. package/dist/esm/search/_searchUsers.js.map +1 -0
  25. package/dist/esm/search/index.js +2 -0
  26. package/dist/esm/search/index.js.map +1 -1
  27. package/dist/esm/search/user-utils.js +136 -0
  28. package/dist/esm/search/user-utils.js.map +1 -0
  29. package/dist/esm/search/utils.js +76 -37
  30. package/dist/esm/search/utils.js.map +1 -1
  31. package/dist/esm/sites/upgrade-site-schema.js +3 -0
  32. package/dist/esm/sites/upgrade-site-schema.js.map +1 -1
  33. package/dist/node/content.js +21 -10
  34. package/dist/node/content.js.map +1 -1
  35. package/dist/node/search/_searchContent.js +65 -52
  36. package/dist/node/search/_searchContent.js.map +1 -1
  37. package/dist/node/search/_searchGroups.js +67 -41
  38. package/dist/node/search/_searchGroups.js.map +1 -1
  39. package/dist/node/search/_searchUsers.js +87 -0
  40. package/dist/node/search/_searchUsers.js.map +1 -0
  41. package/dist/node/search/index.js +2 -0
  42. package/dist/node/search/index.js.map +1 -1
  43. package/dist/node/search/user-utils.js +138 -0
  44. package/dist/node/search/user-utils.js.map +1 -0
  45. package/dist/node/search/utils.js +81 -39
  46. package/dist/node/search/utils.js.map +1 -1
  47. package/dist/node/sites/upgrade-site-schema.js +3 -0
  48. package/dist/node/sites/upgrade-site-schema.js.map +1 -1
  49. package/dist/types/content.d.ts +13 -2
  50. package/dist/types/search/_searchContent.d.ts +3 -2
  51. package/dist/types/search/_searchGroups.d.ts +3 -2
  52. package/dist/types/search/_searchUsers.d.ts +28 -0
  53. package/dist/types/search/index.d.ts +2 -0
  54. package/dist/types/search/types.d.ts +20 -2
  55. package/dist/types/search/user-utils.d.ts +35 -0
  56. package/dist/types/search/utils.d.ts +39 -8
  57. package/dist/types/types.d.ts +17 -0
  58. package/dist/umd/common.umd.js +477 -154
  59. package/dist/umd/common.umd.js.map +1 -1
  60. package/dist/umd/common.umd.min.js +1 -1
  61. package/dist/umd/common.umd.min.js.map +1 -1
  62. package/package.json +2 -2
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeUserFilterForPortal = exports.expandUserFilter = exports.mergeUserFilters = void 0;
4
+ const __1 = require("..");
5
+ /**
6
+ *
7
+ * Merge `Filter<"user">` objects
8
+ *
9
+ * Useful in components which may get partial filters from a variety of
10
+ * sub-components, which are then combined into a single filter prior
11
+ * to executing the search.
12
+ * @param filters
13
+ * @returns
14
+ */
15
+ function mergeUserFilters(filters) {
16
+ // expand all the filters so all prop types are consistent
17
+ const expanded = filters.map(expandUserFilter);
18
+ // now we can merge based on fields
19
+ const dateFields = ["created", "modified", "lastlogin"];
20
+ const specialFields = ["disabled", "term", "filterType", ...dateFields];
21
+ // acc is initialized as Filter<group> but also needs it
22
+ // in the function signature... for reasons?!
23
+ const result = expanded.reduce((acc, entry) => {
24
+ // process fields
25
+ Object.entries(entry).forEach(([key, value]) => {
26
+ // Note: getProp/setProp are used to get around
27
+ // typescript issues with string indexing
28
+ if (acc.hasOwnProperty(key)) {
29
+ const existingValue = __1.getProp(acc, key);
30
+ // if the key is not to a special field
31
+ if (!specialFields.includes(key)) {
32
+ // treat as an IMatchOptions
33
+ __1.setProp(key, __1.mergeMatchOptions(existingValue, value), acc);
34
+ }
35
+ else if (dateFields.includes(key)) {
36
+ // treat as IDateRange
37
+ __1.setProp(key, __1.mergeDateRange(existingValue, value), acc);
38
+ }
39
+ else if (key === "term") {
40
+ // append terms
41
+ acc[key] = `${acc[key]} ${value}`;
42
+ }
43
+ }
44
+ else {
45
+ // Acc does not have an entry for this yet
46
+ // so just clone it
47
+ __1.setProp(key, __1.cloneObject(value), acc);
48
+ }
49
+ });
50
+ return acc;
51
+ }, {
52
+ filterType: "user",
53
+ });
54
+ return result;
55
+ }
56
+ exports.mergeUserFilters = mergeUserFilters;
57
+ /**
58
+ * Prior to serialization into the query syntax for the backing APIs, we first expand [Filters](../Filter)
59
+ *
60
+ * Filter's can express their intent in a very terse form, but to ensure consistent structures
61
+ * we expand them into their more verbose form.
62
+ *
63
+ * i.e. `firstname: "John"` expands into `firstname: { any: ["John"]}`
64
+ *
65
+ * - Fields defined as `string | string[] | MatchOptions` will be converted to a `MatchOptions`
66
+ * - RelativeDate fields are converted to DateRange<number>
67
+ * @param filter
68
+ * @returns
69
+ */
70
+ function expandUserFilter(filter) {
71
+ const result = {};
72
+ const dateProps = ["created", "modified", "lastlogin"];
73
+ const specialProps = ["disabled", "term", ...dateProps];
74
+ Object.entries(filter).forEach(([key, value]) => {
75
+ // handle Matchish fields
76
+ if (!specialProps.includes(key)) {
77
+ // setProp side-steps typescript complaining
78
+ __1.setProp(key, __1.valueToMatchOptions(value), result);
79
+ }
80
+ // Handle date fields
81
+ if (dateProps.includes(key)) {
82
+ const dateFieldValue = __1.cloneObject(__1.getProp(filter, key));
83
+ if (__1.getProp(filter, `${key}.type`) === "relative-date") {
84
+ __1.setProp(key, __1.relativeDateToDateRange(dateFieldValue), result);
85
+ }
86
+ else {
87
+ __1.setProp(key, dateFieldValue, result);
88
+ }
89
+ }
90
+ });
91
+ // disabled is boolean, so we check if the prop exists
92
+ // vs checking if the value is truthy
93
+ if (filter.hasOwnProperty("disabled")) {
94
+ result.disabled = filter.disabled;
95
+ }
96
+ if (filter.term) {
97
+ result.term = filter.term;
98
+ }
99
+ return result;
100
+ }
101
+ exports.expandUserFilter = expandUserFilter;
102
+ /**
103
+ * @private
104
+ * Serialize an `IUserFilterDefinition` into an `ISearchOptions` for use
105
+ * with `searchUsers`
106
+ * @param filter
107
+ * @returns
108
+ */
109
+ function serializeUserFilterForPortal(filter) {
110
+ let result = {
111
+ q: "",
112
+ filter: "",
113
+ };
114
+ const dateProps = ["created", "modified", "lastlogin"];
115
+ const specialProps = ["term", "filterType", ...dateProps];
116
+ Object.entries(filter).forEach(([key, value]) => {
117
+ // MatchOptions fields
118
+ if (!specialProps.includes(key)) {
119
+ result = __1.mergeSearchOptions(result, __1.serializeMatchOptions(key, value), "AND");
120
+ }
121
+ // Dates only go into q
122
+ if (dateProps.includes(key)) {
123
+ result = __1.mergeSearchOptions(result, __1.serializeDateRange(key, value), "AND");
124
+ }
125
+ });
126
+ // disabled is also a top-level property
127
+ if (filter.hasOwnProperty("disabled")) {
128
+ result.disabled = filter.disabled;
129
+ }
130
+ // add the term
131
+ if (filter.term) {
132
+ // Note: this is slightly different from other types
133
+ result.q = `(${filter.term}) ${result.q}`.trim();
134
+ }
135
+ return result;
136
+ }
137
+ exports.serializeUserFilterForPortal = serializeUserFilterForPortal;
138
+ //# sourceMappingURL=user-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-utils.js","sourceRoot":"","sources":["../../../src/search/user-utils.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  /* Copyright (c) 2018-2021 Environmental Systems Research Institute, Inc.
3
3
  * Apache-2.0 */
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.serializeStringOrArray = exports.serializeDateRange = exports.serializeMatchOptions = exports.mergeSearchOptions = exports.relativeDateToDateRange = exports.valueToMatchOptions = exports.mergeMatchOptions = exports.mergeDateRange = exports.mergeSearchResults = exports.expandApis = exports.SEARCH_APIS = void 0;
5
+ exports.getUserThumbnailUrl = exports.getGroupThumbnailUrl = exports.getNextFunction = exports.serializeStringOrArray = exports.serializeDateRange = exports.serializeMatchOptions = exports.mergeSearchOptions = exports.relativeDateToDateRange = exports.valueToMatchOptions = exports.mergeMatchOptions = exports.mergeDateRange = exports.expandApi = exports.expandApis = exports.SEARCH_APIS = void 0;
6
+ const arcgis_rest_auth_1 = require("@esri/arcgis-rest-auth");
6
7
  const util_1 = require("../util");
7
8
  /**
8
9
  * Well known APIs
@@ -42,55 +43,30 @@ exports.SEARCH_APIS = {
42
43
  };
43
44
  /**
44
45
  * @private
45
- * Convert api "names" into full ApiDefinitions
46
+ * Convert array of api "names" into full ApiDefinitions
46
47
  * @param apis
47
48
  * @returns
48
49
  */
49
50
  function expandApis(apis) {
50
- return apis.map((api) => {
51
- if (typeof api === "string" && api in exports.SEARCH_APIS) {
52
- return exports.SEARCH_APIS[api];
53
- }
54
- else {
55
- // it's an object, so we trust that it's well formed
56
- return api;
57
- }
58
- });
51
+ return apis.map(expandApi);
59
52
  }
60
53
  exports.expandApis = expandApis;
61
54
  /**
62
55
  * @private
63
- * Merge multiple search responses
64
- *
65
- * Naieve implementation that just merges arrays
66
- * @param responses
56
+ * Convert an api "name" into a full ApiDefinition
57
+ * @param api
67
58
  * @returns
68
59
  */
69
- function mergeSearchResults(responses) {
70
- // Merge content
71
- const results = responses.reduce((acc, response) => {
72
- if (response.results) {
73
- acc = acc.concat(response.results);
74
- }
75
- return acc;
76
- }, []);
77
- // Merge Facets
78
- const facets = responses.reduce((acc, response) => {
79
- if (response.facets) {
80
- acc = acc.concat(response.facets);
81
- }
82
- return acc;
83
- }, []);
84
- // Total
85
- const total = responses.reduce((acc, entry) => {
86
- if (entry.total) {
87
- acc = acc + entry.total;
88
- }
89
- return acc;
90
- }, 0);
91
- return { total, results, facets };
60
+ function expandApi(api) {
61
+ if (typeof api === "string" && api in exports.SEARCH_APIS) {
62
+ return exports.SEARCH_APIS[api];
63
+ }
64
+ else {
65
+ // it's an object, so we trust that it's well formed
66
+ return api;
67
+ }
92
68
  }
93
- exports.mergeSearchResults = mergeSearchResults;
69
+ exports.expandApi = expandApi;
94
70
  /**
95
71
  * @private
96
72
  * Merge two date ranges by taking the longest span
@@ -361,4 +337,70 @@ function serializeStringOrArray(join, key, value) {
361
337
  return q;
362
338
  }
363
339
  exports.serializeStringOrArray = serializeStringOrArray;
340
+ /**
341
+ * Create a `.next()` function for a type
342
+ * @param request
343
+ * @param nextStart
344
+ * @param total
345
+ * @param fn
346
+ * @returns
347
+ */
348
+ function getNextFunction(request, nextStart, total, fn) {
349
+ const clonedRequest = util_1.cloneObject(request);
350
+ // clone will not handle authentication so we do it manually
351
+ if (request.authentication) {
352
+ clonedRequest.authentication = arcgis_rest_auth_1.UserSession.deserialize(request.authentication.serialize());
353
+ }
354
+ // figure out the start
355
+ clonedRequest.start = nextStart > -1 ? nextStart : total + 1;
356
+ return (authentication) => {
357
+ if (authentication) {
358
+ clonedRequest.authentication = authentication;
359
+ }
360
+ return fn(clonedRequest);
361
+ };
362
+ }
363
+ exports.getNextFunction = getNextFunction;
364
+ /**
365
+ * Construct a the full url to a group thumbnail
366
+ *
367
+ * - If the group has a thumbnail, construct the full url
368
+ * - If the group is not public, append on the token
369
+ * @param portalUrl
370
+ * @param group
371
+ * @param token
372
+ * @returns
373
+ */
374
+ function getGroupThumbnailUrl(portalUrl, group, token) {
375
+ let thumbnailUrl = null;
376
+ if (group.thumbnail) {
377
+ thumbnailUrl = `${portalUrl}/community/groups/${group.id}/info/${group.thumbnail}`;
378
+ if (token && group.access !== "public") {
379
+ thumbnailUrl = `${thumbnailUrl}?token=${token}`;
380
+ }
381
+ }
382
+ return thumbnailUrl;
383
+ }
384
+ exports.getGroupThumbnailUrl = getGroupThumbnailUrl;
385
+ /**
386
+ * Construct a the full url to a user thumbnail
387
+ *
388
+ * - If the user has a thumbnail, construct the full url
389
+ * - If the user is not public, append on the token
390
+ * @param portalUrl
391
+ * @param user
392
+ * @param token
393
+ * @returns
394
+ */
395
+ function getUserThumbnailUrl(portalUrl, user, token) {
396
+ let thumbnailUrl = null;
397
+ if (user.thumbnail) {
398
+ thumbnailUrl = `${portalUrl}/community/users/${user.username}/info/${user.thumbnail}`;
399
+ if (token && user.access !== "public") {
400
+ thumbnailUrl = `${thumbnailUrl}?token=${token}`;
401
+ }
402
+ }
403
+ return thumbnailUrl;
404
+ }
405
+ exports.getUserThumbnailUrl = getUserThumbnailUrl;
364
406
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/search/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/search/utils.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,9 @@ function upgradeSiteSchema(model) {
25
25
  model = _purge_non_guids_from_catalog_1._purgeNonGuidsFromCatalog(model);
26
26
  model = _ensure_telemetry_1._ensureTelemetry(model);
27
27
  model = _migrate_feed_config_1._migrateFeedConfig(model);
28
+ // WARNING - If you are writing a site schema migration,
29
+ // you probably need to apply it to site drafts as well!
30
+ // See https://github.com/Esri/hub.js/issues/498 for more details.
28
31
  return model;
29
32
  }
30
33
  }
@@ -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,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAbD,8CAaC"}
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"}
@@ -203,7 +203,7 @@ export declare function datasetToContent(dataset: DatasetResource): IHubContent;
203
203
  */
204
204
  export declare function datasetToItem(dataset: DatasetResource): IItem;
205
205
  /**
206
- * retunrs a new content that has the specified type and
206
+ * returns a new content that has the specified type and
207
207
  * and updated related properties like normalizedType, family, etc
208
208
  * @param content orignal content
209
209
  * @param type new type
@@ -211,12 +211,23 @@ export declare function datasetToItem(dataset: DatasetResource): IItem;
211
211
  */
212
212
  export declare const setContentType: (content: IHubContent, type: string) => IHubContent;
213
213
  /**
214
- * retunrs a new content that has the specified hubId and updated identifier
214
+ * returns a new content that has the specified hubId and updated identifier
215
215
  * @param content orignal content
216
216
  * @param hubId new hubId
217
217
  * @returns new content
218
218
  */
219
219
  export declare const setContentHubId: (content: IHubContent, hubId: string) => IHubContent;
220
+ /**
221
+ * Calculates the relative and absolute urls for a given content on a specific site
222
+ *
223
+ * @param content
224
+ * @param siteModel
225
+ * @returns relative and absolute urls
226
+ */
227
+ export declare const getContentSiteUrls: (content: IHubContent, siteModel: IModel) => {
228
+ relative: string;
229
+ absolute: string;
230
+ };
220
231
  /**
221
232
  * append the absolute URL to the content on the site
222
233
  * also updates the relative URL in case the
@@ -1,7 +1,8 @@
1
- import { Filter, IHubSearchOptions, IContentSearchResult } from "./types";
1
+ import { Filter, IHubSearchOptions } from "./types";
2
+ import { IHubContent, ISearchResponse } from "..";
2
3
  /**
3
4
  * Search for content via the Portal or Hub API
4
5
  * @param filter
5
6
  * @param options
6
7
  */
7
- export declare function _searchContent(filter: Filter<"content">, options: IHubSearchOptions): Promise<IContentSearchResult>;
8
+ export declare function _searchContent(filter: Filter<"content">, options: IHubSearchOptions): Promise<ISearchResponse<IHubContent>>;
@@ -1,5 +1,6 @@
1
- import { IGroup, ISearchResult } from "@esri/arcgis-rest-portal";
1
+ import { IGroup } from "@esri/arcgis-rest-portal";
2
2
  import { Filter, IFacet, IHubSearchOptions } from "./types";
3
+ import { ISearchResponse } from "..";
3
4
  export interface IGroupSearchResult {
4
5
  groups: IGroup[];
5
6
  facets: IFacet[];
@@ -12,4 +13,4 @@ export interface IGroupSearchResult {
12
13
  * @param options
13
14
  * @returns
14
15
  */
15
- export declare function _searchGroups(filter: Filter<"group">, options: IHubSearchOptions): Promise<ISearchResult<IGroup>>;
16
+ export declare function _searchGroups(filter: Filter<"group">, options: IHubSearchOptions): Promise<ISearchResponse<IGroup>>;
@@ -0,0 +1,28 @@
1
+ import { IUser, UserSession } from "@esri/arcgis-rest-auth";
2
+ import { Filter, IHubSearchOptions, ISearchResponse } from "..";
3
+ /**
4
+ * Extends IHubSearchOptions to make auth mandatory
5
+ */
6
+ export interface IAuthenticatedHubSearchOptions extends IHubSearchOptions {
7
+ authentication: UserSession;
8
+ }
9
+ /**
10
+ * Extends `IUser` with url optional props for the user's
11
+ * profile and thumbnail
12
+ */
13
+ export interface IHubUser extends IUser {
14
+ profileUrl?: string;
15
+ thumbnailUrl?: string;
16
+ }
17
+ /**
18
+ * Search for Users via the Portal API.
19
+ *
20
+ * **Note** Authentication is required
21
+ *
22
+ * Note: in the future, there may be options to search via
23
+ * a Hub specific API
24
+ * @param filter
25
+ * @param options
26
+ * @returns
27
+ */
28
+ export declare function _searchUsers(filter: Filter<"user">, options: IAuthenticatedHubSearchOptions): Promise<ISearchResponse<IHubUser>>;
@@ -1,7 +1,9 @@
1
1
  export * from "./hub-api-search";
2
2
  export * from "./content-utils";
3
3
  export * from "./group-utils";
4
+ export * from "./user-utils";
4
5
  export * from "./utils";
5
6
  export * from "./types";
6
7
  export * from "./_searchContent";
7
8
  export * from "./_searchGroups";
9
+ export * from "./_searchUsers";
@@ -105,16 +105,21 @@ export interface IWellKnownContentFilters {
105
105
  }
106
106
  export declare type NamedContentFilter = keyof IWellKnownContentFilters;
107
107
  export interface IUserFilterDefinition {
108
+ created?: IDateRange<number> | IRelativeDate;
108
109
  disabled?: boolean;
109
110
  email?: string | string[] | IMatchOptions;
110
111
  firstname?: string | string[] | IMatchOptions;
111
112
  fullname?: string | string[] | IMatchOptions;
112
113
  groups?: string | string[] | IMatchOptions;
114
+ lastlogin?: IDateRange<number> | IRelativeDate;
113
115
  lastname?: string | string[] | IMatchOptions;
116
+ modified?: IDateRange<number> | IRelativeDate;
117
+ role?: string | string[] | IMatchOptions;
118
+ term?: string;
119
+ userlicensetype?: string | string[] | IMatchOptions;
114
120
  username?: string | string[] | IMatchOptions;
115
121
  }
116
122
  export interface IGroupFilterDefinition {
117
- term?: string;
118
123
  access?: string | string[] | IMatchOptions;
119
124
  created?: IDateRange<number> | IRelativeDate;
120
125
  id?: string | string[] | IMatchOptions;
@@ -124,6 +129,7 @@ export interface IGroupFilterDefinition {
124
129
  owner?: string | string[] | IMatchOptions;
125
130
  searchUserAccess?: "groupMember";
126
131
  tags?: string | string[] | IMatchOptions;
132
+ term?: string;
127
133
  title?: string | string[] | IMatchOptions;
128
134
  typekeywords?: string | string[] | IMatchOptions;
129
135
  }
@@ -207,6 +213,9 @@ export interface ICatalog {
207
213
  collections?: ICollection[];
208
214
  facets?: IFacet[];
209
215
  }
216
+ /**
217
+ * Sort Option to be displayed in a UI
218
+ */
210
219
  export interface ISortOption {
211
220
  label: string;
212
221
  attribute: string;
@@ -219,11 +228,18 @@ export interface ICollection {
219
228
  filter: Filter<FilterType>;
220
229
  facets?: IFacet[];
221
230
  }
231
+ /**
232
+ * Defines a span of time by specifying a `from` and `to` Date
233
+ * as either a number or a ISO string
234
+ */
222
235
  export interface IDateRange<T> {
223
236
  type?: "date-range";
224
237
  from: T;
225
238
  to: T;
226
239
  }
240
+ /**
241
+ * Relative Date will be convertd to a `IDateRange` at run-time
242
+ */
227
243
  export interface IRelativeDate {
228
244
  type: "relative-date";
229
245
  num: number;
@@ -270,7 +286,7 @@ export interface IHubSearchOptions {
270
286
  aggregations?: string[];
271
287
  bbox?: string;
272
288
  fields?: string;
273
- apis?: Array<NamedApis | IApiDefinition>;
289
+ api?: NamedApis | IApiDefinition;
274
290
  }
275
291
  /**
276
292
  * searchContent return
@@ -279,6 +295,8 @@ export interface IContentSearchResult {
279
295
  total: number;
280
296
  results: IHubContent[];
281
297
  facets?: IFacet[];
298
+ hasNext: boolean;
299
+ next: (params?: any) => Promise<IContentSearchResult>;
282
300
  }
283
301
  export interface IWellKnownApis {
284
302
  arcgis: IApiDefinition;
@@ -0,0 +1,35 @@
1
+ import { ISearchOptions } from "@esri/arcgis-rest-portal";
2
+ import { Filter, IUserFilterDefinition } from "..";
3
+ /**
4
+ *
5
+ * Merge `Filter<"user">` objects
6
+ *
7
+ * Useful in components which may get partial filters from a variety of
8
+ * sub-components, which are then combined into a single filter prior
9
+ * to executing the search.
10
+ * @param filters
11
+ * @returns
12
+ */
13
+ export declare function mergeUserFilters(filters: Array<Filter<"user">>): Filter<"user">;
14
+ /**
15
+ * Prior to serialization into the query syntax for the backing APIs, we first expand [Filters](../Filter)
16
+ *
17
+ * Filter's can express their intent in a very terse form, but to ensure consistent structures
18
+ * we expand them into their more verbose form.
19
+ *
20
+ * i.e. `firstname: "John"` expands into `firstname: { any: ["John"]}`
21
+ *
22
+ * - Fields defined as `string | string[] | MatchOptions` will be converted to a `MatchOptions`
23
+ * - RelativeDate fields are converted to DateRange<number>
24
+ * @param filter
25
+ * @returns
26
+ */
27
+ export declare function expandUserFilter(filter: Filter<"user">): IUserFilterDefinition;
28
+ /**
29
+ * @private
30
+ * Serialize an `IUserFilterDefinition` into an `ISearchOptions` for use
31
+ * with `searchUsers`
32
+ * @param filter
33
+ * @returns
34
+ */
35
+ export declare function serializeUserFilterForPortal(filter: IUserFilterDefinition): ISearchOptions;
@@ -1,5 +1,7 @@
1
- import { ISearchOptions } from "@esri/arcgis-rest-portal";
2
- import { IMatchOptions, IDateRange, IRelativeDate, IWellKnownApis, IApiDefinition, NamedApis, IContentSearchResult } from "./types";
1
+ import { IUser } from "@esri/arcgis-rest-auth";
2
+ import { IGroup, ISearchOptions } from "@esri/arcgis-rest-portal";
3
+ import { ISearchResponse } from "..";
4
+ import { IMatchOptions, IDateRange, IRelativeDate, IWellKnownApis, IApiDefinition, NamedApis } from "./types";
3
5
  /**
4
6
  * Well known APIs
5
7
  * Short-forms for specifying common APIs
@@ -7,20 +9,18 @@ import { IMatchOptions, IDateRange, IRelativeDate, IWellKnownApis, IApiDefinitio
7
9
  export declare const SEARCH_APIS: IWellKnownApis;
8
10
  /**
9
11
  * @private
10
- * Convert api "names" into full ApiDefinitions
12
+ * Convert array of api "names" into full ApiDefinitions
11
13
  * @param apis
12
14
  * @returns
13
15
  */
14
16
  export declare function expandApis(apis: Array<NamedApis | IApiDefinition>): IApiDefinition[];
15
17
  /**
16
18
  * @private
17
- * Merge multiple search responses
18
- *
19
- * Naieve implementation that just merges arrays
20
- * @param responses
19
+ * Convert an api "name" into a full ApiDefinition
20
+ * @param api
21
21
  * @returns
22
22
  */
23
- export declare function mergeSearchResults(responses: IContentSearchResult[]): IContentSearchResult;
23
+ export declare function expandApi(api: NamedApis | IApiDefinition): IApiDefinition;
24
24
  /**
25
25
  * @private
26
26
  * Merge two date ranges by taking the longest span
@@ -90,3 +90,34 @@ export declare function serializeDateRange(key: string, range: IDateRange<number
90
90
  * @returns
91
91
  */
92
92
  export declare function serializeStringOrArray(join: "AND" | "OR", key: string, value: string | string[]): string;
93
+ /**
94
+ * Create a `.next()` function for a type
95
+ * @param request
96
+ * @param nextStart
97
+ * @param total
98
+ * @param fn
99
+ * @returns
100
+ */
101
+ export declare function getNextFunction<T>(request: ISearchOptions, nextStart: number, total: number, fn: (r: any) => Promise<ISearchResponse<T>>): () => Promise<ISearchResponse<T>>;
102
+ /**
103
+ * Construct a the full url to a group thumbnail
104
+ *
105
+ * - If the group has a thumbnail, construct the full url
106
+ * - If the group is not public, append on the token
107
+ * @param portalUrl
108
+ * @param group
109
+ * @param token
110
+ * @returns
111
+ */
112
+ export declare function getGroupThumbnailUrl(portalUrl: string, group: IGroup, token?: string): string;
113
+ /**
114
+ * Construct a the full url to a user thumbnail
115
+ *
116
+ * - If the user has a thumbnail, construct the full url
117
+ * - If the user is not public, append on the token
118
+ * @param portalUrl
119
+ * @param user
120
+ * @param token
121
+ * @returns
122
+ */
123
+ export declare function getUserThumbnailUrl(portalUrl: string, user: IUser, token?: string): string;
@@ -3,6 +3,7 @@ import { IPortal, ISearchResult } from "@esri/arcgis-rest-portal";
3
3
  import { UserSession } from "@esri/arcgis-rest-auth";
4
4
  import { IStructuredLicense } from "./items/get-structured-license";
5
5
  import { IRequestOptions } from "@esri/arcgis-rest-request";
6
+ import { IFacet } from "./search";
6
7
  /**
7
8
  * Generic Model, used with all items that have a json
8
9
  * `/data` payload
@@ -395,4 +396,20 @@ export interface IHubTeam extends IGroup {
395
396
  [key: string]: any;
396
397
  };
397
398
  }
399
+ /**
400
+ * Defines a generic search response interface with parameterized result type
401
+ * for different types of searches
402
+ *
403
+ * total - total number of results
404
+ * results - potentially paginated list of results
405
+ * hasNext - boolean flag for if there are any more pages ofresults
406
+ * next - invokable function for obtaining next page of results
407
+ */
408
+ export interface ISearchResponse<T> {
409
+ total: number;
410
+ results: T[];
411
+ hasNext: boolean;
412
+ next: (params?: any) => Promise<ISearchResponse<T>>;
413
+ facets?: IFacet[];
414
+ }
398
415
  export {};