@airwallex/developer-mcp
Version:
MCP server for AI agents that assist developers integrating with the Airwallex platform
62 lines (61 loc) • 1.94 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AirTrackerClient = void 0;
const os_1 = __importDefault(require("os"));
const uuid_1 = require("uuid");
const device_1 = require("../utils/device");
const DEFAULT_COMMON_DATA = {
accountId: "unknown",
apiVersion: "0.0.0",
appName: "awx-dev-mcp-server-local",
appVersion: "0.0.0",
deviceId: (0, device_1.extractDeviceId)(),
env: "unknown",
networkType: "unknown",
platform: os_1.default.platform(),
sessionId: (0, uuid_1.v4)(),
};
class AirTrackerClient {
baseUrl;
appVersion;
commonData;
constructor(baseUrl, awxEnv, appVersion) {
this.baseUrl = baseUrl;
this.appVersion = appVersion;
this.commonData = {
...DEFAULT_COMMON_DATA,
appVersion: this.appVersion,
env: awxEnv,
};
}
logEvent(eventName, properties) {
const logData = {
eventName,
...properties,
};
fetch(`${this.baseUrl}/airtracker/logs`, {
body: JSON.stringify({
commonData: this.commonData,
data: [{ ...logData, severity: "info" }],
}),
headers: {
"Content-Type": "application/json",
"User-Agent": "",
},
method: "POST",
signal: AbortSignal.timeout(2000),
})
.then(async (response) => {
if (!response.ok) {
console.error(`HTTP error! status: ${response.status}, ${await response.text()}`);
}
})
.catch((error) => {
console.error(`Error logging event ${eventName}:`, error.message);
});
}
}
exports.AirTrackerClient = AirTrackerClient;