@gugananuvem/aws-local-simulator 1.0.31 → 1.0.34
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/README.md +834 -834
- package/aws-config +153 -153
- package/bin/aws-local-simulator.js +63 -63
- package/package.json +3 -2
- package/src/config/config-loader.js +114 -114
- package/src/config/default-config.js +79 -79
- package/src/config/env-loader.js +68 -68
- package/src/index.js +146 -146
- package/src/index.mjs +123 -123
- package/src/server.js +463 -463
- package/src/services/apigateway/index.js +75 -75
- package/src/services/apigateway/server.js +607 -607
- package/src/services/apigateway/simulator.js +1405 -1405
- package/src/services/athena/index.js +75 -75
- package/src/services/athena/server.js +101 -101
- package/src/services/athena/simulador.js +998 -998
- package/src/services/athena/simulator.js +346 -346
- package/src/services/cloudformation/index.js +106 -106
- package/src/services/cloudformation/server.js +417 -417
- package/src/services/cloudformation/simulador.js +1020 -1020
- package/src/services/cloudtrail/index.js +84 -84
- package/src/services/cloudtrail/server.js +235 -235
- package/src/services/cloudtrail/simulador.js +719 -719
- package/src/services/cloudwatch/index.js +84 -84
- package/src/services/cloudwatch/server.js +366 -366
- package/src/services/cloudwatch/simulador.js +1173 -1173
- package/src/services/cognito/index.js +79 -79
- package/src/services/cognito/server.js +297 -297
- package/src/services/cognito/simulator.js +1992 -1761
- package/src/services/config/index.js +96 -96
- package/src/services/config/server.js +215 -215
- package/src/services/config/simulador.js +1260 -1260
- package/src/services/dynamodb/index.js +74 -74
- package/src/services/dynamodb/server.js +139 -139
- package/src/services/dynamodb/simulator.js +1005 -982
- package/src/services/dynamodb/sqlite-store.js +722 -0
- package/src/services/ecs/index.js +65 -65
- package/src/services/ecs/server.js +235 -235
- package/src/services/ecs/simulator.js +844 -844
- package/src/services/eventbridge/index.js +89 -89
- package/src/services/eventbridge/server.js +209 -209
- package/src/services/eventbridge/simulator.js +684 -684
- package/src/services/index.js +45 -45
- package/src/services/kms/index.js +75 -75
- package/src/services/kms/server.js +81 -81
- package/src/services/kms/simulator.js +344 -344
- package/src/services/lambda/handler-loader.js +183 -183
- package/src/services/lambda/index.js +81 -81
- package/src/services/lambda/route-registry.js +274 -274
- package/src/services/lambda/server.js +191 -191
- package/src/services/lambda/simulator.js +364 -364
- package/src/services/parameter-store/index.js +80 -80
- package/src/services/parameter-store/server.js +50 -50
- package/src/services/parameter-store/simulator.js +201 -201
- package/src/services/s3/index.js +73 -73
- package/src/services/s3/server.js +350 -350
- package/src/services/s3/simulator.js +568 -568
- package/src/services/secret-manager/index.js +80 -80
- package/src/services/secret-manager/server.js +51 -51
- package/src/services/secret-manager/simulator.js +182 -182
- package/src/services/sns/index.js +89 -89
- package/src/services/sns/server.js +607 -607
- package/src/services/sns/simulator.js +1482 -1482
- package/src/services/sqs/index.js +98 -98
- package/src/services/sqs/server.js +360 -360
- package/src/services/sqs/simulator.js +509 -509
- package/src/services/sts/index.js +37 -37
- package/src/services/sts/server.js +144 -144
- package/src/services/sts/simulator.js +69 -69
- package/src/services/xray/index.js +83 -83
- package/src/services/xray/server.js +308 -308
- package/src/services/xray/simulador.js +994 -994
- package/src/template/aws-config-template.js +87 -87
- package/src/template/aws-config-template.mjs +90 -90
- package/src/template/config-template.json +203 -203
- package/src/utils/aws-config.js +91 -91
- package/src/utils/cloudtrail-audit.js +129 -129
- package/src/utils/local-store.js +83 -83
- package/src/utils/logger.js +59 -59
package/aws-config
CHANGED
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
// lambda/layer/utils/aws-config.js
|
|
2
|
-
const { DynamoDBClient } = require('@aws-sdk/client-dynamodb');
|
|
3
|
-
const { DynamoDBDocumentClient } = require('@aws-sdk/lib-dynamodb');
|
|
4
|
-
const { S3Client } = require('@aws-sdk/client-s3');
|
|
5
|
-
const { SQSClient } = require('@aws-sdk/client-sqs');
|
|
6
|
-
const { LambdaClient } = require('@aws-sdk/client-lambda');
|
|
7
|
-
const { CognitoIdentityProviderClient } = require("@aws-sdk/client-cognito-identity-provider");
|
|
8
|
-
|
|
9
|
-
// Detecta ambiente local
|
|
10
|
-
const isLocal = process.env.IS_LOCAL === 'true' ||
|
|
11
|
-
process.env.NODE_ENV === 'development' ||
|
|
12
|
-
process.env.AWS_SAM_LOCAL === 'true';
|
|
13
|
-
|
|
14
|
-
const isLocalS3 = process.env.IS_LOCAL_S3 === 'true'
|
|
15
|
-
const isLocalSQS = process.env.IS_LOCAL_SQS === 'true'
|
|
16
|
-
const isLocalDynamoDB = process.env.IS_LOCAL_DYNAMODB === 'true'
|
|
17
|
-
const isLocalLambda = process.env.IS_LOCAL_LAMBDA === 'true'
|
|
18
|
-
const isLocalCognito = process.env.IS_LOCAL_COGNITO === 'true'
|
|
19
|
-
|
|
20
|
-
// Endpoints locais (configuráveis via variáveis de ambiente)
|
|
21
|
-
const localEndpoints = {
|
|
22
|
-
dynamodb: process.env.DYNAMODB_ENDPOINT || 'http://localhost:8000',
|
|
23
|
-
s3: process.env.S3_ENDPOINT || 'http://localhost:4566',
|
|
24
|
-
sqs: process.env.SQS_ENDPOINT || 'http://localhost:9324',
|
|
25
|
-
lambda: process.env.LAMBDA_ENDPOINT || 'http://localhost:3001',
|
|
26
|
-
cognito: process.env.LOCAL_COGNITO || 'http://localhost:9229'
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
// Credenciais para ambiente local (não são validadas)
|
|
30
|
-
const localCredentials = {
|
|
31
|
-
accessKeyId: process.env.AWS_ACCESS_KEY_ID || 'local',
|
|
32
|
-
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY || 'local',
|
|
33
|
-
sessionToken: process.env.AWS_SESSION_TOKEN || undefined
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// Configuração base para todos os clients
|
|
37
|
-
const baseConfig = {
|
|
38
|
-
region: process.env.AWS_REGION || 'us-east-1',
|
|
39
|
-
credentials: isLocal ? localCredentials : undefined
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// ============ DynamoDB Client ============
|
|
43
|
-
const dynamoDBClient = new DynamoDBClient({
|
|
44
|
-
...baseConfig,
|
|
45
|
-
endpoint: isLocalDynamoDB ? localEndpoints.dynamodb : undefined,
|
|
46
|
-
region: process.env.AWS_REGION || "us-east-1"
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
const dynamoDBDocClient = DynamoDBDocumentClient.from(dynamoDBClient, {
|
|
50
|
-
marshallOptions: {
|
|
51
|
-
removeUndefinedValues: true,
|
|
52
|
-
convertEmptyValues: false
|
|
53
|
-
},
|
|
54
|
-
unmarshallOptions: {
|
|
55
|
-
wrapNumbers: false
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
const cognitoClient = new CognitoIdentityProviderClient({
|
|
60
|
-
...baseConfig,
|
|
61
|
-
endpoint: isLocalCognito ? localEndpoints.cognito : undefined,
|
|
62
|
-
region: process.env.AWS_REGION || 'us-east-1'
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
// ============ S3 Client ============
|
|
66
|
-
const s3Client = new S3Client({
|
|
67
|
-
...baseConfig,
|
|
68
|
-
endpoint: isLocalS3 ? localEndpoints.s3 : undefined,
|
|
69
|
-
forcePathStyle: true, // Necessário para S3 local (LocalStack, MinIO, etc)
|
|
70
|
-
// Para S3 real, não usar forcePathStyle
|
|
71
|
-
...(isLocalS3 ? {} : { forcePathStyle: false })
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
// ============ SQS Client ============
|
|
75
|
-
const sqsClient = new SQSClient({
|
|
76
|
-
...baseConfig,
|
|
77
|
-
endpoint: isLocalSQS ? localEndpoints.sqs : undefined
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
// ============ Lambda Client ============
|
|
81
|
-
const lambdaClient = new LambdaClient({
|
|
82
|
-
...baseConfig,
|
|
83
|
-
endpoint: isLocalLambda ? localEndpoints.lambda : undefined
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
// Log de configuração (apenas em desenvolvimento)
|
|
87
|
-
if (isLocalDynamoDB || isLocalS3 || isLocalSQS || isLocalLambda) {
|
|
88
|
-
console.log('🔧 Ambiente LOCAL detectado:');
|
|
89
|
-
console.log(` DynamoDB: ${localEndpoints.dynamodb}`);
|
|
90
|
-
console.log(` S3: ${localEndpoints.s3} (forcePathStyle: true)`);
|
|
91
|
-
console.log(` SQS: ${localEndpoints.sqs}`);
|
|
92
|
-
console.log(` Lambda: ${localEndpoints.lambda}`);
|
|
93
|
-
console.log(` Region: ${baseConfig.region}`);
|
|
94
|
-
}
|
|
95
|
-
if (isLocalDynamoDB || isLocalS3 || isLocalSQS || isLocalLambda) {
|
|
96
|
-
console.log('🔧 Ambiente LOCAL detectado:');
|
|
97
|
-
console.log(` Region: ${baseConfig.region}`);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (isLocalDynamoDB) {
|
|
101
|
-
console.log(` DynamoDB: ${localEndpoints.dynamodb}`);
|
|
102
|
-
}
|
|
103
|
-
if (isLocalS3) {
|
|
104
|
-
console.log(` S3: ${localEndpoints.s3} (forcePathStyle: true)`);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (isLocalSQS) {
|
|
108
|
-
console.log(` SQS: ${localEndpoints.sqs}`);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (isLocalLambda) {
|
|
112
|
-
console.log(` Lambda: ${localEndpoints.lambda}`);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if (isLocalCognito){
|
|
116
|
-
console.log(` Cognito: ${localEndpoints.cognito}`);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
module.exports = {
|
|
120
|
-
// Clients
|
|
121
|
-
dynamoDB: dynamoDBDocClient,
|
|
122
|
-
cognitoClient,
|
|
123
|
-
dynamoDBClient,
|
|
124
|
-
s3: s3Client,
|
|
125
|
-
sqs: sqsClient,
|
|
126
|
-
lambda: lambdaClient,
|
|
127
|
-
|
|
128
|
-
// Utilitários
|
|
129
|
-
isLocal,
|
|
130
|
-
localEndpoints,
|
|
131
|
-
|
|
132
|
-
// Configuração
|
|
133
|
-
config: {
|
|
134
|
-
region: baseConfig.region,
|
|
135
|
-
isLocal,
|
|
136
|
-
endpoints: localEndpoints
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
// Função para criar clients customizados (útil para testes)
|
|
140
|
-
createS3Client: (customEndpoint) => {
|
|
141
|
-
return new S3Client({
|
|
142
|
-
...baseConfig,
|
|
143
|
-
endpoint: customEndpoint || localEndpoints.s3,
|
|
144
|
-
forcePathStyle: true
|
|
145
|
-
});
|
|
146
|
-
},
|
|
147
|
-
|
|
148
|
-
createDynamoDBClient: (customEndpoint) => {
|
|
149
|
-
return new DynamoDBClient({
|
|
150
|
-
...baseConfig,
|
|
151
|
-
endpoint: customEndpoint || localEndpoints.dynamodb
|
|
152
|
-
});
|
|
153
|
-
}
|
|
1
|
+
// lambda/layer/utils/aws-config.js
|
|
2
|
+
const { DynamoDBClient } = require('@aws-sdk/client-dynamodb');
|
|
3
|
+
const { DynamoDBDocumentClient } = require('@aws-sdk/lib-dynamodb');
|
|
4
|
+
const { S3Client } = require('@aws-sdk/client-s3');
|
|
5
|
+
const { SQSClient } = require('@aws-sdk/client-sqs');
|
|
6
|
+
const { LambdaClient } = require('@aws-sdk/client-lambda');
|
|
7
|
+
const { CognitoIdentityProviderClient } = require("@aws-sdk/client-cognito-identity-provider");
|
|
8
|
+
|
|
9
|
+
// Detecta ambiente local
|
|
10
|
+
const isLocal = process.env.IS_LOCAL === 'true' ||
|
|
11
|
+
process.env.NODE_ENV === 'development' ||
|
|
12
|
+
process.env.AWS_SAM_LOCAL === 'true';
|
|
13
|
+
|
|
14
|
+
const isLocalS3 = process.env.IS_LOCAL_S3 === 'true'
|
|
15
|
+
const isLocalSQS = process.env.IS_LOCAL_SQS === 'true'
|
|
16
|
+
const isLocalDynamoDB = process.env.IS_LOCAL_DYNAMODB === 'true'
|
|
17
|
+
const isLocalLambda = process.env.IS_LOCAL_LAMBDA === 'true'
|
|
18
|
+
const isLocalCognito = process.env.IS_LOCAL_COGNITO === 'true'
|
|
19
|
+
|
|
20
|
+
// Endpoints locais (configuráveis via variáveis de ambiente)
|
|
21
|
+
const localEndpoints = {
|
|
22
|
+
dynamodb: process.env.DYNAMODB_ENDPOINT || 'http://localhost:8000',
|
|
23
|
+
s3: process.env.S3_ENDPOINT || 'http://localhost:4566',
|
|
24
|
+
sqs: process.env.SQS_ENDPOINT || 'http://localhost:9324',
|
|
25
|
+
lambda: process.env.LAMBDA_ENDPOINT || 'http://localhost:3001',
|
|
26
|
+
cognito: process.env.LOCAL_COGNITO || 'http://localhost:9229'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// Credenciais para ambiente local (não são validadas)
|
|
30
|
+
const localCredentials = {
|
|
31
|
+
accessKeyId: process.env.AWS_ACCESS_KEY_ID || 'local',
|
|
32
|
+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY || 'local',
|
|
33
|
+
sessionToken: process.env.AWS_SESSION_TOKEN || undefined
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Configuração base para todos os clients
|
|
37
|
+
const baseConfig = {
|
|
38
|
+
region: process.env.AWS_REGION || 'us-east-1',
|
|
39
|
+
credentials: isLocal ? localCredentials : undefined
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// ============ DynamoDB Client ============
|
|
43
|
+
const dynamoDBClient = new DynamoDBClient({
|
|
44
|
+
...baseConfig,
|
|
45
|
+
endpoint: isLocalDynamoDB ? localEndpoints.dynamodb : undefined,
|
|
46
|
+
region: process.env.AWS_REGION || "us-east-1"
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const dynamoDBDocClient = DynamoDBDocumentClient.from(dynamoDBClient, {
|
|
50
|
+
marshallOptions: {
|
|
51
|
+
removeUndefinedValues: true,
|
|
52
|
+
convertEmptyValues: false
|
|
53
|
+
},
|
|
54
|
+
unmarshallOptions: {
|
|
55
|
+
wrapNumbers: false
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const cognitoClient = new CognitoIdentityProviderClient({
|
|
60
|
+
...baseConfig,
|
|
61
|
+
endpoint: isLocalCognito ? localEndpoints.cognito : undefined,
|
|
62
|
+
region: process.env.AWS_REGION || 'us-east-1'
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// ============ S3 Client ============
|
|
66
|
+
const s3Client = new S3Client({
|
|
67
|
+
...baseConfig,
|
|
68
|
+
endpoint: isLocalS3 ? localEndpoints.s3 : undefined,
|
|
69
|
+
forcePathStyle: true, // Necessário para S3 local (LocalStack, MinIO, etc)
|
|
70
|
+
// Para S3 real, não usar forcePathStyle
|
|
71
|
+
...(isLocalS3 ? {} : { forcePathStyle: false })
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// ============ SQS Client ============
|
|
75
|
+
const sqsClient = new SQSClient({
|
|
76
|
+
...baseConfig,
|
|
77
|
+
endpoint: isLocalSQS ? localEndpoints.sqs : undefined
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// ============ Lambda Client ============
|
|
81
|
+
const lambdaClient = new LambdaClient({
|
|
82
|
+
...baseConfig,
|
|
83
|
+
endpoint: isLocalLambda ? localEndpoints.lambda : undefined
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Log de configuração (apenas em desenvolvimento)
|
|
87
|
+
if (isLocalDynamoDB || isLocalS3 || isLocalSQS || isLocalLambda) {
|
|
88
|
+
console.log('🔧 Ambiente LOCAL detectado:');
|
|
89
|
+
console.log(` DynamoDB: ${localEndpoints.dynamodb}`);
|
|
90
|
+
console.log(` S3: ${localEndpoints.s3} (forcePathStyle: true)`);
|
|
91
|
+
console.log(` SQS: ${localEndpoints.sqs}`);
|
|
92
|
+
console.log(` Lambda: ${localEndpoints.lambda}`);
|
|
93
|
+
console.log(` Region: ${baseConfig.region}`);
|
|
94
|
+
}
|
|
95
|
+
if (isLocalDynamoDB || isLocalS3 || isLocalSQS || isLocalLambda) {
|
|
96
|
+
console.log('🔧 Ambiente LOCAL detectado:');
|
|
97
|
+
console.log(` Region: ${baseConfig.region}`);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (isLocalDynamoDB) {
|
|
101
|
+
console.log(` DynamoDB: ${localEndpoints.dynamodb}`);
|
|
102
|
+
}
|
|
103
|
+
if (isLocalS3) {
|
|
104
|
+
console.log(` S3: ${localEndpoints.s3} (forcePathStyle: true)`);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (isLocalSQS) {
|
|
108
|
+
console.log(` SQS: ${localEndpoints.sqs}`);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (isLocalLambda) {
|
|
112
|
+
console.log(` Lambda: ${localEndpoints.lambda}`);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (isLocalCognito){
|
|
116
|
+
console.log(` Cognito: ${localEndpoints.cognito}`);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
module.exports = {
|
|
120
|
+
// Clients
|
|
121
|
+
dynamoDB: dynamoDBDocClient,
|
|
122
|
+
cognitoClient,
|
|
123
|
+
dynamoDBClient,
|
|
124
|
+
s3: s3Client,
|
|
125
|
+
sqs: sqsClient,
|
|
126
|
+
lambda: lambdaClient,
|
|
127
|
+
|
|
128
|
+
// Utilitários
|
|
129
|
+
isLocal,
|
|
130
|
+
localEndpoints,
|
|
131
|
+
|
|
132
|
+
// Configuração
|
|
133
|
+
config: {
|
|
134
|
+
region: baseConfig.region,
|
|
135
|
+
isLocal,
|
|
136
|
+
endpoints: localEndpoints
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
// Função para criar clients customizados (útil para testes)
|
|
140
|
+
createS3Client: (customEndpoint) => {
|
|
141
|
+
return new S3Client({
|
|
142
|
+
...baseConfig,
|
|
143
|
+
endpoint: customEndpoint || localEndpoints.s3,
|
|
144
|
+
forcePathStyle: true
|
|
145
|
+
});
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
createDynamoDBClient: (customEndpoint) => {
|
|
149
|
+
return new DynamoDBClient({
|
|
150
|
+
...baseConfig,
|
|
151
|
+
endpoint: customEndpoint || localEndpoints.dynamodb
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
154
|
};
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* CLI para AWS Local Simulator
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { AWSLocalSimulator } = require('../src/index');
|
|
8
|
-
const logger = require('../src/utils/logger');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
|
|
11
|
-
const command = process.argv[2];
|
|
12
|
-
const configPath = process.argv[3];
|
|
13
|
-
|
|
14
|
-
const simulator = new AWSLocalSimulator({
|
|
15
|
-
configPath: configPath ? path.resolve(process.cwd(), configPath) : undefined
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
async function main() {
|
|
19
|
-
switch (command) {
|
|
20
|
-
case 'start':
|
|
21
|
-
await simulator.start();
|
|
22
|
-
break;
|
|
23
|
-
|
|
24
|
-
case 'stop':
|
|
25
|
-
await simulator.stop();
|
|
26
|
-
break;
|
|
27
|
-
|
|
28
|
-
case 'restart':
|
|
29
|
-
await simulator.restart();
|
|
30
|
-
break;
|
|
31
|
-
|
|
32
|
-
case 'reset':
|
|
33
|
-
await simulator.reset();
|
|
34
|
-
break;
|
|
35
|
-
|
|
36
|
-
case 'status':
|
|
37
|
-
const status = simulator.getStatus();
|
|
38
|
-
console.log(JSON.stringify(status, null, 2));
|
|
39
|
-
break;
|
|
40
|
-
|
|
41
|
-
case 'help':
|
|
42
|
-
default:
|
|
43
|
-
console.log(`
|
|
44
|
-
AWS Local Simulator - CLI Commands:
|
|
45
|
-
start [configPath] - Inicia o simulador
|
|
46
|
-
stop - Para o simulador
|
|
47
|
-
restart - Reinicia o simulador
|
|
48
|
-
reset - Reseta todos os dados
|
|
49
|
-
status - Mostra status dos serviços
|
|
50
|
-
help - Mostra esta ajuda
|
|
51
|
-
|
|
52
|
-
Exemplos:
|
|
53
|
-
npx aws-local-simulator start
|
|
54
|
-
npx aws-local-simulator start ./my-config.json
|
|
55
|
-
AWS_LOCAL_SIMULATOR_LOG=verboso npx aws-local-simulator start
|
|
56
|
-
`);
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
main().catch(error => {
|
|
62
|
-
logger.error('Erro:', error);
|
|
63
|
-
process.exit(1);
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* CLI para AWS Local Simulator
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { AWSLocalSimulator } = require('../src/index');
|
|
8
|
+
const logger = require('../src/utils/logger');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
|
|
11
|
+
const command = process.argv[2];
|
|
12
|
+
const configPath = process.argv[3];
|
|
13
|
+
|
|
14
|
+
const simulator = new AWSLocalSimulator({
|
|
15
|
+
configPath: configPath ? path.resolve(process.cwd(), configPath) : undefined
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
async function main() {
|
|
19
|
+
switch (command) {
|
|
20
|
+
case 'start':
|
|
21
|
+
await simulator.start();
|
|
22
|
+
break;
|
|
23
|
+
|
|
24
|
+
case 'stop':
|
|
25
|
+
await simulator.stop();
|
|
26
|
+
break;
|
|
27
|
+
|
|
28
|
+
case 'restart':
|
|
29
|
+
await simulator.restart();
|
|
30
|
+
break;
|
|
31
|
+
|
|
32
|
+
case 'reset':
|
|
33
|
+
await simulator.reset();
|
|
34
|
+
break;
|
|
35
|
+
|
|
36
|
+
case 'status':
|
|
37
|
+
const status = simulator.getStatus();
|
|
38
|
+
console.log(JSON.stringify(status, null, 2));
|
|
39
|
+
break;
|
|
40
|
+
|
|
41
|
+
case 'help':
|
|
42
|
+
default:
|
|
43
|
+
console.log(`
|
|
44
|
+
AWS Local Simulator - CLI Commands:
|
|
45
|
+
start [configPath] - Inicia o simulador
|
|
46
|
+
stop - Para o simulador
|
|
47
|
+
restart - Reinicia o simulador
|
|
48
|
+
reset - Reseta todos os dados
|
|
49
|
+
status - Mostra status dos serviços
|
|
50
|
+
help - Mostra esta ajuda
|
|
51
|
+
|
|
52
|
+
Exemplos:
|
|
53
|
+
npx aws-local-simulator start
|
|
54
|
+
npx aws-local-simulator start ./my-config.json
|
|
55
|
+
AWS_LOCAL_SIMULATOR_LOG=verboso npx aws-local-simulator start
|
|
56
|
+
`);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
main().catch(error => {
|
|
62
|
+
logger.error('Erro:', error);
|
|
63
|
+
process.exit(1);
|
|
64
64
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gugananuvem/aws-local-simulator",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.34",
|
|
4
4
|
"description": "Simulador local completo para serviços AWS",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"start": "node bin/aws-local-simulator.js start"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
+
"better-sqlite3": "^11.0.0",
|
|
13
14
|
"@aws-sdk/client-api-gateway": "^3.0.0",
|
|
14
15
|
"@aws-sdk/client-cognito-identity-provider": "^3.0.0",
|
|
15
16
|
"@aws-sdk/client-dynamodb": "^3.0.0",
|
|
@@ -66,6 +67,6 @@
|
|
|
66
67
|
"publishConfig": {
|
|
67
68
|
"directory": "dist"
|
|
68
69
|
},
|
|
69
|
-
"buildDate": "2026-
|
|
70
|
+
"buildDate": "2026-06-23T12:54:20.022Z",
|
|
70
71
|
"published": true
|
|
71
72
|
}
|