#!/usr/bin/env node "use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // ../node_modules/@emprespresso/pengueno/dist/leftpadesque/prepend.js var require_prepend = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/leftpadesque/prepend.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.prependWith = void 0; var prependWith = (arr, prep) => Array(arr.length * 2).fill(0).map((_, i) => i % 2 === 0).map((isPrep, i) => isPrep ? prep : arr[Math.floor(i / 2)]); exports2.prependWith = prependWith; } }); // ../node_modules/@emprespresso/pengueno/dist/leftpadesque/debug.js var require_debug = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/leftpadesque/debug.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.isDebug = exports2.isProd = void 0; var _hasEnv = true; var _env = _hasEnv && (process.env.ENVIRONMENT ?? "").toLowerCase().includes("prod") ? "production" : "development"; var isProd = () => _env === "production"; exports2.isProd = isProd; var _debug = !(0, exports2.isProd)() || _hasEnv && ["y", "t"].some((process.env.DEBUG ?? "").toLowerCase().startsWith); var isDebug = () => _debug; exports2.isDebug = isDebug; } }); // ../node_modules/@emprespresso/pengueno/dist/leftpadesque/memoize.js var require_memoize = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/leftpadesque/memoize.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.memoize = void 0; var memoize = (fn) => { const cache = /* @__PURE__ */ new Map(); return (...args) => { const key = JSON.stringify(args); if (cache.has(key)) { return cache.get(key); } const res = fn(...args); cache.set(key, res); return res; }; }; exports2.memoize = memoize; } }); // ../node_modules/@emprespresso/pengueno/dist/leftpadesque/index.js var require_leftpadesque = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/leftpadesque/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_prepend(), exports2); __exportStar(require_debug(), exports2); __exportStar(require_memoize(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/types/misc.js var require_misc = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/misc.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); } }); // ../node_modules/@emprespresso/pengueno/dist/types/object.js var require_object = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/object.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.isObject = void 0; var isObject3 = (o) => typeof o === "object" && !Array.isArray(o) && !!o; exports2.isObject = isObject3; } }); // ../node_modules/@emprespresso/pengueno/dist/types/tagged.js var require_tagged = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/tagged.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.isTagged = void 0; var index_1 = require_types(); var isTagged = (o, tag) => !!((0, index_1.isObject)(o) && "_tag" in o && o._tag === tag); exports2.isTagged = isTagged; } }); // ../node_modules/@emprespresso/pengueno/dist/types/fn/callable.js var require_callable = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/fn/callable.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); } }); // ../node_modules/@emprespresso/pengueno/dist/types/fn/optional.js var require_optional = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/fn/optional.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.Optional = exports2.IOptionalEmptyError = exports2.isOptional = exports2.IOptionalTag = void 0; var pengueno_1 = require_dist(); exports2.IOptionalTag = "IOptional"; var isOptional = (o) => (0, pengueno_1.isTagged)(o, exports2.IOptionalTag); exports2.isOptional = isOptional; var IOptionalEmptyError = class extends Error { }; exports2.IOptionalEmptyError = IOptionalEmptyError; var OSomeTag = "O.Some"; var ONoneTag = "O.None"; var isNone = (o) => (0, pengueno_1.isTagged)(o, ONoneTag); var isSome = (o) => (0, pengueno_1.isTagged)(o, OSomeTag); var _Tagged = class { _tag; constructor(_tag = exports2.IOptionalTag) { this._tag = _tag; } }; var Optional = class _Optional extends _Tagged { self; constructor(self) { super(); this.self = self; } move(t) { return this.map(() => t); } orSome(supplier) { if (isNone(this.self)) return _Optional.from(supplier()); return this; } get() { if (isNone(this.self)) throw new IOptionalEmptyError("called get() on None optional"); return this.self.value; } filter(mapper) { if (isNone(this.self) || !mapper(this.self.value)) return _Optional.none(); return _Optional.some(this.self.value); } map(mapper) { if (isNone(this.self)) return _Optional.none(); return _Optional.from(mapper(this.self.value)); } flatMap(mapper) { if (isNone(this.self)) return _Optional.none(); return _Optional.from(mapper(this.self.value)).orSome(() => _Optional.none()).get(); } present() { return isSome(this.self); } *[Symbol.iterator]() { if (isSome(this.self)) yield this.self.value; } static some(value) { return new _Optional({ value, _tag: OSomeTag }); } static _none = new _Optional({ _tag: ONoneTag }); static none() { return this._none; } static from(value) { if (value === null || value === void 0) return _Optional.none(); return _Optional.some(value); } }; exports2.Optional = Optional; } }); // ../node_modules/@emprespresso/pengueno/dist/types/fn/either.js var require_either = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/fn/either.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.Either = exports2.isRight = exports2.isLeft = exports2.isEither = exports2.IEitherTag = void 0; var pengueno_1 = require_dist(); exports2.IEitherTag = "IEither"; var isEither = (o) => (0, pengueno_1.isTagged)(o, exports2.IEitherTag); exports2.isEither = isEither; var ELeftTag = "E.Left"; var isLeft = (o) => (0, pengueno_1.isTagged)(o, ELeftTag); exports2.isLeft = isLeft; var ERightTag = "E.Right"; var isRight = (o) => (0, pengueno_1.isTagged)(o, ERightTag); exports2.isRight = isRight; var _Tagged = class { _tag; constructor(_tag = exports2.IEitherTag) { this._tag = _tag; } }; var Either2 = class _Either extends _Tagged { self; constructor(self) { super(); this.self = self; } moveRight(t) { return this.mapRight(() => t); } mapBoth(errBranch, okBranch) { if ((0, exports2.isLeft)(this.self)) return _Either.left(errBranch(this.self.err)); return _Either.right(okBranch(this.self.ok)); } mapRight(mapper) { if ((0, exports2.isRight)(this.self)) return _Either.right(mapper(this.self.ok)); return _Either.left(this.self.err); } mapLeft(mapper) { if ((0, exports2.isLeft)(this.self)) return _Either.left(mapper(this.self.err)); return _Either.right(this.self.ok); } flatMap(mapper) { if ((0, exports2.isRight)(this.self)) return mapper(this.self.ok); return _Either.left(this.self.err); } filter(mapper) { if ((0, exports2.isLeft)(this.self)) return _Either.left(this.self.err); return _Either.fromFailable(() => this.right().filter(mapper).get()); } async flatMapAsync(mapper) { if ((0, exports2.isLeft)(this.self)) return Promise.resolve(_Either.left(this.self.err)); return await mapper(this.self.ok).catch((err) => _Either.left(err)); } fold(leftFolder, rightFolder) { if ((0, exports2.isLeft)(this.self)) return leftFolder(this.self.err); return rightFolder(this.self.ok); } left() { if ((0, exports2.isLeft)(this.self)) return pengueno_1.Optional.from(this.self.err); return pengueno_1.Optional.none(); } right() { if ((0, exports2.isRight)(this.self)) return pengueno_1.Optional.from(this.self.ok); return pengueno_1.Optional.none(); } joinRight(other, mapper) { return this.flatMap((t) => other.mapRight((o) => mapper(o, t))); } joinRightAsync(other, mapper) { return this.flatMapAsync(async (t) => { const o = typeof other === "function" ? other() : other; return await o.then((other2) => other2.mapRight((o2) => mapper(o2, t))); }); } static left(e) { return new _Either({ err: e, _tag: ELeftTag }); } static right(t) { return new _Either({ ok: t, _tag: ERightTag }); } static fromFailable(s) { try { return _Either.right(s()); } catch (e) { return _Either.left(e); } } static async fromFailableAsync(s) { return await (typeof s === "function" ? s() : s).then((t) => _Either.right(t)).catch((e) => _Either.left(e)); } }; exports2.Either = Either2; } }); // ../node_modules/@emprespresso/pengueno/dist/types/fn/index.js var require_fn = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/fn/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_callable(), exports2); __exportStar(require_optional(), exports2); __exportStar(require_either(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/types/collections/cons.js var require_cons = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/collections/cons.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.ListZipper = exports2.Cons = void 0; var pengueno_1 = require_dist(); var Cons = class _Cons { value; next; constructor(value, next = pengueno_1.Optional.none()) { this.value = value; this.next = next; } before(head) { return new _Cons(this.value, head); } replace(_value) { return new _Cons(_value, this.next); } *[Symbol.iterator]() { for (let cur = pengueno_1.Optional.some(this); cur.present(); cur = cur.flatMap((cur2) => cur2.next)) { yield cur.get().value; } } static addOnto(items, tail) { return Array.from(items).reverse().reduce((cons, value) => pengueno_1.Optional.from(new _Cons(value, cons)), tail); } static from(items) { return _Cons.addOnto(items, pengueno_1.Optional.none()); } }; exports2.Cons = Cons; var ListZipper = class _ListZipper { reversedPathToHead; currentHead; constructor(reversedPathToHead, currentHead) { this.reversedPathToHead = reversedPathToHead; this.currentHead = currentHead; } read() { return this.currentHead.map(({ value }) => value); } next() { return this.currentHead.map((head) => new _ListZipper(pengueno_1.Optional.some(head.before(this.reversedPathToHead)), head.next)); } previous() { return this.reversedPathToHead.map((lastVisited) => new _ListZipper(lastVisited.next, pengueno_1.Optional.some(lastVisited.before(this.currentHead)))); } prependChunk(values) { return new _ListZipper(Cons.addOnto(Array.from(values).reverse(), this.reversedPathToHead), this.currentHead); } prepend(value) { return this.prependChunk([value]); } remove() { const newHead = this.currentHead.flatMap((right) => right.next); return new _ListZipper(this.reversedPathToHead, newHead); } replace(value) { const newHead = this.currentHead.map((right) => right.replace(value)); return new _ListZipper(this.reversedPathToHead, newHead); } *[Symbol.iterator]() { let head = this; for (let prev = head.previous(); prev.present(); prev = prev.flatMap((p) => p.previous())) { head = prev.get(); } if (head.currentHead.present()) yield* head.currentHead.get(); } collection() { return Array.from(this); } static from(iterable) { return new _ListZipper(pengueno_1.Optional.none(), Cons.from(iterable)); } }; exports2.ListZipper = ListZipper; } }); // ../node_modules/@emprespresso/pengueno/dist/types/collections/index.js var require_collections = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/collections/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_cons(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/types/index.js var require_types = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/types/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_misc(), exports2); __exportStar(require_object(), exports2); __exportStar(require_tagged(), exports2); __exportStar(require_fn(), exports2); __exportStar(require_collections(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/trace/itrace.js var require_itrace = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/itrace.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.TraceableImpl = void 0; var TraceableImpl = class _TraceableImpl { item; trace; constructor(item, trace) { this.item = item; this.trace = trace; } map(mapper) { const result = mapper(this); return new _TraceableImpl(result, this.trace); } coExtend(mapper) { const results = mapper(this); return Array.from(results).map((result) => this.move(result)); } flatMap(mapper) { return mapper(this); } flatMapAsync(mapper) { return new _TraceableImpl(mapper(this).then((t) => t.get()), this.trace); } traceScope(mapper) { return new _TraceableImpl(this.get(), this.trace.traceScope(mapper(this))); } peek(peek) { peek(this); return this; } move(t) { return this.map(() => t); } bimap(mapper) { const { item, trace: _trace } = mapper(this); return this.move(item).traceScope(() => _trace); } get() { return this.item; } }; exports2.TraceableImpl = TraceableImpl; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/metric/emittable.js var require_emittable = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/metric/emittable.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.EmittableMetric = void 0; var index_1 = require_metric2(); var EmittableMetric = class { name; unit; constructor(name, unit) { this.name = name; this.unit = unit; } withValue(value) { return { name: this.name, unit: this.unit, emissionTimestamp: Date.now(), value, _tag: index_1.MetricValueTag }; } }; exports2.EmittableMetric = EmittableMetric; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/metric/metric.js var require_metric = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/metric/metric.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.ResultMetric = exports2.Metric = void 0; var index_1 = require_metric2(); var _Tagged = class { _tag; constructor(_tag = index_1.IMetricTag) { this._tag = _tag; } }; var Metric = class _Metric extends _Tagged { name; parent; count; time; static DELIM = "."; constructor(name, parent = void 0, count = new index_1.EmittableMetric(_Metric.join(name, "count"), index_1.Unit.COUNT), time = new index_1.EmittableMetric(_Metric.join(name, "time"), index_1.Unit.MILLISECONDS)) { super(); this.name = name; this.parent = parent; this.count = count; this.time = time; } child(_name) { const childName = _Metric.join(this.name, _name); return new _Metric(childName, this); } asResult() { return ResultMetric.from(this); } static join(...name) { return name.join(_Metric.DELIM); } static fromName(name) { return new _Metric(name); } }; exports2.Metric = Metric; var ResultMetric = class _ResultMetric extends Metric { name; parent; failure; success; warn; constructor(name, parent = void 0, failure, success, warn) { super(name, parent); this.name = name; this.parent = parent; this.failure = failure; this.success = success; this.warn = warn; } static from(metric) { const failure = metric.child("failure"); const success = metric.child("success"); const warn = metric.child("warn"); return new _ResultMetric(metric.name, metric.parent, failure, success, warn); } }; exports2.ResultMetric = ResultMetric; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/metric/trace.js var require_trace = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/metric/trace.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.MetricsTrace = exports2.isMetricsTraceSupplier = void 0; var pengueno_1 = require_dist(); var isMetricsTraceSupplier = (t) => (0, pengueno_1.isMetricValue)(t) || (0, pengueno_1.isIMetric)(t) || Array.isArray(t) && t.every((_m) => (0, pengueno_1.isMetricValue)(_m) || (0, pengueno_1.isIMetric)(_m)); exports2.isMetricsTraceSupplier = isMetricsTraceSupplier; var MetricsTrace = class _MetricsTrace { metricConsumer; activeTraces; completedTraces; constructor(metricConsumer, activeTraces = /* @__PURE__ */ new Map(), completedTraces = /* @__PURE__ */ new Set()) { this.metricConsumer = metricConsumer; this.activeTraces = activeTraces; this.completedTraces = completedTraces; } traceScope(trace) { const now = Date.now(); const metricsToTrace = (Array.isArray(trace) ? trace : [trace]).filter(pengueno_1.isIMetric); const initialTraces = new Map(metricsToTrace.map((metric) => [metric, now])); return new _MetricsTrace(this.metricConsumer, initialTraces); } trace(metrics) { if (!metrics || typeof metrics === "string") { return this; } const now = Date.now(); const allMetrics = Array.isArray(metrics) ? metrics : [metrics]; const valuesToEmit = allMetrics.filter(pengueno_1.isMetricValue); const traceableMetrics = allMetrics.filter(pengueno_1.isIMetric); const metricsToStart = traceableMetrics.filter((m) => !this.activeTraces.has(m)); const metricsToEnd = traceableMetrics.filter((m) => this.activeTraces.has(m) && !this.completedTraces.has(m)); const endedMetricValues = metricsToEnd.flatMap((metric) => [ metric.count.withValue(1), metric.time.withValue(now - this.activeTraces.get(metric)) ]); const allMetricsToEmit = [...valuesToEmit, ...endedMetricValues]; if (allMetricsToEmit.length > 0) { this.metricConsumer(allMetricsToEmit); } const nextActiveTraces = new Map([ ...this.activeTraces, ...metricsToStart.map((m) => [m, now]) ]); const nextCompletedTraces = /* @__PURE__ */ new Set([...this.completedTraces, ...metricsToEnd]); return new _MetricsTrace(this.metricConsumer, nextActiveTraces, nextCompletedTraces); } }; exports2.MetricsTrace = MetricsTrace; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/metric/index.js var require_metric2 = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/metric/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.isIMetric = exports2.IMetricTag = exports2.isMetricValue = exports2.MetricValueTag = exports2.Unit = void 0; var pengueno_1 = require_dist(); var Unit; (function(Unit2) { Unit2["COUNT"] = "COUNT"; Unit2["MILLISECONDS"] = "MILLISECONDS"; })(Unit || (exports2.Unit = Unit = {})); exports2.MetricValueTag = "MetricValue"; var isMetricValue = (t) => (0, pengueno_1.isTagged)(t, exports2.MetricValueTag); exports2.isMetricValue = isMetricValue; exports2.IMetricTag = "IMetric"; var isIMetric = (t) => (0, pengueno_1.isTagged)(t, exports2.IMetricTag); exports2.isIMetric = isIMetric; __exportStar(require_emittable(), exports2); __exportStar(require_metric(), exports2); __exportStar(require_trace(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/trace/log/ansi.js var require_ansi = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/log/ansi.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.ANSI = void 0; exports2.ANSI = { RESET: "\x1B[0m", BOLD: "\x1B[1m", DIM: "\x1B[2m", RED: "\x1B[31m", GREEN: "\x1B[32m", YELLOW: "\x1B[33m", BLUE: "\x1B[34m", MAGENTA: "\x1B[35m", CYAN: "\x1B[36m", WHITE: "\x1B[37m", BRIGHT_RED: "\x1B[91m", BRIGHT_YELLOW: "\x1B[93m", GRAY: "\x1B[90m" }; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/log/level.js var require_level = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/log/level.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.isLogLevel = exports2.logLevelOrder = exports2.LogLevel = void 0; var LogLevel; (function(LogLevel2) { LogLevel2["UNKNOWN"] = "UNKNOWN"; LogLevel2["INFO"] = "INFO"; LogLevel2["WARN"] = "WARN"; LogLevel2["DEBUG"] = "DEBUG"; LogLevel2["ERROR"] = "ERROR"; LogLevel2["SYS"] = "SYS"; })(LogLevel || (exports2.LogLevel = LogLevel = {})); exports2.logLevelOrder = [ LogLevel.DEBUG, LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR, LogLevel.SYS ]; var isLogLevel = (l) => typeof l === "string" && exports2.logLevelOrder.some((level) => level === l); exports2.isLogLevel = isLogLevel; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/log/logger.js var require_logger = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/log/logger.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); } }); // ../node_modules/@emprespresso/pengueno/dist/trace/log/pretty_json_console.js var require_pretty_json_console = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/log/pretty_json_console.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.PrettyJsonConsoleLogger = void 0; var index_1 = require_log(); var PrettyJsonConsoleLogger = class { log(level, ...trace) { const message = JSON.stringify({ level, trace }, null, 4); const styled = `${this.getStyle(level)}${message}${index_1.ANSI.RESET} `; this.getStream(level)(styled); } getStream(level) { if (level === index_1.LogLevel.ERROR) { return console.error; } return console.log; } getStyle(level) { switch (level) { case index_1.LogLevel.UNKNOWN: case index_1.LogLevel.INFO: return `${index_1.ANSI.MAGENTA}`; case index_1.LogLevel.DEBUG: return `${index_1.ANSI.CYAN}`; case index_1.LogLevel.WARN: return `${index_1.ANSI.BRIGHT_YELLOW}`; case index_1.LogLevel.ERROR: return `${index_1.ANSI.BRIGHT_RED}`; case index_1.LogLevel.SYS: return `${index_1.ANSI.DIM}${index_1.ANSI.BLUE}`; } } }; exports2.PrettyJsonConsoleLogger = PrettyJsonConsoleLogger; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/log/trace.js var require_trace2 = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/log/trace.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.LogTrace = void 0; var pengueno_1 = require_dist(); var index_1 = require_log(); var LogTrace = class _LogTrace { logger; traces; defaultLevel; allowedLevels; constructor(logger = new index_1.PrettyJsonConsoleLogger(), traces = [defaultTrace], defaultLevel = index_1.LogLevel.INFO, allowedLevels = defaultAllowedLevelsSupplier) { this.logger = logger; this.traces = traces; this.defaultLevel = defaultLevel; this.allowedLevels = allowedLevels; } traceScope(trace) { return new _LogTrace(this.logger, this.traces.concat(trace), this.defaultLevel, this.allowedLevels); } trace(trace) { const { traces, level: _level } = this.foldTraces(this.traces.concat(trace)); if (!this.allowedLevels().has(_level)) return; const level = _level === index_1.LogLevel.UNKNOWN ? this.defaultLevel : _level; this.logger.log(level, ...traces); } foldTraces(_traces) { const _logTraces = _traces.map((trace) => typeof trace === "function" ? trace() : trace); const _level = _logTraces.filter((trace) => (0, index_1.isLogLevel)(trace)).reduce((acc, level2) => Math.max(index_1.logLevelOrder.indexOf(level2), acc), -1); const level = index_1.logLevelOrder[_level] ?? index_1.LogLevel.UNKNOWN; const traces = _logTraces.filter((trace) => !(0, index_1.isLogLevel)(trace)).map((trace) => { if (typeof trace === "object") { return `TracedException.Name = ${trace.name}, TracedException.Message = ${trace.message}, TracedException.Stack = ${trace.stack}`; } return trace; }); return { level, traces }; } }; exports2.LogTrace = LogTrace; var defaultTrace = () => `TimeStamp = ${(/* @__PURE__ */ new Date()).toISOString()}`; var defaultAllowedLevels = (0, pengueno_1.memoize)((isDebug) => /* @__PURE__ */ new Set([ index_1.LogLevel.UNKNOWN, ...isDebug ? [index_1.LogLevel.DEBUG] : [], index_1.LogLevel.INFO, index_1.LogLevel.WARN, index_1.LogLevel.ERROR, index_1.LogLevel.SYS ])); var defaultAllowedLevelsSupplier = () => defaultAllowedLevels((0, pengueno_1.isDebug)()); } }); // ../node_modules/@emprespresso/pengueno/dist/trace/log/index.js var require_log = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/log/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_ansi(), exports2); __exportStar(require_level(), exports2); __exportStar(require_logger(), exports2); __exportStar(require_pretty_json_console(), exports2); __exportStar(require_trace2(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/trace/trace.js var require_trace3 = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/trace.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.LogMetricTraceable = exports2.LogMetricTrace = exports2.EmbeddedMetricsTraceable = exports2.LogTraceable = void 0; var _1 = require_trace4(); var LogTraceable = class _LogTraceable extends _1.TraceableImpl { static LogTrace = new _1.LogTrace(); static of(t) { return new _LogTraceable(t, _LogTraceable.LogTrace); } }; exports2.LogTraceable = LogTraceable; var getEmbeddedMetricConsumer = (logTrace) => (metrics) => { if (metrics.length === 0) return; logTrace.traceScope(_1.LogLevel.SYS).trace(`Metrics = ${JSON.stringify(metrics)}`); }; var EmbeddedMetricsTraceable = class _EmbeddedMetricsTraceable extends _1.TraceableImpl { static MetricsTrace = new _1.MetricsTrace(getEmbeddedMetricConsumer(LogTraceable.LogTrace)); static of(t, metricsTrace = _EmbeddedMetricsTraceable.MetricsTrace) { return new _EmbeddedMetricsTraceable(t, metricsTrace); } }; exports2.EmbeddedMetricsTraceable = EmbeddedMetricsTraceable; var LogMetricTrace = class _LogMetricTrace { logTrace; metricsTrace; constructor(logTrace, metricsTrace) { this.logTrace = logTrace; this.metricsTrace = metricsTrace; } // public traceScope(trace: LogTraceSupplier | MetricsTraceSupplier): LogMetricTrace { // if (isMetricsTraceSupplier(trace)) { // this.metricsTrace = this.metricsTrace.traceScope(trace); // return this; // } // this.logTrace = this.logTrace.traceScope(trace); // return this; // } traceScope(trace) { if ((0, _1.isMetricsTraceSupplier)(trace)) { return new _LogMetricTrace(this.logTrace, this.metricsTrace.traceScope(trace)); } return new _LogMetricTrace(this.logTrace.traceScope(trace), this.metricsTrace); } trace(trace) { if ((0, _1.isMetricsTraceSupplier)(trace)) { this.metricsTrace.trace(trace); return this; } this.logTrace.trace(trace); return this; } }; exports2.LogMetricTrace = LogMetricTrace; var LogMetricTraceable = class _LogMetricTraceable extends _1.TraceableImpl { static ofLogTraceable(t) { const metricsTrace = new _1.MetricsTrace(getEmbeddedMetricConsumer(t.trace)); return new _LogMetricTraceable(t.get(), new LogMetricTrace(t.trace, metricsTrace)); } static of(t) { const logTrace = LogTraceable.of(t); return _LogMetricTraceable.ofLogTraceable(logTrace); } }; exports2.LogMetricTraceable = LogMetricTraceable; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/util.js var require_util = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/util.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.TraceUtil = void 0; var pengueno_1 = require_dist(); var TraceUtil = class _TraceUtil { static promiseify(mapper) { return (traceablePromise) => traceablePromise.flatMapAsync(async (t) => t.move(await t.get()).map(mapper)).get(); } static traceResultingEither(metric, warnOnFailure = false) { return (t) => { if (metric) t.trace.trace(t.get().fold((_err) => warnOnFailure ? metric.warn : metric.failure, (_ok) => metric.success)); return t.traceScope((_t) => _t.get().fold((_err) => warnOnFailure ? pengueno_1.LogLevel.WARN : pengueno_1.LogLevel.ERROR, (_ok) => pengueno_1.LogLevel.INFO)); }; } static withTrace(trace) { return (t) => t.traceScope(() => trace); } static withMetricTrace(metric) { return _TraceUtil.withTrace(metric); } static withFunctionTrace(f) { return _TraceUtil.withTrace(`fn.${f.name}`); } static withClassTrace(c) { return _TraceUtil.withTrace(`class.${c.constructor.name}`); } }; exports2.TraceUtil = TraceUtil; } }); // ../node_modules/@emprespresso/pengueno/dist/trace/index.js var require_trace4 = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/trace/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_itrace(), exports2); __exportStar(require_metric2(), exports2); __exportStar(require_log(), exports2); __exportStar(require_trace3(), exports2); __exportStar(require_util(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/process/exec.js var require_exec = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/process/exec.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.getStdoutMany = exports2.getStdout = exports2.CmdMetric = void 0; var pengueno_1 = require_dist(); var node_child_process_1 = require("node:child_process"); exports2.CmdMetric = pengueno_1.Metric.fromName("Exec").asResult(); var getStdout = (cmd, options = { streamTraceable: [] }) => cmd.flatMap(pengueno_1.TraceUtil.withFunctionTrace(exports2.getStdout)).flatMap((tCmd) => tCmd.traceScope(() => `Command = ${tCmd.get()}`)).map((tCmd) => { const cmd2 = tCmd.get(); const _exec = typeof cmd2 === "string" ? cmd2 : cmd2.join(" "); const env = options.clearEnv ? options.env : { ...process.env, ...options.env }; return pengueno_1.Either.fromFailableAsync(new Promise((res, rej) => { const proc = (0, node_child_process_1.exec)(_exec, { env }); let stdout = ""; proc.stdout?.on("data", (d) => { const s = d.toString(); stdout += s; if (options.streamTraceable?.includes("stdout")) { tCmd.trace.trace(s); } }); const stderr = ""; proc.stderr?.on("data", (d) => { const s = d.toString(); stdout += s; if (options.streamTraceable?.includes("stderr")) { tCmd.trace.trace(s); } }); proc.on("exit", (code) => { const streams = { stdout, stderr }; if (code === 0) { res(streams); } else { rej(new Error(`exited with non-zero code: ${code}. ${stderr}`)); } }); })); }).map(pengueno_1.TraceUtil.promiseify((tEitherStdStreams) => tEitherStdStreams.get().mapRight(({ stderr, stdout }) => { if (stderr) tEitherStdStreams.trace.traceScope(pengueno_1.LogLevel.DEBUG).trace(`StdErr = ${stderr}`); return stdout; }))).peek(pengueno_1.TraceUtil.promiseify(pengueno_1.TraceUtil.traceResultingEither(exports2.CmdMetric))).get(); exports2.getStdout = getStdout; var getStdoutMany = (cmds, options = { streamTraceable: [] }) => cmds.coExtend((t) => t.get()).reduce(async (_result, tCmd) => { const result = await _result; return result.joinRightAsync(() => tCmd.map((cmd) => (0, exports2.getStdout)(cmd, options)).get(), (stdout, pre) => pre.concat(stdout)); }, Promise.resolve(pengueno_1.Either.right([]))); exports2.getStdoutMany = getStdoutMany; } }); // ../node_modules/@emprespresso/pengueno/dist/process/env.js var require_env = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/process/env.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.getRequiredEnvVars = exports2.getRequiredEnv = exports2.getEnv = void 0; var pengueno_1 = require_dist(); var getEnv = (name) => pengueno_1.Optional.from(process.env[name]); exports2.getEnv = getEnv; var getRequiredEnv = (name) => pengueno_1.Either.fromFailable(() => (0, exports2.getEnv)(name).get()).mapLeft(() => new Error(`environment variable "${name}" is required D:`)); exports2.getRequiredEnv = getRequiredEnv; var getRequiredEnvVars = (vars) => { const emptyEnvironment = pengueno_1.Either.right({}); const addTo = (env, key, val) => ({ ...env, [key]: val }); return vars.reduce((environment, key) => environment.joinRight((0, exports2.getRequiredEnv)(key), (value, environment2) => addTo(environment2, key, value)), emptyEnvironment); }; exports2.getRequiredEnvVars = getRequiredEnvVars; } }); // ../node_modules/@emprespresso/pengueno/dist/process/validate_identifier.js var require_validate_identifier = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/process/validate_identifier.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.validateExecutionEntries = exports2.validateIdentifier = void 0; var pengueno_1 = require_dist(); var validateIdentifier = (token) => { return /^[a-zA-Z0-9_\-:. \/]+$/.test(token) && !token.includes(".."); }; exports2.validateIdentifier = validateIdentifier; var validateExecutionEntries = (obj) => { const invalidEntries = Object.entries(obj).filter((e) => !e.every((x) => typeof x === "string" && (0, exports2.validateIdentifier)(x))); if (invalidEntries.length > 0) return pengueno_1.Either.left(invalidEntries); return pengueno_1.Either.right(obj); }; exports2.validateExecutionEntries = validateExecutionEntries; } }); // ../node_modules/@emprespresso/pengueno/dist/process/argv.js var require_argv = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/process/argv.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.argv = exports2.getArg = exports2.isArgKey = void 0; var pengueno_1 = require_dist(); var isArgKey = (k) => k.startsWith("--"); exports2.isArgKey = isArgKey; var getArg = (arg, argv2, whenValue) => { const argIndex = pengueno_1.Optional.from(argv2.findIndex((_argv) => (0, exports2.isArgKey)(_argv) && _argv.split("=")[0] === arg)).filter((index) => index >= 0 && index < argv2.length); if (!argIndex.present()) { return pengueno_1.Optional.from(whenValue.absent).map((v) => pengueno_1.Either.right(v)).orSome(() => pengueno_1.Either.left(new Error(`arg ${arg} is not present in arguments list and does not have an 'absent' value`))).get(); } return argIndex.flatMap((idx) => pengueno_1.Optional.from(argv2.at(idx)).map((_argv) => _argv.includes("=") ? _argv.split("=")[1] : argv2.at(idx + 1))).filter((next) => !(0, exports2.isArgKey)(next)).map((next) => whenValue.present(next)).orSome(() => whenValue.unspecified).map((v) => pengueno_1.Either.right(v)).get(); }; exports2.getArg = getArg; var argv = (args, handlers, argv2 = process.argv.slice(2)) => { const defaultHandler = { present: (value) => value }; const processArg = (arg) => { const handler = handlers?.[arg] ?? defaultHandler; return (0, exports2.getArg)(arg, argv2, handler).mapRight((value) => [arg, value]); }; const res = args.map(processArg).reduce((acc, current) => acc.flatMap((accValue) => current.mapRight(([key, value]) => ({ ...accValue, [key]: value }))), pengueno_1.Either.right({})).mapRight((result) => result); return res; }; exports2.argv = argv; } }); // ../node_modules/@emprespresso/pengueno/dist/process/signals.js var require_signals = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/process/signals.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.Signals = exports2.SigTermMetric = exports2.SigIntMetric = void 0; var pengueno_1 = require_dist(); exports2.SigIntMetric = pengueno_1.Metric.fromName("SigInt").asResult(); exports2.SigTermMetric = pengueno_1.Metric.fromName("SigTerm").asResult(); var Signals = class { static async awaitClose(t) { const success = pengueno_1.Either.right(void 0); return new Promise((res) => { const metricizedInterruptHandler = (metric) => (err) => t.flatMap(pengueno_1.TraceUtil.withMetricTrace(metric)).peek((_t) => _t.trace.trace("closing")).move(pengueno_1.Optional.from(err).map((e) => pengueno_1.Either.left(e)).orSome(() => success).get()).flatMap(pengueno_1.TraceUtil.traceResultingEither(metric)).map((e) => res(e.get())).peek((_t) => _t.trace.trace("finished")).get(); const sigintCloser = metricizedInterruptHandler(exports2.SigIntMetric); const sigtermCloser = metricizedInterruptHandler(exports2.SigTermMetric); process.on("SIGINT", () => t.flatMap(pengueno_1.TraceUtil.withTrace("SIGINT")).get().close(sigintCloser)); process.on("SIGTERM", () => t.flatMap(pengueno_1.TraceUtil.withTrace("SIGTERM")).get().close(sigtermCloser)); }); } }; exports2.Signals = Signals; } }); // ../node_modules/@emprespresso/pengueno/dist/process/index.js var require_process = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/process/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_exec(), exports2); __exportStar(require_env(), exports2); __exportStar(require_validate_identifier(), exports2); __exportStar(require_argv(), exports2); __exportStar(require_signals(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/server/http/body.js var require_body = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/http/body.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); } }); // ../node_modules/@emprespresso/pengueno/dist/server/http/status.js var require_status = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/http/status.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.HttpStatusCodes = void 0; exports2.HttpStatusCodes = { 100: "Continue", 101: "Switching Protocols", 102: "Processing (WebDAV)", 200: "OK", 201: "Created", 202: "Accepted", 203: "Non-Authoritative Information", 204: "No Content", 205: "Reset Content", 206: "Partial Content", 207: "Multi-Status (WebDAV)", 208: "Already Reported (WebDAV)", 226: "IM Used", 300: "Multiple Choices", 301: "Moved Permanently", 302: "Found", 303: "See Other", 304: "Not Modified", 305: "Use Proxy", 306: "(Unused)", 307: "Temporary Redirect", 308: "Permanent Redirect (experimental)", 400: "Bad Request", 401: "Unauthorized", 402: "Payment Required", 403: "Forbidden", 404: "Not Found", 405: "Method Not Allowed", 406: "Not Acceptable", 407: "Proxy Authentication Required", 408: "Request Timeout", 409: "Conflict", 410: "Gone", 411: "Length Required", 412: "Precondition Failed", 413: "Request Entity Too Large", 414: "Request-URI Too Long", 415: "Unsupported Media Type", 416: "Requested Range Not Satisfiable", 417: "Expectation Failed", 418: "I'm a teapot (RFC 2324)", 420: "Enhance Your Calm (Twitter)", 422: "Unprocessable Entity (WebDAV)", 423: "Locked (WebDAV)", 424: "Failed Dependency (WebDAV)", 425: "Reserved for WebDAV", 426: "Upgrade Required", 428: "Precondition Required", 429: "Too Many Requests", 431: "Request Header Fields Too Large", 444: "No Response (Nginx)", 449: "Retry With (Microsoft)", 450: "Blocked by Windows Parental Controls (Microsoft)", 451: "Unavailable For Legal Reasons", 499: "Client Closed Request (Nginx)", 500: "Internal Server Error", 501: "Not Implemented", 502: "Bad Gateway", 503: "Service Unavailable", 504: "Gateway Timeout", 505: "HTTP Version Not Supported", 506: "Variant Also Negotiates (Experimental)", 507: "Insufficient Storage (WebDAV)", 508: "Loop Detected (WebDAV)", 509: "Bandwidth Limit Exceeded (Apache)", 510: "Not Extended", 511: "Network Authentication Required", 598: "Network read timeout error", 599: "Network connect timeout error" }; } }); // ../node_modules/@emprespresso/pengueno/dist/server/http/method.js var require_method = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/http/method.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); } }); // ../node_modules/@emprespresso/pengueno/dist/server/http/index.js var require_http = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/http/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_body(), exports2); __exportStar(require_status(), exports2); __exportStar(require_method(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/server/response/pengueno.js var require_pengueno = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/response/pengueno.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.JsonResponse = exports2.PenguenoResponse = exports2.getResponseMetrics = void 0; var pengueno_1 = require_dist(); var getHeaders = (req, extraHeaders) => { const optHeaders = { ...req.getResponseHeaders(), ...extraHeaders }; optHeaders["Content-Type"] = (optHeaders["Content-Type"] ?? "text/plain") + "; charset=utf-8"; return optHeaders; }; var ResponseCodeMetrics = [0, 1, 2, 3, 4, 5].map((x) => pengueno_1.Metric.fromName(`response.${x}xx`).asResult()); var getResponseMetrics = (status, elapsedMs) => { const index = Math.floor(status / 100); return ResponseCodeMetrics.flatMap((metric, i) => pengueno_1.Optional.from(i).filter((i2) => i2 === index).map(() => [metric.count.withValue(1)]).flatMap((metricValues) => pengueno_1.Optional.from(elapsedMs).map((ms) => metricValues.concat(metric.time.withValue(ms))).orSome(() => metricValues)).orSome(() => [metric.count.withValue(0)]).get()); }; exports2.getResponseMetrics = getResponseMetrics; var PenguenoResponse = class { _body; statusText; status; headers; constructor(req, _body, opts) { this._body = _body; this.headers = getHeaders(req.get(), opts?.headers ?? {}); this.status = opts.status; this.statusText = opts.statusText ?? pengueno_1.HttpStatusCodes[this.status]; req.trace.trace((0, exports2.getResponseMetrics)(opts.status, req.get().elapsedTimeMs())); } body() { return this._body; } }; exports2.PenguenoResponse = PenguenoResponse; var JsonResponse = class extends PenguenoResponse { constructor(req, e, _opts) { const opts = { ..._opts, headers: { ..._opts.headers, "Content-Type": "application/json" } }; if ((0, pengueno_1.isEither)(e)) { super(req, JSON.stringify(e.fold((error) => ({ error, ok: void 0 }), (ok) => ({ ok }))), opts); return; } super(req, JSON.stringify(Math.floor(opts.status / 100) > 4 ? { error: e } : { ok: e }), opts); } }; exports2.JsonResponse = JsonResponse; } }); // ../node_modules/@emprespresso/pengueno/dist/server/response/index.js var require_response = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/response/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_pengueno(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/server/request/pengueno.js var require_pengueno2 = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/request/pengueno.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.PenguenoRequest = void 0; var greetings = ["hewwo :D", "hiya cutie", "boop!", "sending virtual hugs!", "stay pawsitive"]; var penguenoGreeting = () => greetings[Math.floor(Math.random() * greetings.length)]; var PenguenoRequest = class _PenguenoRequest { req; id; at; constructor(req, id, at) { this.req = req; this.id = id; this.at = at; } elapsedTimeMs(after = () => Date.now()) { return after() - this.at.getTime(); } getResponseHeaders() { const RequestId = this.id; const RequestReceivedUnix = this.at.getTime(); const RequestHandleUnix = Date.now(); const DeltaUnix = this.elapsedTimeMs(() => RequestHandleUnix); const Hai = penguenoGreeting(); return Object.entries({ RequestId, RequestReceivedUnix, RequestHandleUnix, DeltaUnix, Hai }).reduce((acc, [key, val]) => ({ ...acc, [key]: val.toString() }), {}); } static from(request) { const id = crypto.randomUUID(); return request.bimap((tRequest) => { const request2 = tRequest.get(); const url = new URL(request2.url); const { pathname } = url; const trace = `RequestId = ${id}, Method = ${request2.method}, Path = ${pathname}`; return { item: new _PenguenoRequest(request2, id, /* @__PURE__ */ new Date()), trace }; }); } }; exports2.PenguenoRequest = PenguenoRequest; } }); // ../node_modules/@emprespresso/pengueno/dist/server/request/index.js var require_request = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/request/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_pengueno2(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/server/activity/health.js var require_health = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/activity/health.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.HealthCheckActivityImpl = exports2.HealthCheckOutput = exports2.HealthCheckInput = void 0; var pengueno_1 = require_dist(); var HealthCheckInput; (function(HealthCheckInput2) { HealthCheckInput2[HealthCheckInput2["CHECK"] = 0] = "CHECK"; })(HealthCheckInput || (exports2.HealthCheckInput = HealthCheckInput = {})); var HealthCheckOutput; (function(HealthCheckOutput2) { HealthCheckOutput2[HealthCheckOutput2["YAASSSLAYQUEEN"] = 0] = "YAASSSLAYQUEEN"; })(HealthCheckOutput || (exports2.HealthCheckOutput = HealthCheckOutput = {})); var healthCheckMetric = pengueno_1.Metric.fromName("Health").asResult(); var HealthCheckActivityImpl = class { check; constructor(check) { this.check = check; } checkHealth(req) { return req.flatMap(pengueno_1.TraceUtil.withFunctionTrace(this.checkHealth)).flatMap(pengueno_1.TraceUtil.withMetricTrace(healthCheckMetric)).flatMap((r) => r.move(HealthCheckInput.CHECK).map((input) => this.check(input))).peek(pengueno_1.TraceUtil.promiseify(pengueno_1.TraceUtil.traceResultingEither(healthCheckMetric))).map(pengueno_1.TraceUtil.promiseify((h) => { const { status, message } = h.get().fold(() => ({ status: 500, message: "err" }), () => ({ status: 200, message: "ok" })); return new pengueno_1.JsonResponse(req, message, { status }); })).get(); } }; exports2.HealthCheckActivityImpl = HealthCheckActivityImpl; } }); // ../node_modules/@emprespresso/pengueno/dist/server/activity/fourohfour.js var require_fourohfour = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/activity/fourohfour.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.FourOhFourActivityImpl = void 0; var pengueno_1 = require_dist(); var messages = [ "D: meow-t found! your api call ran away!", "404-bidden! but like...in a cute way >:3 !", ":< your data went on a paw-sible vacation!", "uwu~ not found, but found our hearts instead!" ]; var randomFourOhFour = () => messages[Math.floor(Math.random() * messages.length)]; var FourOhFourActivityImpl = class { fourOhFour(req) { return req.move(new pengueno_1.JsonResponse(req, randomFourOhFour(), { status: 404 })).map((resp) => Promise.resolve(resp.get())).get(); } }; exports2.FourOhFourActivityImpl = FourOhFourActivityImpl; } }); // ../node_modules/@emprespresso/pengueno/dist/server/activity/index.js var require_activity = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/activity/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_health(), exports2); __exportStar(require_fourohfour(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/server/filter/method.js var require_method2 = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/filter/method.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.requireMethod = void 0; var pengueno_1 = require_dist(); var requireMethod = (methods) => (req) => req.flatMap(pengueno_1.TraceUtil.withFunctionTrace(exports2.requireMethod)).map((t) => { const { req: { method } } = t.get(); if (!methods.includes(method)) { const msg = "that's not how you pet me (\u22DF\uFE4F\u22DE)~"; t.trace.traceScope(pengueno_1.LogLevel.WARN).trace(msg); return pengueno_1.Either.left(new pengueno_1.PenguenoError(msg, 405)); } return pengueno_1.Either.right(method); }).get(); exports2.requireMethod = requireMethod; } }); // ../node_modules/@emprespresso/pengueno/dist/server/filter/json.js var require_json = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/filter/json.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.jsonModel = void 0; var pengueno_1 = require_dist(); var ParseJsonMetric = pengueno_1.Metric.fromName("JsonParse").asResult(); var jsonModel = (jsonTransformer) => (r) => r.flatMap(pengueno_1.TraceUtil.withFunctionTrace(exports2.jsonModel)).flatMap(pengueno_1.TraceUtil.withMetricTrace(ParseJsonMetric)).map((j) => pengueno_1.Either.fromFailableAsync(j.get().req.json()).then((either) => either.mapLeft((errReason) => { j.trace.traceScope(pengueno_1.LogLevel.WARN).trace(errReason); return new pengueno_1.PenguenoError("seems to be invalid JSON (>//<) can you fix?", 400); }))).flatMapAsync(pengueno_1.TraceUtil.promiseify(pengueno_1.TraceUtil.traceResultingEither(ParseJsonMetric))).map(pengueno_1.TraceUtil.promiseify((traceableEitherJson) => traceableEitherJson.get().mapRight((j) => traceableEitherJson.move(j)).flatMap(jsonTransformer))).get(); exports2.jsonModel = jsonModel; } }); // ../node_modules/@emprespresso/pengueno/dist/server/filter/index.js var require_filter = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/filter/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.PenguenoError = exports2.ErrorSource = void 0; var pengueno_1 = require_dist(); var ErrorSource; (function(ErrorSource2) { ErrorSource2["USER"] = "WARN"; ErrorSource2["SYSTEM"] = "ERROR"; })(ErrorSource || (exports2.ErrorSource = ErrorSource = {})); var PenguenoError = class extends Error { message; status; source; constructor(message, status) { super(message); this.message = message; this.status = status; this.source = Math.floor(status / 100) === 4 ? ErrorSource.USER : ErrorSource.SYSTEM; } }; exports2.PenguenoError = PenguenoError; __exportStar(require_method2(), exports2); __exportStar(require_json(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/server/index.js var require_server = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/server/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_http(), exports2); __exportStar(require_response(), exports2); __exportStar(require_request(), exports2); __exportStar(require_activity(), exports2); __exportStar(require_filter(), exports2); } }); // ../node_modules/@emprespresso/pengueno/dist/index.js var require_dist = __commonJS({ "../node_modules/@emprespresso/pengueno/dist/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_leftpadesque(), exports2); __exportStar(require_types(), exports2); __exportStar(require_trace4(), exports2); __exportStar(require_process(), exports2); __exportStar(require_server(), exports2); } }); // ../model/job/index.ts var import_pengueno = __toESM(require_dist(), 1); var JobTypes = [ "fetch_code", "ci_pipeline", "build_docker_image.js", "ansible_playbook.js", "checkout_ci.js", "npm_publish.js" ]; var isJobType = (j) => typeof j === "string" && JobTypes.includes(j); var isJob = (j) => !!((0, import_pengueno.isObject)(j) && "arguments" in j && (0, import_pengueno.isObject)(j.arguments) && "type" in j && isJobType(j.type) && j); // ../model/pipeline/index.ts var import_pengueno3 = __toESM(require_dist(), 1); // ../model/pipeline/builder.ts var BasePipelineBuilder = class { stages = []; addStage(stage) { this.stages.push(stage); return this; } build() { return new PipelineImpl(this.stages); } }; var DefaultGitHookPipelineBuilder = class extends BasePipelineBuilder { constructor(remoteUrl = process.env.remote, rev = process.env.rev, refname = process.env.refname) { super(); this.remoteUrl = remoteUrl; this.refname = refname; this.addStage({ parallelJobs: [ { type: "fetch_code", arguments: { remoteUrl, checkout: rev, path: this.getSourceDestination() } } ] }); } getSourceDestination() { return this.remoteUrl.replace(".git", "").split("/").at(-1) ?? "src"; } getBranch() { const branchRefPrefix = "refs/heads/"; return this.refname.split(branchRefPrefix).at(1); } }; // ../model/pipeline/impl.ts var import_pengueno2 = __toESM(require_dist(), 1); var PipelineImpl = class _PipelineImpl { constructor(serialJobs) { this.serialJobs = serialJobs; } serialize() { return JSON.stringify({ serialJobs: this.serialJobs }); } static from(s) { return import_pengueno2.Either.fromFailable(() => JSON.parse(s)).flatMap( (eitherPipelineJson) => isPipeline(eitherPipelineJson) ? import_pengueno2.Either.right(eitherPipelineJson) : import_pengueno2.Either.left(new Error("oh noes D: its a bad pipewine :((")) ).mapRight((pipeline) => new _PipelineImpl(pipeline.serialJobs)); } }; // ../model/pipeline/index.ts var isPipelineStage = (t) => (0, import_pengueno3.isObject)(t) && "parallelJobs" in t && Array.isArray(t.parallelJobs) && t.parallelJobs.every((j) => isJob(j)); var isPipeline = (t) => (0, import_pengueno3.isObject)(t) && "serialJobs" in t && Array.isArray(t.serialJobs) && t.serialJobs.every((p) => isPipelineStage(p)); // dist/ci.js var import_path = require("path"); var REGISTRY = "oci.liz.coffee"; var NAMESPACE = "emprespresso"; var IMG = "ci"; var REMOTE = "ssh://src.liz.coffee:2222"; var getPipeline = () => { const gitHookPipeline = new DefaultGitHookPipelineBuilder(); const branch = gitHookPipeline.getBranch(); if (!branch) return gitHookPipeline.build(); const commonBuildArgs = { context: gitHookPipeline.getSourceDestination(), registry: REGISTRY, namespace: NAMESPACE, imageTag: branch }; const baseCiPackageBuild = { type: "build_docker_image.js", arguments: { ...commonBuildArgs, repository: IMG + "_base", buildTarget: IMG + "_base", dockerfile: "Dockerfile" } }; gitHookPipeline.addStage({ parallelJobs: [baseCiPackageBuild] }); const subPackages = ["worker", "server"].map((_package) => ({ type: "build_docker_image.js", arguments: { ...commonBuildArgs, repository: `${IMG}_${_package}`, buildTarget: _package, dockerfile: `${_package}/Dockerfile` } })); subPackages.push({ type: "build_docker_image.js", arguments: { ...commonBuildArgs, repository: `${IMG}_packpub_npm`, buildTarget: "packpub_npm", dockerfile: `Dockerfile`, context: (0, import_path.join)(commonBuildArgs.context, "packpub/npm") } }); gitHookPipeline.addStage({ parallelJobs: subPackages }); const isRelease = branch === "release"; if (!isRelease) { return gitHookPipeline.build(); } const fetchAnsibleCode = { type: "fetch_code", arguments: { remoteUrl: `${REMOTE}/infra`, checkout: "main", path: "infra" } }; const thenDeploy = { type: "ansible_playbook.js", arguments: { path: "infra", playbooks: "playbooks/ci.yml" } }; [fetchAnsibleCode, thenDeploy].forEach((deploymentStage) => gitHookPipeline.addStage({ parallelJobs: [deploymentStage] })); return gitHookPipeline.build(); }; var main = () => { const data = getPipeline().serialize(); process.stdout.write(data); }; main();