@rapidrest/service-core 1.0.0-rc.13 → 1.0.0-rc.16

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 (220) hide show
  1. package/dist/lib/OpenApiSpec.js +3 -2
  2. package/dist/lib/OpenApiSpec.js.map +1 -1
  3. package/dist/lib/Server.js +16 -71
  4. package/dist/lib/Server.js.map +1 -1
  5. package/dist/lib/database/TypeOrmSupport.js +18 -2
  6. package/dist/lib/database/TypeOrmSupport.js.map +1 -1
  7. package/dist/lib/decorators/DocDecorators.js +19 -1
  8. package/dist/lib/decorators/DocDecorators.js.map +1 -1
  9. package/dist/lib/decorators/PersistenceDecorators.js.map +1 -1
  10. package/dist/lib/models/RepoUtils.js.map +1 -1
  11. package/dist/lib/routes/{AdminRoute.js → BaseAdminRoute.js} +45 -36
  12. package/dist/lib/routes/BaseAdminRoute.js.map +1 -0
  13. package/dist/lib/routes/{MetricsRoute.js → BaseMetricsRoute.js} +28 -15
  14. package/dist/lib/routes/BaseMetricsRoute.js.map +1 -0
  15. package/dist/lib/routes/{OpenAPIRoute.js → BaseOpenAPIRoute.js} +31 -32
  16. package/dist/lib/routes/BaseOpenAPIRoute.js.map +1 -0
  17. package/dist/lib/routes/BasePushRoute.js +193 -0
  18. package/dist/lib/routes/BasePushRoute.js.map +1 -0
  19. package/dist/lib/routes/{StatusRoute.js → BaseStatusRoute.js} +36 -16
  20. package/dist/lib/routes/BaseStatusRoute.js.map +1 -0
  21. package/dist/lib/routes/CRUDRoute.js +13 -10
  22. package/dist/lib/routes/CRUDRoute.js.map +1 -1
  23. package/dist/lib/routes/index.js +5 -4
  24. package/dist/lib/routes/index.js.map +1 -1
  25. package/dist/lib/security/ACLUtils.js +7 -7
  26. package/dist/lib/security/ACLUtils.js.map +1 -1
  27. package/dist/lib/security/AccessControlListMongo.js +5 -1
  28. package/dist/lib/security/AccessControlListMongo.js.map +1 -1
  29. package/dist/lib/security/AccessControlListSQL.js +7 -3
  30. package/dist/lib/security/AccessControlListSQL.js.map +1 -1
  31. package/dist/lib/security/{ACLRouteMongo.js → BaseACLRoute.js} +59 -23
  32. package/dist/lib/security/BaseACLRoute.js.map +1 -0
  33. package/dist/lib/security/index.js +3 -0
  34. package/dist/lib/security/index.js.map +1 -1
  35. package/dist/lib/test/request.js +6 -2
  36. package/dist/lib/test/request.js.map +1 -1
  37. package/dist/types/Server.d.ts +21 -6
  38. package/dist/types/decorators/DocDecorators.d.ts +9 -0
  39. package/dist/types/decorators/PersistenceDecorators.d.ts +7 -0
  40. package/dist/types/routes/BaseAdminRoute.d.ts +59 -0
  41. package/dist/types/routes/BaseMetricsRoute.d.ts +37 -0
  42. package/dist/types/routes/BaseOpenAPIRoute.d.ts +33 -0
  43. package/dist/types/routes/BasePushRoute.d.ts +39 -0
  44. package/dist/types/routes/BaseStatusRoute.d.ts +37 -0
  45. package/dist/types/routes/CRUDRoute.d.ts +13 -10
  46. package/dist/types/routes/index.d.ts +5 -4
  47. package/dist/types/security/ACLUtils.d.ts +1 -1
  48. package/dist/types/security/AccessControlList.d.ts +1 -1
  49. package/dist/types/security/AccessControlListMongo.d.ts +1 -1
  50. package/dist/types/security/AccessControlListSQL.d.ts +1 -1
  51. package/dist/types/security/BaseACLRoute.d.ts +73 -0
  52. package/dist/types/security/index.d.ts +3 -0
  53. package/package.json +2 -5
  54. package/dist/lib/routes/AdminRoute.js.map +0 -1
  55. package/dist/lib/routes/MetricsRoute.js.map +0 -1
  56. package/dist/lib/routes/OpenAPIRoute.js.map +0 -1
  57. package/dist/lib/routes/StatusRoute.js.map +0 -1
  58. package/dist/lib/security/ACLRouteMongo.js.map +0 -1
  59. package/dist/lib/security/ACLRouteSQL.js +0 -201
  60. package/dist/lib/security/ACLRouteSQL.js.map +0 -1
  61. package/dist/types/routes/AdminRoute.d.ts +0 -47
  62. package/dist/types/routes/MetricsRoute.d.ts +0 -15
  63. package/dist/types/routes/OpenAPIRoute.d.ts +0 -17
  64. package/dist/types/routes/StatusRoute.d.ts +0 -12
  65. package/dist/types/security/ACLRouteMongo.d.ts +0 -31
  66. package/dist/types/security/ACLRouteSQL.d.ts +0 -31
  67. package/docs/Makefile +0 -20
  68. package/docs/conf.py +0 -58
  69. package/docs/index.rst +0 -17
  70. package/docs/make.bat +0 -35
  71. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/README.md +0 -13
  72. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/MongoRepository.md +0 -25
  73. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/RedisConnection.md +0 -25
  74. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/Repository.md +0 -25
  75. package/docs/reference/@rapidrest/namespaces/DocDecorators/README.md +0 -23
  76. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Default.md +0 -25
  77. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Description.md +0 -25
  78. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Document.md +0 -25
  79. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Example.md +0 -25
  80. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Format.md +0 -25
  81. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Returns.md +0 -28
  82. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Summary.md +0 -25
  83. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Tags.md +0 -25
  84. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/TypeInfo.md +0 -28
  85. package/docs/reference/@rapidrest/namespaces/DocDecorators/interfaces/DocumentsData.md +0 -57
  86. package/docs/reference/@rapidrest/namespaces/EventDecorators/README.md +0 -12
  87. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/EventListener.md +0 -17
  88. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/OnEvent.md +0 -26
  89. package/docs/reference/@rapidrest/namespaces/ModelDecorators/README.md +0 -26
  90. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Cache.md +0 -25
  91. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/ChildEntity.md +0 -18
  92. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/DataStore.md +0 -25
  93. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Identifier.md +0 -27
  94. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Protect.md +0 -35
  95. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Reference.md +0 -25
  96. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Shard.md +0 -27
  97. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/TrackChanges.md +0 -26
  98. package/docs/reference/@rapidrest/namespaces/ModelDecorators/interfaces/PendingTypeOrmColumn.md +0 -45
  99. package/docs/reference/@rapidrest/namespaces/ModelDecorators/variables/pendingTypeOrmColumns.md +0 -14
  100. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/README.md +0 -27
  101. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Column.md +0 -25
  102. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Entity.md +0 -25
  103. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Index.md +0 -119
  104. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/PrimaryColumn.md +0 -25
  105. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Unique.md +0 -68
  106. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getColumnMetadata.md +0 -26
  107. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getEntityName.md +0 -26
  108. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getIndexMetadata.md +0 -27
  109. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/CollationOptions.md +0 -79
  110. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnInfo.md +0 -41
  111. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnOptions.md +0 -51
  112. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/EntityOptions.md +0 -32
  113. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexInfo.md +0 -41
  114. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexOptions.md +0 -61
  115. package/docs/reference/@rapidrest/namespaces/RouteDecorators/README.md +0 -36
  116. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/After.md +0 -26
  117. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Auth.md +0 -33
  118. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/AuthResult.md +0 -31
  119. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Before.md +0 -25
  120. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/ContentType.md +0 -25
  121. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Delete.md +0 -25
  122. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Get.md +0 -25
  123. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Head.md +0 -25
  124. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Header.md +0 -25
  125. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Method.md +0 -31
  126. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Model.md +0 -25
  127. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Options.md +0 -25
  128. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Param.md +0 -26
  129. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Patch.md +0 -25
  130. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Post.md +0 -25
  131. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Protect.md +0 -31
  132. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Put.md +0 -25
  133. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Query.md +0 -26
  134. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Request.md +0 -31
  135. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/RequiresRole.md +0 -26
  136. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Response.md +0 -31
  137. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Route.md +0 -25
  138. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Socket.md +0 -33
  139. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/User.md +0 -31
  140. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Validate.md +0 -25
  141. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/WebSocket.md +0 -25
  142. package/docs/reference/README.md +0 -20
  143. package/docs/reference/classes/ACLUtils.md +0 -263
  144. package/docs/reference/classes/AdminRoute.md +0 -51
  145. package/docs/reference/classes/AuthMiddleware.md +0 -173
  146. package/docs/reference/classes/BackgroundService.md +0 -117
  147. package/docs/reference/classes/BackgroundServiceManager.md +0 -172
  148. package/docs/reference/classes/BaseEntity.md +0 -82
  149. package/docs/reference/classes/BaseMongoEntity.md +0 -107
  150. package/docs/reference/classes/BasicStrategy.md +0 -131
  151. package/docs/reference/classes/BasicStrategyOptions.md +0 -115
  152. package/docs/reference/classes/BulkError.md +0 -271
  153. package/docs/reference/classes/ConnectionManager.md +0 -75
  154. package/docs/reference/classes/EventListenerManager.md +0 -88
  155. package/docs/reference/classes/HttpRouter.md +0 -343
  156. package/docs/reference/classes/JWTStrategy.md +0 -100
  157. package/docs/reference/classes/JWTStrategyOptions.md +0 -97
  158. package/docs/reference/classes/MetricsRoute.md +0 -27
  159. package/docs/reference/classes/ModelRoute.md +0 -534
  160. package/docs/reference/classes/ModelUtils.md +0 -446
  161. package/docs/reference/classes/MongoConnection.md +0 -218
  162. package/docs/reference/classes/MongoRepository.md +0 -390
  163. package/docs/reference/classes/MongoSchemaSync.md +0 -97
  164. package/docs/reference/classes/NetUtils.md +0 -90
  165. package/docs/reference/classes/NotificationUtils.md +0 -77
  166. package/docs/reference/classes/ObjectFactory.md +0 -336
  167. package/docs/reference/classes/OpenAPIRoute.md +0 -77
  168. package/docs/reference/classes/OpenApiSpec.md +0 -892
  169. package/docs/reference/classes/RecoverableBaseEntity.md +0 -114
  170. package/docs/reference/classes/RecoverableBaseMongoEntity.md +0 -124
  171. package/docs/reference/classes/RedisTransport.md +0 -2202
  172. package/docs/reference/classes/RepoUtils.md +0 -482
  173. package/docs/reference/classes/RouteUtils.md +0 -191
  174. package/docs/reference/classes/Server.md +0 -408
  175. package/docs/reference/classes/SimpleEntity.md +0 -48
  176. package/docs/reference/classes/SimpleMongoEntity.md +0 -66
  177. package/docs/reference/classes/StatusExtraData.md +0 -57
  178. package/docs/reference/classes/StatusRoute.md +0 -26
  179. package/docs/reference/classes/UWSRequest.md +0 -226
  180. package/docs/reference/classes/UWSResponse.md +0 -257
  181. package/docs/reference/classes/UWSWebSocketShim.md +0 -958
  182. package/docs/reference/enumerations/ACLAction.md +0 -63
  183. package/docs/reference/enumerations/ApiErrorMessages.md +0 -123
  184. package/docs/reference/enumerations/ApiErrors.md +0 -123
  185. package/docs/reference/functions/createWebSocketStream.md +0 -27
  186. package/docs/reference/functions/isSqlDataSource.md +0 -26
  187. package/docs/reference/functions/readBody.md +0 -29
  188. package/docs/reference/functions/resolveCollectionName.md +0 -33
  189. package/docs/reference/functions/runChain.md +0 -40
  190. package/docs/reference/functions/snakeCase.md +0 -28
  191. package/docs/reference/globals.md +0 -106
  192. package/docs/reference/interfaces/ACLRecord.md +0 -96
  193. package/docs/reference/interfaces/AccessControlList.md +0 -76
  194. package/docs/reference/interfaces/AuthResult.md +0 -55
  195. package/docs/reference/interfaces/AuthStrategy.md +0 -95
  196. package/docs/reference/interfaces/CreateRequestOptions.md +0 -121
  197. package/docs/reference/interfaces/DeleteRequestOptions.md +0 -137
  198. package/docs/reference/interfaces/FindRequestOptions.md +0 -133
  199. package/docs/reference/interfaces/HttpRequest.md +0 -147
  200. package/docs/reference/interfaces/HttpResponse.md +0 -164
  201. package/docs/reference/interfaces/JWTAuthResult.md +0 -84
  202. package/docs/reference/interfaces/RepoCreateOptions.md +0 -95
  203. package/docs/reference/interfaces/RepoDeleteOptions.md +0 -105
  204. package/docs/reference/interfaces/RepoFindOptions.md +0 -125
  205. package/docs/reference/interfaces/RepoOperationOptions.md +0 -69
  206. package/docs/reference/interfaces/RepoUpdateOptions.md +0 -101
  207. package/docs/reference/interfaces/RequestOptions.md +0 -112
  208. package/docs/reference/interfaces/RequestWS.md +0 -225
  209. package/docs/reference/interfaces/TruncateRequestOptions.md +0 -161
  210. package/docs/reference/interfaces/UpdateRequestOptions.md +0 -139
  211. package/docs/reference/type-aliases/ErrorHandler.md +0 -35
  212. package/docs/reference/type-aliases/NextFunction.md +0 -23
  213. package/docs/reference/type-aliases/OneOrMany.md +0 -19
  214. package/docs/reference/type-aliases/OneOrNull.md +0 -19
  215. package/docs/reference/type-aliases/PartialBaseEntity.md +0 -17
  216. package/docs/reference/type-aliases/PartialSimpleEntity.md +0 -17
  217. package/docs/reference/type-aliases/RequestHandler.md +0 -31
  218. package/docs/reference/type-aliases/UpdateObject.md +0 -19
  219. package/docs/reference/type-aliases/WsUpgradeAuth.md +0 -27
  220. package/docs/reference/type-aliases/WsUpgradeAuthResult.md +0 -47
