@esri/hub-common 13.36.0 → 13.37.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 (44) hide show
  1. package/dist/esm/index.js +3 -0
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/permissions/checkPermission.js +2 -0
  4. package/dist/esm/permissions/checkPermission.js.map +1 -1
  5. package/dist/esm/projects/_internal/ProjectBusinessRules.js +2 -2
  6. package/dist/esm/projects/_internal/ProjectBusinessRules.js.map +1 -1
  7. package/dist/esm/search/_internal/expandPredicate.js +33 -18
  8. package/dist/esm/search/_internal/expandPredicate.js.map +1 -1
  9. package/dist/esm/search/_internal/explainFilter.js +34 -0
  10. package/dist/esm/search/_internal/explainFilter.js.map +1 -0
  11. package/dist/esm/search/_internal/explainHelpers.js +193 -0
  12. package/dist/esm/search/_internal/explainHelpers.js.map +1 -0
  13. package/dist/esm/search/_internal/explainPredicate.js +35 -0
  14. package/dist/esm/search/_internal/explainPredicate.js.map +1 -0
  15. package/dist/esm/search/_internal/portalSearchItems.js +20 -9
  16. package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
  17. package/dist/esm/search/explainQueryResult.js +53 -0
  18. package/dist/esm/search/explainQueryResult.js.map +1 -0
  19. package/dist/node/index.js +3 -0
  20. package/dist/node/index.js.map +1 -1
  21. package/dist/node/permissions/checkPermission.js +2 -0
  22. package/dist/node/permissions/checkPermission.js.map +1 -1
  23. package/dist/node/projects/_internal/ProjectBusinessRules.js +2 -2
  24. package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -1
  25. package/dist/node/search/_internal/expandPredicate.js +34 -19
  26. package/dist/node/search/_internal/expandPredicate.js.map +1 -1
  27. package/dist/node/search/_internal/explainFilter.js +38 -0
  28. package/dist/node/search/_internal/explainFilter.js.map +1 -0
  29. package/dist/node/search/_internal/explainHelpers.js +202 -0
  30. package/dist/node/search/_internal/explainHelpers.js.map +1 -0
  31. package/dist/node/search/_internal/explainPredicate.js +39 -0
  32. package/dist/node/search/_internal/explainPredicate.js.map +1 -0
  33. package/dist/node/search/_internal/portalSearchItems.js +22 -10
  34. package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
  35. package/dist/node/search/explainQueryResult.js +57 -0
  36. package/dist/node/search/explainQueryResult.js.map +1 -0
  37. package/dist/types/index.d.ts +1 -0
  38. package/dist/types/search/_internal/expandPredicate.d.ts +15 -0
  39. package/dist/types/search/_internal/explainFilter.d.ts +11 -0
  40. package/dist/types/search/_internal/explainHelpers.d.ts +38 -0
  41. package/dist/types/search/_internal/explainPredicate.d.ts +12 -0
  42. package/dist/types/search/_internal/portalSearchItems.d.ts +8 -0
  43. package/dist/types/search/explainQueryResult.d.ts +102 -0
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ exports.ProjectCapabilityPermissions = [
35
35
  {
36
36
  entity: "project",
37
37
  capability: "settings",
38
- permissions: ["hub:project:owner", "temp:workspace:released"],
38
+ permissions: ["hub:project:owner"],
39
39
  },
40
40
  {
41
41
  entity: "project",
@@ -45,7 +45,7 @@ exports.ProjectCapabilityPermissions = [
45
45
  {
46
46
  entity: "project",
47
47
  capability: "content",
48
- permissions: ["hub:project:edit"],
48
+ permissions: ["hub:project:edit", "temp:workspace:released"],
49
49
  },
50
50
  {
51
51
  entity: "project",
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACU,QAAA,0BAA0B,GAAuB;IAC5D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;GAKG;AACU,QAAA,4BAA4B,GAA4B;IACnE;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;KAC9D;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;CACX,CAAC;AAEX;;;GAGG;AACU,QAAA,yBAAyB,GAAwB;IAC5D;QACE,UAAU,EAAE,oBAAoB;QAChC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;KACvC;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;KACvC;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC"}
1
+ {"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACU,QAAA,0BAA0B,GAAuB;IAC5D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;GAKG;AACU,QAAA,4BAA4B,GAA4B;IACnE;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,mBAAmB,CAAC;KACnC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KAC7D;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;CACX,CAAC;AAEX;;;GAGG;AACU,QAAA,yBAAyB,GAAwB;IAC5D;QACE,UAAU,EAAE,oBAAoB;QAChC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;KACvC;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;KACvC;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC"}
@@ -1,9 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expandPredicate = void 0;
3
+ exports.expandPredicate = exports.PREDICATE_NON_MATCH_OPTIONS_PROPS = exports.PREDICATE_COPY_PROPS = exports.PREDICATE_DATE_PROPS = void 0;
4
4
  const objects_1 = require("../../objects");
5
5
  const util_1 = require("../../util");
6
6
  const utils_1 = require("../utils");
7
+ /**
8
+ * @internal
9
+ * Predicate properties that are treated as dates
10
+ */
11
+ exports.PREDICATE_DATE_PROPS = ["created", "modified", "lastlogin"];
12
+ /**
13
+ * @internal
14
+ * Predicate properties that are just copied forward
15
+ */
16
+ exports.PREDICATE_COPY_PROPS = [
17
+ "bbox",
18
+ "categoriesAsParam",
19
+ "categoryFilter",
20
+ "filterType",
21
+ "isopendata",
22
+ "isviewonly",
23
+ "memberType",
24
+ "name",
25
+ "searchUserAccess",
26
+ "searchUserName",
27
+ "term",
28
+ ];
29
+ /**
30
+ * @internal
31
+ * Predicate properties that are not treated as match options
32
+ */
33
+ exports.PREDICATE_NON_MATCH_OPTIONS_PROPS = [
34
+ ...exports.PREDICATE_DATE_PROPS,
35
+ ...exports.PREDICATE_COPY_PROPS,
36
+ ];
7
37
  /**
8
38
  * @private
9
39
  * Expand a predicate
@@ -12,29 +42,14 @@ const utils_1 = require("../utils");
12
42
  */
13
43
  function expandPredicate(predicate) {
14
44
  const result = {};
15
- const dateProps = ["created", "modified", "lastlogin"];
16
- const copyProps = [
17
- "bbox",
18
- "categoriesAsParam",
19
- "categoryFilter",
20
- "filterType",
21
- "isopendata",
22
- "isviewonly",
23
- "memberType",
24
- "name",
25
- "searchUserAccess",
26
- "searchUserName",
27
- "term",
28
- ];
29
- const nonMatchOptionsFields = [...dateProps, ...copyProps];
30
45
  // Do the conversion
31
46
  Object.entries(predicate).forEach(([key, value]) => {
32
47
  // Handle MatchOptions fields
33
- if (!nonMatchOptionsFields.includes(key)) {
48
+ if (!exports.PREDICATE_NON_MATCH_OPTIONS_PROPS.includes(key)) {
34
49
  objects_1.setProp(key, utils_1.valueToMatchOptions(value), result);
35
50
  }
36
51
  // Handle Date fields
37
- if (dateProps.includes(key)) {
52
+ if (exports.PREDICATE_DATE_PROPS.includes(key)) {
38
53
  const dateFieldValue = util_1.cloneObject(objects_1.getProp(predicate, key));
39
54
  if (objects_1.getProp(predicate, `${key}.type`) === "relative-date") {
40
55
  objects_1.setProp(key, utils_1.relativeDateToDateRange(dateFieldValue), result);
@@ -44,7 +59,7 @@ function expandPredicate(predicate) {
44
59
  }
45
60
  }
46
61
  // Handle fields that are just copied forward
47
- if (copyProps.includes(key) && predicate.hasOwnProperty(key)) {
62
+ if (exports.PREDICATE_COPY_PROPS.includes(key) && predicate.hasOwnProperty(key)) {
48
63
  objects_1.setProp(key, value, result);
49
64
  }
50
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"expandPredicate.js","sourceRoot":"","sources":["../../../../src/search/_internal/expandPredicate.ts"],"names":[],"mappings":";;;AAAA,2CAAiD;AACjD,qCAAyC;AAEzC,oCAAwE;AAExE;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,SAAqB;IACnD,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG;QAChB,MAAM;QACN,mBAAmB;QACnB,gBAAgB;QAChB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,MAAM;QACN,kBAAkB;QAClB,gBAAgB;QAChB,MAAM;KACP,CAAC;IACF,MAAM,qBAAqB,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;IAC3D,oBAAoB;IACpB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACjD,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxC,iBAAO,CAAC,GAAG,EAAE,2BAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;SAClD;QACD,qBAAqB;QACrB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,cAAc,GAAG,kBAAW,CAAC,iBAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,iBAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,eAAe,EAAE;gBACzD,iBAAO,CAAC,GAAG,EAAE,+BAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;aAC/D;iBAAM;gBACL,iBAAO,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;aACtC;SACF;QACD,6CAA6C;QAC7C,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC5D,iBAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAtCD,0CAsCC"}
1
+ {"version":3,"file":"expandPredicate.js","sourceRoot":"","sources":["../../../../src/search/_internal/expandPredicate.ts"],"names":[],"mappings":";;;AAAA,2CAAiD;AACjD,qCAAyC;AAEzC,oCAAwE;AAExE;;;GAGG;AACU,QAAA,oBAAoB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAEzE;;;GAGG;AACU,QAAA,oBAAoB,GAAG;IAClC,MAAM;IACN,mBAAmB;IACnB,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,MAAM;IACN,kBAAkB;IAClB,gBAAgB;IAChB,MAAM;CACP,CAAC;AAEF;;;GAGG;AACU,QAAA,iCAAiC,GAAG;IAC/C,GAAG,4BAAoB;IACvB,GAAG,4BAAoB;CACxB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,SAAqB;IACnD,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,oBAAoB;IACpB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACjD,6BAA6B;QAC7B,IAAI,CAAC,yCAAiC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpD,iBAAO,CAAC,GAAG,EAAE,2BAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;SAClD;QACD,qBAAqB;QACrB,IAAI,4BAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtC,MAAM,cAAc,GAAG,kBAAW,CAAC,iBAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,iBAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,eAAe,EAAE;gBACzD,iBAAO,CAAC,GAAG,EAAE,+BAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;aAC/D;iBAAM;gBACL,iBAAO,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;aACtC;SACF;QACD,6CAA6C;QAC7C,IAAI,4BAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YACvE,iBAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,0CAwBC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.explainFilter = void 0;
4
+ const util_1 = require("../../util");
5
+ const explainPredicate_1 = require("./explainPredicate");
6
+ /**
7
+ * Generate an explanation if a specific result passes the filter's criteria
8
+ * @param filter
9
+ * @param result
10
+ * @param requestOptions
11
+ * @returns
12
+ */
13
+ async function explainFilter(filter, result, requestOptions) {
14
+ // setup return value
15
+ const explanation = {
16
+ filter: util_1.cloneObject(filter),
17
+ matched: false,
18
+ reasons: [],
19
+ };
20
+ // for each predicate, explain the match and return the explanation
21
+ for (const predicate of filter.predicates) {
22
+ const r = await explainPredicate_1.explainPredicate(predicate, result, requestOptions);
23
+ explanation.reasons.push(r);
24
+ }
25
+ // depending on the operation, we combine the predicate results differently
26
+ if (filter.operation === "OR") {
27
+ // if any of the predicates match, then the filter matches
28
+ explanation.matched = explanation.reasons.some((r) => r.matched);
29
+ }
30
+ else {
31
+ // filter.operation defaults to AND
32
+ explanation.matched = explanation.reasons.every((r) => r.matched);
33
+ }
34
+ // return
35
+ return explanation;
36
+ }
37
+ exports.explainFilter = explainFilter;
38
+ //# sourceMappingURL=explainFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainFilter.js","sourceRoot":"","sources":["../../../../src/search/_internal/explainFilter.ts"],"names":[],"mappings":";;;AAGA,qCAAyC;AACzC,yDAAsD;AAEtD;;;;;;GAMG;AAEI,KAAK,UAAU,aAAa,CACjC,MAAe,EACf,MAAqB,EACrB,cAA+B;IAE/B,qBAAqB;IACrB,MAAM,WAAW,GAAuB;QACtC,MAAM,EAAE,kBAAW,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,mEAAmE;IACnE,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;QACzC,MAAM,CAAC,GAAG,MAAM,mCAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QACpE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7B;IACD,2EAA2E;IAC3E,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE;QAC7B,0DAA0D;QAC1D,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAClE;SAAM;QACL,mCAAmC;QACnC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KACnE;IAED,SAAS;IACT,OAAO,WAAW,CAAC;AACrB,CAAC;AA3BD,sCA2BC"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkNot = exports.checkAll = exports.checkAny = exports.explainMatchOptionPredicate = exports.explainPropPredicate = exports.explainDatePredicate = void 0;
4
+ const util_1 = require("../../util");
5
+ const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
6
+ const get_with_default_1 = require("../../objects/get-with-default");
7
+ const get_prop_1 = require("../../objects/get-prop");
8
+ async function explainDatePredicate(predicate, result, requestOptions) {
9
+ // get the value from the predicate
10
+ throw new Error("Not implemented");
11
+ }
12
+ exports.explainDatePredicate = explainDatePredicate;
13
+ async function explainPropPredicate(predicate, result, requestOptions) {
14
+ // get the value from the predicate
15
+ throw new Error("Not implemented");
16
+ }
17
+ exports.explainPropPredicate = explainPropPredicate;
18
+ /**
19
+ * @internal
20
+ * Create explanation for an IMatchOptions predicate
21
+ * @param predicate
22
+ * @param result
23
+ * @param requestOptions
24
+ * @returns
25
+ */
26
+ async function explainMatchOptionPredicate(predicate, result, requestOptions) {
27
+ // get the key from the predicate
28
+ const attribute = Object.keys(predicate)[0];
29
+ const matchOptions = predicate[attribute];
30
+ const explanation = {
31
+ predicate: util_1.cloneObject(predicate),
32
+ matched: true,
33
+ reasons: [],
34
+ };
35
+ // Construct meta hash that will allow us to carry additional info about the match
36
+ const meta = {};
37
+ // TODO Implement when needed
38
+ // if (attribute === "orgid") {
39
+ // // fetch org into and attach the id + name into the meta hash
40
+ // }
41
+ if (attribute === "group") {
42
+ // fetch items groups and attach as `group` prop
43
+ const response = await arcgis_rest_portal_1.getItemGroups(result.id, requestOptions);
44
+ // ----------------------------------------
45
+ // TODO: We've got a bunch of useful group info in the response, but only use the ids for the explanation
46
+ // However, to provide the user a useful explanation, we should include the group titles, and maybe even the group owners
47
+ // ----------------------------------------
48
+ // map out the id and titles into meta.groups
49
+ meta.groups = [
50
+ ...get_with_default_1.getWithDefault(response, "admin", []),
51
+ ...get_with_default_1.getWithDefault(response, "member", []),
52
+ ...get_with_default_1.getWithDefault(response, "other", []),
53
+ ].map((g) => ({ id: g.id, title: g.title }));
54
+ // and the id's into the match options attribute `group`
55
+ result.group = meta.groups.map((g) => g.id);
56
+ }
57
+ // get the value of the key, from the result
58
+ const resultValue = get_prop_1.getProp(result, attribute);
59
+ if (resultValue) {
60
+ // check the any, all, not, exact props if defined
61
+ const fns = {
62
+ any: checkAny,
63
+ all: checkAll,
64
+ not: checkNot,
65
+ };
66
+ // for each prop, if defined, call the appropriate check function
67
+ Object.keys(fns).forEach((prop) => {
68
+ const conditionToCheck = get_prop_1.getProp(matchOptions, prop);
69
+ if (conditionToCheck) {
70
+ const fn = get_prop_1.getProp(fns, prop);
71
+ const r = fn(attribute, conditionToCheck, resultValue);
72
+ r.meta = meta;
73
+ explanation.reasons.push(r);
74
+ }
75
+ });
76
+ // decide if all the predicates matched
77
+ explanation.matched = explanation.reasons.every((r) => r.matched);
78
+ }
79
+ else {
80
+ explanation.matched = false;
81
+ explanation.reasons.push({
82
+ attribute,
83
+ matched: false,
84
+ message: `Property ${attribute} not present on search result, cannot provide explanation`,
85
+ });
86
+ }
87
+ return Promise.resolve(explanation);
88
+ }
89
+ exports.explainMatchOptionPredicate = explainMatchOptionPredicate;
90
+ /**
91
+ * Returns information about the match between a result value and the .any property of an IMatchOptions predicate
92
+ * @param attribute
93
+ * @param option
94
+ * @param resultValue
95
+ * @returns
96
+ */
97
+ function checkAny(attribute, option, resultValue) {
98
+ const result = {
99
+ attribute,
100
+ values: arrayify(resultValue).join(","),
101
+ condition: "IN",
102
+ matched: false,
103
+ requirement: arrayify(option).join(","),
104
+ message: "No match",
105
+ };
106
+ const { options, matches } = getMatches(arrayify(option), arrayify(resultValue));
107
+ result.matched = matches.length > 0;
108
+ if (result.matched) {
109
+ result.message = `Value(s) ${result.values} contained at least one of value from [${result.requirement}]`;
110
+ }
111
+ else {
112
+ result.message = `Value(s) ${result.values} did not contain any of value from [${result.requirement}]`;
113
+ }
114
+ return result;
115
+ }
116
+ exports.checkAny = checkAny;
117
+ /**
118
+ * * Returns information about the match between a result value and the .all property of an IMatchOptions predicate
119
+ * @param attribute
120
+ * @param option
121
+ * @param resultValue
122
+ * @returns
123
+ */
124
+ function checkAll(attribute, option, resultValue) {
125
+ const result = {
126
+ attribute,
127
+ values: arrayify(resultValue).join(","),
128
+ condition: "ALL",
129
+ requirement: arrayify(option).join(","),
130
+ matched: false,
131
+ message: "No match",
132
+ };
133
+ const { options, matches } = getMatches(arrayify(option), arrayify(resultValue));
134
+ result.matched = matches.length === options.length;
135
+ if (result.matched) {
136
+ result.message = `Value(s) ${result.values} contained all values from [${result.requirement}]`;
137
+ }
138
+ else {
139
+ result.message = `Value(s) ${result.values} did not contain all values from [${result.requirement}]`;
140
+ }
141
+ return result;
142
+ }
143
+ exports.checkAll = checkAll;
144
+ /**
145
+ * * Returns information about the match between a result value and the .not property of an IMatchOptions predicate
146
+ * @param attribute
147
+ * @param option
148
+ * @param resultValue
149
+ * @returns
150
+ */
151
+ function checkNot(attribute, option, resultValue) {
152
+ const result = {
153
+ attribute,
154
+ values: arrayify(resultValue).join(","),
155
+ condition: "NOT_IN",
156
+ requirement: arrayify(option).join(","),
157
+ matched: false,
158
+ message: "No match",
159
+ };
160
+ const { options, values, matches } = getMatches(arrayify(option), arrayify(resultValue));
161
+ result.matched = matches.length === 0;
162
+ if (result.matched) {
163
+ result.message = `Value(s) ${result.values} is not contained in [${result.requirement}]`;
164
+ }
165
+ else {
166
+ result.message = `Value(s) ${result.values} is contained in [${result.requirement}]`;
167
+ }
168
+ return result;
169
+ }
170
+ exports.checkNot = checkNot;
171
+ /**
172
+ * Ensure a value that could be `string | string[]` is a `string[]`
173
+ * @param value
174
+ * @returns
175
+ */
176
+ function arrayify(value) {
177
+ if (!Array.isArray(value)) {
178
+ return [value];
179
+ }
180
+ return value;
181
+ }
182
+ /**
183
+ * Return matching values from two arrays
184
+ * @param options
185
+ * @param resultValues
186
+ * @returns
187
+ */
188
+ function getMatches(options, resultValues) {
189
+ const result = {
190
+ options,
191
+ values: resultValues,
192
+ matches: [],
193
+ };
194
+ result.matches = options.reduce((acc, o) => {
195
+ if (resultValues.includes(o)) {
196
+ acc.push(o);
197
+ }
198
+ return acc;
199
+ }, []);
200
+ return result;
201
+ }
202
+ //# sourceMappingURL=explainHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainHelpers.js","sourceRoot":"","sources":["../../../../src/search/_internal/explainHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.explainPredicate = void 0;
4
+ const expandPredicate_1 = require("./expandPredicate");
5
+ const explainHelpers_1 = require("./explainHelpers");
6
+ /**
7
+ * Geneate an explanation if a specific result passes the predicate's criteria
8
+ * This will delegate to more specific functions based on the predicate's key
9
+ * @param predicate
10
+ * @param result
11
+ * @param requestOptions
12
+ * @returns
13
+ */
14
+ async function explainPredicate(predicate, result, requestOptions) {
15
+ // const predicateResult: IPredicateExplanation = {
16
+ // predicate: cloneObject(predicate),
17
+ // included: false,
18
+ // reasons: [],
19
+ // };
20
+ // get the key from the predicate
21
+ const key = Object.keys(predicate)[0];
22
+ // default to match options...
23
+ let fn = explainHelpers_1.explainMatchOptionPredicate;
24
+ // However, some keys are treated differently
25
+ if (expandPredicate_1.PREDICATE_NON_MATCH_OPTIONS_PROPS.includes(key)) {
26
+ if (expandPredicate_1.PREDICATE_DATE_PROPS.includes(key)) {
27
+ // handle as date
28
+ fn = explainHelpers_1.explainDatePredicate;
29
+ }
30
+ else {
31
+ // handle as prop we just copy forward
32
+ fn = explainHelpers_1.explainPropPredicate;
33
+ }
34
+ }
35
+ // return the result
36
+ return fn(predicate, result, requestOptions);
37
+ }
38
+ exports.explainPredicate = explainPredicate;
39
+ //# sourceMappingURL=explainPredicate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainPredicate.js","sourceRoot":"","sources":["../../../../src/search/_internal/explainPredicate.ts"],"names":[],"mappings":";;;AAIA,uDAG2B;AAC3B,qDAI0B;AAE1B;;;;;;;GAOG;AAEI,KAAK,UAAU,gBAAgB,CACpC,SAAwC,EACxC,MAAqB,EACrB,cAA+B;IAE/B,mDAAmD;IACnD,uCAAuC;IACvC,qBAAqB;IACrB,iBAAiB;IACjB,KAAK;IAEL,iCAAiC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,8BAA8B;IAC9B,IAAI,EAAE,GAAG,4CAA2B,CAAC;IAErC,6CAA6C;IAC7C,IAAI,mDAAiC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACnD,IAAI,sCAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtC,iBAAiB;YACjB,EAAE,GAAG,qCAAoB,CAAC;SAC3B;aAAM;YACL,sCAAsC;YACtC,EAAE,GAAG,qCAAoB,CAAC;SAC3B;KACF;IACD,oBAAoB;IACpB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AAC/C,CAAC;AA5BD,4CA4BC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.applyWellKnownCollectionFilters = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.portalSearchItemsAsItems = exports.portalSearchItems = void 0;
3
+ exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.applyWellKnownCollectionFilters = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.expandQuery = 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");
@@ -39,16 +39,13 @@ function portalSearchItemsAsItems(query, options) {
39
39
  }
40
40
  exports.portalSearchItemsAsItems = portalSearchItemsAsItems;
41
41
  /**
42
- * Common preprocessing for search options and the query
43
- * @param options
44
- * @param query
45
- * @returns
42
+ * @internal
43
+ * Expand an IQuery by applying well-known filters and predicates,
44
+ * and then expanding all the predicates into IMatchOption objects.
45
+ * @param query `IQuery` to expand
46
+ * @returns IQuery
46
47
  */
47
- function processSearchParams(options, query) {
48
- var _a;
49
- if (!options.requestOptions) {
50
- throw new HubError_1.default("portalSearchItems", "options.requestOptions is required.");
51
- }
48
+ function expandQuery(query) {
52
49
  let updatedQuery = applyWellKnownCollectionFilters(query);
53
50
  // Expand well-known filterGroups
54
51
  // TODO: Should we remove this with the whole idea of collections?
@@ -58,6 +55,21 @@ function processSearchParams(options, query) {
58
55
  filter.predicates = filter.predicates.map(expandPredicate_1.expandPredicate);
59
56
  return filter;
60
57
  });
58
+ return updatedQuery;
59
+ }
60
+ exports.expandQuery = expandQuery;
61
+ /**
62
+ * Common preprocessing for search options and the query
63
+ * @param options
64
+ * @param query
65
+ * @returns
66
+ */
67
+ function processSearchParams(options, query) {
68
+ var _a;
69
+ if (!options.requestOptions) {
70
+ throw new HubError_1.default("portalSearchItems", "options.requestOptions is required.");
71
+ }
72
+ const updatedQuery = expandQuery(query);
61
73
  // Serialize the all the groups for portal
62
74
  const so = serializeQueryForPortal_1.serializeQueryForPortal(updatedQuery);
63
75
  // Array of properties we want to copy from IHubSearchOptions to the ISearchOptions
@@ -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":"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"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.explainQueryResult = void 0;
4
+ const portalSearchItems_1 = require("./_internal/portalSearchItems");
5
+ const util_1 = require("../util");
6
+ const explainFilter_1 = require("./_internal/explainFilter");
7
+ /**
8
+ * Explain why a specific result was included in a Query.
9
+ *
10
+ * NOTE: This only works for entityType: "item" queries and does not
11
+ * cover all possible permutations.
12
+ * @param queryResult
13
+ * @param query
14
+ * @param requestOptions
15
+ * @returns
16
+ */
17
+ async function explainQueryResult(queryResult, query, requestOptions) {
18
+ // Throw if the query is not for items
19
+ if (query.targetEntity !== "item") {
20
+ throw new Error(`explainQueryResult: Only queries with targetEntity: "item" are supported`);
21
+ }
22
+ // Expand the query so we have a standardized structure to work with
23
+ const expandedQuery = portalSearchItems_1.expandQuery(query);
24
+ // iterate the filters on the query and get explanations for each
25
+ const filterExplanations = [];
26
+ for (const filter of expandedQuery.filters) {
27
+ const fe = await explainFilter_1.explainFilter(filter, queryResult, requestOptions);
28
+ filterExplanations.push(fe);
29
+ }
30
+ // Collect up the reasons
31
+ const included = filterExplanations.reduce((acc, explanation) => {
32
+ if (!explanation.matched) {
33
+ acc = false;
34
+ }
35
+ return acc;
36
+ }, true);
37
+ // Collect up all the reasons into a single array
38
+ const summary = [];
39
+ filterExplanations.forEach((fe) => {
40
+ fe.reasons.forEach((predicateExplanation) => {
41
+ predicateExplanation.reasons.forEach((reason) => {
42
+ summary.push(reason);
43
+ });
44
+ });
45
+ });
46
+ // construct the result
47
+ const result = {
48
+ result: util_1.cloneObject(queryResult),
49
+ query: util_1.cloneObject(query),
50
+ matched: included,
51
+ reasons: filterExplanations,
52
+ summary,
53
+ };
54
+ return result;
55
+ }
56
+ exports.explainQueryResult = explainQueryResult;
57
+ //# sourceMappingURL=explainQueryResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainQueryResult.js","sourceRoot":"","sources":["../../../src/search/explainQueryResult.ts"],"names":[],"mappings":";;;AAEA,qEAA4D;AAC5D,kCAAsC;AACtC,6DAA0D;AAkG1D;;;;;;;;;GASG;AACI,KAAK,UAAU,kBAAkB,CACtC,WAA0B,EAC1B,KAAa,EACb,cAA+B;IAE/B,sCAAsC;IACtC,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM,EAAE;QACjC,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;KACH;IAED,oEAAoE;IACpE,MAAM,aAAa,GAAG,+BAAW,CAAC,KAAK,CAAC,CAAC;IAEzC,iEAAiE;IACjE,MAAM,kBAAkB,GAAyB,EAAE,CAAC;IACpD,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE;QAC1C,MAAM,EAAE,GAAG,MAAM,6BAAa,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACpE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7B;IAED,yBAAyB;IACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YACxB,GAAG,GAAG,KAAK,CAAC;SACb;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,iDAAiD;IACjD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QAChC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,EAAE;YAC1C,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,MAAM,GAAsB;QAChC,MAAM,EAAE,kBAAW,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,kBAAW,CAAC,KAAK,CAAC;QACzB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,kBAAkB;QAC3B,OAAO;KACR,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAlDD,gDAkDC"}
@@ -35,6 +35,7 @@ export * from "./metrics";
35
35
  export * from "./core/updateHubEntity";
36
36
  export * from "./urls/getCardModelUrl";
37
37
  export * from "./core/EntityEditor";
38
+ export * from "./search/explainQueryResult";
38
39
  import OperationStack from "./OperationStack";
39
40
  import OperationError from "./OperationError";
40
41
  import HubError from "./HubError";
@@ -1,4 +1,19 @@
1
1
  import { IPredicate } from "../types";
2
+ /**
3
+ * @internal
4
+ * Predicate properties that are treated as dates
5
+ */
6
+ export declare const PREDICATE_DATE_PROPS: string[];
7
+ /**
8
+ * @internal
9
+ * Predicate properties that are just copied forward
10
+ */
11
+ export declare const PREDICATE_COPY_PROPS: string[];
12
+ /**
13
+ * @internal
14
+ * Predicate properties that are not treated as match options
15
+ */
16
+ export declare const PREDICATE_NON_MATCH_OPTIONS_PROPS: string[];
2
17
  /**
3
18
  * @private
4
19
  * Expand a predicate
@@ -0,0 +1,11 @@
1
+ import { IRequestOptions } from "@esri/arcgis-rest-request";
2
+ import { GenericResult, IFilterExplanation } from "../explainQueryResult";
3
+ import { IFilter } from "../types/IHubCatalog";
4
+ /**
5
+ * Generate an explanation if a specific result passes the filter's criteria
6
+ * @param filter
7
+ * @param result
8
+ * @param requestOptions
9
+ * @returns
10
+ */
11
+ export declare function explainFilter(filter: IFilter, result: GenericResult, requestOptions: IRequestOptions): Promise<IFilterExplanation>;