@adonisjs/http-server 6.8.2-4 → 6.8.2-5

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 (155) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/factories/http_context.d.ts +1 -0
  3. package/build/factories/http_context.d.ts.map +1 -0
  4. package/build/factories/main.d.ts +1 -0
  5. package/build/factories/main.d.ts.map +1 -0
  6. package/build/factories/qs_parser_factory.d.ts +1 -0
  7. package/build/factories/qs_parser_factory.d.ts.map +1 -0
  8. package/build/factories/request.d.ts +1 -0
  9. package/build/factories/request.d.ts.map +1 -0
  10. package/build/factories/response.d.ts +1 -0
  11. package/build/factories/response.d.ts.map +1 -0
  12. package/build/factories/router.d.ts +1 -0
  13. package/build/factories/router.d.ts.map +1 -0
  14. package/build/factories/server_factory.d.ts +1 -0
  15. package/build/factories/server_factory.d.ts.map +1 -0
  16. package/build/index.d.ts +1 -0
  17. package/build/index.d.ts.map +1 -0
  18. package/build/src/cookies/client.d.ts +1 -0
  19. package/build/src/cookies/client.d.ts.map +1 -0
  20. package/build/src/cookies/drivers/encrypted.d.ts +1 -0
  21. package/build/src/cookies/drivers/encrypted.d.ts.map +1 -0
  22. package/build/src/cookies/drivers/plain.d.ts +1 -0
  23. package/build/src/cookies/drivers/plain.d.ts.map +1 -0
  24. package/build/src/cookies/drivers/signed.d.ts +1 -0
  25. package/build/src/cookies/drivers/signed.d.ts.map +1 -0
  26. package/build/src/cookies/parser.d.ts +1 -0
  27. package/build/src/cookies/parser.d.ts.map +1 -0
  28. package/build/src/cookies/serializer.d.ts +1 -0
  29. package/build/src/cookies/serializer.d.ts.map +1 -0
  30. package/build/src/debug.d.ts +1 -0
  31. package/build/src/debug.d.ts.map +1 -0
  32. package/build/src/define_config.d.ts +1 -0
  33. package/build/src/define_config.d.ts.map +1 -0
  34. package/build/src/define_middleware.d.ts +1 -0
  35. package/build/src/define_middleware.d.ts.map +1 -0
  36. package/build/src/exception_handler.d.ts +1 -0
  37. package/build/src/exception_handler.d.ts.map +1 -0
  38. package/build/src/exceptions.d.ts +1 -0
  39. package/build/src/exceptions.d.ts.map +1 -0
  40. package/build/src/helpers.d.ts +1 -0
  41. package/build/src/helpers.d.ts.map +1 -0
  42. package/build/src/http_context/local_storage.d.ts +1 -0
  43. package/build/src/http_context/local_storage.d.ts.map +1 -0
  44. package/build/src/http_context/main.d.ts +1 -0
  45. package/build/src/http_context/main.d.ts.map +1 -0
  46. package/build/src/qs.d.ts +1 -0
  47. package/build/src/qs.d.ts.map +1 -0
  48. package/build/src/redirect.d.ts +1 -0
  49. package/build/src/redirect.d.ts.map +1 -0
  50. package/build/src/request.d.ts +1 -0
  51. package/build/src/request.d.ts.map +1 -0
  52. package/build/src/response.d.ts +1 -0
  53. package/build/src/response.d.ts.map +1 -0
  54. package/build/src/router/brisk.d.ts +1 -0
  55. package/build/src/router/brisk.d.ts.map +1 -0
  56. package/build/src/router/executor.d.ts +1 -0
  57. package/build/src/router/executor.d.ts.map +1 -0
  58. package/build/src/router/factories/use_return_value.d.ts +1 -0
  59. package/build/src/router/factories/use_return_value.d.ts.map +1 -0
  60. package/build/src/router/group.d.ts +1 -0
  61. package/build/src/router/group.d.ts.map +1 -0
  62. package/build/src/router/lookup_store/main.d.ts +1 -0
  63. package/build/src/router/lookup_store/main.d.ts.map +1 -0
  64. package/build/src/router/lookup_store/route_finder.d.ts +1 -0
  65. package/build/src/router/lookup_store/route_finder.d.ts.map +1 -0
  66. package/build/src/router/lookup_store/url_builder.d.ts +1 -0
  67. package/build/src/router/lookup_store/url_builder.d.ts.map +1 -0
  68. package/build/src/router/main.d.ts +1 -0
  69. package/build/src/router/main.d.ts.map +1 -0
  70. package/build/src/router/matchers.d.ts +1 -0
  71. package/build/src/router/matchers.d.ts.map +1 -0
  72. package/build/src/router/parser.d.ts +1 -0
  73. package/build/src/router/parser.d.ts.map +1 -0
  74. package/build/src/router/resource.d.ts +1 -0
  75. package/build/src/router/resource.d.ts.map +1 -0
  76. package/build/src/router/route.d.ts +1 -0
  77. package/build/src/router/route.d.ts.map +1 -0
  78. package/build/src/router/store.d.ts +1 -0
  79. package/build/src/router/store.d.ts.map +1 -0
  80. package/build/src/server/factories/final_handler.d.ts +1 -0
  81. package/build/src/server/factories/final_handler.d.ts.map +1 -0
  82. package/build/src/server/factories/middleware_handler.d.ts +1 -0
  83. package/build/src/server/factories/middleware_handler.d.ts.map +1 -0
  84. package/build/src/server/factories/write_response.d.ts +1 -0
  85. package/build/src/server/factories/write_response.d.ts.map +1 -0
  86. package/build/src/server/main.d.ts +1 -0
  87. package/build/src/server/main.d.ts.map +1 -0
  88. package/build/src/types/base.d.ts +1 -0
  89. package/build/src/types/base.d.ts.map +1 -0
  90. package/build/src/types/main.d.ts +1 -0
  91. package/build/src/types/main.d.ts.map +1 -0
  92. package/build/src/types/middleware.d.ts +1 -0
  93. package/build/src/types/middleware.d.ts.map +1 -0
  94. package/build/src/types/qs.d.ts +1 -0
  95. package/build/src/types/qs.d.ts.map +1 -0
  96. package/build/src/types/request.d.ts +1 -0
  97. package/build/src/types/request.d.ts.map +1 -0
  98. package/build/src/types/response.d.ts +1 -0
  99. package/build/src/types/response.d.ts.map +1 -0
  100. package/build/src/types/route.d.ts +1 -0
  101. package/build/src/types/route.d.ts.map +1 -0
  102. package/build/src/types/server.d.ts +1 -0
  103. package/build/src/types/server.d.ts.map +1 -0
  104. package/factories/http_context.ts +73 -0
  105. package/factories/main.ts +15 -0
  106. package/factories/qs_parser_factory.ts +54 -0
  107. package/factories/request.ts +101 -0
  108. package/factories/response.ts +106 -0
  109. package/factories/router.ts +61 -0
  110. package/factories/server_factory.ts +94 -0
  111. package/index.ts +23 -0
  112. package/package.json +27 -23
  113. package/src/cookies/client.ts +98 -0
  114. package/src/cookies/drivers/encrypted.ts +42 -0
  115. package/src/cookies/drivers/plain.ts +37 -0
  116. package/src/cookies/drivers/signed.ts +42 -0
  117. package/src/cookies/parser.ts +196 -0
  118. package/src/cookies/serializer.ts +98 -0
  119. package/src/debug.ts +11 -0
  120. package/src/define_config.ts +56 -0
  121. package/src/define_middleware.ts +61 -0
  122. package/src/exception_handler.ts +290 -0
  123. package/src/exceptions.ts +55 -0
  124. package/src/helpers.ts +108 -0
  125. package/src/http_context/local_storage.ts +50 -0
  126. package/src/http_context/main.ts +126 -0
  127. package/src/qs.ts +31 -0
  128. package/src/redirect.ts +181 -0
  129. package/src/request.ts +982 -0
  130. package/src/response.ts +1421 -0
  131. package/src/router/brisk.ts +113 -0
  132. package/src/router/executor.ts +36 -0
  133. package/src/router/factories/use_return_value.ts +26 -0
  134. package/src/router/group.ts +243 -0
  135. package/src/router/lookup_store/main.ts +102 -0
  136. package/src/router/lookup_store/route_finder.ts +60 -0
  137. package/src/router/lookup_store/url_builder.ts +250 -0
  138. package/src/router/main.ts +431 -0
  139. package/src/router/matchers.ts +40 -0
  140. package/src/router/parser.ts +20 -0
  141. package/src/router/resource.ts +277 -0
  142. package/src/router/route.ts +363 -0
  143. package/src/router/store.ts +239 -0
  144. package/src/server/factories/final_handler.ts +38 -0
  145. package/src/server/factories/middleware_handler.ts +23 -0
  146. package/src/server/factories/write_response.ts +26 -0
  147. package/src/server/main.ts +356 -0
  148. package/src/types/base.ts +30 -0
  149. package/src/types/main.ts +16 -0
  150. package/src/types/middleware.ts +59 -0
  151. package/src/types/qs.ts +85 -0
  152. package/src/types/request.ts +52 -0
  153. package/src/types/response.ts +57 -0
  154. package/src/types/route.ts +217 -0
  155. package/src/types/server.ts +92 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/types/route.ts"],"names":[],"mappings":"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"}
