@stacksjs/ts-cloud 0.7.5 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/aws/index.js +259 -0
  2. package/dist/bin/cli.js +231 -231
  3. package/dist/chunk-0wxyppza.js +146 -0
  4. package/dist/chunk-3knnr7wh.js +601 -0
  5. package/dist/chunk-3rsfns7x.js +10427 -0
  6. package/dist/chunk-93hjhs78.js +1752 -0
  7. package/dist/chunk-arsh1g5h.js +1749 -0
  8. package/dist/chunk-b82pbxyp.js +1572 -0
  9. package/dist/chunk-c6rgvg1j.js +46124 -0
  10. package/dist/chunk-d2p5n2aq.js +23 -0
  11. package/dist/chunk-d7p84vz5.js +1699 -0
  12. package/dist/chunk-eq08r166.js +8 -0
  13. package/dist/chunk-hsk6fe6x.js +371 -0
  14. package/dist/chunk-mj1tmhte.js +13 -0
  15. package/dist/chunk-pegd7rmf.js +10 -0
  16. package/dist/chunk-pqfzdg68.js +12 -0
  17. package/dist/chunk-qpj3edwz.js +601 -0
  18. package/dist/chunk-tjjgajbh.js +1032 -0
  19. package/dist/chunk-tnztxpcb.js +630 -0
  20. package/dist/chunk-tt4kxske.js +1788 -0
  21. package/dist/chunk-v0bahtg2.js +4 -0
  22. package/dist/chunk-vd87cpvn.js +1754 -0
  23. package/dist/chunk-x07dz3sd.js +12828 -0
  24. package/dist/chunk-xzn0ntr0.js +4616 -0
  25. package/dist/chunk-zn0nxxa8.js +1779 -0
  26. package/dist/deploy/index.js +87 -0
  27. package/dist/dns/index.js +31 -0
  28. package/dist/drivers/index.d.ts +2 -0
  29. package/dist/drivers/index.js +108 -0
  30. package/dist/drivers/shared/box-provision.d.ts +102 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +4383 -91358
  33. package/dist/push/index.js +509 -0
  34. package/dist/ui/index.html +3 -3
  35. package/dist/ui/server/actions.html +3 -3
  36. package/dist/ui/server/backups.html +3 -3
  37. package/dist/ui/server/database.html +3 -3
  38. package/dist/ui/server/deployments.html +3 -3
  39. package/dist/ui/server/firewall.html +3 -3
  40. package/dist/ui/server/logs.html +3 -3
  41. package/dist/ui/server/services.html +3 -3
  42. package/dist/ui/server/sites.html +3 -3
  43. package/dist/ui/server/ssh-keys.html +3 -3
  44. package/dist/ui/server/terminal.html +3 -3
  45. package/dist/ui/server/workers.html +3 -3
  46. package/dist/ui/serverless/alarms.html +3 -3
  47. package/dist/ui/serverless/assets.html +3 -3
  48. package/dist/ui/serverless/data.html +3 -3
  49. package/dist/ui/serverless/deployments.html +3 -3
  50. package/dist/ui/serverless/functions.html +3 -3
  51. package/dist/ui/serverless/logs.html +3 -3
  52. package/dist/ui/serverless/queues.html +3 -3
  53. package/dist/ui/serverless/scheduler.html +3 -3
  54. package/dist/ui/serverless/secrets.html +3 -3
  55. package/dist/ui/serverless/traces.html +3 -3
  56. package/dist/ui/serverless.html +3 -3
  57. package/package.json +3 -3
