@esri/hub-common 12.28.0 → 12.30.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.
- package/dist/esm/core/behaviors/IWithMetricsBehavior.js +1 -0
- package/dist/esm/core/behaviors/IWithMetricsBehavior.js.map +1 -0
- package/dist/esm/core/traits/IWithMetrics.js +1 -0
- package/dist/esm/core/traits/IWithMetrics.js.map +1 -0
- package/dist/esm/core/types/IHubProject.js.map +1 -1
- package/dist/esm/core/types/IReference.js +5 -0
- package/dist/esm/core/types/IReference.js.map +1 -0
- package/dist/esm/core/types/Metrics.js +1 -0
- package/dist/esm/core/types/Metrics.js.map +1 -0
- package/dist/esm/core/types/index.js +2 -0
- package/dist/esm/core/types/index.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiatives/HubInitiative.js +18 -0
- package/dist/esm/initiatives/HubInitiative.js.map +1 -1
- package/dist/esm/initiatives/_internal/getPropertyMap.js +1 -0
- package/dist/esm/initiatives/_internal/getPropertyMap.js.map +1 -1
- package/dist/esm/metrics/aggregateMetrics.js +43 -0
- package/dist/esm/metrics/aggregateMetrics.js.map +1 -0
- package/dist/esm/metrics/getEntityMetrics.js +38 -0
- package/dist/esm/metrics/getEntityMetrics.js.map +1 -0
- package/dist/esm/metrics/index.js +4 -0
- package/dist/esm/metrics/index.js.map +1 -0
- package/dist/esm/metrics/resolveMetric.js +167 -0
- package/dist/esm/metrics/resolveMetric.js.map +1 -0
- package/dist/esm/projects/HubProject.js +18 -0
- package/dist/esm/projects/HubProject.js.map +1 -1
- package/dist/esm/projects/_internal/ProjectBusinessRules.js +9 -1
- package/dist/esm/projects/_internal/ProjectBusinessRules.js.map +1 -1
- package/dist/esm/projects/_internal/getPropertyMap.js +1 -0
- package/dist/esm/projects/_internal/getPropertyMap.js.map +1 -1
- package/dist/esm/utils/memoize.js +14 -4
- package/dist/esm/utils/memoize.js.map +1 -1
- package/dist/node/core/behaviors/IWithMetricsBehavior.js +3 -0
- package/dist/node/core/behaviors/IWithMetricsBehavior.js.map +1 -0
- package/dist/node/core/traits/IWithMetrics.js +3 -0
- package/dist/node/core/traits/IWithMetrics.js.map +1 -0
- package/dist/node/core/types/IHubProject.js.map +1 -1
- package/dist/node/core/types/IReference.js +7 -0
- package/dist/node/core/types/IReference.js.map +1 -0
- package/dist/node/core/types/Metrics.js +3 -0
- package/dist/node/core/types/Metrics.js.map +1 -0
- package/dist/node/core/types/index.js +2 -0
- package/dist/node/core/types/index.js.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiatives/HubInitiative.js +18 -0
- package/dist/node/initiatives/HubInitiative.js.map +1 -1
- package/dist/node/initiatives/_internal/getPropertyMap.js +1 -0
- package/dist/node/initiatives/_internal/getPropertyMap.js.map +1 -1
- package/dist/node/metrics/aggregateMetrics.js +47 -0
- package/dist/node/metrics/aggregateMetrics.js.map +1 -0
- package/dist/node/metrics/getEntityMetrics.js +42 -0
- package/dist/node/metrics/getEntityMetrics.js.map +1 -0
- package/dist/node/metrics/index.js +7 -0
- package/dist/node/metrics/index.js.map +1 -0
- package/dist/node/metrics/resolveMetric.js +171 -0
- package/dist/node/metrics/resolveMetric.js.map +1 -0
- package/dist/node/projects/HubProject.js +18 -0
- package/dist/node/projects/HubProject.js.map +1 -1
- package/dist/node/projects/_internal/ProjectBusinessRules.js +9 -1
- package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -1
- package/dist/node/projects/_internal/getPropertyMap.js +1 -0
- package/dist/node/projects/_internal/getPropertyMap.js.map +1 -1
- package/dist/node/utils/memoize.js +14 -4
- package/dist/node/utils/memoize.js.map +1 -1
- package/dist/types/core/behaviors/IWithMetricsBehavior.d.ts +10 -0
- package/dist/types/core/traits/IWithMetrics.d.ts +10 -0
- package/dist/types/core/types/DynamicValues.d.ts +1 -7
- package/dist/types/core/types/IHubInitiative.d.ts +2 -1
- package/dist/types/core/types/IHubProject.d.ts +2 -1
- package/dist/types/core/types/IReference.d.ts +7 -0
- package/dist/types/core/types/Metrics.d.ts +159 -0
- package/dist/types/core/types/index.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/initiatives/HubInitiative.d.ts +9 -2
- package/dist/types/metrics/aggregateMetrics.d.ts +10 -0
- package/dist/types/metrics/getEntityMetrics.d.ts +10 -0
- package/dist/types/metrics/index.d.ts +3 -0
- package/dist/types/metrics/resolveMetric.d.ts +11 -0
- package/dist/types/permissions/types/Permission.d.ts +1 -1
- package/dist/types/projects/HubProject.d.ts +9 -2
- package/dist/types/projects/_internal/ProjectBusinessRules.d.ts +1 -1
- package/dist/types/utils/memoize.d.ts +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=IWithMetricsBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IWithMetricsBehavior.js","sourceRoot":"","sources":["../../../../src/core/behaviors/IWithMetricsBehavior.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=IWithMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IWithMetrics.js","sourceRoot":"","sources":["../../../../src/core/traits/IWithMetrics.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IHubProject.js","sourceRoot":"","sources":["../../../../src/core/types/IHubProject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IHubProject.js","sourceRoot":"","sources":["../../../../src/core/types/IHubProject.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,6CAAyB,CAAA;IACzB,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IReference.js","sourceRoot":"","sources":["../../../../src/core/types/IReference.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=Metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../../../src/core/types/Metrics.ts"],"names":[],"mappings":""}
|
|
@@ -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;AACxB,cAAc,iBAAiB,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;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -34,6 +34,7 @@ export * from "./users";
|
|
|
34
34
|
export * from "./util";
|
|
35
35
|
export * from "./utils";
|
|
36
36
|
export * from "./versioning";
|
|
37
|
+
export * from "./metrics";
|
|
37
38
|
// Unclear _why_ this needs to be here vs in core/index.ts
|
|
38
39
|
// but if it's not here, the function is not exported
|
|
39
40
|
export * from "./core/updateHubEntity";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAChB,0BAA0B;AAE1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,0DAA0D;AAC1D,qDAAqD;AACrD,cAAc,wBAAwB,CAAC;AAEvC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;gBACgB;AAChB,0BAA0B;AAE1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,0DAA0D;AAC1D,qDAAqD;AACrD,cAAc,wBAAwB,CAAC;AAEvC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC"}
|
|
@@ -3,6 +3,8 @@ import { getEntityEditorSchemas } from "../core/schemas/getEntityEditorSchemas";
|
|
|
3
3
|
import { createInitiative, deleteInitiative, fetchInitiative, updateInitiative, } from "./HubInitiatives";
|
|
4
4
|
import { Catalog } from "../search";
|
|
5
5
|
import { HubItemEntity } from "../core/HubItemEntity";
|
|
6
|
+
import { getEntityMetrics } from "../metrics/getEntityMetrics";
|
|
7
|
+
import { resolveMetric } from "../metrics/resolveMetric";
|
|
6
8
|
/**
|
|
7
9
|
* Hub Initiative Class
|
|
8
10
|
*/
|
|
@@ -146,5 +148,21 @@ export class HubInitiative extends HubItemEntity {
|
|
|
146
148
|
// Delegate to module fn
|
|
147
149
|
await deleteInitiative(this.entity.id, this.context.userRequestOptions);
|
|
148
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Resolve a single metric for this metric
|
|
153
|
+
* @param metricId
|
|
154
|
+
* @returns
|
|
155
|
+
*/
|
|
156
|
+
resolveMetric(metricId) {
|
|
157
|
+
const metrics = getEntityMetrics(this.entity);
|
|
158
|
+
const metric = metrics.find((m) => m.id === metricId);
|
|
159
|
+
// TODO: Add caching
|
|
160
|
+
if (metric) {
|
|
161
|
+
return resolveMetric(metric, this.context);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
throw new Error(`Metric ${metricId} not found.`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
149
167
|
}
|
|
150
168
|
//# sourceMappingURL=HubInitiative.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export function getPropertyMap() {
|
|
|
17
17
|
});
|
|
18
18
|
map.push({ objectKey: "contacts", modelKey: "data.contacts" });
|
|
19
19
|
map.push({ objectKey: "timeline", modelKey: "data.timeline" });
|
|
20
|
+
map.push({ objectKey: "metrics", modelKey: "item.properties.metrics" });
|
|
20
21
|
return map;
|
|
21
22
|
}
|
|
22
23
|
//# sourceMappingURL=getPropertyMap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,kBAAkB,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;
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,kBAAkB,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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given an array of metrics, aggregate them using the specified aggregation
|
|
3
|
+
* Consumer must be aware of the type of the metrics and pass an appropriate aggregation
|
|
4
|
+
* @param metrics
|
|
5
|
+
* @param aggregation
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export function aggregateMetrics(metrics, field, aggregation) {
|
|
9
|
+
// Get the values from the metrics, we use any so
|
|
10
|
+
// we can keep the rest of the code simpler
|
|
11
|
+
const values = metrics.map((m) => m.attributes[field]);
|
|
12
|
+
let aggregate = null;
|
|
13
|
+
switch (aggregation) {
|
|
14
|
+
case "sum":
|
|
15
|
+
aggregate = values.reduce((acc, v) => acc + v, 0);
|
|
16
|
+
break;
|
|
17
|
+
case "count":
|
|
18
|
+
aggregate = values.length;
|
|
19
|
+
break;
|
|
20
|
+
case "avg":
|
|
21
|
+
aggregate = values.reduce((acc, v) => acc + v, 0) / values.length;
|
|
22
|
+
break;
|
|
23
|
+
case "min":
|
|
24
|
+
aggregate = values.reduce((acc, v) => Math.min(acc, v), Number.MAX_VALUE);
|
|
25
|
+
break;
|
|
26
|
+
case "max":
|
|
27
|
+
aggregate = values.reduce((acc, v) => Math.max(acc, v), Number.MIN_VALUE);
|
|
28
|
+
break;
|
|
29
|
+
case "countByValue": // count for each value as a hash {value: string, count: number}
|
|
30
|
+
aggregate = values.reduce((acc, v) => {
|
|
31
|
+
if (acc[v]) {
|
|
32
|
+
acc[v] += 1;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
acc[v] = 1;
|
|
36
|
+
}
|
|
37
|
+
return acc;
|
|
38
|
+
}, {});
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
return aggregate;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=aggregateMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregateMetrics.js","sourceRoot":"","sources":["../../../src/metrics/aggregateMetrics.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getProp } from "../objects/get-prop";
|
|
2
|
+
import { cloneObject } from "../util";
|
|
3
|
+
/**
|
|
4
|
+
* Get the metrics from an entity applying some pre-processing
|
|
5
|
+
* and adding source info.
|
|
6
|
+
* @param entity
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export function getEntityMetrics(entity) {
|
|
10
|
+
// Create the source info that will attach into each metric
|
|
11
|
+
const sourceInfo = {
|
|
12
|
+
id: entity.id,
|
|
13
|
+
name: entity.name,
|
|
14
|
+
type: entity.type,
|
|
15
|
+
};
|
|
16
|
+
const entityMetrics = entity.metrics || [];
|
|
17
|
+
const metrics = entityMetrics.map((metric) => {
|
|
18
|
+
// assign the source info to the metric
|
|
19
|
+
metric.entityInfo = Object.assign({}, sourceInfo);
|
|
20
|
+
// at this point the source references should have been resolved
|
|
21
|
+
// so we can cast the source to a MetricSource
|
|
22
|
+
const source = metric.source;
|
|
23
|
+
// If the metric is an item query and the catalog key is defined
|
|
24
|
+
// get the scope from the specified collection in the catalog.
|
|
25
|
+
if (source.type === "item-query" && source.collectionKey) {
|
|
26
|
+
const key = source.collectionKey;
|
|
27
|
+
const query = getProp(entity.catalog, `collections[findBy(key,'${key}')].scope`);
|
|
28
|
+
if (query) {
|
|
29
|
+
source.scope = cloneObject(query);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// reassign the source with updates
|
|
33
|
+
metric.source = source;
|
|
34
|
+
return metric;
|
|
35
|
+
});
|
|
36
|
+
return metrics;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=getEntityMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEntityMetrics.js","sourceRoot":"","sources":["../../../src/metrics/getEntityMetrics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,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,OAAO,CACnB,MAAM,CAAC,OAAO,EACd,2BAA2B,GAAG,WAAW,CAC1C,CAAC;YAEF,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,KAAK,GAAG,WAAW,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { queryFeatures } from "@esri/arcgis-rest-feature-layer";
|
|
2
|
+
import { getProp } from "../objects/get-prop";
|
|
3
|
+
import { combineQueries } from "../search/_internal/combineQueries";
|
|
4
|
+
import { memoize } from "../utils/memoize";
|
|
5
|
+
import { portalSearchItemsAsItems } from "../search/_internal/portalSearchItems";
|
|
6
|
+
/**
|
|
7
|
+
* Resolve a Metric into an array of `IMetricFeature` objects.
|
|
8
|
+
* This implementation is similar to DynamicValues, but is just different
|
|
9
|
+
* enough to warrant a separate implementation.
|
|
10
|
+
* @param metric
|
|
11
|
+
* @param context
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export async function resolveMetric(metric, context) {
|
|
15
|
+
// At this point the source references should have been resolved
|
|
16
|
+
// so we can force case to a MetricSource and switch on the type
|
|
17
|
+
const source = metric.source;
|
|
18
|
+
// call the appropriate resolver
|
|
19
|
+
switch (source.type) {
|
|
20
|
+
case "static-value":
|
|
21
|
+
return resolveStaticValueMetric(metric, context);
|
|
22
|
+
case "service-query":
|
|
23
|
+
return resolveServiceQueryMetric(metric, context);
|
|
24
|
+
case "item-query":
|
|
25
|
+
return resolveItemQueryMetric(metric, context);
|
|
26
|
+
default:
|
|
27
|
+
throw new Error(`Unknown metric type passed in.`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a static value metric
|
|
32
|
+
* @param metric
|
|
33
|
+
* @param context
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
function resolveStaticValueMetric(metric, context) {
|
|
37
|
+
const source = metric.source;
|
|
38
|
+
// cut off the parent identifier from the metric id and use that
|
|
39
|
+
// as the output field name
|
|
40
|
+
const fieldName = metric.id.split("_")[0];
|
|
41
|
+
const result = {
|
|
42
|
+
attributes: {
|
|
43
|
+
id: metric.entityInfo.id,
|
|
44
|
+
name: metric.entityInfo.name,
|
|
45
|
+
type: metric.entityInfo.type,
|
|
46
|
+
[fieldName]: source.value,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
return Promise.resolve([result]);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Exequte a query against a service and return the aggregate value
|
|
53
|
+
* in an `IMetricFeature`
|
|
54
|
+
* @param metric
|
|
55
|
+
* @param context
|
|
56
|
+
* @returns
|
|
57
|
+
*/
|
|
58
|
+
async function resolveServiceQueryMetric(metric, context) {
|
|
59
|
+
const source = metric.source;
|
|
60
|
+
// cut off the parent identifier from the metric id and use that
|
|
61
|
+
// as the output field name
|
|
62
|
+
const fieldName = metric.id.split("_")[0];
|
|
63
|
+
// If no where is provided, default to "1=1"
|
|
64
|
+
source.where = source.where || "1=1";
|
|
65
|
+
// Construct the stats definition
|
|
66
|
+
const statsDef = {
|
|
67
|
+
onStatisticField: source.field,
|
|
68
|
+
statisticType: source.statistic,
|
|
69
|
+
outStatisticFieldName: source.field,
|
|
70
|
+
};
|
|
71
|
+
// construct the url by appending the layer id if provided
|
|
72
|
+
const serviceUrl = source.serviceUrl + `/${source.layerId}`;
|
|
73
|
+
// Execute the query
|
|
74
|
+
const response = await queryFeatures({
|
|
75
|
+
url: serviceUrl,
|
|
76
|
+
where: source.where,
|
|
77
|
+
f: "json",
|
|
78
|
+
outStatistics: [statsDef],
|
|
79
|
+
authentication: context.requestOptions.authentication,
|
|
80
|
+
});
|
|
81
|
+
// TODO: If we enable more stats, we will need to update
|
|
82
|
+
// how we fetch the values out of the response
|
|
83
|
+
const aggregate = getProp(response, `features[0].attributes.${source.field}`);
|
|
84
|
+
const result = {
|
|
85
|
+
attributes: {
|
|
86
|
+
id: metric.entityInfo.id,
|
|
87
|
+
name: metric.entityInfo.name,
|
|
88
|
+
type: metric.entityInfo.type,
|
|
89
|
+
[fieldName]: aggregate,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
return [result];
|
|
93
|
+
}
|
|
94
|
+
async function resolveItemQueryMetric(metric, context) {
|
|
95
|
+
const source = metric.source;
|
|
96
|
+
// cut off the parent identifier from the metric id and use that
|
|
97
|
+
// as the output field name
|
|
98
|
+
const fieldName = metric.id.split("_")[0];
|
|
99
|
+
// create the query from the source properties
|
|
100
|
+
const predicate = {
|
|
101
|
+
typekeywords: source.keywords,
|
|
102
|
+
};
|
|
103
|
+
if (source.itemTypes) {
|
|
104
|
+
predicate.type = source.itemTypes;
|
|
105
|
+
}
|
|
106
|
+
const baseQuery = {
|
|
107
|
+
targetEntity: "item",
|
|
108
|
+
filters: [
|
|
109
|
+
{
|
|
110
|
+
operation: "AND",
|
|
111
|
+
predicates: [predicate],
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
};
|
|
115
|
+
const scope = source.scope || {
|
|
116
|
+
targetEntity: "item",
|
|
117
|
+
filters: [],
|
|
118
|
+
};
|
|
119
|
+
const combined = combineQueries([baseQuery, scope]);
|
|
120
|
+
const opts = {
|
|
121
|
+
requestOptions: context.hubRequestOptions,
|
|
122
|
+
num: 100,
|
|
123
|
+
};
|
|
124
|
+
// create/get memoized version of portalSearchItemsAsItems
|
|
125
|
+
const memoizedPortalSearch = memoize(portalSearchItemsAsItems);
|
|
126
|
+
// Execute the query
|
|
127
|
+
const response = await memoizedPortalSearch(combined, opts);
|
|
128
|
+
// This next section is all promise based so that a dynamic value
|
|
129
|
+
// can itself be a dynamic value definition, which then needs to be
|
|
130
|
+
// resolved.
|
|
131
|
+
const promises = await response.results.reduce(async (valsPromise, item) => {
|
|
132
|
+
const vals = await valsPromise;
|
|
133
|
+
const valueFromItem = getProp(item, source.propertyPath);
|
|
134
|
+
const result = {
|
|
135
|
+
attributes: {
|
|
136
|
+
id: item.id,
|
|
137
|
+
name: item.title,
|
|
138
|
+
type: item.type,
|
|
139
|
+
[fieldName]: null,
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
// Handle case where value is not found...
|
|
143
|
+
// e.g. the project exists but the metric is not defined yet
|
|
144
|
+
if (valueFromItem) {
|
|
145
|
+
// This block is needed if we are just plucking a value from the item
|
|
146
|
+
// e.g. item.views or item.access
|
|
147
|
+
if (typeof valueFromItem === "string" ||
|
|
148
|
+
typeof valueFromItem === "number") {
|
|
149
|
+
result.attributes[fieldName] = valueFromItem;
|
|
150
|
+
vals.push(Promise.resolve(result));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// valueFromItem is itself a metric so we call resolveDynamicValues again
|
|
154
|
+
// attach in the entity info, so it's present for the next level of recursion
|
|
155
|
+
valueFromItem.entityInfo = result.attributes;
|
|
156
|
+
const vResult = await resolveMetric(valueFromItem, context);
|
|
157
|
+
vals.push(...vResult);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return vals;
|
|
161
|
+
}, Promise.resolve([]));
|
|
162
|
+
// let everything resolve
|
|
163
|
+
const outputs = (await Promise.all(promises));
|
|
164
|
+
// return the results
|
|
165
|
+
return outputs;
|
|
166
|
+
}
|
|
167
|
+
//# 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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"}
|
|
@@ -4,6 +4,8 @@ import { Catalog } from "../search";
|
|
|
4
4
|
import { HubItemEntity } from "../core/HubItemEntity";
|
|
5
5
|
// NOTE: this could be lazy-loaded just like the CUD functions
|
|
6
6
|
import { fetchProject } from "./fetch";
|
|
7
|
+
import { getEntityMetrics } from "../metrics/getEntityMetrics";
|
|
8
|
+
import { resolveMetric } from "../metrics/resolveMetric";
|
|
7
9
|
/**
|
|
8
10
|
* Hub Project Class
|
|
9
11
|
*/
|
|
@@ -148,5 +150,21 @@ export class HubProject extends HubItemEntity {
|
|
|
148
150
|
// Delegate to module fn
|
|
149
151
|
await deleteProject(this.entity.id, this.context.userRequestOptions);
|
|
150
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Resolve a single metric for this metric
|
|
155
|
+
* @param metricId
|
|
156
|
+
* @returns
|
|
157
|
+
*/
|
|
158
|
+
resolveMetric(metricId) {
|
|
159
|
+
const metrics = getEntityMetrics(this.entity);
|
|
160
|
+
const metric = metrics.find((m) => m.id === metricId);
|
|
161
|
+
// TODO: add caching
|
|
162
|
+
if (metric) {
|
|
163
|
+
return resolveMetric(metric, this.context);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
throw new Error(`Metric ${metricId} not found.`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
151
169
|
}
|
|
152
170
|
//# sourceMappingURL=HubProject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export const ProjectCapabilityPermissions = [
|
|
|
29
29
|
{
|
|
30
30
|
entity: "project",
|
|
31
31
|
capability: "settings",
|
|
32
|
-
permissions: ["hub:project:
|
|
32
|
+
permissions: ["hub:project:owner"],
|
|
33
33
|
},
|
|
34
34
|
];
|
|
35
35
|
/**
|
|
@@ -42,6 +42,7 @@ export const ProjectPermissions = [
|
|
|
42
42
|
"hub:project:delete",
|
|
43
43
|
"hub:project:edit",
|
|
44
44
|
"hub:project:view",
|
|
45
|
+
"hub:project:owner",
|
|
45
46
|
];
|
|
46
47
|
/**
|
|
47
48
|
* Project permission policies
|
|
@@ -75,5 +76,12 @@ export const ProjectPermissionPolicies = [
|
|
|
75
76
|
entityOwner: true,
|
|
76
77
|
licenses: ["hub-premium"],
|
|
77
78
|
},
|
|
79
|
+
{
|
|
80
|
+
permission: "hub:project:owner",
|
|
81
|
+
authenticated: true,
|
|
82
|
+
subsystems: ["projects"],
|
|
83
|
+
entityOwner: true,
|
|
84
|
+
licenses: ["hub-premium"],
|
|
85
|
+
},
|
|
78
86
|
];
|
|
79
87
|
//# sourceMappingURL=ProjectBusinessRules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAuB;IAC5D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,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,
|
|
1
|
+
{"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAuB;IAC5D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,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;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;CACX,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,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,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_internal/getPropertyMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,kBAAkB,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;
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_internal/getPropertyMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AAEH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,kBAAkB,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"}
|
|
@@ -13,7 +13,7 @@ const memoizedFnCache = {};
|
|
|
13
13
|
* @returns
|
|
14
14
|
*/
|
|
15
15
|
export const memoize = (fn) => {
|
|
16
|
-
if (!memoizedFnCache[fn.name]) {
|
|
16
|
+
if (!memoizedFnCache[`_${fn.name}`]) {
|
|
17
17
|
const cache = {};
|
|
18
18
|
const memoizedFn = (...args) => {
|
|
19
19
|
const cacheKey = createCacheKeyFromArgs(args);
|
|
@@ -24,15 +24,25 @@ export const memoize = (fn) => {
|
|
|
24
24
|
cache[cacheKey] = asyncFn;
|
|
25
25
|
return asyncFn;
|
|
26
26
|
};
|
|
27
|
-
memoizedFnCache[fn.name] = memoizedFn;
|
|
27
|
+
memoizedFnCache[`_${fn.name}`] = memoizedFn;
|
|
28
28
|
}
|
|
29
|
-
return memoizedFnCache[fn.name];
|
|
29
|
+
return memoizedFnCache[`_${fn.name}`];
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Clear the cache of a memoized function
|
|
33
|
+
* If no function name is provided, the entire cache is cleared
|
|
34
|
+
* This is useful for testing, but should not be used in production
|
|
33
35
|
* @param fn
|
|
34
36
|
*/
|
|
35
37
|
export const clearMemoizedCache = (fnName) => {
|
|
36
|
-
|
|
38
|
+
if (!fnName) {
|
|
39
|
+
Object.keys(memoizedFnCache).forEach((key) => {
|
|
40
|
+
delete memoizedFnCache[key];
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
delete memoizedFnCache[`_${fnName}`];
|
|
46
|
+
}
|
|
37
47
|
};
|
|
38
48
|
//# 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;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,EAA0B,EAC1B,EAAE;IACF,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;
|
|
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,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;AACH,MAAM,CAAC,MAAM,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IWithMetricsBehavior.js","sourceRoot":"","sources":["../../../../src/core/behaviors/IWithMetricsBehavior.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IWithMetrics.js","sourceRoot":"","sources":["../../../../src/core/traits/IWithMetrics.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IHubProject.js","sourceRoot":"","sources":["../../../../src/core/types/IHubProject.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"IHubProject.js","sourceRoot":"","sources":["../../../../src/core/types/IHubProject.ts"],"names":[],"mappings":";;;AAsBA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,6CAAyB,CAAA;IACzB,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for a reference to another value in the same object graph.
|
|
4
|
+
* Can be used with `getProp(obj, ref.$use)` to get the value of the referenced property
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
//# sourceMappingURL=IReference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IReference.js","sourceRoot":"","sources":["../../../../src/core/types/IReference.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../../../src/core/types/Metrics.ts"],"names":[],"mappings":""}
|
|
@@ -24,4 +24,6 @@ tslib_1.__exportStar(require("./IServerEnrichments"), exports);
|
|
|
24
24
|
tslib_1.__exportStar(require("./ISystemStatus"), exports);
|
|
25
25
|
tslib_1.__exportStar(require("./types"), exports);
|
|
26
26
|
tslib_1.__exportStar(require("./DynamicValues"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./IReference"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./Metrics"), exports);
|
|
27
29
|
//# sourceMappingURL=index.js.map
|