feat: loadbalancer frontend (#136)

This commit is contained in:
Julian Sommer
2026-04-14 09:24:14 +10:00
committed by GitHub
parent e75953f5e2
commit 0547bdd1fe
176 changed files with 7748 additions and 181 deletions
+2 -1
View File
@@ -41,7 +41,8 @@ ProtectControlGroups=yes
ProtectProc=invisible
SystemCallArchitectures=native
MemoryDenyWriteExecute=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK
# AF_PACKET is required by dhcpcd (raw L2 BOOTP before the iface has an IP).
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK AF_PACKET
ProtectHostname=yes
KeyringMode=private
RemoveIPC=yes
+8
View File
@@ -25,6 +25,7 @@ import (
"encoding/json"
"fmt"
"io"
"maps"
"net"
"net/http"
"os"
@@ -441,6 +442,13 @@ func runimagesImportCmd(cmd *cobra.Command, args []string) {
manifest.AMIMetadata.ImageOwnerAlias = "system"
manifest.AMIMetadata.VolumeSizeGiB = utils.SafeInt64ToUint64(imageStat.Size() / 1024 / 1024 / 1024)
// Copy catalog-provided tags (e.g. spinifex:managed-by for system AMIs)
// onto the imported AMI so the UI can filter them out.
if len(image.Tags) > 0 {
manifest.AMIMetadata.Tags = make(map[string]string, len(image.Tags))
maps.Copy(manifest.AMIMetadata.Tags, image.Tags)
}
// Volume Data
manifest.VolumeMetadata.VolumeID = volumeId // TODO: Confirm if unique, e.g vol-, if ami- used
manifest.VolumeMetadata.VolumeName = manifest.AMIMetadata.Name
+66
View File
@@ -0,0 +1,66 @@
# Spinifex Tag Conventions
Spinifex uses a small set of reserved tag keys to mark resources that are
owned and managed by the platform itself (as opposed to resources created
directly by customer AWS API calls). The UI uses these tags to hide
system-owned resources from customer-facing listings so operators do not
mistake them for user workloads and accidentally terminate or modify
them.
## `spinifex:managed-by`
Identifies the Spinifex platform component that owns a resource.
| Value | Component | Tagged resource types |
|---------|---------------------------------|---------------------------------------|
| `elbv2` | ALB / HAProxy load balancers | LB VM (`instance`), LB ENI, LB AMI |
The tag is applied by the backend at create/launch time:
- **Instance** — set in
`spinifex/spinifex/daemon/daemon_system_instance.go` when
`LaunchSystemInstance` builds the `RunInstancesInput`, and mirrored onto
the stored `vm.VM.ManagedBy` field for fast lookup.
- **ENI** — set in
`spinifex/spinifex/handlers/elbv2/service_impl.go` when
`CreateLoadBalancer` calls `CreateNetworkInterface`.
- **AMI** — declared on the catalog entry in
`spinifex/spinifex/utils/images.go` and copied into
`AMIMetadata.Tags` by the image importer in
`spinifex/cmd/spinifex/cmd/admin.go`.
Tag keys and values are defined once in `spinifex/spinifex/tags/tags.go`;
new system components should register their value there and reuse the
constants rather than hardcoding strings.
## UI behaviour
The admin **Nodes** page and the **Images** (AMIs) page filter out
resources that carry `spinifex:managed-by`. Engineers who need to see
system resources for debugging can append `?system=1` to the URL — the
filter is bypassed and a hidden-count banner is replaced with the full
listing. Direct navigation to a system AMI detail page without
`?system=1` renders the "Image not found" fallback.
The EC2 **Instances** page does not need UI-side filtering: backend
SigV4 authentication scopes `DescribeInstances` by account ID, and
system instances live under the global system account
(`000000000000`), so customers never see them.
## `spinifex:lb-arn`
Applied to ELBv2-managed ENIs alongside `spinifex:managed-by=elbv2`.
Stores the ARN of the parent load balancer so reconciliation can map an
ENI back to its owner without a separate lookup. Customer-facing
filtering keys off `spinifex:managed-by`; `spinifex:lb-arn` is
informational.
## Adding a new system component
1. Add a new value constant next to `ManagedByELBv2` in
`spinifex/spinifex/tags/tags.go`.
2. Tag every resource the component creates (instance, ENI, AMI,
volume, …) with `spinifex:managed-by=<value>`.
3. Add the value to the table above so operators can recognise it.
4. No frontend changes are required — the UI filters on the key, not
the value.
+14 -3
View File
@@ -166,14 +166,25 @@ Query available instance types for your hardware:
aws ec2 describe-instance-types
```
Launch an instance in the public subnet:
Launch an instance in the public subnet, note this will select an instance type with 2 VCPU and 1024MB of memory.
> **Note:** Replace `AMI_NAME` with the previously imported image above with the `ami-` prefix.
```bash
AMI_ID=$(aws ec2 describe-images --query 'Images[0].ImageId' --output text)
AMI_NAME="ami-ubuntu-24.04-x86_64"
AMI_ID=$(aws ec2 describe-images \
--filters "Name=name,Values=$AMI_NAME" \
--query 'Images | sort_by(@, &CreationDate) | [-1].ImageId' \
--output text)
INSTANCE_TYPE=$(aws ec2 describe-instance-types \
--query "sort_by(InstanceTypes[?VCpuInfo.DefaultVCpus==\`2\` && MemoryInfo.SizeInMiB>=\`1024\`], &MemoryInfo.SizeInMiB)[0].InstanceType" \
--output text)
INSTANCE_ID=$(aws ec2 run-instances \
--image-id $AMI_ID \
--instance-type t3.small \
--instance-type $INSTANCE_TYPE \
--key-name spinifex-key \
--subnet-id $SUBNET_ID \
--count 1 \
+41 -1
View File
@@ -108,6 +108,34 @@ Or create a `main.tf` file and paste the full configuration below.
```bash
export AWS_PROFILE=spinifex
tofu init
```
### Step 3. Specify instance and apply
Next, depending on your architecture and CPU/memory requirements you must specify an instance type to launch.
Either specify an instance type directly (e.g Intel)
```bash
# AMD instance
export TF_VAR_instance_type="t3a.small"
# Or, Intel
export TF_VAR_instance_type="t3.small"
```
Or alternatively, using the AWS CLI tool query your instance for available types (e.g Intel, AMD, ARM) that support 2 vCPUs and 1 GB RAM.
```bash
TF_VAR_instance_type=$(aws ec2 describe-instance-types \
--query "sort_by(InstanceTypes[?VCpuInfo.DefaultVCpus==\`2\` && MemoryInfo.SizeInMiB>=\`1024\`], &MemoryInfo.SizeInMiB)[0].InstanceType" \
--output text)
```
Next, apply and launch the template:
```bash
tofu apply
```
@@ -138,7 +166,13 @@ The Nginx instances themselves only have private IPs (see the `instance_1_privat
Check target health via AWS CLI:
```bash
aws elbv2 describe-target-health --target-group-arn <tg_arn>
TG_ARN=$(aws elbv2 describe-target-groups \
--query 'TargetGroups[0].TargetGroupArn' \
--output text)
echo "Target Group ARN: $TG_ARN"
aws elbv2 describe-target-health --target-group-arn $TG_ARN
```
### Cleanup
@@ -157,6 +191,12 @@ Ensure you have imported a Debian 12 image. Check available AMIs:
aws ec2 describe-images --owners 000000000000 --profile spinifex
```
If missing import:
```bash
spx admin images import --name debian-12-x86_64
```
### Provider Connection Refused
Verify Spinifex services are running:
+7 -2
View File
@@ -53,6 +53,11 @@ variable "region" {
default = "ap-southeast-2"
}
variable "instance_type" {
type = string
default = "t3.small"
}
variable "spinifex_endpoint" {
type = string
default = "https://localhost:9999"
@@ -311,7 +316,7 @@ resource "aws_security_group" "web" {
resource "aws_instance" "nginx_1" {
ami = data.aws_ami.debian12.id
instance_type = "t3.small"
instance_type = var.instance_type
subnet_id = aws_subnet.private_a.id
vpc_security_group_ids = [aws_security_group.web.id]
@@ -355,7 +360,7 @@ resource "aws_instance" "nginx_1" {
resource "aws_instance" "nginx_2" {
ami = data.aws_ami.debian12.id
instance_type = "t3.small"
instance_type = var.instance_type
subnet_id = aws_subnet.private_b.id
vpc_security_group_ids = [aws_security_group.web.id]
+9 -8
View File
@@ -67,6 +67,15 @@ sudo update-ca-certificates
echo "=== Starting services ==="
sudo systemctl start spinifex.target
# Check if user needs to re-login for spinifex group membership
if ! id -Gn 2>/dev/null | grep -qw spinifex; then
newgrp spinifex
# echo ""
# echo "NOTE: You were added to the 'spinifex' group but your current"
# echo "session doesn't reflect it yet. Log out and back in, or run:"
# echo " newgrp spinifex"
fi
echo "=== Building and importing LB image ==="
cd "$PROJECT_ROOT" && make build-lb-agent
"$PROJECT_ROOT/scripts/build-system-image.sh" "$PROJECT_ROOT/scripts/images/lb.conf" --import --quiet
@@ -76,11 +85,3 @@ echo "Services: sudo systemctl status spinifex.target"
echo "Logs: journalctl -u 'spinifex-*' -f"
echo "Test: AWS_PROFILE=spinifex aws ec2 describe-instances"
echo "Iterate: make deploy (rebuild + restart all)"
# Check if user needs to re-login for spinifex group membership
if ! id -Gn 2>/dev/null | grep -qw spinifex; then
echo ""
echo "NOTE: You were added to the 'spinifex' group but your current"
echo "session doesn't reflect it yet. Log out and back in, or run:"
echo " newgrp spinifex"
fi
+1
View File
@@ -293,6 +293,7 @@ func (d *Daemon) handleNodeVMs(msg *nats.Msg) {
InstanceID: v.ID,
Status: string(v.Status),
InstanceType: v.InstanceType,
ManagedBy: v.ManagedBy,
}
// Get vCPU/memory from the resource manager's instance type info
if it, ok := d.resourceMgr.instanceTypes[v.InstanceType]; ok {
+1 -1
View File
@@ -238,7 +238,7 @@ func (d *Daemon) handleEC2RunInstances(msg *nats.Msg) {
region = d.config.Region
az = d.config.AZ
}
publicIP, poolName, allocErr := d.externalIPAM.AllocateIP(region, az, "auto_assign", *eni.NetworkInterfaceId, instance.ID)
publicIP, poolName, allocErr := d.externalIPAM.AllocateIP(region, az, "auto_assign", "", *eni.NetworkInterfaceId, instance.ID)
if allocErr != nil {
slog.Warn("Failed to allocate public IP for instance", "instanceId", instance.ID, "err", allocErr)
} else {
+17 -2
View File
@@ -9,6 +9,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
handlers_elbv2 "github.com/mulgadc/spinifex/spinifex/handlers/elbv2"
"github.com/mulgadc/spinifex/spinifex/tags"
"github.com/mulgadc/spinifex/spinifex/utils"
"github.com/mulgadc/spinifex/spinifex/vm"
)
@@ -51,12 +52,22 @@ func (d *Daemon) LaunchSystemInstance(input *handlers_elbv2.SystemInstanceInput)
return nil, fmt.Errorf("insufficient capacity for %s: %w", input.InstanceType, err)
}
// Build a RunInstancesInput for the instance service
// Build a RunInstancesInput for the instance service.
// Tag the instance as ELBv2-managed so the UI hides it from
// customer-facing listings (Nodes page).
runInput := &ec2.RunInstancesInput{
InstanceType: aws.String(input.InstanceType),
ImageId: aws.String(input.ImageID),
MinCount: aws.Int64(1),
MaxCount: aws.Int64(1),
TagSpecifications: []*ec2.TagSpecification{
{
ResourceType: aws.String("instance"),
Tags: []*ec2.Tag{
{Key: aws.String(tags.ManagedByKey), Value: aws.String(tags.ManagedByELBv2)},
},
},
},
}
if input.SubnetID != "" {
runInput.SubnetId = aws.String(input.SubnetID)
@@ -74,6 +85,10 @@ func (d *Daemon) LaunchSystemInstance(input *handlers_elbv2.SystemInstanceInput)
}
instance.AccountID = accountID
instance.ManagedBy = tags.ManagedByELBv2
ec2Instance.Tags = []*ec2.Tag{
{Key: aws.String(tags.ManagedByKey), Value: aws.String(tags.ManagedByELBv2)},
}
instance.Reservation = &ec2.Reservation{}
instance.Reservation.SetReservationId(utils.GenerateResourceID("r"))
instance.Reservation.SetOwnerId(accountID)
@@ -147,7 +162,7 @@ func (d *Daemon) LaunchSystemInstance(input *handlers_elbv2.SystemInstanceInput)
region = d.config.Region
az = d.config.AZ
}
allocatedIP, poolName, allocErr := d.externalIPAM.AllocateIP(region, az, "auto_assign", instance.ENIId, instance.ID)
allocatedIP, poolName, allocErr := d.externalIPAM.AllocateIP(region, az, "auto_assign", "", instance.ENIId, instance.ID)
if allocErr != nil {
slog.Error("LaunchSystemInstance: failed to allocate public IP for internet-facing ALB", "instanceId", instance.ID, "err", allocErr)
d.cleanupFailedSystemInstance(instance, instanceType)
+2 -2
View File
@@ -73,7 +73,7 @@ func (s *EIPServiceImpl) AllocateAddress(input *ec2.AllocateAddressInput, accoun
if input.PublicIpv4Pool != nil && *input.PublicIpv4Pool != "" {
// Allocate from a specific named pool.
poolName = *input.PublicIpv4Pool
publicIP, err = s.externalIPAM.AllocateFromPool(poolName, "elastic_ip", "", "")
publicIP, err = s.externalIPAM.AllocateFromPool(poolName, "elastic_ip", allocID, "", "")
if err != nil {
slog.Error("AllocateAddress: IPAM pool allocation failed", "pool", poolName, "err", err)
return nil, errors.New(awserrors.ErrorInsufficientAddressCapacity)
@@ -82,7 +82,7 @@ func (s *EIPServiceImpl) AllocateAddress(input *ec2.AllocateAddressInput, accoun
// Allocate from the best pool matching region/AZ (empty strings = global fallback).
region := ""
az := ""
publicIP, poolName, err = s.externalIPAM.AllocateIP(region, az, "elastic_ip", "", "")
publicIP, poolName, err = s.externalIPAM.AllocateIP(region, az, "elastic_ip", allocID, "", "")
if err != nil {
slog.Error("AllocateAddress: IPAM allocation failed", "err", err)
return nil, errors.New(awserrors.ErrorInsufficientAddressCapacity)
+22 -15
View File
@@ -156,12 +156,13 @@ func (m *ExternalIPAM) initPool(pool ExternalPoolConfig) error {
// AllocateIP allocates the next available external IP from the best pool
// matching the given region/AZ. Returns the allocated IP and pool name.
func (m *ExternalIPAM) AllocateIP(region, az, allocType, eniID, instanceID string) (string, string, error) {
// allocID is the EIP allocation ID (for elastic IPs); pass "" for other types.
func (m *ExternalIPAM) AllocateIP(region, az, allocType, allocID, eniID, instanceID string) (string, string, error) {
pool := m.findPool(region, az)
if pool == nil {
return "", "", fmt.Errorf("InsufficientAddressCapacity: no external pool available for region=%q az=%q", region, az)
}
ip, err := m.allocateFromPool(pool.Name, allocType, eniID, instanceID)
ip, err := m.allocateFromPool(pool.Name, allocType, allocID, eniID, instanceID)
if err != nil {
return "", "", err
}
@@ -169,13 +170,24 @@ func (m *ExternalIPAM) AllocateIP(region, az, allocType, eniID, instanceID strin
}
// AllocateFromPool allocates an IP from a specific named pool.
func (m *ExternalIPAM) AllocateFromPool(poolName, allocType, eniID, instanceID string) (string, error) {
return m.allocateFromPool(poolName, allocType, eniID, instanceID)
func (m *ExternalIPAM) AllocateFromPool(poolName, allocType, allocID, eniID, instanceID string) (string, error) {
return m.allocateFromPool(poolName, allocType, allocID, eniID, instanceID)
}
func (m *ExternalIPAM) allocateFromPool(poolName, allocType, eniID, instanceID string) (string, error) {
func (m *ExternalIPAM) allocateFromPool(poolName, allocType, allocID, eniID, instanceID string) (string, error) {
pool := m.findPoolByName(poolName)
// DHCP client-id: prefer allocID (EIPs), then eniID (ENIs), then instanceID.
// At least one must be non-empty for DHCP pools — the upstream DHCP server
// uses this to keep per-client leases distinct.
clientID := allocID
if clientID == "" {
clientID = eniID
}
if clientID == "" {
clientID = instanceID
}
for attempt := range 5 {
record, revision, err := m.getRecord(poolName)
if err != nil {
@@ -184,12 +196,6 @@ func (m *ExternalIPAM) allocateFromPool(poolName, allocType, eniID, instanceID s
var ip string
if pool != nil && pool.IsDHCP() {
// DHCP source: obtain a lease from the router's DHCP server.
// Use ENI ID as the client identifier so each VM gets a unique lease.
clientID := eniID
if clientID == "" {
clientID = instanceID
}
ip, err = ObtainDHCPLease(pool.WanBridge, clientID)
if err != nil {
return "", fmt.Errorf("DHCP lease for %s: %w", clientID, err)
@@ -203,9 +209,10 @@ func (m *ExternalIPAM) allocateFromPool(poolName, allocType, eniID, instanceID s
}
record.Allocated[ip] = ExternalIPAllocation{
Type: allocType,
ENIId: eniID,
InstanceId: instanceID,
Type: allocType,
AllocationID: allocID,
ENIId: eniID,
InstanceId: instanceID,
}
data, err := json.Marshal(record)
@@ -216,7 +223,7 @@ func (m *ExternalIPAM) allocateFromPool(poolName, allocType, eniID, instanceID s
if _, err := m.kv.Update(poolName, data, revision); err != nil {
// CAS conflict — if we obtained a DHCP lease, release it before retrying
if pool != nil && pool.IsDHCP() {
_ = ReleaseDHCPLease(pool.WanBridge, eniID)
_ = ReleaseDHCPLease(pool.WanBridge, clientID)
}
slog.Debug("external IPAM CAS conflict, retrying", "pool", poolName, "attempt", attempt)
continue
@@ -5,10 +5,32 @@ import (
"log/slog"
"os/exec"
"strings"
"sync"
)
const dhcpcdBin = "/usr/sbin/dhcpcd"
// bridgeMu serialises dhcpcd invocations per bridge. Concurrent invocations on
// the same bridge race: the second one sees the first still running and is
// treated by dhcpcd as a control command rather than a fresh DISCOVER, so we
// scrape stdout and find no lease. Serialising per bridge costs us nothing
// (DHCP is inherently slow) and eliminates the race.
var (
bridgeMuMap = map[string]*sync.Mutex{}
bridgeMuGuard sync.Mutex
)
func bridgeLock(bridge string) *sync.Mutex {
bridgeMuGuard.Lock()
defer bridgeMuGuard.Unlock()
mu, ok := bridgeMuMap[bridge]
if !ok {
mu = &sync.Mutex{}
bridgeMuMap[bridge] = mu
}
return mu
}
// ObtainDHCPLease requests a DHCP lease from the router on the given OVS bridge
// using a unique client ID. Returns the leased IP. The lease is obtained with
// --noconfigure so the IP is NOT added to the bridge interface — OVN handles
@@ -21,6 +43,10 @@ func ObtainDHCPLease(bridge, clientID string) (string, error) {
return "", fmt.Errorf("DHCP lease: client ID is required")
}
mu := bridgeLock(bridge)
mu.Lock()
defer mu.Unlock()
// Run dhcpcd with:
// --noconfigure = don't add IP to interface (OVN handles traffic)
// -1 = exit after obtaining a lease (don't daemonize)
@@ -61,6 +87,10 @@ func ReleaseDHCPLease(bridge, clientID string) error {
return nil
}
mu := bridgeLock(bridge)
mu.Lock()
defer mu.Unlock()
cmd := exec.Command("sudo", dhcpcdBin,
"--release",
"-4",
+20 -20
View File
@@ -33,16 +33,16 @@ func TestExternalIPAM_AllocateSequential(t *testing.T) {
ipam := setupTestExternalIPAM(t, []ExternalPoolConfig{pool})
// .150 is reserved for gateway, so first allocable is .151
ip1, poolName, err := ipam.AllocateIP("", "", "auto_assign", "eni-1", "i-1")
ip1, poolName, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-1", "i-1")
require.NoError(t, err)
assert.Equal(t, "192.168.1.151", ip1)
assert.Equal(t, "wan", poolName)
ip2, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-2", "i-2")
ip2, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-2", "i-2")
require.NoError(t, err)
assert.Equal(t, "192.168.1.152", ip2)
ip3, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-3", "i-3")
ip3, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-3", "i-3")
require.NoError(t, err)
assert.Equal(t, "192.168.1.153", ip3)
}
@@ -79,7 +79,7 @@ func TestExternalIPAM_ExplicitGatewayIP(t *testing.T) {
assert.False(t, ok)
// First allocable is .150 since .155 is the gateway
ip1, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-1", "i-1")
ip1, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-1", "i-1")
require.NoError(t, err)
assert.Equal(t, "192.168.1.150", ip1)
}
@@ -88,11 +88,11 @@ func TestExternalIPAM_Release(t *testing.T) {
pool := testPool()
ipam := setupTestExternalIPAM(t, []ExternalPoolConfig{pool})
ip1, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-1", "i-1")
ip1, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-1", "i-1")
require.NoError(t, err)
assert.Equal(t, "192.168.1.151", ip1)
ip2, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-2", "i-2")
ip2, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-2", "i-2")
require.NoError(t, err)
assert.Equal(t, "192.168.1.152", ip2)
@@ -101,7 +101,7 @@ func TestExternalIPAM_Release(t *testing.T) {
require.NoError(t, err)
// Next allocation reuses released IP
ip3, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-3", "i-3")
ip3, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-3", "i-3")
require.NoError(t, err)
assert.Equal(t, "192.168.1.151", ip3)
}
@@ -117,16 +117,16 @@ func TestExternalIPAM_Exhaustion(t *testing.T) {
ipam := setupTestExternalIPAM(t, []ExternalPoolConfig{pool})
// .1 reserved for gateway, .2 and .3 allocable
ip1, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-1", "i-1")
ip1, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-1", "i-1")
require.NoError(t, err)
assert.Equal(t, "10.0.0.2", ip1)
ip2, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-2", "i-2")
ip2, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-2", "i-2")
require.NoError(t, err)
assert.Equal(t, "10.0.0.3", ip2)
// Pool exhausted
_, _, err = ipam.AllocateIP("", "", "auto_assign", "eni-3", "i-3")
_, _, err = ipam.AllocateIP("", "", "auto_assign", "", "eni-3", "i-3")
assert.ErrorContains(t, err, "InsufficientAddressCapacity")
}
@@ -143,7 +143,7 @@ func TestExternalIPAM_CASConflict(t *testing.T) {
wg.Add(1)
go func(idx int) {
defer wg.Done()
ip, _, err := ipam.AllocateIP("", "", "auto_assign", "eni-"+itoa(idx), "i-"+itoa(idx))
ip, _, err := ipam.AllocateIP("", "", "auto_assign", "", "eni-"+itoa(idx), "i-"+itoa(idx))
results[idx] = ip
errs[idx] = err
}(i)
@@ -187,13 +187,13 @@ func TestExternalIPAM_MultiPool(t *testing.T) {
ipam := setupTestExternalIPAM(t, pools)
// Allocate from US pool
ip1, poolName1, err := ipam.AllocateIP("us-east-1", "us-east-1a", "auto_assign", "eni-1", "i-1")
ip1, poolName1, err := ipam.AllocateIP("us-east-1", "us-east-1a", "auto_assign", "", "eni-1", "i-1")
require.NoError(t, err)
assert.Equal(t, "203.0.113.3", ip1) // .2 reserved for gateway
assert.Equal(t, "us-east", poolName1)
// Allocate from EU pool
ip2, poolName2, err := ipam.AllocateIP("eu-west-1", "eu-west-1a", "auto_assign", "eni-2", "i-2")
ip2, poolName2, err := ipam.AllocateIP("eu-west-1", "eu-west-1a", "auto_assign", "", "eni-2", "i-2")
require.NoError(t, err)
assert.Equal(t, "198.51.100.3", ip2)
assert.Equal(t, "eu-west", poolName2)
@@ -229,19 +229,19 @@ func TestExternalIPAM_PoolFallback(t *testing.T) {
ipam := setupTestExternalIPAM(t, pools)
// AZ match: us-east-1a → az-pool
ip1, pool1, err := ipam.AllocateIP("us-east-1", "us-east-1a", "auto_assign", "eni-1", "i-1")
ip1, pool1, err := ipam.AllocateIP("us-east-1", "us-east-1a", "auto_assign", "", "eni-1", "i-1")
require.NoError(t, err)
assert.Equal(t, "az-pool", pool1)
assert.Equal(t, "10.0.0.2", ip1) // .1 reserved for gw
// Region match (different AZ): us-east-1b → region-pool
ip2, pool2, err := ipam.AllocateIP("us-east-1", "us-east-1b", "auto_assign", "eni-2", "i-2")
ip2, pool2, err := ipam.AllocateIP("us-east-1", "us-east-1b", "auto_assign", "", "eni-2", "i-2")
require.NoError(t, err)
assert.Equal(t, "region-pool", pool2)
assert.Equal(t, "10.0.1.2", ip2)
// No match: eu-west-1 → global-pool
ip3, pool3, err := ipam.AllocateIP("eu-west-1", "eu-west-1a", "auto_assign", "eni-3", "i-3")
ip3, pool3, err := ipam.AllocateIP("eu-west-1", "eu-west-1a", "auto_assign", "", "eni-3", "i-3")
require.NoError(t, err)
assert.Equal(t, "global-pool", pool3)
assert.Equal(t, "10.0.2.2", ip3)
@@ -267,7 +267,7 @@ func TestExternalIPAM_SpecificPool(t *testing.T) {
ipam := setupTestExternalIPAM(t, pools)
// Allocate specifically from pool-b
ip, err := ipam.AllocateFromPool("pool-b", "elastic_ip", "", "")
ip, err := ipam.AllocateFromPool("pool-b", "elastic_ip", "eipalloc-test-b", "", "")
require.NoError(t, err)
assert.Equal(t, "10.0.1.2", ip) // .1 reserved for gw
}
@@ -341,7 +341,7 @@ func TestExternalIPAM_InitFromConfig(t *testing.T) {
require.NoError(t, err)
// Allocate an IP
ip, _, err := ipam1.AllocateIP("", "", "auto_assign", "eni-1", "i-1")
ip, _, err := ipam1.AllocateIP("", "", "auto_assign", "", "eni-1", "i-1")
require.NoError(t, err)
assert.Equal(t, "192.168.1.151", ip)
@@ -376,7 +376,7 @@ func TestExternalIPAM_NoPoolAvailable(t *testing.T) {
ipam := setupTestExternalIPAM(t, []ExternalPoolConfig{pool})
// No pool matches eu-west
_, _, err := ipam.AllocateIP("eu-west-1", "eu-west-1a", "auto_assign", "eni-1", "i-1")
_, _, err := ipam.AllocateIP("eu-west-1", "eu-west-1a", "auto_assign", "", "eni-1", "i-1")
assert.ErrorContains(t, err, "InsufficientAddressCapacity")
}
@@ -392,7 +392,7 @@ func TestExternalIPAM_FindPoolByName_NotFound(t *testing.T) {
// AllocateFromPool with a non-existent pool name: findPoolByName returns nil,
// so pool.IsDHCP() is skipped and static allocation is used.
// The pool "nonexistent" has no KV record, so getRecord fails.
_, err := ipam2.AllocateFromPool("nonexistent", "auto_assign", "eni-1", "i-1")
_, err := ipam2.AllocateFromPool("nonexistent", "auto_assign", "", "eni-1", "i-1")
assert.Error(t, err)
}
+6 -5
View File
@@ -18,17 +18,18 @@ import (
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/mulgadc/spinifex/spinifex/config"
handlers_ec2_vpc "github.com/mulgadc/spinifex/spinifex/handlers/ec2/vpc"
"github.com/mulgadc/spinifex/spinifex/tags"
"github.com/mulgadc/spinifex/spinifex/utils"
"github.com/nats-io/nats.go"
)
const (
// elbv2ManagedByTag is the tag key used to mark ENIs as system-managed by ELBv2.
elbv2ManagedByTag = "spinifex:managed-by"
// elbv2ManagedByValue is the tag value for ELBv2-managed ENIs.
elbv2ManagedByValue = "elbv2"
// elbv2ManagedByTag is an alias for the shared tag key (kept for readability).
elbv2ManagedByTag = tags.ManagedByKey
// elbv2ManagedByValue is the tag value for ELBv2-managed resources.
elbv2ManagedByValue = tags.ManagedByELBv2
// elbv2LBTag is the tag key storing the parent LB ARN on managed ENIs.
elbv2LBTag = "spinifex:lb-arn"
elbv2LBTag = tags.LBARNKey
// heartbeatPersistInterval controls how often a no-op heartbeat (no state
// change) writes the full LoadBalancerRecord back to KV. State transitions
+11 -2
View File
@@ -8,7 +8,16 @@ import (
"github.com/nats-io/nats.go"
)
const defaultTimeout = 30 * time.Second
const (
defaultTimeout = 30 * time.Second
// longRunningTimeout covers operations that synchronously launch or tear
// down ALB frontend VMs (DHCP lease + QEMU boot / QMP shutdown + QEMU exit).
// A healthy launch is ~45s on a warm box; shutdown can take tens of seconds
// if QMP is slow. Until CreateLoadBalancer is made fully async, we keep a
// wide margin so Terraform's AWS provider doesn't retry mid-flight and then
// hit DuplicateLoadBalancerName on the second attempt.
longRunningTimeout = 5 * time.Minute
)
// NATSELBv2Service handles ELBv2 operations via NATS messaging.
type NATSELBv2Service struct {
@@ -21,7 +30,7 @@ func NewNATSELBv2Service(conn *nats.Conn) ELBv2Service {
}
func (s *NATSELBv2Service) CreateLoadBalancer(input *elbv2.CreateLoadBalancerInput, accountID string) (*elbv2.CreateLoadBalancerOutput, error) {
return utils.NATSRequest[elbv2.CreateLoadBalancerOutput](s.natsConn, "elbv2.CreateLoadBalancer", input, defaultTimeout, accountID)
return utils.NATSRequest[elbv2.CreateLoadBalancerOutput](s.natsConn, "elbv2.CreateLoadBalancer", input, longRunningTimeout, accountID)
}
func (s *NATSELBv2Service) DeleteLoadBalancer(input *elbv2.DeleteLoadBalancerInput, accountID string) (*elbv2.DeleteLoadBalancerOutput, error) {
@@ -1 +1 @@
import{It as e,Rt as t,pt as n,zt as r}from"./awsClient.js";var i=class extends t.classBuilder().ep(e).m(function(e,t,n,i){return[r(n,e.getEndpointParameterInstructions())]}).s(`AmazonEC2`,`DescribeInstances`,{}).n(`EC2Client`,`DescribeInstancesCommand`).sc(n).build(){};export{i as t};
import{Mt as e,in as t,rn as n,tn as r}from"./awsClient.js";var i=class extends n.classBuilder().ep(r).m(function(e,n,r,i){return[t(r,e.getEndpointParameterInstructions())]}).s(`AmazonEC2`,`DescribeInstances`,{}).n(`EC2Client`,`DescribeInstancesCommand`).sc(e).build(){};export{i as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_2.js","assets/compiler-runtime.js","assets/s3.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/upload-button.js","assets/button.js","assets/dist.js","assets/link.js","assets/useStore.js","assets/createLucideIcon.js","assets/download.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/s32.js","assets/queryOptions.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/back-link.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{I as r,P as i}from"./SignatureV4.js";import{t as a}from"./s32.js";var o=e(`/_auth/s3/ls/$bucket/$`)({loader:async({context:e,params:t})=>{let n=r(t._splat??``);await e.queryClient.ensureQueryData(a(t.bucket,n))},head:({params:e})=>({meta:[{title:`${i(e._splat??``,`${e.bucket}/`)} | S3 | Mulga`}]}),component:t(()=>n(()=>import(`./_2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])),`component`)});export{o as t};
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{F as r,L as i}from"./SignatureV4.js";import{t as a}from"./s32.js";var o=e(`/_auth/s3/ls/$bucket/$`)({loader:async({context:e,params:t})=>{let n=i(t._splat??``);await e.queryClient.ensureQueryData(a(t.bucket,n))},head:({params:e})=>({meta:[{title:`${r(e._splat??``,`${e.bucket}/`)} | S3 | Mulga`}]}),component:t(()=>n(()=>import(`./_2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])),`component`)});export{o as t};
+1 -1
View File
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./link.js";import{I as a,L as o,P as s,V as c}from"./SignatureV4.js";import{t as l}from"./back-link.js";import{n as u,r as d,t as f}from"./upload-button.js";import{r as p}from"./s3.js";import{t as m}from"./s32.js";import{t as h}from"./_.js";var g=t(),_=e();function v(){let e=(0,g.c)(24),{bucket:t,_splat:v}=h.useParams(),y=a(v??``),{data:b}=r(m(t,y)),x=p(),S;e[0]===b.Contents?S=e[1]:(S=b.Contents??[],e[0]=b.Contents,e[1]=S);let C=S,w;e[2]===b.CommonPrefixes?w=e[3]:(w=b.CommonPrefixes??[],e[2]=b.CommonPrefixes,e[3]=w);let T=w,E=y.split(`/`).filter(Boolean),D=[{name:t,path:`/s3/ls/${t}`},...E.map((e,n)=>({name:e,path:`/s3/ls/${t}/${`${E.slice(0,n+1).join(`/`)}/`}`}))],O=E.length>1?`/s3/ls/${t}/${E.slice(0,-1).join(`/`)}/`:`/s3/ls/${t}`,k;e[4]===O?k=e[5]:(k=(0,_.jsx)(l,{to:O,children:`Back`}),e[4]=O,e[5]=k);let A;e[6]!==t||e[7]!==y||e[8]!==x.isPending||e[9]!==x.mutateAsync?(A=(0,_.jsx)(f,{bucket:t,isPending:x.isPending,onUpload:x.mutateAsync,prefix:y}),e[6]=t,e[7]=y,e[8]=x.isPending,e[9]=x.mutateAsync,e[10]=A):A=e[10];let j;e[11]===x.error?j=e[12]:(j=x.error&&(0,_.jsx)(n,{error:x.error,msg:`Failed to upload object`}),e[11]=x.error,e[12]=j);let M;e[13]!==t||e[14]!==T||e[15]!==y?(M=T.length>0&&(0,_.jsxs)(`div`,{className:`mb-6`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,_.jsx)(`div`,{className:`space-y-2`,children:T.map(e=>e.Prefix?(0,_.jsx)(d,{bucketName:t,folderName:c(o(e.Prefix,y)),fullPrefix:s(e.Prefix,y)},e.Prefix):null)})]}),e[13]=t,e[14]=T,e[15]=y,e[16]=M):M=e[16];let N;e[17]!==t||e[18]!==C||e[19]!==y?(N=C.length>0&&(0,_.jsxs)(`div`,{className:`space-y-2`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),C.map(e=>e.Key?(0,_.jsx)(u,{bucketName:t,displayName:o(e.Key,y),fullKey:s(e.Key,y),object:e},e.Key):null)]}),e[17]=t,e[18]=C,e[19]=y,e[20]=N):N=e[20];let P;return e[21]!==T.length||e[22]!==C.length?(P=C.length===0&&T.length===0&&(0,_.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this folder.`}),e[21]=T.length,e[22]=C.length,e[23]=P):P=e[23],(0,_.jsxs)(_.Fragment,{children:[k,(0,_.jsx)(`div`,{className:`mb-6`,children:(0,_.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,_.jsx)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:D.map((e,t)=>(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t>0&&(0,_.jsx)(`span`,{children:`/`}),t===D.length-1?(0,_.jsx)(`span`,{className:`text-foreground`,children:e.name}):(0,_.jsx)(i,{className:`hover:text-foreground`,to:e.path,children:e.name})]},e.path))}),A]})}),j,M,N,P]})}export{v as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./link.js";import{F as a,H as o,L as s,R as c}from"./SignatureV4.js";import{t as l}from"./back-link.js";import{n as u,r as d,t as f}from"./upload-button.js";import{r as p}from"./s3.js";import{t as m}from"./s32.js";import{t as h}from"./_.js";var g=t(),_=e();function v(){let e=(0,g.c)(24),{bucket:t,_splat:v}=h.useParams(),y=s(v??``),{data:b}=r(m(t,y)),x=p(),S;e[0]===b.Contents?S=e[1]:(S=b.Contents??[],e[0]=b.Contents,e[1]=S);let C=S,w;e[2]===b.CommonPrefixes?w=e[3]:(w=b.CommonPrefixes??[],e[2]=b.CommonPrefixes,e[3]=w);let T=w,E=y.split(`/`).filter(Boolean),D=[{name:t,path:`/s3/ls/${t}`},...E.map((e,n)=>({name:e,path:`/s3/ls/${t}/${`${E.slice(0,n+1).join(`/`)}/`}`}))],O=E.length>1?`/s3/ls/${t}/${E.slice(0,-1).join(`/`)}/`:`/s3/ls/${t}`,k;e[4]===O?k=e[5]:(k=(0,_.jsx)(l,{to:O,children:`Back`}),e[4]=O,e[5]=k);let A;e[6]!==t||e[7]!==y||e[8]!==x.isPending||e[9]!==x.mutateAsync?(A=(0,_.jsx)(f,{bucket:t,isPending:x.isPending,onUpload:x.mutateAsync,prefix:y}),e[6]=t,e[7]=y,e[8]=x.isPending,e[9]=x.mutateAsync,e[10]=A):A=e[10];let j;e[11]===x.error?j=e[12]:(j=x.error&&(0,_.jsx)(n,{error:x.error,msg:`Failed to upload object`}),e[11]=x.error,e[12]=j);let M;e[13]!==t||e[14]!==T||e[15]!==y?(M=T.length>0&&(0,_.jsxs)(`div`,{className:`mb-6`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,_.jsx)(`div`,{className:`space-y-2`,children:T.map(e=>e.Prefix?(0,_.jsx)(d,{bucketName:t,folderName:o(c(e.Prefix,y)),fullPrefix:a(e.Prefix,y)},e.Prefix):null)})]}),e[13]=t,e[14]=T,e[15]=y,e[16]=M):M=e[16];let N;e[17]!==t||e[18]!==C||e[19]!==y?(N=C.length>0&&(0,_.jsxs)(`div`,{className:`space-y-2`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),C.map(e=>e.Key?(0,_.jsx)(u,{bucketName:t,displayName:c(e.Key,y),fullKey:a(e.Key,y),object:e},e.Key):null)]}),e[17]=t,e[18]=C,e[19]=y,e[20]=N):N=e[20];let P;return e[21]!==T.length||e[22]!==C.length?(P=C.length===0&&T.length===0&&(0,_.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this folder.`}),e[21]=T.length,e[22]=C.length,e[23]=P):P=e[23],(0,_.jsxs)(_.Fragment,{children:[k,(0,_.jsx)(`div`,{className:`mb-6`,children:(0,_.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,_.jsx)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:D.map((e,t)=>(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t>0&&(0,_.jsx)(`span`,{children:`/`}),t===D.length-1?(0,_.jsx)(`span`,{className:`text-foreground`,children:e.name}):(0,_.jsx)(i,{className:`hover:text-foreground`,to:e.path,children:e.name})]},e.path))}),A]})}),j,M,N,P]})}export{v as component};
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_bucket2.js","assets/compiler-runtime.js","assets/s3.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/upload-button.js","assets/button.js","assets/dist.js","assets/link.js","assets/useStore.js","assets/createLucideIcon.js","assets/download.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/s32.js","assets/queryOptions.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/back-link.js","assets/page-heading.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{t as r}from"./s32.js";var i=e(`/_auth/s3/ls/$bucket/`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(r(t.bucket))},head:({params:e})=>({meta:[{title:`${e.bucket} | S3 | Mulga`}]}),component:t(()=>n(()=>import(`./_bucket2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),`component`)});export{i as t};
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{t as r}from"./s32.js";var i=e(`/_auth/s3/ls/$bucket/`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(r(t.bucket))},head:({params:e})=>({meta:[{title:`${e.bucket} | S3 | Mulga`}]}),component:t(()=>n(()=>import(`./_bucket2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),`component`)});export{i as t};
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{V as i}from"./SignatureV4.js";import{t as a}from"./back-link.js";import{n as o,r as s,t as c}from"./upload-button.js";import{r as l}from"./s3.js";import{t as u}from"./s32.js";import{t as d}from"./_bucket.js";import{t as f}from"./page-heading.js";var p=t(),m=e();function h(){let e=(0,p.c)(31),{bucket:t}=d.useParams(),h;e[0]===t?h=e[1]:(h=u(t),e[0]=t,e[1]=h);let{data:g}=r(h),_=l(),v;e[2]===g.Contents?v=e[3]:(v=g.Contents??[],e[2]=g.Contents,e[3]=v);let y=v,b;e[4]===g.CommonPrefixes?b=e[5]:(b=g.CommonPrefixes??[],e[4]=g.CommonPrefixes,e[5]=b);let x=b,S;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,m.jsx)(a,{to:`/s3/ls`,children:`Back to buckets`}),e[6]=S):S=e[6];let C;e[7]!==t||e[8]!==_.isPending||e[9]!==_.mutateAsync?(C=(0,m.jsx)(c,{bucket:t,isPending:_.isPending,onUpload:_.mutateAsync}),e[7]=t,e[8]=_.isPending,e[9]=_.mutateAsync,e[10]=C):C=e[10];let w;e[11]!==t||e[12]!==C?(w=(0,m.jsx)(f,{actions:C,title:t}),e[11]=t,e[12]=C,e[13]=w):w=e[13];let T;e[14]===_.error?T=e[15]:(T=_.error&&(0,m.jsx)(n,{error:_.error,msg:`Failed to upload object`}),e[14]=_.error,e[15]=T);let E;e[16]!==t||e[17]!==x?(E=x.length>0&&(0,m.jsxs)(`div`,{className:`mb-6`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,m.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>e.Prefix?(0,m.jsx)(s,{bucketName:t,folderName:i(e.Prefix),fullPrefix:e.Prefix},e.Prefix):null)})]}),e[16]=t,e[17]=x,e[18]=E):E=e[18];let D;e[19]!==t||e[20]!==y?(D=y.length>0&&(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),y.map(e=>e.Key?(0,m.jsx)(o,{bucketName:t,displayName:e.Key,fullKey:e.Key,object:e},e.Key):null)]}),e[19]=t,e[20]=y,e[21]=D):D=e[21];let O;e[22]!==x.length||e[23]!==y.length?(O=y.length===0&&x.length===0&&(0,m.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this bucket.`}),e[22]=x.length,e[23]=y.length,e[24]=O):O=e[24];let k;return e[25]!==w||e[26]!==T||e[27]!==E||e[28]!==D||e[29]!==O?(k=(0,m.jsxs)(m.Fragment,{children:[S,w,T,E,D,O]}),e[25]=w,e[26]=T,e[27]=E,e[28]=D,e[29]=O,e[30]=k):k=e[30],k}export{h as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{H as i}from"./SignatureV4.js";import{t as a}from"./back-link.js";import{n as o,r as s,t as c}from"./upload-button.js";import{r as l}from"./s3.js";import{t as u}from"./s32.js";import{t as d}from"./_bucket.js";import{t as f}from"./page-heading.js";var p=t(),m=e();function h(){let e=(0,p.c)(31),{bucket:t}=d.useParams(),h;e[0]===t?h=e[1]:(h=u(t),e[0]=t,e[1]=h);let{data:g}=r(h),_=l(),v;e[2]===g.Contents?v=e[3]:(v=g.Contents??[],e[2]=g.Contents,e[3]=v);let y=v,b;e[4]===g.CommonPrefixes?b=e[5]:(b=g.CommonPrefixes??[],e[4]=g.CommonPrefixes,e[5]=b);let x=b,S;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,m.jsx)(a,{to:`/s3/ls`,children:`Back to buckets`}),e[6]=S):S=e[6];let C;e[7]!==t||e[8]!==_.isPending||e[9]!==_.mutateAsync?(C=(0,m.jsx)(c,{bucket:t,isPending:_.isPending,onUpload:_.mutateAsync}),e[7]=t,e[8]=_.isPending,e[9]=_.mutateAsync,e[10]=C):C=e[10];let w;e[11]!==t||e[12]!==C?(w=(0,m.jsx)(f,{actions:C,title:t}),e[11]=t,e[12]=C,e[13]=w):w=e[13];let T;e[14]===_.error?T=e[15]:(T=_.error&&(0,m.jsx)(n,{error:_.error,msg:`Failed to upload object`}),e[14]=_.error,e[15]=T);let E;e[16]!==t||e[17]!==x?(E=x.length>0&&(0,m.jsxs)(`div`,{className:`mb-6`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,m.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>e.Prefix?(0,m.jsx)(s,{bucketName:t,folderName:i(e.Prefix),fullPrefix:e.Prefix},e.Prefix):null)})]}),e[16]=t,e[17]=x,e[18]=E):E=e[18];let D;e[19]!==t||e[20]!==y?(D=y.length>0&&(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),y.map(e=>e.Key?(0,m.jsx)(o,{bucketName:t,displayName:e.Key,fullKey:e.Key,object:e},e.Key):null)]}),e[19]=t,e[20]=y,e[21]=D):D=e[21];let O;e[22]!==x.length||e[23]!==y.length?(O=y.length===0&&x.length===0&&(0,m.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this bucket.`}),e[22]=x.length,e[23]=y.length,e[24]=O):O=e[24];let k;return e[25]!==w||e[26]!==T||e[27]!==E||e[28]!==D||e[29]!==O?(k=(0,m.jsxs)(m.Fragment,{children:[S,w,T,E,D,O]}),e[25]=w,e[26]=T,e[27]=E,e[28]=D,e[29]=O,e[30]=k):k=e[30],k}export{h as component};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id18.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useNavigate.js","assets/back-link.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/field.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{t as r}from"./createLucideIcon.js";import{o as i,v as a}from"./ec22.js";var o=r(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),s=e(`/_auth/ec2/(volumes)/describe-volumes/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(a(t.id)),e.queryClient.ensureQueryData(i)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id18.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])),`component`)});export{o as n,s as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id22.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useNavigate.js","assets/back-link.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/field.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{t as r}from"./createLucideIcon.js";import{o as i,v as a}from"./ec22.js";var o=r(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),s=e(`/_auth/ec2/(volumes)/describe-volumes/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(a(t.id)),e.queryClient.ensureQueryData(i)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id22.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])),`component`)});export{o as n,s as t};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id11.js","assets/compiler-runtime.js","assets/ec22.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/QueryClientProvider.js","assets/query.js","assets/back-link.js","assets/link.js","assets/useStore.js","assets/createLucideIcon.js","assets/page-heading.js","assets/state-badge.js","assets/ami-details.js","assets/detail-row.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{n as r}from"./ec22.js";var i=e(`/_auth/ec2/(images)/describe-images/$id`)({loader:async({context:e,params:t})=>await e.queryClient.ensureQueryData(r(t.id)),head:({loaderData:e})=>({meta:[{title:`${e?.Images?.[0]?.Name??`Image`} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id11.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])),`component`)});export{i as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id15.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/useStore.js","assets/back-link.js","assets/link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{s as r}from"./ec22.js";var i=e(`/_auth/ec2/(key)/describe-key-pairs/$id`)({loader:async({context:e,params:t})=>await e.queryClient.ensureQueryData(r(t.id)),head:({loaderData:e})=>({meta:[{title:`${e?.KeyPairs?.[0]?.KeyName??`Key Pair`} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id15.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31])),`component`)});export{i as t};
+2 -1
View File
@@ -1 +1,2 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./back-link.js";import{n as i}from"./ec22.js";import{t as a}from"./_id10.js";import{t as o}from"./page-heading.js";import{t as s}from"./state-badge.js";import{t as c}from"./ami-details.js";var l=t(),u=e();function d(){let e=(0,l.c)(14),{id:t}=a.useParams(),d;e[0]===t?d=e[1]:(d=i(t),e[0]=t,e[1]=d);let{data:f}=n(d),p=f?.Images?.[0];if(!p?.ImageId){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r,{to:`/ec2/describe-images`,children:`Back to images`}),(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`Image not found.`})]}),e[2]=t):t=e[2],t}let m;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,u.jsx)(r,{to:`/ec2/describe-images`,children:`Back to images`}),e[3]=m):m=e[3];let h;e[4]===p.State?h=e[5]:(h=(0,u.jsx)(s,{state:p.State}),e[4]=p.State,e[5]=h);let g;e[6]!==p.ImageId||e[7]!==h?(g=(0,u.jsx)(o,{actions:h,subtitle:`EC2 Image Details`,title:p.ImageId}),e[6]=p.ImageId,e[7]=h,e[8]=g):g=e[8];let _;e[9]===p?_=e[10]:(_=(0,u.jsx)(c,{image:p,showExtendedDetails:!0}),e[9]=p,e[10]=_);let v;return e[11]!==g||e[12]!==_?(v=(0,u.jsxs)(u.Fragment,{children:[m,(0,u.jsxs)(`div`,{className:`space-y-6`,children:[g,_]})]}),e[11]=g,e[12]=_,e[13]=v):v=e[13],v}export{d as component};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id14.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/back-link.js","assets/trash-2.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/field.js","assets/textarea.js","assets/ami-details.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{a as r,i,n as a}from"./ec22.js";var o=e(`/_auth/ec2/(instances)/describe-instances/$id`)({loader:async({context:e,params:t})=>{let[n]=await Promise.all([e.queryClient.ensureQueryData(i(t.id)),e.queryClient.ensureQueryData(r)]),o=n.Reservations?.[0]?.Instances?.[0]?.ImageId;return await e.queryClient.ensureQueryData(a(o)),n},head:({loaderData:e})=>({meta:[{title:`${e?.Reservations?.[0]?.Instances?.[0]?.InstanceId??`Instance`} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id14.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])),`component`)});export{o as t};
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{t as r}from"./error-banner.js";import{t as i}from"./useSuspenseQuery.js";import{t as a}from"./useNavigate.js";import{R as o}from"./SignatureV4.js";import{t as s}from"./back-link.js";import{t as c}from"./trash-2.js";import{t as l}from"./button.js";import{h as u}from"./ec2.js";import{s as d}from"./ec22.js";import{t as f}from"./_id8.js";import{t as p}from"./page-heading.js";import{n as m,t as h}from"./detail-row.js";import{t as g}from"./delete-confirmation-dialog.js";var _=e(n()),v=t();function y(){let{id:e}=f.useParams(),t=a(),{data:n}=i(d(e)),y=n.KeyPairs?.[0],b=u(),[x,S]=(0,_.useState)(!1),C=async()=>{try{await b.mutateAsync(e),t({to:`/ec2/describe-key-pairs`})}finally{S(!1)}};if(!y?.KeyPairId)return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(s,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),(0,v.jsx)(`p`,{className:`text-muted-foreground`,children:`Key pair not found.`})]});let w=o(y.CreateTime);return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(s,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),b.error&&(0,v.jsx)(r,{error:b.error,msg:`Failed to delete key pair`}),(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsx)(p,{actions:(0,v.jsxs)(l,{onClick:()=>S(!0),size:`sm`,variant:`destructive`,children:[(0,v.jsx)(c,{className:`size-4`}),`Delete`]}),subtitle:`EC2 Key Pair Details`,title:y.KeyName??``}),(0,v.jsxs)(m,{children:[(0,v.jsx)(m.Header,{children:`Key Pair Information`}),(0,v.jsxs)(m.Content,{children:[(0,v.jsx)(h,{label:`Key Pair ID`,value:y.KeyPairId}),(0,v.jsx)(h,{label:`Key Name`,value:y.KeyName}),(0,v.jsx)(h,{label:`Key Type`,value:y.KeyType}),(0,v.jsx)(h,{label:`Key Fingerprint`,value:y.KeyFingerprint}),(0,v.jsx)(h,{label:`Creation Date`,value:w})]})]}),y.Tags&&y.Tags.length>0&&(0,v.jsxs)(m,{children:[(0,v.jsx)(m.Header,{children:`Tags`}),(0,v.jsx)(m.Content,{children:y.Tags.map(e=>(0,v.jsx)(h,{label:e.Key??``,value:e.Value},e.Key))})]})]}),(0,v.jsx)(g,{description:`Are you sure you want to delete the key pair "${y.KeyName}"? This action cannot be undone. Any instances using this key pair will no longer be able to be accessed with it.`,isPending:b.isPending,onConfirm:C,onOpenChange:S,open:x,title:`Delete Key Pair`})]})}export{y as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./back-link.js";import{n as i}from"./ec22.js";import{t as a}from"./_id12.js";import{t as o}from"./page-heading.js";import{t as s}from"./state-badge.js";import{r as c}from"./system-managed.js";import{t as l}from"./ami-details.js";var u=t(),d=e();function f(){let e=(0,u.c)(14),{id:t}=a.useParams(),f;e[0]===t?f=e[1]:(f=i(t),e[0]=t,e[1]=f);let{data:p}=n(f),m=p?.Images?.[0];if(!m?.ImageId||c(m)){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r,{to:`/ec2/describe-images`,children:`Back to images`}),(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`Image not found.`})]}),e[2]=t):t=e[2],t}let h;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,d.jsx)(r,{to:`/ec2/describe-images`,children:`Back to images`}),e[3]=h):h=e[3];let g;e[4]===m.State?g=e[5]:(g=(0,d.jsx)(s,{state:m.State}),e[4]=m.State,e[5]=g);let _;e[6]!==m.ImageId||e[7]!==g?(_=(0,d.jsx)(o,{actions:g,subtitle:`EC2 Image Details`,title:m.ImageId}),e[6]=m.ImageId,e[7]=g,e[8]=_):_=e[8];let v;e[9]===m?v=e[10]:(v=(0,d.jsx)(l,{image:m,showExtendedDetails:!0}),e[9]=m,e[10]=v);let y;return e[11]!==_||e[12]!==v?(y=(0,d.jsxs)(d.Fragment,{children:[h,(0,d.jsxs)(`div`,{className:`space-y-6`,children:[_,v]})]}),e[11]=_,e[12]=v,e[13]=y):y=e[13],y}export{f as component};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{t as r}from"./error-banner.js";import{t as i}from"./useSuspenseQuery.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{B as s}from"./SignatureV4.js";import{t as c}from"./back-link.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{y as d}from"./ec2.js";import{g as f}from"./ec22.js";import{t as p}from"./_id5.js";import{t as m}from"./page-heading.js";import{t as h}from"./state-badge.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./delete-confirmation-dialog.js";var y=e(n()),b=t();function x(){let{id:e}=p.useParams(),t=o(),{data:n}=i(f(e)),x=n.Subnets?.[0],S=d(),[C,w]=(0,y.useState)(!1),T=async()=>{try{await S.mutateAsync(e),t({to:`/ec2/describe-subnets`})}finally{w(!1)}};if(!x?.SubnetId)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Subnet not found.`})]});let E=s(x.Tags);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),S.error&&(0,b.jsx)(r,{error:S.error,msg:`Failed to delete subnet`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(m,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(u,{onClick:()=>w(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(l,{className:`size-4`}),`Delete`]}),(0,b.jsx)(h,{state:x.State})]}),subtitle:`Subnet Details`,title:E?`${x.SubnetId} (${E})`:x.SubnetId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Subnet Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Subnet ID`,value:x.SubnetId}),(0,b.jsx)(_,{label:`VPC ID`,value:x.VpcId?(0,b.jsx)(a,{className:`text-primary hover:underline`,params:{id:x.VpcId},to:`/ec2/describe-vpcs/$id`,children:x.VpcId}):`—`}),(0,b.jsx)(_,{label:`State`,value:x.State}),(0,b.jsx)(_,{label:`CIDR Block`,value:x.CidrBlock}),(0,b.jsx)(_,{label:`Availability Zone`,value:x.AvailabilityZone}),(0,b.jsx)(_,{label:`Available IP Count`,value:x.AvailableIpAddressCount?.toString()}),(0,b.jsx)(_,{label:`Map Public IP on Launch`,value:x.MapPublicIpOnLaunch?`Yes`:`No`}),(0,b.jsx)(_,{label:`Default for AZ`,value:x.DefaultForAz?`Yes`:`No`})]})]})]}),(0,b.jsx)(v,{description:`Are you sure you want to delete the subnet "${x.SubnetId}"? This action cannot be undone.`,isPending:S.isPending,onConfirm:T,onOpenChange:w,open:C,title:`Delete Subnet`})]})}export{x as component};
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{t as r}from"./error-banner.js";import{t as i}from"./useSuspenseQuery.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{t as s}from"./back-link.js";import{t as c}from"./trash-2.js";import{t as l}from"./button.js";import{g as u}from"./ec2.js";import{l as d,o as f}from"./ec22.js";import{t as p}from"./_id8.js";import{t as m}from"./page-heading.js";import{t as h}from"./state-badge.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./delete-confirmation-dialog.js";var y=e(n()),b=t();function x(){let{id:e}=p.useParams(),t=o(),{data:n}=i(d(e)),{data:x}=i(f),S=u(),[C,w]=(0,y.useState)(!1),T=n.PlacementGroups?.[0],E=x.Reservations?.flatMap(e=>e.Instances??[]).filter(e=>e.Placement?.GroupName===T?.GroupName)??[];return T?.GroupId?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),S.error&&(0,b.jsx)(r,{error:S.error,msg:`Failed to delete placement group`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(m,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(l,{onClick:()=>w(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(c,{className:`size-4`}),`Delete`]}),(0,b.jsx)(h,{state:T.State})]}),subtitle:`EC2 Placement Group Details`,title:T.GroupName??T.GroupId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Placement Group Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Group ID`,value:T.GroupId}),(0,b.jsx)(_,{label:`Group Name`,value:T.GroupName}),(0,b.jsx)(_,{label:`Strategy`,value:T.Strategy}),(0,b.jsx)(_,{label:`State`,value:T.State}),(0,b.jsx)(_,{label:`Spread Level`,value:T.SpreadLevel})]})]}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Instances`}),E.length>0?E.map(e=>(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Instance ID`,value:e.InstanceId?(0,b.jsx)(a,{className:`text-primary hover:underline`,params:{id:e.InstanceId},to:`/ec2/describe-instances/$id`,children:e.InstanceId}):void 0}),(0,b.jsx)(_,{label:`State`,value:e.State?.Name}),(0,b.jsx)(_,{label:`Instance Type`,value:e.InstanceType}),(0,b.jsx)(_,{label:`Availability Zone`,value:e.Placement?.AvailabilityZone})]},e.InstanceId)):(0,b.jsx)(g.Content,{children:(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`No instances in this placement group.`})})]})]}),(0,b.jsx)(v,{description:`Are you sure you want to delete the placement group "${T.GroupName}"? The group must have no running instances.`,isPending:S.isPending,onConfirm:async()=>{if(T?.GroupName)try{await S.mutateAsync(T.GroupName),t({to:`/ec2/describe-placement-groups`})}finally{w(!1)}},onOpenChange:w,open:C,title:`Delete Placement Group`})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Placement group not found.`})]})}export{x as component};
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{t as a}from"./back-link.js";import{t as o}from"./input.js";import{E as s}from"./ec2.js";import{v as c}from"./ec22.js";import{t as l}from"./_id4.js";import{t as u}from"./page-heading.js";import{i as d,n as f,t as p}from"./field.js";import{r as m,t as h}from"./zod.js";import{u as g}from"./ec23.js";import{t as _}from"./form-actions.js";var v=t(),y=e();function b(){let e=(0,v.c)(53),{id:t}=l.useParams(),b=i(),x;e[0]===t?x=e[1]:(x=c(t),e[0]=t,e[1]=x);let{data:S}=r(x),C=S.Volumes?.[0],w=C?.VolumeId,T=s(),E=C?.Size??1,D;e[2]===E?D=e[3]:(D=h(g.refine(e=>e.size>E,{message:`New size must be greater than current size (${E} GiB)`,path:[`size`]})),e[2]=E,e[3]=D);let O;e[4]===E?O=e[5]:(O={size:E},e[4]=E,e[5]=O);let k;e[6]!==D||e[7]!==O?(k={resolver:D,defaultValues:O},e[6]=D,e[7]=O,e[8]=k):k=e[8];let{handleSubmit:A,register:j,formState:M}=m(k),{errors:N,isSubmitting:P}=M;if(!w){let t;return e[9]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),(0,y.jsx)(`p`,{className:`text-muted-foreground`,children:`Volume not found.`})]}),e[9]=t):t=e[9],t}let F;e[10]!==T||e[11]!==b||e[12]!==w?(F=async e=>{await T.mutateAsync({...e,volumeId:w}),b({to:`/ec2/describe-volumes/$id`,params:{id:w}})},e[10]=T,e[11]=b,e[12]=w,e[13]=F):F=e[13];let I=F,L,R;e[14]===w?(L=e[15],R=e[16]):(L=(0,y.jsx)(a,{params:{id:w},to:`/ec2/describe-volumes/$id`,children:`Back to volume`}),R=(0,y.jsx)(u,{subtitle:w,title:`Resize Volume`}),e[14]=w,e[15]=L,e[16]=R);let z;e[17]===T.error?z=e[18]:(z=T.error&&(0,y.jsx)(n,{error:T.error,msg:`Failed to resize volume`}),e[17]=T.error,e[18]=z);let B;e[19]!==A||e[20]!==I?(B=A(I),e[19]=A,e[20]=I,e[21]=B):B=e[21];let V;e[22]===E?V=e[23]:(V=(0,y.jsx)(`div`,{className:`space-y-2`,children:(0,y.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Current size: `,E,` GiB`]})}),e[22]=E,e[23]=V);let H;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,y.jsx)(d,{children:(0,y.jsx)(`label`,{htmlFor:`size`,children:`New size (GiB)`})}),e[24]=H):H=e[24];let U=!!N.size,W=E+1,G;e[25]===j?G=e[26]:(G=j(`size`,{valueAsNumber:!0}),e[25]=j,e[26]=G);let K;e[27]!==U||e[28]!==W||e[29]!==G?(K=(0,y.jsx)(o,{"aria-invalid":U,id:`size`,min:W,type:`number`,...G}),e[27]=U,e[28]=W,e[29]=G,e[30]=K):K=e[30];let q;e[31]===N.size?q=e[32]:(q=(0,y.jsx)(f,{errors:[N.size]}),e[31]=N.size,e[32]=q);let J;e[33]!==K||e[34]!==q?(J=(0,y.jsxs)(p,{children:[H,K,q]}),e[33]=K,e[34]=q,e[35]=J):J=e[35];let Y;e[36]!==b||e[37]!==w?(Y=()=>b({to:`/ec2/describe-volumes/$id`,params:{id:w}}),e[36]=b,e[37]=w,e[38]=Y):Y=e[38];let X;e[39]!==P||e[40]!==T.isPending||e[41]!==Y?(X=(0,y.jsx)(_,{isPending:T.isPending,isSubmitting:P,onCancel:Y,pendingLabel:`Resizing\\u2026`,submitLabel:`Resize Volume`}),e[39]=P,e[40]=T.isPending,e[41]=Y,e[42]=X):X=e[42];let Z;e[43]!==V||e[44]!==J||e[45]!==X||e[46]!==B?(Z=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:B,children:[V,J,X]}),e[43]=V,e[44]=J,e[45]=X,e[46]=B,e[47]=Z):Z=e[47];let Q;return e[48]!==Z||e[49]!==L||e[50]!==R||e[51]!==z?(Q=(0,y.jsxs)(y.Fragment,{children:[L,R,z,Z]}),e[48]=Z,e[49]=L,e[50]=R,e[51]=z,e[52]=Q):Q=e[52],Q}export{b as component};
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{t as r}from"./error-banner.js";import{t as i}from"./useSuspenseQuery.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{z as s}from"./SignatureV4.js";import{t as c}from"./back-link.js";import{t as l}from"./copy.js";import{t as u}from"./trash-2.js";import{t as d}from"./button.js";import{t as f}from"./input.js";import{i as p,v as m}from"./ec2.js";import{d as h,m as g}from"./ec22.js";import{t as _}from"./_id7.js";import{t as v}from"./page-heading.js";import{t as y}from"./state-badge.js";import{n as b,t as x}from"./detail-row.js";import{a as S,i as C,l as w,n as T,o as E,r as D,s as O,t as k}from"./alert-dialog.js";import{i as A,t as j}from"./field.js";import{t as M}from"./delete-confirmation-dialog.js";var N=e(n()),P=t();function F(){let{id:e}=_.useParams(),t=o(),{data:n}=i(g(e)),{data:F}=i(h),I=n.Snapshots?.[0],L=m(),R=p(),[z,B]=(0,N.useState)(!1),[V,H]=(0,N.useState)(!1),[U,W]=(0,N.useState)(``),G=F.Regions?.[0]?.RegionName??`ap-southeast-2`,K=I?.State===`completed`,q=async()=>{try{await L.mutateAsync(e),t({to:`/ec2/describe-snapshots`})}finally{B(!1)}},J=async()=>{try{await R.mutateAsync({sourceSnapshotId:e,sourceRegion:G,description:U||void 0}),H(!1),W(``)}catch{}};if(!I?.SnapshotId)return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(c,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),(0,P.jsx)(`p`,{className:`text-muted-foreground`,children:`Snapshot not found.`})]});let Y=s(I.StartTime);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(c,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),L.error&&(0,P.jsx)(r,{error:L.error,msg:`Failed to delete snapshot`}),R.error&&(0,P.jsx)(r,{error:R.error,msg:`Failed to copy snapshot`}),(0,P.jsxs)(`div`,{className:`space-y-6`,children:[(0,P.jsx)(v,{actions:(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsxs)(d,{disabled:!K,onClick:()=>B(!0),size:`sm`,variant:`destructive`,children:[(0,P.jsx)(u,{className:`size-4`}),`Delete`]}),(0,P.jsxs)(d,{disabled:!K,onClick:()=>H(!0),size:`sm`,variant:`outline`,children:[(0,P.jsx)(l,{className:`size-4`}),`Copy Snapshot`]}),(0,P.jsx)(y,{state:I.State})]}),subtitle:`EC2 Snapshot Details`,title:I.SnapshotId}),(0,P.jsxs)(b,{children:[(0,P.jsx)(b.Header,{children:`Snapshot Information`}),(0,P.jsxs)(b.Content,{children:[(0,P.jsx)(x,{label:`Snapshot ID`,value:I.SnapshotId}),(0,P.jsx)(x,{label:`Volume ID`,value:I.VolumeId?(0,P.jsx)(a,{className:`text-primary hover:underline`,params:{id:I.VolumeId},to:`/ec2/describe-volumes/$id`,children:I.VolumeId}):void 0}),(0,P.jsx)(x,{label:`Volume Size`,value:`${I.VolumeSize} GiB`}),(0,P.jsx)(x,{label:`State`,value:I.State}),(0,P.jsx)(x,{label:`Description`,value:I.Description}),(0,P.jsx)(x,{label:`Progress`,value:I.Progress}),(0,P.jsx)(x,{label:`Start Time`,value:Y}),(0,P.jsx)(x,{label:`Owner ID`,value:I.OwnerId}),(0,P.jsx)(x,{label:`Encrypted`,value:I.Encrypted?`Yes`:`No`})]})]})]}),(0,P.jsx)(M,{description:`Are you sure you want to delete the snapshot "${I.SnapshotId}"? This action cannot be undone.`,isPending:L.isPending,onConfirm:q,onOpenChange:B,open:z,title:`Delete Snapshot`}),(0,P.jsx)(k,{onOpenChange:H,open:V,children:(0,P.jsxs)(C,{children:[(0,P.jsxs)(O,{children:[(0,P.jsx)(w,{children:`Copy Snapshot`}),(0,P.jsx)(S,{children:`Create a copy of this snapshot in the current region.`})]}),(0,P.jsxs)(j,{children:[(0,P.jsx)(A,{children:(0,P.jsx)(`label`,{htmlFor:`copyDescription`,children:`Description (optional)`})}),(0,P.jsx)(f,{id:`copyDescription`,onChange:e=>W(e.target.value),placeholder:`Description for the snapshot copy`,value:U})]}),(0,P.jsxs)(E,{children:[(0,P.jsx)(D,{children:`Cancel`}),(0,P.jsx)(T,{disabled:R.isPending,onClick:J,children:R.isPending?`Copying…`:`Copy Snapshot`})]})]})})]})}export{F as component};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id15.js","assets/compiler-runtime.js","assets/ec2.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/zod.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useNavigate.js","assets/back-link.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/field.js","assets/ec23.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{t as r}from"./createLucideIcon.js";import{f as i}from"./ec22.js";var a=r(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),o=e(`/_auth/ec2/(security-groups)/describe-security-groups/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(i(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Security Group | Mulga`}]}),component:t(()=>n(()=>import(`./_id15.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])),`component`)});export{a as n,o as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id18.js","assets/compiler-runtime.js","assets/ec2.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/zod.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useNavigate.js","assets/back-link.js","assets/plus.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/field.js","assets/ec23.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{t as r}from"./createLucideIcon.js";import{f as i}from"./ec22.js";var a=r(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),o=e(`/_auth/ec2/(security-groups)/describe-security-groups/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(i(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Security Group | Mulga`}]}),component:t(()=>n(()=>import(`./_id18.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41])),`component`)});export{a as n,o as t};
+1 -1
View File
@@ -1 +1 @@
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{t as r}from"./error-banner.js";import{t as i}from"./useSuspenseQuery.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{B as s}from"./SignatureV4.js";import{t as c}from"./back-link.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{x as d}from"./ec2.js";import{_ as f,b as p}from"./ec22.js";import{t as m}from"./_id3.js";import{t as h}from"./page-heading.js";import{t as g}from"./state-badge.js";import{n as _,t as v}from"./detail-row.js";import{t as y}from"./delete-confirmation-dialog.js";var b=e(n()),x=t();function S(){let{id:e}=m.useParams(),t=o(),{data:n}=i(p(e)),{data:S}=i(f),C=n.Vpcs?.[0],w=d(),[T,E]=(0,b.useState)(!1),D=S.Subnets?.filter(t=>t.VpcId===e)??[],O=async()=>{try{await w.mutateAsync(e),t({to:`/ec2/describe-vpcs`})}finally{E(!1)}};if(!C?.VpcId)return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),(0,x.jsx)(`p`,{className:`text-muted-foreground`,children:`VPC not found.`})]});let k=s(C.Tags);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),w.error&&(0,x.jsx)(r,{error:w.error,msg:`Failed to delete VPC`}),(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(h,{actions:(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsxs)(u,{onClick:()=>E(!0),size:`sm`,variant:`destructive`,children:[(0,x.jsx)(l,{className:`size-4`}),`Delete`]}),(0,x.jsx)(g,{state:C.State})]}),subtitle:`VPC Details`,title:k?`${C.VpcId} (${k})`:C.VpcId}),(0,x.jsxs)(_,{children:[(0,x.jsx)(_.Header,{children:`VPC Information`}),(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`VPC ID`,value:C.VpcId}),(0,x.jsx)(v,{label:`State`,value:C.State}),(0,x.jsx)(v,{label:`CIDR Block`,value:C.CidrBlock}),(0,x.jsx)(v,{label:`Is Default`,value:C.IsDefault?`Yes`:`No`}),(0,x.jsx)(v,{label:`DHCP Options ID`,value:C.DhcpOptionsId}),(0,x.jsx)(v,{label:`Instance Tenancy`,value:C.InstanceTenancy}),(0,x.jsx)(v,{label:`Owner ID`,value:C.OwnerId})]})]}),D.length>0&&(0,x.jsxs)(_,{children:[(0,x.jsxs)(_.Header,{children:[`Subnets (`,D.length,`)`]}),D.map(e=>e.SubnetId?(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`Subnet ID`,value:(0,x.jsx)(a,{className:`text-primary hover:underline`,params:{id:e.SubnetId},to:`/ec2/describe-subnets/$id`,children:e.SubnetId})}),(0,x.jsx)(v,{label:`CIDR Block`,value:e.CidrBlock}),(0,x.jsx)(v,{label:`Availability Zone`,value:e.AvailabilityZone}),(0,x.jsx)(v,{label:`State`,value:e.State})]},e.SubnetId):null)]})]}),(0,x.jsx)(y,{description:`Are you sure you want to delete the VPC "${C.VpcId}"? This action cannot be undone. The VPC must have no associated subnets or internet gateways.`,isPending:w.isPending,onConfirm:O,onOpenChange:E,open:T,title:`Delete VPC`})]})}export{S as component};
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{t as r}from"./error-banner.js";import{t as i}from"./useSuspenseQuery.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{V as s}from"./SignatureV4.js";import{t as c}from"./back-link.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{y as d}from"./ec2.js";import{g as f}from"./ec22.js";import{t as p}from"./_id6.js";import{t as m}from"./page-heading.js";import{t as h}from"./state-badge.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./delete-confirmation-dialog.js";var y=e(n()),b=t();function x(){let{id:e}=p.useParams(),t=o(),{data:n}=i(f(e)),x=n.Subnets?.[0],S=d(),[C,w]=(0,y.useState)(!1),T=async()=>{try{await S.mutateAsync(e),t({to:`/ec2/describe-subnets`})}finally{w(!1)}};if(!x?.SubnetId)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Subnet not found.`})]});let E=s(x.Tags);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),S.error&&(0,b.jsx)(r,{error:S.error,msg:`Failed to delete subnet`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(m,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(u,{onClick:()=>w(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(l,{className:`size-4`}),`Delete`]}),(0,b.jsx)(h,{state:x.State})]}),subtitle:`Subnet Details`,title:E?`${x.SubnetId} (${E})`:x.SubnetId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Subnet Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Subnet ID`,value:x.SubnetId}),(0,b.jsx)(_,{label:`VPC ID`,value:x.VpcId?(0,b.jsx)(a,{className:`text-primary hover:underline`,params:{id:x.VpcId},to:`/ec2/describe-vpcs/$id`,children:x.VpcId}):`—`}),(0,b.jsx)(_,{label:`State`,value:x.State}),(0,b.jsx)(_,{label:`CIDR Block`,value:x.CidrBlock}),(0,b.jsx)(_,{label:`Availability Zone`,value:x.AvailabilityZone}),(0,b.jsx)(_,{label:`Available IP Count`,value:x.AvailableIpAddressCount?.toString()}),(0,b.jsx)(_,{label:`Map Public IP on Launch`,value:x.MapPublicIpOnLaunch?`Yes`:`No`}),(0,b.jsx)(_,{label:`Default for AZ`,value:x.DefaultForAz?`Yes`:`No`})]})]})]}),(0,b.jsx)(v,{description:`Are you sure you want to delete the subnet "${x.SubnetId}"? This action cannot be undone.`,isPending:S.isPending,onConfirm:T,onOpenChange:w,open:C,title:`Delete Subnet`})]})}export{x as component};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{t as a}from"./back-link.js";import{t as o}from"./input.js";import{E as s}from"./ec2.js";import{v as c}from"./ec22.js";import{t as l}from"./_id4.js";import{t as u}from"./page-heading.js";import{i as d,n as f,t as p}from"./field.js";import{r as m,t as h}from"./zod.js";import{u as g}from"./ec23.js";import{t as _}from"./form-actions.js";var v=t(),y=e();function b(){let e=(0,v.c)(53),{id:t}=l.useParams(),b=i(),x;e[0]===t?x=e[1]:(x=c(t),e[0]=t,e[1]=x);let{data:S}=r(x),C=S.Volumes?.[0],w=C?.VolumeId,T=s(),E=C?.Size??1,D;e[2]===E?D=e[3]:(D=h(g.refine(e=>e.size>E,{message:`New size must be greater than current size (${E} GiB)`,path:[`size`]})),e[2]=E,e[3]=D);let O;e[4]===E?O=e[5]:(O={size:E},e[4]=E,e[5]=O);let k;e[6]!==D||e[7]!==O?(k={resolver:D,defaultValues:O},e[6]=D,e[7]=O,e[8]=k):k=e[8];let{handleSubmit:A,register:j,formState:M}=m(k),{errors:N,isSubmitting:P}=M;if(!w){let t;return e[9]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),(0,y.jsx)(`p`,{className:`text-muted-foreground`,children:`Volume not found.`})]}),e[9]=t):t=e[9],t}let F;e[10]!==T||e[11]!==b||e[12]!==w?(F=async e=>{await T.mutateAsync({...e,volumeId:w}),b({to:`/ec2/describe-volumes/$id`,params:{id:w}})},e[10]=T,e[11]=b,e[12]=w,e[13]=F):F=e[13];let I=F,L,R;e[14]===w?(L=e[15],R=e[16]):(L=(0,y.jsx)(a,{params:{id:w},to:`/ec2/describe-volumes/$id`,children:`Back to volume`}),R=(0,y.jsx)(u,{subtitle:w,title:`Resize Volume`}),e[14]=w,e[15]=L,e[16]=R);let z;e[17]===T.error?z=e[18]:(z=T.error&&(0,y.jsx)(n,{error:T.error,msg:`Failed to resize volume`}),e[17]=T.error,e[18]=z);let B;e[19]!==A||e[20]!==I?(B=A(I),e[19]=A,e[20]=I,e[21]=B):B=e[21];let V;e[22]===E?V=e[23]:(V=(0,y.jsx)(`div`,{className:`space-y-2`,children:(0,y.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Current size: `,E,` GiB`]})}),e[22]=E,e[23]=V);let H;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,y.jsx)(d,{children:(0,y.jsx)(`label`,{htmlFor:`size`,children:`New size (GiB)`})}),e[24]=H):H=e[24];let U=!!N.size,W=E+1,G;e[25]===j?G=e[26]:(G=j(`size`,{valueAsNumber:!0}),e[25]=j,e[26]=G);let K;e[27]!==U||e[28]!==W||e[29]!==G?(K=(0,y.jsx)(o,{"aria-invalid":U,id:`size`,min:W,type:`number`,...G}),e[27]=U,e[28]=W,e[29]=G,e[30]=K):K=e[30];let q;e[31]===N.size?q=e[32]:(q=(0,y.jsx)(f,{errors:[N.size]}),e[31]=N.size,e[32]=q);let J;e[33]!==K||e[34]!==q?(J=(0,y.jsxs)(p,{children:[H,K,q]}),e[33]=K,e[34]=q,e[35]=J):J=e[35];let Y;e[36]!==b||e[37]!==w?(Y=()=>b({to:`/ec2/describe-volumes/$id`,params:{id:w}}),e[36]=b,e[37]=w,e[38]=Y):Y=e[38];let X;e[39]!==P||e[40]!==T.isPending||e[41]!==Y?(X=(0,y.jsx)(_,{isPending:T.isPending,isSubmitting:P,onCancel:Y,pendingLabel:`Resizing\\u2026`,submitLabel:`Resize Volume`}),e[39]=P,e[40]=T.isPending,e[41]=Y,e[42]=X):X=e[42];let Z;e[43]!==V||e[44]!==J||e[45]!==X||e[46]!==B?(Z=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:B,children:[V,J,X]}),e[43]=V,e[44]=J,e[45]=X,e[46]=B,e[47]=Z):Z=e[47];let Q;return e[48]!==Z||e[49]!==L||e[50]!==R||e[51]!==z?(Q=(0,y.jsxs)(y.Fragment,{children:[L,R,z,Z]}),e[48]=Z,e[49]=L,e[50]=R,e[51]=z,e[52]=Q):Q=e[52],Q}export{b as component};
@@ -0,0 +1 @@
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{t as r}from"./error-banner.js";import{t as i}from"./useSuspenseQuery.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{V as s}from"./SignatureV4.js";import{t as c}from"./back-link.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{x as d}from"./ec2.js";import{_ as f,b as p}from"./ec22.js";import{t as m}from"./_id3.js";import{t as h}from"./page-heading.js";import{t as g}from"./state-badge.js";import{n as _,t as v}from"./detail-row.js";import{t as y}from"./delete-confirmation-dialog.js";var b=e(n()),x=t();function S(){let{id:e}=m.useParams(),t=o(),{data:n}=i(p(e)),{data:S}=i(f),C=n.Vpcs?.[0],w=d(),[T,E]=(0,b.useState)(!1),D=S.Subnets?.filter(t=>t.VpcId===e)??[],O=async()=>{try{await w.mutateAsync(e),t({to:`/ec2/describe-vpcs`})}finally{E(!1)}};if(!C?.VpcId)return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),(0,x.jsx)(`p`,{className:`text-muted-foreground`,children:`VPC not found.`})]});let k=s(C.Tags);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),w.error&&(0,x.jsx)(r,{error:w.error,msg:`Failed to delete VPC`}),(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(h,{actions:(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsxs)(u,{onClick:()=>E(!0),size:`sm`,variant:`destructive`,children:[(0,x.jsx)(l,{className:`size-4`}),`Delete`]}),(0,x.jsx)(g,{state:C.State})]}),subtitle:`VPC Details`,title:k?`${C.VpcId} (${k})`:C.VpcId}),(0,x.jsxs)(_,{children:[(0,x.jsx)(_.Header,{children:`VPC Information`}),(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`VPC ID`,value:C.VpcId}),(0,x.jsx)(v,{label:`State`,value:C.State}),(0,x.jsx)(v,{label:`CIDR Block`,value:C.CidrBlock}),(0,x.jsx)(v,{label:`Is Default`,value:C.IsDefault?`Yes`:`No`}),(0,x.jsx)(v,{label:`DHCP Options ID`,value:C.DhcpOptionsId}),(0,x.jsx)(v,{label:`Instance Tenancy`,value:C.InstanceTenancy}),(0,x.jsx)(v,{label:`Owner ID`,value:C.OwnerId})]})]}),D.length>0&&(0,x.jsxs)(_,{children:[(0,x.jsxs)(_.Header,{children:[`Subnets (`,D.length,`)`]}),D.map(e=>e.SubnetId?(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`Subnet ID`,value:(0,x.jsx)(a,{className:`text-primary hover:underline`,params:{id:e.SubnetId},to:`/ec2/describe-subnets/$id`,children:e.SubnetId})}),(0,x.jsx)(v,{label:`CIDR Block`,value:e.CidrBlock}),(0,x.jsx)(v,{label:`Availability Zone`,value:e.AvailabilityZone}),(0,x.jsx)(v,{label:`State`,value:e.State})]},e.SubnetId):null)]})]}),(0,x.jsx)(y,{description:`Are you sure you want to delete the VPC "${C.VpcId}"? This action cannot be undone. The VPC must have no associated subnets or internet gateways.`,isPending:w.isPending,onConfirm:O,onOpenChange:E,open:T,title:`Delete VPC`})]})}export{S as component};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id20.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useStore.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{_ as r,b as i}from"./ec22.js";var a=e(`/_auth/ec2/(vpc)/describe-vpcs/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(i(t.id)),e.queryClient.ensureQueryData(r)])},head:({params:e})=>({meta:[{title:`${e.id} | VPC | Mulga`}]}),component:t(()=>n(()=>import(`./_id20.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),`component`)});export{a as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id24.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useStore.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{_ as r,b as i}from"./ec22.js";var a=e(`/_auth/ec2/(vpc)/describe-vpcs/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(i(t.id)),e.queryClient.ensureQueryData(r)])},head:({params:e})=>({meta:[{title:`${e.id} | VPC | Mulga`}]}),component:t(()=>n(()=>import(`./_id24.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),`component`)});export{a as t};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id19.js","assets/compiler-runtime.js","assets/ec2.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/input.js","assets/button.js","assets/dist.js","assets/separator.js","assets/createBaseUIEventDetails.js","assets/zod.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/useStore.js","assets/back-link.js","assets/link.js","assets/createLucideIcon.js","assets/form-actions.js","assets/page-heading.js","assets/field.js","assets/ec23.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{v as r}from"./ec22.js";var i=e(`/_auth/ec2/(volumes)/modify-volume/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(r(t.id))},head:({params:e})=>({meta:[{title:`Resize ${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id19.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),`component`)});export{i as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id23.js","assets/compiler-runtime.js","assets/ec2.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/input.js","assets/button.js","assets/dist.js","assets/separator.js","assets/createBaseUIEventDetails.js","assets/zod.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/useStore.js","assets/back-link.js","assets/link.js","assets/createLucideIcon.js","assets/form-actions.js","assets/page-heading.js","assets/field.js","assets/ec23.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{v as r}from"./ec22.js";var i=e(`/_auth/ec2/(volumes)/modify-volume/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(r(t.id))},head:({params:e})=>({meta:[{title:`Resize ${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id23.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),`component`)});export{i as t};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id17.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useStore.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{g as r}from"./ec22.js";var i=e(`/_auth/ec2/(subnet)/describe-subnets/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(r(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Subnet | Mulga`}]}),component:t(()=>n(()=>import(`./_id17.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),`component`)});export{i as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id21.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec22.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/elbv2.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/elbv22.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/tabs.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/field.js","assets/useQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useSuspenseQuery.js","assets/useNavigate.js","assets/back-link.js","assets/link.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{o as r}from"./ec22.js";import{a as i,o as a,s as o}from"./elbv22.js";var s=e(`/_auth/ec2/(target-groups)/describe-target-groups/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(o(n)),e.queryClient.ensureQueryData(a(n)),e.queryClient.ensureQueryData(i([n])),e.queryClient.ensureQueryData(r)])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Target Group | Mulga`}]}),component:t(()=>n(()=>import(`./_id21.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41])),`component`)});export{s as t};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id16.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/input.js","assets/separator.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/copy.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/field.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{d as r,m as i}from"./ec22.js";var a=e(`/_auth/ec2/(snapshots)/describe-snapshots/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(i(t.id)),e.queryClient.ensureQueryData(r)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id16.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36])),`component`)});export{a as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id20.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useStore.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{g as r}from"./ec22.js";var i=e(`/_auth/ec2/(subnet)/describe-subnets/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(r(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Subnet | Mulga`}]}),component:t(()=>n(()=>import(`./_id20.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),`component`)});export{i as t};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id14.js","assets/compiler-runtime.js","assets/ec2.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useStore.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{l as r,o as i}from"./ec22.js";var a=e(`/_auth/ec2/(placement-groups)/describe-placement-groups/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(r(t.id)),e.queryClient.ensureQueryData(i)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id14.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),`component`)});export{a as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id19.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/input.js","assets/separator.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/copy.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/field.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{d as r,m as i}from"./ec22.js";var a=e(`/_auth/ec2/(snapshots)/describe-snapshots/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(i(t.id)),e.queryClient.ensureQueryData(r)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id19.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36])),`component`)});export{a as t};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id13.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/useStore.js","assets/back-link.js","assets/link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{s as r}from"./ec22.js";var i=e(`/_auth/ec2/(key)/describe-key-pairs/$id`)({loader:async({context:e,params:t})=>await e.queryClient.ensureQueryData(r(t.id)),head:({loaderData:e})=>({meta:[{title:`${e?.KeyPairs?.[0]?.KeyName??`Key Pair`} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id13.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31])),`component`)});export{i as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id17.js","assets/compiler-runtime.js","assets/ec2.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/useStore.js","assets/useNavigate.js","assets/back-link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{l as r,o as i}from"./ec22.js";var a=e(`/_auth/ec2/(placement-groups)/describe-placement-groups/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(r(t.id)),e.queryClient.ensureQueryData(i)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id17.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])),`component`)});export{a as t};
+2 -2
View File
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id12.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec2.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/link.js","assets/back-link.js","assets/trash-2.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/field.js","assets/textarea.js","assets/ami-details.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{a as r,i,n as a}from"./ec22.js";var o=e(`/_auth/ec2/(instances)/describe-instances/$id`)({loader:async({context:e,params:t})=>{let[n]=await Promise.all([e.queryClient.ensureQueryData(i(t.id)),e.queryClient.ensureQueryData(r)]),o=n.Reservations?.[0]?.Instances?.[0]?.ImageId;return await e.queryClient.ensureQueryData(a(o)),n},head:({loaderData:e})=>({meta:[{title:`${e?.Reservations?.[0]?.Instances?.[0]?.InstanceId??`Instance`} | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./_id12.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])),`component`)});export{o as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_id16.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/ec22.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/elbv2.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/elbv22.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/tabs.js","assets/select.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/input.js","assets/field.js","assets/zod.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/back-link.js","assets/link.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/elbv23.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{_ as r}from"./ec22.js";import{a as i,c as a,n as o,r as s,t as c}from"./elbv22.js";var l=e(`/_auth/ec2/(load-balancers)/describe-load-balancers/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(s(n)),e.queryClient.ensureQueryData(c(n)),e.queryClient.ensureQueryData(o(n)),e.queryClient.ensureQueryData(i([n])),e.queryClient.ensureQueryData(a),e.queryClient.ensureQueryData(r)])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Load Balancer | Mulga`}]}),component:t(()=>n(()=>import(`./_id16.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43])),`component`)});export{l as t};
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_policyArn2.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/iam.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/iam2.js","assets/queryOptions.js","assets/button.js","assets/dist.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/useStore.js","assets/back-link.js","assets/link.js","assets/createLucideIcon.js","assets/trash-2.js","assets/delete-confirmation-dialog.js","assets/alert-dialog.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/detail-row.js","assets/page-heading.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{a as r,i}from"./iam2.js";var a=e(`/_auth/iam/(policies)/list-policies/$policyArn`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.policyArn),a=await e.queryClient.ensureQueryData(i(n)),o=a.Policy?.DefaultVersionId;return o&&await e.queryClient.ensureQueryData(r(n,o)),a},head:({loaderData:e})=>({meta:[{title:`${e?.Policy?.PolicyName??`Policy`} | IAM | Mulga`}]}),component:t(()=>n(()=>import(`./_policyArn2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),`component`)});export{a as t};
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{a as r,i}from"./iam2.js";var a=e(`/_auth/iam/(policies)/list-policies/$policyArn`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.policyArn),a=await e.queryClient.ensureQueryData(i(n)),o=a.Policy?.DefaultVersionId;return o&&await e.queryClient.ensureQueryData(r(n,o)),a},head:({loaderData:e})=>({meta:[{title:`${e?.Policy?.PolicyName??`Policy`} | IAM | Mulga`}]}),component:t(()=>n(()=>import(`./_policyArn2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),`component`)});export{a as t};
@@ -1 +1 @@
import{a as e,n as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./error-banner.js";import{t as a}from"./useSuspenseQuery.js";import{t as o}from"./useNavigate.js";import{R as s}from"./SignatureV4.js";import{t as c}from"./back-link.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{o as d}from"./iam.js";import{a as f,i as p}from"./iam2.js";import{t as m}from"./_policyArn.js";import{t as h}from"./page-heading.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./delete-confirmation-dialog.js";var y=e(n()),b=r(),x=t();function S(e){let t=(0,b.c)(4),{document:n}=e,r;try{let e;t[0]===n?e=t[1]:(e=JSON.stringify(JSON.parse(n),null,2),t[0]=n,t[1]=e),r=e}catch{r=n}let i;return t[2]===r?i=t[3]:(i=(0,x.jsx)(`pre`,{className:`overflow-auto rounded-md border bg-muted p-4 font-mono text-sm`,children:r}),t[2]=r,t[3]=i),i}function C(){let{policyArn:e}=m.useParams(),t=decodeURIComponent(e),n=o(),{data:r}=a(p(t)),b=r.Policy,C=d(),[w,T]=(0,y.useState)(!1),{data:E}=a(f(t,b?.DefaultVersionId??`v1`)),D=E?.PolicyVersion?.Document?decodeURIComponent(E.PolicyVersion.Document):null;return b?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/iam/list-policies`,children:`Back to policies`}),C.error&&(0,x.jsx)(i,{error:C.error,msg:`Failed to delete policy`}),(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(h,{actions:(0,x.jsxs)(u,{onClick:()=>T(!0),size:`sm`,variant:`destructive`,children:[(0,x.jsx)(l,{className:`size-4`}),`Delete`]}),subtitle:`IAM Policy Details`,title:b.PolicyName??``}),(0,x.jsxs)(g,{children:[(0,x.jsx)(g.Header,{children:`Policy Information`}),(0,x.jsxs)(g.Content,{children:[(0,x.jsx)(_,{label:`Policy Name`,value:b.PolicyName}),(0,x.jsx)(_,{label:`Policy ID`,value:b.PolicyId}),(0,x.jsx)(_,{label:`ARN`,value:b.Arn}),(0,x.jsx)(_,{label:`Path`,value:b.Path}),(0,x.jsx)(_,{label:`Description`,value:b.Description??`-`}),(0,x.jsx)(_,{label:`Created`,value:s(b.CreateDate)})]})]}),D&&(0,x.jsxs)(g,{children:[(0,x.jsx)(g.Header,{children:`Policy Document`}),(0,x.jsx)(`div`,{className:`p-4`,children:(0,x.jsx)(S,{document:D})})]})]}),(0,x.jsx)(v,{description:`Are you sure you want to delete the policy "${b.PolicyName}"? This action cannot be undone.`,isPending:C.isPending,onConfirm:async()=>{try{await C.mutateAsync(t),n({to:`/iam/list-policies`})}finally{T(!1)}},onOpenChange:T,open:w,title:`Delete Policy`})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/iam/list-policies`,children:`Back to policies`}),(0,x.jsx)(`p`,{className:`text-muted-foreground`,children:`Policy not found.`})]})}export{C as component};
import{a as e,n as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./error-banner.js";import{t as a}from"./useSuspenseQuery.js";import{t as o}from"./useNavigate.js";import{z as s}from"./SignatureV4.js";import{t as c}from"./back-link.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{o as d}from"./iam.js";import{a as f,i as p}from"./iam2.js";import{t as m}from"./_policyArn.js";import{t as h}from"./page-heading.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./delete-confirmation-dialog.js";var y=e(n()),b=r(),x=t();function S(e){let t=(0,b.c)(4),{document:n}=e,r;try{let e;t[0]===n?e=t[1]:(e=JSON.stringify(JSON.parse(n),null,2),t[0]=n,t[1]=e),r=e}catch{r=n}let i;return t[2]===r?i=t[3]:(i=(0,x.jsx)(`pre`,{className:`overflow-auto rounded-md border bg-muted p-4 font-mono text-sm`,children:r}),t[2]=r,t[3]=i),i}function C(){let{policyArn:e}=m.useParams(),t=decodeURIComponent(e),n=o(),{data:r}=a(p(t)),b=r.Policy,C=d(),[w,T]=(0,y.useState)(!1),{data:E}=a(f(t,b?.DefaultVersionId??`v1`)),D=E?.PolicyVersion?.Document?decodeURIComponent(E.PolicyVersion.Document):null;return b?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/iam/list-policies`,children:`Back to policies`}),C.error&&(0,x.jsx)(i,{error:C.error,msg:`Failed to delete policy`}),(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(h,{actions:(0,x.jsxs)(u,{onClick:()=>T(!0),size:`sm`,variant:`destructive`,children:[(0,x.jsx)(l,{className:`size-4`}),`Delete`]}),subtitle:`IAM Policy Details`,title:b.PolicyName??``}),(0,x.jsxs)(g,{children:[(0,x.jsx)(g.Header,{children:`Policy Information`}),(0,x.jsxs)(g.Content,{children:[(0,x.jsx)(_,{label:`Policy Name`,value:b.PolicyName}),(0,x.jsx)(_,{label:`Policy ID`,value:b.PolicyId}),(0,x.jsx)(_,{label:`ARN`,value:b.Arn}),(0,x.jsx)(_,{label:`Path`,value:b.Path}),(0,x.jsx)(_,{label:`Description`,value:b.Description??`-`}),(0,x.jsx)(_,{label:`Created`,value:s(b.CreateDate)})]})]}),D&&(0,x.jsxs)(g,{children:[(0,x.jsx)(g.Header,{children:`Policy Document`}),(0,x.jsx)(`div`,{className:`p-4`,children:(0,x.jsx)(S,{document:D})})]})]}),(0,x.jsx)(v,{description:`Are you sure you want to delete the policy "${b.PolicyName}"? This action cannot be undone.`,isPending:C.isPending,onConfirm:async()=>{try{await C.mutateAsync(t),n({to:`/iam/list-policies`})}finally{T(!1)}},onOpenChange:T,open:w,title:`Delete Policy`})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c,{to:`/iam/list-policies`,children:`Back to policies`}),(0,x.jsx)(`p`,{className:`text-muted-foreground`,children:`Policy not found.`})]})}export{C as component};
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_userName2.js","assets/compiler-runtime.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/iam.js","assets/awsClient.js","assets/toUtf8.browser.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/iam2.js","assets/queryOptions.js","assets/alert-dialog.js","assets/button.js","assets/dist.js","assets/DialogTitle.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/back-link.js","assets/link.js","assets/createLucideIcon.js","assets/check.js","assets/trash-2.js","assets/triangle-alert.js","assets/delete-confirmation-dialog.js","assets/detail-row.js","assets/page-heading.js","assets/state-badge.js","assets/use-copy-to-clipboard.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{n as r,o as i,r as a,t as o}from"./iam2.js";var s=e(`/_auth/iam/(users)/list-users/$userName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(i(t.userName)),e.queryClient.ensureQueryData(o(t.userName)),e.queryClient.ensureQueryData(r(t.userName)),e.queryClient.ensureQueryData(a)])},head:({params:e})=>({meta:[{title:`${e.userName} | IAM | Mulga`}]}),component:t(()=>n(()=>import(`./_userName2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])),`component`)});export{s as t};
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{n as r,o as i,r as a,t as o}from"./iam2.js";var s=e(`/_auth/iam/(users)/list-users/$userName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(i(t.userName)),e.queryClient.ensureQueryData(o(t.userName)),e.queryClient.ensureQueryData(r(t.userName)),e.queryClient.ensureQueryData(a)])},head:({params:e})=>({meta:[{title:`${e.userName} | IAM | Mulga`}]}),component:t(()=>n(()=>import(`./_userName2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])),`component`)});export{s as t};
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{t as e}from"./compiler-runtime.js";import{r as t,t as n}from"./useBaseQuery.js";import{t as r}from"./queryOptions.js";import{g as i,t as a}from"./dist.js";import{i as o,r as s}from"./admin-context.js";import{F as c,S as l}from"./SignatureV4.js";function u(e,r){return n(e,t,r)}var d=e(),f=a(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium whitespace-nowrap transition-all transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-2.5!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border bg-input/20 text-foreground dark:bg-input/30 [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function p(e){let t=(0,d.c)(13),n,r,a,s,l;if(t[0]!==e){let{className:u,variant:d,render:p,...m}=e;n=p,l=d===void 0?`default`:d,s=o,r=`span`,a=i({className:c(f({className:u,variant:l}))},m),t[0]=e,t[1]=n,t[2]=r,t[3]=a,t[4]=s,t[5]=l}else n=t[1],r=t[2],a=t[3],s=t[4],l=t[5];let u;t[6]===l?u=t[7]:(u={slot:`badge`,variant:l},t[6]=l,t[7]=u);let p;return t[8]!==n||t[9]!==r||t[10]!==a||t[11]!==u?(p={defaultTagName:r,props:a,render:n,state:u},t[8]=n,t[9]=r,t[10]=a,t[11]=u,t[12]=p):p=t[12],s(p)}var m=r({queryKey:[`admin`,`nodes`],queryFn:async()=>{let e=l();if(!e)throw Error(`Not authenticated`);return await s({action:`GetNodes`,credentials:e})},staleTime:1e4}),h=r({queryKey:[`admin`,`vms`],queryFn:async()=>{let e=l();if(!e)throw Error(`Not authenticated`);return await s({action:`GetVMs`,credentials:e})},staleTime:1e4}),g=r({queryKey:[`admin`,`storageStatus`],queryFn:async()=>{let e=l();if(!e)throw Error(`Not authenticated`);return await s({action:`GetStorageStatus`,credentials:e})},staleTime:1e4});export{u as a,p as i,g as n,h as r,m as t};
import{t as e}from"./compiler-runtime.js";import{t}from"./queryOptions.js";import{g as n,t as r}from"./dist.js";import{i,r as a}from"./admin-context.js";import{I as o,S as s}from"./SignatureV4.js";var c=e(),l=r(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium whitespace-nowrap transition-all transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-2.5!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border bg-input/20 text-foreground dark:bg-input/30 [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function u(e){let t=(0,c.c)(13),r,a,s,u,d;if(t[0]!==e){let{className:c,variant:f,render:p,...m}=e;r=p,d=f===void 0?`default`:f,u=i,a=`span`,s=n({className:o(l({className:c,variant:d}))},m),t[0]=e,t[1]=r,t[2]=a,t[3]=s,t[4]=u,t[5]=d}else r=t[1],a=t[2],s=t[3],u=t[4],d=t[5];let f;t[6]===d?f=t[7]:(f={slot:`badge`,variant:d},t[6]=d,t[7]=f);let p;return t[8]!==r||t[9]!==a||t[10]!==s||t[11]!==f?(p={defaultTagName:a,props:s,render:r,state:f},t[8]=r,t[9]=a,t[10]=s,t[11]=f,t[12]=p):p=t[12],u(p)}var d=t({queryKey:[`admin`,`nodes`],queryFn:async()=>{let e=s();if(!e)throw Error(`Not authenticated`);return await a({action:`GetNodes`,credentials:e})},staleTime:1e4}),f=t({queryKey:[`admin`,`vms`],queryFn:async()=>{let e=s();if(!e)throw Error(`Not authenticated`);return await a({action:`GetVMs`,credentials:e})},staleTime:1e4}),p=t({queryKey:[`admin`,`storageStatus`],queryFn:async()=>{let e=s();if(!e)throw Error(`Not authenticated`);return await a({action:`GetStorageStatus`,credentials:e})},staleTime:1e4});export{u as i,p as n,f as r,d as t};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{R as r}from"./SignatureV4.js";import{n as i,t as a}from"./detail-row.js";var o=t(),s=e();function c(e){let t=(0,o.c)(58),{image:c,showExtendedDetails:u}=e,d=u===void 0?!1:u,f;t[0]===c.CreationDate?f=t[1]:(f=r(c.CreationDate),t[0]=c.CreationDate,t[1]=f);let p=f,m=d?`AMI Information`:`AMI Details`,h;t[2]===m?h=t[3]:(h=(0,s.jsx)(i.Header,{children:m}),t[2]=m,t[3]=h);let g;t[4]!==c.ImageId||t[5]!==d?(g=c.ImageId&&!d?(0,s.jsx)(n,{className:`text-primary hover:underline`,params:{id:c.ImageId},to:`/ec2/describe-images/$id`,children:c.ImageId}):c.ImageId,t[4]=c.ImageId,t[5]=d,t[6]=g):g=t[6];let _;t[7]===g?_=t[8]:(_=(0,s.jsx)(a,{label:`AMI ID`,value:g}),t[7]=g,t[8]=_);let v;t[9]===c.Name?v=t[10]:(v=(0,s.jsx)(a,{label:`AMI Name`,value:c.Name}),t[9]=c.Name,t[10]=v);let y;t[11]===c.Description?y=t[12]:(y=(0,s.jsx)(a,{label:`Description`,value:c.Description}),t[11]=c.Description,t[12]=y);let b;t[13]===c.Architecture?b=t[14]:(b=(0,s.jsx)(a,{label:`Architecture`,value:c.Architecture}),t[13]=c.Architecture,t[14]=b);let x;t[15]===c.VirtualizationType?x=t[16]:(x=(0,s.jsx)(a,{label:`Virtualization Type`,value:c.VirtualizationType}),t[15]=c.VirtualizationType,t[16]=x);let S=c.Platform??`Linux`,C;t[17]===S?C=t[18]:(C=(0,s.jsx)(a,{label:`Platform`,value:S}),t[17]=S,t[18]=C);let w;t[19]===c.PlatformDetails?w=t[20]:(w=(0,s.jsx)(a,{label:`Platform Details`,value:c.PlatformDetails}),t[19]=c.PlatformDetails,t[20]=w);let T;t[21]===c.ImageType?T=t[22]:(T=(0,s.jsx)(a,{label:`Image Type`,value:c.ImageType}),t[21]=c.ImageType,t[22]=T);let E;t[23]===c.RootDeviceType?E=t[24]:(E=(0,s.jsx)(a,{label:`Root Device Type`,value:c.RootDeviceType}),t[23]=c.RootDeviceType,t[24]=E);let D;t[25]===c.RootDeviceName?D=t[26]:(D=(0,s.jsx)(a,{label:`Root Device Name`,value:c.RootDeviceName}),t[25]=c.RootDeviceName,t[26]=D);let O;t[27]===c.OwnerId?O=t[28]:(O=(0,s.jsx)(a,{label:`Owner`,value:c.OwnerId}),t[27]=c.OwnerId,t[28]=O);let k;t[29]===c.State?k=t[30]:(k=(0,s.jsx)(a,{label:`State`,value:c.State}),t[29]=c.State,t[30]=k);let A;t[31]!==p||t[32]!==c.Public||t[33]!==d?(A=d&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a,{label:`Creation Date`,value:p}),(0,s.jsx)(a,{label:`Public`,value:c.Public?`Yes`:`No`})]}),t[31]=p,t[32]=c.Public,t[33]=d,t[34]=A):A=t[34];let j;t[35]!==x||t[36]!==C||t[37]!==w||t[38]!==T||t[39]!==E||t[40]!==D||t[41]!==O||t[42]!==k||t[43]!==A||t[44]!==_||t[45]!==v||t[46]!==y||t[47]!==b?(j=(0,s.jsxs)(i.Content,{children:[_,v,y,b,x,C,w,T,E,D,O,k,A]}),t[35]=x,t[36]=C,t[37]=w,t[38]=T,t[39]=E,t[40]=D,t[41]=O,t[42]=k,t[43]=A,t[44]=_,t[45]=v,t[46]=y,t[47]=b,t[48]=j):j=t[48];let M;t[49]!==j||t[50]!==h?(M=(0,s.jsxs)(i,{children:[h,j]}),t[49]=j,t[50]=h,t[51]=M):M=t[51];let N;t[52]!==c.BlockDeviceMappings||t[53]!==d?(N=d&&c.BlockDeviceMappings&&c.BlockDeviceMappings.length>0&&c.BlockDeviceMappings.map(l),t[52]=c.BlockDeviceMappings,t[53]=d,t[54]=N):N=t[54];let P;return t[55]!==M||t[56]!==N?(P=(0,s.jsxs)(s.Fragment,{children:[M,N]}),t[55]=M,t[56]=N,t[57]=P):P=t[57],P}function l(e){return(0,s.jsxs)(i,{children:[(0,s.jsxs)(i.Header,{children:[`Block Device: `,e.DeviceName]}),(0,s.jsxs)(i.Content,{children:[(0,s.jsx)(a,{label:`Device Name`,value:e.DeviceName}),e.Ebs&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a,{label:`Volume Size`,value:e.Ebs.VolumeSize?`${e.Ebs.VolumeSize} GB`:void 0}),(0,s.jsx)(a,{label:`Volume Type`,value:e.Ebs.VolumeType}),(0,s.jsx)(a,{label:`Delete On Termination`,value:e.Ebs.DeleteOnTermination?`Yes`:`No`}),(0,s.jsx)(a,{label:`Encrypted`,value:e.Ebs.Encrypted?`Yes`:`No`}),e.Ebs.SnapshotId&&(0,s.jsx)(a,{label:`Snapshot ID`,value:(0,s.jsx)(n,{className:`text-primary hover:underline`,params:{id:e.Ebs.SnapshotId},to:`/ec2/describe-snapshots/$id`,children:e.Ebs.SnapshotId})})]}),e.VirtualName&&(0,s.jsx)(a,{label:`Virtual Name`,value:e.VirtualName})]})]},e.DeviceName)}export{c as t};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{z as r}from"./SignatureV4.js";import{n as i,t as a}from"./detail-row.js";var o=t(),s=e();function c(e){let t=(0,o.c)(58),{image:c,showExtendedDetails:u}=e,d=u===void 0?!1:u,f;t[0]===c.CreationDate?f=t[1]:(f=r(c.CreationDate),t[0]=c.CreationDate,t[1]=f);let p=f,m=d?`AMI Information`:`AMI Details`,h;t[2]===m?h=t[3]:(h=(0,s.jsx)(i.Header,{children:m}),t[2]=m,t[3]=h);let g;t[4]!==c.ImageId||t[5]!==d?(g=c.ImageId&&!d?(0,s.jsx)(n,{className:`text-primary hover:underline`,params:{id:c.ImageId},to:`/ec2/describe-images/$id`,children:c.ImageId}):c.ImageId,t[4]=c.ImageId,t[5]=d,t[6]=g):g=t[6];let _;t[7]===g?_=t[8]:(_=(0,s.jsx)(a,{label:`AMI ID`,value:g}),t[7]=g,t[8]=_);let v;t[9]===c.Name?v=t[10]:(v=(0,s.jsx)(a,{label:`AMI Name`,value:c.Name}),t[9]=c.Name,t[10]=v);let y;t[11]===c.Description?y=t[12]:(y=(0,s.jsx)(a,{label:`Description`,value:c.Description}),t[11]=c.Description,t[12]=y);let b;t[13]===c.Architecture?b=t[14]:(b=(0,s.jsx)(a,{label:`Architecture`,value:c.Architecture}),t[13]=c.Architecture,t[14]=b);let x;t[15]===c.VirtualizationType?x=t[16]:(x=(0,s.jsx)(a,{label:`Virtualization Type`,value:c.VirtualizationType}),t[15]=c.VirtualizationType,t[16]=x);let S=c.Platform??`Linux`,C;t[17]===S?C=t[18]:(C=(0,s.jsx)(a,{label:`Platform`,value:S}),t[17]=S,t[18]=C);let w;t[19]===c.PlatformDetails?w=t[20]:(w=(0,s.jsx)(a,{label:`Platform Details`,value:c.PlatformDetails}),t[19]=c.PlatformDetails,t[20]=w);let T;t[21]===c.ImageType?T=t[22]:(T=(0,s.jsx)(a,{label:`Image Type`,value:c.ImageType}),t[21]=c.ImageType,t[22]=T);let E;t[23]===c.RootDeviceType?E=t[24]:(E=(0,s.jsx)(a,{label:`Root Device Type`,value:c.RootDeviceType}),t[23]=c.RootDeviceType,t[24]=E);let D;t[25]===c.RootDeviceName?D=t[26]:(D=(0,s.jsx)(a,{label:`Root Device Name`,value:c.RootDeviceName}),t[25]=c.RootDeviceName,t[26]=D);let O;t[27]===c.OwnerId?O=t[28]:(O=(0,s.jsx)(a,{label:`Owner`,value:c.OwnerId}),t[27]=c.OwnerId,t[28]=O);let k;t[29]===c.State?k=t[30]:(k=(0,s.jsx)(a,{label:`State`,value:c.State}),t[29]=c.State,t[30]=k);let A;t[31]!==p||t[32]!==c.Public||t[33]!==d?(A=d&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a,{label:`Creation Date`,value:p}),(0,s.jsx)(a,{label:`Public`,value:c.Public?`Yes`:`No`})]}),t[31]=p,t[32]=c.Public,t[33]=d,t[34]=A):A=t[34];let j;t[35]!==x||t[36]!==C||t[37]!==w||t[38]!==T||t[39]!==E||t[40]!==D||t[41]!==O||t[42]!==k||t[43]!==A||t[44]!==_||t[45]!==v||t[46]!==y||t[47]!==b?(j=(0,s.jsxs)(i.Content,{children:[_,v,y,b,x,C,w,T,E,D,O,k,A]}),t[35]=x,t[36]=C,t[37]=w,t[38]=T,t[39]=E,t[40]=D,t[41]=O,t[42]=k,t[43]=A,t[44]=_,t[45]=v,t[46]=y,t[47]=b,t[48]=j):j=t[48];let M;t[49]!==j||t[50]!==h?(M=(0,s.jsxs)(i,{children:[h,j]}),t[49]=j,t[50]=h,t[51]=M):M=t[51];let N;t[52]!==c.BlockDeviceMappings||t[53]!==d?(N=d&&c.BlockDeviceMappings&&c.BlockDeviceMappings.length>0&&c.BlockDeviceMappings.map(l),t[52]=c.BlockDeviceMappings,t[53]=d,t[54]=N):N=t[54];let P;return t[55]!==M||t[56]!==N?(P=(0,s.jsxs)(s.Fragment,{children:[M,N]}),t[55]=M,t[56]=N,t[57]=P):P=t[57],P}function l(e){return(0,s.jsxs)(i,{children:[(0,s.jsxs)(i.Header,{children:[`Block Device: `,e.DeviceName]}),(0,s.jsxs)(i.Content,{children:[(0,s.jsx)(a,{label:`Device Name`,value:e.DeviceName}),e.Ebs&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a,{label:`Volume Size`,value:e.Ebs.VolumeSize?`${e.Ebs.VolumeSize} GB`:void 0}),(0,s.jsx)(a,{label:`Volume Type`,value:e.Ebs.VolumeType}),(0,s.jsx)(a,{label:`Delete On Termination`,value:e.Ebs.DeleteOnTermination?`Yes`:`No`}),(0,s.jsx)(a,{label:`Encrypted`,value:e.Ebs.Encrypted?`Yes`:`No`}),e.Ebs.SnapshotId&&(0,s.jsx)(a,{label:`Snapshot ID`,value:(0,s.jsx)(n,{className:`text-primary hover:underline`,params:{id:e.Ebs.SnapshotId},to:`/ec2/describe-snapshots/$id`,children:e.Ebs.SnapshotId})})]}),e.VirtualName&&(0,s.jsx)(a,{label:`Virtual Name`,value:e.VirtualName})]})]},e.DeviceName)}export{c as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{F as n}from"./SignatureV4.js";var r=t(),i=e();function a(e){let t=(0,r.c)(10),a,o,s;t[0]===e?(a=t[1],o=t[2],s=t[3]):({className:a,size:s,...o}=e,t[0]=e,t[1]=a,t[2]=o,t[3]=s);let c=s===void 0?`default`:s,l;t[4]===a?l=t[5]:(l=n(`group/card flex flex-col gap-4 overflow-hidden rounded-lg bg-card py-4 text-xs/relaxed text-card-foreground ring-1 ring-foreground/10 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg`,a),t[4]=a,t[5]=l);let u;return t[6]!==o||t[7]!==c||t[8]!==l?(u=(0,i.jsx)(`div`,{className:l,"data-size":c,"data-slot":`card`,...o}),t[6]=o,t[7]=c,t[8]=l,t[9]=u):u=t[9],u}function o(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-lg px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-header`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function s(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`text-sm font-medium`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-title`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function c(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-action`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function l(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`px-4 group-data-[size=sm]/card:px-3`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-content`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function u(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`flex items-center rounded-b-lg px-4 group-data-[size=sm]/card:px-3 [.border-t]:pt-4 group-data-[size=sm]/card:[.border-t]:pt-3`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-footer`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}export{o as a,u as i,c as n,s as o,l as r,a as t};
import{n as e,t}from"./compiler-runtime.js";import{I as n}from"./SignatureV4.js";var r=t(),i=e();function a(e){let t=(0,r.c)(10),a,o,s;t[0]===e?(a=t[1],o=t[2],s=t[3]):({className:a,size:s,...o}=e,t[0]=e,t[1]=a,t[2]=o,t[3]=s);let c=s===void 0?`default`:s,l;t[4]===a?l=t[5]:(l=n(`group/card flex flex-col gap-4 overflow-hidden rounded-lg bg-card py-4 text-xs/relaxed text-card-foreground ring-1 ring-foreground/10 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg`,a),t[4]=a,t[5]=l);let u;return t[6]!==o||t[7]!==c||t[8]!==l?(u=(0,i.jsx)(`div`,{className:l,"data-size":c,"data-slot":`card`,...o}),t[6]=o,t[7]=c,t[8]=l,t[9]=u):u=t[9],u}function o(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-lg px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-header`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function s(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`text-sm font-medium`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-title`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function c(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-action`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function l(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`px-4 group-data-[size=sm]/card:px-3`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-content`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function u(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`flex items-center rounded-b-lg px-4 group-data-[size=sm]/card:px-3 [.border-t]:pt-4 group-data-[size=sm]/card:[.border-t]:pt-3`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`card-footer`,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}export{o as a,u as i,c as n,s as o,l as r,a as t};
@@ -1,3 +1,3 @@
import{a as e,n as t,r as n,t as r}from"./compiler-runtime.js";import{F as i}from"./SignatureV4.js";import{t as a}from"./createLucideIcon.js";import{t as o}from"./check.js";import{t as s}from"./chevron-down.js";import{t as c}from"./copy.js";import{t as l}from"./button.js";import{t as u}from"./use-copy-to-clipboard.js";var d=a(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]),f=r(),p=e(n(),1),m=t(),h={bin:`text-tactical-cyan font-semibold`,flag:`text-tactical-amber`,value:`text-foreground`,comment:`text-muted-foreground italic`,variable:`text-tactical-green font-semibold`};function g(e){return e.map(e=>e.parts.map(e=>e.value).join(``)).join(`
import{a as e,n as t,r as n,t as r}from"./compiler-runtime.js";import{I as i}from"./SignatureV4.js";import{t as a}from"./createLucideIcon.js";import{t as o}from"./check.js";import{t as s}from"./chevron-down.js";import{t as c}from"./copy.js";import{t as l}from"./button.js";import{t as u}from"./use-copy-to-clipboard.js";var d=a(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]),f=r(),p=e(n(),1),m=t(),h={bin:`text-tactical-cyan font-semibold`,flag:`text-tactical-amber`,value:`text-foreground`,comment:`text-muted-foreground italic`,variable:`text-tactical-green font-semibold`};function g(e){return e.map(e=>e.parts.map(e=>e.value).join(``)).join(`
`)}function _(e){let t=(0,f.c)(18),{commands:n}=e,[r,a]=(0,p.useState)(!1),{copied:h,copy:_}=u();if(n.length===0)return null;let b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>a(y),t[0]=b):b=t[0];let x,S;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,m.jsx)(d,{className:`size-3.5`}),S=(0,m.jsx)(`span`,{children:`AWS CLI`}),t[1]=x,t[2]=S):(x=t[1],S=t[2]);let C=r&&`rotate-180`,w;t[3]===C?w=t[4]:(w=i(`ml-auto size-3.5 transition-transform`,C),t[3]=C,t[4]=w);let T;t[5]===w?T=t[6]:(T=(0,m.jsx)(s,{className:w}),t[5]=w,t[6]=T);let E;t[7]!==r||t[8]!==T?(E=(0,m.jsxs)(`button`,{type:`button`,onClick:b,className:`flex w-full items-center gap-2 px-3 py-2 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`,"aria-expanded":r,children:[x,S,T]}),t[7]=r,t[8]=T,t[9]=E):E=t[9];let D;t[10]!==n||t[11]!==h||t[12]!==_||t[13]!==r?(D=r&&(0,m.jsxs)(`div`,{className:`border-t border-border`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-3 py-1.5`,children:[(0,m.jsx)(`span`,{className:`text-[0.625rem] text-muted-foreground`,children:n.length>1?`${n.length} commands`:`command`}),(0,m.jsxs)(l,{type:`button`,variant:`ghost`,size:`xs`,onClick:()=>_(g(n)),children:[h?(0,m.jsx)(o,{className:`size-2.5`}):(0,m.jsx)(c,{className:`size-2.5`}),h?`Copied`:`Copy`]})]}),(0,m.jsx)(`div`,{className:`overflow-x-auto p-3`,children:n.map((e,t)=>(0,m.jsxs)(`div`,{children:[n.length>1&&(0,m.jsx)(`div`,{className:`mb-1 text-[0.625rem] font-medium text-muted-foreground`,children:e.label}),(0,m.jsx)(`pre`,{className:`font-mono text-xs/relaxed`,children:(0,m.jsx)(`code`,{children:e.parts.map(v)})}),t<n.length-1&&(0,m.jsx)(`div`,{className:`my-2`})]},e.label))})]}),t[10]=n,t[11]=h,t[12]=_,t[13]=r,t[14]=D):D=t[14];let O;return t[15]!==E||t[16]!==D?(O=(0,m.jsxs)(`div`,{className:`rounded-md border border-border`,children:[E,D]}),t[15]=E,t[16]=D,t[17]=O):O=t[17],O}function v(e,t){return(0,m.jsx)(`span`,{className:h[e.type],children:e.value},t)}function y(e){return!e}export{_ as t};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useNavigate.js";import{A as i,k as a}from"./SignatureV4.js";import{t as o}from"./back-link.js";import{t as s}from"./cli-command-panel.js";import{t as c}from"./input.js";import{t as l}from"./s3.js";import{t as u}from"./page-heading.js";import{i as d,n as f,t as p}from"./field.js";import{r as m,t as h}from"./zod.js";import{t as g}from"./form-actions.js";var _=t(),v=a({bucketName:i().min(3,`Bucket name must be at least 3 characters`).max(63,`Bucket name must be at most 63 characters`).regex(/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/,`Must start and end with a lowercase letter or number`).regex(/^[a-z0-9.-]+$/,`Only lowercase letters, numbers, hyphens, and periods allowed`).refine(e=>!e.includes(`..`),`Must not contain consecutive periods`).refine(e=>!(e.includes(`.-`)||e.includes(`-.`)),`Must not contain adjacent period and hyphen`)}),y=e();function b(){let e=(0,_.c)(40),t=r(),i=l(),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={resolver:h(v)},e[0]=a):a=e[0];let{handleSubmit:b,register:S,watch:C,formState:w}=m(a),{errors:T,isSubmitting:E}=w,D;e[1]!==i||e[2]!==t?(D=async e=>{await i.mutateAsync(e),t({to:`/s3/ls`})},e[1]=i,e[2]=t,e[3]=D):D=e[3];let O=D,k,A;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,y.jsx)(o,{to:`/s3/ls`,children:`Back to buckets`}),A=(0,y.jsx)(u,{title:`Create Bucket`}),e[4]=k,e[5]=A):(k=e[4],A=e[5]);let j;e[6]===i.error?j=e[7]:(j=i.error&&(0,y.jsx)(n,{error:i.error,msg:`Failed to create bucket`}),e[6]=i.error,e[7]=j);let M;e[8]!==b||e[9]!==O?(M=b(O),e[8]=b,e[9]=O,e[10]=M):M=e[10];let N;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,y.jsx)(d,{children:(0,y.jsx)(`label`,{htmlFor:`bucketName`,children:`Bucket Name`})}),e[11]=N):N=e[11];let P=!!T.bucketName,F;e[12]===S?F=e[13]:(F=S(`bucketName`),e[12]=S,e[13]=F);let I;e[14]!==P||e[15]!==F?(I=(0,y.jsx)(c,{"aria-invalid":P,id:`bucketName`,placeholder:`my-bucket`,type:`text`,...F}),e[14]=P,e[15]=F,e[16]=I):I=e[16];let L;e[17]===T.bucketName?L=e[18]:(L=(0,y.jsx)(f,{errors:[T.bucketName]}),e[17]=T.bucketName,e[18]=L);let R;e[19]!==I||e[20]!==L?(R=(0,y.jsxs)(p,{children:[N,I,L]}),e[19]=I,e[20]=L,e[21]=R):R=e[21];let z;e[22]===C?z=e[23]:(z=x(C),e[22]=C,e[23]=z);let B;e[24]===z?B=e[25]:(B=(0,y.jsx)(s,{commands:z}),e[24]=z,e[25]=B);let V;e[26]===t?V=e[27]:(V=()=>t({to:`/s3/ls`}),e[26]=t,e[27]=V);let H;e[28]!==i.isPending||e[29]!==E||e[30]!==V?(H=(0,y.jsx)(g,{isPending:i.isPending,isSubmitting:E,onCancel:V,pendingLabel:`Creating\\u2026`,submitLabel:`Create Bucket`}),e[28]=i.isPending,e[29]=E,e[30]=V,e[31]=H):H=e[31];let U;e[32]!==R||e[33]!==B||e[34]!==H||e[35]!==M?(U=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:M,children:[R,B,H]}),e[32]=R,e[33]=B,e[34]=H,e[35]=M,e[36]=U):U=e[36];let W;return e[37]!==U||e[38]!==j?(W=(0,y.jsxs)(y.Fragment,{children:[k,A,j,U]}),e[37]=U,e[38]=j,e[39]=W):W=e[39],W}function x(e){let t=e(`bucketName`);return[{label:`Create Bucket`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws s3api create-bucket`},{type:`flag`,value:` --bucket`},{type:`value`,value:` ${(typeof t==`string`?t:``)||`<BucketName>`}`}]}]}export{b as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useNavigate.js";import{j as i,k as a}from"./SignatureV4.js";import{t as o}from"./back-link.js";import{t as s}from"./cli-command-panel.js";import{t as c}from"./input.js";import{t as l}from"./s3.js";import{t as u}from"./page-heading.js";import{i as d,n as f,t as p}from"./field.js";import{r as m,t as h}from"./zod.js";import{t as g}from"./form-actions.js";var _=t(),v=a({bucketName:i().min(3,`Bucket name must be at least 3 characters`).max(63,`Bucket name must be at most 63 characters`).regex(/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/,`Must start and end with a lowercase letter or number`).regex(/^[a-z0-9.-]+$/,`Only lowercase letters, numbers, hyphens, and periods allowed`).refine(e=>!e.includes(`..`),`Must not contain consecutive periods`).refine(e=>!(e.includes(`.-`)||e.includes(`-.`)),`Must not contain adjacent period and hyphen`)}),y=e();function b(){let e=(0,_.c)(40),t=r(),i=l(),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={resolver:h(v)},e[0]=a):a=e[0];let{handleSubmit:b,register:S,watch:C,formState:w}=m(a),{errors:T,isSubmitting:E}=w,D;e[1]!==i||e[2]!==t?(D=async e=>{await i.mutateAsync(e),t({to:`/s3/ls`})},e[1]=i,e[2]=t,e[3]=D):D=e[3];let O=D,k,A;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,y.jsx)(o,{to:`/s3/ls`,children:`Back to buckets`}),A=(0,y.jsx)(u,{title:`Create Bucket`}),e[4]=k,e[5]=A):(k=e[4],A=e[5]);let j;e[6]===i.error?j=e[7]:(j=i.error&&(0,y.jsx)(n,{error:i.error,msg:`Failed to create bucket`}),e[6]=i.error,e[7]=j);let M;e[8]!==b||e[9]!==O?(M=b(O),e[8]=b,e[9]=O,e[10]=M):M=e[10];let N;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,y.jsx)(d,{children:(0,y.jsx)(`label`,{htmlFor:`bucketName`,children:`Bucket Name`})}),e[11]=N):N=e[11];let P=!!T.bucketName,F;e[12]===S?F=e[13]:(F=S(`bucketName`),e[12]=S,e[13]=F);let I;e[14]!==P||e[15]!==F?(I=(0,y.jsx)(c,{"aria-invalid":P,id:`bucketName`,placeholder:`my-bucket`,type:`text`,...F}),e[14]=P,e[15]=F,e[16]=I):I=e[16];let L;e[17]===T.bucketName?L=e[18]:(L=(0,y.jsx)(f,{errors:[T.bucketName]}),e[17]=T.bucketName,e[18]=L);let R;e[19]!==I||e[20]!==L?(R=(0,y.jsxs)(p,{children:[N,I,L]}),e[19]=I,e[20]=L,e[21]=R):R=e[21];let z;e[22]===C?z=e[23]:(z=x(C),e[22]=C,e[23]=z);let B;e[24]===z?B=e[25]:(B=(0,y.jsx)(s,{commands:z}),e[24]=z,e[25]=B);let V;e[26]===t?V=e[27]:(V=()=>t({to:`/s3/ls`}),e[26]=t,e[27]=V);let H;e[28]!==i.isPending||e[29]!==E||e[30]!==V?(H=(0,y.jsx)(g,{isPending:i.isPending,isSubmitting:E,onCancel:V,pendingLabel:`Creating…`,submitLabel:`Create Bucket`}),e[28]=i.isPending,e[29]=E,e[30]=V,e[31]=H):H=e[31];let U;e[32]!==R||e[33]!==B||e[34]!==H||e[35]!==M?(U=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:M,children:[R,B,H]}),e[32]=R,e[33]=B,e[34]=H,e[35]=M,e[36]=U):U=e[36];let W;return e[37]!==U||e[38]!==j?(W=(0,y.jsxs)(y.Fragment,{children:[k,A,j,U]}),e[37]=U,e[38]=j,e[39]=W):W=e[39],W}function x(e){let t=e(`bucketName`);return[{label:`Create Bucket`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws s3api create-bucket`},{type:`flag`,value:` --bucket`},{type:`value`,value:` ${(typeof t==`string`?t:``)||`<BucketName>`}`}]}]}export{b as component};
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useNavigate.js";import{t as i}from"./back-link.js";import{a as ee,i as a,n as o,r as s,t as c}from"./select.js";import{t as l}from"./cli-command-panel.js";import{t as u}from"./input.js";import{c as d}from"./ec2.js";import{t as f}from"./page-heading.js";import{i as p,n as m,t as h}from"./field.js";import{n as g,r as _,t as v}from"./zod.js";import{r as y}from"./ec23.js";import{t as b}from"./form-actions.js";var te=t(),x=e();function S(){let e=(0,te.c)(52),t=r(),S=d(),C;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(C={resolver:v(y),defaultValues:{groupName:``,strategy:`spread`}},e[0]=C):C=e[0];let{control:w,handleSubmit:T,register:E,watch:D,formState:O}=_(C),{errors:k,isSubmitting:A}=O,j;e[1]!==S||e[2]!==t?(j=async e=>{t({to:`/ec2/describe-placement-groups/$id`,params:{id:(await S.mutateAsync(e)).PlacementGroup?.GroupId??``}})},e[1]=S,e[2]=t,e[3]=j):j=e[3];let M=j,N,P;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,x.jsx)(i,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),P=(0,x.jsx)(f,{title:`Create Placement Group`}),e[4]=N,e[5]=P):(N=e[4],P=e[5]);let F;e[6]===S.error?F=e[7]:(F=S.error&&(0,x.jsx)(n,{error:S.error,msg:`Failed to create placement group`}),e[6]=S.error,e[7]=F);let I;e[8]!==T||e[9]!==M?(I=T(M),e[8]=T,e[9]=M,e[10]=I):I=e[10];let L;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,x.jsx)(p,{children:(0,x.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[11]=L):L=e[11];let R=!!k.groupName,z;e[12]===E?z=e[13]:(z=E(`groupName`),e[12]=E,e[13]=z);let B;e[14]!==R||e[15]!==z?(B=(0,x.jsx)(u,{"aria-invalid":R,id:`groupName`,placeholder:`my-placement-group`,...z}),e[14]=R,e[15]=z,e[16]=B):B=e[16];let V;e[17]===k.groupName?V=e[18]:(V=(0,x.jsx)(m,{errors:[k.groupName]}),e[17]=k.groupName,e[18]=V);let H;e[19]!==B||e[20]!==V?(H=(0,x.jsxs)(h,{children:[L,B,V]}),e[19]=B,e[20]=V,e[21]=H):H=e[21];let U;e[22]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,x.jsx)(p,{children:(0,x.jsx)(`label`,{htmlFor:`strategy`,children:`Strategy`})}),e[22]=U):U=e[22];let W;e[23]===k.strategy?W=e[24]:(W=e=>{let{field:t}=e;return(0,x.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,x.jsx)(a,{"aria-invalid":!!k.strategy,className:`w-full`,id:`strategy`,children:(0,x.jsx)(ee,{})}),(0,x.jsxs)(o,{children:[(0,x.jsx)(s,{value:`spread`,children:`spread`}),(0,x.jsx)(s,{value:`cluster`,children:`cluster`})]})]})},e[23]=k.strategy,e[24]=W);let G;e[25]!==w||e[26]!==W?(G=(0,x.jsx)(g,{control:w,name:`strategy`,render:W}),e[25]=w,e[26]=W,e[27]=G):G=e[27];let K;e[28]===k.strategy?K=e[29]:(K=(0,x.jsx)(m,{errors:[k.strategy]}),e[28]=k.strategy,e[29]=K);let q;e[30]!==G||e[31]!==K?(q=(0,x.jsxs)(h,{children:[U,G,K]}),e[30]=G,e[31]=K,e[32]=q):q=e[32];let J;e[33]===D?J=e[34]:(J=ne(D),e[33]=D,e[34]=J);let Y;e[35]===J?Y=e[36]:(Y=(0,x.jsx)(l,{commands:J}),e[35]=J,e[36]=Y);let X;e[37]===t?X=e[38]:(X=()=>t({to:`/ec2/describe-placement-groups`}),e[37]=t,e[38]=X);let Z;e[39]!==S.isPending||e[40]!==A||e[41]!==X?(Z=(0,x.jsx)(b,{isPending:S.isPending,isSubmitting:A,onCancel:X,pendingLabel:`Creating\\u2026`,submitLabel:`Create Placement Group`}),e[39]=S.isPending,e[40]=A,e[41]=X,e[42]=Z):Z=e[42];let Q;e[43]!==H||e[44]!==q||e[45]!==Y||e[46]!==Z||e[47]!==I?(Q=(0,x.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[43]=H,e[44]=q,e[45]=Y,e[46]=Z,e[47]=I,e[48]=Q):Q=e[48];let $;return e[49]!==Q||e[50]!==F?($=(0,x.jsxs)(x.Fragment,{children:[N,P,F,Q]}),e[49]=Q,e[50]=F,e[51]=$):$=e[51],$}function ne(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`strategy`),i=typeof r==`string`?r:``;return[{label:`Create Placement Group`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-placement-group`},{type:`flag`,value:` \\
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useNavigate.js";import{t as i}from"./back-link.js";import{a as ee,i as a,n as o,r as s,t as c}from"./select.js";import{t as l}from"./cli-command-panel.js";import{t as u}from"./input.js";import{c as d}from"./ec2.js";import{t as f}from"./page-heading.js";import{i as p,n as m,t as h}from"./field.js";import{n as g,r as _,t as v}from"./zod.js";import{r as y}from"./ec23.js";import{t as b}from"./form-actions.js";var te=t(),x=e();function S(){let e=(0,te.c)(52),t=r(),S=d(),C;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(C={resolver:v(y),defaultValues:{groupName:``,strategy:`spread`}},e[0]=C):C=e[0];let{control:w,handleSubmit:T,register:E,watch:D,formState:O}=_(C),{errors:k,isSubmitting:A}=O,j;e[1]!==S||e[2]!==t?(j=async e=>{t({to:`/ec2/describe-placement-groups/$id`,params:{id:(await S.mutateAsync(e)).PlacementGroup?.GroupId??``}})},e[1]=S,e[2]=t,e[3]=j):j=e[3];let M=j,N,P;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,x.jsx)(i,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),P=(0,x.jsx)(f,{title:`Create Placement Group`}),e[4]=N,e[5]=P):(N=e[4],P=e[5]);let F;e[6]===S.error?F=e[7]:(F=S.error&&(0,x.jsx)(n,{error:S.error,msg:`Failed to create placement group`}),e[6]=S.error,e[7]=F);let I;e[8]!==T||e[9]!==M?(I=T(M),e[8]=T,e[9]=M,e[10]=I):I=e[10];let L;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,x.jsx)(p,{children:(0,x.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[11]=L):L=e[11];let R=!!k.groupName,z;e[12]===E?z=e[13]:(z=E(`groupName`),e[12]=E,e[13]=z);let B;e[14]!==R||e[15]!==z?(B=(0,x.jsx)(u,{"aria-invalid":R,id:`groupName`,placeholder:`my-placement-group`,...z}),e[14]=R,e[15]=z,e[16]=B):B=e[16];let V;e[17]===k.groupName?V=e[18]:(V=(0,x.jsx)(m,{errors:[k.groupName]}),e[17]=k.groupName,e[18]=V);let H;e[19]!==B||e[20]!==V?(H=(0,x.jsxs)(h,{children:[L,B,V]}),e[19]=B,e[20]=V,e[21]=H):H=e[21];let U;e[22]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,x.jsx)(p,{children:(0,x.jsx)(`label`,{htmlFor:`strategy`,children:`Strategy`})}),e[22]=U):U=e[22];let W;e[23]===k.strategy?W=e[24]:(W=e=>{let{field:t}=e;return(0,x.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,x.jsx)(a,{"aria-invalid":!!k.strategy,className:`w-full`,id:`strategy`,children:(0,x.jsx)(ee,{})}),(0,x.jsxs)(o,{children:[(0,x.jsx)(s,{value:`spread`,children:`spread`}),(0,x.jsx)(s,{value:`cluster`,children:`cluster`})]})]})},e[23]=k.strategy,e[24]=W);let G;e[25]!==w||e[26]!==W?(G=(0,x.jsx)(g,{control:w,name:`strategy`,render:W}),e[25]=w,e[26]=W,e[27]=G):G=e[27];let K;e[28]===k.strategy?K=e[29]:(K=(0,x.jsx)(m,{errors:[k.strategy]}),e[28]=k.strategy,e[29]=K);let q;e[30]!==G||e[31]!==K?(q=(0,x.jsxs)(h,{children:[U,G,K]}),e[30]=G,e[31]=K,e[32]=q):q=e[32];let J;e[33]===D?J=e[34]:(J=ne(D),e[33]=D,e[34]=J);let Y;e[35]===J?Y=e[36]:(Y=(0,x.jsx)(l,{commands:J}),e[35]=J,e[36]=Y);let X;e[37]===t?X=e[38]:(X=()=>t({to:`/ec2/describe-placement-groups`}),e[37]=t,e[38]=X);let Z;e[39]!==S.isPending||e[40]!==A||e[41]!==X?(Z=(0,x.jsx)(b,{isPending:S.isPending,isSubmitting:A,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Placement Group`}),e[39]=S.isPending,e[40]=A,e[41]=X,e[42]=Z):Z=e[42];let Q;e[43]!==H||e[44]!==q||e[45]!==Y||e[46]!==Z||e[47]!==I?(Q=(0,x.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[43]=H,e[44]=q,e[45]=Y,e[46]=Z,e[47]=I,e[48]=Q):Q=e[48];let $;return e[49]!==Q||e[50]!==F?($=(0,x.jsxs)(x.Fragment,{children:[N,P,F,Q]}),e[49]=Q,e[50]=F,e[51]=$):$=e[51],$}function ne(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`strategy`),i=typeof r==`string`?r:``;return[{label:`Create Placement Group`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-placement-group`},{type:`flag`,value:` \\
--group-name`},{type:`value`,value:` ${n||`<GroupName>`}`},{type:`flag`,value:` \\
--strategy`},{type:`value`,value:` ${i||`spread`}`}]}]}export{S as component};
@@ -1,4 +1,4 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{B as a}from"./SignatureV4.js";import{t as o}from"./back-link.js";import{a as s,i as ee,n as te,r as c,t as ne}from"./select.js";import{t as re}from"./cli-command-panel.js";import{t as l}from"./input.js";import{l as ie}from"./ec2.js";import{x as ae}from"./ec22.js";import{t as oe}from"./page-heading.js";import{i as u,n as d,t as f}from"./field.js";import{n as se,r as ce,t as le}from"./zod.js";import{i as ue}from"./ec23.js";import{t as de}from"./form-actions.js";var fe=t(),p=e();function m(){let e=(0,fe.c)(69),t=i(),{data:a}=r(ae),c=ie(),m;e[0]===a.Vpcs?m=e[1]:(m=a.Vpcs??[],e[0]=a.Vpcs,e[1]=m);let h=m,g;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(g=le(ue),e[2]=g):g=e[2];let _=h[0]?.VpcId??``,v;e[3]===_?v=e[4]:(v={resolver:g,defaultValues:{groupName:``,description:``,vpcId:_}},e[3]=_,e[4]=v);let{control:y,handleSubmit:b,register:x,watch:S,formState:he}=ce(v),{errors:C,isSubmitting:w}=he,T;e[5]!==c||e[6]!==t?(T=async e=>{let n=(await c.mutateAsync(e)).GroupId;t(n?{to:`/ec2/describe-security-groups/$id`,params:{id:n}}:{to:`/ec2/describe-security-groups`})},e[5]=c,e[6]=t,e[7]=T):T=e[7];let E=T,D,O;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,p.jsx)(o,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),O=(0,p.jsx)(oe,{title:`Create Security Group`}),e[8]=D,e[9]=O):(D=e[8],O=e[9]);let k;e[10]===c.error?k=e[11]:(k=c.error&&(0,p.jsx)(n,{error:c.error,msg:`Failed to create security group`}),e[10]=c.error,e[11]=k);let A;e[12]!==b||e[13]!==E?(A=b(E),e[12]=b,e[13]=E,e[14]=A):A=e[14];let j;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[15]=j):j=e[15];let M=!!C.groupName,N;e[16]===x?N=e[17]:(N=x(`groupName`),e[16]=x,e[17]=N);let P;e[18]!==M||e[19]!==N?(P=(0,p.jsx)(l,{"aria-invalid":M,id:`groupName`,placeholder:`my-security-group`,...N}),e[18]=M,e[19]=N,e[20]=P):P=e[20];let F;e[21]===C.groupName?F=e[22]:(F=(0,p.jsx)(d,{errors:[C.groupName]}),e[21]=C.groupName,e[22]=F);let I;e[23]!==P||e[24]!==F?(I=(0,p.jsxs)(f,{children:[j,P,F]}),e[23]=P,e[24]=F,e[25]=I):I=e[25];let L;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`description`,children:`Description`})}),e[26]=L):L=e[26];let R=!!C.description,z;e[27]===x?z=e[28]:(z=x(`description`),e[27]=x,e[28]=z);let B;e[29]!==R||e[30]!==z?(B=(0,p.jsx)(l,{"aria-invalid":R,id:`description`,placeholder:`My security group description`,...z}),e[29]=R,e[30]=z,e[31]=B):B=e[31];let V;e[32]===C.description?V=e[33]:(V=(0,p.jsx)(d,{errors:[C.description]}),e[32]=C.description,e[33]=V);let H;e[34]!==B||e[35]!==V?(H=(0,p.jsxs)(f,{children:[L,B,V]}),e[34]=B,e[35]=V,e[36]=H):H=e[36];let U;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[37]=U):U=e[37];let W;e[38]!==C.vpcId||e[39]!==h?(W=e=>{let{field:t}=e;return(0,p.jsxs)(ne,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,p.jsx)(ee,{"aria-invalid":!!C.vpcId,className:`w-full`,id:`vpcId`,children:(0,p.jsx)(s,{})}),(0,p.jsx)(te,{children:h.map(pe)})]})},e[38]=C.vpcId,e[39]=h,e[40]=W):W=e[40];let G;e[41]!==y||e[42]!==W?(G=(0,p.jsx)(se,{control:y,name:`vpcId`,render:W}),e[41]=y,e[42]=W,e[43]=G):G=e[43];let K;e[44]===C.vpcId?K=e[45]:(K=(0,p.jsx)(d,{errors:[C.vpcId]}),e[44]=C.vpcId,e[45]=K);let q;e[46]!==G||e[47]!==K?(q=(0,p.jsxs)(f,{children:[U,G,K]}),e[46]=G,e[47]=K,e[48]=q):q=e[48];let J;e[49]===S?J=e[50]:(J=me(S),e[49]=S,e[50]=J);let Y;e[51]===J?Y=e[52]:(Y=(0,p.jsx)(re,{commands:J}),e[51]=J,e[52]=Y);let X;e[53]===t?X=e[54]:(X=()=>t({to:`/ec2/describe-security-groups`}),e[53]=t,e[54]=X);let Z;e[55]!==c.isPending||e[56]!==w||e[57]!==X?(Z=(0,p.jsx)(de,{isPending:c.isPending,isSubmitting:w,onCancel:X,pendingLabel:`Creating\\u2026`,submitLabel:`Create Security Group`}),e[55]=c.isPending,e[56]=w,e[57]=X,e[58]=Z):Z=e[58];let Q;e[59]!==I||e[60]!==H||e[61]!==q||e[62]!==Y||e[63]!==Z||e[64]!==A?(Q=(0,p.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:A,children:[I,H,q,Y,Z]}),e[59]=I,e[60]=H,e[61]=q,e[62]=Y,e[63]=Z,e[64]=A,e[65]=Q):Q=e[65];let $;return e[66]!==Q||e[67]!==k?($=(0,p.jsxs)(p.Fragment,{children:[D,O,k,Q]}),e[66]=Q,e[67]=k,e[68]=$):$=e[68],$}function pe(e){let t=a(e.Tags);return(0,p.jsx)(c,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function me(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=e(`vpcId`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-security-group`},{type:`flag`,value:` \\
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{V as a}from"./SignatureV4.js";import{t as o}from"./back-link.js";import{a as s,i as ee,n as te,r as c,t as ne}from"./select.js";import{t as re}from"./cli-command-panel.js";import{t as l}from"./input.js";import{l as ie}from"./ec2.js";import{x as ae}from"./ec22.js";import{t as oe}from"./page-heading.js";import{i as u,n as d,t as f}from"./field.js";import{n as se,r as ce,t as le}from"./zod.js";import{i as ue}from"./ec23.js";import{t as de}from"./form-actions.js";var fe=t(),p=e();function m(){let e=(0,fe.c)(69),t=i(),{data:a}=r(ae),c=ie(),m;e[0]===a.Vpcs?m=e[1]:(m=a.Vpcs??[],e[0]=a.Vpcs,e[1]=m);let h=m,g;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(g=le(ue),e[2]=g):g=e[2];let _=h[0]?.VpcId??``,v;e[3]===_?v=e[4]:(v={resolver:g,defaultValues:{groupName:``,description:``,vpcId:_}},e[3]=_,e[4]=v);let{control:y,handleSubmit:b,register:x,watch:S,formState:he}=ce(v),{errors:C,isSubmitting:w}=he,T;e[5]!==c||e[6]!==t?(T=async e=>{let n=(await c.mutateAsync(e)).GroupId;t(n?{to:`/ec2/describe-security-groups/$id`,params:{id:n}}:{to:`/ec2/describe-security-groups`})},e[5]=c,e[6]=t,e[7]=T):T=e[7];let E=T,D,O;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,p.jsx)(o,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),O=(0,p.jsx)(oe,{title:`Create Security Group`}),e[8]=D,e[9]=O):(D=e[8],O=e[9]);let k;e[10]===c.error?k=e[11]:(k=c.error&&(0,p.jsx)(n,{error:c.error,msg:`Failed to create security group`}),e[10]=c.error,e[11]=k);let A;e[12]!==b||e[13]!==E?(A=b(E),e[12]=b,e[13]=E,e[14]=A):A=e[14];let j;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[15]=j):j=e[15];let M=!!C.groupName,N;e[16]===x?N=e[17]:(N=x(`groupName`),e[16]=x,e[17]=N);let P;e[18]!==M||e[19]!==N?(P=(0,p.jsx)(l,{"aria-invalid":M,id:`groupName`,placeholder:`my-security-group`,...N}),e[18]=M,e[19]=N,e[20]=P):P=e[20];let F;e[21]===C.groupName?F=e[22]:(F=(0,p.jsx)(d,{errors:[C.groupName]}),e[21]=C.groupName,e[22]=F);let I;e[23]!==P||e[24]!==F?(I=(0,p.jsxs)(f,{children:[j,P,F]}),e[23]=P,e[24]=F,e[25]=I):I=e[25];let L;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`description`,children:`Description`})}),e[26]=L):L=e[26];let R=!!C.description,z;e[27]===x?z=e[28]:(z=x(`description`),e[27]=x,e[28]=z);let B;e[29]!==R||e[30]!==z?(B=(0,p.jsx)(l,{"aria-invalid":R,id:`description`,placeholder:`My security group description`,...z}),e[29]=R,e[30]=z,e[31]=B):B=e[31];let V;e[32]===C.description?V=e[33]:(V=(0,p.jsx)(d,{errors:[C.description]}),e[32]=C.description,e[33]=V);let H;e[34]!==B||e[35]!==V?(H=(0,p.jsxs)(f,{children:[L,B,V]}),e[34]=B,e[35]=V,e[36]=H):H=e[36];let U;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[37]=U):U=e[37];let W;e[38]!==C.vpcId||e[39]!==h?(W=e=>{let{field:t}=e;return(0,p.jsxs)(ne,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,p.jsx)(ee,{"aria-invalid":!!C.vpcId,className:`w-full`,id:`vpcId`,children:(0,p.jsx)(s,{})}),(0,p.jsx)(te,{children:h.map(pe)})]})},e[38]=C.vpcId,e[39]=h,e[40]=W):W=e[40];let G;e[41]!==y||e[42]!==W?(G=(0,p.jsx)(se,{control:y,name:`vpcId`,render:W}),e[41]=y,e[42]=W,e[43]=G):G=e[43];let K;e[44]===C.vpcId?K=e[45]:(K=(0,p.jsx)(d,{errors:[C.vpcId]}),e[44]=C.vpcId,e[45]=K);let q;e[46]!==G||e[47]!==K?(q=(0,p.jsxs)(f,{children:[U,G,K]}),e[46]=G,e[47]=K,e[48]=q):q=e[48];let J;e[49]===S?J=e[50]:(J=me(S),e[49]=S,e[50]=J);let Y;e[51]===J?Y=e[52]:(Y=(0,p.jsx)(re,{commands:J}),e[51]=J,e[52]=Y);let X;e[53]===t?X=e[54]:(X=()=>t({to:`/ec2/describe-security-groups`}),e[53]=t,e[54]=X);let Z;e[55]!==c.isPending||e[56]!==w||e[57]!==X?(Z=(0,p.jsx)(de,{isPending:c.isPending,isSubmitting:w,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Security Group`}),e[55]=c.isPending,e[56]=w,e[57]=X,e[58]=Z):Z=e[58];let Q;e[59]!==I||e[60]!==H||e[61]!==q||e[62]!==Y||e[63]!==Z||e[64]!==A?(Q=(0,p.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:A,children:[I,H,q,Y,Z]}),e[59]=I,e[60]=H,e[61]=q,e[62]=Y,e[63]=Z,e[64]=A,e[65]=Q):Q=e[65];let $;return e[66]!==Q||e[67]!==k?($=(0,p.jsxs)(p.Fragment,{children:[D,O,k,Q]}),e[66]=Q,e[67]=k,e[68]=$):$=e[68],$}function pe(e){let t=a(e.Tags);return(0,p.jsx)(c,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function me(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=e(`vpcId`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-security-group`},{type:`flag`,value:` \\
--group-name`},{type:`value`,value:` ${n||`<GroupName>`}`},{type:`flag`,value:` \\
--description`},{type:`value`,value:` "${i||`<Description>`}"`}];return o&&s.push({type:`flag`,value:` \\
--vpc-id`},{type:`value`,value:` ${o}`}),[{label:`Create Security Group`,parts:s}]}export{m as component};
@@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/create-snapshot2.js","assets/compiler-runtime.js","assets/ec2.js","assets/awsClient.js","assets/SignatureV4.js","assets/fromUtf8.browser.js","assets/toUtf8.browser.js","assets/ec22.js","assets/DescribeInstancesCommand.js","assets/queryOptions.js","assets/QueryClientProvider.js","assets/error-banner.js","assets/mutation.js","assets/select.js","assets/button.js","assets/dist.js","assets/useOpenInteractionType.js","assets/createBaseUIEventDetails.js","assets/useTransitionStatus.js","assets/useStore.js","assets/getDisabledMountTransitionStyles.js","assets/separator.js","assets/createLucideIcon.js","assets/check.js","assets/chevron-down.js","assets/zod.js","assets/useSuspenseQuery.js","assets/useBaseQuery.js","assets/query.js","assets/useNavigate.js","assets/back-link.js","assets/link.js","assets/cli-command-panel.js","assets/copy.js","assets/use-copy-to-clipboard.js","assets/form-actions.js","assets/page-heading.js","assets/field.js","assets/textarea.js","assets/ec23.js"])))=>i.map(i=>d[i]);
import{n as e,t}from"./lazyRouteComponent.js";import{Ut as n}from"./awsClient.js";import{y as r}from"./ec22.js";var i=e(`/_auth/ec2/(snapshots)/create-snapshot`)({validateSearch:e=>({volumeId:typeof e.volumeId==`string`?e.volumeId:void 0}),loader:async({context:e})=>{await e.queryClient.ensureQueryData(r)},head:()=>({meta:[{title:`Create Snapshot | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./create-snapshot2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])),`component`)});export{i as t};
import{n as e,t}from"./lazyRouteComponent.js";import{cn as n}from"./awsClient.js";import{y as r}from"./ec22.js";var i=e(`/_auth/ec2/(snapshots)/create-snapshot`)({validateSearch:e=>({volumeId:typeof e.volumeId==`string`?e.volumeId:void 0}),loader:async({context:e})=>{await e.queryClient.ensureQueryData(r)},head:()=>({meta:[{title:`Create Snapshot | EC2 | Mulga`}]}),component:t(()=>n(()=>import(`./create-snapshot2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])),`component`)});export{i as t};
@@ -1,3 +1,3 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{t as a}from"./back-link.js";import{a as o,i as s,n as c,r as l,t as u}from"./select.js";import{t as d}from"./cli-command-panel.js";import{u as ee}from"./ec2.js";import{y as te}from"./ec22.js";import{t as ne}from"./create-snapshot.js";import{t as f}from"./page-heading.js";import{i as p,n as re,t as m}from"./field.js";import{t as h}from"./textarea.js";import{n as ie,r as ae,t as g}from"./zod.js";import{a as oe}from"./ec23.js";import{t as _}from"./form-actions.js";var se=t(),v=e();function y(){let e=(0,se.c)(51),t=i(),{data:l}=r(te),y=ee(),x;e[0]===l.Volumes?x=e[1]:(x=l.Volumes??[],e[0]=l.Volumes,e[1]=x);let S=x,{volumeId:C}=ne.useSearch(),w=C??S[0]?.VolumeId??``,T;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=g(oe),e[2]=T):T=e[2];let E;e[3]===w?E=e[4]:(E={resolver:T,defaultValues:{volumeId:w,description:``}},e[3]=w,e[4]=E);let{control:D,handleSubmit:O,register:k,watch:A,formState:j}=ae(E),{errors:M,isSubmitting:N}=j,P;e[5]!==y||e[6]!==t?(P=async e=>{await y.mutateAsync(e),t({to:`/ec2/describe-snapshots`})},e[5]=y,e[6]=t,e[7]=P):P=e[7];let F=P,I,L;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,v.jsx)(a,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),L=(0,v.jsx)(f,{title:`Create Snapshot`}),e[8]=I,e[9]=L):(I=e[8],L=e[9]);let R;e[10]===y.error?R=e[11]:(R=y.error&&(0,v.jsx)(n,{error:y.error,msg:`Failed to create snapshot`}),e[10]=y.error,e[11]=R);let z;e[12]!==O||e[13]!==F?(z=O(F),e[12]=O,e[13]=F,e[14]=z):z=e[14];let B;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,v.jsx)(p,{children:(0,v.jsx)(`label`,{htmlFor:`volumeId`,children:`Volume`})}),e[15]=B):B=e[15];let V;e[16]!==M.volumeId||e[17]!==S?(V=e=>{let{field:t}=e;return(0,v.jsxs)(u,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,v.jsx)(s,{"aria-invalid":!!M.volumeId,className:`w-full`,id:`volumeId`,children:(0,v.jsx)(o,{})}),(0,v.jsx)(c,{children:S.map(b)})]})},e[16]=M.volumeId,e[17]=S,e[18]=V):V=e[18];let H;e[19]!==D||e[20]!==V?(H=(0,v.jsx)(ie,{control:D,name:`volumeId`,render:V}),e[19]=D,e[20]=V,e[21]=H):H=e[21];let U;e[22]===M.volumeId?U=e[23]:(U=(0,v.jsx)(re,{errors:[M.volumeId]}),e[22]=M.volumeId,e[23]=U);let W;e[24]!==H||e[25]!==U?(W=(0,v.jsxs)(m,{children:[B,H,U]}),e[24]=H,e[25]=U,e[26]=W):W=e[26];let G;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,v.jsx)(p,{children:(0,v.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[27]=G):G=e[27];let K;e[28]===k?K=e[29]:(K=k(`description`),e[28]=k,e[29]=K);let q;e[30]===K?q=e[31]:(q=(0,v.jsxs)(m,{children:[G,(0,v.jsx)(h,{id:`description`,placeholder:`Snapshot description`,...K})]}),e[30]=K,e[31]=q);let J;e[32]===A?J=e[33]:(J=ce(A),e[32]=A,e[33]=J);let Y;e[34]===J?Y=e[35]:(Y=(0,v.jsx)(d,{commands:J}),e[34]=J,e[35]=Y);let X;e[36]===t?X=e[37]:(X=()=>t({to:`/ec2/describe-snapshots`}),e[36]=t,e[37]=X);let Z;e[38]!==y.isPending||e[39]!==N||e[40]!==X?(Z=(0,v.jsx)(_,{isPending:y.isPending,isSubmitting:N,onCancel:X,pendingLabel:`Creating\\u2026`,submitLabel:`Create Snapshot`}),e[38]=y.isPending,e[39]=N,e[40]=X,e[41]=Z):Z=e[41];let Q;e[42]!==W||e[43]!==q||e[44]!==Y||e[45]!==Z||e[46]!==z?(Q=(0,v.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:z,children:[W,q,Y,Z]}),e[42]=W,e[43]=q,e[44]=Y,e[45]=Z,e[46]=z,e[47]=Q):Q=e[47];let $;return e[48]!==Q||e[49]!==R?($=(0,v.jsxs)(v.Fragment,{children:[I,L,R,Q]}),e[48]=Q,e[49]=R,e[50]=$):$=e[50],$}function b(e){return(0,v.jsxs)(l,{value:e.VolumeId??``,children:[e.VolumeId,` (`,e.Size,` GiB)`]},e.VolumeId)}function ce(e){let t=e(`volumeId`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-snapshot`},{type:`flag`,value:` \\
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{t as a}from"./back-link.js";import{a as o,i as s,n as c,r as l,t as u}from"./select.js";import{t as d}from"./cli-command-panel.js";import{u as ee}from"./ec2.js";import{y as te}from"./ec22.js";import{t as ne}from"./create-snapshot.js";import{t as f}from"./page-heading.js";import{i as p,n as re,t as m}from"./field.js";import{t as h}from"./textarea.js";import{n as ie,r as ae,t as g}from"./zod.js";import{a as oe}from"./ec23.js";import{t as _}from"./form-actions.js";var se=t(),v=e();function y(){let e=(0,se.c)(51),t=i(),{data:l}=r(te),y=ee(),x;e[0]===l.Volumes?x=e[1]:(x=l.Volumes??[],e[0]=l.Volumes,e[1]=x);let S=x,{volumeId:C}=ne.useSearch(),w=C??S[0]?.VolumeId??``,T;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=g(oe),e[2]=T):T=e[2];let E;e[3]===w?E=e[4]:(E={resolver:T,defaultValues:{volumeId:w,description:``}},e[3]=w,e[4]=E);let{control:D,handleSubmit:O,register:k,watch:A,formState:j}=ae(E),{errors:M,isSubmitting:N}=j,P;e[5]!==y||e[6]!==t?(P=async e=>{await y.mutateAsync(e),t({to:`/ec2/describe-snapshots`})},e[5]=y,e[6]=t,e[7]=P):P=e[7];let F=P,I,L;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,v.jsx)(a,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),L=(0,v.jsx)(f,{title:`Create Snapshot`}),e[8]=I,e[9]=L):(I=e[8],L=e[9]);let R;e[10]===y.error?R=e[11]:(R=y.error&&(0,v.jsx)(n,{error:y.error,msg:`Failed to create snapshot`}),e[10]=y.error,e[11]=R);let z;e[12]!==O||e[13]!==F?(z=O(F),e[12]=O,e[13]=F,e[14]=z):z=e[14];let B;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,v.jsx)(p,{children:(0,v.jsx)(`label`,{htmlFor:`volumeId`,children:`Volume`})}),e[15]=B):B=e[15];let V;e[16]!==M.volumeId||e[17]!==S?(V=e=>{let{field:t}=e;return(0,v.jsxs)(u,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,v.jsx)(s,{"aria-invalid":!!M.volumeId,className:`w-full`,id:`volumeId`,children:(0,v.jsx)(o,{})}),(0,v.jsx)(c,{children:S.map(b)})]})},e[16]=M.volumeId,e[17]=S,e[18]=V):V=e[18];let H;e[19]!==D||e[20]!==V?(H=(0,v.jsx)(ie,{control:D,name:`volumeId`,render:V}),e[19]=D,e[20]=V,e[21]=H):H=e[21];let U;e[22]===M.volumeId?U=e[23]:(U=(0,v.jsx)(re,{errors:[M.volumeId]}),e[22]=M.volumeId,e[23]=U);let W;e[24]!==H||e[25]!==U?(W=(0,v.jsxs)(m,{children:[B,H,U]}),e[24]=H,e[25]=U,e[26]=W):W=e[26];let G;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,v.jsx)(p,{children:(0,v.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[27]=G):G=e[27];let K;e[28]===k?K=e[29]:(K=k(`description`),e[28]=k,e[29]=K);let q;e[30]===K?q=e[31]:(q=(0,v.jsxs)(m,{children:[G,(0,v.jsx)(h,{id:`description`,placeholder:`Snapshot description`,...K})]}),e[30]=K,e[31]=q);let J;e[32]===A?J=e[33]:(J=ce(A),e[32]=A,e[33]=J);let Y;e[34]===J?Y=e[35]:(Y=(0,v.jsx)(d,{commands:J}),e[34]=J,e[35]=Y);let X;e[36]===t?X=e[37]:(X=()=>t({to:`/ec2/describe-snapshots`}),e[36]=t,e[37]=X);let Z;e[38]!==y.isPending||e[39]!==N||e[40]!==X?(Z=(0,v.jsx)(_,{isPending:y.isPending,isSubmitting:N,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Snapshot`}),e[38]=y.isPending,e[39]=N,e[40]=X,e[41]=Z):Z=e[41];let Q;e[42]!==W||e[43]!==q||e[44]!==Y||e[45]!==Z||e[46]!==z?(Q=(0,v.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:z,children:[W,q,Y,Z]}),e[42]=W,e[43]=q,e[44]=Y,e[45]=Z,e[46]=z,e[47]=Q):Q=e[47];let $;return e[48]!==Q||e[49]!==R?($=(0,v.jsxs)(v.Fragment,{children:[I,L,R,Q]}),e[48]=Q,e[49]=R,e[50]=$):$=e[50],$}function b(e){return(0,v.jsxs)(l,{value:e.VolumeId??``,children:[e.VolumeId,` (`,e.Size,` GiB)`]},e.VolumeId)}function ce(e){let t=e(`volumeId`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-snapshot`},{type:`flag`,value:` \\
--volume-id`},{type:`value`,value:` ${n||`<VolumeId>`}`}];return i&&a.push({type:`flag`,value:` \\
--description`},{type:`value`,value:` "${i}"`}),[{label:`Create Snapshot`,parts:a}]}export{y as component};
File diff suppressed because one or more lines are too long
@@ -0,0 +1,14 @@
import{n as e}from"./compiler-runtime.js";import{t}from"./error-banner.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./useNavigate.js";import{t as i}from"./back-link.js";import{t as a}from"./cli-command-panel.js";import{x as o}from"./ec22.js";import{r as s}from"./elbv2.js";import{t as c}from"./page-heading.js";import{r as l,t as u}from"./zod.js";import{t as d}from"./form-actions.js";import{t as f}from"./target-group-form.js";import{r as p}from"./elbv23.js";var m=e();function h(){let e=r(),{data:h}=n(o),_=s(),v=h.Vpcs??[],y=l({resolver:u(p),defaultValues:{name:``,protocol:`HTTP`,port:80,vpcId:v[0]?.VpcId??``,healthCheck:{protocol:`HTTP`,path:`/`,port:`traffic-port`,intervalSeconds:30,timeoutSeconds:5,healthyThresholdCount:5,unhealthyThresholdCount:2,matcher:`200`},tags:[]}}),{handleSubmit:b,watch:x,formState:{isSubmitting:S}}=y;return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(i,{to:`/ec2/describe-target-groups`,children:`Back to target groups`}),(0,m.jsx)(c,{title:`Create target group`}),_.error&&(0,m.jsx)(t,{error:_.error,msg:`Failed to create target group`}),(0,m.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:b(async t=>{try{let n=(await _.mutateAsync(t)).TargetGroups?.[0]?.TargetGroupArn;e(n?{to:`/ec2/describe-target-groups/$id`,params:{id:encodeURIComponent(n)}}:{to:`/ec2/describe-target-groups`})}catch{}}),children:[(0,m.jsx)(f,{form:y,vpcs:v}),(0,m.jsx)(a,{commands:g(x)}),(0,m.jsx)(d,{isPending:_.isPending,isSubmitting:S,onCancel:()=>e({to:`/ec2/describe-target-groups`}),pendingLabel:`Creating…`,submitLabel:`Create target group`})]})]})}function g(e){let t=t=>{let n=e(t);return typeof n==`string`?n:``},n=t=>{let n=e(t);return typeof n==`number`&&Number.isFinite(n)?n:void 0},r=t(`name`),i=t(`protocol`)||`HTTP`,a=n(`port`),o=t(`vpcId`),s=t(`healthCheck.path`)||`/`,c=t(`healthCheck.port`)||`traffic-port`,l=n(`healthCheck.intervalSeconds`),u=n(`healthCheck.timeoutSeconds`),d=n(`healthCheck.healthyThresholdCount`),f=n(`healthCheck.unhealthyThresholdCount`),p=t(`healthCheck.matcher`)||`200`,m=[{type:`bin`,value:`AWS_PROFILE=spinifex aws elbv2 create-target-group`},{type:`flag`,value:` \\
--name`},{type:`value`,value:` ${r||`<Name>`}`},{type:`flag`,value:` \\
--protocol`},{type:`value`,value:` ${i}`},{type:`flag`,value:` \\
--port`},{type:`value`,value:` ${a??80}`},{type:`flag`,value:` \\
--target-type`},{type:`value`,value:` instance`}];return o&&m.push({type:`flag`,value:` \\
--vpc-id`},{type:`value`,value:` ${o}`}),m.push({type:`flag`,value:` \\
--health-check-protocol`},{type:`value`,value:` HTTP`},{type:`flag`,value:` \\
--health-check-path`},{type:`value`,value:` ${s}`},{type:`flag`,value:` \\
--health-check-port`},{type:`value`,value:` ${c}`},{type:`flag`,value:` \\
--health-check-interval-seconds`},{type:`value`,value:` ${l??30}`},{type:`flag`,value:` \\
--health-check-timeout-seconds`},{type:`value`,value:` ${u??5}`},{type:`flag`,value:` \\
--healthy-threshold-count`},{type:`value`,value:` ${d??5}`},{type:`flag`,value:` \\
--unhealthy-threshold-count`},{type:`value`,value:` ${f??2}`},{type:`flag`,value:` \\
--matcher`},{type:`value`,value:` HttpCode=${p}`}),[{label:`Create Target Group`,parts:m}]}var _=h;export{_ as component};
@@ -1,3 +1,3 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{t as a}from"./back-link.js";import{a as ee,i as te,n as o,r as s,t as c}from"./select.js";import{t as l}from"./cli-command-panel.js";import{t as ne}from"./input.js";import{f as re}from"./ec2.js";import{t as u}from"./ec22.js";import{t as ie}from"./page-heading.js";import{i as d,n as f,t as p}from"./field.js";import{n as ae,r as oe,t as se}from"./zod.js";import{s as m}from"./ec23.js";import{t as ce}from"./form-actions.js";var h=t(),g=e();function _(){let e=(0,h.c)(57),t=i(),{data:s}=r(u),_=re(),b;e[0]===s.AvailabilityZones?b=e[1]:(b=s.AvailabilityZones??[],e[0]=s.AvailabilityZones,e[1]=b);let x=b,S=x[0]?.ZoneName??``,C;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(C=se(m),e[2]=C):C=e[2];let w;e[3]===S?w=e[4]:(w={resolver:C,defaultValues:{size:1,availabilityZone:S}},e[3]=S,e[4]=w);let{control:T,handleSubmit:E,register:D,watch:O,formState:le}=oe(w),{errors:k,isSubmitting:A}=le,j;e[5]!==_||e[6]!==t?(j=async e=>{await _.mutateAsync(e),t({to:`/ec2/describe-volumes`})},e[5]=_,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,g.jsx)(a,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),P=(0,g.jsx)(ie,{title:`Create Volume`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===_.error?F=e[11]:(F=_.error&&(0,g.jsx)(n,{error:_.error,msg:`Failed to create volume`}),e[10]=_.error,e[11]=F);let I;e[12]!==E||e[13]!==M?(I=E(M),e[12]=E,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,g.jsx)(d,{children:(0,g.jsx)(`label`,{htmlFor:`size`,children:`Size (GiB)`})}),e[15]=L):L=e[15];let R=!!k.size,z;e[16]===D?z=e[17]:(z=D(`size`,{valueAsNumber:!0}),e[16]=D,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,g.jsx)(ne,{"aria-invalid":R,id:`size`,max:16384,min:1,type:`number`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===k.size?V=e[22]:(V=(0,g.jsx)(f,{errors:[k.size]}),e[21]=k.size,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,g.jsxs)(p,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,g.jsx)(d,{children:(0,g.jsx)(`label`,{htmlFor:`availabilityZone`,children:`Availability Zone`})}),e[26]=U):U=e[26];let W;e[27]!==x||e[28]!==k.availabilityZone?(W=e=>{let{field:t}=e;return(0,g.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,g.jsx)(te,{"aria-invalid":!!k.availabilityZone,className:`w-full`,id:`availabilityZone`,children:(0,g.jsx)(ee,{})}),(0,g.jsx)(o,{children:x.map(v)})]})},e[27]=x,e[28]=k.availabilityZone,e[29]=W):W=e[29];let G;e[30]!==T||e[31]!==W?(G=(0,g.jsx)(ae,{control:T,name:`availabilityZone`,render:W}),e[30]=T,e[31]=W,e[32]=G):G=e[32];let K;e[33]===k.availabilityZone?K=e[34]:(K=(0,g.jsx)(f,{errors:[k.availabilityZone]}),e[33]=k.availabilityZone,e[34]=K);let q;e[35]!==G||e[36]!==K?(q=(0,g.jsxs)(p,{children:[U,G,K]}),e[35]=G,e[36]=K,e[37]=q):q=e[37];let J;e[38]===O?J=e[39]:(J=y(O),e[38]=O,e[39]=J);let Y;e[40]===J?Y=e[41]:(Y=(0,g.jsx)(l,{commands:J}),e[40]=J,e[41]=Y);let X;e[42]===t?X=e[43]:(X=()=>t({to:`/ec2/describe-volumes`}),e[42]=t,e[43]=X);let Z;e[44]!==_.isPending||e[45]!==A||e[46]!==X?(Z=(0,g.jsx)(ce,{isPending:_.isPending,isSubmitting:A,onCancel:X,pendingLabel:`Creating\\u2026`,submitLabel:`Create Volume`}),e[44]=_.isPending,e[45]=A,e[46]=X,e[47]=Z):Z=e[47];let Q;e[48]!==H||e[49]!==q||e[50]!==Y||e[51]!==Z||e[52]!==I?(Q=(0,g.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[48]=H,e[49]=q,e[50]=Y,e[51]=Z,e[52]=I,e[53]=Q):Q=e[53];let $;return e[54]!==Q||e[55]!==F?($=(0,g.jsxs)(g.Fragment,{children:[N,P,F,Q]}),e[54]=Q,e[55]=F,e[56]=$):$=e[56],$}function v(e){return(0,g.jsx)(s,{value:e.ZoneName??``,children:e.ZoneName},e.ZoneName)}function y(e){let t=e(`size`),n=typeof t==`number`?t:0,r=e(`availabilityZone`),i=typeof r==`string`?r:``;return[{label:`Create Volume`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-volume`},{type:`flag`,value:` \\
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./error-banner.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./useNavigate.js";import{t as a}from"./back-link.js";import{a as ee,i as te,n as o,r as s,t as c}from"./select.js";import{t as l}from"./cli-command-panel.js";import{t as ne}from"./input.js";import{f as re}from"./ec2.js";import{t as u}from"./ec22.js";import{t as ie}from"./page-heading.js";import{i as d,n as f,t as p}from"./field.js";import{n as ae,r as oe,t as se}from"./zod.js";import{s as m}from"./ec23.js";import{t as ce}from"./form-actions.js";var h=t(),g=e();function _(){let e=(0,h.c)(57),t=i(),{data:s}=r(u),_=re(),b;e[0]===s.AvailabilityZones?b=e[1]:(b=s.AvailabilityZones??[],e[0]=s.AvailabilityZones,e[1]=b);let x=b,S=x[0]?.ZoneName??``,C;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(C=se(m),e[2]=C):C=e[2];let w;e[3]===S?w=e[4]:(w={resolver:C,defaultValues:{size:1,availabilityZone:S}},e[3]=S,e[4]=w);let{control:T,handleSubmit:E,register:D,watch:O,formState:le}=oe(w),{errors:k,isSubmitting:A}=le,j;e[5]!==_||e[6]!==t?(j=async e=>{await _.mutateAsync(e),t({to:`/ec2/describe-volumes`})},e[5]=_,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,g.jsx)(a,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),P=(0,g.jsx)(ie,{title:`Create Volume`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===_.error?F=e[11]:(F=_.error&&(0,g.jsx)(n,{error:_.error,msg:`Failed to create volume`}),e[10]=_.error,e[11]=F);let I;e[12]!==E||e[13]!==M?(I=E(M),e[12]=E,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,g.jsx)(d,{children:(0,g.jsx)(`label`,{htmlFor:`size`,children:`Size (GiB)`})}),e[15]=L):L=e[15];let R=!!k.size,z;e[16]===D?z=e[17]:(z=D(`size`,{valueAsNumber:!0}),e[16]=D,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,g.jsx)(ne,{"aria-invalid":R,id:`size`,max:16384,min:1,type:`number`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===k.size?V=e[22]:(V=(0,g.jsx)(f,{errors:[k.size]}),e[21]=k.size,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,g.jsxs)(p,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,g.jsx)(d,{children:(0,g.jsx)(`label`,{htmlFor:`availabilityZone`,children:`Availability Zone`})}),e[26]=U):U=e[26];let W;e[27]!==x||e[28]!==k.availabilityZone?(W=e=>{let{field:t}=e;return(0,g.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,g.jsx)(te,{"aria-invalid":!!k.availabilityZone,className:`w-full`,id:`availabilityZone`,children:(0,g.jsx)(ee,{})}),(0,g.jsx)(o,{children:x.map(v)})]})},e[27]=x,e[28]=k.availabilityZone,e[29]=W):W=e[29];let G;e[30]!==T||e[31]!==W?(G=(0,g.jsx)(ae,{control:T,name:`availabilityZone`,render:W}),e[30]=T,e[31]=W,e[32]=G):G=e[32];let K;e[33]===k.availabilityZone?K=e[34]:(K=(0,g.jsx)(f,{errors:[k.availabilityZone]}),e[33]=k.availabilityZone,e[34]=K);let q;e[35]!==G||e[36]!==K?(q=(0,g.jsxs)(p,{children:[U,G,K]}),e[35]=G,e[36]=K,e[37]=q):q=e[37];let J;e[38]===O?J=e[39]:(J=y(O),e[38]=O,e[39]=J);let Y;e[40]===J?Y=e[41]:(Y=(0,g.jsx)(l,{commands:J}),e[40]=J,e[41]=Y);let X;e[42]===t?X=e[43]:(X=()=>t({to:`/ec2/describe-volumes`}),e[42]=t,e[43]=X);let Z;e[44]!==_.isPending||e[45]!==A||e[46]!==X?(Z=(0,g.jsx)(ce,{isPending:_.isPending,isSubmitting:A,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Volume`}),e[44]=_.isPending,e[45]=A,e[46]=X,e[47]=Z):Z=e[47];let Q;e[48]!==H||e[49]!==q||e[50]!==Y||e[51]!==Z||e[52]!==I?(Q=(0,g.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[48]=H,e[49]=q,e[50]=Y,e[51]=Z,e[52]=I,e[53]=Q):Q=e[53];let $;return e[54]!==Q||e[55]!==F?($=(0,g.jsxs)(g.Fragment,{children:[N,P,F,Q]}),e[54]=Q,e[55]=F,e[56]=$):$=e[56],$}function v(e){return(0,g.jsx)(s,{value:e.ZoneName??``,children:e.ZoneName},e.ZoneName)}function y(e){let t=e(`size`),n=typeof t==`number`?t:0,r=e(`availabilityZone`),i=typeof r==`string`?r:``;return[{label:`Create Volume`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-volume`},{type:`flag`,value:` \\
--size`},{type:`value`,value:` ${n||1}`},{type:`flag`,value:` \\
--availability-zone`},{type:`value`,value:` ${i||`<AvailabilityZone>`}`}]}]}export{_ as component};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{a as e,r as t}from"./compiler-runtime.js";import{l as n}from"./dist.js";import{S as r,_ as i,a,v as o}from"./button.js";var s=e(t()),c=0;function l(e,t=`mui`){let[n,r]=s.useState(e),i=e||n;return s.useEffect(()=>{n??(c+=1,r(`${t}-${c}`))},[n,t]),i}var u=a.useId;function d(e,t){if(u!==void 0){let n=u();return e??(t?`${t}-${n}`:n)}return l(e,t)}function f(e){return d(e,`base-ui`)}function p(e){return e?.ownerDocument||document}var m=typeof navigator<`u`,h=w(),g=E(),_=T(),v=typeof CSS>`u`||!CSS.supports?!1:CSS.supports(`-webkit-backdrop-filter:none`),y=h.platform===`MacIntel`&&h.maxTouchPoints>1?!0:/iP(hone|ad|od)|iOS/.test(h.platform);m&&/firefox/i.test(_);var b=m&&/apple/i.test(navigator.vendor);m&&/Edg/i.test(_);var x=m&&/android/i.test(g)||/android/i.test(_),S=m&&g.toLowerCase().startsWith(`mac`)&&!navigator.maxTouchPoints,C=_.includes(`jsdom/`);function w(){if(!m)return{platform:``,maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??``,maxTouchPoints:navigator.maxTouchPoints??-1}}function T(){if(!m)return``;let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:t})=>`${e}/${t}`).join(` `):navigator.userAgent}function E(){if(!m)return``;let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??``}var D=`data-base-ui-focusable`,O=`active`,k=`selected`,A=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,j=`ArrowLeft`,M=`ArrowRight`,N=`ArrowUp`,P=`ArrowDown`;function F(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function I(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&r(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function L(e,t){if(!i(e))return!1;let n=e;if(t.hasElement(n))return!n.hasAttribute(`data-trigger-disabled`);for(let[,e]of t.entries())if(I(e,n))return!e.hasAttribute(`data-trigger-disabled`);return!1}function R(e){return`composedPath`in e?e.composedPath()[0]:e.target}function ee(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function z(e){return e.matches(`html,body`)}function B(e){return o(e)&&e.matches(`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`)}function V(e){return e?e.getAttribute(`role`)===`combobox`&&B(e):!1}function H(e){if(!e||C)return!0;try{return e.matches(`:focus-visible`)}catch{return!0}}function U(e){return e?e.hasAttribute(`data-base-ui-focusable`)?e:e.querySelector(`[data-base-ui-focusable]`)||e:null}var W=`none`,G=`trigger-press`,K=`trigger-hover`,q=`trigger-focus`,J=`outside-press`,Y=`item-press`,X=`close-press`,Z=`focus-out`,Q=`escape-key`,$=`list-navigation`,te=`cancel-open`,ne=`disabled`,re=`imperative-action`,ie=`window-resize`;function ae(e,t,r,i){let a=!1,o=!1,s=i??n;return{reason:e,event:t??new Event(`base-ui`),cancel(){a=!0},allowPropagation(){o=!0},get isCanceled(){return a},get isPropagationAllowed(){return o},trigger:r,...s}}export{N as A,p as B,V as C,P as D,O as E,y as F,d as H,C as I,S as L,k as M,A as N,j as O,x as P,b as R,L as S,H as T,f as V,I as _,Q as a,ee as b,Y as c,J as d,q as f,F as g,ie as h,ne as i,D as j,M as k,$ as l,G as m,te as n,Z as o,K as p,X as r,re as s,ae as t,W as u,U as v,B as w,z as x,R as y,v as z};
import{a as e,r as t}from"./compiler-runtime.js";import{l as n}from"./dist.js";import{b as r,s as i,w as a,y as o}from"./button.js";var s=e(t()),c=0;function l(e,t=`mui`){let[n,r]=s.useState(e),i=e||n;return s.useEffect(()=>{n??(c+=1,r(`${t}-${c}`))},[n,t]),i}var u=i.useId;function d(e,t){if(u!==void 0){let n=u();return e??(t?`${t}-${n}`:n)}return l(e,t)}function f(e){return d(e,`base-ui`)}function p(e){return e?.ownerDocument||document}var m=typeof navigator<`u`,h=w(),g=E(),_=T(),v=typeof CSS>`u`||!CSS.supports?!1:CSS.supports(`-webkit-backdrop-filter:none`),y=h.platform===`MacIntel`&&h.maxTouchPoints>1?!0:/iP(hone|ad|od)|iOS/.test(h.platform);m&&/firefox/i.test(_);var b=m&&/apple/i.test(navigator.vendor);m&&/Edg/i.test(_);var x=m&&/android/i.test(g)||/android/i.test(_),S=m&&g.toLowerCase().startsWith(`mac`)&&!navigator.maxTouchPoints,C=_.includes(`jsdom/`);function w(){if(!m)return{platform:``,maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??``,maxTouchPoints:navigator.maxTouchPoints??-1}}function T(){if(!m)return``;let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:t})=>`${e}/${t}`).join(` `):navigator.userAgent}function E(){if(!m)return``;let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??``}var D=`data-base-ui-focusable`,O=`active`,k=`selected`,A=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,j=`ArrowLeft`,M=`ArrowRight`,N=`ArrowUp`,P=`ArrowDown`;function F(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function I(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&a(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function L(e,t){if(!o(e))return!1;let n=e;if(t.hasElement(n))return!n.hasAttribute(`data-trigger-disabled`);for(let[,e]of t.entries())if(I(e,n))return!e.hasAttribute(`data-trigger-disabled`);return!1}function R(e){return`composedPath`in e?e.composedPath()[0]:e.target}function ee(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function z(e){return e.matches(`html,body`)}function B(e){return r(e)&&e.matches(`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`)}function V(e){return e?e.getAttribute(`role`)===`combobox`&&B(e):!1}function H(e){if(!e||C)return!0;try{return e.matches(`:focus-visible`)}catch{return!0}}function U(e){return e?e.hasAttribute(`data-base-ui-focusable`)?e:e.querySelector(`[data-base-ui-focusable]`)||e:null}var W=`none`,G=`trigger-press`,K=`trigger-hover`,q=`trigger-focus`,J=`outside-press`,Y=`item-press`,X=`close-press`,Z=`focus-out`,Q=`escape-key`,$=`list-navigation`,te=`cancel-open`,ne=`disabled`,re=`imperative-action`,ie=`window-resize`;function ae(e,t,r,i){let a=!1,o=!1,s=i??n;return{reason:e,event:t??new Event(`base-ui`),cancel(){a=!0},allowPropagation(){o=!0},get isCanceled(){return a},get isPropagationAllowed(){return o},trigger:r,...s}}export{N as A,p as B,V as C,P as D,O as E,y as F,d as H,C as I,S as L,k as M,A as N,j as O,x as P,b as R,L as S,H as T,f as V,I as _,Q as a,ee as b,Y as c,J as d,q as f,F as g,ie as h,ne as i,D as j,M as k,$ as l,G as m,te as n,Z as o,K as p,X as r,re as s,ae as t,W as u,U as v,B as w,z as x,R as y,v as z};
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{r}from"./ec22.js";import{t as i}from"./page-heading.js";import{t as a}from"./state-badge.js";import{t as o}from"./list-card.js";var s=t(),c=e();function l(){let e=(0,s.c)(5),{data:t}=n(r),a;e[0]===t.Images?a=e[1]:(a=t.Images??[],e[0]=t.Images,e[1]=a);let o=a,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,c.jsx)(i,{title:`EC2 Images`}),e[2]=l):l=e[2];let d;return e[3]===o?d=e[4]:(d=(0,c.jsxs)(c.Fragment,{children:[l,o.length>0?(0,c.jsx)(`div`,{className:`space-y-4`,children:o.map(u)}):(0,c.jsx)(`p`,{className:`text-muted-foreground`,children:`No images found.`})]}),e[3]=o,e[4]=d),d}function u(e){return e.ImageId?(0,c.jsx)(o,{badge:(0,c.jsx)(a,{state:e.State}),params:{id:e.ImageId},subtitle:e.ImageId??``,title:e.Name??e.ImageId??``,to:`/ec2/describe-images/$id`},e.ImageId):null}export{l as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{r}from"./ec22.js";import{t as i}from"./page-heading.js";import{t as a}from"./state-badge.js";import{r as o}from"./system-managed.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=n(r),a;if(e[0]!==t.Images){let n=(t.Images??[]).filter(f),r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,l.jsx)(i,{title:`EC2 Images`}),e[2]=r):r=e[2],a=(0,l.jsxs)(l.Fragment,{children:[r,n.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:n.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No images found.`})]}),e[0]=t.Images,e[1]=a}else a=e[1];return a}function d(e){return e.ImageId?(0,l.jsx)(s,{badge:(0,l.jsx)(a,{state:e.State}),params:{id:e.ImageId},subtitle:e.ImageId??``,title:e.Name??e.ImageId??``,to:`/ec2/describe-images/$id`},e.ImageId):null}function f(e){return!o(e)}export{u as component};
@@ -0,0 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{t as a}from"./button.js";import{r as o}from"./ec22.js";import{i as s}from"./elbv22.js";import{t as c}from"./page-heading.js";import{t as l}from"./state-badge.js";import{n as u}from"./system-managed.js";import{t as d}from"./lb-image-missing-banner.js";var f=t(),p=e();function m(e){return e?new Date(e).toLocaleString():``}function h(){let e=(0,f.c)(20),t=i(),{data:h}=n(s),{data:_}=n(o),v;e[0]===h.LoadBalancers?v=e[1]:(v=h.LoadBalancers??[],e[0]=h.LoadBalancers,e[1]=v);let y=v,b;e[2]===_.Images?b=e[3]:(b=_.Images??[],e[2]=_.Images,e[3]=b);let x;e[4]===b?x=e[5]:(x=u(b),e[4]=b,e[5]=x);let S=x,C=!S,w;e[6]===t?w=e[7]:(w=()=>t({to:`/ec2/create-load-balancer`}),e[6]=t,e[7]=w);let T;e[8]!==C||e[9]!==w?(T=(0,p.jsx)(c,{actions:(0,p.jsx)(a,{disabled:C,onClick:w,children:`Create load balancer`}),title:`Load balancers`}),e[8]=C,e[9]=w,e[10]=T):T=e[10];let E;e[11]===S?E=e[12]:(E=!S&&(0,p.jsx)(d,{}),e[11]=S,e[12]=E);let D;e[13]!==y||e[14]!==t?(D=y.length>0?(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`DNS name`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`State`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Type`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Scheme`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`VPC`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Created`})]})}),(0,p.jsx)(`tbody`,{children:y.map(e=>{if(!e.LoadBalancerArn)return null;let n=e.LoadBalancerArn;return(0,p.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:()=>t({to:`/ec2/describe-load-balancers/$id`,params:{id:encodeURIComponent(n)}}),children:[(0,p.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,p.jsx)(r,{className:`text-primary hover:underline`,onClick:g,params:{id:encodeURIComponent(n)},to:`/ec2/describe-load-balancers/$id`,children:e.LoadBalancerName??n})}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.DNSName??``}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:(0,p.jsx)(l,{state:e.State?.Code})}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.Type??``}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.Scheme??``}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.VpcId??``}),(0,p.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:m(e.CreatedTime)})]},n)})})]})}):(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`No load balancers found.`}),e[13]=y,e[14]=t,e[15]=D):D=e[15];let O;return e[16]!==T||e[17]!==E||e[18]!==D?(O=(0,p.jsxs)(p.Fragment,{children:[T,E,D]}),e[16]=T,e[17]=E,e[18]=D,e[19]=O):O=e[19],O}function g(e){return e.stopPropagation()}var _=h;export{_ as component};
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./link.js";import{B as i}from"./SignatureV4.js";import{t as a}from"./button.js";import{_ as o}from"./ec22.js";import{t as s}from"./page-heading.js";import{t as c}from"./state-badge.js";import{t as l}from"./list-card.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=n(o),i;e[0]===t.Subnets?i=e[1]:(i=t.Subnets??[],e[0]=t.Subnets,e[1]=i);let c=i,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(r,{to:`/ec2/create-subnet`,children:(0,d.jsx)(a,{children:`Create Subnet`})}),title:`Subnets`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No subnets found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.SubnetId)return null;let t=i(e.Tags);return(0,d.jsx)(l,{badge:(0,d.jsx)(c,{state:e.State}),params:{id:e.SubnetId},subtitle:`${e.CidrBlock??``} \u2022 ${e.AvailabilityZone??``}`,title:t?`${e.SubnetId} (${t})`:e.SubnetId,to:`/ec2/describe-subnets/$id`},e.SubnetId)}export{f as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./link.js";import{V as i}from"./SignatureV4.js";import{t as a}from"./button.js";import{_ as o}from"./ec22.js";import{t as s}from"./page-heading.js";import{t as c}from"./state-badge.js";import{t as l}from"./list-card.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=n(o),i;e[0]===t.Subnets?i=e[1]:(i=t.Subnets??[],e[0]=t.Subnets,e[1]=i);let c=i,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(r,{to:`/ec2/create-subnet`,children:(0,d.jsx)(a,{children:`Create Subnet`})}),title:`Subnets`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No subnets found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.SubnetId)return null;let t=i(e.Tags);return(0,d.jsx)(l,{badge:(0,d.jsx)(c,{state:e.State}),params:{id:e.SubnetId},subtitle:`${e.CidrBlock??``} \u2022 ${e.AvailabilityZone??``}`,title:t?`${e.SubnetId} (${t})`:e.SubnetId,to:`/ec2/describe-subnets/$id`},e.SubnetId)}export{f as component};
@@ -0,0 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useQuery.js";import{t as r}from"./useSuspenseQuery.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{t as o}from"./button.js";import{c as s,l as c}from"./elbv22.js";import{t as l}from"./page-heading.js";var u=t(),d=e();function f(){let e=(0,u.c)(6),t=a(),{data:n}=r(s),c;e[0]===n.TargetGroups?c=e[1]:(c=n.TargetGroups??[],e[0]=n.TargetGroups,e[1]=c);let f=c,h;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,d.jsx)(l,{actions:(0,d.jsx)(i,{to:`/ec2/create-target-group`,children:(0,d.jsx)(o,{children:`Create target group`})}),title:`Target groups`}),e[2]=h):h=e[2];let g;return e[3]!==t||e[4]!==f?(g=(0,d.jsxs)(d.Fragment,{children:[h,f.length>0?(0,d.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,d.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Protocol`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`VPC`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Target type`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Targets`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Health`})]})}),(0,d.jsx)(`tbody`,{children:f.map(e=>{if(!e.TargetGroupArn)return null;let n=e.TargetGroupArn;return(0,d.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:()=>t({to:`/ec2/describe-target-groups/$id`,params:{id:encodeURIComponent(n)}}),children:[(0,d.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,d.jsx)(i,{className:`text-primary hover:underline`,onClick:p,params:{id:encodeURIComponent(n)},to:`/ec2/describe-target-groups/$id`,children:e.TargetGroupName??n})}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Protocol??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Port??``}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.VpcId??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.TargetType??``}),(0,d.jsx)(m,{arn:n})]},n)})})]})}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No target groups found.`})]}),e[3]=t,e[4]=f,e[5]=g):g=e[5],g}function p(e){return e.stopPropagation()}function m(e){let t=(0,u.c)(13),{arn:r}=e,i;t[0]===r?i=t[1]:(i=c(r),t[0]=r,t[1]=i);let{data:a,isLoading:o}=n(i);if(o){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`td`,{className:`px-4 py-2 text-muted-foreground`,children:`…`}),(0,d.jsx)(`td`,{className:`px-4 py-2 text-muted-foreground`,children:`…`})]}),t[2]=e):e=t[2],e}let s,l;if(t[3]!==a?.TargetHealthDescriptions){s=a?.TargetHealthDescriptions??[];let e={};for(let t of s){let n=t.TargetHealth?.State??`unknown`;e[n]=(e[n]??0)+1}l=Object.entries(e).map(h).join(`, `)||`—`,t[3]=a?.TargetHealthDescriptions,t[4]=s,t[5]=l}else s=t[4],l=t[5];let f=l,p;t[6]===s.length?p=t[7]:(p=(0,d.jsx)(`td`,{className:`px-4 py-2`,children:s.length}),t[6]=s.length,t[7]=p);let m;t[8]===f?m=t[9]:(m=(0,d.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:f}),t[8]=f,t[9]=m);let g;return t[10]!==p||t[11]!==m?(g=(0,d.jsxs)(d.Fragment,{children:[p,m]}),t[10]=p,t[11]=m,t[12]=g):g=t[12],g}function h(e){let[t,n]=e;return`${n} ${t}`}var g=f;export{g as component};
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./link.js";import{B as i}from"./SignatureV4.js";import{t as a}from"./button.js";import{x as o}from"./ec22.js";import{t as s}from"./page-heading.js";import{t as c}from"./state-badge.js";import{t as l}from"./list-card.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=n(o),i;e[0]===t.Vpcs?i=e[1]:(i=t.Vpcs??[],e[0]=t.Vpcs,e[1]=i);let c=i,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(r,{to:`/ec2/create-vpc`,children:(0,d.jsx)(a,{children:`Create VPC`})}),title:`VPCs`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No VPCs found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.VpcId)return null;let t=i(e.Tags);return(0,d.jsx)(l,{badge:(0,d.jsx)(c,{state:e.State}),params:{id:e.VpcId},subtitle:e.CidrBlock??``,title:t?`${e.VpcId} (${t})`:e.VpcId,to:`/ec2/describe-vpcs/$id`},e.VpcId)}export{f as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./link.js";import{V as i}from"./SignatureV4.js";import{t as a}from"./button.js";import{x as o}from"./ec22.js";import{t as s}from"./page-heading.js";import{t as c}from"./state-badge.js";import{t as l}from"./list-card.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=n(o),i;e[0]===t.Vpcs?i=e[1]:(i=t.Vpcs??[],e[0]=t.Vpcs,e[1]=i);let c=i,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(r,{to:`/ec2/create-vpc`,children:(0,d.jsx)(a,{children:`Create VPC`})}),title:`VPCs`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No VPCs found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.VpcId)return null;let t=i(e.Tags);return(0,d.jsx)(l,{badge:(0,d.jsx)(c,{state:e.State}),params:{id:e.VpcId},subtitle:e.CidrBlock??``,title:t?`${e.VpcId} (${t})`:e.VpcId,to:`/ec2/describe-vpcs/$id`},e.VpcId)}export{f as component};
+1 -1
View File
@@ -1 +1 @@
import{a as e,r as t}from"./compiler-runtime.js";import{H as n}from"./SignatureV4.js";function r(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}var i={};function a(e,t,n,r,a){let o={...d(e,i)};return t&&(o=s(o,t)),n&&(o=s(o,n)),r&&(o=s(o,r)),a&&(o=s(o,a)),o}function o(e){if(e.length===0)return i;if(e.length===1)return d(e[0],i);let t={...d(e[0],i)};for(let n=1;n<e.length;n+=1)t=s(t,e[n]);return t}function s(e,t){return u(t)?t(e):c(e,t)}function c(e,t){if(!t)return e;for(let n in t){let i=t[n];switch(n){case`style`:e[n]=r(e.style,i);break;case`className`:e[n]=m(e.className,i);break;default:l(n,i)?e[n]=f(e[n],i):e[n]=i}}return e}function l(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),i=e.charCodeAt(2);return n===111&&r===110&&i>=65&&i<=90&&(typeof t==`function`||t===void 0)}function u(e){return typeof e==`function`}function d(e,t){return u(e)?e(t):e??i}function f(e,t){return t?e?n=>{if(h(n)){let r=n;p(r);let i=t(r);return r.baseUIHandlerPrevented||e?.(r),i}let r=t(n);return e?.(n),r}:t:e}function p(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function m(e,t){return t?e?t+` `+e:t:e}function h(e){return typeof e==`object`&&!!e&&`nativeEvent`in e}function g(e,t){return function(n,...r){let i=new URL(e);return i.searchParams.set(`code`,n.toString()),r.forEach(e=>i.searchParams.append(`args[]`,e)),`${t} error #${n}; visit ${i} for the full message.`}}var _=g(`https://base-ui.com/production-error`,`Base UI`),v=e(t()),y={};function b(e,t){let n=v.useRef(y);return n.current===y&&(n.current=e(t)),n}function x(e,t,n,r){let i=b(C).current;return w(i,e,t,n,r)&&E(i,[e,t,n,r]),i.callback}function S(e){let t=b(C).current;return T(t,e)&&E(t,e),t.callback}function C(){return{callback:null,cleanup:null,refs:[]}}function w(e,t,n,r,i){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==r||e.refs[3]!==i}function T(e,t){return e.refs.length!==t.length||e.refs.some((e,n)=>e!==t[n])}function E(e,t){if(e.refs=t,t.every(e=>e==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&=(e.cleanup(),null),n!=null){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let i=t[e];if(i!=null)switch(typeof i){case`function`:{let t=i(n);typeof t==`function`&&(r[e]=t);break}case`object`:i.current=n;break;default:}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(n!=null)switch(typeof n){case`function`:{let t=r[e];typeof t==`function`?t():n(null);break}case`object`:n.current=null;break;default:}}}}}}var D=19;function O(e){return D>=e}function k(e){if(!v.isValidElement(e))return null;let t=e,n=t.props;return(O(19)?n?.ref:t.ref)??null}function A(e,t){let n={};for(let r in e){let i=e[r];if(t?.hasOwnProperty(r)){let e=t[r](i);e!=null&&Object.assign(n,e);continue}i===!0?n[`data-${r.toLowerCase()}`]=``:i&&(n[`data-${r.toLowerCase()}`]=i.toString())}return n}function j(e,t){return typeof e==`function`?e(t):e}function M(e,t){return typeof e==`function`?e(t):e}function N(){}var P=Object.freeze([]),F=Object.freeze({}),I={style:{transition:`none`}},L=`data-base-ui-click-trigger`,R={fallbackAxisSide:`none`},z={fallbackAxisSide:`end`},B={clipPath:`inset(50%)`,position:`fixed`,top:0,left:0};function V(e,t,n={}){let r=t.render,i=H(t,n);return n.enabled===!1?null:W(e,r,i,n.state??F)}function H(e,t={}){let{className:n,style:i,render:a}=e,{state:s=F,ref:c,props:l,stateAttributesMapping:u,enabled:d=!0}=t,f=d?j(n,s):void 0,p=d?M(i,s):void 0,h=d?A(s,u):F,g=d?r(h,Array.isArray(l)?o(l):l)??F:F;return typeof document<`u`&&(d?Array.isArray(c)?g.ref=S([g.ref,k(a),...c]):g.ref=x(g.ref,k(a),c):x(null,null)),d?(f!==void 0&&(g.className=m(g.className,f)),p!==void 0&&(g.style=r(g.style,p)),g):F}var U=Symbol.for(`react.lazy`);function W(e,t,n,r){if(t){if(typeof t==`function`)return t(n,r);let e=a(n,t.props);e.ref=n.ref;let i=t;return i?.$$typeof===U&&(i=v.Children.toArray(t)[0]),v.cloneElement(i,e)}if(e&&typeof e==`string`)return G(e,n);throw Error(_(8))}function G(e,t){return e===`button`?(0,v.createElement)(`button`,{type:`button`,...t,key:t.key}):e===`img`?(0,v.createElement)(`img`,{alt:``,...t,key:t.key}):v.createElement(e,t)}var K=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,q=n,J=(e,t)=>n=>{if(t?.variants==null)return q(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=K(t)||K(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return q(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};export{R as a,P as c,O as d,x as f,a as g,p as h,I as i,F as l,_ as m,V as n,z as o,b as p,L as r,B as s,J as t,N as u};
import{a as e,r as t}from"./compiler-runtime.js";import{U as n}from"./SignatureV4.js";function r(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}var i={};function a(e,t,n,r,a){let o={...d(e,i)};return t&&(o=s(o,t)),n&&(o=s(o,n)),r&&(o=s(o,r)),a&&(o=s(o,a)),o}function o(e){if(e.length===0)return i;if(e.length===1)return d(e[0],i);let t={...d(e[0],i)};for(let n=1;n<e.length;n+=1)t=s(t,e[n]);return t}function s(e,t){return u(t)?t(e):c(e,t)}function c(e,t){if(!t)return e;for(let n in t){let i=t[n];switch(n){case`style`:e[n]=r(e.style,i);break;case`className`:e[n]=m(e.className,i);break;default:l(n,i)?e[n]=f(e[n],i):e[n]=i}}return e}function l(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),i=e.charCodeAt(2);return n===111&&r===110&&i>=65&&i<=90&&(typeof t==`function`||t===void 0)}function u(e){return typeof e==`function`}function d(e,t){return u(e)?e(t):e??i}function f(e,t){return t?e?n=>{if(h(n)){let r=n;p(r);let i=t(r);return r.baseUIHandlerPrevented||e?.(r),i}let r=t(n);return e?.(n),r}:t:e}function p(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function m(e,t){return t?e?t+` `+e:t:e}function h(e){return typeof e==`object`&&!!e&&`nativeEvent`in e}function g(e,t){return function(n,...r){let i=new URL(e);return i.searchParams.set(`code`,n.toString()),r.forEach(e=>i.searchParams.append(`args[]`,e)),`${t} error #${n}; visit ${i} for the full message.`}}var _=g(`https://base-ui.com/production-error`,`Base UI`),v=e(t()),y={};function b(e,t){let n=v.useRef(y);return n.current===y&&(n.current=e(t)),n}function x(e,t,n,r){let i=b(C).current;return w(i,e,t,n,r)&&E(i,[e,t,n,r]),i.callback}function S(e){let t=b(C).current;return T(t,e)&&E(t,e),t.callback}function C(){return{callback:null,cleanup:null,refs:[]}}function w(e,t,n,r,i){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==r||e.refs[3]!==i}function T(e,t){return e.refs.length!==t.length||e.refs.some((e,n)=>e!==t[n])}function E(e,t){if(e.refs=t,t.every(e=>e==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&=(e.cleanup(),null),n!=null){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let i=t[e];if(i!=null)switch(typeof i){case`function`:{let t=i(n);typeof t==`function`&&(r[e]=t);break}case`object`:i.current=n;break;default:}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(n!=null)switch(typeof n){case`function`:{let t=r[e];typeof t==`function`?t():n(null);break}case`object`:n.current=null;break;default:}}}}}}var D=19;function O(e){return D>=e}function k(e){if(!v.isValidElement(e))return null;let t=e,n=t.props;return(O(19)?n?.ref:t.ref)??null}function A(e,t){let n={};for(let r in e){let i=e[r];if(t?.hasOwnProperty(r)){let e=t[r](i);e!=null&&Object.assign(n,e);continue}i===!0?n[`data-${r.toLowerCase()}`]=``:i&&(n[`data-${r.toLowerCase()}`]=i.toString())}return n}function j(e,t){return typeof e==`function`?e(t):e}function M(e,t){return typeof e==`function`?e(t):e}function N(){}var P=Object.freeze([]),F=Object.freeze({}),I={style:{transition:`none`}},L=`data-base-ui-click-trigger`,R={fallbackAxisSide:`none`},z={fallbackAxisSide:`end`},B={clipPath:`inset(50%)`,position:`fixed`,top:0,left:0};function V(e,t,n={}){let r=t.render,i=H(t,n);return n.enabled===!1?null:W(e,r,i,n.state??F)}function H(e,t={}){let{className:n,style:i,render:a}=e,{state:s=F,ref:c,props:l,stateAttributesMapping:u,enabled:d=!0}=t,f=d?j(n,s):void 0,p=d?M(i,s):void 0,h=d?A(s,u):F,g=d?r(h,Array.isArray(l)?o(l):l)??F:F;return typeof document<`u`&&(d?Array.isArray(c)?g.ref=S([g.ref,k(a),...c]):g.ref=x(g.ref,k(a),c):x(null,null)),d?(f!==void 0&&(g.className=m(g.className,f)),p!==void 0&&(g.style=r(g.style,p)),g):F}var U=Symbol.for(`react.lazy`);function W(e,t,n,r){if(t){if(typeof t==`function`)return t(n,r);let e=a(n,t.props);e.ref=n.ref;let i=t;return i?.$$typeof===U&&(i=v.Children.toArray(t)[0]),v.cloneElement(i,e)}if(e&&typeof e==`string`)return G(e,n);throw Error(_(8))}function G(e,t){return e===`button`?(0,v.createElement)(`button`,{type:`button`,...t,key:t.key}):e===`img`?(0,v.createElement)(`img`,{alt:``,...t,key:t.key}):v.createElement(e,t)}var K=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,q=n,J=(e,t)=>n=>{if(t?.variants==null)return q(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=K(t)||K(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return q(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};export{R as a,P as c,O as d,x as f,a as g,p as h,I as i,F as l,_ as m,V as n,z as o,b as p,L as r,B as s,J as t,N as u};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{A as e,D as t,E as n,O as r,T as i,k as a,w as o}from"./SignatureV4.js";import{F as s,I as c,P as l}from"./ec2.js";var u=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$/,d=e().min(1,`Key name is required`).max(255,`Key name must be 255 characters or less`).regex(/^[\w\s._\-:/()#,@[\]+=&;{}!$*]+$/,`Key name contains invalid characters`),f=a({imageId:e(`Please select an Image`),instanceType:e(`Please select an instance type`),keyName:e(`Please select a key pair`).min(1,`Key pair is required`),subnetId:e().optional(),placementGroupName:e().optional(),count:t(`Instance count must be a whole number`).min(1,`Instance count must be at least 1`)}),p=a({keyName:d}),m=a({keyName:d,publicKeyMaterial:e().min(1,`Public key is required`).refine(e=>e.trim().length>0,`Public key cannot be empty`)}),h=a({size:r().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`).max(16384,`Size must be at most 16384 GiB`),availabilityZone:e().min(1,`Availability zone is required`)}),g=a({size:r().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`)}),_=a({volumeId:e().min(1,`Volume is required`),description:e().optional()});a({sourceSnapshotId:e().min(1,`Source snapshot is required`),sourceRegion:e().min(1,`Source region is required`),description:e().optional()}),a({volumeId:e().min(1,`Volume is required`),instanceId:e().min(1,`Instance is required`),device:e().optional()}),a({volumeId:e().min(1,`Volume is required`),instanceId:e().optional(),force:n().optional()}),a({instanceType:e().min(1,`Instance type is required`)}),a({name:e().min(1,`Name is required`),description:e().optional()});var v=a({vpcId:e().min(1,`VPC is required`),cidrBlock:e().min(1,`CIDR block is required`).regex(u,`Must be a valid CIDR block (e.g. 10.0.1.0/24)`),availabilityZone:e().optional()});a({cidrBlock:e().min(1,`CIDR block is required`).regex(u,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`),name:e().optional()});var y=a({key:e().min(1,`Key is required`),value:e()}),b=a({mode:o([`vpc-only`,`vpc-and-more`]),namePrefix:e().optional(),autoGenerateNames:n(),cidrBlock:e().min(1,`CIDR block is required`).regex(u,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`).refine(e=>c(e),`CIDR has invalid octets or prefix length (must be /16 to /28)`),tenancy:o([`default`,`dedicated`]),publicSubnetCount:r().int().min(0).max(1),privateSubnetCount:r().int().min(0).max(2),publicSubnetCidrs:i(e()),privateSubnetCidrs:i(e()),tags:i(y)}).superRefine((e,t)=>{if(e.mode!==`vpc-and-more`)return;let n=[];for(let[r,i]of e.publicSubnetCidrs.entries())c(i,16,28)?(l(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`publicSubnetCidrs`,r]}),n.push({cidr:i,field:`publicSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`publicSubnetCidrs`,r]});for(let[r,i]of e.privateSubnetCidrs.entries())c(i,16,28)?(l(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`privateSubnetCidrs`,r]}),n.push({cidr:i,field:`privateSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`privateSubnetCidrs`,r]});for(let e=0;e<n.length;e++)for(let r=e+1;r<n.length;r++){let i=n[e],a=n[r];i&&a&&s(i.cidr,a.cidr)&&t.addIssue({code:`custom`,message:`Subnet CIDRs must not overlap`,path:[a.field,a.index]})}}),x=a({groupName:e().min(1,`Group name is required`).max(255,`Group name must be 255 characters or less`),strategy:e().min(1,`Strategy is required`)}),S=a({groupName:e().min(1,`Group name is required`).max(255,`Group name must be 255 characters or less`),description:e().min(1,`Description is required`).max(255,`Description must be 255 characters or less`),vpcId:e().min(1,`VPC is required`)}),C=a({ipProtocol:e().min(1,`Protocol is required`),fromPort:r().int().min(-1).max(65535),toPort:r().int().min(-1).max(65535),cidrIp:e().min(1,`CIDR is required`).regex(u,`Must be a valid CIDR block (e.g. 0.0.0.0/0)`)});export{_ as a,b as c,C as d,S as i,m as l,p as n,v as o,x as r,h as s,f as t,g as u};
import{D as e,E as t,O as n,T as r,j as i,k as a,w as o}from"./SignatureV4.js";import{F as s,I as c,P as l}from"./ec2.js";var u=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$/,d=i().min(1,`Key name is required`).max(255,`Key name must be 255 characters or less`).regex(/^[\w\s._\-:/()#,@[\]+=&;{}!$*]+$/,`Key name contains invalid characters`),f=a({imageId:i(`Please select an Image`),instanceType:i(`Please select an instance type`),keyName:i(`Please select a key pair`).min(1,`Key pair is required`),subnetId:i().optional(),placementGroupName:i().optional(),count:e(`Instance count must be a whole number`).min(1,`Instance count must be at least 1`)}),p=a({keyName:d}),m=a({keyName:d,publicKeyMaterial:i().min(1,`Public key is required`).refine(e=>e.trim().length>0,`Public key cannot be empty`)}),h=a({size:n().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`).max(16384,`Size must be at most 16384 GiB`),availabilityZone:i().min(1,`Availability zone is required`)}),g=a({size:n().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`)}),_=a({volumeId:i().min(1,`Volume is required`),description:i().optional()});a({sourceSnapshotId:i().min(1,`Source snapshot is required`),sourceRegion:i().min(1,`Source region is required`),description:i().optional()}),a({volumeId:i().min(1,`Volume is required`),instanceId:i().min(1,`Instance is required`),device:i().optional()}),a({volumeId:i().min(1,`Volume is required`),instanceId:i().optional(),force:t().optional()}),a({instanceType:i().min(1,`Instance type is required`)}),a({name:i().min(1,`Name is required`),description:i().optional()});var v=a({vpcId:i().min(1,`VPC is required`),cidrBlock:i().min(1,`CIDR block is required`).regex(u,`Must be a valid CIDR block (e.g. 10.0.1.0/24)`),availabilityZone:i().optional()});a({cidrBlock:i().min(1,`CIDR block is required`).regex(u,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`),name:i().optional()});var y=a({key:i().min(1,`Key is required`),value:i()}),b=a({mode:o([`vpc-only`,`vpc-and-more`]),namePrefix:i().optional(),autoGenerateNames:t(),cidrBlock:i().min(1,`CIDR block is required`).regex(u,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`).refine(e=>c(e),`CIDR has invalid octets or prefix length (must be /16 to /28)`),tenancy:o([`default`,`dedicated`]),publicSubnetCount:n().int().min(0).max(1),privateSubnetCount:n().int().min(0).max(2),publicSubnetCidrs:r(i()),privateSubnetCidrs:r(i()),tags:r(y)}).superRefine((e,t)=>{if(e.mode!==`vpc-and-more`)return;let n=[];for(let[r,i]of e.publicSubnetCidrs.entries())c(i,16,28)?(l(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`publicSubnetCidrs`,r]}),n.push({cidr:i,field:`publicSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`publicSubnetCidrs`,r]});for(let[r,i]of e.privateSubnetCidrs.entries())c(i,16,28)?(l(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`privateSubnetCidrs`,r]}),n.push({cidr:i,field:`privateSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`privateSubnetCidrs`,r]});for(let e=0;e<n.length;e++)for(let r=e+1;r<n.length;r++){let i=n[e],a=n[r];i&&a&&s(i.cidr,a.cidr)&&t.addIssue({code:`custom`,message:`Subnet CIDRs must not overlap`,path:[a.field,a.index]})}}),x=a({groupName:i().min(1,`Group name is required`).max(255,`Group name must be 255 characters or less`),strategy:i().min(1,`Strategy is required`)}),S=a({groupName:i().min(1,`Group name is required`).max(255,`Group name must be 255 characters or less`),description:i().min(1,`Description is required`).max(255,`Description must be 255 characters or less`),vpcId:i().min(1,`VPC is required`)}),C=a({ipProtocol:i().min(1,`Protocol is required`),fromPort:n().int().min(-1).max(65535),toPort:n().int().min(-1).max(65535),cidrIp:i().min(1,`CIDR is required`).regex(u,`Must be a valid CIDR block (e.g. 0.0.0.0/0)`)});export{_ as a,b as c,C as d,S as i,m as l,p as n,v as o,x as r,h as s,f as t,g as u};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{t as e}from"./queryOptions.js";import{$ as t,J as n,Q as r,X as i,Y as a,Z as o,et as s,in as c,it as l,r as u,rn as d}from"./awsClient.js";var f=class extends d.classBuilder().ep(l).m(function(e,t,n,r){return[c(n,e.getEndpointParameterInstructions())]}).s(`ElasticLoadBalancing_v10`,`DescribeListeners`,{}).n(`ElasticLoadBalancingV2Client`,`DescribeListenersCommand`).sc(n).build(){},p=class extends d.classBuilder().ep(l).m(function(e,t,n,r){return[c(n,e.getEndpointParameterInstructions())]}).s(`ElasticLoadBalancing_v10`,`DescribeLoadBalancerAttributes`,{}).n(`ElasticLoadBalancingV2Client`,`DescribeLoadBalancerAttributesCommand`).sc(a).build(){},m=class extends d.classBuilder().ep(l).m(function(e,t,n,r){return[c(n,e.getEndpointParameterInstructions())]}).s(`ElasticLoadBalancing_v10`,`DescribeLoadBalancers`,{}).n(`ElasticLoadBalancingV2Client`,`DescribeLoadBalancersCommand`).sc(i).build(){},h=class extends d.classBuilder().ep(l).m(function(e,t,n,r){return[c(n,e.getEndpointParameterInstructions())]}).s(`ElasticLoadBalancing_v10`,`DescribeTags`,{}).n(`ElasticLoadBalancingV2Client`,`DescribeTagsCommand`).sc(o).build(){},g=class extends d.classBuilder().ep(l).m(function(e,t,n,r){return[c(n,e.getEndpointParameterInstructions())]}).s(`ElasticLoadBalancing_v10`,`DescribeTargetGroupAttributes`,{}).n(`ElasticLoadBalancingV2Client`,`DescribeTargetGroupAttributesCommand`).sc(r).build(){},_=class extends d.classBuilder().ep(l).m(function(e,t,n,r){return[c(n,e.getEndpointParameterInstructions())]}).s(`ElasticLoadBalancing_v10`,`DescribeTargetGroups`,{}).n(`ElasticLoadBalancingV2Client`,`DescribeTargetGroupsCommand`).sc(t).build(){},v=class extends d.classBuilder().ep(l).m(function(e,t,n,r){return[c(n,e.getEndpointParameterInstructions())]}).s(`ElasticLoadBalancing_v10`,`DescribeTargetHealth`,{}).n(`ElasticLoadBalancingV2Client`,`DescribeTargetHealthCommand`).sc(s).build(){},y=5e3,b=e({queryKey:[`elbv2`,`loadBalancers`],queryFn:()=>{let e=new m({});return u().send(e)},refetchInterval:e=>(e.state.data?.LoadBalancers??[]).some(e=>e.State?.Code===`provisioning`)?y:!1}),x=t=>e({queryKey:[`elbv2`,`loadBalancers`,t],queryFn:()=>{let e=new m({LoadBalancerArns:[t]});return u().send(e)},refetchInterval:e=>(e.state.data?.LoadBalancers?.[0])?.State?.Code===`provisioning`?y:!1}),S=t=>e({queryKey:[`elbv2`,`loadBalancers`,t,`attributes`],queryFn:()=>{let e=new p({LoadBalancerArn:t});return u().send(e)}}),C=e({queryKey:[`elbv2`,`targetGroups`],queryFn:()=>{let e=new _({});return u().send(e)}}),w=t=>e({queryKey:[`elbv2`,`targetGroups`,t],queryFn:()=>{let e=new _({TargetGroupArns:[t]});return u().send(e)}}),T=t=>e({queryKey:[`elbv2`,`targetGroups`,t,`attributes`],queryFn:()=>{let e=new g({TargetGroupArn:t});return u().send(e)}}),E=t=>e({queryKey:[`elbv2`,`listeners`,t],queryFn:()=>{let e=new f({LoadBalancerArn:t});return u().send(e)}}),D=t=>e({queryKey:[`elbv2`,`targetGroups`,t,`health`],queryFn:()=>{let e=new v({TargetGroupArn:t});return u().send(e)}}),O=t=>e({queryKey:[`elbv2`,`tags`,...t],queryFn:()=>{let e=new h({ResourceArns:t});return u().send(e)},enabled:t.length>0});export{O as a,C as c,b as i,D as l,S as n,T as o,x as r,w as s,E as t};
@@ -0,0 +1 @@
import{A as e,O as t,T as n,j as r,k as i,w as a}from"./SignatureV4.js";var o=/^(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])$/,s=r().min(1,`Name is required`).max(32,`Name must be 32 characters or less`).regex(o,`Name may contain only letters, digits, and hyphens; must start and end with alphanumeric`).refine(e=>!e.startsWith(`internal-`),`Name cannot start with 'internal-'`),c=r().min(1,`Name is required`).max(32,`Name must be 32 characters or less`).regex(o,`Name may contain only letters, digits, and hyphens; must start and end with alphanumeric`),l=t().int(`Port must be a whole number`).min(1,`Port must be at least 1`).max(65535,`Port must be at most 65535`),u=i({key:r().min(1,`Tag key is required`).max(128),value:r().max(256)}),d=i({protocol:a([`HTTP`]),path:r().min(1,`Path is required`).max(1024),port:r().min(1),intervalSeconds:t().int().min(5).max(300),timeoutSeconds:t().int().min(2).max(120),healthyThresholdCount:t().int().min(2).max(10),unhealthyThresholdCount:t().int().min(2).max(10),matcher:r().regex(/^\d{3}(?:[-,]\d{3})*$/,`Matcher must be HTTP codes like 200 or 200-299 or 200,201`)}),f=i({name:c,protocol:a([`HTTP`]),port:l,vpcId:r().min(1,`VPC is required`),healthCheck:d,tags:n(u)}),p=i({protocol:a([`HTTP`]),port:l,defaultTargetGroupArn:r().min(1,`Target group is required`)}),m=i({name:s,scheme:a([`internet-facing`,`internal`]),vpcId:r().min(1,`VPC is required`),subnetIds:n(r()).min(2,`At least 2 subnets are required for an ALB`),securityGroupIds:n(r()),tags:n(u),listener:i({protocol:a([`HTTP`]),port:l,targetGroupMode:a([`new`,`existing`]),existingTargetGroupArn:r().optional()}).refine(e=>e.targetGroupMode===`existing`?!!e.existingTargetGroupArn:!0,{error:`Target group is required`,path:[`existingTargetGroupArn`]})});i({targets:n(i({instanceId:r().min(1,`Instance is required`),port:l.optional()})).min(1,`At least one target is required`)}),e(r(),r());export{m as n,f as r,p as t};
+1 -1
View File
@@ -1 +1 @@
import{n as e,r as t,t as n}from"./compiler-runtime.js";import{t as r}from"./dist.js";import{F as i}from"./SignatureV4.js";import"./separator.js";t();var a=n(),o=e();function s(e){let t=(0,a.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let s;t[3]===n?s=t[4]:(s=i(`group/field-group @container/field-group flex w-full flex-col gap-4 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,n),t[3]=n,t[4]=s);let c;return t[5]!==r||t[6]!==s?(c=(0,o.jsx)(`div`,{className:s,"data-slot":`field-group`,...r}),t[5]=r,t[6]=s,t[7]=c):c=t[7],c}var c=r(`group/field flex w-full gap-2 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:`flex-col [&>*]:w-full [&>.sr-only]:w-auto`,horizontal:`flex-row items-center has-[>[data-slot=field-content]]:items-start [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`,responsive:`flex-col @md/field-group:flex-row @md/field-group:items-center @md/field-group:has-[>[data-slot=field-content]]:items-start [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`}},defaultVariants:{orientation:`vertical`}});function l(e){let t=(0,a.c)(11),n,r,s;t[0]===e?(n=t[1],r=t[2],s=t[3]):({className:n,orientation:s,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=s);let l=s===void 0?`vertical`:s,u;t[4]!==n||t[5]!==l?(u=i(c({orientation:l}),n),t[4]=n,t[5]=l,t[6]=u):u=t[6];let d;return t[7]!==l||t[8]!==r||t[9]!==u?(d=(0,o.jsx)(`div`,{className:u,"data-orientation":l,"data-slot":`field`,role:`group`,...r}),t[7]=l,t[8]=r,t[9]=u,t[10]=d):d=t[10],d}function u(e){let t=(0,a.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let s;t[3]===n?s=t[4]:(s=i(`flex w-fit items-center gap-2 text-xs/relaxed leading-snug font-medium group-data-[disabled=true]/field:opacity-50`,n),t[3]=n,t[4]=s);let c;return t[5]!==r||t[6]!==s?(c=(0,o.jsx)(`div`,{className:s,"data-slot":`field-label`,...r}),t[5]=r,t[6]=s,t[7]=c):c=t[7],c}function d(e){let t=(0,a.c)(15),n,r,s,c;t[0]===e?(n=t[1],r=t[2],s=t[3],c=t[4]):({className:r,children:n,errors:s,...c}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=s,t[4]=c);let l;bb0:{if(n){l=n;break bb0}if(!s?.length){l=null;break bb0}let e;t[5]===s?e=t[6]:(e=[...new Map(s.map(p)).values()],t[5]=s,t[6]=e);let r=e;if(r?.length===1){l=r[0]?.message;break bb0}let i;t[7]===r?i=t[8]:(i=(0,o.jsx)(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:r.map(f)}),t[7]=r,t[8]=i),l=i}let u=l;if(!u)return null;let d;t[9]===r?d=t[10]:(d=i(`text-xs/relaxed font-normal text-destructive`,r),t[9]=r,t[10]=d);let m;return t[11]!==u||t[12]!==c||t[13]!==d?(m=(0,o.jsx)(`div`,{className:d,"data-slot":`field-error`,role:`alert`,...c,children:u}),t[11]=u,t[12]=c,t[13]=d,t[14]=m):m=t[14],m}function f(e){return e?.message&&(0,o.jsx)(`li`,{children:e.message},e.message)}function p(e){return[e?.message,e]}export{u as i,d as n,s as r,l as t};
import{n as e,r as t,t as n}from"./compiler-runtime.js";import{t as r}from"./dist.js";import{I as i}from"./SignatureV4.js";import"./separator.js";t();var a=n(),o=e();function s(e){let t=(0,a.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let s;t[3]===n?s=t[4]:(s=i(`group/field-group @container/field-group flex w-full flex-col gap-4 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,n),t[3]=n,t[4]=s);let c;return t[5]!==r||t[6]!==s?(c=(0,o.jsx)(`div`,{className:s,"data-slot":`field-group`,...r}),t[5]=r,t[6]=s,t[7]=c):c=t[7],c}var c=r(`group/field flex w-full gap-2 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:`flex-col [&>*]:w-full [&>.sr-only]:w-auto`,horizontal:`flex-row items-center has-[>[data-slot=field-content]]:items-start [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`,responsive:`flex-col @md/field-group:flex-row @md/field-group:items-center @md/field-group:has-[>[data-slot=field-content]]:items-start [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`}},defaultVariants:{orientation:`vertical`}});function l(e){let t=(0,a.c)(11),n,r,s;t[0]===e?(n=t[1],r=t[2],s=t[3]):({className:n,orientation:s,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=s);let l=s===void 0?`vertical`:s,u;t[4]!==n||t[5]!==l?(u=i(c({orientation:l}),n),t[4]=n,t[5]=l,t[6]=u):u=t[6];let d;return t[7]!==l||t[8]!==r||t[9]!==u?(d=(0,o.jsx)(`div`,{className:u,"data-orientation":l,"data-slot":`field`,role:`group`,...r}),t[7]=l,t[8]=r,t[9]=u,t[10]=d):d=t[10],d}function u(e){let t=(0,a.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let s;t[3]===n?s=t[4]:(s=i(`flex w-fit items-center gap-2 text-xs/relaxed leading-snug font-medium group-data-[disabled=true]/field:opacity-50`,n),t[3]=n,t[4]=s);let c;return t[5]!==r||t[6]!==s?(c=(0,o.jsx)(`div`,{className:s,"data-slot":`field-label`,...r}),t[5]=r,t[6]=s,t[7]=c):c=t[7],c}function d(e){let t=(0,a.c)(15),n,r,s,c;t[0]===e?(n=t[1],r=t[2],s=t[3],c=t[4]):({className:r,children:n,errors:s,...c}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=s,t[4]=c);let l;bb0:{if(n){l=n;break bb0}if(!s?.length){l=null;break bb0}let e;t[5]===s?e=t[6]:(e=[...new Map(s.map(p)).values()],t[5]=s,t[6]=e);let r=e;if(r?.length===1){l=r[0]?.message;break bb0}let i;t[7]===r?i=t[8]:(i=(0,o.jsx)(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:r.map(f)}),t[7]=r,t[8]=i),l=i}let u=l;if(!u)return null;let d;t[9]===r?d=t[10]:(d=i(`text-xs/relaxed font-normal text-destructive`,r),t[9]=r,t[10]=d);let m;return t[11]!==u||t[12]!==c||t[13]!==d?(m=(0,o.jsx)(`div`,{className:d,"data-slot":`field-error`,role:`alert`,...c,children:u}),t[11]=u,t[12]=c,t[13]=d,t[14]=m):m=t[14],m}function f(e){return e?.message&&(0,o.jsx)(`li`,{children:e.message},e.message)}function p(e){return[e?.message,e]}export{u as i,d as n,s as r,l as t};
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{t as e}from"./compiler-runtime.js";import{n as t}from"./QueryClientProvider.js";import{n}from"./error-banner.js";import{A as r,C as i,D as a,E as o,O as s,R as c,Rt as l,T as u,k as d,r as f,w as p,z as m,zt as h}from"./awsClient.js";var g=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`AttachUserPolicy`,{}).n(`IAMClient`,`AttachUserPolicyCommand`).sc(i).build(){},_=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`CreateAccessKey`,{}).n(`IAMClient`,`CreateAccessKeyCommand`).sc(p).build(){},v=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`CreatePolicy`,{}).n(`IAMClient`,`CreatePolicyCommand`).sc(u).build(){},y=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`CreateUser`,{}).n(`IAMClient`,`CreateUserCommand`).sc(o).build(){},b=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DeleteAccessKey`,{}).n(`IAMClient`,`DeleteAccessKeyCommand`).sc(a).build(){},x=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DeletePolicy`,{}).n(`IAMClient`,`DeletePolicyCommand`).sc(s).build(){},S=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DeleteUser`,{}).n(`IAMClient`,`DeleteUserCommand`).sc(d).build(){},C=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DetachUserPolicy`,{}).n(`IAMClient`,`DetachUserPolicyCommand`).sc(r).build(){},w=class extends l.classBuilder().ep(m).m(function(e,t,n,r){return[h(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`UpdateAccessKey`,{}).n(`IAMClient`,`UpdateAccessKeyCommand`).sc(c).build(){},T=e();function E(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:D,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`users`]})}},e[0]=r,e[1]=i),n(i)}function D(e){let t=new y({UserName:e.userName,Path:e.path||void 0});return f().send(t)}function O(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:k,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`users`]})}},e[0]=r,e[1]=i),n(i)}function k(e){let t=new S({UserName:e});return f().send(t)}function A(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:j,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`access-keys`]})}},e[0]=r,e[1]=i),n(i)}function j(e){let t=new _({UserName:e});return f().send(t)}function M(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:N,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`access-keys`]})}},e[0]=r,e[1]=i),n(i)}function N(e){let{userName:t,accessKeyId:n}=e,r=new b({UserName:t,AccessKeyId:n});return f().send(r)}function P(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:F,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`access-keys`]})}},e[0]=r,e[1]=i),n(i)}function F(e){let{userName:t,accessKeyId:n,status:r}=e,i=new w({UserName:t,AccessKeyId:n,Status:r});return f().send(i)}function I(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:L,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`policies`]})}},e[0]=r,e[1]=i),n(i)}function L(e){let t=new v({PolicyName:e.policyName,Description:e.description||void 0,PolicyDocument:e.policyDocument});return f().send(t)}function R(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:z,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`policies`]})}},e[0]=r,e[1]=i),n(i)}function z(e){let t=new x({PolicyArn:e});return f().send(t)}function B(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:V,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`attached-user-policies`]})}},e[0]=r,e[1]=i),n(i)}function V(e){let{userName:t,policyArn:n}=e,r=new g({UserName:t,PolicyArn:n});return f().send(r)}function H(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:U,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`attached-user-policies`]})}},e[0]=r,e[1]=i),n(i)}function U(e){let{userName:t,policyArn:n}=e,r=new C({UserName:t,PolicyArn:n});return f().send(r)}export{M as a,H as c,E as i,P as l,A as n,R as o,I as r,O as s,B as t};
import{t as e}from"./compiler-runtime.js";import{n as t}from"./QueryClientProvider.js";import{n}from"./error-banner.js";import{A as r,B as i,D as a,E as o,O as s,T as c,i as l,in as u,j as d,k as f,rn as p,w as m,z as h}from"./awsClient.js";var g=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`AttachUserPolicy`,{}).n(`IAMClient`,`AttachUserPolicyCommand`).sc(m).build(){},_=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`CreateAccessKey`,{}).n(`IAMClient`,`CreateAccessKeyCommand`).sc(c).build(){},v=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`CreatePolicy`,{}).n(`IAMClient`,`CreatePolicyCommand`).sc(o).build(){},y=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`CreateUser`,{}).n(`IAMClient`,`CreateUserCommand`).sc(a).build(){},b=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DeleteAccessKey`,{}).n(`IAMClient`,`DeleteAccessKeyCommand`).sc(s).build(){},x=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DeletePolicy`,{}).n(`IAMClient`,`DeletePolicyCommand`).sc(f).build(){},S=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DeleteUser`,{}).n(`IAMClient`,`DeleteUserCommand`).sc(r).build(){},C=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`DetachUserPolicy`,{}).n(`IAMClient`,`DetachUserPolicyCommand`).sc(d).build(){},w=class extends p.classBuilder().ep(i).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`UpdateAccessKey`,{}).n(`IAMClient`,`UpdateAccessKeyCommand`).sc(h).build(){},T=e();function E(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:D,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`users`]})}},e[0]=r,e[1]=i),n(i)}function D(e){let t=new y({UserName:e.userName,Path:e.path||void 0});return l().send(t)}function O(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:k,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`users`]})}},e[0]=r,e[1]=i),n(i)}function k(e){let t=new S({UserName:e});return l().send(t)}function A(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:j,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`access-keys`]})}},e[0]=r,e[1]=i),n(i)}function j(e){let t=new _({UserName:e});return l().send(t)}function M(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:N,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`access-keys`]})}},e[0]=r,e[1]=i),n(i)}function N(e){let{userName:t,accessKeyId:n}=e,r=new b({UserName:t,AccessKeyId:n});return l().send(r)}function P(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:F,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`access-keys`]})}},e[0]=r,e[1]=i),n(i)}function F(e){let{userName:t,accessKeyId:n,status:r}=e,i=new w({UserName:t,AccessKeyId:n,Status:r});return l().send(i)}function I(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:L,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`policies`]})}},e[0]=r,e[1]=i),n(i)}function L(e){let t=new v({PolicyName:e.policyName,Description:e.description||void 0,PolicyDocument:e.policyDocument});return l().send(t)}function R(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:z,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`policies`]})}},e[0]=r,e[1]=i),n(i)}function z(e){let t=new x({PolicyArn:e});return l().send(t)}function B(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:V,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`attached-user-policies`]})}},e[0]=r,e[1]=i),n(i)}function V(e){let{userName:t,policyArn:n}=e,r=new g({UserName:t,PolicyArn:n});return l().send(r)}function H(){let e=(0,T.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:U,onSuccess:()=>{r.invalidateQueries({queryKey:[`iam`,`attached-user-policies`]})}},e[0]=r,e[1]=i),n(i)}function U(e){let{userName:t,policyArn:n}=e,r=new C({UserName:t,PolicyArn:n});return l().send(r)}export{M as a,H as c,E as i,P as l,A as n,R as o,I as r,O as s,B as t};
+1 -1
View File
@@ -1 +1 @@
import{t as e}from"./queryOptions.js";import{F as t,I as n,L as r,M as i,N as a,P as o,Rt as s,j as c,r as l,z as u,zt as d}from"./awsClient.js";var f=class extends s.classBuilder().ep(u).m(function(e,t,n,r){return[d(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`GetPolicy`,{}).n(`IAMClient`,`GetPolicyCommand`).sc(c).build(){},p=class extends s.classBuilder().ep(u).m(function(e,t,n,r){return[d(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`GetPolicyVersion`,{}).n(`IAMClient`,`GetPolicyVersionCommand`).sc(i).build(){},m=class extends s.classBuilder().ep(u).m(function(e,t,n,r){return[d(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`GetUser`,{}).n(`IAMClient`,`GetUserCommand`).sc(a).build(){},h=class extends s.classBuilder().ep(u).m(function(e,t,n,r){return[d(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListAccessKeys`,{}).n(`IAMClient`,`ListAccessKeysCommand`).sc(o).build(){},g=class extends s.classBuilder().ep(u).m(function(e,t,n,r){return[d(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListAttachedUserPolicies`,{}).n(`IAMClient`,`ListAttachedUserPoliciesCommand`).sc(t).build(){},_=class extends s.classBuilder().ep(u).m(function(e,t,n,r){return[d(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListPolicies`,{}).n(`IAMClient`,`ListPoliciesCommand`).sc(n).build(){},v=class extends s.classBuilder().ep(u).m(function(e,t,n,r){return[d(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListUsers`,{}).n(`IAMClient`,`ListUsersCommand`).sc(r).build(){},y=e({queryKey:[`iam`,`users`],queryFn:()=>{let e=new v({});return l().send(e)},staleTime:3e5}),b=t=>e({queryKey:[`iam`,`users`,t],queryFn:()=>{let e=new m({UserName:t});return l().send(e)},staleTime:3e5}),x=t=>e({queryKey:[`iam`,`access-keys`,t],queryFn:()=>{let e=new h({UserName:t});return l().send(e)},staleTime:3e5}),S=e({queryKey:[`iam`,`policies`],queryFn:()=>{let e=new _({Scope:`Local`});return l().send(e)},staleTime:3e5}),C=t=>e({queryKey:[`iam`,`policies`,t],queryFn:()=>{let e=new f({PolicyArn:t});return l().send(e)},staleTime:3e5}),w=(t,n)=>e({queryKey:[`iam`,`policy-versions`,t,n],queryFn:()=>{let e=new p({PolicyArn:t,VersionId:n});return l().send(e)},staleTime:3e5}),T=t=>e({queryKey:[`iam`,`attached-user-policies`,t],queryFn:()=>{let e=new g({UserName:t});return l().send(e)},staleTime:3e5});export{w as a,C as i,T as n,b as o,S as r,y as s,x as t};
import{t as e}from"./queryOptions.js";import{B as t,F as n,I as r,L as i,M as a,N as o,P as s,R as c,i as l,in as u,rn as d}from"./awsClient.js";var f=class extends d.classBuilder().ep(t).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`GetPolicy`,{}).n(`IAMClient`,`GetPolicyCommand`).sc(a).build(){},p=class extends d.classBuilder().ep(t).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`GetPolicyVersion`,{}).n(`IAMClient`,`GetPolicyVersionCommand`).sc(o).build(){},m=class extends d.classBuilder().ep(t).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`GetUser`,{}).n(`IAMClient`,`GetUserCommand`).sc(s).build(){},h=class extends d.classBuilder().ep(t).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListAccessKeys`,{}).n(`IAMClient`,`ListAccessKeysCommand`).sc(n).build(){},g=class extends d.classBuilder().ep(t).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListAttachedUserPolicies`,{}).n(`IAMClient`,`ListAttachedUserPoliciesCommand`).sc(r).build(){},_=class extends d.classBuilder().ep(t).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListPolicies`,{}).n(`IAMClient`,`ListPoliciesCommand`).sc(i).build(){},v=class extends d.classBuilder().ep(t).m(function(e,t,n,r){return[u(n,e.getEndpointParameterInstructions())]}).s(`AWSIdentityManagementV20100508`,`ListUsers`,{}).n(`IAMClient`,`ListUsersCommand`).sc(c).build(){},y=e({queryKey:[`iam`,`users`],queryFn:()=>{let e=new v({});return l().send(e)},staleTime:3e5}),b=t=>e({queryKey:[`iam`,`users`,t],queryFn:()=>{let e=new m({UserName:t});return l().send(e)},staleTime:3e5}),x=t=>e({queryKey:[`iam`,`access-keys`,t],queryFn:()=>{let e=new h({UserName:t});return l().send(e)},staleTime:3e5}),S=e({queryKey:[`iam`,`policies`],queryFn:()=>{let e=new _({Scope:`Local`});return l().send(e)},staleTime:3e5}),C=t=>e({queryKey:[`iam`,`policies`,t],queryFn:()=>{let e=new f({PolicyArn:t});return l().send(e)},staleTime:3e5}),w=(t,n)=>e({queryKey:[`iam`,`policy-versions`,t,n],queryFn:()=>{let e=new p({PolicyArn:t,VersionId:n});return l().send(e)},staleTime:3e5}),T=t=>e({queryKey:[`iam`,`attached-user-policies`,t],queryFn:()=>{let e=new g({UserName:t});return l().send(e)},staleTime:3e5});export{w as a,C as i,T as n,b as o,S as r,y as s,x as t};
+1 -1
View File
@@ -1 +1 @@
import{A as e,k as t}from"./SignatureV4.js";var n=t({userName:e().min(1,`User name is required`).max(64,`User name must be 64 characters or less`).regex(/^[\w+=,.@-]+$/,`User name contains invalid characters`),path:e().optional()}),r=t({policyName:e().min(1,`Policy name is required`).max(128,`Policy name must be 128 characters or less`),description:e().optional(),policyDocument:e().min(1,`Policy document is required`).refine(e=>{try{return JSON.parse(e),!0}catch{return!1}},{message:`Policy document must be valid JSON`})});export{n,r as t};
import{j as e,k as t}from"./SignatureV4.js";var n=t({userName:e().min(1,`User name is required`).max(64,`User name must be 64 characters or less`).regex(/^[\w+=,.@-]+$/,`User name contains invalid characters`),path:e().optional()}),r=t({policyName:e().min(1,`Policy name is required`).max(128,`Policy name must be 128 characters or less`),description:e().optional(),policyDocument:e().min(1,`Policy document is required`).refine(e=>{try{return JSON.parse(e),!0}catch{return!1}},{message:`Policy document must be valid JSON`})});export{n,r as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{a as e,n as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./dist.js";import{F as a}from"./SignatureV4.js";import{i as o}from"./button.js";import{a as s,c,i as l,n as u,r as d,s as f}from"./separator.js";import{B as p,g as m,t as h,u as g}from"./createBaseUIEventDetails.js";var _=e(n()),v=_.forwardRef(function(e,t){let{render:n,className:r,id:a,name:v,value:y,disabled:b=!1,onValueChange:x,defaultValue:S,autoFocus:C=!1,...w}=e,{state:T,name:E,disabled:D,setTouched:O,setDirty:k,validityData:A,setFocused:j,setFilled:M,validationMode:N,validation:P}=f(),F=D||b,I=E??v,L={...T,disabled:F},{labelId:R}=s(),z=d({id:a});o(()=>{let e=y!=null;P.inputRef.current?.value||e&&y!==``?M(!0):e&&y===``&&M(!1)},[P.inputRef,M,y]);let B=_.useRef(null);o(()=>{C&&B.current===m(p(B.current))&&j(!0)},[C,j]);let[V]=l({controlled:y,default:S,name:`FieldControl`,state:`value`}),H=y!==void 0,U=H?V:void 0;return u({id:z,name:I,commit:P.commit,value:U,getValue:()=>P.inputRef.current?.value,controlRef:P.inputRef}),i(`input`,e,{ref:[t,B],state:L,props:[{id:z,disabled:F,name:I,ref:P.inputRef,"aria-labelledby":R,autoFocus:C,...H?{value:U}:{defaultValue:S},onChange(e){let t=e.currentTarget.value;x?.(t,h(g,e.nativeEvent)),k(t!==A.initialValue),M(t!==``)},onFocus(){j(!0)},onBlur(e){O(!0),j(!1),N===`onBlur`&&P.commit(e.currentTarget.value)},onKeyDown(e){e.currentTarget.tagName===`INPUT`&&e.key===`Enter`&&(O(!0),P.commit(e.currentTarget.value))}},P.getInputValidationProps(),w],stateAttributesMapping:c})}),y=t(),b=_.forwardRef(function(e,t){return(0,y.jsx)(v,{ref:t,...e})}),x=r();function S(e){let t=(0,x.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,type:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let o;t[4]===n?o=t[5]:(o=a(`h-7 w-full min-w-0 rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs/relaxed file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-xs/relaxed dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,n),t[4]=n,t[5]=o);let s;return t[6]!==r||t[7]!==o||t[8]!==i?(s=(0,y.jsx)(b,{className:o,"data-slot":`input`,type:i,...r}),t[6]=r,t[7]=o,t[8]=i,t[9]=s):s=t[9],s}export{S as t};
import{a as e,n as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./dist.js";import{I as a}from"./SignatureV4.js";import{o}from"./button.js";import{a as s,c,i as l,n as u,r as d,s as f}from"./separator.js";import{B as p,g as m,t as h,u as g}from"./createBaseUIEventDetails.js";var _=e(n()),v=_.forwardRef(function(e,t){let{render:n,className:r,id:a,name:v,value:y,disabled:b=!1,onValueChange:x,defaultValue:S,autoFocus:C=!1,...w}=e,{state:T,name:E,disabled:D,setTouched:O,setDirty:k,validityData:A,setFocused:j,setFilled:M,validationMode:N,validation:P}=f(),F=D||b,I=E??v,L={...T,disabled:F},{labelId:R}=s(),z=d({id:a});o(()=>{let e=y!=null;P.inputRef.current?.value||e&&y!==``?M(!0):e&&y===``&&M(!1)},[P.inputRef,M,y]);let B=_.useRef(null);o(()=>{C&&B.current===m(p(B.current))&&j(!0)},[C,j]);let[V]=l({controlled:y,default:S,name:`FieldControl`,state:`value`}),H=y!==void 0,U=H?V:void 0;return u({id:z,name:I,commit:P.commit,value:U,getValue:()=>P.inputRef.current?.value,controlRef:P.inputRef}),i(`input`,e,{ref:[t,B],state:L,props:[{id:z,disabled:F,name:I,ref:P.inputRef,"aria-labelledby":R,autoFocus:C,...H?{value:U}:{defaultValue:S},onChange(e){let t=e.currentTarget.value;x?.(t,h(g,e.nativeEvent)),k(t!==A.initialValue),M(t!==``)},onFocus(){j(!0)},onBlur(e){O(!0),j(!1),N===`onBlur`&&P.commit(e.currentTarget.value)},onKeyDown(e){e.currentTarget.tagName===`INPUT`&&e.key===`Enter`&&(O(!0),P.commit(e.currentTarget.value))}},P.getInputValidationProps(),w],stateAttributesMapping:c})}),y=t(),b=_.forwardRef(function(e,t){return(0,y.jsx)(v,{ref:t,...e})}),x=r();function S(e){let t=(0,x.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,type:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let o;t[4]===n?o=t[5]:(o=a(`h-7 w-full min-w-0 rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs/relaxed file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-xs/relaxed dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,n),t[4]=n,t[5]=o);let s;return t[6]!==r||t[7]!==o||t[8]!==i?(s=(0,y.jsx)(b,{className:o,"data-slot":`input`,type:i,...r}),t[6]=r,t[7]=o,t[8]=i,t[9]=s):s=t[9],s}export{S as t};
@@ -0,0 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./system-managed.js";var r=t(),i=e();function a(){let e=(0,r.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,i.jsxs)(`div`,{className:`mb-6 max-w-4xl rounded-md border border-amber-500/50 bg-amber-500/10 p-4`,children:[(0,i.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Load balancer image not imported`}),(0,i.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`The load balancer system image has not been imported on this cluster. A cluster administrator must run the following command before load balancers can be created:`}),(0,i.jsxs)(`pre`,{className:`mt-2 overflow-x-auto rounded bg-muted px-3 py-2 font-mono text-xs`,children:[`spx admin images import --name `,n]})]}),e[0]=t):t=e[0],t}export{a as t};
+1 -1
View File
@@ -1 +1 @@
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{H as r,M as i,N as a,V as o,i as ee,k as te,p as s,s as ne,t as re,u as ie}from"./useStore.js";import{Xt as c}from"./awsClient.js";var l=`Error preloading route! ☝️`,u=e(n(),1);t();var ae=e(c(),1);function d(e,t){let n=ee(),c=o(t),{activeProps:d,inactiveProps:g,activeOptions:_,to:v,preload:pe,preloadDelay:me,preloadIntentProximity:he,hashScrollIntoView:ge,replace:y,startTransition:_e,resetScroll:ve,viewTransition:b,children:x,target:S,disabled:C,style:w,className:T,onClick:E,onBlur:D,onFocus:O,onMouseEnter:k,onMouseLeave:A,onTouchStart:j,ignoreBlocker:M,params:ye,search:be,hash:xe,state:Se,mask:Ce,reloadDocument:we,unsafeRelative:Te,from:Ee,_fromLocation:De,...N}=e,P=ne(),F=u.useMemo(()=>e,[n,e.from,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),I=re(n.stores.location,e=>e,(e,t)=>e.href===t.href),L=u.useMemo(()=>{let e={_fromLocation:I,...F};return n.buildLocation(e)},[n,I,F]),R=L.maskedLocation?L.maskedLocation.publicHref:L.publicHref,z=L.maskedLocation?L.maskedLocation.external:L.external,B=u.useMemo(()=>ue(R,z,n.history,C),[C,z,R,n.history]),V=u.useMemo(()=>{if(B?.external)return a(B.href,n.protocolAllowlist)?void 0:B.href;if(!de(v)&&!(typeof v!=`string`||v.indexOf(`:`)===-1))try{return new URL(v),a(v,n.protocolAllowlist)?void 0:v}catch{}},[v,B,n.protocolAllowlist]),H=u.useMemo(()=>{if(V)return!1;if(_?.exact){if(!ie(I.pathname,L.pathname,n.basepath))return!1}else{let e=s(I.pathname,n.basepath),t=s(L.pathname,n.basepath);if(!(e.startsWith(t)&&(e.length===t.length||e[t.length]===`/`)))return!1}return(_?.includeSearch??!0)&&!te(I.search,L.search,{partial:!_?.exact,ignoreUndefined:!_?.explicitUndefined})?!1:_?.includeHash?P&&I.hash===L.hash:!0},[_?.exact,_?.explicitUndefined,_?.includeHash,_?.includeSearch,I,V,P,L.hash,L.pathname,L.search,n.basepath]),U=H?i(d,{})??oe:f,W=H?f:i(g,{})??f,G=[T,U.className,W.className].filter(Boolean).join(` `),K=(w||U.style||W.style)&&{...w,...U.style,...W.style},[Oe,q]=u.useState(!1),J=u.useRef(!1),Y=e.reloadDocument||V?!1:pe??n.options.defaultPreload,X=me??n.options.defaultPreloadDelay??0,Z=u.useCallback(()=>{n.preloadRoute({...F,_builtLocation:L}).catch(e=>{console.warn(e),console.warn(l)})},[n,F,L]);r(c,u.useCallback(e=>{e?.isIntersecting&&Z()},[Z]),m,{disabled:!!C||Y!==`viewport`}),u.useEffect(()=>{J.current||!C&&Y===`render`&&(Z(),J.current=!0)},[C,Z,Y]);let ke=e=>{let t=e.currentTarget.getAttribute(`target`),r=S===void 0?t:S;if(!C&&!fe(e)&&!e.defaultPrevented&&(!r||r===`_self`)&&e.button===0){e.preventDefault(),(0,ae.flushSync)(()=>{q(!0)});let t=n.subscribe(`onResolved`,()=>{t(),q(!1)});n.navigate({...F,replace:y,resetScroll:ve,hashScrollIntoView:ge,startTransition:_e,viewTransition:b,ignoreBlocker:M})}};if(V)return{...N,ref:c,href:V,...x&&{children:x},...S&&{target:S},...C&&{disabled:C},...w&&{style:w},...T&&{className:T},...E&&{onClick:E},...D&&{onBlur:D},...O&&{onFocus:O},...k&&{onMouseEnter:k},...A&&{onMouseLeave:A},...j&&{onTouchStart:j}};let Q=e=>{if(C||Y!==`intent`)return;if(!X){Z();return}let t=e.currentTarget;if(p.has(t))return;let n=setTimeout(()=>{p.delete(t),Z()},X);p.set(t,n)},Ae=e=>{C||Y!==`intent`||Z()},$=e=>{if(C||!Y||!X)return;let t=e.currentTarget,n=p.get(t);n&&(clearTimeout(n),p.delete(t))};return{...N,...U,...W,href:B?.href,ref:c,onClick:h([E,ke]),onBlur:h([D,$]),onFocus:h([O,Q]),onMouseEnter:h([k,Q]),onMouseLeave:h([A,$]),onTouchStart:h([j,Ae]),disabled:!!C,target:S,...K&&{style:K},...G&&{className:G},...C&&se,...H&&ce,...P&&Oe&&le}}var f={},oe={className:`active`},se={role:`link`,"aria-disabled":!0},ce={"data-status":`active`,"aria-current":`page`},le={"data-transitioning":`transitioning`},p=new WeakMap,m={rootMargin:`100px`},h=e=>t=>{for(let n of e)if(n){if(t.defaultPrevented)return;n(t)}};function ue(e,t,n,r){if(!r)return t?{href:e,external:!0}:{href:n.createHref(e)||`/`,external:!1}}function de(e){if(typeof e!=`string`)return!1;let t=e.charCodeAt(0);return t===47?e.charCodeAt(1)!==47:t===46}var g=u.forwardRef((e,t)=>{let{_asChild:n,...r}=e,{type:i,...a}=d(r,t),o=typeof r.children==`function`?r.children({isActive:a[`data-status`]===`active`}):r.children;if(!n){let{disabled:e,...t}=a;return u.createElement(`a`,t,o)}return u.createElement(n,a,o)});function fe(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}export{g as t};
import{a as e,n as t,r as n}from"./compiler-runtime.js";import{H as r,M as i,N as a,V as o,i as ee,k as te,p as s,s as ne,t as re,u as ie}from"./useStore.js";import{hn as c}from"./awsClient.js";var l=`Error preloading route! ☝️`,u=e(n(),1);t();var ae=e(c(),1);function d(e,t){let n=ee(),c=o(t),{activeProps:d,inactiveProps:g,activeOptions:_,to:v,preload:pe,preloadDelay:me,preloadIntentProximity:he,hashScrollIntoView:ge,replace:y,startTransition:_e,resetScroll:ve,viewTransition:b,children:x,target:S,disabled:C,style:w,className:T,onClick:E,onBlur:D,onFocus:O,onMouseEnter:k,onMouseLeave:A,onTouchStart:j,ignoreBlocker:M,params:ye,search:be,hash:xe,state:Se,mask:Ce,reloadDocument:we,unsafeRelative:Te,from:Ee,_fromLocation:De,...N}=e,P=ne(),F=u.useMemo(()=>e,[n,e.from,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),I=re(n.stores.location,e=>e,(e,t)=>e.href===t.href),L=u.useMemo(()=>{let e={_fromLocation:I,...F};return n.buildLocation(e)},[n,I,F]),R=L.maskedLocation?L.maskedLocation.publicHref:L.publicHref,z=L.maskedLocation?L.maskedLocation.external:L.external,B=u.useMemo(()=>ue(R,z,n.history,C),[C,z,R,n.history]),V=u.useMemo(()=>{if(B?.external)return a(B.href,n.protocolAllowlist)?void 0:B.href;if(!de(v)&&!(typeof v!=`string`||v.indexOf(`:`)===-1))try{return new URL(v),a(v,n.protocolAllowlist)?void 0:v}catch{}},[v,B,n.protocolAllowlist]),H=u.useMemo(()=>{if(V)return!1;if(_?.exact){if(!ie(I.pathname,L.pathname,n.basepath))return!1}else{let e=s(I.pathname,n.basepath),t=s(L.pathname,n.basepath);if(!(e.startsWith(t)&&(e.length===t.length||e[t.length]===`/`)))return!1}return(_?.includeSearch??!0)&&!te(I.search,L.search,{partial:!_?.exact,ignoreUndefined:!_?.explicitUndefined})?!1:_?.includeHash?P&&I.hash===L.hash:!0},[_?.exact,_?.explicitUndefined,_?.includeHash,_?.includeSearch,I,V,P,L.hash,L.pathname,L.search,n.basepath]),U=H?i(d,{})??oe:f,W=H?f:i(g,{})??f,G=[T,U.className,W.className].filter(Boolean).join(` `),K=(w||U.style||W.style)&&{...w,...U.style,...W.style},[Oe,q]=u.useState(!1),J=u.useRef(!1),Y=e.reloadDocument||V?!1:pe??n.options.defaultPreload,X=me??n.options.defaultPreloadDelay??0,Z=u.useCallback(()=>{n.preloadRoute({...F,_builtLocation:L}).catch(e=>{console.warn(e),console.warn(l)})},[n,F,L]);r(c,u.useCallback(e=>{e?.isIntersecting&&Z()},[Z]),m,{disabled:!!C||Y!==`viewport`}),u.useEffect(()=>{J.current||!C&&Y===`render`&&(Z(),J.current=!0)},[C,Z,Y]);let ke=e=>{let t=e.currentTarget.getAttribute(`target`),r=S===void 0?t:S;if(!C&&!fe(e)&&!e.defaultPrevented&&(!r||r===`_self`)&&e.button===0){e.preventDefault(),(0,ae.flushSync)(()=>{q(!0)});let t=n.subscribe(`onResolved`,()=>{t(),q(!1)});n.navigate({...F,replace:y,resetScroll:ve,hashScrollIntoView:ge,startTransition:_e,viewTransition:b,ignoreBlocker:M})}};if(V)return{...N,ref:c,href:V,...x&&{children:x},...S&&{target:S},...C&&{disabled:C},...w&&{style:w},...T&&{className:T},...E&&{onClick:E},...D&&{onBlur:D},...O&&{onFocus:O},...k&&{onMouseEnter:k},...A&&{onMouseLeave:A},...j&&{onTouchStart:j}};let Q=e=>{if(C||Y!==`intent`)return;if(!X){Z();return}let t=e.currentTarget;if(p.has(t))return;let n=setTimeout(()=>{p.delete(t),Z()},X);p.set(t,n)},Ae=e=>{C||Y!==`intent`||Z()},$=e=>{if(C||!Y||!X)return;let t=e.currentTarget,n=p.get(t);n&&(clearTimeout(n),p.delete(t))};return{...N,...U,...W,href:B?.href,ref:c,onClick:h([E,ke]),onBlur:h([D,$]),onFocus:h([O,Q]),onMouseEnter:h([k,Q]),onMouseLeave:h([A,$]),onTouchStart:h([j,Ae]),disabled:!!C,target:S,...K&&{style:K},...G&&{className:G},...C&&se,...H&&ce,...P&&Oe&&le}}var f={},oe={className:`active`},se={role:`link`,"aria-disabled":!0},ce={"data-status":`active`,"aria-current":`page`},le={"data-transitioning":`transitioning`},p=new WeakMap,m={rootMargin:`100px`},h=e=>t=>{for(let n of e)if(n){if(t.defaultPrevented)return;n(t)}};function ue(e,t,n,r){if(!r)return t?{href:e,external:!0}:{href:n.createHref(e)||`/`,external:!1}}function de(e){if(typeof e!=`string`)return!1;let t=e.charCodeAt(0);return t===47?e.charCodeAt(1)!==47:t===46}var g=u.forwardRef((e,t)=>{let{_asChild:n,...r}=e,{type:i,...a}=d(r,t),o=typeof r.children==`function`?r.children({isActive:a[`data-status`]===`active`}):r.children;if(!n){let{disabled:e,...t}=a;return u.createElement(`a`,t,o)}return u.createElement(n,a,o)});function fe(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}export{g as t};
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./link.js";import{R as i}from"./SignatureV4.js";import{t as a}from"./button.js";import{n as o}from"./s32.js";import{t as s}from"./page-heading.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=n(o),i;e[0]===t.Buckets?i=e[1]:(i=t.Buckets??[],e[0]=t.Buckets,e[1]=i);let c=i,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(r,{to:`/s3/create-bucket`,children:(0,u.jsx)(a,{children:`Create Bucket`})}),title:`S3 Buckets`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No buckets found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.Name?(0,u.jsx)(c,{params:{bucket:e.Name},subtitle:e.CreationDate?`Created: ${i(e.CreationDate)}`:void 0,title:e.Name,to:`/s3/ls/$bucket`},e.Name):null}export{d as component};
import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useSuspenseQuery.js";import{t as r}from"./link.js";import{z as i}from"./SignatureV4.js";import{t as a}from"./button.js";import{n as o}from"./s32.js";import{t as s}from"./page-heading.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=n(o),i;e[0]===t.Buckets?i=e[1]:(i=t.Buckets??[],e[0]=t.Buckets,e[1]=i);let c=i,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(r,{to:`/s3/create-bucket`,children:(0,u.jsx)(a,{children:`Create Bucket`})}),title:`S3 Buckets`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No buckets found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.Name?(0,u.jsx)(c,{params:{bucket:e.Name},subtitle:e.CreationDate?`Created: ${i(e.CreationDate)}`:void 0,title:e.Name,to:`/s3/ls/$bucket`},e.Name):null}export{d as component};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{t as e}from"./createLucideIcon.js";var t=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{t as e}from"./queryOptions.js";import{Rt as t,_ as n,d as r,f as i,g as a,i as o,zt as s}from"./awsClient.js";var c=class extends t.classBuilder().ep(a).m(function(e,t,r,i){return[s(r,e.getEndpointParameterInstructions()),n(r)]}).s(`AmazonS3`,`ListBuckets`,{}).n(`S3Client`,`ListBucketsCommand`).sc(r).build(){},l=class extends t.classBuilder().ep({...a,Bucket:{type:`contextParams`,name:`Bucket`},Prefix:{type:`contextParams`,name:`Prefix`}}).m(function(e,t,r,i){return[s(r,e.getEndpointParameterInstructions()),n(r)]}).s(`AmazonS3`,`ListObjectsV2`,{}).n(`S3Client`,`ListObjectsV2Command`).sc(i).build(){},u=e({queryKey:[`s3`,`buckets`],queryFn:()=>{let e=new c({});return o().send(e)}}),d=(t,n)=>e({queryKey:[`s3`,`buckets`,t,`objects`,n??``],queryFn:()=>{let e=new l({Bucket:t,Prefix:n,Delimiter:`/`});return o().send(e)}});export{u as n,d as t};
import{t as e}from"./queryOptions.js";import{_ as t,a as n,f as r,in as i,p as a,rn as o,v as s}from"./awsClient.js";var c=class extends o.classBuilder().ep(t).m(function(e,t,n,r){return[i(n,e.getEndpointParameterInstructions()),s(n)]}).s(`AmazonS3`,`ListBuckets`,{}).n(`S3Client`,`ListBucketsCommand`).sc(r).build(){},l=class extends o.classBuilder().ep({...t,Bucket:{type:`contextParams`,name:`Bucket`},Prefix:{type:`contextParams`,name:`Prefix`}}).m(function(e,t,n,r){return[i(n,e.getEndpointParameterInstructions()),s(n)]}).s(`AmazonS3`,`ListObjectsV2`,{}).n(`S3Client`,`ListObjectsV2Command`).sc(a).build(){},u=e({queryKey:[`s3`,`buckets`],queryFn:()=>{let e=new c({});return n().send(e)}}),d=(t,r)=>e({queryKey:[`s3`,`buckets`,t,`objects`,r??``],queryFn:()=>{let e=new l({Bucket:t,Prefix:r,Delimiter:`/`});return n().send(e)}});export{u as n,d as t};
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More