local-serverless-stack 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/client/index.d.ts +7 -0
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +6 -0
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/namespaces/apis.d.ts +48 -0
  7. package/dist/client/namespaces/apis.d.ts.map +1 -0
  8. package/dist/client/namespaces/apis.js +12 -0
  9. package/dist/client/namespaces/apis.js.map +1 -0
  10. package/dist/client/namespaces/lambdas.d.ts +61 -0
  11. package/dist/client/namespaces/lambdas.d.ts.map +1 -0
  12. package/dist/client/namespaces/lambdas.js +13 -0
  13. package/dist/client/namespaces/lambdas.js.map +1 -0
  14. package/dist/client/namespaces/services.d.ts +40 -0
  15. package/dist/client/namespaces/services.d.ts.map +1 -1
  16. package/dist/client/namespaces/services.js +3 -0
  17. package/dist/client/namespaces/services.js.map +1 -1
  18. package/dist/client/types.d.ts +2 -0
  19. package/dist/client/types.d.ts.map +1 -1
  20. package/dist/server/index.js +25 -2
  21. package/dist/server/index.js.map +1 -1
  22. package/dist/server/routes/apis.d.ts +3 -0
  23. package/dist/server/routes/apis.d.ts.map +1 -0
  24. package/dist/server/routes/apis.js +54 -0
  25. package/dist/server/routes/apis.js.map +1 -0
  26. package/dist/server/routes/lambdas.d.ts +3 -0
  27. package/dist/server/routes/lambdas.d.ts.map +1 -0
  28. package/dist/server/routes/lambdas.js +85 -0
  29. package/dist/server/routes/lambdas.js.map +1 -0
  30. package/dist/server/routes/services.d.ts.map +1 -1
  31. package/dist/server/routes/services.js +91 -81
  32. package/dist/server/routes/services.js.map +1 -1
  33. package/dist/server/runtime/runtime-worker.d.ts +2 -0
  34. package/dist/server/runtime/runtime-worker.d.ts.map +1 -0
  35. package/dist/server/runtime/runtime-worker.js +207 -0
  36. package/dist/server/runtime/runtime-worker.js.map +1 -0
  37. package/dist/server/services/api-gateway-events.d.ts +44 -0
  38. package/dist/server/services/api-gateway-events.d.ts.map +1 -0
  39. package/dist/server/services/api-gateway-events.js +299 -0
  40. package/dist/server/services/api-gateway-events.js.map +1 -0
  41. package/dist/server/services/authorizer-service.d.ts +25 -0
  42. package/dist/server/services/authorizer-service.d.ts.map +1 -0
  43. package/dist/server/services/authorizer-service.js +0 -0
  44. package/dist/server/services/authorizer-service.js.map +1 -0
  45. package/dist/server/services/cache-manager.d.ts +6 -0
  46. package/dist/server/services/cache-manager.d.ts.map +1 -1
  47. package/dist/server/services/cache-manager.js.map +1 -1
  48. package/dist/server/services/config-manager.d.ts +34 -0
  49. package/dist/server/services/config-manager.d.ts.map +1 -1
  50. package/dist/server/services/config-manager.js +48 -0
  51. package/dist/server/services/config-manager.js.map +1 -1
  52. package/dist/server/services/function-registry.d.ts +33 -0
  53. package/dist/server/services/function-registry.d.ts.map +1 -0
  54. package/dist/server/services/function-registry.js +100 -0
  55. package/dist/server/services/function-registry.js.map +1 -0
  56. package/dist/server/services/gateway-manager.d.ts +31 -0
  57. package/dist/server/services/gateway-manager.d.ts.map +1 -0
  58. package/dist/server/services/gateway-manager.js +292 -0
  59. package/dist/server/services/gateway-manager.js.map +1 -0
  60. package/dist/server/services/lambda-runtime-manager.d.ts +52 -0
  61. package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -0
  62. package/dist/server/services/lambda-runtime-manager.js +326 -0
  63. package/dist/server/services/lambda-runtime-manager.js.map +1 -0
  64. package/dist/server/services/localstack-manager.d.ts.map +1 -1
  65. package/dist/server/services/localstack-manager.js +9 -0
  66. package/dist/server/services/localstack-manager.js.map +1 -1
  67. package/dist/server/services/serverless-state-parser.d.ts +86 -0
  68. package/dist/server/services/serverless-state-parser.d.ts.map +1 -0
  69. package/dist/server/services/serverless-state-parser.js +245 -0
  70. package/dist/server/services/serverless-state-parser.js.map +1 -0
  71. package/dist/server/services/service-registrar.d.ts +34 -0
  72. package/dist/server/services/service-registrar.d.ts.map +1 -0
  73. package/dist/server/services/service-registrar.js +262 -0
  74. package/dist/server/services/service-registrar.js.map +1 -0
  75. package/dist/server/services/source-watcher.d.ts +24 -0
  76. package/dist/server/services/source-watcher.d.ts.map +1 -0
  77. package/dist/server/services/source-watcher.js +101 -0
  78. package/dist/server/services/source-watcher.js.map +1 -0
  79. package/dist/ui/assets/ApisPage-DdgKjEdS.js +1 -0
  80. package/dist/ui/assets/{BucketDetailPage-Hg4Gg3jC.js → BucketDetailPage-DZQGxm0y.js} +1 -1
  81. package/dist/ui/assets/{BucketsPage-BHkg7TQp.js → BucketsPage-xYXzxCvd.js} +1 -1
  82. package/dist/ui/assets/{DynamoPage-CH_TgPh_.js → DynamoPage-B1__Rjr2.js} +1 -1
  83. package/dist/ui/assets/{DynamoTablePage-BPvl5y6_.js → DynamoTablePage-BCoxPdXW.js} +1 -1
  84. package/dist/ui/assets/LambdaDetailPage-B85CA8tb.js +4 -0
  85. package/dist/ui/assets/LambdasPage-_TtxQMT_.js +1 -0
  86. package/dist/ui/assets/{OverviewPage-CwLnw4VW.css → OverviewPage-6jDXV1jr.css} +1 -1
  87. package/dist/ui/assets/OverviewPage-CqTKTY64.js +1 -0
  88. package/dist/ui/assets/{QueueDetailPage-DHDPgRDc.js → QueueDetailPage-BOr_sImA.js} +1 -1
  89. package/dist/ui/assets/{QueuesPage-D5YcEbUU.js → QueuesPage-DpByfcM5.js} +1 -1
  90. package/dist/ui/assets/{ServiceDetailPage-DxJ0t7HQ.js → ServiceDetailPage-DsWgV-ad.js} +1 -1
  91. package/dist/ui/assets/{ServicesPage-DWDaaOz9.js → ServicesPage-CGlpsj98.js} +1 -1
  92. package/dist/ui/assets/{index-D3WwZ4lY.js → index-BWlB542w.js} +11 -11
  93. package/dist/ui/index.html +1 -1
  94. package/package.json +1 -1
  95. package/packages/serverless-plugin/README.md +21 -3
  96. package/packages/serverless-plugin/dist/index.js +8 -3
  97. package/packages/serverless-plugin/dist/index.js.map +1 -1
  98. package/dist/ui/assets/OverviewPage-nhomNDqx.js +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.0] - 2026-07-08