@@ -35,3 +35,4 @@ export type ServerConfig = RequestConfig & ResponseConfig & {
35
35
  useAsyncLocalStorage: boolean;
36
36
  qs: QSParserConfig;
37
37
  };
38
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/types/server.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAM1D,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;CACjC,CAAA;AAKD,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACzC,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACzC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACpC;AAKD,MAAM,MAAM,eAAe,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAA;AAMpD,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AAK3F,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3B,CAAA;AAKD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,GAAG,CAAA;IAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,GAAG,CAAA;CAC9C,CAAA;AAKD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAA;AAKlE,MAAM,MAAM,YAAY,GAAG,aAAa,GACtC,cAAc,GAAG;IAOf,oBAAoB,EAAE,OAAO,CAAA;IAK7B,EAAE,EAAE,cAAc,CAAA;CACnB,CAAA"}
@@ -0,0 +1,73 @@
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
+
10
+ import { Container } from '@adonisjs/fold'
11
+ import type { Logger } from '@adonisjs/logger'
12
+ import { LoggerFactory } from '@adonisjs/logger/factories'
13
+
14
+ import { RequestFactory } from './request.js'
15
+ import { ResponseFactory } from './response.js'
16
+ import type { Request } from '../src/request.js'
17
+ import type { Response } from '../src/response.js'
18
+ import { HttpContext } from '../src/http_context/main.js'
19
+
20
+ type FactoryParameters = {
21
+ request: Request
22
+ response: Response
23
+ logger: Logger
24
+ }
25
+
26
+ /**
27
+ * HttpContext factory is used to generate Http context class instances for
28
+ * testing
29
+ */
30
+ export class HttpContextFactory {
31
+ #parameters: Partial<FactoryParameters> = {}
32
+
33
+ /**
34
+ * Returns the request class instance
35
+ */
36
+ #createRequest() {
37
+ return this.#parameters.request || new RequestFactory().create()
38
+ }
39
+
40
+ /**
41
+ * Returns the response class instance
42
+ */
43
+ #createResponse() {
44
+ return this.#parameters.response || new ResponseFactory().create()
45
+ }
46
+
47
+ /**
48
+ * Returns an instance of the logger class
49
+ */
50
+ #createLogger() {
51
+ return this.#parameters.logger || new LoggerFactory().create()
52
+ }
53
+
54
+ /**
55
+ * Merge factory params
56
+ */
57
+ merge(params: Partial<FactoryParameters>) {
58
+ Object.assign(this.#parameters, params)
59
+ return this
60
+ }
61
+
62
+ /**
63
+ * Create request
64
+ */
65
+ create() {
66
+ return new HttpContext(
67
+ this.#createRequest(),
68
+ this.#createResponse(),
69
+ this.#createLogger(),
70
+ new Container().createResolver()
71
+ )
72
+ }
73
+ }
@@ -0,0 +1,15 @@
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
+
10
+ export { HttpContextFactory } from './http_context.js'
11
+ export { QsParserFactory } from './qs_parser_factory.js'
12
+ export { RequestFactory } from './request.js'
13
+ export { ResponseFactory } from './response.js'
14
+ export { RouterFactory } from './router.js'
15
+ export { ServerFactory } from './server_factory.js'
@@ -0,0 +1,54 @@
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
+
10
+ import { Qs } from '../src/qs.js'
11
+ import type { QSParserConfig } from '../src/types/qs.js'
12
+
13
+ /**
14
+ * QS Parser factory is used to generate the query string
15
+ * parser for testing
16
+ */
17
+ export class QsParserFactory {
18
+ #options: QSParserConfig = {
19
+ parse: {
20
+ depth: 5,
21
+ parameterLimit: 1000,
22
+ allowSparse: false,
23
+ arrayLimit: 20,
24
+ comma: true,
25
+ },
26
+ stringify: {
27
+ encode: true,
28
+ encodeValuesOnly: false,
29
+ arrayFormat: 'indices',
30
+ skipNulls: false,
31
+ },
32
+ }
33
+
34
+ /**
35
+ * Merge encryption factory options
36
+ */
37
+ merge(
38
+ options: Partial<{
39
+ parse: Partial<QSParserConfig['parse']>
40
+ stringify: Partial<QSParserConfig['stringify']>
41
+ }>
42
+ ) {
43
+ Object.assign(this.#options.parse, options.parse)
44
+ Object.assign(this.#options.stringify, options.stringify)
45
+ return this
46
+ }
47
+
48
+ /**
49
+ * Create instance of the logger class
50
+ */
51
+ create() {
52
+ return new Qs(this.#options)
53
+ }
54
+ }
@@ -0,0 +1,101 @@
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
+
10
+ import { Socket } from 'node:net'
11
+ import proxyAddr from 'proxy-addr'
12
+ import type { Encryption } from '@adonisjs/encryption'
13
+ import { IncomingMessage, ServerResponse } from 'node:http'
14
+ import { EncryptionFactory } from '@adonisjs/encryption/factories'
15
+
16
+ import { Request } from '../src/request.js'
17
+ import { RequestConfig } from '../src/types/request.js'
18
+ import { QsParserFactory } from './qs_parser_factory.js'
19
+
20
+ type FactoryParameters = {
21
+ url: string
22
+ method: string
23
+ req: IncomingMessage
24
+ res: ServerResponse
25
+ encryption: Encryption
26
+ config: Partial<RequestConfig>
27
+ }
28
+
29
+ /**
30
+ * Request factory is used to generate request class instances for
31
+ * testing
32
+ */
33
+ export class RequestFactory {
34
+ #parameters: Partial<FactoryParameters> = {}
35
+
36
+ /**
37
+ * Returns the config for the request class
38
+ */
39
+ #getConfig() {
40
+ return {
41
+ allowMethodSpoofing: false,
42
+ trustProxy: proxyAddr.compile('loopback'),
43
+ subdomainOffset: 2,
44
+ generateRequestId: false,
45
+ ...this.#parameters.config,
46
+ }
47
+ }
48
+
49
+ /**
50
+ * Returns the HTTP req object
51
+ */
52
+ #createRequest() {
53
+ const req = this.#parameters.req || new IncomingMessage(new Socket())
54
+ if (this.#parameters.url) {
55
+ req.url = this.#parameters.url
56
+ }
57
+
58
+ if (this.#parameters.method) {
59
+ req.method = this.#parameters.method
60
+ }
61
+
62
+ return req
63
+ }
64
+
65
+ /**
66
+ * Returns the HTTP res object
67
+ */
68
+ #createResponse(req: IncomingMessage) {
69
+ return this.#parameters.res || new ServerResponse(req)
70
+ }
71
+
72
+ /**
73
+ * Returns an instance of the encryptor to encrypt
74
+ * signed URLs
75
+ */
76
+ #createEncryption() {
77
+ return this.#parameters.encryption || new EncryptionFactory().create()
78
+ }
79
+
80
+ /**
81
+ * Merge factory params
82
+ */
83
+ merge(params: Partial<FactoryParameters>) {
84
+ Object.assign(this.#parameters, params)
85
+ return this
86
+ }
87
+
88
+ /**
89
+ * Create request
90
+ */
91
+ create() {
92
+ const req = this.#createRequest()
93
+ return new Request(
94
+ req,
95
+ this.#createResponse(req),
96
+ this.#createEncryption(),
97
+ this.#getConfig(),
98
+ new QsParserFactory().create()
99
+ )
100
+ }
101
+ }
@@ -0,0 +1,106 @@
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
+
10
+ import { Socket } from 'node:net'
11
+ import type { Encryption } from '@adonisjs/encryption'
12
+ import { IncomingMessage, ServerResponse } from 'node:http'
13
+ import { EncryptionFactory } from '@adonisjs/encryption/factories'
14
+
15
+ import { RouterFactory } from './router.js'
16
+ import { Response } from '../src/response.js'
17
+ import { Router } from '../src/router/main.js'
18
+ import { ResponseConfig } from '../src/types/response.js'
19
+ import { QsParserFactory } from './qs_parser_factory.js'
20
+
21
+ type FactoryParameters = {
22
+ req: IncomingMessage
23
+ res: ServerResponse
24
+ encryption: Encryption
25
+ config: Partial<ResponseConfig>
26
+ router: Router
27
+ }
28
+
29
+ /**
30
+ * Response factory is used to generate response class instances for
31
+ * testing
32
+ */
33
+ export class ResponseFactory {
34
+ #parameters: Partial<FactoryParameters> = {}
35
+
36
+ /**
37
+ * Returns the config for the request class
38
+ */
39
+ #getConfig() {
40
+ return {
41
+ etag: false,
42
+ jsonpCallbackName: 'callback',
43
+ cookie: {
44
+ maxAge: 90,
45
+ path: '/',
46
+ httpOnly: true,
47
+ sameSite: false,
48
+ secure: false,
49
+ },
50
+ ...this.#parameters.config,
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Returns the HTTP req object
56
+ */
57
+ #createRequest() {
58
+ return this.#parameters.req || new IncomingMessage(new Socket())
59
+ }
60
+
61
+ /**
62
+ * Returns an instance of the router
63
+ */
64
+ #createRouter() {
65
+ return this.#parameters.router || new RouterFactory().create()
66
+ }
67
+
68
+ /**
69
+ * Returns the HTTP res object
70
+ */
71
+ #createResponse(req: IncomingMessage) {
72
+ return this.#parameters.res || new ServerResponse(req)
73
+ }
74
+
75
+ /**
76
+ * Returns an instance of the encryptor to encrypt
77
+ * signed URLs
78
+ */
79
+ #createEncryption() {
80
+ return this.#parameters.encryption || new EncryptionFactory().create()
81
+ }
82
+
83
+ /**
84
+ * Merge factory params
85
+ */
86
+ merge(params: Partial<FactoryParameters>) {
87
+ Object.assign(this.#parameters, params)
88
+ return this
89
+ }
90
+
91
+ /**
92
+ * Create response class instance
93
+ */
94
+ create() {
95
+ const req = this.#createRequest()
96
+
97
+ return new Response(
98
+ req,
99
+ this.#createResponse(req),
100
+ this.#createEncryption(),
101
+ this.#getConfig(),
102
+ this.#createRouter(),
103
+ new QsParserFactory().create()
104
+ )
105
+ }
106
+ }
@@ -0,0 +1,61 @@
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
+
10
+ import type { Encryption } from '@adonisjs/encryption'
11
+ import type { Application } from '@adonisjs/application'
12
+ import { AppFactory } from '@adonisjs/application/factories'
13
+ import { EncryptionFactory } from '@adonisjs/encryption/factories'
14
+
15
+ import { Router } from '../src/router/main.js'
16
+ import { QsParserFactory } from './qs_parser_factory.js'
17
+
18
+ type FactoryParameters = {
19
+ app: Application<any>
20
+ encryption: Encryption
21
+ }
22
+
23
+ /**
24
+ * Router factory is used to generate router class instances for
25
+ * testing
26
+ */
27
+ export class RouterFactory {
28
+ #parameters: Partial<FactoryParameters> = {}
29
+
30
+ /**
31
+ * Returns an instance of the application class
32
+ */
33
+ #getApp() {
34
+ return (
35
+ this.#parameters.app || new AppFactory().create(new URL('./app/', import.meta.url), () => {})
36
+ )
37
+ }
38
+
39
+ /**
40
+ * Returns an instance of the encryptor to encrypt
41
+ * signed URLs
42
+ */
43
+ #createEncryption() {
44
+ return this.#parameters.encryption || new EncryptionFactory().create()
45
+ }
46
+
47
+ /**
48
+ * Merge factory params
49
+ */
50
+ merge(params: Partial<FactoryParameters>) {
51
+ Object.assign(this.#parameters, params)
52
+ return this
53
+ }
54
+
55
+ /**
56
+ * Create router instance
57
+ */
58
+ create() {
59
+ return new Router(this.#getApp(), this.#createEncryption(), new QsParserFactory().create())
60
+ }
61
+ }
@@ -0,0 +1,94 @@
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
+
10
+ import { Logger } from '@adonisjs/logger'
11
+ import { Emitter } from '@adonisjs/events'
12
+ import type { Encryption } from '@adonisjs/encryption'
13
+ import type { Application } from '@adonisjs/application'
14
+ import { AppFactory } from '@adonisjs/application/factories'
15
+ import { EncryptionFactory } from '@adonisjs/encryption/factories'
16
+
17
+ import { Server } from '../src/server/main.js'
18
+ import { defineConfig } from '../src/define_config.js'
19
+ import type { ServerConfig } from '../src/types/server.js'
20
+
21
+ type FactoryParameters = {
22
+ app: Application<any>
23
+ logger: Logger
24
+ encryption: Encryption
25
+ emitter: Emitter<any>
26
+ config: Partial<ServerConfig>
27
+ }
28
+
29
+ /**
30
+ * Server factory is used to generate server class instances for
31
+ * testing
32
+ */
33
+ export class ServerFactory {
34
+ #parameters: Partial<FactoryParameters> = {}
35
+
36
+ /**
37
+ * Returns the emitter instance
38
+ */
39
+ #getEmitter() {
40
+ return this.#parameters.emitter || new Emitter(this.#getApp())
41
+ }
42
+
43
+ /**
44
+ * Returns the logger instance
45
+ */
46
+ #getLogger() {
47
+ return this.#parameters.logger || new Logger({ enabled: false })
48
+ }
49
+
50
+ /**
51
+ * Returns the config for the server class
52
+ */
53
+ #getConfig() {
54
+ return defineConfig(this.#parameters.config || {})
55
+ }
56
+
57
+ /**
58
+ * Returns an instance of the application class
59
+ */
60
+ #getApp() {
61
+ return (
62
+ this.#parameters.app || new AppFactory().create(new URL('./app/', import.meta.url), () => {})
63
+ )
64
+ }
65
+
66
+ /**
67
+ * Returns an instance of the encryptor to encrypt
68
+ * signed URLs
69
+ */
70
+ #createEncryption() {
71
+ return this.#parameters.encryption || new EncryptionFactory().create()
72
+ }
73
+
74
+ /**
75
+ * Merge factory params
76
+ */
77
+ merge(params: Partial<FactoryParameters>) {
78
+ Object.assign(this.#parameters, params)
79
+ return this
80
+ }
81
+
82
+ /**
83
+ * Create server instance
84
+ */
85
+ create() {
86
+ return new Server(
87
+ this.#getApp(),
88
+ this.#createEncryption(),
89
+ this.#getEmitter(),
90
+ this.#getLogger(),
91
+ this.#getConfig()
92
+ )
93
+ }
94
+ }
package/index.ts ADDED
@@ -0,0 +1,23 @@
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
+
10
+ export { Request } from './src/request.js'
11
+ export { Response } from './src/response.js'
12
+ export { Redirect } from './src/redirect.js'
13
+ export { Server } from './src/server/main.js'
14
+ export { Router } from './src/router/main.js'
15
+ export { Route } from './src/router/route.js'
16
+ export * as errors from './src/exceptions.js'
17
+ export { BriskRoute } from './src/router/brisk.js'
18
+ export { RouteGroup } from './src/router/group.js'
19
+ export { defineConfig } from './src/define_config.js'
20
+ export { CookieClient } from './src/cookies/client.js'
21
+ export { HttpContext } from './src/http_context/main.js'
22
+ export { RouteResource } from './src/router/resource.js'
23
+ export { ExceptionHandler } from './src/exception_handler.js'
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "@adonisjs/http-server",
3
- "version": "6.8.2-4",
3
+ "version": "6.8.2-5",
4
4
  "description": "AdonisJS HTTP server with support packed with Routing and Cookies",
