@deepkit/http 1.0.18 → 1.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 (92) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/cjs/index.d.ts +2 -0
  3. package/dist/cjs/index.js +2 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/src/decorator.js +11 -7
  6. package/dist/cjs/src/decorator.js.map +1 -1
  7. package/dist/cjs/src/filter.js +1 -1
  8. package/dist/cjs/src/filter.js.map +1 -1
  9. package/dist/cjs/src/http.d.ts +5 -2
  10. package/dist/cjs/src/http.js +93 -67
  11. package/dist/cjs/src/http.js.map +1 -1
  12. package/dist/cjs/src/kernel.d.ts +2 -2
  13. package/dist/cjs/src/kernel.js +7 -14
  14. package/dist/cjs/src/kernel.js.map +1 -1
  15. package/dist/cjs/src/logger.js +0 -7
  16. package/dist/cjs/src/logger.js.map +1 -1
  17. package/dist/cjs/src/middleware.d.ts +2 -2
  18. package/dist/cjs/src/middleware.js +2 -2
  19. package/dist/cjs/src/mime.d.ts +19 -0
  20. package/dist/cjs/src/mime.js +147 -0
  21. package/dist/cjs/src/mime.js.map +1 -0
  22. package/dist/cjs/src/model.d.ts +7 -0
  23. package/dist/cjs/src/model.js +16 -7
  24. package/dist/cjs/src/model.js.map +1 -1
  25. package/dist/cjs/src/module.js +9 -5
  26. package/dist/cjs/src/module.js.map +1 -1
  27. package/dist/cjs/src/query-string.d.ts +6 -0
  28. package/dist/cjs/src/query-string.js +229 -0
  29. package/dist/cjs/src/query-string.js.map +1 -0
  30. package/dist/cjs/src/request-parser.js +12 -10
  31. package/dist/cjs/src/request-parser.js.map +1 -1
  32. package/dist/cjs/src/router.js +14 -15
  33. package/dist/cjs/src/router.js.map +1 -1
  34. package/dist/cjs/src/static-serving.d.ts +6 -0
  35. package/dist/cjs/src/static-serving.js +232 -28
  36. package/dist/cjs/src/static-serving.js.map +1 -1
  37. package/dist/cjs/src/utils.js +1 -1
  38. package/dist/cjs/src/utils.js.map +1 -1
  39. package/dist/esm/index.d.ts +2 -0
  40. package/dist/esm/index.js +2 -0
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/src/decorator.js +11 -7
  43. package/dist/esm/src/decorator.js.map +1 -1
  44. package/dist/esm/src/filter.js +1 -1
  45. package/dist/esm/src/filter.js.map +1 -1
  46. package/dist/esm/src/http.d.ts +5 -2
  47. package/dist/esm/src/http.js +58 -66
  48. package/dist/esm/src/http.js.map +1 -1
  49. package/dist/esm/src/kernel.d.ts +2 -2
  50. package/dist/esm/src/kernel.js +8 -15
  51. package/dist/esm/src/kernel.js.map +1 -1
  52. package/dist/esm/src/logger.js +0 -7
  53. package/dist/esm/src/logger.js.map +1 -1
  54. package/dist/esm/src/middleware.d.ts +2 -2
  55. package/dist/esm/src/middleware.js +2 -2
  56. package/dist/esm/src/mime.d.ts +19 -0
  57. package/dist/esm/src/mime.js +142 -0
  58. package/dist/esm/src/mime.js.map +1 -0
  59. package/dist/esm/src/model.d.ts +7 -0
  60. package/dist/esm/src/model.js +16 -7
  61. package/dist/esm/src/model.js.map +1 -1
  62. package/dist/esm/src/module.js +9 -5
  63. package/dist/esm/src/module.js.map +1 -1
  64. package/dist/esm/src/query-string.d.ts +6 -0
  65. package/dist/esm/src/query-string.js +226 -0
  66. package/dist/esm/src/query-string.js.map +1 -0
  67. package/dist/esm/src/request-parser.js +12 -10
  68. package/dist/esm/src/request-parser.js.map +1 -1
  69. package/dist/esm/src/router.js +14 -12
  70. package/dist/esm/src/router.js.map +1 -1
  71. package/dist/esm/src/static-serving.d.ts +6 -0
  72. package/dist/esm/src/static-serving.js +234 -27
  73. package/dist/esm/src/static-serving.js.map +1 -1
  74. package/dist/esm/src/utils.js +1 -1
  75. package/dist/esm/src/utils.js.map +1 -1
  76. package/index.ts +2 -0
  77. package/package.json +22 -25
  78. package/src/http.ts +43 -10
  79. package/src/kernel.ts +8 -21
  80. package/src/middleware.ts +2 -2
  81. package/src/mime.ts +141 -0
  82. package/src/model.ts +10 -2
  83. package/src/module.ts +4 -2
  84. package/src/query-string.ts +228 -0
  85. package/src/request-parser.ts +6 -4
  86. package/src/router.ts +3 -3
  87. package/src/static-serving.ts +221 -8
  88. package/tsconfig.json +3 -17
  89. package/tsconfig.spec.json +4 -1
  90. package/LICENSE +0 -21
  91. package/dist/cjs/tsconfig.tsbuildinfo +0 -1
  92. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