@@ -10,13 +10,54 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- import { AccessControlListMongo } from "./AccessControlListMongo.js";
14
13
  import { ACLAction } from "./AccessControlList.js";
15
14
  import { ApiError, UserUtils } from "@rapidrest/core";
16
15
  import { ApiErrorMessages } from "../ApiErrors.js";
17
- import { Before, Model, Param, Query, Request, Response, Route, User } from "../decorators/RouteDecorators.js";
16
+ import { Before, Param, Query, Request, Response, User } from "../decorators/RouteDecorators.js";
18
17
  import { CRUDRoute } from "../routes/CRUDRoute.js";
19
- let ACLRouteMongo = class ACLRouteMongo extends CRUDRoute {
18
+ /**
19
+ * The `BaseACLRoute` class provides a base set of endpoints for managing Access Control List records.
20
+ *
21
+ * Exposed endpoints:
22
+ *
23
+ * | Name | HTTP Method | What it does |
24
+ * | --- | --- | --- |
25
+ * | `count` | `HEAD /` | Counts the number of ACLs matching the provided set of criteria in the request's query parameters. Returns the count as the value of the `Content-Length` header. |
26
+ * | `create` | `POST /` | Adds one or more new ACLs to the datastore. |
27
+ * | `delete` | `DELETE /:id` | Removes an existing ACL from the datastore. |
28
+ * | `exists` | `HEAD /:id` | Checks if the ACL with the given ID exists in the datastore. Sets `Content-Length` header to `1` if the ACL exists, otherwise `0`. |
29
+ * | `find` | `GET /` | Returns all ACLs matching the provided set of criteria in the request's query parameters. |
30
+ * | `findById` | `GET /:id` | Returns a single ACL with a specified unique identifier. |
31
+ * | `truncate` | `DELETE /` | Removes all ACLs from the datastore. |
32
+ * | `update` | `PUT /:id` | Modifies an existing ACL in the datastore. |
33
+ * | `updateBulk` | `PUT /` | Modifies multiple existing ACLs in the datastore. |
34
+ * | `updateProperty` | `PUT /:id/:property` | Modifies an single property of the given name of an existing ACL in the datastore. |
35
+ *
36
+ * !!Note!! that the `BaseACLRoute` is not automatically registered with a server by default. You must create
37
+ * your own class that extends `BaseACLRoute` and apply the desired base path with `@Route()`.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * import { AccessControlListMongo, BaseACLRoute, RouteDecorators } from "@rapidrest/service-core";
42
+ * const { Model, Route } = RouteDecorators;
43
+ *
44
+ * @Model(AccessControlListMongo)
45
+ * @Route("/acls")
46
+ * export class ACLRoute extends BaseACLRoute<AccessControlListMongo> {}
47
+ * ```
48
+ * @example
49
+ * ```ts
50
+ * import { AccessControlListSQL, BaseACLRoute, RouteDecorators } from "@rapidrest/service-core";
51
+ * const { Model, Route } = RouteDecorators;
52
+ *
53
+ * @Model(AccessControlListSQL)
54
+ * @Route("/acls")
55
+ * export class ACLRoute extends BaseACLRoute<AccessControlListSQL> {}
56
+ * ```
57
+ *
58
+ * @author Jean-Philippe Steinmetz
59
+ */
60
+ export class BaseACLRoute extends CRUDRoute {
20
61
  async checkPerms(params, user) {
21
62
  if (!user) {
22
63
  throw new ApiError(ApiErrorMessages.AUTH_REQUIRED, 401, ApiErrorMessages.AUTH_REQUIRED);
@@ -83,26 +124,26 @@ let ACLRouteMongo = class ACLRouteMongo extends CRUDRoute {
83
124
  updateBulk(obj, req, user) {
84
125
  return super.updateBulk(obj, req, user);
85
126
  }
86
- };
127
+ }
87
128
  __decorate([
88
129
  __param(0, Param()),
89
130
  __param(1, User),
90
131
  __metadata("design:type", Function),
91
132
  __metadata("design:paramtypes", [Object, Object]),
92
133
  __metadata("design:returntype", Promise)
93
- ], ACLRouteMongo.prototype, "checkPerms", null);
134
+ ], BaseACLRoute.prototype, "checkPerms", null);
94
135
  __decorate([
95
136
  __param(0, Param("id")),
96
137
  __metadata("design:type", Function),
97
138
  __metadata("design:paramtypes", [String]),
98
139
  __metadata("design:returntype", void 0)
99
- ], ACLRouteMongo.prototype, "checkNotDefault", null);
140
+ ], BaseACLRoute.prototype, "checkNotDefault", null);
100
141
  __decorate([
101
142
  __param(1, User),
102
143
  __metadata("design:type", Function),
103
144
  __metadata("design:paramtypes", [Array, Object]),
104
145
  __metadata("design:returntype", void 0)
105
- ], ACLRouteMongo.prototype, "checkPermsBulk", null);
146
+ ], BaseACLRoute.prototype, "checkPermsBulk", null);
106
147
  __decorate([
107
148
  Before("checkPerms"),
108
149
  __param(0, Param()),
@@ -112,7 +153,7 @@ __decorate([
112
153
  __metadata("design:type", Function),
113
154
  __metadata("design:paramtypes", [Object, Object, Object, Object]),
114
155
  __metadata("design:returntype", Promise)
115
- ], ACLRouteMongo.prototype, "count", null);
156
+ ], BaseACLRoute.prototype, "count", null);
116
157
  __decorate([
117
158
  Before("checkPerms"),
118
159
  __param(1, Request),
@@ -120,7 +161,7 @@ __decorate([
120
161
  __metadata("design:type", Function),
121
162
  __metadata("design:paramtypes", [Object, Object, Object]),
122
163
  __metadata("design:returntype", Promise)
123
- ], ACLRouteMongo.prototype, "create", null);
164
+ ], BaseACLRoute.prototype, "create", null);
124
165
  __decorate([
125
166
  Before(["checkPerms", "checkNotDefault"]),
126
167
  __param(0, Param("id")),
@@ -131,7 +172,7 @@ __decorate([
131
172
  __metadata("design:type", Function),
132
173
  __metadata("design:paramtypes", [String, Object, Object, Object, Object]),
133
174
  __metadata("design:returntype", Promise)
134
- ], ACLRouteMongo.prototype, "delete", null);
175
+ ], BaseACLRoute.prototype, "delete", null);
135
176
  __decorate([
136
177
  Before("checkPerms"),
137
178
  __param(0, Param("id")),
@@ -141,7 +182,7 @@ __decorate([
141
182
  __metadata("design:type", Function),
142
183
  __metadata("design:paramtypes", [String, Object, Object, Object]),
143
184
  __metadata("design:returntype", Promise)
144
- ], ACLRouteMongo.prototype, "exists", null);
185
+ ], BaseACLRoute.prototype, "exists", null);
145
186
  __decorate([
146
187
  Before("checkPerms"),
147
188
  __param(0, Param()),
@@ -150,7 +191,7 @@ __decorate([
150
191
  __metadata("design:type", Function),
151
192
  __metadata("design:paramtypes", [Object, Object, Object]),
152
193
  __metadata("design:returntype", Promise)
153
- ], ACLRouteMongo.prototype, "find", null);
194
+ ], BaseACLRoute.prototype, "find", null);
154
195
  __decorate([
155
196
  Before("checkPerms"),
156
197
  __param(0, Param("id")),
@@ -159,7 +200,7 @@ __decorate([
159
200
  __metadata("design:type", Function),
160
201
  __metadata("design:paramtypes", [String, Object, Object]),
161
202
  __metadata("design:returntype", Promise)
162
- ], ACLRouteMongo.prototype, "findById", null);
203
+ ], BaseACLRoute.prototype, "findById", null);
163
204
  __decorate([
164
205
  Before("checkPerms"),
165
206
  __param(0, Param()),
@@ -168,7 +209,7 @@ __decorate([
168
209
  __metadata("design:type", Function),
169
210
  __metadata("design:paramtypes", [Object, Object, Object]),
170
211
  __metadata("design:returntype", Promise)
171
- ], ACLRouteMongo.prototype, "truncate", null);
212
+ ], BaseACLRoute.prototype, "truncate", null);
172
213
  __decorate([
173
214
  Before(["checkPerms", "checkNotDefault"]),
174
215
  __param(0, Param("id")),
@@ -177,7 +218,7 @@ __decorate([
177
218
  __metadata("design:type", Function),
178
219
  __metadata("design:paramtypes", [String, Object, Object, Object]),
179
220
  __metadata("design:returntype", Promise)
180
- ], ACLRouteMongo.prototype, "update", null);
221
+ ], BaseACLRoute.prototype, "update", null);
181
222
  __decorate([
182
223
  Before("checkPerms"),
183
224
  __param(0, Param("id")),
@@ -186,7 +227,7 @@ __decorate([
186
227
  __metadata("design:type", Function),
187
228
  __metadata("design:paramtypes", [String, String, Object, Object]),
188
229
  __metadata("design:returntype", Promise)
189
- ], ACLRouteMongo.prototype, "updateProperty", null);
230
+ ], BaseACLRoute.prototype, "updateProperty", null);
190
231
  __decorate([
191
232
  Before("checkPermsBulk"),
192
233
  __param(1, Request),
@@ -194,10 +235,5 @@ __decorate([
194
235
  __metadata("design:type", Function),
195
236
  __metadata("design:paramtypes", [Array, Object, Object]),
196
237
  __metadata("design:returntype", Promise)
197
- ], ACLRouteMongo.prototype, "updateBulk", null);
198
- ACLRouteMongo = __decorate([
199
- Model(AccessControlListMongo),
200
- Route("/acls")
201
- ], ACLRouteMongo);
202
- export { ACLRouteMongo };
203
- //# sourceMappingURL=ACLRouteMongo.js.map
238
+ ], BaseACLRoute.prototype, "updateBulk", null);
239
+ //# sourceMappingURL=BaseACLRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseACLRoute.js","sourceRoot":"","sources":["../../../src/security/BaseACLRoute.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  export * from "./AccessControlList.js";
2
+ export * from "./AccessControlListMongo.js";
3
+ export * from "./AccessControlListSQL.js";
2
4
  export * from "./ACLUtils.js";
