Skip to main content
Glama
ssv445

Lorem Ipsum MCP Server

by ssv445
logger.js13.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.zipRight = exports.zipLeft = exports.zip = exports.sync = exports.succeed = exports.structuredMessage = exports.structuredLogger = exports.stringLogger = exports.simple = exports.prettyLoggerDefault = exports.prettyLogger = exports.none = exports.mapInputOptions = exports.mapInput = exports.map = exports.makeLogger = exports.logfmtLogger = exports.jsonLogger = exports.isLogger = exports.filterLogLevel = exports.LoggerTypeId = void 0; var Arr = _interopRequireWildcard(require("../Array.js")); var Context = _interopRequireWildcard(require("../Context.js")); var FiberRefs = _interopRequireWildcard(require("../FiberRefs.js")); var _Function = require("../Function.js"); var _GlobalValue = require("../GlobalValue.js"); var HashMap = _interopRequireWildcard(require("../HashMap.js")); var Inspectable = _interopRequireWildcard(require("../Inspectable.js")); var List = _interopRequireWildcard(require("../List.js")); var Option = _interopRequireWildcard(require("../Option.js")); var _Pipeable = require("../Pipeable.js"); var Cause = _interopRequireWildcard(require("./cause.js")); var defaultServices = _interopRequireWildcard(require("./defaultServices.js")); var _console = require("./defaultServices/console.js"); var fiberId_ = _interopRequireWildcard(require("./fiberId.js")); var logSpan_ = _interopRequireWildcard(require("./logSpan.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /** @internal */ const LoggerSymbolKey = "effect/Logger"; /** @internal */ const LoggerTypeId = exports.LoggerTypeId = /*#__PURE__*/Symbol.for(LoggerSymbolKey); const loggerVariance = { /* c8 ignore next */ _Message: _ => _, /* c8 ignore next */ _Output: _ => _ }; /** @internal */ const makeLogger = log => ({ [LoggerTypeId]: loggerVariance, log, pipe() { return (0, _Pipeable.pipeArguments)(this, arguments); } }); /** @internal */ exports.makeLogger = makeLogger; const mapInput = exports.mapInput = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => makeLogger(options => self.log({ ...options, message: f(options.message) }))); /** @internal */ const mapInputOptions = exports.mapInputOptions = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => makeLogger(options => self.log(f(options)))); /** @internal */ const filterLogLevel = exports.filterLogLevel = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => makeLogger(options => f(options.logLevel) ? Option.some(self.log(options)) : Option.none())); /** @internal */ const map = exports.map = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => makeLogger(options => f(self.log(options)))); /** @internal */ const none = exports.none = { [LoggerTypeId]: loggerVariance, log: _Function.constVoid, pipe() { return (0, _Pipeable.pipeArguments)(this, arguments); } }; /** @internal */ const simple = log => ({ [LoggerTypeId]: loggerVariance, log: ({ message }) => log(message), pipe() { return (0, _Pipeable.pipeArguments)(this, arguments); } }); /** @internal */ exports.simple = simple; const succeed = value => { return simple(() => value); }; /** @internal */ exports.succeed = succeed; const sync = evaluate => { return simple(evaluate); }; /** @internal */ exports.sync = sync; const zip = exports.zip = /*#__PURE__*/(0, _Function.dual)(2, (self, that) => makeLogger(options => [self.log(options), that.log(options)])); /** @internal */ const zipLeft = exports.zipLeft = /*#__PURE__*/(0, _Function.dual)(2, (self, that) => map(zip(self, that), tuple => tuple[0])); /** @internal */ const zipRight = exports.zipRight = /*#__PURE__*/(0, _Function.dual)(2, (self, that) => map(zip(self, that), tuple => tuple[1])); /** * Match strings that do not contain any whitespace characters, double quotes, * or equal signs. * * @internal */ const textOnly = /^[^\s"=]*$/; /** * Used by both {@link stringLogger} and {@link logfmtLogger} to render a log * message. * * @internal */ const format = (quoteValue, whitespace) => ({ annotations, cause, date, fiberId, logLevel, message, spans }) => { const formatValue = value => value.match(textOnly) ? value : quoteValue(value); const format = (label, value) => `${logSpan_.formatLabel(label)}=${formatValue(value)}`; const append = (label, value) => " " + format(label, value); let out = format("timestamp", date.toISOString()); out += append("level", logLevel.label); out += append("fiber", fiberId_.threadName(fiberId)); const messages = Arr.ensure(message); for (let i = 0; i < messages.length; i++) { out += append("message", Inspectable.toStringUnknown(messages[i], whitespace)); } if (!Cause.isEmptyType(cause)) { out += append("cause", Cause.pretty(cause, { renderErrorCause: true })); } for (const span of spans) { out += " " + logSpan_.render(date.getTime())(span); } for (const [label, value] of annotations) { out += append(label, Inspectable.toStringUnknown(value, whitespace)); } return out; }; /** @internal */ const escapeDoubleQuotes = s => `"${s.replace(/\\([\s\S])|(")/g, "\\$1$2")}"`; /** @internal */ const stringLogger = exports.stringLogger = /*#__PURE__*/makeLogger(/*#__PURE__*/format(escapeDoubleQuotes)); /** @internal */ const logfmtLogger = exports.logfmtLogger = /*#__PURE__*/makeLogger(/*#__PURE__*/format(JSON.stringify, 0)); /** @internal */ const structuredLogger = exports.structuredLogger = /*#__PURE__*/makeLogger(({ annotations, cause, date, fiberId, logLevel, message, spans }) => { const now = date.getTime(); const annotationsObj = {}; const spansObj = {}; if (HashMap.size(annotations) > 0) { for (const [k, v] of annotations) { annotationsObj[k] = structuredMessage(v); } } if (List.isCons(spans)) { for (const span of spans) { spansObj[span.label] = now - span.startTime; } } const messageArr = Arr.ensure(message); return { message: messageArr.length === 1 ? structuredMessage(messageArr[0]) : messageArr.map(structuredMessage), logLevel: logLevel.label, timestamp: date.toISOString(), cause: Cause.isEmpty(cause) ? undefined : Cause.pretty(cause, { renderErrorCause: true }), annotations: annotationsObj, spans: spansObj, fiberId: fiberId_.threadName(fiberId) }; }); /** @internal */ const structuredMessage = u => { switch (typeof u) { case "bigint": case "function": case "symbol": { return String(u); } default: { return Inspectable.toJSON(u); } } }; /** @internal */ exports.structuredMessage = structuredMessage; const jsonLogger = exports.jsonLogger = /*#__PURE__*/map(structuredLogger, Inspectable.stringifyCircular); /** @internal */ const isLogger = u => { return typeof u === "object" && u != null && LoggerTypeId in u; }; exports.isLogger = isLogger; const withColor = (text, ...colors) => { let out = ""; for (let i = 0; i < colors.length; i++) { out += `\x1b[${colors[i]}m`; } return out + text + "\x1b[0m"; }; const withColorNoop = (text, ..._colors) => text; const colors = { bold: "1", red: "31", green: "32", yellow: "33", blue: "34", cyan: "36", white: "37", gray: "90", black: "30", bgBrightRed: "101" }; const logLevelColors = { None: [], All: [], Trace: [colors.gray], Debug: [colors.blue], Info: [colors.green], Warning: [colors.yellow], Error: [colors.red], Fatal: [colors.bgBrightRed, colors.black] }; const logLevelStyle = { None: "", All: "", Trace: "color:gray", Debug: "color:blue", Info: "color:green", Warning: "color:orange", Error: "color:red", Fatal: "background-color:red;color:white" }; const defaultDateFormat = date => `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}:${date.getSeconds().toString().padStart(2, "0")}.${date.getMilliseconds().toString().padStart(3, "0")}`; const hasProcessStdout = typeof process === "object" && process !== null && typeof process.stdout === "object" && process.stdout !== null; const processStdoutIsTTY = hasProcessStdout && process.stdout.isTTY === true; const hasProcessStdoutOrDeno = hasProcessStdout || "Deno" in globalThis; /** @internal */ const prettyLogger = options => { const mode_ = options?.mode ?? "auto"; const mode = mode_ === "auto" ? hasProcessStdoutOrDeno ? "tty" : "browser" : mode_; const isBrowser = mode === "browser"; const showColors = typeof options?.colors === "boolean" ? options.colors : processStdoutIsTTY || isBrowser; const formatDate = options?.formatDate ?? defaultDateFormat; return isBrowser ? prettyLoggerBrowser({ colors: showColors, formatDate }) : prettyLoggerTty({ colors: showColors, formatDate, stderr: options?.stderr === true }); }; exports.prettyLogger = prettyLogger; const prettyLoggerTty = options => { const processIsBun = typeof process === "object" && "isBun" in process && process.isBun === true; const color = options.colors ? withColor : withColorNoop; return makeLogger(({ annotations, cause, context, date, fiberId, logLevel, message: message_, spans }) => { const services = FiberRefs.getOrDefault(context, defaultServices.currentServices); const console = Context.get(services, _console.consoleTag).unsafe; const log = options.stderr === true ? console.error : console.log; const message = Arr.ensure(message_); let firstLine = color(`[${options.formatDate(date)}]`, colors.white) + ` ${color(logLevel.label, ...logLevelColors[logLevel._tag])}` + ` (${fiberId_.threadName(fiberId)})`; if (List.isCons(spans)) { const now = date.getTime(); const render = logSpan_.render(now); for (const span of spans) { firstLine += " " + render(span); } } firstLine += ":"; let messageIndex = 0; if (message.length > 0) { const firstMaybeString = structuredMessage(message[0]); if (typeof firstMaybeString === "string") { firstLine += " " + color(firstMaybeString, colors.bold, colors.cyan); messageIndex++; } } log(firstLine); if (!processIsBun) console.group(); if (!Cause.isEmpty(cause)) { log(Cause.pretty(cause, { renderErrorCause: true })); } if (messageIndex < message.length) { for (; messageIndex < message.length; messageIndex++) { log(Inspectable.redact(message[messageIndex])); } } if (HashMap.size(annotations) > 0) { for (const [key, value] of annotations) { log(color(`${key}:`, colors.bold, colors.white), Inspectable.redact(value)); } } if (!processIsBun) console.groupEnd(); }); }; const prettyLoggerBrowser = options => { const color = options.colors ? "%c" : ""; return makeLogger(({ annotations, cause, context, date, fiberId, logLevel, message: message_, spans }) => { const services = FiberRefs.getOrDefault(context, defaultServices.currentServices); const console = Context.get(services, _console.consoleTag).unsafe; const message = Arr.ensure(message_); let firstLine = `${color}[${options.formatDate(date)}]`; const firstParams = []; if (options.colors) { firstParams.push("color:gray"); } firstLine += ` ${color}${logLevel.label}${color} (${fiberId_.threadName(fiberId)})`; if (options.colors) { firstParams.push(logLevelStyle[logLevel._tag], ""); } if (List.isCons(spans)) { const now = date.getTime(); const render = logSpan_.render(now); for (const span of spans) { firstLine += " " + render(span); } } firstLine += ":"; let messageIndex = 0; if (message.length > 0) { const firstMaybeString = structuredMessage(message[0]); if (typeof firstMaybeString === "string") { firstLine += ` ${color}${firstMaybeString}`; if (options.colors) { firstParams.push("color:deepskyblue"); } messageIndex++; } } console.groupCollapsed(firstLine, ...firstParams); if (!Cause.isEmpty(cause)) { console.error(Cause.pretty(cause, { renderErrorCause: true })); } if (messageIndex < message.length) { for (; messageIndex < message.length; messageIndex++) { console.log(Inspectable.redact(message[messageIndex])); } } if (HashMap.size(annotations) > 0) { for (const [key, value] of annotations) { const redacted = Inspectable.redact(value); if (options.colors) { console.log(`%c${key}:`, "color:gray", redacted); } else { console.log(`${key}:`, redacted); } } } console.groupEnd(); }); }; /** @internal */ const prettyLoggerDefault = exports.prettyLoggerDefault = /*#__PURE__*/(0, _GlobalValue.globalValue)("effect/Logger/prettyLoggerDefault", () => prettyLogger()); //# sourceMappingURL=logger.js.map

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ssv445/lorem-ipsum-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server