@@ -0,0 +1,87 @@
1
+ import {
2
+ buildFunctionEnv,
3
+ dashboardActions,
4
+ deployServerlessApp,
5
+ deploySite,
6
+ infraEnvFromOutputs,
7
+ redeployServerlessApp,
8
+ resolveDashboardAction,
9
+ resolveDashboardData,
10
+ rollbackServerlessApp,
11
+ runRemoteCommand,
12
+ sanitizeCloudConfig,
13
+ setMaintenance,
14
+ startLocalDashboardServer
15
+ } from "../chunk-x07dz3sd.js";
16
+ import {
17
+ buildAndPushServerlessImage
18
+ } from "../chunk-0wxyppza.js";
19
+ import"../chunk-b82pbxyp.js";
20
+ import"../chunk-hsk6fe6x.js";
21
+ import {
22
+ DASHBOARD_CREDENTIALS_FILE,
23
+ MANAGEMENT_DASHBOARD_SITE,
24
+ buildManagementDashboardArtifact,
25
+ ensureManagementDashboard,
26
+ isPhpSite,
27
+ resolveDashboardAuth,
28
+ resolveSiteDeployTarget,
29
+ resolveSiteKind,
30
+ resolveUiSource,
31
+ validateDeploymentConfig
32
+ } from "../chunk-xzn0ntr0.js";
33
+ import"../chunk-c6rgvg1j.js";
34
+ import"../chunk-93hjhs78.js";
35
+ import {
36
+ deleteStaticSite,
37
+ deployStaticSite,
38
+ deployStaticSiteFull,
39
+ deployStaticSiteWithExternalDns,
40
+ deployStaticSiteWithExternalDnsFull,
41
+ generateExternalDnsStaticSiteTemplate,
42
+ generateStaticSiteTemplate,
43
+ invalidateCache,
44
+ uploadStaticFiles
45
+ } from "../chunk-d7p84vz5.js";
46
+ import"../chunk-tjjgajbh.js";
47
+ import"../chunk-tt4kxske.js";
48
+ import"../chunk-tnztxpcb.js";
49
+ import"../chunk-qpj3edwz.js";
50
+ import"../chunk-vd87cpvn.js";
51
+ import"../chunk-arsh1g5h.js";
52
+ import"../chunk-v0bahtg2.js";
53
+ export {
54
+ validateDeploymentConfig,
55
+ uploadStaticFiles,
56
+ startLocalDashboardServer,
57
+ setMaintenance,
58
+ sanitizeCloudConfig,
59
+ runRemoteCommand,
60
+ rollbackServerlessApp,
61
+ resolveUiSource,
62
+ resolveSiteKind,
63
+ resolveSiteDeployTarget,
64
+ resolveDashboardData,
65
+ resolveDashboardAuth,
66
+ resolveDashboardAction,
67
+ redeployServerlessApp,
68
+ isPhpSite,
69
+ invalidateCache,
70
+ infraEnvFromOutputs,
71
+ generateStaticSiteTemplate,
72
+ generateExternalDnsStaticSiteTemplate,
73
+ ensureManagementDashboard,
74
+ deployStaticSiteWithExternalDnsFull,
75
+ deployStaticSiteWithExternalDns,
76
+ deployStaticSiteFull,
77
+ deployStaticSite,
78
+ deploySite,
79
+ deployServerlessApp,
80
+ deleteStaticSite,
81
+ dashboardActions,
82
+ buildManagementDashboardArtifact,
83
+ buildFunctionEnv,
84
+ buildAndPushServerlessImage,
85
+ MANAGEMENT_DASHBOARD_SITE,
86
+ DASHBOARD_CREDENTIALS_FILE
87
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ CloudflareProvider,
3
+ DnsProviderFactory,
4
+ GoDaddyProvider,
5
+ PorkbunProvider,
6
+ Route53Provider,
7
+ UnifiedDnsValidator,
8
+ createDnsProvider,
9
+ createGoDaddyValidator,
10
+ createPorkbunValidator,
11
+ createRoute53Validator,
12
+ detectDnsProvider,
13
+ dnsProviders
14
+ } from "../chunk-tt4kxske.js";
15
+ import"../chunk-tnztxpcb.js";
16
+ import"../chunk-arsh1g5h.js";
17
+ import"../chunk-v0bahtg2.js";
18
+ export {
19
+ dnsProviders,
20
+ detectDnsProvider,
21
+ createRoute53Validator,
22
+ createPorkbunValidator,
23
+ createGoDaddyValidator,
24
+ createDnsProvider,
25
+ UnifiedDnsValidator,
26
+ Route53Provider,
27
+ PorkbunProvider,
28
+ GoDaddyProvider,
29
+ DnsProviderFactory,
30
+ CloudflareProvider
31
+ };
@@ -8,6 +8,8 @@ export { ensureFirewall, ensureServer, ensureSshKey, serverPublicIpv4 } from './
8
8
  export type { EnsuredResource, EnsuredServer, EnsureFirewallOptions, EnsureServerOptions, EnsureSshKeyOptions, } from './hetzner/provision';
9
9
  export { buildSshArgs, scpUpload, sshExec, sshExecOrThrow, waitForCloudInit, waitForSsh } from './shared/remote-exec';
10
10
  export type { RemoteExecOptions, RemoteExecResult, WaitOptions } from './shared/remote-exec';
