@esri/hub-common 12.18.0 → 12.20.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 (61) hide show
  1. package/dist/esm/core/types/DynamicValues.js +1 -0
  2. package/dist/esm/core/types/DynamicValues.js.map +1 -0
  3. package/dist/esm/core/types/index.js +1 -0
  4. package/dist/esm/core/types/index.js.map +1 -1
  5. package/dist/esm/search/_internal/combineQueries.js +25 -0
  6. package/dist/esm/search/_internal/combineQueries.js.map +1 -0
  7. package/dist/esm/search/_internal/portalSearchItems.js +47 -5
  8. package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
  9. package/dist/esm/utils/index.js +1 -0
  10. package/dist/esm/utils/index.js.map +1 -1
  11. package/dist/esm/utils/internal/aggregateValues.js +35 -0
  12. package/dist/esm/utils/internal/aggregateValues.js.map +1 -0
  13. package/dist/esm/utils/internal/resolveDynamicValue.js +34 -0
  14. package/dist/esm/utils/internal/resolveDynamicValue.js.map +1 -0
  15. package/dist/esm/utils/internal/resolveDynamicValues.js +19 -0
  16. package/dist/esm/utils/internal/resolveDynamicValues.js.map +1 -0
  17. package/dist/esm/utils/internal/resolveItemQueryValues.js +73 -0
  18. package/dist/esm/utils/internal/resolveItemQueryValues.js.map +1 -0
  19. package/dist/esm/utils/internal/resolvePortalValues.js +24 -0
  20. package/dist/esm/utils/internal/resolvePortalValues.js.map +1 -0
  21. package/dist/esm/utils/internal/resolveServiceQueryValues.js +38 -0
  22. package/dist/esm/utils/internal/resolveServiceQueryValues.js.map +1 -0
  23. package/dist/esm/utils/memoize.js +38 -0
  24. package/dist/esm/utils/memoize.js.map +1 -0
  25. package/dist/node/core/types/DynamicValues.js +3 -0
  26. package/dist/node/core/types/DynamicValues.js.map +1 -0
  27. package/dist/node/core/types/index.js +1 -0
  28. package/dist/node/core/types/index.js.map +1 -1
  29. package/dist/node/search/_internal/combineQueries.js +28 -0
  30. package/dist/node/search/_internal/combineQueries.js.map +1 -0
  31. package/dist/node/search/_internal/portalSearchItems.js +50 -7
  32. package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
  33. package/dist/node/utils/index.js +1 -0
  34. package/dist/node/utils/index.js.map +1 -1
  35. package/dist/node/utils/internal/aggregateValues.js +39 -0
  36. package/dist/node/utils/internal/aggregateValues.js.map +1 -0
  37. package/dist/node/utils/internal/resolveDynamicValue.js +38 -0
  38. package/dist/node/utils/internal/resolveDynamicValue.js.map +1 -0
  39. package/dist/node/utils/internal/resolveDynamicValues.js +22 -0
  40. package/dist/node/utils/internal/resolveDynamicValues.js.map +1 -0
  41. package/dist/node/utils/internal/resolveItemQueryValues.js +77 -0
  42. package/dist/node/utils/internal/resolveItemQueryValues.js.map +1 -0
  43. package/dist/node/utils/internal/resolvePortalValues.js +28 -0
  44. package/dist/node/utils/internal/resolvePortalValues.js.map +1 -0
  45. package/dist/node/utils/internal/resolveServiceQueryValues.js +41 -0
  46. package/dist/node/utils/internal/resolveServiceQueryValues.js.map +1 -0
  47. package/dist/node/utils/memoize.js +41 -0
  48. package/dist/node/utils/memoize.js.map +1 -0
  49. package/dist/types/core/types/DynamicValues.d.ts +140 -0
  50. package/dist/types/core/types/index.d.ts +1 -0
  51. package/dist/types/search/_internal/combineQueries.d.ts +12 -0
  52. package/dist/types/search/_internal/portalSearchItems.d.ts +10 -2
  53. package/dist/types/utils/index.d.ts +1 -0
  54. package/dist/types/utils/internal/aggregateValues.d.ts +9 -0
  55. package/dist/types/utils/internal/resolveDynamicValue.d.ts +10 -0
  56. package/dist/types/utils/internal/resolveDynamicValues.d.ts +11 -0
  57. package/dist/types/utils/internal/resolveItemQueryValues.d.ts +12 -0
  58. package/dist/types/utils/internal/resolvePortalValues.d.ts +11 -0
  59. package/dist/types/utils/internal/resolveServiceQueryValues.d.ts +10 -0
  60. package/dist/types/utils/memoize.d.ts +13 -0
  61. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=DynamicValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicValues.js","sourceRoot":"","sources":["../../../../src/core/types/DynamicValues.ts"],"names":[],"mappings":""}
@@ -20,4 +20,5 @@ export * from "./IItemEnrichments";
20
20
  export * from "./IServerEnrichments";
21
21
  export * from "./ISystemStatus";
