@stacksjs/ts-cloud 0.2.16 → 0.2.17

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.
Files changed (2) hide show
  1. package/dist/bin/cli.js +1 -1
  2. package/package.json +3 -3
package/dist/bin/cli.js CHANGED
@@ -7215,7 +7215,7 @@ Run \`${this.name??"cli"} --help\` for usage.`;r1.stderr.write(`${U}${Z}${W}
7215
7215
  `).length-1;this.output.write(h1.move(-999,$*-1))}render(){let $=BJ(this._render(this)??"",KJ.stdout.columns,{hard:!0,trim:!1});if($===this._prevFrame)return;if(this.state==="initial")this.output.write(h1.hide);else{let J=ZW(this._prevFrame,$);if(this.restoreCursor(),J&&J?.length===1){let Y=J[0];this.output.write(h1.move(0,Y)),this.output.write(o9.lines(1));let Q=$.split(`
7216
7216
  `);this.output.write(Q[Y]),this._prevFrame=$,this.output.write(h1.move(0,Q.length-Y-1));return}if(J&&J?.length>1){let Y=J[0];this.output.write(h1.move(0,Y)),this.output.write(o9.down());let Z=$.split(`
7217
7217
  `).slice(Y);this.output.write(Z.join(`
7218
- `)),this._prevFrame=$;return}this.output.write(o9.down())}if(this.output.write($),this.state==="initial")this.state="active";this._prevFrame=$}}function FW($,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 AW($,J){return(J.label??String(J.value)).toLowerCase().includes($.toLowerCase())}function KW($,J){if(!J)return;if($)return J;return J[0]}class BW extends Z8{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#$=0;#Y="";#Q;#J;get cursor(){return this.#$}get userInputWithCursor(){if(!this.userInput)return T$.inverse(T$.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`${$}${T$.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??AW;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((U)=>U.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.#U(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=KW(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=[$]}#U($){if($!==this.#Y){this.#Y=$;let J=this.options;if($)this.filteredOptions=J.filter((Y)=>this.#Q($,Y));else this.filteredOptions=[...J];if(this.#$=FW(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 jW extends Z8{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 XW=MU();var j0=($,J)=>XW?$:J,Vj=j0("◆","*"),Lj=j0("■","x"),Mj=j0("▲","x"),Tj=j0("◇","o"),Rj=j0("┌","T"),OW=j0("│","|"),Dj=j0("└","—"),Nj=j0("●",">"),Sj=j0("○"," "),Pj=j0("◻","[•]"),xj=j0("◼","[+]"),Cj=j0("◻","[ ]"),Ij=j0("▪","•"),kj=j0("─","-"),hj=j0("╮","+"),bj=j0("├","+"),yj=j0("╯","+"),vj=j0("●","•"),fj=j0("◆","*"),gj=j0("▲","!"),uj=j0("■","x");var dj={light:j0("─","-"),heavy:j0("━","="),block:j0("█","#")};function _W(){return`${T$.gray(OW)} `}var mj=_W();var U8="0.2.16";import{existsSync as K8}from"node:fs";import{mkdir as NW,writeFile as hJ}from"node:fs/promises";var Y0={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 A2($,J){return`${Y0[J]}${$}${Y0.reset}`}function C($){console.log(`${Y0.green}✓${Y0.reset} ${$}`)}function R($){console.error(`${Y0.red}✗${Y0.reset} ${$}`)}function g($){console.warn(`${Y0.yellow}⚠${Y0.reset} ${$}`)}var L1=g;function F($){console.log(`${Y0.blue}ℹ${Y0.reset} ${$}`)}function i($){console.log(`${Y0.cyan}→${Y0.reset} ${$}`)}function V($){console.log(`
7218
+ `)),this._prevFrame=$;return}this.output.write(o9.down())}if(this.output.write($),this.state==="initial")this.state="active";this._prevFrame=$}}function FW($,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 AW($,J){return(J.label??String(J.value)).toLowerCase().includes($.toLowerCase())}function KW($,J){if(!J)return;if($)return J;return J[0]}class BW extends Z8{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#$=0;#Y="";#Q;#J;get cursor(){return this.#$}get userInputWithCursor(){if(!this.userInput)return T$.inverse(T$.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`${$}${T$.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??AW;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((U)=>U.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.#U(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=KW(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=[$]}#U($){if($!==this.#Y){this.#Y=$;let J=this.options;if($)this.filteredOptions=J.filter((Y)=>this.#Q($,Y));else this.filteredOptions=[...J];if(this.#$=FW(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 jW extends Z8{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 XW=MU();var j0=($,J)=>XW?$:J,Vj=j0("◆","*"),Lj=j0("■","x"),Mj=j0("▲","x"),Tj=j0("◇","o"),Rj=j0("┌","T"),OW=j0("│","|"),Dj=j0("└","—"),Nj=j0("●",">"),Sj=j0("○"," "),Pj=j0("◻","[•]"),xj=j0("◼","[+]"),Cj=j0("◻","[ ]"),Ij=j0("▪","•"),kj=j0("─","-"),hj=j0("╮","+"),bj=j0("├","+"),yj=j0("╯","+"),vj=j0("●","•"),fj=j0("◆","*"),gj=j0("▲","!"),uj=j0("■","x");var dj={light:j0("─","-"),heavy:j0("━","="),block:j0("█","#")};function _W(){return`${T$.gray(OW)} `}var mj=_W();var U8="0.2.17";import{existsSync as K8}from"node:fs";import{mkdir as NW,writeFile as hJ}from"node:fs/promises";var Y0={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 A2($,J){return`${Y0[J]}${$}${Y0.reset}`}function C($){console.log(`${Y0.green}✓${Y0.reset} ${$}`)}function R($){console.error(`${Y0.red}✗${Y0.reset} ${$}`)}function g($){console.warn(`${Y0.yellow}⚠${Y0.reset} ${$}`)}var L1=g;function F($){console.log(`${Y0.blue}ℹ${Y0.reset} ${$}`)}function i($){console.log(`${Y0.cyan}→${Y0.reset} ${$}`)}function V($){console.log(`
7219
7219
  ${Y0.bright}${Y0.cyan}${$}${Y0.reset}
7220
7220
  `)}var F8=!!(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=$,F8&&this.interval)console.log(` ${$}`)}start(){if(F8){console.log(` ${this.message}`),this.interval=!0;return}this.interval=setInterval(()=>{process.stdout.write(`\r${Y0.cyan}${this.frames[this.currentFrame]}${Y0.reset} ${this.message}`),this.currentFrame=(this.currentFrame+1)%this.frames.length},80)}succeed($){this.stop(),C($||this.message)}fail($){this.stop(),R($||this.message)}warn($){this.stop(),L1($||this.message)}stop(){if(this.interval){if(!F8)process.stdout.write("\r");if(typeof this.interval==="object")clearInterval(this.interval);this.interval=null}}}async function A0($,J){let Q=(await import("node:readline")).createInterface({input:process.stdin,output:process.stdout});return new Promise((Z)=>{let U=J?`${Y0.cyan}?${Y0.reset} ${$} ${Y0.gray}(${J})${Y0.reset}: `:`${Y0.cyan}?${Y0.reset} ${$}: `;Q.question(U,(W)=>{Q.close(),Z(W||J||"")})})}async function y($,J=!1){let Y=await A0(`${$} (y/n)`,J?"y":"n");return Y.toLowerCase()==="y"||Y.toLowerCase()==="yes"}async function A8($,J){console.log(`${Y0.cyan}?${Y0.reset} ${$}`),J.forEach((Z,U)=>{console.log(` ${Y0.gray}${U+1}.${Y0.reset} ${Z}`)});let Y=await A0("Select","1"),Q=Number.parseInt(Y)-1;if(Q>=0&&Q<J.length)return J[Q];return J[0]}function d($,J){let Y=$.map((Z,U)=>{let W=Math.max(...J.map((z)=>(z[U]||"").length));return Math.max(Z.length,W)}),Q=$.map((Z,U)=>Z.padEnd(Y[U])).join(" ");console.log(A2(Q,"bright")),console.log(A2("─".repeat(Q.length),"gray")),J.forEach((Z)=>{let U=Z.map((W,z)=>(W||"").padEnd(Y[z])).join(" ");console.log(U)})}function M2($,J="cyan"){let Y=$.split(`
7221
7221
  `),Q=Math.max(...Y.map((U)=>U.length)),Z="─".repeat(Q+2);console.log(A2(`┌${Z}┐`,J)),Y.forEach((U)=>{console.log(A2(`│ ${U.padEnd(Q)} │`,J))}),console.log(A2(`└${Z}┘`,J))}async function xJ(){return!0}async function CJ(){try{let{AWSClient:$}=await Promise.resolve().then(() => (z0(),F2));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 IJ(){try{let{AWSClient:$}=await Promise.resolve().then(() => (z0(),F2)),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 kJ(){try{let{AWSClient:$}=await Promise.resolve().then(() => (z0(),F2)),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((U)=>U.regionName))}return Q.length>0?Q:PJ()}catch{return PJ()}}function PJ(){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 B8($){$.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(V("Initializing ts-cloud Project"),K8("cloud.config.ts")){if(!await y("cloud.config.ts already exists. Overwrite?",!1)){F("Initialization cancelled");return}}let Y=J?.name||await A0("Project name","my-app"),Q=J?.mode||await A8("Select deployment mode",["serverless","server","hybrid"]),Z=J?.region||await A8("Select AWS region",["us-east-1","us-west-2","eu-west-1","eu-central-1","ap-southeast-1"]),U=new L("Creating configuration file...");U.start();let W=`import { defineConfig } from '@ts-cloud/core'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/ts-cloud",
3
3
  "type": "module",
4
- "version": "0.2.16",
4
+ "version": "0.2.17",
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",
@@ -89,8 +89,8 @@
89
89
  "test": "bun test"
90
90
  },
91
91
  "dependencies": {
92
- "@ts-cloud/aws-types": "0.2.16",
93
- "@ts-cloud/core": "0.2.16",
92
+ "@ts-cloud/aws-types": "0.2.17",
93
+ "@ts-cloud/core": "0.2.17",
94
94
  "@stacksjs/ts-xml": "^0.1.0"
95
95
  },
96
96
  "devDependencies": {