@stacksjs/ts-cloud 0.2.8 → 0.2.9

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/dist/bin/cli.js CHANGED
@@ -360,7 +360,7 @@ Run \`${this.name??"cli"} --help\` for usage.`;Q1.stderr.write(`${W}${Z}${G}
360
360
  `).length-1;this.output.write(t0.move(-999,$*-1))}render(){let $=K9(this._render(this)??"",B9.stdout.columns,{hard:!0,trim:!1});if($===this._prevFrame)return;if(this.state==="initial")this.output.write(t0.hide);else{let J=a7(this._prevFrame,$);if(this.restoreCursor(),J&&J?.length===1){let Y=J[0];this.output.write(t0.move(0,Y)),this.output.write(Y$.lines(1));let Q=$.split(`
361
361
  `);this.output.write(Q[Y]),this._prevFrame=$,this.output.write(t0.move(0,Q.length-Y-1));return}if(J&&J?.length>1){let Y=J[0];this.output.write(t0.move(0,Y)),this.output.write(Y$.down());let Z=$.split(`
362
362
  `).slice(Y);this.output.write(Z.join(`
363
- `)),this._prevFrame=$;return}this.output.write(Y$.down())}if(this.output.write($),this.state==="initial")this.state="active";this._prevFrame=$}}function e7($,J){if($===void 0)return 0;if(J.length===0)return 0;let Q=J.findIndex((Z)=>Z.value===$);return Q!==-1?Q:0}function $J($,J){return(J.label??String(J.value)).toLowerCase().includes($.toLowerCase())}function JJ($,J){if(!J)return;if($)return J;return J[0]}class YJ extends z${filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#$=0;#Y="";#Q;#J;get cursor(){return this.#$}get userInputWithCursor(){if(!this.userInput)return B2.inverse(B2.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let $=this.userInput.slice(0,this._cursor),[J,...Y]=this.userInput.slice(this._cursor);return`${$}${B2.inverse(J)}${Y.join("")}`}get options(){if(typeof this.#J==="function")return this.#J();return this.#J}constructor($){super($);this.#J=$.options;let J=this.options;this.filteredOptions=[...J],this.multiple=$.multiple===!0,this.#Q=$.filter??$J;let Y;if($.initialValue&&Array.isArray($.initialValue))if(this.multiple)Y=$.initialValue;else Y=$.initialValue.slice(0,1);else if(!this.multiple&&this.options.length>0)Y=[this.options[0].value];if(Y)for(let Q of Y){let Z=J.findIndex((W)=>W.value===Q);if(Z!==-1)this.toggleSelected(Q),this.#$=Z}this.focusedValue=this.options[this.#$]?.value,this.on("key",(Q,Z)=>this.#Z(Q,Z)),this.on("userInput",(Q)=>this.#W(Q))}_isActionKey($,J){return $==="\t"||this.multiple&&this.isNavigating&&J.name==="space"&&$!==void 0&&$!==""}#Z($,J){let Y=J.name==="up",Q=J.name==="down",Z=J.name==="return";if(Y||Q){if(this.#$=Math.max(0,Math.min(this.#$+(Y?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#$]?.value,!this.multiple)this.selectedValues=[this.focusedValue];this.isNavigating=!0}else if(Z)this.value=JJ(this.multiple,this.selectedValues);else if(this.multiple)if(this.focusedValue!==void 0&&(J.name==="tab"||this.isNavigating&&J.name==="space"))this.toggleSelected(this.focusedValue);else this.isNavigating=!1;else{if(this.focusedValue)this.selectedValues=[this.focusedValue];this.isNavigating=!1}}deselectAll(){this.selectedValues=[]}toggleSelected($){if(this.filteredOptions.length===0)return;if(this.multiple)if(this.selectedValues.includes($))this.selectedValues=this.selectedValues.filter((J)=>J!==$);else this.selectedValues=[...this.selectedValues,$];else this.selectedValues=[$]}#W($){if($!==this.#Y){this.#Y=$;let J=this.options;if($)this.filteredOptions=J.filter((Y)=>this.#Q($,Y));else this.filteredOptions=[...J];if(this.#$=e7(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#$]?.value,!this.multiple)if(this.focusedValue!==void 0)this.toggleSelected(this.focusedValue);else this.deselectAll()}}}class QJ extends z${options;cursor=0;#$;getGroupItems($){return this.options.filter((J)=>J.group===$)}isGroupSelected($){let J=this.getGroupItems($),Y=this.value;if(Y===void 0)return!1;return J.every((Q)=>Y.includes(Q.value))}toggleValue(){let $=this.options[this.cursor];if(this.value===void 0)this.value=[];if($.group===!0){let J=$.value,Y=this.getGroupItems(J);if(this.isGroupSelected(J))this.value=this.value.filter((Q)=>Y.findIndex((Z)=>Z.value===Q)===-1);else this.value=[...this.value,...Y.map((Q)=>Q.value)];this.value=Array.from(new Set(this.value))}else{let J=this.value.includes($.value);this.value=J?this.value.filter((Y)=>Y!==$.value):[...this.value,$.value]}}constructor($){super($,!1);let{options:J}=$;this.#$=$.selectableGroups!==!1,this.options=Object.entries(J).flatMap(([Y,Q])=>[{value:Y,group:!0,label:Y},...Q.map((Z)=>({...Z,group:Y}))]),this.value=[...$.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:Y})=>Y===$.cursorAt),this.#$?0:1),this.on("cursor",(Y)=>{switch(Y){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let Q=this.options[this.cursor]?.group===!0;if(!this.#$&&Q)this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;let Q=this.options[this.cursor]?.group===!0;if(!this.#$&&Q)this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}case"space":this.toggleValue();break}})}}var ZJ=K7();var U0=($,J)=>ZJ?$:J,VQ=U0("◆","*"),XQ=U0("■","x"),_Q=U0("▲","x"),qQ=U0("◇","o"),LQ=U0("┌","T"),WJ=U0("│","|"),MQ=U0("└","—"),wQ=U0("●",">"),TQ=U0("○"," "),DQ=U0("◻","[•]"),NQ=U0("◼","[+]"),RQ=U0("◻","[ ]"),SQ=U0("▪","•"),PQ=U0("─","-"),xQ=U0("╮","+"),CQ=U0("├","+"),hQ=U0("╯","+"),IQ=U0("●","•"),kQ=U0("◆","*"),bQ=U0("▲","!"),yQ=U0("■","x");var vQ={light:U0("─","-"),heavy:U0("━","="),block:U0("█","#")};function GJ(){return`${B2.gray(WJ)} `}var fQ=GJ();var F$="0.2.8";import{existsSync as j$}from"node:fs";import{mkdir as EJ,writeFile as I9}from"node:fs/promises";var e={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m"};function q1($,J){return`${e[J]}${$}${e.reset}`}function P($){console.log(`${e.green}✓${e.reset} ${$}`)}function M($){console.error(`${e.red}✗${e.reset} ${$}`)}function y($){console.warn(`${e.yellow}⚠${e.reset} ${$}`)}var d0=y;function z($){console.log(`${e.blue}ℹ${e.reset} ${$}`)}function t($){console.log(`${e.cyan}→${e.reset} ${$}`)}function q($){console.log(`
363
+ `)),this._prevFrame=$;return}this.output.write(Y$.down())}if(this.output.write($),this.state==="initial")this.state="active";this._prevFrame=$}}function e7($,J){if($===void 0)return 0;if(J.length===0)return 0;let Q=J.findIndex((Z)=>Z.value===$);return Q!==-1?Q:0}function $J($,J){return(J.label??String(J.value)).toLowerCase().includes($.toLowerCase())}function JJ($,J){if(!J)return;if($)return J;return J[0]}class YJ extends z${filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#$=0;#Y="";#Q;#J;get cursor(){return this.#$}get userInputWithCursor(){if(!this.userInput)return B2.inverse(B2.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let $=this.userInput.slice(0,this._cursor),[J,...Y]=this.userInput.slice(this._cursor);return`${$}${B2.inverse(J)}${Y.join("")}`}get options(){if(typeof this.#J==="function")return this.#J();return this.#J}constructor($){super($);this.#J=$.options;let J=this.options;this.filteredOptions=[...J],this.multiple=$.multiple===!0,this.#Q=$.filter??$J;let Y;if($.initialValue&&Array.isArray($.initialValue))if(this.multiple)Y=$.initialValue;else Y=$.initialValue.slice(0,1);else if(!this.multiple&&this.options.length>0)Y=[this.options[0].value];if(Y)for(let Q of Y){let Z=J.findIndex((W)=>W.value===Q);if(Z!==-1)this.toggleSelected(Q),this.#$=Z}this.focusedValue=this.options[this.#$]?.value,this.on("key",(Q,Z)=>this.#Z(Q,Z)),this.on("userInput",(Q)=>this.#W(Q))}_isActionKey($,J){return $==="\t"||this.multiple&&this.isNavigating&&J.name==="space"&&$!==void 0&&$!==""}#Z($,J){let Y=J.name==="up",Q=J.name==="down",Z=J.name==="return";if(Y||Q){if(this.#$=Math.max(0,Math.min(this.#$+(Y?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#$]?.value,!this.multiple)this.selectedValues=[this.focusedValue];this.isNavigating=!0}else if(Z)this.value=JJ(this.multiple,this.selectedValues);else if(this.multiple)if(this.focusedValue!==void 0&&(J.name==="tab"||this.isNavigating&&J.name==="space"))this.toggleSelected(this.focusedValue);else this.isNavigating=!1;else{if(this.focusedValue)this.selectedValues=[this.focusedValue];this.isNavigating=!1}}deselectAll(){this.selectedValues=[]}toggleSelected($){if(this.filteredOptions.length===0)return;if(this.multiple)if(this.selectedValues.includes($))this.selectedValues=this.selectedValues.filter((J)=>J!==$);else this.selectedValues=[...this.selectedValues,$];else this.selectedValues=[$]}#W($){if($!==this.#Y){this.#Y=$;let J=this.options;if($)this.filteredOptions=J.filter((Y)=>this.#Q($,Y));else this.filteredOptions=[...J];if(this.#$=e7(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#$]?.value,!this.multiple)if(this.focusedValue!==void 0)this.toggleSelected(this.focusedValue);else this.deselectAll()}}}class QJ extends z${options;cursor=0;#$;getGroupItems($){return this.options.filter((J)=>J.group===$)}isGroupSelected($){let J=this.getGroupItems($),Y=this.value;if(Y===void 0)return!1;return J.every((Q)=>Y.includes(Q.value))}toggleValue(){let $=this.options[this.cursor];if(this.value===void 0)this.value=[];if($.group===!0){let J=$.value,Y=this.getGroupItems(J);if(this.isGroupSelected(J))this.value=this.value.filter((Q)=>Y.findIndex((Z)=>Z.value===Q)===-1);else this.value=[...this.value,...Y.map((Q)=>Q.value)];this.value=Array.from(new Set(this.value))}else{let J=this.value.includes($.value);this.value=J?this.value.filter((Y)=>Y!==$.value):[...this.value,$.value]}}constructor($){super($,!1);let{options:J}=$;this.#$=$.selectableGroups!==!1,this.options=Object.entries(J).flatMap(([Y,Q])=>[{value:Y,group:!0,label:Y},...Q.map((Z)=>({...Z,group:Y}))]),this.value=[...$.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:Y})=>Y===$.cursorAt),this.#$?0:1),this.on("cursor",(Y)=>{switch(Y){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let Q=this.options[this.cursor]?.group===!0;if(!this.#$&&Q)this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;let Q=this.options[this.cursor]?.group===!0;if(!this.#$&&Q)this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}case"space":this.toggleValue();break}})}}var ZJ=K7();var U0=($,J)=>ZJ?$:J,VQ=U0("◆","*"),XQ=U0("■","x"),_Q=U0("▲","x"),qQ=U0("◇","o"),LQ=U0("┌","T"),WJ=U0("│","|"),MQ=U0("└","—"),wQ=U0("●",">"),TQ=U0("○"," "),DQ=U0("◻","[•]"),NQ=U0("◼","[+]"),RQ=U0("◻","[ ]"),SQ=U0("▪","•"),PQ=U0("─","-"),xQ=U0("╮","+"),CQ=U0("├","+"),hQ=U0("╯","+"),IQ=U0("●","•"),kQ=U0("◆","*"),bQ=U0("▲","!"),yQ=U0("■","x");var vQ={light:U0("─","-"),heavy:U0("━","="),block:U0("█","#")};function GJ(){return`${B2.gray(WJ)} `}var fQ=GJ();var F$="0.2.9";import{existsSync as j$}from"node:fs";import{mkdir as EJ,writeFile as I9}from"node:fs/promises";var e={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m"};function q1($,J){return`${e[J]}${$}${e.reset}`}function P($){console.log(`${e.green}✓${e.reset} ${$}`)}function M($){console.error(`${e.red}✗${e.reset} ${$}`)}function y($){console.warn(`${e.yellow}⚠${e.reset} ${$}`)}var d0=y;function z($){console.log(`${e.blue}ℹ${e.reset} ${$}`)}function t($){console.log(`${e.cyan}→${e.reset} ${$}`)}function q($){console.log(`
364
364
  ${e.bright}${e.cyan}${$}${e.reset}
365
365
  `)}var A$=!!(process.env.CI||process.env.GITHUB_ACTIONS||process.env.BUILDKITE||process.env.CIRCLECI||process.env.GITLAB_CI);class L{frames=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"];interval=null;currentFrame=0;message;constructor($){this.message=$}get text(){return this.message}set text($){if(this.message=$,A$&&this.interval)console.log(` ${$}`)}start(){if(A$){console.log(` ${this.message}`),this.interval=!0;return}this.interval=setInterval(()=>{process.stdout.write(`\r${e.cyan}${this.frames[this.currentFrame]}${e.reset} ${this.message}`),this.currentFrame=(this.currentFrame+1)%this.frames.length},80)}succeed($){this.stop(),P($||this.message)}fail($){this.stop(),M($||this.message)}warn($){this.stop(),d0($||this.message)}stop(){if(this.interval){if(!A$)process.stdout.write("\r");if(typeof this.interval==="object")clearInterval(this.interval);this.interval=null}}}async function G0($,J){let Q=(await import("node:readline")).createInterface({input:process.stdin,output:process.stdout});return new Promise((Z)=>{let W=J?`${e.cyan}?${e.reset} ${$} ${e.gray}(${J})${e.reset}: `:`${e.cyan}?${e.reset} ${$}: `;Q.question(W,(G)=>{Q.close(),Z(G||J||"")})})}async function h($,J=!1){let Y=await G0(`${$} (y/n)`,J?"y":"n");return Y.toLowerCase()==="y"||Y.toLowerCase()==="yes"}async function O$($,J){console.log(`${e.cyan}?${e.reset} ${$}`),J.forEach((Z,W)=>{console.log(` ${e.gray}${W+1}.${e.reset} ${Z}`)});let Y=await G0("Select","1"),Q=Number.parseInt(Y)-1;if(Q>=0&&Q<J.length)return J[Q];return J[0]}function g($,J){let Y=$.map((Z,W)=>{let G=Math.max(...J.map((U)=>(U[W]||"").length));return Math.max(Z.length,G)}),Q=$.map((Z,W)=>Z.padEnd(Y[W])).join(" ");console.log(q1(Q,"bright")),console.log(q1("─".repeat(Q.length),"gray")),J.forEach((Z)=>{let W=Z.map((G,U)=>(G||"").padEnd(Y[U])).join(" ");console.log(W)})}function x1($,J="cyan"){let Y=$.split(`
366
366
  `),Q=Math.max(...Y.map((W)=>W.length)),Z="─".repeat(Q+2);console.log(q1(`┌${Z}┐`,J)),Y.forEach((W)=>{console.log(q1(`│ ${W.padEnd(Q)} │`,J))}),console.log(q1(`└${Z}┘`,J))}async function P9(){return!0}async function x9(){try{let{AWSClient:$}=await Promise.resolve().then(() => (Z0(),_1));return await new $().request({service:"sts",region:"us-east-1",method:"POST",path:"/",body:new URLSearchParams({Action:"GetCallerIdentity",Version:"2011-06-15"}).toString()}),!0}catch{return!1}}async function C9(){try{let{AWSClient:$}=await Promise.resolve().then(() => (Z0(),_1)),Y=await new $().request({service:"sts",region:"us-east-1",method:"POST",path:"/",body:new URLSearchParams({Action:"GetCallerIdentity",Version:"2011-06-15"}).toString()});return Y.Account||Y.GetCallerIdentityResult?.Account||null}catch{return null}}async function h9(){try{let{AWSClient:$}=await Promise.resolve().then(() => (Z0(),_1)),Y=await new $().request({service:"ec2",region:"us-east-1",method:"POST",path:"/",body:new URLSearchParams({Action:"DescribeRegions",Version:"2016-11-15"}).toString()}),Q=[];if(Y.regionInfo){let Z=Array.isArray(Y.regionInfo)?Y.regionInfo:[Y.regionInfo];Q.push(...Z.map((W)=>W.regionName))}return Q.length>0?Q:S9()}catch{return S9()}}function S9(){return["us-east-1","us-east-2","us-west-1","us-west-2","eu-west-1","eu-central-1","ap-southeast-1","ap-northeast-1"]}function E$($){$.command("init","Initialize a new ts-cloud project").option("--mode <mode>","Deployment mode: server, serverless, or hybrid").option("--name <name>","Project name").option("--region <region>","AWS Region").action(async(J)=>{if(q("Initializing ts-cloud Project"),j$("cloud.config.ts")){if(!await h("cloud.config.ts already exists. Overwrite?",!1)){z("Initialization cancelled");return}}let Y=J?.name||await G0("Project name","my-app"),Q=J?.mode||await O$("Select deployment mode",["serverless","server","hybrid"]),Z=J?.region||await O$("Select AWS region",["us-east-1","us-west-2","eu-west-1","eu-central-1","ap-southeast-1"]),W=new L("Creating configuration file...");W.start();let G=`import { defineConfig } from '@ts-cloud/core'
@@ -4,3 +4,4 @@
4
4
  */
5
5
  export * from './static-site';
6
6
  export * from './static-site-external-dns';
7
+ export * from './static-site-helper';
@@ -0,0 +1,91 @@
1
+ /**
2
+ * High-level static site deployer with smart defaults.
3
+ *
4
+ * Most callers don't need the full surface of
5
+ * `deployStaticSiteWithExternalDnsFull` — they want to point a build
6
+ * directory at a domain and let the helper sort out:
7
+ * - Porkbun DNS (default for non-Route53 setups)
8
+ * - Non-SPA error handling (so /favicon.ico, /robots.txt, etc. don't
9
+ * masquerade as the homepage)
10
+ * - AWS env-var validation up front
11
+ * - Sensible cache-control headers
12
+ *
13
+ * `deploySite` is the one-call entrypoint; the lower-level
14
+ * `deployStaticSiteWithExternalDnsFull` and `deployStaticSiteFull`
15
+ * remain available for callers that need the full surface.
16
+ */
17
+ export type StaticSiteDnsProvider = 'porkbun' | 'godaddy' | {
18
+ provider: 'porkbun';
19
+ apiKey?: string;
20
+ secretKey?: string;
21
+ } | {
22
+ provider: 'godaddy';
23
+ apiKey?: string;
24
+ secretKey?: string;
25
+ environment?: 'production' | 'ote';
26
+ };
27
+ export interface DeploySiteConfig {
28
+ /** Site name used for AWS resource naming. */
29
+ siteName: string;
30
+ /** Apex or subdomain (e.g. "paweldregan.com"). */
31
+ domain: string;
32
+ /** AWS region for the S3 bucket. Defaults to "us-east-1". */
33
+ region?: string;
34
+ /** Output directory containing built files. Defaults to "dist". */
35
+ sourceDir?: string;
36
+ /** S3 bucket name (auto-generated from the domain if omitted). */
37
+ bucket?: string;
38
+ /** CloudFormation stack name (auto-generated if omitted). */
39
+ stackName?: string;
40
+ /** Default root object served at "/". Defaults to "index.html". */
41
+ defaultRootObject?: string;
42
+ /** Error document served on 403/404. Defaults to "404.html". */
43
+ errorDocument?: string;
44
+ /**
45
+ * DNS provider config. Defaults to Porkbun, reading PORKBUN_API_KEY /
46
+ * PORKBUN_SECRET_KEY from env. Pass `'godaddy'` or a full provider
47
+ * object to override.
48
+ */
49
+ dnsProvider?: StaticSiteDnsProvider;
50
+ /** Pre-issued ACM cert ARN. Auto-created when omitted. */
51
+ certificateArn?: string;
52
+ /**
53
+ * Cache-Control header for uploaded objects. Defaults to short-TTL
54
+ * (one hour) so HTML edits propagate quickly; long-lived assets can
55
+ * still set their own Cache-Control via S3 object metadata if needed.
56
+ */
57
+ cacheControl?: string;
58
+ /**
59
+ * SPA mode. Defaults to false. With false, missing files return a
60
+ * real 404 with the error document. With true, missing files fall
61
+ * through to the index document with a 200 — required for
62
+ * client-side-routed SPAs but wrong for multi-page static sites.
63
+ */
64
+ singlePageApp?: boolean;
65
+ /** Empty the bucket before uploading (default: false). */
66
+ cleanBucket?: boolean;
67
+ /** AWS resource tags. */
68
+ tags?: Record<string, string>;
69
+ /** Progress callback. */
70
+ onProgress?: (stage: string, detail?: string) => void;
71
+ }
72
+ export interface DeploySiteResult {
73
+ success: boolean;
74
+ domain?: string;
75
+ url?: string;
76
+ bucket?: string;
77
+ distributionId?: string;
78
+ distributionDomain?: string;
79
+ certificateArn?: string;
80
+ filesUploaded?: number;
81
+ filesSkipped?: number;
82
+ message?: string;
83
+ durationMs: number;
84
+ }
85
+ /**
86
+ * Deploy a static site to AWS (S3 + CloudFront + ACM) with DNS managed
87
+ * via Porkbun (or another supported external provider). Validates AWS +
88
+ * DNS-provider credentials up front, fills in opinionated defaults, and
89
+ * routes to the underlying CloudFormation flow.
90
+ */
91
+ export declare function deploySite(config: DeploySiteConfig): Promise<DeploySiteResult>;
package/dist/index.js CHANGED
@@ -75341,6 +75341,8 @@ class AcmeClient {
75341
75341
  init_static_site();
75342
75342
  init_static_site_external_dns();
75343
75343
 
75344
+ // src/deploy/static-site-helper.ts
75345
+ init_static_site_external_dns();
75344
75346
  // src/index.ts
75345
75347
  init_dns();
75346
75348
  export {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/ts-cloud",
3
3
  "type": "module",
4
- "version": "0.2.8",
4
+ "version": "0.2.9",
5
5
  "description": "A lightweight, performant infrastructure-as-code library and CLI for deploying both server-based (EC2) and serverless applications.",
6
6
  "author": "Chris Breuer <chris@stacksjs.com>",
7
7
  "license": "MIT",
@@ -85,8 +85,8 @@
85
85
  "test": "bun test"
86
86
  },
87
87
  "dependencies": {
88
- "@ts-cloud/aws-types": "0.2.8",
89
- "@ts-cloud/core": "0.2.8",
88
+ "@ts-cloud/aws-types": "0.2.9",
89
+ "@ts-cloud/core": "0.2.9",
90
90
  "@stacksjs/ts-xml": "^0.1.0"
91
91
  },
92
92
  "devDependencies": {