22
22
  export * from "./types";
23
+ export * from "./DynamicValues";
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @internal
3
+ * Naieve implementation to merge two queries into one. This
4
+ * simply combines the filters of the two queries. It does not attempt
5
+ * to disabiguate the filters or predicates. It is up to the caller
6
+ * to ensure that the queries are compatible and don't result in a null set
7
+ * of results.
8
+ * @param queries
9
+ * @returns
10
+ */
11
+ export const combineQueries = (queries) => {
12
+ // check tht all queries are for the same entity type
13
+ const targetEntity = queries[0].targetEntity;
14
+ if (queries.some((q) => q.targetEntity !== targetEntity)) {
15
+ throw new Error("Cannot combine queries for different entity types");
16
+ }
17
+ // combine the filters from all the queries
18
+ const filters = queries.reduce((acc, q) => [...acc, ...q.filters], []);
19
+ const result = {
20
+ targetEntity,
21
+ filters,
22
+ };
23
+ return result;
24
+ };
25
+ //# sourceMappingURL=combineQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineQueries.js","sourceRoot":"","sources":["../../../../src/search/_internal/combineQueries.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAU,EAAE;IAC1D,qDAAqD;IACrD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;KACtE;IAED,2CAA2C;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAW;QACrB,YAAY;QACZ,OAAO;KACR,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -10,13 +10,34 @@ import HubError from "../../HubError";
10
10
  import { enrichContentSearchResult } from "../../content";
11
11
  import { cloneObject } from "../../util";
12
12
  /**
13
- * @private
14
- * Portal Search Implementation for Items
13
+ * @internal
14
+ * Portal Search Implementation for Items returning IHubSearchResults
15
15
  * @param query
16
16
  * @param options
17
17
  * @returns
18
18
  */
19
19
  export async function portalSearchItems(query, options) {
20
+ const so = processSearchParams(options, query);
21
+ return searchPortalAsHubSearchResult(so);
22
+ }
23
+ /**
24
+ * @internal
25
+ * Portal Search for Items using IQuery and IHubSearchOptions
26
+ * @param query
27
+ * @param options
28
+ * @returns
29
+ */
30
+ export function portalSearchItemsAsItems(query, options) {
31
+ const so = processSearchParams(options, query);
32
+ return searchPortalAsItem(so);
33
+ }
34
+ /**
35
+ * Common preprocessing for search options and the query
36
+ * @param options
37
+ * @param query
38
+ * @returns
39
+ */
40
+ function processSearchParams(options, query) {
20
41
  var _a;
21
42
  if (!options.requestOptions) {
22
43
  throw new HubError("portalSearchItems", "options.requestOptions is required.");
@@ -56,7 +77,28 @@ export async function portalSearchItems(query, options) {
56
77
  so.countFields = options.aggFields.join(",");
57
78
  so.countSize = options.aggLimit || 10;
58
79
  }
59
- return searchPortal(so);
80
+ return so;
81
+ }
82
+ /**
83
+ * Internal portal search, which just returns IItems witn no conversion
84
+ * Due to typescript complexity when adding multiple returns types to a function
85
+ * it is simpler to have two functions that do the almost the same thing.
86
+ * @param searchOptions
87
+ * @returns
88
+ */
89
+ async function searchPortalAsItem(searchOptions) {
90
+ // Execute portal search
91
+ const resp = await searchItems(searchOptions);
92
+ // convert portal aggregations into hub aggregations
93
+ const aggregations = convertPortalAggregations(resp);
94
+ // Construct the return
95
+ return {
96
+ total: resp.total,
97
+ results: resp.results,
98
+ aggregations,
99
+ hasNext: resp.nextStart > -1,
100
+ next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsItem),
101
+ };
60
102
  }
61
103
  /**
62
104
  * Internal portal search, which then converts `IItem`s to `IHubSearchResult`s
@@ -65,7 +107,7 @@ export async function portalSearchItems(query, options) {
65
107
  * @param searchOptions
66
108
  * @returns
67
109
  */
68
- async function searchPortal(searchOptions) {
110
+ async function searchPortalAsHubSearchResult(searchOptions) {
69
111
  // Execute portal search
70
112
  const resp = await searchItems(searchOptions);
71
113
  // create mappable fn that will handle the includes
@@ -82,7 +124,7 @@ async function searchPortal(searchOptions) {
82
124
  results,
83
125
  aggregations,
84
126
  hasNext: resp.nextStart > -1,
85
- next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),
127
+ next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsHubSearchResult),
86
128
  };
87
129
  }
