@nifrajs/core 5.4.0 → 5.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 +29 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/route-lanes.d.ts.map +1 -1
- package/dist/internal/route-lanes.js +2 -1
- package/dist/internal/route-lanes.js.map +1 -1
- package/dist/internal/route-program.d.ts +5 -0
- package/dist/internal/route-program.d.ts.map +1 -1
- package/dist/internal/route-program.js +36 -15
- package/dist/internal/route-program.js.map +1 -1
- package/dist/router/router.d.ts +3 -2
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +22 -6
- package/dist/router/router.js.map +1 -1
- package/dist/security/baseline.d.ts.map +1 -1
- package/dist/security/baseline.js +4 -3
- package/dist/security/baseline.js.map +1 -1
- package/dist/server/body-lane.d.ts.map +1 -1
- package/dist/server/body-lane.js +4 -3
- package/dist/server/body-lane.js.map +1 -1
- package/dist/server/body.d.ts +2 -0
- package/dist/server/body.d.ts.map +1 -1
- package/dist/server/body.js +5 -0
- package/dist/server/body.js.map +1 -1
- package/dist/server/cookies.d.ts.map +1 -1
- package/dist/server/cookies.js +9 -2
- package/dist/server/cookies.js.map +1 -1
- package/dist/server/core-copies.js +1 -1
- package/dist/server/idempotency-lane.d.ts +11 -12
- package/dist/server/idempotency-lane.d.ts.map +1 -1
- package/dist/server/idempotency-lane.js +301 -151
- package/dist/server/idempotency-lane.js.map +1 -1
- package/dist/server/methods.d.ts +3 -2
- package/dist/server/methods.d.ts.map +1 -1
- package/dist/server/methods.js.map +1 -1
- package/dist/server/multipart.d.ts.map +1 -1
- package/dist/server/multipart.js +42 -13
- package/dist/server/multipart.js.map +1 -1
- package/dist/server/node-outcome.d.ts.map +1 -1
- package/dist/server/node-outcome.js +2 -2
- package/dist/server/node-outcome.js.map +1 -1
- package/dist/server/query.d.ts +1 -1
- package/dist/server/query.d.ts.map +1 -1
- package/dist/server/query.js +13 -5
- package/dist/server/query.js.map +1 -1
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +3 -3
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/respond.d.ts +17 -0
- package/dist/server/respond.d.ts.map +1 -1
- package/dist/server/respond.js +81 -3
- package/dist/server/respond.js.map +1 -1
- package/dist/server/runtime-core.d.ts +15 -0
- package/dist/server/runtime-core.d.ts.map +1 -1
- package/dist/server/runtime-core.js +41 -1
- package/dist/server/runtime-core.js.map +1 -1
- package/dist/server/server.d.ts +14 -5
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +179 -59
- package/dist/server/server.js.map +1 -1
- package/dist/server/transport-lane.d.ts +2 -2
- package/dist/server/transport-lane.d.ts.map +1 -1
- package/dist/server/transport-lane.js +20 -20
- package/dist/server/transport-lane.js.map +1 -1
- package/dist/static-file.d.ts +29 -6
- package/dist/static-file.d.ts.map +1 -1
- package/dist/static-file.js +43 -12
- package/dist/static-file.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/internal/route-lanes.ts +18 -16
- package/src/internal/route-program.ts +76 -12
- package/src/router/router.ts +26 -5
- package/src/security/baseline.ts +4 -3
- package/src/server/body-lane.ts +4 -4
- package/src/server/body.ts +6 -0
- package/src/server/cookies.ts +7 -2
- package/src/server/core-copies.ts +1 -1
- package/src/server/idempotency-lane.ts +343 -209
- package/src/server/methods.ts +3 -2
- package/src/server/multipart.ts +62 -14
- package/src/server/node-outcome.ts +2 -1
- package/src/server/query.ts +12 -5
- package/src/server/request-context.ts +6 -3
- package/src/server/respond.ts +108 -6
- package/src/server/runtime-core.ts +54 -1
- package/src/server/server.ts +249 -99
- package/src/server/transport-lane.ts +28 -22
- package/src/static-file.ts +72 -16
package/src/server/body.ts
CHANGED
|
@@ -462,6 +462,12 @@ export function markTransportCap(source: object, maxBytes: number): void {
|
|
|
462
462
|
;(source as { [TRANSPORT_CAP]?: number })[TRANSPORT_CAP] = maxBytes
|
|
463
463
|
}
|
|
464
464
|
|
|
465
|
+
/** The cap {@link markTransportCap} set on `source`, for a copy that must keep it. */
|
|
466
|
+
export function transportCapOf(source: object): number | undefined {
|
|
467
|
+
const cap: unknown = Reflect.get(source, TRANSPORT_CAP)
|
|
468
|
+
return typeof cap === "number" ? cap : undefined
|
|
469
|
+
}
|
|
470
|
+
|
|
465
471
|
/**
|
|
466
472
|
* Enforce a marked source's transport byte cap on **direct user reads** of its request
|
|
467
473
|
* (`c.req.json()`, `c.req.arrayBuffer()`, the raw `body` stream, `clone()`, ...), without swapping
|
package/src/server/cookies.ts
CHANGED
|
@@ -78,6 +78,9 @@ export function parseCookies(header: string | null | undefined): Record<string,
|
|
|
78
78
|
if (!header) return out
|
|
79
79
|
const len = header.length
|
|
80
80
|
let pos = 0
|
|
81
|
+
// The first "=" at or after the segment, kept while it lies in a later one, so a run of bare
|
|
82
|
+
// segments does not rescan the rest of the header each time. -1: none left.
|
|
83
|
+
let eq = header.indexOf("=")
|
|
81
84
|
while (pos < len) {
|
|
82
85
|
let end = header.indexOf(";", pos)
|
|
83
86
|
if (end === -1) end = len
|
|
@@ -86,7 +89,7 @@ export function parseCookies(header: string | null | undefined): Record<string,
|
|
|
86
89
|
while (start < end && header.charCodeAt(start) === 32) start++
|
|
87
90
|
let stop = end
|
|
88
91
|
while (stop > start && header.charCodeAt(stop - 1) === 32) stop--
|
|
89
|
-
|
|
92
|
+
if (eq !== -1 && eq < start) eq = header.indexOf("=", start)
|
|
90
93
|
if (eq > start && eq < stop) {
|
|
91
94
|
// name: trim trailing spaces before '='; value: trim leading spaces after it
|
|
92
95
|
let nameEnd = eq
|
|
@@ -125,6 +128,8 @@ export function hasDuplicateCookie(header: string | null | undefined, targetName
|
|
|
125
128
|
let found = false
|
|
126
129
|
const len = header.length
|
|
127
130
|
let pos = 0
|
|
131
|
+
// Kept across segments as in parseCookies.
|
|
132
|
+
let eq = header.indexOf("=")
|
|
128
133
|
while (pos < len) {
|
|
129
134
|
let end = header.indexOf(";", pos)
|
|
130
135
|
if (end === -1) end = len
|
|
@@ -132,7 +137,7 @@ export function hasDuplicateCookie(header: string | null | undefined, targetName
|
|
|
132
137
|
while (start < end && header.charCodeAt(start) === 32) start++
|
|
133
138
|
let stop = end
|
|
134
139
|
while (stop > start && header.charCodeAt(stop - 1) === 32) stop--
|
|
135
|
-
|
|
140
|
+
if (eq !== -1 && eq < start) eq = header.indexOf("=", start)
|
|
136
141
|
if (eq > start && eq < stop) {
|
|
137
142
|
let nameEnd = eq
|
|
138
143
|
while (nameEnd > start && header.charCodeAt(nameEnd - 1) === 32) nameEnd--
|
|
@@ -23,7 +23,7 @@ if (!copies.includes(here) && copies.push(here) > 1) {
|
|
|
23
23
|
|
|
24
24
|
/** This copy's version: a literal like the package root's `VERSION` (no fs on the edge), which
|
|
25
25
|
* `scripts/version.ts` rewrites on every release and `check:publish` asserts. */
|
|
26
|
-
const COPY_VERSION = "5.
|
|
26
|
+
const COPY_VERSION = "5.5.0"
|
|
27
27
|
|
|
28
28
|
/** Record this copy's version beside its URL. Called by each `server()` behind the development guard,
|
|
29
29
|
* so a production bundle drops it with the version; a copy that built a server has recorded one. */
|