@esri/hub-common 12.29.0 → 12.30.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 (83) hide show
  1. package/dist/esm/core/behaviors/IWithMetricsBehavior.js +1 -0
  2. package/dist/esm/core/behaviors/IWithMetricsBehavior.js.map +1 -0
  3. package/dist/esm/core/traits/IWithMetrics.js +1 -0
  4. package/dist/esm/core/traits/IWithMetrics.js.map +1 -0
  5. package/dist/esm/core/types/IHubProject.js.map +1 -1
  6. package/dist/esm/core/types/IReference.js +5 -0
  7. package/dist/esm/core/types/IReference.js.map +1 -0
  8. package/dist/esm/core/types/Metrics.js +1 -0
  9. package/dist/esm/core/types/Metrics.js.map +1 -0
  10. package/dist/esm/core/types/index.js +2 -0
  11. package/dist/esm/core/types/index.js.map +1 -1
  12. package/dist/esm/index.js +1 -0
  13. package/dist/esm/index.js.map +1 -1
  14. package/dist/esm/initiatives/HubInitiative.js +18 -0
  15. package/dist/esm/initiatives/HubInitiative.js.map +1 -1
  16. package/dist/esm/initiatives/_internal/getPropertyMap.js +1 -0
  17. package/dist/esm/initiatives/_internal/getPropertyMap.js.map +1 -1
  18. package/dist/esm/metrics/aggregateMetrics.js +43 -0
  19. package/dist/esm/metrics/aggregateMetrics.js.map +1 -0
  20. package/dist/esm/metrics/getEntityMetrics.js +38 -0
  21. package/dist/esm/metrics/getEntityMetrics.js.map +1 -0
  22. package/dist/esm/metrics/index.js +4 -0
  23. package/dist/esm/metrics/index.js.map +1 -0
  24. package/dist/esm/metrics/resolveMetric.js +167 -0
  25. package/dist/esm/metrics/resolveMetric.js.map +1 -0
  26. package/dist/esm/projects/HubProject.js +18 -0
  27. package/dist/esm/projects/HubProject.js.map +1 -1
  28. package/dist/esm/projects/_internal/getPropertyMap.js +1 -0
  29. package/dist/esm/projects/_internal/getPropertyMap.js.map +1 -1
  30. package/dist/esm/utils/memoize.js +14 -4
  31. package/dist/esm/utils/memoize.js.map +1 -1
  32. package/dist/esm/versioning/updateVersionMetadata.js +1 -1
  33. package/dist/esm/versioning/updateVersionMetadata.js.map +1 -1
  34. package/dist/node/core/behaviors/IWithMetricsBehavior.js +3 -0
  35. package/dist/node/core/behaviors/IWithMetricsBehavior.js.map +1 -0
  36. package/dist/node/core/traits/IWithMetrics.js +3 -0
  37. package/dist/node/core/traits/IWithMetrics.js.map +1 -0
  38. package/dist/node/core/types/IHubProject.js.map +1 -1
  39. package/dist/node/core/types/IReference.js +7 -0
  40. package/dist/node/core/types/IReference.js.map +1 -0
  41. package/dist/node/core/types/Metrics.js +3 -0
  42. package/dist/node/core/types/Metrics.js.map +1 -0
  43. package/dist/node/core/types/index.js +2 -0
  44. package/dist/node/core/types/index.js.map +1 -1
  45. package/dist/node/index.js +1 -0
  46. package/dist/node/index.js.map +1 -1
  47. package/dist/node/initiatives/HubInitiative.js +18 -0
  48. package/dist/node/initiatives/HubInitiative.js.map +1 -1
  49. package/dist/node/initiatives/_internal/getPropertyMap.js +1 -0
  50. package/dist/node/initiatives/_internal/getPropertyMap.js.map +1 -1
  51. package/dist/node/metrics/aggregateMetrics.js +47 -0
  52. package/dist/node/metrics/aggregateMetrics.js.map +1 -0
  53. package/dist/node/metrics/getEntityMetrics.js +42 -0
  54. package/dist/node/metrics/getEntityMetrics.js.map +1 -0
  55. package/dist/node/metrics/index.js +7 -0
  56. package/dist/node/metrics/index.js.map +1 -0
  57. package/dist/node/metrics/resolveMetric.js +171 -0
  58. package/dist/node/metrics/resolveMetric.js.map +1 -0
  59. package/dist/node/projects/HubProject.js +18 -0
  60. package/dist/node/projects/HubProject.js.map +1 -1
  61. package/dist/node/projects/_internal/getPropertyMap.js +1 -0
  62. package/dist/node/projects/_internal/getPropertyMap.js.map +1 -1
  63. package/dist/node/utils/memoize.js +14 -4
  64. package/dist/node/utils/memoize.js.map +1 -1
  65. package/dist/node/versioning/updateVersionMetadata.js +1 -1
  66. package/dist/node/versioning/updateVersionMetadata.js.map +1 -1
  67. package/dist/types/core/behaviors/IWithMetricsBehavior.d.ts +10 -0
  68. package/dist/types/core/traits/IWithMetrics.d.ts +10 -0
  69. package/dist/types/core/types/DynamicValues.d.ts +1 -7
  70. package/dist/types/core/types/IHubInitiative.d.ts +2 -1
  71. package/dist/types/core/types/IHubProject.d.ts +2 -1
  72. package/dist/types/core/types/IReference.d.ts +7 -0
  73. package/dist/types/core/types/Metrics.d.ts +159 -0
  74. package/dist/types/core/types/index.d.ts +2 -0
  75. package/dist/types/index.d.ts +1 -0
  76. package/dist/types/initiatives/HubInitiative.d.ts +9 -2
  77. package/dist/types/metrics/aggregateMetrics.d.ts +10 -0
  78. package/dist/types/metrics/getEntityMetrics.d.ts +10 -0
  79. package/dist/types/metrics/index.d.ts +3 -0
  80. package/dist/types/metrics/resolveMetric.d.ts +11 -0
  81. package/dist/types/projects/HubProject.d.ts +9 -2
  82. package/dist/types/utils/memoize.d.ts +3 -1
  83. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;gBACgB;AAChB,0BAA0B;;;;AAE1B,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,yDAA+B;AAC/B,sDAA4B;AAC5B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,wDAA8B;AAC9B,wDAA8B;AAC9B,kDAAwB;AACxB,mDAAyB;AACzB,oDAA0B;AAC1B,gDAAsB;AACtB,kDAAwB;AACxB,wDAA8B;AAC9B,qDAA2B;AAC3B,oDAA0B;AAC1B,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,uDAA6B;AAC7B,0DAA0D;AAC1D,qDAAqD;AACrD,iEAAuC;AAEvC,qDAA8C;AAKrC,yBALF,wBAAc,CAKE;AAJvB,qDAA8C;AAIrB,yBAJlB,wBAAc,CAIkB;AAHvC,yCAAkC;AAGO,mBAHlC,kBAAQ,CAGkC;AACjD,6BAAkC;AAAzB,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;gBACgB;AAChB,0BAA0B;;;;AAE1B,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,yDAA+B;AAC/B,sDAA4B;AAC5B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,wDAA8B;AAC9B,wDAA8B;AAC9B,kDAAwB;AACxB,mDAAyB;AACzB,oDAA0B;AAC1B,gDAAsB;AACtB,kDAAwB;AACxB,wDAA8B;AAC9B,qDAA2B;AAC3B,oDAA0B;AAC1B,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B;AAC1B,0DAA0D;AAC1D,qDAAqD;AACrD,iEAAuC;AAEvC,qDAA8C;AAKrC,yBALF,wBAAc,CAKE;AAJvB,qDAA8C;AAIrB,yBAJlB,wBAAc,CAIkB;AAHvC,yCAAkC;AAGO,mBAHlC,kBAAQ,CAGkC;AACjD,6BAAkC;AAAzB,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA"}