88
130
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAWrD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAA0B;IAE1B,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,6BAA6B,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,OAA0B;IAE1B,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,OAA0B,EAAE,KAAa;;IACpE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;QAC3B,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,qCAAqC,CACtC,CAAC;KACH;IACD,iCAAiC;IACjC,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACzD,kDAAkD;IAClD,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzD,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,EAAE,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACjD,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,IAAI,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE;QACzC,EAAE,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC;KAC3D;SAAM;QACL,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;KAC3C;IAED,eAAe;IACf,UAAI,OAAO,CAAC,SAAS,0CAAE,MAAM,EAAE;QAC7B,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;KACvC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,kBAAkB,CAC/B,aAA6B;IAE7B,wBAAwB;IACxB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IAE9C,qDAAqD;IACrD,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAErD,uBAAuB;IACvB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY;QACZ,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,IAAI,EAAE,eAAe,CACnB,aAAa,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,EACV,kBAAkB,CACnB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,6BAA6B,CAC1C,aAA6B;IAE7B,wBAAwB;IACxB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IAE9C,mDAAmD;IACnD,MAAM,EAAE,GAAG,CAAC,IAAW,EAAE,EAAE;QACzB,OAAO,kBAAkB,CACvB,IAAI,EACJ,aAAa,CAAC,QAAQ,EACtB,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,qDAAqD;IACrD,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAErD,uBAAuB;IACvB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO;QACP,YAAY;QACZ,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,IAAI,EAAE,eAAe,CACnB,aAAa,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,EACV,6BAA6B,CAC9B;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAW,EACX,WAAqB,EAAE,EACvB,cAAmC;IAEnC,4DAA4D;IAC5D,uDAAuD;IACvD,IAAI,EAAE,GAAG,yBAAyB,CAAC;IACnC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,kBAAkB;YACrB,EAAE,GAAG,sBAAsB,CAAC;YAC5B,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW;YACd,EAAE,GAAG,sBAAsB,CAAC;YAC5B,MAAM;QACR,KAAK,aAAa;YAChB,EAAE,GAAG,yBAAyB,CAAC;YAC/B,MAAM;QAER,uBAAuB;QACvB,KAAK,yBAAyB;YAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACzC,EAAE,GAAG,sBAAsB,CAAC;aAC7B;YACD,MAAM;KACT;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAgBD,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC/D,YAAY,EAAE;QACZ;YACE,IAAI,EAAE;gBACJ,GAAG,EAAE;oBACH,yBAAyB;oBACzB,aAAa;oBACb,UAAU;oBACV,gBAAgB;iBACjB;gBACD,GAAG,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;aAC1C;YACD,YAAY,EAAE;gBACZ,GAAG,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;aAC9B;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,YAAY,EAAE,gBAAgB;SAC/B;KACF;IACD,UAAU,EAAE;QACV;YACE,IAAI,EAAE;gBACJ,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClB,GAAG,EAAE,CAAC,gBAAgB,CAAC;aACxB;YACD,YAAY,EAAE;gBACZ,GAAG,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC;aAC5C;SACF;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE;gBACJ,GAAG,EAAE;oBACH,eAAe;oBACf,oBAAoB;oBACpB,aAAa;oBACb,OAAO;oBACP,gBAAgB;oBAChB,cAAc;oBACd,qBAAqB;oBACrB,eAAe;oBACf,eAAe;oBACf,iBAAiB;oBACjB,gBAAgB;oBAChB,aAAa;oBACb,qBAAqB;oBACrB,eAAe;oBACf,KAAK;oBACL,KAAK;oBACL,MAAM;oBACN,KAAK;oBACL,gBAAgB;oBAChB,eAAe;oBACf,KAAK;oBACL,WAAW;oBACX,SAAS;oBACT,oBAAoB;oBACpB,kBAAkB;oBAClB,aAAa;oBACb,gCAAgC;iBACjC;gBACD,GAAG,EAAE,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;aACpD;SACF;QACD;YACE,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC;SACzC;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE;gBACJ,KAAK;gBACL,iBAAiB;gBACjB,gBAAgB;gBAChB,sBAAsB;gBACtB,eAAe;gBACf,aAAa;gBACb,eAAe;gBACf,gBAAgB;gBAChB,eAAe;aAChB;SACF;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,gBAAgB;SACvB;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,gBAAgB;SACvB;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,MAAM;SACb;KACF;IACD,KAAK,EAAE;QACL;YACE,YAAY,EAAE,SAAS;SACxB;KACF;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;SACnD;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;SACjB;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,YAAY,EAAE,WAAW;SAC1B;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE;gBACJ,yBAAyB;gBACzB,gBAAgB;gBAChB,yBAAyB;gBACzB,UAAU;aACX;YACD,YAAY,EAAE;gBACZ,GAAG,EAAE,CAAC,uBAAuB,EAAE,qBAAqB,EAAE,UAAU,CAAC;gBACjE,GAAG,EAAE,UAAU;aAChB;SACF;KACF;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE;gBACJ,GAAG,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;gBAC7B,GAAG,EAAE,yBAAyB;aAC/B;SACF;KACF;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,sBAAsB;IACtB,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrD,2CAA2C;QAC3C,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAC1C,CAAC,GAAiB,EAAE,SAAS,EAAE,EAAE;YAC/B,yCAAyC;YACzC,mDAAmD;YACnD,0BAA0B;YAC1B,IAAI,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACzC,MAAM,YAAY,GAAG,oBAAoB,CACvC,SAAS,CAAC,IAA4C,CACvD,CAAC;gBACF,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;gBAChC,kBAAkB,GAAG,IAAI,CAAC;aAC3B;iBAAM;gBACL,iDAAiD;gBACjD,qBAAqB;gBACrB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACrB;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QACF,IAAI,kBAAkB,EAAE;YACtB,iDAAiD;YACjD,qDAAqD;YACrD,sBAAsB;YACtB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAsC;IAEtC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,GAAG,GAAG,IAAI,uBAAuB,CAAC;KACzC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,GAAyC;IAEzC,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC"}
@@ -19,4 +19,5 @@ export * from "./revertable-tasks";
19
19
  export * from "./sessionLocalStorage";