@@ -2,6 +2,12 @@ import { httpWorkflow } from './http.js';
2
2
  import { AppModule } from '@deepkit/app';
3
3
  import { ClassType } from '@deepkit/core';
4
4
  import { HttpRequest, HttpResponse } from './model.js';
5
+ /**
6
+ * Sends the file at `path` (URL encoded, relative to `localPath`) as response.
7
+ *
8
+ * Supports HEAD, Range requests, and conditional requests (ETag, Last-Modified).
9
+ * Paths with `..` are rejected with 403, paths to dotfiles (or in dot-directories) with 404.
10
+ */
5
11
  export declare function staticServe(localPath: string, path: string, request: HttpRequest, response: HttpResponse): Promise<unknown>;
6
12
  export declare function staticOnRoute(event: typeof httpWorkflow.onRoute.event, path: string, localPath: string): Promise<unknown>;
7
13
  export declare function serveStaticListener(module: AppModule<any>, path: string, localPath?: string): ClassType;
@@ -4,13 +4,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
7
  function __assignType(fn, args) {
11
8
  fn.__type = args;
12
9
  return fn;
13
10
  }
11
+ escapeHtml.__type = ['value', 'escapeHtml', 'P&2!&/"'];
12
+ sendHtml.__type = [() => HttpResponse, 'response', 'status', 'title', 'body', 'headers', () => ({}), 'sendHtml', 'PP7!2"\'2#&2$&2%P&&LM2&>\'"/('];
13
+ sendError.__type = [() => HttpResponse, 'response', 'status', 'headers', () => ({}), 'sendError', 'PP7!2"\'2#P&&LM2$>%"/&'];
14
+ encodeUrl.__type = ['url', 'encodeUrl', 'P&2!&/"'];
15
+ parseHttpDate.__type = ['date', 'parseHttpDate', 'PP&\'&FJ2!8\'/"'];
16
+ parseTokenList.__type = ['value', 'parseTokenList', 'P&2!&F/"'];
17
+ matchesETag.__type = ['header', 'etag', 'matchesETag', 'P&2!&2")/#'];
18
+ parseRange.__type = ['size', 'header', 'start', 'end', -1, 'parseRange', 'P\'2!&2"PP\'4#\'4$MF.%-J/&'];
19
+ sendFile.__type = [() => HttpRequest, 'request', () => HttpResponse, 'response', 'path', 'stats', 'sendFile', 'PP7!2"P7#2$&2%!2&"/\''];
20
+ staticServe.__type = ['localPath', 'path', () => HttpRequest, 'request', () => HttpResponse, 'response', 'staticServe', 'P&2!&2"P7#2$P7%2&"/\''];
21
+ staticOnRoute.__type = [() => httpWorkflow.onRoute.event, 'event', 'path', 'localPath', 'staticOnRoute', 'Pi!2"&2#&2$"/%'];
22
+ serveStaticListener.__type = [() => AppModule, 'module', 'path', 'localPath', () => path, () => __ΩClassType, 'serveStaticListener', 'PP"7!2"&2#&2$>%n&/\''];
23
+ loadHtml.__type = ['localPath', 'path', 'loadHtml', 'P&2!&2"&/#'];
24
+ registerStaticHttpController.__type = [() => AppModule, 'module', () => __ΩStaticHttpOptions, 'options', 'registerStaticHttpController', 'PP"7!2"n#2$$/%'];
25
+ const Ωt0 = [() => HttpRouter, 'P7!'];
26
+ const Ωt1 = [() => HttpRouter, 'P7!'];
14
27
  /*
15
28
  * Deepkit Framework
16
29
  * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt
@@ -21,8 +34,9 @@ function __assignType(fn, args) {
21
34
  * You should have received a copy of the MIT License along with this program.
22
35
  */
23
36
  import { http } from './decorator.js';
