@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,54 @@
1
+ import type { Admin, Db, MongoClient } from "mongodb";
2
+ import { MongoRepository } from "./MongoRepository.js";
3
+ /**
4
+ * Represents a single named connection to a MongoDB database using the native `mongodb` driver, including the
5
+ * registry of all model classes assigned to the connection's datastore.
6
+ *
7
+ * Note that this class only references the `mongodb` package via type-only imports and is therefore safe to load
8
+ * when the optional `mongodb` peer dependency is not installed.
9
+ *
10
+ * @author Jean-Philippe Steinmetz <rapidrests@gmail.com>
11
+ */
12
+ export declare class MongoConnection {
13
+ /** The underlying MongoDB client. */
14
+ readonly client: MongoClient;
15
+ /** The database that this connection is bound to. */
16
+ readonly db: Db;
17
+ /** The name of the datastore that this connection was created for. */
18
+ readonly name: string;
19
+ private connected;
20
+ private entities;
21
+ private repos;
22
+ constructor(name: string, client: MongoClient, db: Db, entities?: Iterable<any>);
23
+ /** Indicates whether or not the connection is currently active. */
24
+ get isConnected(): boolean;
25
+ /** Returns the admin interface of the underlying database. */
26
+ admin(): Admin;
27
+ /**
28
+ * Closes the connection to the database server.
29
+ */
30
+ close(): Promise<void>;
31
+ /**
32
+ * Returns the name of the collection that records of the given model class are stored in.
33
+ *
34
+ * @param clazz The model class to resolve the collection name for.
35
+ */
36
+ collectionNameFor(clazz: any): string;
37
+ /**
38
+ * Returns the list of all model classes registered with this connection.
39
+ */
40
+ get entityClasses(): any[];
41
+ /**
42
+ * Returns a repository for performing operations against the collection associated with the given model class.
43
+ *
44
+ * @param classOrName The model class, or the name of a registered model class, to retrieve a repository for.
45
+ */
46
+ getRepository<T extends object = any>(classOrName: any | string): MongoRepository<T>;
47
+ /**
48
+ * Returns a repository for performing operations against the collection associated with the given model class.
49
+ * This is an alias of `getRepository` provided for compatibility with TypeORM's `DataSource` interface.
50
+ *
51
+ * @param classOrName The model class, or the name of a registered model class, to retrieve a repository for.
52
+ */
53
+ getMongoRepository<T extends object = any>(classOrName: any | string): MongoRepository<T>;
54
+ }
@@ -0,0 +1,92 @@
1
+ import type { AggregationCursor, Collection, Db, DeleteResult, Document, UpdateResult } from "mongodb";
2
+ /**
3
+ * Provides a lightweight repository for performing common operations against a single MongoDB collection using the
4
+ * native `mongodb` driver. Instances of this class are obtained via `MongoConnection.getRepository`.
5
+ *
6
+ * Note that this class only references the `mongodb` package via type-only imports and is therefore safe to load
7
+ * when the optional `mongodb` peer dependency is not installed.
8
+ *
9
+ * @author Jean-Philippe Steinmetz <rapidrests@gmail.com>
10
+ */
11
+ export declare class MongoRepository<T extends Document = any> {
12
+ /** The database that the underlying collection belongs to. */
13
+ readonly db: Db;
14
+ /** The underlying MongoDB collection that operations are performed against. */
15
+ readonly collection: Collection<T>;
16
+ /** The model class associated with this repository. */
17
+ readonly modelClass: any;
18
+ constructor(db: Db, collection: Collection<T>, modelClass?: any);
19
+ /** The name of the underlying MongoDB collection. */
20
+ get collectionName(): string;
21
+ /**
22
+ * Executes the given aggregation pipeline against the collection and returns the resulting cursor.
23
+ *
24
+ * @param pipeline The aggregation pipeline stages to execute.
25
+ */
26
+ aggregate(pipeline: Document[]): AggregationCursor<any>;
27
+ /**
28
+ * Drops the entire collection from the database, removing all documents and indexes. Does nothing if the
29
+ * collection does not exist.
30
+ */
31
+ clear(): Promise<void>;
32
+ /**
33
+ * Returns the number of documents matching the given filter.
34
+ *
35
+ * @param filter The query filter to match documents against.
36
+ */
37
+ count(filter?: any): Promise<number>;
38
+ /**
39
+ * Deletes all documents matching the given filter.
40
+ *
41
+ * @param filter The query filter to match documents against.
42
+ */
43
+ deleteMany(filter: any): Promise<DeleteResult>;
44
+ /**
45
+ * Deletes the first document matching the given filter.
46
+ *
47
+ * @param filter The query filter to match documents against.
48
+ */
49
+ deleteOne(filter: any): Promise<DeleteResult>;
50
+ /**
51
+ * Returns the list of distinct values of the given field for all documents matching the given filter.
52
+ *
53
+ * @param field The name of the document field to return distinct values of.
54
+ * @param filter The query filter to match documents against.
55
+ */
56
+ distinct(field: string, filter?: any): Promise<any[]>;
57
+ /**
58
+ * Returns all documents matching the given filter.
59
+ *
60
+ * @param filter The query filter to match documents against.
61
+ */
62
+ find(filter?: any): Promise<any[]>;
63
+ /**
64
+ * Returns the first document matching the given filter.
65
+ *
66
+ * @param filter The query filter to match documents against.
67
+ */
68
+ findOne(filter: any): Promise<any | null>;
69
+ /**
70
+ * Saves the given document to the collection. If the document has an existing `_id` the stored document is
71
+ * replaced (inserting if missing), otherwise the document is inserted and its newly assigned `_id` is set on
72
+ * the returned object.
73
+ *
74
+ * @param doc The document to save.
75
+ * @returns The saved document.
76
+ */
77
+ save(doc: any): Promise<any>;
78
+ /**
79
+ * Updates all documents matching the given filter with the provided update operations.
80
+ *
81
+ * @param filter The query filter to match documents against.
82
+ * @param update The update operations (e.g. `$set`) to apply.
83
+ */
84
+ updateMany(filter: any, update: any): Promise<UpdateResult>;
85
+ /**
86
+ * Updates the first document matching the given filter with the provided update operations.
87
+ *
88
+ * @param filter The query filter to match documents against.
89
+ * @param update The update operations (e.g. `$set`) to apply.
90
+ */
91
+ updateOne(filter: any, update: any): Promise<UpdateResult>;
92
+ }
@@ -0,0 +1,41 @@
1
+ import type { Db } from "mongodb";
2
+ /**
3
+ * Performs structure synchronization of MongoDB collections based on the persistence metadata of model classes.
4
+ *
5
+ * For each collection associated with a model class the following operations are performed:
6
+ * - The collection is created if it does not already exist.
7
+ * - Indexes declared via the `@Index` and `@Unique` decorators are created if missing.
8
+ * - Existing declared indexes whose definition has changed are dropped and re-created.
9
+ *
10
+ * The synchronization process never drops collections or data, never modifies the built-in `_id_` index, and never
11
+ * drops indexes that are not declared by the model class (e.g. shard keys or manually created indexes).
12
+ *
13
+ * @author Jean-Philippe Steinmetz <rapidrests@gmail.com>
14
+ */
15
+ export declare class MongoSchemaSync {
16
+ private db;
17
+ private logger;
18
+ constructor(db: Db, logger?: any);
19
+ /**
20
+ * Synchronizes the structure of all collections associated with the given model classes.
21
+ *
22
+ * @param entities The list of model classes to synchronize collections for.
23
+ */
24
+ synchronize(entities: Iterable<any>): Promise<void>;
25
+ /**
26
+ * Synchronizes the structure of a single collection.
27
+ *
28
+ * @param name The name of the collection to synchronize.
29
+ * @param classes The list of model classes whose records are stored in the collection.
30
+ */
31
+ private syncCollection;
32
+ /**
33
+ * Converts declared index metadata into a desired index specification.
34
+ */
35
+ private toDesiredIndex;
36
+ /**
37
+ * Determines whether an existing index satisfies the desired index specification. The `background` option is
38
+ * a build-time hint and is intentionally excluded from the comparison.
39
+ */
40
+ private optionsMatch;
41
+ }
@@ -0,0 +1,24 @@
1
+ import "reflect-metadata";
2
+ /**
3
+ * Converts a string into snake_case.
4
+ *
5
+ * Note: This function is intentionally identical in behavior to TypeORM's `snakeCase` utility so that
6
+ * collection/table names derived from class names remain stable for existing deployments.
7
+ *
8
+ * @param str The string to convert.
9
+ */
10
+ export declare function snakeCase(str: string): string;
11
+ /**
12
+ * Resolves the name of the database collection (or table) that records of the given model class are stored in.
13
+ *
14
+ * The name is resolved using the following rules:
15
+ * 1. The nearest class in the inheritance chain (starting with `clazz` itself) that specifies an explicit
16
+ * entity name via the `@Entity(name)` decorator.
17
+ * 2. Otherwise, the most ancestral class in the inheritance chain that declares its own `@DataStore` binding.
18
+ * This ensures that `@ChildEntity` subclasses are stored in the same collection as their parent entity
19
+ * (single collection inheritance).
20
+ * 3. Otherwise, the snake_case form of the class name.
21
+ *
22
+ * @param clazz The model class to resolve the collection name for.
23
+ */
24
+ export declare function resolveCollectionName(clazz: any): string;
@@ -0,0 +1,20 @@
1
+ import * as typeorm from "typeorm";
2
+ /**
3
+ * Bridges framework persistence metadata (declared via the decorators in `PersistenceDecorators`) into TypeORM's
4
+ * global metadata storage so that entity classes using framework decorators behave identically to entity classes
5
+ * using TypeORM's own decorators. Registrations are deduplicated so that consumer entities decorated with real
6
+ * TypeORM decorators are never modified.
7
+ *
8
+ * @param entities The list of entity classes to register metadata for.
9
+ */
10
+ export declare function registerFrameworkMetadata(entities: any[]): void;
11
+ /**
12
+ * Establishes a TypeORM connection for the given SQL datastore configuration. If a connection with the given name
13
+ * already exists it is reused (and reconnected if necessary).
14
+ *
15
+ * @param name The name of the datastore to connect to.
16
+ * @param datastore The datastore configuration to pass to TypeORM.
17
+ * @param entities The list of entity classes assigned to this connection.
18
+ * @param url The connection URL of the database.
19
+ */
20
+ export declare function connect(name: string, datastore: any, entities: any[], url: string): Promise<typeorm.DataSource>;
@@ -0,0 +1,6 @@
1
+ export * from "./ConnectionKinds.js";
2
+ export * from "./ConnectionManager.js";
3
+ export * from "./MongoConnection.js";
4
+ export * from "./MongoRepository.js";
5
+ export * from "./MongoSchemaSync.js";
6
+ export * from "./NamingUtils.js";
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Apply this to a property to have the TypeORM `MongoRepository` for the given entity type injected at instantiation.
3
+ *
4
+ * @param {any} type The entity type whose repository will be injected.
5
+ */
6
+ export declare function MongoRepository(type: any): (target: any, propertyKey: string | symbol) => void;
7
+ /**
8
+ * Apply this to a property to have the TypeORM `Repository` for the given entity type injected at instantiation.
9
+ *
10
+ * @param {any} type The entity type whose repository will be injected.
11
+ */
12
+ export declare function Repository(type: any): (target: any, propertyKey: string | symbol) => void;
13
+ /**
14
+ * Apply this to a property to have the `Redis` connection injected at instantiation.
15
+ *
16
+ * @param {string} name The name of the database connection to inject.
17
+ */
18
+ export declare function RedisConnection(name: string): (target: any, propertyKey: string | symbol) => void;
@@ -0,0 +1,69 @@
1
+ import "reflect-metadata";
2
+ export interface DocumentsData {
3
+ default?: any;
4
+ description?: string;
5
+ example?: any;
6
+ format?: 'int32' | 'int64' | 'float' | 'double' | 'byte' | 'binary' | 'date' | 'date-time' | 'password' | string;
7
+ summary?: string;
8
+ tags?: string[];
9
+ }
10
+ /**
11
+ * Provides a set of documentation data for a given class, property or function.
12
+ *
13
+ * @param value The default value.
14
+ */
15
+ export declare function Document(value: DocumentsData): (target: any, propertyKey?: string) => void;
16
+ /**
17
+ * Provides a default value for property of a class.
18
+ *
19
+ * @param value The default value.
20
+ */
21
+ export declare function Default(value: string): (target: any, propertyKey?: string) => void;
22
+ /**
23
+ * Provides a detailed describing the class, property or function.
24
+ *
25
+ * @param value The description of the class, property or function.
26
+ */
27
+ export declare function Description(value: string): (target: any, propertyKey?: string) => void;
28
+ /**
29
+ * Provides a example representation of the property or function return value.
30
+ *
31
+ * @param value The example value.
32
+ */
33
+ export declare function Example(value: any): (target: any, propertyKey?: string) => void;
34
+ /**
35
+ * Describes the underlying format of a class's property.
36
+ *
37
+ * @param value The format of the property's property.
38
+ */
39
+ export declare function Format(value: 'int32' | 'int64' | 'float' | 'double' | 'byte' | 'binary' | 'date' | 'date-time' | 'password' | string): (target: any, propertyKey?: string) => void;
40
+ /**
41
+ * Provides a brief summary about the class, property or function.
42
+ *
43
+ * @param value The summary of the class, property or function.
44
+ */
45
+ export declare function Summary(value: string): (target: any, propertyKey?: string) => void;
46
+ /**
47
+ * Provides a list of searchable tags associated with the property or function.
48
+ *
49
+ * @param value The list of searchable tags.
50
+ */
51
+ export declare function Tags(value: string[]): (target: any, propertyKey?: string) => void;
52
+ /**
53
+ * Stores runtime metadata about the typing information of a function's return value.
54
+ *
55
+ * @param types The optional return type(s) of the function. Can represent a single type (e.g. `MyClass`) or a union
56
+ * of types (e.g. `string | number | null`). When describing a generic type such as a collection this
57
+ * should be encoded as an array with the templated type as additional elements (e.g. `Array<MyClass>`
58
+ * becomes `[[Array, MyClass]]`).
59
+ */
60
+ export declare function Returns(types?: any | any[]): (target: any, propertyKey: string) => void;
61
+ /**
62
+ * Stores runtime metadata about the typing information of a class property.
63
+ *
64
+ * @param types The optional primary type(s) of the property. Can represent a single type (e.g. `MyClass`) or a union
65
+ * of types (e.g. `string | number | null`). When describing a generic type such as a collection this
66
+ * should be encoded as an array with the templated type as additional elements (e.g. `Array<MyClass>`
67
+ * becomes `[[Array, MyClass]]`).
68
+ */
69
+ export declare function TypeInfo(types?: any | any[]): (target: any, propertyKey: string) => void;
@@ -0,0 +1,12 @@
1
+ import "reflect-metadata";
2
+ /**
3
+ * Apply this to a function that will be called when events arrive for the specified type(s). If no event type is
4
+ * specified, then the function will be called upon each event that arrives.
5
+ *
6
+ * @param type The name or list of names corresponding to events that the function will handle.
7
+ */
8
+ export declare function OnEvent(type?: string | string[]): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
9
+ /**
10
+ * Apply this optionally to a abitary class, that has a no argument constructor, to auto register it as an event listener. Will still require add `@OnEvent` to methods
11
+ */
12
+ export declare function EventListener(): (target: any) => void;
@@ -0,0 +1,80 @@
1
+ import "reflect-metadata";
2
+ import { AccessControlList } from "../security/AccessControlList.js";
3
+ /**
4
+ * Describes a column registration that must be bridged into TypeORM's metadata storage when (and only when) a SQL
5
+ * connection is established. Entries are queued here by decorators so that this module does not depend on the
6
+ * optional `typeorm` package.
7
+ */
8
+ export interface PendingTypeOrmColumn {
9
+ target: any;
10
+ propertyName: string;
11
+ mode: "regular";
12
+ options: any;
13
+ }
14
+ /**
15
+ * The list of column registrations waiting to be bridged into TypeORM's metadata storage. This list is drained by
16
+ * the TypeORM support module when a SQL connection is created.
17
+ */
18
+ export declare const pendingTypeOrmColumns: PendingTypeOrmColumn[];
19
+ /**
20
+ * Indicates that the class is cacheable with the specified TTL.
21
+ *
22
+ * @param ttl The time, in seconds, that an object will be cached before being invalidated.
23
+ */
24
+ export declare function Cache(ttl?: number): (target: any) => void;
25
+ /**
26
+ * Indicates that a class is a child entity to some parent. Child entities will inherit all datastore configuration
27
+ * of the parent, including cache settings.
28
+ */
29
+ export declare function ChildEntity(): <T extends {
30
+ new (...args: any[]): {};
31
+ }>(constructor: T) => {
32
+ new (...args: any[]): {
33
+ /** The class type of the instance. */
34
+ readonly _type: string;
35
+ };
36
+ } & T;
37
+ /**
38
+ * Indicates that the class describes an entity that will be persisted in the datastore with the given name.
39
+ *
40
+ * @param datastore The name of the datastore to store records of the decorated class.
41
+ */
42
+ export declare function DataStore(datastore: string): (target: any) => void;
43
+ /**
44
+ * Apply this to a property that is considered a unique identifier.
45
+ */
46
+ export declare function Identifier(target: any, propertyKey: string | symbol): void;
47
+ type PartialACL = Partial<AccessControlList> & Pick<AccessControlList, "records">;
48
+ /**
49
+ * Apply this to a model class to indicate that it should be protected by the AccessControlList security system.
50
+ * The `classACL` parameter specifies the default ACL governing access to general operations against the model class
51
+ * (e.g. create, truncate, find). The `recordACL` parameter indicates whether or not per-record ACLs should be created
52
+ * for this type in order to govern access to individual record operations (e.g. delete, update, find).
53
+ *
54
+ * @param classACL The default access control list to limit access to general class operations.
55
+ * @param recordACL Set to `true` to create an ACL for each new record of the given type, otherwise set to false. Default
56
+ * is `false`.
57
+ */
58
+ export declare function Protect(classACL?: PartialACL, recordACL?: boolean): (target: any) => void;
59
+ /**
60
+ * Apply this to a property to indicate that the value is a reference to another stored entity.
61
+ *
62
+ * @param clazz The class type of the referenced object.
63
+ */
64
+ export declare function Reference(clazz: any): (target: any, propertyKey: string | symbol) => void;
65
+ /**
66
+ * Indicates that the class describes an entity that will be persisted in a sharded database collection.
67
+ *
68
+ * Note: Only supported by MongoDB.
69
+ *
70
+ * @param config The sharding configuration to pass to the database server. Default value is `{ key: { uid: 1 }, unique: false, options: {} }`.
71
+ */
72
+ export declare function Shard(config?: any): (target: any) => void;
73
+ /**
74
+ * Indicates that the class will track changes for each document update limited to the specified number of versions.
75
+ *
76
+ * @param versions The number of versions that will be tracked for each document change. Set to `-1` to store all
77
+ * versions. Default value is `-1`.
78
+ */
79
+ export declare function TrackChanges(versions?: number): (target: any) => void;
80
+ export {};
@@ -0,0 +1,117 @@
1
+ import "reflect-metadata";
2
+ /**
3
+ * The set of options available when declaring a persisted column/property via the `@Column` decorator.
4
+ */
5
+ export interface ColumnOptions {
6
+ /** The name of the column in the datastore. Defaults to the property name. */
7
+ name?: string;
8
+ /** Set to `true` if the column may store `null`/`undefined` values. */
9
+ nullable?: boolean;
10
+ /** Set to `true` if the column is a primary key. */
11
+ primary?: boolean;
12
+ /** Set to `true` if the column stores a MongoDB `ObjectId` value. */
13
+ isObjectId?: boolean;
14
+ }
15
+ /**
16
+ * The set of options available when declaring a database index via the `@Index` decorator.
17
+ */
18
+ export interface IndexOptions {
19
+ /** Set to `true` to enforce that all values of the indexed properties are unique. */
20
+ unique?: boolean;
21
+ /** Set to `true` to only index documents in which the indexed properties exist. (MongoDB only) */
22
+ sparse?: boolean;
23
+ /** Set to `true` to build the index in the background. (MongoDB only) */
24
+ background?: boolean;
25
+ /** The time, in seconds, after which indexed documents will be automatically deleted. (MongoDB only) */
26
+ expireAfterSeconds?: number;
27
+ }
28
+ /**
29
+ * Describes a single persisted column/property of a model class.
30
+ */
31
+ export interface ColumnInfo {
32
+ /** The name of the class property. */
33
+ propertyName: string;
34
+ /** The design type of the property as captured at decoration time. */
35
+ designType?: any;
36
+ /** The options that the column was declared with. */
37
+ options: ColumnOptions;
38
+ }
39
+ /**
40
+ * Describes a single database index of a model class.
41
+ */
42
+ export interface IndexInfo {
43
+ /** The explicit name of the index, if any. */
44
+ name?: string;
45
+ /** The list of class properties that make up the index. */
46
+ columns: string[];
47
+ /** The options that the index was declared with. */
48
+ options: IndexOptions;
49
+ }
50
+ /**
51
+ * Indicates that the decorated property will be persisted as a column/property in the datastore.
52
+ *
53
+ * @param options The options describing the column.
54
+ */
55
+ export declare function Column(options?: ColumnOptions): (target: any, propertyKey: string | symbol) => void;
56
+ /**
57
+ * Indicates that the decorated property is a primary key column in the datastore.
58
+ *
59
+ * @param options The options describing the column.
60
+ */
61
+ export declare function PrimaryColumn(options?: ColumnOptions): (target: any, propertyKey: string | symbol) => void;
62
+ /**
63
+ * Declares a database index.
64
+ *
65
+ * When applied to a property, creates an index on that single property:
66
+ * ```
67
+ * @Index() // unnamed index
68
+ * @Index("myName") // named index
69
+ * @Index({ unique: true }) // unnamed unique index
70
+ * @Index("myName", { unique: true }) // named unique index
71
+ * ```
72
+ *
73
+ * When applied to a class, creates a compound index across the given properties:
74
+ * ```
75
+ * @Index(["firstName", "lastName"])
76
+ * @Index("fullName", ["firstName", "lastName"], { unique: true })
77
+ * ```
78
+ */
79
+ export declare function Index(nameOrOptions?: string | IndexOptions, options?: IndexOptions): PropertyDecorator;
80
+ export declare function Index(fields: string[], options?: IndexOptions): ClassDecorator;
81
+ export declare function Index(name: string, fields: string[], options?: IndexOptions): ClassDecorator;
82
+ /**
83
+ * Declares a unique constraint. This is shorthand for `@Index` with the `unique` option set to `true` and may be
84
+ * applied to a property (single-column constraint) or a class (compound constraint).
85
+ */
86
+ export declare function Unique(name?: string): PropertyDecorator;
87
+ export declare function Unique(fields: string[]): ClassDecorator;
88
+ export declare function Unique(name: string, fields: string[]): ClassDecorator;
89
+ /**
90
+ * Indicates that the class describes an entity that is persisted to a datastore.
91
+ *
92
+ * @param name The name of the collection (or table) that records will be stored in. Defaults to the snake_case
93
+ * form of the class name.
94
+ */
95
+ export declare function Entity(name?: string): (target: any) => void;
96
+ /**
97
+ * Returns the merged list of persisted columns declared across the entire class hierarchy of the given model
98
+ * class. Columns declared in subclasses override columns of the same property name declared in parent classes.
99
+ *
100
+ * @param clazz The model class to retrieve column metadata for.
101
+ */
102
+ export declare function getColumnMetadata(clazz: any): ColumnInfo[];
103
+ /**
104
+ * Returns the merged list of indexes declared across the entire class hierarchy of the given model class,
105
+ * including both property-level and class-level (compound) indexes. Indexes declared in subclasses override
106
+ * indexes with the same identity (name, or column set when unnamed) declared in parent classes.
107
+ *
108
+ * @param clazz The model class to retrieve index metadata for.
109
+ */
110
+ export declare function getIndexMetadata(clazz: any): IndexInfo[];
111
+ /**
112
+ * Returns the explicit entity name declared via `@Entity(name)` on the given class or the nearest ancestor that
113
+ * declares one, otherwise `undefined`.
114
+ *
115
+ * @param clazz The model class to retrieve the entity name for.
116
+ */
117
+ export declare function getEntityName(clazz: any): string | undefined;