UNPKG

mcp-ts-template

Version:

The definitive, production-grade template for building powerful and scalable Model Context Protocol (MCP) servers with TypeScript, featuring built-in observability (OpenTelemetry), declarative tooling, robust error handling, and a modular, DI-driven archi

1,383 lines (1,328 loc) 6.41 MB
#!/usr/bin/env node import { createRequire } from "node:module"; var __create = Object.create; var __getProtoOf = Object.getPrototypeOf; var __defProp = Object.defineProperty; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __toESM = (mod2, isNodeMode, target) => { target = mod2 != null ? __create(__getProtoOf(mod2)) : {}; const to = isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target; for (let key of __getOwnPropNames(mod2)) if (!__hasOwnProp.call(to, key)) __defProp(to, key, { get: () => mod2[key], enumerable: true }); return to; }; var __commonJS = (cb, mod2) => () => (mod2 || cb((mod2 = { exports: {} }).exports, mod2), mod2.exports); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true, configurable: true, set: (newValue) => all[name] = () => newValue }); }; var __legacyDecorateClassTS = function(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1;i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index); var __legacyMetadataTS = (k, v) => { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __require = /* @__PURE__ */ createRequire(import.meta.url); // node_modules/dotenv/package.json var require_package = __commonJS((exports, module) => { module.exports = { name: "dotenv", version: "17.2.3", description: "Loads environment variables from .env file", main: "lib/main.js", types: "lib/main.d.ts", exports: { ".": { types: "./lib/main.d.ts", require: "./lib/main.js", default: "./lib/main.js" }, "./config": "./config.js", "./config.js": "./config.js", "./lib/env-options": "./lib/env-options.js", "./lib/env-options.js": "./lib/env-options.js", "./lib/cli-options": "./lib/cli-options.js", "./lib/cli-options.js": "./lib/cli-options.js", "./package.json": "./package.json" }, scripts: { "dts-check": "tsc --project tests/types/tsconfig.json", lint: "standard", pretest: "npm run lint && npm run dts-check", test: "tap run tests/**/*.js --allow-empty-coverage --disable-coverage --timeout=60000", "test:coverage": "tap run tests/**/*.js --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov", prerelease: "npm test", release: "standard-version" }, repository: { type: "git", url: "git://github.com/motdotla/dotenv.git" }, homepage: "https://github.com/motdotla/dotenv#readme", funding: "https://dotenvx.com", keywords: [ "dotenv", "env", ".env", "environment", "variables", "config", "settings" ], readmeFilename: "README.md", license: "BSD-2-Clause", devDependencies: { "@types/node": "^18.11.3", decache: "^4.6.2", sinon: "^14.0.1", standard: "^17.0.0", "standard-version": "^9.5.0", tap: "^19.2.0", typescript: "^4.8.4" }, engines: { node: ">=12" }, browser: { fs: false } }; }); // node_modules/dotenv/lib/main.js var require_main = __commonJS((exports, module) => { var fs = __require("fs"); var path = __require("path"); var os = __require("os"); var crypto2 = __require("crypto"); var packageJson = require_package(); var version = packageJson.version; var TIPS = [ "\uD83D\uDD10 encrypt with Dotenvx: https://dotenvx.com", "\uD83D\uDD10 prevent committing .env to code: https://dotenvx.com/precommit", "\uD83D\uDD10 prevent building .env in docker: https://dotenvx.com/prebuild", "\uD83D\uDCE1 add observability to secrets: https://dotenvx.com/ops", "\uD83D\uDC65 sync secrets across teammates & machines: https://dotenvx.com/ops", "\uD83D\uDDC2️ backup and recover secrets: https://dotenvx.com/ops", "✅ audit secrets and track compliance: https://dotenvx.com/ops", "\uD83D\uDD04 add secrets lifecycle management: https://dotenvx.com/ops", "\uD83D\uDD11 add access controls to secrets: https://dotenvx.com/ops", "\uD83D\uDEE0️ run anywhere with `dotenvx run -- yourcommand`", "⚙️ specify custom .env file path with { path: '/custom/path/.env' }", "⚙️ enable debug logging with { debug: true }", "⚙️ override existing env vars with { override: true }", "⚙️ suppress all logs with { quiet: true }", "⚙️ write to custom object with { processEnv: myObject }", "⚙️ load multiple .env files with { path: ['.env.local', '.env'] }" ]; function _getRandomTip() { return TIPS[Math.floor(Math.random() * TIPS.length)]; } function parseBoolean(value) { if (typeof value === "string") { return !["false", "0", "no", "off", ""].includes(value.toLowerCase()); } return Boolean(value); } function supportsAnsi() { return process.stdout.isTTY; } function dim(text) { return supportsAnsi() ? `\x1B[2m${text}\x1B[0m` : text; } var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg; function parse(src) { const obj = {}; let lines = src.toString(); lines = lines.replace(/\r\n?/mg, ` `); let match; while ((match = LINE.exec(lines)) != null) { const key = match[1]; let value = match[2] || ""; value = value.trim(); const maybeQuote = value[0]; value = value.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"); if (maybeQuote === '"') { value = value.replace(/\\n/g, ` `); value = value.replace(/\\r/g, "\r"); } obj[key] = value; } return obj; } function _parseVault(options) { options = options || {}; const vaultPath = _vaultPath(options); options.path = vaultPath; const result = DotenvModule.configDotenv(options); if (!result.parsed) { const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`); err.code = "MISSING_DATA"; throw err; } const keys = _dotenvKey(options).split(","); const length = keys.length; let decrypted; for (let i = 0;i < length; i++) { try { const key = keys[i].trim(); const attrs = _instructions(result, key); decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key); break; } catch (error) { if (i + 1 >= length) { throw error; } } } return DotenvModule.parse(decrypted); } function _warn(message) { console.error(`[dotenv@${version}][WARN] ${message}`); } function _debug(message) { console.log(`[dotenv@${version}][DEBUG] ${message}`); } function _log(message) { console.log(`[dotenv@${version}] ${message}`); } function _dotenvKey(options) { if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) { return options.DOTENV_KEY; } if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) { return process.env.DOTENV_KEY; } return ""; } function _instructions(result, dotenvKey) { let uri; try { uri = new URL(dotenvKey); } catch (error) { if (error.code === "ERR_INVALID_URL") { const err = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development"); err.code = "INVALID_DOTENV_KEY"; throw err; } throw error; } const key = uri.password; if (!key) { const err = new Error("INVALID_DOTENV_KEY: Missing key part"); err.code = "INVALID_DOTENV_KEY"; throw err; } const environment = uri.searchParams.get("environment"); if (!environment) { const err = new Error("INVALID_DOTENV_KEY: Missing environment part"); err.code = "INVALID_DOTENV_KEY"; throw err; } const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`; const ciphertext = result.parsed[environmentKey]; if (!ciphertext) { const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`); err.code = "NOT_FOUND_DOTENV_ENVIRONMENT"; throw err; } return { ciphertext, key }; } function _vaultPath(options) { let possibleVaultPath = null; if (options && options.path && options.path.length > 0) { if (Array.isArray(options.path)) { for (const filepath of options.path) { if (fs.existsSync(filepath)) { possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`; } } } else { possibleVaultPath = options.path.endsWith(".vault") ? options.path : `${options.path}.vault`; } } else { possibleVaultPath = path.resolve(process.cwd(), ".env.vault"); } if (fs.existsSync(possibleVaultPath)) { return possibleVaultPath; } return null; } function _resolveHome(envPath) { return envPath[0] === "~" ? path.join(os.homedir(), envPath.slice(1)) : envPath; } function _configVault(options) { const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || options && options.debug); const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || options && options.quiet); if (debug || !quiet) { _log("Loading env from encrypted .env.vault"); } const parsed = DotenvModule._parseVault(options); let processEnv = process.env; if (options && options.processEnv != null) { processEnv = options.processEnv; } DotenvModule.populate(processEnv, parsed, options); return { parsed }; } function configDotenv(options) { const dotenvPath = path.resolve(process.cwd(), ".env"); let encoding = "utf8"; let processEnv = process.env; if (options && options.processEnv != null) { processEnv = options.processEnv; } let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || options && options.debug); let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || options && options.quiet); if (options && options.encoding) { encoding = options.encoding; } else { if (debug) { _debug("No encoding is specified. UTF-8 is used by default"); } } let optionPaths = [dotenvPath]; if (options && options.path) { if (!Array.isArray(options.path)) { optionPaths = [_resolveHome(options.path)]; } else { optionPaths = []; for (const filepath of options.path) { optionPaths.push(_resolveHome(filepath)); } } } let lastError; const parsedAll = {}; for (const path2 of optionPaths) { try { const parsed = DotenvModule.parse(fs.readFileSync(path2, { encoding })); DotenvModule.populate(parsedAll, parsed, options); } catch (e) { if (debug) { _debug(`Failed to load ${path2} ${e.message}`); } lastError = e; } } const populated = DotenvModule.populate(processEnv, parsedAll, options); debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug); quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet); if (debug || !quiet) { const keysCount = Object.keys(populated).length; const shortPaths = []; for (const filePath of optionPaths) { try { const relative = path.relative(process.cwd(), filePath); shortPaths.push(relative); } catch (e) { if (debug) { _debug(`Failed to load ${filePath} ${e.message}`); } lastError = e; } } _log(`injecting env (${keysCount}) from ${shortPaths.join(",")} ${dim(`-- tip: ${_getRandomTip()}`)}`); } if (lastError) { return { parsed: parsedAll, error: lastError }; } else { return { parsed: parsedAll }; } } function config(options) { if (_dotenvKey(options).length === 0) { return DotenvModule.configDotenv(options); } const vaultPath = _vaultPath(options); if (!vaultPath) { _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`); return DotenvModule.configDotenv(options); } return DotenvModule._configVault(options); } function decrypt(encrypted, keyStr) { const key = Buffer.from(keyStr.slice(-64), "hex"); let ciphertext = Buffer.from(encrypted, "base64"); const nonce = ciphertext.subarray(0, 12); const authTag = ciphertext.subarray(-16); ciphertext = ciphertext.subarray(12, -16); try { const aesgcm = crypto2.createDecipheriv("aes-256-gcm", key, nonce); aesgcm.setAuthTag(authTag); return `${aesgcm.update(ciphertext)}${aesgcm.final()}`; } catch (error) { const isRange = error instanceof RangeError; const invalidKeyLength = error.message === "Invalid key length"; const decryptionFailed = error.message === "Unsupported state or unable to authenticate data"; if (isRange || invalidKeyLength) { const err = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)"); err.code = "INVALID_DOTENV_KEY"; throw err; } else if (decryptionFailed) { const err = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY"); err.code = "DECRYPTION_FAILED"; throw err; } else { throw error; } } } function populate(processEnv, parsed, options = {}) { const debug = Boolean(options && options.debug); const override = Boolean(options && options.override); const populated = {}; if (typeof parsed !== "object") { const err = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate"); err.code = "OBJECT_REQUIRED"; throw err; } for (const key of Object.keys(parsed)) { if (Object.prototype.hasOwnProperty.call(processEnv, key)) { if (override === true) { processEnv[key] = parsed[key]; populated[key] = parsed[key]; } if (debug) { if (override === true) { _debug(`"${key}" is already defined and WAS overwritten`); } else { _debug(`"${key}" is already defined and was NOT overwritten`); } } } else { processEnv[key] = parsed[key]; populated[key] = parsed[key]; } } return populated; } var DotenvModule = { configDotenv, _configVault, _parseVault, config, decrypt, parse, populate }; exports.configDotenv = DotenvModule.configDotenv; exports._configVault = DotenvModule._configVault; exports._parseVault = DotenvModule._parseVault; exports.config = DotenvModule.config; exports.decrypt = DotenvModule.decrypt; exports.parse = DotenvModule.parse; exports.populate = DotenvModule.populate; module.exports = DotenvModule; }); // node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js var require_globalThis = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports._globalThis = undefined; exports._globalThis = typeof globalThis === "object" ? globalThis : global; }); // node_modules/@opentelemetry/api/build/src/platform/node/index.js var require_node = __commonJS((exports) => { var __createBinding = exports && exports.__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 = exports && exports.__exportStar || function(m, exports2) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(require_globalThis(), exports); }); // node_modules/@opentelemetry/api/build/src/platform/index.js var require_platform = __commonJS((exports) => { var __createBinding = exports && exports.__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 = exports && exports.__exportStar || function(m, exports2) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(require_node(), exports); }); // node_modules/@opentelemetry/api/build/src/version.js var require_version = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.VERSION = undefined; exports.VERSION = "1.9.0"; }); // node_modules/@opentelemetry/api/build/src/internal/semver.js var require_semver = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.isCompatible = exports._makeCompatibilityCheck = undefined; var version_1 = require_version(); var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; function _makeCompatibilityCheck(ownVersion) { const acceptedVersions = new Set([ownVersion]); const rejectedVersions = new Set; const myVersionMatch = ownVersion.match(re); if (!myVersionMatch) { return () => false; } const ownVersionParsed = { major: +myVersionMatch[1], minor: +myVersionMatch[2], patch: +myVersionMatch[3], prerelease: myVersionMatch[4] }; if (ownVersionParsed.prerelease != null) { return function isExactmatch(globalVersion) { return globalVersion === ownVersion; }; } function _reject(v) { rejectedVersions.add(v); return false; } function _accept(v) { acceptedVersions.add(v); return true; } return function isCompatible(globalVersion) { if (acceptedVersions.has(globalVersion)) { return true; } if (rejectedVersions.has(globalVersion)) { return false; } const globalVersionMatch = globalVersion.match(re); if (!globalVersionMatch) { return _reject(globalVersion); } const globalVersionParsed = { major: +globalVersionMatch[1], minor: +globalVersionMatch[2], patch: +globalVersionMatch[3], prerelease: globalVersionMatch[4] }; if (globalVersionParsed.prerelease != null) { return _reject(globalVersion); } if (ownVersionParsed.major !== globalVersionParsed.major) { return _reject(globalVersion); } if (ownVersionParsed.major === 0) { if (ownVersionParsed.minor === globalVersionParsed.minor && ownVersionParsed.patch <= globalVersionParsed.patch) { return _accept(globalVersion); } return _reject(globalVersion); } if (ownVersionParsed.minor <= globalVersionParsed.minor) { return _accept(globalVersion); } return _reject(globalVersion); }; } exports._makeCompatibilityCheck = _makeCompatibilityCheck; exports.isCompatible = _makeCompatibilityCheck(version_1.VERSION); }); // node_modules/@opentelemetry/api/build/src/internal/global-utils.js var require_global_utils = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = undefined; var platform_1 = require_platform(); var version_1 = require_version(); var semver_1 = require_semver(); var major = version_1.VERSION.split(".")[0]; var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(`opentelemetry.js.api.${major}`); var _global = platform_1._globalThis; function registerGlobal(type, instance, diag, allowOverride = false) { var _a2; const api2 = _global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a2 = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a2 !== undefined ? _a2 : { version: version_1.VERSION }; if (!allowOverride && api2[type]) { const err = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${type}`); diag.error(err.stack || err.message); return false; } if (api2.version !== version_1.VERSION) { const err = new Error(`@opentelemetry/api: Registration of version v${api2.version} for ${type} does not match previously registered API v${version_1.VERSION}`); diag.error(err.stack || err.message); return false; } api2[type] = instance; diag.debug(`@opentelemetry/api: Registered a global for ${type} v${version_1.VERSION}.`); return true; } exports.registerGlobal = registerGlobal; function getGlobal(type) { var _a2, _b; const globalVersion = (_a2 = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a2 === undefined ? undefined : _a2.version; if (!globalVersion || !(0, semver_1.isCompatible)(globalVersion)) { return; } return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === undefined ? undefined : _b[type]; } exports.getGlobal = getGlobal; function unregisterGlobal(type, diag) { diag.debug(`@opentelemetry/api: Unregistering a global for ${type} v${version_1.VERSION}.`); const api2 = _global[GLOBAL_OPENTELEMETRY_API_KEY]; if (api2) { delete api2[type]; } } exports.unregisterGlobal = unregisterGlobal; }); // node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js var require_ComponentLogger = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.DiagComponentLogger = undefined; var global_utils_1 = require_global_utils(); class DiagComponentLogger { constructor(props) { this._namespace = props.namespace || "DiagComponentLogger"; } debug(...args) { return logProxy("debug", this._namespace, args); } error(...args) { return logProxy("error", this._namespace, args); } info(...args) { return logProxy("info", this._namespace, args); } warn(...args) { return logProxy("warn", this._namespace, args); } verbose(...args) { return logProxy("verbose", this._namespace, args); } } exports.DiagComponentLogger = DiagComponentLogger; function logProxy(funcName, namespace, args) { const logger = (0, global_utils_1.getGlobal)("diag"); if (!logger) { return; } args.unshift(namespace); return logger[funcName](...args); } }); // node_modules/@opentelemetry/api/build/src/diag/types.js var require_types = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.DiagLogLevel = undefined; var DiagLogLevel; (function(DiagLogLevel2) { DiagLogLevel2[DiagLogLevel2["NONE"] = 0] = "NONE"; DiagLogLevel2[DiagLogLevel2["ERROR"] = 30] = "ERROR"; DiagLogLevel2[DiagLogLevel2["WARN"] = 50] = "WARN"; DiagLogLevel2[DiagLogLevel2["INFO"] = 60] = "INFO"; DiagLogLevel2[DiagLogLevel2["DEBUG"] = 70] = "DEBUG"; DiagLogLevel2[DiagLogLevel2["VERBOSE"] = 80] = "VERBOSE"; DiagLogLevel2[DiagLogLevel2["ALL"] = 9999] = "ALL"; })(DiagLogLevel = exports.DiagLogLevel || (exports.DiagLogLevel = {})); }); // node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js var require_logLevelLogger = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.createLogLevelDiagLogger = undefined; var types_1 = require_types(); function createLogLevelDiagLogger(maxLevel, logger) { if (maxLevel < types_1.DiagLogLevel.NONE) { maxLevel = types_1.DiagLogLevel.NONE; } else if (maxLevel > types_1.DiagLogLevel.ALL) { maxLevel = types_1.DiagLogLevel.ALL; } logger = logger || {}; function _filterFunc(funcName, theLevel) { const theFunc = logger[funcName]; if (typeof theFunc === "function" && maxLevel >= theLevel) { return theFunc.bind(logger); } return function() {}; } return { error: _filterFunc("error", types_1.DiagLogLevel.ERROR), warn: _filterFunc("warn", types_1.DiagLogLevel.WARN), info: _filterFunc("info", types_1.DiagLogLevel.INFO), debug: _filterFunc("debug", types_1.DiagLogLevel.DEBUG), verbose: _filterFunc("verbose", types_1.DiagLogLevel.VERBOSE) }; } exports.createLogLevelDiagLogger = createLogLevelDiagLogger; }); // node_modules/@opentelemetry/api/build/src/api/diag.js var require_diag = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.DiagAPI = undefined; var ComponentLogger_1 = require_ComponentLogger(); var logLevelLogger_1 = require_logLevelLogger(); var types_1 = require_types(); var global_utils_1 = require_global_utils(); var API_NAME = "diag"; class DiagAPI { constructor() { function _logProxy(funcName) { return function(...args) { const logger = (0, global_utils_1.getGlobal)("diag"); if (!logger) return; return logger[funcName](...args); }; } const self2 = this; const setLogger = (logger, optionsOrLogLevel = { logLevel: types_1.DiagLogLevel.INFO }) => { var _a2, _b, _c; if (logger === self2) { const err = new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation"); self2.error((_a2 = err.stack) !== null && _a2 !== undefined ? _a2 : err.message); return false; } if (typeof optionsOrLogLevel === "number") { optionsOrLogLevel = { logLevel: optionsOrLogLevel }; } const oldLogger = (0, global_utils_1.getGlobal)("diag"); const newLogger = (0, logLevelLogger_1.createLogLevelDiagLogger)((_b = optionsOrLogLevel.logLevel) !== null && _b !== undefined ? _b : types_1.DiagLogLevel.INFO, logger); if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) { const stack = (_c = new Error().stack) !== null && _c !== undefined ? _c : "<failed to generate stacktrace>"; oldLogger.warn(`Current logger will be overwritten from ${stack}`); newLogger.warn(`Current logger will overwrite one already registered from ${stack}`); } return (0, global_utils_1.registerGlobal)("diag", newLogger, self2, true); }; self2.setLogger = setLogger; self2.disable = () => { (0, global_utils_1.unregisterGlobal)(API_NAME, self2); }; self2.createComponentLogger = (options) => { return new ComponentLogger_1.DiagComponentLogger(options); }; self2.verbose = _logProxy("verbose"); self2.debug = _logProxy("debug"); self2.info = _logProxy("info"); self2.warn = _logProxy("warn"); self2.error = _logProxy("error"); } static instance() { if (!this._instance) { this._instance = new DiagAPI; } return this._instance; } } exports.DiagAPI = DiagAPI; }); // node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js var require_baggage_impl = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.BaggageImpl = undefined; class BaggageImpl { constructor(entries) { this._entries = entries ? new Map(entries) : new Map; } getEntry(key) { const entry = this._entries.get(key); if (!entry) { return; } return Object.assign({}, entry); } getAllEntries() { return Array.from(this._entries.entries()).map(([k, v]) => [k, v]); } setEntry(key, entry) { const newBaggage = new BaggageImpl(this._entries); newBaggage._entries.set(key, entry); return newBaggage; } removeEntry(key) { const newBaggage = new BaggageImpl(this._entries); newBaggage._entries.delete(key); return newBaggage; } removeEntries(...keys) { const newBaggage = new BaggageImpl(this._entries); for (const key of keys) { newBaggage._entries.delete(key); } return newBaggage; } clear() { return new BaggageImpl; } } exports.BaggageImpl = BaggageImpl; }); // node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js var require_symbol = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.baggageEntryMetadataSymbol = undefined; exports.baggageEntryMetadataSymbol = Symbol("BaggageEntryMetadata"); }); // node_modules/@opentelemetry/api/build/src/baggage/utils.js var require_utils = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.baggageEntryMetadataFromString = exports.createBaggage = undefined; var diag_1 = require_diag(); var baggage_impl_1 = require_baggage_impl(); var symbol_1 = require_symbol(); var diag = diag_1.DiagAPI.instance(); function createBaggage(entries = {}) { return new baggage_impl_1.BaggageImpl(new Map(Object.entries(entries))); } exports.createBaggage = createBaggage; function baggageEntryMetadataFromString(str) { if (typeof str !== "string") { diag.error(`Cannot create baggage metadata from unknown type: ${typeof str}`); str = ""; } return { __TYPE__: symbol_1.baggageEntryMetadataSymbol, toString() { return str; } }; } exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString; }); // node_modules/@opentelemetry/api/build/src/context/context.js var require_context = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ROOT_CONTEXT = exports.createContextKey = undefined; function createContextKey(description) { return Symbol.for(description); } exports.createContextKey = createContextKey; class BaseContext { constructor(parentContext) { const self2 = this; self2._currentContext = parentContext ? new Map(parentContext) : new Map; self2.getValue = (key) => self2._currentContext.get(key); self2.setValue = (key, value) => { const context = new BaseContext(self2._currentContext); context._currentContext.set(key, value); return context; }; self2.deleteValue = (key) => { const context = new BaseContext(self2._currentContext); context._currentContext.delete(key); return context; }; } } exports.ROOT_CONTEXT = new BaseContext; }); // node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js var require_consoleLogger = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.DiagConsoleLogger = undefined; var consoleMap = [ { n: "error", c: "error" }, { n: "warn", c: "warn" }, { n: "info", c: "info" }, { n: "debug", c: "debug" }, { n: "verbose", c: "trace" } ]; class DiagConsoleLogger { constructor() { function _consoleFunc(funcName) { return function(...args) { if (console) { let theFunc = console[funcName]; if (typeof theFunc !== "function") { theFunc = console.log; } if (typeof theFunc === "function") { return theFunc.apply(console, args); } } }; } for (let i = 0;i < consoleMap.length; i++) { this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c); } } } exports.DiagConsoleLogger = DiagConsoleLogger; }); // node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js var require_NoopMeter = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.createNoopMeter = exports.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = exports.NOOP_OBSERVABLE_GAUGE_METRIC = exports.NOOP_OBSERVABLE_COUNTER_METRIC = exports.NOOP_UP_DOWN_COUNTER_METRIC = exports.NOOP_HISTOGRAM_METRIC = exports.NOOP_GAUGE_METRIC = exports.NOOP_COUNTER_METRIC = exports.NOOP_METER = exports.NoopObservableUpDownCounterMetric = exports.NoopObservableGaugeMetric = exports.NoopObservableCounterMetric = exports.NoopObservableMetric = exports.NoopHistogramMetric = exports.NoopGaugeMetric = exports.NoopUpDownCounterMetric = exports.NoopCounterMetric = exports.NoopMetric = exports.NoopMeter = undefined; class NoopMeter { constructor() {} createGauge(_name, _options) { return exports.NOOP_GAUGE_METRIC; } createHistogram(_name, _options) { return exports.NOOP_HISTOGRAM_METRIC; } createCounter(_name, _options) { return exports.NOOP_COUNTER_METRIC; } createUpDownCounter(_name, _options) { return exports.NOOP_UP_DOWN_COUNTER_METRIC; } createObservableGauge(_name, _options) { return exports.NOOP_OBSERVABLE_GAUGE_METRIC; } createObservableCounter(_name, _options) { return exports.NOOP_OBSERVABLE_COUNTER_METRIC; } createObservableUpDownCounter(_name, _options) { return exports.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC; } addBatchObservableCallback(_callback, _observables) {} removeBatchObservableCallback(_callback) {} } exports.NoopMeter = NoopMeter; class NoopMetric { } exports.NoopMetric = NoopMetric; class NoopCounterMetric extends NoopMetric { add(_value, _attributes) {} } exports.NoopCounterMetric = NoopCounterMetric; class NoopUpDownCounterMetric extends NoopMetric { add(_value, _attributes) {} } exports.NoopUpDownCounterMetric = NoopUpDownCounterMetric; class NoopGaugeMetric extends NoopMetric { record(_value, _attributes) {} } exports.NoopGaugeMetric = NoopGaugeMetric; class NoopHistogramMetric extends NoopMetric { record(_value, _attributes) {} } exports.NoopHistogramMetric = NoopHistogramMetric; class NoopObservableMetric { addCallback(_callback) {} removeCallback(_callback) {} } exports.NoopObservableMetric = NoopObservableMetric; class NoopObservableCounterMetric extends NoopObservableMetric { } exports.NoopObservableCounterMetric = NoopObservableCounterMetric; class NoopObservableGaugeMetric extends NoopObservableMetric { } exports.NoopObservableGaugeMetric = NoopObservableGaugeMetric; class NoopObservableUpDownCounterMetric extends NoopObservableMetric { } exports.NoopObservableUpDownCounterMetric = NoopObservableUpDownCounterMetric; exports.NOOP_METER = new NoopMeter; exports.NOOP_COUNTER_METRIC = new NoopCounterMetric; exports.NOOP_GAUGE_METRIC = new NoopGaugeMetric; exports.NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric; exports.NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric; exports.NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric; exports.NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric; exports.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric; function createNoopMeter() { return exports.NOOP_METER; } exports.createNoopMeter = createNoopMeter; }); // node_modules/@opentelemetry/api/build/src/metrics/Metric.js var require_Metric = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ValueType = undefined; var ValueType; (function(ValueType2) { ValueType2[ValueType2["INT"] = 0] = "INT"; ValueType2[ValueType2["DOUBLE"] = 1] = "DOUBLE"; })(ValueType = exports.ValueType || (exports.ValueType = {})); }); // node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js var require_TextMapPropagator = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultTextMapSetter = exports.defaultTextMapGetter = undefined; exports.defaultTextMapGetter = { get(carrier, key) { if (carrier == null) { return; } return carrier[key]; }, keys(carrier) { if (carrier == null) { return []; } return Object.keys(carrier); } }; exports.defaultTextMapSetter = { set(carrier, key, value) { if (carrier == null) { return; } carrier[key] = value; } }; }); // node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js var require_NoopContextManager = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.NoopContextManager = undefined; var context_1 = require_context(); class NoopContextManager { active() { return context_1.ROOT_CONTEXT; } with(_context, fn, thisArg, ...args) { return fn.call(thisArg, ...args); } bind(_context, target) { return target; } enable() { return this; } disable() { return this; } } exports.NoopContextManager = NoopContextManager; }); // node_modules/@opentelemetry/api/build/src/api/context.js var require_context2 = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ContextAPI = undefined; var NoopContextManager_1 = require_NoopContextManager(); var global_utils_1 = require_global_utils(); var diag_1 = require_diag(); var API_NAME = "context"; var NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager; class ContextAPI { constructor() {} static getInstance() { if (!this._instance) { this._instance = new ContextAPI; } return this._instance; } setGlobalContextManager(contextManager) { return (0, global_utils_1.registerGlobal)(API_NAME, contextManager, diag_1.DiagAPI.instance()); } active() { return this._getContextManager().active(); } with(context, fn, thisArg, ...args) { return this._getContextManager().with(context, fn, thisArg, ...args); } bind(context, target) { return this._getContextManager().bind(context, target); } _getContextManager() { return (0, global_utils_1.getGlobal)(API_NAME) || NOOP_CONTEXT_MANAGER; } disable() { this._getContextManager().disable(); (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance()); } } exports.ContextAPI = ContextAPI; }); // node_modules/@opentelemetry/api/build/src/trace/trace_flags.js var require_trace_flags = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.TraceFlags = undefined; var TraceFlags; (function(TraceFlags2) { TraceFlags2[TraceFlags2["NONE"] = 0] = "NONE"; TraceFlags2[TraceFlags2["SAMPLED"] = 1] = "SAMPLED"; })(TraceFlags = exports.TraceFlags || (exports.TraceFlags = {})); }); // node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js var require_invalid_span_constants = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = undefined; var trace_flags_1 = require_trace_flags(); exports.INVALID_SPANID = "0000000000000000"; exports.INVALID_TRACEID = "00000000000000000000000000000000"; exports.INVALID_SPAN_CONTEXT = { traceId: exports.INVALID_TRACEID, spanId: exports.INVALID_SPANID, traceFlags: trace_flags_1.TraceFlags.NONE }; }); // node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js var require_NonRecordingSpan = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.NonRecordingSpan = undefined; var invalid_span_constants_1 = require_invalid_span_constants(); class NonRecordingSpan { constructor(_spanContext = invalid_span_constants_1.INVALID_SPAN_CONTEXT) { this._spanContext = _spanContext; } spanContext() { return this._spanContext; } setAttribute(_key, _value) { return this; } setAttributes(_attributes) { return this; } addEvent(_name, _attributes) { return this; } addLink(_link) { return this; } addLinks(_links) { return this; } setStatus(_status) { return this; } updateName(_name) { return this; } end(_endTime) {} isRecording() { return false; } recordException(_exception, _time) {} } exports.NonRecordingSpan = NonRecordingSpan; }); // node_modules/@opentelemetry/api/build/src/trace/context-utils.js var require_context_utils = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getSpanContext = exports.setSpanContext = exports.deleteSpan = exports.setSpan = exports.getActiveSpan = exports.getSpan = undefined; var context_1 = require_context(); var NonRecordingSpan_1 = require_NonRecordingSpan(); var context_2 = require_context2(); var SPAN_KEY = (0, context_1.createContextKey)("OpenTelemetry Context Key SPAN"); function getSpan(context) { return context.getValue(SPAN_KEY) || undefined; } exports.getSpan = getSpan; function getActiveSpan() { return getSpan(context_2.ContextAPI.getInstance().active()); } exports.getActiveSpan = getActiveSpan; function setSpan(context, span) { return context.setValue(SPAN_KEY, span); } exports.setSpan = setSpan; function deleteSpan(context) { return context.deleteValue(SPAN_KEY); } exports.deleteSpan = deleteSpan; function setSpanContext(context, spanContext) { return setSpan(context, new NonRecordingSpan_1.NonRecordingSpan(spanContext)); } exports.setSpanContext = setSpanContext; function getSpanContext(context) { var _a2; return (_a2 = getSpan(context)) === null || _a2 === undefined ? undefined : _a2.spanContext(); } exports.getSpanContext = getSpanContext; }); // node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js var require_spancontext_utils = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapSpanContext = exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = undefined; var invalid_span_constants_1 = require_invalid_span_constants(); var NonRecordingSpan_1 = require_NonRecordingSpan(); var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i; var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i; function isValidTraceId(traceId) { return VALID_TRACEID_REGEX.test(traceId) && traceId !== invalid_span_constants_1.INVALID_TRACEID; } exports.isValidTraceId = isValidTraceId; function isValidSpanId(spanId) { return VALID_SPANID_REGEX.test(spanId) && spanId !== invalid_span_constants_1.INVALID_SPANID; } exports.isValidSpanId = isValidSpanId; function isSpanContextValid(spanContext) { return isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId); } exports.isSpanContextValid = isSpanContextValid; function wrapSpanContext(spanContext) { return new NonRecordingSpan_1.NonRecordingSpan(spanContext); } exports.wrapSpanContext = wrapSpanContext; }); // node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js var require_NoopTracer = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.NoopTracer = undefined; var context_1 = require_context2(); var context_utils_1 = require_context_utils(); var NonRecordingSpan_1 = require_NonRecordingSpan(); var spancontext_utils_1 = require_spancontext_utils(); var contextApi = context_1.ContextAPI.getInstance(); class NoopTracer { startSpan(name, options, context = contextApi.active()) { const root = Boolean(options === null || options === undefined ? undefined : options.root); if (root) { return new NonRecordingSpan_1.NonRecordingSpan; } const parentFromContext = context && (0, context_utils_1.getSpanContext)(context); if (isSpanContext(parentFromContext) && (0, spancontext_utils_1.isSpanContextValid)(parentFromContext)) { return new NonRecordingSpan_1.NonRecordingSpan(parentFromContext); } else { return new NonRecordingSpan_1.NonRecordingSpan; } } startActiveSpan(name, arg2, arg3, arg4) { let opts; let ctx; let fn; if (arguments.length < 2) { return; } else if (arguments.length === 2) { fn = arg2; } else if (arguments.length === 3) { opts = arg2; fn = arg3; } else { opts = arg2; ctx = arg3; fn = arg4; } const parentContext = ctx !== null && ctx !== undefined ? ctx : contextApi.active(); const span = this.startSpan(name, opts, parentContext); const contextWithSpanSet = (0, context_utils_1.setSpan)(parentContext, span); return contextApi.with(contextWithSpanSet, fn, undefined, span); } } exports.NoopTracer = NoopTracer; function isSpanContext(spanContext) { return typeof spanContext === "object" && typeof spanContext["spanId"] === "string" && typeof spanContext["traceId"] === "string" && typeof spanContext["traceFlags"] === "number"; } }); // node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js var require_ProxyTracer = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyTracer = undefined; var NoopTracer_1 = require_NoopTracer(); var NOOP_TRACER = new NoopTracer_1.NoopTracer; class ProxyTracer { constructor(_provider, name, version2, options) { this._provider = _provider; this.name = name; this.version = version2; this.options = options; } startSpan(name, options, context) { return this._getTracer().startSpan(name, options, context); } startActiveSpan(_name, _options, _context, _fn) { const tracer = this._getTracer(); return Reflect.apply(tracer.startActiveSpan, tracer, arguments); } _getTracer() { if (this._delegate) { return this._delegate; } const tracer = this._provider.getDelegateTracer(this.name, this.version, this.options); if (!tracer) { return NOOP_TRACER; } this._delegate = tracer; return this._delegate; } } exports.ProxyTracer = ProxyTracer; }); // node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js var require_NoopTracerProvider = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.NoopTracerProvider = undefined; var NoopTracer_1 = require_NoopTracer(); class NoopTracerProvider { getTracer(_name, _version, _options) { return new NoopTracer_1.NoopTracer; } } exports.NoopTracerProvider = NoopTracerProvider; }); // node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js var require_ProxyTracerProvider = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyTracerProvider = undefined; var ProxyTracer_1 = require_ProxyTracer(); var NoopTracerProvider_1 = require_NoopTracerProvider(); var NOOP_TRACER_PROVIDER = new NoopTracerProvider_1.NoopTracerProvider; class ProxyTracerProvider { getTracer(name, version2, options) { var _a2; return (_a2 = this.getDelegateTracer(name, version2, options)) !== null && _a2 !== undefined ? _a2 : new ProxyTracer_1.ProxyTracer(this, name, version2, options); } getDelegate() { var _a2; return (_a2 = this._delegate) !== null && _a2 !== undefined ? _a2 : NOOP_TRACER_PROVIDER; } setDelegate(delegate) { this._delegate = delegate; } getDelegateTracer(name, version2, options) { var _a2; return (_a2 = this._delegate) === null || _a2 === undefined ? undefined : _a2.getTracer(name, version2, options); } } exports.ProxyTracerProvider = ProxyTracerProvider; }); // node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js var require_SamplingResult = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.SamplingDecision = undefined; var SamplingDecision; (function(SamplingDecision2) { SamplingDecision2[SamplingDecision2["NOT_RECORD"] = 0] = "NOT_RECORD"; SamplingDecision2[SamplingDecision2["RECORD"] = 1] = "RECORD"; SamplingDecision2[SamplingDecision2["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED"; })(SamplingDecision = exports.SamplingDecision || (exports.SamplingDecision = {})); }); // node_modules/@opentelemetry/api/build/src/trace/span_kind.js var require_span_kind = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.SpanKind = undefined; var SpanKind; (function(SpanKind2) { SpanKind2[SpanKind2["INTERNAL"] = 0] = "INTERNAL"; SpanKind2[SpanKind2["SERVER"] = 1] = "SERVER"; SpanKind2[SpanKind2["CLIENT"] = 2] = "CLIENT"; SpanKind2[SpanKind2["PRODUCER"] = 3] = "PRODUCER"; SpanKind2[SpanKind2["CONSUMER"] = 4] = "CONSUMER"; })(SpanKind = exports.SpanKind || (exports.SpanKind = {})