5
5
  "main": "build/index.js",
6
6
  "type": "module",
7
7
  "files": [
8
+ "src",
9
+ "factories",
10
+ "index.ts",
8
11
  "build/src",
9
12
  "build/factories",
10
13
  "build/index.d.ts",
14
+ "build/index.d.ts.map",
11
15
  "build/index.js"
12
16
  ],
13
17
  "exports": {
@@ -39,12 +43,12 @@
39
43
  "author": "virk,adonisjs",
40
44
  "license": "MIT",
41
45
  "devDependencies": {
42
- "@adonisjs/application": "^7.1.2-0",
43
- "@adonisjs/encryption": "^5.1.2-0",
44
- "@adonisjs/events": "^8.4.9-0",
45
- "@adonisjs/fold": "^9.9.3-0",
46
- "@adonisjs/logger": "^5.4.2-0",
47
- "@commitlint/cli": "^17.4.4",
46
+ "@adonisjs/application": "^7.1.2-3",
47
+ "@adonisjs/encryption": "^5.1.2-1",
48
+ "@adonisjs/events": "^8.4.9-2",
49
+ "@adonisjs/fold": "^9.9.3-4",
50
+ "@adonisjs/logger": "^5.4.2-1",
51
+ "@commitlint/cli": "^17.5.0",
48
52
  "@commitlint/config-conventional": "^17.4.4",
49
53
  "@fastify/middie": "^8.1.0",
50
54
  "@japa/assert": "^1.4.1",
@@ -52,7 +56,7 @@
52
56
  "@japa/run-failed-tests": "^1.1.1",
53
57
  "@japa/runner": "^2.5.1",
54
58
  "@japa/spec-reporter": "^1.3.3",
55
- "@swc/core": "^1.3.40",
59
+ "@swc/core": "^1.3.42",
56
60
  "@types/accepts": "^1.3.5",
57
61
  "@types/content-disposition": "^0.5.5",
58
62
  "@types/cookie": "^0.5.1",
@@ -63,7 +67,7 @@
63
67
  "@types/fs-extra": "^11.0.1",
64
68
  "@types/http-status-codes": "^1.2.0",
65
69
  "@types/mime-types": "^2.1.1",
66
- "@types/node": "^18.15.2",
70
+ "@types/node": "^18.15.10",
67
71
  "@types/on-finished": "^2.3.1",
68
72
  "@types/pem": "^1.9.6",
69
73
  "@types/proxy-addr": "^2.0.0",
@@ -76,28 +80,28 @@
76
80
  "cross-env": "^7.0.3",
77
81
  "del-cli": "^5.0.0",
78
82
  "eslint": "^8.36.0",
79
- "eslint-config-prettier": "^8.7.0",
83
+ "eslint-config-prettier": "^8.8.0",
80
84
  "eslint-plugin-adonis": "^3.0.3",
81
85
  "eslint-plugin-prettier": "^4.2.1",
82
- "fastify": "^4.14.1",
83
- "fs-extra": "^11.1.0",
86
+ "fastify": "^4.15.0",
87
+ "fs-extra": "^11.1.1",
84
88
  "github-label-sync": "^2.3.1",
85
89
  "http-status-codes": "^2.2.0",
86
90
  "husky": "^8.0.3",
87
- "np": "^7.6.3",
91
+ "np": "^7.6.4",
88
92
  "pem": "^1.14.6",
89
- "prettier": "^2.8.4",
93
+ "prettier": "^2.8.7",
90
94
  "reflect-metadata": "^0.1.13",
91
95
  "supertest": "^6.3.3",
92
96
  "ts-node": "^10.9.1",
93
- "typescript": "^4.9.5"
97
+ "typescript": "^5.0.2"
94
98
  },
95
99
  "dependencies": {
96
100
  "@paralleldrive/cuid2": "^2.2.0",
97
- "@poppinss/macroable": "^1.0.0-2",
101
+ "@poppinss/macroable": "^1.0.0-4",
98
102
  "@poppinss/matchit": "^3.1.2",
99
- "@poppinss/middleware": "^3.1.1",
100
- "@poppinss/utils": "^6.5.0-0",
103
+ "@poppinss/middleware": "^3.1.2",
104
+ "@poppinss/utils": "^6.5.0-2",
101
105
  "@sindresorhus/is": "^5.3.0",
102
106
  "accepts": "^1.3.8",
103
107
  "content-disposition": "^0.5.4",
@@ -116,11 +120,11 @@
116
120
  "youch": "^3.2.3"
117
121
  },
118
122
  "peerDependencies": {
119
- "@adonisjs/application": "^7.1.2-0",
120
- "@adonisjs/encryption": "^5.1.2-0",
121
- "@adonisjs/events": "^8.4.9-0",
122
- "@adonisjs/fold": "^9.9.3-0",
123
- "@adonisjs/logger": "^5.4.2-0"
123
+ "@adonisjs/application": "^7.1.2-3",
124
+ "@adonisjs/encryption": "^5.1.2-1",
125
+ "@adonisjs/events": "^8.4.9-2",
126
+ "@adonisjs/fold": "^9.9.3-4",
127
+ "@adonisjs/logger": "^5.4.2-1"
124
128
  },
125
129
  "repository": {
126
130
  "type": "git",