20
20
  export * from "./dasherize";
21
21
  export * from "./titleize";
22
+ export * from "./memoize";
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @internal
3
+ * Aggregate a set of values based on the aggregation type
4
+ * @param values
5
+ * @param aggregation
6
+ * @returns
7
+ */
8
+ export function aggregateValues(values, aggregation) {
9
+ switch (aggregation) {
10
+ case "sum":
11
+ return values.reduce((acc, v) => acc + v, 0);
12
+ case "count":
13
+ return values.length;
14
+ case "avg":
15
+ return values.reduce((acc, v) => acc + v, 0) / values.length;
16
+ case "min":
17
+ return values.reduce((acc, v) => Math.min(acc, v), Number.MAX_VALUE);
18
+ case "max":
19
+ return values.reduce((acc, v) => Math.max(acc, v), Number.MIN_VALUE);
20
+ case "countByValue": // count for each value as a hash {value: string, count: number}
21
+ return values.reduce((acc, v) => {
22
+ if (acc[v]) {
23
+ acc[v] += 1;
24
+ }
25
+ else {
26
+ acc[v] = 1;
27
+ }
28
+ return acc;
29
+ }, {});
30
+ default:
31
+ // console.error(`Unknown aggregation: ${aggregation}`);
32
+ return null;
33
+ }
34
+ }
35
+ //# sourceMappingURL=aggregateValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregateValues.js","sourceRoot":"","sources":["../../../../src/utils/internal/aggregateValues.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAa,EACb,WAA+B;IAE/B,QAAQ,WAAW,EAAE;QACnB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,KAAK,OAAO;YACV,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/D,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,KAAK,cAAc,EAAE,gEAAgE;YACnF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;oBACV,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACb;qBAAM;oBACL,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBACZ;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACT;YACE,wDAAwD;YACxD,OAAO,IAAI,CAAC;KACf;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { getProp } from "../../objects/get-prop";
2
+ import { resolveItemQueryValues } from "./resolveItemQueryValues";
3
+ import { resolvePortalValues } from "./resolvePortalValues";
4
+ import { resolveServiceQueryValues } from "./resolveServiceQueryValues";
5
+ /**
6
+ * @internal
7
+ * Resolve a single dynamic value. The definition can be of many types (item-query, portal etc), each of which has their own logic for resolving the value.
8
+ * @param valueDef
9
+ * @param context
10
+ * @returns
11
+ */
12
+ export async function resolveDynamicValue(valueDef, context) {
13
+ let result = {};
14
+ switch (valueDef.type) {
15
+ case "static-value":
16
+ const val = getProp(valueDef, "value");
17
+ const outPath = getProp(valueDef, "outPath");
18
+ result[outPath] = val;
19
+ break;
20
+ case "item-query":
21
+ result = await resolveItemQueryValues(valueDef, context);
22
+ break;
23
+ case "portal":
24
+ result = await resolvePortalValues(valueDef, context);
25
+ break;
26
+ case "service-query":
27
+ result = await resolveServiceQueryValues(valueDef, context);
28
+ break;
29
+ default:
30
+ throw new Error(`Cannot resolve value - unexpected source.`);
31
+ }
32
+ return result;
33
+ }
34
+ //# sourceMappingURL=resolveDynamicValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDynamicValue.js","sourceRoot":"","sources":["../../../../src/utils/internal/resolveDynamicValue.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgC,EAChC,OAAuB;IAEvB,IAAI,MAAM,GAAwB,EAAE,CAAC;IACrC,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACrB,KAAK,cAAc;YACjB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;YACtB,MAAM;QACR,KAAK,YAAY;YACf,MAAM,GAAG,MAAM,sBAAsB,CACnC,QAAuC,EACvC,OAAO,CACR,CAAC;YACF,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,MAAM,mBAAmB,CAChC,QAAwC,EACxC,OAAO,CACR,CAAC;YACF,MAAM;QACR,KAAK,eAAe;YAClB,MAAM,GAAG,MAAM,yBAAyB,CACtC,QAA0C,EAC1C,OAAO,CACR,CAAC;YACF,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAChE;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { resolveDynamicValue } from "./resolveDynamicValue";
2
+ /**
3
+ * @internal
4
+ * Resolve a set of dynamic values.
5
+ * The individual definitions can be of many types (item-query, portal etc), each of which has their own logic for resolving the value.
6
+ * @param dynamicValues Array of dynamic value definitions to resolve
7
+ * @param context ArcGIS context of the current user.
8
+ * @returns
9
+ */
10
+ export const resolveDynamicValues = async (dynamicValues, context) => {
11
+ let result = {};
12
+ // iterate over the dynamic values and resolve each one via Promise.all
13
+ // this will allow us to resolve all the values in parallel
14
+ const resolvedValues = await Promise.all(dynamicValues.map((valueDef) => resolveDynamicValue(valueDef, context)));
15
+ // merge the resolved values into a single object
16
+ result = resolvedValues.reduce((acc, val) => (Object.assign(Object.assign({}, acc), val)), {});
17
+ return result;
18
+ };
19
+ //# sourceMappingURL=resolveDynamicValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDynamicValues.js","sourceRoot":"","sources":["../../../../src/utils/internal/resolveDynamicValues.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,aAAuC,EACvC,OAAuB,EACsB,EAAE;IAC/C,IAAI,MAAM,GAAwB,EAAE,CAAC;IAErC,uEAAuE;IACvE,2DAA2D;IAC3D,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CACxE,CAAC;IACF,iDAAiD;IACjD,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,GAAK,GAAG,EAAG,EAAE,EAAE,CAAC,CAAC;IAEvE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { setProp } from "../../objects";
2
+ import { getProp } from "../../objects/get-prop";
3
+ import { combineQueries } from "../../search/_internal/combineQueries";
4
+ import { portalSearchItemsAsItems } from "../../search/_internal/portalSearchItems";
5
+ import { aggregateValues } from "./aggregateValues";
6
+ import { memoize } from "../memoize";
7
+ import { resolveDynamicValue } from "./resolveDynamicValue";
8
+ /**
9
+ * @internal
10
+ * Resolve a set of dynamic values based on an item query.
11
+ * This is used to query for a set of items, extract a specific value from each
12
+ * then run an aggregation on the set of values.
13
+ * @param valueDef Item Query Definition that will be resolved by querying for items and extracting a specific value from each
14
+ * @param context ArcGIS context of the current user.
15
+ * @returns
16
+ */
17
+ export async function resolveItemQueryValues(valueDef, context) {
18
+ const result = {};
19
+ // execute the query
20
+ // TODO: Error if neither query or scope are defined
21
+ // Combine the query and scope into a single query;
22
+ // The query and scope have already been dereferenced
23
+ // but since the typing allows for `Reference` we need
24
+ // to use `as IQuery` to TS to chill out.
25
+ const query = valueDef.query || {
26
+ targetEntity: "item",
27
+ filters: [],
28
+ };
29
+ const scope = valueDef.scope || {
30
+ targetEntity: "item",
31
+ filters: [],
32
+ };
33
+ const combined = combineQueries([query, scope]);
34
+ const opts = {
35
+ requestOptions: context.hubRequestOptions,
36
+ };
37
+ // create/get memoized version of portalSearchItemsAsItems
38
+ const memoizedPortalSearch = memoize(portalSearchItemsAsItems);
39
+ // Execute the query
40
+ const response = await memoizedPortalSearch(combined, opts);
41
+ // TODO: dereference metrics so we can delegate one to another
42
+ // This next section is all promise based so that a dynamic value
43
+ // can itself be a dynamic value definition, which then needs to be
44
+ // resolved.
45
+ const promises = await response.results.reduce(async (valsPromise, r) => {
46
+ const vals = await valsPromise;
47
+ const valueFromItem = getProp(r, valueDef.sourcePath);
48
+ // Handle case where value is not found...
49
+ // e.g. the project exists but the metric is not defined yet
50
+ if (valueFromItem) {
51
+ if (typeof valueFromItem === "string" ||
52
+ typeof valueFromItem === "number") {
53
+ vals.push(Promise.resolve(valueFromItem));
54
+ }
55
+ else if (valueFromItem.type === "static-value") {
56
+ vals.push(Promise.resolve(valueFromItem.value));
57
+ }
58
+ else {
59
+ // valueFromItem is itself a valueDefinition so we call resolveDynamicValues again
60
+ const vResult = await resolveDynamicValue(valueFromItem, context);
61
+ // vals needs just the value - the number or string but vResult is an object
62
+ // so we need to get it out of the object
63
+ vals.push(getProp(vResult, valueFromItem.outPath));
64
+ }
65
+ }
66
+ return vals;
67
+ }, Promise.resolve([]));
68
+ const values = await Promise.all(promises);
69
+ const aggretate = aggregateValues(values, valueDef.aggregation);
70
+ setProp(valueDef.outPath, aggretate, result);
71
+ return result;
72
+ }
73
+ //# sourceMappingURL=resolveItemQueryValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveItemQueryValues.js","sourceRoot":"","sources":["../../../../src/utils/internal/resolveItemQueryValues.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAqC,EACrC,OAAuB;IAEvB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,oBAAoB;IACpB,oDAAoD;IACpD,mDAAmD;IACnD,qDAAqD;IACrD,sDAAsD;IACtD,yCAAyC;IACzC,MAAM,KAAK,GAAI,QAAQ,CAAC,KAAgB,IAAI;QAC1C,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,MAAM,KAAK,GAAI,QAAQ,CAAC,KAAgB,IAAI;QAC1C,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAsB;QAC9B,cAAc,EAAE,OAAO,CAAC,iBAAiB;KAC1C,CAAC;IACF,0DAA0D;IAC1D,MAAM,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC/D,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE5D,8DAA8D;IAE9D,iEAAiE;IACjE,mEAAmE;IACnE,YAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC5C,KAAK,EAAE,WAAgB,EAAE,CAAM,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;QAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtD,0CAA0C;QAC1C,4DAA4D;QAC5D,IAAI,aAAa,EAAE;YACjB,IACE,OAAO,aAAa,KAAK,QAAQ;gBACjC,OAAO,aAAa,KAAK,QAAQ,EACjC;gBACA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;aAC3C;iBAAM,IAAI,aAAa,CAAC,IAAI,KAAK,cAAc,EAAE;gBAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;aACjD;iBAAM;gBACL,kFAAkF;gBAClF,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAClE,4EAA4E;gBAC5E,yCAAyC;gBACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;aACpD;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,OAAO,CAAC,OAAO,CAAC,EAAW,CAAC,CAC7B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { getSelf } from "@esri/arcgis-rest-portal";
2
+ import { setProp } from "../../objects";
3
+ import { getProp } from "../../objects/get-prop";
4
+ import { memoize } from "../memoize";
5
+ /**
6
+ * @internal
7
+ * Resolve a set of dynamic values by extracting properties
8
+ * from the current user's portal/self
9
+ * @param valueDef Portal Query Definition that wil be resolved using properties from the current user's portal/self
10
+ * @param context ArcGIS context of the current user.
11
+ * @returns
12
+ */
13
+ export async function resolvePortalValues(valueDef, context) {
14
+ const result = {};
15
+ const memoizedPortalSelf = memoize(getSelf);
16
+ // TODO: This could use the context.portal values to skip even a single request
17
+ // get the portalSelf via memoized function
18
+ const portal = await memoizedPortalSelf(context.requestOptions.authentication);
19
+ // get the value from the portal and attach into the result
20
+ const value = getProp(portal, valueDef.sourcePath);
21
+ setProp(valueDef.outPath, value, result);
22
+ return result;
23
+ }
24
+ //# sourceMappingURL=resolvePortalValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePortalValues.js","sourceRoot":"","sources":["../../../../src/utils/internal/resolvePortalValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAsC,EACtC,OAAuB;IAEvB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,2CAA2C;IAC3C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,OAAO,CAAC,cAAc,CAAC,cAAc,CACtC,CAAC;IAEF,2DAA2D;IAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { queryFeatures } from "@esri/arcgis-rest-feature-layer";
2
+ import { setProp } from "../../objects";
3
+ import { getProp } from "../../objects/get-prop";
4
+ /**
5
+ * @internal
6
+ * Resolve a dynamic value that is derived from a service query
7
+ * @param valueDef Service Query Definition that will be resolved by executing an aggregation querying on service and returning that value
8
+ * @param context ArcGIS context of the current user.
9
+ * @returns
10
+ */
11
+ export const resolveServiceQueryValues = async (valueDef, context) => {
12
+ // If no where is provided, default to "1=1"
13
+ valueDef.options.where = valueDef.options.where || "1=1";
14
+ // construct the result object
15
+ const result = {};
16
+ // Construct the stats definition
17
+ const statsDef = {
18
+ onStatisticField: valueDef.options.field,
19
+ statisticType: valueDef.options.statisticType,
20
+ outStatisticFieldName: valueDef.options.field,
21
+ };
22
+ // Execute the query
23
+ const response = await queryFeatures({
24
+ url: valueDef.options.url,
25
+ where: valueDef.options.where,
26
+ f: "json",
27
+ outStatistics: [statsDef],
28
+ authentication: context.requestOptions.authentication,
29
+ });
30
+ // Pull the aggreate value out of the response
31
+ const features = getProp(response, "features") || [];
32
+ const firstEntry = features[0] || {};
33
+ const aggregate = getProp(firstEntry, `attributes.${valueDef.options.field}`) || 0;
34
+ // set that on the result
35
+ setProp(valueDef.outPath, aggregate, result);
36
+ return result;
37
+ };
38
+ //# sourceMappingURL=resolveServiceQueryValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveServiceQueryValues.js","sourceRoot":"","sources":["../../../../src/utils/internal/resolveServiceQueryValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAOhE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,QAAwC,EACxC,OAAuB,EACC,EAAE;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACzD,8BAA8B;IAC9B,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,iCAAiC;IACjC,MAAM,QAAQ,GAAyB;QACrC,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK;QACxC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa;QAC7C,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK;KAC9C,CAAC;IACF,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;QACnC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAa;QACnC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAe;QACvC,CAAC,EAAE,MAAM;QACT,aAAa,EAAE,CAAC,QAAQ,CAAC;QACzB,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc;KACtD,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,SAAS,GACb,OAAO,CAAC,UAAU,EAAE,cAAc,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IAEnE,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Create a cache key from an array of arguments
3
+ * @param args
4
+ * @returns
5
+ */
6
+ const createCacheKeyFromArgs = (args) => args.reduce((cacheKey, arg) => (cacheKey += `_${typeof arg === "object" ? JSON.stringify(args) : `${arg}`}_`), "");
7
+ const memoizedFnCache = {};
8
+ /**
9
+ * Wrap a function into a memoized version of itself. Multiple calls for the same function
10
+ * will return the same memoized function - thus enabling a shared cache of results.
11
+ * `const memoizedItemSearch = memoize(searchItems);`
12
+ * @param fn
13
+ * @returns
14
+ */
15
+ export const memoize = (fn) => {
16
+ if (!memoizedFnCache[fn.name]) {
17
+ const cache = {};
18
+ const memoizedFn = (...args) => {
19
+ const cacheKey = createCacheKeyFromArgs(args);
20
+ if (cache[cacheKey]) {
21
+ return cache[cacheKey];
22
+ }
23
+ const asyncFn = fn.call(undefined, ...args);
24
+ cache[cacheKey] = asyncFn;
25
+ return asyncFn;
26
+ };
27
+ memoizedFnCache[fn.name] = memoizedFn;
28
+ }
29
+ return memoizedFnCache[fn.name];
30
+ };
31
+ /**
32
+ * Clear the cache of a memoized function
33
+ * @param fn
34
+ */
35
+ export const clearMemoizedCache = (fnName) => {
36
+ delete memoizedFnCache[fnName];
37
+ };
38
+ //# sourceMappingURL=memoize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../../src/utils/memoize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAAW,EAAE,EAAE,CAC7C,IAAI,CAAC,MAAM,CACT,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAChB,CAAC,QAAQ,IAAI,IACX,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EACzD,GAAG,CAAC,EACN,EAAE,CACH,CAAC;AAEJ,MAAM,eAAe,GAAwB,EAAE,CAAC;AAChD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,EAA0B,EAC1B,EAAE;IACF,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7B,MAAM,KAAK,GAAwB,EAAE,CAAC;QAEtC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAU,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACnB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;aACxB;YAED,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;KACvC;IACD,OAAO,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;IACnD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DynamicValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicValues.js","sourceRoot":"","sources":["../../../../src/core/types/DynamicValues.ts"],"names":[],"mappings":""}
@@ -23,4 +23,5 @@ tslib_1.__exportStar(require("./IItemEnrichments"), exports);
23
23
  tslib_1.__exportStar(require("./IServerEnrichments"), exports);
