local-serverless-stack 0.17.1 → 1.0.0
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/CHANGELOG.md +327 -0
- package/README.md +1157 -224
- package/assets/icon.svg +37 -0
- package/assets/logo.svg +38 -0
- package/bin/cli.js +384 -217
- package/bin/i18n.js +498 -0
- package/dist/client/config-discovery.d.ts.map +1 -1
- package/dist/client/config-discovery.js +2 -1
- package/dist/client/config-discovery.js.map +1 -1
- package/dist/client/http.d.ts +7 -0
- package/dist/client/http.d.ts.map +1 -1
- package/dist/client/http.js +3 -2
- package/dist/client/http.js.map +1 -1
- package/dist/client/lifecycle.d.ts +1 -4
- package/dist/client/lifecycle.d.ts.map +1 -1
- package/dist/client/lifecycle.js +2 -8
- package/dist/client/lifecycle.js.map +1 -1
- package/dist/client/namespaces/health.d.ts +1 -1
- package/dist/client/namespaces/health.d.ts.map +1 -1
- package/dist/client/namespaces/queues.d.ts.map +1 -1
- package/dist/client/namespaces/queues.js +9 -0
- package/dist/client/namespaces/queues.js.map +1 -1
- package/dist/client/namespaces/seeds.d.ts +1 -1
- package/dist/client/namespaces/services.d.ts +34 -0
- package/dist/client/namespaces/services.d.ts.map +1 -1
- package/dist/client/namespaces/services.js +3 -0
- package/dist/client/namespaces/services.js.map +1 -1
- package/dist/client/types.d.ts +17 -5
- package/dist/client/types.d.ts.map +1 -1
- package/dist/mcp/http.d.ts +15 -0
- package/dist/mcp/http.d.ts.map +1 -0
- package/dist/mcp/http.js +86 -0
- package/dist/mcp/http.js.map +1 -0
- package/dist/mcp/protocol.d.ts +36 -0
- package/dist/mcp/protocol.d.ts.map +1 -0
- package/dist/mcp/protocol.js +96 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +41 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +18 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +323 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/server/dev/dynamo-proxy.d.ts.map +1 -1
- package/dist/server/dev/dynamo-proxy.js +16 -2
- package/dist/server/dev/dynamo-proxy.js.map +1 -1
- package/dist/server/engine/backends/self-backend.d.ts +11 -2
- package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
- package/dist/server/engine/backends/self-backend.js +42 -1
- package/dist/server/engine/backends/self-backend.js.map +1 -1
- package/dist/server/engine/dispatch/dispatcher.js +2 -2
- package/dist/server/engine/dispatch/dispatcher.js.map +1 -1
- package/dist/server/engine/engine-manager.d.ts +6 -1
- package/dist/server/engine/engine-manager.d.ts.map +1 -1
- package/dist/server/engine/engine-manager.js +30 -27
- package/dist/server/engine/engine-manager.js.map +1 -1
- package/dist/server/engine/http/is-aws-request.d.ts +8 -0
- package/dist/server/engine/http/is-aws-request.d.ts.map +1 -0
- package/dist/server/engine/http/is-aws-request.js +53 -0
- package/dist/server/engine/http/is-aws-request.js.map +1 -0
- package/dist/server/engine/http/router.d.ts.map +1 -1
- package/dist/server/engine/http/router.js +7 -1
- package/dist/server/engine/http/router.js.map +1 -1
- package/dist/server/engine/store/engine-store.d.ts +1 -0
- package/dist/server/engine/store/engine-store.d.ts.map +1 -1
- package/dist/server/engine/store/engine-store.js +2 -1
- package/dist/server/engine/store/engine-store.js.map +1 -1
- package/dist/server/engine/store/memory-store.d.ts +16 -0
- package/dist/server/engine/store/memory-store.d.ts.map +1 -0
- package/dist/server/engine/store/memory-store.js +167 -0
- package/dist/server/engine/store/memory-store.js.map +1 -0
- package/dist/server/engine/store/wal.d.ts +3 -0
- package/dist/server/engine/store/wal.d.ts.map +1 -1
- package/dist/server/engine/store/wal.js +35 -1
- package/dist/server/engine/store/wal.js.map +1 -1
- package/dist/server/index.js +159 -44
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/config.d.ts.map +1 -1
- package/dist/server/routes/config.js +164 -15
- package/dist/server/routes/config.js.map +1 -1
- package/dist/server/routes/lambdas.d.ts.map +1 -1
- package/dist/server/routes/lambdas.js +65 -0
- package/dist/server/routes/lambdas.js.map +1 -1
- package/dist/server/routes/services.d.ts.map +1 -1
- package/dist/server/routes/services.js +275 -24
- package/dist/server/routes/services.js.map +1 -1
- package/dist/server/services/bind-host.d.ts +30 -0
- package/dist/server/services/bind-host.d.ts.map +1 -0
- package/dist/server/services/bind-host.js +182 -0
- package/dist/server/services/bind-host.js.map +1 -0
- package/dist/server/services/cache-manager.d.ts +2 -1
- package/dist/server/services/cache-manager.d.ts.map +1 -1
- package/dist/server/services/cache-manager.js +4 -14
- package/dist/server/services/cache-manager.js.map +1 -1
- package/dist/server/services/config-manager.d.ts +59 -35
- package/dist/server/services/config-manager.d.ts.map +1 -1
- package/dist/server/services/config-manager.js +787 -131
- package/dist/server/services/config-manager.js.map +1 -1
- package/dist/server/services/dynamo-explorer.d.ts +1 -0
- package/dist/server/services/dynamo-explorer.d.ts.map +1 -1
- package/dist/server/services/dynamo-explorer.js +28 -6
- package/dist/server/services/dynamo-explorer.js.map +1 -1
- package/dist/server/services/explorer-region.d.ts +2 -0
- package/dist/server/services/explorer-region.d.ts.map +1 -0
- package/dist/server/services/explorer-region.js +23 -0
- package/dist/server/services/explorer-region.js.map +1 -0
- package/dist/server/services/gateway-manager.d.ts.map +1 -1
- package/dist/server/services/gateway-manager.js +18 -5
- package/dist/server/services/gateway-manager.js.map +1 -1
- package/dist/server/services/invocation-activity.d.ts +45 -0
- package/dist/server/services/invocation-activity.d.ts.map +1 -0
- package/dist/server/services/invocation-activity.js +102 -0
- package/dist/server/services/invocation-activity.js.map +1 -0
- package/dist/server/services/lambda-runtime-manager.d.ts +7 -1
- package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
- package/dist/server/services/lambda-runtime-manager.js +118 -10
- package/dist/server/services/lambda-runtime-manager.js.map +1 -1
- package/dist/server/services/opensearch-explorer.d.ts.map +1 -1
- package/dist/server/services/opensearch-explorer.js +14 -10
- package/dist/server/services/opensearch-explorer.js.map +1 -1
- package/dist/server/services/project-scope.d.ts +2 -0
- package/dist/server/services/project-scope.d.ts.map +1 -0
- package/dist/server/services/project-scope.js +23 -0
- package/dist/server/services/project-scope.js.map +1 -0
- package/dist/server/services/queue-inspector.d.ts.map +1 -1
- package/dist/server/services/queue-inspector.js +15 -6
- package/dist/server/services/queue-inspector.js.map +1 -1
- package/dist/server/services/resource-provisioner.d.ts +0 -2
- package/dist/server/services/resource-provisioner.d.ts.map +1 -1
- package/dist/server/services/resource-provisioner.js +24 -14
- package/dist/server/services/resource-provisioner.js.map +1 -1
- package/dist/server/services/s3-explorer.js +3 -3
- package/dist/server/services/s3-explorer.js.map +1 -1
- package/dist/server/services/secrets-explorer.d.ts.map +1 -1
- package/dist/server/services/secrets-explorer.js +10 -3
- package/dist/server/services/secrets-explorer.js.map +1 -1
- package/dist/server/services/seed-manager.d.ts.map +1 -1
- package/dist/server/services/seed-manager.js +17 -8
- package/dist/server/services/seed-manager.js.map +1 -1
- package/dist/server/services/serverless-state-parser.d.ts +10 -0
- package/dist/server/services/serverless-state-parser.d.ts.map +1 -1
- package/dist/server/services/serverless-state-parser.js +20 -1
- package/dist/server/services/serverless-state-parser.js.map +1 -1
- package/dist/server/services/service-registrar.d.ts.map +1 -1
- package/dist/server/services/service-registrar.js +19 -5
- package/dist/server/services/service-registrar.js.map +1 -1
- package/dist/server/services/service-scanner.d.ts +20 -0
- package/dist/server/services/service-scanner.d.ts.map +1 -0
- package/dist/server/services/service-scanner.js +173 -0
- package/dist/server/services/service-scanner.js.map +1 -0
- package/dist/server/services/source-watcher.d.ts.map +1 -1
- package/dist/server/services/source-watcher.js +31 -6
- package/dist/server/services/source-watcher.js.map +1 -1
- package/dist/ui/assets/ApisPage-BOuimwWz.js +1 -0
- package/dist/ui/assets/BucketDetailPage-vLYwhoQt.js +1 -0
- package/dist/ui/assets/BucketsPage-Cu5lU1Hp.js +1 -0
- package/dist/ui/assets/DynamoPage-y3TTEPUL.js +1 -0
- package/dist/ui/assets/DynamoTablePage-BnmSRZjc.js +3 -0
- package/dist/ui/assets/LambdaDetailPage-B5q_d27t.js +4 -0
- package/dist/ui/assets/LambdasPage-CJpRoEDx.js +1 -0
- package/dist/ui/assets/OnboardingPage-D02dymQi.js +1 -0
- package/dist/ui/assets/OpenSearchCollectionPage-B_wWTlfL.js +1 -0
- package/dist/ui/assets/OpenSearchPage-BLEgfF_g.js +1 -0
- package/dist/ui/assets/{OverviewPage-C7JlCyW1.css → OverviewPage-C1pBJ8aP.css} +1 -1
- package/dist/ui/assets/OverviewPage-EdJWiAt6.js +1 -0
- package/dist/ui/assets/QueueDetailPage-ByEYHvHe.js +1 -0
- package/dist/ui/assets/QueuesPage-CvwYHSll.js +1 -0
- package/dist/ui/assets/SecretsPage-DASw8Ntf.js +1 -0
- package/dist/ui/assets/ServiceDetailPage-BMsUDg6L.js +2 -0
- package/dist/ui/assets/ServicesPage-2JuiIiRr.js +2 -0
- package/dist/ui/assets/SettingsPage-DStO4bgN.js +1 -0
- package/dist/ui/assets/engine-D0mFFNbL.js +1 -0
- package/dist/ui/assets/index-BIEznsi4.js +37 -0
- package/dist/ui/assets/index-BRMvNP3Y.css +1 -0
- package/dist/ui/assets/onboarding-DQmlvyWU.js +1 -0
- package/dist/ui/assets/resourceIcons-baecADXA.js +1 -0
- package/dist/ui/assets/triggerIcons-DIPWQkJ3.js +1 -0
- package/dist/ui/favicon.svg +37 -0
- package/dist/ui/index.html +5 -3
- package/package.json +12 -12
- package/dist/server/engine/aoss-sidecar.d.ts +0 -13
- package/dist/server/engine/aoss-sidecar.d.ts.map +0 -1
- package/dist/server/engine/aoss-sidecar.js +0 -93
- package/dist/server/engine/aoss-sidecar.js.map +0 -1
- package/dist/server/engine/backends/localstack-backend.d.ts +0 -25
- package/dist/server/engine/backends/localstack-backend.d.ts.map +0 -1
- package/dist/server/engine/backends/localstack-backend.js +0 -199
- package/dist/server/engine/backends/localstack-backend.js.map +0 -1
- package/dist/server/engine/engine-backend.d.ts +0 -17
- package/dist/server/engine/engine-backend.d.ts.map +0 -1
- package/dist/server/engine/engine-backend.js +0 -7
- package/dist/server/engine/engine-backend.js.map +0 -1
- package/dist/server/services/localstack-manager.d.ts +0 -17
- package/dist/server/services/localstack-manager.d.ts.map +0 -1
- package/dist/server/services/localstack-manager.js +0 -31
- package/dist/server/services/localstack-manager.js.map +0 -1
- package/dist/ui/assets/ApisPage-9Lk0_ZLj.js +0 -1
- package/dist/ui/assets/BucketDetailPage-CdLGW5em.js +0 -1
- package/dist/ui/assets/BucketsPage-CDP95vp8.js +0 -1
- package/dist/ui/assets/DynamoPage-CV7omZpi.js +0 -1
- package/dist/ui/assets/DynamoTablePage-C8v42fy7.js +0 -3
- package/dist/ui/assets/LambdaDetailPage-DkGxePSD.js +0 -4
- package/dist/ui/assets/LambdasPage-Bg7_taxW.js +0 -1
- package/dist/ui/assets/OpenSearchCollectionPage-Ci1hHyy2.js +0 -1
- package/dist/ui/assets/OpenSearchPage-CBKqZeim.js +0 -1
- package/dist/ui/assets/OverviewPage-D8lrE9rQ.js +0 -1
- package/dist/ui/assets/QueueDetailPage-D0DSIGZ2.js +0 -1
- package/dist/ui/assets/QueuesPage-BXebf6st.js +0 -1
- package/dist/ui/assets/SecretsPage-Be2Nw9BM.js +0 -1
- package/dist/ui/assets/SecretsPage-D3XYogv-.css +0 -1
- package/dist/ui/assets/ServiceDetailPage-DZpczZ-G.js +0 -2
- package/dist/ui/assets/ServicesPage-CdzxEqs3.js +0 -2
- package/dist/ui/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
- package/dist/ui/assets/index-C1Wb35Y8.css +0 -1
- package/dist/ui/assets/index-CGpxa55R.js +0 -37
- package/packages/serverless-plugin/README.md +0 -115
- package/packages/serverless-plugin/dist/index.d.ts +0 -2
- package/packages/serverless-plugin/dist/index.d.ts.map +0 -1
- package/packages/serverless-plugin/dist/index.js +0 -107
- package/packages/serverless-plugin/dist/index.js.map +0 -1
package/bin/i18n.js
ADDED
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
// CLI internationalisation — English, Brazilian Portuguese and Spanish.
|
|
2
|
+
//
|
|
3
|
+
// Hand-rolled and dependency-free, like the dashboard's (src/ui/src/i18n): the
|
|
4
|
+
// CLI is a plain CommonJS file with no build step, and a translation layer is
|
|
5
|
+
// not worth an npm dependency every user installs.
|
|
6
|
+
//
|
|
7
|
+
// Locale resolution, most specific first:
|
|
8
|
+
// LSS_LANG — explicit opt-in, the one a script should set
|
|
9
|
+
// LC_ALL / LC_MESSAGES / LANG — the POSIX chain the shell already exports
|
|
10
|
+
// Anything unrecognised falls back to English rather than guessing.
|
|
11
|
+
//
|
|
12
|
+
// What is deliberately NOT translated, in any catalogue: AWS proper nouns
|
|
13
|
+
// (DynamoDB, SQS, Lambda, CloudFormation, TableName…), command names (`start`,
|
|
14
|
+
// `seed:clear`, `scan`…), flags (`--config`, `--yes`), config keys
|
|
15
|
+
// (`lss.config.json`, `seedsDir`, `serverPort`, `selfEngine.port`), file paths,
|
|
16
|
+
// URLs and the `confirmar` word `seed:clear` asks the operator to type — that
|
|
17
|
+
// one is a magic token CI scripts and docs already depend on.
|
|
18
|
+
|
|
19
|
+
const LOCALES = ['en', 'pt-BR', 'es'];
|
|
20
|
+
const DEFAULT_LOCALE = 'en';
|
|
21
|
+
|
|
22
|
+
/** Best match for a locale-ish tag: exact, then the language subtag. */
|
|
23
|
+
function matchLocale(tag) {
|
|
24
|
+
if (!tag) return null;
|
|
25
|
+
// Strip the POSIX charset/modifier suffix: `pt_BR.UTF-8@euro` → `pt_BR`.
|
|
26
|
+
const cleaned = String(tag).split('.')[0].split('@')[0];
|
|
27
|
+
if (LOCALES.includes(cleaned)) return cleaned;
|
|
28
|
+
const language = cleaned.split(/[-_]/)[0].toLowerCase();
|
|
29
|
+
if (language === 'pt') return 'pt-BR';
|
|
30
|
+
if (language === 'es') return 'es';
|
|
31
|
+
if (language === 'en') return 'en';
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function detectLocale(env = process.env) {
|
|
36
|
+
for (const name of ['LSS_LANG', 'LC_ALL', 'LC_MESSAGES', 'LANG']) {
|
|
37
|
+
const matched = matchLocale(env[name]);
|
|
38
|
+
if (matched) return matched;
|
|
39
|
+
}
|
|
40
|
+
return DEFAULT_LOCALE;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const MESSAGES = {
|
|
44
|
+
en: {
|
|
45
|
+
'scan.warning.not-installed': 'dependencies not installed — packaging needs an install first',
|
|
46
|
+
'scan.warning.not-packaged': 'not packaged yet — registering packages it for you (autoPackage)',
|
|
47
|
+
'scan.warning.ts-config': 'TypeScript service config — name, region and ports resolve at packaging time',
|
|
48
|
+
'scan.warning.unreadable-config': 'could not read {file}',
|
|
49
|
+
'scan.warning.invalid-json': 'serverless.json is not valid JSON',
|
|
50
|
+
// --- config discovery --------------------------------------------------
|
|
51
|
+
'config.parseFailed': '⚠️ Failed to parse config file {path}',
|
|
52
|
+
'config.notFound': '⚠️ Config file not found: {path}',
|
|
53
|
+
|
|
54
|
+
// --- lifecycle ---------------------------------------------------------
|
|
55
|
+
'start.already': '⚠️ LSS Orchestrator is already running (PID: {pid})',
|
|
56
|
+
'start.starting': '🚀 Starting LSS Orchestrator...',
|
|
57
|
+
'start.started': '🚀 LSS Orchestrator started (PID: {pid})',
|
|
58
|
+
'start.server': '📊 Server: {url}',
|
|
59
|
+
'start.engine': '🔧 Self Engine: {url} (no Docker)',
|
|
60
|
+
'start.dynamoProxy': '🔌 DynamoDB Proxy: {url}',
|
|
61
|
+
'start.logs': '📝 Logs: {path}',
|
|
62
|
+
'start.running': '✅ Service is running',
|
|
63
|
+
'start.failed': '❌ Service failed to start. Check logs: {path}',
|
|
64
|
+
'start.notBuilt': '❌ Orchestrator not found or not built.',
|
|
65
|
+
'start.notBuiltDev': 'If you are developing LSS, run:',
|
|
66
|
+
'start.notBuiltBug': 'If you installed via npm, please report this as a bug.',
|
|
67
|
+
'stop.notRunning': '⚠️ LSS Orchestrator is not running',
|
|
68
|
+
'stop.stopped': '🛑 LSS Orchestrator stopped (PID: {pid})',
|
|
69
|
+
'stop.failed': '❌ Failed to stop the orchestrator: {error}',
|
|
70
|
+
'stop.timeout': '⚠️ Process {pid} did not exit within 10s of SIGTERM — the server port may still be busy. Check `lss status` before starting again.',
|
|
71
|
+
'status.running': '🟢 LSS Orchestrator: RUNNING (PID: {pid})',
|
|
72
|
+
'status.notRunning': '⚪ LSS Orchestrator: NOT RUNNING',
|
|
73
|
+
'status.stale': '⚪ LSS Orchestrator: NOT RUNNING (stale PID file)',
|
|
74
|
+
'status.server': ' Server: {url}',
|
|
75
|
+
'status.engine': ' Self Engine: {url}',
|
|
76
|
+
'status.dynamoProxy': ' DynamoDB Proxy: {url}',
|
|
77
|
+
'status.logs': ' Logs: {path}',
|
|
78
|
+
'logs.missing': '⚠️ No log file at {path}',
|
|
79
|
+
'logs.from': '📝 Logs from: {path}',
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
// --- errors ------------------------------------------------------------
|
|
83
|
+
'error.notRunning': '❌ LSS Orchestrator is not running. Start it with: npx lss start',
|
|
84
|
+
'error.unknown': 'unknown error (no details)',
|
|
85
|
+
'error.io': 'I/O error ({code})',
|
|
86
|
+
'error.httpNoBody': 'HTTP {status} (no error body)',
|
|
87
|
+
'error.httpConnection': 'HTTP connection to the orchestrator failed: {error}',
|
|
88
|
+
|
|
89
|
+
// --- register / scan ---------------------------------------------------
|
|
90
|
+
'register.notFound': '✗ {target}: directory not found',
|
|
91
|
+
'register.ok': '✓ {name}: {resources} resource(s), {functions} function(s), {routes} route(s)',
|
|
92
|
+
'register.failed': '✗ {target}: {error}',
|
|
93
|
+
'scan.none': 'No Serverless/osls services found under {root}',
|
|
94
|
+
'scan.header': '{count} service(s) under {root}:',
|
|
95
|
+
'scan.registered': 'registered',
|
|
96
|
+
'scan.notRegistered': 'not registered',
|
|
97
|
+
'scan.installed': 'installed',
|
|
98
|
+
'scan.notInstalled': 'not installed',
|
|
99
|
+
'scan.packaged': 'packaged',
|
|
100
|
+
'scan.notPackaged': 'not packaged',
|
|
101
|
+
'scan.packageCommand': 'package: {command}',
|
|
102
|
+
'scan.hint': '\nRegister with: npx lss register <path...> (or through the dashboard onboarding)',
|
|
103
|
+
'scan.failed': '❌ Scan failed:',
|
|
104
|
+
|
|
105
|
+
// --- seeds -------------------------------------------------------------
|
|
106
|
+
'seed.confirmPrompt': 'Type "{word}" to continue: ',
|
|
107
|
+
'seed.aborted': 'Aborted.',
|
|
108
|
+
'seed.clearing': '🧹 Clearing seeded tables…',
|
|
109
|
+
'seed.clearingTable': '🧹 Clearing {table}…',
|
|
110
|
+
'seed.running': '🌱 Applying seeds…',
|
|
111
|
+
'seed.runningTable': '🌱 Seeding {table}…',
|
|
112
|
+
'seed.inserted': ' ✓ {table}: {count} item(s) inserted',
|
|
113
|
+
'seed.deleted': ' ✓ {table}: {count} item(s) deleted',
|
|
114
|
+
'seed.skipped': ' ⚠ {table}: skipped ({reason})',
|
|
115
|
+
'seed.failed': '❌ Seed failed:',
|
|
116
|
+
|
|
117
|
+
// Both sides of the "why did nothing get seeded?" comparison: the seed
|
|
118
|
+
// files we found, and the tables actually living in the engine.
|
|
119
|
+
'seed.diagFile': '📂 Seed file inspected: {table}.json',
|
|
120
|
+
'seed.diagFiles': '📂 Seed files inspected (expected table):',
|
|
121
|
+
'seed.diagNoFiles': '📂 No *.json file found in seedsDir.',
|
|
122
|
+
'seed.diagLiveTables': '🗂️ Live tables in the engine ({count}):',
|
|
123
|
+
'seed.diagMatchHint': '💡 Seed file names must match the `TableName` in CloudFormation EXACTLY.',
|
|
124
|
+
'seed.diagPrefixHint': ' Check whether the file and the table disagree on a prefix/suffix.',
|
|
125
|
+
'seed.diagNoLiveTables': '🗂️ No live tables in the engine yet.',
|
|
126
|
+
'seed.diagNotProvisioned': '💡 The stack has probably not been provisioned yet. Try:',
|
|
127
|
+
'seed.diagStepStart': 'makes sure the orchestrator is running',
|
|
128
|
+
'seed.diagStepDeploy': 'creates the tables',
|
|
129
|
+
'seed.diagRetry': ' Then run `npx lss seed` again.',
|
|
130
|
+
'seed.diagFailed': '(could not detail the live tables: {error})',
|
|
131
|
+
|
|
132
|
+
// --- seed:clear (destructive, so it explains itself first) -------------
|
|
133
|
+
'clear.noSuchTable': '⚠️ No table "{table}" exists in the engine to clear.',
|
|
134
|
+
'clear.noSeedFiles': '⚠️ No seed file (*.json) found in seedsDir — nothing to clear.',
|
|
135
|
+
'clear.noneLive': '⚠️ {count} seed file(s) found, but NONE of the matching tables exist in the engine.',
|
|
136
|
+
'clear.warning': '⚠️ WARNING: destructive operation',
|
|
137
|
+
'clear.target': ' Target: {scope}',
|
|
138
|
+
'clear.engine': ' Engine: {url}',
|
|
139
|
+
'clear.noAws': ' This action does NOT touch any AWS account — only the local engine above.',
|
|
140
|
+
'clear.scopeTable': 'the "{table}" table',
|
|
141
|
+
'clear.scopeTables': '{count} table(s): {tables}',
|
|
142
|
+
'clear.skipPrompt': '↳ --yes given, skipping the interactive confirmation.',
|
|
143
|
+
'clear.listFailed': '❌ Could not list the tables before clearing:',
|
|
144
|
+
'clear.failed': '❌ Clear failed:',
|
|
145
|
+
|
|
146
|
+
// --- mcp ---------------------------------------------------------------
|
|
147
|
+
'mcp.missing': '❌ MCP server build not found. Run `npm run build` first.',
|
|
148
|
+
'mcp.startFailed': '❌ Failed to start the MCP server:',
|
|
149
|
+
|
|
150
|
+
// --- help --------------------------------------------------------------
|
|
151
|
+
// Only the prose lives here: the layout, command names, flags, env var
|
|
152
|
+
// names and the JSON template stay in showHelp().
|
|
153
|
+
'help.unknown': 'Unknown command: {command}',
|
|
154
|
+
'help.usage': 'Usage: npx lss <command> [options]',
|
|
155
|
+
'help.commands': 'Commands:',
|
|
156
|
+
'help.options': 'Options:',
|
|
157
|
+
'help.environment': 'Environment:',
|
|
158
|
+
'help.configuration': 'Configuration:',
|
|
159
|
+
'help.examples': 'Examples:',
|
|
160
|
+
'help.cmd.start': 'Start the LSS Orchestrator in the background',
|
|
161
|
+
'help.cmd.stop': 'Stop the LSS Orchestrator',
|
|
162
|
+
'help.cmd.status': 'Check whether the orchestrator is running',
|
|
163
|
+
'help.cmd.logs': 'Show the logs',
|
|
164
|
+
'help.cmd.seed': 'Apply seed file(s) from seedsDir into DynamoDB (no argument = every matching table)',
|
|
165
|
+
'help.cmd.scan': 'List every Serverless/osls service found under the project root (registered/installed/packaged flags, ports and package command)',
|
|
166
|
+
'help.cmd.register': 'Register services with the running orchestrator (defaults to the current directory; packaging runs on demand via autoPackage)',
|
|
167
|
+
'help.cmd.seedClear': 'Delete every item from the given table (or from every table that has a seed file). Asks for interactive confirmation (type "confirmar") before any write.',
|
|
168
|
+
'help.cmd.mcp': 'Run the Model Context Protocol server on stdio, so an MCP client can drive this stack with tools. Requires a running orchestrator; see docs/MCP.md.',
|
|
169
|
+
'help.cmd.help': 'Show this help message',
|
|
170
|
+
'help.opt.config': 'Load config from this file (precedes the cwd/home search). Applies to start/stop/status/logs, so an isolated instance can be addressed without cd-ing into its folder.',
|
|
171
|
+
'help.opt.dynamoProxy': 'Enable the DynamoDB proxy on port 8000 (for the start command)',
|
|
172
|
+
'help.opt.yes': 'Skip the interactive confirmation on seed:clear (use only in CI)',
|
|
173
|
+
'help.env.dashboardPort': 'Orchestrator port (overrides serverPort)',
|
|
174
|
+
'help.env.enginePort': 'Self engine port (overrides selfEngine.port)',
|
|
175
|
+
'help.env.engineDataDir': 'Self engine state directory (overrides selfEngine.dataDir)',
|
|
176
|
+
'help.env.awsRegion': 'Default region for provisioning and the explorers',
|
|
177
|
+
'help.env.lang': 'CLI language: en, pt-BR or es (falls back to LC_ALL/LC_MESSAGES/LANG)',
|
|
178
|
+
'help.config.intro': 'Create a lss.config.json or .lssrc file in your project root to customize:',
|
|
179
|
+
'help.config.example': 'Example lss.config.json:',
|
|
180
|
+
'help.config.stateDir': 'stateDir (optional): directory for this instance\'s PID/log files. Set it (e.g. ".lss-e2e") together with --config to run a fully isolated instance alongside the dev one. When omitted, PID/log live in the OS temp dir scoped by serverPort.',
|
|
181
|
+
'help.ex.start': 'Start the orchestrator + self engine (no Docker)',
|
|
182
|
+
'help.ex.startProxy': 'Start with the DynamoDB proxy enabled',
|
|
183
|
+
'help.ex.mcp': 'Serve MCP tools to an AI agent on stdio',
|
|
184
|
+
'help.ex.stop': 'Stop the orchestrator',
|
|
185
|
+
'help.ex.status': 'Check the status',
|
|
186
|
+
'help.ex.logs': 'View the logs',
|
|
187
|
+
'help.ex.scan': 'List the services found under the project root',
|
|
188
|
+
'help.ex.register': 'Register the service in the current directory',
|
|
189
|
+
'help.ex.seed': 'Seed every table that has a <table>.json file',
|
|
190
|
+
'help.ex.seedTable': 'Seed only the "users" table',
|
|
191
|
+
'help.ex.seedClear': 'Delete every item from "users" (with confirmation)',
|
|
192
|
+
'help.ex.seedClearYes': 'Same thing, without the prompt (CI)',
|
|
193
|
+
},
|
|
194
|
+
|
|
195
|
+
'pt-BR': {
|
|
196
|
+
'scan.warning.not-installed': 'dependências não instaladas — empacotar exige instalar antes',
|
|
197
|
+
'scan.warning.not-packaged': 'ainda não empacotado — registrar empacota para você (autoPackage)',
|
|
198
|
+
'scan.warning.ts-config': 'config em TypeScript — nome, região e portas só resolvem no empacotamento',
|
|
199
|
+
'scan.warning.unreadable-config': 'não consegui ler {file}',
|
|
200
|
+
'scan.warning.invalid-json': 'serverless.json não é um JSON válido',
|
|
201
|
+
'config.parseFailed': '⚠️ Não consegui ler o arquivo de config {path}',
|
|
202
|
+
'config.notFound': '⚠️ Arquivo de config não encontrado: {path}',
|
|
203
|
+
|
|
204
|
+
'start.already': '⚠️ O orquestrador LSS já está rodando (PID: {pid})',
|
|
205
|
+
'start.starting': '🚀 Iniciando o orquestrador LSS...',
|
|
206
|
+
'start.started': '🚀 Orquestrador LSS iniciado (PID: {pid})',
|
|
207
|
+
'start.server': '📊 Servidor: {url}',
|
|
208
|
+
'start.engine': '🔧 Self Engine: {url} (sem Docker)',
|
|
209
|
+
'start.dynamoProxy': '🔌 Proxy DynamoDB: {url}',
|
|
210
|
+
'start.logs': '📝 Logs: {path}',
|
|
211
|
+
'start.running': '✅ Serviço no ar',
|
|
212
|
+
'start.failed': '❌ O serviço não subiu. Veja os logs: {path}',
|
|
213
|
+
'start.notBuilt': '❌ Orquestrador não encontrado ou sem build.',
|
|
214
|
+
'start.notBuiltDev': 'Se você está desenvolvendo o LSS, rode:',
|
|
215
|
+
'start.notBuiltBug': 'Se você instalou via npm, por favor abra um bug.',
|
|
216
|
+
'stop.notRunning': '⚠️ O orquestrador LSS não está rodando',
|
|
217
|
+
'stop.stopped': '🛑 Orquestrador LSS parado (PID: {pid})',
|
|
218
|
+
'stop.failed': '❌ Não foi possível parar o orquestrador: {error}',
|
|
219
|
+
'stop.timeout': '⚠️ O processo {pid} não saiu em 10s depois do SIGTERM — a porta do servidor pode continuar ocupada. Confira `lss status` antes de subir de novo.',
|
|
220
|
+
'status.running': '🟢 Orquestrador LSS: NO AR (PID: {pid})',
|
|
221
|
+
'status.notRunning': '⚪ Orquestrador LSS: FORA DO AR',
|
|
222
|
+
'status.stale': '⚪ Orquestrador LSS: FORA DO AR (arquivo de PID órfão)',
|
|
223
|
+
'status.server': ' Servidor: {url}',
|
|
224
|
+
'status.engine': ' Self Engine: {url}',
|
|
225
|
+
'status.dynamoProxy': ' Proxy DynamoDB: {url}',
|
|
226
|
+
'status.logs': ' Logs: {path}',
|
|
227
|
+
'logs.missing': '⚠️ Nenhum arquivo de log em {path}',
|
|
228
|
+
'logs.from': '📝 Logs de: {path}',
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
'error.notRunning': '❌ O orquestrador LSS não está rodando. Suba com: npx lss start',
|
|
232
|
+
'error.unknown': 'erro desconhecido (sem detalhes)',
|
|
233
|
+
'error.io': 'erro de I/O ({code})',
|
|
234
|
+
'error.httpNoBody': 'HTTP {status} (sem corpo de erro)',
|
|
235
|
+
'error.httpConnection': 'falha na conexão HTTP com o orquestrador: {error}',
|
|
236
|
+
|
|
237
|
+
'register.notFound': '✗ {target}: diretório não encontrado',
|
|
238
|
+
'register.ok': '✓ {name}: {resources} recurso(s), {functions} função(ões), {routes} rota(s)',
|
|
239
|
+
'register.failed': '✗ {target}: {error}',
|
|
240
|
+
'scan.none': 'Nenhum serviço Serverless/osls encontrado sob {root}',
|
|
241
|
+
'scan.header': '{count} serviço(s) sob {root}:',
|
|
242
|
+
'scan.registered': 'registrado',
|
|
243
|
+
'scan.notRegistered': 'não registrado',
|
|
244
|
+
'scan.installed': 'instalado',
|
|
245
|
+
'scan.notInstalled': 'não instalado',
|
|
246
|
+
'scan.packaged': 'empacotado',
|
|
247
|
+
'scan.notPackaged': 'não empacotado',
|
|
248
|
+
'scan.packageCommand': 'package: {command}',
|
|
249
|
+
'scan.hint': '\nRegistre com: npx lss register <path...> (ou pelo onboarding do dashboard)',
|
|
250
|
+
'scan.failed': '❌ O scan falhou:',
|
|
251
|
+
|
|
252
|
+
'seed.confirmPrompt': 'Digite "{word}" para continuar: ',
|
|
253
|
+
'seed.aborted': 'Cancelado.',
|
|
254
|
+
'seed.clearing': '🧹 Limpando as tabelas semeadas…',
|
|
255
|
+
'seed.clearingTable': '🧹 Limpando {table}…',
|
|
256
|
+
'seed.running': '🌱 Aplicando os seeds…',
|
|
257
|
+
'seed.runningTable': '🌱 Semeando {table}…',
|
|
258
|
+
'seed.inserted': ' ✓ {table}: {count} item(ns) inserido(s)',
|
|
259
|
+
'seed.deleted': ' ✓ {table}: {count} item(ns) removido(s)',
|
|
260
|
+
'seed.skipped': ' ⚠ {table}: pulada ({reason})',
|
|
261
|
+
'seed.failed': '❌ O seed falhou:',
|
|
262
|
+
|
|
263
|
+
'seed.diagFile': '📂 Arquivo de seed inspecionado: {table}.json',
|
|
264
|
+
'seed.diagFiles': '📂 Arquivos de seed inspecionados (tabela esperada):',
|
|
265
|
+
'seed.diagNoFiles': '📂 Nenhum arquivo *.json encontrado no seedsDir.',
|
|
266
|
+
'seed.diagLiveTables': '🗂️ Tabelas vivas no engine ({count}):',
|
|
267
|
+
'seed.diagMatchHint': '💡 Os nomes dos arquivos de seed precisam bater EXATAMENTE com o `TableName` no CloudFormation.',
|
|
268
|
+
'seed.diagPrefixHint': ' Confira se há prefixo/sufixo divergente entre o arquivo e a tabela.',
|
|
269
|
+
'seed.diagNoLiveTables': '🗂️ Nenhuma tabela viva no engine ainda.',
|
|
270
|
+
'seed.diagNotProvisioned': '💡 Provavelmente o stack ainda não foi provisionado. Tente:',
|
|
271
|
+
'seed.diagStepStart': 'garante o orquestrador rodando',
|
|
272
|
+
'seed.diagStepDeploy': 'cria as tabelas',
|
|
273
|
+
'seed.diagRetry': ' E rode `npx lss seed` de novo.',
|
|
274
|
+
'seed.diagFailed': '(não consegui detalhar as tabelas vivas: {error})',
|
|
275
|
+
|
|
276
|
+
'clear.noSuchTable': '⚠️ Nenhuma tabela "{table}" existe no engine para limpar.',
|
|
277
|
+
'clear.noSeedFiles': '⚠️ Nenhum arquivo de seed (*.json) encontrado no seedsDir — nada para limpar.',
|
|
278
|
+
'clear.noneLive': '⚠️ {count} arquivo(s) de seed encontrado(s), mas NENHUMA das tabelas correspondentes existe no engine.',
|
|
279
|
+
'clear.warning': '⚠️ ATENÇÃO: operação destrutiva',
|
|
280
|
+
'clear.target': ' Alvo: {scope}',
|
|
281
|
+
'clear.engine': ' Engine: {url}',
|
|
282
|
+
'clear.noAws': ' Esta ação NÃO toca em nenhuma conta AWS — apenas o engine local acima.',
|
|
283
|
+
'clear.scopeTable': 'a tabela "{table}"',
|
|
284
|
+
'clear.scopeTables': '{count} tabela(s): {tables}',
|
|
285
|
+
'clear.skipPrompt': '↳ --yes informado, pulando a confirmação interativa.',
|
|
286
|
+
'clear.listFailed': '❌ Não consegui listar as tabelas antes de limpar:',
|
|
287
|
+
'clear.failed': '❌ A limpeza falhou:',
|
|
288
|
+
|
|
289
|
+
'mcp.missing': '❌ Build do servidor MCP não encontrado. Rode `npm run build` antes.',
|
|
290
|
+
'mcp.startFailed': '❌ Não consegui subir o servidor MCP:',
|
|
291
|
+
|
|
292
|
+
'help.unknown': 'Comando desconhecido: {command}',
|
|
293
|
+
'help.usage': 'Uso: npx lss <command> [options]',
|
|
294
|
+
'help.commands': 'Comandos:',
|
|
295
|
+
'help.options': 'Opções:',
|
|
296
|
+
'help.environment': 'Ambiente:',
|
|
297
|
+
'help.configuration': 'Configuração:',
|
|
298
|
+
'help.examples': 'Exemplos:',
|
|
299
|
+
'help.cmd.start': 'Sobe o orquestrador LSS em background',
|
|
300
|
+
'help.cmd.stop': 'Para o orquestrador LSS',
|
|
301
|
+
'help.cmd.status': 'Mostra se o orquestrador está rodando',
|
|
302
|
+
'help.cmd.logs': 'Mostra os logs',
|
|
303
|
+
'help.cmd.seed': 'Aplica o(s) arquivo(s) de seed do seedsDir no DynamoDB (sem argumento = todas as tabelas com arquivo)',
|
|
304
|
+
'help.cmd.scan': 'Lista todo serviço Serverless/osls encontrado sob a raiz do projeto (flags registrado/instalado/empacotado, portas e comando de package)',
|
|
305
|
+
'help.cmd.register': 'Registra serviços no orquestrador que está rodando (usa o diretório atual por padrão; o empacotamento roda sob demanda via autoPackage)',
|
|
306
|
+
'help.cmd.seedClear': 'Apaga todos os itens da tabela informada (ou de todas as tabelas com arquivo de seed). Pede confirmação interativa (digitar "confirmar") antes de qualquer escrita.',
|
|
307
|
+
'help.cmd.mcp': 'Roda o servidor Model Context Protocol no stdio, para um cliente MCP dirigir esta stack com tools. Precisa do orquestrador rodando; veja docs/MCP.md.',
|
|
308
|
+
'help.cmd.help': 'Mostra esta ajuda',
|
|
309
|
+
'help.opt.config': 'Carrega a config deste arquivo (tem precedência sobre a busca em cwd/home). Vale para start/stop/status/logs, então dá para endereçar uma instância isolada sem entrar na pasta dela.',
|
|
310
|
+
'help.opt.dynamoProxy': 'Liga o proxy DynamoDB na porta 8000 (para o comando start)',
|
|
311
|
+
'help.opt.yes': 'Pula a confirmação interativa do seed:clear (use só em CI)',
|
|
312
|
+
'help.env.dashboardPort': 'Porta do orquestrador (sobrepõe serverPort)',
|
|
313
|
+
'help.env.enginePort': 'Porta do self engine (sobrepõe selfEngine.port)',
|
|
314
|
+
'help.env.engineDataDir': 'Diretório de estado do self engine (sobrepõe selfEngine.dataDir)',
|
|
315
|
+
'help.env.awsRegion': 'Região padrão para o provisionamento e para os explorers',
|
|
316
|
+
'help.env.lang': 'Idioma da CLI: en, pt-BR ou es (cai para LC_ALL/LC_MESSAGES/LANG)',
|
|
317
|
+
'help.config.intro': 'Crie um lss.config.json ou .lssrc na raiz do projeto para customizar:',
|
|
318
|
+
'help.config.example': 'Exemplo de lss.config.json:',
|
|
319
|
+
'help.config.stateDir': 'stateDir (opcional): diretório para os arquivos de PID/log desta instância. Use junto com --config (ex.: ".lss-e2e") para rodar uma instância totalmente isolada ao lado da de dev. Sem ele, PID/log ficam no diretório temporário do SO, separados por serverPort.',
|
|
320
|
+
'help.ex.start': 'Sobe o orquestrador + self engine (sem Docker)',
|
|
321
|
+
'help.ex.startProxy': 'Sobe com o proxy DynamoDB ligado',
|
|
322
|
+
'help.ex.mcp': 'Serve as tools MCP para um agente de IA no stdio',
|
|
323
|
+
'help.ex.stop': 'Para o orquestrador',
|
|
324
|
+
'help.ex.status': 'Mostra o status',
|
|
325
|
+
'help.ex.logs': 'Mostra os logs',
|
|
326
|
+
'help.ex.scan': 'Lista os serviços encontrados sob a raiz do projeto',
|
|
327
|
+
'help.ex.register': 'Registra o serviço do diretório atual',
|
|
328
|
+
'help.ex.seed': 'Semeia toda tabela que tem um arquivo <table>.json',
|
|
329
|
+
'help.ex.seedTable': 'Semeia só a tabela "users"',
|
|
330
|
+
'help.ex.seedClear': 'Apaga todos os itens de "users" (com confirmação)',
|
|
331
|
+
'help.ex.seedClearYes': 'Mesma coisa, sem prompt (CI)',
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
es: {
|
|
335
|
+
'scan.warning.not-installed': 'dependencias sin instalar — empaquetar requiere instalarlas antes',
|
|
336
|
+
'scan.warning.not-packaged': 'aún sin empaquetar — registrar lo empaqueta por ti (autoPackage)',
|
|
337
|
+
'scan.warning.ts-config': 'config en TypeScript — nombre, región y puertos se resuelven al empaquetar',
|
|
338
|
+
'scan.warning.unreadable-config': 'no se pudo leer {file}',
|
|
339
|
+
'scan.warning.invalid-json': 'serverless.json no es un JSON válido',
|
|
340
|
+
'config.parseFailed': '⚠️ No se pudo leer el archivo de configuración {path}',
|
|
341
|
+
'config.notFound': '⚠️ Archivo de configuración no encontrado: {path}',
|
|
342
|
+
|
|
343
|
+
'start.already': '⚠️ El orquestador LSS ya está en marcha (PID: {pid})',
|
|
344
|
+
'start.starting': '🚀 Iniciando el orquestador LSS...',
|
|
345
|
+
'start.started': '🚀 Orquestador LSS iniciado (PID: {pid})',
|
|
346
|
+
'start.server': '📊 Servidor: {url}',
|
|
347
|
+
'start.engine': '🔧 Self Engine: {url} (sin Docker)',
|
|
348
|
+
'start.dynamoProxy': '🔌 Proxy de DynamoDB: {url}',
|
|
349
|
+
'start.logs': '📝 Registros: {path}',
|
|
350
|
+
'start.running': '✅ El servicio está en marcha',
|
|
351
|
+
'start.failed': '❌ El servicio no arrancó. Revisa los registros: {path}',
|
|
352
|
+
'start.notBuilt': '❌ Orquestador no encontrado o sin compilar.',
|
|
353
|
+
'start.notBuiltDev': 'Si estás desarrollando LSS, ejecuta:',
|
|
354
|
+
'start.notBuiltBug': 'Si lo instalaste con npm, por favor repórtalo como un bug.',
|
|
355
|
+
'stop.notRunning': '⚠️ El orquestador LSS no está en marcha',
|
|
356
|
+
'stop.stopped': '🛑 Orquestador LSS detenido (PID: {pid})',
|
|
357
|
+
'stop.failed': '❌ No se pudo detener el orquestador: {error}',
|
|
358
|
+
'stop.timeout': '⚠️ El proceso {pid} no terminó en 10s tras el SIGTERM — el puerto del servidor puede seguir ocupado. Revisa `lss status` antes de volver a iniciar.',
|
|
359
|
+
'status.running': '🟢 Orquestador LSS: EN MARCHA (PID: {pid})',
|
|
360
|
+
'status.notRunning': '⚪ Orquestador LSS: DETENIDO',
|
|
361
|
+
'status.stale': '⚪ Orquestador LSS: DETENIDO (archivo PID huérfano)',
|
|
362
|
+
'status.server': ' Servidor: {url}',
|
|
363
|
+
'status.engine': ' Self Engine: {url}',
|
|
364
|
+
'status.dynamoProxy': ' Proxy de DynamoDB: {url}',
|
|
365
|
+
'status.logs': ' Registros: {path}',
|
|
366
|
+
'logs.missing': '⚠️ No hay archivo de registro en {path}',
|
|
367
|
+
'logs.from': '📝 Registros de: {path}',
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
'error.notRunning': '❌ El orquestador LSS no está en marcha. Inícialo con: npx lss start',
|
|
371
|
+
'error.unknown': 'error desconocido (sin detalles)',
|
|
372
|
+
'error.io': 'error de E/S ({code})',
|
|
373
|
+
'error.httpNoBody': 'HTTP {status} (sin cuerpo de error)',
|
|
374
|
+
'error.httpConnection': 'falló la conexión HTTP con el orquestador: {error}',
|
|
375
|
+
|
|
376
|
+
'register.notFound': '✗ {target}: directorio no encontrado',
|
|
377
|
+
'register.ok': '✓ {name}: {resources} recurso(s), {functions} función(es), {routes} ruta(s)',
|
|
378
|
+
'register.failed': '✗ {target}: {error}',
|
|
379
|
+
'scan.none': 'No se encontraron servicios Serverless/osls en {root}',
|
|
380
|
+
'scan.header': '{count} servicio(s) en {root}:',
|
|
381
|
+
'scan.registered': 'registrado',
|
|
382
|
+
'scan.notRegistered': 'sin registrar',
|
|
383
|
+
'scan.installed': 'instalado',
|
|
384
|
+
'scan.notInstalled': 'sin instalar',
|
|
385
|
+
'scan.packaged': 'empaquetado',
|
|
386
|
+
'scan.notPackaged': 'sin empaquetar',
|
|
387
|
+
'scan.packageCommand': 'package: {command}',
|
|
388
|
+
'scan.hint': '\nRegístralos con: npx lss register <path...> (o desde el onboarding del panel)',
|
|
389
|
+
'scan.failed': '❌ El escaneo falló:',
|
|
390
|
+
|
|
391
|
+
'seed.confirmPrompt': 'Escribe "{word}" para continuar: ',
|
|
392
|
+
'seed.aborted': 'Cancelado.',
|
|
393
|
+
'seed.clearing': '🧹 Vaciando las tablas sembradas…',
|
|
394
|
+
'seed.clearingTable': '🧹 Vaciando {table}…',
|
|
395
|
+
'seed.running': '🌱 Aplicando los seeds…',
|
|
396
|
+
'seed.runningTable': '🌱 Sembrando {table}…',
|
|
397
|
+
'seed.inserted': ' ✓ {table}: {count} ítem(s) insertado(s)',
|
|
398
|
+
'seed.deleted': ' ✓ {table}: {count} ítem(s) eliminado(s)',
|
|
399
|
+
'seed.skipped': ' ⚠ {table}: omitida ({reason})',
|
|
400
|
+
'seed.failed': '❌ El seed falló:',
|
|
401
|
+
|
|
402
|
+
'seed.diagFile': '📂 Archivo de seed inspeccionado: {table}.json',
|
|
403
|
+
'seed.diagFiles': '📂 Archivos de seed inspeccionados (tabla esperada):',
|
|
404
|
+
'seed.diagNoFiles': '📂 No se encontró ningún archivo *.json en seedsDir.',
|
|
405
|
+
'seed.diagLiveTables': '🗂️ Tablas vivas en el engine ({count}):',
|
|
406
|
+
'seed.diagMatchHint': '💡 Los nombres de los archivos de seed deben coincidir EXACTAMENTE con el `TableName` de CloudFormation.',
|
|
407
|
+
'seed.diagPrefixHint': ' Fíjate si el archivo y la tabla difieren en algún prefijo/sufijo.',
|
|
408
|
+
'seed.diagNoLiveTables': '🗂️ Todavía no hay tablas vivas en el engine.',
|
|
409
|
+
'seed.diagNotProvisioned': '💡 Probablemente el stack aún no se aprovisionó. Prueba:',
|
|
410
|
+
'seed.diagStepStart': 'asegura que el orquestador esté en marcha',
|
|
411
|
+
'seed.diagStepDeploy': 'crea las tablas',
|
|
412
|
+
'seed.diagRetry': ' Y ejecuta `npx lss seed` de nuevo.',
|
|
413
|
+
'seed.diagFailed': '(no se pudieron detallar las tablas vivas: {error})',
|
|
414
|
+
|
|
415
|
+
'clear.noSuchTable': '⚠️ No existe ninguna tabla "{table}" en el engine para vaciar.',
|
|
416
|
+
'clear.noSeedFiles': '⚠️ No se encontró ningún archivo de seed (*.json) en seedsDir — nada que vaciar.',
|
|
417
|
+
'clear.noneLive': '⚠️ Se encontraron {count} archivo(s) de seed, pero NINGUNA de las tablas correspondientes existe en el engine.',
|
|
418
|
+
'clear.warning': '⚠️ ATENCIÓN: operación destructiva',
|
|
419
|
+
'clear.target': ' Objetivo: {scope}',
|
|
420
|
+
'clear.engine': ' Engine: {url}',
|
|
421
|
+
'clear.noAws': ' Esta acción NO toca ninguna cuenta de AWS — solo el engine local de arriba.',
|
|
422
|
+
'clear.scopeTable': 'la tabla "{table}"',
|
|
423
|
+
'clear.scopeTables': '{count} tabla(s): {tables}',
|
|
424
|
+
'clear.skipPrompt': '↳ --yes indicado, saltando la confirmación interactiva.',
|
|
425
|
+
'clear.listFailed': '❌ No se pudieron listar las tablas antes de vaciar:',
|
|
426
|
+
'clear.failed': '❌ El vaciado falló:',
|
|
427
|
+
|
|
428
|
+
'mcp.missing': '❌ No se encontró el build del servidor MCP. Ejecuta `npm run build` primero.',
|
|
429
|
+
'mcp.startFailed': '❌ No se pudo iniciar el servidor MCP:',
|
|
430
|
+
|
|
431
|
+
'help.unknown': 'Comando desconocido: {command}',
|
|
432
|
+
'help.usage': 'Uso: npx lss <command> [options]',
|
|
433
|
+
'help.commands': 'Comandos:',
|
|
434
|
+
'help.options': 'Opciones:',
|
|
435
|
+
'help.environment': 'Entorno:',
|
|
436
|
+
'help.configuration': 'Configuración:',
|
|
437
|
+
'help.examples': 'Ejemplos:',
|
|
438
|
+
'help.cmd.start': 'Inicia el orquestador LSS en segundo plano',
|
|
439
|
+
'help.cmd.stop': 'Detiene el orquestador LSS',
|
|
440
|
+
'help.cmd.status': 'Muestra si el orquestador está en marcha',
|
|
441
|
+
'help.cmd.logs': 'Muestra los registros',
|
|
442
|
+
'help.cmd.seed': 'Aplica el/los archivo(s) de seed de seedsDir en DynamoDB (sin argumento = todas las tablas que coincidan)',
|
|
443
|
+
'help.cmd.scan': 'Lista cada servicio Serverless/osls encontrado bajo la raíz del proyecto (banderas registrado/instalado/empaquetado, puertos y comando de package)',
|
|
444
|
+
'help.cmd.register': 'Registra servicios en el orquestador en marcha (usa el directorio actual por defecto; el empaquetado corre a demanda con autoPackage)',
|
|
445
|
+
'help.cmd.seedClear': 'Elimina todos los ítems de la tabla indicada (o de todas las tablas con archivo de seed). Pide confirmación interactiva (escribir "confirmar") antes de cualquier escritura.',
|
|
446
|
+
'help.cmd.mcp': 'Ejecuta el servidor Model Context Protocol en stdio, para que un cliente MCP maneje este stack con tools. Requiere el orquestador en marcha; mira docs/MCP.md.',
|
|
447
|
+
'help.cmd.help': 'Muestra esta ayuda',
|
|
448
|
+
'help.opt.config': 'Carga la configuración de este archivo (tiene precedencia sobre la búsqueda en cwd/home). Aplica a start/stop/status/logs, así una instancia aislada se puede direccionar sin entrar a su carpeta.',
|
|
449
|
+
'help.opt.dynamoProxy': 'Habilita el proxy de DynamoDB en el puerto 8000 (para el comando start)',
|
|
450
|
+
'help.opt.yes': 'Salta la confirmación interactiva de seed:clear (úsalo solo en CI)',
|
|
451
|
+
'help.env.dashboardPort': 'Puerto del orquestador (sobrescribe serverPort)',
|
|
452
|
+
'help.env.enginePort': 'Puerto del self engine (sobrescribe selfEngine.port)',
|
|
453
|
+
'help.env.engineDataDir': 'Directorio de estado del self engine (sobrescribe selfEngine.dataDir)',
|
|
454
|
+
'help.env.awsRegion': 'Región por defecto para el aprovisionamiento y los exploradores',
|
|
455
|
+
'help.env.lang': 'Idioma de la CLI: en, pt-BR o es (cae a LC_ALL/LC_MESSAGES/LANG)',
|
|
456
|
+
'help.config.intro': 'Crea un lss.config.json o .lssrc en la raíz del proyecto para personalizar:',
|
|
457
|
+
'help.config.example': 'Ejemplo de lss.config.json:',
|
|
458
|
+
'help.config.stateDir': 'stateDir (opcional): directorio para los archivos PID/log de esta instancia. Úsalo junto con --config (p. ej. ".lss-e2e") para correr una instancia totalmente aislada al lado de la de desarrollo. Si se omite, PID/log viven en el directorio temporal del SO separados por serverPort.',
|
|
459
|
+
'help.ex.start': 'Inicia el orquestador + self engine (sin Docker)',
|
|
460
|
+
'help.ex.startProxy': 'Inicia con el proxy de DynamoDB habilitado',
|
|
461
|
+
'help.ex.mcp': 'Sirve las tools MCP a un agente de IA por stdio',
|
|
462
|
+
'help.ex.stop': 'Detiene el orquestador',
|
|
463
|
+
'help.ex.status': 'Muestra el estado',
|
|
464
|
+
'help.ex.logs': 'Muestra los registros',
|
|
465
|
+
'help.ex.scan': 'Lista los servicios encontrados bajo la raíz del proyecto',
|
|
466
|
+
'help.ex.register': 'Registra el servicio del directorio actual',
|
|
467
|
+
'help.ex.seed': 'Siembra cada tabla que tenga un archivo <table>.json',
|
|
468
|
+
'help.ex.seedTable': 'Siembra solo la tabla "users"',
|
|
469
|
+
'help.ex.seedClear': 'Elimina todos los ítems de "users" (con confirmación)',
|
|
470
|
+
'help.ex.seedClearYes': 'Lo mismo, sin prompt (CI)',
|
|
471
|
+
},
|
|
472
|
+
};
|
|
473
|
+
|
|
474
|
+
let locale = detectLocale();
|
|
475
|
+
|
|
476
|
+
function setLocale(next) {
|
|
477
|
+
locale = LOCALES.includes(next) ? next : DEFAULT_LOCALE;
|
|
478
|
+
return locale;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
function getLocale() {
|
|
482
|
+
return locale;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Translate `key`, interpolating `{placeholder}` params. A missing key falls
|
|
487
|
+
* back to English and then to the key itself — an untranslated line must still
|
|
488
|
+
* tell the operator something, and a visible `scan.header` is a better bug
|
|
489
|
+
* report than a blank line.
|
|
490
|
+
*/
|
|
491
|
+
function t(key, params) {
|
|
492
|
+
const template = MESSAGES[locale][key] ?? MESSAGES[DEFAULT_LOCALE][key] ?? key;
|
|
493
|
+
if (!params) return template;
|
|
494
|
+
return template.replace(/\{(\w+)\}/g, (match, name) =>
|
|
495
|
+
(name in params ? String(params[name]) : match));
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
module.exports = { LOCALES, DEFAULT_LOCALE, matchLocale, detectLocale, setLocale, getLocale, t, MESSAGES };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-discovery.d.ts","sourceRoot":"","sources":["../../src/client/config-discovery.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"config-discovery.d.ts","sourceRoot":"","sources":["../../src/client/config-discovery.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AA8CD,wBAAgB,aAAa,CAAC,OAAO,GAAE,gBAAqB,GAAG,cAAc,CAO5E"}
|
|
@@ -10,7 +10,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.resolveConfig = resolveConfig;
|
|
11
11
|
const fs_1 = __importDefault(require("fs"));
|
|
12
12
|
const path_1 = __importDefault(require("path"));
|
|
13
|
-
|
|
13
|
+
// One port for everything — see docs/CONFIGURATION.md.
|
|
14
|
+
const DEFAULT_PORT = 14566;
|
|
14
15
|
const DEFAULT_TIMEOUT_MS = 15000;
|
|
15
16
|
function stripTrailingSlash(url) {
|
|
16
17
|
return url.endsWith('/') ? url.slice(0, -1) : url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-discovery.js","sourceRoot":"","sources":["../../src/client/config-discovery.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;;;;;
|
|
1
|
+
{"version":3,"file":"config-discovery.js","sourceRoot":"","sources":["../../src/client/config-discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/client/http.d.ts
CHANGED
|
@@ -16,6 +16,13 @@ export interface RequestOptions {
|
|
|
16
16
|
query?: Record<string, QueryValue>;
|
|
17
17
|
/** Status codes treated as success in addition to 2xx (e.g. await-idle's 408). */
|
|
18
18
|
okStatuses?: number[];
|
|
19
|
+
/**
|
|
20
|
+
* Per-request client timeout, overriding the client default. Required by any
|
|
21
|
+
* endpoint that BLOCKS server-side for a caller-chosen duration: with the
|
|
22
|
+
* shared 15 s default, await-idle's own 15 s default made the client abort at
|
|
23
|
+
* exactly the moment the server would have answered 408.
|
|
24
|
+
*/
|
|
25
|
+
timeoutMs?: number;
|
|
19
26
|
}
|
|
20
27
|
export interface RequestContext {
|
|
21
28
|
baseUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/client/http.ts"],"names":[],"mappings":"AAKA,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQvG;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/client/http.ts"],"names":[],"mappings":"AAKA,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQvG;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAkFD,qBAAa,IAAI;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,cAAc;IAEhD,uEAAuE;IACjE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IASlF,oEAAoE;IAC9D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ/E"}
|
package/dist/client/http.js
CHANGED
|
@@ -65,7 +65,8 @@ function httpError(status, statusText, data, path) {
|
|
|
65
65
|
async function doFetch(ctx, method, path, opts) {
|
|
66
66
|
const url = ctx.baseUrl + path + buildQuery(opts.query);
|
|
67
67
|
const controller = new AbortController();
|
|
68
|
-
const
|
|
68
|
+
const timeoutMs = opts.timeoutMs ?? ctx.timeoutMs;
|
|
69
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
69
70
|
const hasBody = opts.body !== undefined;
|
|
70
71
|
try {
|
|
71
72
|
return await fetch(url, {
|
|
@@ -80,7 +81,7 @@ async function doFetch(ctx, method, path, opts) {
|
|
|
80
81
|
// an Error subclass across Node versions), so match on the name directly.
|
|
81
82
|
const name = err.name;
|
|
82
83
|
if (name === 'AbortError') {
|
|
83
|
-
throw new LssHttpError(`request to ${path} timed out after ${
|
|
84
|
+
throw new LssHttpError(`request to ${path} timed out after ${timeoutMs}ms`, {
|
|
84
85
|
status: 0,
|
|
85
86
|
statusText: 'timeout',
|
|
86
87
|
path,
|
package/dist/client/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/client/http.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAC/E,qDAAqD;;;AAErD,MAAa,YAAa,SAAQ,KAAK;IAC5B,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,IAAI,CAAU;IACd,IAAI,CAAS;IAEtB,YAAY,OAAe,EAAE,IAAyE;QACpG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;CACF;AAdD,oCAcC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/client/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,6 @@ export interface StartOptions {
|
|
|
3
3
|
/** Overrides the client's configPath for this invocation (threaded as --config). */
|
|
4
4
|
configPath?: string;
|
|
5
5
|
enableDynamoProxy?: boolean;
|
|
6
|
-
external?: boolean;
|
|
7
|
-
pro?: boolean;
|
|
8
|
-
localstackToken?: string;
|
|
9
6
|
}
|
|
10
7
|
export interface StartResult {
|
|
11
8
|
alreadyRunning: boolean;
|
|
@@ -31,7 +28,7 @@ export interface LifecycleApi {
|
|
|
31
28
|
stop(): Promise<StopResult>;
|
|
32
29
|
status(): Promise<StatusResult>;
|
|
33
30
|
logs(): Promise<LogsResult>;
|
|
34
|
-
/** Poll GET /api/health until
|
|
31
|
+
/** Poll GET /api/health until the engine reports ready, or reject after timeoutMs. */
|
|
35
32
|
waitUntilReady(opts?: WaitUntilReadyOptions): Promise<void>;
|
|
36
33
|
}
|
|
37
34
|
export interface LifecycleDeps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/client/lifecycle.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/client/lifecycle.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AACD,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,sFAAsF;IACtF,cAAc,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAqBD,qBAAa,SAAU,YAAW,YAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD,OAAO,CAAC,UAAU;IAKZ,KAAK,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IASpD,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAM3B,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAM/B,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAK3B,cAAc,CAAC,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBtE"}
|