@esri/hub-common 9.45.4 → 9.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/es2017/projects/HubProjectManager.js +3 -3
  2. package/dist/es2017/projects/HubProjectManager.js.map +1 -1
  3. package/dist/es2017/projects/HubProjects.js +23 -13
  4. package/dist/es2017/projects/HubProjects.js.map +1 -1
  5. package/dist/es2017/search/_internal/createQueryFromString.js +22 -0
  6. package/dist/es2017/search/_internal/createQueryFromString.js.map +1 -0
  7. package/dist/es2017/search/_internal/hubSearchItems.js +1 -0
  8. package/dist/es2017/search/_internal/hubSearchItems.js.map +1 -1
  9. package/dist/es2017/search/_internal/index.js +2 -1
  10. package/dist/es2017/search/_internal/index.js.map +1 -1
  11. package/dist/es2017/search/_internal/ipredicate-utils.js +6 -0
  12. package/dist/es2017/search/_internal/ipredicate-utils.js.map +1 -1
  13. package/dist/es2017/search/_internal/portalSearchGroups.js +1 -1
  14. package/dist/es2017/search/_internal/portalSearchGroups.js.map +1 -1
  15. package/dist/es2017/search/_internal/portalSearchItems.js +1 -1
  16. package/dist/es2017/search/_internal/portalSearchItems.js.map +1 -1
  17. package/dist/es2017/search/_internal/portalSearchUsers.js +1 -1
  18. package/dist/es2017/search/_internal/portalSearchUsers.js.map +1 -1
  19. package/dist/es2017/search/_internal/searchEntities.js +73 -0
  20. package/dist/es2017/search/_internal/searchEntities.js.map +1 -0
  21. package/dist/es2017/search/_internal/state.js +8 -0
  22. package/dist/es2017/search/_internal/state.js.map +1 -1
  23. package/dist/es2017/search/_searchContent.js +1 -0
  24. package/dist/es2017/search/_searchContent.js.map +1 -1
  25. package/dist/es2017/search/_searchGroups.js +1 -0
  26. package/dist/es2017/search/_searchGroups.js.map +1 -1
  27. package/dist/es2017/search/_searchUsers.js +1 -0
  28. package/dist/es2017/search/_searchUsers.js.map +1 -1
  29. package/dist/es2017/search/index.js +1 -1
  30. package/dist/es2017/search/index.js.map +1 -1
  31. package/dist/es2017/search/{ifilter-utils.js → serializeQueryForPortal.js} +38 -13
  32. package/dist/es2017/search/serializeQueryForPortal.js.map +1 -0
  33. package/dist/es2017/sites/HubSiteManager.js +2 -2
  34. package/dist/es2017/sites/HubSiteManager.js.map +1 -1
  35. package/dist/es2017/sites/HubSites.js +23 -12
  36. package/dist/es2017/sites/HubSites.js.map +1 -1
  37. package/dist/esm/projects/HubProjectManager.js +3 -3
  38. package/dist/esm/projects/HubProjectManager.js.map +1 -1
  39. package/dist/esm/projects/HubProjects.js +23 -12
  40. package/dist/esm/projects/HubProjects.js.map +1 -1
  41. package/dist/esm/search/_internal/createQueryFromString.js +22 -0
  42. package/dist/esm/search/_internal/createQueryFromString.js.map +1 -0
  43. package/dist/esm/search/_internal/hubSearchItems.js +1 -0
  44. package/dist/esm/search/_internal/hubSearchItems.js.map +1 -1
  45. package/dist/esm/search/_internal/index.js +2 -1
  46. package/dist/esm/search/_internal/index.js.map +1 -1
  47. package/dist/esm/search/_internal/ipredicate-utils.js +6 -0
  48. package/dist/esm/search/_internal/ipredicate-utils.js.map +1 -1
  49. package/dist/esm/search/_internal/portalSearchGroups.js +1 -1
  50. package/dist/esm/search/_internal/portalSearchGroups.js.map +1 -1
  51. package/dist/esm/search/_internal/portalSearchItems.js +1 -1
  52. package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
  53. package/dist/esm/search/_internal/portalSearchUsers.js +1 -1
  54. package/dist/esm/search/_internal/portalSearchUsers.js.map +1 -1
  55. package/dist/esm/search/_internal/{searchContentEntities.js → searchEntities.js} +21 -39
  56. package/dist/esm/search/_internal/searchEntities.js.map +1 -0
  57. package/dist/esm/search/_internal/state.js +8 -0
  58. package/dist/esm/search/_internal/state.js.map +1 -1
  59. package/dist/esm/search/_searchContent.js +1 -0
  60. package/dist/esm/search/_searchContent.js.map +1 -1
  61. package/dist/esm/search/_searchGroups.js +1 -0
  62. package/dist/esm/search/_searchGroups.js.map +1 -1
  63. package/dist/esm/search/_searchUsers.js +1 -0
  64. package/dist/esm/search/_searchUsers.js.map +1 -1
  65. package/dist/esm/search/index.js +1 -1
  66. package/dist/esm/search/index.js.map +1 -1
  67. package/dist/esm/search/{ifilter-utils.js → serializeQueryForPortal.js} +38 -13
  68. package/dist/esm/search/serializeQueryForPortal.js.map +1 -0
  69. package/dist/esm/sites/HubSiteManager.js +2 -2
  70. package/dist/esm/sites/HubSiteManager.js.map +1 -1
  71. package/dist/esm/sites/HubSites.js +23 -11
  72. package/dist/esm/sites/HubSites.js.map +1 -1
  73. package/dist/node/projects/HubProjectManager.js +3 -3
  74. package/dist/node/projects/HubProjectManager.js.map +1 -1
  75. package/dist/node/projects/HubProjects.js +32 -22
  76. package/dist/node/projects/HubProjects.js.map +1 -1
  77. package/dist/node/search/_internal/createQueryFromString.js +26 -0
  78. package/dist/node/search/_internal/createQueryFromString.js.map +1 -0
  79. package/dist/node/search/_internal/hubSearchItems.js +1 -0
  80. package/dist/node/search/_internal/hubSearchItems.js.map +1 -1
  81. package/dist/node/search/_internal/index.js +2 -1
  82. package/dist/node/search/_internal/index.js.map +1 -1
  83. package/dist/node/search/_internal/ipredicate-utils.js +6 -0
  84. package/dist/node/search/_internal/ipredicate-utils.js.map +1 -1
  85. package/dist/node/search/_internal/portalSearchGroups.js +2 -2
  86. package/dist/node/search/_internal/portalSearchGroups.js.map +1 -1
  87. package/dist/node/search/_internal/portalSearchItems.js +2 -2
  88. package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
  89. package/dist/node/search/_internal/portalSearchUsers.js +2 -2
  90. package/dist/node/search/_internal/portalSearchUsers.js.map +1 -1
  91. package/dist/node/search/_internal/searchEntities.js +78 -0
  92. package/dist/node/search/_internal/searchEntities.js.map +1 -0
  93. package/dist/node/search/_internal/state.js +8 -0
  94. package/dist/node/search/_internal/state.js.map +1 -1
  95. package/dist/node/search/_searchContent.js +1 -0
  96. package/dist/node/search/_searchContent.js.map +1 -1
  97. package/dist/node/search/_searchGroups.js +1 -0
  98. package/dist/node/search/_searchGroups.js.map +1 -1
  99. package/dist/node/search/_searchUsers.js +1 -0
  100. package/dist/node/search/_searchUsers.js.map +1 -1
  101. package/dist/node/search/index.js +1 -1
  102. package/dist/node/search/index.js.map +1 -1
  103. package/dist/node/search/{ifilter-utils.js → serializeQueryForPortal.js} +38 -13
  104. package/dist/node/search/serializeQueryForPortal.js.map +1 -0
  105. package/dist/node/sites/HubSiteManager.js +2 -2
  106. package/dist/node/sites/HubSiteManager.js.map +1 -1
  107. package/dist/node/sites/HubSites.js +52 -41
  108. package/dist/node/sites/HubSites.js.map +1 -1
  109. package/dist/types/core/types/IHubEntityManager.d.ts +3 -4
  110. package/dist/types/projects/HubProjectManager.d.ts +3 -3
  111. package/dist/types/projects/HubProjects.d.ts +4 -4
  112. package/dist/types/search/_internal/createQueryFromString.d.ts +10 -0
  113. package/dist/types/search/_internal/hubSearchItems.d.ts +1 -0
  114. package/dist/types/search/_internal/index.d.ts +2 -1
  115. package/dist/types/search/_internal/ipredicate-utils.d.ts +6 -0
  116. package/dist/types/search/_internal/searchEntities.d.ts +23 -0
  117. package/dist/types/search/_internal/state.d.ts +8 -0
  118. package/dist/types/search/_searchContent.d.ts +1 -0
  119. package/dist/types/search/_searchGroups.d.ts +1 -0
  120. package/dist/types/search/_searchUsers.d.ts +1 -0
  121. package/dist/types/search/index.d.ts +1 -1
  122. package/dist/types/search/{ifilter-utils.d.ts → serializeQueryForPortal.d.ts} +5 -0
  123. package/dist/types/search/types/IHubAggregation.d.ts +9 -0
  124. package/dist/types/search/types/IHubSearchOptions.d.ts +18 -8
  125. package/dist/types/search/types/IHubSearchResponse.d.ts +18 -0
  126. package/dist/types/sites/HubSiteManager.d.ts +2 -2
  127. package/dist/types/sites/HubSites.d.ts +2 -2
  128. package/dist/umd/common.umd.js +162 -95
  129. package/dist/umd/common.umd.js.map +1 -1
  130. package/package.json +1 -1
  131. package/dist/es2017/search/_internal/searchContentEntities.js +0 -89
  132. package/dist/es2017/search/_internal/searchContentEntities.js.map +0 -1
  133. package/dist/es2017/search/ifilter-utils.js.map +0 -1
  134. package/dist/esm/search/_internal/searchContentEntities.js.map +0 -1
  135. package/dist/esm/search/ifilter-utils.js.map +0 -1
  136. package/dist/node/search/_internal/searchContentEntities.js +0 -94
  137. package/dist/node/search/_internal/searchContentEntities.js.map +0 -1
  138. package/dist/node/search/ifilter-utils.js.map +0 -1
  139. package/dist/types/search/_internal/searchContentEntities.d.ts +0 -32
