@hazeljs/gateway
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EAGd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAa3D,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,eAAe;IAQ5D;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa;IAQtF;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACjD,OAAO,CAAC,EAAE,eAAe,GACxB,aAAa;IAuBhB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG,IAAI;IA8ClD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IA6FlE;;OAEG;IACH,aAAa,IAAI,IAAI;IAQrB;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAMrC,OAAO,CAAC,WAAW;YAUL,mBAAmB;YAoCnB,sBAAsB;IAgCpC,OAAO,CAAC,kBAAkB;CA2B3B"} | ||
| {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EAGd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAa3D,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,eAAe;IAQ5D;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa;IAQtF;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACjD,OAAO,CAAC,EAAE,eAAe,GACxB,aAAa;IAuBhB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG,IAAI;IA8ClD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAgGlE;;OAEG;IACH,aAAa,IAAI,IAAI;IAQrB;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAMrC,OAAO,CAAC,WAAW;YAUL,mBAAmB;YAoCnB,sBAAsB;IAgCpC,OAAO,CAAC,kBAAkB;CA2B3B"} |
+5
-2
@@ -166,3 +166,6 @@ "use strict"; | ||
| if (error instanceof resilience_1.RateLimitError) { | ||
| const retryAfterSec = error.retryAfterMs ? Math.ceil(error.retryAfterMs / 1000) : 60; | ||
| const rateLimitErr = error; | ||
| const retryAfterSec = rateLimitErr.retryAfterMs | ||
| ? Math.ceil(rateLimitErr.retryAfterMs / 1000) | ||
| : 60; | ||
| return { | ||
@@ -173,3 +176,3 @@ status: 429, | ||
| error: 'Too Many Requests', | ||
| message: error.message, | ||
| message: rateLimitErr.message, | ||
| retryAfter: retryAfterSec, | ||
@@ -176,0 +179,0 @@ }, |
+9
-6
| { | ||
| "name": "@hazeljs/gateway", | ||
| "version": "0.7.9", | ||
| "version": "0.8.0", | ||
| "description": "Intelligent API Gateway for HazelJS - Version routing, canary deployments, circuit breaking, and traffic management", | ||
@@ -21,5 +21,5 @@ "main": "dist/index.js", | ||
| "dependencies": { | ||
| "@hazeljs/core": "^0.7.9", | ||
| "@hazeljs/discovery": "^0.7.9", | ||
| "@hazeljs/resilience": "^0.7.9", | ||
| "@hazeljs/core": "^0.8.0", | ||
| "@hazeljs/discovery": "^0.8.0", | ||
| "@hazeljs/resilience": "^0.8.0", | ||
| "axios": "^1.14.0", | ||
@@ -42,3 +42,6 @@ "reflect-metadata": "^0.2.2" | ||
| "peerDependencies": { | ||
| "@hazeljs/config": "*" | ||
| "@hazeljs/config": "*", | ||
| "@hazeljs/core": ">=0.2.0-beta.0", | ||
| "@hazeljs/discovery": ">=0.2.0-beta.0", | ||
| "@hazeljs/resilience": ">=0.2.0-beta.0" | ||
| }, | ||
@@ -75,3 +78,3 @@ "peerDependenciesMeta": { | ||
| "homepage": "https://hazeljs.ai", | ||
| "gitHead": "28c21c509aeca3bf2d0878fbee737d906b654c67" | ||
| "gitHead": "e0ed98ca074dd4f7472816d3c32ef576900dcca6" | ||
| } |
+22
-14
@@ -129,3 +129,11 @@ # @hazeljs/gateway | ||
| ```typescript | ||
| import { Gateway, Route, ServiceRoute, Canary, GatewayCircuitBreaker, GatewayRateLimit, GatewayServer } from '@hazeljs/gateway'; | ||
| import { | ||
| Gateway, | ||
| Route, | ||
| ServiceRoute, | ||
| Canary, | ||
| GatewayCircuitBreaker, | ||
| GatewayRateLimit, | ||
| GatewayServer, | ||
| } from '@hazeljs/gateway'; | ||
@@ -198,8 +206,8 @@ @Gateway({ | ||
| | Strategy | How It Works | Example | | ||
| |----------|-------------|---------| | ||
| | Header | Client sends `X-API-Version: v2` | Opt-in for specific clients | | ||
| | URI | Path prefix `/v2/api/users` | RESTful versioning | | ||
| | Query | `?version=v2` | Quick testing | | ||
| | Weighted | Percentage-based random | A/B testing, canary | | ||
| | Strategy | How It Works | Example | | ||
| | -------- | -------------------------------- | --------------------------- | | ||
| | Header | Client sends `X-API-Version: v2` | Opt-in for specific clients | | ||
| | URI | Path prefix `/v2/api/users` | RESTful versioning | | ||
| | Query | `?version=v2` | Quick testing | | ||
| | Weighted | Percentage-based random | A/B testing, canary | | ||
@@ -247,9 +255,9 @@ ## HazelJS Core Integration | ||
| | Prefix | Scope | Example | | ||
| |--------|-------|---------| | ||
| | `GATEWAY_*` | Global gateway settings | `GATEWAY_DEFAULT_TIMEOUT=5000` | | ||
| | `GATEWAY_CB_*` | Default circuit breaker | `GATEWAY_CB_THRESHOLD=5` | | ||
| | `<SERVICE>_SVC_*` | Per-service overrides | `USER_SVC_RATE_LIMIT_MAX=100` | | ||
| | `<SERVICE>_CANARY_*` | Canary deployment | `ORDER_CANARY_ERROR_THRESHOLD=5` | | ||
| | `<SERVICE>_VERSION_*` | Version routing | `PAYMENT_DEFAULT_VERSION=v1` | | ||
| | Prefix | Scope | Example | | ||
| | --------------------- | ----------------------- | -------------------------------- | | ||
| | `GATEWAY_*` | Global gateway settings | `GATEWAY_DEFAULT_TIMEOUT=5000` | | ||
| | `GATEWAY_CB_*` | Default circuit breaker | `GATEWAY_CB_THRESHOLD=5` | | ||
| | `<SERVICE>_SVC_*` | Per-service overrides | `USER_SVC_RATE_LIMIT_MAX=100` | | ||
| | `<SERVICE>_CANARY_*` | Canary deployment | `ORDER_CANARY_ERROR_THRESHOLD=5` | | ||
| | `<SERVICE>_VERSION_*` | Version routing | `PAYMENT_DEFAULT_VERSION=v1` | | ||
@@ -256,0 +264,0 @@ ## License |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
189793
0.3%3802
0.08%264
3.13%9
50%+ Added
+ Added
- Removed
- Removed
- Removed
Updated
Updated
Updated