@@ -6,6 +6,8 @@ const getEntityEditorSchemas_1 = require("../core/schemas/getEntityEditorSchemas
6
6
  const HubInitiatives_1 = require("./HubInitiatives");
7
7
  const search_1 = require("../search");
8
8
  const HubItemEntity_1 = require("../core/HubItemEntity");
9
+ const getEntityMetrics_1 = require("../metrics/getEntityMetrics");
10
+ const resolveMetric_1 = require("../metrics/resolveMetric");
9
11
  /**
10
12
  * Hub Initiative Class
11
13
  */
@@ -149,6 +151,22 @@ class HubInitiative extends HubItemEntity_1.HubItemEntity {
149
151
  // Delegate to module fn
150
152
  await HubInitiatives_1.deleteInitiative(this.entity.id, this.context.userRequestOptions);
151
153
  }
154
+ /**
155
+ * Resolve a single metric for this metric
156
+ * @param metricId
157
+ * @returns
158
+ */
159
+ resolveMetric(metricId) {
160
+ const metrics = getEntityMetrics_1.getEntityMetrics(this.entity);
161
+ const metric = metrics.find((m) => m.id === metricId);
162
+ // TODO: Add caching
163
+ if (metric) {
164
+ return resolveMetric_1.resolveMetric(metric, this.context);
165
+ }
166
+ else {
167
+ throw new Error(`Metric ${metricId} not found.`);
168
+ }
169
+ }
152
170
  }
