@nifrajs/middleware 1.13.0 → 2.1.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 (124) hide show
  1. package/README.md +1 -1
  2. package/dist/admission.d.ts +2 -2
  3. package/dist/admission.d.ts.map +1 -1
  4. package/dist/basic-auth.d.ts +1 -1
  5. package/dist/basic-auth.d.ts.map +1 -1
  6. package/dist/basic-auth.js +1 -1
  7. package/dist/basic-auth.js.map +1 -1
  8. package/dist/body-limit.d.ts +1 -1
  9. package/dist/body-limit.d.ts.map +1 -1
  10. package/dist/body-limit.js +1 -1
  11. package/dist/body-limit.js.map +1 -1
  12. package/dist/cache-control.d.ts +1 -1
  13. package/dist/cache-control.d.ts.map +1 -1
  14. package/dist/cache-control.js +1 -1
  15. package/dist/cache-control.js.map +1 -1
  16. package/dist/cache.d.ts +1 -1
  17. package/dist/cache.d.ts.map +1 -1
  18. package/dist/combine.d.ts +1 -1
  19. package/dist/combine.d.ts.map +1 -1
  20. package/dist/combine.js +1 -1
  21. package/dist/combine.js.map +1 -1
  22. package/dist/compression.d.ts +1 -1
  23. package/dist/compression.d.ts.map +1 -1
  24. package/dist/compression.js +1 -1
  25. package/dist/compression.js.map +1 -1
  26. package/dist/context-storage.d.ts +1 -1
  27. package/dist/context-storage.d.ts.map +1 -1
  28. package/dist/cors.d.ts +1 -1
  29. package/dist/cors.d.ts.map +1 -1
  30. package/dist/csrf.d.ts +1 -1
  31. package/dist/csrf.d.ts.map +1 -1
  32. package/dist/csrf.js +1 -1
  33. package/dist/csrf.js.map +1 -1
  34. package/dist/etag.d.ts +1 -1
  35. package/dist/etag.d.ts.map +1 -1
  36. package/dist/etag.js +1 -1
  37. package/dist/etag.js.map +1 -1
  38. package/dist/healthcheck.d.ts +1 -1
  39. package/dist/healthcheck.d.ts.map +1 -1
  40. package/dist/healthcheck.js +1 -1
  41. package/dist/healthcheck.js.map +1 -1
  42. package/dist/idempotency.d.ts +1 -1
  43. package/dist/idempotency.d.ts.map +1 -1
  44. package/dist/idempotency.js +1 -1
  45. package/dist/idempotency.js.map +1 -1
  46. package/dist/ip-restriction.d.ts +1 -1
  47. package/dist/ip-restriction.d.ts.map +1 -1
  48. package/dist/ip-restriction.js.map +1 -1
  49. package/dist/jwt.d.ts +1 -1
  50. package/dist/jwt.d.ts.map +1 -1
  51. package/dist/jwt.js +1 -1
  52. package/dist/jwt.js.map +1 -1
  53. package/dist/language.d.ts +1 -1
  54. package/dist/language.d.ts.map +1 -1
  55. package/dist/language.js +1 -1
  56. package/dist/language.js.map +1 -1
  57. package/dist/logger.d.ts +1 -1
  58. package/dist/logger.d.ts.map +1 -1
  59. package/dist/logger.js +1 -1
  60. package/dist/logger.js.map +1 -1
  61. package/dist/method-override.d.ts +2 -4
  62. package/dist/method-override.d.ts.map +1 -1
  63. package/dist/method-override.js +4 -5
  64. package/dist/method-override.js.map +1 -1
  65. package/dist/openapi.d.ts +1 -1
  66. package/dist/openapi.d.ts.map +1 -1
  67. package/dist/openapi.js +1 -1
  68. package/dist/openapi.js.map +1 -1
  69. package/dist/powered-by.d.ts +1 -1
  70. package/dist/powered-by.d.ts.map +1 -1
  71. package/dist/pretty-json.d.ts +1 -1
  72. package/dist/pretty-json.d.ts.map +1 -1
  73. package/dist/pretty-json.js +1 -1
  74. package/dist/pretty-json.js.map +1 -1
  75. package/dist/rate-limit.d.ts +1 -1
  76. package/dist/rate-limit.d.ts.map +1 -1
  77. package/dist/rate-limit.js.map +1 -1
  78. package/dist/request-id.d.ts +1 -1
  79. package/dist/request-id.d.ts.map +1 -1
  80. package/dist/request-id.js +1 -1
  81. package/dist/request-id.js.map +1 -1
  82. package/dist/security-headers.d.ts +1 -1
  83. package/dist/security-headers.d.ts.map +1 -1
  84. package/dist/security-headers.js.map +1 -1
  85. package/dist/timing.d.ts +1 -1
  86. package/dist/timing.d.ts.map +1 -1
  87. package/dist/timing.js +1 -1
  88. package/dist/timing.js.map +1 -1
  89. package/dist/token-auth.d.ts +1 -1
  90. package/dist/token-auth.d.ts.map +1 -1
  91. package/dist/token-auth.js +1 -1
  92. package/dist/token-auth.js.map +1 -1
  93. package/dist/trailing-slash.d.ts +2 -2
  94. package/dist/trailing-slash.d.ts.map +1 -1
  95. package/dist/trailing-slash.js +1 -1
  96. package/dist/trailing-slash.js.map +1 -1
  97. package/package.json +3 -3
  98. package/src/admission.ts +2 -2
  99. package/src/basic-auth.ts +1 -1
  100. package/src/body-limit.ts +1 -1
  101. package/src/cache-control.ts +1 -1
  102. package/src/cache.ts +1 -1
  103. package/src/combine.ts +1 -1
  104. package/src/compression.ts +1 -1
  105. package/src/context-storage.ts +1 -1
  106. package/src/cors.ts +1 -1
  107. package/src/csrf.ts +1 -1
  108. package/src/etag.ts +1 -1
  109. package/src/healthcheck.ts +1 -1
  110. package/src/idempotency.ts +1 -1
  111. package/src/ip-restriction.ts +1 -1
  112. package/src/jwt.ts +1 -1
  113. package/src/language.ts +1 -1
  114. package/src/logger.ts +1 -1
  115. package/src/method-override.ts +4 -8
  116. package/src/openapi.ts +1 -1
  117. package/src/powered-by.ts +1 -1
  118. package/src/pretty-json.ts +1 -1
  119. package/src/rate-limit.ts +1 -1
  120. package/src/request-id.ts +1 -1
  121. package/src/security-headers.ts +1 -1
  122. package/src/timing.ts +1 -1
  123. package/src/token-auth.ts +1 -1
  124. package/src/trailing-slash.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"trailing-slash.js","sourceRoot":"","sources":["../src/trailing-slash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trailing-slash.js","sourceRoot":"","sources":["../src/trailing-slash.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/middleware",
3
- "version": "1.13.0",
3
+ "version": "2.1.0",
4
4
  "description": "Composable middleware for nifra — auth, CSRF, JWT/JWKS, IP restriction, CORS, body limits, response cache, timing, and operational helpers.",
5
5
  "keywords": [
6
6
  "bun",
@@ -46,10 +46,10 @@
46
46
  "access": "public"
47
47
  },
48
48
  "dependencies": {
49
- "@nifrajs/schema": "1.13.0"
49
+ "@nifrajs/schema": "2.1.0"
50
50
  },
51
51
  "peerDependencies": {
52
- "@nifrajs/core": "^1.13.0"
52
+ "@nifrajs/core": "^2.1.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@nifrajs/core": "workspace:*",
package/src/admission.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { AdmissionController, AdmissionDecision } from "@nifrajs/core"
1
+ import type { AdmissionController, AdmissionDecision } from "@nifrajs/core/server"
2
2
 
3
3
  /**
4
- * Adaptive capacity admission. Rate limiting bounds request *frequency* and `@nifrajs/budget` bounds
4
+ * Adaptive capacity admission. Rate limiting bounds request *frequency* and `@nifrajs/core/budget` bounds
5
5
  * request *duration*; neither stops a healthy instance from accepting more *concurrent* work than it
6
6
  * can finish. This gate admits on live capacity evidence — in-flight count + event-loop lag — briefly
7
7
  * queues at the edge, and sheds the rest with `429` + `Retry-After`, so p99 stays bounded under load
package/src/basic-auth.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { definePlugin, type NifraPlugin } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import { definePlugin, type NifraPlugin } from "@nifrajs/core/server"
3
3
  import {
4
4
  decodeBase64,
5
5
  jsonError,
package/src/body-limit.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { METHODS, type Middleware } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import { METHODS, type Middleware } from "@nifrajs/core/server"
3
3
  import { jsonError, SAFE_METHODS } from "./_utils.ts"
4
4
 
5
5
  export interface BodyLimitOptions {
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  export interface CacheControlOptions {
4
4
  /** Methods whose responses get the header. Default `["GET", "HEAD"]`. */
package/src/cache.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Middleware } from "@nifrajs/core"
1
+ import type { Middleware } from "@nifrajs/core/server"
2
2
  import type { MaybePromise } from "./_utils.ts"
3
3
 
4
4
  export interface CachedResponse {
package/src/combine.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { definePlugin, type Middleware, type NifraPlugin } from "@nifrajs/core"
1
+ import { definePlugin, type Middleware, type NifraPlugin } from "@nifrajs/core/server"
2
2
 
3
3
  export type Composable = Middleware | NifraPlugin
4
4
 
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  export interface CompressionOptions {
4
4
  /** Don't compress bodies smaller than this many bytes. Default `1024`. Enforced by peeking the body
@@ -1,5 +1,5 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks"
2
- import type { Context, Middleware } from "@nifrajs/core"
2
+ import type { Context, Middleware } from "@nifrajs/core/server"
3
3
 
4
4
  const storage = new AsyncLocalStorage<Context>()
5
5
 
package/src/cors.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Middleware } from "@nifrajs/core"
1
+ import type { Middleware } from "@nifrajs/core/server"
2
2
  import { withHeaders } from "./_utils.ts"
3
3
 
4
4
  export interface CorsOptions {
package/src/csrf.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { METHODS, type Middleware } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import { METHODS, type Middleware } from "@nifrajs/core/server"
3
3
  import {
4
4
  base64UrlEncode,
5
5
  hmacSha256,
package/src/etag.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  /** 32-bit FNV-1a over bytes → hex. A fast, dependency-free content fingerprint for ETags — not crypto. */
4
4
  function fnv1a(bytes: Uint8Array): string {
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  type MaybePromise<T> = T | Promise<T>
4
4
 
@@ -1,5 +1,5 @@
1
- import { METHODS, type Middleware } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import { METHODS, type Middleware } from "@nifrajs/core/server"
3
3
 
4
4
  /**
5
5
  * Idempotency keys for unsafe requests — a client retrying a `POST` (dropped connection, impatient
@@ -1,5 +1,5 @@
1
- import type { Middleware } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import type { Middleware } from "@nifrajs/core/server"
3
3
  import { jsonError, type MaybePromise } from "./_utils.ts"
4
4
 
5
5
  export type IpMatcher = string | ((ip: string, request: Request) => MaybePromise<boolean>)
package/src/jwt.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { definePlugin, type NifraPlugin } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import { definePlugin, type NifraPlugin } from "@nifrajs/core/server"
3
3
  import {
4
4
  base64UrlDecode,
5
5
  jsonError,
package/src/language.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  export interface LanguageMatch {
4
4
  readonly language: string
package/src/logger.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  /** Structured fields logged per request. */
4
4
  export interface RequestLogFields {
@@ -1,4 +1,4 @@
1
- import { definePlugin, METHODS, type Method } from "@nifrajs/core"
1
+ import { definePlugin, METHODS, type Method } from "@nifrajs/core/server"
2
2
  import { jsonError } from "./_utils.ts"
3
3
 
4
4
  export interface MethodOverrideOptions {
@@ -16,8 +16,6 @@ export interface MethodOverrideOptions {
16
16
  readonly methods?: readonly string[]
17
17
  /** Target methods accepted from the override source. Default `["PUT", "PATCH", "DELETE"]`. */
18
18
  readonly allowed?: readonly Method[]
19
- /** Invalid override values reject with `400` by default. Use `"ignore"` for legacy clients. */
20
- readonly onInvalid?: "reject" | "ignore"
21
19
  }
22
20
 
23
21
  const SUPPORTED = new Set<string>(METHODS)
@@ -52,7 +50,6 @@ export function methodOverride(options: MethodOverrideOptions = {}) {
52
50
  const query = options.query ?? false
53
51
  const sourceMethods = new Set((options.methods ?? ["POST"]).map((m) => m.toUpperCase()))
54
52
  const allowed = new Set<Method>(options.allowed ?? DEFAULT_ALLOWED)
55
- const rejectInvalid = options.onInvalid !== "ignore"
56
53
 
57
54
  if (header !== false && header.trim() === "") throw new Error("methodOverride: header is empty")
58
55
  if (query !== false && query.trim() === "") throw new Error("methodOverride: query is empty")
@@ -68,18 +65,17 @@ export function methodOverride(options: MethodOverrideOptions = {}) {
68
65
  }
69
66
  if (query !== false) {
70
67
  const value = singleQueryValue(req, query)
71
- if (value === false)
72
- return rejectInvalid ? jsonError(400, "invalid_method_override") : undefined
68
+ if (value === false) return jsonError(400, "invalid_method_override")
73
69
  if (value !== null) values.push(value)
74
70
  }
75
71
  if (values.length === 0) return undefined
76
72
  if (values.length > 1 && new Set(values.map((v) => v.trim().toUpperCase())).size > 1) {
77
- return rejectInvalid ? jsonError(400, "invalid_method_override") : undefined
73
+ return jsonError(400, "invalid_method_override")
78
74
  }
79
75
 
80
76
  const method = normalizeMethod(values[0] ?? "")
81
77
  if (method === null || !allowed.has(method)) {
82
- return rejectInvalid ? jsonError(400, "invalid_method_override") : undefined
78
+ return jsonError(400, "invalid_method_override")
83
79
  }
84
80
  return method === req.method ? undefined : replacement(req, method)
85
81
  }),
package/src/openapi.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
  // The OpenAPI generator only — `@nifrajs/schema/openapi` is pure (no TypeBox runtime), so the openapi()
3
3
  // plugin gets full `t`-schema introspection without pulling the `t` builder into every consumer.
4
4
  import { toOpenAPI } from "@nifrajs/schema/openapi"
package/src/powered-by.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Middleware } from "@nifrajs/core"
1
+ import type { Middleware } from "@nifrajs/core/server"
2
2
  import { withHeaders } from "./_utils.ts"
3
3
 
4
4
  export interface PoweredByOptions {
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  export interface PrettyJsonOptions {
4
4
  /** JSON indentation spaces. Default `2`. */
package/src/rate-limit.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { Middleware } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import type { Middleware } from "@nifrajs/core/server"
3
3
 
4
4
  export interface RateLimitResult {
5
5
  /** Hits recorded in the current window, including this one. */
package/src/request-id.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  export interface RequestIdOptions {
4
4
  /** Header read for an inbound id (trace propagation) + echoed on the response. Default `"x-request-id"`. */
@@ -1,5 +1,5 @@
1
- import type { Middleware } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import type { Middleware } from "@nifrajs/core/server"
3
3
  import { withHeaders } from "./_utils.ts"
4
4
 
5
5
  export interface SecurityHeadersOptions {
package/src/timing.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
  import { withHeaders } from "./_utils.ts"
3
3
 
4
4
  export interface TimingMetric {
package/src/token-auth.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { definePlugin, type NifraPlugin } from "@nifrajs/core"
2
1
  import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance"
2
+ import { definePlugin, type NifraPlugin } from "@nifrajs/core/server"
3
3
 
4
4
  type MaybePromise<T> = T | Promise<T>
5
5
 
@@ -1,4 +1,4 @@
1
- import { definePlugin } from "@nifrajs/core"
1
+ import { definePlugin } from "@nifrajs/core/server"
2
2
 
3
3
  export interface TrailingSlashOptions {
4
4
  /** Redirect (default) or route internally with a rewritten URL. */