@@ -1,5 +1,5 @@
1
1
  /* @preserve
2
- * @esri/hub-common - v9.45.3 - Fri Jul 01 2022 14:51:47 GMT+0000 (Coordinated Universal Time)
2
+ * @esri/hub-common - v9.45.6 - Thu Jul 14 2022 18:47:22 GMT+0000 (Coordinated Universal Time)
3
3
  * Copyright (c) 2022 Environmental Systems Research Institute, Inc.
4
4
  * Apache-2.0
5
5
  */
@@ -14473,6 +14473,7 @@
14473
14473
 
14474
14474
  // TODO: Remove with _searchContent
14475
14475
  /**
14476
+ * @private
14476
14477
  * Search for content via the Portal or Hub API
14477
14478
  * @param filter
14478
14479
  * @param options
@@ -14584,6 +14585,7 @@
14584
14585
 
14585
14586
  // TODO: Remove with _searchContent
14586
14587
  /**
14588
+ * @private
14587
14589
  * Search Groups using Filter<"group">
14588
14590
  *
14589
14591
  * Currently just returns ISearchResult<IGroup>
@@ -14668,6 +14670,7 @@
14668
14670
 
14669
14671
  // TODO: Remove with _searchContent
14670
14672
  /**
14673
+ * @private
14671
14674
  * Search for Users via the Portal API.
14672
14675
  *
14673
14676
  * **Note** Authentication is required
@@ -14754,6 +14757,7 @@
14754
14757
  }
14755
14758
 
14756
14759
  /**
14760
+ * @private
14757
14761
  * Apply the sortState to SortOptions
14758
14762
  *
14759
14763
  * @param sortOptions
@@ -14771,6 +14775,7 @@
14771
14775
  return updated;
14772
14776
  }
14773
14777
  /**
14778
+ * @private
14774
14779
  * Apply FacetState to a Facet
14775
14780
  * @param facet
14776
14781
  * @param state
@@ -14789,6 +14794,7 @@
14789
14794
  return updated;
14790
14795
  }
14791
14796
  /**
14797
+ * @private
14792
14798
  * Apply the Facet State onto a single-select facet
14793
14799
  *
14794
14800
  * Intentionally mutates the facet.
@@ -14805,6 +14811,7 @@
14805
14811
  return updated;
14806
14812
  }
14807
14813
  /**
14814
+ * @private
14808
14815
  * Serialize single-select facet into IFacetState
14809
14816
  * @param facet
14810
14817
  * @returns
@@ -14821,6 +14828,7 @@
14821
14828
  return state;
14822
14829
  }
14823
14830
  /**
14831
+ * @private
14824
14832
  * Apply the Facet State onto a multi-select Facet
14825
14833
  *
14826
14834
  * Intentionally mutates the facet.
@@ -14839,6 +14847,7 @@
14839
14847
  return updated;
14840
14848
  }
14841
14849
  /**
14850
+ * @private
14842
14851
  * Serialize multi-select facet into IFacetState
14843
14852
  * @param facet
14844
14853
  * @returns
@@ -14856,6 +14865,7 @@
14856
14865
  return state;
14857
14866
  }
14858
14867
  /**
14868
+ * @private
14859
14869
  * Serialize the state of the SortOption into a key/value pair
14860
14870
  *
14861
14871
  * Called from the Sort component
@@ -14866,6 +14876,7 @@
14866
14876
  return sort.label + "|" + sort.attribute + "|" + sort.order;
14867
14877
  }
14868
14878
  /**
14879
+ * @private
14869
14880
  * Serialize the state of a facet into a key/value pair
14870
14881
  *
14871
14882
  * Called from the various facet components
@@ -15006,6 +15017,12 @@
15006
15017
  }
15007
15018
  }
15008
15019
 
15020
+ /**
15021
+ * @private
15022
+ * Expand a predicate
15023
+ * @param predicate
15024
+ * @returns
15025
+ */
15009
15026
  function expandPredicate(predicate) {
15010
15027
  var result = {};
15011
15028
  var dateProps = ["created", "modified", "lastlogin"];
@@ -15042,24 +15059,41 @@
15042
15059
  return result;
15043
15060
  }
