@esri/hub-common 14.41.0 → 14.42.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 (33) hide show
  1. package/dist/esm/pages/_internal/PageSchema.js +2 -26
  2. package/dist/esm/pages/_internal/PageSchema.js.map +1 -1
  3. package/dist/esm/search/_internal/commonHelpers/getTopLevelPredicate.js +8 -5
  4. package/dist/esm/search/_internal/commonHelpers/getTopLevelPredicate.js.map +1 -1
  5. package/dist/esm/search/_internal/commonHelpers/isNilOrEmptyString.js +10 -0
  6. package/dist/esm/search/_internal/commonHelpers/isNilOrEmptyString.js.map +1 -0
  7. package/dist/esm/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.js +5 -3
  8. package/dist/esm/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.js.map +1 -1
  9. package/dist/esm/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.js +9 -3
  10. package/dist/esm/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.js.map +1 -1
  11. package/dist/esm/search/_internal/hubSearchItemsHelpers/getOpenDataQueryParam.js +15 -0
  12. package/dist/esm/search/_internal/hubSearchItemsHelpers/getOpenDataQueryParam.js.map +1 -0
  13. package/dist/esm/search/_internal/hubSearchItemsHelpers/getQueryString.js +2 -1
  14. package/dist/esm/search/_internal/hubSearchItemsHelpers/getQueryString.js.map +1 -1
  15. package/dist/node/pages/_internal/PageSchema.js +2 -26
  16. package/dist/node/pages/_internal/PageSchema.js.map +1 -1
  17. package/dist/node/search/_internal/commonHelpers/getTopLevelPredicate.js +8 -5
  18. package/dist/node/search/_internal/commonHelpers/getTopLevelPredicate.js.map +1 -1
  19. package/dist/node/search/_internal/commonHelpers/isNilOrEmptyString.js +14 -0
  20. package/dist/node/search/_internal/commonHelpers/isNilOrEmptyString.js.map +1 -0
  21. package/dist/node/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.js +5 -3
  22. package/dist/node/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.js.map +1 -1
  23. package/dist/node/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.js +9 -3
  24. package/dist/node/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.js.map +1 -1
  25. package/dist/node/search/_internal/hubSearchItemsHelpers/getOpenDataQueryParam.js +19 -0
  26. package/dist/node/search/_internal/hubSearchItemsHelpers/getOpenDataQueryParam.js.map +1 -0
  27. package/dist/node/search/_internal/hubSearchItemsHelpers/getQueryString.js +2 -1
  28. package/dist/node/search/_internal/hubSearchItemsHelpers/getQueryString.js.map +1 -1
  29. package/dist/types/search/_internal/commonHelpers/getTopLevelPredicate.d.ts +1 -1
  30. package/dist/types/search/_internal/commonHelpers/isNilOrEmptyString.d.ts +7 -0
  31. package/dist/types/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.d.ts +2 -1
  32. package/dist/types/search/_internal/hubSearchItemsHelpers/getOpenDataQueryParam.d.ts +11 -0
  33. package/package.json +1 -1
@@ -1,31 +1,7 @@
1
- import { ENTITY_ACCESS_SCHEMA, ENTITY_CATEGORIES_SCHEMA, ENTITY_NAME_SCHEMA, ENTITY_TAGS_SCHEMA, } from "../../core/schemas/shared";
1
+ import { HubItemEntitySchema } from "../../core/schemas/shared/HubItemEntitySchema";
2
2
  export const PageEditorTypes = ["hub:page:edit"];
3
3
  /**
4
4
  * defines the JSON schema for a Hub Site's editable fields
5
5
  */
