@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,175 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / TruncateRequestOptions
6
+
7
+ # Interface: TruncateRequestOptions
8
+
9
+ Defined in: [src/routes/ModelRoute.ts:72](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L72)
10
+
11
+ The set of options required by truncate request handlers.
12
+
13
+ ## Extends
14
+
15
+ - [`DeleteRequestOptions`](DeleteRequestOptions.md)
16
+
17
+ ## Properties
18
+
19
+ ### ignoreACL?
20
+
21
+ > `optional` **ignoreACL?**: `boolean`
22
+
23
+ Defined in: [src/models/RepoUtils.ts:32](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/RepoUtils.ts#L32)
24
+
25
+ Set to `true` to ignore the ACL permissions check.
26
+
27
+ #### Inherited from
28
+
29
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`ignoreACL`](DeleteRequestOptions.md#ignoreacl)
30
+
31
+ ***
32
+
33
+ ### params
34
+
35
+ > **params**: `any`
36
+
37
+ Defined in: [src/routes/ModelRoute.ts:74](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L74)
38
+
39
+ The list of URL parameters to use in the search.
40
+
41
+ ***
42
+
43
+ ### productUid?
44
+
45
+ > `optional` **productUid?**: `string`
46
+
47
+ Defined in: [src/routes/ModelRoute.ts:48](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L48)
48
+
49
+ The desired product uid of the resource to delete.
50
+
51
+ #### Inherited from
52
+
53
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`productUid`](DeleteRequestOptions.md#productuid)
54
+
55
+ ***
56
+
57
+ ### purge?
58
+
59
+ > `optional` **purge?**: `boolean`
60
+
61
+ Defined in: [src/routes/ModelRoute.ts:50](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L50)
62
+
63
+ Set to true to permanently remove the object from the database (if applicable).
64
+
65
+ #### Inherited from
66
+
67
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`purge`](DeleteRequestOptions.md#purge)
68
+
69
+ ***
70
+
71
+ ### pushChannels?
72
+
73
+ > `optional` **pushChannels?**: `string`[]
74
+
75
+ Defined in: [src/routes/ModelRoute.ts:76](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L76)
76
+
77
+ An additional list of channel names to send push notifications to.
78
+
79
+ #### Overrides
80
+
81
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`pushChannels`](DeleteRequestOptions.md#pushchannels)
82
+
83
+ ***
84
+
85
+ ### query
86
+
87
+ > **query**: `any`
88
+
89
+ Defined in: [src/routes/ModelRoute.ts:78](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L78)
90
+
91
+ The list of query parameters to use in the search.
92
+
93
+ ***
94
+
95
+ ### recordEvent?
96
+
97
+ > `optional` **recordEvent?**: `boolean`
98
+
99
+ Defined in: [src/models/RepoUtils.ts:36](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/RepoUtils.ts#L36)
100
+
101
+ Indicates if a telemetry event should be broadcast for the request.
102
+
103
+ #### Inherited from
104
+
105
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`recordEvent`](DeleteRequestOptions.md#recordevent)
106
+
107
+ ***
108
+
109
+ ### req?
110
+
111
+ > `optional` **req?**: `HttpRequest`
112
+
113
+ Defined in: [src/routes/ModelRoute.ts:27](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L27)
114
+
115
+ The originating client request.
116
+
117
+ #### Inherited from
118
+
119
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`req`](DeleteRequestOptions.md#req)
120
+
121
+ ***
122
+
123
+ ### res?
124
+
125
+ > `optional` **res?**: `HttpResponse`
126
+
127
+ Defined in: [src/routes/ModelRoute.ts:29](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L29)
128
+
129
+ The outgoing client response.
130
+
131
+ #### Inherited from
132
+
133
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`res`](DeleteRequestOptions.md#res)
134
+
135
+ ***
136
+
137
+ ### skipPush?
138
+
139
+ > `optional` **skipPush?**: `boolean`
140
+
141
+ Defined in: [src/routes/ModelRoute.ts:80](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L80)
142
+
143
+ Set to `true` to not send a push notification.
144
+
145
+ #### Overrides
146
+
147
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`skipPush`](DeleteRequestOptions.md#skippush)
148
+
149
+ ***
150
+
151
+ ### user?
152
+
153
+ > `optional` **user?**: `JWTUser`
154
+
155
+ Defined in: [src/models/RepoUtils.ts:40](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/RepoUtils.ts#L40)
156
+
157
+ The authenticated user making the request.
158
+
159
+ #### Inherited from
160
+
161
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`user`](DeleteRequestOptions.md#user)
162
+
163
+ ***
164
+
165
+ ### version?
166
+
167
+ > `optional` **version?**: `string` \| `number`
168
+
169
+ Defined in: [src/routes/ModelRoute.ts:56](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L56)
170
+
171
+ The desired version number of the resource to delete.
172
+
173
+ #### Inherited from
174
+
175
+ [`DeleteRequestOptions`](DeleteRequestOptions.md).[`version`](DeleteRequestOptions.md#version)
@@ -0,0 +1,149 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / UpdateRequestOptions
6
+
7
+ # Interface: UpdateRequestOptions\<T\>
8
+
9
+ Defined in: [src/routes/ModelRoute.ts:89](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L89)
10
+
11
+ The set of options required by update request handlers.
12
+
13
+ ## Extends
14
+
15
+ - [`RequestOptions`](RequestOptions.md)
16
+
17
+ ## Type Parameters
18
+
19
+ ### T
20
+
21
+ `T` *extends* [`BaseEntity`](../classes/BaseEntity.md) \| [`SimpleEntity`](../classes/SimpleEntity.md)
22
+
23
+ ## Properties
24
+
25
+ ### existing?
26
+
27
+ > `optional` **existing?**: `T` \| `null`
28
+
29
+ Defined in: [src/routes/ModelRoute.ts:91](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L91)
30
+
31
+ The existing object that has already been recently pulled from the datastore.
32
+
33
+ ***
34
+
35
+ ### ignoreACL?
36
+
37
+ > `optional` **ignoreACL?**: `boolean`
38
+
39
+ Defined in: [src/models/RepoUtils.ts:32](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/RepoUtils.ts#L32)
40
+
41
+ Set to `true` to ignore the ACL permissions check.
42
+
43
+ #### Inherited from
44
+
45
+ [`RequestOptions`](RequestOptions.md).[`ignoreACL`](RequestOptions.md#ignoreacl)
46
+
47
+ ***
48
+
49
+ ### productUid?
50
+
51
+ > `optional` **productUid?**: `string`
52
+
53
+ Defined in: [src/routes/ModelRoute.ts:93](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L93)
54
+
55
+ The desired product uid of the resource to update.
56
+
57
+ ***
58
+
59
+ ### pushChannels?
60
+
61
+ > `optional` **pushChannels?**: `string`[]
62
+
63
+ Defined in: [src/routes/ModelRoute.ts:95](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L95)
64
+
65
+ An additional list of channel names to send push notifications to.
66
+
67
+ #### Overrides
68
+
69
+ [`RequestOptions`](RequestOptions.md).[`pushChannels`](RequestOptions.md#pushchannels)
70
+
71
+ ***
72
+
73
+ ### recordEvent?
74
+
75
+ > `optional` **recordEvent?**: `boolean`
76
+
77
+ Defined in: [src/models/RepoUtils.ts:36](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/RepoUtils.ts#L36)
78
+
79
+ Indicates if a telemetry event should be broadcast for the request.
80
+
81
+ #### Inherited from
82
+
83
+ [`RequestOptions`](RequestOptions.md).[`recordEvent`](RequestOptions.md#recordevent)
84
+
85
+ ***
86
+
87
+ ### req?
88
+
89
+ > `optional` **req?**: `HttpRequest`
90
+
91
+ Defined in: [src/routes/ModelRoute.ts:27](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L27)
92
+
93
+ The originating client request.
94
+
95
+ #### Inherited from
96
+
97
+ [`RequestOptions`](RequestOptions.md).[`req`](RequestOptions.md#req)
98
+
99
+ ***
100
+
101
+ ### res?
102
+
103
+ > `optional` **res?**: `HttpResponse`
104
+
105
+ Defined in: [src/routes/ModelRoute.ts:29](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L29)
106
+
107
+ The outgoing client response.
108
+
109
+ #### Inherited from
110
+
111
+ [`RequestOptions`](RequestOptions.md).[`res`](RequestOptions.md#res)
112
+
113
+ ***
114
+
115
+ ### skipPush?
116
+
117
+ > `optional` **skipPush?**: `boolean`
118
+
119
+ Defined in: [src/routes/ModelRoute.ts:97](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L97)
120
+
121
+ Set to `true` to not send a push notification.
122
+
123
+ #### Overrides
124
+
125
+ [`RequestOptions`](RequestOptions.md).[`skipPush`](RequestOptions.md#skippush)
126
+
127
+ ***
128
+
129
+ ### user?
130
+
131
+ > `optional` **user?**: `JWTUser`
132
+
133
+ Defined in: [src/models/RepoUtils.ts:40](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/RepoUtils.ts#L40)
134
+
135
+ The authenticated user making the request.
136
+
137
+ #### Inherited from
138
+
139
+ [`RequestOptions`](RequestOptions.md).[`user`](RequestOptions.md#user)
140
+
141
+ ***
142
+
143
+ ### version?
144
+
145
+ > `optional` **version?**: `string` \| `number`
146
+
147
+ Defined in: [src/routes/ModelRoute.ts:99](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L99)
148
+
149
+ The desired version number of the resource to update.
@@ -0,0 +1,19 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / OneOrMany
6
+
7
+ # Type Alias: OneOrMany\<T\>
8
+
9
+ > **OneOrMany**\<`T`\> = `T` \| `T`[]
10
+
11
+ Defined in: [src/Types.ts:4](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/Types.ts#L4)
12
+
13
+ Provides an explicit type declaration for `T | T[]`.
14
+
15
+ ## Type Parameters
16
+
17
+ ### T
18
+
19
+ `T`
@@ -0,0 +1,19 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / OneOrNull
6
+
7
+ # Type Alias: OneOrNull\<T\>
8
+
9
+ > **OneOrNull**\<`T`\> = `T` \| `null`
10
+
11
+ Defined in: [src/Types.ts:9](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/Types.ts#L9)
12
+
13
+ Provides an explicit type declaration for `T | null`.
14
+
15
+ ## Type Parameters
16
+
17
+ ### T
18
+
19
+ `T`
@@ -0,0 +1,17 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / PartialBaseEntity
6
+
7
+ # Type Alias: PartialBaseEntity\<T\>
8
+
9
+ > **PartialBaseEntity**\<`T`\> = `Partial`\<`T`\> & `Pick`\<`T`, `"uid"`\> & `Pick`\<`T`, `"version"`\>
10
+
11
+ Defined in: [src/models/BaseEntity.ts:68](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/BaseEntity.ts#L68)
12
+
13
+ ## Type Parameters
14
+
15
+ ### T
16
+
17
+ `T` *extends* [`BaseEntity`](../classes/BaseEntity.md)
@@ -0,0 +1,17 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / PartialSimpleEntity
6
+
7
+ # Type Alias: PartialSimpleEntity\<T\>
8
+
9
+ > **PartialSimpleEntity**\<`T`\> = `Partial`\<`T`\> & `Pick`\<`T`, `"uid"`\>
10
+
11
+ Defined in: [src/models/SimpleEntity.ts:33](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/models/SimpleEntity.ts#L33)
12
+
13
+ ## Type Parameters
14
+
15
+ ### T
16
+
17
+ `T` *extends* [`SimpleEntity`](../classes/SimpleEntity.md)
@@ -0,0 +1,19 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / UpdateObject
6
+
7
+ # Type Alias: UpdateObject\<T\>
8
+
9
+ > **UpdateObject**\<`T`\> = `Partial`\<`T`\> & `Pick`\<`T`, `"uid"`\>
10
+
11
+ Defined in: [src/routes/ModelRoute.ts:84](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/routes/ModelRoute.ts#L84)
12
+
13
+ A Partial type for a BaseEntity or SimpleEntity.
14
+
15
+ ## Type Parameters
16
+
17
+ ### T
18
+
19
+ `T` *extends* [`BaseEntity`](../classes/BaseEntity.md) \| [`SimpleEntity`](../classes/SimpleEntity.md)
package/package.json ADDED
@@ -0,0 +1,125 @@
1
+ {
2
+ "name": "@rapidrest/service-core",
3
+ "version": "1.0.0-beta.1",
4
+ "description": "Provides all core functionality for RapidREST based backend services.",
5
+ "repository": "https://github.com/rapidrest/service-core.git",
6
+ "author": "RapidREST <rapidrests@gmail.com>",
7
+ "license": "MIT",
8
+ "contributors": [
9
+ "Jean-Philippe Steinmetz",
10
+ "Arthur Thompson",
11
+ "Thomas Buscaglia"
12
+ ],
13
+ "scripts": {
14
+ "build": "yarn lint && rimraf dist && tsc",
15
+ "deploy-docs": "ts-node tools/gh-pages-publish",
16
+ "docs": "typedoc --plugin typedoc-plugin-markdown --out docs/reference src",
17
+ "lint": "eslint ./src ./test",
18
+ "local-audit": "yarn install && yarn npm audit -A -R \"$@\"",
19
+ "checkup": "yarn dlx @yarnpkg/doctor \"$@\"",
20
+ "dependency-check": "yarn dlx depcheck \"$@\"",
21
+ "report-coverage": "cat ./coverage/lcov.info | coveralls",
22
+ "test": "vitest run",
23
+ "test:prod": "npm run lint && vitest run --coverage",
24
+ "test:watch": "vitest",
25
+ "postversion": "git push && git push --tags"
26
+ },
27
+ "dependencies": {
28
+ "axios": "^1.17.0",
29
+ "bson": "^7.2.0",
30
+ "dayjs": "^1.11.21",
31
+ "deepmerge": "^4.3.1",
32
+ "node-schedule": "^2.1.1",
33
+ "uWebSockets.js": "uNetworking/uWebSockets.js#v20.68.0",
34
+ "winston-transport": "^4.9.0",
35
+ "ws": "^8.21.0"
36
+ },
37
+ "peerDependencies": {
38
+ "@rapidrest/core": "1.x",
39
+ "ioredis": "5.x",
40
+ "lodash": "4.x",
41
+ "mongodb": "^7.0.0",
42
+ "openapi3-ts": "4.x",
43
+ "prom-client": "15.x",
44
+ "reflect-metadata": "0.2.x",
45
+ "typeorm": "0.3.x",
46
+ "uWebSockets.js": "*",
47
+ "winston": "3.x"
48
+ },
49
+ "peerDependenciesMeta": {
50
+ "ioredis": {
51
+ "optional": true
52
+ },
53
+ "mongodb": {
54
+ "optional": true
55
+ },
56
+ "typeorm": {
57
+ "optional": true
58
+ }
59
+ },
60
+ "devDependencies": {
61
+ "@rapidrest/core": "^1.2.0",
62
+ "@swc/core": "^1.15.41",
63
+ "@types/ioredis-mock": "^8.2.7",
64
+ "@types/node": "^25.9.2",
65
+ "@types/node-schedule": "^2.1.8",
66
+ "@types/rimraf": "^4.0.5",
67
+ "@types/sqlite3": "^5.1.0",
68
+ "@types/uuid": "^11.0.0",
69
+ "@types/ws": "^8.18.1",
70
+ "@typescript-eslint/eslint-plugin": "^8.61.0",
71
+ "@typescript-eslint/parser": "^8.61.0",
72
+ "@vitest/coverage-v8": "^4.1.8",
73
+ "coveralls": "^3.1.1",
74
+ "eslint": "^10.4.1",
75
+ "eslint-config-prettier": "^10.1.8",
76
+ "eslint-plugin-import": "^2.32.0",
77
+ "eslint-plugin-jsdoc": "^63.0.2",
78
+ "globals": "^17.6.0",
79
+ "ioredis": "^5.11.1",
80
+ "ioredis-mock": "^8.13.1",
81
+ "lodash": "^4.18.1",
82
+ "mongodb": "^7.3.0",
83
+ "mongodb-memory-server": "^11.2.0",
84
+ "nconf": "^0.13.0",
85
+ "openapi3-ts": "^4.6.0",
86
+ "pg": "^8.21.0",
87
+ "prom-client": "^15.1.3",
88
+ "reflect-metadata": "^0.2.2",
89
+ "rimraf": "^6.1.3",
90
+ "sqlite3": "^6.0.1",
91
+ "ts-node": "^10.9.2",
92
+ "typedoc": "^0.28.19",
93
+ "typedoc-plugin-markdown": "^4.12.0",
94
+ "typeorm": "^0.3.20",
95
+ "typescript": "^6.0.3",
96
+ "unplugin-swc": "^1.5.9",
97
+ "uuid": "^14.0.0",
98
+ "vitest": "^4.1.8",
99
+ "winston": "^3.19.0",
100
+ "ws": "^8.21.0"
101
+ },
102
+ "resolutions": {
103
+ "cross-spawn": "^7.0.5"
104
+ },
105
+ "packageManager": "yarn@4.5.3",
106
+ "engines": {
107
+ "node": ">=24.0.0"
108
+ },
109
+ "publishConfig": {
110
+ "registry": "https://registry.npmjs.org/"
111
+ },
112
+ "type": "module",
113
+ "main": "dist/lib/index.js",
114
+ "exports": {
115
+ ".": {
116
+ "import": "./dist/lib/index.js",
117
+ "types": "./dist/types/index.d.ts"
118
+ }
119
+ },
120
+ "typings": "dist/types/index.d.ts",
121
+ "files": [
122
+ "dist",
123
+ "docs"
124
+ ]
125
+ }