153
171
  exports.HubInitiative = HubInitiative;
154
172
  //# sourceMappingURL=HubInitiative.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ function getPropertyMap() {
20
20
  });
21
21
  map.push({ objectKey: "contacts", modelKey: "data.contacts" });
22
22
  map.push({ objectKey: "timeline", modelKey: "data.timeline" });
23
+ map.push({ objectKey: "metrics", modelKey: "item.properties.metrics" });
23
24
  return map;
24
25
  }
25
26
  exports.getPropertyMap = getPropertyMap;
@@ -1 +1 @@
1
- {"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAE/D,OAAO,GAAG,CAAC;AACb,CAAC;AAfD,wCAeC"}
1
+ {"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAExE,OAAO,GAAG,CAAC;AACb,CAAC;AAhBD,wCAgBC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aggregateMetrics = void 0;
4
+ /**
5
+ * Given an array of metrics, aggregate them using the specified aggregation
6
+ * Consumer must be aware of the type of the metrics and pass an appropriate aggregation
7
+ * @param metrics
8
+ * @param aggregation
9
+ * @returns
10
+ */
11
+ function aggregateMetrics(metrics, field, aggregation) {
12
+ // Get the values from the metrics, we use any so
13
+ // we can keep the rest of the code simpler
14
+ const values = metrics.map((m) => m.attributes[field]);
15
+ let aggregate = null;
16
+ switch (aggregation) {
17
+ case "sum":
18
+ aggregate = values.reduce((acc, v) => acc + v, 0);
19
+ break;
20
+ case "count":
21
+ aggregate = values.length;
22
+ break;
23
+ case "avg":
24
+ aggregate = values.reduce((acc, v) => acc + v, 0) / values.length;
25
+ break;
26
+ case "min":
27
+ aggregate = values.reduce((acc, v) => Math.min(acc, v), Number.MAX_VALUE);
28
+ break;
29
+ case "max":
30
+ aggregate = values.reduce((acc, v) => Math.max(acc, v), Number.MIN_VALUE);
31
+ break;
32
+ case "countByValue": // count for each value as a hash {value: string, count: number}
33
+ aggregate = values.reduce((acc, v) => {
34
+ if (acc[v]) {
35
+ acc[v] += 1;
36
+ }
37
+ else {
38
+ acc[v] = 1;
39
+ }
40
+ return acc;
41
+ }, {});
42
+ break;
43
+ }
44
+ return aggregate;
45
+ }
46
+ exports.aggregateMetrics = aggregateMetrics;
47
+ //# sourceMappingURL=aggregateMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregateMetrics.js","sourceRoot":"","sources":["../../../src/metrics/aggregateMetrics.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,OAAyB,EACzB,KAAa,EACb,WAA+B;IAE/B,iDAAiD;IACjD,2CAA2C;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAQ,CAAC,CAAC;IAE9D,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,QAAQ,WAAW,EAAE;QACnB,KAAK,KAAK;YACR,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,OAAO;YACV,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1B,MAAM;QACR,KAAK,KAAK;YACR,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAClE,MAAM;QACR,KAAK,KAAK;YACR,SAAS,GAAG,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;YAC1E,MAAM;QAER,KAAK,KAAK;YACR,SAAS,GAAG,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;YAC1E,MAAM;QACR,KAAK,cAAc,EAAE,gEAAgE;YACnF,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACnC,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;YACP,MAAM;KACT;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAzCD,4CAyCC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEntityMetrics = void 0;
4
+ const get_prop_1 = require("../objects/get-prop");
5
+ const util_1 = require("../util");
6
+ /**
7
+ * Get the metrics from an entity applying some pre-processing
8
+ * and adding source info.
9
+ * @param entity
10
+ * @returns
11
+ */
12
+ function getEntityMetrics(entity) {
13
+ // Create the source info that will attach into each metric
14
+ const sourceInfo = {
15
+ id: entity.id,
16
+ name: entity.name,
17
+ type: entity.type,
18
+ };
19
+ const entityMetrics = entity.metrics || [];
20
+ const metrics = entityMetrics.map((metric) => {
21
+ // assign the source info to the metric
22
+ metric.entityInfo = Object.assign({}, sourceInfo);
23
+ // at this point the source references should have been resolved
24
+ // so we can cast the source to a MetricSource
25
+ const source = metric.source;
26
+ // If the metric is an item query and the catalog key is defined
27
+ // get the scope from the specified collection in the catalog.
28
+ if (source.type === "item-query" && source.collectionKey) {
29
+ const key = source.collectionKey;
30
+ const query = get_prop_1.getProp(entity.catalog, `collections[findBy(key,'${key}')].scope`);
31
+ if (query) {
32
+ source.scope = util_1.cloneObject(query);
33
+ }
34
+ }
35
+ // reassign the source with updates
36
+ metric.source = source;
37
+ return metric;
38
+ });
39
+ return metrics;
40
+ }
41
+ exports.getEntityMetrics = getEntityMetrics;
42
+ //# sourceMappingURL=getEntityMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEntityMetrics.js","sourceRoot":"","sources":["../../../src/metrics/getEntityMetrics.ts"],"names":[],"mappings":";;;AAGA,kDAA8C;AAC9C,kCAAsC;AAEtC;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,MAAoC;IAEpC,2DAA2D;IAC3D,MAAM,UAAU,GAAgB;QAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,uCAAuC;QACvC,MAAM,CAAC,UAAU,qBAAQ,UAAU,CAAE,CAAC;QAEtC,gEAAgE;QAChE,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAsB,CAAC;QAC7C,gEAAgE;QAChE,8DAA8D;QAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE;YACxD,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC;YACjC,MAAM,KAAK,GAAG,kBAAO,CACnB,MAAM,CAAC,OAAO,EACd,2BAA2B,GAAG,WAAW,CAC1C,CAAC;YAEF,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,KAAK,GAAG,kBAAW,CAAC,KAAK,CAAC,CAAC;aACnC;SACF;QACD,mCAAmC;QACnC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAtCD,4CAsCC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./getEntityMetrics"), exports);
5
+ tslib_1.__exportStar(require("./resolveMetric"), exports);
6
+ tslib_1.__exportStar(require("./aggregateMetrics"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,0DAAgC;AAChC,6DAAmC"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveMetric = void 0;
4
+ const arcgis_rest_feature_layer_1 = require("@esri/arcgis-rest-feature-layer");
5
+ const get_prop_1 = require("../objects/get-prop");
6
+ const combineQueries_1 = require("../search/_internal/combineQueries");
7
+ const memoize_1 = require("../utils/memoize");
8
+ const portalSearchItems_1 = require("../search/_internal/portalSearchItems");
9
+ /**
10
+ * Resolve a Metric into an array of `IMetricFeature` objects.
11
+ * This implementation is similar to DynamicValues, but is just different
12
+ * enough to warrant a separate implementation.
13
+ * @param metric
14
+ * @param context
15
+ * @returns
16
+ */
17
+ async function resolveMetric(metric, context) {
18
+ // At this point the source references should have been resolved
19
+ // so we can force case to a MetricSource and switch on the type
20
+ const source = metric.source;
21
+ // call the appropriate resolver
22
+ switch (source.type) {
23
+ case "static-value":
24
+ return resolveStaticValueMetric(metric, context);
25
+ case "service-query":
26
+ return resolveServiceQueryMetric(metric, context);
27
+ case "item-query":
28
+ return resolveItemQueryMetric(metric, context);
29
+ default:
30
+ throw new Error(`Unknown metric type passed in.`);
31
+ }
32
+ }
33
+ exports.resolveMetric = resolveMetric;
34
+ /**
35
+ * Resolve a static value metric
36
+ * @param metric
37
+ * @param context
38
+ * @returns
39
+ */
40
+ function resolveStaticValueMetric(metric, context) {
41
+ const source = metric.source;
42
+ // cut off the parent identifier from the metric id and use that
43
+ // as the output field name
44
+ const fieldName = metric.id.split("_")[0];
45
+ const result = {
46
+ attributes: {
47
+ id: metric.entityInfo.id,
48
+ name: metric.entityInfo.name,
49
+ type: metric.entityInfo.type,
50
+ [fieldName]: source.value,
51
+ },
52
+ };
53
+ return Promise.resolve([result]);
54
+ }
55
+ /**
56
+ * Exequte a query against a service and return the aggregate value
57
+ * in an `IMetricFeature`
58
+ * @param metric
59
+ * @param context
60
+ * @returns
61
+ */
62
+ async function resolveServiceQueryMetric(metric, context) {
63
+ const source = metric.source;
64
+ // cut off the parent identifier from the metric id and use that
65
+ // as the output field name
66
+ const fieldName = metric.id.split("_")[0];
67
+ // If no where is provided, default to "1=1"
68
+ source.where = source.where || "1=1";
69
+ // Construct the stats definition
70
+ const statsDef = {
71
+ onStatisticField: source.field,
72
+ statisticType: source.statistic,
73
+ outStatisticFieldName: source.field,
74
+ };
75
+ // construct the url by appending the layer id if provided
76
+ const serviceUrl = source.serviceUrl + `/${source.layerId}`;
77
+ // Execute the query
78
+ const response = await arcgis_rest_feature_layer_1.queryFeatures({
79
+ url: serviceUrl,
80
+ where: source.where,
81
+ f: "json",
82
+ outStatistics: [statsDef],
83
+ authentication: context.requestOptions.authentication,
84
+ });
85
+ // TODO: If we enable more stats, we will need to update
86
+ // how we fetch the values out of the response
87
+ const aggregate = get_prop_1.getProp(response, `features[0].attributes.${source.field}`);
88
+ const result = {
89
+ attributes: {
90
+ id: metric.entityInfo.id,
91
+ name: metric.entityInfo.name,
92
+ type: metric.entityInfo.type,
93
+ [fieldName]: aggregate,
94
+ },
95
+ };
96
+ return [result];
97
+ }
98
+ async function resolveItemQueryMetric(metric, context) {
99
+ const source = metric.source;
100
+ // cut off the parent identifier from the metric id and use that
101
+ // as the output field name
102
+ const fieldName = metric.id.split("_")[0];
103
+ // create the query from the source properties
104
+ const predicate = {
105
+ typekeywords: source.keywords,
106
+ };
107
+ if (source.itemTypes) {
108
+ predicate.type = source.itemTypes;
109
+ }
110
+ const baseQuery = {
111
+ targetEntity: "item",
112
+ filters: [
113
+ {
114
+ operation: "AND",
115
+ predicates: [predicate],
116
+ },
117
+ ],
118
+ };
119
+ const scope = source.scope || {
120
+ targetEntity: "item",
121
+ filters: [],
122
+ };
123
+ const combined = combineQueries_1.combineQueries([baseQuery, scope]);
124
+ const opts = {
125
+ requestOptions: context.hubRequestOptions,
126
+ num: 100,
127
+ };
128
+ // create/get memoized version of portalSearchItemsAsItems
129
+ const memoizedPortalSearch = memoize_1.memoize(portalSearchItems_1.portalSearchItemsAsItems);
130
+ // Execute the query
131
+ const response = await memoizedPortalSearch(combined, opts);
132
+ // This next section is all promise based so that a dynamic value
133
+ // can itself be a dynamic value definition, which then needs to be
134
+ // resolved.
135
+ const promises = await response.results.reduce(async (valsPromise, item) => {
136
+ const vals = await valsPromise;
137
+ const valueFromItem = get_prop_1.getProp(item, source.propertyPath);
138
+ const result = {
139
+ attributes: {
140
+ id: item.id,
141
+ name: item.title,
142
+ type: item.type,
143
+ [fieldName]: null,
144
+ },
145
+ };
146
+ // Handle case where value is not found...
147
+ // e.g. the project exists but the metric is not defined yet
148
+ if (valueFromItem) {
149
+ // This block is needed if we are just plucking a value from the item
150
+ // e.g. item.views or item.access
151
+ if (typeof valueFromItem === "string" ||
152
+ typeof valueFromItem === "number") {
153
+ result.attributes[fieldName] = valueFromItem;
154
+ vals.push(Promise.resolve(result));
155
+ }
156
+ else {
157
+ // valueFromItem is itself a metric so we call resolveDynamicValues again
158
+ // attach in the entity info, so it's present for the next level of recursion
159
+ valueFromItem.entityInfo = result.attributes;
160
+ const vResult = await resolveMetric(valueFromItem, context);
161
+ vals.push(...vResult);
162
+ }
163
+ }
164
+ return vals;
165
+ }, Promise.resolve([]));
166
+ // let everything resolve
167
+ const outputs = (await Promise.all(promises));
168
+ // return the results
169
+ return outputs;
170
+ }
171
+ //# sourceMappingURL=resolveMetric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveMetric.js","sourceRoot":"","sources":["../../../src/metrics/resolveMetric.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ const search_1 = require("../search");
7
7
  const HubItemEntity_1 = require("../core/HubItemEntity");
8
8
  // NOTE: this could be lazy-loaded just like the CUD functions
9
9
  const fetch_1 = require("./fetch");
10
+ const getEntityMetrics_1 = require("../metrics/getEntityMetrics");
11
+ const resolveMetric_1 = require("../metrics/resolveMetric");
10
12
  /**
11
13
  * Hub Project Class
12
14
  */
@@ -151,6 +153,22 @@ class HubProject extends HubItemEntity_1.HubItemEntity {
151
153
  // Delegate to module fn
152
154
  await deleteProject(this.entity.id, this.context.userRequestOptions);
153
155
  }
156
+ /**
157
+ * Resolve a single metric for this metric
158
+ * @param metricId
159
+ * @returns
160
+ */
161
+ resolveMetric(metricId) {
162
+ const metrics = getEntityMetrics_1.getEntityMetrics(this.entity);
163
+ const metric = metrics.find((m) => m.id === metricId);
164
+ // TODO: add caching
165
+ if (metric) {
166
+ return resolveMetric_1.resolveMetric(metric, this.context);
167
+ }
168
+ else {
169
+ throw new Error(`Metric ${metricId} not found.`);
170
+ }
171
+ }
154
172
  }
155
173
  exports.HubProject = HubProject;
156
174
  //# sourceMappingURL=HubProject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":";;;AAAA,yCAA6C;AAS7C,mFAAgF;AAChF,sCAAoC;AAEpC,yDAAsD;AAGtD,8DAA8D;AAC9D,mCAAuC;AAGvC;;GAEG;AACH,MAAa,UACX,SAAQ,6BAA0B;IAQlC;;;;OAIG;IACH,YAAoB,OAAoB,EAAE,OAAuB;QAC/D,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,gBAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACb,IAA0B,EAC1B,OAAuB;QAEvB,6CAA6C;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,cAAoC,EACpC,OAAuB,EACvB,OAAgB,KAAK;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,mCAAmC;QACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,IAAI,EAAE;YACR,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SACvB;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,UAAkB,EAClB,OAAuB;QAEvB,kCAAkC;QAClC,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,oBAAY,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YACvE,oDAAoD;YACpD,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9C;QAAC,OAAO,EAAE,EAAE;YACX,IACG,EAAY,CAAC,OAAO;gBACrB,oDAAoD,EACpD;gBACA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACvC;iBAAM;gBACL,MAAM,EAAE,CAAC;aACV;SACF;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,SAAiB,EACjB,IAAuB,EACvB,UAAoC,EAAE;QAEtC,OAAO,+CAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEO,MAAM,CAAC,aAAa,CAC1B,cAAoC,EACpC,OAAuB;QAEvB,+BAA+B;QAC/B,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;YAC7B,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;SAClD;QACD,uCAAuC;QACvC,MAAM,IAAI,GAAG,gCAAK,0BAAe,GAAK,cAAc,CAAiB,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAA6B;QAClC,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,qCAAqC;QACrC,IAAI,CAAC,MAAM,mCAAQ,IAAI,CAAC,MAAM,GAAK,OAAO,CAAE,CAAC;QAE7C,4BAA4B;QAC5B,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,gBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACrE;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAE7C,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,2CAAa,QAAQ,EAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YAClB,YAAY;YACZ,IAAI,CAAC,MAAM,GAAG,MAAM,aAAa,CAC/B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;SACH;aAAM;YACL,YAAY;YACZ,IAAI,CAAC,MAAM,GAAG,MAAM,aAAa,CAC/B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;SACH;QACD,yCAAyC;QACzC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QAExB,OAAO;IACT,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,QAAQ,EAAC,CAAC;QACjD,wBAAwB;QACxB,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;CACF;AAxLD,gCAwLC"}
1
+ {"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ function getPropertyMap() {
26
26
  objectKey: "location",
27
27
  modelKey: "item.properties.location",
28
28
  });
29
+ map.push({ objectKey: "metrics", modelKey: "item.properties.metrics" });
29
30
  return map;
30
31
  }
