UNPKG

aws-cdk

Version:

AWS CDK Toolkit CLI, the command line tool for CDK apps

103 lines • 10.6 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) 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 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.senderDiagnostics = void 0; exports.sendTelemetry = sendTelemetry; exports.isSuccess = isSuccess; exports.trace = trace; const fs = __importStar(require("node:fs")); const post_telemetry_1 = require("./post-telemetry"); const api_private_error_1 = require("../../api-private-error"); const proxy_agent_1 = require("../proxy-agent"); /** * Budget for the delivery attempt. * * Generous because nothing is waiting on it: this process is detached and the CLI has already exited, * so the only thing a longer timeout costs is a background process living a little longer. It has to * cover a proxy handshake plus the POST on a loaded machine. */ const NETWORK_TIMEOUT_MS = 10_000; /** * POST a telemetry payload, routing through a proxy when one applies. * * Returns the status code for the caller to judge, and lets failures reject: every outcome is handled * in one place, in the entry point. */ async function sendTelemetry(cfg) { if (!cfg?.endpoint) { throw new api_private_error_1.ToolkitError('NoEndpoint', 'No telemetry endpoint was given'); } const url = new URL(cfg.endpoint); // The provider the CLI itself uses, so the child routes the way the parent would have, including // SOCKS and PAC proxies and NO_PROXY from the inherited environment. const { agent } = await new proxy_agent_1.ProxyAgentProvider(exports.senderDiagnostics).create({ proxyAddress: cfg.proxyUrl, caBundlePath: cfg.caBundlePath, }); const res = await (0, post_telemetry_1.postTelemetry)(url, cfg.body ?? { events: [] }, { agent, timeoutMs: cfg.timeoutMs ?? NETWORK_TIMEOUT_MS, }); // Drain, or the socket is never released. res.resume(); return res.statusCode; } function isSuccess(statusCode) { return statusCode !== undefined && statusCode >= 200 && statusCode < 300; } /** * Diagnostics for the detached child, which has no IoHost. */ exports.senderDiagnostics = { defaults: { debug: async (message) => trace(message), }, }; /** * Only visible when the parent was run with `CDK_TELEMETRY_SENDER_DEBUG=1`, which is also what makes * it pass this process's stderr through. Synchronous because `process.exit` discards buffered writes. */ function trace(message) { if (process.env.CDK_TELEMETRY_SENDER_DEBUG !== '1') { return; } try { fs.writeSync(2, `[cdk-telemetry-sender] ${message}\n`); } catch { // Diagnostics must never be the reason anything fails. } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBEQSxzQ0F1QkM7QUFFRCw4QkFFQztBQWVELHNCQVNDO0FBN0dELDRDQUE4QjtBQUU5QixxREFBaUQ7QUFDakQsK0RBQXVEO0FBRXZELGdEQUFvRDtBQUVwRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztBQXNDbEM7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsYUFBYSxDQUFDLEdBQTBCO0lBQzVELElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkIsTUFBTSxJQUFJLGdDQUFZLENBQUMsWUFBWSxFQUFFLGlDQUFpQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVsQyxpR0FBaUc7SUFDakcscUVBQXFFO0lBQ3JFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksZ0NBQWtCLENBQUMseUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdkUsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQzFCLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtLQUMvQixDQUFDLENBQUM7SUFFSCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsOEJBQWEsRUFBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUMvRCxLQUFLO1FBQ0wsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksa0JBQWtCO0tBQy9DLENBQUMsQ0FBQztJQUVILDBDQUEwQztJQUMxQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFYixPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLFNBQVMsQ0FBQyxVQUE4QjtJQUN0RCxPQUFPLFVBQVUsS0FBSyxTQUFTLElBQUksVUFBVSxJQUFJLEdBQUcsSUFBSSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQzNFLENBQUM7QUFFRDs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQTBCO0lBQ3RELFFBQVEsRUFBRTtRQUNSLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0tBQ2pEO0NBQ0YsQ0FBQztBQUVGOzs7R0FHRztBQUNILFNBQWdCLEtBQUssQ0FBQyxPQUFlO0lBQ25DLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNuRCxPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksQ0FBQztRQUNILEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixPQUFPLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCx1REFBdUQ7SUFDekQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCB0eXBlIHsgVGVsZW1ldHJ5QmF0Y2ggfSBmcm9tICcuL3Bvc3QtdGVsZW1ldHJ5JztcbmltcG9ydCB7IHBvc3RUZWxlbWV0cnkgfSBmcm9tICcuL3Bvc3QtdGVsZW1ldHJ5JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL2FwaS1wcml2YXRlLWVycm9yJztcbmltcG9ydCB0eXBlIHsgUHJveHlBZ2VudERpYWdub3N0aWNzIH0gZnJvbSAnLi4vcHJveHktYWdlbnQnO1xuaW1wb3J0IHsgUHJveHlBZ2VudFByb3ZpZGVyIH0gZnJvbSAnLi4vcHJveHktYWdlbnQnO1xuXG4vKipcbiAqIEJ1ZGdldCBmb3IgdGhlIGRlbGl2ZXJ5IGF0dGVtcHQuXG4gKlxuICogR2VuZXJvdXMgYmVjYXVzZSBub3RoaW5nIGlzIHdhaXRpbmcgb24gaXQ6IHRoaXMgcHJvY2VzcyBpcyBkZXRhY2hlZCBhbmQgdGhlIENMSSBoYXMgYWxyZWFkeSBleGl0ZWQsXG4gKiBzbyB0aGUgb25seSB0aGluZyBhIGxvbmdlciB0aW1lb3V0IGNvc3RzIGlzIGEgYmFja2dyb3VuZCBwcm9jZXNzIGxpdmluZyBhIGxpdHRsZSBsb25nZXIuIEl0IGhhcyB0b1xuICogY292ZXIgYSBwcm94eSBoYW5kc2hha2UgcGx1cyB0aGUgUE9TVCBvbiBhIGxvYWRlZCBtYWNoaW5lLlxuICovXG5jb25zdCBORVRXT1JLX1RJTUVPVVRfTVMgPSAxMF8wMDA7XG5cbi8qKlxuICogV2hhdCB0aGUgcGFyZW50IGhhbmRzIHRvIHRoaXMgcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZWxlbWV0cnlTZW5kZXJDb25maWcge1xuICAvKipcbiAgICogQWJzb2x1dGUgVVJMIHRvIFBPU1QgdGhlIHRlbGVtZXRyeSBwYXlsb2FkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGJhdGNoIG9mIGV2ZW50cyB0byBkZWxpdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYm9keTogVGVsZW1ldHJ5QmF0Y2g7XG5cbiAgLyoqXG4gICAqIFByb3h5IHRvIHJvdXRlIHRocm91Z2guIEFuIGVtcHR5IHN0cmluZyBtZWFucyBcImV4cGxpY2l0bHkgbm8gcHJveHlcIiwgYXMgYC0tcHJveHkgJydgIGRvZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmVzb2x2ZWQgZnJvbSB0aGUgaW5oZXJpdGVkIHByb3h5IGVudmlyb25tZW50IHZhcmlhYmxlcywgYXMgaW4gdGhlIHBhcmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcHJveHlVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFic29sdXRlIHBhdGggdG8gYSBDQSBidW5kbGUgdG8gdHJ1c3QuIFRoZSBwYXRoLCBub3QgdGhlIGNvbnRlbnRzOiBhIHN5c3RlbSBidW5kbGUgaXMgfjE5MEtCLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IE5vZGUgdHJ1c3Qgc3RvcmUsIHBsdXMgYW55dGhpbmcgaW4gYE5PREVfRVhUUkFfQ0FfQ0VSVFNgXG4gICAqL1xuICByZWFkb25seSBjYUJ1bmRsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1ZGdldCBmb3IgdGhlIGRlbGl2ZXJ5IGF0dGVtcHQsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMTAwMDBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRNcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQT1NUIGEgdGVsZW1ldHJ5IHBheWxvYWQsIHJvdXRpbmcgdGhyb3VnaCBhIHByb3h5IHdoZW4gb25lIGFwcGxpZXMuXG4gKlxuICogUmV0dXJucyB0aGUgc3RhdHVzIGNvZGUgZm9yIHRoZSBjYWxsZXIgdG8ganVkZ2UsIGFuZCBsZXRzIGZhaWx1cmVzIHJlamVjdDogZXZlcnkgb3V0Y29tZSBpcyBoYW5kbGVkXG4gKiBpbiBvbmUgcGxhY2UsIGluIHRoZSBlbnRyeSBwb2ludC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRUZWxlbWV0cnkoY2ZnOiBUZWxlbWV0cnlTZW5kZXJDb25maWcpOiBQcm9taXNlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICBpZiAoIWNmZz8uZW5kcG9pbnQpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdOb0VuZHBvaW50JywgJ05vIHRlbGVtZXRyeSBlbmRwb2ludCB3YXMgZ2l2ZW4nKTtcbiAgfVxuXG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoY2ZnLmVuZHBvaW50KTtcblxuICAvLyBUaGUgcHJvdmlkZXIgdGhlIENMSSBpdHNlbGYgdXNlcywgc28gdGhlIGNoaWxkIHJvdXRlcyB0aGUgd2F5IHRoZSBwYXJlbnQgd291bGQgaGF2ZSwgaW5jbHVkaW5nXG4gIC8vIFNPQ0tTIGFuZCBQQUMgcHJveGllcyBhbmQgTk9fUFJPWFkgZnJvbSB0aGUgaW5oZXJpdGVkIGVudmlyb25tZW50LlxuICBjb25zdCB7IGFnZW50IH0gPSBhd2FpdCBuZXcgUHJveHlBZ2VudFByb3ZpZGVyKHNlbmRlckRpYWdub3N0aWNzKS5jcmVhdGUoe1xuICAgIHByb3h5QWRkcmVzczogY2ZnLnByb3h5VXJsLFxuICAgIGNhQnVuZGxlUGF0aDogY2ZnLmNhQnVuZGxlUGF0aCxcbiAgfSk7XG5cbiAgY29uc3QgcmVzID0gYXdhaXQgcG9zdFRlbGVtZXRyeSh1cmwsIGNmZy5ib2R5ID8/IHsgZXZlbnRzOiBbXSB9LCB7XG4gICAgYWdlbnQsXG4gICAgdGltZW91dE1zOiBjZmcudGltZW91dE1zID8/IE5FVFdPUktfVElNRU9VVF9NUyxcbiAgfSk7XG5cbiAgLy8gRHJhaW4sIG9yIHRoZSBzb2NrZXQgaXMgbmV2ZXIgcmVsZWFzZWQuXG4gIHJlcy5yZXN1bWUoKTtcblxuICByZXR1cm4gcmVzLnN0YXR1c0NvZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1Y2Nlc3Moc3RhdHVzQ29kZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdGF0dXNDb2RlICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzQ29kZSA+PSAyMDAgJiYgc3RhdHVzQ29kZSA8IDMwMDtcbn1cblxuLyoqXG4gKiBEaWFnbm9zdGljcyBmb3IgdGhlIGRldGFjaGVkIGNoaWxkLCB3aGljaCBoYXMgbm8gSW9Ib3N0LlxuICovXG5leHBvcnQgY29uc3Qgc2VuZGVyRGlhZ25vc3RpY3M6IFByb3h5QWdlbnREaWFnbm9zdGljcyA9IHtcbiAgZGVmYXVsdHM6IHtcbiAgICBkZWJ1ZzogYXN5bmMgKG1lc3NhZ2U6IHN0cmluZykgPT4gdHJhY2UobWVzc2FnZSksXG4gIH0sXG59O1xuXG4vKipcbiAqIE9ubHkgdmlzaWJsZSB3aGVuIHRoZSBwYXJlbnQgd2FzIHJ1biB3aXRoIGBDREtfVEVMRU1FVFJZX1NFTkRFUl9ERUJVRz0xYCwgd2hpY2ggaXMgYWxzbyB3aGF0IG1ha2VzXG4gKiBpdCBwYXNzIHRoaXMgcHJvY2VzcydzIHN0ZGVyciB0aHJvdWdoLiBTeW5jaHJvbm91cyBiZWNhdXNlIGBwcm9jZXNzLmV4aXRgIGRpc2NhcmRzIGJ1ZmZlcmVkIHdyaXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBpZiAocHJvY2Vzcy5lbnYuQ0RLX1RFTEVNRVRSWV9TRU5ERVJfREVCVUcgIT09ICcxJykge1xuICAgIHJldHVybjtcbiAgfVxuICB0cnkge1xuICAgIGZzLndyaXRlU3luYygyLCBgW2Nkay10ZWxlbWV0cnktc2VuZGVyXSAke21lc3NhZ2V9XFxuYCk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIERpYWdub3N0aWNzIG11c3QgbmV2ZXIgYmUgdGhlIHJlYXNvbiBhbnl0aGluZyBmYWlscy5cbiAgfVxufVxuIl19