kinetex 0.0.2 → 1.0.0-rc.2

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 (231) hide show
  1. package/LICENSE +16 -4
  2. package/README.md +2434 -701
  3. package/dist/browser/kinetex.esm.js +86 -0
  4. package/dist/browser/kinetex.js +19056 -1999
  5. package/dist/browser/kinetex.min.js +85 -8
  6. package/dist/cjs/aws-sigv4.js +903 -0
  7. package/dist/cjs/cache.js +1099 -0
  8. package/dist/cjs/circuit-breaker.js +362 -0
  9. package/dist/cjs/client.js +2890 -0
  10. package/dist/cjs/cookie-parser.js +2182 -0
  11. package/dist/cjs/cookie-store.js +783 -0
  12. package/dist/cjs/cookiejar.js +175 -0
  13. package/dist/cjs/core.js +1267 -0
  14. package/dist/cjs/dedup.js +267 -0
  15. package/dist/cjs/digest.js +552 -0
  16. package/dist/cjs/graphql.js +1086 -0
  17. package/dist/cjs/headers.js +2264 -0
  18. package/dist/cjs/interceptors.js +1115 -0
  19. package/dist/cjs/lifecycle.js +886 -0
  20. package/dist/cjs/logging.js +887 -0
  21. package/dist/cjs/mod.js +98 -0
  22. package/dist/cjs/package.json +1 -3
  23. package/dist/cjs/pagination.js +535 -0
  24. package/dist/cjs/progress.js +694 -0
  25. package/dist/cjs/response.js +1212 -0
  26. package/dist/cjs/socks5.js +681 -0
  27. package/dist/cjs/sse.js +827 -0
  28. package/dist/cjs/types.js +217 -0
  29. package/dist/cjs/url.js +1269 -0
  30. package/dist/cjs/utils.js +901 -0
  31. package/dist/cjs/worker.js +56 -0
  32. package/dist/cjs/ws.js +1099 -0
  33. package/dist/esm/aws-sigv4.js +904 -0
  34. package/dist/esm/aws-sigv4.js.map +1 -0
  35. package/dist/esm/cache.js +1100 -0
  36. package/dist/esm/cache.js.map +1 -0
  37. package/dist/esm/circuit-breaker.js +363 -0
  38. package/dist/esm/circuit-breaker.js.map +1 -0
  39. package/dist/esm/client.js +2891 -0
  40. package/dist/esm/client.js.map +1 -0
  41. package/dist/esm/cookie-parser.js +2183 -0
  42. package/dist/esm/cookie-parser.js.map +1 -0
  43. package/dist/esm/cookie-store.js +784 -0
  44. package/dist/esm/cookie-store.js.map +1 -0
  45. package/dist/esm/cookiejar.js +176 -0
  46. package/dist/esm/cookiejar.js.map +1 -0
  47. package/dist/esm/core.js +1268 -0
  48. package/dist/esm/core.js.map +1 -0
  49. package/dist/esm/dedup.js +268 -0
  50. package/dist/esm/dedup.js.map +1 -0
  51. package/dist/esm/digest.js +553 -0
  52. package/dist/esm/digest.js.map +1 -0
  53. package/dist/esm/graphql.js +1087 -0
  54. package/dist/esm/graphql.js.map +1 -0
  55. package/dist/esm/headers.js +2265 -0
  56. package/dist/esm/headers.js.map +1 -0
  57. package/dist/esm/interceptors.js +1116 -0
  58. package/dist/esm/interceptors.js.map +1 -0
  59. package/dist/esm/lifecycle.js +887 -0
  60. package/dist/esm/lifecycle.js.map +1 -0
  61. package/dist/esm/logging.js +888 -0
  62. package/dist/esm/logging.js.map +1 -0
  63. package/dist/esm/mod.js +99 -0
  64. package/dist/esm/mod.js.map +1 -0
  65. package/dist/esm/package.json +1 -0
  66. package/dist/esm/pagination.js +536 -0
  67. package/dist/esm/pagination.js.map +1 -0
  68. package/dist/esm/progress.js +695 -0
  69. package/dist/esm/progress.js.map +1 -0
  70. package/dist/esm/response.js +1213 -0
  71. package/dist/esm/response.js.map +1 -0
  72. package/dist/esm/socks5.js +682 -0
  73. package/dist/esm/socks5.js.map +1 -0
  74. package/dist/esm/sse.js +828 -0
  75. package/dist/esm/sse.js.map +1 -0
  76. package/dist/esm/types.js +218 -0
  77. package/dist/esm/types.js.map +1 -0
  78. package/dist/esm/url.js +1270 -0
  79. package/dist/esm/url.js.map +1 -0
  80. package/dist/esm/utils.js +902 -0
  81. package/dist/esm/utils.js.map +1 -0
  82. package/dist/esm/worker.js +57 -0
  83. package/dist/esm/worker.js.map +1 -0
  84. package/dist/esm/ws.js +1100 -0
  85. package/dist/esm/ws.js.map +1 -0
  86. package/dist/types/aws-sigv4.d.ts +382 -0
  87. package/dist/types/aws-sigv4.d.ts.map +1 -0
  88. package/dist/types/cache.d.ts +397 -0
  89. package/dist/types/cache.d.ts.map +1 -0
  90. package/dist/types/circuit-breaker.d.ts +241 -0
  91. package/dist/types/circuit-breaker.d.ts.map +1 -0
  92. package/dist/types/client.d.ts +616 -0
  93. package/dist/types/client.d.ts.map +1 -0
  94. package/dist/types/cookie-parser.d.ts +203 -0
  95. package/dist/types/cookie-parser.d.ts.map +1 -0
  96. package/dist/types/cookie-store.d.ts +316 -0
  97. package/dist/types/cookie-store.d.ts.map +1 -0
  98. package/dist/types/cookiejar.d.ts +165 -0
  99. package/dist/types/cookiejar.d.ts.map +1 -0
  100. package/dist/types/core.d.ts +297 -0
  101. package/dist/types/core.d.ts.map +1 -0
  102. package/dist/types/dedup.d.ts +164 -0
  103. package/dist/types/dedup.d.ts.map +1 -0
  104. package/dist/types/digest.d.ts +136 -0
  105. package/dist/types/digest.d.ts.map +1 -0
  106. package/dist/types/graphql.d.ts +530 -0
  107. package/dist/types/graphql.d.ts.map +1 -0
  108. package/dist/types/headers.d.ts +1119 -0
  109. package/dist/types/headers.d.ts.map +1 -0
  110. package/dist/types/interceptors.d.ts +681 -0
  111. package/dist/types/interceptors.d.ts.map +1 -0
  112. package/dist/types/lifecycle.d.ts +553 -0
  113. package/dist/types/lifecycle.d.ts.map +1 -0
  114. package/dist/types/logging.d.ts +518 -0
  115. package/dist/types/logging.d.ts.map +1 -0
  116. package/dist/types/mod.d.ts +92 -0
  117. package/dist/types/mod.d.ts.map +1 -0
  118. package/dist/types/pagination.d.ts +401 -0
  119. package/dist/types/pagination.d.ts.map +1 -0
  120. package/dist/types/progress.d.ts +344 -0
  121. package/dist/types/progress.d.ts.map +1 -0
  122. package/dist/types/response.d.ts +484 -0
  123. package/dist/types/response.d.ts.map +1 -0
  124. package/dist/types/socks5.d.ts +218 -0
  125. package/dist/types/socks5.d.ts.map +1 -0
  126. package/dist/types/sse.d.ts +399 -0
  127. package/dist/types/sse.d.ts.map +1 -0
  128. package/dist/types/types.d.ts +967 -0
  129. package/dist/types/types.d.ts.map +1 -0
  130. package/dist/types/url.d.ts +530 -0
  131. package/dist/types/url.d.ts.map +1 -0
  132. package/dist/types/utils.d.ts +300 -0
  133. package/dist/types/utils.d.ts.map +1 -0
  134. package/dist/types/worker.d.ts +55 -0
  135. package/dist/types/worker.d.ts.map +1 -0
  136. package/dist/types/ws.d.ts +480 -0
  137. package/dist/types/ws.d.ts.map +1 -0
  138. package/package.json +194 -127
  139. package/CHANGELOG.md +0 -50
  140. package/SECURITY.md +0 -31
  141. package/dist/browser/kinetex.cjs.js +0 -9
  142. package/dist/browser/kinetex.esm.min.js +0 -9
  143. package/dist/browser/kinetex.js.map +0 -7
  144. package/dist/cjs/auth/index.cjs +0 -333
  145. package/dist/cjs/auth/index.d.cts +0 -41
  146. package/dist/cjs/auth/index.d.ts.map +0 -1
  147. package/dist/cjs/auth/index.js.map +0 -1
  148. package/dist/cjs/core/chain.cjs +0 -127
  149. package/dist/cjs/core/chain.d.cts +0 -44
  150. package/dist/cjs/core/chain.d.ts.map +0 -1
  151. package/dist/cjs/core/chain.js.map +0 -1
  152. package/dist/cjs/core/transport.cjs +0 -544
  153. package/dist/cjs/core/transport.d.cts +0 -11
  154. package/dist/cjs/core/transport.d.ts.map +0 -1
  155. package/dist/cjs/core/transport.js.map +0 -1
  156. package/dist/cjs/core/types.cjs +0 -54
  157. package/dist/cjs/core/types.d.cts +0 -322
  158. package/dist/cjs/core/types.d.ts.map +0 -1
  159. package/dist/cjs/core/types.js.map +0 -1
  160. package/dist/cjs/index.cjs +0 -272
  161. package/dist/cjs/index.d.cts +0 -12
  162. package/dist/cjs/index.d.ts.map +0 -1
  163. package/dist/cjs/index.js.map +0 -1
  164. package/dist/cjs/middleware/pipeline.cjs +0 -451
  165. package/dist/cjs/middleware/pipeline.d.cts +0 -32
  166. package/dist/cjs/middleware/pipeline.d.ts.map +0 -1
  167. package/dist/cjs/middleware/pipeline.js.map +0 -1
  168. package/dist/cjs/plugins/cookies.cjs +0 -192
  169. package/dist/cjs/plugins/cookies.d.cts +0 -57
  170. package/dist/cjs/plugins/cookies.d.ts.map +0 -1
  171. package/dist/cjs/plugins/cookies.js.map +0 -1
  172. package/dist/cjs/plugins/extras.cjs +0 -316
  173. package/dist/cjs/plugins/extras.d.cts +0 -87
  174. package/dist/cjs/plugins/extras.d.ts.map +0 -1
  175. package/dist/cjs/plugins/extras.js.map +0 -1
  176. package/dist/cjs/plugins/index.cjs +0 -18
  177. package/dist/cjs/plugins/index.d.cts +0 -7
  178. package/dist/cjs/plugins/index.d.ts.map +0 -1
  179. package/dist/cjs/plugins/index.js.map +0 -1
  180. package/dist/cjs/plugins/proxy.cjs +0 -161
  181. package/dist/cjs/plugins/proxy.d.cts +0 -25
  182. package/dist/cjs/plugins/proxy.d.ts.map +0 -1
  183. package/dist/cjs/plugins/proxy.js.map +0 -1
  184. package/dist/cjs/utils/index.cjs +0 -12
  185. package/dist/cjs/utils/index.d.cts +0 -6
  186. package/dist/cjs/utils/index.d.ts.map +0 -1
  187. package/dist/cjs/utils/index.js.map +0 -1
  188. package/dist/esm/auth/index.js +0 -324
  189. package/dist/esm/auth/index.js.map +0 -1
  190. package/dist/esm/core/chain.js +0 -123
  191. package/dist/esm/core/chain.js.map +0 -1
  192. package/dist/esm/core/transport.js +0 -536
  193. package/dist/esm/core/transport.js.map +0 -1
  194. package/dist/esm/core/types.js +0 -46
  195. package/dist/esm/core/types.js.map +0 -1
  196. package/dist/esm/index.js +0 -241
  197. package/dist/esm/index.js.map +0 -1
  198. package/dist/esm/middleware/pipeline.js +0 -438
  199. package/dist/esm/middleware/pipeline.js.map +0 -1
  200. package/dist/esm/plugins/cookies.js +0 -187
  201. package/dist/esm/plugins/cookies.js.map +0 -1
  202. package/dist/esm/plugins/extras.js +0 -306
  203. package/dist/esm/plugins/extras.js.map +0 -1
  204. package/dist/esm/plugins/index.js +0 -4
  205. package/dist/esm/plugins/index.js.map +0 -1
  206. package/dist/esm/plugins/proxy.js +0 -124
  207. package/dist/esm/plugins/proxy.js.map +0 -1
  208. package/dist/esm/utils/index.js +0 -6
  209. package/dist/esm/utils/index.js.map +0 -1
  210. package/dist/types/auth/index.d.ts +0 -41
  211. package/dist/types/auth/index.d.ts.map +0 -1
  212. package/dist/types/core/chain.d.ts +0 -44
  213. package/dist/types/core/chain.d.ts.map +0 -1
  214. package/dist/types/core/transport.d.ts +0 -11
  215. package/dist/types/core/transport.d.ts.map +0 -1
  216. package/dist/types/core/types.d.ts +0 -322
  217. package/dist/types/core/types.d.ts.map +0 -1
  218. package/dist/types/index.d.ts +0 -12
  219. package/dist/types/index.d.ts.map +0 -1
  220. package/dist/types/middleware/pipeline.d.ts +0 -32
  221. package/dist/types/middleware/pipeline.d.ts.map +0 -1
  222. package/dist/types/plugins/cookies.d.ts +0 -57
  223. package/dist/types/plugins/cookies.d.ts.map +0 -1
  224. package/dist/types/plugins/extras.d.ts +0 -87
  225. package/dist/types/plugins/extras.d.ts.map +0 -1
  226. package/dist/types/plugins/index.d.ts +0 -7
  227. package/dist/types/plugins/index.d.ts.map +0 -1
  228. package/dist/types/plugins/proxy.d.ts +0 -25
  229. package/dist/types/plugins/proxy.d.ts.map +0 -1
  230. package/dist/types/utils/index.d.ts +0 -6
  231. package/dist/types/utils/index.d.ts.map +0 -1
