stacktape 2.23.0-beta.6 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,3265 +1,3 @@
1
- var nr=Object.defineProperty;var s=(r,e)=>nr(r,"name",{value:e,configurable:!0});var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Me=w(H=>{var we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");H.encode=function(r){if(0<=r&&r<we.length)return we[r];throw new TypeError("Must be between 0 and 63: "+r)};H.decode=function(r){var e=65,n=90,t=97,o=122,i=48,u=57,a=43,l=47,c=26,f=52;return e<=r&&r<=n?r-e:t<=r&&r<=o?r-t+c:i<=r&&r<=u?r-i+f:r==a?62:r==l?63:-1}});var ne=w(re=>{var Le=Me(),ee=5,Ee=1<<ee,Ae=Ee-1,Oe=Ee;function tr(r){return r<0?(-r<<1)+1:(r<<1)+0}s(tr,"toVLQSigned");function or(r){var e=(r&1)===1,n=r>>1;return e?-n:n}s(or,"fromVLQSigned");re.encode=s(function(e){var n="",t,o=tr(e);do t=o&Ae,o>>>=ee,o>0&&(t|=Oe),n+=Le.encode(t);while(o>0);return n},"base64VLQ_encode");re.decode=s(function(e,n,t){var o=e.length,i=0,u=0,a,l;do{if(n>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(l=Le.decode(e.charCodeAt(n++)),l===-1)throw new Error("Invalid base64 digit: "+e.charAt(n-1));a=!!(l&Oe),l&=Ae,i=i+(l<<u),u+=ee}while(a);t.value=or(i),t.rest=n},"base64VLQ_decode")});var F=w(y=>{function ir(r,e,n){if(e in r)return r[e];if(arguments.length===3)return n;throw new Error('"'+e+'" is a required argument.')}s(ir,"getArg");y.getArg=ir;var be=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,ur=/^data:.+\,.+$/;function D(r){var e=r.match(be);return e?{scheme:e[1],auth:e[2],host:e[3],port:e[4],path:e[5]}:null}s(D,"urlParse");y.urlParse=D;function B(r){var e="";return r.scheme&&(e+=r.scheme+":"),e+="//",r.auth&&(e+=r.auth+"@"),r.host&&(e+=r.host),r.port&&(e+=":"+r.port),r.path&&(e+=r.path),e}s(B,"urlGenerate");y.urlGenerate=B;function te(r){var e=r,n=D(r);if(n){if(!n.path)return r;e=n.path}for(var t=y.isAbsolute(e),o=e.split(/\/+/),i,u=0,a=o.length-1;a>=0;a--)i=o[a],i==="."?o.splice(a,1):i===".."?u++:u>0&&(i===""?(o.splice(a+1,u),u=0):(o.splice(a,2),u--));return e=o.join("/"),e===""&&(e=t?"/":"."),n?(n.path=e,B(n)):e}s(te,"normalize");y.normalize=te;function Re(r,e){r===""&&(r="."),e===""&&(e=".");var n=D(e),t=D(r);if(t&&(r=t.path||"/"),n&&!n.scheme)return t&&(n.scheme=t.scheme),B(n);if(n||e.match(ur))return e;if(t&&!t.host&&!t.path)return t.host=e,B(t);var o=e.charAt(0)==="/"?e:te(r.replace(/\/+$/,"")+"/"+e);return t?(t.path=o,B(t)):o}s(Re,"join");y.join=Re;y.isAbsolute=function(r){return r.charAt(0)==="/"||be.test(r)};function sr(r,e){r===""&&(r="."),r=r.replace(/\/$/,"");for(var n=0;e.indexOf(r+"/")!==0;){var t=r.lastIndexOf("/");if(t<0||(r=r.slice(0,t),r.match(/^([^\/]+:\/)?\/*$/)))return e;++n}return Array(n+1).join("../")+e.substr(r.length+1)}s(sr,"relative");y.relative=sr;var Ne=function(){var r=Object.create(null);return!("__proto__"in r)}();function xe(r){return r}s(xe,"identity");function lr(r){return Ge(r)?"$"+r:r}s(lr,"toSetString");y.toSetString=Ne?xe:lr;function ar(r){return Ge(r)?r.slice(1):r}s(ar,"fromSetString");y.fromSetString=Ne?xe:ar;function Ge(r){if(!r)return!1;var e=r.length;if(e<9||r.charCodeAt(e-1)!==95||r.charCodeAt(e-2)!==95||r.charCodeAt(e-3)!==111||r.charCodeAt(e-4)!==116||r.charCodeAt(e-5)!==111||r.charCodeAt(e-6)!==114||r.charCodeAt(e-7)!==112||r.charCodeAt(e-8)!==95||r.charCodeAt(e-9)!==95)return!1;for(var n=e-10;n>=0;n--)if(r.charCodeAt(n)!==36)return!1;return!0}s(Ge,"isProtoString");function cr(r,e,n){var t=q(r.source,e.source);return t!==0||(t=r.originalLine-e.originalLine,t!==0)||(t=r.originalColumn-e.originalColumn,t!==0||n)||(t=r.generatedColumn-e.generatedColumn,t!==0)||(t=r.generatedLine-e.generatedLine,t!==0)?t:q(r.name,e.name)}s(cr,"compareByOriginalPositions");y.compareByOriginalPositions=cr;function fr(r,e,n){var t=r.generatedLine-e.generatedLine;return t!==0||(t=r.generatedColumn-e.generatedColumn,t!==0||n)||(t=q(r.source,e.source),t!==0)||(t=r.originalLine-e.originalLine,t!==0)||(t=r.originalColumn-e.originalColumn,t!==0)?t:q(r.name,e.name)}s(fr,"compareByGeneratedPositionsDeflated");y.compareByGeneratedPositionsDeflated=fr;function q(r,e){return r===e?0:r===null?1:e===null?-1:r>e?1:-1}s(q,"strcmp");function hr(r,e){var n=r.generatedLine-e.generatedLine;return n!==0||(n=r.generatedColumn-e.generatedColumn,n!==0)||(n=q(r.source,e.source),n!==0)||(n=r.originalLine-e.originalLine,n!==0)||(n=r.originalColumn-e.originalColumn,n!==0)?n:q(r.name,e.name)}s(hr,"compareByGeneratedPositionsInflated");y.compareByGeneratedPositionsInflated=hr;function gr(r){return JSON.parse(r.replace(/^\)]}'[^\n]*\n/,""))}s(gr,"parseSourceMapInput");y.parseSourceMapInput=gr;function dr(r,e,n){if(e=e||"",r&&(r[r.length-1]!=="/"&&e[0]!=="/"&&(r+="/"),e=r+e),n){var t=D(n);if(!t)throw new Error("sourceMapURL could not be parsed");if(t.path){var o=t.path.lastIndexOf("/");o>=0&&(t.path=t.path.substring(0,o+1))}e=Re(B(t),e)}return te(e)}s(dr,"computeSourceURL");y.computeSourceURL=dr});var ue=w(Ie=>{var oe=F(),ie=Object.prototype.hasOwnProperty,x=typeof Map<"u";function b(){this._array=[],this._set=x?new Map:Object.create(null)}s(b,"ArraySet");b.fromArray=s(function(e,n){for(var t=new b,o=0,i=e.length;o<i;o++)t.add(e[o],n);return t},"ArraySet_fromArray");b.prototype.size=s(function(){return x?this._set.size:Object.getOwnPropertyNames(this._set).length},"ArraySet_size");b.prototype.add=s(function(e,n){var t=x?e:oe.toSetString(e),o=x?this.has(e):ie.call(this._set,t),i=this._array.length;(!o||n)&&this._array.push(e),o||(x?this._set.set(e,i):this._set[t]=i)},"ArraySet_add");b.prototype.has=s(function(e){if(x)return this._set.has(e);var n=oe.toSetString(e);return ie.call(this._set,n)},"ArraySet_has");b.prototype.indexOf=s(function(e){if(x){var n=this._set.get(e);if(n>=0)return n}else{var t=oe.toSetString(e);if(ie.call(this._set,t))return this._set[t]}throw new Error('"'+e+'" is not in the set.')},"ArraySet_indexOf");b.prototype.at=s(function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},"ArraySet_at");b.prototype.toArray=s(function(){return this._array.slice()},"ArraySet_toArray");Ie.ArraySet=b});var Be=w(Pe=>{var Te=F();function vr(r,e){var n=r.generatedLine,t=e.generatedLine,o=r.generatedColumn,i=e.generatedColumn;return t>n||t==n&&i>=o||Te.compareByGeneratedPositionsInflated(r,e)<=0}s(vr,"generatedPositionAfter");function W(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}s(W,"MappingList");W.prototype.unsortedForEach=s(function(e,n){this._array.forEach(e,n)},"MappingList_forEach");W.prototype.add=s(function(e){vr(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},"MappingList_add");W.prototype.toArray=s(function(){return this._sorted||(this._array.sort(Te.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},"MappingList_toArray");Pe.MappingList=W});var se=w(qe=>{var $=ne(),_=F(),J=ue().ArraySet,pr=Be().MappingList;function E(r){r||(r={}),this._file=_.getArg(r,"file",null),this._sourceRoot=_.getArg(r,"sourceRoot",null),this._skipValidation=_.getArg(r,"skipValidation",!1),this._sources=new J,this._names=new J,this._mappings=new pr,this._sourcesContents=null}s(E,"SourceMapGenerator");E.prototype._version=3;E.fromSourceMap=s(function(e){var n=e.sourceRoot,t=new E({file:e.file,sourceRoot:n});return e.eachMapping(function(o){var i={generated:{line:o.generatedLine,column:o.generatedColumn}};o.source!=null&&(i.source=o.source,n!=null&&(i.source=_.relative(n,i.source)),i.original={line:o.originalLine,column:o.originalColumn},o.name!=null&&(i.name=o.name)),t.addMapping(i)}),e.sources.forEach(function(o){var i=o;n!==null&&(i=_.relative(n,o)),t._sources.has(i)||t._sources.add(i);var u=e.sourceContentFor(o);u!=null&&t.setSourceContent(o,u)}),t},"SourceMapGenerator_fromSourceMap");E.prototype.addMapping=s(function(e){var n=_.getArg(e,"generated"),t=_.getArg(e,"original",null),o=_.getArg(e,"source",null),i=_.getArg(e,"name",null);this._skipValidation||this._validateMapping(n,t,o,i),o!=null&&(o=String(o),this._sources.has(o)||this._sources.add(o)),i!=null&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:t!=null&&t.line,originalColumn:t!=null&&t.column,source:o,name:i})},"SourceMapGenerator_addMapping");E.prototype.setSourceContent=s(function(e,n){var t=e;this._sourceRoot!=null&&(t=_.relative(this._sourceRoot,t)),n!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[_.toSetString(t)]=n):this._sourcesContents&&(delete this._sourcesContents[_.toSetString(t)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))},"SourceMapGenerator_setSourceContent");E.prototype.applySourceMap=s(function(e,n,t){var o=n;if(n==null){if(e.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);o=e.file}var i=this._sourceRoot;i!=null&&(o=_.relative(i,o));var u=new J,a=new J;this._mappings.unsortedForEach(function(l){if(l.source===o&&l.originalLine!=null){var c=e.originalPositionFor({line:l.originalLine,column:l.originalColumn});c.source!=null&&(l.source=c.source,t!=null&&(l.source=_.join(t,l.source)),i!=null&&(l.source=_.relative(i,l.source)),l.originalLine=c.line,l.originalColumn=c.column,c.name!=null&&(l.name=c.name))}var f=l.source;f!=null&&!u.has(f)&&u.add(f);var d=l.name;d!=null&&!a.has(d)&&a.add(d)},this),this._sources=u,this._names=a,e.sources.forEach(function(l){var c=e.sourceContentFor(l);c!=null&&(t!=null&&(l=_.join(t,l)),i!=null&&(l=_.relative(i,l)),this.setSourceContent(l,c))},this)},"SourceMapGenerator_applySourceMap");E.prototype._validateMapping=s(function(e,n,t,o){if(n&&typeof n.line!="number"&&typeof n.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!n&&!t&&!o)){if(e&&"line"in e&&"column"in e&&n&&"line"in n&&"column"in n&&e.line>0&&e.column>=0&&n.line>0&&n.column>=0&&t)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:t,original:n,name:o}))}},"SourceMapGenerator_validateMapping");E.prototype._serializeMappings=s(function(){for(var e=0,n=1,t=0,o=0,i=0,u=0,a="",l,c,f,d,g=this._mappings.toArray(),v=0,L=g.length;v<L;v++){if(c=g[v],l="",c.generatedLine!==n)for(e=0;c.generatedLine!==n;)l+=";",n++;else if(v>0){if(!_.compareByGeneratedPositionsInflated(c,g[v-1]))continue;l+=","}l+=$.encode(c.generatedColumn-e),e=c.generatedColumn,c.source!=null&&(d=this._sources.indexOf(c.source),l+=$.encode(d-u),u=d,l+=$.encode(c.originalLine-1-o),o=c.originalLine-1,l+=$.encode(c.originalColumn-t),t=c.originalColumn,c.name!=null&&(f=this._names.indexOf(c.name),l+=$.encode(f-i),i=f)),a+=l}return a},"SourceMapGenerator_serializeMappings");E.prototype._generateSourcesContent=s(function(e,n){return e.map(function(t){if(!this._sourcesContents)return null;n!=null&&(t=_.relative(n,t));var o=_.toSetString(t);return Object.prototype.hasOwnProperty.call(this._sourcesContents,o)?this._sourcesContents[o]:null},this)},"SourceMapGenerator_generateSourcesContent");E.prototype.toJSON=s(function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(e.file=this._file),this._sourceRoot!=null&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},"SourceMapGenerator_toJSON");E.prototype.toString=s(function(){return JSON.stringify(this.toJSON())},"SourceMapGenerator_toString");qe.SourceMapGenerator=E});var Fe=w(G=>{G.GREATEST_LOWER_BOUND=1;G.LEAST_UPPER_BOUND=2;function le(r,e,n,t,o,i){var u=Math.floor((e-r)/2)+r,a=o(n,t[u],!0);return a===0?u:a>0?e-u>1?le(u,e,n,t,o,i):i==G.LEAST_UPPER_BOUND?e<t.length?e:-1:u:u-r>1?le(r,u,n,t,o,i):i==G.LEAST_UPPER_BOUND?u:r<0?-1:r}s(le,"recursiveSearch");G.search=s(function(e,n,t,o){if(n.length===0)return-1;var i=le(-1,n.length,e,n,t,o||G.GREATEST_LOWER_BOUND);if(i<0)return-1;for(;i-1>=0&&t(n[i],n[i-1],!0)===0;)--i;return i},"search")});var Ue=w(je=>{function ae(r,e,n){var t=r[e];r[e]=r[n],r[n]=t}s(ae,"swap");function _r(r,e){return Math.round(r+Math.random()*(e-r))}s(_r,"randomIntInRange");function ce(r,e,n,t){if(n<t){var o=_r(n,t),i=n-1;ae(r,o,t);for(var u=r[t],a=n;a<t;a++)e(r[a],u)<=0&&(i+=1,ae(r,i,a));ae(r,i+1,a);var l=i+1;ce(r,e,n,l-1),ce(r,e,l+1,t)}}s(ce,"doQuickSort");je.quickSort=function(r,e){ce(r,e,0,r.length-1)}});var $e=w(X=>{var h=F(),fe=Fe(),j=ue().ArraySet,mr=ne(),k=Ue().quickSort;function p(r,e){var n=r;return typeof r=="string"&&(n=h.parseSourceMapInput(r)),n.sections!=null?new A(n,e):new m(n,e)}s(p,"SourceMapConsumer");p.fromSourceMap=function(r,e){return m.fromSourceMap(r,e)};p.prototype._version=3;p.prototype.__generatedMappings=null;Object.defineProperty(p.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:s(function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings},"get")});p.prototype.__originalMappings=null;Object.defineProperty(p.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:s(function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings},"get")});p.prototype._charIsMappingSeparator=s(function(e,n){var t=e.charAt(n);return t===";"||t===","},"SourceMapConsumer_charIsMappingSeparator");p.prototype._parseMappings=s(function(e,n){throw new Error("Subclasses must implement _parseMappings")},"SourceMapConsumer_parseMappings");p.GENERATED_ORDER=1;p.ORIGINAL_ORDER=2;p.GREATEST_LOWER_BOUND=1;p.LEAST_UPPER_BOUND=2;p.prototype.eachMapping=s(function(e,n,t){var o=n||null,i=t||p.GENERATED_ORDER,u;switch(i){case p.GENERATED_ORDER:u=this._generatedMappings;break;case p.ORIGINAL_ORDER:u=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var a=this.sourceRoot;u.map(function(l){var c=l.source===null?null:this._sources.at(l.source);return c=h.computeSourceURL(a,c,this._sourceMapURL),{source:c,generatedLine:l.generatedLine,generatedColumn:l.generatedColumn,originalLine:l.originalLine,originalColumn:l.originalColumn,name:l.name===null?null:this._names.at(l.name)}},this).forEach(e,o)},"SourceMapConsumer_eachMapping");p.prototype.allGeneratedPositionsFor=s(function(e){var n=h.getArg(e,"line"),t={source:h.getArg(e,"source"),originalLine:n,originalColumn:h.getArg(e,"column",0)};if(t.source=this._findSourceIndex(t.source),t.source<0)return[];var o=[],i=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,fe.LEAST_UPPER_BOUND);if(i>=0){var u=this._originalMappings[i];if(e.column===void 0)for(var a=u.originalLine;u&&u.originalLine===a;)o.push({line:h.getArg(u,"generatedLine",null),column:h.getArg(u,"generatedColumn",null),lastColumn:h.getArg(u,"lastGeneratedColumn",null)}),u=this._originalMappings[++i];else for(var l=u.originalColumn;u&&u.originalLine===n&&u.originalColumn==l;)o.push({line:h.getArg(u,"generatedLine",null),column:h.getArg(u,"generatedColumn",null),lastColumn:h.getArg(u,"lastGeneratedColumn",null)}),u=this._originalMappings[++i]}return o},"SourceMapConsumer_allGeneratedPositionsFor");X.SourceMapConsumer=p;function m(r,e){var n=r;typeof r=="string"&&(n=h.parseSourceMapInput(r));var t=h.getArg(n,"version"),o=h.getArg(n,"sources"),i=h.getArg(n,"names",[]),u=h.getArg(n,"sourceRoot",null),a=h.getArg(n,"sourcesContent",null),l=h.getArg(n,"mappings"),c=h.getArg(n,"file",null);if(t!=this._version)throw new Error("Unsupported version: "+t);u&&(u=h.normalize(u)),o=o.map(String).map(h.normalize).map(function(f){return u&&h.isAbsolute(u)&&h.isAbsolute(f)?h.relative(u,f):f}),this._names=j.fromArray(i.map(String),!0),this._sources=j.fromArray(o,!0),this._absoluteSources=this._sources.toArray().map(function(f){return h.computeSourceURL(u,f,e)}),this.sourceRoot=u,this.sourcesContent=a,this._mappings=l,this._sourceMapURL=e,this.file=c}s(m,"BasicSourceMapConsumer");m.prototype=Object.create(p.prototype);m.prototype.consumer=p;m.prototype._findSourceIndex=function(r){var e=r;if(this.sourceRoot!=null&&(e=h.relative(this.sourceRoot,e)),this._sources.has(e))return this._sources.indexOf(e);var n;for(n=0;n<this._absoluteSources.length;++n)if(this._absoluteSources[n]==r)return n;return-1};m.fromSourceMap=s(function(e,n){var t=Object.create(m.prototype),o=t._names=j.fromArray(e._names.toArray(),!0),i=t._sources=j.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file,t._sourceMapURL=n,t._absoluteSources=t._sources.toArray().map(function(v){return h.computeSourceURL(t.sourceRoot,v,n)});for(var u=e._mappings.toArray().slice(),a=t.__generatedMappings=[],l=t.__originalMappings=[],c=0,f=u.length;c<f;c++){var d=u[c],g=new De;g.generatedLine=d.generatedLine,g.generatedColumn=d.generatedColumn,d.source&&(g.source=i.indexOf(d.source),g.originalLine=d.originalLine,g.originalColumn=d.originalColumn,d.name&&(g.name=o.indexOf(d.name)),l.push(g)),a.push(g)}return k(t.__originalMappings,h.compareByOriginalPositions),t},"SourceMapConsumer_fromSourceMap");m.prototype._version=3;Object.defineProperty(m.prototype,"sources",{get:s(function(){return this._absoluteSources.slice()},"get")});function De(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}s(De,"Mapping");m.prototype._parseMappings=s(function(e,n){for(var t=1,o=0,i=0,u=0,a=0,l=0,c=e.length,f=0,d={},g={},v=[],L=[],C,V,S,P,Ce;f<c;)if(e.charAt(f)===";")t++,f++,o=0;else if(e.charAt(f)===",")f++;else{for(C=new De,C.generatedLine=t,P=f;P<c&&!this._charIsMappingSeparator(e,P);P++);if(V=e.slice(f,P),S=d[V],S)f+=V.length;else{for(S=[];f<P;)mr.decode(e,f,g),Ce=g.value,f=g.rest,S.push(Ce);if(S.length===2)throw new Error("Found a source, but no line and column");if(S.length===3)throw new Error("Found a source and line, but no column");d[V]=S}C.generatedColumn=o+S[0],o=C.generatedColumn,S.length>1&&(C.source=a+S[1],a+=S[1],C.originalLine=i+S[2],i=C.originalLine,C.originalLine+=1,C.originalColumn=u+S[3],u=C.originalColumn,S.length>4&&(C.name=l+S[4],l+=S[4])),L.push(C),typeof C.originalLine=="number"&&v.push(C)}k(L,h.compareByGeneratedPositionsDeflated),this.__generatedMappings=L,k(v,h.compareByOriginalPositions),this.__originalMappings=v},"SourceMapConsumer_parseMappings");m.prototype._findMapping=s(function(e,n,t,o,i,u){if(e[t]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[t]);if(e[o]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[o]);return fe.search(e,n,i,u)},"SourceMapConsumer_findMapping");m.prototype.computeColumnSpans=s(function(){for(var e=0;e<this._generatedMappings.length;++e){var n=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var t=this._generatedMappings[e+1];if(n.generatedLine===t.generatedLine){n.lastGeneratedColumn=t.generatedColumn-1;continue}}n.lastGeneratedColumn=1/0}},"SourceMapConsumer_computeColumnSpans");m.prototype.originalPositionFor=s(function(e){var n={generatedLine:h.getArg(e,"line"),generatedColumn:h.getArg(e,"column")},t=this._findMapping(n,this._generatedMappings,"generatedLine","generatedColumn",h.compareByGeneratedPositionsDeflated,h.getArg(e,"bias",p.GREATEST_LOWER_BOUND));if(t>=0){var o=this._generatedMappings[t];if(o.generatedLine===n.generatedLine){var i=h.getArg(o,"source",null);i!==null&&(i=this._sources.at(i),i=h.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var u=h.getArg(o,"name",null);return u!==null&&(u=this._names.at(u)),{source:i,line:h.getArg(o,"originalLine",null),column:h.getArg(o,"originalColumn",null),name:u}}}return{source:null,line:null,column:null,name:null}},"SourceMapConsumer_originalPositionFor");m.prototype.hasContentsOfAllSources=s(function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return e==null}):!1},"BasicSourceMapConsumer_hasContentsOfAllSources");m.prototype.sourceContentFor=s(function(e,n){if(!this.sourcesContent)return null;var t=this._findSourceIndex(e);if(t>=0)return this.sourcesContent[t];var o=e;this.sourceRoot!=null&&(o=h.relative(this.sourceRoot,o));var i;if(this.sourceRoot!=null&&(i=h.urlParse(this.sourceRoot))){var u=o.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(u))return this.sourcesContent[this._sources.indexOf(u)];if((!i.path||i.path=="/")&&this._sources.has("/"+o))return this.sourcesContent[this._sources.indexOf("/"+o)]}if(n)return null;throw new Error('"'+o+'" is not in the SourceMap.')},"SourceMapConsumer_sourceContentFor");m.prototype.generatedPositionFor=s(function(e){var n=h.getArg(e,"source");if(n=this._findSourceIndex(n),n<0)return{line:null,column:null,lastColumn:null};var t={source:n,originalLine:h.getArg(e,"line"),originalColumn:h.getArg(e,"column")},o=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,h.getArg(e,"bias",p.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===t.source)return{line:h.getArg(i,"generatedLine",null),column:h.getArg(i,"generatedColumn",null),lastColumn:h.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},"SourceMapConsumer_generatedPositionFor");X.BasicSourceMapConsumer=m;function A(r,e){var n=r;typeof r=="string"&&(n=h.parseSourceMapInput(r));var t=h.getArg(n,"version"),o=h.getArg(n,"sections");if(t!=this._version)throw new Error("Unsupported version: "+t);this._sources=new j,this._names=new j;var i={line:-1,column:0};this._sections=o.map(function(u){if(u.url)throw new Error("Support for url field in sections not implemented.");var a=h.getArg(u,"offset"),l=h.getArg(a,"line"),c=h.getArg(a,"column");if(l<i.line||l===i.line&&c<i.column)throw new Error("Section offsets must be ordered and non-overlapping.");return i=a,{generatedOffset:{generatedLine:l+1,generatedColumn:c+1},consumer:new p(h.getArg(u,"map"),e)}})}s(A,"IndexedSourceMapConsumer");A.prototype=Object.create(p.prototype);A.prototype.constructor=p;A.prototype._version=3;Object.defineProperty(A.prototype,"sources",{get:s(function(){for(var r=[],e=0;e<this._sections.length;e++)for(var n=0;n<this._sections[e].consumer.sources.length;n++)r.push(this._sections[e].consumer.sources[n]);return r},"get")});A.prototype.originalPositionFor=s(function(e){var n={generatedLine:h.getArg(e,"line"),generatedColumn:h.getArg(e,"column")},t=fe.search(n,this._sections,function(i,u){var a=i.generatedLine-u.generatedOffset.generatedLine;return a||i.generatedColumn-u.generatedOffset.generatedColumn}),o=this._sections[t];return o?o.consumer.originalPositionFor({line:n.generatedLine-(o.generatedOffset.generatedLine-1),column:n.generatedColumn-(o.generatedOffset.generatedLine===n.generatedLine?o.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},"IndexedSourceMapConsumer_originalPositionFor");A.prototype.hasContentsOfAllSources=s(function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},"IndexedSourceMapConsumer_hasContentsOfAllSources");A.prototype.sourceContentFor=s(function(e,n){for(var t=0;t<this._sections.length;t++){var o=this._sections[t],i=o.consumer.sourceContentFor(e,!0);if(i)return i}if(n)return null;throw new Error('"'+e+'" is not in the SourceMap.')},"IndexedSourceMapConsumer_sourceContentFor");A.prototype.generatedPositionFor=s(function(e){for(var n=0;n<this._sections.length;n++){var t=this._sections[n];if(t.consumer._findSourceIndex(h.getArg(e,"source"))!==-1){var o=t.consumer.generatedPositionFor(e);if(o){var i={line:o.line+(t.generatedOffset.generatedLine-1),column:o.column+(t.generatedOffset.generatedLine===o.line?t.generatedOffset.generatedColumn-1:0)};return i}}}return{line:null,column:null}},"IndexedSourceMapConsumer_generatedPositionFor");A.prototype._parseMappings=s(function(e,n){this.__generatedMappings=[],this.__originalMappings=[];for(var t=0;t<this._sections.length;t++)for(var o=this._sections[t],i=o.consumer._generatedMappings,u=0;u<i.length;u++){var a=i[u],l=o.consumer._sources.at(a.source);l=h.computeSourceURL(o.consumer.sourceRoot,l,this._sourceMapURL),this._sources.add(l),l=this._sources.indexOf(l);var c=null;a.name&&(c=o.consumer._names.at(a.name),this._names.add(c),c=this._names.indexOf(c));var f={source:l,generatedLine:a.generatedLine+(o.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(o.generatedOffset.generatedLine===a.generatedLine?o.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:c};this.__generatedMappings.push(f),typeof f.originalLine=="number"&&this.__originalMappings.push(f)}k(this.__generatedMappings,h.compareByGeneratedPositionsDeflated),k(this.__originalMappings,h.compareByOriginalPositions)},"IndexedSourceMapConsumer_parseMappings");X.IndexedSourceMapConsumer=A});var ze=w(ke=>{var Sr=se().SourceMapGenerator,Z=F(),yr=/(\r?\n)/,Cr=10,U="$$$isSourceNode$$$";function M(r,e,n,t,o){this.children=[],this.sourceContents={},this.line=r??null,this.column=e??null,this.source=n??null,this.name=o??null,this[U]=!0,t!=null&&this.add(t)}s(M,"SourceNode");M.fromStringWithSourceMap=s(function(e,n,t){var o=new M,i=e.split(yr),u=0,a=s(function(){var g=L(),v=L()||"";return g+v;function L(){return u<i.length?i[u++]:void 0}},"shiftNextLine"),l=1,c=0,f=null;return n.eachMapping(function(g){if(f!==null)if(l<g.generatedLine)d(f,a()),l++,c=0;else{var v=i[u]||"",L=v.substr(0,g.generatedColumn-c);i[u]=v.substr(g.generatedColumn-c),c=g.generatedColumn,d(f,L),f=g;return}for(;l<g.generatedLine;)o.add(a()),l++;if(c<g.generatedColumn){var v=i[u]||"";o.add(v.substr(0,g.generatedColumn)),i[u]=v.substr(g.generatedColumn),c=g.generatedColumn}f=g},this),u<i.length&&(f&&d(f,a()),o.add(i.splice(u).join(""))),n.sources.forEach(function(g){var v=n.sourceContentFor(g);v!=null&&(t!=null&&(g=Z.join(t,g)),o.setSourceContent(g,v))}),o;function d(g,v){if(g===null||g.source===void 0)o.add(v);else{var L=t?Z.join(t,g.source):g.source;o.add(new M(g.originalLine,g.originalColumn,L,v,g.name))}}s(d,"addMappingWithCode")},"SourceNode_fromStringWithSourceMap");M.prototype.add=s(function(e){if(Array.isArray(e))e.forEach(function(n){this.add(n)},this);else if(e[U]||typeof e=="string")e&&this.children.push(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this},"SourceNode_add");M.prototype.prepend=s(function(e){if(Array.isArray(e))for(var n=e.length-1;n>=0;n--)this.prepend(e[n]);else if(e[U]||typeof e=="string")this.children.unshift(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this},"SourceNode_prepend");M.prototype.walk=s(function(e){for(var n,t=0,o=this.children.length;t<o;t++)n=this.children[t],n[U]?n.walk(e):n!==""&&e(n,{source:this.source,line:this.line,column:this.column,name:this.name})},"SourceNode_walk");M.prototype.join=s(function(e){var n,t,o=this.children.length;if(o>0){for(n=[],t=0;t<o-1;t++)n.push(this.children[t]),n.push(e);n.push(this.children[t]),this.children=n}return this},"SourceNode_join");M.prototype.replaceRight=s(function(e,n){var t=this.children[this.children.length-1];return t[U]?t.replaceRight(e,n):typeof t=="string"?this.children[this.children.length-1]=t.replace(e,n):this.children.push("".replace(e,n)),this},"SourceNode_replaceRight");M.prototype.setSourceContent=s(function(e,n){this.sourceContents[Z.toSetString(e)]=n},"SourceNode_setSourceContent");M.prototype.walkSourceContents=s(function(e){for(var n=0,t=this.children.length;n<t;n++)this.children[n][U]&&this.children[n].walkSourceContents(e);for(var o=Object.keys(this.sourceContents),n=0,t=o.length;n<t;n++)e(Z.fromSetString(o[n]),this.sourceContents[o[n]])},"SourceNode_walkSourceContents");M.prototype.toString=s(function(){var e="";return this.walk(function(n){e+=n}),e},"SourceNode_toString");M.prototype.toStringWithSourceMap=s(function(e){var n={code:"",line:1,column:0},t=new Sr(e),o=!1,i=null,u=null,a=null,l=null;return this.walk(function(c,f){n.code+=c,f.source!==null&&f.line!==null&&f.column!==null?((i!==f.source||u!==f.line||a!==f.column||l!==f.name)&&t.addMapping({source:f.source,original:{line:f.line,column:f.column},generated:{line:n.line,column:n.column},name:f.name}),i=f.source,u=f.line,a=f.column,l=f.name,o=!0):o&&(t.addMapping({generated:{line:n.line,column:n.column}}),i=null,o=!1);for(var d=0,g=c.length;d<g;d++)c.charCodeAt(d)===Cr?(n.line++,n.column=0,d+1===g?(i=null,o=!1):o&&t.addMapping({source:f.source,original:{line:f.line,column:f.column},generated:{line:n.line,column:n.column},name:f.name})):n.column++}),this.walkSourceContents(function(c,f){t.setSourceContent(c,f)}),{code:n.code,map:t}},"SourceNode_toStringWithSourceMap");ke.SourceNode=M});var Qe=w(K=>{K.SourceMapGenerator=se().SourceMapGenerator;K.SourceMapConsumer=$e().SourceMapConsumer;K.SourceNode=ze().SourceNode});var We=w((an,Ve)=>{var wr=Object.prototype.toString,he=typeof Buffer<"u"&&typeof Buffer.alloc=="function"&&typeof Buffer.allocUnsafe=="function"&&typeof Buffer.from=="function";function Mr(r){return wr.call(r).slice(8,-1)==="ArrayBuffer"}s(Mr,"isArrayBuffer");function Lr(r,e,n){e>>>=0;var t=r.byteLength-e;if(t<0)throw new RangeError("'offset' is out of bounds");if(n===void 0)n=t;else if(n>>>=0,n>t)throw new RangeError("'length' is out of bounds");return he?Buffer.from(r.slice(e,e+n)):new Buffer(new Uint8Array(r.slice(e,e+n)))}s(Lr,"fromArrayBuffer");function Er(r,e){if((typeof e!="string"||e==="")&&(e="utf8"),!Buffer.isEncoding(e))throw new TypeError('"encoding" must be a valid string encoding');return he?Buffer.from(r,e):new Buffer(r,e)}s(Er,"fromString");function Ar(r,e,n){if(typeof r=="number")throw new TypeError('"value" argument must not be a number');return Mr(r)?Lr(r,e,n):typeof r=="string"?Er(r,e):he?Buffer.from(r):new Buffer(r)}s(Ar,"bufferFrom");Ve.exports=Ar});var rr=w((T,pe)=>{var Or=Qe().SourceMapConsumer,ge=require("path"),O;try{O=require("fs"),(!O.existsSync||!O.readFileSync)&&(O=null)}catch{}var br=We();function Je(r,e){return r.require(e)}s(Je,"dynamicRequire");var Xe=!1,Ze=!1,de=!1,z="auto",I={},Q={},Rr=/^data:application\/json[^,]+base64,/,R=[],N=[];function _e(){return z==="browser"?!0:z==="node"?!1:typeof window<"u"&&typeof XMLHttpRequest=="function"&&!(window.require&&window.module&&window.process&&window.process.type==="renderer")}s(_e,"isInBrowser");function Nr(){return typeof process=="object"&&process!==null&&typeof process.on=="function"}s(Nr,"hasGlobalProcessEventEmitter");function xr(){return typeof process=="object"&&process!==null?process.version:""}s(xr,"globalProcessVersion");function Gr(){if(typeof process=="object"&&process!==null)return process.stderr}s(Gr,"globalProcessStderr");function Ir(r){if(typeof process=="object"&&process!==null&&typeof process.exit=="function")return process.exit(r)}s(Ir,"globalProcessExit");function Y(r){return function(e){for(var n=0;n<r.length;n++){var t=r[n](e);if(t)return t}return null}}s(Y,"handlerExec");var me=Y(R);R.push(function(r){if(r=r.trim(),/^file:/.test(r)&&(r=r.replace(/file:\/\/\/(\w:)?/,function(t,o){return o?"":"/"})),r in I)return I[r];var e="";try{if(O)O.existsSync(r)&&(e=O.readFileSync(r,"utf8"));else{var n=new XMLHttpRequest;n.open("GET",r,!1),n.send(null),n.readyState===4&&n.status===200&&(e=n.responseText)}}catch{}return I[r]=e});function ve(r,e){if(!r)return e;var n=ge.dirname(r),t=/^\w+:\/\/[^\/]*/.exec(n),o=t?t[0]:"",i=n.slice(o.length);return o&&/^\/\w\:/.test(i)?(o+="/",o+ge.resolve(n.slice(o.length),e).replace(/\\/g,"/")):o+ge.resolve(n.slice(o.length),e)}s(ve,"supportRelativeURL");function Tr(r){var e;if(_e())try{var n=new XMLHttpRequest;n.open("GET",r,!1),n.send(null),e=n.readyState===4?n.responseText:null;var t=n.getResponseHeader("SourceMap")||n.getResponseHeader("X-SourceMap");if(t)return t}catch{}e=me(r);for(var o=/(?:\/\/[@#][\s]*sourceMappingURL=([^\s'"]+)[\s]*$)|(?:\/\*[@#][\s]*sourceMappingURL=([^\s*'"]+)[\s]*(?:\*\/)[\s]*$)/mg,i,u;u=o.exec(e);)i=u;return i?i[1]:null}s(Tr,"retrieveSourceMapURL");var Se=Y(N);N.push(function(r){var e=Tr(r);if(!e)return null;var n;if(Rr.test(e)){var t=e.slice(e.indexOf(",")+1);n=br(t,"base64").toString(),e=r}else e=ve(r,e),n=me(e);return n?{url:e,map:n}:null});function ye(r){var e=Q[r.source];if(!e){var n=Se(r.source);n?(e=Q[r.source]={url:n.url,map:new Or(n.map)},e.map.sourcesContent&&e.map.sources.forEach(function(o,i){var u=e.map.sourcesContent[i];if(u){var a=ve(e.url,o);I[a]=u}})):e=Q[r.source]={url:null,map:null}}if(e&&e.map&&typeof e.map.originalPositionFor=="function"){var t=e.map.originalPositionFor(r);if(t.source!==null)return t.source=ve(e.url,t.source),t}return r}s(ye,"mapSourcePosition");function Ye(r){var e=/^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(r);if(e){var n=ye({source:e[2],line:+e[3],column:e[4]-1});return"eval at "+e[1]+" ("+n.source+":"+n.line+":"+(n.column+1)+")"}return e=/^eval at ([^(]+) \((.+)\)$/.exec(r),e?"eval at "+e[1]+" ("+Ye(e[2])+")":r}s(Ye,"mapEvalOrigin");function Pr(){var r,e="";if(this.isNative())e="native";else{r=this.getScriptNameOrSourceURL(),!r&&this.isEval()&&(e=this.getEvalOrigin(),e+=", "),r?e+=r:e+="<anonymous>";var n=this.getLineNumber();if(n!=null){e+=":"+n;var t=this.getColumnNumber();t&&(e+=":"+t)}}var o="",i=this.getFunctionName(),u=!0,a=this.isConstructor(),l=!(this.isToplevel()||a);if(l){var c=this.getTypeName();c==="[object Object]"&&(c="null");var f=this.getMethodName();i?(c&&i.indexOf(c)!=0&&(o+=c+"."),o+=i,f&&i.indexOf("."+f)!=i.length-f.length-1&&(o+=" [as "+f+"]")):o+=c+"."+(f||"<anonymous>")}else a?o+="new "+(i||"<anonymous>"):i?o+=i:(o+=e,u=!1);return u&&(o+=" ("+e+")"),o}s(Pr,"CallSiteToString");function Ke(r){var e={};return Object.getOwnPropertyNames(Object.getPrototypeOf(r)).forEach(function(n){e[n]=/^(?:is|get)/.test(n)?function(){return r[n].call(r)}:r[n]}),e.toString=Pr,e}s(Ke,"cloneCallSite");function He(r,e){if(e===void 0&&(e={nextPosition:null,curPosition:null}),r.isNative())return e.curPosition=null,r;var n=r.getFileName()||r.getScriptNameOrSourceURL();if(n){var t=r.getLineNumber(),o=r.getColumnNumber()-1,i=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/,u=i.test(xr())?0:62;t===1&&o>u&&!_e()&&!r.isEval()&&(o-=u);var a=ye({source:n,line:t,column:o});e.curPosition=a,r=Ke(r);var l=r.getFunctionName;return r.getFunctionName=function(){return e.nextPosition==null?l():e.nextPosition.name||l()},r.getFileName=function(){return a.source},r.getLineNumber=function(){return a.line},r.getColumnNumber=function(){return a.column+1},r.getScriptNameOrSourceURL=function(){return a.source},r}var c=r.isEval()&&r.getEvalOrigin();return c&&(c=Ye(c),r=Ke(r),r.getEvalOrigin=function(){return c}),r}s(He,"wrapCallSite");function Br(r,e){de&&(I={},Q={});for(var n=r.name||"Error",t=r.message||"",o=n+": "+t,i={nextPosition:null,curPosition:null},u=[],a=e.length-1;a>=0;a--)u.push(`
2
- at `+He(e[a],i)),i.nextPosition=i.curPosition;return i.curPosition=i.nextPosition=null,o+u.reverse().join("")}s(Br,"prepareStackTrace");function er(r){var e=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(r.stack);if(e){var n=e[1],t=+e[2],o=+e[3],i=I[n];if(!i&&O&&O.existsSync(n))try{i=O.readFileSync(n,"utf8")}catch{i=""}if(i){var u=i.split(/(?:\r\n|\r|\n)/)[t-1];if(u)return n+":"+t+`
3
- `+u+`
4
- `+new Array(o).join(" ")+"^"}}return null}s(er,"getErrorSource");function qr(r){var e=er(r),n=Gr();n&&n._handle&&n._handle.setBlocking&&n._handle.setBlocking(!0),e&&(console.error(),console.error(e)),console.error(r.stack),Ir(1)}s(qr,"printErrorAndExit");function Fr(){var r=process.emit;process.emit=function(e){if(e==="uncaughtException"){var n=arguments[1]&&arguments[1].stack,t=this.listeners(e).length>0;if(n&&!t)return qr(arguments[1])}return r.apply(this,arguments)}}s(Fr,"shimEmitUncaughtException");var jr=R.slice(0),Ur=N.slice(0);T.wrapCallSite=He;T.getErrorSource=er;T.mapSourcePosition=ye;T.retrieveSourceMap=Se;T.install=function(r){if(r=r||{},r.environment&&(z=r.environment,["node","browser","auto"].indexOf(z)===-1))throw new Error("environment "+z+" was unknown. Available options are {auto, browser, node}");if(r.retrieveFile&&(r.overrideRetrieveFile&&(R.length=0),R.unshift(r.retrieveFile)),r.retrieveSourceMap&&(r.overrideRetrieveSourceMap&&(N.length=0),N.unshift(r.retrieveSourceMap)),r.hookRequire&&!_e()){var e=Je(pe,"module"),n=e.prototype._compile;n.__sourceMapSupport||(e.prototype._compile=function(i,u){return I[u]=i,Q[u]=void 0,n.call(this,i,u)},e.prototype._compile.__sourceMapSupport=!0)}if(de||(de="emptyCacheBetweenOperations"in r?r.emptyCacheBetweenOperations:!1),Xe||(Xe=!0,Error.prepareStackTrace=Br),!Ze){var t="handleUncaughtExceptions"in r?r.handleUncaughtExceptions:!0;try{var o=Je(pe,"worker_threads");o.isMainThread===!1&&(t=!1)}catch{}t&&Nr()&&(Ze=!0,Fr())}};T.resetRetrieveHandlers=function(){R.length=0,N.length=0,R=jr.slice(0),N=Ur.slice(0),Se=Y(N),me=Y(R)}});rr().install({environment:"node",handleUncaughtExceptions:!1});
5
-
6
- var __defProp = Object.defineProperty;
7
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
- var __getOwnPropNames = Object.getOwnPropertyNames;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
- var __export = (target, all) => {
12
- for (var name in all)
13
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ module.exports.sayHello = () => {
2
+ console.log('Hello, world!');
14
3
  };
15
- var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from))
18
- if (!__hasOwnProp.call(to, key) && key !== except)
19
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
- }
21
- return to;
22
- };
23
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
-
25
- // src/api/npm/ts/index.ts
26
- var index_exports = {};
27
- __export(index_exports, {
28
- $CfFormat: () => $CfFormat,
29
- $CfResourceParam: () => $CfResourceParam,
30
- $CfStackOutput: () => $CfStackOutput,
31
- $GitInfo: () => $GitInfo,
32
- $ResourceParam: () => $ResourceParam,
33
- $Secret: () => $Secret,
34
- AWS_SES: () => AWS_SES,
35
- AlarmIntegration: () => AlarmIntegration,
36
- ApplicationLoadBalancer: () => ApplicationLoadBalancer,
37
- ApplicationLoadBalancerIntegration: () => ApplicationLoadBalancerIntegration,
38
- AuroraEngineMysql: () => AuroraEngineMysql,
39
- AuroraEnginePostgresql: () => AuroraEnginePostgresql,
40
- AuroraServerlessEngineMysql: () => AuroraServerlessEngineMysql,
41
- AuroraServerlessEnginePostgresql: () => AuroraServerlessEnginePostgresql,
42
- AuroraServerlessV2EngineMysql: () => AuroraServerlessV2EngineMysql,
43
- AuroraServerlessV2EnginePostgresql: () => AuroraServerlessV2EnginePostgresql,
44
- BaseResource: () => BaseResource,
45
- BaseTypeProperties: () => BaseTypeProperties,
46
- Bastion: () => Bastion,
47
- BastionScriptWithCommand: () => BastionScriptWithCommand,
48
- BastionScriptWithCommands: () => BastionScriptWithCommands,
49
- BatchJob: () => BatchJob,
50
- Bucket: () => Bucket,
51
- CdnBucketRoute: () => CdnBucketRoute,
52
- CdnCustomDomainRoute: () => CdnCustomDomainRoute,
53
- CdnHttpApiGatewayRoute: () => CdnHttpApiGatewayRoute,
54
- CdnLambdaFunctionRoute: () => CdnLambdaFunctionRoute,
55
- CdnLoadBalancerRoute: () => CdnLoadBalancerRoute,
56
- CloudwatchLogIntegration: () => CloudwatchLogIntegration,
57
- ContainerEfsMount: () => ContainerEfsMount,
58
- ContainerWorkload: () => ContainerWorkload,
59
- ContainerWorkloadHttpApiIntegration: () => ContainerWorkloadHttpApiIntegration,
60
- ContainerWorkloadInternalIntegration: () => ContainerWorkloadInternalIntegration,
61
- ContainerWorkloadServiceConnectIntegration: () => ContainerWorkloadServiceConnectIntegration,
62
- CustomArtifactLambdaPackaging: () => CustomArtifactLambdaPackaging,
63
- CustomDockerfilePackaging: () => CustomDockerfilePackaging,
64
- CustomRuleGroup: () => CustomRuleGroup,
65
- DatadogLogForwarding: () => DatadogLogForwarding,
66
- DynamoDbIntegration: () => DynamoDbIntegration,
67
- DynamoDbTable: () => DynamoDbTable,
68
- EfsFilesystem: () => EfsFilesystem,
69
- EventBus: () => EventBus,
70
- EventBusIntegration: () => EventBusIntegration,
71
- ExpirationLifecycleRule: () => ExpirationLifecycleRule,
72
- ExternalBuildpackPackaging: () => ExternalBuildpackPackaging,
73
- HighlightLogForwarding: () => HighlightLogForwarding,
74
- HostingBucket: () => HostingBucket,
75
- HttpApiGateway: () => HttpApiGateway,
76
- HttpApiIntegration: () => HttpApiIntegration,
77
- HttpEndpointLogForwarding: () => HttpEndpointLogForwarding,
78
- KafkaTopicIntegration: () => KafkaTopicIntegration,
79
- KinesisIntegration: () => KinesisIntegration,
80
- LambdaEfsMount: () => LambdaEfsMount,
81
- LambdaFunction: () => LambdaFunction,
82
- LocalScriptWithBastionTunnelingCommand: () => LocalScriptWithBastionTunnelingCommand,
83
- LocalScriptWithBastionTunnelingCommands: () => LocalScriptWithBastionTunnelingCommands,
84
- LocalScriptWithBastionTunnelingFileScript: () => LocalScriptWithBastionTunnelingFileScript,
85
- LocalScriptWithBastionTunnelingFileScripts: () => LocalScriptWithBastionTunnelingFileScripts,
86
- LocalScriptWithCommand: () => LocalScriptWithCommand,
87
- LocalScriptWithCommands: () => LocalScriptWithCommands,
88
- LocalScriptWithFileScript: () => LocalScriptWithFileScript,
89
- LocalScriptWithFileScripts: () => LocalScriptWithFileScripts,
90
- ManagedRuleGroup: () => ManagedRuleGroup,
91
- MongoDbAtlasCluster: () => MongoDbAtlasCluster,
92
- NetworkLoadBalancer: () => NetworkLoadBalancer,
93
- NextjsWeb: () => NextjsWeb,
94
- NixpacksPackaging: () => NixpacksPackaging,
95
- NonCurrentVersionExpirationLifecycleRule: () => NonCurrentVersionExpirationLifecycleRule,
96
- OpenSearchDomain: () => OpenSearchDomain,
97
- PrebuiltImagePackaging: () => PrebuiltImagePackaging,
98
- PrivateService: () => PrivateService,
99
- RateBasedRule: () => RateBasedRule,
100
- RdsEngineMariadb: () => RdsEngineMariadb,
101
- RdsEngineMysql: () => RdsEngineMysql,
102
- RdsEngineOracleEE: () => RdsEngineOracleEE,
103
- RdsEngineOracleSE2: () => RdsEngineOracleSE2,
104
- RdsEnginePostgres: () => RdsEnginePostgres,
105
- RdsEngineSqlServerEE: () => RdsEngineSqlServerEE,
106
- RdsEngineSqlServerEX: () => RdsEngineSqlServerEX,
107
- RdsEngineSqlServerSE: () => RdsEngineSqlServerSE,
108
- RdsEngineSqlServerWeb: () => RdsEngineSqlServerWeb,
109
- RedisCluster: () => RedisCluster,
110
- RelationalDatabase: () => RelationalDatabase,
111
- ResourceParamReference: () => ResourceParamReference,
112
- S3Integration: () => S3Integration,
113
- ScheduleIntegration: () => ScheduleIntegration,
114
- SnsIntegration: () => SnsIntegration,
115
- SnsTopic: () => SnsTopic,
116
- SqsIntegration: () => SqsIntegration,
117
- SqsQueue: () => SqsQueue,
118
- SqsQueueEventBusIntegration: () => SqsQueueEventBusIntegration,
119
- StacktapeImageBuildpackPackaging: () => StacktapeImageBuildpackPackaging,
120
- StacktapeLambdaBuildpackPackaging: () => StacktapeLambdaBuildpackPackaging,
121
- StateMachine: () => StateMachine,
122
- UpstashRedis: () => UpstashRedis,
123
- UserAuthPool: () => UserAuthPool,
124
- WebAppFirewall: () => WebAppFirewall,
125
- WebService: () => WebService,
126
- WorkerService: () => WorkerService,
127
- defineConfig: () => defineConfig,
128
- transformConfigWithResources: () => transformConfigWithResources,
129
- transformValue: () => transformValue
130
- });
131
- module.exports = __toCommonJS(index_exports);
132
-
133
- // node_modules/change-case/dist/index.js
134
- var SPLIT_LOWER_UPPER_RE = new RegExp("([\\p{Ll}\\d])(\\p{Lu})", "gu");
135
- var SPLIT_UPPER_UPPER_RE = new RegExp("(\\p{Lu})([\\p{Lu}][\\p{Ll}])", "gu");
136
- var SPLIT_SEPARATE_NUMBER_RE = new RegExp("(\\d)\\p{Ll}|(\\p{L})\\d", "u");
137
- var DEFAULT_STRIP_REGEXP = /[^\p{L}\d]+/giu;
138
- var SPLIT_REPLACE_VALUE = "$1\0$2";
139
- var DEFAULT_PREFIX_SUFFIX_CHARACTERS = "";
140
- function split(value) {
141
- let result = value.trim();
142
- result = result.replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE).replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);
143
- result = result.replace(DEFAULT_STRIP_REGEXP, "\0");
144
- let start = 0;
145
- let end = result.length;
146
- while (result.charAt(start) === "\0")
147
- start++;
148
- if (start === end)
149
- return [];
150
- while (result.charAt(end - 1) === "\0")
151
- end--;
152
- return result.slice(start, end).split(/\0/g);
153
- }
154
- __name(split, "split");
155
- function splitSeparateNumbers(value) {
156
- const words = split(value);
157
- for (let i = 0; i < words.length; i++) {
158
- const word = words[i];
159
- const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);
160
- if (match) {
161
- const offset = match.index + (match[1] ?? match[2]).length;
162
- words.splice(i, 1, word.slice(0, offset), word.slice(offset));
163
- }
164
- }
165
- return words;
166
- }
167
- __name(splitSeparateNumbers, "splitSeparateNumbers");
168
- function pascalCase(input, options) {
169
- const [prefix, words, suffix] = splitPrefixSuffix(input, options);
170
- const lower = lowerFactory(options?.locale);
171
- const upper = upperFactory(options?.locale);
172
- const transform = options?.mergeAmbiguousCharacters ? capitalCaseTransformFactory(lower, upper) : pascalCaseTransformFactory(lower, upper);
173
- return prefix + words.map(transform).join(options?.delimiter ?? "") + suffix;
174
- }
175
- __name(pascalCase, "pascalCase");
176
- function lowerFactory(locale) {
177
- return locale === false ? (input) => input.toLowerCase() : (input) => input.toLocaleLowerCase(locale);
178
- }
179
- __name(lowerFactory, "lowerFactory");
180
- function upperFactory(locale) {
181
- return locale === false ? (input) => input.toUpperCase() : (input) => input.toLocaleUpperCase(locale);
182
- }
183
- __name(upperFactory, "upperFactory");
184
- function capitalCaseTransformFactory(lower, upper) {
185
- return (word) => `${upper(word[0])}${lower(word.slice(1))}`;
186
- }
187
- __name(capitalCaseTransformFactory, "capitalCaseTransformFactory");
188
- function pascalCaseTransformFactory(lower, upper) {
189
- return (word, index) => {
190
- const char0 = word[0];
191
- const initial = index > 0 && char0 >= "0" && char0 <= "9" ? "_" + char0 : upper(char0);
192
- return initial + lower(word.slice(1));
193
- };
194
- }
195
- __name(pascalCaseTransformFactory, "pascalCaseTransformFactory");
196
- function splitPrefixSuffix(input, options = {}) {
197
- const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);
198
- const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
199
- const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
200
- let prefixIndex = 0;
201
- let suffixIndex = input.length;
202
- while (prefixIndex < input.length) {
203
- const char = input.charAt(prefixIndex);
204
- if (!prefixCharacters.includes(char))
205
- break;
206
- prefixIndex++;
207
- }
208
- while (suffixIndex > prefixIndex) {
209
- const index = suffixIndex - 1;
210
- const char = input.charAt(index);
211
- if (!suffixCharacters.includes(char))
212
- break;
213
- suffixIndex = index;
214
- }
215
- return [
216
- input.slice(0, prefixIndex),
217
- splitFn(input.slice(prefixIndex, suffixIndex)),
218
- input.slice(suffixIndex)
219
- ];
220
- }
221
- __name(splitPrefixSuffix, "splitPrefixSuffix");
222
-
223
- // shared/naming/logical-names.ts
224
- var cfLogicalNames = {
225
- bucket(stpResourceName) {
226
- return pascalCase(`${stpResourceName}-bucket`);
227
- },
228
- atlasMongoProject() {
229
- return buildCfLogicalName({
230
- specifier: { type: "AtlasMongo" },
231
- suffix: { cloudformationResourceType: "MongoDB::StpAtlasV1::Project" }
232
- });
233
- },
234
- atlasMongoCredentialsProvider() {
235
- return buildCfLogicalName({
236
- specifier: { type: "AtlasMongoCredentialsProvider" },
237
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
238
- });
239
- },
240
- atlasMongoProjectVpcNetworkContainer() {
241
- return buildCfLogicalName({
242
- specifier: { type: "AtlasMongo" },
243
- suffix: { cloudformationResourceType: "MongoDB::StpAtlasV1::NetworkContainer" }
244
- });
245
- },
246
- atlasMongoProjectVpcNetworkPeering() {
247
- return buildCfLogicalName({
248
- specifier: { type: "AtlasMongo" },
249
- suffix: { cloudformationResourceType: "MongoDB::StpAtlasV1::NetworkPeering" }
250
- });
251
- },
252
- atlasMongoProjectIpAccessList() {
253
- return buildCfLogicalName({
254
- specifier: { type: "AtlasMongo" },
255
- suffix: { cloudformationResourceType: "MongoDB::StpAtlasV1::ProjectIpAccessList" }
256
- });
257
- },
258
- atlasMongoUserAssociatedWithRole(stpResourceName) {
259
- return buildCfLogicalName({
260
- stpResourceName,
261
- specifier: { type: "AtlasMongo" },
262
- suffix: { cloudformationResourceType: "MongoDB::StpAtlasV1::DatabaseUser" }
263
- });
264
- },
265
- atlasMongoClusterMasterUser(stpResourceName) {
266
- return buildCfLogicalName({
267
- stpResourceName,
268
- suffix: { cloudformationResourceType: "MongoDB::StpAtlasV1::DatabaseUser" }
269
- });
270
- },
271
- atlasMongoCluster(stpResourceName) {
272
- return buildCfLogicalName({
273
- stpResourceName,
274
- suffix: { cloudformationResourceType: "MongoDB::StpAtlasV1::Cluster" }
275
- });
276
- },
277
- redisReplicationGroup(stpResourceName) {
278
- return buildCfLogicalName({
279
- stpResourceName,
280
- suffix: { cloudformationResourceType: "AWS::ElastiCache::ReplicationGroup" }
281
- });
282
- },
283
- redisLogGroup(stpResourceName) {
284
- return buildCfLogicalName({
285
- stpResourceName,
286
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
287
- });
288
- },
289
- redisParameterGroup(stpResourceName) {
290
- return buildCfLogicalName({
291
- stpResourceName,
292
- suffix: { cloudformationResourceType: "AWS::ElastiCache::ParameterGroup" }
293
- });
294
- },
295
- redisSubnetGroup(stpResourceName) {
296
- return buildCfLogicalName({
297
- stpResourceName,
298
- suffix: { cloudformationResourceType: "AWS::ElastiCache::SubnetGroup" }
299
- });
300
- },
301
- redisSecurityGroup(stpResourceName) {
302
- return buildCfLogicalName({
303
- stpResourceName,
304
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
305
- });
306
- },
307
- efsFilesystem(stpResourceName) {
308
- return buildCfLogicalName({
309
- stpResourceName,
310
- suffix: {
311
- cloudformationResourceType: "AWS::EFS::FileSystem"
312
- }
313
- });
314
- },
315
- efsAccessPoint({
316
- stpResourceName,
317
- efsFilesystemName,
318
- rootDirectory
319
- }) {
320
- const rootDirIdentifier = rootDirectory ? `${rootDirectory.replace(/\//g, "-").replace(/^-|-$/g, "")}` : "Root";
321
- return buildCfLogicalName({
322
- stpResourceName,
323
- specifier: {
324
- type: `${efsFilesystemName}-${rootDirIdentifier}`
325
- },
326
- suffix: {
327
- cloudformationResourceType: "AWS::EFS::AccessPoint"
328
- }
329
- });
330
- },
331
- efsMountTarget(stpResourceName, mountTargetIndex) {
332
- return buildCfLogicalName({
333
- stpResourceName,
334
- specifier: { type: "Subnet", typeIndex: mountTargetIndex },
335
- suffix: { cloudformationResourceType: "AWS::EFS::MountTarget" }
336
- });
337
- },
338
- efsSecurityGroup(stpResourceName) {
339
- return buildCfLogicalName({
340
- stpResourceName,
341
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
342
- });
343
- },
344
- snsRoleSendSmsFromCognito(stpResourceName) {
345
- return buildCfLogicalName({
346
- stpResourceName,
347
- specifier: { type: "SendSms" },
348
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
349
- });
350
- },
351
- cloudfrontDistribution(stpResourceName, distributionIndex) {
352
- return buildCfLogicalName({
353
- stpResourceName,
354
- specifier: { type: "CDN" },
355
- suffix: { cloudformationResourceType: "AWS::CloudFront::Distribution", index: distributionIndex }
356
- });
357
- },
358
- cloudfrontCustomCachePolicy(stpResourceName, cachingOptionsHash) {
359
- return buildCfLogicalName({
360
- stpResourceName,
361
- specifier: { type: `CDNCacheBehavior${cachingOptionsHash}` },
362
- suffix: { cloudformationResourceType: "AWS::CloudFront::CachePolicy" }
363
- });
364
- },
365
- cloudfrontDefaultCachePolicy(type) {
366
- return buildCfLogicalName({
367
- specifier: { type: `CDN${type}` },
368
- suffix: { cloudformationResourceType: "AWS::CloudFront::CachePolicy" }
369
- });
370
- },
371
- cloudfrontCustomOriginRequestPolicy(stpResourceName, forwardingOptionsHash) {
372
- return buildCfLogicalName({
373
- stpResourceName,
374
- specifier: { type: `CDNCacheBehavior${forwardingOptionsHash}` },
375
- suffix: { cloudformationResourceType: "AWS::CloudFront::OriginRequestPolicy" }
376
- });
377
- },
378
- cloudfrontDefaultOriginRequestPolicy(type) {
379
- return buildCfLogicalName({
380
- specifier: { type: `CDN${type}` },
381
- suffix: { cloudformationResourceType: "AWS::CloudFront::OriginRequestPolicy" }
382
- });
383
- },
384
- cloudfrontOriginAccessIdentity(stpResourceName) {
385
- return buildCfLogicalName({
386
- stpResourceName,
387
- specifier: { type: "CDN" },
388
- suffix: { cloudformationResourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity" }
389
- });
390
- },
391
- openNextHostHeaderRewriteFunction(stpResourceName) {
392
- return buildCfLogicalName({
393
- stpResourceName,
394
- specifier: { type: "OpenNextHostHeaderRewrite" },
395
- suffix: { cloudformationResourceType: "AWS::CloudFront::Function" }
396
- });
397
- },
398
- openNextAssetReplacerCustomResource(stpResourceName) {
399
- return buildCfLogicalName({
400
- stpResourceName,
401
- specifier: { type: "AssetReplacer" },
402
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
403
- });
404
- },
405
- openNextDynamoInsertCustomResource(stpResourceName) {
406
- return buildCfLogicalName({
407
- stpResourceName,
408
- specifier: { type: "DynamoInsert" },
409
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
410
- });
411
- },
412
- dnsRecord(fullyQualifiedDomainName) {
413
- return buildCfLogicalName({
414
- stpResourceName: "",
415
- specifier: { type: getSpecifierForDomainResource(fullyQualifiedDomainName) },
416
- suffix: { cloudformationResourceType: "AWS::Route53::RecordSet" }
417
- });
418
- },
419
- dynamoGlobalTable(stpResourceName) {
420
- return buildCfLogicalName({
421
- stpResourceName,
422
- suffix: { cloudformationResourceType: "AWS::DynamoDB::GlobalTable" }
423
- });
424
- },
425
- dynamoRegionalTable(stpResourceName) {
426
- return buildCfLogicalName({
427
- stpResourceName,
428
- suffix: { cloudformationResourceType: "AWS::DynamoDB::Table" }
429
- });
430
- },
431
- bucketPolicy(stpResourceName) {
432
- return buildCfLogicalName({
433
- stpResourceName,
434
- suffix: { cloudformationResourceType: "AWS::S3::BucketPolicy" }
435
- });
436
- },
437
- lambdaLogGroup(stpResourceName) {
438
- return buildCfLogicalName({
439
- stpResourceName,
440
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
441
- });
442
- },
443
- eventOnDeliveryFailureSqsQueuePolicy(stpResourceName, eventIndex) {
444
- return buildCfLogicalName({
445
- stpResourceName,
446
- specifier: {
447
- type: "Event",
448
- typeIndex: eventIndex
449
- },
450
- suffix: { cloudformationResourceType: "AWS::SQS::QueuePolicy" }
451
- });
452
- },
453
- snsEventSubscription(stpResourceName, eventIndex) {
454
- return buildCfLogicalName({
455
- stpResourceName,
456
- specifier: {
457
- type: "Event",
458
- typeIndex: eventIndex
459
- },
460
- suffix: { cloudformationResourceType: "AWS::SNS::Subscription" }
461
- });
462
- },
463
- snsEventPermission(stpResourceName, eventIndex) {
464
- return buildCfLogicalName({
465
- stpResourceName,
466
- specifier: {
467
- type: "Event",
468
- typeIndex: eventIndex
469
- },
470
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
471
- });
472
- },
473
- ecrRepo() {
474
- return buildCfLogicalName({
475
- specifier: {
476
- type: "Container"
477
- },
478
- suffix: { cloudformationResourceType: "AWS::ECR::Repository" }
479
- });
480
- },
481
- deploymentBucket() {
482
- return buildCfLogicalName({
483
- specifier: {
484
- type: "Deployment"
485
- },
486
- suffix: { cloudformationResourceType: "AWS::S3::Bucket" }
487
- });
488
- },
489
- deploymentBucketPolicy() {
490
- return buildCfLogicalName({
491
- specifier: {
492
- type: "Deployment"
493
- },
494
- suffix: { cloudformationResourceType: "AWS::S3::BucketPolicy" }
495
- });
496
- },
497
- lambdaInvokeConfig(stpResourceName) {
498
- return buildCfLogicalName({
499
- stpResourceName,
500
- suffix: { cloudformationResourceType: "AWS::Lambda::EventInvokeConfig" }
501
- });
502
- },
503
- lambdaVersionPublisherCustomResource(stpResourceName) {
504
- return buildCfLogicalName({
505
- stpResourceName,
506
- specifier: { type: "Version" },
507
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
508
- });
509
- },
510
- codeDeployServiceRole() {
511
- return buildCfLogicalName({
512
- specifier: {
513
- type: "CodeDeploy"
514
- },
515
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
516
- });
517
- },
518
- batchInstanceRole() {
519
- return buildCfLogicalName({
520
- specifier: {
521
- type: "BatchInstance"
522
- },
523
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
524
- });
525
- },
526
- batchInstanceDefaultSecurityGroup() {
527
- return buildCfLogicalName({
528
- specifier: {
529
- type: "BatchInstance"
530
- },
531
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
532
- });
533
- },
534
- batchInstanceProfile() {
535
- return buildCfLogicalName({
536
- specifier: {
537
- type: "BatchInstance"
538
- },
539
- suffix: { cloudformationResourceType: "AWS::IAM::InstanceProfile" }
540
- });
541
- },
542
- batchInstanceLaunchTemplate() {
543
- return buildCfLogicalName({
544
- specifier: {
545
- type: "BatchInstance"
546
- },
547
- suffix: { cloudformationResourceType: "AWS::EC2::LaunchTemplate" }
548
- });
549
- },
550
- batchStateMachineExecutionRole() {
551
- return buildCfLogicalName({
552
- specifier: {
553
- type: "BatchStateMachine"
554
- },
555
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
556
- });
557
- },
558
- batchSpotFleetRole() {
559
- return buildCfLogicalName({
560
- specifier: {
561
- type: "BatchSpotFleet"
562
- },
563
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
564
- });
565
- },
566
- batchServiceRole() {
567
- return buildCfLogicalName({
568
- specifier: {
569
- type: "BatchService"
570
- },
571
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
572
- });
573
- },
574
- batchJobExecutionRole(stpResourceName) {
575
- return buildCfLogicalName({
576
- stpResourceName,
577
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
578
- });
579
- },
580
- batchComputeEnvironment(spot, gpu) {
581
- return buildCfLogicalName({
582
- specifier: {
583
- type: `Batch-${spot ? "spot" : "onDemand"}-${gpu ? "gpu" : ""}`
584
- },
585
- suffix: { cloudformationResourceType: "AWS::Batch::ComputeEnvironment" }
586
- });
587
- },
588
- batchJobQueue(spot, gpu) {
589
- return buildCfLogicalName({
590
- specifier: {
591
- type: `Batch-${spot ? "spot" : "onDemand"}-${gpu ? "gpu" : ""}`
592
- },
593
- suffix: { cloudformationResourceType: "AWS::Batch::JobQueue" }
594
- });
595
- },
596
- subnet(publicSubnet, subnetIndex) {
597
- return buildCfLogicalName({
598
- specifier: {
599
- type: publicSubnet ? "Public" : "Private"
600
- },
601
- suffix: { cloudformationResourceType: "AWS::EC2::Subnet", index: subnetIndex }
602
- });
603
- },
604
- vpc() {
605
- return buildCfLogicalName({
606
- suffix: { cloudformationResourceType: "AWS::EC2::VPC" }
607
- });
608
- },
609
- vpcGatewayEndpoint(type) {
610
- return buildCfLogicalName({
611
- specifier: { type: `${type}-Gateway` },
612
- suffix: { cloudformationResourceType: "AWS::EC2::VPCEndpoint" }
613
- });
614
- },
615
- dbSubnetGroup(stpResourceName) {
616
- return buildCfLogicalName({
617
- stpResourceName,
618
- suffix: { cloudformationResourceType: "AWS::RDS::DBSubnetGroup" }
619
- });
620
- },
621
- auroraDbCluster(stpResourceName) {
622
- return buildCfLogicalName({
623
- stpResourceName,
624
- suffix: { cloudformationResourceType: "AWS::RDS::DBCluster" }
625
- });
626
- },
627
- auroraDbClusterParameterGroup(stpResourceName) {
628
- return buildCfLogicalName({
629
- stpResourceName,
630
- suffix: { cloudformationResourceType: "AWS::RDS::DBClusterParameterGroup" }
631
- });
632
- },
633
- auroraDbClusterLogGroup(stpResourceName, logGroupType) {
634
- return buildCfLogicalName({
635
- stpResourceName,
636
- specifier: { type: "Cluster", subtype: logGroupType },
637
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
638
- });
639
- },
640
- dbSecurityGroup(stpResourceName) {
641
- return buildCfLogicalName({
642
- stpResourceName,
643
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
644
- });
645
- },
646
- dbInstance(stpResourceName) {
647
- return buildCfLogicalName({
648
- stpResourceName,
649
- suffix: { cloudformationResourceType: "AWS::RDS::DBInstance" }
650
- });
651
- },
652
- dbInstanceLogGroup(stpResourceName, logGroupType) {
653
- return buildCfLogicalName({
654
- stpResourceName,
655
- specifier: { type: "Instance", subtype: logGroupType },
656
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
657
- });
658
- },
659
- openSearchDomainLogGroup(stpResourceName, logGroupType) {
660
- return buildCfLogicalName({
661
- stpResourceName,
662
- specifier: { type: "Instance", subtype: logGroupType },
663
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
664
- });
665
- },
666
- dbOptionGroup(stpResourceName) {
667
- return buildCfLogicalName({
668
- stpResourceName,
669
- suffix: { cloudformationResourceType: "AWS::RDS::OptionGroup" }
670
- });
671
- },
672
- dbInstanceParameterGroup(stpResourceName) {
673
- return buildCfLogicalName({
674
- stpResourceName,
675
- suffix: { cloudformationResourceType: "AWS::RDS::DBParameterGroup" }
676
- });
677
- },
678
- dbReplica(stpResourceName, replicaNum) {
679
- return buildCfLogicalName({
680
- stpResourceName,
681
- specifier: { type: "Replica", typeIndex: replicaNum },
682
- suffix: { cloudformationResourceType: "AWS::RDS::DBInstance" }
683
- });
684
- },
685
- dbReplicaLogGroup(stpResourceName, logGroupType, replicaNum) {
686
- return buildCfLogicalName({
687
- stpResourceName,
688
- specifier: { type: "Replica", typeIndex: replicaNum, subtype: logGroupType },
689
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
690
- });
691
- },
692
- dbReplicaParameterGroup(stpResourceName, replicaNum) {
693
- return buildCfLogicalName({
694
- stpResourceName,
695
- specifier: { type: "Replica", typeIndex: replicaNum },
696
- suffix: { cloudformationResourceType: "AWS::RDS::DBParameterGroup" }
697
- });
698
- },
699
- auroraDbInstance(stpResourceName, instanceNum) {
700
- return buildCfLogicalName({
701
- stpResourceName,
702
- suffix: { cloudformationResourceType: "AWS::RDS::DBInstance", index: instanceNum }
703
- });
704
- },
705
- auroraDbInstanceParameterGroup(stpResourceName) {
706
- return buildCfLogicalName({
707
- stpResourceName,
708
- specifier: { type: "Instance" },
709
- suffix: { cloudformationResourceType: "AWS::RDS::DBParameterGroup" }
710
- });
711
- },
712
- eventBusRule(stpResourceName, eventIndex) {
713
- return buildCfLogicalName({
714
- stpResourceName,
715
- specifier: {
716
- type: "Event",
717
- typeIndex: eventIndex
718
- },
719
- suffix: { cloudformationResourceType: "AWS::Events::Rule" }
720
- });
721
- },
722
- customTaggingScheduleRule() {
723
- return buildCfLogicalName({
724
- specifier: { type: "StpCustomTaggingSchedule" },
725
- suffix: { cloudformationResourceType: "AWS::Events::Rule" }
726
- });
727
- },
728
- customTaggingScheduleRulePermission() {
729
- return buildCfLogicalName({
730
- specifier: { type: "StpCustomTaggingScheduleRule" },
731
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
732
- });
733
- },
734
- cloudWatchLogEventSubscriptionFilter(stpResourceName, eventIndex) {
735
- return buildCfLogicalName({
736
- stpResourceName,
737
- specifier: {
738
- type: "Event",
739
- typeIndex: eventIndex
740
- },
741
- suffix: { cloudformationResourceType: "AWS::Logs::SubscriptionFilter" }
742
- });
743
- },
744
- eventSourceMapping(stpResourceName, eventIndex) {
745
- return buildCfLogicalName({
746
- stpResourceName,
747
- specifier: {
748
- type: "Event",
749
- typeIndex: eventIndex
750
- },
751
- suffix: { cloudformationResourceType: "AWS::Lambda::EventSourceMapping" }
752
- });
753
- },
754
- iotEventTopicRule(stpResourceName, eventIndex) {
755
- return buildCfLogicalName({
756
- stpResourceName,
757
- specifier: {
758
- type: "Event",
759
- typeIndex: eventIndex
760
- },
761
- suffix: { cloudformationResourceType: "AWS::IoT::TopicRule" }
762
- });
763
- },
764
- kinesisEventConsumer(stpResourceName, eventIndex) {
765
- return buildCfLogicalName({
766
- stpResourceName,
767
- specifier: {
768
- type: "Event",
769
- typeIndex: eventIndex
770
- },
771
- suffix: { cloudformationResourceType: "AWS::Kinesis::StreamConsumer" }
772
- });
773
- },
774
- lambda(stpResourceName, isStpServiceFunction) {
775
- return buildCfLogicalName({
776
- stpResourceName,
777
- specifier: isStpServiceFunction ? { type: "CustomResource" } : void 0,
778
- suffix: { cloudformationResourceType: "AWS::Lambda::Function" }
779
- });
780
- },
781
- lambdaStpAlias(stpResourceName) {
782
- return buildCfLogicalName({
783
- stpResourceName,
784
- specifier: {
785
- type: "Stp"
786
- },
787
- suffix: { cloudformationResourceType: "AWS::Lambda::Alias" }
788
- });
789
- },
790
- lambdaUrl(stpResourceName) {
791
- return buildCfLogicalName({
792
- stpResourceName,
793
- suffix: { cloudformationResourceType: "AWS::Lambda::Url" }
794
- });
795
- },
796
- codeDeployDeploymentGroup(stpResourceName) {
797
- return buildCfLogicalName({
798
- stpResourceName,
799
- suffix: { cloudformationResourceType: "AWS::CodeDeploy::DeploymentGroup" }
800
- });
801
- },
802
- customResource(stpResourceName) {
803
- return buildCfLogicalName({
804
- stpResourceName,
805
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
806
- });
807
- },
808
- scriptCustomResource(stpResourceName) {
809
- return buildCfLogicalName({
810
- stpResourceName,
811
- specifier: { type: "Script" },
812
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
813
- });
814
- },
815
- batchStateMachine(stpResourceName) {
816
- return buildCfLogicalName({
817
- stpResourceName,
818
- specifier: { type: "JobExecution" },
819
- suffix: { cloudformationResourceType: "AWS::StepFunctions::StateMachine" }
820
- });
821
- },
822
- batchJobDefinition(stpResourceName) {
823
- return buildCfLogicalName({
824
- stpResourceName,
825
- suffix: { cloudformationResourceType: "AWS::Batch::JobDefinition" }
826
- });
827
- },
828
- batchJobLogGroup(stpResourceName) {
829
- return buildCfLogicalName({
830
- stpResourceName,
831
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
832
- });
833
- },
834
- globalStateMachinesRole() {
835
- return buildCfLogicalName({
836
- specifier: {
837
- type: "GlobalStateMachine"
838
- },
839
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
840
- });
841
- },
842
- stateMachine(stpResourceName) {
843
- return buildCfLogicalName({
844
- stpResourceName,
845
- suffix: { cloudformationResourceType: "AWS::StepFunctions::StateMachine" }
846
- });
847
- },
848
- internetGateway() {
849
- return buildCfLogicalName({
850
- suffix: { cloudformationResourceType: "AWS::EC2::InternetGateway" }
851
- });
852
- },
853
- vpcGatewayAttachment() {
854
- return buildCfLogicalName({
855
- suffix: { cloudformationResourceType: "AWS::EC2::VPCGatewayAttachment" }
856
- });
857
- },
858
- routeTable(publicSubnet, subnetIndex) {
859
- return buildCfLogicalName({
860
- specifier: { type: publicSubnet ? "PublicSubnet" : "PrivateSubnet", typeIndex: subnetIndex },
861
- suffix: { cloudformationResourceType: "AWS::EC2::RouteTable" }
862
- });
863
- },
864
- internetGatewayRoute(subnetIndex) {
865
- return buildCfLogicalName({
866
- specifier: { type: "InternetGateway" },
867
- suffix: { cloudformationResourceType: "AWS::EC2::Route", index: subnetIndex }
868
- });
869
- },
870
- atlasMongoVpcRoute(publicSubnetTable, subnetIndex) {
871
- return buildCfLogicalName({
872
- specifier: { type: `AtlasMongo${publicSubnetTable ? "PublicSubnet" : "PrivateSubnet"}` },
873
- suffix: { cloudformationResourceType: "AWS::EC2::Route", index: subnetIndex }
874
- });
875
- },
876
- routeTableToSubnetAssociation(publicSubnet, subnetIndex) {
877
- return buildCfLogicalName({
878
- specifier: { type: publicSubnet ? "PublicSubnet" : "PrivateSubnet", typeIndex: subnetIndex },
879
- suffix: { cloudformationResourceType: "AWS::EC2::SubnetRouteTableAssociation" }
880
- });
881
- },
882
- natGateway(azIndex) {
883
- return buildCfLogicalName({
884
- suffix: { cloudformationResourceType: "AWS::EC2::NatGateway", index: azIndex }
885
- });
886
- },
887
- natElasticIp(azIndex) {
888
- return buildCfLogicalName({
889
- specifier: { type: "Nat" },
890
- suffix: { cloudformationResourceType: "AWS::EC2::EIP", index: azIndex }
891
- });
892
- },
893
- natRoute(subnetIndex) {
894
- return buildCfLogicalName({
895
- specifier: { type: "NatPrivateSubnet" },
896
- suffix: { cloudformationResourceType: "AWS::EC2::Route", index: subnetIndex }
897
- });
898
- },
899
- eventBus(stpResourceName) {
900
- return buildCfLogicalName({
901
- stpResourceName,
902
- suffix: { cloudformationResourceType: "AWS::Events::EventBus" }
903
- });
904
- },
905
- eventBusArchive(stpResourceName) {
906
- return buildCfLogicalName({
907
- stpResourceName,
908
- suffix: { cloudformationResourceType: "AWS::Events::Archive" }
909
- });
910
- },
911
- ecsCluster(stpResourceName) {
912
- return buildCfLogicalName({
913
- stpResourceName,
914
- suffix: { cloudformationResourceType: "AWS::ECS::Cluster" }
915
- });
916
- },
917
- ecsTaskDefinition(stpResourceName) {
918
- return buildCfLogicalName({
919
- stpResourceName,
920
- suffix: { cloudformationResourceType: "AWS::ECS::TaskDefinition" }
921
- });
922
- },
923
- ecsService(stpResourceName, blueGreen) {
924
- return buildCfLogicalName({
925
- stpResourceName,
926
- specifier: blueGreen ? { type: "BlueGreen" } : void 0,
927
- suffix: { cloudformationResourceType: "AWS::ECS::Service" }
928
- });
929
- },
930
- ecsExecutionRole() {
931
- return buildCfLogicalName({
932
- specifier: { type: "EcsExecution" },
933
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
934
- });
935
- },
936
- ecsEc2InstanceRole() {
937
- return buildCfLogicalName({
938
- specifier: {
939
- type: "EcsInstance"
940
- },
941
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
942
- });
943
- },
944
- ecsEc2AutoscalingGroupWarmPool(stpResourceName) {
945
- return buildCfLogicalName({
946
- stpResourceName,
947
- suffix: { cloudformationResourceType: "AWS::AutoScaling::WarmPool" }
948
- });
949
- },
950
- eventBusRoleForScheduledInstanceRefresh() {
951
- return buildCfLogicalName({
952
- specifier: { type: "ScheduledInstanceRefresh" },
953
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
954
- });
955
- },
956
- schedulerRuleForScheduledInstanceRefresh(stpResourceName) {
957
- return buildCfLogicalName({
958
- stpResourceName,
959
- specifier: { type: "ScheduledInstanceRefresh" },
960
- suffix: { cloudformationResourceType: "AWS::Events::Rule" }
961
- });
962
- },
963
- ecsEc2InstanceLaunchTemplate(stpResourceName) {
964
- return buildCfLogicalName({
965
- stpResourceName,
966
- suffix: { cloudformationResourceType: "AWS::EC2::LaunchTemplate" }
967
- });
968
- },
969
- ecsEc2AutoscalingGroup(stpResourceName) {
970
- return buildCfLogicalName({
971
- stpResourceName,
972
- suffix: { cloudformationResourceType: "AWS::AutoScaling::AutoScalingGroup" }
973
- });
974
- },
975
- ecsEc2ForceDeleteAutoscalingGroupCustomResource(stpResourceName) {
976
- return buildCfLogicalName({
977
- stpResourceName,
978
- specifier: { type: "ForceDeleteAsg" },
979
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
980
- });
981
- },
982
- ecsDisableManagedTerminationProtectionCustomResource(stpResourceName) {
983
- return buildCfLogicalName({
984
- stpResourceName,
985
- specifier: { type: "DisableManagedTerminationProtection" },
986
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
987
- });
988
- },
989
- ecsEc2CapacityProvider(stpResourceName) {
990
- return buildCfLogicalName({
991
- stpResourceName,
992
- suffix: { cloudformationResourceType: "AWS::ECS::CapacityProvider" }
993
- });
994
- },
995
- ecsEc2CapacityProviderAssociation(stpResourceName) {
996
- return buildCfLogicalName({
997
- stpResourceName,
998
- suffix: { cloudformationResourceType: "AWS::ECS::ClusterCapacityProviderAssociations" }
999
- });
1000
- },
1001
- ecsEc2InstanceProfile() {
1002
- return buildCfLogicalName({
1003
- specifier: {
1004
- type: "EcsInstance"
1005
- },
1006
- suffix: { cloudformationResourceType: "AWS::IAM::InstanceProfile" }
1007
- });
1008
- },
1009
- ecsTaskRole(stpResourceName) {
1010
- return buildCfLogicalName({
1011
- stpResourceName,
1012
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
1013
- });
1014
- },
1015
- ecsAutoScalingRole() {
1016
- return buildCfLogicalName({
1017
- specifier: { type: "EcsAutoScale" },
1018
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
1019
- });
1020
- },
1021
- // ecsScheduledMaintenanceEventBusRule(stpResourceName: string) {
1022
- // return buildCfLogicalName({
1023
- // stpResourceName,
1024
- // specifier: { type: 'ScheduledMaintenance' },
1025
- // suffix: { cloudformationResourceType: 'AWS::Events::Rule' }
1026
- // }).replaceAll('_', '');
1027
- // },
1028
- ecsScheduledMaintenanceLambdaPermission(stpResourceName) {
1029
- return buildCfLogicalName({
1030
- stpResourceName,
1031
- specifier: { type: "ScheduledMaintenance" },
1032
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
1033
- }).replaceAll("_", "");
1034
- },
1035
- bastionEc2LaunchTemplate(stpResourceName) {
1036
- return buildCfLogicalName({
1037
- stpResourceName,
1038
- suffix: { cloudformationResourceType: "AWS::EC2::LaunchTemplate" }
1039
- });
1040
- },
1041
- bastionEc2InstanceProfile(stpResourceName) {
1042
- return buildCfLogicalName({
1043
- stpResourceName,
1044
- suffix: { cloudformationResourceType: "AWS::IAM::InstanceProfile" }
1045
- });
1046
- },
1047
- bastionEc2AutoscalingGroup(stpResourceName) {
1048
- return buildCfLogicalName({
1049
- stpResourceName,
1050
- suffix: { cloudformationResourceType: "AWS::AutoScaling::AutoScalingGroup" }
1051
- });
1052
- },
1053
- bastionSecurityGroup(stpResourceName) {
1054
- return buildCfLogicalName({
1055
- stpResourceName,
1056
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
1057
- });
1058
- },
1059
- bastionCwAgentSsmAssociation(stpResourceName) {
1060
- return buildCfLogicalName({
1061
- stpResourceName,
1062
- specifier: { type: "CwAgent" },
1063
- suffix: { cloudformationResourceType: "AWS::SSM::Association" }
1064
- });
1065
- },
1066
- bastionSsmAgentSsmAssociation(stpResourceName) {
1067
- return buildCfLogicalName({
1068
- stpResourceName,
1069
- specifier: { type: "SsmAgent" },
1070
- suffix: { cloudformationResourceType: "AWS::SSM::Association" }
1071
- });
1072
- },
1073
- bastionRole(stpResourceName) {
1074
- return buildCfLogicalName({
1075
- stpResourceName,
1076
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
1077
- });
1078
- },
1079
- bastionLogGroup(stpResourceName, logType) {
1080
- return buildCfLogicalName({
1081
- stpResourceName,
1082
- specifier: { type: pascalCase(logType) },
1083
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
1084
- });
1085
- },
1086
- bastionCloudwatchSsmDocument() {
1087
- return buildCfLogicalName({
1088
- specifier: { type: "BastionCloudwatchAgent" },
1089
- suffix: { cloudformationResourceType: "AWS::SSM::Document" }
1090
- });
1091
- },
1092
- serviceDiscoveryEcsService(stpResourceName, serviceTargetContainerPort) {
1093
- return buildCfLogicalName({
1094
- stpResourceName,
1095
- specifier: { type: `Port${serviceTargetContainerPort}Discovery` },
1096
- suffix: { cloudformationResourceType: "AWS::ServiceDiscovery::Service" }
1097
- });
1098
- },
1099
- workloadSecurityGroup(stpResourceName) {
1100
- return buildCfLogicalName({
1101
- stpResourceName,
1102
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
1103
- });
1104
- },
1105
- loadBalancerSecurityGroup(stpResourceName) {
1106
- return buildCfLogicalName({
1107
- stpResourceName,
1108
- specifier: { type: "Lb" },
1109
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
1110
- });
1111
- },
1112
- targetGroup({
1113
- loadBalancerName,
1114
- stpResourceName,
1115
- targetContainerPort,
1116
- blueGreen
1117
- }) {
1118
- return buildCfLogicalName({
1119
- stpResourceName,
1120
- specifier: {
1121
- type: `${loadBalancerName}${targetContainerPort ? `ToPort${targetContainerPort}` : ""}${blueGreen ? "BG" : ""}`
1122
- },
1123
- suffix: { cloudformationResourceType: "AWS::ElasticLoadBalancingV2::TargetGroup" }
1124
- });
1125
- },
1126
- lambdaRole(stpResourceName) {
1127
- return buildCfLogicalName({
1128
- stpResourceName,
1129
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
1130
- });
1131
- },
1132
- defaultLambdaFunctionRole() {
1133
- return buildCfLogicalName({
1134
- specifier: { type: "Lambda" },
1135
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
1136
- });
1137
- },
1138
- lambdaPermission(stpResourceName, eventIndex) {
1139
- return buildCfLogicalName({
1140
- stpResourceName,
1141
- specifier: { type: "Event", typeIndex: eventIndex },
1142
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
1143
- });
1144
- },
1145
- lambdaPublicUrlPermission(stpResourceName) {
1146
- return buildCfLogicalName({
1147
- stpResourceName,
1148
- specifier: { type: "PublicUrl" },
1149
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
1150
- });
1151
- },
1152
- lambdaIotEventPermission(workloadName, eventIndex) {
1153
- return pascalCase(`${workloadName}-Event${eventIndex}-lambda-iotEventPermission`);
1154
- },
1155
- lambdaTargetGroupPermission(stpResourceName, loadBalancerName) {
1156
- return buildCfLogicalName({
1157
- stpResourceName,
1158
- specifier: { type: `${loadBalancerName}TargetGroup` },
1159
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
1160
- });
1161
- },
1162
- httpApi(stpResourceName) {
1163
- return buildCfLogicalName({
1164
- stpResourceName,
1165
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::Api" }
1166
- });
1167
- },
1168
- httpApiLogGroup(stpResourceName) {
1169
- return buildCfLogicalName({
1170
- stpResourceName,
1171
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
1172
- });
1173
- },
1174
- httpApiLambdaIntegration({
1175
- stpResourceName,
1176
- stpHttpApiGatewayName
1177
- }) {
1178
- return buildCfLogicalName({
1179
- stpResourceName,
1180
- specifier: { type: stpHttpApiGatewayName },
1181
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::Integration" }
1182
- });
1183
- },
1184
- httpApiContainerWorkloadIntegration({
1185
- stpResourceName,
1186
- stpHttpApiGatewayName,
1187
- targetContainerPort
1188
- }) {
1189
- return buildCfLogicalName({
1190
- stpResourceName,
1191
- specifier: { type: `${stpHttpApiGatewayName}ToPort${targetContainerPort}` },
1192
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::Integration" }
1193
- });
1194
- },
1195
- httpApiAuthorizer({ method, path, stpResourceName }) {
1196
- return buildCfLogicalName({
1197
- stpResourceName: "",
1198
- specifier: {
1199
- type: `${stpResourceName}-${method === "*" ? "Any" : method}-${path === "*" ? "Default" : path}`
1200
- },
1201
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::Authorizer" }
1202
- });
1203
- },
1204
- httpApiRoute({ method, path, stpResourceName }) {
1205
- return buildCfLogicalName({
1206
- stpResourceName: "",
1207
- specifier: {
1208
- type: `${stpResourceName}-${method === "*" ? "Any" : method}-${path === "*" ? "Default" : path}`
1209
- },
1210
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::Route" }
1211
- });
1212
- },
1213
- httpApiVpcLink(stpResourceName) {
1214
- return buildCfLogicalName({
1215
- stpResourceName,
1216
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::VpcLink" }
1217
- });
1218
- },
1219
- httpApiVpcLinkSecurityGroup(stpResourceName) {
1220
- return buildCfLogicalName({
1221
- stpResourceName,
1222
- specifier: { type: "VpcLink" },
1223
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
1224
- });
1225
- },
1226
- httpApiLambdaPermission({
1227
- stpResourceNameOfLambda,
1228
- stpResourceNameOfHttpApiGateway
1229
- }) {
1230
- return buildCfLogicalName({
1231
- stpResourceName: stpResourceNameOfLambda,
1232
- specifier: { type: stpResourceNameOfHttpApiGateway },
1233
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
1234
- });
1235
- },
1236
- httpApiStage(stpResourceName) {
1237
- return buildCfLogicalName({
1238
- stpResourceName,
1239
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::Stage" }
1240
- });
1241
- },
1242
- httpApiDomain(fullyQualifiedDomainName) {
1243
- return buildCfLogicalName({
1244
- stpResourceName: "",
1245
- specifier: { type: getSpecifierForDomainResource(fullyQualifiedDomainName) },
1246
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::DomainName" }
1247
- });
1248
- },
1249
- httpApiDefaultDomain(stpResourceName) {
1250
- return buildCfLogicalName({
1251
- stpResourceName,
1252
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::DomainName" }
1253
- });
1254
- },
1255
- httpApiDomainMapping(fullyQualifiedDomainName) {
1256
- return buildCfLogicalName({
1257
- stpResourceName: "",
1258
- specifier: { type: getSpecifierForDomainResource(fullyQualifiedDomainName) },
1259
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::ApiMapping" }
1260
- });
1261
- },
1262
- httpApiDefaultDomainMapping(stpResourceName) {
1263
- return buildCfLogicalName({
1264
- stpResourceName,
1265
- suffix: { cloudformationResourceType: "AWS::ApiGatewayV2::ApiMapping" }
1266
- });
1267
- },
1268
- listener(exposurePort, stpResourceName) {
1269
- return buildCfLogicalName({
1270
- stpResourceName,
1271
- specifier: { type: `Port${exposurePort}` },
1272
- suffix: { cloudformationResourceType: "AWS::ElasticLoadBalancingV2::Listener" }
1273
- });
1274
- },
1275
- listenerRule(exposurePort, stpResourceName, rulePriority) {
1276
- return buildCfLogicalName({
1277
- stpResourceName,
1278
- specifier: { type: `Port${exposurePort}Priority${rulePriority}` },
1279
- suffix: { cloudformationResourceType: "AWS::ElasticLoadBalancingV2::ListenerRule" }
1280
- });
1281
- },
1282
- listenerCertificateList(exposurePort, stpResourceName) {
1283
- return buildCfLogicalName({
1284
- stpResourceName,
1285
- specifier: { type: `Port${exposurePort}` },
1286
- suffix: { cloudformationResourceType: "AWS::ElasticLoadBalancingV2::ListenerCertificate" }
1287
- });
1288
- },
1289
- loadBalancer(stpResourceName) {
1290
- return buildCfLogicalName({
1291
- stpResourceName,
1292
- suffix: { cloudformationResourceType: "AWS::ElasticLoadBalancingV2::LoadBalancer" }
1293
- });
1294
- },
1295
- ecsLogGroup(stpResourceName, containerName) {
1296
- return buildCfLogicalName({
1297
- stpResourceName,
1298
- specifier: { type: containerName },
1299
- suffix: { cloudformationResourceType: "AWS::Logs::LogGroup" }
1300
- });
1301
- },
1302
- autoScalingTarget(stpResourceName) {
1303
- return buildCfLogicalName({
1304
- stpResourceName,
1305
- suffix: { cloudformationResourceType: "AWS::ApplicationAutoScaling::ScalableTarget" }
1306
- });
1307
- },
1308
- dynamoAutoScalingTarget(stpResourceName, metric) {
1309
- return buildCfLogicalName({
1310
- stpResourceName,
1311
- specifier: { type: metric },
1312
- suffix: { cloudformationResourceType: "AWS::ApplicationAutoScaling::ScalableTarget" }
1313
- });
1314
- },
1315
- autoScalingPolicy(stpResourceName, metric) {
1316
- return buildCfLogicalName({
1317
- stpResourceName,
1318
- specifier: { type: metric },
1319
- suffix: { cloudformationResourceType: "AWS::ApplicationAutoScaling::ScalingPolicy" }
1320
- });
1321
- },
1322
- customResourceS3Events() {
1323
- return buildCfLogicalName({
1324
- specifier: { type: "Events" },
1325
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1326
- });
1327
- },
1328
- // @deprecated
1329
- // stacktapeServiceCustomResourceEdgeFunctions() {
1330
- // return buildCfLogicalName({
1331
- // specifier: { type: 'EdgeFunctions' },
1332
- // suffix: { cloudformationResourceType: 'AWS::CloudFormation::CustomResource' }
1333
- // });
1334
- // },
1335
- customResourceSensitiveData() {
1336
- return buildCfLogicalName({
1337
- specifier: { type: "SensitiveData" },
1338
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1339
- });
1340
- },
1341
- customResourceAcceptVpcPeerings() {
1342
- return buildCfLogicalName({
1343
- specifier: { type: "AcceptVpcPeerings" },
1344
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1345
- });
1346
- },
1347
- customResourceDefaultDomainCert() {
1348
- return buildCfLogicalName({
1349
- specifier: { type: "DefaultDomainCert" },
1350
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1351
- });
1352
- },
1353
- customResourceEdgeLambdaBucket() {
1354
- return buildCfLogicalName({
1355
- specifier: { type: "EdgeLambdaBucket" },
1356
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1357
- });
1358
- },
1359
- customResourceEdgeLambda(stpResourceName) {
1360
- return buildCfLogicalName({
1361
- stpResourceName,
1362
- specifier: { type: "EdgeLambda" },
1363
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1364
- });
1365
- },
1366
- customResourceDefaultDomain(stpResourceName, cdn) {
1367
- return buildCfLogicalName({
1368
- stpResourceName,
1369
- specifier: { type: `${cdn ? "Cdn" : ""}DefaultDomain` },
1370
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1371
- });
1372
- },
1373
- customResourceDatabaseDeletionProtection(stpResourceName) {
1374
- return buildCfLogicalName({
1375
- stpResourceName,
1376
- specifier: { type: "DeletionProtection" },
1377
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1378
- });
1379
- },
1380
- userPool(stpResourceName) {
1381
- return buildCfLogicalName({
1382
- stpResourceName,
1383
- suffix: { cloudformationResourceType: "AWS::Cognito::UserPool" }
1384
- });
1385
- },
1386
- userPoolClient(stpResourceName) {
1387
- return buildCfLogicalName({
1388
- stpResourceName,
1389
- suffix: { cloudformationResourceType: "AWS::Cognito::UserPoolClient" }
1390
- });
1391
- },
1392
- userPoolDomain(stpResourceName) {
1393
- return buildCfLogicalName({
1394
- stpResourceName,
1395
- suffix: { cloudformationResourceType: "AWS::Cognito::UserPoolDomain" }
1396
- });
1397
- },
1398
- identityProvider(stpResourceName, type) {
1399
- return buildCfLogicalName({
1400
- stpResourceName,
1401
- specifier: { type },
1402
- suffix: { cloudformationResourceType: "AWS::Cognito::UserPoolIdentityProvider" }
1403
- });
1404
- },
1405
- cognitoLambdaHookPermission(stpResourceName, hookName) {
1406
- return buildCfLogicalName({
1407
- stpResourceName,
1408
- specifier: { type: hookName },
1409
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
1410
- });
1411
- },
1412
- cognitoUserPoolDetailsCustomResource(stpResourceName) {
1413
- return buildCfLogicalName({
1414
- stpResourceName,
1415
- specifier: { type: "UserPoolDetails" },
1416
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1417
- });
1418
- },
1419
- userPoolUiCustomizationAttachment(stpResourceName) {
1420
- return buildCfLogicalName({
1421
- stpResourceName,
1422
- suffix: { cloudformationResourceType: "AWS::Cognito::UserPoolUICustomizationAttachment" }
1423
- });
1424
- },
1425
- serviceDiscoveryPrivateNamespace() {
1426
- return buildCfLogicalName({
1427
- specifier: { type: "Discovery" },
1428
- suffix: { cloudformationResourceType: "AWS::ServiceDiscovery::Service" }
1429
- });
1430
- },
1431
- lambdaCodeDeployApp() {
1432
- return buildCfLogicalName({
1433
- specifier: { type: "LambdaCodeDeploy" },
1434
- suffix: { cloudformationResourceType: "AWS::CodeDeploy::Application" }
1435
- });
1436
- },
1437
- ecsCodeDeployApp() {
1438
- return buildCfLogicalName({
1439
- specifier: { type: "ECSCodeDeploy" },
1440
- suffix: { cloudformationResourceType: "AWS::CodeDeploy::Application" }
1441
- });
1442
- },
1443
- stackBudget(stackName) {
1444
- return buildCfLogicalName({
1445
- specifier: { type: pascalCase(stackName).replaceAll("_", "") },
1446
- suffix: { cloudformationResourceType: "AWS::Budgets::Budget" }
1447
- });
1448
- },
1449
- upstashRedisDatabase(stpResourceName) {
1450
- return buildCfLogicalName({
1451
- stpResourceName,
1452
- suffix: { cloudformationResourceType: "Upstash::DatabasesV1::Database" }
1453
- });
1454
- },
1455
- upstashCredentialsProvider() {
1456
- return buildCfLogicalName({
1457
- specifier: { type: "UpstashCredentialsProvider" },
1458
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1459
- });
1460
- },
1461
- cloudwatchAlarm(stacktapeAlarmName) {
1462
- return buildCfLogicalName({
1463
- stpResourceName: stacktapeAlarmName,
1464
- suffix: { cloudformationResourceType: "AWS::CloudWatch::Alarm" }
1465
- }).replaceAll("_", "");
1466
- },
1467
- cloudwatchAlarmEventBusNotificationRule(stacktapeAlarmName) {
1468
- return buildCfLogicalName({
1469
- stpResourceName: stacktapeAlarmName,
1470
- specifier: { type: "Notification" },
1471
- suffix: { cloudformationResourceType: "AWS::Events::Rule" }
1472
- }).replaceAll("_", "");
1473
- },
1474
- cloudwatchAlarmEventBusNotificationRuleLambdaPermission(stacktapeAlarmName) {
1475
- return buildCfLogicalName({
1476
- stpResourceName: stacktapeAlarmName,
1477
- specifier: { type: "Notification" },
1478
- suffix: { cloudformationResourceType: "AWS::Lambda::Permission" }
1479
- }).replaceAll("_", "");
1480
- },
1481
- sqsQueue(stpResourceName) {
1482
- return buildCfLogicalName({
1483
- stpResourceName,
1484
- suffix: { cloudformationResourceType: "AWS::SQS::Queue" }
1485
- }).replaceAll("_", "");
1486
- },
1487
- sqsQueuePolicy(stpResourceName) {
1488
- return buildCfLogicalName({
1489
- stpResourceName,
1490
- suffix: { cloudformationResourceType: "AWS::SQS::QueuePolicy" }
1491
- });
1492
- },
1493
- snsTopic(stpResourceName) {
1494
- return buildCfLogicalName({
1495
- stpResourceName,
1496
- suffix: { cloudformationResourceType: "AWS::SNS::Topic" }
1497
- }).replaceAll("_", "");
1498
- },
1499
- webAppFirewallCustomResource(stpResourceName) {
1500
- return buildCfLogicalName({
1501
- stpResourceName,
1502
- specifier: { type: "WebAppFirewall" },
1503
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1504
- });
1505
- },
1506
- webAppFirewallAssociation(stpResourceName) {
1507
- return buildCfLogicalName({
1508
- stpResourceName,
1509
- suffix: { cloudformationResourceType: "AWS::WAFv2::WebACLAssociation" }
1510
- });
1511
- },
1512
- openSearchDomain(stpResourceName) {
1513
- return buildCfLogicalName({
1514
- stpResourceName,
1515
- suffix: { cloudformationResourceType: "AWS::OpenSearchService::Domain" }
1516
- });
1517
- },
1518
- openSearchCustomResource(stpResourceName) {
1519
- return buildCfLogicalName({
1520
- stpResourceName,
1521
- specifier: { type: "OpenSearch" },
1522
- suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
1523
- });
1524
- },
1525
- openSearchSecurityGroup(stpResourceName) {
1526
- return buildCfLogicalName({
1527
- stpResourceName,
1528
- suffix: { cloudformationResourceType: "AWS::EC2::SecurityGroup" }
1529
- });
1530
- },
1531
- logForwardingFirehoseToS3Role(stpResourceName) {
1532
- return buildCfLogicalName({
1533
- stpResourceName,
1534
- specifier: { type: "LogForwardingS3" },
1535
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
1536
- });
1537
- },
1538
- logForwardingCwToFirehoseRole({ logGroupCfLogicalName }) {
1539
- return buildCfLogicalName({
1540
- stpResourceName: logGroupCfLogicalName,
1541
- specifier: { type: "CwToFirehose" },
1542
- suffix: { cloudformationResourceType: "AWS::IAM::Role" }
1543
- });
1544
- },
1545
- logForwardingFailedEventsBucket(stpResourceName) {
1546
- return buildCfLogicalName({
1547
- stpResourceName,
1548
- specifier: { type: "LogForwardingFailedRecords" },
1549
- suffix: { cloudformationResourceType: "AWS::S3::Bucket" }
1550
- });
1551
- },
1552
- logForwardingFirehoseDeliveryStream({ logGroupCfLogicalName }) {
1553
- return buildCfLogicalName({
1554
- stpResourceName: logGroupCfLogicalName,
1555
- suffix: { cloudformationResourceType: "AWS::KinesisFirehose::DeliveryStream" }
1556
- });
1557
- },
1558
- logForwardingSubscriptionFilter({ logGroupCfLogicalName }) {
1559
- return buildCfLogicalName({
1560
- stpResourceName: logGroupCfLogicalName,
1561
- suffix: { cloudformationResourceType: "AWS::Logs::SubscriptionFilter" }
1562
- });
1563
- }
1564
- };
1565
- var buildCfLogicalName = /* @__PURE__ */ __name(({
1566
- stpResourceName,
1567
- specifier,
1568
- suffix
1569
- }) => {
1570
- const splittedType = suffix.cloudformationResourceType.split(":");
1571
- const resolvedParentName = stpResourceName || "Stp";
1572
- const resolvedSpecifier = specifier ? `${specifier.type}${specifier.typeIndex !== void 0 ? specifier.typeIndex : ""}${specifier.subtype !== void 0 ? `-${specifier.subtype}` : ""}` : "";
1573
- const resolvedSuffix = `${splittedType[splittedType.length - 1]}${suffix.index !== void 0 ? suffix.index : ""}`;
1574
- return pascalCase(`${resolvedParentName}-${resolvedSpecifier}-${resolvedSuffix}`);
1575
- }, "buildCfLogicalName");
1576
- var getSpecifierForDomainResource = /* @__PURE__ */ __name((fullyQualifiedDomainName) => {
1577
- if (pascalCase(fullyQualifiedDomainName).replace("_", "").length < 85) {
1578
- return pascalCase(fullyQualifiedDomainName).replace("_", "");
1579
- }
1580
- const splittedDomain = fullyQualifiedDomainName.split(".").map((subdomain) => subdomain.split("-")).flat();
1581
- const maxCharactersPerWord = Math.floor(85 / splittedDomain.length);
1582
- return splittedDomain.map((word) => pascalCase(word.slice(0, maxCharactersPerWord)).replace("_", "")).join("");
1583
- }, "getSpecifierForDomainResource");
1584
-
1585
- // src/api/npm/ts/child-resources.ts
1586
- var CHILD_RESOURCES = {
1587
- // ===== BUCKET =====
1588
- bucket: [
1589
- { logicalName: cfLogicalNames.bucket, resourceType: "AWS::S3::Bucket" },
1590
- { logicalName: cfLogicalNames.bucketPolicy, resourceType: "AWS::S3::BucketPolicy", conditional: true },
1591
- {
1592
- logicalName: cfLogicalNames.cloudfrontOriginAccessIdentity,
1593
- resourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity",
1594
- conditional: true
1595
- },
1596
- {
1597
- logicalName: cfLogicalNames.cloudfrontCustomCachePolicy,
1598
- resourceType: "AWS::CloudFront::CachePolicy",
1599
- conditional: true
1600
- },
1601
- {
1602
- logicalName: cfLogicalNames.cloudfrontDefaultCachePolicy,
1603
- resourceType: "AWS::CloudFront::CachePolicy",
1604
- conditional: true
1605
- },
1606
- {
1607
- logicalName: cfLogicalNames.cloudfrontCustomOriginRequestPolicy,
1608
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1609
- conditional: true
1610
- },
1611
- {
1612
- logicalName: cfLogicalNames.cloudfrontDefaultOriginRequestPolicy,
1613
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1614
- conditional: true
1615
- },
1616
- {
1617
- logicalName: cfLogicalNames.cloudfrontDistribution,
1618
- resourceType: "AWS::CloudFront::Distribution",
1619
- conditional: true
1620
- },
1621
- {
1622
- logicalName: cfLogicalNames.customResourceDefaultDomain,
1623
- resourceType: "AWS::CloudFormation::CustomResource",
1624
- conditional: true
1625
- },
1626
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true }
1627
- ],
1628
- // ===== FUNCTION =====
1629
- function: [
1630
- { logicalName: cfLogicalNames.lambdaRole, resourceType: "AWS::IAM::Role" },
1631
- { logicalName: cfLogicalNames.lambda, resourceType: "AWS::Lambda::Function" },
1632
- { logicalName: cfLogicalNames.efsAccessPoint, resourceType: "AWS::EFS::AccessPoint", conditional: true },
1633
- { logicalName: cfLogicalNames.workloadSecurityGroup, resourceType: "AWS::EC2::SecurityGroup", conditional: true },
1634
- { logicalName: cfLogicalNames.lambdaUrl, resourceType: "AWS::Lambda::Url", conditional: true },
1635
- {
1636
- logicalName: cfLogicalNames.lambdaPublicUrlPermission,
1637
- resourceType: "AWS::Lambda::Permission",
1638
- conditional: true
1639
- },
1640
- { logicalName: cfLogicalNames.lambdaLogGroup, resourceType: "AWS::Logs::LogGroup", conditional: true },
1641
- {
1642
- logicalName: cfLogicalNames.lambdaInvokeConfig,
1643
- resourceType: "AWS::Lambda::EventInvokeConfig",
1644
- conditional: true
1645
- },
1646
- {
1647
- logicalName: cfLogicalNames.lambdaCodeDeployApp,
1648
- resourceType: "AWS::CodeDeploy::Application",
1649
- conditional: true
1650
- },
1651
- {
1652
- logicalName: cfLogicalNames.lambdaVersionPublisherCustomResource,
1653
- resourceType: "AWS::CloudFormation::CustomResource",
1654
- conditional: true
1655
- },
1656
- {
1657
- logicalName: cfLogicalNames.codeDeployDeploymentGroup,
1658
- resourceType: "AWS::CodeDeploy::DeploymentGroup",
1659
- conditional: true
1660
- },
1661
- { logicalName: cfLogicalNames.lambdaStpAlias, resourceType: "AWS::Lambda::Alias", conditional: true },
1662
- {
1663
- logicalName: cfLogicalNames.cloudfrontOriginAccessIdentity,
1664
- resourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity",
1665
- conditional: true
1666
- },
1667
- {
1668
- logicalName: cfLogicalNames.cloudfrontCustomCachePolicy,
1669
- resourceType: "AWS::CloudFront::CachePolicy",
1670
- conditional: true,
1671
- unresolvable: true
1672
- },
1673
- {
1674
- logicalName: cfLogicalNames.cloudfrontDefaultCachePolicy,
1675
- resourceType: "AWS::CloudFront::CachePolicy",
1676
- conditional: true
1677
- },
1678
- {
1679
- logicalName: cfLogicalNames.cloudfrontCustomOriginRequestPolicy,
1680
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1681
- conditional: true,
1682
- unresolvable: true
1683
- },
1684
- {
1685
- logicalName: cfLogicalNames.cloudfrontDefaultOriginRequestPolicy,
1686
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1687
- conditional: true
1688
- },
1689
- {
1690
- logicalName: cfLogicalNames.cloudfrontDistribution,
1691
- resourceType: "AWS::CloudFront::Distribution",
1692
- conditional: true,
1693
- unresolvable: true
1694
- },
1695
- {
1696
- logicalName: cfLogicalNames.customResourceDefaultDomain,
1697
- resourceType: "AWS::CloudFormation::CustomResource",
1698
- conditional: true
1699
- },
1700
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true },
1701
- {
1702
- logicalName: cfLogicalNames.lambdaPermission,
1703
- resourceType: "AWS::Lambda::Permission",
1704
- conditional: true,
1705
- unresolvable: true
1706
- }
1707
- ],
1708
- // ===== RELATIONAL DATABASE =====
1709
- "relational-database": [
1710
- { logicalName: cfLogicalNames.dbSubnetGroup, resourceType: "AWS::RDS::DBSubnetGroup" },
1711
- { logicalName: cfLogicalNames.dbSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
1712
- {
1713
- logicalName: cfLogicalNames.customResourceDatabaseDeletionProtection,
1714
- resourceType: "AWS::CloudFormation::CustomResource",
1715
- conditional: true
1716
- },
1717
- { logicalName: cfLogicalNames.auroraDbCluster, resourceType: "AWS::RDS::DBCluster", conditional: true },
1718
- {
1719
- logicalName: cfLogicalNames.auroraDbClusterParameterGroup,
1720
- resourceType: "AWS::RDS::DBClusterParameterGroup",
1721
- conditional: true
1722
- },
1723
- {
1724
- logicalName: cfLogicalNames.auroraDbClusterLogGroup,
1725
- resourceType: "AWS::Logs::LogGroup",
1726
- conditional: true,
1727
- unresolvable: true
1728
- },
1729
- {
1730
- logicalName: cfLogicalNames.auroraDbInstance,
1731
- resourceType: "AWS::RDS::DBInstance",
1732
- conditional: true,
1733
- unresolvable: true
1734
- },
1735
- {
1736
- logicalName: cfLogicalNames.auroraDbInstanceParameterGroup,
1737
- resourceType: "AWS::RDS::DBParameterGroup",
1738
- conditional: true
1739
- },
1740
- { logicalName: cfLogicalNames.dbInstance, resourceType: "AWS::RDS::DBInstance", conditional: true },
1741
- {
1742
- logicalName: cfLogicalNames.dbInstanceLogGroup,
1743
- resourceType: "AWS::Logs::LogGroup",
1744
- conditional: true,
1745
- unresolvable: true
1746
- },
1747
- { logicalName: cfLogicalNames.dbOptionGroup, resourceType: "AWS::RDS::OptionGroup", conditional: true },
1748
- {
1749
- logicalName: cfLogicalNames.dbInstanceParameterGroup,
1750
- resourceType: "AWS::RDS::DBParameterGroup",
1751
- conditional: true
1752
- },
1753
- {
1754
- logicalName: cfLogicalNames.dbReplica,
1755
- resourceType: "AWS::RDS::DBInstance",
1756
- conditional: true,
1757
- unresolvable: true
1758
- },
1759
- {
1760
- logicalName: cfLogicalNames.dbReplicaLogGroup,
1761
- resourceType: "AWS::Logs::LogGroup",
1762
- conditional: true,
1763
- unresolvable: true
1764
- }
1765
- ],
1766
- // ===== DYNAMO DB TABLE =====
1767
- "dynamo-db-table": [{ logicalName: cfLogicalNames.dynamoGlobalTable, resourceType: "AWS::DynamoDB::GlobalTable" }],
1768
- // ===== HTTP API GATEWAY =====
1769
- "http-api-gateway": [
1770
- { logicalName: cfLogicalNames.httpApi, resourceType: "AWS::ApiGatewayV2::Api" },
1771
- { logicalName: cfLogicalNames.httpApiStage, resourceType: "AWS::ApiGatewayV2::Stage" },
1772
- { logicalName: cfLogicalNames.httpApiLogGroup, resourceType: "AWS::Logs::LogGroup", conditional: true },
1773
- {
1774
- logicalName: cfLogicalNames.httpApiVpcLinkSecurityGroup,
1775
- resourceType: "AWS::EC2::SecurityGroup",
1776
- conditional: true
1777
- },
1778
- { logicalName: cfLogicalNames.httpApiVpcLink, resourceType: "AWS::ApiGatewayV2::VpcLink", conditional: true },
1779
- { logicalName: cfLogicalNames.httpApiDomain, resourceType: "AWS::ApiGatewayV2::DomainName", conditional: true },
1780
- {
1781
- logicalName: cfLogicalNames.httpApiDomainMapping,
1782
- resourceType: "AWS::ApiGatewayV2::ApiMapping",
1783
- conditional: true
1784
- },
1785
- {
1786
- logicalName: cfLogicalNames.httpApiDefaultDomain,
1787
- resourceType: "AWS::ApiGatewayV2::DomainName",
1788
- conditional: true
1789
- },
1790
- {
1791
- logicalName: cfLogicalNames.httpApiDefaultDomainMapping,
1792
- resourceType: "AWS::ApiGatewayV2::ApiMapping",
1793
- conditional: true
1794
- },
1795
- {
1796
- logicalName: cfLogicalNames.customResourceDefaultDomain,
1797
- resourceType: "AWS::CloudFormation::CustomResource",
1798
- conditional: true
1799
- },
1800
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true },
1801
- {
1802
- logicalName: cfLogicalNames.cloudfrontOriginAccessIdentity,
1803
- resourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity",
1804
- conditional: true
1805
- },
1806
- {
1807
- logicalName: cfLogicalNames.cloudfrontCustomCachePolicy,
1808
- resourceType: "AWS::CloudFront::CachePolicy",
1809
- conditional: true
1810
- },
1811
- {
1812
- logicalName: cfLogicalNames.cloudfrontDefaultCachePolicy,
1813
- resourceType: "AWS::CloudFront::CachePolicy",
1814
- conditional: true
1815
- },
1816
- {
1817
- logicalName: cfLogicalNames.cloudfrontCustomOriginRequestPolicy,
1818
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1819
- conditional: true
1820
- },
1821
- {
1822
- logicalName: cfLogicalNames.cloudfrontDefaultOriginRequestPolicy,
1823
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1824
- conditional: true
1825
- },
1826
- {
1827
- logicalName: cfLogicalNames.cloudfrontDistribution,
1828
- resourceType: "AWS::CloudFront::Distribution",
1829
- conditional: true
1830
- }
1831
- ],
1832
- // ===== BATCH JOB =====
1833
- "batch-job": [
1834
- { logicalName: cfLogicalNames.batchServiceRole, resourceType: "AWS::IAM::Role", conditional: true },
1835
- { logicalName: cfLogicalNames.batchSpotFleetRole, resourceType: "AWS::IAM::Role", conditional: true },
1836
- { logicalName: cfLogicalNames.batchInstanceRole, resourceType: "AWS::IAM::Role", conditional: true },
1837
- { logicalName: cfLogicalNames.batchInstanceProfile, resourceType: "AWS::IAM::InstanceProfile", conditional: true },
1838
- { logicalName: cfLogicalNames.batchStateMachineExecutionRole, resourceType: "AWS::IAM::Role", conditional: true },
1839
- {
1840
- logicalName: cfLogicalNames.batchInstanceLaunchTemplate,
1841
- resourceType: "AWS::EC2::LaunchTemplate",
1842
- conditional: true
1843
- },
1844
- {
1845
- logicalName: cfLogicalNames.batchInstanceDefaultSecurityGroup,
1846
- resourceType: "AWS::EC2::SecurityGroup",
1847
- conditional: true
1848
- },
1849
- {
1850
- logicalName: cfLogicalNames.batchComputeEnvironment,
1851
- resourceType: "AWS::Batch::ComputeEnvironment",
1852
- conditional: true
1853
- },
1854
- { logicalName: cfLogicalNames.batchJobQueue, resourceType: "AWS::Batch::JobQueue", conditional: true },
1855
- { logicalName: cfLogicalNames.batchJobDefinition, resourceType: "AWS::Batch::JobDefinition" },
1856
- { logicalName: cfLogicalNames.batchStateMachine, resourceType: "AWS::StepFunctions::StateMachine" },
1857
- { logicalName: cfLogicalNames.batchJobLogGroup, resourceType: "AWS::Logs::LogGroup", conditional: true },
1858
- { logicalName: cfLogicalNames.batchJobExecutionRole, resourceType: "AWS::IAM::Role" },
1859
- {
1860
- logicalName: cfLogicalNames.atlasMongoUserAssociatedWithRole,
1861
- resourceType: "MongoDB::StpAtlasV1::DatabaseUser",
1862
- conditional: true
1863
- }
1864
- ],
1865
- // ===== EVENT BUS =====
1866
- "event-bus": [
1867
- { logicalName: cfLogicalNames.eventBus, resourceType: "AWS::Events::EventBus" },
1868
- { logicalName: cfLogicalNames.eventBusArchive, resourceType: "AWS::Events::Archive", conditional: true }
1869
- ],
1870
- // ===== STATE MACHINE =====
1871
- "state-machine": [
1872
- { logicalName: cfLogicalNames.globalStateMachinesRole, resourceType: "AWS::IAM::Role", conditional: true },
1873
- { logicalName: cfLogicalNames.stateMachine, resourceType: "AWS::StepFunctions::StateMachine" }
1874
- ],
1875
- // ===== REDIS CLUSTER =====
1876
- "redis-cluster": [
1877
- { logicalName: cfLogicalNames.redisParameterGroup, resourceType: "AWS::ElastiCache::ParameterGroup" },
1878
- { logicalName: cfLogicalNames.redisSubnetGroup, resourceType: "AWS::ElastiCache::SubnetGroup" },
1879
- { logicalName: cfLogicalNames.redisSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
1880
- { logicalName: cfLogicalNames.redisLogGroup, resourceType: "AWS::Logs::LogGroup", conditional: true },
1881
- { logicalName: cfLogicalNames.redisReplicationGroup, resourceType: "AWS::ElastiCache::ReplicationGroup" }
1882
- ],
1883
- // ===== MONGO DB ATLAS CLUSTER =====
1884
- "mongo-db-atlas-cluster": [
1885
- {
1886
- logicalName: cfLogicalNames.atlasMongoCredentialsProvider,
1887
- resourceType: "AWS::CloudFormation::CustomResource",
1888
- conditional: true
1889
- },
1890
- { logicalName: cfLogicalNames.atlasMongoProject, resourceType: "MongoDB::StpAtlasV1::Project", conditional: true },
1891
- {
1892
- logicalName: cfLogicalNames.atlasMongoProjectIpAccessList,
1893
- resourceType: "MongoDB::StpAtlasV1::ProjectIpAccessList",
1894
- conditional: true
1895
- },
1896
- {
1897
- logicalName: cfLogicalNames.atlasMongoProjectVpcNetworkContainer,
1898
- resourceType: "MongoDB::StpAtlasV1::NetworkContainer",
1899
- conditional: true
1900
- },
1901
- {
1902
- logicalName: cfLogicalNames.atlasMongoProjectVpcNetworkPeering,
1903
- resourceType: "MongoDB::StpAtlasV1::NetworkPeering",
1904
- conditional: true
1905
- },
1906
- { logicalName: cfLogicalNames.atlasMongoVpcRoute, resourceType: "AWS::EC2::Route", conditional: true },
1907
- { logicalName: cfLogicalNames.atlasMongoCluster, resourceType: "MongoDB::StpAtlasV1::Cluster" },
1908
- {
1909
- logicalName: cfLogicalNames.atlasMongoClusterMasterUser,
1910
- resourceType: "MongoDB::StpAtlasV1::DatabaseUser",
1911
- conditional: true
1912
- }
1913
- ],
1914
- // ===== USER AUTH POOL =====
1915
- "user-auth-pool": [
1916
- { logicalName: cfLogicalNames.userPool, resourceType: "AWS::Cognito::UserPool" },
1917
- { logicalName: cfLogicalNames.snsRoleSendSmsFromCognito, resourceType: "AWS::IAM::Role" },
1918
- { logicalName: cfLogicalNames.userPoolClient, resourceType: "AWS::Cognito::UserPoolClient" },
1919
- { logicalName: cfLogicalNames.userPoolDomain, resourceType: "AWS::Cognito::UserPoolDomain" },
1920
- {
1921
- logicalName: cfLogicalNames.cognitoUserPoolDetailsCustomResource,
1922
- resourceType: "AWS::CloudFormation::CustomResource"
1923
- },
1924
- {
1925
- logicalName: cfLogicalNames.identityProvider,
1926
- resourceType: "AWS::Cognito::UserPoolIdentityProvider",
1927
- conditional: true
1928
- },
1929
- {
1930
- logicalName: cfLogicalNames.cognitoLambdaHookPermission,
1931
- resourceType: "AWS::Lambda::Permission",
1932
- conditional: true
1933
- },
1934
- {
1935
- logicalName: cfLogicalNames.userPoolUiCustomizationAttachment,
1936
- resourceType: "AWS::Cognito::UserPoolUICustomizationAttachment",
1937
- conditional: true
1938
- },
1939
- {
1940
- logicalName: cfLogicalNames.webAppFirewallAssociation,
1941
- resourceType: "AWS::WAFv2::WebACLAssociation",
1942
- conditional: true
1943
- }
1944
- ],
1945
- // ===== UPSTASH REDIS =====
1946
- "upstash-redis": [
1947
- {
1948
- logicalName: cfLogicalNames.upstashCredentialsProvider,
1949
- resourceType: "AWS::CloudFormation::CustomResource",
1950
- conditional: true
1951
- },
1952
- { logicalName: cfLogicalNames.upstashRedisDatabase, resourceType: "Upstash::Redis::Database" }
1953
- ],
1954
- // ===== APPLICATION LOAD BALANCER =====
1955
- "application-load-balancer": [
1956
- { logicalName: cfLogicalNames.loadBalancer, resourceType: "AWS::ElasticLoadBalancingV2::LoadBalancer" },
1957
- { logicalName: cfLogicalNames.loadBalancerSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
1958
- {
1959
- logicalName: cfLogicalNames.webAppFirewallAssociation,
1960
- resourceType: "AWS::WAFv2::WebACLAssociation",
1961
- conditional: true
1962
- },
1963
- { logicalName: cfLogicalNames.listener, resourceType: "AWS::ElasticLoadBalancingV2::Listener", conditional: true },
1964
- {
1965
- logicalName: cfLogicalNames.customResourceDefaultDomain,
1966
- resourceType: "AWS::CloudFormation::CustomResource",
1967
- conditional: true
1968
- },
1969
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true },
1970
- {
1971
- logicalName: cfLogicalNames.cloudfrontOriginAccessIdentity,
1972
- resourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity",
1973
- conditional: true
1974
- },
1975
- {
1976
- logicalName: cfLogicalNames.cloudfrontCustomCachePolicy,
1977
- resourceType: "AWS::CloudFront::CachePolicy",
1978
- conditional: true
1979
- },
1980
- {
1981
- logicalName: cfLogicalNames.cloudfrontDefaultCachePolicy,
1982
- resourceType: "AWS::CloudFront::CachePolicy",
1983
- conditional: true
1984
- },
1985
- {
1986
- logicalName: cfLogicalNames.cloudfrontCustomOriginRequestPolicy,
1987
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1988
- conditional: true
1989
- },
1990
- {
1991
- logicalName: cfLogicalNames.cloudfrontDefaultOriginRequestPolicy,
1992
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
1993
- conditional: true
1994
- },
1995
- {
1996
- logicalName: cfLogicalNames.cloudfrontDistribution,
1997
- resourceType: "AWS::CloudFront::Distribution",
1998
- conditional: true
1999
- }
2000
- ],
2001
- // ===== NETWORK LOAD BALANCER =====
2002
- "network-load-balancer": [
2003
- { logicalName: cfLogicalNames.loadBalancer, resourceType: "AWS::ElasticLoadBalancingV2::LoadBalancer" },
2004
- { logicalName: cfLogicalNames.loadBalancerSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
2005
- { logicalName: cfLogicalNames.listener, resourceType: "AWS::ElasticLoadBalancingV2::Listener", conditional: true },
2006
- {
2007
- logicalName: cfLogicalNames.customResourceDefaultDomain,
2008
- resourceType: "AWS::CloudFormation::CustomResource",
2009
- conditional: true
2010
- },
2011
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true }
2012
- ],
2013
- // ===== HOSTING BUCKET =====
2014
- // Hosting bucket delegates to a bucket resource, so it includes all bucket child resources
2015
- "hosting-bucket": [
2016
- { logicalName: cfLogicalNames.bucket, resourceType: "AWS::S3::Bucket" },
2017
- { logicalName: cfLogicalNames.bucketPolicy, resourceType: "AWS::S3::BucketPolicy", conditional: true },
2018
- {
2019
- logicalName: cfLogicalNames.cloudfrontOriginAccessIdentity,
2020
- resourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity",
2021
- conditional: true
2022
- },
2023
- {
2024
- logicalName: cfLogicalNames.cloudfrontCustomCachePolicy,
2025
- resourceType: "AWS::CloudFront::CachePolicy",
2026
- conditional: true
2027
- },
2028
- {
2029
- logicalName: cfLogicalNames.cloudfrontDefaultCachePolicy,
2030
- resourceType: "AWS::CloudFront::CachePolicy",
2031
- conditional: true
2032
- },
2033
- {
2034
- logicalName: cfLogicalNames.cloudfrontCustomOriginRequestPolicy,
2035
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
2036
- conditional: true
2037
- },
2038
- {
2039
- logicalName: cfLogicalNames.cloudfrontDefaultOriginRequestPolicy,
2040
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
2041
- conditional: true
2042
- },
2043
- {
2044
- logicalName: cfLogicalNames.cloudfrontDistribution,
2045
- resourceType: "AWS::CloudFront::Distribution",
2046
- conditional: true
2047
- },
2048
- {
2049
- logicalName: cfLogicalNames.customResourceDefaultDomain,
2050
- resourceType: "AWS::CloudFormation::CustomResource",
2051
- conditional: true
2052
- },
2053
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true }
2054
- ],
2055
- // ===== WEB APP FIREWALL =====
2056
- "web-app-firewall": [
2057
- { logicalName: cfLogicalNames.webAppFirewallCustomResource, resourceType: "AWS::CloudFormation::CustomResource" }
2058
- ],
2059
- // ===== OPEN SEARCH DOMAIN =====
2060
- "open-search-domain": [
2061
- { logicalName: cfLogicalNames.openSearchDomain, resourceType: "AWS::OpenSearchService::Domain" },
2062
- { logicalName: cfLogicalNames.openSearchSecurityGroup, resourceType: "AWS::EC2::SecurityGroup", conditional: true },
2063
- {
2064
- logicalName: cfLogicalNames.openSearchDomainLogGroup,
2065
- resourceType: "AWS::Logs::LogGroup",
2066
- conditional: true,
2067
- unresolvable: true
2068
- },
2069
- {
2070
- logicalName: cfLogicalNames.openSearchCustomResource,
2071
- resourceType: "AWS::CloudFormation::CustomResource",
2072
- conditional: true
2073
- }
2074
- ],
2075
- // ===== EFS FILESYSTEM =====
2076
- "efs-filesystem": [
2077
- { logicalName: cfLogicalNames.efsFilesystem, resourceType: "AWS::EFS::FileSystem" },
2078
- { logicalName: cfLogicalNames.efsSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
2079
- {
2080
- logicalName: cfLogicalNames.efsMountTarget,
2081
- resourceType: "AWS::EFS::MountTarget",
2082
- unresolvable: true
2083
- }
2084
- ],
2085
- // ===== NEXTJS WEB =====
2086
- // NextJS web delegates to: bucket, imageFunction, revalidationFunction, revalidationQueue,
2087
- // revalidationTable, revalidationInsertFunction, and optionally serverEdgeFunction or serverFunction
2088
- "nextjs-web": [
2089
- // NextJS-specific resources
2090
- {
2091
- logicalName: cfLogicalNames.openNextHostHeaderRewriteFunction,
2092
- resourceType: "AWS::CloudFront::Function"
2093
- },
2094
- {
2095
- logicalName: cfLogicalNames.openNextAssetReplacerCustomResource,
2096
- resourceType: "AWS::CloudFormation::CustomResource"
2097
- },
2098
- {
2099
- logicalName: cfLogicalNames.openNextDynamoInsertCustomResource,
2100
- resourceType: "AWS::CloudFormation::CustomResource"
2101
- },
2102
- // From bucket
2103
- { logicalName: cfLogicalNames.bucket, resourceType: "AWS::S3::Bucket" },
2104
- { logicalName: cfLogicalNames.bucketPolicy, resourceType: "AWS::S3::BucketPolicy", conditional: true },
2105
- {
2106
- logicalName: cfLogicalNames.cloudfrontOriginAccessIdentity,
2107
- resourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity",
2108
- conditional: true
2109
- },
2110
- {
2111
- logicalName: cfLogicalNames.cloudfrontCustomCachePolicy,
2112
- resourceType: "AWS::CloudFront::CachePolicy",
2113
- conditional: true
2114
- },
2115
- {
2116
- logicalName: cfLogicalNames.cloudfrontDefaultCachePolicy,
2117
- resourceType: "AWS::CloudFront::CachePolicy",
2118
- conditional: true
2119
- },
2120
- {
2121
- logicalName: cfLogicalNames.cloudfrontCustomOriginRequestPolicy,
2122
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
2123
- conditional: true
2124
- },
2125
- {
2126
- logicalName: cfLogicalNames.cloudfrontDefaultOriginRequestPolicy,
2127
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
2128
- conditional: true
2129
- },
2130
- {
2131
- logicalName: cfLogicalNames.cloudfrontDistribution,
2132
- resourceType: "AWS::CloudFront::Distribution",
2133
- conditional: true
2134
- },
2135
- {
2136
- logicalName: cfLogicalNames.customResourceDefaultDomain,
2137
- resourceType: "AWS::CloudFormation::CustomResource",
2138
- conditional: true
2139
- },
2140
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true },
2141
- // From functions (imageFunction, revalidationFunction, serverFunction, warmerFunction, revalidationInsertFunction)
2142
- { logicalName: cfLogicalNames.lambdaRole, resourceType: "AWS::IAM::Role" },
2143
- { logicalName: cfLogicalNames.lambda, resourceType: "AWS::Lambda::Function" },
2144
- { logicalName: cfLogicalNames.lambdaLogGroup, resourceType: "AWS::Logs::LogGroup", conditional: true },
2145
- { logicalName: cfLogicalNames.lambdaUrl, resourceType: "AWS::Lambda::Url", conditional: true },
2146
- // From edge function (serverEdgeFunction)
2147
- {
2148
- logicalName: cfLogicalNames.customResourceEdgeLambda,
2149
- resourceType: "AWS::CloudFormation::CustomResource",
2150
- conditional: true
2151
- },
2152
- // From revalidationQueue
2153
- { logicalName: cfLogicalNames.sqsQueue, resourceType: "AWS::SQS::Queue" },
2154
- { logicalName: cfLogicalNames.sqsQueuePolicy, resourceType: "AWS::SQS::QueuePolicy", conditional: true },
2155
- // From revalidationTable
2156
- { logicalName: cfLogicalNames.dynamoGlobalTable, resourceType: "AWS::DynamoDB::GlobalTable" }
2157
- ],
2158
- // ===== MULTI-CONTAINER WORKLOAD =====
2159
- "multi-container-workload": [
2160
- // Shared global resources (conditional - created only once if not exists)
2161
- { logicalName: cfLogicalNames.ecsExecutionRole, resourceType: "AWS::IAM::Role", conditional: true },
2162
- { logicalName: cfLogicalNames.ecsAutoScalingRole, resourceType: "AWS::IAM::Role", conditional: true },
2163
- // Scaling resources (conditional - only if scaling is configured)
2164
- {
2165
- logicalName: cfLogicalNames.autoScalingTarget,
2166
- resourceType: "AWS::ApplicationAutoScaling::ScalableTarget",
2167
- conditional: true
2168
- },
2169
- {
2170
- logicalName: cfLogicalNames.autoScalingPolicy,
2171
- resourceType: "AWS::ApplicationAutoScaling::ScalingPolicy",
2172
- conditional: true,
2173
- unresolvable: true
2174
- },
2175
- // EC2-based resources (conditional - only if instanceTypes are configured)
2176
- { logicalName: cfLogicalNames.ecsEc2InstanceRole, resourceType: "AWS::IAM::Role", conditional: true },
2177
- {
2178
- logicalName: cfLogicalNames.eventBusRoleForScheduledInstanceRefresh,
2179
- resourceType: "AWS::IAM::Role",
2180
- conditional: true
2181
- },
2182
- { logicalName: cfLogicalNames.ecsEc2InstanceProfile, resourceType: "AWS::IAM::InstanceProfile", conditional: true },
2183
- {
2184
- logicalName: cfLogicalNames.ecsEc2InstanceLaunchTemplate,
2185
- resourceType: "AWS::EC2::LaunchTemplate",
2186
- conditional: true
2187
- },
2188
- {
2189
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroup,
2190
- resourceType: "AWS::AutoScaling::AutoScalingGroup",
2191
- conditional: true
2192
- },
2193
- {
2194
- logicalName: cfLogicalNames.ecsEc2ForceDeleteAutoscalingGroupCustomResource,
2195
- resourceType: "AWS::CloudFormation::CustomResource",
2196
- conditional: true
2197
- },
2198
- {
2199
- logicalName: cfLogicalNames.ecsEc2CapacityProvider,
2200
- resourceType: "AWS::ECS::CapacityProvider",
2201
- conditional: true
2202
- },
2203
- {
2204
- logicalName: cfLogicalNames.ecsEc2CapacityProviderAssociation,
2205
- resourceType: "AWS::ECS::ClusterCapacityProviderAssociations",
2206
- conditional: true
2207
- },
2208
- {
2209
- logicalName: cfLogicalNames.schedulerRuleForScheduledInstanceRefresh,
2210
- resourceType: "AWS::Scheduler::Schedule",
2211
- conditional: true
2212
- },
2213
- {
2214
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroupWarmPool,
2215
- resourceType: "AWS::AutoScaling::WarmPool",
2216
- conditional: true
2217
- },
2218
- // Deployment resources (conditional - only if deployment is configured)
2219
- { logicalName: cfLogicalNames.ecsCodeDeployApp, resourceType: "AWS::CodeDeploy::Application", conditional: true },
2220
- {
2221
- logicalName: cfLogicalNames.codeDeployDeploymentGroup,
2222
- resourceType: "AWS::CodeDeploy::DeploymentGroup",
2223
- conditional: true
2224
- },
2225
- // Core resources (always present)
2226
- { logicalName: cfLogicalNames.ecsCluster, resourceType: "AWS::ECS::Cluster" },
2227
- { logicalName: cfLogicalNames.workloadSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
2228
- {
2229
- logicalName: cfLogicalNames.ecsService,
2230
- resourceType: "AWS::ECS::Service",
2231
- unresolvable: true
2232
- },
2233
- { logicalName: cfLogicalNames.ecsTaskRole, resourceType: "AWS::IAM::Role" },
2234
- { logicalName: cfLogicalNames.ecsTaskDefinition, resourceType: "AWS::ECS::TaskDefinition" },
2235
- // Conditional resources
2236
- {
2237
- logicalName: cfLogicalNames.ecsLogGroup,
2238
- resourceType: "AWS::Logs::LogGroup",
2239
- conditional: true,
2240
- unresolvable: true
2241
- },
2242
- { logicalName: cfLogicalNames.efsAccessPoint, resourceType: "AWS::EFS::AccessPoint", conditional: true },
2243
- {
2244
- logicalName: cfLogicalNames.atlasMongoUserAssociatedWithRole,
2245
- resourceType: "MongoDB::StpAtlasV1::DatabaseUser",
2246
- conditional: true
2247
- }
2248
- ],
2249
- // ===== SQS QUEUE =====
2250
- "sqs-queue": [
2251
- { logicalName: cfLogicalNames.sqsQueue, resourceType: "AWS::SQS::Queue" },
2252
- { logicalName: cfLogicalNames.sqsQueuePolicy, resourceType: "AWS::SQS::QueuePolicy", conditional: true }
2253
- ],
2254
- // ===== SNS TOPIC =====
2255
- "sns-topic": [{ logicalName: cfLogicalNames.snsTopic, resourceType: "AWS::SNS::Topic" }],
2256
- // ===== BASTION =====
2257
- bastion: [
2258
- {
2259
- logicalName: cfLogicalNames.bastionCloudwatchSsmDocument,
2260
- resourceType: "AWS::SSM::Document",
2261
- conditional: true
2262
- },
2263
- { logicalName: cfLogicalNames.bastionEc2AutoscalingGroup, resourceType: "AWS::AutoScaling::AutoScalingGroup" },
2264
- { logicalName: cfLogicalNames.bastionSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
2265
- { logicalName: cfLogicalNames.bastionEc2LaunchTemplate, resourceType: "AWS::EC2::LaunchTemplate" },
2266
- { logicalName: cfLogicalNames.bastionRole, resourceType: "AWS::IAM::Role" },
2267
- { logicalName: cfLogicalNames.bastionEc2InstanceProfile, resourceType: "AWS::IAM::InstanceProfile" },
2268
- { logicalName: cfLogicalNames.bastionCwAgentSsmAssociation, resourceType: "AWS::SSM::Association" },
2269
- { logicalName: cfLogicalNames.bastionSsmAgentSsmAssociation, resourceType: "AWS::SSM::Association" },
2270
- {
2271
- logicalName: cfLogicalNames.bastionLogGroup,
2272
- resourceType: "AWS::Logs::LogGroup",
2273
- conditional: true,
2274
- unresolvable: true
2275
- }
2276
- ],
2277
- // ===== EDGE LAMBDA FUNCTION =====
2278
- "edge-lambda-function": [
2279
- { logicalName: cfLogicalNames.customResourceEdgeLambda, resourceType: "AWS::CloudFormation::CustomResource" }
2280
- ],
2281
- // ===== WEB SERVICE =====
2282
- // Web service delegates to: containerWorkload + optionally (httpApiGateway OR loadBalancer OR networkLoadBalancer)
2283
- "web-service": [
2284
- // From multi-container-workload - core resources (always present)
2285
- { logicalName: cfLogicalNames.ecsCluster, resourceType: "AWS::ECS::Cluster" },
2286
- { logicalName: cfLogicalNames.workloadSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
2287
- {
2288
- logicalName: cfLogicalNames.ecsService,
2289
- resourceType: "AWS::ECS::Service",
2290
- unresolvable: true
2291
- },
2292
- { logicalName: cfLogicalNames.ecsTaskRole, resourceType: "AWS::IAM::Role" },
2293
- { logicalName: cfLogicalNames.ecsTaskDefinition, resourceType: "AWS::ECS::TaskDefinition" },
2294
- // From multi-container-workload - conditional resources
2295
- { logicalName: cfLogicalNames.ecsExecutionRole, resourceType: "AWS::IAM::Role", conditional: true },
2296
- { logicalName: cfLogicalNames.ecsAutoScalingRole, resourceType: "AWS::IAM::Role", conditional: true },
2297
- {
2298
- logicalName: cfLogicalNames.autoScalingTarget,
2299
- resourceType: "AWS::ApplicationAutoScaling::ScalableTarget",
2300
- conditional: true
2301
- },
2302
- {
2303
- logicalName: cfLogicalNames.autoScalingPolicy,
2304
- resourceType: "AWS::ApplicationAutoScaling::ScalingPolicy",
2305
- conditional: true,
2306
- unresolvable: true
2307
- },
2308
- { logicalName: cfLogicalNames.ecsEc2InstanceRole, resourceType: "AWS::IAM::Role", conditional: true },
2309
- {
2310
- logicalName: cfLogicalNames.eventBusRoleForScheduledInstanceRefresh,
2311
- resourceType: "AWS::IAM::Role",
2312
- conditional: true
2313
- },
2314
- { logicalName: cfLogicalNames.ecsEc2InstanceProfile, resourceType: "AWS::IAM::InstanceProfile", conditional: true },
2315
- {
2316
- logicalName: cfLogicalNames.ecsEc2InstanceLaunchTemplate,
2317
- resourceType: "AWS::EC2::LaunchTemplate",
2318
- conditional: true
2319
- },
2320
- {
2321
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroup,
2322
- resourceType: "AWS::AutoScaling::AutoScalingGroup",
2323
- conditional: true
2324
- },
2325
- {
2326
- logicalName: cfLogicalNames.ecsEc2ForceDeleteAutoscalingGroupCustomResource,
2327
- resourceType: "AWS::CloudFormation::CustomResource",
2328
- conditional: true
2329
- },
2330
- {
2331
- logicalName: cfLogicalNames.ecsEc2CapacityProvider,
2332
- resourceType: "AWS::ECS::CapacityProvider",
2333
- conditional: true
2334
- },
2335
- {
2336
- logicalName: cfLogicalNames.ecsEc2CapacityProviderAssociation,
2337
- resourceType: "AWS::ECS::ClusterCapacityProviderAssociations",
2338
- conditional: true
2339
- },
2340
- {
2341
- logicalName: cfLogicalNames.schedulerRuleForScheduledInstanceRefresh,
2342
- resourceType: "AWS::Scheduler::Schedule",
2343
- conditional: true
2344
- },
2345
- {
2346
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroupWarmPool,
2347
- resourceType: "AWS::AutoScaling::WarmPool",
2348
- conditional: true
2349
- },
2350
- { logicalName: cfLogicalNames.ecsCodeDeployApp, resourceType: "AWS::CodeDeploy::Application", conditional: true },
2351
- {
2352
- logicalName: cfLogicalNames.codeDeployDeploymentGroup,
2353
- resourceType: "AWS::CodeDeploy::DeploymentGroup",
2354
- conditional: true
2355
- },
2356
- {
2357
- logicalName: cfLogicalNames.ecsLogGroup,
2358
- resourceType: "AWS::Logs::LogGroup",
2359
- conditional: true,
2360
- unresolvable: true
2361
- },
2362
- { logicalName: cfLogicalNames.efsAccessPoint, resourceType: "AWS::EFS::AccessPoint", conditional: true },
2363
- // From application-load-balancer (conditional - only if ALB is used)
2364
- {
2365
- logicalName: cfLogicalNames.loadBalancer,
2366
- resourceType: "AWS::ElasticLoadBalancingV2::LoadBalancer",
2367
- conditional: true
2368
- },
2369
- {
2370
- logicalName: cfLogicalNames.loadBalancerSecurityGroup,
2371
- resourceType: "AWS::EC2::SecurityGroup",
2372
- conditional: true
2373
- },
2374
- { logicalName: cfLogicalNames.listener, resourceType: "AWS::ElasticLoadBalancingV2::Listener", conditional: true },
2375
- {
2376
- logicalName: cfLogicalNames.webAppFirewallAssociation,
2377
- resourceType: "AWS::WAFv2::WebACLAssociation",
2378
- conditional: true
2379
- },
2380
- // From http-api-gateway (conditional - only if HTTP API Gateway is used, alternative to ALB/NLB)
2381
- { logicalName: cfLogicalNames.httpApi, resourceType: "AWS::ApiGatewayV2::Api", conditional: true },
2382
- { logicalName: cfLogicalNames.httpApiStage, resourceType: "AWS::ApiGatewayV2::Stage", conditional: true },
2383
- { logicalName: cfLogicalNames.httpApiLogGroup, resourceType: "AWS::Logs::LogGroup", conditional: true },
2384
- {
2385
- logicalName: cfLogicalNames.httpApiVpcLinkSecurityGroup,
2386
- resourceType: "AWS::EC2::SecurityGroup",
2387
- conditional: true
2388
- },
2389
- { logicalName: cfLogicalNames.httpApiVpcLink, resourceType: "AWS::ApiGatewayV2::VpcLink", conditional: true },
2390
- { logicalName: cfLogicalNames.httpApiDomain, resourceType: "AWS::ApiGatewayV2::DomainName", conditional: true },
2391
- {
2392
- logicalName: cfLogicalNames.httpApiDomainMapping,
2393
- resourceType: "AWS::ApiGatewayV2::ApiMapping",
2394
- conditional: true
2395
- },
2396
- {
2397
- logicalName: cfLogicalNames.httpApiDefaultDomain,
2398
- resourceType: "AWS::ApiGatewayV2::DomainName",
2399
- conditional: true
2400
- },
2401
- {
2402
- logicalName: cfLogicalNames.httpApiDefaultDomainMapping,
2403
- resourceType: "AWS::ApiGatewayV2::ApiMapping",
2404
- conditional: true
2405
- },
2406
- // Common resources (domains, CDN - all conditional)
2407
- {
2408
- logicalName: cfLogicalNames.customResourceDefaultDomain,
2409
- resourceType: "AWS::CloudFormation::CustomResource",
2410
- conditional: true
2411
- },
2412
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true },
2413
- {
2414
- logicalName: cfLogicalNames.cloudfrontOriginAccessIdentity,
2415
- resourceType: "AWS::CloudFront::CloudFrontOriginAccessIdentity",
2416
- conditional: true
2417
- },
2418
- {
2419
- logicalName: cfLogicalNames.cloudfrontCustomCachePolicy,
2420
- resourceType: "AWS::CloudFront::CachePolicy",
2421
- conditional: true
2422
- },
2423
- {
2424
- logicalName: cfLogicalNames.cloudfrontDefaultCachePolicy,
2425
- resourceType: "AWS::CloudFront::CachePolicy",
2426
- conditional: true
2427
- },
2428
- {
2429
- logicalName: cfLogicalNames.cloudfrontCustomOriginRequestPolicy,
2430
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
2431
- conditional: true
2432
- },
2433
- {
2434
- logicalName: cfLogicalNames.cloudfrontDefaultOriginRequestPolicy,
2435
- resourceType: "AWS::CloudFront::OriginRequestPolicy",
2436
- conditional: true
2437
- },
2438
- {
2439
- logicalName: cfLogicalNames.cloudfrontDistribution,
2440
- resourceType: "AWS::CloudFront::Distribution",
2441
- conditional: true
2442
- }
2443
- ],
2444
- // ===== PRIVATE SERVICE =====
2445
- // Private service delegates to: containerWorkload + optionally loadBalancer
2446
- "private-service": [
2447
- // From multi-container-workload - core resources (always present)
2448
- { logicalName: cfLogicalNames.ecsCluster, resourceType: "AWS::ECS::Cluster" },
2449
- { logicalName: cfLogicalNames.workloadSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
2450
- {
2451
- logicalName: cfLogicalNames.ecsService,
2452
- resourceType: "AWS::ECS::Service",
2453
- unresolvable: true
2454
- },
2455
- { logicalName: cfLogicalNames.ecsTaskRole, resourceType: "AWS::IAM::Role" },
2456
- { logicalName: cfLogicalNames.ecsTaskDefinition, resourceType: "AWS::ECS::TaskDefinition" },
2457
- // From multi-container-workload - conditional resources
2458
- { logicalName: cfLogicalNames.ecsExecutionRole, resourceType: "AWS::IAM::Role", conditional: true },
2459
- { logicalName: cfLogicalNames.ecsAutoScalingRole, resourceType: "AWS::IAM::Role", conditional: true },
2460
- {
2461
- logicalName: cfLogicalNames.autoScalingTarget,
2462
- resourceType: "AWS::ApplicationAutoScaling::ScalableTarget",
2463
- conditional: true
2464
- },
2465
- {
2466
- logicalName: cfLogicalNames.autoScalingPolicy,
2467
- resourceType: "AWS::ApplicationAutoScaling::ScalingPolicy",
2468
- conditional: true,
2469
- unresolvable: true
2470
- },
2471
- { logicalName: cfLogicalNames.ecsEc2InstanceRole, resourceType: "AWS::IAM::Role", conditional: true },
2472
- {
2473
- logicalName: cfLogicalNames.eventBusRoleForScheduledInstanceRefresh,
2474
- resourceType: "AWS::IAM::Role",
2475
- conditional: true
2476
- },
2477
- { logicalName: cfLogicalNames.ecsEc2InstanceProfile, resourceType: "AWS::IAM::InstanceProfile", conditional: true },
2478
- {
2479
- logicalName: cfLogicalNames.ecsEc2InstanceLaunchTemplate,
2480
- resourceType: "AWS::EC2::LaunchTemplate",
2481
- conditional: true
2482
- },
2483
- {
2484
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroup,
2485
- resourceType: "AWS::AutoScaling::AutoScalingGroup",
2486
- conditional: true
2487
- },
2488
- {
2489
- logicalName: cfLogicalNames.ecsEc2ForceDeleteAutoscalingGroupCustomResource,
2490
- resourceType: "AWS::CloudFormation::CustomResource",
2491
- conditional: true
2492
- },
2493
- {
2494
- logicalName: cfLogicalNames.ecsEc2CapacityProvider,
2495
- resourceType: "AWS::ECS::CapacityProvider",
2496
- conditional: true
2497
- },
2498
- {
2499
- logicalName: cfLogicalNames.ecsEc2CapacityProviderAssociation,
2500
- resourceType: "AWS::ECS::ClusterCapacityProviderAssociations",
2501
- conditional: true
2502
- },
2503
- {
2504
- logicalName: cfLogicalNames.schedulerRuleForScheduledInstanceRefresh,
2505
- resourceType: "AWS::Scheduler::Schedule",
2506
- conditional: true
2507
- },
2508
- {
2509
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroupWarmPool,
2510
- resourceType: "AWS::AutoScaling::WarmPool",
2511
- conditional: true
2512
- },
2513
- { logicalName: cfLogicalNames.ecsCodeDeployApp, resourceType: "AWS::CodeDeploy::Application", conditional: true },
2514
- {
2515
- logicalName: cfLogicalNames.codeDeployDeploymentGroup,
2516
- resourceType: "AWS::CodeDeploy::DeploymentGroup",
2517
- conditional: true
2518
- },
2519
- {
2520
- logicalName: cfLogicalNames.ecsLogGroup,
2521
- resourceType: "AWS::Logs::LogGroup",
2522
- conditional: true,
2523
- unresolvable: true
2524
- },
2525
- { logicalName: cfLogicalNames.efsAccessPoint, resourceType: "AWS::EFS::AccessPoint", conditional: true },
2526
- // From application-load-balancer (conditional - only if ALB is configured)
2527
- {
2528
- logicalName: cfLogicalNames.loadBalancer,
2529
- resourceType: "AWS::ElasticLoadBalancingV2::LoadBalancer",
2530
- conditional: true
2531
- },
2532
- {
2533
- logicalName: cfLogicalNames.loadBalancerSecurityGroup,
2534
- resourceType: "AWS::EC2::SecurityGroup",
2535
- conditional: true
2536
- },
2537
- { logicalName: cfLogicalNames.listener, resourceType: "AWS::ElasticLoadBalancingV2::Listener", conditional: true },
2538
- {
2539
- logicalName: cfLogicalNames.customResourceDefaultDomain,
2540
- resourceType: "AWS::CloudFormation::CustomResource",
2541
- conditional: true
2542
- },
2543
- { logicalName: cfLogicalNames.dnsRecord, resourceType: "AWS::Route53::RecordSet", conditional: true }
2544
- ],
2545
- // ===== WORKER SERVICE =====
2546
- // Worker service delegates to: containerWorkload only
2547
- "worker-service": [
2548
- // From multi-container-workload - core resources (always present)
2549
- { logicalName: cfLogicalNames.ecsCluster, resourceType: "AWS::ECS::Cluster" },
2550
- { logicalName: cfLogicalNames.workloadSecurityGroup, resourceType: "AWS::EC2::SecurityGroup" },
2551
- {
2552
- logicalName: cfLogicalNames.ecsService,
2553
- resourceType: "AWS::ECS::Service",
2554
- unresolvable: true
2555
- },
2556
- { logicalName: cfLogicalNames.ecsTaskRole, resourceType: "AWS::IAM::Role" },
2557
- { logicalName: cfLogicalNames.ecsTaskDefinition, resourceType: "AWS::ECS::TaskDefinition" },
2558
- // From multi-container-workload - conditional resources
2559
- { logicalName: cfLogicalNames.ecsExecutionRole, resourceType: "AWS::IAM::Role", conditional: true },
2560
- { logicalName: cfLogicalNames.ecsAutoScalingRole, resourceType: "AWS::IAM::Role", conditional: true },
2561
- {
2562
- logicalName: cfLogicalNames.autoScalingTarget,
2563
- resourceType: "AWS::ApplicationAutoScaling::ScalableTarget",
2564
- conditional: true
2565
- },
2566
- {
2567
- logicalName: cfLogicalNames.autoScalingPolicy,
2568
- resourceType: "AWS::ApplicationAutoScaling::ScalingPolicy",
2569
- conditional: true,
2570
- unresolvable: true
2571
- },
2572
- { logicalName: cfLogicalNames.ecsEc2InstanceRole, resourceType: "AWS::IAM::Role", conditional: true },
2573
- {
2574
- logicalName: cfLogicalNames.eventBusRoleForScheduledInstanceRefresh,
2575
- resourceType: "AWS::IAM::Role",
2576
- conditional: true
2577
- },
2578
- { logicalName: cfLogicalNames.ecsEc2InstanceProfile, resourceType: "AWS::IAM::InstanceProfile", conditional: true },
2579
- {
2580
- logicalName: cfLogicalNames.ecsEc2InstanceLaunchTemplate,
2581
- resourceType: "AWS::EC2::LaunchTemplate",
2582
- conditional: true
2583
- },
2584
- {
2585
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroup,
2586
- resourceType: "AWS::AutoScaling::AutoScalingGroup",
2587
- conditional: true
2588
- },
2589
- {
2590
- logicalName: cfLogicalNames.ecsEc2ForceDeleteAutoscalingGroupCustomResource,
2591
- resourceType: "AWS::CloudFormation::CustomResource",
2592
- conditional: true
2593
- },
2594
- {
2595
- logicalName: cfLogicalNames.ecsEc2CapacityProvider,
2596
- resourceType: "AWS::ECS::CapacityProvider",
2597
- conditional: true
2598
- },
2599
- {
2600
- logicalName: cfLogicalNames.ecsEc2CapacityProviderAssociation,
2601
- resourceType: "AWS::ECS::ClusterCapacityProviderAssociations",
2602
- conditional: true
2603
- },
2604
- {
2605
- logicalName: cfLogicalNames.schedulerRuleForScheduledInstanceRefresh,
2606
- resourceType: "AWS::Scheduler::Schedule",
2607
- conditional: true
2608
- },
2609
- {
2610
- logicalName: cfLogicalNames.ecsEc2AutoscalingGroupWarmPool,
2611
- resourceType: "AWS::AutoScaling::WarmPool",
2612
- conditional: true
2613
- },
2614
- { logicalName: cfLogicalNames.ecsCodeDeployApp, resourceType: "AWS::CodeDeploy::Application", conditional: true },
2615
- {
2616
- logicalName: cfLogicalNames.codeDeployDeploymentGroup,
2617
- resourceType: "AWS::CodeDeploy::DeploymentGroup",
2618
- conditional: true
2619
- },
2620
- {
2621
- logicalName: cfLogicalNames.ecsLogGroup,
2622
- resourceType: "AWS::Logs::LogGroup",
2623
- conditional: true,
2624
- unresolvable: true
2625
- },
2626
- { logicalName: cfLogicalNames.efsAccessPoint, resourceType: "AWS::EFS::AccessPoint", conditional: true },
2627
- {
2628
- logicalName: cfLogicalNames.atlasMongoUserAssociatedWithRole,
2629
- resourceType: "MongoDB::StpAtlasV1::DatabaseUser",
2630
- conditional: true
2631
- }
2632
- ],
2633
- // ===== OTHER RESOURCES =====
2634
- "custom-resource-instance": [],
2635
- "custom-resource-definition": [],
2636
- "deployment-script": [],
2637
- "aws-cdk-construct": []
2638
- };
2639
-
2640
- // src/api/npm/ts/config.ts
2641
- var getParamReferenceSymbol = Symbol.for("stacktape:getParamReference");
2642
- var getTypeSymbol = Symbol.for("stacktape:getType");
2643
- var getPropertiesSymbol = Symbol.for("stacktape:getProperties");
2644
- var getOverridesSymbol = Symbol.for("stacktape:getOverrides");
2645
- var ResourceParamReference = class {
2646
- static {
2647
- __name(this, "ResourceParamReference");
2648
- }
2649
- constructor(resourceName, param) {
2650
- this.__resourceName = resourceName;
2651
- this.__param = param;
2652
- }
2653
- toString() {
2654
- return `$ResourceParam('${this.__resourceName}', '${this.__param}')`;
2655
- }
2656
- toJSON() {
2657
- return this.toString();
2658
- }
2659
- // Allow the reference to be used directly in template strings
2660
- valueOf() {
2661
- return this.toString();
2662
- }
2663
- };
2664
- var BaseTypeProperties = class {
2665
- static {
2666
- __name(this, "BaseTypeProperties");
2667
- }
2668
- constructor(type, properties) {
2669
- this.type = type;
2670
- this.properties = properties;
2671
- }
2672
- };
2673
- var BaseResource = class {
2674
- static {
2675
- __name(this, "BaseResource");
2676
- }
2677
- constructor(name, type, properties, overrides) {
2678
- this._resourceName = name;
2679
- this._type = type;
2680
- let finalProperties = properties;
2681
- let finalOverrides = overrides;
2682
- if (properties && typeof properties === "object" && "overrides" in properties) {
2683
- finalProperties = { ...properties };
2684
- const propertiesOverrides = finalProperties.overrides;
2685
- delete finalProperties.overrides;
2686
- if (propertiesOverrides && typeof propertiesOverrides === "object") {
2687
- finalOverrides = transformOverridesToLogicalNames(name, type, propertiesOverrides);
2688
- }
2689
- }
2690
- this._properties = finalProperties;
2691
- this._overrides = finalOverrides;
2692
- }
2693
- // Public getter for resource name (used for referencing resources)
2694
- get resourceName() {
2695
- return this._resourceName;
2696
- }
2697
- // Private methods using symbols - not accessible from outside or in autocomplete
2698
- [getParamReferenceSymbol](paramName) {
2699
- return new ResourceParamReference(this._resourceName, paramName);
2700
- }
2701
- [getTypeSymbol]() {
2702
- return this._type;
2703
- }
2704
- [getPropertiesSymbol]() {
2705
- return this._properties;
2706
- }
2707
- [getOverridesSymbol]() {
2708
- return this._overrides;
2709
- }
2710
- };
2711
- function transformOverridesToLogicalNames(resourceName, resourceType, overrides) {
2712
- const childResources = CHILD_RESOURCES[resourceType] || [];
2713
- const propertyNameMap = /* @__PURE__ */ new Map();
2714
- for (const childResource of childResources) {
2715
- if (childResource.logicalName && childResource.logicalName.name) {
2716
- propertyNameMap.set(childResource.logicalName.name, childResource);
2717
- }
2718
- }
2719
- const transformedOverrides = {};
2720
- const errorMessage = `Override of property {propertyName} of resource ${resourceName} is not supported.
2721
-
2722
- Remove the override, run 'stacktape compile:template' command, and find the logical name of the resource you want to override manually. Then add it to the overrides object.`;
2723
- for (const propertyName in overrides) {
2724
- const childResource = propertyNameMap.get(propertyName);
2725
- if (childResource?.unresolvable) {
2726
- throw new Error(errorMessage.replace("{propertyName}", propertyName));
2727
- }
2728
- if (childResource) {
2729
- const logicalNameFn = childResource.logicalName;
2730
- let logicalName;
2731
- try {
2732
- logicalName = logicalNameFn(resourceName);
2733
- } catch {
2734
- try {
2735
- logicalName = logicalNameFn();
2736
- } catch {
2737
- logicalName = propertyName;
2738
- }
2739
- }
2740
- if (logicalName.includes("undefined")) {
2741
- throw new Error(errorMessage.replace("{propertyName}", propertyName));
2742
- }
2743
- transformedOverrides[logicalName] = overrides[propertyName];
2744
- } else {
2745
- transformedOverrides[propertyName] = overrides[propertyName];
2746
- }
2747
- }
2748
- return transformedOverrides;
2749
- }
2750
- __name(transformOverridesToLogicalNames, "transformOverridesToLogicalNames");
2751
- var defineConfig = /* @__PURE__ */ __name((configFn) => {
2752
- return (params) => {
2753
- const config = configFn(params);
2754
- return transformConfigWithResources(config);
2755
- };
2756
- }, "defineConfig");
2757
- var transformConfigWithResources = /* @__PURE__ */ __name((config) => {
2758
- if (!config || typeof config !== "object") {
2759
- return config;
2760
- }
2761
- const result = {};
2762
- for (const key in config) {
2763
- if (key === "resources") {
2764
- result[key] = transformResourceDefinitions(config[key]);
2765
- } else if (key === "scripts") {
2766
- result[key] = transformScriptDefinitions(config[key]);
2767
- } else {
2768
- result[key] = transformValue(config[key]);
2769
- }
2770
- }
2771
- return result;
2772
- }, "transformConfigWithResources");
2773
- var transformEnvironment = /* @__PURE__ */ __name((env) => {
2774
- if (!env || typeof env !== "object" || Array.isArray(env)) {
2775
- return env;
2776
- }
2777
- return Object.entries(env).map(([name, value]) => ({
2778
- name,
2779
- value: transformValue(value)
2780
- }));
2781
- }, "transformEnvironment");
2782
- var transformResourceDefinitions = /* @__PURE__ */ __name((resources) => {
2783
- if (!resources || typeof resources !== "object") {
2784
- return resources;
2785
- }
2786
- const result = {};
2787
- for (const key in resources) {
2788
- const resource = resources[key];
2789
- if (resource instanceof BaseResource) {
2790
- const type = resource[getTypeSymbol]();
2791
- const properties = resource[getPropertiesSymbol]();
2792
- const overrides = resource[getOverridesSymbol]();
2793
- result[key] = {
2794
- type,
2795
- properties: transformValue(properties),
2796
- ...overrides !== void 0 && { overrides: transformValue(overrides) }
2797
- };
2798
- } else {
2799
- result[key] = transformValue(resource);
2800
- }
2801
- }
2802
- return result;
2803
- }, "transformResourceDefinitions");
2804
- var transformScriptDefinitions = /* @__PURE__ */ __name((scripts) => {
2805
- if (!scripts || typeof scripts !== "object") {
2806
- return scripts;
2807
- }
2808
- const result = {};
2809
- for (const key in scripts) {
2810
- const script = scripts[key];
2811
- if (script instanceof BaseTypeProperties) {
2812
- result[key] = {
2813
- type: script.type,
2814
- properties: transformValue(script.properties)
2815
- };
2816
- } else {
2817
- result[key] = transformValue(script);
2818
- }
2819
- }
2820
- return result;
2821
- }, "transformScriptDefinitions");
2822
- var transformValue = /* @__PURE__ */ __name((value) => {
2823
- if (value === null || value === void 0) {
2824
- return value;
2825
- }
2826
- if (value instanceof ResourceParamReference) {
2827
- return value.toString();
2828
- }
2829
- if (value instanceof BaseResource) {
2830
- return value.resourceName;
2831
- }
2832
- if (value instanceof BaseTypeProperties) {
2833
- return {
2834
- type: value.type,
2835
- properties: transformValue(value.properties)
2836
- };
2837
- }
2838
- if (Array.isArray(value)) {
2839
- return value.map((item) => {
2840
- if (item instanceof BaseResource) {
2841
- return item.resourceName;
2842
- }
2843
- return transformValue(item);
2844
- });
2845
- }
2846
- if (typeof value === "object") {
2847
- const result = {};
2848
- for (const key in value) {
2849
- if (key === "environment") {
2850
- result[key] = transformEnvironment(value[key]);
2851
- } else {
2852
- result[key] = transformValue(value[key]);
2853
- }
2854
- }
2855
- return result;
2856
- }
2857
- return value;
2858
- }, "transformValue");
2859
-
2860
- // src/api/npm/ts/directives.ts
2861
- var $ResourceParam = /* @__PURE__ */ __name((resourceName, property) => {
2862
- return `$ResourceParam('${resourceName}','${property}')`;
2863
- }, "$ResourceParam");
2864
- var $CfResourceParam = /* @__PURE__ */ __name((cloudformationResourceLogicalId, property) => {
2865
- return `$CfResourceParam('${cloudformationResourceLogicalId}','${property}')`;
2866
- }, "$CfResourceParam");
2867
- var $Secret = /* @__PURE__ */ __name((secretName) => {
2868
- return `$Secret('${secretName}')`;
2869
- }, "$Secret");
2870
- var $CfFormat = /* @__PURE__ */ __name((interpolatedString, ...values) => {
2871
- return `$CfFormat('${interpolatedString}', '${values.join(",")}')`;
2872
- }, "$CfFormat");
2873
- var $CfStackOutput = /* @__PURE__ */ __name((stackName, outputName) => {
2874
- return `$CfStackOutput('${stackName}','${outputName}')`;
2875
- }, "$CfStackOutput");
2876
- var $GitInfo = /* @__PURE__ */ __name(() => {
2877
- return "$GitInfo()";
2878
- }, "$GitInfo");
2879
-
2880
- // src/api/npm/ts/global-aws-services.ts
2881
- var AWS_SES = "aws:ses";
2882
-
2883
- // src/api/npm/ts/resource-metadata.ts
2884
- var REFERENCEABLE_PARAMS = {
2885
- "relational-database": [
2886
- { name: "connectionString", description: "Connection string for the database" },
2887
- { name: "jdbcConnectionString", description: "JDBC connection string" },
2888
- { name: "host", description: "Database host" },
2889
- { name: "port", description: "Database port" },
2890
- { name: "dbName", description: "Database name" },
2891
- { name: "readerHost", description: "Reader endpoint host" },
2892
- { name: "readerConnectionString", description: "Reader connection string" },
2893
- { name: "readerJdbcConnectionString", description: "Reader JDBC connection string" }
2894
- ],
2895
- "web-service": [
2896
- { name: "domain", description: "Web service domain" },
2897
- { name: "url", description: "Web service URL" },
2898
- { name: "customDomains", description: "Custom domains" },
2899
- { name: "customDomainUrls", description: "Custom domain URLs" }
2900
- ],
2901
- "private-service": [{ name: "address", description: "Private service address" }],
2902
- bucket: [
2903
- { name: "name", description: "Bucket name" },
2904
- { name: "arn", description: "Bucket ARN" }
2905
- ],
2906
- "dynamo-db-table": [
2907
- { name: "name", description: "Table name" },
2908
- { name: "arn", description: "Table ARN" },
2909
- { name: "streamArn", description: "Stream ARN" }
2910
- ],
2911
- function: [
2912
- { name: "arn", description: "Function ARN" },
2913
- { name: "logGroupArn", description: "Log group ARN" }
2914
- ],
2915
- "batch-job": [
2916
- { name: "jobDefinitionArn", description: "Job definition ARN" },
2917
- { name: "stateMachineArn", description: "State machine ARN" },
2918
- { name: "logGroupArn", description: "Log group ARN" }
2919
- ],
2920
- "event-bus": [
2921
- { name: "arn", description: "Event bus ARN" },
2922
- { name: "archiveArn", description: "Archive ARN" }
2923
- ],
2924
- "http-api-gateway": [
2925
- { name: "domain", description: "API Gateway domain" },
2926
- { name: "url", description: "API Gateway URL" },
2927
- { name: "customDomains", description: "Custom domains" },
2928
- { name: "customDomainUrls", description: "Custom domain URLs" },
2929
- { name: "customDomainUrl", description: "First custom domain URL" }
2930
- ],
2931
- "mongo-db-atlas-cluster": [{ name: "connectionString", description: "MongoDB connection string" }],
2932
- "redis-cluster": [
2933
- { name: "host", description: "Redis host" },
2934
- { name: "readerHost", description: "Redis reader host" },
2935
- { name: "port", description: "Redis port" },
2936
- { name: "sharding", description: "Sharding status" }
2937
- ],
2938
- "state-machine": [
2939
- { name: "arn", description: "State machine ARN" },
2940
- { name: "name", description: "State machine name" }
2941
- ],
2942
- "user-auth-pool": [
2943
- { name: "id", description: "User pool ID" },
2944
- { name: "clientId", description: "Client ID" },
2945
- { name: "domain", description: "User pool domain" }
2946
- ],
2947
- "upstash-redis": [
2948
- { name: "host", description: "Upstash Redis host" },
2949
- { name: "port", description: "Upstash Redis port" },
2950
- { name: "password", description: "Password" },
2951
- { name: "restToken", description: "REST token" },
2952
- { name: "readOnlyRestToken", description: "Read-only REST token" },
2953
- { name: "restUrl", description: "REST URL" },
2954
- { name: "redisUrl", description: "Redis URL" }
2955
- ],
2956
- "application-load-balancer": [
2957
- { name: "domain", description: "Load balancer domain" },
2958
- { name: "customDomains", description: "Custom domains" }
2959
- ],
2960
- "network-load-balancer": [
2961
- { name: "domain", description: "Load balancer domain" },
2962
- { name: "customDomains", description: "Custom domains" }
2963
- ],
2964
- "hosting-bucket": [
2965
- { name: "name", description: "Bucket name" },
2966
- { name: "arn", description: "Bucket ARN" }
2967
- ],
2968
- "web-app-firewall": [
2969
- { name: "arn", description: "Firewall ARN" },
2970
- { name: "scope", description: "Firewall scope" }
2971
- ],
2972
- "open-search-domain": [
2973
- { name: "domainEndpoint", description: "OpenSearch domain endpoint" },
2974
- { name: "arn", description: "Domain ARN" }
2975
- ],
2976
- "efs-filesystem": [
2977
- { name: "arn", description: "EFS ARN" },
2978
- { name: "id", description: "EFS ID" }
2979
- ],
2980
- "nextjs-web": [{ name: "url", description: "Website URL" }]
2981
- };
2982
-
2983
- // src/api/npm/ts/resources.ts
2984
- var getParamReferenceSymbol2 = Symbol.for("stacktape:getParamReference");
2985
- function createResourceClass(className, resourceType) {
2986
- const ResourceClass = class extends BaseResource {
2987
- static {
2988
- __name(this, "ResourceClass");
2989
- }
2990
- constructor(name, properties, overrides) {
2991
- super(name, resourceType, properties, overrides);
2992
- }
2993
- };
2994
- Object.defineProperty(ResourceClass, "name", { value: className });
2995
- const referenceableParams = REFERENCEABLE_PARAMS[resourceType] || [];
2996
- for (const param of referenceableParams) {
2997
- Object.defineProperty(ResourceClass.prototype, param.name, {
2998
- get() {
2999
- return this[getParamReferenceSymbol2](param.name);
3000
- },
3001
- enumerable: false,
3002
- configurable: true
3003
- });
3004
- }
3005
- return ResourceClass;
3006
- }
3007
- __name(createResourceClass, "createResourceClass");
3008
- var RelationalDatabase = createResourceClass("RelationalDatabase", "relational-database");
3009
- var WebService = createResourceClass("WebService", "web-service");
3010
- var PrivateService = createResourceClass("PrivateService", "private-service");
3011
- var WorkerService = createResourceClass("WorkerService", "worker-service");
3012
- var ContainerWorkload = createResourceClass("ContainerWorkload", "multi-container-workload");
3013
- var LambdaFunction = createResourceClass("LambdaFunction", "function");
3014
- var BatchJob = createResourceClass("BatchJob", "batch-job");
3015
- var Bucket = createResourceClass("Bucket", "bucket");
3016
- var HostingBucket = createResourceClass("HostingBucket", "hosting-bucket");
3017
- var DynamoDbTable = createResourceClass("DynamoDbTable", "dynamo-db-table");
3018
- var EventBus = createResourceClass("EventBus", "event-bus");
3019
- var HttpApiGateway = createResourceClass("HttpApiGateway", "http-api-gateway");
3020
- var ApplicationLoadBalancer = createResourceClass("ApplicationLoadBalancer", "application-load-balancer");
3021
- var NetworkLoadBalancer = createResourceClass("NetworkLoadBalancer", "network-load-balancer");
3022
- var RedisCluster = createResourceClass("RedisCluster", "redis-cluster");
3023
- var MongoDbAtlasCluster = createResourceClass("MongoDbAtlasCluster", "mongo-db-atlas-cluster");
3024
- var StateMachine = createResourceClass("StateMachine", "state-machine");
3025
- var UserAuthPool = createResourceClass("UserAuthPool", "user-auth-pool");
3026
- var UpstashRedis = createResourceClass("UpstashRedis", "upstash-redis");
3027
- var SqsQueue = createResourceClass("SqsQueue", "sqs-queue");
3028
- var SnsTopic = createResourceClass("SnsTopic", "sns-topic");
3029
- var WebAppFirewall = createResourceClass("WebAppFirewall", "web-app-firewall");
3030
- var OpenSearchDomain = createResourceClass("OpenSearchDomain", "open-search-domain");
3031
- var EfsFilesystem = createResourceClass("EfsFilesystem", "efs-filesystem");
3032
- var NextjsWeb = createResourceClass("NextjsWeb", "nextjs-web");
3033
- var Bastion = createResourceClass("Bastion", "bastion");
3034
-
3035
- // src/api/npm/ts/type-properties.ts
3036
- function createTypePropertiesClass(className, typeValue) {
3037
- const TypePropertiesClass = class extends BaseTypeProperties {
3038
- static {
3039
- __name(this, "TypePropertiesClass");
3040
- }
3041
- constructor(properties) {
3042
- super(typeValue, properties);
3043
- }
3044
- };
3045
- Object.defineProperty(TypePropertiesClass, "name", { value: className });
3046
- return TypePropertiesClass;
3047
- }
3048
- __name(createTypePropertiesClass, "createTypePropertiesClass");
3049
- var RdsEnginePostgres = createTypePropertiesClass("RdsEnginePostgres", "postgres");
3050
- var RdsEngineMariadb = createTypePropertiesClass("RdsEngineMariadb", "mariadb");
3051
- var RdsEngineMysql = createTypePropertiesClass("RdsEngineMysql", "mysql");
3052
- var RdsEngineOracleEE = createTypePropertiesClass("RdsEngineOracleEE", "oracle-ee");
3053
- var RdsEngineOracleSE2 = createTypePropertiesClass("RdsEngineOracleSE2", "oracle-se2");
3054
- var RdsEngineSqlServerEE = createTypePropertiesClass("RdsEngineSqlServerEE", "sqlserver-ee");
3055
- var RdsEngineSqlServerEX = createTypePropertiesClass("RdsEngineSqlServerEX", "sqlserver-ex");
3056
- var RdsEngineSqlServerSE = createTypePropertiesClass("RdsEngineSqlServerSE", "sqlserver-se");
3057
- var RdsEngineSqlServerWeb = createTypePropertiesClass("RdsEngineSqlServerWeb", "sqlserver-web");
3058
- var AuroraEnginePostgresql = createTypePropertiesClass("AuroraEnginePostgresql", "aurora-postgresql");
3059
- var AuroraEngineMysql = createTypePropertiesClass("AuroraEngineMysql", "aurora-mysql");
3060
- var AuroraServerlessEnginePostgresql = createTypePropertiesClass(
3061
- "AuroraServerlessEnginePostgresql",
3062
- "aurora-postgresql-serverless"
3063
- );
3064
- var AuroraServerlessEngineMysql = createTypePropertiesClass(
3065
- "AuroraServerlessEngineMysql",
3066
- "aurora-mysql-serverless"
3067
- );
3068
- var AuroraServerlessV2EnginePostgresql = createTypePropertiesClass(
3069
- "AuroraServerlessV2EnginePostgresql",
3070
- "aurora-postgresql-serverless-v2"
3071
- );
3072
- var AuroraServerlessV2EngineMysql = createTypePropertiesClass(
3073
- "AuroraServerlessV2EngineMysql",
3074
- "aurora-mysql-serverless-v2"
3075
- );
3076
- var StacktapeLambdaBuildpackPackaging = createTypePropertiesClass(
3077
- "StacktapeLambdaBuildpackPackaging",
3078
- "stacktape-lambda-buildpack"
3079
- );
3080
- var CustomArtifactLambdaPackaging = createTypePropertiesClass(
3081
- "CustomArtifactLambdaPackaging",
3082
- "custom-artifact"
3083
- );
3084
- var PrebuiltImagePackaging = createTypePropertiesClass("PrebuiltImagePackaging", "prebuilt-image");
3085
- var CustomDockerfilePackaging = createTypePropertiesClass("CustomDockerfilePackaging", "custom-dockerfile");
3086
- var ExternalBuildpackPackaging = createTypePropertiesClass("ExternalBuildpackPackaging", "external-buildpack");
3087
- var NixpacksPackaging = createTypePropertiesClass("NixpacksPackaging", "nixpacks");
3088
- var StacktapeImageBuildpackPackaging = createTypePropertiesClass(
3089
- "StacktapeImageBuildpackPackaging",
3090
- "stacktape-image-buildpack"
3091
- );
3092
- var HttpApiIntegration = createTypePropertiesClass("HttpApiIntegration", "http-api-gateway");
3093
- var S3Integration = createTypePropertiesClass("S3Integration", "s3");
3094
- var ScheduleIntegration = createTypePropertiesClass("ScheduleIntegration", "schedule");
3095
- var SnsIntegration = createTypePropertiesClass("SnsIntegration", "sns");
3096
- var SqsIntegration = createTypePropertiesClass("SqsIntegration", "sqs");
3097
- var KinesisIntegration = createTypePropertiesClass("KinesisIntegration", "kinesis");
3098
- var DynamoDbIntegration = createTypePropertiesClass("DynamoDbIntegration", "dynamodb");
3099
- var CloudwatchLogIntegration = createTypePropertiesClass("CloudwatchLogIntegration", "cloudwatch-logs");
3100
- var ApplicationLoadBalancerIntegration = createTypePropertiesClass(
3101
- "ApplicationLoadBalancerIntegration",
3102
- "application-load-balancer"
3103
- );
3104
- var EventBusIntegration = createTypePropertiesClass("EventBusIntegration", "event-bus");
3105
- var KafkaTopicIntegration = createTypePropertiesClass("KafkaTopicIntegration", "kafka-topic");
3106
- var AlarmIntegration = createTypePropertiesClass("AlarmIntegration", "alarm");
3107
- var CdnLoadBalancerRoute = createTypePropertiesClass("CdnLoadBalancerRoute", "application-load-balancer");
3108
- var CdnHttpApiGatewayRoute = createTypePropertiesClass("CdnHttpApiGatewayRoute", "http-api-gateway");
3109
- var CdnLambdaFunctionRoute = createTypePropertiesClass("CdnLambdaFunctionRoute", "function");
3110
- var CdnCustomDomainRoute = createTypePropertiesClass("CdnCustomDomainRoute", "custom-origin");
3111
- var CdnBucketRoute = createTypePropertiesClass("CdnBucketRoute", "bucket");
3112
- var ManagedRuleGroup = createTypePropertiesClass("ManagedRuleGroup", "managed-rule-group");
3113
- var CustomRuleGroup = createTypePropertiesClass("CustomRuleGroup", "custom-rule-group");
3114
- var RateBasedRule = createTypePropertiesClass("RateBasedRule", "rate-based-rule");
3115
- var SqsQueueEventBusIntegration = createTypePropertiesClass("SqsQueueEventBusIntegration", "event-bus");
3116
- var ContainerWorkloadHttpApiIntegration = createTypePropertiesClass(
3117
- "ContainerWorkloadHttpApiIntegration",
3118
- "http-api-gateway"
3119
- );
3120
- var ContainerWorkloadInternalIntegration = createTypePropertiesClass(
3121
- "ContainerWorkloadInternalIntegration",
3122
- "internal"
3123
- );
3124
- var ContainerWorkloadServiceConnectIntegration = createTypePropertiesClass(
3125
- "ContainerWorkloadServiceConnectIntegration",
3126
- "service-connect"
3127
- );
3128
- var LocalScriptWithCommand = createTypePropertiesClass("LocalScriptWithCommand", "local-script");
3129
- var LocalScriptWithCommands = createTypePropertiesClass("LocalScriptWithCommands", "local-script");
3130
- var LocalScriptWithFileScript = createTypePropertiesClass("LocalScriptWithFileScript", "local-script");
3131
- var LocalScriptWithFileScripts = createTypePropertiesClass("LocalScriptWithFileScripts", "local-script");
3132
- var BastionScriptWithCommand = createTypePropertiesClass("BastionScriptWithCommand", "bastion-script");
3133
- var BastionScriptWithCommands = createTypePropertiesClass("BastionScriptWithCommands", "bastion-script");
3134
- var LocalScriptWithBastionTunnelingCommand = createTypePropertiesClass(
3135
- "LocalScriptWithBastionTunnelingCommand",
3136
- "local-script-with-bastion-tunneling"
3137
- );
3138
- var LocalScriptWithBastionTunnelingCommands = createTypePropertiesClass(
3139
- "LocalScriptWithBastionTunnelingCommands",
3140
- "local-script-with-bastion-tunneling"
3141
- );
3142
- var LocalScriptWithBastionTunnelingFileScript = createTypePropertiesClass(
3143
- "LocalScriptWithBastionTunnelingFileScript",
3144
- "local-script-with-bastion-tunneling"
3145
- );
3146
- var LocalScriptWithBastionTunnelingFileScripts = createTypePropertiesClass(
3147
- "LocalScriptWithBastionTunnelingFileScripts",
3148
- "local-script-with-bastion-tunneling"
3149
- );
3150
- var HttpEndpointLogForwarding = createTypePropertiesClass("HttpEndpointLogForwarding", "http-endpoint");
3151
- var HighlightLogForwarding = createTypePropertiesClass("HighlightLogForwarding", "highlight");
3152
- var DatadogLogForwarding = createTypePropertiesClass("DatadogLogForwarding", "datadog");
3153
- var ExpirationLifecycleRule = createTypePropertiesClass("ExpirationLifecycleRule", "expiration");
3154
- var NonCurrentVersionExpirationLifecycleRule = createTypePropertiesClass(
3155
- "NonCurrentVersionExpirationLifecycleRule",
3156
- "non-current-version-expiration"
3157
- );
3158
- var ContainerEfsMount = createTypePropertiesClass("ContainerEfsMount", "efs");
3159
- var LambdaEfsMount = createTypePropertiesClass("LambdaEfsMount", "efs");
3160
- // Annotate the CommonJS export names for ESM import in node:
3161
- 0 && (module.exports = {
3162
- $CfFormat,
3163
- $CfResourceParam,
3164
- $CfStackOutput,
3165
- $GitInfo,
3166
- $ResourceParam,
3167
- $Secret,
3168
- AWS_SES,
3169
- AlarmIntegration,
3170
- ApplicationLoadBalancer,
3171
- ApplicationLoadBalancerIntegration,
3172
- AuroraEngineMysql,
3173
- AuroraEnginePostgresql,
3174
- AuroraServerlessEngineMysql,
3175
- AuroraServerlessEnginePostgresql,
3176
- AuroraServerlessV2EngineMysql,
3177
- AuroraServerlessV2EnginePostgresql,
3178
- BaseResource,
3179
- BaseTypeProperties,
3180
- Bastion,
3181
- BastionScriptWithCommand,
3182
- BastionScriptWithCommands,
3183
- BatchJob,
3184
- Bucket,
3185
- CdnBucketRoute,
3186
- CdnCustomDomainRoute,
3187
- CdnHttpApiGatewayRoute,
3188
- CdnLambdaFunctionRoute,
3189
- CdnLoadBalancerRoute,
3190
- CloudwatchLogIntegration,
3191
- ContainerEfsMount,
3192
- ContainerWorkload,
3193
- ContainerWorkloadHttpApiIntegration,
3194
- ContainerWorkloadInternalIntegration,
3195
- ContainerWorkloadServiceConnectIntegration,
3196
- CustomArtifactLambdaPackaging,
3197
- CustomDockerfilePackaging,
3198
- CustomRuleGroup,
3199
- DatadogLogForwarding,
3200
- DynamoDbIntegration,
3201
- DynamoDbTable,
3202
- EfsFilesystem,
3203
- EventBus,
3204
- EventBusIntegration,
3205
- ExpirationLifecycleRule,
3206
- ExternalBuildpackPackaging,
3207
- HighlightLogForwarding,
3208
- HostingBucket,
3209
- HttpApiGateway,
3210
- HttpApiIntegration,
3211
- HttpEndpointLogForwarding,
3212
- KafkaTopicIntegration,
3213
- KinesisIntegration,
3214
- LambdaEfsMount,
3215
- LambdaFunction,
3216
- LocalScriptWithBastionTunnelingCommand,
3217
- LocalScriptWithBastionTunnelingCommands,
3218
- LocalScriptWithBastionTunnelingFileScript,
3219
- LocalScriptWithBastionTunnelingFileScripts,
3220
- LocalScriptWithCommand,
3221
- LocalScriptWithCommands,
3222
- LocalScriptWithFileScript,
3223
- LocalScriptWithFileScripts,
3224
- ManagedRuleGroup,
3225
- MongoDbAtlasCluster,
3226
- NetworkLoadBalancer,
3227
- NextjsWeb,
3228
- NixpacksPackaging,
3229
- NonCurrentVersionExpirationLifecycleRule,
3230
- OpenSearchDomain,
3231
- PrebuiltImagePackaging,
3232
- PrivateService,
3233
- RateBasedRule,
3234
- RdsEngineMariadb,
3235
- RdsEngineMysql,
3236
- RdsEngineOracleEE,
3237
- RdsEngineOracleSE2,
3238
- RdsEnginePostgres,
3239
- RdsEngineSqlServerEE,
3240
- RdsEngineSqlServerEX,
3241
- RdsEngineSqlServerSE,
3242
- RdsEngineSqlServerWeb,
3243
- RedisCluster,
3244
- RelationalDatabase,
3245
- ResourceParamReference,
3246
- S3Integration,
3247
- ScheduleIntegration,
3248
- SnsIntegration,
3249
- SnsTopic,
3250
- SqsIntegration,
3251
- SqsQueue,
3252
- SqsQueueEventBusIntegration,
3253
- StacktapeImageBuildpackPackaging,
3254
- StacktapeLambdaBuildpackPackaging,
3255
- StateMachine,
3256
- UpstashRedis,
3257
- UserAuthPool,
3258
- WebAppFirewall,
3259
- WebService,
3260
- WorkerService,
3261
- defineConfig,
3262
- transformConfigWithResources,
3263
- transformValue
3264
- });
3265
- //# sourceMappingURL=index.js.map