@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,123 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / ApiErrorMessages
6
+
7
+ # Enumeration: ApiErrorMessages
8
+
9
+ Defined in: [src/ApiErrors.ts:24](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L24)
10
+
11
+ Defines the default message of all common API errors.
12
+
13
+ ## Enumeration Members
14
+
15
+ ### AUTH\_FAILED
16
+
17
+ > **AUTH\_FAILED**: `"Invalid or missing authentication token."`
18
+
19
+ Defined in: [src/ApiErrors.ts:37](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L37)
20
+
21
+ ***
22
+
23
+ ### AUTH\_PERMISSION\_FAILURE
24
+
25
+ > **AUTH\_PERMISSION\_FAILURE**: `"User does not have permission to perform this action."`
26
+
27
+ Defined in: [src/ApiErrors.ts:38](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L38)
28
+
29
+ ***
30
+
31
+ ### AUTH\_REQUIRED
32
+
33
+ > **AUTH\_REQUIRED**: `"Authorization is required to access this resource."`
34
+
35
+ Defined in: [src/ApiErrors.ts:36](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L36)
36
+
37
+ ***
38
+
39
+ ### BULK\_CREATE\_FAILURE
40
+
41
+ > **BULK\_CREATE\_FAILURE**: `"Failed to create one or more objects."`
42
+
43
+ Defined in: [src/ApiErrors.ts:34](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L34)
44
+
45
+ ***
46
+
47
+ ### BULK\_UPDATE\_FAILURE
48
+
49
+ > **BULK\_UPDATE\_FAILURE**: `"Failed to update one or more objects."`
50
+
51
+ Defined in: [src/ApiErrors.ts:35](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L35)
52
+
53
+ ***
54
+
55
+ ### IDENTIFIER\_EXISTS
56
+
57
+ > **IDENTIFIER\_EXISTS**: `"A resource with that identifier already exists."`
58
+
59
+ Defined in: [src/ApiErrors.ts:29](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L29)
60
+
61
+ ***
62
+
63
+ ### INTERNAL\_ERROR
64
+
65
+ > **INTERNAL\_ERROR**: `"An internal error has occurred. Please contact the adminstrator."`
66
+
67
+ Defined in: [src/ApiErrors.ts:26](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L26)
68
+
69
+ ***
70
+
71
+ ### INVALID\_OBJECT\_VERSION
72
+
73
+ > **INVALID\_OBJECT\_VERSION**: `"Invalid object version. Do you have the latest version?"`
74
+
75
+ Defined in: [src/ApiErrors.ts:30](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L30)
76
+
77
+ ***
78
+
79
+ ### INVALID\_REQUEST
80
+
81
+ > **INVALID\_REQUEST**: `"Invalid message or request."`
82
+
83
+ Defined in: [src/ApiErrors.ts:27](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L27)
84
+
85
+ ***
86
+
87
+ ### NOT\_FOUND
88
+
89
+ > **NOT\_FOUND**: `"No resource could be found with the specified identifier."`
90
+
91
+ Defined in: [src/ApiErrors.ts:28](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L28)
92
+
93
+ ***
94
+
95
+ ### OBJECT\_ID\_MISMATCH
96
+
97
+ > **OBJECT\_ID\_MISMATCH**: `"The object provided does not match the identifier given."`
98
+
99
+ Defined in: [src/ApiErrors.ts:31](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L31)
100
+
101
+ ***
102
+
103
+ ### SEARCH\_INVALID\_ME\_REFERENCE
104
+
105
+ > **SEARCH\_INVALID\_ME\_REFERENCE**: `` "Use of the `me` reference requires authentication." ``
106
+
107
+ Defined in: [src/ApiErrors.ts:33](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L33)
108
+
109
+ ***
110
+
111
+ ### SEARCH\_INVALID\_RANGE
112
+
113
+ > **SEARCH\_INVALID\_RANGE**: `"Invalid range value: '{{value}}'. Expected 2 arguments, got {{length}}"`
114
+
115
+ Defined in: [src/ApiErrors.ts:32](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L32)
116
+
117
+ ***
118
+
119
+ ### UNKNOWN
120
+
121
+ > **UNKNOWN**: `"An unknown error has occurred. Please try again."`
122
+
123
+ Defined in: [src/ApiErrors.ts:25](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L25)
@@ -0,0 +1,123 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / ApiErrors
6
+
7
+ # Enumeration: ApiErrors
8
+
9
+ Defined in: [src/ApiErrors.ts:4](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L4)
10
+
11
+ Defines the unique codes for all common API errors.
12
+
13
+ ## Enumeration Members
14
+
15
+ ### AUTH\_FAILED
16
+
17
+ > **AUTH\_FAILED**: `"api-101"`
18
+
19
+ Defined in: [src/ApiErrors.ts:17](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L17)
20
+
21
+ ***
22
+
23
+ ### AUTH\_PERMISSION\_FAILURE
24
+
25
+ > **AUTH\_PERMISSION\_FAILURE**: `"api-102"`
26
+
27
+ Defined in: [src/ApiErrors.ts:18](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L18)
28
+
29
+ ***
30
+
31
+ ### AUTH\_REQUIRED
32
+
33
+ > **AUTH\_REQUIRED**: `"api-100"`
34
+
35
+ Defined in: [src/ApiErrors.ts:16](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L16)
36
+
37
+ ***
38
+
39
+ ### BULK\_CREATE\_FAILURE
40
+
41
+ > **BULK\_CREATE\_FAILURE**: `"api-021"`
42
+
43
+ Defined in: [src/ApiErrors.ts:14](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L14)
44
+
45
+ ***
46
+
47
+ ### BULK\_UPDATE\_FAILURE
48
+
49
+ > **BULK\_UPDATE\_FAILURE**: `"api-022"`
50
+
51
+ Defined in: [src/ApiErrors.ts:15](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L15)
52
+
53
+ ***
54
+
55
+ ### IDENTIFIER\_EXISTS
56
+
57
+ > **IDENTIFIER\_EXISTS**: `"api-011"`
58
+
59
+ Defined in: [src/ApiErrors.ts:9](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L9)
60
+
61
+ ***
62
+
63
+ ### INTERNAL\_ERROR
64
+
65
+ > **INTERNAL\_ERROR**: `"api-002"`
66
+
67
+ Defined in: [src/ApiErrors.ts:6](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L6)
68
+
69
+ ***
70
+
71
+ ### INVALID\_OBJECT\_VERSION
72
+
73
+ > **INVALID\_OBJECT\_VERSION**: `"api-012"`
74
+
75
+ Defined in: [src/ApiErrors.ts:10](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L10)
76
+
77
+ ***
78
+
79
+ ### INVALID\_REQUEST
80
+
81
+ > **INVALID\_REQUEST**: `"api-003"`
82
+
83
+ Defined in: [src/ApiErrors.ts:7](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L7)
84
+
85
+ ***
86
+
87
+ ### NOT\_FOUND
88
+
89
+ > **NOT\_FOUND**: `"api-010"`
90
+
91
+ Defined in: [src/ApiErrors.ts:8](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L8)
92
+
93
+ ***
94
+
95
+ ### OBJECT\_ID\_MISMATCH
96
+
97
+ > **OBJECT\_ID\_MISMATCH**: `"api-013"`
98
+
99
+ Defined in: [src/ApiErrors.ts:11](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L11)
100
+
101
+ ***
102
+
103
+ ### SEARCH\_INVALID\_ME\_REFERENCE
104
+
105
+ > **SEARCH\_INVALID\_ME\_REFERENCE**: `"api-015"`
106
+
107
+ Defined in: [src/ApiErrors.ts:13](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L13)
108
+
109
+ ***
110
+
111
+ ### SEARCH\_INVALID\_RANGE
112
+
113
+ > **SEARCH\_INVALID\_RANGE**: `"api-014"`
114
+
115
+ Defined in: [src/ApiErrors.ts:12](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L12)
116
+
117
+ ***
118
+
119
+ ### UNKNOWN
120
+
121
+ > **UNKNOWN**: `"api-001"`
122
+
123
+ Defined in: [src/ApiErrors.ts:5](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/ApiErrors.ts#L5)
@@ -0,0 +1,26 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / isSqlDataSource
6
+
7
+ # Function: isSqlDataSource()
8
+
9
+ > **isSqlDataSource**(`conn`): `boolean`
10
+
11
+ Defined in: [src/database/ConnectionKinds.ts:12](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/database/ConnectionKinds.ts#L12)
12
+
13
+ Determines whether the given connection object is a TypeORM `DataSource` for a SQL database. This check is
14
+ performed without importing the optional `typeorm` package by duck-typing the connection object.
15
+
16
+ ## Parameters
17
+
18
+ ### conn
19
+
20
+ `any`
21
+
22
+ The connection object to inspect.
23
+
24
+ ## Returns
25
+
26
+ `boolean`
@@ -0,0 +1,33 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / resolveCollectionName
6
+
7
+ # Function: resolveCollectionName()
8
+
9
+ > **resolveCollectionName**(`clazz`): `string`
10
+
11
+ Defined in: [src/database/NamingUtils.ts:38](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/database/NamingUtils.ts#L38)
12
+
13
+ Resolves the name of the database collection (or table) that records of the given model class are stored in.
14
+
15
+ The name is resolved using the following rules:
16
+ 1. The nearest class in the inheritance chain (starting with `clazz` itself) that specifies an explicit
17
+ entity name via the `@Entity(name)` decorator.
18
+ 2. Otherwise, the most ancestral class in the inheritance chain that declares its own `@DataStore` binding.
19
+ This ensures that `@ChildEntity` subclasses are stored in the same collection as their parent entity
20
+ (single collection inheritance).
21
+ 3. Otherwise, the snake_case form of the class name.
22
+
23
+ ## Parameters
24
+
25
+ ### clazz
26
+
27
+ `any`
28
+
29
+ The model class to resolve the collection name for.
30
+
31
+ ## Returns
32
+
33
+ `string`
@@ -0,0 +1,28 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / snakeCase
6
+
7
+ # Function: snakeCase()
8
+
9
+ > **snakeCase**(`str`): `string`
10
+
11
+ Defined in: [src/database/NamingUtils.ts:14](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/database/NamingUtils.ts#L14)
12
+
13
+ Converts a string into snake_case.
14
+
15
+ Note: This function is intentionally identical in behavior to TypeORM's `snakeCase` utility so that
16
+ collection/table names derived from class names remain stable for existing deployments.
17
+
18
+ ## Parameters
19
+
20
+ ### str
21
+
22
+ `string`
23
+
24
+ The string to convert.
25
+
26
+ ## Returns
27
+
28
+ `string`
@@ -0,0 +1,91 @@
1
+ [**@rapidrest/service-core**](README.md)
2
+
3
+ ***
4
+
5
+ # @rapidrest/service-core
6
+
7
+ ## Namespaces
8
+
9
+ - [DatabaseDecorators](@rapidrest/namespaces/DatabaseDecorators/README.md)
10
+ - [DocDecorators](@rapidrest/namespaces/DocDecorators/README.md)
11
+ - [EventDecorators](@rapidrest/namespaces/EventDecorators/README.md)
12
+ - [ModelDecorators](@rapidrest/namespaces/ModelDecorators/README.md)
13
+ - [PersistenceDecorators](@rapidrest/namespaces/PersistenceDecorators/README.md)
14
+ - [RouteDecorators](@rapidrest/namespaces/RouteDecorators/README.md)
15
+
16
+ ## Enumerations
17
+
18
+ - [ACLAction](enumerations/ACLAction.md)
19
+ - [ApiErrorMessages](enumerations/ApiErrorMessages.md)
20
+ - [ApiErrors](enumerations/ApiErrors.md)
21
+
22
+ ## Classes
23
+
24
+ - [ACLUtils](classes/ACLUtils.md)
25
+ - [AdminRoute](classes/AdminRoute.md)
26
+ - [AuthMiddleware](classes/AuthMiddleware.md)
27
+ - [BackgroundService](classes/BackgroundService.md)
28
+ - [BackgroundServiceManager](classes/BackgroundServiceManager.md)
29
+ - [BaseEntity](classes/BaseEntity.md)
30
+ - [BaseMongoEntity](classes/BaseMongoEntity.md)
31
+ - [BasicStrategy](classes/BasicStrategy.md)
32
+ - [BasicStrategyOptions](classes/BasicStrategyOptions.md)
33
+ - [BulkError](classes/BulkError.md)
34
+ - [ConnectionManager](classes/ConnectionManager.md)
35
+ - [EventListenerManager](classes/EventListenerManager.md)
36
+ - [JWTStrategy](classes/JWTStrategy.md)
37
+ - [JWTStrategyOptions](classes/JWTStrategyOptions.md)
38
+ - [MetricsRoute](classes/MetricsRoute.md)
39
+ - [ModelRoute](classes/ModelRoute.md)
40
+ - [ModelUtils](classes/ModelUtils.md)
41
+ - [MongoConnection](classes/MongoConnection.md)
42
+ - [MongoRepository](classes/MongoRepository.md)
43
+ - [MongoSchemaSync](classes/MongoSchemaSync.md)
44
+ - [NetUtils](classes/NetUtils.md)
45
+ - [NotificationUtils](classes/NotificationUtils.md)
46
+ - [ObjectFactory](classes/ObjectFactory.md)
47
+ - [OpenAPIRoute](classes/OpenAPIRoute.md)
48
+ - [OpenApiSpec](classes/OpenApiSpec.md)
49
+ - [RecoverableBaseEntity](classes/RecoverableBaseEntity.md)
50
+ - [RecoverableBaseMongoEntity](classes/RecoverableBaseMongoEntity.md)
51
+ - [RedisTransport](classes/RedisTransport.md)
52
+ - [RepoUtils](classes/RepoUtils.md)
53
+ - [RouteUtils](classes/RouteUtils.md)
54
+ - [Server](classes/Server.md)
55
+ - [SimpleEntity](classes/SimpleEntity.md)
56
+ - [SimpleMongoEntity](classes/SimpleMongoEntity.md)
57
+ - [StatusExtraData](classes/StatusExtraData.md)
58
+ - [StatusRoute](classes/StatusRoute.md)
59
+
60
+ ## Interfaces
61
+
62
+ - [AccessControlList](interfaces/AccessControlList.md)
63
+ - [ACLRecord](interfaces/ACLRecord.md)
64
+ - [AuthResult](interfaces/AuthResult.md)
65
+ - [AuthStrategy](interfaces/AuthStrategy.md)
66
+ - [CreateRequestOptions](interfaces/CreateRequestOptions.md)
67
+ - [DeleteRequestOptions](interfaces/DeleteRequestOptions.md)
68
+ - [FindRequestOptions](interfaces/FindRequestOptions.md)
69
+ - [JWTAuthResult](interfaces/JWTAuthResult.md)
70
+ - [RepoCreateOptions](interfaces/RepoCreateOptions.md)
71
+ - [RepoDeleteOptions](interfaces/RepoDeleteOptions.md)
72
+ - [RepoFindOptions](interfaces/RepoFindOptions.md)
73
+ - [RepoOperationOptions](interfaces/RepoOperationOptions.md)
74
+ - [RepoUpdateOptions](interfaces/RepoUpdateOptions.md)
75
+ - [RequestOptions](interfaces/RequestOptions.md)
76
+ - [TruncateRequestOptions](interfaces/TruncateRequestOptions.md)
77
+ - [UpdateRequestOptions](interfaces/UpdateRequestOptions.md)
78
+
79
+ ## Type Aliases
80
+
81
+ - [OneOrMany](type-aliases/OneOrMany.md)
82
+ - [OneOrNull](type-aliases/OneOrNull.md)
83
+ - [PartialBaseEntity](type-aliases/PartialBaseEntity.md)
84
+ - [PartialSimpleEntity](type-aliases/PartialSimpleEntity.md)
85
+ - [UpdateObject](type-aliases/UpdateObject.md)
86
+
87
+ ## Functions
88
+
89
+ - [isSqlDataSource](functions/isSqlDataSource.md)
90
+ - [resolveCollectionName](functions/resolveCollectionName.md)
91
+ - [snakeCase](functions/snakeCase.md)
@@ -0,0 +1,96 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / ACLRecord
6
+
7
+ # Interface: ACLRecord
8
+
9
+ Defined in: [src/security/AccessControlList.ts:33](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L33)
10
+
11
+ The `ACLRecord` interface describes a single permissions entry in an `AccessControlList` that grants or denies
12
+ a set of permissions to a single user or role.
13
+
14
+ Each permission can be one of the following actions:
15
+ - `Create` - The user or role can create a new record or object.
16
+ - `Read` - The user or role can read the record or object.
17
+ - `Update` - The user or role can modify existing records or objects.
18
+ - `Delete` - The user or role can delete existing records or objects.
19
+ - `Special` - The user or role has special prilieges to edit the ACL permissions.
20
+ - `Full` - The user or role has total control over the record or object and supersedes any of the above.
21
+
22
+ ## Author
23
+
24
+ Jean-Philippe Steinmetz <rapidrests@gmail.com>
25
+
26
+ ## Properties
27
+
28
+ ### create
29
+
30
+ > **create**: `boolean` \| `null`
31
+
32
+ Defined in: [src/security/AccessControlList.ts:42](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L42)
33
+
34
+ Indicates that the user or role has permission to create new records of the entity.
35
+
36
+ ***
37
+
38
+ ### delete
39
+
40
+ > **delete**: `boolean` \| `null`
41
+
42
+ Defined in: [src/security/AccessControlList.ts:57](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L57)
43
+
44
+ Indicates that the user or role has permission to delete existing records of the entity.
45
+
46
+ ***
47
+
48
+ ### full
49
+
50
+ > **full**: `boolean` \| `null`
51
+
52
+ Defined in: [src/security/AccessControlList.ts:69](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L69)
53
+
54
+ Indicates that the user or role has total control over records of the entity. This supersedes all of the above
55
+ permissions.
56
+
57
+ ***
58
+
59
+ ### read
60
+
61
+ > **read**: `boolean` \| `null`
62
+
63
+ Defined in: [src/security/AccessControlList.ts:47](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L47)
64
+
65
+ Indicates that the user or role has permission to read records of the entity.
66
+
67
+ ***
68
+
69
+ ### special
70
+
71
+ > **special**: `boolean` \| `null`
72
+
73
+ Defined in: [src/security/AccessControlList.ts:63](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L63)
74
+
75
+ Indicates that the user or role has special permission over records of the entity. The exact meaning of this
76
+ may vary by service.
77
+
78
+ ***
79
+
80
+ ### update
81
+
82
+ > **update**: `boolean` \| `null`
83
+
84
+ Defined in: [src/security/AccessControlList.ts:52](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L52)
85
+
86
+ Indicates that the user or role has permission to modify existing records of the entity.
87
+
88
+ ***
89
+
90
+ ### userOrRoleId
91
+
92
+ > **userOrRoleId**: `string`
93
+
94
+ Defined in: [src/security/AccessControlList.ts:37](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L37)
95
+
96
+ The unique identifier of the user or role that the record belongs to.
@@ -0,0 +1,76 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / AccessControlList
6
+
7
+ # Interface: AccessControlList
8
+
9
+ Defined in: [src/security/AccessControlList.ts:97](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L97)
10
+
11
+ The access control list provides a generic interface for the storage of user and roles permissions. Each ACL object
12
+ represents the permission set for a single entity within the system. The entity is identified generically by its
13
+ universally unique identifier (`uuid`). Each entry in the ACL records the permissions available to a particular user
14
+ or role.
15
+
16
+ Each permission can be one of the following actions:
17
+ - `Create` - The user or role can create a new record or object.
18
+ - `Read` - The user or role can read the record or object.
19
+ - `Update` - The user or role can modify existing records or objects.
20
+ - `Delete` - The user or role can delete existing records or objects.
21
+ - `Special` - The user or role has special prilieges to edit the ACL permissions.
22
+ - `Full` - The user or role has total control over the record or object and supersedes any of the above.
23
+
24
+ For each of the above actions the user or role will be granted either an `allow` permission or a `deny` permission.
25
+ If an `allow` is granted, the user or role has permission to perform that action. If a `deny` is set, then the user
26
+ or role is denied that action. If no explicit `allow` or `deny` is set then the user or role will inherit the
27
+ permission from a parent role or ACL.
28
+
29
+ ACLs can be chained via single inheritance through the specification of the `parentUid`. This allows the ability to
30
+ create complex trees of permissions that can easily inherit control schemes to make the definition of permissions
31
+ easier.
32
+
33
+ ## Author
34
+
35
+ Jean-Philippe Steinmetz <rapidrests@gmail.com>
36
+
37
+ ## Properties
38
+
39
+ ### parent?
40
+
41
+ > `optional` **parent?**: `AccessControlList` \| `null`
42
+
43
+ Defined in: [src/security/AccessControlList.ts:106](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L106)
44
+
45
+ The parent access control list that this instance inherits permissions from.
46
+
47
+ ***
48
+
49
+ ### parentUid?
50
+
51
+ > `optional` **parentUid?**: `string`
52
+
53
+ Defined in: [src/security/AccessControlList.ts:112](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L112)
54
+
55
+ The universally unique identifier of the parent `AccessControlList` that this object will inherit permissions
56
+ from.
57
+
58
+ ***
59
+
60
+ ### records
61
+
62
+ > **records**: [`ACLRecord`](ACLRecord.md)[]
63
+
64
+ Defined in: [src/security/AccessControlList.ts:117](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L117)
65
+
66
+ The list of all permission records associated with this access control list.
67
+
68
+ ***
69
+
70
+ ### uid
71
+
72
+ > **uid**: `string`
73
+
74
+ Defined in: [src/security/AccessControlList.ts:101](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/security/AccessControlList.ts#L101)
75
+
76
+ The universally unique identifier (`uuid`) of the entity that the access control list belongs to.
@@ -0,0 +1,55 @@
1
+ [**@rapidrest/service-core**](../README.md)
2
+
3
+ ***
4
+
5
+ [@rapidrest/service-core](../globals.md) / AuthResult
6
+
7
+ # Interface: AuthResult
8
+
9
+ Defined in: [src/auth/AuthStrategy.ts:10](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/AuthStrategy.ts#L10)
10
+
11
+ Result returned by `AuthStrategy.authenticate()`.
12
+
13
+ ## Extended by
14
+
15
+ - [`JWTAuthResult`](JWTAuthResult.md)
16
+
17
+ ## Properties
18
+
19
+ ### data?
20
+
21
+ > `optional` **data?**: `string`
22
+
23
+ Defined in: [src/auth/AuthStrategy.ts:12](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/AuthStrategy.ts#L12)
24
+
25
+ The raw auth data that was verified.
26
+
27
+ ***
28
+
29
+ ### method
30
+
31
+ > **method**: `string`
32
+
33
+ Defined in: [src/auth/AuthStrategy.ts:14](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/AuthStrategy.ts#L14)
34
+
35
+ The name of the auth strategy that produced this result.
36
+
37
+ ***
38
+
39
+ ### payload?
40
+
41
+ > `optional` **payload?**: `any`
42
+
43
+ Defined in: [src/auth/AuthStrategy.ts:16](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/AuthStrategy.ts#L16)
44
+
45
+ The fully decoded payload from the auth data.
46
+
47
+ ***
48
+
49
+ ### user?
50
+
51
+ > `optional` **user?**: `JWTUser`
52
+
53
+ Defined in: [src/auth/AuthStrategy.ts:18](https://github.com/rapidrest/service-core/blob/c8974caa9b5d3eb225bcbcd93945f2e588fe2f0a/src/auth/AuthStrategy.ts#L18)
54
+
55
+ The authenticated user profile, or `undefined` if authentication failed.