@aws-cdk/integ-runner
Version:
CDK Integration Testing Tool
1,273 lines (1,254 loc) • 14.6 MB
JavaScript
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
var __typeError = (msg) => {
throw TypeError(msg);
};
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __decorateClass = (decorators, target, key, kind) => {
var result2 = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
for (var i3 = decorators.length - 1, decorator; i3 >= 0; i3--)
if (decorator = decorators[i3])
result2 = (kind ? decorator(target, key, result2) : decorator(result2)) || result2;
if (kind && result2) __defProp(target, key, result2);
return result2;
};
var __using = (stack, value, async) => {
if (value != null) {
if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
var dispose, inner;
if (async) dispose = value[__knownSymbol("asyncDispose")];
if (dispose === void 0) {
dispose = value[__knownSymbol("dispose")];
if (async) inner = dispose;
}
if (typeof dispose !== "function") __typeError("Object not disposable");
if (inner) dispose = function() {
try {
inner.call(this);
} catch (e3) {
return Promise.reject(e3);
}
};
stack.push([async, dispose, value]);
} else if (async) {
stack.push([async]);
}
return value;
};
var __callDispose = (stack, error3, hasError) => {
var E2 = typeof SuppressedError === "function" ? SuppressedError : function(e3, s3, m3, _3) {
return _3 = Error(m3), _3.name = "SuppressedError", _3.error = e3, _3.suppressed = s3, _3;
};
var fail = (e3) => error3 = hasError ? new E2(e3, error3, "An error was suppressed during disposal") : (hasError = true, e3);
var next = (it) => {
while (it = stack.pop()) {
try {
var result2 = it[1] && it[1].call(it[2]);
if (it[0]) return Promise.resolve(result2).then(next, (e3) => (fail(e3), next()));
} catch (e3) {
fail(e3);
}
}
if (hasError) throw error3;
};
return next();
};
// ../../../node_modules/workerpool/src/requireFoolWebpack.js
var require_requireFoolWebpack = __commonJS({
"../../../node_modules/workerpool/src/requireFoolWebpack.js"(exports, module) {
var requireFoolWebpack = eval(
`typeof require !== 'undefined' ? require : function (module) { throw new Error('Module " + module + " not found.') }`
);
module.exports = requireFoolWebpack;
}
});
// ../../../node_modules/workerpool/src/environment.js
var require_environment = __commonJS({
"../../../node_modules/workerpool/src/environment.js"(exports2, module2) {
var requireFoolWebpack2 = require_requireFoolWebpack();
var isNode = /* @__PURE__ */ __name(function(nodeProcess) {
return typeof nodeProcess !== "undefined" && nodeProcess.versions != null && nodeProcess.versions.node != null;
}, "isNode");
module2.exports.isNode = isNode;
module2.exports.platform = typeof process !== "undefined" && isNode(process) ? "node" : "browser";
var worker_threads = tryRequireFoolWebpack("worker_threads");
module2.exports.isMainThread = module2.exports.platform === "node" ? (!worker_threads || worker_threads.isMainThread) && !process.connected : typeof Window !== "undefined";
module2.exports.cpus = module2.exports.platform === "browser" ? self.navigator.hardwareConcurrency : requireFoolWebpack2("os").cpus().length;
function tryRequireFoolWebpack(module3) {
try {
return requireFoolWebpack2(module3);
} catch (err) {
return null;
}
}
__name(tryRequireFoolWebpack, "tryRequireFoolWebpack");
}
});
// ../../../node_modules/workerpool/src/Promise.js
var require_Promise = __commonJS({
"../../../node_modules/workerpool/src/Promise.js"(exports2, module2) {
"use strict";
function Promise2(handler, parent) {
var me = this;
if (!(this instanceof Promise2)) {
throw new SyntaxError("Constructor must be called with the new operator");
}
if (typeof handler !== "function") {
throw new SyntaxError("Function parameter handler(resolve, reject) missing");
}
var _onSuccess = [];
var _onFail = [];
this.resolved = false;
this.rejected = false;
this.pending = true;
var _process = /* @__PURE__ */ __name(function(onSuccess, onFail) {
_onSuccess.push(onSuccess);
_onFail.push(onFail);
}, "_process");
this.then = function(onSuccess, onFail) {
return new Promise2(function(resolve10, reject) {
var s3 = onSuccess ? _then(onSuccess, resolve10, reject) : resolve10;
var f3 = onFail ? _then(onFail, resolve10, reject) : reject;
_process(s3, f3);
}, me);
};
var _resolve = /* @__PURE__ */ __name(function(result2) {
me.resolved = true;
me.rejected = false;
me.pending = false;
_onSuccess.forEach(function(fn) {
fn(result2);
});
_process = /* @__PURE__ */ __name(function(onSuccess, onFail) {
onSuccess(result2);
}, "_process");
_resolve = _reject = /* @__PURE__ */ __name(function() {
}, "_reject");
return me;
}, "_resolve");
var _reject = /* @__PURE__ */ __name(function(error3) {
me.resolved = false;
me.rejected = true;
me.pending = false;
_onFail.forEach(function(fn) {
fn(error3);
});
_process = /* @__PURE__ */ __name(function(onSuccess, onFail) {
onFail(error3);
}, "_process");
_resolve = _reject = /* @__PURE__ */ __name(function() {
}, "_reject");
return me;
}, "_reject");
this.cancel = function() {
if (parent) {
parent.cancel();
} else {
_reject(new CancellationError());
}
return me;
};
this.timeout = function(delay) {
if (parent) {
parent.timeout(delay);
} else {
var timer = setTimeout(function() {
_reject(new TimeoutError("Promise timed out after " + delay + " ms"));
}, delay);
me.always(function() {
clearTimeout(timer);
});
}
return me;
};
handler(function(result2) {
_resolve(result2);
}, function(error3) {
_reject(error3);
});
}
__name(Promise2, "Promise");
function _then(callback, resolve10, reject) {
return function(result2) {
try {
var res = callback(result2);
if (res && typeof res.then === "function" && typeof res["catch"] === "function") {
res.then(resolve10, reject);
} else {
resolve10(res);
}
} catch (error3) {
reject(error3);
}
};
}
__name(_then, "_then");
Promise2.prototype["catch"] = function(onFail) {
return this.then(null, onFail);
};
Promise2.prototype.always = function(fn) {
return this.then(fn, fn);
};
Promise2.all = function(promises3) {
return new Promise2(function(resolve10, reject) {
var remaining = promises3.length, results = [];
if (remaining) {
promises3.forEach(function(p3, i3) {
p3.then(function(result2) {
results[i3] = result2;
remaining--;
if (remaining == 0) {
resolve10(results);
}
}, function(error3) {
remaining = 0;
reject(error3);
});
});
} else {
resolve10(results);
}
});
};
Promise2.defer = function() {
var resolver = {};
resolver.promise = new Promise2(function(resolve10, reject) {
resolver.resolve = resolve10;
resolver.reject = reject;
});
return resolver;
};
function CancellationError(message2) {
this.message = message2 || "promise cancelled";
this.stack = new Error().stack;
}
__name(CancellationError, "CancellationError");
CancellationError.prototype = new Error();
CancellationError.prototype.constructor = Error;
CancellationError.prototype.name = "CancellationError";
Promise2.CancellationError = CancellationError;
function TimeoutError(message2) {
this.message = message2 || "timeout exceeded";
this.stack = new Error().stack;
}
__name(TimeoutError, "TimeoutError");
TimeoutError.prototype = new Error();
TimeoutError.prototype.constructor = Error;
TimeoutError.prototype.name = "TimeoutError";
Promise2.TimeoutError = TimeoutError;
module2.exports = Promise2;
}
});
// ../../../node_modules/workerpool/src/generated/embeddedWorker.js
var require_embeddedWorker = __commonJS({
"../../../node_modules/workerpool/src/generated/embeddedWorker.js"(exports2, module2) {
module2.exports = `!function(){var __webpack_modules__={577:function(e){e.exports=function(e,r){this.message=e,this.transfer=r}}},__webpack_module_cache__={};function __webpack_require__(e){var r=__webpack_module_cache__[e];return void 0!==r||(r=__webpack_module_cache__[e]={exports:{}},__webpack_modules__[e](r,r.exports,__webpack_require__)),r.exports}var __webpack_exports__={};!function(){var exports=__webpack_exports__,__webpack_unused_export__;function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var Transfer=__webpack_require__(577),requireFoolWebpack=eval("typeof require !== 'undefined' ? require : function (module) { throw new Error('Module \\" + module + \\" not found.') }"),TERMINATE_METHOD_ID="__workerpool-terminate__",worker={exit:function(){}},WorkerThreads,parentPort;if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)worker.on=function(e,r){addEventListener(e,function(e){r(e.data)})},worker.send=function(e){postMessage(e)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");try{WorkerThreads=requireFoolWebpack("worker_threads")}catch(error){if("object"!==_typeof(error)||null===error||"MODULE_NOT_FOUND"!==error.code)throw error}WorkerThreads&&null!==WorkerThreads.parentPort?(parentPort=WorkerThreads.parentPort,worker.send=parentPort.postMessage.bind(parentPort),worker.on=parentPort.on.bind(parentPort)):(worker.on=process.on.bind(process),worker.send=function(e){process.send(e)},worker.on("disconnect",function(){process.exit(1)})),worker.exit=process.exit.bind(process)}function convertError(o){return Object.getOwnPropertyNames(o).reduce(function(e,r){return Object.defineProperty(e,r,{value:o[r],enumerable:!0})},{})}function isPromise(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}worker.methods={},worker.methods.run=function(e,r){e=new Function("return ("+e+").apply(null, arguments);");return e.apply(e,r)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.terminationHandler=void 0,worker.cleanupAndExit=function(e){function r(){worker.exit(e)}if(!worker.terminationHandler)return r();var o=worker.terminationHandler(e);isPromise(o)?o.then(r,r):r()};var currentRequestId=null;worker.on("message",function(r){if(r===TERMINATE_METHOD_ID)return worker.cleanupAndExit(0);try{var e=worker.methods[r.method];if(!e)throw new Error('Unknown method "'+r.method+'"');currentRequestId=r.id;var o=e.apply(e,r.params);isPromise(o)?o.then(function(e){e instanceof Transfer?worker.send({id:r.id,result:e.message,error:null},e.transfer):worker.send({id:r.id,result:e,error:null}),currentRequestId=null}).catch(function(e){worker.send({id:r.id,result:null,error:convertError(e)}),currentRequestId=null}):(o instanceof Transfer?worker.send({id:r.id,result:o.message,error:null},o.transfer):worker.send({id:r.id,result:o,error:null}),currentRequestId=null)}catch(e){worker.send({id:r.id,result:null,error:convertError(e)})}}),worker.register=function(e,r){if(e)for(var o in e)e.hasOwnProperty(o)&&(worker.methods[o]=e[o]);r&&(worker.terminationHandler=r.onTerminate),worker.send("ready")},worker.emit=function(e){currentRequestId&&(e instanceof Transfer?worker.send({id:currentRequestId,isEvent:!0,payload:e.message},e.transfer):worker.send({id:currentRequestId,isEvent:!0,payload:e}))},__webpack_unused_export__=worker.register,worker.emit}()}();`;
}
});
// ../../../node_modules/workerpool/src/WorkerHandler.js
var require_WorkerHandler = __commonJS({
"../../../node_modules/workerpool/src/WorkerHandler.js"(exports2, module2) {
"use strict";
var Promise2 = require_Promise();
var environment = require_environment();
var requireFoolWebpack2 = require_requireFoolWebpack();
var TERMINATE_METHOD_ID2 = "__workerpool-terminate__";
function ensureWorkerThreads() {
var WorkerThreads2 = tryRequireWorkerThreads();
if (!WorkerThreads2) {
throw new Error("WorkerPool: workerType = 'thread' is not supported, Node >= 11.7.0 required");
}
return WorkerThreads2;
}
__name(ensureWorkerThreads, "ensureWorkerThreads");
function ensureWebWorker() {
if (typeof Worker !== "function" && (typeof Worker !== "object" || typeof Worker.prototype.constructor !== "function")) {
throw new Error("WorkerPool: Web Workers not supported");
}
}
__name(ensureWebWorker, "ensureWebWorker");
function tryRequireWorkerThreads() {
try {
return requireFoolWebpack2("worker_threads");
} catch (error3) {
if (typeof error3 === "object" && error3 !== null && error3.code === "MODULE_NOT_FOUND") {
return null;
} else {
throw error3;
}
}
}
__name(tryRequireWorkerThreads, "tryRequireWorkerThreads");
function getDefaultWorker() {
if (environment.platform === "browser") {
if (typeof Blob === "undefined") {
throw new Error("Blob not supported by the browser");
}
if (!window.URL || typeof window.URL.createObjectURL !== "function") {
throw new Error("URL.createObjectURL not supported by the browser");
}
var blob = new Blob([require_embeddedWorker()], { type: "text/javascript" });
return window.URL.createObjectURL(blob);
} else {
return __dirname + "/worker.js";
}
}
__name(getDefaultWorker, "getDefaultWorker");
function setupWorker(script, options) {
if (options.workerType === "web") {
ensureWebWorker();
return setupBrowserWorker(script, options.workerOpts, Worker);
} else if (options.workerType === "thread") {
WorkerThreads2 = ensureWorkerThreads();
return setupWorkerThreadWorker(script, WorkerThreads2, options.workerThreadOpts);
} else if (options.workerType === "process" || !options.workerType) {
return setupProcessWorker(script, resolveForkOptions(options), requireFoolWebpack2("child_process"));
} else {
if (environment.platform === "browser") {
ensureWebWorker();
return setupBrowserWorker(script, options.workerOpts, Worker);
} else {
var WorkerThreads2 = tryRequireWorkerThreads();
if (WorkerThreads2) {
return setupWorkerThreadWorker(script, WorkerThreads2, options.workerThreadOpts);
} else {
return setupProcessWorker(script, resolveForkOptions(options), requireFoolWebpack2("child_process"));
}
}
}
}
__name(setupWorker, "setupWorker");
function setupBrowserWorker(script, workerOpts, Worker2) {
var worker3 = new Worker2(script, workerOpts);
worker3.isBrowserWorker = true;
worker3.on = function(event, callback) {
this.addEventListener(event, function(message2) {
callback(message2.data);
});
};
worker3.send = function(message2, transfer) {
this.postMessage(message2, transfer);
};
return worker3;
}
__name(setupBrowserWorker, "setupBrowserWorker");
function setupWorkerThreadWorker(script, WorkerThreads2, workerThreadOptions) {
var worker3 = new WorkerThreads2.Worker(script, {
stdout: false,
// automatically pipe worker.STDOUT to process.STDOUT
stderr: false,
// automatically pipe worker.STDERR to process.STDERR
...workerThreadOptions
});
worker3.isWorkerThread = true;
worker3.send = function(message2, transfer) {
this.postMessage(message2, transfer);
};
worker3.kill = function() {
this.terminate();
return true;
};
worker3.disconnect = function() {
this.terminate();
};
return worker3;
}
__name(setupWorkerThreadWorker, "setupWorkerThreadWorker");
function setupProcessWorker(script, options, child_process3) {
var worker3 = child_process3.fork(
script,
options.forkArgs,
options.forkOpts
);
var send = worker3.send;
worker3.send = function(message2) {
return send.call(worker3, message2);
};
worker3.isChildProcess = true;
return worker3;
}
__name(setupProcessWorker, "setupProcessWorker");
function resolveForkOptions(opts) {
opts = opts || {};
var processExecArgv = process.execArgv.join(" ");
var inspectorActive = processExecArgv.indexOf("--inspect") !== -1;
var debugBrk = processExecArgv.indexOf("--debug-brk") !== -1;
var execArgv = [];
if (inspectorActive) {
execArgv.push("--inspect=" + opts.debugPort);
if (debugBrk) {
execArgv.push("--debug-brk");
}
}
process.execArgv.forEach(function(arg) {
if (arg.indexOf("--max-old-space-size") > -1) {
execArgv.push(arg);
}
});
return Object.assign({}, opts, {
forkArgs: opts.forkArgs,
forkOpts: Object.assign({}, opts.forkOpts, {
execArgv: (opts.forkOpts && opts.forkOpts.execArgv || []).concat(execArgv)
})
});
}
__name(resolveForkOptions, "resolveForkOptions");
function objectToError(obj) {
var temp = new Error("");
var props = Object.keys(obj);
for (var i3 = 0; i3 < props.length; i3++) {
temp[props[i3]] = obj[props[i3]];
}
return temp;
}
__name(objectToError, "objectToError");
function WorkerHandler(script, _options) {
var me = this;
var options = _options || {};
this.script = script || getDefaultWorker();
this.worker = setupWorker(this.script, options);
this.debugPort = options.debugPort;
this.forkOpts = options.forkOpts;
this.forkArgs = options.forkArgs;
this.workerOpts = options.workerOpts;
this.workerThreadOpts = options.workerThreadOpts;
this.workerTerminateTimeout = options.workerTerminateTimeout;
if (!script) {
this.worker.ready = true;
}
this.requestQueue = [];
this.worker.on("message", function(response) {
if (me.terminated) {
return;
}
if (typeof response === "string" && response === "ready") {
me.worker.ready = true;
dispatchQueuedRequests();
} else {
var id = response.id;
var task = me.processing[id];
if (task !== void 0) {
if (response.isEvent) {
if (task.options && typeof task.options.on === "function") {
task.options.on(response.payload);
}
} else {
delete me.processing[id];
if (me.terminating === true) {
me.terminate();
}
if (response.error) {
task.resolver.reject(objectToError(response.error));
} else {
task.resolver.resolve(response.result);
}
}
}
}
});
function onError(error3) {
me.terminated = true;
for (var id in me.processing) {
if (me.processing[id] !== void 0) {
me.processing[id].resolver.reject(error3);
}
}
me.processing = /* @__PURE__ */ Object.create(null);
}
__name(onError, "onError");
function dispatchQueuedRequests() {
for (const request2 of me.requestQueue.splice(0)) {
me.worker.send(request2.message, request2.transfer);
}
}
__name(dispatchQueuedRequests, "dispatchQueuedRequests");
var worker3 = this.worker;
this.worker.on("error", onError);
this.worker.on("exit", function(exitCode, signalCode) {
var message2 = "Workerpool Worker terminated Unexpectedly\n";
message2 += " exitCode: `" + exitCode + "`\n";
message2 += " signalCode: `" + signalCode + "`\n";
message2 += " workerpool.script: `" + me.script + "`\n";
message2 += " spawnArgs: `" + worker3.spawnargs + "`\n";
message2 += " spawnfile: `" + worker3.spawnfile + "`\n";
message2 += " stdout: `" + worker3.stdout + "`\n";
message2 += " stderr: `" + worker3.stderr + "`\n";
onError(new Error(message2));
});
this.processing = /* @__PURE__ */ Object.create(null);
this.terminating = false;
this.terminated = false;
this.cleaning = false;
this.terminationHandler = null;
this.lastId = 0;
}
__name(WorkerHandler, "WorkerHandler");
WorkerHandler.prototype.methods = function() {
return this.exec("methods");
};
WorkerHandler.prototype.exec = function(method, params, resolver, options) {
if (!resolver) {
resolver = Promise2.defer();
}
var id = ++this.lastId;
this.processing[id] = {
id,
resolver,
options
};
var request2 = {
message: {
id,
method,
params
},
transfer: options && options.transfer
};
if (this.terminated) {
resolver.reject(new Error("Worker is terminated"));
} else if (this.worker.ready) {
this.worker.send(request2.message, request2.transfer);
} else {
this.requestQueue.push(request2);
}
var me = this;
return resolver.promise.catch(function(error3) {
if (error3 instanceof Promise2.CancellationError || error3 instanceof Promise2.TimeoutError) {
delete me.processing[id];
return me.terminateAndNotify(true).then(function() {
throw error3;
}, function(err) {
throw err;
});
} else {
throw error3;
}
});
};
WorkerHandler.prototype.busy = function() {
return this.cleaning || Object.keys(this.processing).length > 0;
};
WorkerHandler.prototype.terminate = function(force, callback) {
var me = this;
if (force) {
for (var id in this.processing) {
if (this.processing[id] !== void 0) {
this.processing[id].resolver.reject(new Error("Worker terminated"));
}
}
this.processing = /* @__PURE__ */ Object.create(null);
}
if (typeof callback === "function") {
this.terminationHandler = callback;
}
if (!this.busy()) {
var cleanup = /* @__PURE__ */ __name(function(err) {
me.terminated = true;
me.cleaning = false;
if (me.worker != null && me.worker.removeAllListeners) {
me.worker.removeAllListeners("message");
}
me.worker = null;
me.terminating = false;
if (me.terminationHandler) {
me.terminationHandler(err, me);
} else if (err) {
throw err;
}
}, "cleanup");
if (this.worker) {
if (typeof this.worker.kill === "function") {
if (this.worker.killed) {
cleanup(new Error("worker already killed!"));
return;
}
var cleanExitTimeout = setTimeout(function() {
if (me.worker) {
me.worker.kill();
}
}, this.workerTerminateTimeout);
this.worker.once("exit", function() {
clearTimeout(cleanExitTimeout);
if (me.worker) {
me.worker.killed = true;
}
cleanup();
});
if (this.worker.ready) {
this.worker.send(TERMINATE_METHOD_ID2);
} else {
this.requestQueue.push({ message: TERMINATE_METHOD_ID2 });
}
this.cleaning = true;
return;
} else if (typeof this.worker.terminate === "function") {
this.worker.terminate();
this.worker.killed = true;
} else {
throw new Error("Failed to terminate worker");
}
}
cleanup();
} else {
this.terminating = true;
}
};
WorkerHandler.prototype.terminateAndNotify = function(force, timeout) {
var resolver = Promise2.defer();
if (timeout) {
resolver.promise.timeout(timeout);
}
this.terminate(force, function(err, worker3) {
if (err) {
resolver.reject(err);
} else {
resolver.resolve(worker3);
}
});
return resolver.promise;
};
module2.exports = WorkerHandler;
module2.exports._tryRequireWorkerThreads = tryRequireWorkerThreads;
module2.exports._setupProcessWorker = setupProcessWorker;
module2.exports._setupBrowserWorker = setupBrowserWorker;
module2.exports._setupWorkerThreadWorker = setupWorkerThreadWorker;
module2.exports.ensureWorkerThreads = ensureWorkerThreads;
}
});
// ../../../node_modules/workerpool/src/debug-port-allocator.js
var require_debug_port_allocator = __commonJS({
"../../../node_modules/workerpool/src/debug-port-allocator.js"(exports2, module2) {
"use strict";
var MAX_PORTS = 65535;
module2.exports = DebugPortAllocator;
function DebugPortAllocator() {
this.ports = /* @__PURE__ */ Object.create(null);
this.length = 0;
}
__name(DebugPortAllocator, "DebugPortAllocator");
DebugPortAllocator.prototype.nextAvailableStartingAt = function(starting) {
while (this.ports[starting] === true) {
starting++;
}
if (starting >= MAX_PORTS) {
throw new Error("WorkerPool debug port limit reached: " + starting + ">= " + MAX_PORTS);
}
this.ports[starting] = true;
this.length++;
return starting;
};
DebugPortAllocator.prototype.releasePort = function(port) {
delete this.ports[port];
this.length--;
};
}
});
// ../../../node_modules/workerpool/src/Pool.js
var require_Pool = __commonJS({
"../../../node_modules/workerpool/src/Pool.js"(exports2, module2) {
var Promise2 = require_Promise();
var WorkerHandler = require_WorkerHandler();
var environment = require_environment();
var DebugPortAllocator = require_debug_port_allocator();
var DEBUG_PORT_ALLOCATOR = new DebugPortAllocator();
function Pool(script, options) {
if (typeof script === "string") {
this.script = script || null;
} else {
this.script = null;
options = script;
}
this.workers = [];
this.tasks = [];
options = options || {};
this.forkArgs = Object.freeze(options.forkArgs || []);
this.forkOpts = Object.freeze(options.forkOpts || {});
this.workerOpts = Object.freeze(options.workerOpts || {});
this.workerThreadOpts = Object.freeze(options.workerThreadOpts || {});
this.debugPortStart = options.debugPortStart || 43210;
this.nodeWorker = options.nodeWorker;
this.workerType = options.workerType || options.nodeWorker || "auto";
this.maxQueueSize = options.maxQueueSize || Infinity;
this.workerTerminateTimeout = options.workerTerminateTimeout || 1e3;
this.onCreateWorker = options.onCreateWorker || (() => null);
this.onTerminateWorker = options.onTerminateWorker || (() => null);
if (options && "maxWorkers" in options) {
validateMaxWorkers(options.maxWorkers);
this.maxWorkers = options.maxWorkers;
} else {
this.maxWorkers = Math.max((environment.cpus || 4) - 1, 1);
}
if (options && "minWorkers" in options) {
if (options.minWorkers === "max") {
this.minWorkers = this.maxWorkers;
} else {
validateMinWorkers(options.minWorkers);
this.minWorkers = options.minWorkers;
this.maxWorkers = Math.max(this.minWorkers, this.maxWorkers);
}
this._ensureMinWorkers();
}
this._boundNext = this._next.bind(this);
if (this.workerType === "thread") {
WorkerHandler.ensureWorkerThreads();
}
}
__name(Pool, "Pool");
Pool.prototype.exec = function(method, params, options) {
if (params && !Array.isArray(params)) {
throw new TypeError('Array expected as argument "params"');
}
if (typeof method === "string") {
var resolver = Promise2.defer();
if (this.tasks.length >= this.maxQueueSize) {
throw new Error("Max queue size of " + this.maxQueueSize + " reached");
}
var tasks = this.tasks;
var task = {
method,
params,
resolver,
timeout: null,
options
};
tasks.push(task);
var originalTimeout = resolver.promise.timeout;
resolver.promise.timeout = /* @__PURE__ */ __name(function timeout(delay) {
if (tasks.indexOf(task) !== -1) {
task.timeout = delay;
return resolver.promise;
} else {
return originalTimeout.call(resolver.promise, delay);
}
}, "timeout");
this._next();
return resolver.promise;
} else if (typeof method === "function") {
return this.exec("run", [String(method), params]);
} else {
throw new TypeError('Function or string expected as argument "method"');
}
};
Pool.prototype.proxy = function() {
if (arguments.length > 0) {
throw new Error("No arguments expected");
}
var pool = this;
return this.exec("methods").then(function(methods) {
var proxy = {};
methods.forEach(function(method) {
proxy[method] = function() {
return pool.exec(method, Array.prototype.slice.call(arguments));
};
});
return proxy;
});
};
Pool.prototype._next = function() {
if (this.tasks.length > 0) {
var worker3 = this._getWorker();
if (worker3) {
var me = this;
var task = this.tasks.shift();
if (task.resolver.promise.pending) {
var promise = worker3.exec(task.method, task.params, task.resolver, task.options).then(me._boundNext).catch(function() {
if (worker3.terminated) {
return me._removeWorker(worker3);
}
}).then(function() {
me._next();
});
if (typeof task.timeout === "number") {
promise.timeout(task.timeout);
}
} else {
me._next();
}
}
}
};
Pool.prototype._getWorker = function() {
var workers = this.workers;
for (var i3 = 0; i3 < workers.length; i3++) {
var worker3 = workers[i3];
if (worker3.busy() === false) {
return worker3;
}
}
if (workers.length < this.maxWorkers) {
worker3 = this._createWorkerHandler();
workers.push(worker3);
return worker3;
}
return null;
};
Pool.prototype._removeWorker = function(worker3) {
var me = this;
DEBUG_PORT_ALLOCATOR.releasePort(worker3.debugPort);
this._removeWorkerFromList(worker3);
this._ensureMinWorkers();
return new Promise2(function(resolve10, reject) {
worker3.terminate(false, function(err) {
me.onTerminateWorker({
forkArgs: worker3.forkArgs,
forkOpts: worker3.forkOpts,
workerThreadOpts: worker3.workerThreadOpts,
script: worker3.script
});
if (err) {
reject(err);
} else {
resolve10(worker3);
}
});
});
};
Pool.prototype._removeWorkerFromList = function(worker3) {
var index = this.workers.indexOf(worker3);
if (index !== -1) {
this.workers.splice(index, 1);
}
};
Pool.prototype.terminate = function(force, timeout) {
var me = this;
this.tasks.forEach(function(task) {
task.resolver.reject(new Error("Pool terminated"));
});
this.tasks.length = 0;
var f3 = /* @__PURE__ */ __name(function(worker3) {
DEBUG_PORT_ALLOCATOR.releasePort(worker3.debugPort);
this._removeWorkerFromList(worker3);
}, "f");
var removeWorker = f3.bind(this);
var promises3 = [];
var workers = this.workers.slice();
workers.forEach(function(worker3) {
var termPromise = worker3.terminateAndNotify(force, timeout).then(removeWorker).always(function() {
me.onTerminateWorker({
forkArgs: worker3.forkArgs,
forkOpts: worker3.forkOpts,
workerThreadOpts: worker3.workerThreadOpts,
script: worker3.script
});
});
promises3.push(termPromise);
});
return Promise2.all(promises3);
};
Pool.prototype.stats = function() {
var totalWorkers = this.workers.length;
var busyWorkers = this.workers.filter(function(worker3) {
return worker3.busy();
}).length;
return {
totalWorkers,
busyWorkers,
idleWorkers: totalWorkers - busyWorkers,
pendingTasks: this.tasks.length,
activeTasks: busyWorkers
};
};
Pool.prototype._ensureMinWorkers = function() {
if (this.minWorkers) {
for (var i3 = this.workers.length; i3 < this.minWorkers; i3++) {
this.workers.push(this._createWorkerHandler());
}
}
};
Pool.prototype._createWorkerHandler = function() {
const overriddenParams = this.onCreateWorker({
forkArgs: this.forkArgs,
forkOpts: this.forkOpts,
workerOpts: this.workerOpts,
workerThreadOpts: this.workerThreadOpts,
script: this.script
}) || {};
return new WorkerHandler(overriddenParams.script || this.script, {
forkArgs: overriddenParams.forkArgs || this.forkArgs,
forkOpts: overriddenParams.forkOpts || this.forkOpts,
workerOpts: overriddenParams.workerOpts || this.workerOpts,
workerThreadOpts: overriddenParams.workerThreadOpts || this.workerThreadOpts,
debugPort: DEBUG_PORT_ALLOCATOR.nextAvailableStartingAt(this.debugPortStart),
workerType: this.workerType,
workerTerminateTimeout: this.workerTerminateTimeout
});
};
function validateMaxWorkers(maxWorkers) {
if (!isNumber(maxWorkers) || !isInteger(maxWorkers) || maxWorkers < 1) {
throw new TypeError("Option maxWorkers must be an integer number >= 1");
}
}
__name(validateMaxWorkers, "validateMaxWorkers");
function validateMinWorkers(minWorkers) {
if (!isNumber(minWorkers) || !isInteger(minWorkers) || minWorkers < 0) {
throw new TypeError("Option minWorkers must be an integer number >= 0");
}
}
__name(validateMinWorkers, "validateMinWorkers");
function isNumber(value) {
return typeof value === "number";
}
__name(isNumber, "isNumber");
function isInteger(value) {
return Math.round(value) == value;
}
__name(isInteger, "isInteger");
module2.exports = Pool;
}
});
// ../../../node_modules/workerpool/src/transfer.js
var require_transfer = __commonJS({
"../../../node_modules/workerpool/src/transfer.js"(exports2, module2) {
function Transfer2(message2, transfer) {
this.message = message2;
this.transfer = transfer;
}
__name(Transfer2, "Transfer");
module2.exports = Transfer2;
}
});
// ../../../node_modules/workerpool/src/worker.js
var require_worker = __commonJS({
"../../../node_modules/workerpool/src/worker.js"(exports, module) {
var Transfer = require_transfer();
var requireFoolWebpack = eval(
`typeof require !== 'undefined' ? require : function (module) { throw new Error('Module " + module + " not found.') }`
);
var TERMINATE_METHOD_ID = "__workerpool-terminate__";
var worker = {
exit: /* @__PURE__ */ __name(function() {
}, "exit")
};
if (typeof self !== "undefined" && typeof postMessage === "function" && typeof addEventListener === "function") {
worker.on = function(event, callback) {
addEventListener(event, function(message2) {
callback(message2.data);
});
};
worker.send = function(message2) {
postMessage(message2);
};
} else if (typeof process !== "undefined") {
try {
WorkerThreads = requireFoolWebpack("worker_threads");
} catch (error3) {
if (typeof error3 === "object" && error3 !== null && error3.code === "MODULE_NOT_FOUND") {
} else {
throw error3;
}
}
if (WorkerThreads && /* if there is a parentPort, we are in a WorkerThread */
WorkerThreads.parentPort !== null) {
parentPort = WorkerThreads.parentPort;
worker.send = parentPort.postMessage.bind(parentPort);
worker.on = parentPort.on.bind(parentPort);
worker.exit = process.exit.bind(process);
} else {
worker.on = process.on.bind(process);
worker.send = function(message2) {
process.send(message2);
};
worker.on("disconnect", function() {
process.exit(1);
});
worker.exit = process.exit.bind(process);
}
} else {
throw new Error("Script must be executed as a worker");
}
var WorkerThreads;
var parentPort;
function convertError(error3) {
return Object.getOwnPropertyNames(error3).reduce(function(product, name) {
return Object.defineProperty(product, name, {
value: error3[name],
enumerable: true
});
}, {});
}
__name(convertError, "convertError");
function isPromise(value) {
return value && typeof value.then === "function" && typeof value.catch === "function";
}
__name(isPromise, "isPromise");
worker.methods = {};
worker.methods.run = /* @__PURE__ */ __name(function run(fn, args) {
var f3 = new Function("return (" + fn + ").apply(null, arguments);");
return f3.apply(f3, args);
}, "run");
worker.methods.methods = /* @__PURE__ */ __name(function methods() {
return Object.keys(worker.methods);
}, "methods");
worker.terminationHandler = void 0;
worker.cleanupAndExit = function(code) {
var _exit = /* @__PURE__ */ __name(function() {
worker.exit(code);
}, "_exit");
if (!worker.terminationHandler) {
return _exit();
}
var result2 = worker.terminationHandler(code);
if (isPromise(result2)) {
result2.then(_exit, _exit);
} else {
_exit();
}
};
var currentRequestId = null;
worker.on("message", function(request2) {
if (request2 === TERMINATE_METHOD_ID) {
return worker.cleanupAndExit(0);
}
try {
var method = worker.methods[request2.method];
if (method) {
currentRequestId = request2.id;
var result2 = method.apply(method, request2.params);
if (isPromise(result2)) {
result2.then(function(result3) {
if (result3 instanceof Transfer) {
worker.send({
id: request2.id,
result: result3.message,
error: null
}, result3.transfer);
} else {
worker.send({
id: request2.id,
result: result3,
error: null
});
}
currentRequestId = null;
}).catch(function(err) {
worker.send({
id: request2.id,
result: null,
error: convertError(err)
});
currentRequestId = null;
});
} else {
if (result2 instanceof Transfer) {
worker.send({
id: request2.id,
result: result2.message,
error: null
}, result2.transfer);
} else {
worker.send({
id: request2.id,
result: result2,
error: null
});
}
currentRequestId = null;
}
} else {
throw new Error('Unknown method "' + request2.method + '"');
}
} catch (err) {
worker.send({
id: request2.id,
result: null,
error: convertError(err)
});
}
});
worker.register = function(methods, options) {
if (methods) {
for (var name in methods) {
if (methods.hasOwnProperty(name)) {
worker.methods[name] = methods[name];
}
}
}
if (options) {
worker.terminationHandler = options.onTerminate;
}
worker.send("ready");
};
worker.emit = function(payload) {
if (currentRequestId) {
if (payload instanceof Transfer) {
worker.send({
id: currentRequestId,
isEvent: true,
payload: payload.message
}, payload.transfer);
return;
}
worker.send({
id: currentRequestId,
isEvent: true,
payload
});
}
};
if (typeof exports !== "undefined") {
exports.add = worker.register;
exports.emit = worker.emit;
}
}
});
// ../../../node_modules/workerpool/src/index.js
var require_src = __commonJS({
"../../../node_modules/workerpool/src/index.js"(exports2) {
var environment = require_environment();
exports2.pool = /* @__PURE__ */ __name(function pool(script, options) {
var Pool = require_Pool();
return new Pool(script, options);
}, "pool");
exports2.worker = /* @__PURE__ */ __name(function worker3(methods, options) {
var worker4 = require_worker();
worker4.add(methods, options);
}, "worker");
exports2.workerEmit = /* @__PURE__ */ __name(function workerEmit3(payload) {
var worker3 = require_worker();
worker3.emit(payload);
}, "workerEmit");
exports2.Promise = require_Promise();
exports2.Transfer = require_transfer();
exports2.platform = environment.platform;
exports2.isMainThread = environment.isMainThread;
exports2.cpus = environment.cpus;
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/cxapi.js
var require_cxapi = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/cxapi.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
exports2.SSMPARAM_NO_INVALIDATE = exports2.PROVIDER_ERROR_KEY = exports2.TOOLKIT_VERSION_ENV = exports2.CLI_VERSION_ENV = exports2.CLI_ASM_VERSION_ENV = exports2.DEFAULT_REGION_ENV = exports2.DEFAULT_ACCOUNT_ENV = exports2.CONTEXT_OVERFLOW_LOCATION_ENV = exports2.CONTEXT_ENV = exports2.OUTDIR_ENV = void 0;
exports2.OUTDIR_ENV = "CDK_OUTDIR";
exports2.CONTEXT_ENV = "CDK_CONTEXT_JSON";
exports2.CONTEXT_OVERFLOW_LOCATION_ENV = "CONTEXT_OVERFLOW_LOCATION_ENV";
exports2.DEFAULT_ACCOUNT_ENV = "CDK_DEFAULT_ACCOUNT";
exports2.DEFAULT_REGION_ENV = "CDK_DEFAULT_REGION";
exports2.CLI_ASM_VERSION_ENV = "CDK_CLI_ASM_VERSION";
exports2.CLI_VERSION_ENV = "CDK_CLI_VERSION";
exports2.TOOLKIT_VERSION_ENV = "CDK_TOOLKIT_VERSION";
exports2.PROVIDER_ERROR_KEY = "$providerError";
exports2.SSMPARAM_NO_INVALIDATE = "[cdk:skip]";
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/context/vpc.js
var require_vpc = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/context/vpc.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
exports2.VpcSubnetGroupType = void 0;
var VpcSubnetGroupType2;
(function(VpcSubnetGroupType3) {
VpcSubnetGroupType3["PUBLIC"] = "Public";
VpcSubnetGroupType3["PRIVATE"] = "Private";
VpcSubnetGroupType3["ISOLATED"] = "Isolated";
})(VpcSubnetGroupType2 || (exports2.VpcSubnetGroupType = VpcSubnetGroupType2 = {}));
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/context/ami.js
var require_ami = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/context/ami.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/context/load-balancer.js
var require_load_balancer = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/context/load-balancer.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
exports2.LoadBalancerIpAddressType = void 0;
var LoadBalancerIpAddressType2;
(function(LoadBalancerIpAddressType3) {
LoadBalancerIpAddressType3["IPV4"] = "ipv4";
LoadBalancerIpAddressType3["DUAL_STACK"] = "dualstack";
LoadBalancerIpAddressType3["DUAL_STACK_WITHOUT_PUBLIC_IPV4"] = "dualstack-without-public-ipv4";
})(LoadBalancerIpAddressType2 || (exports2.LoadBalancerIpAddressType = LoadBalancerIpAddressType2 = {}));
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/context/availability-zones.js
var require_availability_zones = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/context/availability-zones.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
exports2.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = void 0;
exports2.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = "aws:cdk:availability-zones:fallback";
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/context/endpoint-service-availability-zones.js
var require_endpoint_service_availability_zones = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/context/endpoint-service-availability-zones.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
exports2.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = void 0;
exports2.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = "endpoint-service-availability-zones";
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/context/security-group.js
var require_security_group = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/context/security-group.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
}
});
// ../../../node_modules/@aws-cdk/cx-api/lib/context/key.js
var require_key = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/lib/context/key.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
}
});
// ../../../node_modules/@aws-cdk/cx-api/.warnings.jsii.js
var require_warnings_jsii = __commonJS({
"../../../node_modules/@aws-cdk/cx-api/.warnings.jsii.js"(exports2, module2) {
function _aws_cdk_cx_api_VpcSubnetGroupType(p3) {
}
__name(_aws_cdk_cx_api_VpcSubnetGroupType, "_aws_cdk_cx_api_VpcSubnetGroupType");
function _aws_cdk_cx_api_VpcSubnet(p3) {
}
__name(_aws_cdk_cx_api_VpcSubnet, "_aws_cdk_cx_api_VpcSubnet");
function _aws_cdk_cx_api_VpcSubnetGroup(p3) {
if (p3 == null)
return;
visitedObjects.add(p3);
try {
if (p3.subnets != null) {
for (const o3 of p3.subnets)
if (!visitedObjects.has(o3))
_aws_cdk_cx_api_VpcSubnet(o3);
}
if (!visitedObjects