31
32
  exports.getPropertyMap = getPropertyMap;
@@ -1 +1 @@
1
- {"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC;;;;OAIG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AArBD,wCAqBC"}
1
+ {"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC;;;;OAIG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAExE,OAAO,GAAG,CAAC;AACb,CAAC;AAtBD,wCAsBC"}
@@ -16,7 +16,7 @@ const memoizedFnCache = {};
16
16
  * @returns
17
17
  */
18
18
  exports.memoize = (fn) => {
19
- if (!memoizedFnCache[fn.name]) {
19
+ if (!memoizedFnCache[`_${fn.name}`]) {
20
20
  const cache = {};
21
21
  const memoizedFn = (...args) => {
22
22
  const cacheKey = createCacheKeyFromArgs(args);
@@ -27,15 +27,25 @@ exports.memoize = (fn) => {
27
27
  cache[cacheKey] = asyncFn;
28
28
  return asyncFn;
29
29
  };
30
- memoizedFnCache[fn.name] = memoizedFn;
30
+ memoizedFnCache[`_${fn.name}`] = memoizedFn;
31
31
  }
32
- return memoizedFnCache[fn.name];
32
+ return memoizedFnCache[`_${fn.name}`];
33
33
  };
34
34
  /**
35
35
  * Clear the cache of a memoized function
36
+ * If no function name is provided, the entire cache is cleared
37
+ * This is useful for testing, but should not be used in production
36
38
  * @param fn
37
39
  */
38
40
  exports.clearMemoizedCache = (fnName) => {
39
- delete memoizedFnCache[fnName];
41
+ if (!fnName) {
42
+ Object.keys(memoizedFnCache).forEach((key) => {
43
+ delete memoizedFnCache[key];
44
+ });
45
+ return;
46
+ }
47
+ else {
48
+ delete memoizedFnCache[`_${fnName}`];
49
+ }
40
50
  };
41
51
  //# sourceMappingURL=memoize.js.map
@@ -1 +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;AACU,QAAA,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;AACU,QAAA,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;IACnD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC"}
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;AACU,QAAA,OAAO,GAAG,CACrB,EAA0B,EAC1B,EAAE;IACF,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;QACnC,MAAM,KAAK,GAAwB,EAAE,CAAC;QAEtC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAU,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9C,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,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC;KAC7C;IACD,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG,CAAC,MAAe,EAAE,EAAE;IACpD,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO;KACR;SAAM;QACL,OAAO,eAAe,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;KACtC;AACH,CAAC,CAAC"}
@@ -15,7 +15,7 @@ const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
15
15
  async function updateVersionMetadata(id, version, requestOptions) {
16
16
  const prefix = getPrefix_1.getPrefix(version.id);
17
17
  const properties = merge_objects_1.mergeObjects(version, {}, constants_1.VERSION_RESOURCE_PROPERTIES);
18
- await arcgis_rest_portal_1.updateItemResource(Object.assign(Object.assign({}, requestOptions), { id, name: constants_1.VERSION_RESOURCE_NAME, params: { properties }, prefix }));
18
+ await arcgis_rest_portal_1.updateItemResource(Object.assign(Object.assign({}, requestOptions), { id, name: constants_1.VERSION_RESOURCE_NAME, owner: properties.creator, params: { properties }, prefix }));
19
19
  return version;
20
20
  }
21
21
  exports.updateVersionMetadata = updateVersionMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"updateVersionMetadata.js","sourceRoot":"","sources":["../../../src/versioning/updateVersionMetadata.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AAExD,qDAAkD;AAClD,qDAG+B;AAC/B,iEAA8D;AAE9D;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACzC,EAAU,EACV,OAAyB,EACzB,cAAsC;IAEtC,MAAM,MAAM,GAAG,qBAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,4BAAY,CAAC,OAAO,EAAE,EAAE,EAAE,uCAA2B,CAAC,CAAC;IAE1E,MAAM,uCAAkB,iCACnB,cAAc,KACjB,EAAE,EACF,IAAI,EAAE,iCAAqB,EAC3B,MAAM,EAAE,EAAE,UAAU,EAAE,EACtB,MAAM,IACN,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAjBD,sDAiBC"}
1
+ {"version":3,"file":"updateVersionMetadata.js","sourceRoot":"","sources":["../../../src/versioning/updateVersionMetadata.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AAExD,qDAAkD;AAClD,qDAG+B;AAC/B,iEAA8D;AAE9D;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACzC,EAAU,EACV,OAAyB,EACzB,cAAsC;IAEtC,MAAM,MAAM,GAAG,qBAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,4BAAY,CAAC,OAAO,EAAE,EAAE,EAAE,uCAA2B,CAAC,CAAC;IAE1E,MAAM,uCAAkB,iCACnB,cAAc,KACjB,EAAE,EACF,IAAI,EAAE,iCAAqB,EAC3B,KAAK,EAAE,UAAU,CAAC,OAAO,EACzB,MAAM,EAAE,EAAE,UAAU,EAAE,EACtB,MAAM,IACN,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAlBD,sDAkBC"}
@@ -0,0 +1,10 @@
1
+ import { IMetricFeature } from "../types/Metrics";
2
+ /**
3
+ * Adds metrics functions to an entity
4
+ */
5
+ export interface IWithMetricsBehavior {
6
+ /**
7
+ * Resolve a single metric
8
+ */
9
+ resolveMetric(metricId: string): Promise<IMetricFeature[]>;
10
+ }
@@ -0,0 +1,10 @@
1
+ import { IMetric } from "../types/Metrics";
2
+ /**
3
+ * Adds metrics properties to an entity
4
+ */
5
+ export interface IWithMetrics {
6
+ /**
7
+ * Metrics associated with this entity
8
+ */
9
+ metrics?: IMetric[];
10
+ }
@@ -1,5 +1,6 @@
1
1
  import { IQuery } from "../../search/types/IHubCatalog";
2
2
  import { IConfigurationSchema } from "../schemas";
3
+ import { IReference } from "./IReference";
3
4
  /**
4
5
  * The source for a dynamic value. Used to determine how to resolve the value
5
6
  */
@@ -69,13 +70,6 @@ export interface IDynamicPortalSelfDefinition extends IBaseValueDefinition {
69
70
  */
70
71
  sourcePath: string;
71
72
  }
72
- /**
73
- * Interface for a reference to another value in the same object graph.
74
- * Can be used with `getProp(obj, ref.$use)` to get the value of the referenced property
75
- */
76
- export interface IReference {
77
- $use: string;
78
- }
79
73
  /**
80
74
  * Definition for a dynamic value that is resolved from an item query to the portal
81
75
  */
@@ -1,8 +1,9 @@
1
1
  import { IWithSlug, IWithPermissions, IWithCatalog } from "../traits";
2
+ import { IWithMetrics } from "../traits/IWithMetrics";
2
3
  import { IHubItemEntity } from "./IHubItemEntity";
3
4
  /**
4
5
  * DRAFT: Under development and more properties will likely be added
5
6
  * @internal
6
7
  */
7
- export interface IHubInitiative extends IHubItemEntity, IWithSlug, IWithCatalog, IWithPermissions {
8
+ export interface IHubInitiative extends IHubItemEntity, IWithSlug, IWithCatalog, IWithMetrics, IWithPermissions {
8
9
  }
@@ -1,9 +1,10 @@
1
+ import { IWithMetrics } from "../traits/IWithMetrics";
1
2
  import { IWithLayout, IWithPermissions, IWithSlug, IWithCatalog } from "../traits/index";
2
3
  import { IHubItemEntity } from "./IHubItemEntity";
3
4
  /**
4
5
  * Defines the properties of a Hub Project object
5
6
  */
6
- export interface IHubProject extends IHubItemEntity, IWithSlug, IWithCatalog, IWithLayout, IWithPermissions {
7
+ export interface IHubProject extends IHubItemEntity, IWithSlug, IWithCatalog, IWithLayout, IWithMetrics, IWithPermissions {
7
8
  status: PROJECT_STATUSES;
8
9
  }
9
10
  export declare enum PROJECT_STATUSES {
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Interface for a reference to another value in the same object graph.
3
+ * Can be used with `getProp(obj, ref.$use)` to get the value of the referenced property
4
+ */
5
+ export interface IReference {
6
+ $use: string;
7
+ }