6
- export const PageSchema = {
7
- required: ["name"],
8
- type: "object",
9
- properties: {
10
- name: ENTITY_NAME_SCHEMA,
11
- summary: {
12
- type: "string",
13
- },
14
- description: {
15
- type: "string",
16
- },
17
- access: ENTITY_ACCESS_SCHEMA,
18
- groups: {
19
- type: "array",
20
- items: {
21
- type: "string",
22
- },
23
- },
24
- location: {
25
- type: "object",
26
- },
27
- tags: ENTITY_TAGS_SCHEMA,
28
- categories: ENTITY_CATEGORIES_SCHEMA,
29
- },
30
- };
6
+ export const PageSchema = Object.assign(Object.assign({}, HubItemEntitySchema), { properties: Object.assign({}, HubItemEntitySchema.properties) });
31
7
  //# sourceMappingURL=PageSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageSchema.js","sourceRoot":"","sources":["../../../../src/pages/_internal/PageSchema.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,eAAe,CAAU,CAAC;AAG1D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;SACf;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;SACf;QACD,MAAM,EAAE,oBAAoB;QAC5B,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;aACf;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,wBAAwB;KACrC;CACiC,CAAC"}
1
+ {"version":3,"file":"PageSchema.js","sourceRoot":"","sources":["../../../../src/pages/_internal/PageSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAEpF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,eAAe,CAAU,CAAC;AAG1D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAyB,gCAC3C,mBAAmB,KACtB,UAAU,oBACL,mBAAmB,CAAC,UAAU,IAED,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { isNilOrEmptyString } from "./isNilOrEmptyString";
1
2
  /**
2
3
  * Searches through a list of filters and finds a specific predicate that should be appended at the top level of a search
3
4
  * (i.e., has special requirements for combining with other predicates). Also verifies that the predicate is not combined in any invalid ways.
@@ -6,7 +7,7 @@
6
7
  * - Only ONE filter can have a predicate with the target field
7
8
  * - Only ONE predicate with the target field can exist
8
9
  * - The predicate can only be ANDed to other predicates
9
- * - The predicate's field value MUST be a string (not string[] or IMatchOptions)
10
+ * - The predicate's field value MUST be a string or boolean (not string[] or IMatchOptions)
10
11
  *
11
12
  * Example: Portal's bbox field cannot be conditionally searched. Any value provided will always be applied as a top-level filter.
12
13
  * - Valid: `?bbox=1,2,3,4&filter=type:CSV`
@@ -19,14 +20,14 @@
19
20
  export function getTopLevelPredicate(field, filters) {
20
21
  let result = null;
21
22
  const matchingFilters = filters.filter((f) => {
22
- return f.predicates.find((p) => !!p[field]);
23
+ return f.predicates.find((p) => !isNilOrEmptyString(p[field]));
23
24
  });
24
25
  if (matchingFilters.length > 1) {
25
26
  throw new Error(`Only 1 IFilter can have a '${field}' predicate but ${matchingFilters.length} were detected`);
26
27
  }
27
28
  if (matchingFilters.length) {
28
29
  const matchingFilter = matchingFilters[0];
29
- const matchingPredicates = matchingFilter.predicates.filter((p) => !!p[field]);
30
+ const matchingPredicates = matchingFilter.predicates.filter((p) => !isNilOrEmptyString(p[field]));
30
31
  if (matchingPredicates.length > 1) {
31
32
  throw new Error(`Only 1 '${field}' predicate is allowed but ${matchingPredicates.length} were detected`);
32
33
  }
@@ -35,8 +36,10 @@ export function getTopLevelPredicate(field, filters) {
35
36
  throw new Error(`'${field}' predicates cannot be OR'd to other predicates`);
36
37
  }
37
38
  const topLevelPredicate = matchingPredicates[0];
38
- if (typeof topLevelPredicate[field] !== "string") {
39
- throw new Error(`'${field}' predicate must have a string value, string[] and IMatchOptions are not allowed.`);
39
+ const predicateValue = topLevelPredicate[field];
40
+ const isValidPrimitive = typeof predicateValue === "string" || typeof predicateValue === "boolean";
41
+ if (!isValidPrimitive) {
42
+ throw new Error(`'${field}' predicate must be a string or boolean primitive. string[] and IMatchOptions are not allowed.`);
40
43
  }
41
44
  result = topLevelPredicate;
42
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTopLevelPredicate.js","sourceRoot":"","sources":["../../../../../src/search/_internal/commonHelpers/getTopLevelPredicate.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,OAAkB;IAElB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,MAAM,eAAe,GAAc,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACtD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,mBAAmB,eAAe,CAAC,MAAM,gBAAgB,CAC7F,CAAC;KACH;IAED,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAClB,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,8BAA8B,kBAAkB,CAAC,MAAM,gBAAgB,CACxF,CAAC;SACH;QAED,IACE,cAAc,CAAC,SAAS,KAAK,KAAK;YAClC,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACpC;YACA,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,iDAAiD,CAC3D,CAAC;SACH;QAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAChD,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,mFAAmF,CAC7F,CAAC;SACH;QACD,MAAM,GAAG,iBAAiB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"getTopLevelPredicate.js","sourceRoot":"","sources":["../../../../../src/search/_internal/commonHelpers/getTopLevelPredicate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,OAAkB;IAElB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,MAAM,eAAe,GAAc,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACtD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,mBAAmB,eAAe,CAAC,MAAM,gBAAgB,CAC7F,CAAC;KACH;IAED,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,8BAA8B,kBAAkB,CAAC,MAAM,gBAAgB,CACxF,CAAC;SACH;QAED,IACE,cAAc,CAAC,SAAS,KAAK,KAAK;YAClC,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACpC;YACA,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,iDAAiD,CAC3D,CAAC;SACH;QAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,gBAAgB,GACpB,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,cAAc,KAAK,SAAS,CAAC;QAC5E,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,gGAAgG,CAC1G,CAAC;SACH;QACD,MAAM,GAAG,iBAAiB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Determines whether a value is null, undefined, or an empty string.
3
+ * This is particularly useful when 0 and false are considered meaningful values
4
+ * @param value value to check
5
+ * @returns whether the value is null, undefined, or an empty string
6
+ */
7
+ export function isNilOrEmptyString(value) {
8
+ return value == null || value === "";
9
+ }
10
+ //# sourceMappingURL=isNilOrEmptyString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNilOrEmptyString.js","sourceRoot":"","sources":["../../../../../src/search/_internal/commonHelpers/isNilOrEmptyString.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAU;IAC3C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;AACvC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { isNilOrEmptyString } from "../commonHelpers/isNilOrEmptyString";
1
2
  export function getFilterQueryParam(query) {
2
3
  return query.filters
3
4
  .map(formatFilterBlock)
@@ -16,11 +17,11 @@ export function formatPredicate(predicate) {
16
17
  const formatted = Object.entries(predicate)
17
18
  // Remove predicates that use `term` (handled in `getQQueryParam`),
18
19
  // `bbox` (handled in `getBboxQueryParam) or have undefined entries
19
- .filter(([field, value]) => field !== "term" && field !== "bbox" && !!value)
20
+ .filter(([field, value]) => field !== "term" && field !== "bbox" && !isNilOrEmptyString(value))
20
21
  // Create sections for each field
21
22
  .reduce((acc, [field, value]) => {
22
23
  let section;
23
- if (typeof value === "string") {
24
+ if (typeof value === "string" || typeof value === "boolean") {
24
25
  section = formatSimpleComparison(field, value);
25
26
  }
26
27
  else if (Array.isArray(value)) {
@@ -46,7 +47,8 @@ function formatDateRangePredicate(field, value) {
46
47
  return `${field} BETWEEN ${value.from} AND ${value.to}`;
47
48
  }
48
49
  function formatSimpleComparison(field, value) {
49
- return `${field}=${maybeAddSingleQuotes(value)}`;
50
+ const formattedValue = typeof value === "string" ? maybeAddSingleQuotes(value) : value;
51
+ return `${field}=${formattedValue}`;
50
52
  }
51
53
  function formatMultiStringPredicate(field, values) {
52
54
  const wrappedValues = values.map(maybeAddSingleQuotes);
@@ -1 +1 @@
1
- {"version":3,"file":"getFilterQueryParam.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getFilterQueryParam.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,15 @@
1
1
  import { getProp } from "../../../objects/get-prop";
2
- export function getOgcAggregationQueryParams(_query, options) {
2
+ import { getOpenDataQueryParam } from "./getOpenDataQueryParam";
3
+ export function getOgcAggregationQueryParams(query, options) {
3
4
  // TODO: use options.aggLimit once the OGC API supports it
4
5
  const aggregations = `terms(fields=(${options.aggFields.join()}))`;
5
- // TODO: Use `query` to filter aggregations once the OGC API supports it
6
+ // TODO: Use the rest of `query` to filter aggregations once the OGC API supports it
7
+ const openData = getOpenDataQueryParam(query);
6
8
  const token = getProp(options, "requestOptions.authentication.token");
7
- return { aggregations, token };
9
+ return {
10
+ aggregations,
11
+ openData,
12
+ token,
13
+ };
8
14
  }
9
15
  //# sourceMappingURL=getOgcAggregationQueryParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOgcAggregationQueryParams.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIpD,MAAM,UAAU,4BAA4B,CAC1C,MAAc,EACd,OAA0B;IAE1B,0DAA0D;IAC1D,MAAM,YAAY,GAAG,iBAAiB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACnE,wEAAwE;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;IAEtE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"getOgcAggregationQueryParams.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,UAAU,4BAA4B,CAC1C,KAAa,EACb,OAA0B;IAE1B,0DAA0D;IAC1D,MAAM,YAAY,GAAG,iBAAiB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACnE,oFAAoF;IACpF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;IAEtE,OAAO;QACL,YAAY;QACZ,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { getTopLevelPredicate } from "../commonHelpers/getTopLevelPredicate";
2
+ /**
3
+ * @private
4
+ * Extracts the openData flag that the search should be filtered by.
5
+ * Also validates that the openData predicate is not combined in some
6
+ * invalid way with other predicates.
7
+ *
8
+ * @param query query to extract the opendata predicate from
9
+ * @returns the openData value to filter by
10
+ */
11
+ export function getOpenDataQueryParam(query) {
12
+ const openDataPredicate = getTopLevelPredicate("openData", query.filters);
13
+ return openDataPredicate === null || openDataPredicate === void 0 ? void 0 : openDataPredicate.openData;
14
+ }
15
+ //# sourceMappingURL=getOpenDataQueryParam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOpenDataQueryParam.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getOpenDataQueryParam.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,QAAQ,CAAC;AACrC,CAAC"}
@@ -1,6 +1,7 @@
1
+ import { isNilOrEmptyString } from "../commonHelpers/isNilOrEmptyString";
1
2
  export function getQueryString(queryParams) {
2
3
  const result = Object.entries(queryParams)
3
- .filter(([_key, value]) => !!value)
4
+ .filter(([_key, value]) => !isNilOrEmptyString(value))
4
5
  .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
5
6
  .join("&");
6
7
  return result && `?${result}`;
@@ -1 +1 @@
1
- {"version":3,"file":"getQueryString.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getQueryString.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,WAAgC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"getQueryString.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getQueryString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,MAAM,UAAU,cAAc,CAAC,WAAgC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACrD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;AAChC,CAAC"}
@@ -1,34 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PageSchema = exports.PageEditorTypes = void 0;
4
- const shared_1 = require("../../core/schemas/shared");
4
+ const HubItemEntitySchema_1 = require("../../core/schemas/shared/HubItemEntitySchema");
5
5
  exports.PageEditorTypes = ["hub:page:edit"];
6
6
  /**
7
7
  * defines the JSON schema for a Hub Site's editable fields
8
8
  */
9
- exports.PageSchema = {
10
- required: ["name"],
11
- type: "object",
12
- properties: {
13
- name: shared_1.ENTITY_NAME_SCHEMA,
14
- summary: {
15
- type: "string",
16
- },
17
- description: {
18
- type: "string",
19
- },
20
- access: shared_1.ENTITY_ACCESS_SCHEMA,
21
- groups: {
22
- type: "array",
23
- items: {
24
- type: "string",
25
- },
26
- },
27
- location: {
28
- type: "object",
29
- },
30
- tags: shared_1.ENTITY_TAGS_SCHEMA,
31
- categories: shared_1.ENTITY_CATEGORIES_SCHEMA,
32
- },
33
- };
9
+ exports.PageSchema = Object.assign(Object.assign({}, HubItemEntitySchema_1.HubItemEntitySchema), { properties: Object.assign({}, HubItemEntitySchema_1.HubItemEntitySchema.properties) });
34
10
  //# sourceMappingURL=PageSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageSchema.js","sourceRoot":"","sources":["../../../../src/pages/_internal/PageSchema.ts"],"names":[],"mappings":";;;AACA,sDAKmC;AAEtB,QAAA,eAAe,GAAG,CAAC,eAAe,CAAU,CAAC;AAG1D;;GAEG;AACU,QAAA,UAAU,GAAyB;IAC9C,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,2BAAkB;QACxB,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;SACf;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;SACf;QACD,MAAM,EAAE,6BAAoB;QAC5B,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;aACf;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE,2BAAkB;QACxB,UAAU,EAAE,iCAAwB;KACrC;CACiC,CAAC"}
1
+ {"version":3,"file":"PageSchema.js","sourceRoot":"","sources":["../../../../src/pages/_internal/PageSchema.ts"],"names":[],"mappings":";;;AACA,uFAAoF;AAEvE,QAAA,eAAe,GAAG,CAAC,eAAe,CAAU,CAAC;AAG1D;;GAEG;AACU,QAAA,UAAU,GAAyB,gCAC3C,yCAAmB,KACtB,UAAU,oBACL,yCAAmB,CAAC,UAAU,IAED,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTopLevelPredicate = void 0;
4
+ const isNilOrEmptyString_1 = require("./isNilOrEmptyString");
4
5
  /**
5
6
  * Searches through a list of filters and finds a specific predicate that should be appended at the top level of a search
6
7
  * (i.e., has special requirements for combining with other predicates). Also verifies that the predicate is not combined in any invalid ways.
@@ -9,7 +10,7 @@ exports.getTopLevelPredicate = void 0;
9
10
  * - Only ONE filter can have a predicate with the target field
10
11
  * - Only ONE predicate with the target field can exist
11
12
  * - The predicate can only be ANDed to other predicates
12
- * - The predicate's field value MUST be a string (not string[] or IMatchOptions)
13
+ * - The predicate's field value MUST be a string or boolean (not string[] or IMatchOptions)
13
14
  *
14
15
  * Example: Portal's bbox field cannot be conditionally searched. Any value provided will always be applied as a top-level filter.
15
16
  * - Valid: `?bbox=1,2,3,4&filter=type:CSV`
@@ -22,14 +23,14 @@ exports.getTopLevelPredicate = void 0;
22
23
  function getTopLevelPredicate(field, filters) {
23
24
  let result = null;
24
25
  const matchingFilters = filters.filter((f) => {
25
- return f.predicates.find((p) => !!p[field]);
26
+ return f.predicates.find((p) => !isNilOrEmptyString_1.isNilOrEmptyString(p[field]));
26
27
  });
27
28
  if (matchingFilters.length > 1) {
28
29
  throw new Error(`Only 1 IFilter can have a '${field}' predicate but ${matchingFilters.length} were detected`);
29
30
  }
30
31
  if (matchingFilters.length) {
31
32
  const matchingFilter = matchingFilters[0];
32
- const matchingPredicates = matchingFilter.predicates.filter((p) => !!p[field]);
33
+ const matchingPredicates = matchingFilter.predicates.filter((p) => !isNilOrEmptyString_1.isNilOrEmptyString(p[field]));
33
34
  if (matchingPredicates.length > 1) {
34
35
  throw new Error(`Only 1 '${field}' predicate is allowed but ${matchingPredicates.length} were detected`);
35
36
  }
@@ -38,8 +39,10 @@ function getTopLevelPredicate(field, filters) {
38
39
  throw new Error(`'${field}' predicates cannot be OR'd to other predicates`);
39
40
  }
40
41
  const topLevelPredicate = matchingPredicates[0];
41
- if (typeof topLevelPredicate[field] !== "string") {
42
- throw new Error(`'${field}' predicate must have a string value, string[] and IMatchOptions are not allowed.`);
42
+ const predicateValue = topLevelPredicate[field];
43
+ const isValidPrimitive = typeof predicateValue === "string" || typeof predicateValue === "boolean";
44
+ if (!isValidPrimitive) {
45
+ throw new Error(`'${field}' predicate must be a string or boolean primitive. string[] and IMatchOptions are not allowed.`);
43
46
  }
44
47
  result = topLevelPredicate;
45
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTopLevelPredicate.js","sourceRoot":"","sources":["../../../../../src/search/_internal/commonHelpers/getTopLevelPredicate.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,oBAAoB,CAClC,KAAa,EACb,OAAkB;IAElB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,MAAM,eAAe,GAAc,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACtD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,mBAAmB,eAAe,CAAC,MAAM,gBAAgB,CAC7F,CAAC;KACH;IAED,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAClB,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,8BAA8B,kBAAkB,CAAC,MAAM,gBAAgB,CACxF,CAAC;SACH;QAED,IACE,cAAc,CAAC,SAAS,KAAK,KAAK;YAClC,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACpC;YACA,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,iDAAiD,CAC3D,CAAC;SACH;QAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAChD,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,mFAAmF,CAC7F,CAAC;SACH;QACD,MAAM,GAAG,iBAAiB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA/CD,oDA+CC"}
1
+ {"version":3,"file":"getTopLevelPredicate.js","sourceRoot":"","sources":["../../../../../src/search/_internal/commonHelpers/getTopLevelPredicate.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,oBAAoB,CAClC,KAAa,EACb,OAAkB;IAElB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,MAAM,eAAe,GAAc,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACtD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,uCAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,mBAAmB,eAAe,CAAC,MAAM,gBAAgB,CAC7F,CAAC;KACH;IAED,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,uCAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,8BAA8B,kBAAkB,CAAC,MAAM,gBAAgB,CACxF,CAAC;SACH;QAED,IACE,cAAc,CAAC,SAAS,KAAK,KAAK;YAClC,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACpC;YACA,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,iDAAiD,CAC3D,CAAC;SACH;QAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,gBAAgB,GACpB,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,cAAc,KAAK,SAAS,CAAC;QAC5E,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,gGAAgG,CAC1G,CAAC;SACH;QACD,MAAM,GAAG,iBAAiB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAlDD,oDAkDC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNilOrEmptyString = void 0;
4
+ /**
5
+ * Determines whether a value is null, undefined, or an empty string.
6
+ * This is particularly useful when 0 and false are considered meaningful values
7
+ * @param value value to check
8
+ * @returns whether the value is null, undefined, or an empty string
9
+ */
10
+ function isNilOrEmptyString(value) {
11
+ return value == null || value === "";
12
+ }
13
+ exports.isNilOrEmptyString = isNilOrEmptyString;
14
+ //# sourceMappingURL=isNilOrEmptyString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNilOrEmptyString.js","sourceRoot":"","sources":["../../../../../src/search/_internal/commonHelpers/isNilOrEmptyString.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAU;IAC3C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;AACvC,CAAC;AAFD,gDAEC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatPredicate = exports.formatFilterBlock = exports.getFilterQueryParam = void 0;
4
+ const isNilOrEmptyString_1 = require("../commonHelpers/isNilOrEmptyString");
4
5
  function getFilterQueryParam(query) {
5
6
  return query.filters
6
7
  .map(formatFilterBlock)
@@ -21,11 +22,11 @@ function formatPredicate(predicate) {
21
22
  const formatted = Object.entries(predicate)
22
23
  // Remove predicates that use `term` (handled in `getQQueryParam`),
23
24
  // `bbox` (handled in `getBboxQueryParam) or have undefined entries
24
- .filter(([field, value]) => field !== "term" && field !== "bbox" && !!value)
25
+ .filter(([field, value]) => field !== "term" && field !== "bbox" && !isNilOrEmptyString_1.isNilOrEmptyString(value))
25
26
  // Create sections for each field
26
27
  .reduce((acc, [field, value]) => {
27
28
  let section;
28
- if (typeof value === "string") {
29
+ if (typeof value === "string" || typeof value === "boolean") {
29
30
  section = formatSimpleComparison(field, value);
30
31
  }
31
32
  else if (Array.isArray(value)) {
@@ -52,7 +53,8 @@ function formatDateRangePredicate(field, value) {
52
53
  return `${field} BETWEEN ${value.from} AND ${value.to}`;
53
54
  }
54
55
  function formatSimpleComparison(field, value) {
55
- return `${field}=${maybeAddSingleQuotes(value)}`;
56
+ const formattedValue = typeof value === "string" ? maybeAddSingleQuotes(value) : value;
57
+ return `${field}=${formattedValue}`;
56
58
  }
57
59
  function formatMultiStringPredicate(field, values) {
58
60
  const wrappedValues = values.map(maybeAddSingleQuotes);
@@ -1 +1 @@
1
- {"version":3,"file":"getFilterQueryParam.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getFilterQueryParam.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getFilterQueryParam.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getOgcAggregationQueryParams = void 0;
4
4
  const get_prop_1 = require("../../../objects/get-prop");
5
- function getOgcAggregationQueryParams(_query, options) {
5
+ const getOpenDataQueryParam_1 = require("./getOpenDataQueryParam");
6
+ function getOgcAggregationQueryParams(query, options) {
6
7
  // TODO: use options.aggLimit once the OGC API supports it
7
8
  const aggregations = `terms(fields=(${options.aggFields.join()}))`;
8
- // TODO: Use `query` to filter aggregations once the OGC API supports it
9
+ // TODO: Use the rest of `query` to filter aggregations once the OGC API supports it
10
+ const openData = getOpenDataQueryParam_1.getOpenDataQueryParam(query);
9
11
  const token = get_prop_1.getProp(options, "requestOptions.authentication.token");
10
- return { aggregations, token };
12
+ return {
13
+ aggregations,
14
+ openData,
15
+ token,
16
+ };
11
17
  }
12
18
  exports.getOgcAggregationQueryParams = getOgcAggregationQueryParams;
13
19
  //# sourceMappingURL=getOgcAggregationQueryParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOgcAggregationQueryParams.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAIpD,SAAgB,4BAA4B,CAC1C,MAAc,EACd,OAA0B;IAE1B,0DAA0D;IAC1D,MAAM,YAAY,GAAG,iBAAiB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACnE,wEAAwE;IACxE,MAAM,KAAK,GAAG,kBAAO,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;IAEtE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAVD,oEAUC"}
1
+ {"version":3,"file":"getOgcAggregationQueryParams.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getOgcAggregationQueryParams.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAGpD,mEAAgE;AAEhE,SAAgB,4BAA4B,CAC1C,KAAa,EACb,OAA0B;IAE1B,0DAA0D;IAC1D,MAAM,YAAY,GAAG,iBAAiB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACnE,oFAAoF;IACpF,MAAM,QAAQ,GAAG,6CAAqB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,kBAAO,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;IAEtE,OAAO;QACL,YAAY;QACZ,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC;AAfD,oEAeC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOpenDataQueryParam = void 0;
4
+ const getTopLevelPredicate_1 = require("../commonHelpers/getTopLevelPredicate");
5
+ /**
6
+ * @private
7
+ * Extracts the openData flag that the search should be filtered by.
8
+ * Also validates that the openData predicate is not combined in some
9
+ * invalid way with other predicates.
10
+ *
11
+ * @param query query to extract the opendata predicate from
12
+ * @returns the openData value to filter by
13
+ */
14
+ function getOpenDataQueryParam(query) {
15
+ const openDataPredicate = getTopLevelPredicate_1.getTopLevelPredicate("openData", query.filters);
16
+ return openDataPredicate === null || openDataPredicate === void 0 ? void 0 : openDataPredicate.openData;
17
+ }
18
+ exports.getOpenDataQueryParam = getOpenDataQueryParam;
19
+ //# sourceMappingURL=getOpenDataQueryParam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOpenDataQueryParam.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getOpenDataQueryParam.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,MAAM,iBAAiB,GAAG,2CAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,QAAQ,CAAC;AACrC,CAAC;AAHD,sDAGC"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getQueryString = void 0;
4
+ const isNilOrEmptyString_1 = require("../commonHelpers/isNilOrEmptyString");
4
5
  function getQueryString(queryParams) {
5
6
  const result = Object.entries(queryParams)
6
- .filter(([_key, value]) => !!value)
7
+ .filter(([_key, value]) => !isNilOrEmptyString_1.isNilOrEmptyString(value))
7
8
  .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
8
9
  .join("&");
9
10
  return result && `?${result}`;
@@ -1 +1 @@
1
- {"version":3,"file":"getQueryString.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getQueryString.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,WAAgC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;AAChC,CAAC;AAPD,wCAOC"}
1
+ {"version":3,"file":"getQueryString.js","sourceRoot":"","sources":["../../../../../src/search/_internal/hubSearchItemsHelpers/getQueryString.ts"],"names":[],"mappings":";;;AAAA,4EAAyE;AAEzE,SAAgB,cAAc,CAAC,WAAgC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,uCAAkB,CAAC,KAAK,CAAC,CAAC;SACrD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;AAChC,CAAC;AAPD,wCAOC"}
@@ -7,7 +7,7 @@ import { IFilter, IPredicate } from "../../types/IHubCatalog";
7
7
  * - Only ONE filter can have a predicate with the target field
8
8
  * - Only ONE predicate with the target field can exist
9
9
  * - The predicate can only be ANDed to other predicates
10
- * - The predicate's field value MUST be a string (not string[] or IMatchOptions)
10
+ * - The predicate's field value MUST be a string or boolean (not string[] or IMatchOptions)
11
11
  *
12
12
  * Example: Portal's bbox field cannot be conditionally searched. Any value provided will always be applied as a top-level filter.
13
13
  * - Valid: `?bbox=1,2,3,4&filter=type:CSV`
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Determines whether a value is null, undefined, or an empty string.
3
+ * This is particularly useful when 0 and false are considered meaningful values
4
+ * @param value value to check
5
+ * @returns whether the value is null, undefined, or an empty string
6
+ */
7
+ export declare function isNilOrEmptyString(value: any): boolean;
@@ -1,6 +1,7 @@
1
1
  import { IQuery } from "../../types/IHubCatalog";
2
2
  import { IHubSearchOptions } from "../../types/IHubSearchOptions";
3
- export declare function getOgcAggregationQueryParams(_query: IQuery, options: IHubSearchOptions): {
3
+ export declare function getOgcAggregationQueryParams(query: IQuery, options: IHubSearchOptions): {
4
4
  aggregations: string;
5
+ openData: string;
5
6
  token: any;
6
7
  };
@@ -0,0 +1,11 @@
1
+ import { IQuery } from "../../types/IHubCatalog";
2
+ /**
3
+ * @private
4
+ * Extracts the openData flag that the search should be filtered by.
5
+ * Also validates that the openData predicate is not combined in some
6
+ * invalid way with other predicates.
7
+ *
8
+ * @param query query to extract the opendata predicate from
9
+ * @returns the openData value to filter by
10
+ */
11
+ export declare function getOpenDataQueryParam(query: IQuery): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esri/hub-common",
3
- "version": "14.41.0",
3
+ "version": "14.42.1",
4
4
  "description": "Common TypeScript types and utility functions for @esri/hub.js.",
5
5
  "main": "dist/node/index.js",
6
6
  "module": "dist/esm/index.js",