15044
15061
 
15062
+ /**
15063
+ * Serialize IQuery into ISearchOptions for ArcGIS Portal
15064
+ * @param query
15065
+ * @returns
15066
+ */
15045
15067
  function serializeQueryForPortal(query) {
15046
15068
  var filterSearchOptions = query.filters.map(serializeFilter);
15047
- var result = mergeSearchOptions(filterSearchOptions, "AND");
15069
+ // remove any empty entries
15070
+ var nonEmptyOptions = filterSearchOptions.filter(removeEmptyEntries);
15071
+ var result = mergeSearchOptions(nonEmptyOptions, "AND");
15048
15072
  return result;
15049
15073
  }
15074
+ /**
15075
+ * Predicate to remove things from array
15076
+ * @param e
15077
+ * @returns
15078
+ */
15079
+ function removeEmptyEntries(e) {
15080
+ return !(typeof e === "undefined" || e === null || e === "");
15081
+ }
15050
15082
  function mergeSearchOptions(options, operation) {
15051
15083
  var result = options.reduce(function (acc, entry) {
15052
15084
  // walk the props
15053
15085
  Object.entries(entry).forEach(function (_a) {
15054
15086
  var key = _a[0], value = _a[1];
15055
- // if prop exists
15056
- if (acc[key]) {
15087
+ // if prop exists and is not empty string
15088
+ if (acc[key] && value !== "") {
15057
15089
  // combine via operation
15058
15090
  acc[key] = acc[key] + " " + operation + " " + value;
15059
15091
  }
15060
15092
  else {
15061
- // just copy the value
15062
- acc[key] = value;
15093
+ // just copy the value if it's not empty string
15094
+ if (value !== "") {
15095
+ acc[key] = value;
15096
+ }
15063
15097
  }
15064
15098
  });
15065
15099
  return acc;
@@ -15074,7 +15108,9 @@
15074
15108
  function serializeFilter(filter) {
15075
15109
  var operation = filter.operation || "AND";
15076
15110
  var predicates = filter.predicates.map(expandPredicate);
15077
- var predicateSearchOptions = predicates.map(serializePredicate);
15111
+ var predicateSearchOptions = predicates
15112
+ .map(serializePredicate)
15113
+ .filter(function (e) { return e !== undefined && e !== null; });
15078
15114
  // combine these searchOptions
15079
15115
  var searchOptions = mergeSearchOptions(predicateSearchOptions, operation);
15080
15116
  // wrap in parens if we have more than one predicate
@@ -15126,6 +15162,7 @@
15126
15162
  "snippet",
15127
15163
  "tags",
15128
15164
  "term",
15165
+ "title",
15129
15166
  "type",
15130
15167
  "typekeywords",
15131
15168
  "userlicensetype",
@@ -15141,7 +15178,7 @@
15141
15178
  // not attempt to ensure the properties are used in the correct combinations
15142
15179
  if (portalAllowList.includes(key)) {
15143
15180
  var so = { q: "" };
15144
- if (!specialProps.includes(key)) {
15181
+ if (!specialProps.includes(key) && key !== "term") {
15145
15182
  qCount++;
15146
15183
  so.q = serializeMatchOptions(key, value);
15147
15184
  }
@@ -15163,13 +15200,18 @@
15163
15200
  return so;
15164
15201
  }
15165
15202
  })
15166
- .filter(function (e) { return e !== undefined; });
15203
+ .filter(removeEmptyEntries);
15167
15204
  // merge up all the searchOptions
15168
- var searchOptions = mergeSearchOptions(opts, "AND");
15169
- if (qCount > 1) {
15170
- searchOptions.q = "(" + searchOptions.q + ")";
15205
+ if (opts.length) {
15206
+ var searchOptions = mergeSearchOptions(opts, "AND");
15207
+ if (qCount > 1) {
15208
+ searchOptions.q = "(" + searchOptions.q + ")";
15209
+ }
15210
+ return searchOptions;
15211
+ }
15212
+ else {
15213
+ return null;
15171
15214
  }
15172
- return searchOptions;
15173
15215
  }
15174
15216
  /**
15175
15217
  * Serialize MatchOptions into portal syntax
@@ -15264,44 +15306,51 @@
15264
15306
  var HubError$1 = HubError;
15265
15307
 
15266
15308
  /**
15267
- * Generic search that returns Hub Entity types converted from items
15268
- * by the passed in `ItemToEntityFunction`
15269
- *
15270
- * This abstraction is used to ensure that searching from any of the
15271
- * entity managers / modules is consistent, and returns the entity
15272
- * types, instead of `IItem` or `IHubContent`
15273
- *
15274
- * @param filter
15309
+ * @private
15310
+ * Convert a portal aggregation structure into the HubAggregations structure
15311
+ * @param searchResults
15312
+ * @returns
15313
+ */
15314
+ function convertPortalAggregations(searchResults) {
15315
+ var _a;
15316
+ if ((_a = searchResults.aggregations) === null || _a === void 0 ? void 0 : _a.counts) {
15317
+ return searchResults.aggregations.counts.map(function (entry) {
15318
+ return {
15319
+ mode: "terms",
15320
+ field: entry.fieldName,
15321
+ values: entry.fieldValues,
15322
+ };
15323
+ });
15324
+ }
15325
+ else {
15326
+ return [];
15327
+ }
15328
+ }
15329
+
15330
+ /**
15331
+ * @private
15332
+ * Execute a search and convert to a specific entity
15333
+ * @param query
15275
15334
  * @param convertFn
15276
15335
  * @param options
15277
15336
  * @returns
15278
15337
  */
15279
- function searchContentEntities(filter, convertFn, options) {
15280
- var _a, _b;
15281
- // expand filter so we can serialize to either api
15282
- var expanded = expandContentFilter(filter);
15283
- var searchOptions = serializeContentFilterForPortal(expanded);
15284
- // DEPRECATION
15285
- /* istanbul ignore next */
15286
- if ((_a = options.aggregations) === null || _a === void 0 ? void 0 : _a.length) {
15287
- // tslint:disable-next-line:no-console
15288
- console.warn("IHubSearchOptions.aggregations is deprecated. Please use .aggFields instead.");
15289
- searchOptions.countFields = options.aggregations.join(",");
15290
- searchOptions.countSize = options.aggLimit || 10;
15291
- }
15338
+ function searchEntities(query, convertFn, options) {
15339
+ var _a;
15340
+ // serialize query to searchOptions
15341
+ var searchOptions = serializeQueryForPortal(query);
15292
15342
  // Aggregations
15293
- if ((_b = options.aggFields) === null || _b === void 0 ? void 0 : _b.length) {
15343
+ if ((_a = options.aggFields) === null || _a === void 0 ? void 0 : _a.length) {
15294
15344
  searchOptions.countFields = options.aggFields.join(",");
15295
15345
  searchOptions.countSize = options.aggLimit || 10;
15296
15346
  }
15297
15347
  // properties to copy from IHubSearchOptions to the ISearchOptions
15298
15348
  var props = [
15299
- "authentication",
15300
15349
  "num",
15301
15350
  "sortField",
15302
15351
  "sortOrder",
15303
- "site",
15304
15352
  "start",
15353
+ "requestOptions",
15305
15354
  ];
15306
15355
  // Include "start" here
15307
15356
  // copy the props over
@@ -15311,8 +15360,7 @@
15311
15360
  }
15312
15361
  });
15313
15362
  // create the entitySearchFn
15314
- var searchFn = createContentEntitySearchFn(convertFn);
15315
- // execute the search
15363
+ var searchFn = createEntitySearchFn(convertFn);
15316
15364
  // Add ArcGIS API
15317
15365
  if (options.api && !options.authentication) {
15318
15366
  var expandedApi = expandApi(options.api);
@@ -15321,20 +15369,17 @@
15321
15369
  return searchFn(searchOptions);
15322
15370
  }
15323
15371
  /**
15324
- * Return a function that holds a closure containing
15325
- * a hub entity specific conversion function. This
15326
- * allows the `.next()` function to use the function on
15327
- * subsequent calls
15372
+ * @private
15328
15373
  * @param convertFn
15329
15374
  * @returns
15330
15375
  */
15331
- function createContentEntitySearchFn(convertFn) {
15376
+ function createEntitySearchFn(convertFn) {
15332
15377
  // Return a function that does the search, with a closure over the
15333
15378
  // conversion function. Naming this function is important as it's
15334
15379
  // referenced in the `next` section below
15335
- return function searchEntities(searchOptions) {
15380
+ return function executeSearch(searchOptions) {
15336
15381
  return __awaiter(this, void 0, void 0, function () {
15337
- var response, entities, facets;
15382
+ var response, entities, aggregations;
15338
15383
  return __generator(this, function (_a) {
15339
15384
  switch (_a.label) {
15340
15385
  case 0: return [4 /*yield*/, searchItems(searchOptions)];
@@ -15345,13 +15390,13 @@
15345
15390
  }))];
15346
15391
  case 2:
15347
15392
  entities = _a.sent();
15348
- facets = convertPortalResponseToFacets(response);
15393
+ aggregations = convertPortalAggregations(response);
15349
15394
  return [2 /*return*/, {
15350
15395
  total: response.total,
15351
15396
  results: entities,
15352
- facets: facets,
15397
+ aggregations: aggregations,
15353
15398
  hasNext: response.nextStart > -1,
15354
- next: getNextFunction(searchOptions, response.nextStart, response.total, searchEntities),
15399
+ next: getNextFunction(searchOptions, response.nextStart, response.total, executeSearch),
15355
15400
  }];
15356
15401
  }
15357
15402
  });
@@ -15962,24 +16007,34 @@
15962
16007
  /**
15963
16008
  * Search for Projects, and get IHubProject results
15964
16009
  *
15965
- * Different from `searchContent` in that this returns the specific entity type
16010
+ * Different from `hubSearch` in that this returns the IHubProjects
15966
16011
  *
15967
16012
  * @param filter
15968
16013
  * @param options
15969
16014
  * @returns
15970
16015
  */
15971
- function searchProjects(filter, options) {
16016
+ function searchProjects(query, options) {
15972
16017
  return __awaiter(this, void 0, void 0, function () {
15973
- var scopingFilter, projectFilter;
16018
+ var qry, scopingFilters;
15974
16019
  return __generator(this, function (_a) {
15975
- scopingFilter = {
15976
- filterType: "content",
15977
- type: {
15978
- exact: ["Hub Project"],
16020
+ if (typeof query === "string") {
16021
+ qry = createQueryFromString(query, "term", "item");
16022
+ }
16023
+ else {
16024
+ qry = cloneObject$1(query);
16025
+ }
16026
+ scopingFilters = [
16027
+ {
16028
+ predicates: [
16029
+ {
16030
+ type: "Hub Project",
16031
+ },
16032
+ ],
15979
16033
  },
15980
- };
15981
- projectFilter = mergeContentFilter([scopingFilter, filter]);
15982
- return [2 /*return*/, searchContentEntities(projectFilter, convertItemToProject, options)];
16034
+ ];
16035
+ // add filters from the passed in query
16036
+ qry.filters = __spreadArrays(scopingFilters, qry.filters);
16037
+ return [2 /*return*/, searchEntities(qry, convertItemToProject, options)];
15983
16038
  });
15984
16039
  });
15985
16040
  }
@@ -16255,17 +16310,17 @@
16255
16310
  /**
16256
16311
  * Search for Projects
16257
16312
  *
16258
- * @param filter
16313
+ * @param query
16259
16314
  * @param options
16260
16315
  */
16261
- HubProjectManager.prototype.search = function (filter, options) {
16316
+ HubProjectManager.prototype.search = function (query, options) {
16262
16317
  return __awaiter(this, void 0, void 0, function () {
16263
16318
  return __generator(this, function (_a) {
16264
16319
  // if we were not passed auth, and we have a session, use it
16265
16320
  if (!options.authentication && this.context.session) {
16266
16321
  options.authentication = this.context.session;
16267
16322
  }
16268
- return [2 /*return*/, searchProjects(filter, options)];
16323
+ return [2 /*return*/, searchProjects(query, options)];
16269
16324
  });
16270
16325
  });
16271
16326
  };
@@ -16908,6 +16963,28 @@
16908
16963
  });
16909
16964
  }
16910
16965
 
16966
+ /**
16967
+ * @private
16968
+ * Construct a query from a string
16969
+ * @param value
16970
+ * @param predicateKey
16971
+ * @param targetEntity
16972
+ * @returns
16973
+ */
16974
+ function createQueryFromString(value, predicateKey, targetEntity) {
16975
+ var predicate = {};
16976
+ predicate[predicateKey] = value;
16977
+ var qry = {
16978
+ targetEntity: targetEntity,
16979
+ filters: [
16980
+ {
16981
+ predicates: [predicate],
16982
+ },
16983
+ ],
16984
+ };
16985
+ return qry;
16986
+ }
16987
+
16911
16988
  var HUB_SITE_ITEM_TYPE = "Hub Site Application";
16912
16989
  var ENTERPRISE_SITE_ITEM_TYPE = "Site Application";
16913
16990
  /**
@@ -17335,17 +17412,28 @@
17335
17412
  * @param options
17336
17413
  * @returns
17337
17414
  */
17338
- function searchSites(filter, options) {
17415
+ function searchSites(query, options) {
17339
17416
  return __awaiter(this, void 0, void 0, function () {
17340
- var scopingFilter, sitesFilter;
17417
+ var qry, scopingFilters;
17341
17418
  return __generator(this, function (_a) {
17342
- scopingFilter = {
17343
- filterType: "content",
17344
- type: "$site",
17345
- };
17346
- sitesFilter = mergeContentFilter([scopingFilter, filter]);
17347
- // delegate
17348
- return [2 /*return*/, searchContentEntities(sitesFilter, convertItemToSite, options)];
17419
+ if (typeof query === "string") {
17420
+ qry = createQueryFromString(query, "term", "item");
17421
+ }
17422
+ else {
17423
+ qry = cloneObject$1(query);
17424
+ }
17425
+ scopingFilters = [
17426
+ {
17427
+ predicates: [
17428
+ {
17429
+ type: "Hub Project",
17430
+ },
17431
+ ],
17432
+ },
17433
+ ];
17434
+ // add filters from the passed in query
17435
+ qry.filters = __spreadArrays(scopingFilters, qry.filters);
17436
+ return [2 /*return*/, searchEntities(qry, convertItemToSite, options)];
17349
17437
  });
17350
17438
  });
17351
17439
  }
@@ -17545,14 +17633,14 @@
17545
17633
  * @param filter
17546
17634
  * @param opts
17547
17635
  */
17548
- HubSiteManager.prototype.search = function (filter, options) {
17636
+ HubSiteManager.prototype.search = function (query, options) {
17549
17637
  return __awaiter(this, void 0, void 0, function () {
17550
17638
  return __generator(this, function (_a) {
17551
17639
  // if we were not passed auth, and we have a session, use it
17552
17640
  if (!options.authentication && this.context.session) {
17553
17641
  options.authentication = this.context.session;
17554
17642
  }
17555
- return [2 /*return*/, searchSites(filter, options)];
17643
+ return [2 /*return*/, searchSites(query, options)];
17556
17644
  });
17557
17645
  });
17558
17646
  };
@@ -17874,28 +17962,6 @@
17874
17962
  }
17875
17963
  }
17876
17964
 
17877
- /**
17878
- * @private
17879
- * Convert a portal aggregation structure into the HubAggregations structure
17880
- * @param searchResults
17881
- * @returns
17882
- */
17883
- function convertPortalAggregations(searchResults) {
17884
- var _a;
17885
- if ((_a = searchResults.aggregations) === null || _a === void 0 ? void 0 : _a.counts) {
17886
- return searchResults.aggregations.counts.map(function (entry) {
17887
- return {
17888
- mode: "terms",
17889
- field: entry.fieldName,
17890
- values: entry.fieldValues,
17891
- };
17892
- });
17893
- }
17894
- else {
17895
- return [];
17896
- }
17897
- }
17898
-
17899
17965
  /**
17900
17966
  * @private
17901
17967
  * Portal Search Implementation for Items
@@ -18255,6 +18321,7 @@
18255
18321
  //
18256
18322
  // Since Hub API is still in flux, there is no code coverage for this file
18257
18323
  /**
18324
+ * @private
18258
18325
  * Execute item search against the Hub API
18259
18326
  * @param filter
18260
18327
  * @param options