local-serverless-stack 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +18 -13
  2. package/bin/cli.js +137 -13
  3. package/bin/i18n.js +27 -0
  4. package/dist/server/engine/http/errors.js +1 -1
  5. package/dist/server/engine/http/errors.js.map +1 -1
  6. package/dist/server/routes/config.d.ts.map +1 -1
  7. package/dist/server/routes/config.js +6 -0
  8. package/dist/server/routes/config.js.map +1 -1
  9. package/dist/server/routes/lambdas.d.ts.map +1 -1
  10. package/dist/server/routes/lambdas.js +12 -0
  11. package/dist/server/routes/lambdas.js.map +1 -1
  12. package/dist/server/routes/services.d.ts.map +1 -1
  13. package/dist/server/routes/services.js +17 -4
  14. package/dist/server/routes/services.js.map +1 -1
  15. package/dist/server/runtime/runtime-worker.js +7 -0
  16. package/dist/server/runtime/runtime-worker.js.map +1 -1
  17. package/dist/server/services/cache-manager.d.ts +5 -0
  18. package/dist/server/services/cache-manager.d.ts.map +1 -1
  19. package/dist/server/services/cache-manager.js.map +1 -1
  20. package/dist/server/services/cloudformation-parser.js +3 -3
  21. package/dist/server/services/cloudformation-parser.js.map +1 -1
  22. package/dist/server/services/config-manager.d.ts +25 -0
  23. package/dist/server/services/config-manager.d.ts.map +1 -1
  24. package/dist/server/services/config-manager.js +146 -17
  25. package/dist/server/services/config-manager.js.map +1 -1
  26. package/dist/server/services/lambda-runtime-manager.d.ts +1 -0
  27. package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
  28. package/dist/server/services/lambda-runtime-manager.js +13 -1
  29. package/dist/server/services/lambda-runtime-manager.js.map +1 -1
  30. package/dist/server/services/resource-provisioner.d.ts +19 -1
  31. package/dist/server/services/resource-provisioner.d.ts.map +1 -1
  32. package/dist/server/services/resource-provisioner.js +129 -12
  33. package/dist/server/services/resource-provisioner.js.map +1 -1
  34. package/dist/server/services/s3-explorer.js +1 -1
  35. package/dist/server/services/seed-manager.d.ts.map +1 -1
  36. package/dist/server/services/seed-manager.js +11 -6
  37. package/dist/server/services/seed-manager.js.map +1 -1
  38. package/dist/server/services/service-registrar.d.ts +13 -1
  39. package/dist/server/services/service-registrar.d.ts.map +1 -1
  40. package/dist/server/services/service-registrar.js +63 -13
  41. package/dist/server/services/service-registrar.js.map +1 -1
  42. package/dist/server/services/service-scanner.d.ts +7 -2
  43. package/dist/server/services/service-scanner.d.ts.map +1 -1
  44. package/dist/server/services/service-scanner.js +53 -7
  45. package/dist/server/services/service-scanner.js.map +1 -1
  46. package/dist/ui/assets/ApisPage-CTOcNna-.js +1 -0
  47. package/dist/ui/assets/BucketDetailPage-BXW8-FrE.js +1 -0
  48. package/dist/ui/assets/BucketsPage-DY_ITepb.js +1 -0
  49. package/dist/ui/assets/DynamoPage-BnFFKnIU.js +1 -0
  50. package/dist/ui/assets/DynamoTablePage-BLCuyJHU.js +3 -0
  51. package/dist/ui/assets/LambdaDetailPage-D4rZNLRT.js +4 -0
  52. package/dist/ui/assets/LambdasPage-Bg-MWFBb.js +1 -0
  53. package/dist/ui/assets/OnboardingPage-nnl313Fm.js +1 -0
  54. package/dist/ui/assets/OpenSearchCollectionPage-Dn15lH_F.js +1 -0
  55. package/dist/ui/assets/OpenSearchPage-CgD5isok.js +1 -0
  56. package/dist/ui/assets/{OverviewPage-C1pBJ8aP.css → OverviewPage-CSWY71vZ.css} +1 -1
  57. package/dist/ui/assets/OverviewPage-m5sUr8IN.js +1 -0
  58. package/dist/ui/assets/QueueDetailPage-Ch_FDDoN.js +1 -0
  59. package/dist/ui/assets/QueuesPage-C_yDuGDu.js +1 -0
  60. package/dist/ui/assets/SecretsPage-BSGMSoqy.js +1 -0
  61. package/dist/ui/assets/ServiceDetailPage-6KyohyjI.js +2 -0
  62. package/dist/ui/assets/{ServicesPage-2JuiIiRr.js → ServicesPage-BbSetOMo.js} +2 -2
  63. package/dist/ui/assets/SettingsPage-BgF1jFr6.js +1 -0
  64. package/dist/ui/assets/index-D627ZyYU.css +1 -0
  65. package/dist/ui/assets/index-DuSPnI19.js +37 -0
  66. package/dist/ui/index.html +2 -2
  67. package/package.json +1 -1
  68. package/dist/ui/assets/ApisPage-BOuimwWz.js +0 -1
  69. package/dist/ui/assets/BucketDetailPage-vLYwhoQt.js +0 -1
  70. package/dist/ui/assets/BucketsPage-Cu5lU1Hp.js +0 -1
  71. package/dist/ui/assets/DynamoPage-y3TTEPUL.js +0 -1
  72. package/dist/ui/assets/DynamoTablePage-BnmSRZjc.js +0 -3
  73. package/dist/ui/assets/LambdaDetailPage-B5q_d27t.js +0 -4
  74. package/dist/ui/assets/LambdasPage-CJpRoEDx.js +0 -1
  75. package/dist/ui/assets/OnboardingPage-D02dymQi.js +0 -1
  76. package/dist/ui/assets/OpenSearchCollectionPage-B_wWTlfL.js +0 -1
  77. package/dist/ui/assets/OpenSearchPage-BLEgfF_g.js +0 -1
  78. package/dist/ui/assets/OverviewPage-EdJWiAt6.js +0 -1
  79. package/dist/ui/assets/QueueDetailPage-ByEYHvHe.js +0 -1
  80. package/dist/ui/assets/QueuesPage-CvwYHSll.js +0 -1
  81. package/dist/ui/assets/SecretsPage-DASw8Ntf.js +0 -1
  82. package/dist/ui/assets/ServiceDetailPage-BMsUDg6L.js +0 -2
  83. package/dist/ui/assets/SettingsPage-DStO4bgN.js +0 -1
  84. package/dist/ui/assets/index-BIEznsi4.js +0 -37
  85. package/dist/ui/assets/index-BRMvNP3Y.css +0 -1
@@ -23,6 +23,20 @@ export function isInsideProject(serviceRoot, projectRoot) {
23
23
  const rel = path.relative(path.resolve(projectRoot), path.resolve(serviceRoot));
24
24
  return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
25
25
  }