9
+
10
+ API Gateway & Lambda runtime emulation: LSS now registers every function and HTTP route a service declares, executes the handlers itself in per-service workers, and answers on the service's own API (30xx) and Lambda-invoke (130xx) ports — making `serverless-offline` optional. Monorepo callers and the LocalStack event proxies keep their ports and contracts unchanged; only the process answering changes.
11
+
12
+ ### Added
13
+ - **Function & route registry**: `POST /api/services/register` (and the `serverless-lss` plugin on `sls package`) now also parses `.serverless/serverless-state.json` — functions (name, handler, runtime, env, memory, timeout, triggers, artifact), REST (`http`, payload v1) and HTTP API (`httpApi`, payload v2) routes, and Lambda authorizers — persisted in the service cache and rehydrated on orchestrator restart. The plugin additionally reports `apiPort` (`custom.lss.apiPort` > `custom['serverless-offline'].httpPort`; same for `invokePort`/`lambdaPort`).
14
+ - **Lambda runtime workers** (`lambda-runtime-manager.ts` + `runtime/runtime-worker.ts`): one forked worker per service loads handlers lazily (warm starts), applies per-function env/timeout, builds a faithful Lambda `context`, captures `console.*` per invocation via `AsyncLocalStorage`, tolerates handler crashes (auto-restart with backoff) and enforces timeouts with the classic `Task timed out after N seconds` shape. Execution modes: `artifact` (extracts the `sls package` zip — TS and JS handlers arrive compiled), `source` (requires handlers from the source tree; TS via `esbuild-register`/`tsx`/`ts-node` resolved from the service's or LSS's node_modules), `auto` (artifact when a zip exists). Configured globally (`lambdaRuntime`) or per service (`serviceRuntime`).
15
+ - **AWS Lambda Invoke API per service (130xx)**: `POST /2015-03-31/functions/{name}/invocations` honoring `X-Amz-Invocation-Type` (`RequestResponse` 200, `Event` 202, `DryRun` 204) and `X-Amz-Function-Error`/`X-Amz-Log-Result` — the exact contract the LocalStack event-source proxies already call, so SQS/stream/S3 flows work with no serverless-offline running and zero provisioner changes. **Every** registered function is invocable this way, including schedule/queue-only ones.
16
+ - **API Gateway emulator per service (30xx)**: multi-port gateway inside the orchestrator process (no extra processes). Route matching (literal > `{param}` > `{proxy+}` > `$default`; exact method > `ANY`), API Gateway event payloads v1.0/v2.0 (multi-value headers/query, cookies, base64 bodies), response mapping with real semantics (v1 malformed proxy response → 502; v2 inferred responses), CORS preflight answering, and a `port-conflict` listener status instead of a failed registration when serverless-offline still owns the port.
17
+ - **Lambda authorizers**: REST `token` and `request` (payload 1.0) and HTTP API `request` (payload 1.0/2.0 with `enableSimpleResponses`), identity-source extraction for v1 (`method.request.header.x`) and v2 (`$request.header.x`) styles (missing source → 401 without invoking), IAM-policy and simple-response interpretation (deny → 403), result caching per `resultTtlInSeconds` with `POST /api/apis/authorizer-cache/clear` (global/per-service/per-authorizer) for e2e identity switches, and **cross-service resolution**: an authorizer `arn` pointing at another registered service's function resolves through the global registry — something serverless-offline cannot do in a monorepo.
18
+ - **Hot reload** (`source-watcher.ts`): watched services restart their runtime worker on source changes (module cache flush); `serverless.yml`/`package.json` changes re-package (with `autoPackage`) and fully re-register. Defaults: on in source mode, off in artifact mode; `watch` configurable globally/per service.
19
+ - **New orchestrator endpoints**: `GET /api/lambdas` (+ `/:name`, `POST /:name/invoke`, `GET /:name/logs`), `GET /api/apis`, `POST /api/apis/authorizer-cache/clear`, `GET /api/services/:name/runtime`, `POST /api/services/:name/runtime/start|stop`; `GET /api/services` now reports `functionsCount`/`routesCount`/`runtimeStatus`/`gateway`.
20
+ - **`LssClient`**: new `lambdas` (`list`/`get`/`invoke`/`logs`) and `apis` (`list`/`clearAuthorizerCache`) namespaces plus `services.runtime`/`startRuntime`/`stopRuntime`; `RegisterServiceInput.apiPort`.
21
+ - **Dashboard**: new **Lambdas** (list + detail with JSON invoke, triggers, env, invocation logs) and **APIs** (routes per service with listener status, authorizers, copy-as-curl) sections.
22
+ - **Example `examples/multi-service-sample`**: three microservices (TypeScript + JavaScript, REST v1 + HTTP API v2) on community LocalStack exercising local and cross-service authorizers, SQS event flow and an invocable scheduled function — with no serverless-offline dependency.
23
+ - **PRD**: `docs/PRD_API_LAMBDA_EMULATION.md` documents the full design (Portuguese, like the original proposal doc).
24
+
25
+ ### Changed
26
+ - `/api/services/register` accepts `apiPort` and derives a missing `invokePort` as `apiPort + lambdaRuntime.invokePortOffset` (default 10000 — the 30xx→130xx monorepo convention). Registration/activation logic was factored out of the route into `service-registrar.ts`.
27
+ - `serverless-lss` plugin package bumped to `0.2.0` because its registration payload now includes API Gateway port metadata (`apiPort`).
28
+
8
29
  ## [0.4.0] - 2026-06-08
