@esri/hub-common 9.45.2 → 9.45.3
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.
- package/dist/es2017/search/_internal/ifilter-utils.js.map +1 -1
- package/dist/es2017/search/_internal/index.js +1 -0
- package/dist/es2017/search/_internal/index.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchGroups.js +1 -56
- package/dist/es2017/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchItems.js +1 -87
- package/dist/es2017/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchUsers.js +0 -43
- package/dist/es2017/search/_internal/portalSearchUsers.js.map +1 -1
- package/dist/es2017/search/filter-utils.js +0 -197
- package/dist/es2017/search/filter-utils.js.map +1 -1
- package/dist/es2017/search/hubSearch.js +9 -38
- package/dist/es2017/search/hubSearch.js.map +1 -1
- package/dist/esm/search/_internal/ifilter-utils.js.map +1 -1
- package/dist/esm/search/_internal/index.js +1 -0
- package/dist/esm/search/_internal/index.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchGroups.js +1 -57
- package/dist/esm/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchItems.js +1 -88
- package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchUsers.js +0 -45
- package/dist/esm/search/_internal/portalSearchUsers.js.map +1 -1
- package/dist/esm/search/filter-utils.js +0 -198
- package/dist/esm/search/filter-utils.js.map +1 -1
- package/dist/esm/search/hubSearch.js +9 -37
- package/dist/esm/search/hubSearch.js.map +1 -1
- package/dist/node/search/_internal/ifilter-utils.js.map +1 -1
- package/dist/node/search/_internal/index.js +1 -0
- package/dist/node/search/_internal/index.js.map +1 -1
- package/dist/node/search/_internal/portalSearchGroups.js +1 -57
- package/dist/node/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/node/search/_internal/portalSearchItems.js +2 -90
- package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/node/search/_internal/portalSearchUsers.js +1 -45
- package/dist/node/search/_internal/portalSearchUsers.js.map +1 -1
- package/dist/node/search/filter-utils.js +1 -200
- package/dist/node/search/filter-utils.js.map +1 -1
- package/dist/node/search/hubSearch.js +12 -41
- package/dist/node/search/hubSearch.js.map +1 -1
- package/dist/types/search/_internal/index.d.ts +1 -0
- package/dist/types/search/_internal/portalSearchGroups.d.ts +1 -10
- package/dist/types/search/_internal/portalSearchItems.d.ts +1 -15
- package/dist/types/search/_internal/portalSearchUsers.d.ts +1 -9
- package/dist/types/search/filter-utils.d.ts +0 -17
- package/dist/types/search/hubSearch.d.ts +7 -4
- package/dist/types/search/types/IHubCatalog.d.ts +38 -2
- package/dist/umd/common.umd.js +33 -441
- package/dist/umd/common.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifilter-utils.js","sourceRoot":"","sources":["../../../../src/search/_internal/ifilter-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ifilter-utils.js","sourceRoot":"","sources":["../../../../src/search/_internal/ifilter-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,63 +1,8 @@
|
|
|
1
1
|
import { searchGroups } from "@esri/arcgis-rest-portal";
|
|
2
2
|
import { HubError } from "../../index";
|
|
3
3
|
import { enrichGroupSearchResult } from "../../groups/HubGroups";
|
|
4
|
-
import { expandFilter, serializeFilterGroupsForPortal } from "../filter-utils";
|
|
5
4
|
import { expandPredicate, serializeQueryForPortal } from "./ifilter-utils";
|
|
6
|
-
import {
|
|
7
|
-
/**
|
|
8
|
-
* @private
|
|
9
|
-
* DEPRECATED: Use `portalSerchGroups`
|
|
10
|
-
* Portal Search Implementation for Groups
|
|
11
|
-
* @param filterGroups
|
|
12
|
-
* @param options
|
|
13
|
-
* @returns
|
|
14
|
-
*/
|
|
15
|
-
export async function portalSearchGroupsFilterGroups(filterGroups, options) {
|
|
16
|
-
// API
|
|
17
|
-
const api = expandApi(options.api || "arcgis");
|
|
18
|
-
if (!options.requestOptions) {
|
|
19
|
-
if (options.authentication) {
|
|
20
|
-
// create minimal requestOptions
|
|
21
|
-
options.requestOptions = {
|
|
22
|
-
authentication: options.authentication,
|
|
23
|
-
portal: options.authentication.portal,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
options.requestOptions = {
|
|
28
|
-
portal: `${api.url}/sharing/rest`,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
// Expand the individual filters in each of the groups
|
|
33
|
-
const expandedGroups = filterGroups.map((fg) => {
|
|
34
|
-
fg.filters = fg.filters.map(expandFilter);
|
|
35
|
-
return fg;
|
|
36
|
-
});
|
|
37
|
-
// Serialize the all the groups for portal
|
|
38
|
-
const so = serializeFilterGroupsForPortal(expandedGroups);
|
|
39
|
-
// Array of properties we want to copy from IHubSearchOptions to the ISearchOptions
|
|
40
|
-
const props = [
|
|
41
|
-
"authentication",
|
|
42
|
-
"num",
|
|
43
|
-
"sortField",
|
|
44
|
-
"sortOrder",
|
|
45
|
-
"include",
|
|
46
|
-
"start",
|
|
47
|
-
"requestOptions",
|
|
48
|
-
];
|
|
49
|
-
// copy the props over
|
|
50
|
-
props.forEach((prop) => {
|
|
51
|
-
if (options.hasOwnProperty(prop)) {
|
|
52
|
-
so[prop] = options[prop];
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
// If we don't have auth, ensure we have .portal
|
|
56
|
-
if (!so.authentication) {
|
|
57
|
-
so.portal = so.requestOptions.portal || `${api.url}/sharing/rest`;
|
|
58
|
-
}
|
|
59
|
-
return searchPortal(so);
|
|
60
|
-
}
|
|
5
|
+
import { getNextFunction } from "../utils";
|
|
61
6
|
/**
|
|
62
7
|
* @private
|
|
63
8
|
* Portal Search Implementation for Groups
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalSearchGroups.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchGroups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"portalSearchGroups.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchGroups.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,58 +4,8 @@ import { expandPredicate, serializeQueryForPortal } from "./ifilter-utils";
|
|
|
4
4
|
import { enrichPageSearchResult } from "../../pages/HubPages";
|
|
5
5
|
import { enrichProjectSearchResult } from "../../projects";
|
|
6
6
|
import { enrichSiteSearchResult } from "../../sites";
|
|
7
|
-
import { expandFilter, serializeFilterGroupsForPortal } from "../filter-utils";
|
|
8
7
|
import { getNextFunction } from "../utils";
|
|
9
8
|
import { convertPortalAggregations } from "./portalSearchUtils";
|
|
10
|
-
/**
|
|
11
|
-
* @private
|
|
12
|
-
* DEPRECATED
|
|
13
|
-
* @param filterGroups
|
|
14
|
-
* @param options
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
export async function portalSearchItemsFilterGroups(filterGroups, options) {
|
|
18
|
-
var _a;
|
|
19
|
-
if (!options.requestOptions) {
|
|
20
|
-
throw new HubError("hubSearch", "requestOptions: IHubRequestOptions is required.");
|
|
21
|
-
}
|
|
22
|
-
// Expand well-known filterGroups
|
|
23
|
-
const replaced = applyWellKnownItemFilterGroups(filterGroups);
|
|
24
|
-
// Expand the individual filters in each of the groups
|
|
25
|
-
const expandedGroups = replaced.map((fg) => {
|
|
26
|
-
fg.filters = fg.filters.map(expandFilter);
|
|
27
|
-
return fg;
|
|
28
|
-
});
|
|
29
|
-
// Serialize the all the groups for portal
|
|
30
|
-
const so = serializeFilterGroupsForPortal(expandedGroups);
|
|
31
|
-
// Array of properties we want to copy from IHubSearchOptions to the ISearchOptions
|
|
32
|
-
const props = [
|
|
33
|
-
"num",
|
|
34
|
-
"sortField",
|
|
35
|
-
"sortOrder",
|
|
36
|
-
"include",
|
|
37
|
-
"start",
|
|
38
|
-
"requestOptions",
|
|
39
|
-
];
|
|
40
|
-
// copy the props over
|
|
41
|
-
props.forEach((prop) => {
|
|
42
|
-
if (options.hasOwnProperty(prop)) {
|
|
43
|
-
so[prop] = options[prop];
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
if (options.requestOptions.authentication) {
|
|
47
|
-
so.authentication = options.requestOptions.authentication;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
so.portal = options.requestOptions.portal;
|
|
51
|
-
}
|
|
52
|
-
// Aggregations
|
|
53
|
-
if ((_a = options.aggFields) === null || _a === void 0 ? void 0 : _a.length) {
|
|
54
|
-
so.countFields = options.aggFields.join(",");
|
|
55
|
-
so.countSize = options.aggLimit || 10;
|
|
56
|
-
}
|
|
57
|
-
return searchPortal(so);
|
|
58
|
-
}
|
|
59
9
|
/**
|
|
60
10
|
* @private
|
|
61
11
|
* Portal Search Implementation for Items
|
|
@@ -361,39 +311,6 @@ export function applyWellKnownItemPredicates(query) {
|
|
|
361
311
|
});
|
|
362
312
|
return queryClone;
|
|
363
313
|
}
|
|
364
|
-
/**
|
|
365
|
-
* DEPRECATED
|
|
366
|
-
* @param filterGroups
|
|
367
|
-
* @returns
|
|
368
|
-
*/
|
|
369
|
-
export function applyWellKnownItemFilterGroups(filterGroups) {
|
|
370
|
-
const clone = cloneObject(filterGroups);
|
|
371
|
-
// iterate the filterGroups
|
|
372
|
-
const result = clone.map((filterGroup) => {
|
|
373
|
-
filterGroup.filters = filterGroup.filters.reduce((updated, filter) => {
|
|
374
|
-
// check if the filter.type is a well-known type
|
|
375
|
-
if (isWellKnownTypeFilter(filter.type)) {
|
|
376
|
-
// get the set of filters to replace the current filter with
|
|
377
|
-
const typeFilters = lookupTypeFilters(filter.type);
|
|
378
|
-
// Note: At this point we could try to "merge" in the other
|
|
379
|
-
// props on the filter, into all the filters returned from
|
|
380
|
-
// the well-known hash. The problem with this is that the
|
|
381
|
-
// combination may yield unexpected results; For now, if a filter
|
|
382
|
-
// includes `.type is keyof WellKnownItemFilters` we simply
|
|
383
|
-
// replace the entire filter with the array of filters returne
|
|
384
|
-
// from the hash
|
|
385
|
-
updated = [...updated, ...typeFilters];
|
|
386
|
-
}
|
|
387
|
-
else {
|
|
388
|
-
// filter does not have a well-known type entry so keep it
|
|
389
|
-
updated.push(filter);
|
|
390
|
-
}
|
|
391
|
-
return updated;
|
|
392
|
-
}, []);
|
|
393
|
-
return filterGroup;
|
|
394
|
-
});
|
|
395
|
-
return result;
|
|
396
|
-
}
|
|
397
314
|
/**
|
|
398
315
|
* Is the argument a well-known type "key"
|
|
399
316
|
*
|
|
@@ -411,13 +328,10 @@ export function isWellKnownTypeFilter(key) {
|
|
|
411
328
|
return result;
|
|
412
329
|
}
|
|
413
330
|
/**
|
|
414
|
-
*
|
|
331
|
+
* Return the predicates for a well-known type
|
|
415
332
|
* @param key
|
|
416
333
|
* @returns
|
|
417
334
|
*/
|
|
418
|
-
function lookupTypeFilters(key) {
|
|
419
|
-
return WellKnownItemFilters[key];
|
|
420
|
-
}
|
|
421
335
|
function lookupTypePredicates(key) {
|
|
422
336
|
const rawPredicates = WellKnownItemFilters[key];
|
|
423
337
|
// Remove the filterType property as it's not needed in an IPredicate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,iCAAiC,EACjC,yBAAyB,EACzB,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,50 +2,7 @@ import { searchUsers, } from "@esri/arcgis-rest-portal";
|
|
|
2
2
|
import { enrichUserSearchResult } from "../..";
|
|
3
3
|
import { expandPredicate, serializeQueryForPortal } from "./ifilter-utils";
|
|
4
4
|
import HubError from "../../HubError";
|
|
5
|
-
import { expandFilter, serializeFilterGroupsForPortal } from "../filter-utils";
|
|
6
5
|
import { getNextFunction } from "../utils";
|
|
7
|
-
/**
|
|
8
|
-
* @private
|
|
9
|
-
* DEPRECATED: Use `portalSearchUsers`
|
|
10
|
-
* Portal Search implementation for Users
|
|
11
|
-
* @param filterGroups
|
|
12
|
-
* @param options
|
|
13
|
-
*/
|
|
14
|
-
export async function portalSearchUsersFilterGroups(filterGroups, options) {
|
|
15
|
-
// requestOptions is always required and user must be authd
|
|
16
|
-
if (!options.requestOptions) {
|
|
17
|
-
throw new HubError("portalSearchUsers", "requestOptions: IHubRequestOptions is required.");
|
|
18
|
-
}
|
|
19
|
-
if (!options.requestOptions.authentication) {
|
|
20
|
-
throw new HubError("portalSearchUsers", "requestOptions must pass authentication.");
|
|
21
|
-
}
|
|
22
|
-
// Expand the individual filters in each of the groups
|
|
23
|
-
const expandedGroups = filterGroups.map((fg) => {
|
|
24
|
-
fg.filters = fg.filters.map(expandFilter);
|
|
25
|
-
return fg;
|
|
26
|
-
});
|
|
27
|
-
// Serialize the all the groups for portal
|
|
28
|
-
const so = serializeFilterGroupsForPortal(expandedGroups);
|
|
29
|
-
// Array of properties we want to copy from IHubSearchOptions to the ISearchOptions
|
|
30
|
-
const props = [
|
|
31
|
-
"num",
|
|
32
|
-
"sortField",
|
|
33
|
-
"sortOrder",
|
|
34
|
-
"include",
|
|
35
|
-
"start",
|
|
36
|
-
"requestOptions",
|
|
37
|
-
];
|
|
38
|
-
// copy the props over
|
|
39
|
-
props.forEach((prop) => {
|
|
40
|
-
if (options.hasOwnProperty(prop)) {
|
|
41
|
-
so[prop] = options[prop];
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
// Ensure authentication gets sent
|
|
45
|
-
so.authentication = options.requestOptions.authentication;
|
|
46
|
-
// Execute search
|
|
47
|
-
return searchPortal(so);
|
|
48
|
-
}
|
|
49
6
|
/**
|
|
50
7
|
* @private
|
|
51
8
|
* Portal Search Implementation for Users
|
|
@@ -1 +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,
|
|
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,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAQtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAA0B;IAE1B,2DAA2D;IAC3D,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;QAC3B,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,iDAAiD,CAClD,CAAC;KACH;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE;QAC1C,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,0CAA0C,CAC3C,CAAC;KACH;IAED,kDAAkD;IAClD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,EAAE,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC1C,mFAAmF;IACnF,MAAM,KAAK,GAAmC;QAC5C,KAAK;QACL,WAAW;QACX,WAAW;QACX,SAAS;QACT,OAAO;QACP,gBAAgB;KACjB,CAAC;IACF,sBAAsB;IACtB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAChC,EAAE,CAAC,IAA4B,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAClD;IACH,CAAC,CAAC,CAAC;IAEH,kEAAkE;IAClE,wBAAwB;IACxB,EAAE,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC;IAE1D,iBAAiB;IACjB,OAAO,YAAY,CAAC,EAAwB,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CACzB,aAAiC;IAEjC,wBAAwB;IACxB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IAE9C,qCAAqC;IACrC,uCAAuC;IACvC,MAAM,EAAE,GAAG,CAAC,IAAW,EAAE,EAAE;QACzB,OAAO,kBAAkB,CACvB,IAAI,EACJ,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,cAAc,CAC7B,CAAC;IACJ,CAAC,CAAC;IAEF,mBAAmB;IACnB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAExD,6CAA6C;IAC7C,uBAAuB;IACvB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO;QACP,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,IAAI,EAAE,eAAe,CACnB,aAAa,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,EACV,YAAY,CACb;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAAW,EACX,WAAqB,EAAE,EACvB,cAAmC;IAEnC,+BAA+B;IAC/B,iDAAiD;IACjD,6CAA6C;IAC7C,mCAAmC;IACnC,OAAO,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,200 +1,3 @@
|
|
|
1
|
-
import { getProp, setProp } from "../objects";
|
|
2
|
-
import { cloneObject } from "../util";
|
|
3
|
-
import { relativeDateToDateRange, valueToMatchOptions } from "./utils";
|
|
4
|
-
// DEPRECATED - REMOVE THIS FILE
|
|
5
|
-
/**
|
|
6
|
-
* Expand a Filter into it's more expressive structure so it can be
|
|
7
|
-
* serialized deterministically.
|
|
8
|
-
*
|
|
9
|
-
* Props with type `string | string[] | MatchOptions` expand into `IMatchOptions`
|
|
10
|
-
* Props relative-dates are expanded into formal date-ranges
|
|
11
|
-
* @param filter
|
|
12
|
-
* @returns
|
|
13
|
-
*/
|
|
14
|
-
export function expandFilter(filter) {
|
|
15
|
-
const result = {};
|
|
16
|
-
const dateProps = ["created", "modified", "lastlogin"];
|
|
17
|
-
const copyProps = [
|
|
18
|
-
"filterType",
|
|
19
|
-
"term",
|
|
20
|
-
"searchUserAccess",
|
|
21
|
-
"isopendata",
|
|
22
|
-
"searchUserName",
|
|
23
|
-
];
|
|
24
|
-
const nonMatchOptionsFields = [...dateProps, ...copyProps];
|
|
25
|
-
// Do the conversion
|
|
26
|
-
Object.entries(filter).forEach(([key, value]) => {
|
|
27
|
-
// Handle MatchOptions fields
|
|
28
|
-
if (!nonMatchOptionsFields.includes(key)) {
|
|
29
|
-
// setProp side-steps typescript complaining
|
|
30
|
-
setProp(key, valueToMatchOptions(value), result);
|
|
31
|
-
}
|
|
32
|
-
// Handle Date fields
|
|
33
|
-
if (dateProps.includes(key)) {
|
|
34
|
-
const dateFieldValue = cloneObject(getProp(filter, key));
|
|
35
|
-
if (getProp(filter, `${key}.type`) === "relative-date") {
|
|
36
|
-
setProp(key, relativeDateToDateRange(dateFieldValue), result);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
setProp(key, dateFieldValue, result);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Handle fields that are just copied forward
|
|
43
|
-
if (copyProps.includes(key) && filter.hasOwnProperty(key)) {
|
|
44
|
-
setProp(key, value, result);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Serialize a FilterGroup of any type for Portal
|
|
51
|
-
* @param filterGroups
|
|
52
|
-
* @returns
|
|
53
|
-
*/
|
|
54
|
-
export function serializeFilterGroupsForPortal(filterGroups) {
|
|
55
|
-
const groupSearchOptions = filterGroups.map(serializeGroup);
|
|
56
|
-
const result = mergeSearchOptions(groupSearchOptions, "AND");
|
|
57
|
-
return result;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Serialize the filters in a FitlerGroup into a Portal Query
|
|
61
|
-
* @param filterGroup
|
|
62
|
-
* @returns
|
|
63
|
-
*/
|
|
64
|
-
function serializeGroup(filterGroup) {
|
|
65
|
-
const operation = filterGroup.operation || "AND";
|
|
66
|
-
const filters = filterGroup.filters.map(expandFilter);
|
|
67
|
-
const filterSearchOptions = filters.map(serializeFilter);
|
|
68
|
-
// combine these searchOptions
|
|
69
|
-
const groupSearchOptions = mergeSearchOptions(filterSearchOptions, operation);
|
|
70
|
-
//
|
|
71
|
-
if (filters.length > 1) {
|
|
72
|
-
groupSearchOptions.q = `(${groupSearchOptions.q})`;
|
|
73
|
-
}
|
|
74
|
-
return groupSearchOptions;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Serialize a Filter into a Portal Query
|
|
78
|
-
* @param filter
|
|
79
|
-
* @returns
|
|
80
|
-
*/
|
|
81
|
-
function serializeFilter(filter) {
|
|
82
|
-
const dateProps = ["created", "modified"];
|
|
83
|
-
const boolProps = ["isopendata"];
|
|
84
|
-
const passThroughProps = ["searchUserAccess", "searchUserName"];
|
|
85
|
-
const specialProps = [
|
|
86
|
-
"filterType",
|
|
87
|
-
"term",
|
|
88
|
-
...dateProps,
|
|
89
|
-
...boolProps,
|
|
90
|
-
...passThroughProps,
|
|
91
|
-
];
|
|
92
|
-
let qCount = 0;
|
|
93
|
-
// TODO: Look at using reduce vs .map and remove the `.filter`
|
|
94
|
-
const opts = Object.entries(filter)
|
|
95
|
-
.map(([key, value]) => {
|
|
96
|
-
const so = { q: "" };
|
|
97
|
-
if (!specialProps.includes(key)) {
|
|
98
|
-
qCount++;
|
|
99
|
-
so.q = serializeMatchOptions(key, value);
|
|
100
|
-
}
|
|
101
|
-
if (dateProps.includes(key)) {
|
|
102
|
-
qCount++;
|
|
103
|
-
so.q = serializeDateRange(key, value);
|
|
104
|
-
}
|
|
105
|
-
if (boolProps.includes(key)) {
|
|
106
|
-
qCount++;
|
|
107
|
-
so.q = `${key}:${value}`;
|
|
108
|
-
}
|
|
109
|
-
if (passThroughProps.includes(key)) {
|
|
110
|
-
so[key] = value;
|
|
111
|
-
}
|
|
112
|
-
if (key === "term") {
|
|
113
|
-
qCount++;
|
|
114
|
-
so.q = value;
|
|
115
|
-
}
|
|
116
|
-
return so;
|
|
117
|
-
})
|
|
118
|
-
.filter((e) => e !== undefined);
|
|
119
|
-
// merge up all the searchOptions
|
|
120
|
-
const searchOptions = mergeSearchOptions(opts, "AND");
|
|
121
|
-
if (qCount > 1) {
|
|
122
|
-
searchOptions.q = `(${searchOptions.q})`;
|
|
123
|
-
}
|
|
124
|
-
return searchOptions;
|
|
125
|
-
}
|
|
126
|
-
function mergeSearchOptions(options, operation) {
|
|
127
|
-
const result = options.reduce((acc, entry) => {
|
|
128
|
-
// walk the props
|
|
129
|
-
Object.entries(entry).forEach(([key, value]) => {
|
|
130
|
-
// if prop exists
|
|
131
|
-
if (acc[key]) {
|
|
132
|
-
// combine via operation
|
|
133
|
-
acc[key] = `${acc[key]} ${operation} ${value}`;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
// just copy the value
|
|
137
|
-
acc[key] = value;
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
return acc;
|
|
141
|
-
}, { q: "" });
|
|
142
|
-
return result;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Serialize MatchOptions into portal syntax
|
|
146
|
-
* @param key
|
|
147
|
-
* @param value
|
|
148
|
-
* @returns
|
|
149
|
-
*/
|
|
150
|
-
function serializeMatchOptions(key, value) {
|
|
151
|
-
let result = "";
|
|
152
|
-
if (value.any) {
|
|
153
|
-
result = `${serializeStringOrArray("OR", key, value.any)}`;
|
|
154
|
-
}
|
|
155
|
-
if (value.all) {
|
|
156
|
-
result =
|
|
157
|
-
(result ? result + " AND " : "") +
|
|
158
|
-
`${serializeStringOrArray("AND", key, value.all)}`;
|
|
159
|
-
}
|
|
160
|
-
if (value.not) {
|
|
161
|
-
// negate the entries if they are not
|
|
162
|
-
result =
|
|
163
|
-
(result ? result + " AND " : "") +
|
|
164
|
-
`${serializeStringOrArray("OR", `-${key}`, value.not)}`;
|
|
165
|
-
}
|
|
166
|
-
// TODO HANDLE EXACT
|
|
167
|
-
return result;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Serialize a date-range into Portal syntax
|
|
171
|
-
* @param key
|
|
172
|
-
* @param range
|
|
173
|
-
* @returns
|
|
174
|
-
*/
|
|
175
|
-
function serializeDateRange(key, range) {
|
|
176
|
-
return `${key}:[${range.from} TO ${range.to}]`;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Serialize a `string` or `string[]` into a string
|
|
180
|
-
* @param join
|
|
181
|
-
* @param key
|
|
182
|
-
* @param value
|
|
183
|
-
* @returns
|
|
184
|
-
*/
|
|
185
|
-
function serializeStringOrArray(join, key, value) {
|
|
186
|
-
let q = "";
|
|
187
|
-
if (Array.isArray(value)) {
|
|
188
|
-
q = `${key}:"${value.join(`" ${join} ${key}:"`)}"`;
|
|
189
|
-
if (value.length > 1) {
|
|
190
|
-
q = `(${q})`;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
q = `${key}:"${value}"`;
|
|
195
|
-
}
|
|
196
|
-
return q;
|
|
197
|
-
}
|
|
198
1
|
/**
|
|
199
2
|
* Determine if a Filter is "empty"
|
|
200
3
|
* @param filter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/search/filter-utils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAA0B;IACtD,iDAAiD;IACjD,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CACxE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAqC;IAErC,4BAA4B;IAC5B,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,OAAO,IAAI,CAAC;KACb;SAAM;QACL,2BAA2B;QAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACvD,IAAI,GAAG,EAAE;gBACP,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,MAAM,CAAC;KACf;AACH,CAAC"}
|
|
@@ -2,10 +2,12 @@ import HubError from "../HubError";
|
|
|
2
2
|
import { getProp } from "../objects";
|
|
3
3
|
import { cloneObject } from "../util";
|
|
4
4
|
import { expandApi } from "./utils";
|
|
5
|
-
import { hubSearchItems, portalSearchItems, portalSearchGroups,
|
|
6
|
-
import { portalSearchUsers, portalSearchUsersFilterGroups, } from "./_internal/portalSearchUsers";
|
|
5
|
+
import { hubSearchItems, portalSearchItems, portalSearchGroups, portalSearchUsers, } from "./_internal";
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
7
|
+
* @private
|
|
8
|
+
* TEMPORARY - this function only exists to allow incremental
|
|
9
|
+
* changes and should be removed as soon as arcgis-hub-gallery
|
|
10
|
+
* is changed to call `hubSearch(...)` directly
|
|
9
11
|
*
|
|
10
12
|
* Default's to search ArcGIS Portal but can delegate
|
|
11
13
|
* to Hub API when it's available.
|
|
@@ -13,40 +15,9 @@ import { portalSearchUsers, portalSearchUsersFilterGroups, } from "./_internal/p
|
|
|
13
15
|
* @param options
|
|
14
16
|
* @returns
|
|
15
17
|
*/
|
|
16
|
-
export async function
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
throw new HubError("hubSearch", "FilterGroups are required and must be an array.");
|
|
20
|
-
}
|
|
21
|
-
if (!filterGroups.length) {
|
|
22
|
-
throw new HubError("hubSearch", "FilterGrous array must contain at least one entry.");
|
|
23
|
-
}
|
|
24
|
-
if (!options.requestOptions) {
|
|
25
|
-
throw new HubError("hubSearch", "requestOptions: IHubRequestOptions is required.");
|
|
26
|
-
}
|
|
27
|
-
// Ensure includes is an array
|
|
28
|
-
if (!options.include) {
|
|
29
|
-
options.include = [];
|
|
30
|
-
}
|
|
31
|
-
// Get the type of the first filterGroup
|
|
32
|
-
const filterType = filterGroups[0].filterType;
|
|
33
|
-
// get the API
|
|
34
|
-
const apiType = expandApi(options.api || "arcgis").type;
|
|
35
|
-
const fnHash = {
|
|
36
|
-
arcgis: {
|
|
37
|
-
item: portalSearchItemsFilterGroups,
|
|
38
|
-
group: portalSearchGroupsFilterGroups,
|
|
39
|
-
user: portalSearchUsersFilterGroups,
|
|
40
|
-
},
|
|
41
|
-
"arcgis-hub": {
|
|
42
|
-
item: hubSearchItems,
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
const fn = getProp(fnHash, `${apiType}.${filterType}`);
|
|
46
|
-
if (!fn) {
|
|
47
|
-
throw new HubError(`hubSearch`, `Search via "${filterType}" filter against "${apiType}" api is not implemented`);
|
|
48
|
-
}
|
|
49
|
-
return fn(cloneObject(filterGroups), options);
|
|
18
|
+
export async function hubSearchQuery(query, options) {
|
|
19
|
+
// delegate
|
|
20
|
+
return hubSearch(query, options);
|
|
50
21
|
}
|
|
51
22
|
/**
|
|
52
23
|
* Main entrypoint for searching via Hub
|
|
@@ -57,7 +28,7 @@ export async function hubSearch(filterGroups, options) {
|
|
|
57
28
|
* @param options
|
|
58
29
|
* @returns
|
|
59
30
|
*/
|
|
60
|
-
export async function
|
|
31
|
+
export async function hubSearch(query, options) {
|
|
61
32
|
// Validate inputs
|
|
62
33
|
if (!query) {
|
|
63
34
|
throw new HubError("hubSearch", "Query is required.");
|
|
@@ -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;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,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;AAQtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,OAA0B;IAE1B,WAAW;IACX,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAa,EACb,OAA0B;IAE1B,kBAAkB;IAClB,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;KACvD;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;QAC3C,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,yCAAyC,CAAC,CAAC;KAC5E;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,KAAK,CAAC,YAAY,CAAC;IACtC,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,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC"}
|