@rapidrest/service-core 1.0.0-beta.1 → 1.0.0-beta.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 (163) hide show
  1. package/dist/lib/OpenApiSpec.js +1 -1
  2. package/dist/lib/OpenApiSpec.js.map +1 -1
  3. package/dist/lib/auth/AuthMiddleware.js +33 -3
  4. package/dist/lib/auth/AuthMiddleware.js.map +1 -1
  5. package/dist/lib/auth/BasicStrategy.js +46 -39
  6. package/dist/lib/auth/BasicStrategy.js.map +1 -1
  7. package/dist/lib/auth/JWTStrategy.js +69 -60
  8. package/dist/lib/auth/JWTStrategy.js.map +1 -1
  9. package/dist/lib/index.js +2 -1
  10. package/dist/lib/index.js.map +1 -1
  11. package/dist/lib/models/ModelUtils.js +1 -1
  12. package/dist/lib/models/ModelUtils.js.map +1 -1
  13. package/dist/lib/routes/MetricsRoute.js +1 -1
  14. package/dist/lib/routes/MetricsRoute.js.map +1 -1
  15. package/dist/lib/routes/RouteUtils.js +9 -8
  16. package/dist/lib/routes/RouteUtils.js.map +1 -1
  17. package/dist/types/auth/AuthMiddleware.d.ts +12 -1
  18. package/dist/types/auth/AuthStrategy.d.ts +13 -1
  19. package/dist/types/auth/BasicStrategy.d.ts +7 -3
  20. package/dist/types/auth/JWTStrategy.d.ts +6 -3
  21. package/dist/types/index.d.ts +2 -1
  22. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/MongoRepository.md +1 -1
  23. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/RedisConnection.md +1 -1
  24. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/Repository.md +1 -1
  25. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Default.md +1 -1
  26. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Description.md +1 -1
  27. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Document.md +1 -1
  28. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Example.md +1 -1
  29. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Format.md +1 -1
  30. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Returns.md +1 -1
  31. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Summary.md +1 -1
  32. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Tags.md +1 -1
  33. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/TypeInfo.md +1 -1
  34. package/docs/reference/@rapidrest/namespaces/DocDecorators/interfaces/DocumentsData.md +7 -7
  35. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/EventListener.md +1 -1
  36. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/OnEvent.md +1 -1
  37. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Cache.md +1 -1
  38. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/ChildEntity.md +1 -1
  39. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/DataStore.md +1 -1
  40. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Identifier.md +1 -1
  41. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Protect.md +1 -1
  42. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Reference.md +1 -1
  43. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Shard.md +1 -1
  44. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/TrackChanges.md +1 -1
  45. package/docs/reference/@rapidrest/namespaces/ModelDecorators/interfaces/PendingTypeOrmColumn.md +5 -5
  46. package/docs/reference/@rapidrest/namespaces/ModelDecorators/variables/pendingTypeOrmColumns.md +1 -1
  47. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Column.md +1 -1
  48. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Entity.md +1 -1
  49. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Index.md +3 -3
  50. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/PrimaryColumn.md +1 -1
  51. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Unique.md +3 -3
  52. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getColumnMetadata.md +1 -1
  53. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getEntityName.md +1 -1
  54. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getIndexMetadata.md +1 -1
  55. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnInfo.md +4 -4
  56. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnOptions.md +5 -5
  57. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexInfo.md +4 -4
  58. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexOptions.md +5 -5
  59. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/After.md +1 -1
  60. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Auth.md +1 -1
  61. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/AuthResult.md +1 -1
  62. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Before.md +1 -1
  63. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/ContentType.md +1 -1
  64. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Delete.md +1 -1
  65. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Get.md +1 -1
  66. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Head.md +1 -1
  67. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Header.md +1 -1
  68. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Method.md +1 -1
  69. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Model.md +1 -1
  70. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Options.md +1 -1
  71. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Param.md +1 -1
  72. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Patch.md +1 -1
  73. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Post.md +1 -1
  74. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Protect.md +1 -1
  75. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Put.md +1 -1
  76. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Query.md +1 -1
  77. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Request.md +1 -1
  78. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/RequiresRole.md +1 -1
  79. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Response.md +1 -1
  80. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Route.md +1 -1
  81. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Socket.md +1 -1
  82. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/User.md +1 -1
  83. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Validate.md +1 -1
  84. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/WebSocket.md +1 -1
  85. package/docs/reference/classes/ACLUtils.md +10 -10
  86. package/docs/reference/classes/AdminRoute.md +3 -3
  87. package/docs/reference/classes/AuthMiddleware.md +55 -13
  88. package/docs/reference/classes/BackgroundService.md +8 -8
  89. package/docs/reference/classes/BackgroundServiceManager.md +7 -7
  90. package/docs/reference/classes/BaseEntity.md +6 -6
  91. package/docs/reference/classes/BaseMongoEntity.md +7 -7
  92. package/docs/reference/classes/BasicStrategy.md +52 -10
  93. package/docs/reference/classes/BasicStrategyOptions.md +35 -11
  94. package/docs/reference/classes/BulkError.md +3 -3
  95. package/docs/reference/classes/ConnectionManager.md +4 -4
  96. package/docs/reference/classes/EventListenerManager.md +5 -5
  97. package/docs/reference/classes/HttpRouter.md +343 -0
  98. package/docs/reference/classes/JWTStrategy.md +37 -14
  99. package/docs/reference/classes/JWTStrategyOptions.md +10 -10
  100. package/docs/reference/classes/MetricsRoute.md +4 -4
  101. package/docs/reference/classes/ModelRoute.md +28 -28
  102. package/docs/reference/classes/ModelUtils.md +50 -50
  103. package/docs/reference/classes/MongoConnection.md +12 -12
  104. package/docs/reference/classes/MongoRepository.md +17 -17
  105. package/docs/reference/classes/MongoSchemaSync.md +3 -3
  106. package/docs/reference/classes/NetUtils.md +4 -4
  107. package/docs/reference/classes/NotificationUtils.md +3 -3
  108. package/docs/reference/classes/ObjectFactory.md +10 -10
  109. package/docs/reference/classes/OpenAPIRoute.md +5 -5
  110. package/docs/reference/classes/OpenApiSpec.md +45 -45
  111. package/docs/reference/classes/RecoverableBaseEntity.md +7 -7
  112. package/docs/reference/classes/RecoverableBaseMongoEntity.md +8 -8
  113. package/docs/reference/classes/RedisTransport.md +4 -4
  114. package/docs/reference/classes/RepoUtils.md +28 -28
  115. package/docs/reference/classes/RouteUtils.md +17 -17
  116. package/docs/reference/classes/Server.md +29 -29
  117. package/docs/reference/classes/SimpleEntity.md +3 -3
  118. package/docs/reference/classes/SimpleMongoEntity.md +4 -4
  119. package/docs/reference/classes/StatusExtraData.md +4 -4
  120. package/docs/reference/classes/StatusRoute.md +1 -1
  121. package/docs/reference/classes/UWSRequest.md +226 -0
  122. package/docs/reference/classes/UWSResponse.md +257 -0
  123. package/docs/reference/classes/UWSWebSocketShim.md +958 -0
  124. package/docs/reference/enumerations/ACLAction.md +7 -7
  125. package/docs/reference/enumerations/ApiErrorMessages.md +15 -15
  126. package/docs/reference/enumerations/ApiErrors.md +15 -15
  127. package/docs/reference/functions/createWebSocketStream.md +27 -0
  128. package/docs/reference/functions/isSqlDataSource.md +1 -1
  129. package/docs/reference/functions/readBody.md +29 -0
  130. package/docs/reference/functions/resolveCollectionName.md +1 -1
  131. package/docs/reference/functions/runChain.md +40 -0
  132. package/docs/reference/functions/snakeCase.md +1 -1
  133. package/docs/reference/globals.md +15 -0
  134. package/docs/reference/interfaces/ACLRecord.md +8 -8
  135. package/docs/reference/interfaces/AccessControlList.md +5 -5
  136. package/docs/reference/interfaces/AuthResult.md +5 -5
  137. package/docs/reference/interfaces/AuthStrategy.md +47 -9
  138. package/docs/reference/interfaces/CreateRequestOptions.md +11 -11
  139. package/docs/reference/interfaces/DeleteRequestOptions.md +13 -13
  140. package/docs/reference/interfaces/FindRequestOptions.md +12 -12
  141. package/docs/reference/interfaces/HttpRequest.md +147 -0
  142. package/docs/reference/interfaces/HttpResponse.md +164 -0
  143. package/docs/reference/interfaces/JWTAuthResult.md +9 -9
  144. package/docs/reference/interfaces/RepoCreateOptions.md +7 -7
  145. package/docs/reference/interfaces/RepoDeleteOptions.md +9 -9
  146. package/docs/reference/interfaces/RepoFindOptions.md +11 -11
  147. package/docs/reference/interfaces/RepoOperationOptions.md +6 -6
  148. package/docs/reference/interfaces/RepoUpdateOptions.md +8 -8
  149. package/docs/reference/interfaces/RequestOptions.md +10 -10
  150. package/docs/reference/interfaces/RequestWS.md +225 -0
  151. package/docs/reference/interfaces/TruncateRequestOptions.md +15 -15
  152. package/docs/reference/interfaces/UpdateRequestOptions.md +13 -13
  153. package/docs/reference/type-aliases/ErrorHandler.md +35 -0
  154. package/docs/reference/type-aliases/NextFunction.md +23 -0
  155. package/docs/reference/type-aliases/OneOrMany.md +1 -1
  156. package/docs/reference/type-aliases/OneOrNull.md +1 -1
  157. package/docs/reference/type-aliases/PartialBaseEntity.md +1 -1
  158. package/docs/reference/type-aliases/PartialSimpleEntity.md +1 -1
  159. package/docs/reference/type-aliases/RequestHandler.md +31 -0
  160. package/docs/reference/type-aliases/UpdateObject.md +1 -1
  161. package/docs/reference/type-aliases/WsUpgradeAuth.md +27 -0
  162. package/docs/reference/type-aliases/WsUpgradeAuthResult.md +47 -0
  163. package/package.json +4 -4
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: BasicStrategyOptions
8
8
 
