stacks 0.58.49 → 0.58.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/actions/dist/src/index.js +2 -0
- package/core/actions/dist/src/release.js +2 -0
- package/core/actions/dist/src/upgrade.js +1 -1
- package/core/actions/package.json +1 -1
- package/core/actions/src/action.ts +2 -0
- package/core/actions/src/generate/custom-cli-file.ts +24 -0
- package/core/ai/dist/index.js +6 -6
- package/core/ai/package.json +3 -3
- package/core/alias/package.json +1 -1
- package/core/analytics/package.json +1 -1
- package/core/api/package.json +1 -1
- package/core/arrays/package.json +1 -1
- package/core/auth/package.json +1 -1
- package/core/buddy/dist/{chunk-b32089b9556f373c.js → chunk-91084836e95161e8.js} +1 -1
- package/core/buddy/dist/cli.js +13 -1
- package/core/buddy/dist/index.js +1 -1
- package/core/buddy/package.json +1 -1
- package/core/buddy/src/cli.ts +17 -0
- package/core/buddy/src/commands/deploy.ts +1 -1
- package/core/buddy/src/custom-cli.ts +36 -0
- package/core/build/package.json +1 -1
- package/core/bun-create/bud/package.json +1 -1
- package/core/bun-create/buddy/package.json +1 -1
- package/core/bun-create/stack/package.json +1 -1
- package/core/bun-create/stacks/package.json +1 -1
- package/core/bun-create/stx/package.json +1 -1
- package/core/bun-plugin-yaml/package.json +1 -1
- package/core/cache/package.json +2 -2
- package/core/chat/package.json +1 -1
- package/core/cli/dist/index.js +2 -2
- package/core/cli/package.json +1 -1
- package/core/cli/src/cli.ts +1 -1
- package/core/cloud/deploy.ts +2 -2
- package/core/cloud/dist/index.js +144 -60
- package/core/cloud/package.json +32 -32
- package/core/cloud/src/cloud/aws-sdk-layer/nodejs/package-lock.json +6 -6
- package/core/cloud/src/cloud/aws-sdk-layer/nodejs/package.json +2 -2
- package/core/cloud/src/cloud/cdn.ts +5 -5
- package/core/cloud/src/cloud/compute.ts +150 -28
- package/core/cloud/src/cloud/index.ts +13 -9
- package/core/cloud/src/cloud/network.ts +4 -24
- package/core/cloud/src/cloud/package/package.json +1 -1
- package/core/cloud/src/cloud/router-layer/nodejs/package.json +2 -2
- package/core/collections/package.json +1 -1
- package/core/config/dist/index.js +13 -12
- package/core/config/package.json +2 -2
- package/core/config/src/config.ts +1 -1
- package/core/config/src/defaults.ts +3 -3
- package/core/config/src/overrides.ts +22 -22
- package/core/database/package.json +1 -1
- package/core/datetime/package.json +1 -1
- package/core/desktop/package.json +1 -1
- package/core/development/package.json +1 -1
- package/core/dns/package.json +7 -7
- package/core/docs/package.json +3 -3
- package/core/email/package.json +3 -3
- package/core/enums/package.json +1 -1
- package/core/env/package.json +1 -1
- package/core/error-handling/package.json +1 -1
- package/core/eslint-config/package.json +4 -4
- package/core/events/package.json +1 -1
- package/core/faker/package.json +1 -1
- package/core/git/package.json +1 -1
- package/core/health/package.json +1 -1
- package/core/http/package.json +1 -1
- package/core/lint/package.json +3 -3
- package/core/logging/package.json +1 -1
- package/core/notifications/package.json +1 -1
- package/core/objects/package.json +1 -1
- package/core/orm/package.json +1 -1
- package/core/path/package.json +1 -1
- package/core/payments/package.json +1 -1
- package/core/push/package.json +1 -1
- package/core/query-builder/package.json +1 -1
- package/core/queue/dist/index.js +3 -1
- package/core/queue/package.json +1 -1
- package/core/queue/src/index.ts +4 -2
- package/core/raycast/package.json +1 -1
- package/core/realtime/package.json +1 -1
- package/core/repl/package.json +1 -1
- package/core/router/package.json +1 -1
- package/core/scheduler/dist/index.js +3 -2
- package/core/scheduler/package.json +1 -1
- package/core/scheduler/src/index.ts +1 -1
- package/core/search-engine/package.json +1 -1
- package/core/security/package.json +1 -1
- package/core/server/package.json +1 -1
- package/core/signals/package.json +1 -1
- package/core/slug/package.json +1 -1
- package/core/sms/package.json +1 -1
- package/core/storage/package.json +1 -1
- package/core/strings/package.json +1 -1
- package/core/tables/package.json +1 -1
- package/core/testing/package.json +3 -3
- package/core/tinker/package.json +1 -1
- package/core/tsconfig.json +1 -0
- package/core/tunnel/package.json +1 -1
- package/core/types/package.json +4 -4
- package/core/types/src/api.ts +2 -0
- package/core/types/src/cron-jobs.ts +2 -1
- package/core/types/src/stacks.ts +6 -6
- package/core/ui/package.json +4 -4
- package/core/utils/dist/index.js +1 -1
- package/core/utils/package.json +1 -1
- package/core/validation/package.json +1 -1
- package/core/vite/dist/index.js +1 -1
- package/core/vite/package.json +1 -1
- package/core/whois/package.json +1 -1
- package/core/x-ray/package.json +1 -1
- package/core/zsh-buddy/package.json +1 -1
- package/ide/vscode/package.json +1 -1
- package/package.json +1 -1
- package/core/cloud/src/cloud/stacksjs-router-0.58.48.tgz +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/* eslint-disable no-new */
|
|
2
|
-
import type { aws_certificatemanager as acm,
|
|
3
|
-
import { Duration, CfnOutput as Output,
|
|
2
|
+
import type { aws_certificatemanager as acm, aws_efs as efs, aws_lambda as lambda, aws_route53 as route53 } from 'aws-cdk-lib'
|
|
3
|
+
import { Duration, CfnOutput as Output, RemovalPolicy, aws_ec2 as ec2, aws_ecs as ecs, aws_secretsmanager as secretsmanager } from 'aws-cdk-lib'
|
|
4
4
|
import type { Construct } from 'constructs'
|
|
5
5
|
import { path as p } from '@stacksjs/path'
|
|
6
6
|
import { env } from '@stacksjs/env'
|
|
7
|
+
import { LogGroup } from 'aws-cdk-lib/aws-logs'
|
|
8
|
+
import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2'
|
|
7
9
|
import type { NestedCloudProps } from '../types'
|
|
8
10
|
import type { EnvKey } from '../../../../env'
|
|
9
11
|
|
|
@@ -15,6 +17,7 @@ export interface ComputeStackProps extends NestedCloudProps {
|
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
export class ComputeStack {
|
|
20
|
+
lb: elbv2.ApplicationLoadBalancer
|
|
18
21
|
apiServer: lambda.Function
|
|
19
22
|
apiServerUrl: lambda.FunctionUrl
|
|
20
23
|
|
|
@@ -25,22 +28,149 @@ export class ComputeStack {
|
|
|
25
28
|
if (!fileSystem)
|
|
26
29
|
throw new Error('The file system is missing. Please make sure it was created properly.')
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
const cluster = new ecs.Cluster(scope, 'StacksCluster', {
|
|
32
|
+
clusterName: `${props.slug}-${props.appEnv}-web-server-cluster`,
|
|
33
|
+
vpc,
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
const taskDefinition = new ecs.FargateTaskDefinition(scope, 'TaskDefinition', {
|
|
37
|
+
family: `${props.appName}-${props.appEnv}-api`,
|
|
38
|
+
memoryLimitMiB: 512, // Match your Lambda memory size
|
|
39
|
+
cpu: 256, // Choose an appropriate value
|
|
40
|
+
runtimePlatform: {
|
|
41
|
+
cpuArchitecture: ecs.CpuArchitecture.ARM64,
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
const container = taskDefinition.addContainer('WebServerContainer', {
|
|
46
|
+
containerName: `${props.appName}-${props.appEnv}-api`,
|
|
47
|
+
image: ecs.ContainerImage.fromAsset(p.frameworkPath('server')),
|
|
48
|
+
logging: new ecs.AwsLogDriver({
|
|
49
|
+
streamPrefix: `${props.appName}-${props.appEnv}-web`,
|
|
50
|
+
logGroup: new LogGroup(scope, 'StacksApiLogs', {
|
|
51
|
+
logGroupName: '/ecs/stacks-api',
|
|
52
|
+
removalPolicy: RemovalPolicy.DESTROY, // Automatically remove logs on stack deletion
|
|
53
|
+
}),
|
|
54
|
+
}),
|
|
55
|
+
healthCheck: {
|
|
56
|
+
command: ['CMD-SHELL', 'curl -f http://localhost:3000/health || exit 1'],
|
|
57
|
+
interval: Duration.seconds(10),
|
|
58
|
+
timeout: Duration.seconds(5),
|
|
59
|
+
retries: 3,
|
|
60
|
+
startPeriod: Duration.seconds(10),
|
|
61
|
+
},
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
container.addPortMappings({
|
|
65
|
+
containerPort: 3000,
|
|
66
|
+
hostPort: 3000,
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
const serviceSecurityGroup = new ec2.SecurityGroup(scope, 'ServiceSecurityGroup', {
|
|
70
|
+
securityGroupName: `${props.appName}-${props.appEnv}-api-service-sg`,
|
|
71
|
+
vpc,
|
|
72
|
+
description: 'Stacks Security Group for API Service',
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
const publicLoadBalancerSG = new ec2.SecurityGroup(scope, 'PublicLoadBalancerSG', {
|
|
76
|
+
securityGroupName: `${props.appName}-${props.appEnv}-public-load-balancer-sg`,
|
|
77
|
+
vpc,
|
|
78
|
+
description: 'Access to the public facing load balancer',
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
// Assuming serviceSecurityGroup and publicLoadBalancerSG are already defined
|
|
82
|
+
serviceSecurityGroup.addIngressRule(
|
|
83
|
+
publicLoadBalancerSG,
|
|
84
|
+
ec2.Port.allTraffic(),
|
|
85
|
+
'Ingress from the public ALB',
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
// Assuming serviceSecurityGroup and publicLoadBalancerSG are already defined
|
|
89
|
+
serviceSecurityGroup.addIngressRule(publicLoadBalancerSG, ec2.Port.allTraffic(), 'Ingress from the public ALB')
|
|
90
|
+
|
|
91
|
+
this.lb = new elbv2.ApplicationLoadBalancer(scope, 'ApplicationLoadBalancer', {
|
|
92
|
+
loadBalancerName: `${props.appName}-${props.appEnv}-alb`,
|
|
93
|
+
vpc,
|
|
94
|
+
vpcSubnets: {
|
|
95
|
+
subnets: vpc.selectSubnets({
|
|
96
|
+
subnetType: ec2.SubnetType.PUBLIC,
|
|
97
|
+
onePerAz: true,
|
|
98
|
+
}).subnets,
|
|
99
|
+
},
|
|
100
|
+
internetFacing: true,
|
|
101
|
+
idleTimeout: Duration.seconds(30),
|
|
102
|
+
securityGroup: publicLoadBalancerSG,
|
|
103
|
+
})
|
|
31
104
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
description: 'The web server for the Stacks application',
|
|
35
|
-
code: lambda.Code.fromAssetImage(p.frameworkPath('server')),
|
|
36
|
-
handler: lambda.Handler.FROM_IMAGE,
|
|
37
|
-
runtime: lambda.Runtime.FROM_IMAGE,
|
|
105
|
+
const serviceTargetGroup = new elbv2.ApplicationTargetGroup(scope, 'ServiceTargetGroup', {
|
|
106
|
+
// targetGroupName: `${props.appName}-${props.appEnv}-service-tg`,
|
|
38
107
|
vpc,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
108
|
+
targetType: elbv2.TargetType.IP,
|
|
109
|
+
protocol: elbv2.ApplicationProtocol.HTTP,
|
|
110
|
+
port: 3000,
|
|
111
|
+
healthCheck: {
|
|
112
|
+
interval: Duration.seconds(6),
|
|
113
|
+
path: '/',
|
|
114
|
+
protocol: elbv2.Protocol.HTTP,
|
|
115
|
+
timeout: Duration.seconds(5),
|
|
116
|
+
healthyThresholdCount: 2,
|
|
117
|
+
unhealthyThresholdCount: 10,
|
|
118
|
+
},
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
const service = new ecs.FargateService(scope, 'StacksApiService', {
|
|
122
|
+
serviceName: `${props.appName}-${props.appEnv}-api-service`,
|
|
123
|
+
cluster,
|
|
124
|
+
taskDefinition,
|
|
125
|
+
desiredCount: 2,
|
|
126
|
+
assignPublicIp: true,
|
|
127
|
+
maxHealthyPercent: 200,
|
|
128
|
+
vpcSubnets: vpc.selectSubnets({
|
|
129
|
+
subnetType: ec2.SubnetType.PUBLIC,
|
|
130
|
+
onePerAz: true,
|
|
131
|
+
}),
|
|
132
|
+
minHealthyPercent: 75,
|
|
133
|
+
securityGroups: [serviceSecurityGroup],
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
service.attachToApplicationTargetGroup(serviceTargetGroup)
|
|
137
|
+
publicLoadBalancerSG.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.allTraffic())
|
|
138
|
+
|
|
139
|
+
this.lb.addListener('HttpListener', {
|
|
140
|
+
port: 80,
|
|
141
|
+
defaultAction: elbv2.ListenerAction.forward([serviceTargetGroup]),
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
props.fileSystem.connections.allowFromAnyIpv4(ec2.Port.tcp(2049)) // port 2049 (NFS) for EFS
|
|
145
|
+
|
|
146
|
+
const volumeName = `${props.slug}-${props.appEnv}-efs`
|
|
147
|
+
taskDefinition.addVolume({
|
|
148
|
+
name: volumeName,
|
|
149
|
+
efsVolumeConfiguration: {
|
|
150
|
+
fileSystemId: props.fileSystem.fileSystemId,
|
|
151
|
+
},
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
container.addMountPoints({
|
|
155
|
+
sourceVolume: volumeName,
|
|
156
|
+
containerPath: '/mnt/efs',
|
|
157
|
+
readOnly: false,
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
// Setup AutoScaling policy
|
|
161
|
+
// TODO: make this configurable in cloud.compute
|
|
162
|
+
const scaling = service.autoScaleTaskCount({ maxCapacity: 2 })
|
|
163
|
+
|
|
164
|
+
scaling.scaleOnCpuUtilization('CpuScaling', {
|
|
165
|
+
targetUtilizationPercent: 50,
|
|
166
|
+
scaleInCooldown: Duration.seconds(60),
|
|
167
|
+
scaleOutCooldown: Duration.seconds(60),
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
scaling.scaleOnMemoryUtilization('MemoryScaling', {
|
|
171
|
+
targetUtilizationPercent: 60,
|
|
172
|
+
scaleInCooldown: Duration.seconds(60),
|
|
173
|
+
scaleOutCooldown: Duration.seconds(60),
|
|
44
174
|
})
|
|
45
175
|
|
|
46
176
|
const keysToRemove = ['_HANDLER', '_X_AMZN_TRACE_ID', 'AWS_REGION', 'AWS_EXECUTION_ENV', 'AWS_LAMBDA_FUNCTION_NAME', 'AWS_LAMBDA_FUNCTION_MEMORY_SIZE', 'AWS_LAMBDA_FUNCTION_VERSION', 'AWS_LAMBDA_INITIALIZATION_TYPE', 'AWS_LAMBDA_LOG_GROUP_NAME', 'AWS_LAMBDA_LOG_STREAM_NAME', 'AWS_ACCESS_KEY', 'AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_SESSION_TOKEN', 'AWS_LAMBDA_RUNTIME_API', 'LAMBDA_TASK_ROOT', 'LAMBDA_RUNTIME_DIR', '_']
|
|
@@ -55,16 +185,8 @@ export class ComputeStack {
|
|
|
55
185
|
},
|
|
56
186
|
})
|
|
57
187
|
|
|
58
|
-
secrets.grantRead(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this.apiServerUrl = new lambda.FunctionUrl(scope, 'StacksServerUrl', {
|
|
62
|
-
function: this.apiServer,
|
|
63
|
-
authType: lambda.FunctionUrlAuthType.NONE, // becomes a public API
|
|
64
|
-
cors: {
|
|
65
|
-
allowedOrigins: ['*'],
|
|
66
|
-
},
|
|
67
|
-
})
|
|
188
|
+
secrets.grantRead(service.taskDefinition.executionRole!)
|
|
189
|
+
container.addEnvironment('SECRETS_ARN', secrets.secretArn)
|
|
68
190
|
|
|
69
191
|
const apiPrefix = 'api'
|
|
70
192
|
new Output(scope, 'ApiUrl', {
|
|
@@ -73,8 +195,8 @@ export class ComputeStack {
|
|
|
73
195
|
})
|
|
74
196
|
|
|
75
197
|
new Output(scope, 'ApiVanityUrl', {
|
|
76
|
-
value: this.
|
|
77
|
-
description: 'The Vanity URL of the
|
|
198
|
+
value: `http://${this.lb.loadBalancerDnsName}`,
|
|
199
|
+
description: 'The Vanity URL / DNS name of the load balancer',
|
|
78
200
|
})
|
|
79
201
|
}
|
|
80
202
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-new */
|
|
2
2
|
import { Stack } from 'aws-cdk-lib'
|
|
3
3
|
import type { Construct } from 'constructs'
|
|
4
|
+
import { config } from '@stacksjs/config'
|
|
4
5
|
import type { CloudOptions } from '../types'
|
|
5
6
|
import { AiStack } from './ai'
|
|
6
7
|
import { CdnStack } from './cdn'
|
|
@@ -62,13 +63,16 @@ export class Cloud extends Stack {
|
|
|
62
63
|
|
|
63
64
|
// new DashboardStack(this)
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
let api
|
|
67
|
+
if (config.cloud.api?.deploy) {
|
|
68
|
+
api = new ComputeStack(this, {
|
|
69
|
+
...props,
|
|
70
|
+
vpc: network.vpc,
|
|
71
|
+
fileSystem: fileSystem.fileSystem,
|
|
72
|
+
zone: dns.zone,
|
|
73
|
+
certificate: security.certificate,
|
|
74
|
+
})
|
|
75
|
+
}
|
|
72
76
|
|
|
73
77
|
const ai = new AiStack(this, props)
|
|
74
78
|
|
|
@@ -82,11 +86,11 @@ export class Cloud extends Stack {
|
|
|
82
86
|
firewall: security.firewall,
|
|
83
87
|
originRequestFunction: docs.originRequestFunction,
|
|
84
88
|
zone: dns.zone,
|
|
85
|
-
webServer: api.apiServer,
|
|
86
|
-
webServerUrl: api.apiServerUrl,
|
|
87
89
|
cliSetupUrl: cli.cliSetupUrl,
|
|
88
90
|
askAiUrl: ai.askAiUrl,
|
|
89
91
|
summarizeAiUrl: ai.summarizeAiUrl,
|
|
92
|
+
webServer: api?.apiServer,
|
|
93
|
+
webServerUrl: api?.apiServerUrl,
|
|
90
94
|
})
|
|
91
95
|
|
|
92
96
|
new DeploymentStack(this, {
|
|
@@ -17,34 +17,14 @@ export class NetworkStack {
|
|
|
17
17
|
natGateways: 0,
|
|
18
18
|
subnetConfiguration: [
|
|
19
19
|
{
|
|
20
|
-
|
|
21
|
-
name: `${props.slug}-${props.appEnv}-public-subnet-1`,
|
|
20
|
+
name: 'public-subnet-1',
|
|
22
21
|
subnetType: ec2.SubnetType.PUBLIC,
|
|
22
|
+
cidrMask: 24,
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
|
|
26
|
-
name: `${props.slug}-${props.appEnv}-public-subnet-2`,
|
|
27
|
-
subnetType: ec2.SubnetType.PUBLIC,
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
cidrMask: 21,
|
|
31
|
-
name: `${props.slug}-${props.appEnv}-public-subnet-3`,
|
|
32
|
-
subnetType: ec2.SubnetType.PUBLIC,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
cidrMask: 21,
|
|
36
|
-
name: `${props.slug}-${props.appEnv}-private-subnet-1`,
|
|
37
|
-
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
cidrMask: 21,
|
|
41
|
-
name: `${props.slug}-${props.appEnv}-private-subnet-2`,
|
|
42
|
-
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
cidrMask: 21,
|
|
46
|
-
name: `${props.slug}-${props.appEnv}-private-subnet-3`,
|
|
25
|
+
name: 'private-subnet-1',
|
|
47
26
|
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
|
|
27
|
+
cidrMask: 28,
|
|
48
28
|
},
|
|
49
29
|
],
|
|
50
30
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stacks-router-layer",
|
|
3
|
-
"version": "0.58.
|
|
3
|
+
"version": "0.58.50",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@stacksjs/router": "^0.58.
|
|
13
|
+
"@stacksjs/router": "^0.58.49"
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -253,14 +253,14 @@ __export(exports_config, {
|
|
|
253
253
|
return cloud2;
|
|
254
254
|
}
|
|
255
255
|
},
|
|
256
|
-
|
|
256
|
+
cli: () => {
|
|
257
257
|
{
|
|
258
|
-
return
|
|
258
|
+
return cli2;
|
|
259
259
|
}
|
|
260
260
|
},
|
|
261
|
-
|
|
261
|
+
cache: () => {
|
|
262
262
|
{
|
|
263
|
-
return
|
|
263
|
+
return cache2;
|
|
264
264
|
}
|
|
265
265
|
},
|
|
266
266
|
app: () => {
|
|
@@ -338,9 +338,9 @@ var defaults_default = {
|
|
|
338
338
|
api: 3999
|
|
339
339
|
}
|
|
340
340
|
},
|
|
341
|
-
|
|
342
|
-
name: "
|
|
343
|
-
command: "
|
|
341
|
+
cli: {
|
|
342
|
+
name: "My Custom CLI",
|
|
343
|
+
command: "my-custom-cli",
|
|
344
344
|
description: "Stacks is a full-stack framework for TypeScript.",
|
|
345
345
|
source: p.appPath("commands")
|
|
346
346
|
},
|
|
@@ -754,8 +754,8 @@ var cache_default = {
|
|
|
754
754
|
|
|
755
755
|
// /home/runner/work/stacks/stacks/config/cli.ts
|
|
756
756
|
var cli_default = {
|
|
757
|
-
name: "
|
|
758
|
-
command: "
|
|
757
|
+
name: "My Custom CLI",
|
|
758
|
+
command: "custom-cli",
|
|
759
759
|
description: "This is an example command to illustrate how to create your own commands. Check out `../app/commands` for more."
|
|
760
760
|
};
|
|
761
761
|
|
|
@@ -798,6 +798,7 @@ var cloud_default = {
|
|
|
798
798
|
}
|
|
799
799
|
},
|
|
800
800
|
api: {
|
|
801
|
+
deploy: true,
|
|
801
802
|
prefix: env6.API_PREFIX || "api",
|
|
802
803
|
description: "Stacks API",
|
|
803
804
|
memorySize: 512,
|
|
@@ -1407,8 +1408,8 @@ var ui_default = {
|
|
|
1407
1408
|
var overrides_default = {
|
|
1408
1409
|
ai: ai_default,
|
|
1409
1410
|
app: app_default,
|
|
1410
|
-
binary: cli_default,
|
|
1411
1411
|
cache: cache_default,
|
|
1412
|
+
cli: cli_default,
|
|
1412
1413
|
cloud: cloud_default,
|
|
1413
1414
|
database: database_default,
|
|
1414
1415
|
dns: dns_default,
|
|
@@ -1621,9 +1622,9 @@ var {
|
|
|
1621
1622
|
analytics,
|
|
1622
1623
|
api,
|
|
1623
1624
|
app: app2,
|
|
1624
|
-
binary,
|
|
1625
1625
|
cache: cache2,
|
|
1626
1626
|
cloud: cloud2,
|
|
1627
|
+
cli: cli2,
|
|
1627
1628
|
database: database2,
|
|
1628
1629
|
dns: dns2,
|
|
1629
1630
|
docs: docs2,
|
|
@@ -1690,8 +1691,8 @@ export {
|
|
|
1690
1691
|
database2 as database,
|
|
1691
1692
|
exports_config as config,
|
|
1692
1693
|
cloud2 as cloud,
|
|
1694
|
+
cli2 as cli,
|
|
1693
1695
|
cache2 as cache,
|
|
1694
|
-
binary,
|
|
1695
1696
|
app2 as app,
|
|
1696
1697
|
api,
|
|
1697
1698
|
analytics,
|
package/core/config/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.58.
|
|
4
|
+
"version": "0.58.50",
|
|
5
5
|
"description": "The Stacks config helper methods.",
|
|
6
6
|
"author": "Chris Breuer",
|
|
7
7
|
"license": "MIT",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"exports": {
|
|
28
28
|
".": {
|
|
29
|
-
"bun": "./
|
|
29
|
+
"bun": "./dist/index.js",
|
|
30
30
|
"import": "./dist/index.js"
|
|
31
31
|
},
|
|
32
32
|
"./*": {
|
|
@@ -59,9 +59,9 @@ export default {
|
|
|
59
59
|
},
|
|
60
60
|
},
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
name: '
|
|
64
|
-
command: '
|
|
62
|
+
cli: {
|
|
63
|
+
name: 'My Custom CLI',
|
|
64
|
+
command: 'my-custom-cli',
|
|
65
65
|
description: 'Stacks is a full-stack framework for TypeScript.',
|
|
66
66
|
source: p.appPath('commands'),
|
|
67
67
|
},
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import type { StacksConfig } from '@stacksjs/types'
|
|
2
|
-
import ai from '
|
|
3
|
-
import app from '
|
|
4
|
-
import cache from '
|
|
5
|
-
import
|
|
6
|
-
import cloud from '
|
|
7
|
-
import database from '
|
|
8
|
-
import dns from '
|
|
9
|
-
import docs from '
|
|
10
|
-
import email from '
|
|
11
|
-
import git from '
|
|
12
|
-
import hashing from '
|
|
13
|
-
import library from '
|
|
14
|
-
import queue from '
|
|
15
|
-
import payment from '
|
|
16
|
-
import notification from '
|
|
17
|
-
import storage from '
|
|
18
|
-
import searchEngine from '
|
|
19
|
-
import security from '
|
|
20
|
-
import services from '
|
|
21
|
-
import team from '
|
|
22
|
-
import ui from '
|
|
2
|
+
import ai from 'config/ai'
|
|
3
|
+
import app from 'config/app'
|
|
4
|
+
import cache from 'config/cache'
|
|
5
|
+
import cli from 'config/cli'
|
|
6
|
+
import cloud from 'config/cloud'
|
|
7
|
+
import database from 'config/database'
|
|
8
|
+
import dns from 'config/dns'
|
|
9
|
+
import docs from 'config/docs'
|
|
10
|
+
import email from 'config/email'
|
|
11
|
+
import git from 'config/git'
|
|
12
|
+
import hashing from 'config/hashing'
|
|
13
|
+
import library from 'config/library'
|
|
14
|
+
import queue from 'config/queue'
|
|
15
|
+
import payment from 'config/payment'
|
|
16
|
+
import notification from 'config/notification'
|
|
17
|
+
import storage from 'config/storage'
|
|
18
|
+
import searchEngine from 'config/search-engine'
|
|
19
|
+
import security from 'config/security'
|
|
20
|
+
import services from 'config/services'
|
|
21
|
+
import team from 'config/team'
|
|
22
|
+
import ui from 'config/ui'
|
|
23
23
|
|
|
24
24
|
// this "user config" will override the default config options
|
|
25
25
|
export default {
|
|
26
26
|
ai,
|
|
27
27
|
app,
|
|
28
|
-
binary,
|
|
29
28
|
cache,
|
|
29
|
+
cli,
|
|
30
30
|
cloud,
|
|
31
31
|
database,
|
|
32
32
|
dns,
|
package/core/dns/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/dns",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.58.
|
|
4
|
+
"version": "0.58.50",
|
|
5
5
|
"description": "Easily manage your DNS.",
|
|
6
6
|
"author": "Chris Breuer",
|
|
7
7
|
"license": "MIT",
|
|
@@ -51,27 +51,27 @@
|
|
|
51
51
|
"prepublishOnly": "bun --bun run build"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@aws-sdk/client-route-53": "^3.
|
|
55
|
-
"@aws-sdk/client-route-53-domains": "^3.
|
|
54
|
+
"@aws-sdk/client-route-53": "^3.504.0",
|
|
55
|
+
"@aws-sdk/client-route-53-domains": "^3.504.0",
|
|
56
56
|
"@stacksjs/actions": "workspace:*",
|
|
57
57
|
"@stacksjs/error-handling": "workspace:*",
|
|
58
58
|
"@stacksjs/path": "workspace:*",
|
|
59
59
|
"@stacksjs/storage": "workspace:*",
|
|
60
60
|
"@stacksjs/whois": "workspace:*",
|
|
61
|
-
"aws-cdk-lib": "^2.
|
|
61
|
+
"aws-cdk-lib": "^2.126.0"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@aws-sdk/client-route-53": "^3.
|
|
64
|
+
"@aws-sdk/client-route-53": "^3.504.0",
|
|
65
65
|
"@stacksjs/actions": "workspace:*",
|
|
66
66
|
"@stacksjs/error-handling": "workspace:*",
|
|
67
67
|
"@stacksjs/path": "workspace:*",
|
|
68
68
|
"@stacksjs/storage": "workspace:*",
|
|
69
69
|
"@stacksjs/strings": "workspace:*",
|
|
70
70
|
"@stacksjs/whois": "workspace:*",
|
|
71
|
-
"aws-cdk-lib": "^2.
|
|
71
|
+
"aws-cdk-lib": "^2.126.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@stacksjs/development": "workspace:*",
|
|
75
|
-
"aws-cdk-lib": "^2.
|
|
75
|
+
"aws-cdk-lib": "^2.126.0"
|
|
76
76
|
}
|
|
77
77
|
}
|
package/core/docs/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/docs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.58.
|
|
4
|
+
"version": "0.58.50",
|
|
5
5
|
"description": "The Stacks way to document.",
|
|
6
6
|
"author": "Chris Breuer",
|
|
7
7
|
"license": "MIT",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@stacksjs/path": "workspace:*",
|
|
53
53
|
"@stacksjs/server": "workspace:*",
|
|
54
54
|
"@stacksjs/vite": "workspace:*",
|
|
55
|
-
"vitepress": "1.0.0-rc.
|
|
55
|
+
"vitepress": "1.0.0-rc.41"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@stacksjs/alias": "workspace:*",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"@stacksjs/path": "workspace:*",
|
|
61
61
|
"@stacksjs/server": "workspace:*",
|
|
62
62
|
"@stacksjs/vite": "workspace:*",
|
|
63
|
-
"vitepress": "1.0.0-rc.
|
|
63
|
+
"vitepress": "1.0.0-rc.41",
|
|
64
64
|
"vitepress-plugin-twoslash": "^0.10.2"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
package/core/email/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/email",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.58.
|
|
4
|
+
"version": "0.58.50",
|
|
5
5
|
"description": "The Stacks Email integration. Painlessly create & manage your inboxes, templates, and send emails.",
|
|
6
6
|
"author": "Chris Breuer",
|
|
7
7
|
"license": "MIT",
|
|
@@ -71,10 +71,10 @@
|
|
|
71
71
|
"@stacksjs/error-handling": "workspace:*",
|
|
72
72
|
"@stacksjs/types": "workspace:*",
|
|
73
73
|
"@types/mailparser": "^3.4.4",
|
|
74
|
-
"mailparser": "^3.6.
|
|
74
|
+
"mailparser": "^3.6.7",
|
|
75
75
|
"mime": "^4.0.1",
|
|
76
76
|
"moment": "^2.30.1",
|
|
77
|
-
"nodemailer": "^6.9.
|
|
77
|
+
"nodemailer": "^6.9.9",
|
|
78
78
|
"uuid": "^9.0.1"
|
|
79
79
|
},
|
|
80
80
|
"optionalDependencies": {
|