@adonisjs/http-server 7.0.0-1 → 7.0.0-3

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 (65) hide show
  1. package/build/chunk-NC6OWANS.js +4437 -0
  2. package/build/chunk-NC6OWANS.js.map +1 -0
  3. package/build/factories/http_server.d.ts +1 -0
  4. package/build/factories/main.js +332 -14
  5. package/build/factories/main.js.map +1 -0
  6. package/build/index.js +309 -22
  7. package/build/index.js.map +1 -0
  8. package/build/src/define_middleware.d.ts +2 -1
  9. package/build/src/router/lookup_store/main.d.ts +1 -3
  10. package/build/src/router/lookup_store/route_finder.d.ts +5 -1
  11. package/build/src/router/main.d.ts +5 -4
  12. package/build/src/router/resource.d.ts +19 -7
  13. package/build/src/types/main.js +1 -15
  14. package/build/src/types/main.js.map +1 -0
  15. package/build/src/types/middleware.d.ts +3 -1
  16. package/package.json +60 -59
  17. package/build/factories/http_context.js +0 -51
  18. package/build/factories/http_server.js +0 -26
  19. package/build/factories/qs_parser_factory.js +0 -44
  20. package/build/factories/request.js +0 -73
  21. package/build/factories/response.js +0 -77
  22. package/build/factories/router.js +0 -45
  23. package/build/factories/server_factory.js +0 -65
  24. package/build/src/cookies/client.js +0 -84
  25. package/build/src/cookies/drivers/encrypted.js +0 -36
  26. package/build/src/cookies/drivers/plain.js +0 -33
  27. package/build/src/cookies/drivers/signed.js +0 -36
  28. package/build/src/cookies/parser.js +0 -167
  29. package/build/src/cookies/serializer.js +0 -79
  30. package/build/src/debug.js +0 -10
  31. package/build/src/define_config.js +0 -68
  32. package/build/src/define_middleware.js +0 -35
  33. package/build/src/exception_handler.js +0 -306
  34. package/build/src/exceptions.js +0 -38
  35. package/build/src/helpers.js +0 -105
  36. package/build/src/http_context/local_storage.js +0 -39
  37. package/build/src/http_context/main.js +0 -105
  38. package/build/src/qs.js +0 -25
  39. package/build/src/redirect.js +0 -140
  40. package/build/src/request.js +0 -865
  41. package/build/src/response.js +0 -1208
  42. package/build/src/router/brisk.js +0 -85
  43. package/build/src/router/executor.js +0 -30
  44. package/build/src/router/factories/use_return_value.js +0 -22
  45. package/build/src/router/group.js +0 -207
  46. package/build/src/router/lookup_store/main.js +0 -86
  47. package/build/src/router/lookup_store/route_finder.js +0 -49
  48. package/build/src/router/lookup_store/url_builder.js +0 -209
  49. package/build/src/router/main.js +0 -316
  50. package/build/src/router/matchers.js +0 -36
  51. package/build/src/router/parser.js +0 -17
  52. package/build/src/router/resource.js +0 -216
  53. package/build/src/router/route.js +0 -293
  54. package/build/src/router/store.js +0 -195
  55. package/build/src/server/factories/final_handler.js +0 -30
  56. package/build/src/server/factories/middleware_handler.js +0 -16
  57. package/build/src/server/factories/write_response.js +0 -24
  58. package/build/src/server/main.js +0 -292
  59. package/build/src/types/base.js +0 -9
  60. package/build/src/types/middleware.js +0 -9
  61. package/build/src/types/qs.js +0 -9
  62. package/build/src/types/request.js +0 -9
  63. package/build/src/types/response.js +0 -9
  64. package/build/src/types/route.js +0 -9
  65. package/build/src/types/server.js +0 -9