5
+ export * from "./BaseACLRoute.js";
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/security/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/security/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
@@ -42,8 +42,12 @@ export function request(app) {
42
42
  return chain;
43
43
  },
44
44
  then(onFulfilled, onRejected) {
45
- // Auto-set Content-Type for JSON object bodies
46
- if (body !== undefined && typeof body === "object" && !Buffer.isBuffer(body)) {
45
+ // Auto-set Content-Type for JSON bodies. Buffers are sent verbatim. Everything else (objects,
46
+ // numbers, booleans, and strings — which callers pre-encode as JSON, e.g. `.send('"foo"')`) is
47
+ // treated as JSON: axios's default transform only auto-serializes plain objects, leaves strings
48
+ // untouched but defaults their Content-Type to form-urlencoded, and hands numbers/booleans straight
49
+ // to the HTTP adapter, which rejects anything that isn't a string/Buffer/Stream.
50
+ if (body !== undefined && !Buffer.isBuffer(body)) {
47
51
  hdrs["content-type"] = hdrs["content-type"] || "application/json";
48
52
  }
49
53
  return axios
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/test/request.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,SAAS,WAAW,CAAC,GAAQ;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,kBAAkB;IAClB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IACzD,sBAAsB;IACtB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC;IACrE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,eAAe,CAAC,WAAoB;IACzC,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAQ;IAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,oBAAoB,IAAI,EAAE,CAAC;IAE3C,SAAS,SAAS,CAAC,MAAc,EAAE,GAAW;QAC1C,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,IAAI,IAAI,GAAQ,SAAS,CAAC;QAE1B,MAAM,KAAK,GAAQ;YACf,GAAG,CAAC,GAAW,EAAE,KAAa;gBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,IAAS;gBACV,IAAI,GAAG,IAAI,CAAC;gBACZ,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,WAAgB,EAAE,UAAgB;gBACnC,+CAA+C;gBAC/C,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3E,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC;gBACtE,CAAC;gBACD,OAAO,KAAK;qBACP,OAAO,CAAC;oBACL,MAAM;oBACN,GAAG,EAAE,OAAO,GAAG,GAAG;oBAClB,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,IAAI;oBACb,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;oBAC1B,YAAY,EAAE,MAAM;oBACpB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;iBACpC,CAAC;qBACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBACV,MAAM,GAAG,GAAG,GAAG,CAAC,IAAc,CAAC;oBAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAuB,CAAC;oBAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;oBACjC,IAAI,MAAW,CAAC;oBAChB,IAAI,CAAC;wBACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,CAAC;oBAAC,MAAM,CAAC;wBACL,MAAM,GAAG,GAAG,CAAC;oBACjB,CAAC;oBACD,MAAM,MAAM,GAAiB;wBACzB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,UAAU,EAAE,GAAG,CAAC,MAAM;wBACtB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,GAAG,CAAC,OAAiC;wBAC9C,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;qBAC5C,CAAC;oBACF,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtD,CAAC,CAAC;qBACD,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,UAAe;gBACjB,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC;SACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QACH,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;QAC3C,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;QAC7C,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;QAC3C,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC;QACjD,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;QAC/C,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;QAC7C,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;KACtD,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/test/request.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,28 @@
1
1
  import * as prom from "prom-client";
2
2
  import "reflect-metadata";
3
3
  import { ConnectionManager } from "./database/ConnectionManager.js";
4
+ import { ClassLoader } from "@rapidrest/core";
4
5
  import { ObjectFactory } from "./ObjectFactory.js";
5
6
  import { BackgroundServiceManager } from "./BackgroundServiceManager.js";
6
7
  import { RouteUtils } from "./routes/RouteUtils.js";
7
8
  import { OpenApiSpec } from "./OpenApiSpec.js";
8
9
  import { EventListenerManager } from "./EventListenerManager.js";
9
10
  import { HttpRouter } from "./http/Router.js";
11
+ /**
12
+ * The configuration options to use when constructing a new Server instance.
13
+ */
14
+ export interface ServerOptions {
15
+ /** The nconf-compatible configuration object to initialize the server with. */
16
+ config: any;
17
+ /** The base file system path that models and routes will be searched from. Default is `.` */
18
+ basePath?: string;
19
+ /** The logging utility to use for outputing to console/file. Default is `Logger()` from `@rapidrest/core`. */
20
+ logger?: any;
21
+ /** The ClassLoader used to scan the source for all exported classes. */
22
+ classLoader?: ClassLoader;
23
+ /** The object factory to use for automatic dependency injection (IOC). */
24
+ objectFactory?: ObjectFactory;
25
+ }
10
26
  /**
11
27
  * Provides an HTTP server utilizing uWebSockets.js. The server automatically registers all routes, and
12
28
  * establishes database connections for all configured data stores. Additionally provides automatic authentication
@@ -124,6 +140,8 @@ export declare class Server {
124
140
  protected readonly config?: any;
125
141
  /** The manager for handling database connections. */
126
142
  protected connectionManager?: ConnectionManager;
143
+ /** The ClassLoader used to scan the source for all exported classes. */
144
+ protected classLoader: ClassLoader;
127
145
  /** The manager for handling events. */
128
146
  protected eventListenerManager?: EventListenerManager;
129
147
  /** The logging utility to use when outputing to console/file. */
@@ -141,14 +159,11 @@ export declare class Server {
141
159
  protected metricFailedRequests: prom.Counter<string>;
142
160
  protected metricTotalRequests: prom.Counter<string>;
143
161
  /**
144
- * Creates a new instance of Server with the specified defaults.
162
+ * Creates a new instance of Server with the specified default options.
145
163
  *
146
- * @param {any} config The nconf-compatible configuration object to initialize the server with.
147
- * @param {string} basePath The base file system path that models and routes will be searched from.
148
- * @param {Logger} logger The logging utility to use for outputing to console/file.
149
- * @param objectFactory The object factory to use for automatic dependency injection (IOC).
164
+ * @param options The configuration options to apply for this server.
150
165
  */
151
- constructor(config: any, basePath?: string, logger?: any, objectFactory?: ObjectFactory);
166
+ constructor(options: ServerOptions);
152
167
  /**
153
168
  * Returns the HTTP router instance.
154
169
  */
@@ -67,3 +67,12 @@ export declare function Returns(types?: any | any[]): (target: any, propertyKey:
67
67
  * becomes `[[Array, MyClass]]`).
68
68
  */
69
69
  export declare function TypeInfo(types?: any | any[]): (target: any, propertyKey: string) => void;
70
+ /**
71
+ * Retrieves the typing information of a class property or function, preferring the richer description provided by
72
+ * `@TypeInfo` and falling back to TypeScript's own `design:type` reflection metadata when `@TypeInfo` was not
73
+ * applied.
74
+ *
75
+ * @param target The class prototype (or class, for static members) to retrieve type information for.
76
+ * @param propertyKey The name of the property or function to retrieve type information for.
77
+ */
78
+ export declare function getTypeInfo(target: any, propertyKey: string): any;
@@ -26,6 +26,13 @@ export interface ColumnOptions {
26
26
  primary?: boolean;
27
27
  /** Set to `true` if the column stores a MongoDB `ObjectId` value. */
28
28
  isObjectId?: boolean;
29
+ /**
30
+ * Explicitly declares the SQL column type, overriding the type that would otherwise be inferred from
31
+ * TypeScript's reflected property type. Required whenever the design-time type cannot be reliably inferred,
32
+ * such as nullable/union-typed properties (which TypeScript reflects as `Object`) or properties whose value is
33
+ * a complex/nested structure that has no direct SQL column equivalent (e.g. `"simple-json"`).
34
+ */
35
+ type?: string | Function;
29
36
  }
30
37
  /**
31
38
  * The set of options to use when declaring a persistent class type via the `@Entity` decorator.
@@ -0,0 +1,59 @@
1
+ import { JWTUser } from "@rapidrest/core";
2
+ import { Redis } from "ioredis";
3
+ import Transport from "winston-transport";
4
+ import { type UWSWebSocketShim } from "../http/WebSocket.js";
5
+ /**
6
+ * Implements a Winston transport that pipes incoming log messages to a configured redis pubsub channel.
7
+ */
8
+ export declare class RedisTransport extends Transport {
9
+ private channel;
10
+ private redis;
11
+ constructor(opts: any);
12
+ close(): void;
13
+ log(info: any, next: Function): any;
14
+ }
15
+ /**
16
+ * The `BaseAdminRoute` class provides a base set of endpoints that gives trusted users the ability to perform common adminstrative actions
17
+ * with the server.
18
+ *
19
+ * Exposed endpoints:
20
+ *
21
+ * | Name | HTTP Method | What it does |
22
+ * | --- | --- | --- |
23
+ * | `clearCache` | `GET /<base_path>/clear-cache` | Clears the Redis-based cache system. |
24
+ * | `logs` | `UPGRADE /<base_path>/logs` | Live tail the service logs |
25
+ * | `getReleaseNotes` | `GET /<base_path>/release-notes` | Retrieve the server release notes. |
26
+ * | `restart` | `GET /<base_path>/restart` | ` Restart the server |
27
+ *
28
+ * !!Note!! that the `BaseAdminRoute` is not automatically registered with a server by default. You must create
29
+ * your own class that extends `AdminRoute` and apply the desired base path with `@Route()`.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * import { BaseAdminRoute, RouteDecorators } from "@rapidrest/service-core";
34
+ * const { Route } = RouteDecorators;
35
+ *
36
+ * @Route("/admin")
37
+ * export class AdminRoute extends BaseAdminRoute {}
38
+ * ```
39
+ *
40
+ * @author Jean-Philippe Steinmetz
41
+ */
42
+ export declare class BaseAdminRoute {
43
+ /** A map of user uid's to active sockets. */
44
+ protected activeSockets: Map<string, any[]>;
45
+ protected cacheClient?: Redis;
46
+ protected cacheConnConfig: any;
47
+ protected logger: any;
48
+ protected logsConnConfig: any;
49
+ protected redisClient?: Redis;
50
+ /** The underlying ReleaseNotes specification. */
51
+ protected releaseNotes?: string;
52
+ protected serviceName?: string;
53
+ protected trustedRoles: string[];
54
+ protected init(): Promise<void>;
55
+ clearCache(user?: JWTUser): Promise<void>;
56
+ logs(socket: UWSWebSocketShim, user: JWTUser): Promise<void>;
57
+ getReleaseNotes(user?: JWTUser): string | undefined;
58
+ restart(user?: JWTUser): void;
59
+ }
@@ -0,0 +1,37 @@
1
+ import * as prom from "prom-client";
2
+ import { JWTUser } from "@rapidrest/core";
3
+ /**
4
+ * The `BaseMetricsRoute` class provides a base set of endpoints for exposing Prometheus metrics.
5
+ *
6
+ * Exposed endpoints:
7
+ *
8
+ * | Name | HTTP Method | What it does |
9
+ * | --- | --- | --- |
10
+ * | `getMetrics` | `GET /<base_path>` | Returns all Prometheus metrics gathered by the system |
11
+ * | `getSingleMetric` | `GET /<base_path>/:metric` | Returns a single Prometheus metric with the given name |
12
+ *
13
+ * Services that wish to provide metrics to be exposed via this route can register them using the global registry
14
+ * from the provided `prom-client` dependency. See the `prom-client` documentation for more details.
15
+ *
16
+ * !!Note!! that the `BaseMetricsRoute` is not automatically registered with a server by default. You must create
17
+ * your own class that extends `AdminRoute` and apply the desired base path with `@Route()`.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { BaseMetricsRoute, RouteDecorators } from "@rapidrest/service-core";
22
+ * const { Route } = RouteDecorators;
23
+ *
24
+ * @Route("/metrics")
25
+ * export class MetricsRoute extends BaseMetricsRoute {}
26
+ * ```
27
+ */
28
+ export declare class BaseMetricsRoute {
29
+ protected metricsConfig: {
30
+ authRequired: boolean;
31
+ };
32
+ protected registry: prom.Registry;
33
+ protected trustedRoles: string[];
34
+ constructor();
35
+ getMetrics(user?: JWTUser): Promise<string>;
36
+ getSingleMetric(metric: any, user?: JWTUser): Promise<string>;
37
+ }
@@ -0,0 +1,33 @@
1
+ import { OpenApiSpec } from "../OpenApiSpec.js";
2
+ /**
3
+ * The `BaseOpenAPIRoute` class provides a base set of endpoints exposing the server's OpenAPI specification.
4
+ *
5
+ * Exposed endpoints:
6
+ *
7
+ * | Name | HTTP Method | What it does |
8
+ * | --- | --- | --- |
9
+ * | `getHTML` | `GET /<base_path>` | Swagger UI HTML (loads swagger-ui-dist from CDN) |
10
+ * | `getJSON` | `GET /<base_path>/json` | raw OpenAPI specification as JSON |
11
+ * | `getYAML` | `GET /<base_path>/yaml` | raw OpenAPI specification as YAML |
12
+ *
13
+ * !!Note!! that the `BaseAdminRoute` is not automatically registered with a server by default. You must create
14
+ * your own class that extends `AdminRoute` and apply the desired base path with `@Route()`.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { BaseOpenAPIRoute, RouteDecorators } from "@rapidrest/service-core";
19
+ * const { Route } = RouteDecorators;
20
+ *
21
+ * @Route("/openapi")
22
+ * export class OpenAPIRoute extends BaseOpenAPIRoute {}
23
+ * ```
24
+ *
25
+ * @author Jean-Philippe Steinmetz
26
+ */
27
+ export declare class BaseOpenAPIRoute {
28
+ /** The underlying OpenAPI specification. */
29
+ protected apiSpec: OpenApiSpec;
30
+ getHTML(): string;
31
+ getJSON(): any;
32
+ getYAML(): string;
33
+ }
@@ -0,0 +1,39 @@
1
+ import ws from "ws";
2
+ /**
3
+ * The `BasePushRoute` class provides a base set of endpoints for implement client push notifications.
4
+ *
5
+ * Exposed endpoints:
6
+ *
7
+ * | Name | HTTP Method | What it does |
8
+ * | --- | --- | --- |
9
+ * | `connect` | `UPGRADE /<base_path>/connect` | Establishes a connection to the push notification system. |
10
+ * | `send` | `POST /<base_path>/:id` | Sends a push notification message to the channel with the given id |
11
+ *
12
+ * !!Note!! that the `BasePushRoute` is not automatically registered with a server by default. You must create
13
+ * your own class that extends `AdminRoute` and apply the desired base path with `@Route()`.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { BasePushRoute, RouteDecorators } from "@rapidrest/service-core";
18
+ * const { Route } = RouteDecorators;
19
+ *
20
+ * @Route("/push")
21
+ * export class PushRoute extends BasePushRoute {}
22
+ * ```
23
+ *
24
+ * @author Jean-Philippe Steinmetz
25
+ */
26
+ export declare class BasePushRoute {
27
+ private aclUtils?;
28
+ /** A map of active socket connections to users. */
29
+ private activeSocks;
30
+ /** A map of active subscription uids to users. */
31
+ private activeSubs;
32
+ private logger;
33
+ private redisConfig;
34
+ /** A persistent redis client used to publish outgoing push messages. */
35
+ private redisPub?;
36
+ private init;
37
+ connect(sock: ws, user: any): Promise<void>;
38
+ send(id: string, msg: any, user: any): Promise<void>;
39
+ }
@@ -0,0 +1,37 @@
1
+ import { StatusExtraData } from "../models/StatusExtraData.js";
2
+ /**
3
+ * The `BaseStatusRoute` class provides a base set of endpoints exposing status metadata information about the server.
4
+ *
5
+ * Included Metadata:
6
+ * | Name | Description |
7
+ * | --- | --- |
8
+ * | `name` | The name of the server (e.g. `petstore_example`) |
9
+ * | `time` | The current UTC timestamp of the server |
10
+ * | `version` | The release version of the server. (e.g. `1.0.0`) |
11
+ *
12
+ * Exposed endpoints:
13
+ *
14
+ * | Name | HTTP Method | What it does |
15
+ * | --- | --- | --- |
16
+ * | `get` | `GET /<base_path>` | Returns the server's status metadata |
17
+ *
18
+ * !!Note!! that the `BaseAdminRoute` is not automatically registered with a server by default. You must create
19
+ * your own class that extends `AdminRoute` and apply the desired base path with `@Route()`.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { BaseStatusRoute, RouteDecorators } from "@rapidrest/service-core";
24
+ * const { Route } = RouteDecorators;
25
+ *
26
+ * @Route("/status")
27
+ * export class StatusRoute extends BaseStatusRoute {}
28
+ * ```
29
+ *
30
+ * @author Jean-Philippe Steinmetz
31
+ */
32
+ export declare class BaseStatusRoute {
33
+ protected serviceName: any;
34
+ protected serviceVersion: any;
35
+ protected statusExtraData: StatusExtraData | undefined;
36
+ get(): any;
37
+ }
@@ -13,16 +13,19 @@ import { ModelRoute, UpdateObject } from "./ModelRoute.js";
13
13
  * is enabled these handlers will still validate permissions appropriately.
14
14
  *
15
15
  * Included Endpoints:
16
- * * `count` [`HEAD /`]: Counts the number of objects matching the provided set of criteria in the request's query parameters. Returns the count as the value of the `Content-Length` header.
17
- * * `create` [`POST /`]- Adds one or more new objects to the datastore.
18
- * * `delete` [`DELETE /:id`]: Removes an existing object from the datastore.
19
- * * `exists` [`HEAD /:id`]: Checks if the object with the given ID exists in the datastore. Sets `Content-Length` header to `1` if the object exists, otherwise `0`.
20
- * * `find` [`GET /`]: Returns all objects matching the provided set of criteria in the request's query parameters.
21
- * * `findById` [`GET /:id`]: Returns a single object with a specified unique identifier.
22
- * * `truncate` [`DELETE /`]: Removes all objects from the datastore.
23
- * * `update` [`PUT /:id`]: Modifies an existing object in the datastore.
24
- * * `updateBulk` [`PUT /`]: Modifies multiple existing objects in the datastore.
25
- * * `updateProperty` [`PUT /:id/:property`]: Modifies an single property of the given name of an existing object in the datastore.
16
+ *
17
+ * | Name | HTTP Method | What it does |
18
+ * | --- | --- | --- |
19
+ * | `count` | `HEAD /` | Counts the number of objects matching the provided set of criteria in the request's query parameters. Returns the count as the value of the `Content-Length` header. |
20
+ * | `create` | `POST /` | Adds one or more new objects to the datastore. |
21
+ * | `delete` | `DELETE /:id` | Removes an existing object from the datastore. |
22
+ * | `exists` | `HEAD /:id` | Checks if the object with the given ID exists in the datastore. Sets `Content-Length` header to `1` if the object exists, otherwise `0`. |
23
+ * | `find` | `GET /` | Returns all objects matching the provided set of criteria in the request's query parameters. |
24
+ * | `findById` | `GET /:id` | Returns a single object with a specified unique identifier. |
25
+ * | `truncate` | `DELETE /` | Removes all objects from the datastore. |
26
+ * | `update` | `PUT /:id` | Modifies an existing object in the datastore. |
27
+ * | `updateBulk` | `PUT /` | Modifies multiple existing objects in the datastore. |
28
+ * | `updateProperty` | `PUT /:id/:property` | Modifies an single property of the given name of an existing object in the datastore. |
26
29
  *
27
30
  * @author Jean-Philippe Steinmetz
28
31
  */
@@ -1,7 +1,8 @@
1
- export * from "./AdminRoute.js";
1
+ export * from "./BaseAdminRoute.js";
2
+ export * from "./BaseMetricsRoute.js";
3
+ export * from "./BaseOpenAPIRoute.js";
4
+ export * from "./BasePushRoute.js";
5
+ export * from "./BaseStatusRoute.js";
2
6
  export * from "./CRUDRoute.js";
3
- export * from "./MetricsRoute.js";
4
7
  export * from "./ModelRoute.js";
5
- export * from "./OpenAPIRoute.js";
6
8
  export * from "./RouteUtils.js";
7
- export * from "./StatusRoute.js";
@@ -45,7 +45,7 @@ export declare class ACLUtils {
45
45
  * @param entityId The unique identifier of the ACL to retrieve.
46
46
  * @param parentUids The list of already found parent UIDs. This is used to break circular dependencies.
47
47
  */
48
- findACL(entityId: string, parentUids?: string[], reqCache?: Map<string, AccessControlList | null>): Promise<AccessControlList | null>;
48
+ findACL(entityId: string, parentUids?: string[], reqCache?: Map<string, AccessControlList | undefined>): Promise<AccessControlList | undefined>;
49
49
  /**
50
50
  * Deletes the ACL with the given identifier from the database.
51
51
  * @param uid The unique identifier of the ACL to remove.
@@ -90,7 +90,7 @@ export interface AccessControlList {
90
90
  /**
91
91
  * The parent access control list that this instance inherits permissions from.
92
92
  */
93
- parent?: AccessControlList | null;
93
+ parent?: AccessControlList;
94
94
  /**
95
95
  * The universally unique identifier of the parent `AccessControlList` that this object will inherit permissions
96
96
  * from.
@@ -18,7 +18,7 @@ export declare class ACLRecordMongo implements ACLRecord {
18
18
  */
19
19
  export declare class AccessControlListMongo extends BaseMongoEntity implements AccessControlList {
20
20
  parent?: AccessControlList;
21
- parentUid?: string | undefined;
21
+ parentUid?: string;
22
22
  records: ACLRecordMongo[];
23
23
  constructor(other?: any);
24
24
  }
@@ -18,7 +18,7 @@ export declare class ACLRecordSQL implements ACLRecord {
18
18
  */
19
19
  export declare class AccessControlListSQL extends BaseEntity implements AccessControlList {
20
20
  parent?: AccessControlList;
21
- parentUid?: string | undefined;
21
+ parentUid?: string;
22
22
  records: ACLRecordSQL[];
23
23
  constructor(other?: any);
24
24
  }