@esri/hub-common 9.45.2 → 9.45.5
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/index.js +1 -0
- package/dist/es2017/search/_internal/index.js.map +1 -1
- package/dist/es2017/search/_internal/ipredicate-utils.js +38 -0
- package/dist/es2017/search/_internal/ipredicate-utils.js.map +1 -0
- package/dist/es2017/search/_internal/portalSearchGroups.js +3 -57
- package/dist/es2017/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchItems.js +3 -88
- package/dist/es2017/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/es2017/search/_internal/portalSearchUsers.js +2 -44
- 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/es2017/search/{_internal/ifilter-utils.js → ifilter-utils.js} +2 -37
- package/dist/es2017/search/ifilter-utils.js.map +1 -0
- package/dist/es2017/search/index.js +1 -0
- package/dist/es2017/search/index.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/ipredicate-utils.js +40 -0
- package/dist/esm/search/_internal/ipredicate-utils.js.map +1 -0
- package/dist/esm/search/_internal/portalSearchGroups.js +3 -58
- package/dist/esm/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchItems.js +3 -89
- package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchUsers.js +2 -46
- 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/esm/search/{_internal/ifilter-utils.js → ifilter-utils.js} +2 -38
- package/dist/esm/search/ifilter-utils.js.map +1 -0
- package/dist/esm/search/index.js +1 -0
- package/dist/esm/search/index.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/ipredicate-utils.js +42 -0
- package/dist/node/search/_internal/ipredicate-utils.js.map +1 -0
- package/dist/node/search/_internal/portalSearchGroups.js +4 -59
- package/dist/node/search/_internal/portalSearchGroups.js.map +1 -1
- package/dist/node/search/_internal/portalSearchItems.js +5 -92
- package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/node/search/_internal/portalSearchUsers.js +4 -47
- 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/node/search/{_internal/ifilter-utils.js → ifilter-utils.js} +4 -40
- package/dist/node/search/ifilter-utils.js.map +1 -0
- package/dist/node/search/index.js +1 -0
- package/dist/node/search/index.js.map +1 -1
- package/dist/types/search/_internal/index.d.ts +1 -0
- package/dist/types/search/_internal/ipredicate-utils.d.ts +2 -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/{_internal/ifilter-utils.d.ts → ifilter-utils.d.ts} +1 -2
- package/dist/types/search/index.d.ts +1 -0
- package/dist/types/search/types/IHubCatalog.d.ts +38 -2
- package/dist/umd/common.umd.js +205 -610
- package/dist/umd/common.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/es2017/search/_internal/ifilter-utils.js.map +0 -1
- package/dist/esm/search/_internal/ifilter-utils.js.map +0 -1
- package/dist/node/search/_internal/ifilter-utils.js.map +0 -1
|
@@ -1,65 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isWellKnownTypeFilter = exports.
|
|
3
|
+
exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.WellKnownItemFilters = exports.portalSearchItems = void 0;
|
|
4
4
|
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
5
|
const __1 = require("../..");
|
|
6
|
-
const ifilter_utils_1 = require("
|
|
6
|
+
const ifilter_utils_1 = require("../ifilter-utils");
|
|
7
7
|
const HubPages_1 = require("../../pages/HubPages");
|
|
8
8
|
const projects_1 = require("../../projects");
|
|
9
9
|
const sites_1 = require("../../sites");
|
|
10
|
-
const filter_utils_1 = require("../filter-utils");
|
|
11
10
|
const utils_1 = require("../utils");
|
|
12
11
|
const portalSearchUtils_1 = require("./portalSearchUtils");
|
|
13
|
-
|
|
14
|
-
* @private
|
|
15
|
-
* DEPRECATED
|
|
16
|
-
* @param filterGroups
|
|
17
|
-
* @param options
|
|
18
|
-
* @returns
|
|
19
|
-
*/
|
|
20
|
-
async function portalSearchItemsFilterGroups(filterGroups, options) {
|
|
21
|
-
var _a;
|
|
22
|
-
if (!options.requestOptions) {
|
|
23
|
-
throw new __1.HubError("hubSearch", "requestOptions: IHubRequestOptions is required.");
|
|
24
|
-
}
|
|
25
|
-
// Expand well-known filterGroups
|
|
26
|
-
const replaced = applyWellKnownItemFilterGroups(filterGroups);
|
|
27
|
-
// Expand the individual filters in each of the groups
|
|
28
|
-
const expandedGroups = replaced.map((fg) => {
|
|
29
|
-
fg.filters = fg.filters.map(filter_utils_1.expandFilter);
|
|
30
|
-
return fg;
|
|
31
|
-
});
|
|
32
|
-
// Serialize the all the groups for portal
|
|
33
|
-
const so = filter_utils_1.serializeFilterGroupsForPortal(expandedGroups);
|
|
34
|
-
// Array of properties we want to copy from IHubSearchOptions to the ISearchOptions
|
|
35
|
-
const props = [
|
|
36
|
-
"num",
|
|
37
|
-
"sortField",
|
|
38
|
-
"sortOrder",
|
|
39
|
-
"include",
|
|
40
|
-
"start",
|
|
41
|
-
"requestOptions",
|
|
42
|
-
];
|
|
43
|
-
// copy the props over
|
|
44
|
-
props.forEach((prop) => {
|
|
45
|
-
if (options.hasOwnProperty(prop)) {
|
|
46
|
-
so[prop] = options[prop];
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
if (options.requestOptions.authentication) {
|
|
50
|
-
so.authentication = options.requestOptions.authentication;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
so.portal = options.requestOptions.portal;
|
|
54
|
-
}
|
|
55
|
-
// Aggregations
|
|
56
|
-
if ((_a = options.aggFields) === null || _a === void 0 ? void 0 : _a.length) {
|
|
57
|
-
so.countFields = options.aggFields.join(",");
|
|
58
|
-
so.countSize = options.aggLimit || 10;
|
|
59
|
-
}
|
|
60
|
-
return searchPortal(so);
|
|
61
|
-
}
|
|
62
|
-
exports.portalSearchItemsFilterGroups = portalSearchItemsFilterGroups;
|
|
12
|
+
const ipredicate_utils_1 = require("./ipredicate-utils");
|
|
63
13
|
/**
|
|
64
14
|
* @private
|
|
65
15
|
* Portal Search Implementation for Items
|
|
@@ -76,7 +26,7 @@ async function portalSearchItems(query, options) {
|
|
|
76
26
|
const updatedQuery = applyWellKnownItemPredicates(query);
|
|
77
27
|
// Expand the individual predicates in each filter
|
|
78
28
|
updatedQuery.filters = updatedQuery.filters.map((filter) => {
|
|
79
|
-
filter.predicates = filter.predicates.map(
|
|
29
|
+
filter.predicates = filter.predicates.map(ipredicate_utils_1.expandPredicate);
|
|
80
30
|
return filter;
|
|
81
31
|
});
|
|
82
32
|
// Serialize the all the groups for portal
|
|
@@ -367,40 +317,6 @@ function applyWellKnownItemPredicates(query) {
|
|
|
367
317
|
return queryClone;
|
|
368
318
|
}
|
|
369
319
|
exports.applyWellKnownItemPredicates = applyWellKnownItemPredicates;
|
|
370
|
-
/**
|
|
371
|
-
* DEPRECATED
|
|
372
|
-
* @param filterGroups
|
|
373
|
-
* @returns
|
|
374
|
-
*/
|
|
375
|
-
function applyWellKnownItemFilterGroups(filterGroups) {
|
|
376
|
-
const clone = __1.cloneObject(filterGroups);
|
|
377
|
-
// iterate the filterGroups
|
|
378
|
-
const result = clone.map((filterGroup) => {
|
|
379
|
-
filterGroup.filters = filterGroup.filters.reduce((updated, filter) => {
|
|
380
|
-
// check if the filter.type is a well-known type
|
|
381
|
-
if (isWellKnownTypeFilter(filter.type)) {
|
|
382
|
-
// get the set of filters to replace the current filter with
|
|
383
|
-
const typeFilters = lookupTypeFilters(filter.type);
|
|
384
|
-
// Note: At this point we could try to "merge" in the other
|
|
385
|
-
// props on the filter, into all the filters returned from
|
|
386
|
-
// the well-known hash. The problem with this is that the
|
|
387
|
-
// combination may yield unexpected results; For now, if a filter
|
|
388
|
-
// includes `.type is keyof WellKnownItemFilters` we simply
|
|
389
|
-
// replace the entire filter with the array of filters returne
|
|
390
|
-
// from the hash
|
|
391
|
-
updated = [...updated, ...typeFilters];
|
|
392
|
-
}
|
|
393
|
-
else {
|
|
394
|
-
// filter does not have a well-known type entry so keep it
|
|
395
|
-
updated.push(filter);
|
|
396
|
-
}
|
|
397
|
-
return updated;
|
|
398
|
-
}, []);
|
|
399
|
-
return filterGroup;
|
|
400
|
-
});
|
|
401
|
-
return result;
|
|
402
|
-
}
|
|
403
|
-
exports.applyWellKnownItemFilterGroups = applyWellKnownItemFilterGroups;
|
|
404
320
|
/**
|
|
405
321
|
* Is the argument a well-known type "key"
|
|
406
322
|
*
|
|
@@ -419,13 +335,10 @@ function isWellKnownTypeFilter(key) {
|
|
|
419
335
|
}
|
|
420
336
|
exports.isWellKnownTypeFilter = isWellKnownTypeFilter;
|
|
421
337
|
/**
|
|
422
|
-
*
|
|
338
|
+
* Return the predicates for a well-known type
|
|
423
339
|
* @param key
|
|
424
340
|
* @returns
|
|
425
341
|
*/
|
|
426
|
-
function lookupTypeFilters(key) {
|
|
427
|
-
return exports.WellKnownItemFilters[key];
|
|
428
|
-
}
|
|
429
342
|
function lookupTypePredicates(key) {
|
|
430
343
|
const rawPredicates = exports.WellKnownItemFilters[key];
|
|
431
344
|
// 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,iEAA8E;AAC9E,6BAKe;AAEf,
|
|
1
|
+
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,55 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.portalSearchUsers =
|
|
3
|
+
exports.portalSearchUsers = void 0;
|
|
4
4
|
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
5
|
const __1 = require("../..");
|
|
6
|
-
const ifilter_utils_1 = require("
|
|
6
|
+
const ifilter_utils_1 = require("../ifilter-utils");
|
|
7
7
|
const HubError_1 = require("../../HubError");
|
|
8
|
-
const filter_utils_1 = require("../filter-utils");
|
|
9
8
|
const utils_1 = require("../utils");
|
|
10
|
-
|
|
11
|
-
* @private
|
|
12
|
-
* DEPRECATED: Use `portalSearchUsers`
|
|
13
|
-
* Portal Search implementation for Users
|
|
14
|
-
* @param filterGroups
|
|
15
|
-
* @param options
|
|
16
|
-
*/
|
|
17
|
-
async function portalSearchUsersFilterGroups(filterGroups, options) {
|
|
18
|
-
// requestOptions is always required and user must be authd
|
|
19
|
-
if (!options.requestOptions) {
|
|
20
|
-
throw new HubError_1.default("portalSearchUsers", "requestOptions: IHubRequestOptions is required.");
|
|
21
|
-
}
|
|
22
|
-
if (!options.requestOptions.authentication) {
|
|
23
|
-
throw new HubError_1.default("portalSearchUsers", "requestOptions must pass authentication.");
|
|
24
|
-
}
|
|
25
|
-
// Expand the individual filters in each of the groups
|
|
26
|
-
const expandedGroups = filterGroups.map((fg) => {
|
|
27
|
-
fg.filters = fg.filters.map(filter_utils_1.expandFilter);
|
|
28
|
-
return fg;
|
|
29
|
-
});
|
|
30
|
-
// Serialize the all the groups for portal
|
|
31
|
-
const so = filter_utils_1.serializeFilterGroupsForPortal(expandedGroups);
|
|
32
|
-
// Array of properties we want to copy from IHubSearchOptions to the ISearchOptions
|
|
33
|
-
const props = [
|
|
34
|
-
"num",
|
|
35
|
-
"sortField",
|
|
36
|
-
"sortOrder",
|
|
37
|
-
"include",
|
|
38
|
-
"start",
|
|
39
|
-
"requestOptions",
|
|
40
|
-
];
|
|
41
|
-
// copy the props over
|
|
42
|
-
props.forEach((prop) => {
|
|
43
|
-
if (options.hasOwnProperty(prop)) {
|
|
44
|
-
so[prop] = options[prop];
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
// Ensure authentication gets sent
|
|
48
|
-
so.authentication = options.requestOptions.authentication;
|
|
49
|
-
// Execute search
|
|
50
|
-
return searchPortal(so);
|
|
51
|
-
}
|
|
52
|
-
exports.portalSearchUsersFilterGroups = portalSearchUsersFilterGroups;
|
|
9
|
+
const ipredicate_utils_1 = require("./ipredicate-utils");
|
|
53
10
|
/**
|
|
54
11
|
* @private
|
|
55
12
|
* Portal Search Implementation for Users
|
|
@@ -67,7 +24,7 @@ async function portalSearchUsers(query, options) {
|
|
|
67
24
|
}
|
|
68
25
|
// Expand the individual predicates in each filter
|
|
69
26
|
query.filters = query.filters.map((filter) => {
|
|
70
|
-
filter.predicates = filter.predicates.map(
|
|
27
|
+
filter.predicates = filter.predicates.map(ipredicate_utils_1.expandPredicate);
|
|
71
28
|
return filter;
|
|
72
29
|
});
|
|
73
30
|
// Serialize the all the groups for portal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalSearchUsers.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchUsers.ts"],"names":[],"mappings":";;;AAAA,iEAIkC;AAElC,
|
|
1
|
+
{"version":3,"file":"portalSearchUsers.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchUsers.ts"],"names":[],"mappings":";;;AAAA,iEAIkC;AAElC,6BAA+C;AAC/C,oDAA2D;AAC3D,6CAAsC;AAQtC,oCAA2C;AAC3C,yDAAqD;AAErD;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAA0B;IAE1B,2DAA2D;IAC3D,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;QAC3B,MAAM,IAAI,kBAAQ,CAChB,mBAAmB,EACnB,iDAAiD,CAClD,CAAC;KACH;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE;QAC1C,MAAM,IAAI,kBAAQ,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,kCAAe,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,EAAE,GAAG,uCAAuB,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;AAjDD,8CAiDC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CACzB,aAAiC;IAEjC,wBAAwB;IACxB,MAAM,IAAI,GAAG,MAAM,gCAAW,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,uBAAe,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,0BAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,205 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isEmptyFilterGroup = exports.isEmptyFilter =
|
|
4
|
-
const objects_1 = require("../objects");
|
|
5
|
-
const util_1 = require("../util");
|
|
6
|
-
const utils_1 = require("./utils");
|
|
7
|
-
// DEPRECATED - REMOVE THIS FILE
|
|
8
|
-
/**
|
|
9
|
-
* Expand a Filter into it's more expressive structure so it can be
|
|
10
|
-
* serialized deterministically.
|
|
11
|
-
*
|
|
12
|
-
* Props with type `string | string[] | MatchOptions` expand into `IMatchOptions`
|
|
13
|
-
* Props relative-dates are expanded into formal date-ranges
|
|
14
|
-
* @param filter
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
function expandFilter(filter) {
|
|
18
|
-
const result = {};
|
|
19
|
-
const dateProps = ["created", "modified", "lastlogin"];
|
|
20
|
-
const copyProps = [
|
|
21
|
-
"filterType",
|
|
22
|
-
"term",
|
|
23
|
-
"searchUserAccess",
|
|
24
|
-
"isopendata",
|
|
25
|
-
"searchUserName",
|
|
26
|
-
];
|
|
27
|
-
const nonMatchOptionsFields = [...dateProps, ...copyProps];
|
|
28
|
-
// Do the conversion
|
|
29
|
-
Object.entries(filter).forEach(([key, value]) => {
|
|
30
|
-
// Handle MatchOptions fields
|
|
31
|
-
if (!nonMatchOptionsFields.includes(key)) {
|
|
32
|
-
// setProp side-steps typescript complaining
|
|
33
|
-
objects_1.setProp(key, utils_1.valueToMatchOptions(value), result);
|
|
34
|
-
}
|
|
35
|
-
// Handle Date fields
|
|
36
|
-
if (dateProps.includes(key)) {
|
|
37
|
-
const dateFieldValue = util_1.cloneObject(objects_1.getProp(filter, key));
|
|
38
|
-
if (objects_1.getProp(filter, `${key}.type`) === "relative-date") {
|
|
39
|
-
objects_1.setProp(key, utils_1.relativeDateToDateRange(dateFieldValue), result);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
objects_1.setProp(key, dateFieldValue, result);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// Handle fields that are just copied forward
|
|
46
|
-
if (copyProps.includes(key) && filter.hasOwnProperty(key)) {
|
|
47
|
-
objects_1.setProp(key, value, result);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
return result;
|
|
51
|
-
}
|
|
52
|
-
exports.expandFilter = expandFilter;
|
|
53
|
-
/**
|
|
54
|
-
* Serialize a FilterGroup of any type for Portal
|
|
55
|
-
* @param filterGroups
|
|
56
|
-
* @returns
|
|
57
|
-
*/
|
|
58
|
-
function serializeFilterGroupsForPortal(filterGroups) {
|
|
59
|
-
const groupSearchOptions = filterGroups.map(serializeGroup);
|
|
60
|
-
const result = mergeSearchOptions(groupSearchOptions, "AND");
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
exports.serializeFilterGroupsForPortal = serializeFilterGroupsForPortal;
|
|
64
|
-
/**
|
|
65
|
-
* Serialize the filters in a FitlerGroup into a Portal Query
|
|
66
|
-
* @param filterGroup
|
|
67
|
-
* @returns
|
|
68
|
-
*/
|
|
69
|
-
function serializeGroup(filterGroup) {
|
|
70
|
-
const operation = filterGroup.operation || "AND";
|
|
71
|
-
const filters = filterGroup.filters.map(expandFilter);
|
|
72
|
-
const filterSearchOptions = filters.map(serializeFilter);
|
|
73
|
-
// combine these searchOptions
|
|
74
|
-
const groupSearchOptions = mergeSearchOptions(filterSearchOptions, operation);
|
|
75
|
-
//
|
|
76
|
-
if (filters.length > 1) {
|
|
77
|
-
groupSearchOptions.q = `(${groupSearchOptions.q})`;
|
|
78
|
-
}
|
|
79
|
-
return groupSearchOptions;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Serialize a Filter into a Portal Query
|
|
83
|
-
* @param filter
|
|
84
|
-
* @returns
|
|
85
|
-
*/
|
|
86
|
-
function serializeFilter(filter) {
|
|
87
|
-
const dateProps = ["created", "modified"];
|
|
88
|
-
const boolProps = ["isopendata"];
|
|
89
|
-
const passThroughProps = ["searchUserAccess", "searchUserName"];
|
|
90
|
-
const specialProps = [
|
|
91
|
-
"filterType",
|
|
92
|
-
"term",
|
|
93
|
-
...dateProps,
|
|
94
|
-
...boolProps,
|
|
95
|
-
...passThroughProps,
|
|
96
|
-
];
|
|
97
|
-
let qCount = 0;
|
|
98
|
-
// TODO: Look at using reduce vs .map and remove the `.filter`
|
|
99
|
-
const opts = Object.entries(filter)
|
|
100
|
-
.map(([key, value]) => {
|
|
101
|
-
const so = { q: "" };
|
|
102
|
-
if (!specialProps.includes(key)) {
|
|
103
|
-
qCount++;
|
|
104
|
-
so.q = serializeMatchOptions(key, value);
|
|
105
|
-
}
|
|
106
|
-
if (dateProps.includes(key)) {
|
|
107
|
-
qCount++;
|
|
108
|
-
so.q = serializeDateRange(key, value);
|
|
109
|
-
}
|
|
110
|
-
if (boolProps.includes(key)) {
|
|
111
|
-
qCount++;
|
|
112
|
-
so.q = `${key}:${value}`;
|
|
113
|
-
}
|
|
114
|
-
if (passThroughProps.includes(key)) {
|
|
115
|
-
so[key] = value;
|
|
116
|
-
}
|
|
117
|
-
if (key === "term") {
|
|
118
|
-
qCount++;
|
|
119
|
-
so.q = value;
|
|
120
|
-
}
|
|
121
|
-
return so;
|
|
122
|
-
})
|
|
123
|
-
.filter((e) => e !== undefined);
|
|
124
|
-
// merge up all the searchOptions
|
|
125
|
-
const searchOptions = mergeSearchOptions(opts, "AND");
|
|
126
|
-
if (qCount > 1) {
|
|
127
|
-
searchOptions.q = `(${searchOptions.q})`;
|
|
128
|
-
}
|
|
129
|
-
return searchOptions;
|
|
130
|
-
}
|
|
131
|
-
function mergeSearchOptions(options, operation) {
|
|
132
|
-
const result = options.reduce((acc, entry) => {
|
|
133
|
-
// walk the props
|
|
134
|
-
Object.entries(entry).forEach(([key, value]) => {
|
|
135
|
-
// if prop exists
|
|
136
|
-
if (acc[key]) {
|
|
137
|
-
// combine via operation
|
|
138
|
-
acc[key] = `${acc[key]} ${operation} ${value}`;
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
// just copy the value
|
|
142
|
-
acc[key] = value;
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
return acc;
|
|
146
|
-
}, { q: "" });
|
|
147
|
-
return result;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Serialize MatchOptions into portal syntax
|
|
151
|
-
* @param key
|
|
152
|
-
* @param value
|
|
153
|
-
* @returns
|
|
154
|
-
*/
|
|
155
|
-
function serializeMatchOptions(key, value) {
|
|
156
|
-
let result = "";
|
|
157
|
-
if (value.any) {
|
|
158
|
-
result = `${serializeStringOrArray("OR", key, value.any)}`;
|
|
159
|
-
}
|
|
160
|
-
if (value.all) {
|
|
161
|
-
result =
|
|
162
|
-
(result ? result + " AND " : "") +
|
|
163
|
-
`${serializeStringOrArray("AND", key, value.all)}`;
|
|
164
|
-
}
|
|
165
|
-
if (value.not) {
|
|
166
|
-
// negate the entries if they are not
|
|
167
|
-
result =
|
|
168
|
-
(result ? result + " AND " : "") +
|
|
169
|
-
`${serializeStringOrArray("OR", `-${key}`, value.not)}`;
|
|
170
|
-
}
|
|
171
|
-
// TODO HANDLE EXACT
|
|
172
|
-
return result;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Serialize a date-range into Portal syntax
|
|
176
|
-
* @param key
|
|
177
|
-
* @param range
|
|
178
|
-
* @returns
|
|
179
|
-
*/
|
|
180
|
-
function serializeDateRange(key, range) {
|
|
181
|
-
return `${key}:[${range.from} TO ${range.to}]`;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Serialize a `string` or `string[]` into a string
|
|
185
|
-
* @param join
|
|
186
|
-
* @param key
|
|
187
|
-
* @param value
|
|
188
|
-
* @returns
|
|
189
|
-
*/
|
|
190
|
-
function serializeStringOrArray(join, key, value) {
|
|
191
|
-
let q = "";
|
|
192
|
-
if (Array.isArray(value)) {
|
|
193
|
-
q = `${key}:"${value.join(`" ${join} ${key}:"`)}"`;
|
|
194
|
-
if (value.length > 1) {
|
|
195
|
-
q = `(${q})`;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
q = `${key}:"${value}"`;
|
|
200
|
-
}
|
|
201
|
-
return q;
|
|
202
|
-
}
|
|
3
|
+
exports.isEmptyFilterGroup = exports.isEmptyFilter = void 0;
|
|
203
4
|
/**
|
|
204
5
|
* Determine if a Filter is "empty"
|
|
205
6
|
* @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,SAAgB,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;AALD,sCAKC;AAED;;;;GAIG;AACH,SAAgB,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;AAhBD,gDAgBC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.hubSearch = exports.hubSearchQuery = void 0;
|
|
4
4
|
const HubError_1 = require("../HubError");
|
|
5
5
|
const objects_1 = require("../objects");
|
|
6
6
|
const util_1 = require("../util");
|
|
7
7
|
const utils_1 = require("./utils");
|
|
8
8
|
const _internal_1 = require("./_internal");
|
|
9
|
-
const portalSearchUsers_1 = require("./_internal/portalSearchUsers");
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
10
|
+
* @private
|
|
11
|
+
* TEMPORARY - this function only exists to allow incremental
|
|
12
|
+
* changes and should be removed as soon as arcgis-hub-gallery
|
|
13
|
+
* is changed to call `hubSearch(...)` directly
|
|
12
14
|
*
|
|
13
15
|
* Default's to search ArcGIS Portal but can delegate
|
|
14
16
|
* to Hub API when it's available.
|
|
@@ -16,42 +18,11 @@ const portalSearchUsers_1 = require("./_internal/portalSearchUsers");
|
|
|
16
18
|
* @param options
|
|
17
19
|
* @returns
|
|
18
20
|
*/
|
|
19
|
-
async function
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
throw new HubError_1.default("hubSearch", "FilterGroups are required and must be an array.");
|
|
23
|
-
}
|
|
24
|
-
if (!filterGroups.length) {
|
|
25
|
-
throw new HubError_1.default("hubSearch", "FilterGrous array must contain at least one entry.");
|
|
26
|
-
}
|
|
27
|
-
if (!options.requestOptions) {
|
|
28
|
-
throw new HubError_1.default("hubSearch", "requestOptions: IHubRequestOptions is required.");
|
|
29
|
-
}
|
|
30
|
-
// Ensure includes is an array
|
|
31
|
-
if (!options.include) {
|
|
32
|
-
options.include = [];
|
|
33
|
-
}
|
|
34
|
-
// Get the type of the first filterGroup
|
|
35
|
-
const filterType = filterGroups[0].filterType;
|
|
36
|
-
// get the API
|
|
37
|
-
const apiType = utils_1.expandApi(options.api || "arcgis").type;
|
|
38
|
-
const fnHash = {
|
|
39
|
-
arcgis: {
|
|
40
|
-
item: _internal_1.portalSearchItemsFilterGroups,
|
|
41
|
-
group: _internal_1.portalSearchGroupsFilterGroups,
|
|
42
|
-
user: portalSearchUsers_1.portalSearchUsersFilterGroups,
|
|
43
|
-
},
|
|
44
|
-
"arcgis-hub": {
|
|
45
|
-
item: _internal_1.hubSearchItems,
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
const fn = objects_1.getProp(fnHash, `${apiType}.${filterType}`);
|
|
49
|
-
if (!fn) {
|
|
50
|
-
throw new HubError_1.default(`hubSearch`, `Search via "${filterType}" filter against "${apiType}" api is not implemented`);
|
|
51
|
-
}
|
|
52
|
-
return fn(util_1.cloneObject(filterGroups), options);
|
|
21
|
+
async function hubSearchQuery(query, options) {
|
|
22
|
+
// delegate
|
|
23
|
+
return hubSearch(query, options);
|
|
53
24
|
}
|
|
54
|
-
exports.
|
|
25
|
+
exports.hubSearchQuery = hubSearchQuery;
|
|
55
26
|
/**
|
|
56
27
|
* Main entrypoint for searching via Hub
|
|
57
28
|
*
|
|
@@ -61,7 +32,7 @@ exports.hubSearch = hubSearch;
|
|
|
61
32
|
* @param options
|
|
62
33
|
* @returns
|
|
63
34
|
*/
|
|
64
|
-
async function
|
|
35
|
+
async function hubSearch(query, options) {
|
|
65
36
|
// Validate inputs
|
|
66
37
|
if (!query) {
|
|
67
38
|
throw new HubError_1.default("hubSearch", "Query is required.");
|
|
@@ -84,7 +55,7 @@ async function hubSearchQuery(query, options) {
|
|
|
84
55
|
arcgis: {
|
|
85
56
|
item: _internal_1.portalSearchItems,
|
|
86
57
|
group: _internal_1.portalSearchGroups,
|
|
87
|
-
user:
|
|
58
|
+
user: _internal_1.portalSearchUsers,
|
|
88
59
|
},
|
|
89
60
|
"arcgis-hub": {
|
|
90
61
|
item: _internal_1.hubSearchItems,
|
|
@@ -96,5 +67,5 @@ async function hubSearchQuery(query, options) {
|
|
|
96
67
|
}
|
|
97
68
|
return fn(util_1.cloneObject(query), options);
|
|
98
69
|
}
|
|
99
|
-
exports.
|
|
70
|
+
exports.hubSearch = hubSearch;
|
|
100
71
|
//# sourceMappingURL=hubSearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":";;;AAAA,0CAAmC;AACnC,wCAAqC;AACrC,kCAAsC;
|
|
1
|
+
{"version":3,"file":"hubSearch.js","sourceRoot":"","sources":["../../../src/search/hubSearch.ts"],"names":[],"mappings":";;;AAAA,0CAAmC;AACnC,wCAAqC;AACrC,kCAAsC;AAQtC,mCAAoC;AACpC,2CAKqB;AAErB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,OAA0B;IAE1B,WAAW;IACX,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAND,wCAMC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,SAAS,CAC7B,KAAa,EACb,OAA0B;IAE1B,kBAAkB;IAClB,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,kBAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;KACvD;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;QAC3C,MAAM,IAAI,kBAAQ,CAAC,WAAW,EAAE,yCAAyC,CAAC,CAAC;KAC5E;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;QAC3B,MAAM,IAAI,kBAAQ,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,iBAAS,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC;IAExD,MAAM,MAAM,GAAG;QACb,MAAM,EAAE;YACN,IAAI,EAAE,6BAAiB;YACvB,KAAK,EAAE,8BAAkB;YACzB,IAAI,EAAE,6BAAiB;SACxB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,0BAAc;SACrB;KACF,CAAC;IAEF,MAAM,EAAE,GAAG,iBAAO,CAAC,MAAM,EAAE,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,IAAI,kBAAQ,CAChB,WAAW,EACX,eAAe,UAAU,qBAAqB,OAAO,0BAA0B,CAChF,CAAC;KACH;IACD,OAAO,EAAE,CAAC,kBAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAhDD,8BAgDC"}
|
|
@@ -1,44 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.serializeQueryForPortal =
|
|
4
|
-
const
|
|
5
|
-
const util_1 = require("../../util");
|
|
6
|
-
const utils_1 = require("../utils");
|
|
7
|
-
function expandPredicate(predicate) {
|
|
8
|
-
const result = {};
|
|
9
|
-
const dateProps = ["created", "modified", "lastlogin"];
|
|
10
|
-
const copyProps = [
|
|
11
|
-
"filterType",
|
|
12
|
-
"term",
|
|
13
|
-
"searchUserAccess",
|
|
14
|
-
"isopendata",
|
|
15
|
-
"searchUserName",
|
|
16
|
-
];
|
|
17
|
-
const nonMatchOptionsFields = [...dateProps, ...copyProps];
|
|
18
|
-
// Do the conversion
|
|
19
|
-
Object.entries(predicate).forEach(([key, value]) => {
|
|
20
|
-
// Handle MatchOptions fields
|
|
21
|
-
if (!nonMatchOptionsFields.includes(key)) {
|
|
22
|
-
objects_1.setProp(key, utils_1.valueToMatchOptions(value), result);
|
|
23
|
-
}
|
|
24
|
-
// Handle Date fields
|
|
25
|
-
if (dateProps.includes(key)) {
|
|
26
|
-
const dateFieldValue = util_1.cloneObject(objects_1.getProp(predicate, key));
|
|
27
|
-
if (objects_1.getProp(predicate, `${key}.type`) === "relative-date") {
|
|
28
|
-
objects_1.setProp(key, utils_1.relativeDateToDateRange(dateFieldValue), result);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
objects_1.setProp(key, dateFieldValue, result);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// Handle fields that are just copied forward
|
|
35
|
-
if (copyProps.includes(key) && predicate.hasOwnProperty(key)) {
|
|
36
|
-
objects_1.setProp(key, value, result);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
exports.expandPredicate = expandPredicate;
|
|
3
|
+
exports.serializeQueryForPortal = void 0;
|
|
4
|
+
const ipredicate_utils_1 = require("./_internal/ipredicate-utils");
|
|
42
5
|
function serializeQueryForPortal(query) {
|
|
43
6
|
const filterSearchOptions = query.filters.map(serializeFilter);
|
|
44
7
|
const result = mergeSearchOptions(filterSearchOptions, "AND");
|
|
@@ -70,7 +33,7 @@ function mergeSearchOptions(options, operation) {
|
|
|
70
33
|
*/
|
|
71
34
|
function serializeFilter(filter) {
|
|
72
35
|
const operation = filter.operation || "AND";
|
|
73
|
-
const predicates = filter.predicates.map(expandPredicate);
|
|
36
|
+
const predicates = filter.predicates.map(ipredicate_utils_1.expandPredicate);
|
|
74
37
|
const predicateSearchOptions = predicates.map(serializePredicate);
|
|
75
38
|
// combine these searchOptions
|
|
76
39
|
const searchOptions = mergeSearchOptions(predicateSearchOptions, operation);
|
|
@@ -126,6 +89,7 @@ function serializePredicate(predicate) {
|
|
|
126
89
|
"snippet",
|
|
127
90
|
"tags",
|
|
128
91
|
"term",
|
|
92
|
+
"title",
|
|
129
93
|
"type",
|
|
130
94
|
"typekeywords",
|
|
131
95
|
"userlicensetype",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ifilter-utils.js","sourceRoot":"","sources":["../../../src/search/ifilter-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,5 +13,6 @@ tslib_1.__exportStar(require("./types"), exports);
|
|
|
13
13
|
tslib_1.__exportStar(require("./collectionState"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./convertCatalog"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./filter-utils"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./ifilter-utils"), exports);
|
|
16
17
|
tslib_1.__exportStar(require("./hubSearch"), exports);
|
|
17
18
|
//# sourceMappingURL=index.js.map
|