9
- Defined in: [src/auth/BasicStrategy.ts:14](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/BasicStrategy.ts#L14)
9
+ Defined in: [src/auth/BasicStrategy.ts:13](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/BasicStrategy.ts#L13)
10
10
 
11
11
  Describes the configuration options that can be used to initialize BasicStrategy.
12
12
 
@@ -30,10 +30,10 @@ Jean-Philippe Steinmetz
30
30
 
31
31
  > **allowQueryParam**: `boolean` = `false`
32
32
 
33
- Defined in: [src/auth/BasicStrategy.ts:26](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/BasicStrategy.ts#L26)
33
+ Defined in: [src/auth/BasicStrategy.ts:25](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/BasicStrategy.ts#L25)
34
34
 
35
- Set to `true` to allow credentials to be supplied via the `queryKey` URL parameter.
36
- Disabled by default — query parameters appear in server logs, browser history, and
35
+ Set to `true` to allow credentials to be supplied via the `queryKey` URL parameter.
36
+ Disabled by default — query parameters appear in server logs, browser history, and
37
37
  Referer headers, which permanently exposes credentials outside the application.
38
38
 
39
39
  ***
@@ -42,7 +42,7 @@ Referer headers, which permanently exposes credentials outside the application.
42
42
 
43
43
  > **headerKey**: `string` = `"authorization"`
44
44
 
45
- Defined in: [src/auth/BasicStrategy.ts:16](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/BasicStrategy.ts#L16)
45
+ Defined in: [src/auth/BasicStrategy.ts:15](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/BasicStrategy.ts#L15)
46
46
 
47
47
  The name of the header to look for when performing header based authentication. Default value is `Authorization`.
48
48
 
@@ -52,7 +52,7 @@ The name of the header to look for when performing header based authentication.
52
52
 
53
53
  > **headerScheme**: `string` = `"basic"`
54
54
 
55
- Defined in: [src/auth/BasicStrategy.ts:18](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/BasicStrategy.ts#L18)
55
+ Defined in: [src/auth/BasicStrategy.ts:17](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/BasicStrategy.ts#L17)
56
56
 
57
57
  The authorization scheme type when using header based authentication. Default value is `jwt`.
58
58
 
@@ -62,7 +62,7 @@ The authorization scheme type when using header based authentication. Default va
62
62
 
63
63
  > **queryKey**: `string` = `"auth_basic"`
64
64
 
65
- Defined in: [src/auth/BasicStrategy.ts:20](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/BasicStrategy.ts#L20)
65
+ Defined in: [src/auth/BasicStrategy.ts:19](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/BasicStrategy.ts#L19)
66
66
 
67
67
  The name of the request query parameter to retrieve the token from when using query based authentication. Default value is `auth_basic`.
68
68
 
@@ -70,11 +70,11 @@ The name of the request query parameter to retrieve the token from when using qu
70
70
 
71
71
  ### verify()
72
72
 
73
- > **verify**(`uid`, `secret`): `JWTUser` \| `Promise`\<`JWTUser`\> \| `undefined`
73
+ > **verify**(`uid`, `secret`): `JWTUser` \| `Promise`\<`JWTUser` \| `undefined`\> \| `undefined`
74
74
 
75
- Defined in: [src/auth/BasicStrategy.ts:28](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/BasicStrategy.ts#L28)
75
+ Defined in: [src/auth/BasicStrategy.ts:27](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/BasicStrategy.ts#L27)
76
76
 
77
- You must override this function to perform verification of the login information.
77
+ Override this function to handle asynchronous (non-blocking) verification of the login info.
78
78
 
79
79
  #### Parameters
80
80
 
@@ -88,4 +88,28 @@ You must override this function to perform verification of the login information
88
88
 
89
89
  #### Returns
90
90
 
91
- `JWTUser` \| `Promise`\<`JWTUser`\> \| `undefined`
91
+ `JWTUser` \| `Promise`\<`JWTUser` \| `undefined`\> \| `undefined`
92
+
93
+ ***
94
+
95
+ ### verifySync()
96
+
97
+ > **verifySync**(`uid`, `secret`): `JWTUser` \| `undefined`
98
+
99
+ Defined in: [src/auth/BasicStrategy.ts:31](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/BasicStrategy.ts#L31)
100
+
101
+ Override this function to handle synchronous (blocking) verification of the login info.
102
+
103
+ #### Parameters
104
+
105
+ ##### uid
106
+
107
+ `string`
108
+
109
+ ##### secret
110
+
111
+ `string`
112
+
113
+ #### Returns
114
+
115
+ `JWTUser` \| `undefined`
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: BulkError
8
8
 
9
- Defined in: [src/BulkError.ts:6](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/BulkError.ts#L6)
9
+ Defined in: [src/BulkError.ts:6](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/BulkError.ts#L6)
10
10
 
11
11
  An error take that takes an array of other errors.
12
12
 
@@ -20,7 +20,7 @@ An error take that takes an array of other errors.
20
20
 
21
21
  > **new BulkError**(`errs`, `code`, `defaultStatus`, `message?`): `BulkError`
22
22
 
23
- Defined in: [src/BulkError.ts:12](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/BulkError.ts#L12)
23
+ Defined in: [src/BulkError.ts:12](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/BulkError.ts#L12)
24
24
 
25
25
  #### Parameters
26
26
 
@@ -68,7 +68,7 @@ The unique code of the error.
68
68
 
69
69
  > `readonly` **errors**: (`Error` \| `null`)[] = `[]`
70
70
 
71
- Defined in: [src/BulkError.ts:10](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/BulkError.ts#L10)
71
+ Defined in: [src/BulkError.ts:10](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/BulkError.ts#L10)
72
72
 
73
73
  The list of errors that have been thrown.
74
74
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: ConnectionManager
8
8
 
9
- Defined in: [src/database/ConnectionManager.ts:17](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/database/ConnectionManager.ts#L17)
9
+ Defined in: [src/database/ConnectionManager.ts:17](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/database/ConnectionManager.ts#L17)
10
10
 
11
11
  Provides database connection management.
12
12
 
@@ -30,7 +30,7 @@ Jean-Philippe Steinmetz
30
30
 
31
31
  > **connections**: `Map`\<`string`, `Redis` \| `DataSource` \| [`MongoConnection`](MongoConnection.md)\>
32
32
 
33
- Defined in: [src/database/ConnectionManager.ts:18](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/database/ConnectionManager.ts#L18)
33
+ Defined in: [src/database/ConnectionManager.ts:18](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/database/ConnectionManager.ts#L18)
34
34
 
35
35
  ## Methods
36
36
 
@@ -38,7 +38,7 @@ Defined in: [src/database/ConnectionManager.ts:18](https://github.com/rapidrest/
38
38
 
39
39
  > **connect**(`datastores`, `models`): `Promise`\<`void`\>
40
40
 
41
- Defined in: [src/database/ConnectionManager.ts:60](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/database/ConnectionManager.ts#L60)
41
+ Defined in: [src/database/ConnectionManager.ts:60](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/database/ConnectionManager.ts#L60)
42
42
 
43
43
  Attempts to initiate all database connections as defined in the config.
44
44
 
@@ -66,7 +66,7 @@ A map of model names and associated class definitions to establish database conn
66
66
 
67
67
  > **disconnect**(): `Promise`\<`void`\>
68
68
 
69
- Defined in: [src/database/ConnectionManager.ts:136](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/database/ConnectionManager.ts#L136)
69
+ Defined in: [src/database/ConnectionManager.ts:136](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/database/ConnectionManager.ts#L136)
70
70
 
71
71
  Attempts to disconnect all active database connections.
72
72
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: EventListenerManager
8
8
 
9
- Defined in: [src/EventListenerManager.ts:18](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/EventListenerManager.ts#L18)
9
+ Defined in: [src/EventListenerManager.ts:18](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/EventListenerManager.ts#L18)
10
10
 
11
11
  The `EventListenerManager` is responsible for managing event handlers and processing of incoming
12
12
  events from the configured redis pubsub channels. An event handler is any function that has been
@@ -25,7 +25,7 @@ Jean-Philippe Steinmetz <rapidrests@gmail.com>
25
25
 
26
26
  > **new EventListenerManager**(`objectFactory`, `redis`): `EventListenerManager`
27
27
 
28
- Defined in: [src/EventListenerManager.ts:27](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/EventListenerManager.ts#L27)
28
+ Defined in: [src/EventListenerManager.ts:27](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/EventListenerManager.ts#L27)
29
29
 
30
30
  #### Parameters
31
31
 
@@ -47,7 +47,7 @@ Defined in: [src/EventListenerManager.ts:27](https://github.com/rapidrest/servic
47
47
 
48
48
  > **destroy**(): `Promise`\<`void`\>
49
49
 
50
- Defined in: [src/EventListenerManager.ts:77](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/EventListenerManager.ts#L77)
50
+ Defined in: [src/EventListenerManager.ts:77](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/EventListenerManager.ts#L77)
51
51
 
52
52
  #### Returns
53
53
 
@@ -59,7 +59,7 @@ Defined in: [src/EventListenerManager.ts:77](https://github.com/rapidrest/servic
59
59
 
60
60
  > **init**(): `Promise`\<`void`\>
61
61
 
62
- Defined in: [src/EventListenerManager.ts:33](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/EventListenerManager.ts#L33)
62
+ Defined in: [src/EventListenerManager.ts:33](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/EventListenerManager.ts#L33)
63
63
 
64
64
  #### Returns
65
65
 
@@ -71,7 +71,7 @@ Defined in: [src/EventListenerManager.ts:33](https://github.com/rapidrest/servic
71
71
 
72
72
  > **register**(`obj`): `void`
73
73
 
74
- Defined in: [src/EventListenerManager.ts:128](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/EventListenerManager.ts#L128)
74
+ Defined in: [src/EventListenerManager.ts:128](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/EventListenerManager.ts#L128)
75
75
 
76
76
  Registers the given object to be notified of events that arrive.
77
77
 
@@ -0,0 +1,343 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / HttpRouter
6
+
7
+ # Class: HttpRouter
8
+
9
+ Defined in: [src/http/Router.ts:214](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L214)
10
+
11
+ Thin Express-compatible wrapper over `uWS.TemplatedApp`.
12
+
13
+ Provides the same `app.get()`, `app.post()`, `app.use()`, etc. API that
14
+ `RouteUtils.registerRoute()` uses, so no changes are needed in route registration
15
+ code. Global middleware registered via `use()` is prepended to every route's chain.
16
+
17
+ Also supports:
18
+ - `ws(path, handlers)` — native uWS WebSocket routing
19
+ - `static(basePath)` — basic static file serving
20
+ - `listen(host, port)` / `close()` — server lifecycle
21
+
22
+ ## Indexable
23
+
24
+ > \[`key`: `string`\]: `any`
25
+
26
+ ## Constructors
27
+
28
+ ### Constructor
29
+
30
+ > **new HttpRouter**(`uwsApp`): `HttpRouter`
31
+
32
+ Defined in: [src/http/Router.ts:226](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L226)
33
+
34
+ #### Parameters
35
+
36
+ ##### uwsApp
37
+
38
+ `TemplatedApp`
39
+
40
+ #### Returns
41
+
42
+ `HttpRouter`
43
+
44
+ ## Properties
45
+
46
+ ### listenPort
47
+
48
+ > **listenPort**: `number` = `0`
49
+
50
+ Defined in: [src/http/Router.ts:224](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L224)
51
+
52
+ The port the server is currently listening on (set after a successful `listen()` call).
53
+
54
+ ## Accessors
55
+
56
+ ### isListening
57
+
58
+ #### Get Signature
59
+
60
+ > **get** **isListening**(): `boolean`
61
+
62
+ Defined in: [src/http/Router.ts:231](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L231)
63
+
64
+ Returns `true` if the server is currently listening.
65
+
66
+ ##### Returns
67
+
68
+ `boolean`
69
+
70
+ ## Methods
71
+
72
+ ### close()
73
+
74
+ > **close**(): `void`
75
+
76
+ Defined in: [src/http/Router.ts:471](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L471)
77
+
78
+ Closes the listen socket, stopping the server from accepting new connections.
79
+
80
+ #### Returns
81
+
82
+ `void`
83
+
84
+ ***
85
+
86
+ ### delete()
87
+
88
+ > **delete**(`routePath`, ...`handlers`): `this`
89
+
90
+ Defined in: [src/http/Router.ts:275](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L275)
91
+
92
+ #### Parameters
93
+
94
+ ##### routePath
95
+
96
+ `string`
97
+
98
+ ##### handlers
99
+
100
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
101
+
102
+ #### Returns
103
+
104
+ `this`
105
+
106
+ ***
107
+
108
+ ### get()
109
+
110
+ > **get**(`routePath`, ...`handlers`): `this`
111
+
112
+ Defined in: [src/http/Router.ts:257](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L257)
113
+
114
+ #### Parameters
115
+
116
+ ##### routePath
117
+
118
+ `string`
119
+
120
+ ##### handlers
121
+
122
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
123
+
124
+ #### Returns
125
+
126
+ `this`
127
+
128
+ ***
129
+
130
+ ### head()
131
+
132
+ > **head**(`routePath`, ...`handlers`): `this`
133
+
134
+ Defined in: [src/http/Router.ts:287](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L287)
135
+
136
+ #### Parameters
137
+
138
+ ##### routePath
139
+
140
+ `string`
141
+
142
+ ##### handlers
143
+
144
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
145
+
146
+ #### Returns
147
+
148
+ `this`
149
+
150
+ ***
151
+
152
+ ### listen()
153
+
154
+ > **listen**(`host`, `port`): `Promise`\<`void`\>
155
+
156
+ Defined in: [src/http/Router.ts:450](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L450)
157
+
158
+ Starts listening on the given host and port.
159
+ Resolves when the server is ready; rejects if the port cannot be bound.
160
+
161
+ #### Parameters
162
+
163
+ ##### host
164
+
165
+ `string`
166
+
167
+ ##### port
168
+
169
+ `number`
170
+
171
+ #### Returns
172
+
173
+ `Promise`\<`void`\>
174
+
175
+ ***
176
+
177
+ ### options()
178
+
179
+ > **options**(`routePath`, ...`handlers`): `this`
180
+
181
+ Defined in: [src/http/Router.ts:294](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L294)
182
+
183
+ #### Parameters
184
+
185
+ ##### routePath
186
+
187
+ `string`
188
+
189
+ ##### handlers
190
+
191
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
192
+
193
+ #### Returns
194
+
195
+ `this`
196
+
197
+ ***
198
+
199
+ ### patch()
200
+
201
+ > **patch**(`routePath`, ...`handlers`): `this`
202
+
203
+ Defined in: [src/http/Router.ts:281](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L281)
204
+
205
+ #### Parameters
206
+
207
+ ##### routePath
208
+
209
+ `string`
210
+
211
+ ##### handlers
212
+
213
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
214
+
215
+ #### Returns
216
+
217
+ `this`
218
+
219
+ ***
220
+
221
+ ### post()
222
+
223
+ > **post**(`routePath`, ...`handlers`): `this`
224
+
225
+ Defined in: [src/http/Router.ts:263](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L263)
226
+
227
+ #### Parameters
228
+
229
+ ##### routePath
230
+
231
+ `string`
232
+
233
+ ##### handlers
234
+
235
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
236
+
237
+ #### Returns
238
+
239
+ `this`
240
+
241
+ ***
242
+
243
+ ### put()
244
+
245
+ > **put**(`routePath`, ...`handlers`): `this`
246
+
247
+ Defined in: [src/http/Router.ts:269](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L269)
248
+
249
+ #### Parameters
250
+
251
+ ##### routePath
252
+
253
+ `string`
254
+
255
+ ##### handlers
256
+
257
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
258
+
259
+ #### Returns
260
+
261
+ `this`
262
+
263
+ ***
264
+
265
+ ### static()
266
+
267
+ > **static**(`basePath`): `this`
268
+
269
+ Defined in: [src/http/Router.ts:420](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L420)
270
+
271
+ Serves static files from a directory via a wildcard GET route.
272
+ Files not found on disk return 404.
273
+
274
+ #### Parameters
275
+
276
+ ##### basePath
277
+
278
+ `string`
279
+
280
+ #### Returns
281
+
282
+ `this`
283
+
284
+ ***
285
+
286
+ ### use()
287
+
288
+ > **use**(...`handlers`): `this`
289
+
290
+ Defined in: [src/http/Router.ts:236](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L236)
291
+
292
+ Register global middleware that runs before every route handler.
293
+
294
+ #### Parameters
295
+
296
+ ##### handlers
297
+
298
+ ...[`RequestHandler`](../type-aliases/RequestHandler.md)[]
299
+
300
+ #### Returns
301
+
302
+ `this`
303
+
304
+ ***
305
+
306
+ ### ws()
307
+
308
+ > **ws**(`routePath`, `handlers`, `wsOptions?`, `upgradeAuth?`): `this`
309
+
310
+ Defined in: [src/http/Router.ts:312](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/http/Router.ts#L312)
311
+
312
+ Registers a WebSocket route. Handlers follow the same `(req, res, next)` pattern
313
+ as HTTP routes; they receive `req.websocket` containing the uWS WebSocket handle.
314
+
315
+ `upgradeAuth` is an optional pre-upgrade auth function. When provided it runs synchronously
316
+ inside the uWS `upgrade` callback before the handshake. If it returns `{ reject: true }`,
317
+ an HTTP 401 is sent and the upgrade is aborted. If it returns `{ user, ... }`, those
318
+ credentials are attached to the request so downstream middleware sees an authenticated user.
319
+ If it returns `{}`, auth falls through to the post-upgrade message-based LOGIN flow.
320
+
321
+ Both `path` and `path + "/"` are registered to avoid trailing-slash mismatch.
322
+
323
+ #### Parameters
324
+
325
+ ##### routePath
326
+
327
+ `string`
328
+
329
+ ##### handlers
330
+
331
+ [`RequestHandler`](../type-aliases/RequestHandler.md)[]
332
+
333
+ ##### wsOptions?
334
+
335
+ `Partial`\<`WebSocketBehavior`\<`any`\>\>
336
+
337
+ ##### upgradeAuth?
338
+
339
+ [`WsUpgradeAuth`](../type-aliases/WsUpgradeAuth.md)
340
+
341
+ #### Returns
342
+
343
+ `this`
@@ -6,15 +6,15 @@
6
6
 
7
7
  # Class: JWTStrategy
8
8
 
9
- Defined in: [src/auth/JWTStrategy.ts:64](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/JWTStrategy.ts#L64)
9
+ Defined in: [src/auth/JWTStrategy.ts:63](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/JWTStrategy.ts#L63)
10
10
 
11
- JWT authentication strategy. Performs JWT verification and searches for a token by one of the
12
- following methods (in order of precedence):
13
- * Query Parameter
14
- * Authorization Header
11
+ JWT authentication strategy. Performs JWT verification and searches for a token by one of the
12
+ following methods (in order of precedence):
13
+ * Query Parameter
14
+ * Authorization Header
15
15
  * Cookie
16
16
 
17
- This class no longer extends `passport-strategy`; it is used directly by route middleware
17
+ This class no longer extends `passport-strategy`; it is used directly by route middleware
18
18
  and returns a plain result object instead of calling Passport callbacks.
19
19
 
20
20
  ## Author
@@ -27,7 +27,7 @@ Jean-Philippe Steinmetz
27
27
 
28
28
  > **new JWTStrategy**(`options?`): `JWTStrategy`
29
29
 
30
- Defined in: [src/auth/JWTStrategy.ts:72](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/JWTStrategy.ts#L72)
30
+ Defined in: [src/auth/JWTStrategy.ts:71](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/JWTStrategy.ts#L71)
31
31
 
32
32
  #### Parameters
33
33
 
@@ -45,28 +45,51 @@ Defined in: [src/auth/JWTStrategy.ts:72](https://github.com/rapidrest/service-co
45
45
 
46
46
  > `readonly` **name**: `string` = `"jwt"`
47
47
 
48
- Defined in: [src/auth/JWTStrategy.ts:68](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/JWTStrategy.ts#L68)
48
+ Defined in: [src/auth/JWTStrategy.ts:67](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/JWTStrategy.ts#L67)
49
49
 
50
50
  ## Methods
51
51
 
52
52
  ### authenticate()
53
53
 
54
- > **authenticate**(`req`, `res`, `required?`): [`JWTAuthResult`](../interfaces/JWTAuthResult.md) \| `undefined`
54
+ > **authenticate**(`req`, `res`, `required?`): `Promise`\<[`JWTAuthResult`](../interfaces/JWTAuthResult.md) \| `undefined`\>
55
55
 
56
- Defined in: [src/auth/JWTStrategy.ts:81](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/JWTStrategy.ts#L81)
56
+ Defined in: [src/auth/JWTStrategy.ts:134](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/JWTStrategy.ts#L134)
57
57
 
58
- Attempts to authenticate the incoming request by extracting and verifying a JWT token.
59
- Returns a `JWTAuthResult` describing the outcome.
58
+ #### Parameters
59
+
60
+ ##### req
61
+
62
+ [`HttpRequest`](../interfaces/HttpRequest.md)
63
+
64
+ ##### res
65
+
66
+ [`HttpResponse`](../interfaces/HttpResponse.md)
67
+
68
+ ##### required?
69
+
70
+ `boolean`
71
+
72
+ #### Returns
73
+
74
+ `Promise`\<[`JWTAuthResult`](../interfaces/JWTAuthResult.md) \| `undefined`\>
75
+
76
+ ***
77
+
78
+ ### authenticateSync()
79
+
80
+ > **authenticateSync**(`req`, `res`, `required?`): [`JWTAuthResult`](../interfaces/JWTAuthResult.md) \| `undefined`
81
+
82
+ Defined in: [src/auth/JWTStrategy.ts:169](https://github.com/rapidrest/service-core/blob/ab54834688bebfbea1d8258c626822205861b919/src/auth/JWTStrategy.ts#L169)
60
83
 
61
84
  #### Parameters
62
85
 
63
86
  ##### req
64
87
 
65
- `HttpRequest`
88
+ [`HttpRequest`](../interfaces/HttpRequest.md)
66
89
 
67
90
  ##### res
68
91
 
69
- `HttpResponse`
92
+ [`HttpResponse`](../interfaces/HttpResponse.md)
70
93
 
71
94
  ##### required?
72
95