11
+ export { AwsBoxProvisioner, buildBoxUserData, createBoxProvisioner, HetznerBoxProvisioner, UBUNTU_2404_AMI_PARAM, } from './shared/box-provision';
12
+ export type { AwsBoxProvisionerOptions, BoxPort, BoxProviderName, BoxProvisioner, BoxSpec, CreateBoxProvisionerOptions, ProvisionedBox, } from './shared/box-provision';
11
13
  export { buildAwsArtifactFetch, buildLocalArtifactFetch, buildSiteDeployScript, buildStaticSiteDeployScript, resolveExecStart, } from './shared/deploy-script';
12
14
  export { deployAllComputeSites, deploySiteRelease, reloadRpxGateway } from './shared/compute-deploy';
13
15
  export { buildRpxConfig, buildRpxLbConfig, buildRpxProvisionScript, deriveRouteId, normalizeRoutePath, renderRpxLauncher, DEFAULT_RPX_CERTS_DIR, RPX_DIR, RPX_LAUNCHER_PATH, RPX_SERVICE_NAME, } from './shared/rpx-gateway';
@@ -0,0 +1,108 @@
1
+ import {
2
+ AwsBoxProvisioner,
3
+ AwsDriver,
4
+ CloudDriverFactory,
5
+ DEFAULT_RPX_CERTS_DIR,
6
+ HetznerBoxProvisioner,
7
+ HetznerClient,
8
+ HetznerDriver,
9
+ LocalBoxDriver,
10
+ MANAGED_CACHE_POLICY_DISABLED,
11
+ MANAGED_CACHE_POLICY_OPTIMIZED,
12
+ MANAGED_ORIGIN_REQUEST_POLICY_ALL_VIEWER,
13
+ RPX_DIR,
14
+ RPX_LAUNCHER_PATH,
15
+ RPX_SERVICE_NAME,
16
+ UBUNTU_2404_AMI_PARAM,
17
+ buildAwsArtifactFetch,
18
+ buildBoxUserData,
19
+ buildCloudFrontOriginConfig,
20
+ buildLocalArtifactFetch,
21
+ buildRpxConfig,
22
+ buildRpxLbConfig,
23
+ buildRpxProvisionScript,
24
+ buildSiteDeployScript,
25
+ buildSshArgs,
26
+ buildStaticSiteDeployScript,
27
+ buildUbuntuBootstrapScript,
28
+ cloudDrivers,
29
+ createBoxProvisioner,
30
+ createCloudDriver,
31
+ deployAllComputeSites,
32
+ deploySiteRelease,
33
+ deriveRouteId,
34
+ ensureFirewall,
35
+ ensureServer,
36
+ ensureSshKey,
37
+ isBoxMode,
38
+ normalizeRoutePath,
39
+ normalizeSshPublicKey,
40
+ reloadRpxGateway,
41
+ renderRpxLauncher,
42
+ resolveExecStart,
43
+ resolveHetznerApiToken,
44
+ scpUpload,
45
+ serverPublicIpv4,
46
+ sshExec,
47
+ sshExecOrThrow,
48
+ waitForCloudInit,
49
+ waitForSsh,
50
+ wrapCloudInitUserData
51
+ } from "../chunk-xzn0ntr0.js";
52
+ import"../chunk-c6rgvg1j.js";
53
+ import"../chunk-93hjhs78.js";
54
+ import"../chunk-qpj3edwz.js";
55
+ import"../chunk-vd87cpvn.js";
56
+ import"../chunk-arsh1g5h.js";
57
+ import"../chunk-v0bahtg2.js";
58
+ export {
59
+ wrapCloudInitUserData,
60
+ waitForSsh,
61
+ waitForCloudInit,
62
+ sshExecOrThrow,
63
+ sshExec,
64
+ serverPublicIpv4,
65
+ scpUpload,
66
+ resolveHetznerApiToken,
67
+ resolveExecStart,
68
+ renderRpxLauncher,
69
+ reloadRpxGateway,
70
+ normalizeSshPublicKey,
71
+ normalizeRoutePath,
72
+ isBoxMode,
73
+ buildUbuntuBootstrapScript as generateUbuntuAppCloudInit,
74
+ ensureSshKey,
75
+ ensureServer,
76
+ ensureFirewall,
77
+ deriveRouteId,
78
+ deploySiteRelease,
79
+ deployAllComputeSites,
80
+ createCloudDriver,
81
+ createBoxProvisioner,
82
+ cloudDrivers,
83
+ buildStaticSiteDeployScript,
84
+ buildSshArgs,
85
+ buildSiteDeployScript,
86
+ buildRpxProvisionScript,
87
+ buildRpxLbConfig,
88
+ buildRpxConfig,
89
+ buildLocalArtifactFetch,
90
+ buildCloudFrontOriginConfig,
91
+ buildBoxUserData,
92
+ buildAwsArtifactFetch,
93
+ UBUNTU_2404_AMI_PARAM,
94
+ RPX_SERVICE_NAME,
95
+ RPX_LAUNCHER_PATH,
96
+ RPX_DIR,
97
+ MANAGED_ORIGIN_REQUEST_POLICY_ALL_VIEWER,
98
+ MANAGED_CACHE_POLICY_OPTIMIZED,
99
+ MANAGED_CACHE_POLICY_DISABLED,
100
+ LocalBoxDriver,
101
+ HetznerDriver,
102
+ HetznerClient,
103
+ HetznerBoxProvisioner,
104
+ DEFAULT_RPX_CERTS_DIR,
105
+ CloudDriverFactory,
106
+ AwsDriver,
107
+ AwsBoxProvisioner
108
+ };
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Provider-agnostic single-box provisioning.
3
+ *
4
+ * `createBoxProvisioner` gives deploy scripts one interface — ensure a named
5
+ * box exists (running, reachable, firewall open, SSH key authorized, bootstrap
6
+ * script run) and tear it down again — regardless of whether the box lives on
7
+ * Hetzner Cloud or AWS EC2. Idempotent like the underlying `ensure*` helpers:
8
+ * re-running converges instead of duplicating resources.
9
+ *
10
+ * SSH access is normalized to `root@<publicIp>`: the public key is injected
11
+ * via cloud-init (`disable_root: false` plus an authorized_keys append) so the
12
+ * same `sshExec(host, cmd)` calls work on both providers, even though AWS
13
+ * Ubuntu images default to the `ubuntu` user.
14
+ */
15
+ import type { EC2Client } from '../../aws/ec2';
16
+ import type { SSMClient } from '../../aws/ssm';
17
+ import type { HetznerClient } from '../hetzner/client';
18
+ export type BoxProviderName = 'hetzner' | 'aws';
19
+ export interface BoxPort {
20
+ protocol: 'tcp' | 'udp' | 'icmp';
21
+ /** Port number; omit for icmp. */
22
+ port?: number;
23
+ }
24
+ export interface BoxSpec {
25
+ /** Resource name; also names the firewall/security group (`<name>-fw`/`<name>-sg`). */
26
+ name: string;
27
+ /** Provider-native size (Hetzner server type like `cx23`, EC2 instance type like `t3.micro`). */
28
+ size: string;
29
+ /** Hetzner image name or an `ami-...` id. Defaults to Ubuntu 24.04 on both providers. */
30
+ image?: string;
31
+ /** Hetzner location (e.g. `fsn1`). AWS placement follows the provisioner's region. */
32
+ location?: string;
33
+ /** Ingress to open in addition to tcp/22. */
34
+ ports?: BoxPort[];
35
+ /** OpenSSH public key authorized for root. */
36
+ sshPublicKey: string;
37
+ /** Plain bash bootstrap script, run once at first boot via cloud-init. */
38
+ bootstrapScript?: string;
39
+ labels?: Record<string, string>;
40
+ }
41
+ export interface ProvisionedBox {
42
+ provider: BoxProviderName;
43
+ id: string;
44
+ name: string;
45
+ publicIp: string;
46
+ created: boolean;
47
+ }
48
+ export interface BoxProvisioner {
49
+ readonly provider: BoxProviderName;
50
+ ensureBox(spec: BoxSpec): Promise<ProvisionedBox>;
51
+ /** Tear down the box and its firewall/security group. */
52
+ destroyBox(name: string): Promise<{
53
+ destroyed: string[];
54
+ }>;
55
+ }
56
+ /** SSM parameter for the current Ubuntu 24.04 amd64 gp3 AMI (Canonical-published). */
57
+ export declare const UBUNTU_2404_AMI_PARAM = "/aws/service/canonical/ubuntu/server/24.04/stable/current/amd64/hvm/ebs-gp3/ami-id";
58
+ /**
59
+ * Cloud-config shared by both providers: root SSH access with the given key
60
+ * (AWS Ubuntu images otherwise lock root and point at the `ubuntu` user) and
61
+ * the optional bootstrap script.
62
+ */
63
+ export declare function buildBoxUserData(spec: Pick<BoxSpec, 'sshPublicKey' | 'bootstrapScript'>): string;
64
+ export declare class HetznerBoxProvisioner implements BoxProvisioner {
65
+ private client;
66
+ readonly provider: "hetzner";
67
+ constructor(client: HetznerClient);
68
+ ensureBox(spec: BoxSpec): Promise<ProvisionedBox>;
69
+ destroyBox(name: string): Promise<{
70
+ destroyed: string[];
71
+ }>;
72
+ }
73
+ /** The EC2 surface the AWS provisioner uses (injectable for tests). */
74
+ export type BoxEc2Client = Pick<EC2Client, 'describeInstances' | 'describeSecurityGroups' | 'createSecurityGroup' | 'authorizeSecurityGroupIngress' | 'runInstances' | 'terminateInstances' | 'deleteSecurityGroup' | 'getInstance'>;
75
+ /** The SSM surface the AWS provisioner uses (injectable for tests). */
76
+ export type BoxSsmClient = Pick<SSMClient, 'getParameter'>;
77
+ export interface AwsBoxProvisionerOptions {
78
+ ec2: BoxEc2Client;
79
+ ssm: BoxSsmClient;
80
+ }
81
+ export declare class AwsBoxProvisioner implements BoxProvisioner {
82
+ readonly provider: "aws";
83
+ private ec2;
84
+ private ssm;
85
+ constructor(options: AwsBoxProvisionerOptions);
86
+ private findInstance;
87
+ private waitForPublicIp;
88
+ private ensureSecurityGroup;
89
+ private resolveImage;
90
+ ensureBox(spec: BoxSpec): Promise<ProvisionedBox>;
91
+ destroyBox(name: string): Promise<{
92
+ destroyed: string[];
93
+ }>;
94
+ }
95
+ export interface CreateBoxProvisionerOptions {
96
+ provider: BoxProviderName;
97
+ /** Required for provider 'hetzner'. */
98
+ hetzner?: HetznerClient;
99
+ /** Required for provider 'aws'. */
100
+ aws?: AwsBoxProvisionerOptions;
101
+ }
102
+ export declare function createBoxProvisioner(options: CreateBoxProvisionerOptions): BoxProvisioner;
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export type { MigrateEndpoint, MigrateError, MigrateOptions, MigratePlanItem, Mi
11
11
  export * from './ssl';
12
12
  export { deployStaticSite, deployStaticSiteFull, uploadStaticFiles, invalidateCache, deleteStaticSite, generateStaticSiteTemplate, deployStaticSiteWithExternalDns, deployStaticSiteWithExternalDnsFull, generateExternalDnsStaticSiteTemplate, deploySite, resolveSiteDeployTarget, resolveSiteKind, validateDeploymentConfig, buildAndPushServerlessImage, buildFunctionEnv, deployServerlessApp, infraEnvFromOutputs, redeployServerlessApp, rollbackServerlessApp, runRemoteCommand, setMaintenance, buildManagementDashboardArtifact, DASHBOARD_CREDENTIALS_FILE, ensureManagementDashboard, MANAGEMENT_DASHBOARD_SITE, resolveDashboardAuth, resolveUiSource, } from './deploy';
13
13
  export type { EnsureDashboardLogger, ResolvedDashboardAuth, StaticSiteConfig, DeployResult, UploadOptions, ExternalDnsStaticSiteConfig, ExternalDnsDeployResult, DeploySiteConfig, DeploySiteResult, StaticSiteDnsProvider, SiteDeployKind, DeploymentValidationResult, BuildImageOptions, BuiltImage, CodeSource, DeployServerlessOptions, ResolvedContext, } from './deploy';
14
- export { createCloudDriver, CloudDriverFactory, cloudDrivers, AwsDriver, HetznerDriver, HetznerClient, resolveHetznerApiToken, generateUbuntuAppCloudInit, wrapCloudInitUserData, buildSiteDeployScript, buildStaticSiteDeployScript, resolveExecStart, deployAllComputeSites, deploySiteRelease, } from './drivers';
14
+ export { createCloudDriver, CloudDriverFactory, cloudDrivers, AwsDriver, HetznerDriver, HetznerClient, resolveHetznerApiToken, normalizeSshPublicKey, ensureFirewall, ensureServer, ensureSshKey, serverPublicIpv4, sshExec, sshExecOrThrow, scpUpload, waitForSsh, waitForCloudInit, buildSshArgs, generateUbuntuAppCloudInit, wrapCloudInitUserData, buildSiteDeployScript, buildStaticSiteDeployScript, resolveExecStart, deployAllComputeSites, deploySiteRelease, } from './drivers';
15
15
  export type { CreateCloudDriverOptions } from './drivers/factory';
16
16
  export { dashboardActions, resolveDashboardAction, sanitizeCloudConfig, startLocalDashboardServer, } from './deploy/local-dashboard-server';
17
17
  export type { DashboardAction, LocalDashboardServer, LocalDashboardServerOptions, } from './deploy/local-dashboard-server';