UNPKG

aws-cdk

Version:

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

76 lines • 8.56 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.postTelemetry = postTelemetry; const https_1 = require("https"); const tls = __importStar(require("tls")); const api_private_error_1 = require("../../api-private-error"); /** * POST a batch of telemetry events, resolving with the endpoint's response. * * Rejects if the connection fails or the timeout expires, but NOT on an unsuccessful status code -- * inspect `statusCode` for that. */ function postTelemetry(url, batch, options) { return new Promise((ok, ko) => { const payload = JSON.stringify(batch); const req = (0, https_1.request)({ hostname: url.hostname, port: url.port || null, path: url.pathname + url.search, method: 'POST', headers: { 'content-type': 'application/json', 'content-length': Buffer.byteLength(payload), // The only caller makes one request and exits, so a keep-alive socket left in the agent's // pool would just be something else holding the process open. 'connection': 'close', }, agent: options.agent, timeout: options.timeoutMs, // Always pin identity to the destination host. `https-proxy-agent` does the TLS upgrade itself // without passing that host to `tls.connect`, so for an IP-literal endpoint Node has nothing to // match against and skips the check entirely -- naming the host explicitly closes that hole and // pins to the endpoint rather than to whatever the proxy presents. checkServerIdentity: (_host, cert) => tls.checkServerIdentity(url.hostname, cert), }, ok); req.on('error', ko); req.on('timeout', () => { req.destroy(new api_private_error_1.ToolkitError('RequestTimeout', `Timeout after ${options.timeoutMs}ms, aborting request`)); }); req.end(payload); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC10ZWxlbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwb3N0LXRlbGVtZXRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFDQSxzQ0FvQ0M7QUF2RUQsaUNBQWdDO0FBQ2hDLHlDQUEyQjtBQUUzQiwrREFBdUQ7QUEwQnZEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixHQUFRLEVBQ1IsS0FBcUIsRUFDckIsT0FBNkI7SUFFN0IsT0FBTyxJQUFJLE9BQU8sQ0FBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQU8sRUFBQztZQUNsQixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDdEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSTtZQUN0QixJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBTTtZQUMvQixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDNUMsMEZBQTBGO2dCQUMxRiw4REFBOEQ7Z0JBQzlELFlBQVksRUFBRSxPQUFPO2FBQ3RCO1lBQ0QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUztZQUMxQiwrRkFBK0Y7WUFDL0YsZ0dBQWdHO1lBQ2hHLGdHQUFnRztZQUNoRyxtRUFBbUU7WUFDbkUsbUJBQW1CLEVBQUUsQ0FBQyxLQUFhLEVBQUUsSUFBeUIsRUFBRSxFQUFFLENBQ2hFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztTQUM5QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxnQ0FBWSxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixPQUFPLENBQUMsU0FBUyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5jb21pbmdNZXNzYWdlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnaHR0cHMnO1xuaW1wb3J0IHsgcmVxdWVzdCB9IGZyb20gJ2h0dHBzJztcbmltcG9ydCAqIGFzIHRscyBmcm9tICd0bHMnO1xuaW1wb3J0IHR5cGUgeyBUZWxlbWV0cnlTY2hlbWEgfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi9hcGktcHJpdmF0ZS1lcnJvcic7XG5cbi8qKlxuICogQSBiYXRjaCBvZiB0ZWxlbWV0cnkgZXZlbnRzLCBhcyB0aGUgZW5kcG9pbnQgZXhwZWN0cyB0byByZWNlaXZlIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbGVtZXRyeUJhdGNoIHtcbiAgcmVhZG9ubHkgZXZlbnRzOiBUZWxlbWV0cnlTY2hlbWFbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBhIHNpbmdsZSBkZWxpdmVyeSBhdHRlbXB0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RUZWxlbWV0cnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFnZW50IHRvIG1ha2UgdGhlIHJlcXVlc3QgdGhyb3VnaCwgY2FycnlpbmcgcHJveHkgYW5kIENBIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9kZSdzIGRlZmF1bHQgYWdlbnQsIGkuZS4gYSBkaXJlY3QgY29ubmVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnQ/OiBBZ2VudDtcblxuICAvKipcbiAgICogQWJvcnQgdGhlIGF0dGVtcHQgaWYgdGhlIHJlcXVlc3QgaGFzIG5vdCBjb21wbGV0ZWQgd2l0aGluIHRoaXMgbWFueSBtaWxsaXNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0TXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQT1NUIGEgYmF0Y2ggb2YgdGVsZW1ldHJ5IGV2ZW50cywgcmVzb2x2aW5nIHdpdGggdGhlIGVuZHBvaW50J3MgcmVzcG9uc2UuXG4gKlxuICogUmVqZWN0cyBpZiB0aGUgY29ubmVjdGlvbiBmYWlscyBvciB0aGUgdGltZW91dCBleHBpcmVzLCBidXQgTk9UIG9uIGFuIHVuc3VjY2Vzc2Z1bCBzdGF0dXMgY29kZSAtLVxuICogaW5zcGVjdCBgc3RhdHVzQ29kZWAgZm9yIHRoYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3N0VGVsZW1ldHJ5KFxuICB1cmw6IFVSTCxcbiAgYmF0Y2g6IFRlbGVtZXRyeUJhdGNoLFxuICBvcHRpb25zOiBQb3N0VGVsZW1ldHJ5T3B0aW9ucyxcbik6IFByb21pc2U8SW5jb21pbmdNZXNzYWdlPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxJbmNvbWluZ01lc3NhZ2U+KChvaywga28pID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoYmF0Y2gpO1xuICAgIGNvbnN0IHJlcSA9IHJlcXVlc3Qoe1xuICAgICAgaG9zdG5hbWU6IHVybC5ob3N0bmFtZSxcbiAgICAgIHBvcnQ6IHVybC5wb3J0IHx8IG51bGwsXG4gICAgICBwYXRoOiB1cmwucGF0aG5hbWUgKyB1cmwuc2VhcmNoLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdjb250ZW50LWxlbmd0aCc6IEJ1ZmZlci5ieXRlTGVuZ3RoKHBheWxvYWQpLFxuICAgICAgICAvLyBUaGUgb25seSBjYWxsZXIgbWFrZXMgb25lIHJlcXVlc3QgYW5kIGV4aXRzLCBzbyBhIGtlZXAtYWxpdmUgc29ja2V0IGxlZnQgaW4gdGhlIGFnZW50J3NcbiAgICAgICAgLy8gcG9vbCB3b3VsZCBqdXN0IGJlIHNvbWV0aGluZyBlbHNlIGhvbGRpbmcgdGhlIHByb2Nlc3Mgb3Blbi5cbiAgICAgICAgJ2Nvbm5lY3Rpb24nOiAnY2xvc2UnLFxuICAgICAgfSxcbiAgICAgIGFnZW50OiBvcHRpb25zLmFnZW50LFxuICAgICAgdGltZW91dDogb3B0aW9ucy50aW1lb3V0TXMsXG4gICAgICAvLyBBbHdheXMgcGluIGlkZW50aXR5IHRvIHRoZSBkZXN0aW5hdGlvbiBob3N0LiBgaHR0cHMtcHJveHktYWdlbnRgIGRvZXMgdGhlIFRMUyB1cGdyYWRlIGl0c2VsZlxuICAgICAgLy8gd2l0aG91dCBwYXNzaW5nIHRoYXQgaG9zdCB0byBgdGxzLmNvbm5lY3RgLCBzbyBmb3IgYW4gSVAtbGl0ZXJhbCBlbmRwb2ludCBOb2RlIGhhcyBub3RoaW5nIHRvXG4gICAgICAvLyBtYXRjaCBhZ2FpbnN0IGFuZCBza2lwcyB0aGUgY2hlY2sgZW50aXJlbHkgLS0gbmFtaW5nIHRoZSBob3N0IGV4cGxpY2l0bHkgY2xvc2VzIHRoYXQgaG9sZSBhbmRcbiAgICAgIC8vIHBpbnMgdG8gdGhlIGVuZHBvaW50IHJhdGhlciB0aGFuIHRvIHdoYXRldmVyIHRoZSBwcm94eSBwcmVzZW50cy5cbiAgICAgIGNoZWNrU2VydmVySWRlbnRpdHk6IChfaG9zdDogc3RyaW5nLCBjZXJ0OiB0bHMuUGVlckNlcnRpZmljYXRlKSA9PlxuICAgICAgICB0bHMuY2hlY2tTZXJ2ZXJJZGVudGl0eSh1cmwuaG9zdG5hbWUsIGNlcnQpLFxuICAgIH0sIG9rKTtcblxuICAgIHJlcS5vbignZXJyb3InLCBrbyk7XG4gICAgcmVxLm9uKCd0aW1lb3V0JywgKCkgPT4ge1xuICAgICAgcmVxLmRlc3Ryb3kobmV3IFRvb2xraXRFcnJvcignUmVxdWVzdFRpbWVvdXQnLCBgVGltZW91dCBhZnRlciAke29wdGlvbnMudGltZW91dE1zfW1zLCBhYm9ydGluZyByZXF1ZXN0YCkpO1xuICAgIH0pO1xuXG4gICAgcmVxLmVuZChwYXlsb2FkKTtcbiAgfSk7XG59XG4iXX0=