forked from off-topic/apps.apple.com
init commit
This commit is contained in:
16
node_modules/@jet/engine/lib/metrics/aggregating/index.js
generated
vendored
Normal file
16
node_modules/@jet/engine/lib/metrics/aggregating/index.js
generated
vendored
Normal file
@@ -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);
|
||||
45
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-aggregator.js
generated
vendored
Normal file
45
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-aggregator.js
generated
vendored
Normal file
@@ -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;
|
||||
15
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-builder.js
generated
vendored
Normal file
15
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-builder.js
generated
vendored
Normal file
@@ -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;
|
||||
2
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-context.js
generated
vendored
Normal file
2
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-context.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
2
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-provider.js
generated
vendored
Normal file
2
node_modules/@jet/engine/lib/metrics/aggregating/metrics-fields-provider.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
13
node_modules/@jet/engine/lib/metrics/field-providers/index.js
generated
vendored
Normal file
13
node_modules/@jet/engine/lib/metrics/field-providers/index.js
generated
vendored
Normal file
@@ -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);
|
||||
19
node_modules/@jet/engine/lib/metrics/field-providers/page-metrics-fields-provider.js
generated
vendored
Normal file
19
node_modules/@jet/engine/lib/metrics/field-providers/page-metrics-fields-provider.js
generated
vendored
Normal file
@@ -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;
|
||||
18
node_modules/@jet/engine/lib/metrics/index.js
generated
vendored
Normal file
18
node_modules/@jet/engine/lib/metrics/index.js
generated
vendored
Normal file
@@ -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);
|
||||
13
node_modules/@jet/engine/lib/metrics/linting/index.js
generated
vendored
Normal file
13
node_modules/@jet/engine/lib/metrics/linting/index.js
generated
vendored
Normal file
@@ -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);
|
||||
2
node_modules/@jet/engine/lib/metrics/linting/metrics-event-linter.js
generated
vendored
Normal file
2
node_modules/@jet/engine/lib/metrics/linting/metrics-event-linter.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
34
node_modules/@jet/engine/lib/metrics/metrics-pipeline.js
generated
vendored
Normal file
34
node_modules/@jet/engine/lib/metrics/metrics-pipeline.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MetricsPipeline = exports.FlushBehavior = void 0;
|
||||
const metrics_fields_builder_1 = require("./aggregating/metrics-fields-builder");
|
||||
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) {
|
||||
void this.recorder.flush();
|
||||
}
|
||||
return lintedEvent;
|
||||
}
|
||||
}
|
||||
exports.MetricsPipeline = MetricsPipeline;
|
||||
13
node_modules/@jet/engine/lib/metrics/presenters/index.js
generated
vendored
Normal file
13
node_modules/@jet/engine/lib/metrics/presenters/index.js
generated
vendored
Normal file
@@ -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);
|
||||
52
node_modules/@jet/engine/lib/metrics/presenters/page-metrics-presenter.js
generated
vendored
Normal file
52
node_modules/@jet/engine/lib/metrics/presenters/page-metrics-presenter.js
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
"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) {
|
||||
void 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;
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
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;
|
||||
14
node_modules/@jet/engine/lib/metrics/recording/index.js
generated
vendored
Normal file
14
node_modules/@jet/engine/lib/metrics/recording/index.js
generated
vendored
Normal file
@@ -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);
|
||||
13
node_modules/@jet/engine/lib/metrics/recording/logging-event-recorder.js
generated
vendored
Normal file
13
node_modules/@jet/engine/lib/metrics/recording/logging-event-recorder.js
generated
vendored
Normal file
@@ -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;
|
||||
2
node_modules/@jet/engine/lib/metrics/recording/metrics-event-recorder.js
generated
vendored
Normal file
2
node_modules/@jet/engine/lib/metrics/recording/metrics-event-recorder.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
Reference in New Issue
Block a user