@@ -1,14 +1,332 @@
1
- /*
2
- * @adonisjs/http-server
3
- *
4
- * (c) AdonisJS
5
- *
6
- * For the full copyright and license information, please view the LICENSE
7
- * file that was distributed with this source code.
8
- */
9
- export { HttpContextFactory } from './http_context.js';
10
- export { QsParserFactory } from './qs_parser_factory.js';
11
- export { RequestFactory } from './request.js';
12
- export { ResponseFactory } from './response.js';
13
- export { RouterFactory } from './router.js';
14
- export { ServerFactory } from './server_factory.js';
1
+ import {
2
+ HttpContext,
3
+ Qs,
4
+ Request,
5
+ Response,
6
+ Router,
7
+ Server,
8
+ defineConfig
9
+ } from "../chunk-NC6OWANS.js";
10
+
11
+ // factories/http_context.ts
12
+ import { Container } from "@adonisjs/fold";
13
+ import { LoggerFactory } from "@adonisjs/logger/factories";
14
+
15
+ // factories/request.ts
16
+ import { Socket } from "node:net";
17
+ import proxyAddr from "proxy-addr";
18
+ import { IncomingMessage, ServerResponse } from "node:http";
19
+ import { EncryptionFactory } from "@adonisjs/encryption/factories";
20
+
21
+ // factories/qs_parser_factory.ts
22
+ var QsParserFactory = class {
23
+ #options = {
24
+ parse: {
25
+ depth: 5,
26
+ parameterLimit: 1e3,
27
+ allowSparse: false,
28
+ arrayLimit: 20,
29
+ comma: true
30
+ },
31
+ stringify: {
32
+ encode: true,
33
+ encodeValuesOnly: false,
34
+ arrayFormat: "indices",
35
+ skipNulls: false
36
+ }
37
+ };
38
+ /**
39
+ * Merge encryption factory options
40
+ */
41
+ merge(options) {
42
+ Object.assign(this.#options.parse, options.parse);
43
+ Object.assign(this.#options.stringify, options.stringify);
44
+ return this;
45
+ }
46
+ /**
47
+ * Create instance of the logger class
48
+ */
49
+ create() {
50
+ return new Qs(this.#options);
51
+ }
52
+ };
53
+
54
+ // factories/request.ts
55
+ var RequestFactory = class {
56
+ #parameters = {};
57
+ /**
58
+ * Returns the config for the request class
59
+ */
60
+ #getConfig() {
61
+ return {
62
+ allowMethodSpoofing: false,
63
+ trustProxy: proxyAddr.compile("loopback"),
64
+ subdomainOffset: 2,
65
+ generateRequestId: false,
66
+ ...this.#parameters.config
67
+ };
68
+ }
69
+ /**
70
+ * Returns the HTTP req object
71
+ */
72
+ #createRequest() {
73
+ const req = this.#parameters.req || new IncomingMessage(new Socket());
74
+ if (this.#parameters.url) {
75
+ req.url = this.#parameters.url;
76
+ }
77
+ if (this.#parameters.method) {
78
+ req.method = this.#parameters.method;
79
+ }
80
+ return req;
81
+ }
82
+ /**
83
+ * Returns the HTTP res object
84
+ */
85
+ #createResponse(req) {
86
+ return this.#parameters.res || new ServerResponse(req);
87
+ }
88
+ /**
89
+ * Returns an instance of the encryptor to encrypt
90
+ * signed URLs
91
+ */
92
+ #createEncryption() {
93
+ return this.#parameters.encryption || new EncryptionFactory().create();
94
+ }
95
+ /**
96
+ * Merge factory params
97
+ */
98
+ merge(params) {
99
+ Object.assign(this.#parameters, params);
100
+ return this;
101
+ }
102
+ /**
103
+ * Create request
104
+ */
105
+ create() {
106
+ const req = this.#createRequest();
107
+ return new Request(
108
+ req,
109
+ this.#createResponse(req),
110
+ this.#createEncryption(),
111
+ this.#getConfig(),
112
+ new QsParserFactory().create()
113
+ );
114
+ }
115
+ };
116
+
117
+ // factories/response.ts
118
+ import { Socket as Socket2 } from "node:net";
119
+ import { IncomingMessage as IncomingMessage2, ServerResponse as ServerResponse2 } from "node:http";
120
+ import { EncryptionFactory as EncryptionFactory3 } from "@adonisjs/encryption/factories";
121
+
122
+ // factories/router.ts
123
+ import { AppFactory } from "@adonisjs/application/factories";
124
+ import { EncryptionFactory as EncryptionFactory2 } from "@adonisjs/encryption/factories";
125
+ var RouterFactory = class {
126
+ #parameters = {};
127
+ /**
128
+ * Returns an instance of the application class
129
+ */
130
+ #getApp() {
131
+ return this.#parameters.app || new AppFactory().create(new URL("./app/", import.meta.url), () => {
132
+ });
133
+ }
134
+ /**
135
+ * Returns an instance of the encryptor to encrypt
136
+ * signed URLs
137
+ */
138
+ #createEncryption() {
139
+ return this.#parameters.encryption || new EncryptionFactory2().create();
140
+ }
141
+ /**
142
+ * Merge factory params
143
+ */
144
+ merge(params) {
145
+ Object.assign(this.#parameters, params);
146
+ return this;
147
+ }
148
+ /**
149
+ * Create router instance
150
+ */
151
+ create() {
152
+ return new Router(this.#getApp(), this.#createEncryption(), new QsParserFactory().create());
153
+ }
154
+ };
155
+
156
+ // factories/response.ts
157
+ var ResponseFactory = class {
158
+ #parameters = {};
159
+ /**
160
+ * Returns the config for the request class
161
+ */
162
+ #getConfig() {
163
+ return {
164
+ etag: false,
165
+ jsonpCallbackName: "callback",
166
+ cookie: {
167
+ maxAge: 90,
168
+ path: "/",
169
+ httpOnly: true,
170
+ sameSite: false,
171
+ secure: false
172
+ },
173
+ ...this.#parameters.config
174
+ };
175
+ }
176
+ /**
177
+ * Returns the HTTP req object
178
+ */
179
+ #createRequest() {
180
+ return this.#parameters.req || new IncomingMessage2(new Socket2());
181
+ }
182
+ /**
183
+ * Returns an instance of the router
184
+ */
185
+ #createRouter() {
186
+ return this.#parameters.router || new RouterFactory().create();
187
+ }
188
+ /**
189
+ * Returns the HTTP res object
190
+ */
191
+ #createResponse(req) {
192
+ return this.#parameters.res || new ServerResponse2(req);
193
+ }
194
+ /**
195
+ * Returns an instance of the encryptor to encrypt
196
+ * signed URLs
197
+ */
198
+ #createEncryption() {
199
+ return this.#parameters.encryption || new EncryptionFactory3().create();
200
+ }
201
+ /**
202
+ * Merge factory params
203
+ */
204
+ merge(params) {
205
+ Object.assign(this.#parameters, params);
206
+ return this;
207
+ }
208
+ /**
209
+ * Create response class instance
210
+ */
211
+ create() {
212
+ const req = this.#createRequest();
213
+ return new Response(
214
+ req,
215
+ this.#createResponse(req),
216
+ this.#createEncryption(),
217
+ this.#getConfig(),
218
+ this.#createRouter(),
219
+ new QsParserFactory().create()
220
+ );
221
+ }
222
+ };
223
+
224
+ // factories/http_context.ts
225
+ var HttpContextFactory = class {
226
+ #parameters = {};
227
+ /**
228
+ * Returns the request class instance
229
+ */
230
+ #createRequest() {
231
+ return this.#parameters.request || new RequestFactory().create();
232
+ }
233
+ /**
234
+ * Returns the response class instance
235
+ */
236
+ #createResponse() {
237
+ return this.#parameters.response || new ResponseFactory().create();
238
+ }
239
+ /**
240
+ * Returns an instance of the logger class
241
+ */
242
+ #createLogger() {
243
+ return this.#parameters.logger || new LoggerFactory().create();
244
+ }
245
+ /**
246
+ * Merge factory params
247
+ */
248
+ merge(params) {
249
+ Object.assign(this.#parameters, params);
250
+ return this;
251
+ }
252
+ /**
253
+ * Create request
254
+ */
255
+ create() {
256
+ return new HttpContext(
257
+ this.#createRequest(),
258
+ this.#createResponse(),
259
+ this.#createLogger(),
260
+ new Container().createResolver()
261
+ );
262
+ }
263
+ };
264
+
265
+ // factories/server_factory.ts
266
+ import { Logger } from "@adonisjs/logger";
267
+ import { Emitter } from "@adonisjs/events";
268
+ import { AppFactory as AppFactory2 } from "@adonisjs/application/factories";
269
+ import { EncryptionFactory as EncryptionFactory4 } from "@adonisjs/encryption/factories";
270
+ var ServerFactory = class {
271
+ #parameters = {};
272
+ /**
273
+ * Returns the emitter instance
274
+ */
275
+ #getEmitter() {
276
+ return this.#parameters.emitter || new Emitter(this.#getApp());
277
+ }
278
+ /**
279
+ * Returns the logger instance
280
+ */
281
+ #getLogger() {
282
+ return this.#parameters.logger || new Logger({ enabled: false });
283
+ }
284
+ /**
285
+ * Returns the config for the server class
286
+ */
287
+ #getConfig() {
288
+ return defineConfig(this.#parameters.config || {});
289
+ }
290
+ /**
291
+ * Returns an instance of the application class
292
+ */
293
+ #getApp() {
294
+ return this.#parameters.app || new AppFactory2().create(new URL("./app/", import.meta.url), () => {
295
+ });
296
+ }
297
+ /**
298
+ * Returns an instance of the encryptor to encrypt
299
+ * signed URLs
300
+ */
301
+ #createEncryption() {
302
+ return this.#parameters.encryption || new EncryptionFactory4().create();
303
+ }
304
+ /**
305
+ * Merge factory params
306
+ */
307
+ merge(params) {
308
+ Object.assign(this.#parameters, params);
309
+ return this;
310
+ }
311
+ /**
312
+ * Create server instance
313
+ */
314
+ create() {
315
+ return new Server(
316
+ this.#getApp(),
317
+ this.#createEncryption(),
318
+ this.#getEmitter(),
319
+ this.#getLogger(),
320
+ this.#getConfig()
321
+ );
322
+ }
323
+ };
324
+ export {
325
+ HttpContextFactory,
326
+ QsParserFactory,
327
+ RequestFactory,
328
+ ResponseFactory,
329
+ RouterFactory,
330
+ ServerFactory
331
+ };
332
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../factories/http_context.ts","../../factories/request.ts","../../factories/qs_parser_factory.ts","../../factories/response.ts","../../factories/router.ts","../../factories/server_factory.ts"],"sourcesContent":["/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Container } from '@adonisjs/fold'\nimport type { Logger } from '@adonisjs/logger'\nimport { LoggerFactory } from '@adonisjs/logger/factories'\n\nimport { RequestFactory } from './request.js'\nimport { ResponseFactory } from './response.js'\nimport type { Request } from '../src/request.js'\nimport type { Response } from '../src/response.js'\nimport { HttpContext } from '../src/http_context/main.js'\n\ntype FactoryParameters = {\n request: Request\n response: Response\n logger: Logger\n}\n\n/**\n * HttpContext factory is used to generate Http context class instances for\n * testing\n */\nexport class HttpContextFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the request class instance\n */\n #createRequest() {\n return this.#parameters.request || new RequestFactory().create()\n }\n\n /**\n * Returns the response class instance\n */\n #createResponse() {\n return this.#parameters.response || new ResponseFactory().create()\n }\n\n /**\n * Returns an instance of the logger class\n */\n #createLogger() {\n return this.#parameters.logger || new LoggerFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create request\n */\n create() {\n return new HttpContext(\n this.#createRequest(),\n this.#createResponse(),\n this.#createLogger(),\n new Container().createResolver()\n )\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Socket } from 'node:net'\nimport proxyAddr from 'proxy-addr'\nimport type { Encryption } from '@adonisjs/encryption'\nimport { IncomingMessage, ServerResponse } from 'node:http'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { Request } from '../src/request.js'\nimport { RequestConfig } from '../src/types/request.js'\nimport { QsParserFactory } from './qs_parser_factory.js'\n\ntype FactoryParameters = {\n url: string\n method: string\n req: IncomingMessage\n res: ServerResponse\n encryption: Encryption\n config: Partial<RequestConfig>\n}\n\n/**\n * Request factory is used to generate request class instances for\n * testing\n */\nexport class RequestFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the config for the request class\n */\n #getConfig() {\n return {\n allowMethodSpoofing: false,\n trustProxy: proxyAddr.compile('loopback'),\n subdomainOffset: 2,\n generateRequestId: false,\n ...this.#parameters.config,\n }\n }\n\n /**\n * Returns the HTTP req object\n */\n #createRequest() {\n const req = this.#parameters.req || new IncomingMessage(new Socket())\n if (this.#parameters.url) {\n req.url = this.#parameters.url\n }\n\n if (this.#parameters.method) {\n req.method = this.#parameters.method\n }\n\n return req\n }\n\n /**\n * Returns the HTTP res object\n */\n #createResponse(req: IncomingMessage) {\n return this.#parameters.res || new ServerResponse(req)\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create request\n */\n create() {\n const req = this.#createRequest()\n return new Request(\n req,\n this.#createResponse(req),\n this.#createEncryption(),\n this.#getConfig(),\n new QsParserFactory().create()\n )\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Qs } from '../src/qs.js'\nimport type { QSParserConfig } from '../src/types/qs.js'\n\n/**\n * QS Parser factory is used to generate the query string\n * parser for testing\n */\nexport class QsParserFactory {\n #options: QSParserConfig = {\n parse: {\n depth: 5,\n parameterLimit: 1000,\n allowSparse: false,\n arrayLimit: 20,\n comma: true,\n },\n stringify: {\n encode: true,\n encodeValuesOnly: false,\n arrayFormat: 'indices',\n skipNulls: false,\n },\n }\n\n /**\n * Merge encryption factory options\n */\n merge(\n options: Partial<{\n parse: Partial<QSParserConfig['parse']>\n stringify: Partial<QSParserConfig['stringify']>\n }>\n ) {\n Object.assign(this.#options.parse, options.parse)\n Object.assign(this.#options.stringify, options.stringify)\n return this\n }\n\n /**\n * Create instance of the logger class\n */\n create() {\n return new Qs(this.#options)\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Socket } from 'node:net'\nimport type { Encryption } from '@adonisjs/encryption'\nimport { IncomingMessage, ServerResponse } from 'node:http'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { RouterFactory } from './router.js'\nimport { Response } from '../src/response.js'\nimport { Router } from '../src/router/main.js'\nimport { ResponseConfig } from '../src/types/response.js'\nimport { QsParserFactory } from './qs_parser_factory.js'\n\ntype FactoryParameters = {\n req: IncomingMessage\n res: ServerResponse\n encryption: Encryption\n config: Partial<ResponseConfig>\n router: Router\n}\n\n/**\n * Response factory is used to generate response class instances for\n * testing\n */\nexport class ResponseFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the config for the request class\n */\n #getConfig() {\n return {\n etag: false,\n jsonpCallbackName: 'callback',\n cookie: {\n maxAge: 90,\n path: '/',\n httpOnly: true,\n sameSite: false,\n secure: false,\n },\n ...this.#parameters.config,\n }\n }\n\n /**\n * Returns the HTTP req object\n */\n #createRequest() {\n return this.#parameters.req || new IncomingMessage(new Socket())\n }\n\n /**\n * Returns an instance of the router\n */\n #createRouter() {\n return this.#parameters.router || new RouterFactory().create()\n }\n\n /**\n * Returns the HTTP res object\n */\n #createResponse(req: IncomingMessage) {\n return this.#parameters.res || new ServerResponse(req)\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create response class instance\n */\n create() {\n const req = this.#createRequest()\n\n return new Response(\n req,\n this.#createResponse(req),\n this.#createEncryption(),\n this.#getConfig(),\n this.#createRouter(),\n new QsParserFactory().create()\n )\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type { Encryption } from '@adonisjs/encryption'\nimport type { Application } from '@adonisjs/application'\nimport { AppFactory } from '@adonisjs/application/factories'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { Router } from '../src/router/main.js'\nimport { QsParserFactory } from './qs_parser_factory.js'\n\ntype FactoryParameters = {\n app: Application<any>\n encryption: Encryption\n}\n\n/**\n * Router factory is used to generate router class instances for\n * testing\n */\nexport class RouterFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns an instance of the application class\n */\n #getApp() {\n return (\n this.#parameters.app || new AppFactory().create(new URL('./app/', import.meta.url), () => {})\n )\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create router instance\n */\n create() {\n return new Router(this.#getApp(), this.#createEncryption(), new QsParserFactory().create())\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Logger } from '@adonisjs/logger'\nimport { Emitter } from '@adonisjs/events'\nimport type { Encryption } from '@adonisjs/encryption'\nimport type { Application } from '@adonisjs/application'\nimport { AppFactory } from '@adonisjs/application/factories'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { Server } from '../src/server/main.js'\nimport { defineConfig } from '../src/define_config.js'\nimport type { ServerConfig } from '../src/types/server.js'\n\ntype FactoryParameters = {\n app: Application<any>\n logger: Logger\n encryption: Encryption\n emitter: Emitter<any>\n config: Partial<ServerConfig>\n}\n\n/**\n * Server factory is used to generate server class instances for\n * testing\n */\nexport class ServerFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the emitter instance\n */\n #getEmitter() {\n return this.#parameters.emitter || new Emitter(this.#getApp())\n }\n\n /**\n * Returns the logger instance\n */\n #getLogger() {\n return this.#parameters.logger || new Logger({ enabled: false })\n }\n\n /**\n * Returns the config for the server class\n */\n #getConfig() {\n return defineConfig(this.#parameters.config || {})\n }\n\n /**\n * Returns an instance of the application class\n */\n #getApp() {\n return (\n this.#parameters.app || new AppFactory().create(new URL('./app/', import.meta.url), () => {})\n )\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create server instance\n */\n create() {\n return new Server(\n this.#getApp(),\n this.#createEncryption(),\n this.#getEmitter(),\n this.#getLogger(),\n this.#getConfig()\n )\n }\n}\n"],"mappings":"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","names":["Socket","IncomingMessage","ServerResponse","EncryptionFactory","EncryptionFactory","EncryptionFactory","IncomingMessage","Socket","ServerResponse","EncryptionFactory","AppFactory","EncryptionFactory","AppFactory","EncryptionFactory"]}