summaryrefslogtreecommitdiff
path: root/shared/metrics-8/node_modules/@jet/engine/lib/metrics
diff options
context:
space:
mode:
Diffstat (limited to 'shared/metrics-8/node_modules/@jet/engine/lib/metrics')
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/index.js16
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-aggregator.js45
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-builder.js15
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-context.js2
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-provider.js2
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/index.js13
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/page-metrics-fields-provider.js19
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/index.js18
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/index.js13
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/metrics-event-linter.js2
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js35
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/index.js13
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/page-metrics-presenter.js51
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/index.js14
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/logging-event-recorder.js13
-rw-r--r--shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/metrics-event-recorder.js2
16 files changed, 273 insertions, 0 deletions
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/index.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/index.js
new file mode 100644
index 0000000..e8d9f32
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/index.js
@@ -0,0 +1,16 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./metrics-fields-aggregator"), exports);
+__exportStar(require("./metrics-fields-builder"), exports);
+__exportStar(require("./metrics-fields-context"), exports);
+__exportStar(require("./metrics-fields-provider"), exports);
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-aggregator.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-aggregator.js
new file mode 100644
index 0000000..b53d7a9
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-aggregator.js
@@ -0,0 +1,45 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.MetricsFieldsAggregator = void 0;
+const optional_1 = require("@jet/environment/types/optional");
+const page_metrics_fields_provider_1 = require("../field-providers/page-metrics-fields-provider");
+class MetricsFieldsAggregator {
+ constructor() {
+ this.optInProviders = new Map();
+ this.optOutProviders = new Map();
+ }
+ static makeDefaultAggregator() {
+ const aggregator = new MetricsFieldsAggregator();
+ aggregator.addOptInProvider(new page_metrics_fields_provider_1.PageMetricsFieldsProvider(), "pageFields");
+ return aggregator;
+ }
+ addOptInProvider(provider, request) {
+ this.optInProviders.set(request, provider);
+ }
+ addOptOutProvider(provider, request) {
+ this.optOutProviders.set(request, provider);
+ }
+ removeOptInProvider(request) {
+ this.optInProviders.delete(request);
+ }
+ removeOptOutProvider(request) {
+ this.optOutProviders.delete(request);
+ }
+ addMetricsFields(options) {
+ options.including.forEach((request) => {
+ const provider = this.optInProviders.get(request);
+ if (optional_1.isNothing(provider)) {
+ // No provider registered
+ return;
+ }
+ provider.addMetricsFields(options.builder, options.context);
+ });
+ this.optOutProviders.forEach((provider, request) => {
+ if (optional_1.isNothing(provider) || options.excluding.includes(request)) {
+ return;
+ }
+ provider.addMetricsFields(options.builder, options.context);
+ });
+ }
+}
+exports.MetricsFieldsAggregator = MetricsFieldsAggregator;
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-builder.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-builder.js
new file mode 100644
index 0000000..d00e47b
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-builder.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SimpleMetricsFieldsBuilder = void 0;
+class SimpleMetricsFieldsBuilder {
+ constructor(baseFields) {
+ this.fields = baseFields;
+ }
+ addValue(value, field) {
+ this.fields[field] = value;
+ }
+ get allMetricsFields() {
+ return this.fields;
+ }
+}
+exports.SimpleMetricsFieldsBuilder = SimpleMetricsFieldsBuilder;
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-context.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-context.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-context.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-provider.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-provider.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-provider.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/index.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/index.js
new file mode 100644
index 0000000..250f6dc
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/index.js
@@ -0,0 +1,13 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./page-metrics-fields-provider"), exports);
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/page-metrics-fields-provider.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/page-metrics-fields-provider.js
new file mode 100644
index 0000000..67e0f53
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/field-providers/page-metrics-fields-provider.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.PageMetricsFieldsProvider = void 0;
+const optional_1 = require("@jet/environment/types/optional");
+class PageMetricsFieldsProvider {
+ addMetricsFields(builder, context) {
+ const pageFields = context.pageFields;
+ if (optional_1.isNothing(pageFields)) {
+ // No page fields
+ return;
+ }
+ for (const field in pageFields) {
+ if (Object.prototype.hasOwnProperty.call(pageFields, field)) {
+ builder.addValue(pageFields[field], field);
+ }
+ }
+ }
+}
+exports.PageMetricsFieldsProvider = PageMetricsFieldsProvider;
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/index.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/index.js
new file mode 100644
index 0000000..469a960
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/index.js
@@ -0,0 +1,18 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./aggregating"), exports);
+__exportStar(require("./field-providers"), exports);
+__exportStar(require("./linting"), exports);
+__exportStar(require("./presenters"), exports);
+__exportStar(require("./metrics-pipeline"), exports);
+__exportStar(require("./recording"), exports);
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/index.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/index.js
new file mode 100644
index 0000000..7fb1fcf
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/index.js
@@ -0,0 +1,13 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./metrics-event-linter"), exports);
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/metrics-event-linter.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/metrics-event-linter.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/linting/metrics-event-linter.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js
new file mode 100644
index 0000000..ea32424
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js
@@ -0,0 +1,35 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.MetricsPipeline = exports.FlushBehavior = void 0;
+const metrics_fields_builder_1 = require("./aggregating/metrics-fields-builder");
+// eslint-disable-next-line @typescript-eslint/no-shadow
+var FlushBehavior;
+(function (FlushBehavior) {
+ FlushBehavior[FlushBehavior["automatic"] = 0] = "automatic";
+ FlushBehavior[FlushBehavior["never"] = 1] = "never";
+})(FlushBehavior = exports.FlushBehavior || (exports.FlushBehavior = {}));
+class MetricsPipeline {
+ constructor(options) {
+ var _a;
+ this.aggregator = options.aggregator;
+ this.linter = options.linter;
+ this.recorder = options.recorder;
+ this.flushBehavior = (_a = options.flushBehavior) !== null && _a !== void 0 ? _a : FlushBehavior.automatic;
+ }
+ async process(data, context) {
+ const builder = new metrics_fields_builder_1.SimpleMetricsFieldsBuilder(data.fields);
+ this.aggregator.addMetricsFields({
+ including: data.includingFields,
+ excluding: data.excludingFields,
+ builder: builder,
+ context: context,
+ });
+ const lintedEvent = await this.linter.processEvent(builder.allMetricsFields);
+ this.recorder.record(lintedEvent, data.topic);
+ if (data.shouldFlush && this.flushBehavior === FlushBehavior.automatic) {
+ this.recorder.flush();
+ }
+ return lintedEvent;
+ }
+}
+exports.MetricsPipeline = MetricsPipeline;
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/index.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/index.js
new file mode 100644
index 0000000..56e55cf
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/index.js
@@ -0,0 +1,13 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./page-metrics-presenter"), exports);
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/page-metrics-presenter.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/page-metrics-presenter.js
new file mode 100644
index 0000000..c04bbd6
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/presenters/page-metrics-presenter.js
@@ -0,0 +1,51 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.PageMetricsPresenter = void 0;
+const optional_1 = require("@jet/environment/types/optional");
+class PageMetricsPresenter {
+ constructor(metricsPipeline) {
+ this.metricsPipeline = metricsPipeline;
+ this.isViewAppeared = false;
+ }
+ set pageMetrics(pageMetrics) {
+ this.pageMetricsStore = pageMetrics;
+ if (optional_1.isSome(pageMetrics) && this.isViewAppeared) {
+ this.processInstructions("pageEnter");
+ }
+ }
+ get pageMetrics() {
+ return this.pageMetricsStore;
+ }
+ async processInstructions(invocationPoint) {
+ var _a, _b, _c;
+ if (optional_1.isNothing(this.pageMetrics)) {
+ return;
+ }
+ // istanbul ignore next
+ const invocationContext = {
+ customMetrics: (_a = this.baseContext) === null || _a === void 0 ? void 0 : _a.customMetrics,
+ pageFields: {
+ ...(_b = this.baseContext) === null || _b === void 0 ? void 0 : _b.pageFields,
+ ...(_c = this.pageMetrics) === null || _c === void 0 ? void 0 : _c.pageFields,
+ },
+ };
+ await Promise.all(this.pageMetrics.instructions.map((instruction) => {
+ const { invocationPoints } = instruction;
+ if (invocationPoints.length === 0 || !invocationPoints.includes(invocationPoint)) {
+ return;
+ }
+ return this.metricsPipeline.process(instruction.data, invocationContext);
+ }));
+ }
+ async didEnterPage() {
+ this.isViewAppeared = true;
+ if (optional_1.isSome(this.pageMetrics)) {
+ await this.processInstructions("pageEnter");
+ }
+ }
+ async didLeavePage() {
+ await this.processInstructions("pageExit");
+ this.isViewAppeared = false;
+ }
+}
+exports.PageMetricsPresenter = PageMetricsPresenter;
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/index.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/index.js
new file mode 100644
index 0000000..dad3b1c
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/index.js
@@ -0,0 +1,14 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./logging-event-recorder"), exports);
+__exportStar(require("./metrics-event-recorder"), exports);
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/logging-event-recorder.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/logging-event-recorder.js
new file mode 100644
index 0000000..0e5ba43
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/logging-event-recorder.js
@@ -0,0 +1,13 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LoggingEventRecorder = void 0;
+class LoggingEventRecorder {
+ record(event) {
+ console.log(`Record Event [${String(event.fields.eventType)}]`, event);
+ }
+ async flush() {
+ console.log("Flushing");
+ return 0;
+ }
+}
+exports.LoggingEventRecorder = LoggingEventRecorder;
diff --git a/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/metrics-event-recorder.js b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/metrics-event-recorder.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/shared/metrics-8/node_modules/@jet/engine/lib/metrics/recording/metrics-event-recorder.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });