local-serverless-stack 0.3.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.
- package/CHANGELOG.md +34 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/namespaces/apis.d.ts +48 -0
- package/dist/client/namespaces/apis.d.ts.map +1 -0
- package/dist/client/namespaces/apis.js +12 -0
- package/dist/client/namespaces/apis.js.map +1 -0
- package/dist/client/namespaces/lambdas.d.ts +61 -0
- package/dist/client/namespaces/lambdas.d.ts.map +1 -0
- package/dist/client/namespaces/lambdas.js +13 -0
- package/dist/client/namespaces/lambdas.js.map +1 -0
- package/dist/client/namespaces/services.d.ts +40 -0
- package/dist/client/namespaces/services.d.ts.map +1 -1
- package/dist/client/namespaces/services.js +3 -0
- package/dist/client/namespaces/services.js.map +1 -1
- package/dist/client/types.d.ts +2 -0
- package/dist/client/types.d.ts.map +1 -1
- package/dist/server/index.js +25 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/apis.d.ts +3 -0
- package/dist/server/routes/apis.d.ts.map +1 -0
- package/dist/server/routes/apis.js +54 -0
- package/dist/server/routes/apis.js.map +1 -0
- package/dist/server/routes/lambdas.d.ts +3 -0
- package/dist/server/routes/lambdas.d.ts.map +1 -0
- package/dist/server/routes/lambdas.js +85 -0
- package/dist/server/routes/lambdas.js.map +1 -0
- package/dist/server/routes/services.d.ts.map +1 -1
- package/dist/server/routes/services.js +91 -78
- package/dist/server/routes/services.js.map +1 -1
- package/dist/server/runtime/runtime-worker.d.ts +2 -0
- package/dist/server/runtime/runtime-worker.d.ts.map +1 -0
- package/dist/server/runtime/runtime-worker.js +207 -0
- package/dist/server/runtime/runtime-worker.js.map +1 -0
- package/dist/server/services/api-gateway-events.d.ts +44 -0
- package/dist/server/services/api-gateway-events.d.ts.map +1 -0
- package/dist/server/services/api-gateway-events.js +299 -0
- package/dist/server/services/api-gateway-events.js.map +1 -0
- package/dist/server/services/authorizer-service.d.ts +25 -0
- package/dist/server/services/authorizer-service.d.ts.map +1 -0
- package/dist/server/services/authorizer-service.js +0 -0
- package/dist/server/services/authorizer-service.js.map +1 -0
- package/dist/server/services/cache-manager.d.ts +6 -0
- package/dist/server/services/cache-manager.d.ts.map +1 -1
- package/dist/server/services/cache-manager.js.map +1 -1
- package/dist/server/services/config-manager.d.ts +57 -0
- package/dist/server/services/config-manager.d.ts.map +1 -1
- package/dist/server/services/config-manager.js +78 -0
- package/dist/server/services/config-manager.js.map +1 -1
- package/dist/server/services/function-registry.d.ts +33 -0
- package/dist/server/services/function-registry.d.ts.map +1 -0
- package/dist/server/services/function-registry.js +100 -0
- package/dist/server/services/function-registry.js.map +1 -0
- package/dist/server/services/gateway-manager.d.ts +31 -0
- package/dist/server/services/gateway-manager.d.ts.map +1 -0
- package/dist/server/services/gateway-manager.js +292 -0
- package/dist/server/services/gateway-manager.js.map +1 -0
- package/dist/server/services/lambda-runtime-manager.d.ts +52 -0
- package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -0
- package/dist/server/services/lambda-runtime-manager.js +326 -0
- package/dist/server/services/lambda-runtime-manager.js.map +1 -0
- package/dist/server/services/localstack-manager.d.ts.map +1 -1
- package/dist/server/services/localstack-manager.js +9 -0
- package/dist/server/services/localstack-manager.js.map +1 -1
- package/dist/server/services/serverless-packager.d.ts +1 -0
- package/dist/server/services/serverless-packager.d.ts.map +1 -1
- package/dist/server/services/serverless-packager.js +12 -5
- package/dist/server/services/serverless-packager.js.map +1 -1
- package/dist/server/services/serverless-state-parser.d.ts +86 -0
- package/dist/server/services/serverless-state-parser.d.ts.map +1 -0
- package/dist/server/services/serverless-state-parser.js +245 -0
- package/dist/server/services/serverless-state-parser.js.map +1 -0
- package/dist/server/services/service-registrar.d.ts +34 -0
- package/dist/server/services/service-registrar.d.ts.map +1 -0
- package/dist/server/services/service-registrar.js +262 -0
- package/dist/server/services/service-registrar.js.map +1 -0
- package/dist/server/services/source-watcher.d.ts +24 -0
- package/dist/server/services/source-watcher.d.ts.map +1 -0
- package/dist/server/services/source-watcher.js +101 -0
- package/dist/server/services/source-watcher.js.map +1 -0
- package/dist/ui/assets/ApisPage-DdgKjEdS.js +1 -0
- package/dist/ui/assets/{BucketDetailPage-Hg4Gg3jC.js → BucketDetailPage-DZQGxm0y.js} +1 -1
- package/dist/ui/assets/{BucketsPage-BHkg7TQp.js → BucketsPage-xYXzxCvd.js} +1 -1
- package/dist/ui/assets/{DynamoPage-CH_TgPh_.js → DynamoPage-B1__Rjr2.js} +1 -1
- package/dist/ui/assets/{DynamoTablePage-BPvl5y6_.js → DynamoTablePage-BCoxPdXW.js} +1 -1
- package/dist/ui/assets/LambdaDetailPage-B85CA8tb.js +4 -0
- package/dist/ui/assets/LambdasPage-_TtxQMT_.js +1 -0
- package/dist/ui/assets/{OverviewPage-CwLnw4VW.css → OverviewPage-6jDXV1jr.css} +1 -1
- package/dist/ui/assets/OverviewPage-CqTKTY64.js +1 -0
- package/dist/ui/assets/{QueueDetailPage-DHDPgRDc.js → QueueDetailPage-BOr_sImA.js} +1 -1
- package/dist/ui/assets/{QueuesPage-D5YcEbUU.js → QueuesPage-DpByfcM5.js} +1 -1
- package/dist/ui/assets/{ServiceDetailPage-DxJ0t7HQ.js → ServiceDetailPage-DsWgV-ad.js} +1 -1
- package/dist/ui/assets/{ServicesPage-DWDaaOz9.js → ServicesPage-CGlpsj98.js} +1 -1
- package/dist/ui/assets/{index-D3WwZ4lY.js → index-BWlB542w.js} +11 -11
- package/dist/ui/index.html +1 -1
- package/package.json +2 -2
- package/packages/serverless-plugin/README.md +21 -3
- package/packages/serverless-plugin/dist/index.js +8 -3
- package/packages/serverless-plugin/dist/index.js.map +1 -1
- package/dist/ui/assets/OverviewPage-nhomNDqx.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,40 @@ 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
|
+
|
|
29
|
+
## [0.4.0] - 2026-06-08
|
|
30
|
+
|
|
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).
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- **Per-service & global package parameters for `autoPackage`**: the auto-package step (run when a service's CloudFormation template is missing on `/register`) is no longer locked to a single global `packageCommand` for every service. Three new `lss.config.json` fields let you configure what the package command receives, and the orchestrator consults them before spawning: `packageArgs` (string[], extra args appended to every package command), `packageEnv` (object, extra env vars merged over the child's env), and `servicePackaging` (object — per-service overrides of `packageCommand`/`packageArgs`/`packageEnv`/`packageTimeoutMs`). Per-service entries are keyed by the service **directory name** (e.g. `"access"`) or its **path relative to the config file** (e.g. `"microservices/access"`); the relative-path key wins. Resolution: per-service `packageCommand`/`packageTimeoutMs` replace the global, `packageArgs` are appended after global args, `packageEnv` is merged over global env (per-service wins). `LSS_PACKAGE_COMMAND`/`LSS_PACKAGE_TIMEOUT_MS` still apply as the global baseline. This solves the case where one service (e.g. `access`) needs `--param=custom-stage=offline` to package offline while the others use the plain command. Centralized in `ConfigManager.getPackageConfigForService()`.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- **`packageCommand` quote parsing**: the tokenizer in `serverless-packager.ts` stripped only a single leading + trailing quote from each token, mangling `--param="custom-stage=offline"` into a malformed arg. It now strips quotes per quoted segment, so `--flag="a=b"` / `--flag='a b c'` tokenize correctly. New `packageArgs` are passed as discrete argv elements (no parsing at all), so values with `=`/spaces are always delivered intact.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- **Minimum supported Node.js version is now `>=20`** (`engines.node` on both the root package and the `serverless-lss` plugin; the publish workflow uses Node 20).
|
|
41
|
+
|
|
8
42
|
## [0.3.0] - 2026-06-06
|
|
9
43
|
|
|
10
44
|
Programmatic client (`LssClient`) so downstream Jest e2e suites can drive everything the `lss` CLI does at runtime via `import`, instead of shelling out to `npx lss` per step.
|
package/dist/client/index.d.ts
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -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. */
|
package/dist/client/index.js.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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":";;
|
|
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"}
|
package/dist/client/types.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/server/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;AAClD,MAAM,IAAI,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;AAC9C,IAAI,iBAAiB,GAAuB,IAAI,CAAC;AAEjD,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAChB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAC3C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACrC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AACvC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACnC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACrC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|