function _aws_cdk_cloudformation_include_CfnIncludeProps(p) { if (p == null) return; visitedObjects.add(p); try { if (p.loadNestedStacks != null) for (const o of Object.values(p.loadNestedStacks)) if (!visitedObjects.has(o)) _aws_cdk_cloudformation_include_CfnIncludeProps(o); } finally { visitedObjects.delete(p); } } function _aws_cdk_cloudformation_include_IncludedNestedStack(p) { if (p == null) return; visitedObjects.add(p); try { if (!visitedObjects.has(p.includedTemplate)) _aws_cdk_cloudformation_include_CfnInclude(p.includedTemplate); } finally { visitedObjects.delete(p); } } function _aws_cdk_cloudformation_include_CfnInclude(p) { } function print(name, deprecationMessage) { const deprecated = process.env.JSII_DEPRECATED; const deprecationMode = ["warn", "fail", "quiet"].includes(deprecated) ? deprecated : "warn"; const message = `${name} is deprecated.\n ${deprecationMessage.trim()}\n This API will be removed in the next major release.`; switch (deprecationMode) { case "fail": throw new DeprecationError(message); case "warn": console.warn("[WARNING]", message); break; } } function getPropertyDescriptor(obj, prop) { const descriptor = Object.getOwnPropertyDescriptor(obj, prop); if (descriptor) { return descriptor; } const proto = Object.getPrototypeOf(obj); const prototypeDescriptor = proto && getPropertyDescriptor(proto, prop); if (prototypeDescriptor) { return prototypeDescriptor; } return {}; } const visitedObjects = new Set(); class DeprecationError extends Error { constructor(...args) { super(...args); Object.defineProperty(this, "name", { configurable: false, enumerable: true, value: "DeprecationError", writable: false, }); } } module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_cloudformation_include_CfnIncludeProps, _aws_cdk_cloudformation_include_IncludedNestedStack, _aws_cdk_cloudformation_include_CfnInclude };