24
24
  tslib_1.__exportStar(require("./ISystemStatus"), exports);
25
25
  tslib_1.__exportStar(require("./types"), exports);
26
+ tslib_1.__exportStar(require("./DynamicValues"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/types/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,0DAAgC;AAChC,wDAA8B;AAC9B,mEAAyC;AACzC,2DAAiC;AACjC,gEAAsC;AACtC,2DAAiC;AACjC,sDAA4B;AAC5B,sDAA4B;AAC5B,2DAAiC;AACjC,2DAAiC;AACjC,uDAA6B;AAC7B,yDAA+B;AAC/B,qDAA2B;AAC3B,wDAA8B;AAC9B,qDAA2B;AAC3B,0DAAgC;AAChC,yDAA+B;AAC/B,6DAAmC;AACnC,+DAAqC;AACrC,0DAAgC;AAChC,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/types/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,0DAAgC;AAChC,wDAA8B;AAC9B,mEAAyC;AACzC,2DAAiC;AACjC,gEAAsC;AACtC,2DAAiC;AACjC,sDAA4B;AAC5B,sDAA4B;AAC5B,2DAAiC;AACjC,2DAAiC;AACjC,uDAA6B;AAC7B,yDAA+B;AAC/B,qDAA2B;AAC3B,wDAA8B;AAC9B,qDAA2B;AAC3B,0DAAgC;AAChC,yDAA+B;AAC/B,6DAAmC;AACnC,+DAAqC;AACrC,0DAAgC;AAChC,kDAAwB;AACxB,0DAAgC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.combineQueries = void 0;
4
+ /**
5
+ * @internal
6
+ * Naieve implementation to merge two queries into one. This
7
+ * simply combines the filters of the two queries. It does not attempt
8
+ * to disabiguate the filters or predicates. It is up to the caller
9
+ * to ensure that the queries are compatible and don't result in a null set
10
+ * of results.
11
+ * @param queries
12
+ * @returns
13
+ */
14
+ exports.combineQueries = (queries) => {
15
+ // check tht all queries are for the same entity type
16
+ const targetEntity = queries[0].targetEntity;
17
+ if (queries.some((q) => q.targetEntity !== targetEntity)) {
18
+ throw new Error("Cannot combine queries for different entity types");
19
+ }
20
+ // combine the filters from all the queries
21
+ const filters = queries.reduce((acc, q) => [...acc, ...q.filters], []);
22
+ const result = {
23
+ targetEntity,
24
+ filters,
25
+ };
26
+ return result;
27
+ };
28
+ //# sourceMappingURL=combineQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineQueries.js","sourceRoot":"","sources":["../../../../src/search/_internal/combineQueries.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AAEU,QAAA,cAAc,GAAG,CAAC,OAAiB,EAAU,EAAE;IAC1D,qDAAqD;IACrD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;KACtE;IAED,2CAA2C;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAW;QACrB,YAAY;QACZ,OAAO;KACR,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.portalSearchItems = void 0;
3
+ exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.portalSearchItemsAsItems = exports.portalSearchItems = void 0;
4
4
  const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
5
5
  const serializeQueryForPortal_1 = require("../serializeQueryForPortal");
6
6
  const HubPages_1 = require("../../pages/HubPages");
@@ -13,13 +13,36 @@ const HubError_1 = require("../../HubError");
13
13
  const content_1 = require("../../content");
14
14
  const util_1 = require("../../util");
15
15
  /**
16
- * @private
17
- * Portal Search Implementation for Items
16
+ * @internal
17
+ * Portal Search Implementation for Items returning IHubSearchResults
18
18
  * @param query
19
19
  * @param options
20
20
  * @returns
21
21
  */
22
22
  async function portalSearchItems(query, options) {
23
+ const so = processSearchParams(options, query);
24
+ return searchPortalAsHubSearchResult(so);
25
+ }
26
+ exports.portalSearchItems = portalSearchItems;
27
+ /**
28
+ * @internal
29
+ * Portal Search for Items using IQuery and IHubSearchOptions
30
+ * @param query
31
+ * @param options
32
+ * @returns
33
+ */
34
+ function portalSearchItemsAsItems(query, options) {
35
+ const so = processSearchParams(options, query);
36
+ return searchPortalAsItem(so);
37
+ }
38
+ exports.portalSearchItemsAsItems = portalSearchItemsAsItems;
39
+ /**
40
+ * Common preprocessing for search options and the query
41
+ * @param options
42
+ * @param query
43
+ * @returns
44
+ */
45
+ function processSearchParams(options, query) {
23
46
  var _a;
24
47
  if (!options.requestOptions) {
25
48
  throw new HubError_1.default("portalSearchItems", "options.requestOptions is required.");
@@ -59,9 +82,29 @@ async function portalSearchItems(query, options) {
59
82
  so.countFields = options.aggFields.join(",");
60
83
  so.countSize = options.aggLimit || 10;
61
84
  }
62
- return searchPortal(so);
85
+ return so;
86
+ }
87
+ /**
88
+ * Internal portal search, which just returns IItems witn no conversion
89
+ * Due to typescript complexity when adding multiple returns types to a function
90
+ * it is simpler to have two functions that do the almost the same thing.
91
+ * @param searchOptions
92
+ * @returns
93
+ */
94
+ async function searchPortalAsItem(searchOptions) {
95
+ // Execute portal search
96
+ const resp = await arcgis_rest_portal_1.searchItems(searchOptions);
97
+ // convert portal aggregations into hub aggregations
98
+ const aggregations = portalSearchUtils_1.convertPortalAggregations(resp);
99
+ // Construct the return
100
+ return {
101
+ total: resp.total,
102
+ results: resp.results,
103
+ aggregations,
104
+ hasNext: resp.nextStart > -1,
105
+ next: utils_1.getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsItem),
106
+ };
63
107
  }
64
- exports.portalSearchItems = portalSearchItems;
65
108
  /**
66
109
  * Internal portal search, which then converts `IItem`s to `IHubSearchResult`s
67
110
  * handling enrichments & includes along the way
@@ -69,7 +112,7 @@ exports.portalSearchItems = portalSearchItems;
69
112
  * @param searchOptions
70
113
  * @returns
71
114
  */
72
- async function searchPortal(searchOptions) {
115
+ async function searchPortalAsHubSearchResult(searchOptions) {
73
116
  // Execute portal search
74
117
  const resp = await arcgis_rest_portal_1.searchItems(searchOptions);
75
118
  // create mappable fn that will handle the includes
@@ -86,7 +129,7 @@ async function searchPortal(searchOptions) {
86
129
  results,
87
130
  aggregations,
88
131
  hasNext: resp.nextStart > -1,
89
- next: utils_1.getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),
132
+ next: utils_1.getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortalAsHubSearchResult),
90
133
  };
91
134
  }
92
135
  /**