@rapidrest/service-core 1.0.0-beta.1

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 (332) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +16 -0
  3. package/dist/lib/ApiErrors.js +41 -0
  4. package/dist/lib/ApiErrors.js.map +1 -0
  5. package/dist/lib/BackgroundService.js +16 -0
  6. package/dist/lib/BackgroundService.js.map +1 -0
  7. package/dist/lib/BackgroundServiceManager.js +135 -0
  8. package/dist/lib/BackgroundServiceManager.js.map +1 -0
  9. package/dist/lib/BulkError.js +24 -0
  10. package/dist/lib/BulkError.js.map +1 -0
  11. package/dist/lib/EventListenerManager.js +161 -0
  12. package/dist/lib/EventListenerManager.js.map +1 -0
  13. package/dist/lib/NetUtils.js +103 -0
  14. package/dist/lib/NetUtils.js.map +1 -0
  15. package/dist/lib/NotificationUtils.js +34 -0
  16. package/dist/lib/NotificationUtils.js.map +1 -0
  17. package/dist/lib/ObjectFactory.js +90 -0
  18. package/dist/lib/ObjectFactory.js.map +1 -0
  19. package/dist/lib/OpenApiSpec.js +748 -0
  20. package/dist/lib/OpenApiSpec.js.map +1 -0
  21. package/dist/lib/Server.js +549 -0
  22. package/dist/lib/Server.js.map +1 -0
  23. package/dist/lib/Types.js +2 -0
  24. package/dist/lib/Types.js.map +1 -0
  25. package/dist/lib/auth/AuthMiddleware.js +229 -0
  26. package/dist/lib/auth/AuthMiddleware.js.map +1 -0
  27. package/dist/lib/auth/AuthStrategy.js +2 -0
  28. package/dist/lib/auth/AuthStrategy.js.map +1 -0
  29. package/dist/lib/auth/BasicStrategy.js +106 -0
  30. package/dist/lib/auth/BasicStrategy.js.map +1 -0
  31. package/dist/lib/auth/JWTStrategy.js +161 -0
  32. package/dist/lib/auth/JWTStrategy.js.map +1 -0
  33. package/dist/lib/auth/index.js +5 -0
  34. package/dist/lib/auth/index.js.map +1 -0
  35. package/dist/lib/database/ConnectionKinds.js +14 -0
  36. package/dist/lib/database/ConnectionKinds.js.map +1 -0
  37. package/dist/lib/database/ConnectionManager.js +161 -0
  38. package/dist/lib/database/ConnectionManager.js.map +1 -0
  39. package/dist/lib/database/MongoConnection.js +86 -0
  40. package/dist/lib/database/MongoConnection.js.map +1 -0
  41. package/dist/lib/database/MongoRepository.js +136 -0
  42. package/dist/lib/database/MongoRepository.js.map +1 -0
  43. package/dist/lib/database/MongoSchemaSync.js +136 -0
  44. package/dist/lib/database/MongoSchemaSync.js.map +1 -0
  45. package/dist/lib/database/NamingUtils.js +52 -0
  46. package/dist/lib/database/NamingUtils.js.map +1 -0
  47. package/dist/lib/database/TypeOrmSupport.js +146 -0
  48. package/dist/lib/database/TypeOrmSupport.js.map +1 -0
  49. package/dist/lib/database/index.js +7 -0
  50. package/dist/lib/database/index.js.map +1 -0
  51. package/dist/lib/decorators/DatabaseDecorators.js +52 -0
  52. package/dist/lib/decorators/DatabaseDecorators.js.map +1 -0
  53. package/dist/lib/decorators/DocDecorators.js +120 -0
  54. package/dist/lib/decorators/DocDecorators.js.map +1 -0
  55. package/dist/lib/decorators/EventDecorators.js +24 -0
  56. package/dist/lib/decorators/EventDecorators.js.map +1 -0
  57. package/dist/lib/decorators/ModelDecorators.js +173 -0
  58. package/dist/lib/decorators/ModelDecorators.js.map +1 -0
  59. package/dist/lib/decorators/PersistenceDecorators.js +177 -0
  60. package/dist/lib/decorators/PersistenceDecorators.js.map +1 -0
  61. package/dist/lib/decorators/RouteDecorators.js +324 -0
  62. package/dist/lib/decorators/RouteDecorators.js.map +1 -0
  63. package/dist/lib/decorators/index.js +7 -0
  64. package/dist/lib/decorators/index.js.map +1 -0
  65. package/dist/lib/http/Adapters.js +230 -0
  66. package/dist/lib/http/Adapters.js.map +1 -0
  67. package/dist/lib/http/Router.js +403 -0
  68. package/dist/lib/http/Router.js.map +1 -0
  69. package/dist/lib/http/WebSocket.js +82 -0
  70. package/dist/lib/http/WebSocket.js.map +1 -0
  71. package/dist/lib/http/index.js +4 -0
  72. package/dist/lib/http/index.js.map +1 -0
  73. package/dist/lib/http/types.js +5 -0
  74. package/dist/lib/http/types.js.map +1 -0
  75. package/dist/lib/index.js +18 -0
  76. package/dist/lib/index.js.map +1 -0
  77. package/dist/lib/models/BaseEntity.js +83 -0
  78. package/dist/lib/models/BaseEntity.js.map +1 -0
  79. package/dist/lib/models/BaseMongoEntity.js +40 -0
  80. package/dist/lib/models/BaseMongoEntity.js.map +1 -0
  81. package/dist/lib/models/ModelUtils.js +645 -0
  82. package/dist/lib/models/ModelUtils.js.map +1 -0
  83. package/dist/lib/models/RecoverableBaseEntity.js +39 -0
  84. package/dist/lib/models/RecoverableBaseEntity.js.map +1 -0
  85. package/dist/lib/models/RecoverableBaseMongoEntity.js +40 -0
  86. package/dist/lib/models/RecoverableBaseMongoEntity.js.map +1 -0
  87. package/dist/lib/models/RepoUtils.js +717 -0
  88. package/dist/lib/models/RepoUtils.js.map +1 -0
  89. package/dist/lib/models/SimpleEntity.js +42 -0
  90. package/dist/lib/models/SimpleEntity.js.map +1 -0
  91. package/dist/lib/models/SimpleMongoEntity.js +38 -0
  92. package/dist/lib/models/SimpleMongoEntity.js.map +1 -0
  93. package/dist/lib/models/StatusExtraData.js +15 -0
  94. package/dist/lib/models/StatusExtraData.js.map +1 -0
  95. package/dist/lib/models/index.js +10 -0
  96. package/dist/lib/models/index.js.map +1 -0
  97. package/dist/lib/routes/AdminRoute.js +268 -0
  98. package/dist/lib/routes/AdminRoute.js.map +1 -0
  99. package/dist/lib/routes/MetricsRoute.js +86 -0
  100. package/dist/lib/routes/MetricsRoute.js.map +1 -0
  101. package/dist/lib/routes/ModelRoute.js +481 -0
  102. package/dist/lib/routes/ModelRoute.js.map +1 -0
  103. package/dist/lib/routes/OpenAPIRoute.js +115 -0
  104. package/dist/lib/routes/OpenAPIRoute.js.map +1 -0
  105. package/dist/lib/routes/RouteUtils.js +445 -0
  106. package/dist/lib/routes/RouteUtils.js.map +1 -0
  107. package/dist/lib/routes/StatusRoute.js +55 -0
  108. package/dist/lib/routes/StatusRoute.js.map +1 -0
  109. package/dist/lib/routes/index.js +7 -0
  110. package/dist/lib/routes/index.js.map +1 -0
  111. package/dist/lib/security/ACLRouteMongo.js +194 -0
  112. package/dist/lib/security/ACLRouteMongo.js.map +1 -0
  113. package/dist/lib/security/ACLRouteSQL.js +193 -0
  114. package/dist/lib/security/ACLRouteSQL.js.map +1 -0
  115. package/dist/lib/security/ACLUtils.js +457 -0
  116. package/dist/lib/security/ACLUtils.js.map +1 -0
  117. package/dist/lib/security/AccessControlList.js +18 -0
  118. package/dist/lib/security/AccessControlList.js.map +1 -0
  119. package/dist/lib/security/AccessControlListMongo.js +155 -0
  120. package/dist/lib/security/AccessControlListMongo.js.map +1 -0
  121. package/dist/lib/security/AccessControlListSQL.js +149 -0
  122. package/dist/lib/security/AccessControlListSQL.js.map +1 -0
  123. package/dist/lib/security/index.js +3 -0
  124. package/dist/lib/security/index.js.map +1 -0
  125. package/dist/lib/test/index.js +3 -0
  126. package/dist/lib/test/index.js.map +1 -0
  127. package/dist/lib/test/request.js +99 -0
  128. package/dist/lib/test/request.js.map +1 -0
  129. package/dist/lib/test/requestws.js +173 -0
  130. package/dist/lib/test/requestws.js.map +1 -0
  131. package/dist/types/ApiErrors.d.ts +38 -0
  132. package/dist/types/BackgroundService.d.ts +30 -0
  133. package/dist/types/BackgroundServiceManager.d.ts +66 -0
  134. package/dist/types/BulkError.d.ts +11 -0
  135. package/dist/types/EventListenerManager.d.ts +36 -0
  136. package/dist/types/NetUtils.d.ts +29 -0
  137. package/dist/types/NotificationUtils.d.ts +25 -0
  138. package/dist/types/ObjectFactory.d.ts +17 -0
  139. package/dist/types/OpenApiSpec.d.ts +114 -0
  140. package/dist/types/Server.d.ts +180 -0
  141. package/dist/types/Types.d.ts +8 -0
  142. package/dist/types/auth/AuthMiddleware.d.ts +42 -0
  143. package/dist/types/auth/AuthStrategy.d.ts +32 -0
  144. package/dist/types/auth/BasicStrategy.d.ts +33 -0
  145. package/dist/types/auth/JWTStrategy.d.ts +61 -0
  146. package/dist/types/auth/index.d.ts +4 -0
  147. package/dist/types/database/ConnectionKinds.d.ts +7 -0
  148. package/dist/types/database/ConnectionManager.d.ts +35 -0
  149. package/dist/types/database/MongoConnection.d.ts +54 -0
  150. package/dist/types/database/MongoRepository.d.ts +92 -0
  151. package/dist/types/database/MongoSchemaSync.d.ts +41 -0
  152. package/dist/types/database/NamingUtils.d.ts +24 -0
  153. package/dist/types/database/TypeOrmSupport.d.ts +20 -0
  154. package/dist/types/database/index.d.ts +6 -0
  155. package/dist/types/decorators/DatabaseDecorators.d.ts +18 -0
  156. package/dist/types/decorators/DocDecorators.d.ts +69 -0
  157. package/dist/types/decorators/EventDecorators.d.ts +12 -0
  158. package/dist/types/decorators/ModelDecorators.d.ts +80 -0
  159. package/dist/types/decorators/PersistenceDecorators.d.ts +117 -0
  160. package/dist/types/decorators/RouteDecorators.d.ts +172 -0
  161. package/dist/types/decorators/index.d.ts +6 -0
  162. package/dist/types/http/Adapters.d.ts +68 -0
  163. package/dist/types/http/Router.d.ts +99 -0
  164. package/dist/types/http/WebSocket.d.ts +56 -0
  165. package/dist/types/http/index.d.ts +6 -0
  166. package/dist/types/http/types.d.ts +54 -0
  167. package/dist/types/index.d.ts +17 -0
  168. package/dist/types/models/BaseEntity.d.ts +29 -0
  169. package/dist/types/models/BaseMongoEntity.d.ts +13 -0
  170. package/dist/types/models/ModelUtils.d.ts +166 -0
  171. package/dist/types/models/RecoverableBaseEntity.d.ts +16 -0
  172. package/dist/types/models/RecoverableBaseMongoEntity.d.ts +16 -0
  173. package/dist/types/models/RepoUtils.d.ts +154 -0
  174. package/dist/types/models/SimpleEntity.d.ts +14 -0
  175. package/dist/types/models/SimpleMongoEntity.d.ts +15 -0
  176. package/dist/types/models/StatusExtraData.d.ts +6 -0
  177. package/dist/types/models/index.d.ts +9 -0
  178. package/dist/types/routes/AdminRoute.d.ts +47 -0
  179. package/dist/types/routes/MetricsRoute.d.ts +15 -0
  180. package/dist/types/routes/ModelRoute.d.ts +226 -0
  181. package/dist/types/routes/OpenAPIRoute.d.ts +17 -0
  182. package/dist/types/routes/RouteUtils.d.ts +55 -0
  183. package/dist/types/routes/StatusRoute.d.ts +11 -0
  184. package/dist/types/routes/index.d.ts +6 -0
  185. package/dist/types/security/ACLRouteMongo.d.ts +19 -0
  186. package/dist/types/security/ACLRouteSQL.d.ts +19 -0
  187. package/dist/types/security/ACLUtils.d.ts +94 -0
  188. package/dist/types/security/AccessControlList.d.ts +103 -0
  189. package/dist/types/security/AccessControlListMongo.d.ts +24 -0
  190. package/dist/types/security/AccessControlListSQL.d.ts +24 -0
  191. package/dist/types/security/index.d.ts +2 -0
  192. package/dist/types/test/index.d.ts +2 -0
  193. package/dist/types/test/request.d.ts +24 -0
  194. package/dist/types/test/requestws.d.ts +21 -0
  195. package/docs/Makefile +20 -0
  196. package/docs/conf.py +58 -0
  197. package/docs/index.rst +17 -0
  198. package/docs/make.bat +35 -0
  199. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/README.md +13 -0
  200. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/MongoRepository.md +25 -0
  201. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/RedisConnection.md +25 -0
  202. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/Repository.md +25 -0
  203. package/docs/reference/@rapidrest/namespaces/DocDecorators/README.md +23 -0
  204. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Default.md +25 -0
  205. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Description.md +25 -0
  206. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Document.md +25 -0
  207. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Example.md +25 -0
  208. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Format.md +25 -0
  209. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Returns.md +28 -0
  210. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Summary.md +25 -0
  211. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Tags.md +25 -0
  212. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/TypeInfo.md +28 -0
  213. package/docs/reference/@rapidrest/namespaces/DocDecorators/interfaces/DocumentsData.md +57 -0
  214. package/docs/reference/@rapidrest/namespaces/EventDecorators/README.md +12 -0
  215. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/EventListener.md +17 -0
  216. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/OnEvent.md +26 -0
  217. package/docs/reference/@rapidrest/namespaces/ModelDecorators/README.md +26 -0
  218. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Cache.md +25 -0
  219. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/ChildEntity.md +18 -0
  220. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/DataStore.md +25 -0
  221. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Identifier.md +27 -0
  222. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Protect.md +35 -0
  223. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Reference.md +25 -0
  224. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Shard.md +27 -0
  225. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/TrackChanges.md +26 -0
  226. package/docs/reference/@rapidrest/namespaces/ModelDecorators/interfaces/PendingTypeOrmColumn.md +45 -0
  227. package/docs/reference/@rapidrest/namespaces/ModelDecorators/variables/pendingTypeOrmColumns.md +14 -0
  228. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/README.md +25 -0
  229. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Column.md +25 -0
  230. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Entity.md +26 -0
  231. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Index.md +119 -0
  232. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/PrimaryColumn.md +25 -0
  233. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Unique.md +68 -0
  234. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getColumnMetadata.md +26 -0
  235. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getEntityName.md +26 -0
  236. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getIndexMetadata.md +27 -0
  237. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnInfo.md +41 -0
  238. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnOptions.md +51 -0
  239. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexInfo.md +41 -0
  240. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexOptions.md +51 -0
  241. package/docs/reference/@rapidrest/namespaces/RouteDecorators/README.md +36 -0
  242. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/After.md +26 -0
  243. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Auth.md +33 -0
  244. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/AuthResult.md +31 -0
  245. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Before.md +25 -0
  246. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/ContentType.md +25 -0
  247. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Delete.md +25 -0
  248. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Get.md +25 -0
  249. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Head.md +25 -0
  250. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Header.md +25 -0
  251. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Method.md +31 -0
  252. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Model.md +25 -0
  253. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Options.md +25 -0
  254. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Param.md +26 -0
  255. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Patch.md +25 -0
  256. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Post.md +25 -0
  257. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Protect.md +31 -0
  258. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Put.md +25 -0
  259. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Query.md +26 -0
  260. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Request.md +31 -0
  261. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/RequiresRole.md +26 -0
  262. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Response.md +31 -0
  263. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Route.md +25 -0
  264. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Socket.md +33 -0
  265. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/User.md +31 -0
  266. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Validate.md +25 -0
  267. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/WebSocket.md +25 -0
  268. package/docs/reference/README.md +20 -0
  269. package/docs/reference/classes/ACLUtils.md +251 -0
  270. package/docs/reference/classes/AdminRoute.md +51 -0
  271. package/docs/reference/classes/AuthMiddleware.md +131 -0
  272. package/docs/reference/classes/BackgroundService.md +117 -0
  273. package/docs/reference/classes/BackgroundServiceManager.md +172 -0
  274. package/docs/reference/classes/BaseEntity.md +82 -0
  275. package/docs/reference/classes/BaseMongoEntity.md +107 -0
  276. package/docs/reference/classes/BasicStrategy.md +89 -0
  277. package/docs/reference/classes/BasicStrategyOptions.md +91 -0
  278. package/docs/reference/classes/BulkError.md +271 -0
  279. package/docs/reference/classes/ConnectionManager.md +75 -0
  280. package/docs/reference/classes/EventListenerManager.md +88 -0
  281. package/docs/reference/classes/JWTStrategy.md +77 -0
  282. package/docs/reference/classes/JWTStrategyOptions.md +97 -0
  283. package/docs/reference/classes/MetricsRoute.md +27 -0
  284. package/docs/reference/classes/ModelRoute.md +527 -0
  285. package/docs/reference/classes/ModelUtils.md +448 -0
  286. package/docs/reference/classes/MongoConnection.md +218 -0
  287. package/docs/reference/classes/MongoRepository.md +354 -0
  288. package/docs/reference/classes/MongoSchemaSync.md +67 -0
  289. package/docs/reference/classes/NetUtils.md +90 -0
  290. package/docs/reference/classes/NotificationUtils.md +77 -0
  291. package/docs/reference/classes/ObjectFactory.md +336 -0
  292. package/docs/reference/classes/OpenAPIRoute.md +77 -0
  293. package/docs/reference/classes/OpenApiSpec.md +892 -0
  294. package/docs/reference/classes/RecoverableBaseEntity.md +114 -0
  295. package/docs/reference/classes/RecoverableBaseMongoEntity.md +124 -0
  296. package/docs/reference/classes/RedisTransport.md +2202 -0
  297. package/docs/reference/classes/RepoUtils.md +486 -0
  298. package/docs/reference/classes/RouteUtils.md +191 -0
  299. package/docs/reference/classes/Server.md +408 -0
  300. package/docs/reference/classes/SimpleEntity.md +48 -0
  301. package/docs/reference/classes/SimpleMongoEntity.md +66 -0
  302. package/docs/reference/classes/StatusExtraData.md +57 -0
  303. package/docs/reference/classes/StatusRoute.md +26 -0
  304. package/docs/reference/enumerations/ACLAction.md +63 -0
  305. package/docs/reference/enumerations/ApiErrorMessages.md +123 -0
  306. package/docs/reference/enumerations/ApiErrors.md +123 -0
  307. package/docs/reference/functions/isSqlDataSource.md +26 -0
  308. package/docs/reference/functions/resolveCollectionName.md +33 -0
  309. package/docs/reference/functions/snakeCase.md +28 -0
  310. package/docs/reference/globals.md +91 -0
  311. package/docs/reference/interfaces/ACLRecord.md +96 -0
  312. package/docs/reference/interfaces/AccessControlList.md +76 -0
  313. package/docs/reference/interfaces/AuthResult.md +55 -0
  314. package/docs/reference/interfaces/AuthStrategy.md +57 -0
  315. package/docs/reference/interfaces/CreateRequestOptions.md +121 -0
  316. package/docs/reference/interfaces/DeleteRequestOptions.md +147 -0
  317. package/docs/reference/interfaces/FindRequestOptions.md +133 -0
  318. package/docs/reference/interfaces/JWTAuthResult.md +84 -0
  319. package/docs/reference/interfaces/RepoCreateOptions.md +95 -0
  320. package/docs/reference/interfaces/RepoDeleteOptions.md +115 -0
  321. package/docs/reference/interfaces/RepoFindOptions.md +135 -0
  322. package/docs/reference/interfaces/RepoOperationOptions.md +69 -0
  323. package/docs/reference/interfaces/RepoUpdateOptions.md +111 -0
  324. package/docs/reference/interfaces/RequestOptions.md +112 -0
  325. package/docs/reference/interfaces/TruncateRequestOptions.md +175 -0
  326. package/docs/reference/interfaces/UpdateRequestOptions.md +149 -0
  327. package/docs/reference/type-aliases/OneOrMany.md +19 -0
  328. package/docs/reference/type-aliases/OneOrNull.md +19 -0
  329. package/docs/reference/type-aliases/PartialBaseEntity.md +17 -0
  330. package/docs/reference/type-aliases/PartialSimpleEntity.md +17 -0
  331. package/docs/reference/type-aliases/UpdateObject.md +19 -0
  332. package/package.json +125 -0