26
+ /**
27
+ * The one place the port precedence lives: `serviceRuntime` from
28
+ * lss.config.json wins, then the hints recorded at registration (the explicit
29
+ * request payload, then `custom.lss` from the packaged state), then the
30
+ * apiPort → invokePort offset rule. Used by register() AND by activate(), so a
31
+ * rehydrated service resolves its ports the same way a fresh registration does.
32
+ */
33
+ export function resolvePorts(configManager, runtimeConfig, hints) {
34
+ const apiPort = runtimeConfig.apiPort ?? hints.apiPort;
35
+ const invokePort = runtimeConfig.invokePort
36
+ ?? hints.invokePort
37
+ ?? (apiPort ? apiPort + configManager.getInvokePortOffset() : undefined);
38
+ return { apiPort, invokePort };
39
+ }
26
40
  export class ServiceRegistrar {
27
41
  static instance;
28
42
  cache = new CacheManager();
@@ -131,13 +145,27 @@ export class ServiceRegistrar {
131
145
  // Port resolution: lss.config.json serviceRuntime > request payload >
132
146
  // custom.lss hints from the packaged state > invokePortOffset rule
133
147
  // (apiPort 30xx → invokePort 130xx).
148
+ //
149
+ // The two lower layers are kept as `portHints` on the metadata so the
150
+ // config layer can be re-applied on every activation. Without them the
151
+ // effective number was the only thing on record, and a `serviceRuntime`
152
+ // entry deleted from lss.config.json went on being served from the cache
153
+ // for ever — a config you erased that still has effect.
154
+ const portHints = {
155
+ apiPort: input.apiPort ?? parsed?.apiPort,
156
+ invokePort: input.invokePort ?? parsed?.invokePort,
157
+ };
134
158
  const runtimeConfig = configManager.getRuntimeConfigForService(resolvedPath);
135
- const apiPort = runtimeConfig.apiPort ?? input.apiPort ?? parsed?.apiPort;
136
- const invokePort = runtimeConfig.invokePort
137
- ?? input.invokePort
138
- ?? parsed?.invokePort
139
- ?? (apiPort ? apiPort + configManager.getInvokePortOffset() : undefined);
159
+ const { apiPort, invokePort } = resolvePorts(configManager, runtimeConfig, portHints);
140
160
  console.log(` Ports: api ${apiPort ?? '—'} · invoke ${invokePort ?? '—'} · region ${effectiveRegion}`);
161
+ // A service with declared HTTP routes and no apiPort registers cleanly and
162
+ // then serves nothing — reachable only through the Invoke API. That is the
163
+ // right answer for a resources-only stack and almost never the intent for
164
+ // one with routes, and the difference is knowable right here.
165
+ if ((routes?.length ?? 0) > 0 && !apiPort) {
166
+ warnings.push(`${routes?.length} HTTP route(s) declared but no apiPort resolved — this service will NOT answer HTTP. ` +
167
+ `Declare serviceRuntime["${path.basename(resolvedPath)}"].apiPort in lss.config.json (or custom.lss.apiPort in serverless.yml).`);
168
+ }
141
169
  // 0.5.x keyed the cache by directory basename. When the real service name
142
170
  // differs, migrate: drop the legacy entry for this same root (data plane +
143
171
  // cache) so re-registration doesn't leave a ghost service behind.
@@ -156,6 +184,7 @@ export class ServiceRegistrar {
156
184
  status: 'registered',
157
185
  invokePort,
158
186
  apiPort,
187
+ portHints,
159
188
  region: effectiveRegion,
160
189
  stage,
161
190
  functions,
@@ -163,11 +192,13 @@ export class ServiceRegistrar {
163
192
  authorizers,
164
193
  };
165
194
  await cache.saveTemplate(serviceName, template, metadata);
166
- // Provision infra resources to LocalStack (unchanged behavior).
167
- await ResourceProvisioner.getInstance().provisionResources(serviceName, resources, {
195
+ // Provisioning is non-fatal by policy — but what it could not do travels
196
+ // back with the result now, instead of living only in the daemon log.
197
+ const provisioned = await ResourceProvisioner.getInstance().provisionResources(serviceName, resources, {
168
198
  invokePort,
169
199
  region: effectiveRegion,
170
200
  });
201
+ warnings.push(...provisioned.warnings);
171
202
  await this.activate({ name: serviceName, ...metadata });
172
203
  for (const warning of warnings) {
173
204
  console.warn(`⚠️ [${serviceName}] ${warning}`);
@@ -188,8 +219,23 @@ export class ServiceRegistrar {
188
219
  const runtime = LambdaRuntimeManager.getInstance();
189
220
  const gateway = GatewayManager.getInstance();
190
221
  const watcher = SourceWatcher.getInstance();
191
- const entry = registry.registerService(metadata);
192
222
  const runtimeConfig = configManager.getRuntimeConfigForService(metadata.root);
223
+ // Re-apply the config layer over the recorded hints on EVERY activation, so
224
+ // boot rehydration reflects the lss.config.json that exists now — an edited
225
+ // `serviceRuntime` entry takes effect, and a deleted one falls back to the
226
+ // service's own hint instead of the cached number outliving the config that
227
+ // produced it. Entries cached before hints were recorded keep their stored
228
+ // ports as the hint, so an upgrade changes nothing for them.
229
+ const hints = metadata.portHints ?? { apiPort: metadata.apiPort, invokePort: metadata.invokePort };
230
+ const resolved = resolvePorts(configManager, runtimeConfig, hints);
231
+ if (resolved.apiPort !== metadata.apiPort || resolved.invokePort !== metadata.invokePort) {
232
+ console.log(`♻️ Ports for "${metadata.name}" re-resolved from lss.config.json: ` +
233
+ `api ${metadata.apiPort ?? '—'} → ${resolved.apiPort ?? '—'} · invoke ${metadata.invokePort ?? '—'} → ${resolved.invokePort ?? '—'}`);
234
+ metadata = { ...metadata, ...resolved };
235
+ const cache = await this.ensureCache();
236
+ await cache.updateMetadata(metadata.name, resolved);
237
+ }
238
+ const entry = registry.registerService(metadata);
193
239
  await runtime.syncService(entry);
194
240
  await gateway.syncService(entry, runtimeConfig.enabled);
195
241
  // Watch default depends on how handlers are loaded: source mode reloads are
@@ -242,15 +288,19 @@ export class ServiceRegistrar {
242
288
  await runServerlessPackage({
243
289
  command: pkgConfig.command,
244
290
  args: pkgConfig.args,
245
- cwd: metadata.root,
291
+ cwd: pkgConfig.cwd,
246
292
  timeoutMs: pkgConfig.timeoutMs,
247
293
  env: pkgConfig.env,
248
294
  });
249
295
  }
296
+ // The HINTS go back in, never the effective ports: re-injecting a resolved
297
+ // number as an explicit request override would promote whatever the config
298
+ // said at first registration into a value that outlives it — the same trap
299
+ // the cached metadata used to spring on boot.
250
300
  await this.register({
251
301
  servicePath: metadata.root,
252
- invokePort: metadata.invokePort,
253
- apiPort: metadata.apiPort,
302
+ invokePort: metadata.portHints?.invokePort ?? (metadata.portHints ? undefined : metadata.invokePort),
303
+ apiPort: metadata.portHints?.apiPort ?? (metadata.portHints ? undefined : metadata.apiPort),
254
304
  region: metadata.region,
255
305
  });
256
306
  }
@@ -276,12 +326,12 @@ export class ServiceRegistrar {
276
326
  }
277
327
  const pkgConfig = configManager.getPackageConfigForService(resolvedPath);
278
328
  const displayCmd = [pkgConfig.command, ...pkgConfig.args].join(' ');
279
- console.log(`📦 Template missing — running '${displayCmd}' in ${resolvedPath} (service: ${serviceName})`);
329
+ console.log(`📦 Template missing — running '${displayCmd}' in ${pkgConfig.cwd} (service: ${serviceName})`);
280
330
  try {
281
331
  const result = await runServerlessPackage({
282
332
  command: pkgConfig.command,
283
333
  args: pkgConfig.args,
284
- cwd: resolvedPath,
334
+ cwd: pkgConfig.cwd,
285
335
  timeoutMs: pkgConfig.timeoutMs,
286
336
  env: pkgConfig.env,
287
337
  });
@@ -1 +1 @@
1
- {"version":3,"file":"service-registrar.js","sourceRoot":"","sources":["../../../src/server/services/service-registrar.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,iFAAiF;AACjF,gFAAgF;AAChF,2EAA2E;AAC3E,4EAA4E;AAE5E,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAA4B,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EACL,qBAAqB,EAErB,yBAAyB,GAE1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAiBxF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAEhD,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,WAAmB;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAChF,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAC,QAAQ,CAAmB;IAClC,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IAC3B,UAAU,GAAG,KAAK,CAAC;IAC3B,2EAA2E;IAC3E,+EAA+E;IAC/E,kEAAkE;IAC1D,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAoB;QACjC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAiD,CAAC;QAChH,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEvD,0EAA0E;QAC1E,yEAAyE;QACzE,2DAA2D;QAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,SAAS,GAAyB,EAAE,CAAC;QACzC,IAAI,MAAM,GAA8B,EAAE,CAAC;QAC3C,IAAI,WAAW,GAAmC,EAAE,CAAC;QACrD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,+BAA+B;QAC/B,IAAI,WAAW,GAAG,OAAO,CAAC;QAE1B,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAErF,0EAA0E;QAC1E,uEAAuE;QACvE,8DAA8D;QAC9D,sDAAsD;QACtD,iEAAiE;QACjE,IAAI,MAAM,GAAiC,IAAI,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM;eAC/B,MAAM,EAAE,MAAM;eACd,aAAa,CAAC,SAAS,EAAE,CAAC,MAAM;eAChC,WAAW,CAAC;QAEjB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,WAAW;gBAAE,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACjC,sEAAsE;YACtE,kEAAkE;YAClE,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACpC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACzD,OAAO,GAAG;oBACR,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,yBAAyB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE;oBAC9F,CAAC,CAAC,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,gHAAgH,CAAC,CAAC;YAChI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,IAAI;gBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,yBAAyB,CAAC,CAAC,CAAC,WAAW,CAAC;gBACrD,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC,CAAC;QACN,CAAC;QAED,+EAA+E;QAC/E,6EAA6E;QAC7E,0EAA0E;QAC1E,8EAA8E;QAC9E,mDAAmD;QACnD,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,EAAE;YACnD,SAAS;YACT,MAAM,EAAE,eAAe;YACvB,cAAc,EAAE,SAAS;YACzB,WAAW,EAAE,MAAM,IAAI,EAAE;YACzB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAClD,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACnE,CAAC;QACD,6EAA6E;QAC7E,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,OAA8C,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpI,sEAAsE;QACtE,mEAAmE;QACnE,qCAAqC;QACrC,MAAM,aAAa,GAAG,aAAa,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO,CAAC;QAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU;eACtC,KAAK,CAAC,UAAU;eAChB,MAAM,EAAE,UAAU;eAClB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,IAAI,GAAG,aAAa,UAAU,IAAI,GAAG,aAAa,eAAe,EAAE,CAAC,CAAC;QAEzG,0EAA0E;QAC1E,2EAA2E;QAC3E,kEAAkE;QAClE,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC/B,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,QAAQ,WAAW,GAAG,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAkC;YAC9C,IAAI,EAAE,YAAY;YAClB,YAAY;YACZ,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,MAAM,EAAE,YAAY;YACpB,UAAU;YACV,OAAO;YACP,MAAM,EAAE,eAAe;YACvB,KAAK;YACL,SAAS;YACT,MAAM;YACN,WAAW;SACZ,CAAC;QACF,MAAM,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE1D,gEAAgE;QAChE,MAAM,mBAAmB,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE;YACjF,UAAU;YACV,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QAExD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,WAAW;YACX,SAAS;YACT,cAAc,EAAE,SAAS,CAAC,MAAM;YAChC,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;YAChC,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,yEAAyE;IACzE,KAAK,CAAC,QAAQ,CAAC,QAAyB;QACtC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,aAAa,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9E,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAExD,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;QACxE,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO;eACrC,CAAC,aAAa,CAAC,KAAK,IAAI,YAAY,KAAK,QAAQ,CAAC;eAClD,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,kEAAkE;YAClE,sEAAsE;YACtE,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,IAAI,4CAA4C,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;YACtI,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC9B,WAAW,EAAE,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,QAAQ,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,WAAW,oBAAoB,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,wDAAwD;IACxD,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,WAAW,qBAAqB,CAAC,CAAC;QAE5E,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxF,MAAM,oBAAoB,CAAC;gBACzB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,GAAG,EAAE,QAAQ,CAAC,IAAI;gBAClB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,oBAAoB,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAClE,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC9D,gBAAgB,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,YAAoB,EAAE,WAAmB;QAClE,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,2CAA2C,CAAC,CAAC;QACzG,IAAI,eAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAI,GAA6B,EAAE,IAAI,KAAK,QAAQ,CAAC;YACnE,IAAI,CAAC,QAAQ;gBAAE,MAAM,GAAG,CAAC;YAEzB,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,wCAAwC,YAAY,gGAAgG,CACrJ,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,aAAa,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,QAAQ,YAAY,cAAc,WAAW,GAAG,CAAC,CAAC;YAC1G,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;oBACxC,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,GAAG,EAAE,YAAY;oBACjB,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;iBACnB,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,+BAA+B,YAAY,WAAW,CAAC,CAAC;gBACpE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,OAAO,UAAU,gBAAgB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,IAAI,UAAU,YAAY,sBAAsB,EAAE,CAAC;oBACjD,OAAO,CAAC,KAAK,CAAC,6BAA6B,YAAY,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClF,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;wBACpC,OAAO,CAAC,KAAK,CAAC,OAAO,UAAU,gBAAgB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;oBACpG,CAAC;oBACD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;wBACpC,OAAO,CAAC,KAAK,CAAC,OAAO,UAAU,gBAAgB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;oBACpG,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,YAAY,GAAG,EAAE,UAAU,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,MAAM,GAAG,UAAU,YAAY,sBAAsB;oBACzD,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;oBACzF,CAAC,CAAC,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACvE,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,2BAA2B,YAAY,KAAK,MAAM,8EAA8E,CACjI,CAAC;YACJ,CAAC;YACD,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,YAAoB;QAC1C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,uBAAuB,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACvB;IAAnB,YAAmB,UAAkB,EAAE,OAAe;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,eAAU,GAAV,UAAU,CAAQ;QAEnC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"service-registrar.js","sourceRoot":"","sources":["../../../src/server/services/service-registrar.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,17 @@ export interface ScannedService {
9
9
  region?: string;
10
10
  apiPort?: number;
11
11
  invokePort?: number;
12
+ hasFunctions?: boolean;
12
13
  warnings: ScanWarning[];
13
14
  }
14
15
  export interface ScanWarning {
15
- code: 'not-installed' | 'not-packaged' | 'ts-config' | 'unreadable-config' | 'invalid-json';
16
+ code: 'not-installed' | 'not-packaged' | 'not-packaged-manual' | 'ts-config' | 'unreadable-config' | 'invalid-json';
16
17
  message: string;
17
18
  params?: Record<string, string>;
18
19
  }
19
- export declare function scanForServices(rootDir: string, registeredRoots: Iterable<string>): ScannedService[];
20
+ export interface ScanOptions {
21
+ isIgnored?: (serviceRoot: string) => boolean;
22
+ autoPackage?: boolean;
23
+ }
24
+ export declare function scanForServices(rootDir: string, registeredRoots: Iterable<string>, options?: ScanOptions): ScannedService[];
20
25
  //# sourceMappingURL=service-scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-scanner.d.ts","sourceRoot":"","sources":["../../../src/server/services/service-scanner.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,cAAc;IAE7B,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,OAAO,CAAC;IAEnB,QAAQ,EAAE,OAAO,CAAC;IAElB,UAAU,EAAE,OAAO,CAAC;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAQpB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,GAAG,cAAc,GAAG,WAAW,GAAG,mBAAmB,GAAG,cAAc,CAAC;IAC5F,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAiBD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,cAAc,EAAE,CA6DpG"}
1
+ {"version":3,"file":"service-scanner.d.ts","sourceRoot":"","sources":["../../../src/server/services/service-scanner.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,cAAc;IAE7B,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,OAAO,CAAC;IAEnB,QAAQ,EAAE,OAAO,CAAC;IAElB,UAAU,EAAE,OAAO,CAAC;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAOpB,YAAY,CAAC,EAAE,OAAO,CAAC;IAQvB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAM1B,IAAI,EAAE,eAAe,GAAG,cAAc,GAAG,qBAAqB,GAAG,WAAW,GACxE,mBAAmB,GAAG,cAAc,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAE1B,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAE7C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAiBD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,OAAO,GAAE,WAAgB,GACxB,cAAc,EAAE,CAsElB"}
@@ -22,7 +22,7 @@ const IGNORED_DIRS = new Set([
22
22
  // Beyond this depth a hit is more likely a fixture than a service; the scan
23
23
  // stays fast on monorepos either way.
24
24
  const MAX_DEPTH = 6;
25
- export function scanForServices(rootDir, registeredRoots) {
25
+ export function scanForServices(rootDir, registeredRoots, options = {}) {
26
26
  const registered = new Set([...registeredRoots].map(root => path.resolve(root)));
27
27
  const found = [];
28
28
  walk(path.resolve(rootDir), 0);
@@ -38,7 +38,11 @@ export function scanForServices(rootDir, registeredRoots) {
38
38
  }
39
39
  const configFile = CONFIG_FILES.find(name => entries.some(e => e.isFile() && e.name === name));
40
40
  if (configFile) {
41
- found.push(inspect(dir, configFile));
41
+ // An ignored stack is still a leaf: it is a service, just not one this
42
+ // project registers locally, so descending into it would only surface
43
+ // its fixtures.
44
+ if (!options.isIgnored?.(dir))
45
+ found.push(inspect(dir, configFile));
42
46
  // A service root is a leaf: nested serverless configs under one service
43
47
  // are fixtures/templates, not independently registrable services.
44
48
  return;
@@ -63,10 +67,15 @@ export function scanForServices(rootDir, registeredRoots) {
63
67
  });
64
68
  }
65
69
  if (!packaged) {
66
- warnings.push({
67
- code: 'not-packaged',
68
- message: 'not packaged yet — registration will package it (autoPackage) or run `serverless package` first',
69
- });
70
+ warnings.push(options.autoPackage
71
+ ? {
72
+ code: 'not-packaged',
73
+ message: 'not packaged yet — registration will package it (autoPackage)',
74
+ }
75
+ : {
76
+ code: 'not-packaged-manual',
77
+ message: 'not packaged yet — autoPackage is off, so run `serverless package` before registering',
78
+ });
70
79
  }
71
80
  return {
72
81
  name: hints.name ?? path.basename(dir),
@@ -79,6 +88,7 @@ export function scanForServices(rootDir, registeredRoots) {
79
88
  region: hints.region,
80
89
  apiPort: hints.apiPort,
81
90
  invokePort: hints.invokePort,
91
+ hasFunctions: hints.hasFunctions,
82
92
  warnings,
83
93
  };
84
94
  }
@@ -139,6 +149,8 @@ function readHints(configPath, warnings) {
139
149
  region: typeof parsed.provider?.region === 'string' ? parsed.provider.region : undefined,
140
150
  apiPort: asPort(parsed.custom?.lss?.apiPort),
141
151
  invokePort: asPort(parsed.custom?.lss?.invokePort),
152
+ // JSON leaves nothing to guess: the key is there with entries, or it is not.
153
+ hasFunctions: Object.keys((parsed.functions ?? {})).length > 0,
142
154
  };
143
155
  }
144
156
  catch {
@@ -146,7 +158,7 @@ function readHints(configPath, warnings) {
146
158
  return {};
147
159
  }
148
160
  }
149
- const hints = {};
161
+ const hints = { hasFunctions: scrapeHasFunctions(raw) };
150
162
  for (const line of raw.split('\n')) {
151
163
  let match = /^service:\s*['"]?([\w-]+)['"]?\s*$/.exec(line);
152
164
  if (match && !hints.name)
@@ -165,6 +177,40 @@ function readHints(configPath, warnings) {
165
177
  }
166
178
  return hints;
167
179
  }
180
+ /**
181
+ * Does this serverless.yml declare any function?
182
+ *
183
+ * no `functions:` key at all → false (a resources-only stack)
184
+ * `functions:` + an indented key → true
185
+ * `functions: ${file(./fns.yml)}` → undefined — the value is resolved at
186
+ * packaging time, and claiming "no
187
+ * functions" for a service that has 23 is
188
+ * the failure this hint must never cause.
189
+ *
190
+ * Line-oriented like the rest of readHints: this informs a form field, and the
191
+ * packaged state is what registration actually reads.
192
+ */
193
+ function scrapeHasFunctions(raw) {
194
+ const lines = raw.split('\n');
195
+ const index = lines.findIndex(line => /^functions:/.test(line));
196
+ if (index === -1)
197
+ return false;
198
+ const inline = lines[index].slice('functions:'.length).trim();
199
+ // Anything on the same line is a reference or an inline map — neither is a
200
+ // count this scrape can trust. `functions: {}` is the one honest exception.
201
+ if (inline)
202
+ return inline === '{}' ? false : undefined;
203
+ for (const line of lines.slice(index + 1)) {
204
+ if (!line.trim() || /^\s*#/.test(line))
205
+ continue;
206
+ // Dedented back to column 0: the block ended without an entry.
207
+ if (!/^\s/.test(line))
208
+ return false;
209
+ if (/^\s+[^\s#-][^:]*:/.test(line))
210
+ return true;
211
+ }
212
+ return false;
213
+ }
168
214
  function asPort(value) {
169
215
  return typeof value === 'number' && Number.isInteger(value) && value >= 1 && value <= 65535
170
216
  ? value
@@ -1 +1 @@
1
- {"version":3,"file":"service-scanner.js","sourceRoot":"","sources":["../../../src/server/services/service-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-scanner.js","sourceRoot":"","sources":["../../../src/server/services/service-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{k as D,m as Y,o as q,n as c,e as d,a7 as e,v as y,ac as a,j as n,y as G,z as C,x as T,L as H,i as r,a6 as u,f as v,w as K,P as I,g as P,F as A,s as W,t as Z,Q as R,J as V,A as g,u as m,R as L,D as b,I as ee,a8 as ae,p as z,b as S,a as j,c as te}from"./index-DuSPnI19.js";const le=D({__name:"ApisView",setup(B){const{t}=ae(),k=te(),p=z([]),h=z(!0),_=z(null),f=z({});let w=null;const F=S(()=>[{key:"method",label:t("apis.colMethod")},{key:"path",label:t("apis.colPath")},{key:"functionName",label:t("apis.colFunction")},{key:"eventType",label:t("common.type")},{key:"authorizerName",label:t("apis.colAuth")},{key:"actions",label:"",align:"right"}]),M=S(()=>[{key:"name",label:t("common.name")},{key:"type",label:t("common.type")},{key:"payloadVersion",label:t("apis.colPayload")},{key:"resultTtlInSeconds",label:"TTL",align:"right"},{key:"identitySource",label:t("apis.colIdentitySource")},{key:"target",label:t("apis.colTarget")}]),$=S(()=>({services:p.value.length,routes:p.value.reduce((i,o)=>i+o.routes.length,0),online:p.value.filter(i=>i.status==="online").length}));function U(i){return i.routes.map(o=>({...o}))}function E(i){return i.authorizers.map(o=>({...o,identitySource:o.identitySource.join(", "),target:o.functionName||o.arn||""}))}async function N(){try{p.value=await j.listApis(),_.value=null}catch(i){_.value=i.message||t("apis.loadError")}finally{h.value=!1}}async function O(i){if(!f.value[i]){f.value={...f.value,[i]:!0};try{const o=await j.clearAuthorizerCache({service:i});k.add({title:t("apis.cacheCleared"),description:o.removed===1?t("apis.cacheClearedOne",{count:o.removed}):t("apis.cacheClearedMany",{count:o.removed}),variant:"success"})}catch(o){k.add({title:t("apis.cacheClearFailed"),description:o.message,variant:"danger"})}finally{f.value={...f.value,[i]:!1}}}}function J(i,o){var l;const s=`curl -X ${o.method} http://localhost:${i.apiPort}${o.path}`;(l=navigator.clipboard)==null||l.writeText(s).then(()=>{k.add({title:t("apis.curlCopied"),description:s,variant:"success"})})}function x(i){switch(i){case"online":return"success";case"port-conflict":return"warning";default:return"neutral"}}function Q(i){switch(i){case"online":return t("common.online");case"stopped":return t("common.stopped");case"disabled":return t("common.disabled");case"port-conflict":return t("apis.statusPortConflict");default:return t("common.unknown")}}function X(i){return i==="ANY"?"info":"neutral"}return Y(()=>{N(),w=window.setInterval(N,1e4)}),q(()=>{w&&window.clearInterval(w)}),(i,o)=>(c(),d(e(y),{direction:"vertical",gap:"1.25rem"},{default:a(()=>[n(e(G),{columns:3,gap:"1rem"},{default:a(()=>[n(e(C),{label:e(t)("apis.statServices"),value:$.value.services,tone:"info",loading:h.value},null,8,["label","value","loading"]),n(e(C),{label:e(t)("apis.statRoutes"),value:$.value.routes,tone:"info",loading:h.value},{icon:a(()=>[n(e(T),{name:"aws-api-gateway"})]),_:1},8,["label","value","loading"]),n(e(C),{label:e(t)("apis.statListenersOnline"),value:$.value.online,tone:"success",loading:h.value},null,8,["label","value","loading"])]),_:1}),_.value?(c(),d(e(H),{key:0,variant:"danger",dismissible:"",onDismiss:o[0]||(o[0]=s=>_.value=null)},{default:a(()=>[r(u(_.value),1)]),_:1})):v("",!0),h.value&&!p.value.length?(c(),d(e(y),{key:1,direction:"horizontal",justify:"center",align:"center"},{default:a(()=>[n(e(K),{label:e(t)("apis.loadingApis")},null,8,["label"])]),_:1})):p.value.length?v("",!0):(c(),d(e(I),{key:2,title:e(t)("apis.emptyTitle"),description:e(t)("apis.emptyDescription")},{icon:a(()=>[n(e(T),{name:"aws-api-gateway"})]),_:1},8,["title","description"])),(c(!0),P(A,null,W(p.value,s=>(c(),d(e(Z),{key:s.service,variant:"outline"},{header:a(()=>[n(e(y),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between",wrap:""},{default:a(()=>[n(e(y),{direction:"horizontal",gap:"0.5rem",align:"center",wrap:""},{default:a(()=>[n(e(L),{to:`/services/${encodeURIComponent(s.service)}`},{default:a(()=>[n(e(m),{weight:"semibold"},{default:a(()=>[r(u(s.service),1)]),_:2},1024)]),_:2},1032,["to"]),s.apiPort?(c(),d(e(b),{key:0,tone:"info",variant:"soft"},{default:a(()=>[r(":"+u(s.apiPort),1)]),_:2},1024)):v("",!0),n(e(b),{tone:x(s.status),variant:"soft"},{default:a(()=>[r(u(Q(s.status)),1)]),_:2},1032,["tone"]),s.invokePort?(c(),d(e(b),{key:1,tone:x(s.invokeStatus),variant:"soft"},{default:a(()=>[r(" invoke :"+u(s.invokePort),1)]),_:2},1032,["tone"])):v("",!0),s.stage?(c(),d(e(g),{key:2,size:"sm",variant:"soft"},{default:a(()=>[r("stage: "+u(s.stage),1)]),_:2},1024)):v("",!0)]),_:2},1024),n(e(V),{size:"sm",variant:"ghost",loading:f.value[s.service],onClick:l=>O(s.service)},{default:a(()=>[r(u(e(t)("apis.clearCache")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)]),default:a(()=>[n(e(y),{direction:"vertical",gap:"0.75rem"},{default:a(()=>[s.routes.length?(c(),d(e(R),{key:0,columns:F.value,rows:U(s),"aria-label":e(t)("apis.routesTableLabel")},{"cell-method":a(({row:l})=>[n(e(b),{tone:X(String(l.method)),variant:"soft"},{default:a(()=>[r(u(l.method),1)]),_:2},1032,["tone"])]),"cell-path":a(({row:l})=>[n(e(m),{family:"mono"},{default:a(()=>[r(u(l.path),1)]),_:2},1024)]),"cell-functionName":a(({row:l})=>[n(e(L),{to:`/lambdas/${encodeURIComponent(String(l.functionName))}`,underline:"none"},{default:a(()=>[n(e(g),{size:"sm",variant:"soft"},{icon:a(()=>[n(e(T),{name:"aws-lambda"})]),default:a(()=>[r(" "+u(l.functionName),1)]),_:2},1024)]),_:2},1032,["to"])]),"cell-eventType":a(({row:l})=>[n(e(g),{size:"sm",variant:"soft"},{default:a(()=>[r(u(l.payloadVersion==="2.0"?"v2":"v1"),1)]),_:2},1024)]),"cell-authorizerName":a(({row:l})=>[l.authorizerName?(c(),d(e(g),{key:0,size:"sm",variant:"soft"},{default:a(()=>[r(u(l.authorizerName),1)]),_:2},1024)):(c(),d(e(m),{key:1,tone:"muted"},{default:a(()=>[...o[1]||(o[1]=[r("—",-1)])]),_:1}))]),"cell-actions":a(({row:l})=>[n(e(y),{direction:"horizontal",gap:"0.375rem",justify:"flex-end"},{default:a(()=>[n(e(V),{size:"sm",variant:"ghost",onClick:ne=>J(s,l)},{default:a(()=>[r(u(e(t)("apis.copyCurl")),1)]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1032,["columns","rows","aria-label"])):(c(),d(e(I),{key:1,title:e(t)("apis.noRoutesTitle"),description:e(t)("apis.noRoutesDescription")},null,8,["title","description"])),s.authorizers.length?(c(),P(A,{key:2},[n(e(ee)),n(e(m),{weight:"semibold",size:"sm"},{default:a(()=>[r(u(e(t)("apis.authorizers")),1)]),_:1}),n(e(R),{columns:M.value,rows:E(s),"aria-label":e(t)("apis.authorizers")},{"cell-name":a(({row:l})=>[n(e(m),{family:"mono",size:"sm"},{default:a(()=>[r(u(l.name),1)]),_:2},1024)]),"cell-type":a(({row:l})=>[n(e(g),{size:"sm",variant:"soft"},{default:a(()=>[r(u(l.type),1)]),_:2},1024)]),"cell-payloadVersion":a(({row:l})=>[n(e(g),{size:"sm",variant:"soft"},{default:a(()=>[r(u(l.payloadVersion==="2.0"?"v2":"v1"),1)]),_:2},1024)]),"cell-resultTtlInSeconds":a(({row:l})=>[n(e(m),{family:"mono",size:"sm"},{default:a(()=>[r(u(l.resultTtlInSeconds)+"s",1)]),_:2},1024)]),"cell-identitySource":a(({row:l})=>[n(e(m),{family:"mono",size:"xs"},{default:a(()=>[r(u(l.identitySource||"—"),1)]),_:2},1024)]),"cell-target":a(({row:l})=>[l.target?(c(),d(e(m),{key:0,family:"mono",size:"xs"},{default:a(()=>[r(u(l.target),1)]),_:2},1024)):(c(),d(e(m),{key:1,tone:"muted"},{default:a(()=>[...o[2]||(o[2]=[r("—",-1)])]),_:1}))]),_:1},8,["columns","rows","aria-label"])],64)):v("",!0)]),_:2},1024)]),_:2},1024))),128))]),_:1}))}}),ie=D({__name:"ApisPage",setup(B){return(t,k)=>(c(),d(le))}});export{ie as default};
@@ -0,0 +1 @@
1
+ import{k as R,m as W,ab as X,e as k,a7 as e,v as c,ac as l,a as g,n as f,j as a,J as p,x as U,i,a6 as s,u as L,D as Z,f as O,L as ee,w as K,g as te,z as _,y as ae,M as S,N as T,Y as le,t as P,P as ne,Q as oe,R as ue,ad as ie,F as se,a8 as re,c as ce,p as d,b as E,aa as de}from"./index-DuSPnI19.js";const be=R({__name:"BucketDetail",props:{bucketName:{}},emits:["back"],setup(w,{emit:B}){const b=w,D=B,{t}=re(),v=ce(),r=d(null),y=d([]),x=d(""),F=d(!0),$=d(!1),h=d(null),j=d(""),z=d(""),N=d("text/plain"),C=d(!1),G=E(()=>[{key:"key",label:t("buckets.colKey")},{key:"size",label:t("common.size"),align:"right"},{key:"lastModified",label:t("buckets.colModified")},{key:"actions",label:"",align:"right"}]),H=E(()=>y.value.reduce((o,u)=>o+(u.size||0),0));function V(o){if(o==null)return"—";if(o===0)return"0 B";const u=["B","KB","MB","GB","TB"],n=Math.floor(Math.log(o)/Math.log(1024));return`${(o/Math.pow(1024,n)).toFixed(n===0?0:1)} ${u[n]}`}function I(o){return o?new Date(o).toLocaleString():"—"}async function M(){try{r.value=await g.getBucket(b.bucketName),h.value=null}catch(o){h.value=o.message||t("buckets.detailLoadFailed"),r.value=null}finally{F.value=!1}}async function m(){$.value=!0;try{const o=await g.listBucketObjects(b.bucketName,{prefix:x.value||void 0,maxKeys:200});y.value=o.objects}catch(o){v.add({title:t("buckets.objectsLoadFailed"),description:o.message,variant:"danger"})}finally{$.value=!1}}function J(o){return g.bucketObjectContentUrl(b.bucketName,o,!1)}function Q(o){return g.bucketObjectContentUrl(b.bucketName,o,!0)}async function Y(o){if(confirm(t("buckets.deleteConfirm",{key:o})))try{await g.deleteBucketObject(b.bucketName,o),v.add({title:t("buckets.deleteSuccess"),variant:"info"}),await m()}catch(u){v.add({title:t("buckets.deleteFailed"),description:u.message,variant:"danger"})}}async function q(){if(!j.value||!z.value){v.add({title:t("buckets.uploadMissingFields"),variant:"warning"});return}C.value=!0;try{await g.putBucketObject(b.bucketName,{key:j.value,body:z.value,contentType:N.value||void 0}),v.add({title:t("buckets.uploadSuccess"),variant:"info"}),j.value="",z.value="",await m(),await M()}catch(o){v.add({title:t("buckets.uploadFailed"),description:o.message,variant:"danger"})}finally{C.value=!1}}return W(()=>{M(),m()}),X(()=>b.bucketName,()=>{M(),m()}),(o,u)=>(f(),k(e(c),{direction:"vertical",gap:"1rem"},{default:l(()=>[a(e(c),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:l(()=>[a(e(c),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:l(()=>{var n;return[a(e(p),{size:"sm",variant:"ghost",onClick:u[0]||(u[0]=A=>D("back"))},{default:l(()=>[a(e(U),{name:"arrow-left"}),i(" "+s(e(t)("buckets.backToBuckets")),1)]),_:1}),a(e(U),{name:"aws-s3"}),a(e(L),{size:"lg",weight:"semibold"},{default:l(()=>[i(s(w.bucketName),1)]),_:1}),(n=r.value)!=null&&n.versioning?(f(),k(e(Z),{key:0,tone:"info",variant:"soft"},{default:l(()=>[i(s(e(t)("buckets.versioning")),1)]),_:1})):O("",!0)]}),_:1}),a(e(p),{size:"sm",variant:"ghost",loading:$.value,"loading-label":e(t)("common.loading"),onClick:u[1]||(u[1]=n=>m())},{default:l(()=>[i(s(e(t)("common.refresh")),1)]),_:1},8,["loading","loading-label"])]),_:1}),h.value?(f(),k(e(ee),{key:0,variant:"danger",dismissible:"",onDismiss:u[2]||(u[2]=n=>h.value=null)},{default:l(()=>[i(s(h.value),1)]),_:1})):O("",!0),F.value&&!r.value?(f(),k(e(c),{key:1,direction:"horizontal",justify:"center",align:"center"},{default:l(()=>[a(e(K),{label:e(t)("buckets.detailLoading")},null,8,["label"])]),_:1})):r.value?(f(),te(se,{key:2},[a(e(ae),{columns:4,gap:"0.75rem"},{default:l(()=>[a(e(_),{label:e(t)("buckets.statObjects"),value:r.value.objectCount??0,tone:"info"},null,8,["label","value"]),a(e(_),{label:e(t)("common.size"),value:V(r.value.totalSize),tone:"neutral"},null,8,["label","value"]),a(e(_),{label:e(t)("buckets.versioning"),value:r.value.versioning?e(t)("buckets.enabled"):e(t)("buckets.disabled"),tone:r.value.versioning?"success":"neutral"},null,8,["label","value","tone"]),a(e(_),{label:e(t)("buckets.statNotifications"),value:r.value.notifications??0,tone:(r.value.notifications??0)>0?"info":"neutral"},null,8,["label","value","tone"])]),_:1}),a(e(P),{variant:"outline"},{header:l(()=>[a(e(L),{weight:"semibold"},{default:l(()=>[i(s(e(t)("buckets.uploadTitle")),1)]),_:1})]),default:l(()=>[a(e(c),{direction:"vertical",gap:"0.5rem"},{default:l(()=>[a(e(S),{label:e(t)("buckets.keyLabel")},{default:l(()=>[a(e(T),{modelValue:j.value,"onUpdate:modelValue":u[3]||(u[3]=n=>j.value=n),placeholder:"object/key.txt"},null,8,["modelValue"])]),_:1},8,["label"]),a(e(S),{label:e(t)("buckets.contentTypeLabel")},{default:l(()=>[a(e(T),{modelValue:N.value,"onUpdate:modelValue":u[4]||(u[4]=n=>N.value=n),placeholder:"text/plain"},null,8,["modelValue"])]),_:1},8,["label"]),a(e(S),{label:e(t)("buckets.bodyLabel")},{default:l(()=>[a(e(le),{modelValue:z.value,"onUpdate:modelValue":u[5]||(u[5]=n=>z.value=n),family:"mono",rows:4,placeholder:e(t)("buckets.bodyPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(e(c),{direction:"horizontal",justify:"flex-end"},{default:l(()=>[a(e(p),{size:"sm",loading:C.value,"loading-label":e(t)("common.loading"),onClick:q},{default:l(()=>[i(s(e(t)("buckets.upload")),1)]),_:1},8,["loading","loading-label"])]),_:1})]),_:1})]),_:1}),a(e(P),{variant:"outline"},{header:l(()=>[a(e(c),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:l(()=>[a(e(L),{weight:"semibold"},{default:l(()=>[i(s(e(t)("buckets.objectsHeader",{count:y.value.length,size:V(H.value)})),1)]),_:1}),a(e(c),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:l(()=>[a(e(T),{modelValue:x.value,"onUpdate:modelValue":u[6]||(u[6]=n=>x.value=n),placeholder:e(t)("buckets.prefixPlaceholder"),"aria-label":e(t)("buckets.prefixLabel"),size:"sm",onKeyup:u[7]||(u[7]=ie(n=>m(),["enter"]))},null,8,["modelValue","placeholder","aria-label"]),a(e(p),{size:"sm",variant:"ghost",onClick:u[8]||(u[8]=n=>m())},{default:l(()=>[i(s(e(t)("buckets.apply")),1)]),_:1})]),_:1})]),_:1})]),default:l(()=>[$.value?(f(),k(e(c),{key:0,direction:"horizontal",justify:"center",align:"center"},{default:l(()=>[a(e(K),{label:e(t)("buckets.objectsLoading")},null,8,["label"])]),_:1})):y.value.length?(f(),k(e(oe),{key:2,columns:G.value,rows:y.value,"aria-label":e(t)("buckets.objectsTableLabel")},{"cell-key":l(({row:n})=>[a(e(ue),{href:J(String(n.key)),external:""},{default:l(()=>[i(s(n.key),1)]),_:2},1032,["href"])]),"cell-size":l(({row:n})=>[i(s(V(Number(n.size))),1)]),"cell-lastModified":l(({row:n})=>[i(s(I(n.lastModified)),1)]),"cell-actions":l(({row:n})=>[a(e(c),{direction:"horizontal",gap:"0.25rem",justify:"flex-end"},{default:l(()=>[a(e(p),{as:"a",href:Q(String(n.key)),target:"_blank",rel:"noopener noreferrer",size:"sm",variant:"ghost"},{default:l(()=>[i(s(e(t)("buckets.download")),1)]),_:1},8,["href"]),a(e(p),{size:"sm",variant:"ghost",tone:"danger",onClick:A=>Y(String(n.key))},{default:l(()=>[i(s(e(t)("common.delete")),1)]),_:1},8,["onClick"])]),_:2},1024)]),_:1},8,["columns","rows","aria-label"])):(f(),k(e(ne),{key:1,title:e(t)("buckets.objectsEmptyTitle"),description:e(t)("buckets.objectsEmptyDescription")},null,8,["title","description"]))]),_:1})],64)):O("",!0)]),_:1}))}}),ke=R({__name:"BucketDetailPage",props:{bucketName:{}},setup(w){const B=de();function b(){B.push("/buckets")}return(D,t)=>(f(),k(be,{"bucket-name":w.bucketName,onBack:b},null,8,["bucket-name"]))}});export{ke as default};
@@ -0,0 +1 @@
1
+ import{k as I,aa as T,m as V,o as E,n as c,e as r,a7 as e,v,ac as a,j as s,y as L,z as _,L as U,i as o,a6 as i,f as O,t as P,w as A,P as F,x as j,Q as G,J as q,D as h,R as S,A as H,u as $,a8 as J,p as f,b as y,a as x}from"./index-DuSPnI19.js";import{E as K}from"./engine-D0mFFNbL.js";const Q=I({__name:"BucketsView",setup(N){const{t:n}=J(),B=T(),d=f([]),w=f({}),b=f(!0),m=f(null);let k=null;const M=y(()=>[{key:"name",label:n("buckets.colBucket")},{key:"service",label:n("common.service")},{key:"objectCount",label:n("buckets.colObjects"),align:"right"},{key:"totalSize",label:n("common.size"),align:"right"},{key:"versioning",label:n("buckets.colVersioning")},{key:"notifications",label:n("buckets.colNotifications"),align:"right"},{key:"actions",label:"",align:"right"}]),R=y(()=>d.value.map(l=>({...l,service:w.value[l.name]||""}))),g=y(()=>({buckets:d.value.length,objects:d.value.reduce((l,u)=>l+(u.objectCount||0),0),size:d.value.reduce((l,u)=>l+(u.totalSize||0),0)}));function z(l){if(l==null)return"—";if(l===0)return"0 B";const u=["B","KB","MB","GB","TB"],t=Math.floor(Math.log(l)/Math.log(1024));return`${(l/Math.pow(1024,t)).toFixed(t===0?0:1)} ${u[t]}`}async function C(){try{const[l,u]=await Promise.all([x.listBuckets(),x.listResourceOwners().catch(()=>({tables:[],queues:[],topics:[],buckets:[]}))]);d.value=l;const t={};for(const p of u.buckets||[])t[p.name]=p.service;w.value=t,m.value=null}catch(l){m.value=l.message||n("buckets.loadFailed")}finally{b.value=!1}}function D(l){B.push(`/buckets/${encodeURIComponent(l)}`)}return V(()=>{C(),k=window.setInterval(C,1e4)}),E(()=>{k&&window.clearInterval(k)}),(l,u)=>(c(),r(e(v),{direction:"vertical",gap:"1.25rem"},{default:a(()=>[s(e(L),{columns:3,gap:"1rem"},{default:a(()=>[s(e(_),{label:e(n)("buckets.statBuckets"),value:g.value.buckets,tone:"info",loading:b.value},null,8,["label","value","loading"]),s(e(_),{label:e(n)("buckets.statObjects"),value:g.value.objects,tone:"success",loading:b.value},null,8,["label","value","loading"]),s(e(_),{label:e(n)("buckets.statTotalSize"),value:z(g.value.size),tone:"neutral",loading:b.value},null,8,["label","value","loading"])]),_:1}),m.value?(c(),r(e(U),{key:0,variant:"danger",dismissible:"",onDismiss:u[0]||(u[0]=t=>m.value=null)},{default:a(()=>[o(i(m.value),1)]),_:1})):O("",!0),s(e(P),{variant:"outline"},{header:a(()=>[s(e(v),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[s(e(v),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[s(e(j),{name:"aws-s3"}),s(e($),{weight:"semibold"},{default:a(()=>[o(i(e(n)("buckets.title")),1)]),_:1})]),_:1}),s(e($),{tone:"muted"},{default:a(()=>[o(i(e(n)("buckets.refreshHint")),1)]),_:1})]),_:1})]),default:a(()=>[b.value?(c(),r(e(v),{key:0,direction:"horizontal",justify:"center",align:"center"},{default:a(()=>[s(e(A),{label:e(n)("buckets.loading")},null,8,["label"])]),_:1})):d.value.length?(c(),r(e(G),{key:2,columns:M.value,rows:R.value,"aria-label":e(n)("buckets.tableLabel")},{"cell-name":a(({row:t})=>[s(e(S),{to:`/buckets/${encodeURIComponent(String(t.name))}`,weight:"semibold"},{default:a(()=>[o(i(t.name),1)]),_:2},1032,["to"])]),"cell-service":a(({row:t})=>[t.service?(c(),r(e(S),{key:0,to:`/services/${encodeURIComponent(String(t.service))}`,underline:"none"},{default:a(()=>[s(e(H),{size:"sm",variant:"soft"},{default:a(()=>[o(i(t.service),1)]),_:2},1024)]),_:2},1032,["to"])):(c(),r(e($),{key:1,tone:"muted",size:"xs"},{default:a(()=>[o(i(e(n)("buckets.unmanaged")),1)]),_:1}))]),"cell-objectCount":a(({row:t})=>[s(e(h),{tone:"info",variant:"soft"},{default:a(()=>[o(i(t.objectCount??0),1)]),_:2},1024)]),"cell-totalSize":a(({row:t})=>[o(i(z(t.totalSize)),1)]),"cell-versioning":a(({row:t})=>[s(e(h),{tone:t.versioning?"success":"neutral",variant:"soft"},{default:a(()=>[o(i(t.versioning?e(n)("buckets.enabled"):e(n)("buckets.disabled")),1)]),_:2},1032,["tone"])]),"cell-notifications":a(({row:t})=>[s(e(h),{tone:Number(t.notifications)>0?"info":"neutral",variant:"soft"},{default:a(()=>[o(i(t.notifications??0),1)]),_:2},1032,["tone"])]),"cell-actions":a(({row:t})=>[s(e(q),{size:"sm",variant:"ghost",onClick:p=>D(String(t.name))},{default:a(()=>[o(i(e(n)("buckets.open")),1)]),_:1},8,["onClick"])]),_:1},8,["columns","rows","aria-label"])):(c(),r(e(F),{key:1,title:e(n)("buckets.emptyTitle"),description:e(n)("buckets.emptyDescription",{engine:e(K)})},{icon:a(()=>[s(e(j),{name:"aws-s3"})]),_:1},8,["title","description"]))]),_:1})]),_:1}))}}),Y=I({__name:"BucketsPage",setup(N){return(n,B)=>(c(),r(Q))}});export{Y as default};
@@ -0,0 +1 @@
1
+ import{k as K,m as F,o as J,n as i,e as u,a7 as e,v as m,ac as n,j as o,y as Q,z as T,L as X,i as r,a6 as d,f as c,t as Y,w as Z,P as A,x as D,Q as ee,J as ae,u as f,A as y,D as O,R as te,a1 as ne,N as se,a8 as le,p as k,b as z,a as P,aa as oe}from"./index-DuSPnI19.js";const ie=K({__name:"DynamoTablesList",emits:["open"],setup(U,{emit:I}){const{t:s}=le(),C=I,v=k([]),x=k([]),N=k({}),b=k(!0),_=k(null),$=k("");let L=null;const B=z(()=>[{key:"name",label:s("dynamo.colTable")},{key:"service",label:s("common.service")},{key:"status",label:s("common.status")},{key:"itemCount",label:s("dynamo.items"),align:"right"},{key:"seed",label:s("dynamo.seed")},{key:"features",label:s("dynamo.features")},{key:"actions",label:"",align:"right"}]),S=z(()=>{const l=v.value.map(t=>{var M,V;const a=(M=t.keySchema.find(h=>h.KeyType==="HASH"))==null?void 0:M.AttributeName,p=(V=t.keySchema.find(h=>h.KeyType==="RANGE"))==null?void 0:V.AttributeName,w=p?`PK: ${a} · SK: ${p}`:`PK: ${a??"—"}`,G=x.value.find(h=>h.tableName===t.name);return{name:t.name,status:t.status,itemCount:t.itemCount||0,keyDescriptor:w,billingMode:t.billingMode,ttlOn:t.ttl.enabled,streamOn:t.streamEnabled,hasGsi:t.hasGsi,hasLsi:t.hasLsi,service:N.value[t.name]||"",seedItemCount:G?G.itemCount:null,exists:!0}});for(const t of x.value)!t.tableExists&&!l.some(a=>a.name===t.tableName)&&l.push({name:t.tableName,status:"PENDING",itemCount:0,keyDescriptor:"—",ttlOn:!1,streamOn:!1,hasGsi:!1,hasLsi:!1,service:N.value[t.tableName]||"",seedItemCount:t.itemCount,exists:!1});return l.sort((t,a)=>t.name.localeCompare(a.name))}),R=z(()=>{const l=$.value.trim().toLowerCase();return l?S.value.filter(t=>t.name.toLowerCase().includes(l)||(t.service||"").toLowerCase().includes(l)):S.value}),g=z(()=>({tables:v.value.length,items:v.value.reduce((l,t)=>l+(t.itemCount||0),0),warnings:v.value.reduce((l,t)=>{var a;return l+(((a=t.warnings)==null?void 0:a.length)||0)},0),seedsPending:x.value.filter(l=>!l.tableExists).length}));async function E(){try{const[l,t,a]=await Promise.all([P.listDynamoTables(),P.listSeeds().catch(()=>({seedsDir:"",entries:[]})),P.listResourceOwners().catch(()=>({tables:[],queues:[],topics:[],buckets:[]}))]);v.value=l.tables,x.value=t.entries;const p={};for(const w of a.tables)p[w.name]=w.service;N.value=p,_.value=null}catch(l){_.value=l.message||s("dynamo.loadTablesFailed")}finally{b.value=!1}}function j(l){l.exists&&C("open",l.name)}function q(l){return l.exists?`/dynamo/${encodeURIComponent(String(l.name))}`:void 0}function H(l){return s("dynamo.openTableLabel",{name:String(l.name)})}function W(l){return l===1?s("dynamo.seededItemOne",{count:l}):s("dynamo.seededItemOther",{count:l})}return F(()=>{E(),L=window.setInterval(E,15e3)}),J(()=>{L&&window.clearInterval(L)}),(l,t)=>(i(),u(e(m),{direction:"vertical",gap:"1.25rem"},{default:n(()=>[o(e(Q),{columns:4,gap:"1rem"},{default:n(()=>[o(e(T),{label:e(s)("dynamo.statTables"),value:g.value.tables,tone:"info",loading:b.value},null,8,["label","value","loading"]),o(e(T),{label:e(s)("dynamo.statTotalItems"),value:g.value.items,tone:"success",loading:b.value},null,8,["label","value","loading"]),o(e(T),{label:e(s)("dynamo.statSeedsPending"),value:g.value.seedsPending,tone:g.value.seedsPending>0?"warning":"neutral",loading:b.value},null,8,["label","value","tone","loading"]),o(e(T),{label:e(s)("dynamo.statWarnings"),value:g.value.warnings,tone:g.value.warnings>0?"warning":"neutral",loading:b.value},null,8,["label","value","tone","loading"])]),_:1}),_.value?(i(),u(e(X),{key:0,variant:"danger",dismissible:"",onDismiss:t[0]||(t[0]=a=>_.value=null)},{default:n(()=>[r(d(_.value),1)]),_:1})):c("",!0),o(e(Y),{variant:"outline"},{header:n(()=>[o(e(m),{direction:"horizontal",justify:"space-between",align:"center",gap:"1rem"},{default:n(()=>[o(e(m),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:n(()=>[o(e(D),{name:"aws-dynamodb"}),o(e(f),{weight:"semibold"},{default:n(()=>[r(d(e(s)("dynamo.tablesTitle")),1)]),_:1})]),_:1}),o(e(m),{direction:"horizontal",align:"center",gap:"1rem"},{default:n(()=>[o(e(ne),{"min-width":"16rem"},{default:n(()=>[o(e(se),{modelValue:$.value,"onUpdate:modelValue":t[1]||(t[1]=a=>$.value=a),placeholder:e(s)("dynamo.filterTablesPlaceholder")},null,8,["modelValue","placeholder"])]),_:1}),o(e(f),{tone:"muted",size:"xs"},{default:n(()=>[r(d(e(s)("dynamo.seedOnlyHint")),1)]),_:1})]),_:1})]),_:1})]),default:n(()=>[b.value?(i(),u(e(m),{key:0,direction:"horizontal",justify:"center",align:"center"},{default:n(()=>[o(e(Z),{label:e(s)("dynamo.loadingTables")},null,8,["label"])]),_:1})):S.value.length?R.value.length?(i(),u(e(ee),{key:3,columns:B.value,rows:R.value,"row-key":"name","row-state":a=>a.exists?"default":"muted","row-to":q,"row-label":H,"aria-label":e(s)("dynamo.tablesTitle")},{"cell-name":n(({row:a})=>[o(e(m),{direction:"vertical",gap:"0.125rem"},{default:n(()=>[o(e(m),{direction:"horizontal",gap:"0.375rem",align:"center"},{default:n(()=>[o(e(f),{weight:"semibold"},{default:n(()=>[r(d(a.name),1)]),_:2},1024),a.exists?c("",!0):(i(),u(e(y),{key:0,size:"sm",variant:"soft"},{default:n(()=>[r(d(e(s)("dynamo.seedOnly")),1)]),_:1}))]),_:2},1024),o(e(f),{tone:"muted",family:"mono",size:"xs"},{default:n(()=>[r(d(a.keyDescriptor),1)]),_:2},1024)]),_:2},1024)]),"cell-service":n(({row:a})=>[a.service?(i(),u(e(te),{key:0,to:`/services/${encodeURIComponent(String(a.service))}`,underline:"none"},{default:n(()=>[o(e(y),{size:"sm",variant:"soft"},{default:n(()=>[r(d(a.service),1)]),_:2},1024)]),_:2},1032,["to"])):(i(),u(e(f),{key:1,tone:"muted",size:"xs"},{default:n(()=>[...t[2]||(t[2]=[r("—",-1)])]),_:1}))]),"cell-status":n(({row:a})=>[a.exists?(i(),u(e(O),{key:0,tone:a.status==="ACTIVE"?"success":"warning",variant:"soft"},{default:n(()=>[r(d(a.status||"UNKNOWN"),1)]),_:2},1032,["tone"])):(i(),u(e(O),{key:1,tone:"warning",variant:"outline"},{default:n(()=>[r(d(e(s)("dynamo.notCreated")),1)]),_:1}))]),"cell-itemCount":n(({row:a})=>[r(d(a.exists?a.itemCount:"—"),1)]),"cell-seed":n(({row:a})=>[a.seedItemCount!==null?(i(),u(e(O),{key:0,tone:a.exists?"info":"warning",variant:"soft"},{default:n(()=>[r(d(W(Number(a.seedItemCount))),1)]),_:2},1032,["tone"])):(i(),u(e(f),{key:1,tone:"muted",size:"xs"},{default:n(()=>[r(d(e(s)("dynamo.noSeed")),1)]),_:1}))]),"cell-features":n(({row:a})=>[o(e(m),{direction:"horizontal",gap:"0.25rem",wrap:""},{default:n(()=>[a.billingMode?(i(),u(e(y),{key:0,size:"sm",variant:"soft"},{default:n(()=>[r(d(a.billingMode),1)]),_:2},1024)):c("",!0),a.ttlOn?(i(),u(e(y),{key:1,size:"sm",variant:"solid"},{default:n(()=>[...t[3]||(t[3]=[r("TTL",-1)])]),_:1})):c("",!0),a.streamOn?(i(),u(e(y),{key:2,size:"sm",variant:"solid"},{default:n(()=>[...t[4]||(t[4]=[r("Streams",-1)])]),_:1})):c("",!0),a.hasGsi?(i(),u(e(y),{key:3,size:"sm",variant:"soft"},{default:n(()=>[...t[5]||(t[5]=[r("GSI",-1)])]),_:1})):c("",!0),a.hasLsi?(i(),u(e(y),{key:4,size:"sm",variant:"soft"},{default:n(()=>[...t[6]||(t[6]=[r("LSI",-1)])]),_:1})):c("",!0)]),_:2},1024)]),"cell-actions":n(({row:a})=>[a.exists?(i(),u(e(ae),{key:0,size:"sm",variant:"soft",onClick:p=>j(a)},{default:n(()=>[r(d(e(s)("dynamo.explore")),1)]),_:1},8,["onClick"])):(i(),u(e(f),{key:1,tone:"muted",size:"xs"},{default:n(()=>[r(d(e(s)("dynamo.registerToProvision")),1)]),_:1}))]),_:1},8,["columns","rows","row-state","aria-label"])):(i(),u(e(A),{key:2,title:e(s)("dynamo.noMatchTitle"),description:e(s)("dynamo.noMatchDesc",{query:$.value})},{icon:n(()=>[o(e(D),{name:"search-x"})]),_:1},8,["title","description"])):(i(),u(e(A),{key:1,title:e(s)("dynamo.emptyTablesTitle"),description:e(s)("dynamo.emptyTablesDesc")},{icon:n(()=>[o(e(D),{name:"aws-dynamodb"})]),_:1},8,["title","description"]))]),_:1})]),_:1}))}}),re=K({__name:"DynamoPage",setup(U){const I=oe();function s(C){I.push(`/dynamo/${encodeURIComponent(C)}`)}return(C,v)=>(i(),u(ie,{onOpen:s}))}});export{re as default};
@@ -0,0 +1,3 @@
1
+ import{k as Z,ab as ye,n as v,e as y,a7 as e,S as at,ac as t,j as a,v as m,L as ie,i as r,a6 as u,f as T,u as _,D as M,Y as lt,J as O,g as H,F as W,a8 as ue,p,b as q,a as U,c as pe,t as J,a1 as K,E as nt,M as B,Z as oe,I as ze,N as P,O as ot,x as be,s as Q,d as it,w as xe,P as Ce,Q as ut,h as rt,U as ke,y as Ne,z as ve,a3 as st,A as we,G as dt,H as Ae,m as mt,a0 as vt,W as ce,V as ct,X as fe,a9 as ft,aa as De}from"./index-DuSPnI19.js";const bt=Z({__name:"DynamoItemEditor",props:{open:{type:Boolean},tableName:{},mode:{},item:{},originalKey:{}},emits:["update:open","saved","request-edit","request-clone","request-delete"],setup(D,{emit:N}){const{t:l}=ue(),k=D,s=N,A=pe(),C=p(""),b=p(null),V=p(!1),h=q({get:()=>k.open,set:d=>s("update:open",d)}),I=q(()=>k.mode==="create"?l("dynamo.editorCreateTitle",{table:k.tableName}):k.mode==="view"?l("dynamo.editorViewTitle",{table:k.tableName}):l("dynamo.editorEditTitle",{table:k.tableName})),E=q(()=>k.mode==="view");ye(()=>[k.open,k.item,k.mode],([d])=>{d&&(C.value=k.item&&Object.keys(k.item).length?JSON.stringify(k.item,null,2):`{
2
+
3
+ }`,b.value=null)},{immediate:!0});function x(){try{const d=JSON.parse(C.value);return d===null||typeof d!="object"||Array.isArray(d)?(b.value=l("dynamo.errItemNotObject"),null):(b.value=null,d)}catch(d){return b.value=d.message,null}}async function $(){const d=x();if(d){V.value=!0;try{k.mode==="edit"&&k.originalKey&&Object.entries(k.originalKey).some(([w,g])=>JSON.stringify(d[w])!==JSON.stringify(g))&&await U.deleteDynamoItem(k.tableName,k.originalKey),await U.putDynamoItem(k.tableName,d),A.add({title:k.mode==="create"?l("dynamo.itemCreated"):l("dynamo.itemSaved"),variant:"success"}),s("saved"),h.value=!1}catch(c){A.add({title:l("dynamo.saveFailed"),description:c.message,variant:"danger"})}finally{V.value=!1}}}function S(){const d=x();d&&(C.value=JSON.stringify(d,null,2))}return(d,c)=>(v(),y(e(at),{open:h.value,"onUpdate:open":c[5]||(c[5]=w=>h.value=w),title:I.value,size:"lg"},{footer:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",justify:"space-between"},{default:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem"},{default:t(()=>[E.value?T("",!0):(v(),y(e(O),{key:0,size:"sm",variant:"ghost",onClick:S},{default:t(()=>[r(u(e(l)("dynamo.formatJson")),1)]),_:1})),E.value?(v(),H(W,{key:1},[a(e(O),{size:"sm",variant:"soft",onClick:c[1]||(c[1]=w=>s("request-edit"))},{default:t(()=>[r(u(e(l)("dynamo.edit")),1)]),_:1}),a(e(O),{size:"sm",variant:"ghost",onClick:c[2]||(c[2]=w=>s("request-clone"))},{default:t(()=>[r(u(e(l)("dynamo.clone")),1)]),_:1}),a(e(O),{size:"sm",variant:"ghost",tone:"danger",onClick:c[3]||(c[3]=w=>s("request-delete"))},{default:t(()=>[r(u(e(l)("common.delete")),1)]),_:1})],64)):T("",!0)]),_:1}),a(e(m),{direction:"horizontal",gap:"0.5rem"},{default:t(()=>[a(e(O),{size:"sm",variant:"ghost",onClick:c[4]||(c[4]=w=>h.value=!1)},{default:t(()=>[r(u(E.value?e(l)("common.close"):e(l)("common.cancel")),1)]),_:1}),E.value?T("",!0):(v(),y(e(O),{key:0,size:"sm",variant:"solid",loading:V.value,disabled:!!b.value,onClick:$},{default:t(()=>[r(u(D.mode==="create"?e(l)("dynamo.create"):e(l)("common.save")),1)]),_:1},8,["loading","disabled"]))]),_:1})]),_:1})]),default:t(()=>[a(e(m),{direction:"vertical",gap:"0.75rem"},{default:t(()=>[b.value?(v(),y(e(ie),{key:0,variant:"danger"},{default:t(()=>[r(u(b.value),1)]),_:1})):T("",!0),a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(_),{tone:"muted",size:"xs"},{default:t(()=>[r(u(e(l)("dynamo.editorHint")),1)]),_:1}),E.value?(v(),y(e(M),{key:0,tone:"neutral",variant:"soft"},{default:t(()=>[r(u(e(l)("dynamo.readOnly")),1)]),_:1})):T("",!0)]),_:1}),a(e(lt),{modelValue:C.value,"onUpdate:modelValue":c[0]||(c[0]=w=>C.value=w),rows:18,readonly:E.value,spellcheck:"false",family:"mono",onBlur:x},null,8,["modelValue","readonly"])]),_:1})]),_:1},8,["open","title"]))}}),yt=Z({__name:"DynamoItemsExplorer",props:{table:{}},setup(D){const N=D,{t:l}=ue(),k=pe(),s=p("scan"),A=p(""),C=p(50),b=p(""),V=p("="),h=p(""),I=p(""),E=p(!1),x=p([]),$=p(!1),S=p([]),d=p(void 0),c=p(void 0),w=p(null),g=p(!1),z=p(null),L=p(!1),ee=p(!1),te=p("view"),F=p(null),ae=p(null),re=p(!1),se=p(null),Te=[{value:"scan",label:"Scan"},{value:"query",label:"Query"}],Se=q(()=>[{value:"=",label:l("dynamo.opEq")},{value:"<=",label:l("dynamo.opLte")},{value:"<",label:l("dynamo.opLt")},{value:">=",label:l("dynamo.opGte")},{value:">",label:l("dynamo.opGt")},{value:"between",label:l("dynamo.opBetween")},{value:"begins_with",label:l("dynamo.opBeginsWith")}]),Ie=q(()=>[{value:"=",label:l("dynamo.opEq")},{value:"<>",label:l("dynamo.opNeq")},{value:"<",label:l("dynamo.opLt")},{value:"<=",label:l("dynamo.opLte")},{value:">",label:l("dynamo.opGt")},{value:">=",label:l("dynamo.opGte")},{value:"begins_with",label:l("dynamo.opBeginsWith")},{value:"contains",label:l("dynamo.opContains")},{value:"attribute_exists",label:l("dynamo.opExists")},{value:"attribute_not_exists",label:l("dynamo.opNotExists")}]),Ee=[{value:"String",label:"String"},{value:"Number",label:"Number"},{value:"Boolean",label:"Boolean"},{value:"Null",label:"Null"}],Oe=q(()=>{const i=[{value:"",label:l("dynamo.optionTable",{name:N.table.name})}];for(const o of N.table.gsis||[])o.IndexName&&i.push({value:o.IndexName,label:l("dynamo.optionIndex",{name:o.IndexName})});for(const o of N.table.lsis||[])o.IndexName&&i.push({value:o.IndexName,label:l("dynamo.optionIndex",{name:o.IndexName})});return i}),ge=q(()=>{if(!A.value)return N.table.keySchema;const i=N.table.gsis.find(o=>o.IndexName===A.value)||N.table.lsis.find(o=>o.IndexName===A.value);return(i==null?void 0:i.KeySchema)||N.table.keySchema}),le=q(()=>{var i,o;return((o=(i=ge.value)==null?void 0:i.find(n=>n.KeyType==="HASH"))==null?void 0:o.AttributeName)||""}),G=q(()=>{var i,o;return((o=(i=ge.value)==null?void 0:i.find(n=>n.KeyType==="RANGE"))==null?void 0:o.AttributeName)||""}),de=q(()=>(ge.value||[]).map(i=>i.AttributeName).filter(i=>!!i)),_e=q(()=>{const i=new Set;for(const o of S.value)Object.keys(o).forEach(n=>{de.value.includes(n)||i.add(n)});return Array.from(i).sort()});function je(i){const o=N.table.attributeDefinitions.find(n=>n.AttributeName===i);return o!=null&&o.AttributeType?o.AttributeType==="S"?"String":o.AttributeType==="N"?"Number":o.AttributeType==="B"?"Binary":o.AttributeType:null}function he(i,o,n){const f=je(i);return o?f?`${i} (${f}, PK)`:`${i} (PK)`:n?f?`${i} (${f}, SK)`:`${i} (SK)`:f?`${i} (${f})`:i}const Ke=q(()=>{const i=de.value.map((n,f)=>({key:`__attr__${n}`,label:he(n,f===0,f===1)})),o=_e.value.map(n=>({key:`__attr__${n}`,label:he(n)}));return[...i,...o]}),qe=q(()=>S.value.map((i,o)=>{const n={__id:o,__raw:i};for(const f of de.value)n[`__attr__${f}`]=i[f];for(const f of _e.value)n[`__attr__${f}`]=i[f];return n}));function $e(i){return i===void 0?"—":i===null?"null":typeof i=="boolean"?i?"true":"false":typeof i=="object"?JSON.stringify(i).slice(0,80):String(i).slice(0,80)}function Be(i,o){switch(o){case"Number":{const n=Number(i);if(Number.isNaN(n))throw new Error(l("dynamo.errNotNumber",{value:i}));return n}case"Boolean":return i==="true"||i==="1";case"Null":return null;case"String":default:return i}}function ne(i,o){const n=N.table.attributeDefinitions.find(f=>f.AttributeName===o);if((n==null?void 0:n.AttributeType)==="N"){const f=Number(i);if(Number.isNaN(f))throw new Error(l("dynamo.errNotNumberFor",{value:i,attr:o}));return f}return i}function Ue(){const i={},o={};if(!le.value)throw new Error(l("dynamo.errNoPartitionKey"));if(!b.value)throw new Error(l("dynamo.errPkRequired",{attr:le.value}));i["#pk"]=le.value,o[":pkv"]=ne(b.value,le.value);let n="#pk = :pkv";if(G.value&&h.value)if(i["#sk"]=G.value,V.value==="between"){if(!I.value)throw new Error(l("dynamo.errBetweenTwoValues"));o[":skv1"]=ne(h.value,G.value),o[":skv2"]=ne(I.value,G.value),n+=" AND #sk BETWEEN :skv1 AND :skv2"}else V.value==="begins_with"?(o[":skv"]=ne(h.value,G.value),n+=" AND begins_with(#sk, :skv)"):(o[":skv"]=ne(h.value,G.value),n+=` AND #sk ${V.value} :skv`);return{keyExpr:n,names:i,values:o}}function Fe(){const i={},o={},n=[];return x.value.forEach((f,j)=>{if(!f.attr)return;const R=`#fn${j}`,me=`:fv${j}`;if(i[R]=f.attr,f.op==="attribute_exists"){n.push(`attribute_exists(${R})`);return}if(f.op==="attribute_not_exists"){n.push(`attribute_not_exists(${R})`);return}o[me]=Be(f.value,f.type),f.op==="begins_with"?n.push(`begins_with(${R}, ${me})`):f.op==="contains"?n.push(`contains(${R}, ${me})`):n.push(`${R} ${f.op} ${me}`)}),{expr:n.join(" AND "),names:i,values:o}}function Re(i){const o=Fe(),n={indexName:A.value||void 0,limit:C.value>0?C.value:void 0,exclusiveStartKey:i};let f=o.names,j=o.values;if(o.expr&&(n.filterExpression=o.expr),s.value==="query"){const R=Ue();n.keyConditionExpression=R.keyExpr,f={...f,...R.names},j={...j,...R.values},E.value&&(n.scanIndexForward=!1)}return Object.keys(f).length&&(n.expressionAttributeNames=f),Object.keys(j).length&&(n.expressionAttributeValues=j),n}async function X(i){g.value=!0,z.value=null;try{const o=Re(i),n=s.value==="scan"?await U.scanDynamoTable(N.table.name,o):await U.queryDynamoTable(N.table.name,o);i?S.value=[...S.value,...n.items]:(S.value=n.items,w.value=new Date),d.value=n.lastEvaluatedKey,c.value=n.scannedCount,L.value=!0}catch(o){z.value=o.message||l("dynamo.requestFailed")}finally{g.value=!1}}function Le(){b.value="",V.value="=",h.value="",I.value="",E.value=!1,x.value=[],S.value=[],d.value=void 0,c.value=void 0,L.value=!1,z.value=null}function Pe(){d.value&&X(d.value)}function Je(){x.value.push({attr:"",op:"=",type:"String",value:""}),$.value=!0}function Ge(i){x.value.splice(i,1)}function Ve(i){const o={};for(const n of N.table.keySchema)n.AttributeName&&(o[n.AttributeName]=i[n.AttributeName]);return o}function Me(){const i={};for(const o of N.table.keySchema){if(!o.AttributeName)continue;const n=N.table.attributeDefinitions.find(f=>f.AttributeName===o.AttributeName);i[o.AttributeName]=(n==null?void 0:n.AttributeType)==="N"?0:""}return i}function He(){te.value="create",F.value=Me(),ae.value=null,ee.value=!0}function We(i){te.value="view",F.value=i,ae.value=null,ee.value=!0}function Qe(i){We(i.__raw)}function Xe(){F.value&&(ae.value=Ve(F.value),te.value="edit")}function Ye(){if(!F.value)return;const i={...F.value};for(const o of N.table.keySchema){if(!o.AttributeName)continue;const n=N.table.attributeDefinitions.find(f=>f.AttributeName===o.AttributeName);i[o.AttributeName]=(n==null?void 0:n.AttributeType)==="N"?0:""}F.value=i,ae.value=null,te.value="create"}function Ze(){F.value&&(se.value=Ve(F.value),re.value=!0)}async function et(){if(se.value)try{await U.deleteDynamoItem(N.table.name,se.value),k.add({title:l("dynamo.itemDeleted"),variant:"info"}),ee.value=!1,await X()}catch(i){k.add({title:l("dynamo.deleteFailed"),description:i.message,variant:"danger"})}finally{re.value=!1,se.value=null}}function tt(){X()}const Y=q(()=>{const i=S.value.length,o=c.value??i,n=o>0?Math.round(i/o*100):100;return{returned:i,scanned:o,efficiency:n,finished:!d.value}});return X(),ye(()=>[s.value,A.value],()=>{S.value=[],d.value=void 0,c.value=void 0,L.value=!1}),(i,o)=>(v(),y(e(m),{direction:"vertical",gap:"1rem"},{default:t(()=>[a(e(J),{variant:"outline"},{header:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(e(l)("dynamo.explorerTitle")),1)]),_:1})]),footer:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(O),{variant:"solid",loading:g.value,onClick:o[8]||(o[8]=n=>X())},{default:t(()=>[r(u(e(l)("dynamo.run")),1)]),_:1},8,["loading"]),a(e(O),{variant:"ghost",onClick:Le},{default:t(()=>[r(u(e(l)("dynamo.reset")),1)]),_:1})]),_:1}),a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(_),{tone:"muted"},{default:t(()=>[r(u(e(l)("dynamo.limit")),1)]),_:1}),a(e(P),{modelValue:C.value,"onUpdate:modelValue":o[9]||(o[9]=n=>C.value=n),modelModifiers:{number:!0},type:"number",size:"sm",width:"xs"},null,8,["modelValue"])]),_:1})]),_:1})]),default:t(()=>[a(e(m),{direction:"vertical",gap:"1rem"},{default:t(()=>[a(e(K),{align:"start"},{default:t(()=>[a(e(nt),{modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=n=>s.value=n),options:Te,size:"md"},null,8,["modelValue"])]),_:1}),a(e(m),{direction:"horizontal",gap:"1rem"},{default:t(()=>[a(e(K),{grow:1,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.selectTableOrIndex")},{default:t(()=>[a(e(oe),{modelValue:A.value,"onUpdate:modelValue":o[1]||(o[1]=n=>A.value=n),options:Oe.value},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),a(e(K),{grow:1,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.selectProjection")},{default:t(()=>[a(e(oe),{"model-value":"All attributes",options:[{value:"All attributes",label:e(l)("dynamo.allAttributes")}],disabled:""},null,8,["options"])]),_:1},8,["label"])]),_:1})]),_:1}),s.value==="query"?(v(),H(W,{key:0},[a(e(ze)),a(e(m),{direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(_),{weight:"semibold",size:"md"},{default:t(()=>[r(u(e(l)("dynamo.partitionKey")),1)]),_:1}),a(e(m),{direction:"horizontal",gap:"1rem"},{default:t(()=>[a(e(K),{grow:1,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.attribute")},{default:t(()=>[a(e(P),{"model-value":le.value||"—",disabled:""},null,8,["model-value"])]),_:1},8,["label"])]),_:1}),a(e(K),{grow:2,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.value")},{default:t(()=>[a(e(P),{modelValue:b.value,"onUpdate:modelValue":o[2]||(o[2]=n=>b.value=n),placeholder:e(l)("dynamo.enterAttributeValue")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1})]),_:1}),G.value?(v(),y(e(m),{key:0,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(_),{weight:"semibold",size:"md"},{default:t(()=>[r(u(e(l)("dynamo.sortKeyOptional")),1)]),_:1}),a(e(m),{direction:"horizontal",gap:"0.75rem",align:"end"},{default:t(()=>[a(e(K),{grow:1.4,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.attribute")},{default:t(()=>[a(e(P),{"model-value":G.value,disabled:""},null,8,["model-value"])]),_:1},8,["label"])]),_:1}),a(e(K),{grow:1.2,basis:"0","min-width":"11rem"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.value")},{default:t(()=>[a(e(oe),{modelValue:V.value,"onUpdate:modelValue":o[3]||(o[3]=n=>V.value=n),options:Se.value},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),a(e(K),{grow:2,basis:"0"},{default:t(()=>[a(e(P),{modelValue:h.value,"onUpdate:modelValue":o[4]||(o[4]=n=>h.value=n),placeholder:e(l)("dynamo.enterAttributeValue")},null,8,["modelValue","placeholder"])]),_:1}),V.value==="between"?(v(),y(e(K),{key:0,grow:2,basis:"0"},{default:t(()=>[a(e(P),{modelValue:I.value,"onUpdate:modelValue":o[5]||(o[5]=n=>I.value=n),placeholder:e(l)("dynamo.andValue")},null,8,["modelValue","placeholder"])]),_:1})):T("",!0),a(e(ot),{modelValue:E.value,"onUpdate:modelValue":o[6]||(o[6]=n=>E.value=n),label:e(l)("dynamo.sortDescending")},null,8,["modelValue","label"])]),_:1})]),_:1})):T("",!0)],64)):T("",!0),a(e(ze)),a(e(m),{direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(K),{align:"start"},{default:t(()=>[a(e(O),{variant:"ghost",size:"sm","aria-expanded":$.value,onClick:o[7]||(o[7]=n=>$.value=!$.value)},{icon:t(()=>[a(e(be),{name:$.value?"chevron-down":"chevron-right"},null,8,["name"])]),default:t(()=>[r(" "+u(e(l)("dynamo.filtersOptional")),1)]),_:1},8,["aria-expanded"])]),_:1}),$.value?(v(),y(e(m),{key:0,direction:"vertical",gap:"0.5rem"},{default:t(()=>[(v(!0),H(W,null,Q(x.value,(n,f)=>(v(),y(e(m),{key:`f-${f}`,direction:"horizontal",gap:"0.5rem",align:"end"},{default:t(()=>[a(e(K),{grow:1.4,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.attributeName")},{default:t(()=>[a(e(P),{modelValue:n.attr,"onUpdate:modelValue":j=>n.attr=j,placeholder:e(l)("dynamo.enterAttributeName")},null,8,["modelValue","onUpdate:modelValue","placeholder"])]),_:2},1032,["label"])]),_:2},1024),a(e(K),{grow:1.4,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.condition")},{default:t(()=>[a(e(oe),{modelValue:n.op,"onUpdate:modelValue":j=>n.op=j,options:Ie.value},null,8,["modelValue","onUpdate:modelValue","options"])]),_:2},1032,["label"])]),_:2},1024),a(e(K),{grow:.9,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("common.type")},{default:t(()=>[a(e(oe),{modelValue:n.type,"onUpdate:modelValue":j=>n.type=j,options:Ee},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:2},1024),a(e(K),{grow:1.7,basis:"0"},{default:t(()=>[a(e(B),{label:e(l)("dynamo.value")},{default:t(()=>[a(e(P),{modelValue:n.value,"onUpdate:modelValue":j=>n.value=j,disabled:n.op==="attribute_exists"||n.op==="attribute_not_exists",placeholder:e(l)("dynamo.enterAttributeValue")},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])]),_:2},1032,["label"])]),_:2},1024),a(e(O),{size:"sm",variant:"outline",onClick:j=>Ge(f)},{default:t(()=>[r(u(e(l)("dynamo.remove")),1)]),_:1},8,["onClick"])]),_:2},1024))),128)),a(e(K),{align:"start"},{default:t(()=>[a(e(O),{size:"sm",variant:"outline",onClick:Je},{default:t(()=>[r(u(e(l)("dynamo.addFilter")),1)]),_:1})]),_:1})]),_:1})):T("",!0)]),_:1})]),_:1})]),_:1}),z.value?(v(),y(e(ie),{key:0,variant:"danger",dismissible:"",onDismiss:o[10]||(o[10]=n=>z.value=null)},{default:t(()=>[r(u(z.value),1)]),_:1})):T("",!0),L.value&&!z.value?(v(),y(e(ie),{key:1,variant:Y.value.finished?"success":"warning",dismissible:"",onDismiss:o[11]||(o[11]=n=>L.value=!1)},{default:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[it("span",null,[a(e(_),{as:"strong",weight:"semibold"},{default:t(()=>[r(u(Y.value.finished?e(l)("dynamo.completed"):e(l)("dynamo.stopped")),1)]),_:1}),r(" · "+u(e(l)("dynamo.itemsReturned"))+": ",1),a(e(_),{as:"strong",weight:"semibold"},{default:t(()=>[r(u(Y.value.returned),1)]),_:1}),r(" · "+u(e(l)("dynamo.itemsScanned"))+": ",1),a(e(_),{as:"strong",weight:"semibold"},{default:t(()=>[r(u(Y.value.scanned),1)]),_:1}),r(" · "+u(e(l)("dynamo.efficiency"))+": ",1),a(e(_),{as:"strong",weight:"semibold"},{default:t(()=>[r(u(Y.value.efficiency)+"%",1)]),_:1})]),Y.value.finished?T("",!0):(v(),y(e(O),{key:0,size:"sm",variant:"outline",loading:g.value,onClick:Pe},{default:t(()=>[r(u(e(l)("dynamo.retrieveNextPage")),1)]),_:1},8,["loading"]))]),_:1})]),_:1},8,["variant"])):T("",!0),a(e(J),{variant:"outline"},{header:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(m),{direction:"vertical",gap:"0.125rem"},{default:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(A.value?e(l)("dynamo.resultsIndex",{index:A.value,table:N.table.name}):e(l)("dynamo.resultsTable",{table:N.table.name}))+" – "+u(e(l)("dynamo.itemsReturnedCount",{count:S.value.length})),1)]),_:1}),a(e(_),{tone:"muted",size:"xs"},{default:t(()=>[r(u(e(l)("dynamo.startedOn",{mode:s.value==="scan"?"Scan":"Query",time:w.value?w.value.toLocaleString():"—"})),1)]),_:1})]),_:1}),a(e(m),{direction:"horizontal",gap:"0.5rem"},{default:t(()=>[a(e(O),{size:"sm",variant:"ghost",loading:g.value,onClick:o[12]||(o[12]=n=>X())},{default:t(()=>[r(u(e(l)("common.refresh")),1)]),_:1},8,["loading"]),a(e(O),{size:"sm",variant:"outline",onClick:He},{default:t(()=>[r(u(e(l)("dynamo.createItem")),1)]),_:1})]),_:1})]),_:1})]),default:t(()=>[g.value&&!S.value.length?(v(),y(e(m),{key:0,direction:"horizontal",justify:"center",align:"center"},{default:t(()=>[a(e(xe),{label:e(l)("dynamo.running")},null,8,["label"])]),_:1})):S.value.length?(v(),y(e(ut),{key:2,columns:Ke.value,rows:qe.value,"row-key":"__id","row-activatable":"","aria-label":e(l)("dynamo.resultsAriaLabel"),onRowActivate:Qe},rt({_:2},[Q(de.value,n=>({name:`cell-__attr__${n}`,fn:t(({row:f})=>[a(e(_),{family:"mono"},{default:t(()=>[r(u($e(f[`__attr__${n}`])),1)]),_:2},1024)])})),Q(_e.value,n=>({name:`cell-__attr__${n}`,fn:t(({row:f})=>[a(e(_),{family:"mono",size:"sm"},{default:t(()=>[r(u($e(f[`__attr__${n}`])),1)]),_:2},1024)])}))]),1032,["columns","rows","aria-label"])):(v(),y(e(Ce),{key:1,title:e(l)("dynamo.noItemsTitle"),description:e(l)("dynamo.noItemsDesc")},null,8,["title","description"]))]),_:1}),a(bt,{open:ee.value,"onUpdate:open":o[13]||(o[13]=n=>ee.value=n),"table-name":N.table.name,mode:te.value,item:F.value,"original-key":ae.value,onSaved:tt,onRequestEdit:Xe,onRequestClone:Ye,onRequestDelete:Ze},null,8,["open","table-name","mode","item","original-key"]),a(e(ke),{open:re.value,"onUpdate:open":o[14]||(o[14]=n=>re.value=n),title:e(l)("dynamo.deleteItemTitle"),description:e(l)("dynamo.deleteItemDesc",{table:N.table.name}),"confirm-label":e(l)("common.delete"),"cancel-label":e(l)("common.cancel"),"confirm-variant":"danger",onConfirm:et},null,8,["open","title","description","confirm-label","cancel-label"])]),_:1}))}}),pt=Z({__name:"DynamoTableSettings",props:{table:{}},emits:["refresh"],setup(D,{emit:N}){const l=D,k=N,{t:s}=ue(),A=pe(),C=p(l.table.ttl.enabled),b=p(l.table.ttl.attributeName||""),V=p(!1),h=p(null);ye(()=>[l.table.ttl.enabled,l.table.ttl.attributeName],([x,$])=>{C.value=x,b.value=$||""});async function I(){if(C.value&&!b.value.trim()){h.value=s("dynamo.ttlAttrRequired");return}V.value=!0,h.value=null;try{await U.setDynamoTtl(l.table.name,C.value,b.value.trim()||void 0),A.add({title:C.value?s("dynamo.ttlEnabledToast"):s("dynamo.ttlDisabledToast"),description:C.value?s("dynamo.attributeLabel",{name:b.value}):void 0,variant:"success"}),k("refresh")}catch(x){h.value=x.message||s("dynamo.ttlUpdateFailed")}finally{V.value=!1}}function E(x){return x<1024?`${x} B`:x<1024*1024?`${(x/1024).toFixed(1)} KB`:`${(x/(1024*1024)).toFixed(1)} MB`}return(x,$)=>(v(),y(e(m),{direction:"vertical",gap:"1rem"},{default:t(()=>[a(e(Ne),{columns:4,gap:"0.75rem"},{default:t(()=>[a(e(ve),{label:e(s)("dynamo.items"),value:l.table.itemCount,tone:"info"},null,8,["label","value"]),a(e(ve),{label:e(s)("common.size"),value:E(l.table.sizeBytes),tone:"neutral"},null,8,["label","value"]),a(e(ve),{label:e(s)("common.status"),value:l.table.status||"UNKNOWN",tone:l.table.status==="ACTIVE"?"success":"warning"},null,8,["label","value","tone"]),a(e(ve),{label:e(s)("dynamo.billing"),value:l.table.billingMode||"—",tone:"neutral"},null,8,["label","value"])]),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[...$[3]||($[3]=[r("Time to Live (TTL)",-1)])]),_:1})]),default:t(()=>[h.value?(v(),y(e(ie),{key:0,variant:"danger",dismissible:"",onDismiss:$[0]||($[0]=S=>h.value=null)},{default:t(()=>[r(u(h.value),1)]),_:1})):T("",!0),a(e(m),{direction:"vertical",gap:"0.75rem"},{default:t(()=>[a(e(_),{tone:"muted",size:"sm"},{default:t(()=>[r(u(e(s)("dynamo.ttlDescription")),1)]),_:1}),a(e(B),{label:e(s)("dynamo.enableTtl")},{default:t(()=>[a(e(st),{modelValue:C.value,"onUpdate:modelValue":$[1]||($[1]=S=>C.value=S)},null,8,["modelValue"])]),_:1},8,["label"]),a(e(B),{label:e(s)("dynamo.attributeName"),hint:C.value?e(s)("dynamo.ttlHintRequired"):e(s)("dynamo.ttlHintDisabled")},{default:t(()=>[a(e(P),{modelValue:b.value,"onUpdate:modelValue":$[2]||($[2]=S=>b.value=S),placeholder:e(s)("dynamo.ttlAttrPlaceholder"),disabled:!C.value},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["label","hint"]),a(e(m),{direction:"horizontal",justify:"flex-end"},{default:t(()=>[a(e(O),{size:"sm",variant:"solid",loading:V.value,onClick:I},{default:t(()=>[r(u(e(s)("dynamo.apply")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[...$[4]||($[4]=[r("Streams",-1)])]),_:1})]),default:t(()=>[a(e(m),{direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(M),{tone:l.table.streamEnabled?"success":"neutral",variant:"soft"},{default:t(()=>[r(u(l.table.streamEnabled?e(s)("dynamo.enabled"):e(s)("dynamo.disabled")),1)]),_:1},8,["tone"]),l.table.streamViewType?(v(),y(e(we),{key:0,size:"sm",variant:"soft"},{default:t(()=>[r(u(l.table.streamViewType),1)]),_:1})):T("",!0)]),_:1}),l.table.streamArn?(v(),y(e(_),{key:0,tone:"muted",family:"mono",size:"xs"},{default:t(()=>[r(u(l.table.streamArn),1)]),_:1})):(v(),y(e(_),{key:1,tone:"muted",size:"xs"},{default:t(()=>[r(u(e(s)("dynamo.streamsNote")),1)]),_:1}))]),_:1})]),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(e(s)("dynamo.identifier")),1)]),_:1})]),default:t(()=>[a(e(m),{direction:"vertical",gap:"0.25rem"},{default:t(()=>[a(e(_),{tone:"muted",family:"mono",size:"xs"},{default:t(()=>[r(" ARN: "+u(l.table.arn||"—"),1)]),_:1}),a(e(_),{tone:"muted",size:"xs"},{default:t(()=>[r(u(e(s)("common.created"))+": "+u(l.table.createdAt?new Date(l.table.createdAt).toLocaleString():"—"),1)]),_:1})]),_:1})]),_:1})]),_:1}))}}),gt=Z({__name:"DynamoSeedPanel",props:{tableName:{},seedFile:{},seedItemCount:{},tableItemCount:{}},emits:["refresh"],setup(D,{emit:N}){const l=D,k=N,{t:s}=ue(),A=pe();function C(d){return d===1?s("dynamo.itemOne",{count:d}):s("dynamo.itemOther",{count:d})}const b=p(!1),V=p(!1),h=p(!1),I=p(!1),E=p(!1);async function x(){if(!b.value){b.value=!0;try{const d=await U.runSeed(l.tableName),c=d.results.reduce((g,z)=>g+(z.inserted||0),0),w=d.results.find(g=>g.skipped);w?A.add({title:s("dynamo.seedSkipped"),description:`${l.tableName}: ${w.reason||s("dynamo.unknownReason")}`,variant:"warning"}):A.add({title:s("dynamo.seedApplied"),description:s("dynamo.seedAppliedDesc",{count:c,table:l.tableName}),variant:"success"}),k("refresh")}catch(d){A.add({title:s("dynamo.seedFailed"),description:d.message,variant:"danger"})}finally{b.value=!1}}}async function $(){if(!h.value){h.value=!0;try{const c=(await U.clearSeed(l.tableName)).results.reduce((w,g)=>w+(g.deleted||0),0);A.add({title:s("dynamo.tablePurged"),description:s("dynamo.purgedDesc",{count:c,table:l.tableName}),variant:"info"}),k("refresh")}catch(d){A.add({title:s("dynamo.purgeFailed"),description:d.message,variant:"danger"})}finally{h.value=!1,I.value=!1}}}async function S(){if(!V.value){V.value=!0;try{const c=(await U.clearSeed(l.tableName)).results.reduce((z,L)=>z+(L.deleted||0),0),g=(await U.runSeed(l.tableName)).results.reduce((z,L)=>z+(L.inserted||0),0);A.add({title:s("dynamo.seedRedone"),description:s("dynamo.redoneDesc",{deleted:c,inserted:g,table:l.tableName}),variant:"success"}),k("refresh")}catch(d){A.add({title:s("dynamo.redoFailed"),description:d.message,variant:"danger"})}finally{V.value=!1,E.value=!1}}}return(d,c)=>(v(),y(e(m),{direction:"vertical",gap:"1rem"},{default:t(()=>[a(e(J),{variant:"outline"},{header:t(()=>[a(e(m),{direction:"horizontal",justify:"space-between",align:"center"},{default:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(e(s)("dynamo.seedFile")),1)]),_:1}),a(e(M),{tone:"info",variant:"soft"},{default:t(()=>[r(u(C(D.seedItemCount)),1)]),_:1})]),_:1})]),default:t(()=>[a(e(dt),null,{default:t(()=>[a(e(Ae),{label:e(s)("dynamo.path")},{default:t(()=>[a(e(_),{family:"mono",size:"sm"},{default:t(()=>[r(u(D.seedFile),1)]),_:1})]),_:1},8,["label"]),a(e(Ae),{label:e(s)("dynamo.currentRows")},{default:t(()=>[a(e(_),{family:"mono"},{default:t(()=>[r(u(D.tableItemCount),1)]),_:1})]),_:1},8,["label"])]),_:1})]),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(e(s)("common.actions")),1)]),_:1})]),default:t(()=>[a(e(m),{direction:"vertical",gap:"0.75rem"},{default:t(()=>[a(e(m),{direction:"horizontal",justify:"space-between",align:"center",gap:"1rem"},{default:t(()=>[a(e(m),{direction:"vertical",gap:"0.125rem"},{default:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(e(s)("dynamo.applySeed")),1)]),_:1}),a(e(_),{tone:"muted",size:"sm"},{default:t(()=>[r(u(e(s)("dynamo.applySeedDesc")),1)]),_:1})]),_:1}),a(e(O),{variant:"solid",loading:b.value,disabled:D.seedItemCount<=0,onClick:x},{default:t(()=>[r(u(e(s)("dynamo.apply")),1)]),_:1},8,["loading","disabled"])]),_:1}),a(e(m),{direction:"horizontal",justify:"space-between",align:"center",gap:"1rem"},{default:t(()=>[a(e(m),{direction:"vertical",gap:"0.125rem"},{default:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(e(s)("dynamo.redoSeed")),1)]),_:1}),a(e(_),{tone:"muted",size:"sm"},{default:t(()=>[r(u(e(s)("dynamo.redoSeedDesc")),1)]),_:1})]),_:1}),a(e(O),{variant:"soft",loading:V.value,disabled:D.seedItemCount<=0,onClick:c[0]||(c[0]=w=>E.value=!0)},{default:t(()=>[r(u(e(s)("dynamo.redo")),1)]),_:1},8,["loading","disabled"])]),_:1}),a(e(m),{direction:"horizontal",justify:"space-between",align:"center",gap:"1rem"},{default:t(()=>[a(e(m),{direction:"vertical",gap:"0.125rem"},{default:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(e(s)("dynamo.purgeTable")),1)]),_:1}),a(e(_),{tone:"muted",size:"sm"},{default:t(()=>[r(u(e(s)("dynamo.purgeTableDesc")),1)]),_:1})]),_:1}),a(e(O),{variant:"danger",loading:h.value,onClick:c[1]||(c[1]=w=>I.value=!0)},{default:t(()=>[r(u(e(s)("dynamo.purge")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),a(e(ke),{open:I.value,"onUpdate:open":c[2]||(c[2]=w=>I.value=w),title:e(s)("dynamo.purgeConfirmTitle",{table:D.tableName}),description:e(s)("dynamo.purgeConfirmDesc",{count:D.tableItemCount}),"confirm-label":e(s)("dynamo.purge"),"cancel-label":e(s)("common.cancel"),"confirm-variant":"danger",onConfirm:$},null,8,["open","title","description","confirm-label","cancel-label"]),a(e(ke),{open:E.value,"onUpdate:open":c[3]||(c[3]=w=>E.value=w),title:e(s)("dynamo.redoConfirmTitle",{table:D.tableName}),description:e(s)("dynamo.redoConfirmDesc",{current:D.tableItemCount,seeded:D.seedItemCount}),"confirm-label":e(s)("dynamo.redo"),"cancel-label":e(s)("common.cancel"),"confirm-variant":"danger",onConfirm:S},null,8,["open","title","description","confirm-label","cancel-label"])]),_:1}))}}),_t=Z({__name:"DynamoTableDetail",props:{tableName:{}},emits:["back"],setup(D,{emit:N}){const{t:l}=ue(),k=D,s=N,A=ft(),C=De(),b=p(null),V=p(null),h=p(!0),I=p(null),E=["items","indexes","settings","seed"],x=q({get(){const d=String(A.query.tab||"");return E.includes(d)?d:"items"},set(d){C.replace({query:{...A.query,tab:d==="items"?void 0:d}})}});async function $(){h.value=!0;try{const[d,c]=await Promise.all([U.describeDynamoTable(k.tableName),U.listSeeds().catch(()=>({seedsDir:"",entries:[]}))]);b.value=d,V.value=c.entries.find(w=>w.tableName===k.tableName)||null,I.value=null}catch(d){I.value=d.message||l("dynamo.loadTableFailed"),b.value=null}finally{h.value=!1}}function S(d){return d===1?l("dynamo.seedBadgeOne",{count:d}):l("dynamo.seedBadgeOther",{count:d})}return mt($),ye(()=>k.tableName,$),(d,c)=>(v(),y(e(m),{direction:"vertical",gap:"1rem"},{default:t(()=>{var w;return[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>{var g;return[a(e(O),{size:"sm",variant:"ghost",onClick:c[0]||(c[0]=z=>s("back"))},{default:t(()=>[a(e(be),{name:"arrow-left"}),r(" "+u(e(l)("dynamo.backTables")),1)]),_:1}),a(e(be),{name:"aws-dynamodb"}),a(e(_),{size:"lg",weight:"semibold"},{default:t(()=>[r(u(D.tableName),1)]),_:1}),(g=b.value)!=null&&g.status?(v(),y(e(M),{key:0,tone:b.value.status==="ACTIVE"?"success":"warning",variant:"soft"},{default:t(()=>[r(u(b.value.status),1)]),_:1},8,["tone"])):T("",!0),V.value?(v(),y(e(M),{key:1,tone:"info",variant:"soft"},{default:t(()=>[r(u(S(V.value.itemCount)),1)]),_:1})):T("",!0)]}),_:1}),a(e(O),{size:"sm",variant:"ghost",loading:h.value,onClick:$},{default:t(()=>[r(u(e(l)("common.refresh")),1)]),_:1},8,["loading"])]),_:1}),(w=b.value)!=null&&w.warnings.length?(v(),y(e(m),{key:0,direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(v(!0),H(W,null,Q(b.value.warnings,g=>(v(),y(e(M),{key:g,tone:"warning",variant:"soft"},{default:t(()=>[a(e(be),{name:"triangle-alert"}),r(" "+u(g),1)]),_:2},1024))),128))]),_:1})):T("",!0),I.value?(v(),y(e(ie),{key:1,variant:"danger",dismissible:"",onDismiss:c[1]||(c[1]=g=>I.value=null)},{default:t(()=>[r(u(I.value),1)]),_:1})):T("",!0),h.value&&!b.value?(v(),y(e(m),{key:2,direction:"horizontal",justify:"center",align:"center"},{default:t(()=>[a(e(xe),{label:e(l)("dynamo.loadingTable")},null,8,["label"])]),_:1})):b.value?(v(),y(e(vt),{key:3,modelValue:x.value,"onUpdate:modelValue":c[2]||(c[2]=g=>x.value=g)},{default:t(()=>[a(e(ct),null,{default:t(()=>[a(e(ce),{value:"items"},{default:t(()=>[r(u(e(l)("dynamo.items")),1)]),_:1}),a(e(ce),{value:"indexes"},{default:t(()=>[r(u(e(l)("dynamo.indexes")),1)]),_:1}),a(e(ce),{value:"settings"},{default:t(()=>[r(u(e(l)("dynamo.settings")),1)]),_:1}),V.value?(v(),y(e(ce),{key:0,value:"seed"},{default:t(()=>[r(u(e(l)("dynamo.seed")),1)]),_:1})):T("",!0)]),_:1}),a(e(fe),{value:"items"},{default:t(()=>[a(yt,{table:b.value},null,8,["table"])]),_:1}),a(e(fe),{value:"indexes"},{default:t(()=>[!b.value.gsis.length&&!b.value.lsis.length?(v(),y(e(Ce),{key:0,title:e(l)("dynamo.noIndexesTitle"),description:e(l)("dynamo.noIndexesDesc")},null,8,["title","description"])):(v(),y(e(m),{key:1,direction:"vertical",gap:"1rem"},{default:t(()=>[b.value.gsis.length?(v(),y(e(Ne),{key:0,columns:2,gap:"0.75rem"},{default:t(()=>[(v(!0),H(W,null,Q(b.value.gsis,g=>(v(),y(e(J),{key:g.IndexName,variant:"outline"},{header:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(g.IndexName),1)]),_:2},1024),a(e(M),{tone:"info",variant:"soft"},{default:t(()=>[...c[3]||(c[3]=[r("GSI",-1)])]),_:1})]),_:2},1024)]),default:t(()=>[a(e(m),{direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",wrap:""},{default:t(()=>[(v(!0),H(W,null,Q(g.KeySchema||[],z=>(v(),y(e(we),{key:z.AttributeName,size:"sm",variant:"soft"},{default:t(()=>[r(u(z.AttributeName)+" ("+u(z.KeyType)+") ",1)]),_:2},1024))),128))]),_:2},1024),a(e(_),{tone:"muted",size:"xs"},{default:t(()=>{var z;return[r(u(e(l)("dynamo.projection"))+": "+u(((z=g.Projection)==null?void 0:z.ProjectionType)||"—")+" · "+u(e(l)("dynamo.items"))+": "+u(g.ItemCount??"—")+" · "+u(e(l)("common.status"))+": "+u(g.IndexStatus||"—"),1)]}),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):T("",!0),b.value.lsis.length?(v(),y(e(Ne),{key:1,columns:2,gap:"0.75rem"},{default:t(()=>[(v(!0),H(W,null,Q(b.value.lsis,g=>(v(),y(e(J),{key:g.IndexName,variant:"outline"},{header:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(_),{weight:"semibold"},{default:t(()=>[r(u(g.IndexName),1)]),_:2},1024),a(e(M),{tone:"neutral",variant:"soft"},{default:t(()=>[...c[4]||(c[4]=[r("LSI",-1)])]),_:1})]),_:2},1024)]),default:t(()=>[a(e(m),{direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(m),{direction:"horizontal",gap:"0.5rem",wrap:""},{default:t(()=>[(v(!0),H(W,null,Q(g.KeySchema||[],z=>(v(),y(e(we),{key:z.AttributeName,size:"sm",variant:"soft"},{default:t(()=>[r(u(z.AttributeName)+" ("+u(z.KeyType)+") ",1)]),_:2},1024))),128))]),_:2},1024),a(e(_),{tone:"muted",size:"xs"},{default:t(()=>{var z;return[r(u(e(l)("dynamo.projection"))+": "+u(((z=g.Projection)==null?void 0:z.ProjectionType)||"—"),1)]}),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):T("",!0)]),_:1}))]),_:1}),a(e(fe),{value:"settings"},{default:t(()=>[a(pt,{table:b.value,onRefresh:$},null,8,["table"])]),_:1}),V.value?(v(),y(e(fe),{key:0,value:"seed"},{default:t(()=>[a(gt,{"table-name":b.value.name,"seed-file":V.value.file,"seed-item-count":V.value.itemCount,"table-item-count":b.value.itemCount,onRefresh:$},null,8,["table-name","seed-file","seed-item-count","table-item-count"])]),_:1})):T("",!0)]),_:1},8,["modelValue"])):T("",!0)]}),_:1}))}}),Nt=Z({__name:"DynamoTablePage",props:{tableName:{}},setup(D){const N=De();function l(){N.push("/dynamo")}return(k,s)=>(v(),y(_t,{"table-name":D.tableName,onBack:l},null,8,["table-name"]))}});export{Nt as default};
@@ -0,0 +1,4 @@
1
+ import{k as le,m as pe,o as ye,ab as ke,e as m,a7 as e,v as c,ac as a,a as J,n as r,j as t,J as T,i as s,a6 as i,x as S,u as d,f as k,L as _e,w as G,g as L,z as N,y as he,V as we,W as I,X as B,t as _,M as ee,Y as ze,Z as $e,F as x,T as M,I as Te,D as O,s as ae,A as U,h as Le,Q as te,P as H,_ as Ne,$ as xe,a0 as Ee,a8 as Ve,c as je,p as g,b as p,a9 as Ce,aa as ne}from"./index-DuSPnI19.js";import{t as De}from"./triggerIcons-DIPWQkJ3.js";const Re=le({__name:"LambdaDetail",props:{functionName:{}},emits:["back"],setup(E,{emit:P}){const y=E,K=P,{t:l}=Ve(),Y=Ce(),oe=ne(),h=je(),v=g(null),V=g(!0),w=g(null);let A=null;const se=["invoke","triggers","environment","logs"],Q=p({get(){const o=String(Y.query.tab||"");return se.includes(o)?o:"invoke"},set(o){oe.replace({query:{...Y.query,tab:o==="invoke"?void 0:o}})}}),j=g("{}"),C=g("RequestResponse"),D=g(!1),f=g(null),q=g(!1),ie=p(()=>[{value:"RequestResponse",label:l("lambdas.invocationTypeSync")},{value:"Event",label:l("lambdas.invocationTypeAsync")}]),z=g([]),R=g(!1),ue=p(()=>[{key:"key",label:l("lambdas.key")},{key:"value",label:l("lambdas.value")}]),W=p(()=>{var o;return Object.entries(((o=v.value)==null?void 0:o.environment)||{}).map(([u,n])=>({key:u,value:n}))}),re=p(()=>[{key:"method",label:l("lambdas.method")},{key:"path",label:l("lambdas.path")},{key:"eventType",label:l("common.type")},{key:"authorizerName",label:l("lambdas.authorizer")}]),de=p(()=>{var o;return(((o=v.value)==null?void 0:o.routes)||[]).map(u=>({...u}))}),X=p(()=>{var o;return De(((o=v.value)==null?void 0:o.triggers)||[])}),me=p(()=>{if(!f.value)return"";const o=f.value.payload;if(o===void 0)return"—";try{return JSON.stringify(o,null,2)}catch{return String(o)}});async function $(o=!0){o&&(V.value=!0);try{v.value=await J.getLambda(y.functionName),w.value=null}catch(u){w.value=u.message||l("lambdas.detailLoadFailed"),v.value=null}finally{V.value=!1}}async function F(){R.value=!0;try{const o=await J.getLambdaLogs(y.functionName);z.value=[...o.invocations].reverse()}catch(o){h.add({title:l("lambdas.logsLoadFailed"),description:o.message,variant:"danger"})}finally{R.value=!1}}async function ce(){var n;let o;const u=j.value.trim();if(u)try{o=JSON.parse(u)}catch{h.add({title:l("lambdas.invalidJsonTitle"),description:l("lambdas.invalidJsonDescription"),variant:"danger"});return}D.value=!0;try{const b=await J.invokeLambda(y.functionName,{payload:o,invocationType:C.value});C.value==="Event"?(f.value=null,q.value=!0,h.add({title:l("lambdas.acceptedTitle"),description:l("lambdas.acceptedDescription"),variant:"success"})):(q.value=!1,f.value=b,b.ok||h.add({title:l("lambdas.functionErrorTitle"),description:(n=b.functionError)==null?void 0:n.errorMessage,variant:"danger"})),await $(!1)}catch(b){h.add({title:l("lambdas.invokeFailed"),description:b.message,variant:"danger"})}finally{D.value=!1}}function ve(o){switch(o){case"online":return"success";case"starting":return"info";case"stopped":return"neutral";default:return"danger"}}function fe(o){switch(o){case"online":return l("common.online");case"starting":return l("lambdas.statusStarting");case"stopped":return l("common.stopped");case"error":return l("lambdas.statusError");default:return o??l("common.unknown")}}function be(o){return o==="ANY"?"info":"neutral"}function ge(o){return o?new Date(o).toLocaleString():"—"}return pe(()=>{$(),F(),A=window.setInterval(()=>$(!1),1e4)}),ye(()=>{A&&window.clearInterval(A)}),ke(()=>y.functionName,()=>{$(),F()}),(o,u)=>(r(),m(e(c),{direction:"vertical",gap:"1rem"},{default:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(T),{size:"sm",variant:"ghost",onClick:u[0]||(u[0]=n=>K("back"))},{icon:a(()=>[t(e(S),{name:"arrow-left"})]),default:a(()=>[s(" "+i(e(l)("nav.lambdas")),1)]),_:1}),t(e(S),{name:"aws-lambda"}),t(e(d),{weight:"semibold",size:"lg"},{default:a(()=>[s(i(E.functionName),1)]),_:1}),v.value?(r(),m(e(d),{key:0,tone:"muted",family:"mono",size:"xs"},{default:a(()=>[s(i(v.value.fullName),1)]),_:1})):k("",!0)]),_:1}),t(e(T),{size:"sm",variant:"ghost",loading:V.value,onClick:u[1]||(u[1]=n=>$())},{default:a(()=>[s(i(e(l)("common.refresh")),1)]),_:1},8,["loading"])]),_:1}),w.value?(r(),m(e(_e),{key:0,variant:"danger",dismissible:"",onDismiss:u[2]||(u[2]=n=>w.value=null)},{default:a(()=>[s(i(w.value),1)]),_:1})):k("",!0),V.value&&!v.value?(r(),m(e(c),{key:1,direction:"horizontal",justify:"center",align:"center"},{default:a(()=>[t(e(G),{label:e(l)("lambdas.loadingDetail")},null,8,["label"])]),_:1})):v.value?(r(),L(x,{key:2},[t(e(he),{columns:5,gap:"0.75rem"},{default:a(()=>[t(e(N),{label:e(l)("common.status"),value:fe(v.value.status),tone:ve(v.value.status)},null,8,["label","value","tone"]),t(e(N),{label:e(l)("lambdas.runtime"),value:v.value.runtime,tone:"info"},null,8,["label","value"]),t(e(N),{label:e(l)("lambdas.memory"),value:`${v.value.memorySize} MB`,tone:"neutral"},null,8,["label","value"]),t(e(N),{label:e(l)("lambdas.timeout"),value:`${v.value.timeout}s`,tone:"neutral"},null,8,["label","value"]),t(e(N),{label:e(l)("lambdas.mode"),value:v.value.executionMode||"—",tone:"neutral"},null,8,["label","value"])]),_:1}),t(e(Ee),{modelValue:Q.value,"onUpdate:modelValue":u[6]||(u[6]=n=>Q.value=n)},{default:a(()=>[t(e(we),null,{default:a(()=>[t(e(I),{value:"invoke"},{default:a(()=>[s(i(e(l)("lambdas.tabInvoke")),1)]),_:1}),t(e(I),{value:"triggers"},{default:a(()=>[s(i(e(l)("lambdas.triggers")),1)]),_:1}),t(e(I),{value:"environment"},{default:a(()=>[s(i(e(l)("lambdas.tabEnvironment")),1)]),_:1}),t(e(I),{value:"logs"},{default:a(()=>[s(i(e(l)("lambdas.tabLogs")),1)]),_:1})]),_:1}),t(e(B),{value:"invoke"},{default:a(()=>[t(e(c),{direction:"vertical",gap:"1rem"},{default:a(()=>[t(e(_),{variant:"outline"},{header:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(d),{weight:"semibold"},{default:a(()=>[s(i(e(l)("lambdas.invokeTitle")),1)]),_:1}),t(e(d),{tone:"muted",family:"mono",size:"xs"},{default:a(()=>[s(i(v.value.handler),1)]),_:1})]),_:1})]),footer:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(T),{variant:"solid",loading:D.value,onClick:ce},{default:a(()=>[s(i(e(l)("lambdas.invokeAction")),1)]),_:1},8,["loading"]),t(e(T),{variant:"ghost",disabled:D.value,onClick:u[5]||(u[5]=n=>j.value="{}")},{default:a(()=>[s(i(e(l)("lambdas.resetPayload")),1)]),_:1},8,["disabled"])]),_:1}),q.value?(r(),m(e(d),{key:0,tone:"muted",size:"xs"},{default:a(()=>[s(i(e(l)("lambdas.acceptedHint")),1)]),_:1})):k("",!0)]),_:1})]),default:a(()=>[t(e(c),{direction:"vertical",gap:"0.75rem"},{default:a(()=>[t(e(ee),{label:e(l)("lambdas.payloadLabel"),hint:e(l)("lambdas.payloadHint")},{default:a(()=>[t(e(ze),{modelValue:j.value,"onUpdate:modelValue":u[3]||(u[3]=n=>j.value=n),family:"mono",rows:8,placeholder:"{}"},null,8,["modelValue"])]),_:1},8,["label","hint"]),t(e(ee),{label:e(l)("lambdas.invocationTypeLabel")},{default:a(()=>[t(e($e),{modelValue:C.value,"onUpdate:modelValue":u[4]||(u[4]=n=>C.value=n),options:ie.value,width:"md"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1})]),_:1}),f.value?(r(),m(e(_),{key:0,variant:"outline"},{header:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(d),{weight:"semibold"},{default:a(()=>[s(i(e(l)("lambdas.resultTitle")),1)]),_:1}),t(e(O),{tone:f.value.ok?"success":"danger",variant:"soft"},{default:a(()=>{var n;return[s(i(f.value.ok?"OK":((n=f.value.functionError)==null?void 0:n.errorType)||e(l)("lambdas.errorBadge")),1)]}),_:1},8,["tone"])]),_:1}),t(e(d),{tone:"muted",family:"mono",size:"xs"},{default:a(()=>[s(i(f.value.durationMs)+"ms ",1)]),_:1})]),_:1})]),default:a(()=>[t(e(c),{direction:"vertical",gap:"0.75rem"},{default:a(()=>{var n,b,Z;return[f.value.ok?(r(),L(x,{key:0},[t(e(d),{weight:"semibold",size:"sm"},{default:a(()=>[s(i(e(l)("lambdas.responsePayload")),1)]),_:1}),t(e(M),{code:me.value,label:e(l)("lambdas.responsePayload"),"max-block-size":"24rem",wrap:"",copyable:""},null,8,["code","label"])],64)):(r(),L(x,{key:1},[t(e(d),{weight:"semibold",size:"sm"},{default:a(()=>[s(i(e(l)("lambdas.functionError")),1)]),_:1}),t(e(M),{code:[`${((n=f.value.functionError)==null?void 0:n.errorType)||"Error"}: ${((b=f.value.functionError)==null?void 0:b.errorMessage)||""}`,...((Z=f.value.functionError)==null?void 0:Z.trace)||[]].join(`
2
+ `),label:e(l)("lambdas.functionError"),"max-block-size":"60vh",wrap:"",copyable:""},null,8,["code","label"])],64)),t(e(Te)),t(e(d),{weight:"semibold",size:"sm"},{default:a(()=>[s(i(e(l)("lambdas.capturedLogs")),1)]),_:1}),t(e(M),{code:f.value.logs.join(`
3
+ `)||e(l)("lambdas.noOutput"),label:e(l)("lambdas.capturedLogs"),"max-block-size":"60vh",wrap:"",copyable:""},null,8,["code","label"])]}),_:1})]),_:1})):k("",!0)]),_:1})]),_:1}),t(e(B),{value:"triggers"},{default:a(()=>[t(e(c),{direction:"vertical",gap:"1rem"},{default:a(()=>[t(e(_),{variant:"outline"},{header:a(()=>[t(e(d),{weight:"semibold"},{default:a(()=>[s(i(e(l)("lambdas.triggerSources")),1)]),_:1})]),default:a(()=>[t(e(c),{direction:"horizontal",gap:"0.25rem",wrap:""},{default:a(()=>[X.value.length?(r(!0),L(x,{key:0},ae(X.value,n=>(r(),m(e(U),{key:n.name,size:"sm",variant:"soft"},Le({default:a(()=>[s(" "+i(n.name),1)]),_:2},[n.icon?{name:"icon",fn:a(()=>[t(e(S),{name:n.icon},null,8,["name"])]),key:"0"}:void 0]),1024))),128)):(r(),m(e(d),{key:1,tone:"muted"},{default:a(()=>[...u[7]||(u[7]=[s("—",-1)])]),_:1}))]),_:1})]),_:1}),t(e(_),{variant:"outline"},{header:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(S),{name:"aws-api-gateway"}),t(e(d),{weight:"semibold"},{default:a(()=>[s(i(e(l)("lambdas.httpRoutes")),1)]),_:1})]),_:1})]),default:a(()=>[v.value.routes.length?(r(),m(e(te),{key:0,columns:re.value,rows:de.value,"aria-label":e(l)("lambdas.httpRoutes")},{"cell-method":a(({row:n})=>[t(e(O),{tone:be(String(n.method)),variant:"soft"},{default:a(()=>[s(i(n.method),1)]),_:2},1032,["tone"])]),"cell-path":a(({row:n})=>[t(e(d),{family:"mono"},{default:a(()=>[s(i(n.path),1)]),_:2},1024)]),"cell-eventType":a(({row:n})=>[t(e(U),{size:"sm",variant:"soft"},{default:a(()=>[s(i(n.eventType),1)]),_:2},1024)]),"cell-authorizerName":a(({row:n})=>[n.authorizerName?(r(),m(e(U),{key:0,size:"sm",variant:"soft"},{default:a(()=>[s(i(n.authorizerName),1)]),_:2},1024)):(r(),m(e(d),{key:1,tone:"muted"},{default:a(()=>[...u[8]||(u[8]=[s("—",-1)])]),_:1}))]),_:1},8,["columns","rows","aria-label"])):(r(),m(e(H),{key:1,title:e(l)("lambdas.noRoutesTitle"),description:e(l)("lambdas.noRoutesDescription")},null,8,["title","description"]))]),_:1})]),_:1})]),_:1}),t(e(B),{value:"environment"},{default:a(()=>[t(e(_),{variant:"outline"},{header:a(()=>[t(e(d),{weight:"semibold"},{default:a(()=>[s(i(e(l)("lambdas.environmentVariables")),1)]),_:1})]),default:a(()=>[W.value.length?(r(),m(e(te),{key:0,columns:ue.value,rows:W.value,"aria-label":e(l)("lambdas.environmentVariables")},{"cell-key":a(({row:n})=>[t(e(d),{family:"mono"},{default:a(()=>[s(i(n.key),1)]),_:2},1024)]),"cell-value":a(({row:n})=>[t(e(d),{family:"mono"},{default:a(()=>[s(i(n.value),1)]),_:2},1024)]),_:1},8,["columns","rows","aria-label"])):(r(),m(e(H),{key:1,title:e(l)("lambdas.noEnvTitle"),description:e(l)("lambdas.noEnvDescription")},null,8,["title","description"]))]),_:1})]),_:1}),t(e(B),{value:"logs"},{default:a(()=>[t(e(_),{variant:"outline"},{header:a(()=>[t(e(c),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(d),{weight:"semibold"},{default:a(()=>[s(i(e(l)("lambdas.recentInvocations",{count:z.value.length})),1)]),_:1}),t(e(T),{size:"sm",variant:"ghost",loading:R.value,onClick:F},{default:a(()=>[s(i(e(l)("common.refresh")),1)]),_:1},8,["loading"])]),_:1})]),default:a(()=>[R.value&&!z.value.length?(r(),m(e(c),{key:0,direction:"horizontal",justify:"center",align:"center"},{default:a(()=>[t(e(G),{label:e(l)("lambdas.loadingInvocations")},null,8,["label"])]),_:1})):z.value.length?(r(),m(e(Ne),{key:2,type:"multiple"},{default:a(()=>[(r(!0),L(x,null,ae(z.value,(n,b)=>(r(),m(e(xe),{key:`inv-${b}`,value:`inv-${b}`},{trigger:a(()=>[t(e(c),{as:"span",grow:"",direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(c),{as:"span",direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(d),{size:"sm"},{default:a(()=>[s(i(ge(n.at)),1)]),_:2},1024),t(e(O),{tone:n.ok?"success":"danger",variant:"soft"},{default:a(()=>[s(i(n.ok?"OK":e(l)("lambdas.errorBadge")),1)]),_:2},1032,["tone"]),n.statusCode&&n.statusCode>=400?(r(),m(e(O),{key:0,tone:n.statusCode>=500?"danger":"warning",variant:"soft"},{default:a(()=>[s(" HTTP "+i(n.statusCode),1)]),_:2},1032,["tone"])):k("",!0)]),_:2},1024),t(e(d),{tone:"muted",family:"mono",size:"xs"},{default:a(()=>[s(i(n.durationMs)+"ms · "+i(n.logs.length===1?e(l)("lambdas.logLine",{count:n.logs.length}):e(l)("lambdas.logLines",{count:n.logs.length})),1)]),_:2},1024)]),_:2},1024)]),default:a(()=>[t(e(M),{code:n.logs.join(`
4
+ `)||e(l)("lambdas.noOutput"),label:e(l)("lambdas.invocationLog"),"max-block-size":"60vh",wrap:"",copyable:""},null,8,["code","label"])]),_:2},1032,["value"]))),128))]),_:1})):(r(),m(e(H),{key:1,title:e(l)("lambdas.noInvocationsTitle"),description:e(l)("lambdas.noInvocationsDescription")},null,8,["title","description"]))]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)):k("",!0)]),_:1}))}}),Be=le({__name:"LambdaDetailPage",props:{functionName:{}},setup(E){const P=ne();function y(){P.push("/lambdas")}return(K,l)=>(r(),m(Re,{"function-name":E.functionName,onBack:y},null,8,["function-name"]))}});export{Be as default};