24
- import { join } from 'path';
25
- import { readFileSync, stat } from 'fs';
37
+ import { join, normalize, resolve, sep } from 'path';
38
+ import { createReadStream, readFileSync, stat } from 'fs';
39
+ import { STATUS_CODES } from 'http';
26
40
  import { HtmlResponse, httpWorkflow } from './http.js';
27
41
  import { AppModule } from '@deepkit/app';
28
42
  import { normalizeDirectory } from './utils.js';
@@ -30,17 +44,216 @@ import { normalizeDirectory } from './utils.js';
30
44
  import { __ΩClassType } from '@deepkit/core';
31
45
  import { urlJoin } from '@deepkit/core';
32
46
  import { HttpRequest, HttpResponse } from './model.js';
33
- import send from 'send';
47
+ import { getContentType } from './mime.js';
34
48
  import { eventDispatcher } from '@deepkit/event';
35
49
  import { HttpRouter, RouteConfig } from './router.js';
50
+ const upPathRegExp = /(?:^|[\\/])\.\.(?:[\\/]|$)/;
51
+ function escapeHtml(value) {
52
+ return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;');
53
+ }
54
+ function sendHtml(response, status, title, body, headers = {}) {
55
+ const doc = `<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>${title}</title>\n</head>\n<body>\n<pre>${escapeHtml(body)}</pre>\n</body>\n</html>\n`;
56
+ for (const [name, value] of Object.entries(headers))
57
+ response.setHeader(name, value);
58
+ response.statusCode = status;
59
+ response.setHeader('Content-Type', 'text/html; charset=UTF-8');
60
+ response.setHeader('Content-Length', Buffer.byteLength(doc));
61
+ response.setHeader('Content-Security-Policy', "default-src 'none'");
62
+ response.setHeader('X-Content-Type-Options', 'nosniff');
63
+ response.end(doc);
64
+ }
65
+ function sendError(response, status, headers = {}) {
66
+ for (const name of response.getHeaderNames())
67
+ response.removeHeader(name);
68
+ sendHtml(response, status, 'Error', STATUS_CODES[status] || String(status), headers);
69
+ }
70
+ /**
71
+ * Encodes characters not allowed in a URL, but keeps already percent-encoded sequences.
72
+ */
73
+ function encodeUrl(url) {
74
+ return url
75
+ .replace(/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g, '$1\uFFFD$2')
76
+ .replace(/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g, encodeURI);
77
+ }
78
+ function parseHttpDate(date) {
79
+ const timestamp = 'string' === typeof date ? Date.parse(date) : NaN;
80
+ return 'number' === typeof timestamp ? timestamp : NaN;
81
+ }
82
+ function parseTokenList(value) {
83
+ return value.split(',').map(__assignType(v => v.trim(), ['v', '', 'P"2!"/"'])).filter(__assignType(v => v !== '', ['v', '', 'P"2!"/"']));
84
+ }
85
+ function matchesETag(header, etag) {
86
+ return parseTokenList(header).some(__assignType(match => match === etag || match === 'W/' + etag || 'W/' + match === etag, ['match', '', 'P"2!"/"']));
87
+ }
88
+ /**
89
+ * Parses a `Range: bytes=...` header. Returns undefined for a syntactically invalid header, -1 if not satisfiable,
90
+ * and the ranges otherwise (overlapping and adjacent ranges are combined).
91
+ */
92
+ function parseRange(size, header) {
93
+ const index = header.indexOf('=');
94
+ if (index === -1)
95
+ return;
96
+ const ranges = [];
97
+ for (const part of header.slice(index + 1).split(',')) {
98
+ const [startString, endString] = part.split('-');
99
+ let start = parseInt(startString, 10);
100
+ let end = parseInt(endString, 10);
101
+ if (isNaN(start)) {
102
+ // -nnn: the last nnn bytes
103
+ start = size - end;
104
+ end = size - 1;
105
+ }
106
+ else if (isNaN(end)) {
107
+ // nnn-: from nnn to the end
108
+ end = size - 1;
109
+ }
110
+ if (end > size - 1)
111
+ end = size - 1;
112
+ if (isNaN(start) || isNaN(end) || start > end || start < 0)
113
+ continue;
114
+ ranges.push({ start, end, index: ranges.length });
115
+ }
116
+ if (!ranges.length)
117
+ return -1;
118
+ const ordered = ranges.sort(__assignType((a, b) => a.start - b.start, ['a', 'b', '', 'P"2!"2""/#']));
119
+ let j = 0;
120
+ for (let i = 1; i < ordered.length; i++) {
121
+ const range = ordered[i];
122
+ const current = ordered[j];
123
+ if (range.start > current.end + 1) {
124
+ ordered[++j] = range;
125
+ }
126
+ else if (range.end > current.end) {
127
+ current.end = range.end;
128
+ current.index = Math.min(current.index, range.index);
129
+ }
130
+ }
131
+ ordered.length = j + 1;
132
+ return ordered.sort(__assignType((a, b) => a.index - b.index, ['a', 'b', '', 'P"2!"2""/#'])).map(__assignType(v => ({ start: v.start, end: v.end }), ['v', '', 'P"2!"/"']));
133
+ }
134
+ function sendFile(request, response, path, stats) {
135
+ if (response.headersSent)
136
+ return sendError(response, 500);
137
+ if (!response.getHeader('Accept-Ranges'))
138
+ response.setHeader('Accept-Ranges', 'bytes');
139
+ if (!response.getHeader('Cache-Control'))
140
+ response.setHeader('Cache-Control', 'public, max-age=0');
141
+ if (!response.getHeader('Last-Modified'))
142
+ response.setHeader('Last-Modified', stats.mtime.toUTCString());
143
+ if (!response.getHeader('ETag'))
144
+ response.setHeader('ETag', `W/"${stats.size.toString(16)}-${stats.mtime.getTime().toString(16)}"`);
145
+ if (!response.getHeader('Content-Type'))
146
+ response.setHeader('Content-Type', getContentType(path) || 'application/octet-stream');
147
+ const etag = String(response.getHeader('ETag'));
148
+ const lastModified = parseHttpDate(response.getHeader('Last-Modified'));
149
+ const headers = request.headers;
150
+ // precondition failure
151
+ const ifMatch = headers['if-match'];
152
+ if (ifMatch ? ifMatch !== '*' && !matchesETag(ifMatch, etag) : lastModified > parseHttpDate(headers['if-unmodified-since'])) {
153
+ return sendError(response, 412);
154
+ }
155
+ // not modified
156
+ const ifNoneMatch = headers['if-none-match'];
157
+ const ifModifiedSince = headers['if-modified-since'];
158
+ const noCache = /(?:^|,)\s*?no-cache\s*?(?:,|$)/.test(headers['cache-control'] || '');
159
+ const isCachable = (response.statusCode >= 200 && response.statusCode < 300) || response.statusCode === 304;
160
+ if (isCachable && (ifNoneMatch || ifModifiedSince) && !noCache) {
161
+ const fresh = ifNoneMatch
162
+ ? ifNoneMatch === '*' || matchesETag(ifNoneMatch, etag)
163
+ : lastModified <= parseHttpDate(ifModifiedSince);
164
+ if (fresh) {
165
+ for (const name of ['Content-Encoding', 'Content-Language', 'Content-Length', 'Content-Range', 'Content-Type']) {
166
+ response.removeHeader(name);
167
+ }
168
+ response.statusCode = 304;
169
+ response.end();
170
+ return;
171
+ }
172
+ }
173
+ let start = 0;
174
+ let length = stats.size;
175
+ const rangeHeader = headers.range;
176
+ if (rangeHeader && /^ *bytes=/.test(rangeHeader)) {
177
+ let ranges = parseRange(length, rangeHeader);
178
+ // If-Range: only send the range if the representation is unchanged, otherwise the whole file
179
+ const ifRange = headers['if-range'];
180
+ if (ifRange && (ifRange.includes('"') ? !ifRange.includes(etag) : !(lastModified <= parseHttpDate(ifRange)))) {
181
+ ranges = undefined;
182
+ }
183
+ if (ranges === -1) {
184
+ return sendError(response, 416, { 'Content-Range': `bytes */${length}` });
185
+ }
186
+ // multiple ranges are answered with the whole file
187
+ if (ranges && ranges.length === 1) {
188
+ response.statusCode = 206;
189
+ response.setHeader('Content-Range', `bytes ${ranges[0].start}-${ranges[0].end}/${length}`);
190
+ start = ranges[0].start;
191
+ length = ranges[0].end - ranges[0].start + 1;
192
+ }
193
+ }
194
+ response.setHeader('Content-Length', length);
195
+ if (request.method === 'HEAD') {
196
+ response.end();
197
+ return;
198
+ }
199
+ const stream = createReadStream(path, { start, end: Math.max(start, start + length - 1) });
200
+ response.once('close', () => stream.destroy());
201
+ stream.once('error', () => {
202
+ stream.destroy();
203
+ if (response.headersSent) {
204
+ response.destroy();
205
+ }
206
+ else {
207
+ sendError(response, 500);
208
+ }
209
+ });
210
+ stream.pipe(response);
211
+ }
212
+ /**
213
+ * Sends the file at `path` (URL encoded, relative to `localPath`) as response.
214
+ *
215
+ * Supports HEAD, Range requests, and conditional requests (ETag, Last-Modified).
216
+ * Paths with `..` are rejected with 403, paths to dotfiles (or in dot-directories) with 404.
217
+ */
36
218
  export function staticServe(localPath, path, request, response) {
37
- return new Promise(__assignType((resolve, reject) => {
38
- const res = send(request, path, { root: localPath });
39
- res.pipe(response);
40
- res.on('end', resolve);
41
- }, ['resolve', 'reject', '', 'P"2!"2""/#']));
219
+ return new Promise(__assignType(resolvePromise => {
220
+ response.once('finish', resolvePromise);
221
+ response.once('close', resolvePromise);
222
+ let decodedPath;
223
+ try {
224
+ decodedPath = decodeURIComponent(path);
225
+ }
226
+ catch {
227
+ return sendError(response, 400);
228
+ }
229
+ if (decodedPath.includes('\0'))
230
+ return sendError(response, 400);
231
+ // normalize relative to root
232
+ if (decodedPath)
233
+ decodedPath = normalize('.' + sep + decodedPath);
234
+ if (upPathRegExp.test(decodedPath))
235
+ return sendError(response, 403);
236
+ // dotfiles are ignored
237
+ if (decodedPath.split(sep).some(__assignType(part => part.length > 1 && part[0] === '.', ['part', '', 'P"2!"/"'])))
238
+ return sendError(response, 404);
239
+ const filePath = normalize(join(resolve(localPath), decodedPath));
240
+ const hasTrailingSlash = path[path.length - 1] === '/';
241
+ stat(hasTrailingSlash ? join(filePath, 'index.html') : filePath, __assignType((error, stats) => {
242
+ if (error) {
243
+ const notFound = error.code === 'ENOENT' || error.code === 'ENOTDIR' || error.code === 'ENAMETOOLONG';
244
+ return sendError(response, notFound ? 404 : 500);
245
+ }
246
+ if (stats.isDirectory()) {
247
+ if (hasTrailingSlash)
248
+ return sendError(response, 404);
249
+ const location = encodeUrl((path + '/').replace(/^\/+/, '/'));
250
+ sendHtml(response, 301, 'Redirecting', 'Redirecting to ' + location, { Location: location });
251
+ return;
252
+ }
253
+ sendFile(request, response, hasTrailingSlash ? join(filePath, 'index.html') : filePath, stats);
254
+ }, ['error', 'stats', '', 'P"2!"2""/#']));
255
+ }, ['resolvePromise', '', 'P"2!"/"']));
42
256
  }