9
30
 
10
31
  Per-service and global package parameters for `autoPackage`, so different microservices can package with different `serverless` params/env (e.g. one service needs `--param=custom-stage=offline` while others use the plain command).
@@ -8,6 +8,8 @@ import { type ResourcesApi } from './namespaces/resources';
8
8
  import { type ServicesApi } from './namespaces/services';
9
9
  import { type ConfigApi } from './namespaces/config';
10
10
  import { type HealthApi } from './namespaces/health';
11
+ import { type LambdasApi } from './namespaces/lambdas';
12
+ import { type ApisApi } from './namespaces/apis';
11
13
  import type { LssClientOptions } from './types';
12
14
  export declare class LssClient {
13
15
  /** Resolved base URL the data-plane talks to. */
@@ -20,6 +22,8 @@ export declare class LssClient {
20
22
  readonly services: ServicesApi;
21
23
  readonly config: ConfigApi;
22
24
  readonly health: HealthApi;
25
+ readonly lambdas: LambdasApi;
26
+ readonly apis: ApisApi;
23
27
  readonly lifecycle: LifecycleApi;
24
28
  private readonly http;
25
29
  constructor(options?: LssClientOptions);
@@ -35,6 +39,9 @@ export type { ResourcesApi } from './namespaces/resources';
35
39
  export type { ServicesApi } from './namespaces/services';
36
40
  export type { ConfigApi } from './namespaces/config';
37
41
  export type { HealthApi } from './namespaces/health';
42
+ export type { LambdasApi, LambdaSummary, LambdaDetail, InvokeLambdaInput, InvokeLambdaResult, LambdaInvocationRecord, } from './namespaces/lambdas';
43
+ export type { ApisApi, ServiceApiInfo, ApiRouteInfo, ApiAuthorizerInfo, GatewayListenerStatus, } from './namespaces/apis';
44
+ export type { ServiceRuntimeStatus } from './namespaces/services';
38
45
  export type { LifecycleApi, StartOptions, StartResult, StopResult, StatusResult, LogsResult, WaitUntilReadyOptions, } from './lifecycle';
39
46
  export type * from './types';
40
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,qBAAa,SAAS;IACpB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;gBAEhB,OAAO,GAAE,gBAAqB;IAgB1C,kFAAkF;IAClF,OAAO,CAAC,CAAC,GAAG,OAAO,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC;CAGd;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,mBAAmB,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ const resources_1 = require("./namespaces/resources");
21
21
  const services_1 = require("./namespaces/services");
22
22
  const config_1 = require("./namespaces/config");
23
23
  const health_1 = require("./namespaces/health");
24
+ const lambdas_1 = require("./namespaces/lambdas");
25
+ const apis_1 = require("./namespaces/apis");
24
26
  class LssClient {
25
27
  /** Resolved base URL the data-plane talks to. */
26
28
  baseUrl;
@@ -32,6 +34,8 @@ class LssClient {
32
34
  services;
33
35
  config;
34
36
  health;
37
+ lambdas;
38
+ apis;
35
39
  lifecycle;
36
40
  http;
37
41
  constructor(options = {}) {
@@ -46,6 +50,8 @@ class LssClient {
46
50
  this.services = (0, services_1.createServicesApi)(this.http);
47
51
  this.config = (0, config_1.createConfigApi)(this.http);
48
52
  this.health = (0, health_1.createHealthApi)(this.http);
53
+ this.lambdas = (0, lambdas_1.createLambdasApi)(this.http);
54
+ this.apis = (0, apis_1.createApisApi)(this.http);
49
55
  this.lifecycle = new lifecycle_1.Lifecycle({ health: this.health, cwd: cfg.cwd, configPath: cfg.configPath });
50
56
  }
51
57
  /** Escape hatch for an arbitrary orchestrator call not covered by a namespace. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";AAAA,mEAAmE;AACnE,EAAE;AACF,wDAAwD;AACxD,sEAAsE;AACtE,+EAA+E;AAC/E,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;;;AAEpF,yDAAmD;AACnD,iCAA+C;AAC/C,2CAA2D;AAC3D,8CAAmE;AACnE,gDAAsE;AACtE,gDAAsE;AACtE,kDAAyE;AACzE,sDAA+E;AAC/E,oDAA4E;AAC5E,gDAAsE;AACtE,gDAAsE;AAGtE,MAAa,SAAS;IACpB,iDAAiD;IACxC,OAAO,CAAS;IAChB,KAAK,CAAW;IAChB,MAAM,CAAY;IAClB,MAAM,CAAY;IAClB,OAAO,CAAa;IACpB,SAAS,CAAe;IACxB,QAAQ,CAAc;IACtB,MAAM,CAAY;IAClB,MAAM,CAAY;IAClB,SAAS,CAAe;IAEhB,IAAI,CAAO;IAE5B,YAAY,UAA4B,EAAE;QACxC,MAAM,GAAG,GAAG,IAAA,gCAAa,EAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAE3B,IAAI,CAAC,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAA,0BAAgB,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,kFAAkF;IAClF,OAAO,CACL,MAAc,EACd,IAAY,EACZ,IAAc,EACd,KAAkC;QAElC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF;AAxCD,8BAwCC;AAED,+BAAsC;AAA7B,oGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";AAAA,mEAAmE;AACnE,EAAE;AACF,wDAAwD;AACxD,sEAAsE;AACtE,+EAA+E;AAC/E,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;;;AAEpF,yDAAmD;AACnD,iCAA+C;AAC/C,2CAA2D;AAC3D,8CAAmE;AACnE,gDAAsE;AACtE,gDAAsE;AACtE,kDAAyE;AACzE,sDAA+E;AAC/E,oDAA4E;AAC5E,gDAAsE;AACtE,gDAAsE;AACtE,kDAAyE;AACzE,4CAAgE;AAGhE,MAAa,SAAS;IACpB,iDAAiD;IACxC,OAAO,CAAS;IAChB,KAAK,CAAW;IAChB,MAAM,CAAY;IAClB,MAAM,CAAY;IAClB,OAAO,CAAa;IACpB,SAAS,CAAe;IACxB,QAAQ,CAAc;IACtB,MAAM,CAAY;IAClB,MAAM,CAAY;IAClB,OAAO,CAAa;IACpB,IAAI,CAAU;IACd,SAAS,CAAe;IAEhB,IAAI,CAAO;IAE5B,YAAY,UAA4B,EAAE;QACxC,MAAM,GAAG,GAAG,IAAA,gCAAa,EAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAE3B,IAAI,CAAC,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAA,0BAAgB,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAA,0BAAgB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,kFAAkF;IAClF,OAAO,CACL,MAAc,EACd,IAAY,EACZ,IAAc,EACd,KAAkC;QAElC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF;AA5CD,8BA4CC;AAED,+BAAsC;AAA7B,oGAAA,YAAY,OAAA"}
@@ -0,0 +1,48 @@
1
+ import type { Http } from '../http';
2
+ export type GatewayListenerStatus = 'online' | 'port-conflict' | 'stopped' | 'disabled';
3
+ export interface ApiRouteInfo {
4
+ method: string;
5
+ path: string;
6
+ functionName: string;
7
+ eventType: 'http' | 'httpApi';
8
+ payloadVersion: '1.0' | '2.0';
9
+ cors: boolean;
10
+ authorizerName?: string;
11
+ }
12
+ export interface ApiAuthorizerInfo {
13
+ name: string;
14
+ type: 'request' | 'token';
15
+ eventType: 'http' | 'httpApi';
16
+ payloadVersion: '1.0' | '2.0';
17
+ enableSimpleResponses: boolean;
18
+ identitySource: string[];
19
+ resultTtlInSeconds: number;
20
+ functionName?: string;
21
+ arn?: string;
22
+ }
23
+ export interface ServiceApiInfo {
24
+ service: string;
25
+ apiPort?: number;
26
+ invokePort?: number;
27
+ stage?: string;
28
+ status: GatewayListenerStatus;
29
+ invokeStatus: GatewayListenerStatus;
30
+ routes: ApiRouteInfo[];
31
+ authorizers: ApiAuthorizerInfo[];
32
+ }
33
+ export interface ApisApi {
34
+ list(): Promise<ServiceApiInfo[]>;
35
+ /**
36
+ * Flush cached authorizer results (all, per service, or per authorizer) —
37
+ * lets e2e suites switch identities without waiting out resultTtlInSeconds.
38
+ */
39
+ clearAuthorizerCache(filter?: {
40
+ service?: string;
41
+ authorizer?: string;
42
+ }): Promise<{
43
+ success: true;
44
+ removed: number;
45
+ }>;
46
+ }
47
+ export declare function createApisApi(http: Http): ApisApi;
48
+ //# sourceMappingURL=apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/apis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;AAExF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,qBAAqB,CAAC;IAC9B,YAAY,EAAE,qBAAqB,CAAC;IACpC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAClC;;;OAGG;IACH,oBAAoB,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvH;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQjD"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createApisApi = createApisApi;
4
+ function createApisApi(http) {
5
+ return {
6
+ list: () => http.json('GET', '/api/apis'),
7
+ clearAuthorizerCache: (filter) => http.json('POST', '/api/apis/authorizer-cache/clear', {
8
+ query: { service: filter?.service, authorizer: filter?.authorizer },
9
+ }),
10
+ };
11
+ }
12
+ //# sourceMappingURL=apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.js","sourceRoot":"","sources":["../../../src/client/namespaces/apis.ts"],"names":[],"mappings":";;AA8CA,sCAQC;AARD,SAAgB,aAAa,CAAC,IAAU;IACtC,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;QACzC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE,CAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kCAAkC,EAAE;YACpD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;SACpE,CAAC;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { Http } from '../http';
2
+ export interface LambdaSummary {
3
+ name: string;
4
+ fullName: string;
5
+ service: string;
6
+ handler: string;
7
+ runtime: string;
8
+ memorySize: number;
9
+ timeout: number;
10
+ triggers: string[];
11
+ invokePort?: number;
12
+ status: 'stopped' | 'starting' | 'online' | 'error';
13
+ executionMode?: 'artifact' | 'source';
14
+ invocations: number;
15
+ errors: number;
16
+ lastInvokedAt?: number;
17
+ lastDurationMs?: number;
18
+ lastOk?: boolean;
19
+ }
20
+ export interface LambdaDetail extends LambdaSummary {
21
+ environment: Record<string, string>;
22
+ routes: Array<{
23
+ method: string;
24
+ path: string;
25
+ eventType: 'http' | 'httpApi';
26
+ authorizerName?: string;
27
+ }>;
28
+ }
29
+ export interface InvokeLambdaInput {
30
+ payload?: unknown;
31
+ invocationType?: 'RequestResponse' | 'Event';
32
+ }
33
+ export interface InvokeLambdaResult {
34
+ ok: boolean;
35
+ payload?: unknown;
36
+ functionError?: {
37
+ errorType?: string;
38
+ errorMessage?: string;
39
+ trace?: string[];
40
+ };
41
+ logs: string[];
42
+ durationMs: number;
43
+ }
44
+ export interface LambdaInvocationRecord {
45
+ at: number;
46
+ functionName: string;
47
+ ok: boolean;
48
+ durationMs: number;
49
+ logs: string[];
50
+ }
51
+ export interface LambdasApi {
52
+ list(): Promise<LambdaSummary[]>;
53
+ get(name: string): Promise<LambdaDetail>;
54
+ /** Invoke any registered function — including schedule/queue-only ones. */
55
+ invoke(name: string, input?: InvokeLambdaInput): Promise<InvokeLambdaResult>;
56
+ logs(name: string): Promise<{
57
+ invocations: LambdaInvocationRecord[];
58
+ }>;
59
+ }
60
+ export declare function createLambdasApi(http: Http): LambdasApi;
61
+ //# sourceMappingURL=lambdas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambdas.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/lambdas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,aAAa,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzG;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,cAAc,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,2EAA2E;IAC3E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,sBAAsB,EAAE,CAAA;KAAE,CAAC,CAAC;CACxE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAQvD"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLambdasApi = createLambdasApi;
4
+ function createLambdasApi(http) {
5
+ const base = (name) => `/api/lambdas/${encodeURIComponent(name)}`;
6
+ return {
7
+ list: () => http.json('GET', '/api/lambdas'),
8
+ get: (name) => http.json('GET', base(name)),
9
+ invoke: (name, input) => http.json('POST', `${base(name)}/invoke`, { body: input ?? {} }),
10
+ logs: (name) => http.json('GET', `${base(name)}/logs`),
11
+ };
12
+ }
13
+ //# sourceMappingURL=lambdas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambdas.js","sourceRoot":"","sources":["../../../src/client/namespaces/lambdas.ts"],"names":[],"mappings":";;AAwDA,4CAQC;AARD,SAAgB,gBAAgB,CAAC,IAAU;IACzC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1E,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;QAC5C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACzF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;KACvD,CAAC;AACJ,CAAC"}
@@ -1,5 +1,35 @@
1
1
  import type { Http } from '../http';
2
2
  import type { RegisterServiceInput, StartServiceInput } from '../types';
3
+ export interface ServiceRuntimeStatus {
4
+ runtime: {
5
+ status: 'stopped' | 'starting' | 'online' | 'error';
6
+ executionMode?: 'auto' | 'artifact' | 'source';
7
+ resolvedMode?: 'artifact' | 'source';
8
+ handlerRoot?: string;
9
+ pid?: number;
10
+ startedAt?: number;
11
+ error?: string;
12
+ invocations: number;
13
+ errors: number;
14
+ lastInvokedAt?: number;
15
+ };
16
+ gateway: {
17
+ api: {
18
+ port?: number;
19
+ status: 'online' | 'port-conflict' | 'stopped' | 'disabled';
20
+ };
21
+ invoke: {
22
+ port?: number;
23
+ status: 'online' | 'port-conflict' | 'stopped' | 'disabled';
24
+ };
25
+ };
26
+ watch: {
27
+ watching: boolean;
28
+ lastReloadAt?: number;
29
+ lastReloadKind?: 'runtime' | 'full';
30
+ lastError?: string;
31
+ };
32
+ }
3
33
  export interface ServicesApi {
4
34
  register(input: RegisterServiceInput): Promise<unknown>;
5
35
  list(): Promise<unknown[]>;
@@ -22,6 +52,16 @@ export interface ServicesApi {
22
52
  success: boolean;
23
53
  }>;
24
54
  logs(name: string): Promise<unknown>;
55
+ /** Lambda runtime + gateway/invoke listener status for one service. */
56
+ runtime(name: string): Promise<ServiceRuntimeStatus>;
57
+ /** Start (or restart) the service's Lambda runtime worker and listeners. */
58
+ startRuntime(name: string): Promise<{
59
+ success: boolean;
60
+ }>;
61
+ /** Stop the service's Lambda runtime worker and listeners. */
62
+ stopRuntime(name: string): Promise<{
63
+ success: boolean;
64
+ }>;
25
65
  }
26
66
  export declare function createServicesApi(http: Http): ServicesApi;
27
67
  //# sourceMappingURL=services.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7G,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAYzD"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,9 @@ function createServicesApi(http) {
12
12
  start: (name, input) => http.json('POST', `${base(name)}/start`, { body: input ?? {} }),
13
13
  stop: (name) => http.json('POST', `${base(name)}/stop`),
14
14
  logs: (name) => http.json('GET', `${base(name)}/logs`),
15
+ runtime: (name) => http.json('GET', `${base(name)}/runtime`),
16
+ startRuntime: (name) => http.json('POST', `${base(name)}/runtime/start`),
17
+ stopRuntime: (name) => http.json('POST', `${base(name)}/runtime/stop`),
15
18
  };
16
19
  }
17
20
  //# sourceMappingURL=services.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":";;AAcA,8CAYC;AAZD,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACjF,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC;QAC7C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/E,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACvF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;KACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":";;AA6CA,8CAeC;AAfD,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACjF,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC;QAC7C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/E,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACvF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACtD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -215,6 +215,8 @@ export interface ResourceOwners {
215
215
  export interface RegisterServiceInput {
216
216
  servicePath: string;
217
217
  invokePort?: number;
218
+ /** Gateway proxy port for the service's HTTP routes (30xx convention). */
219
+ apiPort?: number;
218
220
  region?: string;
219
221
  }
220
222
  export interface StartServiceInput {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,15 @@ import { bucketsRouter } from './routes/buckets.js';
9
9
  import { seedsRouter } from './routes/seeds.js';
10
10
  import { dynamoRouter } from './routes/dynamo.js';
11
11
  import { configRouter } from './routes/config.js';
12
+ import { lambdasRouter } from './routes/lambdas.js';
13
+ import { apisRouter } from './routes/apis.js';
12
14
  import { LocalStackManager } from './services/localstack-manager.js';
13
15
  import { ConfigManager } from './services/config-manager.js';
14
16
  import { QueueInspector } from './services/queue-inspector.js';
17
+ import { ServiceRegistrar } from './services/service-registrar.js';
18
+ import { LambdaRuntimeManager } from './services/lambda-runtime-manager.js';
19
+ import { GatewayManager } from './services/gateway-manager.js';
20
+ import { SourceWatcher } from './services/source-watcher.js';
15
21
  import { startDynamoProxy } from './dev/dynamo-proxy.js';
16
22
  const __filename = fileURLToPath(import.meta.url);
17
23
  const __dirname = path.dirname(__filename);
@@ -30,6 +36,8 @@ app.use('/api/buckets', bucketsRouter);
30
36
  app.use('/api/seeds', seedsRouter);
31
37
  app.use('/api/dynamo', dynamoRouter);
32
38
  app.use('/api/config', configRouter);
39
+ app.use('/api/lambdas', lambdasRouter);
40
+ app.use('/api/apis', apisRouter);
33
41
  // Health check
34
42
  app.get('/api/health', (_req, res) => {
35
43
  res.json({
@@ -61,6 +69,15 @@ async function start() {
61
69
  console.log(`✅ LocalStack running on ${localstack.getEndpoint()}`);
62
70
  });
63
71
  QueueInspector.getInstance().startPolling();
72
+ // Hot reload: source changes restart the service worker; serverless.yml
73
+ // changes re-package + re-register.
74
+ SourceWatcher.getInstance().setHandlers({
75
+ onRuntimeReload: name => LambdaRuntimeManager.getInstance().restartRuntime(name),
76
+ onFullReload: name => ServiceRegistrar.getInstance().reregister(name),
77
+ });
78
+ // Reactivate cached services (runtime workers + gateway/invoke listeners)
79
+ // so registrations survive orchestrator restarts.
80
+ await ServiceRegistrar.getInstance().rehydrateAll();
64
81
  // Optional DynamoDB proxy
65
82
  if (configManager.isEnableDynamoProxy()) {
66
83
  const proxyPort = configManager.getDynamoProxyPort();
@@ -75,14 +92,20 @@ async function start() {
75
92
  }
76
93
  }
77
94
  // Graceful shutdown
78
- process.on('SIGINT', async () => {
95
+ async function shutdown() {
79
96
  console.log('\n🛑 Shutting down gracefully...');
80
97
  QueueInspector.getInstance().stopPolling();
98
+ SourceWatcher.getInstance().unwatchAll();
99
+ await GatewayManager.getInstance().stopAll();
100
+ await LambdaRuntimeManager.getInstance().stopAll();
81
101
  processManager.stopAll();
82
102
  await processManager.cleanup();
83
103
  const localstack = LocalStackManager.getInstance();
84
104
  await localstack.stop();
85
105
  process.exit(0);
86
- });
106
+ }
107
+ process.on('SIGINT', shutdown);
108
+ // The CLI stops the daemonized server with SIGTERM — same cleanup path.
109
+ process.on('SIGTERM', shutdown);
87
110
  start();
88
111
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export { router as apisRouter };
3
+ //# sourceMappingURL=apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../../../src/server/routes/apis.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAqDxB,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { Router } from 'express';
2
+ import { FunctionRegistry } from '../services/function-registry.js';
3
+ import { GatewayManager } from '../services/gateway-manager.js';
4
+ import { AuthorizerService } from '../services/authorizer-service.js';
5
+ const router = Router();
6
+ // Registered HTTP routes grouped by service, with the gateway listener status.
7
+ router.get('/', (_req, res) => {
8
+ const registry = FunctionRegistry.getInstance();
9
+ const gateway = GatewayManager.getInstance();
10
+ const services = registry.listServices()
11
+ .filter(s => s.routes.length > 0 || s.apiPort)
12
+ .map(service => {
13
+ const info = gateway.getInfo(service.name);
14
+ return {
15
+ service: service.name,
16
+ apiPort: service.apiPort,
17
+ invokePort: service.invokePort,
18
+ stage: service.stage,
19
+ status: info.api.status,
20
+ invokeStatus: info.invoke.status,
21
+ routes: service.routes.map(route => ({
22
+ method: route.method,
23
+ path: route.path,
24
+ functionName: route.functionName,
25
+ eventType: route.eventType,
26
+ payloadVersion: route.eventType === 'httpApi' ? '2.0' : '1.0',
27
+ cors: route.cors,
28
+ authorizerName: route.authorizerName,
29
+ })),
30
+ authorizers: service.authorizers.map(a => ({
31
+ name: a.name,
32
+ type: a.type,
33
+ eventType: a.eventType,
34
+ payloadVersion: a.payloadVersion,
35
+ enableSimpleResponses: a.enableSimpleResponses,
36
+ identitySource: a.identitySource,
37
+ resultTtlInSeconds: a.resultTtlInSeconds,
38
+ functionName: a.functionName,
39
+ arn: a.arn,
40
+ })),
41
+ };
42
+ });
43
+ return res.json(services);
44
+ });
45
+ // Flush the authorizer result cache — essential for e2e flows that switch
46
+ // identities without waiting out resultTtlInSeconds.
47
+ router.post('/authorizer-cache/clear', (req, res) => {
48
+ const service = typeof req.query.service === 'string' ? req.query.service : undefined;
49
+ const authorizer = typeof req.query.authorizer === 'string' ? req.query.authorizer : undefined;
50
+ const removed = AuthorizerService.getInstance().clearCache({ service, authorizer });
51
+ return res.json({ success: true, removed });
52
+ });
53
+ export { router as apisRouter };
54
+ //# sourceMappingURL=apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.js","sourceRoot":"","sources":["../../../src/server/routes/apis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export { router as lambdasRouter };
3
+ //# sourceMappingURL=lambdas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambdas.d.ts","sourceRoot":"","sources":["../../../src/server/routes/lambdas.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAuFxB,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC"}