@@ -0,0 +1,27 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / MetricsRoute
6
+
7
+ # Class: MetricsRoute
8
+
9
+ Defined in: [src/routes/MetricsRoute.ts:19](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/MetricsRoute.ts#L19)
10
+
11
+ Handles all REST API requests for the endpoint `/metrics'. This route handler produces Prometheus compatible metrics
12
+ for use with a Prometheus based server.
13
+
14
+ Services that wish to provide metrics to be exposed via this route can register them using the global registry
15
+ from the provided `prom-client` dependency. See the `prom-client` documentation for more details.
16
+
17
+ ## Constructors
18
+
19
+ ### Constructor
20
+
21
+ > **new MetricsRoute**(): `MetricsRoute`
22
+
23
+ Defined in: [src/routes/MetricsRoute.ts:30](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/MetricsRoute.ts#L30)
24
+
25
+ #### Returns
26
+
27
+ `MetricsRoute`
@@ -0,0 +1,527 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / ModelRoute
6
+
7
+ # Abstract Class: ModelRoute\<T\>
8
+
9
+ Defined in: [src/routes/ModelRoute.ts:117](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L117)
10
+
11
+ The `ModelRoute` is an abstract base class that provides a set of built-in route behavior functions for handling
12
+ requests for a given data model that is managed by a persistent datastore.
13
+
14
+ Provided behaviors:
15
+ * `count` - Counts the number of objects matching the provided set of criteria in the request's query parameters.
16
+ * `create` - Adds a new object to the datastore.
17
+ * `delete` - Removes an existing object from the datastore.
18
+ * `find` - Finds all objects matching the provided set of criteria in the request's query parameters.
19
+ * `findById` - Finds a single object with a specified unique identifier.
20
+ * `truncate` - Removes all objects from the datastore.
21
+ * `update` - Modifies an existing object in the datastore.
22
+
23
+ ## Author
24
+
25
+ Jean-Philippe Steinmetz
26
+
27
+ ## Type Parameters
28
+
29
+ ### T
30
+
31
+ `T` *extends* [`BaseEntity`](BaseEntity.md) \| [`SimpleEntity`](SimpleEntity.md)
32
+
33
+ ## Constructors
34
+
35
+ ### Constructor
36
+
37
+ > **new ModelRoute**\<`T`\>(): `ModelRoute`\<`T`\>
38
+
39
+ #### Returns
40
+
41
+ `ModelRoute`\<`T`\>
42
+
43
+ ## Properties
44
+
45
+ ### aclUtils?
46
+
47
+ > `protected` `optional` **aclUtils?**: [`ACLUtils`](ACLUtils.md)
48
+
49
+ Defined in: [src/routes/ModelRoute.ts:119](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L119)
50
+
51
+ ***
52
+
53
+ ### cacheClient?
54
+
55
+ > `protected` `optional` **cacheClient?**: `Redis`
56
+
57
+ Defined in: [src/routes/ModelRoute.ts:123](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L123)
58
+
59
+ The redis client that will be used as a 2nd level cache for all cacheable models.
60
+
61
+ ***
62
+
63
+ ### config?
64
+
65
+ > `protected` `optional` **config?**: `any`
66
+
67
+ Defined in: [src/routes/ModelRoute.ts:127](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L127)
68
+
69
+ The global application configuration.
70
+
71
+ ***
72
+
73
+ ### defaultACLUid
74
+
75
+ > `protected` **defaultACLUid**: `string` = `""`
76
+
77
+ Defined in: [src/routes/ModelRoute.ts:130](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L130)
78
+
79
+ The unique identifier of the default ACL for the model type.
80
+
81
+ ***
82
+
83
+ ### logger
84
+
85
+ > `protected` **logger**: `any`
86
+
87
+ Defined in: [src/routes/ModelRoute.ts:133](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L133)
88
+
89
+ ***
90
+
91
+ ### notificationUtils?
92
+
93
+ > `protected` `optional` **notificationUtils?**: [`NotificationUtils`](NotificationUtils.md)
94
+
95
+ Defined in: [src/routes/ModelRoute.ts:136](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L136)
96
+
97
+ ***
98
+
99
+ ### objectFactory?
100
+
101
+ > `protected` `optional` **objectFactory?**: [`ObjectFactory`](ObjectFactory.md)
102
+
103
+ Defined in: [src/routes/ModelRoute.ts:139](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L139)
104
+
105
+ ***
106
+
107
+ ### repoUtils?
108
+
109
+ > `protected` `optional` **repoUtils?**: [`RepoUtils`](RepoUtils.md)\<`T`\>
110
+
111
+ Defined in: [src/routes/ModelRoute.ts:145](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L145)
112
+
113
+ The repository utility class to use for common operations.
114
+
115
+ ***
116
+
117
+ ### repoUtilsClass
118
+
119
+ > `abstract` `protected` `readonly` **repoUtilsClass**: `any`
120
+
121
+ Defined in: [src/routes/ModelRoute.ts:142](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L142)
122
+
123
+ The class of the RepoUtils to use when instantiating the utility.
124
+
125
+ ***
126
+
127
+ ### trackChanges
128
+
129
+ > `protected` **trackChanges**: `number` = `0`
130
+
131
+ Defined in: [src/routes/ModelRoute.ts:151](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L151)
132
+
133
+ The number of previous document versions to store in the database. A negative value indicates storing all
134
+ versions, a value of `0` stores no versions.
135
+
136
+ ***
137
+
138
+ ### trustedRoles
139
+
140
+ > `protected` **trustedRoles**: `string`[]
141
+
142
+ Defined in: [src/routes/ModelRoute.ts:154](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L154)
143
+
144
+ ## Accessors
145
+
146
+ ### modelClass
147
+
148
+ #### Get Signature
149
+
150
+ > **get** `protected` **modelClass**(): `any`
151
+
152
+ Defined in: [src/routes/ModelRoute.ts:159](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L159)
153
+
154
+ The class type of the model this route is associated with.
155
+
156
+ ##### Returns
157
+
158
+ `any`
159
+
160
+ ## Methods
161
+
162
+ ### doBulkCreate()
163
+
164
+ > `protected` **doBulkCreate**(`objs`, `options`): `Promise`\<`T`[]\>
165
+
166
+ Defined in: [src/routes/ModelRoute.ts:258](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L258)
167
+
168
+ Attempts to store a collection of objects provided in `options.req.body` into the datastore. Upon success, sets the newly persisted
169
+ object(s) to the `result` property of the `options.res` argument, otherwise sends a `400 BAD REQUEST` response to the
170
+ client.
171
+
172
+ #### Parameters
173
+
174
+ ##### objs
175
+
176
+ `Partial`\<`T`\>[]
177
+
178
+ The object(s) to store in the database.
179
+
180
+ ##### options
181
+
182
+ [`CreateRequestOptions`](../interfaces/CreateRequestOptions.md)
183
+
184
+ The options to process the request using.
185
+
186
+ #### Returns
187
+
188
+ `Promise`\<`T`[]\>
189
+
190
+ ***
191
+
192
+ ### doBulkUpdate()
193
+
194
+ > `protected` **doBulkUpdate**(`objs`, `options`): `Promise`\<`T`[]\>
195
+
196
+ Defined in: [src/routes/ModelRoute.ts:517](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L517)
197
+
198
+ Attempts to modify a collection of existing data model objects.
199
+
200
+ #### Parameters
201
+
202
+ ##### objs
203
+
204
+ [`UpdateObject`](../type-aliases/UpdateObject.md)\<`T`\>[]
205
+
206
+ The object(s) to bulk update in the database.
207
+
208
+ ##### options
209
+
210
+ [`UpdateRequestOptions`](../interfaces/UpdateRequestOptions.md)\<`T`\>
211
+
212
+ The options to process the request using.
213
+
214
+ #### Returns
215
+
216
+ `Promise`\<`T`[]\>
217
+
218
+ ***
219
+
220
+ ### doCount()
221
+
222
+ > `protected` **doCount**(`options`): `Promise`\<`HttpResponse`\>
223
+
224
+ Defined in: [src/routes/ModelRoute.ts:191](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L191)
225
+
226
+ Attempts to retrieve the number of data model objects matching the given set of criteria as specified in the
227
+ request `query`. Any results that have been found are set to the `content-length` header of the `res` argument.
228
+
229
+ #### Parameters
230
+
231
+ ##### options
232
+
233
+ [`FindRequestOptions`](../interfaces/FindRequestOptions.md)
234
+
235
+ The options to process the request using.
236
+
237
+ #### Returns
238
+
239
+ `Promise`\<`HttpResponse`\>
240
+
241
+ ***
242
+
243
+ ### doCreate()
244
+
245
+ > `protected` **doCreate**(`obj`, `options`): `Promise`\<`T` \| `T`[]\>
246
+
247
+ Defined in: [src/routes/ModelRoute.ts:288](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L288)
248
+
249
+ Attempts to store one or more objects provided in `options.req.body` into the datastore. Upon success, sets the newly persisted
250
+ object(s) to the `result` property of the `options.res` argument, otherwise sends a `400 BAD REQUEST` response to the
251
+ client.
252
+
253
+ #### Parameters
254
+
255
+ ##### obj
256
+
257
+ `Partial`\<`T`\> \| `Partial`\<`T`\>[]
258
+
259
+ The object(s) to store in the database.
260
+
261
+ ##### options
262
+
263
+ [`CreateRequestOptions`](../interfaces/CreateRequestOptions.md)
264
+
265
+ The options to process the request using.
266
+
267
+ #### Returns
268
+
269
+ `Promise`\<`T` \| `T`[]\>
270
+
271
+ ***
272
+
273
+ ### doCreateObject()
274
+
275
+ > `protected` **doCreateObject**(`obj`, `options`): `Promise`\<`T`\>
276
+
277
+ Defined in: [src/routes/ModelRoute.ts:228](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L228)
278
+
279
+ Attempts to store an object provided in `options.req.body` into the datastore. Upon success, sets the newly persisted
280
+ object(s) to the `result` property of the `options.res` argument, otherwise sends a `400 BAD REQUEST` response to the
281
+ client.
282
+
283
+ #### Parameters
284
+
285
+ ##### obj
286
+
287
+ `Partial`\<`T`\>
288
+
289
+ The object to store in the database.
290
+
291
+ ##### options
292
+
293
+ [`CreateRequestOptions`](../interfaces/CreateRequestOptions.md)
294
+
295
+ The options to process the request using.
296
+
297
+ #### Returns
298
+
299
+ `Promise`\<`T`\>
300
+
301
+ ***
302
+
303
+ ### doDelete()
304
+
305
+ > `protected` **doDelete**(`id`, `options`): `Promise`\<`void`\>
306
+
307
+ Defined in: [src/routes/ModelRoute.ts:313](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L313)
308
+
309
+ Attempts to delete an existing data model object with a given unique identifier encoded by the URI parameter
310
+ `id`.
311
+
312
+ #### Parameters
313
+
314
+ ##### id
315
+
316
+ `string`
317
+
318
+ The unique identifier of the object to delete.
319
+
320
+ ##### options
321
+
322
+ [`DeleteRequestOptions`](../interfaces/DeleteRequestOptions.md)
323
+
324
+ The options to process the request using.
325
+
326
+ #### Returns
327
+
328
+ `Promise`\<`void`\>
329
+
330
+ ***
331
+
332
+ ### doExists()
333
+
334
+ > `protected` **doExists**(`id`, `options`): `Promise`\<`any`\>
335
+
336
+ Defined in: [src/routes/ModelRoute.ts:359](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L359)
337
+
338
+ Attempts to determine if an existing object with the given unique identifier exists.
339
+
340
+ #### Parameters
341
+
342
+ ##### id
343
+
344
+ `string`
345
+
346
+ The unique identifier of the object to verify exists.
347
+
348
+ ##### options
349
+
350
+ [`FindRequestOptions`](../interfaces/FindRequestOptions.md)
351
+
352
+ The options to process the request using.
353
+
354
+ #### Returns
355
+
356
+ `Promise`\<`any`\>
357
+
358
+ ***
359
+
360
+ ### doFindAll()
361
+
362
+ > `protected` **doFindAll**(`options`): `Promise`\<`T`[]\>
363
+
364
+ Defined in: [src/routes/ModelRoute.ts:400](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L400)
365
+
366
+ Attempts to retrieve all data model objects matching the given set of criteria as specified in the request
367
+ `query`. Any results that have been found are set to the `result` property of the `res` argument. `result` is
368
+ never null.
369
+
370
+ #### Parameters
371
+
372
+ ##### options
373
+
374
+ [`FindRequestOptions`](../interfaces/FindRequestOptions.md)
375
+
376
+ The options to process the request using.
377
+
378
+ #### Returns
379
+
380
+ `Promise`\<`T`[]\>
381
+
382
+ ***
383
+
384
+ ### doFindById()
385
+
386
+ > `protected` **doFindById**(`id`, `options`): `Promise`\<`T` \| `null`\>
387
+
388
+ Defined in: [src/routes/ModelRoute.ts:435](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L435)
389
+
390
+ Attempts to retrieve a single data model object as identified by the `id` parameter in the URI.
391
+
392
+ #### Parameters
393
+
394
+ ##### id
395
+
396
+ `string`
397
+
398
+ ##### options
399
+
400
+ [`FindRequestOptions`](../interfaces/FindRequestOptions.md)
401
+
402
+ The options to process the request using.
403
+
404
+ #### Returns
405
+
406
+ `Promise`\<`T` \| `null`\>
407
+
408
+ ***
409
+
410
+ ### doTruncate()
411
+
412
+ > `protected` **doTruncate**(`options`): `Promise`\<`void`\>
413
+
414
+ Defined in: [src/routes/ModelRoute.ts:477](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L477)
415
+
416
+ Attempts to remove all entries of the data model type from the datastore matching the given
417
+ parameters and query.
418
+
419
+ #### Parameters
420
+
421
+ ##### options
422
+
423
+ [`TruncateRequestOptions`](../interfaces/TruncateRequestOptions.md)
424
+
425
+ The options to process the request using.
426
+
427
+ #### Returns
428
+
429
+ `Promise`\<`void`\>
430
+
431
+ ***
432
+
433
+ ### doUpdate()
434
+
435
+ > `protected` **doUpdate**(`id`, `obj`, `options`): `Promise`\<`T`\>
436
+
437
+ Defined in: [src/routes/ModelRoute.ts:545](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L545)
438
+
439
+ Attempts to modify an existing data model object as identified by the `id` parameter in the URI.
440
+
441
+ #### Parameters
442
+
443
+ ##### id
444
+
445
+ `string`
446
+
447
+ ##### obj
448
+
449
+ [`UpdateObject`](../type-aliases/UpdateObject.md)\<`T`\>
450
+
451
+ The object to update in the database
452
+
453
+ ##### options
454
+
455
+ [`UpdateRequestOptions`](../interfaces/UpdateRequestOptions.md)\<`T`\>
456
+
457
+ The options to process the request using.
458
+
459
+ #### Returns
460
+
461
+ `Promise`\<`T`\>
462
+
463
+ ***
464
+
465
+ ### doUpdateProperty()
466
+
467
+ > `protected` **doUpdateProperty**(`id`, `propertyName`, `value`, `options`): `Promise`\<`T`\>
468
+
469
+ Defined in: [src/routes/ModelRoute.ts:596](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L596)
470
+
471
+ Attempts to modify a single property of an existing data model object as identified by the `id` parameter in the URI.
472
+
473
+ Note that this effectively bypasses optimistic locking and can cause unexpected data overwrites. Use with care.
474
+
475
+ #### Parameters
476
+
477
+ ##### id
478
+
479
+ `string`
480
+
481
+ The unique identifier of the object to update.
482
+
483
+ ##### propertyName
484
+
485
+ `string`
486
+
487
+ The name of the property to update.
488
+
489
+ ##### value
490
+
491
+ `any`
492
+
493
+ The value of the property to set.
494
+
495
+ ##### options
496
+
497
+ [`UpdateRequestOptions`](../interfaces/UpdateRequestOptions.md)\<`T`\>
498
+
499
+ The options to process the request using.
500
+
501
+ #### Returns
502
+
503
+ `Promise`\<`T`\>
504
+
505
+ ***
506
+
507
+ ### doValidate()
508
+
509
+ > `protected` **doValidate**(`objs`, `options?`): `Promise`\<`void`\>
510
+
511
+ Defined in: [src/routes/ModelRoute.ts:642](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L642)
512
+
513
+ Calls `repoUtils.validate()` to validate the object(s) provided.
514
+
515
+ #### Parameters
516
+
517
+ ##### objs
518
+
519
+ `Partial`\<`T`\> \| `Partial`\<`T`\>[]
520
+
521
+ ##### options?
522
+
523
+ [`CreateRequestOptions`](../interfaces/CreateRequestOptions.md) \| [`UpdateRequestOptions`](../interfaces/UpdateRequestOptions.md)\<`T`\>
524
+
525
+ #### Returns
526
+
527
+ `Promise`\<`void`\>