@@ -1,438 +0,0 @@
1
- import { HTTPError, TimeoutError, ValidationError } from "../core/types.js";
2
- import { buildURL } from "../core/transport.js";
3
- import { KINETEX_VERSION } from "../core/transport.js";
4
- // ─── Pipeline composer ────────────────────────────────────────────────────────
5
- export function compose(middlewares, final) {
6
- return middlewares.reduceRight((next, middleware) => (req) => middleware(req, next), final);
7
- }
8
- // ─── HTTP error middleware ────────────────────────────────────────────────────
9
- export function httpErrorMiddleware() {
10
- return async (request, next) => {
11
- const response = await next(request);
12
- if (request.throwHttpErrors !== false &&
13
- (response.status < 200 || response.status >= 300)) {
14
- throw new HTTPError(response, request);
15
- }
16
- return response;
17
- };
18
- }
19
- // ─── Retry middleware ─────────────────────────────────────────────────────────
20
- const DEFAULT_RETRY_STATUS_CODES = [408, 429, 500, 502, 503, 504];
21
- const DEFAULT_RETRY_METHODS = ["GET", "HEAD", "OPTIONS", "DELETE", "PUT"];
22
- function normaliseRetry(retry) {
23
- if (!retry)
24
- return null;
25
- if (typeof retry === "number")
26
- return { limit: retry };
27
- return retry;
28
- }
29
- function getDelay(config, attempt, error) {
30
- if (typeof config.delay === "function")
31
- return config.delay(attempt, error);
32
- if (typeof config.delay === "number")
33
- return config.delay;
34
- // Exponential backoff with jitter: 100ms * 2^attempt + random(0..100)
35
- return Math.min(100 * Math.pow(2, attempt) + Math.random() * 100, 30000);
36
- }
37
- export function retryMiddleware() {
38
- return async (request, next) => {
39
- const retryConfig = normaliseRetry(request.retry);
40
- if (!retryConfig || retryConfig.limit <= 0)
41
- return next(request);
42
- // Fix #15: allowMethods adds to defaults without replacing the whole list
43
- const baseMethods = retryConfig.methods ?? DEFAULT_RETRY_METHODS;
44
- const methods = retryConfig.allowMethods
45
- ? [...new Set([...baseMethods, ...retryConfig.allowMethods])]
46
- : baseMethods;
47
- const statusCodes = retryConfig.statusCodes ?? DEFAULT_RETRY_STATUS_CODES;
48
- const method = (request.method ?? "GET").toUpperCase();
49
- if (!methods.includes(method))
50
- return next(request);
51
- let lastError;
52
- let retries = 0;
53
- for (let attempt = 0; attempt <= retryConfig.limit; attempt++) {
54
- try {
55
- const response = await next({ ...request, retry: 0 });
56
- if (attempt > 0) {
57
- return { ...response, retries };
58
- }
59
- return response;
60
- }
61
- catch (error) {
62
- lastError = error;
63
- retries = attempt + 1;
64
- // Check if we should retry
65
- const isHttpError = error instanceof HTTPError;
66
- const isTimeout = error instanceof TimeoutError;
67
- const isNetworkError = !isHttpError && !isTimeout;
68
- const shouldRetry = attempt < retryConfig.limit &&
69
- ((isHttpError && statusCodes.includes(error.response.status)) ||
70
- (isNetworkError && (retryConfig.onNetworkError ?? true)) ||
71
- (isTimeout && (retryConfig.onNetworkError ?? true)));
72
- if (!shouldRetry)
73
- throw error;
74
- // Call onRetry hook
75
- retryConfig.onRetry?.(attempt + 1, error, request);
76
- // Wait before retry
77
- const delay = getDelay(retryConfig, attempt, error);
78
- if (delay > 0)
79
- await new Promise(resolve => setTimeout(resolve, delay));
80
- else
81
- await Promise.resolve(); // yield to microtask queue without setTimeout
82
- }
83
- }
84
- throw lastError;
85
- };
86
- }
87
- // ─── Cache middleware ─────────────────────────────────────────────────────────
88
- export class MemoryCacheStore {
89
- constructor() {
90
- this.store = new Map();
91
- }
92
- get(key) { return this.store.get(key); }
93
- set(key, entry) { this.store.set(key, entry); }
94
- delete(key) { this.store.delete(key); }
95
- clear() { this.store.clear(); }
96
- }
97
- // Fix #cache: defaultCacheStore must be per-instance (not a module singleton)
98
- // so different create() instances do not share cached responses.
99
- // The store is now created inside create() and passed into cacheMiddleware.
100
- // Fix #5: Use buildURL() so searchParams appended via config.searchParams are
101
- // included in the cache key. Previously two requests to /users?page=1 and
102
- // /users?page=2 (both via searchParams:{page:N}) would map to the same key.
103
- function defaultCacheKey(request) {
104
- return `${request.method ?? "GET"}:${buildURL(request)}`;
105
- }
106
- function headersToRecord(headers) {
107
- const rec = {};
108
- headers.forEach((v, k) => { rec[k] = v; });
109
- return rec;
110
- }
111
- /** Serialize response data to a string for storage in the cache. */
112
- function serializeCacheBody(data, responseType) {
113
- if (data === null || data === undefined)
114
- return null;
115
- if (responseType === "text" || typeof data === "string")
116
- return data;
117
- if (responseType === "blob" || data instanceof Blob)
118
- return null; // blobs not cacheable as text
119
- if (responseType === "arrayBuffer" || data instanceof ArrayBuffer)
120
- return null;
121
- if (responseType === "stream")
122
- return null;
123
- // json or unknown — serialize
124
- return typeof data === "string" ? data : JSON.stringify(data);
125
- }
126
- /** Restore cached body string to the correct type based on responseType. */
127
- function restoreCachedData(body, responseType) {
128
- if (body === null)
129
- return null;
130
- if (responseType === "text")
131
- return body;
132
- if (responseType === "blob")
133
- return new Blob([body]);
134
- if (responseType === "arrayBuffer")
135
- return new TextEncoder().encode(body).buffer;
136
- // json (default) or unknown
137
- try {
138
- return JSON.parse(body);
139
- }
140
- catch {
141
- return body;
142
- }
143
- }
144
- export function cacheMiddleware(
145
- // Per-instance store passed in from create(); falls back to a fresh store if
146
- // called standalone (e.g. in tests that import the middleware directly).
147
- instanceStore = new MemoryCacheStore()) {
148
- return async (request, next) => {
149
- const cacheConfig = request.cache;
150
- if (cacheConfig === false || !cacheConfig)
151
- return next(request);
152
- if ((request.method ?? "GET").toUpperCase() !== "GET")
153
- return next(request);
154
- const store = cacheConfig.store ?? instanceStore;
155
- const keyFn = cacheConfig.key ?? defaultCacheKey;
156
- const key = keyFn(request);
157
- const now = Date.now();
158
- const cached = store.get(key);
159
- if (cached) {
160
- if (now < cached.expiresAt) {
161
- // Fresh cache hit — restore data without creating a body-bearing Response
162
- // (avoids Deno leak detection for unconsumed response bodies)
163
- const cachedHeaders = new Headers(cached.response.headers);
164
- const restoredData = restoreCachedData(cached.response.body, request.responseType);
165
- return {
166
- data: restoredData,
167
- status: cached.response.status,
168
- statusText: cached.response.statusText,
169
- headers: cachedHeaders,
170
- response: new Response(null, { status: cached.response.status, statusText: cached.response.statusText, headers: cachedHeaders }),
171
- request,
172
- fromCache: true,
173
- timing: { start: now, end: now, duration: 0 },
174
- retries: 0,
175
- };
176
- }
177
- if (cached.swrExpiresAt && now < cached.swrExpiresAt) {
178
- // Stale-while-revalidate: return stale immediately, revalidate in background
179
- const staleHeaders = new Headers(cached.response.headers);
180
- const staleResponse = new Response(null, {
181
- status: cached.response.status,
182
- headers: staleHeaders,
183
- });
184
- const staleResult = {
185
- data: restoreCachedData(cached.response.body, request.responseType),
186
- status: cached.response.status,
187
- statusText: cached.response.statusText ?? "",
188
- headers: staleHeaders,
189
- response: staleResponse,
190
- request,
191
- fromCache: true,
192
- timing: { start: now, end: now, duration: 0 },
193
- retries: 0,
194
- };
195
- // Background revalidation
196
- next(request).then(fresh => {
197
- store.set(key, {
198
- response: {
199
- status: fresh.status,
200
- statusText: fresh.statusText,
201
- headers: headersToRecord(fresh.headers),
202
- body: serializeCacheBody(fresh.data, request.responseType),
203
- },
204
- expiresAt: Date.now() + (cacheConfig.ttl ?? 60000),
205
- swrExpiresAt: cacheConfig.swr ? Date.now() + (cacheConfig.ttl ?? 60000) + cacheConfig.swr : undefined,
206
- });
207
- }).catch(() => { });
208
- return staleResult;
209
- }
210
- }
211
- const response = await next(request);
212
- const ttl = cacheConfig.ttl ?? 0;
213
- if (ttl > 0 && response.status >= 200 && response.status < 300) {
214
- store.set(key, {
215
- response: {
216
- status: response.status,
217
- statusText: response.statusText,
218
- headers: headersToRecord(response.headers),
219
- body: serializeCacheBody(response.data, request.responseType),
220
- },
221
- expiresAt: now + ttl,
222
- swrExpiresAt: cacheConfig.swr ? now + ttl + cacheConfig.swr : undefined,
223
- });
224
- }
225
- return response;
226
- };
227
- }
228
- // ─── Deduplicate middleware ───────────────────────────────────────────────────
229
- export function dedupeMiddleware(
230
- // Fix #4: Accept a shared Map so all pipelines on the same instance share state.
231
- // When called with no argument (standalone), creates its own Map.
232
- inflightRequests = new Map()) {
233
- return async (request, next) => {
234
- if (request.dedupe === false)
235
- return next(request);
236
- if ((request.method ?? "GET").toUpperCase() !== "GET")
237
- return next(request);
238
- // Build a dedup key that includes ALL headers so requests with any
239
- // differing header (auth, tenant, etc.) are never collapsed.
240
- let headersKey = "";
241
- if (request.headers instanceof Headers) {
242
- const entries = [];
243
- request.headers.forEach((v, k) => entries.push([k.toLowerCase(), v]));
244
- entries.sort((a, b) => a[0] < b[0] ? -1 : 1);
245
- headersKey = JSON.stringify(entries);
246
- }
247
- else if (Array.isArray(request.headers)) {
248
- const entries = request.headers.map(([k, v]) => [k.toLowerCase(), v]);
249
- entries.sort((a, b) => a[0] < b[0] ? -1 : 1);
250
- headersKey = JSON.stringify(entries);
251
- }
252
- else if (request.headers) {
253
- const h = request.headers;
254
- const entries = Object.entries(h).map(([k, v]) => [k.toLowerCase(), v]);
255
- entries.sort((a, b) => a[0] < b[0] ? -1 : 1);
256
- headersKey = JSON.stringify(entries);
257
- }
258
- // Fix #5: use buildURL so searchParams are included in the dedup key too
259
- const key = `${request.method ?? "GET"}:${buildURL(request)}:${headersKey}`;
260
- const existing = inflightRequests.get(key);
261
- if (existing)
262
- return existing;
263
- const promise = next(request);
264
- inflightRequests.set(key, promise);
265
- try {
266
- return await promise;
267
- }
268
- finally {
269
- inflightRequests.delete(key);
270
- }
271
- };
272
- }
273
- // ─── Schema validation middleware ─────────────────────────────────────────────
274
- export function schemaMiddleware() {
275
- return async (request, next) => {
276
- const response = await next(request);
277
- if (!request.schema)
278
- return response;
279
- const schema = request.schema;
280
- if ("safeParse" in schema) {
281
- // zod / valibot style
282
- const result = schema.safeParse(response.data);
283
- if (!result.success) {
284
- const parseError = result.error;
285
- throw new ValidationError(request, response, parseError);
286
- }
287
- return { ...response, data: result.data };
288
- }
289
- else {
290
- // Custom validator with .parse()
291
- try {
292
- const parsed = schema.parse(response.data);
293
- return { ...response, data: parsed };
294
- }
295
- catch (err) {
296
- throw new ValidationError(request, response, err);
297
- }
298
- }
299
- };
300
- }
301
- // ─── Logger middleware ────────────────────────────────────────────────────────
302
- export function loggerMiddleware() {
303
- return async (request, next) => {
304
- if (!request.logger)
305
- return next(request);
306
- const logger = request.logger;
307
- logger.request?.(request);
308
- try {
309
- const response = await next(request);
310
- logger.response?.(response);
311
- return response;
312
- }
313
- catch (err) {
314
- if (err instanceof Error) {
315
- logger.error?.(err);
316
- }
317
- throw err;
318
- }
319
- };
320
- }
321
- // ─── HAR recording middleware ─────────────────────────────────────────────────
322
- export class HarRecorder {
323
- constructor() {
324
- this.entries = [];
325
- }
326
- middleware() {
327
- return async (request, next) => {
328
- if (!request.har)
329
- return next(request);
330
- const startedAt = new Date().toISOString();
331
- const startTime = Date.now();
332
- const url = new URL(request.url);
333
- const queryString = Array.from(url.searchParams.entries())
334
- .map(([name, value]) => ({ name, value }));
335
- const requestHeaders = new Headers(request.headers);
336
- const harRequest = {
337
- method: (request.method ?? "GET").toUpperCase(),
338
- url: request.url,
339
- httpVersion: "HTTP/1.1",
340
- headers: Array.from(requestHeaders.entries()).map(([name, value]) => ({ name, value })),
341
- queryString,
342
- bodySize: (() => {
343
- const b = request.body;
344
- if (!b)
345
- return 0;
346
- if (typeof b === "string")
347
- return new TextEncoder().encode(b).byteLength;
348
- if (b instanceof ArrayBuffer)
349
- return b.byteLength;
350
- if (ArrayBuffer.isView(b))
351
- return b.byteLength;
352
- if (b instanceof URLSearchParams)
353
- return new TextEncoder().encode(b.toString()).byteLength;
354
- return -1; // FormData / ReadableStream — size unknown
355
- })(),
356
- };
357
- const response = await next(request);
358
- const endTime = Date.now();
359
- const bodyText = typeof response.data === "string"
360
- ? response.data
361
- : response.data === undefined || response.data === null
362
- ? ""
363
- : (JSON.stringify(response.data) ?? "");
364
- const harResponse = {
365
- status: response.status,
366
- statusText: response.statusText,
367
- headers: Array.from(response.headers.entries()).map(([name, value]) => ({ name, value })),
368
- content: {
369
- size: bodyText.length,
370
- mimeType: response.headers.get("content-type") ?? "application/octet-stream",
371
- text: bodyText,
372
- },
373
- bodySize: bodyText.length,
374
- };
375
- const entry = {
376
- startedDateTime: startedAt,
377
- time: endTime - startTime,
378
- request: harRequest,
379
- response: harResponse,
380
- timings: {
381
- send: 0,
382
- wait: response.timing?.ttfb ?? (endTime - startTime),
383
- receive: endTime - startTime - (response.timing?.ttfb ?? 0),
384
- },
385
- };
386
- this.entries.push(entry);
387
- return { ...response, harEntry: entry };
388
- };
389
- }
390
- export() {
391
- return {
392
- log: {
393
- version: "1.2",
394
- creator: { name: "kinetex", version: KINETEX_VERSION },
395
- entries: [...this.entries],
396
- },
397
- };
398
- }
399
- clear() { this.entries = []; }
400
- }
401
- // ─── Hooks middleware ─────────────────────────────────────────────────────────
402
- export function hooksMiddleware() {
403
- return async (request, next) => {
404
- if (!request.hooks)
405
- return next(request);
406
- const { hooks } = request;
407
- let mutatedRequest = request;
408
- // beforeRequest hooks
409
- if (hooks.beforeRequest) {
410
- for (const hook of hooks.beforeRequest) {
411
- const result = await hook(mutatedRequest);
412
- if (result)
413
- mutatedRequest = result;
414
- }
415
- }
416
- try {
417
- let response = await next(mutatedRequest);
418
- // afterResponse hooks
419
- if (hooks.afterResponse) {
420
- for (const hook of hooks.afterResponse) {
421
- const result = await hook(response, mutatedRequest);
422
- if (result)
423
- response = result;
424
- }
425
- }
426
- return response;
427
- }
428
- catch (err) {
429
- if (hooks.onError) {
430
- for (const hook of hooks.onError) {
431
- await hook(err, mutatedRequest);
432
- }
433
- }
434
- throw err;
435
- }
436
- };
437
- }
438
- //# sourceMappingURL=pipeline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/middleware/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,187 +0,0 @@
1
- /**
2
- * Cookie jar — universal cookie management, zero dependencies.
3
- * Implements RFC 6265 subset: domain/path/expires/secure/httpOnly.
4
- */
5
- function parseCookie(setCookieHeader, requestUrl) {
6
- const parts = setCookieHeader.split(";").map(p => p.trim());
7
- const [nameVal, ...attributes] = parts;
8
- if (!nameVal)
9
- return null;
10
- const eqIdx = nameVal.indexOf("=");
11
- if (eqIdx < 0)
12
- return null;
13
- const name = nameVal.slice(0, eqIdx).trim();
14
- const value = nameVal.slice(eqIdx + 1).trim();
15
- if (!name)
16
- return null;
17
- const cookie = { name, value };
18
- try {
19
- const reqUrl = new URL(requestUrl);
20
- cookie.domain = reqUrl.hostname;
21
- cookie.path = "/";
22
- }
23
- catch {
24
- return null;
25
- }
26
- for (const attr of attributes) {
27
- const [attrName, ...attrValParts] = attr.split("=");
28
- const attrKey = attrName.trim().toLowerCase();
29
- const attrVal = attrValParts.join("=").trim();
30
- switch (attrKey) {
31
- case "domain":
32
- cookie.domain = attrVal.startsWith(".") ? attrVal.slice(1) : attrVal;
33
- break;
34
- case "path":
35
- cookie.path = attrVal || "/";
36
- break;
37
- case "expires":
38
- try {
39
- cookie.expires = new Date(attrVal);
40
- }
41
- catch { /* ignore */ }
42
- break;
43
- case "max-age": {
44
- const maxAge = parseInt(attrVal, 10);
45
- if (!isNaN(maxAge)) {
46
- cookie.maxAge = maxAge;
47
- cookie.expires = new Date(Date.now() + maxAge * 1000);
48
- }
49
- break;
50
- }
51
- case "secure":
52
- cookie.secure = true;
53
- break;
54
- case "httponly":
55
- cookie.httpOnly = true;
56
- break;
57
- case "samesite":
58
- cookie.sameSite = attrVal ?? "Lax";
59
- break;
60
- }
61
- }
62
- return cookie;
63
- }
64
- function domainMatch(cookieDomain, requestDomain) {
65
- if (cookieDomain === requestDomain)
66
- return true;
67
- if (requestDomain.endsWith("." + cookieDomain))
68
- return true;
69
- return false;
70
- }
71
- function pathMatch(cookiePath, requestPath) {
72
- if (cookiePath === requestPath)
73
- return true;
74
- if (requestPath.startsWith(cookiePath)) {
75
- if (cookiePath.endsWith("/"))
76
- return true;
77
- if (requestPath[cookiePath.length] === "/")
78
- return true;
79
- }
80
- return false;
81
- }
82
- export class CookieJar {
83
- constructor(_options = {}) {
84
- this.cookies = new Map();
85
- }
86
- /**
87
- * Store cookies from a Set-Cookie response header.
88
- */
89
- setCookie(setCookieHeader, requestUrl) {
90
- const headers = Array.isArray(setCookieHeader) ? setCookieHeader : [setCookieHeader];
91
- for (const header of headers) {
92
- const cookie = parseCookie(header, requestUrl);
93
- if (!cookie)
94
- continue;
95
- // Check if expired immediately
96
- if (cookie.maxAge !== undefined && cookie.maxAge <= 0) {
97
- this.cookies.delete(this._key(cookie));
98
- continue;
99
- }
100
- if (cookie.expires && cookie.expires < new Date()) {
101
- this.cookies.delete(this._key(cookie));
102
- continue;
103
- }
104
- this.cookies.set(this._key(cookie), cookie);
105
- }
106
- }
107
- /**
108
- * Get cookies applicable for a given URL as a Cookie header string.
109
- */
110
- getCookieString(requestUrl) {
111
- const now = new Date();
112
- try {
113
- const url = new URL(requestUrl);
114
- const isSecure = url.protocol === "https:";
115
- const domain = url.hostname;
116
- const path = url.pathname || "/";
117
- // Bug 11 fix: separate expired-cookie cleanup pass before iteration so we
118
- // don't mutate the Map while iterating over it (bad practice even though
119
- // modern JS Maps define the deletion-during-iteration behaviour).
120
- const expiredKeys = [];
121
- for (const [key, cookie] of this.cookies) {
122
- if (cookie.expires && cookie.expires < now)
123
- expiredKeys.push(key);
124
- }
125
- for (const key of expiredKeys)
126
- this.cookies.delete(key);
127
- const applicable = [];
128
- for (const cookie of this.cookies.values()) {
129
- // Domain check
130
- if (cookie.domain && !domainMatch(cookie.domain, domain))
131
- continue;
132
- // Path check
133
- if (cookie.path && !pathMatch(cookie.path, path))
134
- continue;
135
- // Secure check
136
- if (cookie.secure && !isSecure)
137
- continue;
138
- applicable.push(cookie);
139
- }
140
- return applicable.map(c => `${c.name}=${c.value}`).join("; ");
141
- }
142
- catch {
143
- return "";
144
- }
145
- }
146
- /**
147
- * Get all stored cookies.
148
- */
149
- getAll() {
150
- return Array.from(this.cookies.values());
151
- }
152
- /**
153
- * Clear all cookies.
154
- */
155
- clear() {
156
- this.cookies.clear();
157
- }
158
- /**
159
- * Remove a specific cookie.
160
- */
161
- delete(name, domain, path) {
162
- const key = `${name}@${domain ?? ""}${path ?? "/"}`;
163
- this.cookies.delete(key);
164
- }
165
- /**
166
- * Serialize to JSON for persistence.
167
- */
168
- toJSON() {
169
- return this.getAll();
170
- }
171
- /**
172
- * Restore from serialized JSON.
173
- */
174
- fromJSON(cookies) {
175
- for (const cookie of cookies) {
176
- this.cookies.set(this._key(cookie), cookie);
177
- }
178
- }
179
- _key(cookie) {
180
- return `${cookie.name}@${cookie.domain ?? ""}${cookie.path ?? "/"}`;
181
- }
182
- }
183
- /** Create a new cookie jar */
184
- export function cookieJar(options) {
185
- return new CookieJar(options);
186
- }
187
- //# sourceMappingURL=cookies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../../src/plugins/cookies.ts"],"names":[],"mappings":"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"}