43
- staticServe.__type = ['localPath', 'path', () => HttpRequest, 'request', () => HttpResponse, 'response', 'staticServe', 'P&2!&2"P7#2$P7%2&"/\''];
44
257
  export async function staticOnRoute(event, path, localPath) {
45
258
  if (event.sent)
46
259
  return;
@@ -49,7 +262,12 @@ export async function staticOnRoute(event, path, localPath) {
49
262
  if (!event.request.url?.startsWith(path))
50
263
  return;
51
264
  const relativePath = urlJoin('/', event.url.substr(path.length));
52
- const finalLocalPath = join(localPath, relativePath);
265
+ const root = resolve(localPath);
266
+ const finalLocalPath = join(root, relativePath);
267
+ // paths outside of the root (e.g. /../../etc/passwd) are not checked at all, otherwise 403 (exists) and
268
+ // 404 (doesn't exist) would tell whether a file exists anywhere on the server
269
+ if (finalLocalPath !== root && !finalLocalPath.startsWith(root + sep))
270
+ return;
53
271
  return new Promise(__assignType(resolve => {
54
272
  stat(finalLocalPath, __assignType((err, stat) => {
55
273
  if (stat && stat.isFile()) {
@@ -59,7 +277,6 @@ export async function staticOnRoute(event, path, localPath) {
59
277
  }, ['err', 'stat', '', 'P"2!"2""/#']));
60
278
  }, ['resolve', '', 'P"2!"/"']));
61
279
  }
62
- staticOnRoute.__type = [() => httpWorkflow.onRoute.event, 'event', 'path', 'localPath', 'staticOnRoute', 'Pi!2"&2#&2$"/%'];
63
280
  export function serveStaticListener(module, path, localPath = path) {
64
281
  class HttpRequestStaticServingListener {
65
282
  onRoute(event) {
@@ -69,14 +286,9 @@ export function serveStaticListener(module, path, localPath = path) {
69
286
  HttpRequestStaticServingListener.__type = [() => httpWorkflow.onRoute.event, 'event', 'onRoute', 'HttpRequestStaticServingListener', 'Pi!2""0#5w$'];
70
287
  __decorate([
71
288
  eventDispatcher.listen(httpWorkflow.onRoute, 101) //after default route listener at 100
72
- ,
73
- __metadata("design:type", Function),
74
- __metadata("design:paramtypes", [Object]),
75
- __metadata("design:returntype", void 0)
76
289
  ], HttpRequestStaticServingListener.prototype, "onRoute", null);
77
290
  return HttpRequestStaticServingListener;
78
291
  }
79
- serveStaticListener.__type = [() => AppModule, 'module', 'path', 'localPath', () => path, () => __ΩClassType, 'serveStaticListener', 'PP"7!2"&2#&2$>%n&/\''];
80
292
  function loadHtml(localPath, path) {
81
293
  try {
82
294
  let indexHtml = readFileSync(join(localPath, 'index.html')).toString('utf8');
@@ -87,7 +299,6 @@ function loadHtml(localPath, path) {
87
299
  return '';
88
300
  }
89
301
  }
90
- loadHtml.__type = ['localPath', 'path', 'loadHtml', 'P&2!&2"&/#'];
91
302
  const __ΩStaticHttpOptions = ['path', 'localPath', 'groups', 'controllerName', 'indexReplace', 'StaticHttpOptions', 'P&4!&4"&F4#8&4$8P&&LM4%8Mw&y'];
92
303
  export { __ΩStaticHttpOptions as __ΩStaticHttpOptions };
93
304
  /**
@@ -114,10 +325,7 @@ export function registerStaticHttpController(module, options) {
114
325
  }
115
326
  StaticController.__type = [() => HttpRequest, 'request', () => HttpResponse, 'response', 'serveIndex', 'StaticController', 'PP7!2"P7#2$"0%5w&'];
116
327
  __decorate([
117
- (http.GET().group(...groups)),
118
- __metadata("design:type", Function),
119
- __metadata("design:paramtypes", [HttpRequest, HttpResponse]),
120
- __metadata("design:returntype", void 0)
328
+ (http.GET().group(...groups))
121
329
  ], StaticController.prototype, "serveIndex", null);
122
330
  if (options.controllerName) {
123
331
  Object.defineProperty(StaticController, 'name', { value: options.controllerName, writable: true });
@@ -130,7 +338,7 @@ export function registerStaticHttpController(module, options) {
130
338
  methodName: 'serveIndex',
131
339
  });
132
340
  route1.groups = groups;
133
- (module.configureProvider.Ω = [[() => HttpRouter, 'P7!']], module.configureProvider(__assignType(router => router.addRoute(route1), ['router', '', 'P"2!"/"']), { global: true }));
341
+ (module.configureProvider.Ω = [Ωt0], module.configureProvider(__assignType(router => router.addRoute(route1), ['router', '', 'P"2!"/"']), { global: true }));
134
342
  if (path !== '/') {
135
343
  const route2 = new RouteConfig('static', ['GET'], path.slice(0, -1), {
136
344
  type: 'controller',
@@ -139,10 +347,9 @@ export function registerStaticHttpController(module, options) {
139
347
  methodName: 'serveIndex',
140
348
  });
141
349
  route2.groups = groups;
142
- (module.configureProvider.Ω = [[() => HttpRouter, 'P7!']], module.configureProvider(__assignType(router => router.addRoute(route2), ['router', '', 'P"2!"/"']), { global: true }));
350
+ (module.configureProvider.Ω = [Ωt1], module.configureProvider(__assignType(router => router.addRoute(route2), ['router', '', 'P"2!"/"']), { global: true }));
143
351
  }
144
352
  module.addProvider(StaticController);
145
353
  module.addListener(serveStaticListener(module, normalizeDirectory(options.path), options.localPath));
146
354
  }
147
- registerStaticHttpController.__type = [() => AppModule, 'module', () => __ΩStaticHttpOptions, 'options', 'registerStaticHttpController', 'PP"7!2"n#2$$/%'];
148
355
  //# sourceMappingURL=static-serving.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"static-serving.js","sourceRoot":"","sources":["../../../src/static-serving.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-serving.js","sourceRoot":"","sources":["../../../src/static-serving.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;2CAqP+B,OAAO,CAAC,KAAK;;;;;;AArP5C;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAS,MAAM,IAAI,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;;6BACb,eAAe;AAAlD,OAAO,EAAa,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAElD,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnI,CAAC;AAED,SAAS,QAAQ,CAAC,QAAsB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,UAAsC,EAAE;IAC3H,MAAM,GAAG,GAAG,6EAA6E,KAAK,mCAAmC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;IAC9K,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrF,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IAC/D,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;IACpE,QAAQ,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;IACxD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,QAAsB,EAAE,MAAc,EAAE,UAAsC,EAAE;IAC/F,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,cAAc,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC1B,OAAO,GAAG;SACL,OAAO,CAAC,0EAA0E,EAAE,YAAY,CAAC;SACjG,OAAO,CAAC,kGAAkG,EAAE,SAAS,CAAC,CAAC;AAChI,CAAC;AAED,SAAS,aAAa,CAAC,IAAiC;IACpD,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,OAAO,QAAQ,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3D,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,cAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,wBAAC,CAAC,MAAM,cAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,wBAAC,CAAC;AACrE,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY;IAC7C,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,cAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,KAAK,IAAI,4BAAC,CAAC;AAClH,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO;IAEzB,MAAM,MAAM,GAAoD,EAAE,CAAC;IACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAElC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACf,2BAA2B;YAC3B,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;YACnB,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,4BAA4B;YAC5B,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC;YAAE,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;YAAE,SAAS;QACrE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,cAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,gCAAC,CAAC;IACzD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC,IAAI,cAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,gCAAC,CAAC,GAAG,cAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,wBAAC,CAAC;AAChG,CAAC;AAED,SAAS,QAAQ,CAAC,OAAoB,EAAE,QAAsB,EAAE,IAAY,EAAE,KAAY;IACtF,IAAI,QAAQ,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE1D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACvF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IACnG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACzG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACpI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;IAEhI,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,uBAAuB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;QAC1H,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;IACf,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC;IAC5G,IAAI,UAAU,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,WAAW;YACrB,CAAC,CAAC,WAAW,KAAK,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC;YACvD,CAAC,CAAC,YAAY,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,CAAC;gBAC7G,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;YAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,OAAO;QACX,CAAC;IACL,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAClC,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE7C,6FAA6F;QAC7F,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3G,MAAM,GAAG,SAAS,CAAC;QACvB,CAAC;QAED,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE,WAAW,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,mDAAmD;QACnD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;YAC1B,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;YAC3F,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC;QACf,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACvB,SAAiB,EACjB,IAAY,EACZ,OAAoB,EACpB,QAAsB;IAEtB,OAAO,IAAI,OAAO,cAAC,cAAc,CAAC,EAAE;QAChC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEvC,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACD,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEhE,6BAA6B;QAC7B,IAAI,WAAW;YAAE,WAAW,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC;QAClE,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEpE,uBAAuB;QACvB,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,cAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,2BAAC;YAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE7G,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;QAEvD,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,eAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9E,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;gBACtG,OAAO,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,IAAI,gBAAgB;oBAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9D,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,iBAAiB,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7F,OAAO;YACX,CAAC;YACD,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnG,CAAC,wCAAC,CAAC;IACP,CAAC,qCAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,KAAwC,EACxC,IAAY,EACZ,SAAiB;IAEjB,IAAI,KAAK,CAAC,IAAI;QAAE,OAAO;IACvB,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO;IAExB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO;IAEjD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChD,wGAAwG;IACxG,8EAA8E;IAC9E,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO;IAE9E,OAAO,IAAI,OAAO,cAAC,OAAO,CAAC,EAAE;QACzB,IAAI,CAAC,cAAc,eAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxB,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpG,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,qCAAC,CAAC;IACP,CAAC,8BAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAsB,EAAE,IAAY,EAAE,YAAoB,IAAI;IAC9F,MAAM,gCAAgC;QAElC,OAAO,CAAC,KAAwC;YAC5C,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;;kEAFkC,OAAO,CAAC,KAAK;IAAhD;QADC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,qCAAqC;mEAGvF;IAGL,OAAO,gCAAgC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,SAAiB,EAAE,IAAY;IAC7C,IAAI,CAAC;QACD,IAAI,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,eAAe,IAAI,IAAI,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;;;AA0BD;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAsB,EAAE,OAA0B;IAC3F,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAEpC,MAAM,gBAAgB;QAElB,UAAU,CAAC,OAAoB,EAAE,QAAsB;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1E,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBACvB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;wBACxD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxC,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAC9F,CAAC;;;IAVD;QADC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;sDAW7B;IAGL,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;QACpD,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,gBAAgB;QAC5B,MAAM;QACN,UAAU,EAAE,YAAY;KAC3B,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAA,MAAM,CAAC,iBAAiB,YAAxB,MAAM,CAAC,iBAAiB,cAAa,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,8BAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAC;IAE1F,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACjE,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,gBAAgB;YAC5B,MAAM;YACN,UAAU,EAAE,YAAY;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAA,MAAM,CAAC,iBAAiB,YAAxB,MAAM,CAAC,iBAAiB,cAAa,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,8BAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAC;IAC9F,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AACzG,CAAC"}
@@ -1,3 +1,4 @@
1
+ normalizeDirectory.__type = ['path', 'normalizeDirectory', 'P&2!&/"'];
1
2
  export function normalizeDirectory(path) {
2
3
  if (path[0] !== '/')
3
4
  path = '/' + path;
@@ -5,5 +6,4 @@ export function normalizeDirectory(path) {
5
6
  path = path + '/';
6
7
  return path;
7
8
  }
8
- normalizeDirectory.__type = ['path', 'normalizeDirectory', 'P&2!&/"'];
9
9
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC3C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;IACvC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IACrD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":";AAAA,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC3C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;IACvC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IACrD,OAAO,IAAI,CAAC;AAChB,CAAC"}
package/index.ts CHANGED
@@ -12,3 +12,5 @@ export * from './src/controllers.js';
12
12
  export * from './src/middleware.js';
13
13
  export * from './src/filter.js';
14
14
  export * from './src/utils.js';
15
+ export * from './src/query-string.js';
16
+ export * from './src/mime.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepkit/http",
3
- "version": "1.0.18",
3
+ "version": "1.1.0",
4
4
  "description": "Deepkit HTTP server and router.",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/cjs/index.js",
@@ -23,34 +23,31 @@
23
23
  "build": "echo '{\"type\": \"module\"}' > ./dist/esm/package.json"
24
24
  },
25
25
  "peerDependencies": {
26
- "@deepkit/app": "^1.0.1",
27
- "@deepkit/core": "^1.0.1",
28
- "@deepkit/event": "^1.0.1",
29
- "@deepkit/injector": "^1.0.1",
30
- "@deepkit/logger": "^1.0.1",
31
- "@deepkit/stopwatch": "^1.0.1",
32
- "@deepkit/template": "^1.0.1",
33
- "@deepkit/type": "^1.0.1",
34
- "@deepkit/workflow": "^1.0.1"
26
+ "@deepkit/app": "^1.1.0",
27
+ "@deepkit/core": "^1.1.0",
28
+ "@deepkit/event": "^1.1.0",
29
+ "@deepkit/injector": "^1.1.0",
30
+ "@deepkit/logger": "^1.1.0",
31
+ "@deepkit/stopwatch": "^1.1.0",
32
+ "@deepkit/template": "^1.1.0",
33
+ "@deepkit/type": "^1.1.0",
34
+ "@deepkit/workflow": "^1.1.0"
35
35
  },
36
36
  "dependencies": {
37
- "formidable": "^3.5.2",
38
- "qs": "^6.14.0",
39
- "send": "^1.1.0"
37
+ "formidable": "^3.5.2"
40
38
  },
41
39
  "devDependencies": {
42
- "@deepkit/app": "^1.0.18",
43
- "@deepkit/core": "^1.0.18",
44
- "@deepkit/event": "^1.0.18",
45
- "@deepkit/injector": "^1.0.18",
46
- "@deepkit/logger": "^1.0.18",
47
- "@deepkit/stopwatch": "^1.0.18",
48
- "@deepkit/template": "^1.0.18",
49
- "@deepkit/type": "^1.0.18",
50
- "@deepkit/workflow": "^1.0.18",
40
+ "@deepkit/app": "^1.1.0",
41
+ "@deepkit/core": "^1.1.0",
42
+ "@deepkit/event": "^1.1.0",
43
+ "@deepkit/injector": "^1.1.0",
44
+ "@deepkit/logger": "^1.1.0",
45
+ "@deepkit/stopwatch": "^1.1.0",
46
+ "@deepkit/template": "^1.1.0",
47
+ "@deepkit/type": "^1.1.0",
48
+ "@deepkit/workflow": "^1.1.0",
51
49
  "@types/formidable": "^3.4.5",
52
- "@types/node": "^22.13.1",
53
- "@types/send": "^0.14.6"
50
+ "@types/node": "^22.13.1"
54
51
  },
55
52
  "jest": {
56
53
  "testEnvironment": "node",
@@ -70,5 +67,5 @@
70
67
  "**/tests/**/*.spec.ts"
71
68
  ]
72
69
  },
73
- "gitHead": "36123286ff21dec322af0a1291a0f704dc24f093"
70
+ "gitHead": "56081823b559bb68b77a8781957af5d9c2e019a7"
74
71
  }