@rebasepro/server-mongodb 0.0.1-canary.09e5ec5

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 (286) hide show
  1. package/LICENSE +6 -0
  2. package/dist/ensure-collections-CNrcwVgY.js +74 -0
  3. package/dist/ensure-collections-CNrcwVgY.js.map +1 -0
  4. package/dist/ensure-history-collection-DBIiwmCm.js +15 -0
  5. package/dist/ensure-history-collection-DBIiwmCm.js.map +1 -0
  6. package/dist/index.es.js +1734 -0
  7. package/dist/index.es.js.map +1 -0
  8. package/dist/index.umd.js +2043 -0
  9. package/dist/index.umd.js.map +1 -0
  10. package/dist/server-core/src/api/ast-schema-editor.d.ts +22 -0
  11. package/dist/server-core/src/api/ast-schema-editor.d.ts.map +1 -0
  12. package/dist/server-core/src/api/errors.d.ts +36 -0
  13. package/dist/server-core/src/api/errors.d.ts.map +1 -0
  14. package/dist/server-core/src/api/graphql/graphql-schema-generator.d.ts +36 -0
  15. package/dist/server-core/src/api/graphql/graphql-schema-generator.d.ts.map +1 -0
  16. package/dist/server-core/src/api/graphql/index.d.ts +2 -0
  17. package/dist/server-core/src/api/graphql/index.d.ts.map +1 -0
  18. package/dist/server-core/src/api/index.d.ts +10 -0
  19. package/dist/server-core/src/api/index.d.ts.map +1 -0
  20. package/dist/server-core/src/api/openapi-generator.d.ts +17 -0
  21. package/dist/server-core/src/api/openapi-generator.d.ts.map +1 -0
  22. package/dist/server-core/src/api/rest/api-generator.d.ts +65 -0
  23. package/dist/server-core/src/api/rest/api-generator.d.ts.map +1 -0
  24. package/dist/server-core/src/api/rest/index.d.ts +2 -0
  25. package/dist/server-core/src/api/rest/index.d.ts.map +1 -0
  26. package/dist/server-core/src/api/rest/query-parser.d.ts +10 -0
  27. package/dist/server-core/src/api/rest/query-parser.d.ts.map +1 -0
  28. package/dist/server-core/src/api/schema-editor-routes.d.ts +4 -0
  29. package/dist/server-core/src/api/schema-editor-routes.d.ts.map +1 -0
  30. package/dist/server-core/src/api/server.d.ts +41 -0
  31. package/dist/server-core/src/api/server.d.ts.map +1 -0
  32. package/dist/server-core/src/api/types.d.ts +91 -0
  33. package/dist/server-core/src/api/types.d.ts.map +1 -0
  34. package/dist/server-core/src/auth/admin-routes.d.ts +17 -0
  35. package/dist/server-core/src/auth/admin-routes.d.ts.map +1 -0
  36. package/dist/server-core/src/auth/apple-oauth.d.ts +31 -0
  37. package/dist/server-core/src/auth/apple-oauth.d.ts.map +1 -0
  38. package/dist/server-core/src/auth/bitbucket-oauth.d.ts +12 -0
  39. package/dist/server-core/src/auth/bitbucket-oauth.d.ts.map +1 -0
  40. package/dist/server-core/src/auth/discord-oauth.d.ts +15 -0
  41. package/dist/server-core/src/auth/discord-oauth.d.ts.map +1 -0
  42. package/dist/server-core/src/auth/facebook-oauth.d.ts +15 -0
  43. package/dist/server-core/src/auth/facebook-oauth.d.ts.map +1 -0
  44. package/dist/server-core/src/auth/github-oauth.d.ts +16 -0
  45. package/dist/server-core/src/auth/github-oauth.d.ts.map +1 -0
  46. package/dist/server-core/src/auth/gitlab-oauth.d.ts +14 -0
  47. package/dist/server-core/src/auth/gitlab-oauth.d.ts.map +1 -0
  48. package/dist/server-core/src/auth/google-oauth.d.ts +15 -0
  49. package/dist/server-core/src/auth/google-oauth.d.ts.map +1 -0
  50. package/dist/server-core/src/auth/index.d.ts +24 -0
  51. package/dist/server-core/src/auth/index.d.ts.map +1 -0
  52. package/dist/server-core/src/auth/interfaces.d.ts +310 -0
  53. package/dist/server-core/src/auth/interfaces.d.ts.map +1 -0
  54. package/dist/server-core/src/auth/jwt.d.ts +44 -0
  55. package/dist/server-core/src/auth/jwt.d.ts.map +1 -0
  56. package/dist/server-core/src/auth/linkedin-oauth.d.ts +19 -0
  57. package/dist/server-core/src/auth/linkedin-oauth.d.ts.map +1 -0
  58. package/dist/server-core/src/auth/microsoft-oauth.d.ts +17 -0
  59. package/dist/server-core/src/auth/microsoft-oauth.d.ts.map +1 -0
  60. package/dist/server-core/src/auth/middleware.d.ts +82 -0
  61. package/dist/server-core/src/auth/middleware.d.ts.map +1 -0
  62. package/dist/server-core/src/auth/password.d.ts +23 -0
  63. package/dist/server-core/src/auth/password.d.ts.map +1 -0
  64. package/dist/server-core/src/auth/rate-limiter.d.ts +32 -0
  65. package/dist/server-core/src/auth/rate-limiter.d.ts.map +1 -0
  66. package/dist/server-core/src/auth/routes.d.ts +28 -0
  67. package/dist/server-core/src/auth/routes.d.ts.map +1 -0
  68. package/dist/server-core/src/auth/slack-oauth.d.ts +13 -0
  69. package/dist/server-core/src/auth/slack-oauth.d.ts.map +1 -0
  70. package/dist/server-core/src/auth/spotify-oauth.d.ts +13 -0
  71. package/dist/server-core/src/auth/spotify-oauth.d.ts.map +1 -0
  72. package/dist/server-core/src/auth/twitter-oauth.d.ts +19 -0
  73. package/dist/server-core/src/auth/twitter-oauth.d.ts.map +1 -0
  74. package/dist/server-core/src/collections/BackendCollectionRegistry.d.ts +14 -0
  75. package/dist/server-core/src/collections/BackendCollectionRegistry.d.ts.map +1 -0
  76. package/dist/server-core/src/collections/loader.d.ts +6 -0
  77. package/dist/server-core/src/collections/loader.d.ts.map +1 -0
  78. package/dist/server-core/src/cron/cron-loader.d.ts +18 -0
  79. package/dist/server-core/src/cron/cron-loader.d.ts.map +1 -0
  80. package/dist/server-core/src/cron/cron-routes.d.ts +15 -0
  81. package/dist/server-core/src/cron/cron-routes.d.ts.map +1 -0
  82. package/dist/server-core/src/cron/cron-scheduler.d.ts +62 -0
  83. package/dist/server-core/src/cron/cron-scheduler.d.ts.map +1 -0
  84. package/dist/server-core/src/cron/cron-store.d.ts +33 -0
  85. package/dist/server-core/src/cron/cron-store.d.ts.map +1 -0
  86. package/dist/server-core/src/cron/index.d.ts +7 -0
  87. package/dist/server-core/src/cron/index.d.ts.map +1 -0
  88. package/dist/server-core/src/db/interfaces.d.ts +19 -0
  89. package/dist/server-core/src/db/interfaces.d.ts.map +1 -0
  90. package/dist/server-core/src/email/index.d.ts +7 -0
  91. package/dist/server-core/src/email/index.d.ts.map +1 -0
  92. package/dist/server-core/src/email/smtp-email-service.d.ts +26 -0
  93. package/dist/server-core/src/email/smtp-email-service.d.ts.map +1 -0
  94. package/dist/server-core/src/email/templates.d.ts +43 -0
  95. package/dist/server-core/src/email/templates.d.ts.map +1 -0
  96. package/dist/server-core/src/email/types.d.ts +108 -0
  97. package/dist/server-core/src/email/types.d.ts.map +1 -0
  98. package/dist/server-core/src/functions/function-loader.d.ts +18 -0
  99. package/dist/server-core/src/functions/function-loader.d.ts.map +1 -0
  100. package/dist/server-core/src/functions/function-routes.d.ts +11 -0
  101. package/dist/server-core/src/functions/function-routes.d.ts.map +1 -0
  102. package/dist/server-core/src/functions/index.d.ts +4 -0
  103. package/dist/server-core/src/functions/index.d.ts.map +1 -0
  104. package/dist/server-core/src/history/history-routes.d.ts +24 -0
  105. package/dist/server-core/src/history/history-routes.d.ts.map +1 -0
  106. package/dist/server-core/src/history/index.d.ts +2 -0
  107. package/dist/server-core/src/history/index.d.ts.map +1 -0
  108. package/dist/server-core/src/index.d.ts +30 -0
  109. package/dist/server-core/src/index.d.ts.map +1 -0
  110. package/dist/server-core/src/init.d.ts +160 -0
  111. package/dist/server-core/src/init.d.ts.map +1 -0
  112. package/dist/server-core/src/serve-spa.d.ts +31 -0
  113. package/dist/server-core/src/serve-spa.d.ts.map +1 -0
  114. package/dist/server-core/src/services/driver-registry.d.ts +79 -0
  115. package/dist/server-core/src/services/driver-registry.d.ts.map +1 -0
  116. package/dist/server-core/src/singleton.d.ts +36 -0
  117. package/dist/server-core/src/singleton.d.ts.map +1 -0
  118. package/dist/server-core/src/storage/LocalStorageController.d.ts +47 -0
  119. package/dist/server-core/src/storage/LocalStorageController.d.ts.map +1 -0
  120. package/dist/server-core/src/storage/S3StorageController.d.ts +37 -0
  121. package/dist/server-core/src/storage/S3StorageController.d.ts.map +1 -0
  122. package/dist/server-core/src/storage/index.d.ts +26 -0
  123. package/dist/server-core/src/storage/index.d.ts.map +1 -0
  124. package/dist/server-core/src/storage/routes.d.ts +39 -0
  125. package/dist/server-core/src/storage/routes.d.ts.map +1 -0
  126. package/dist/server-core/src/storage/storage-registry.d.ts +79 -0
  127. package/dist/server-core/src/storage/storage-registry.d.ts.map +1 -0
  128. package/dist/server-core/src/storage/types.d.ts +104 -0
  129. package/dist/server-core/src/storage/types.d.ts.map +1 -0
  130. package/dist/server-core/src/types/index.d.ts +12 -0
  131. package/dist/server-core/src/types/index.d.ts.map +1 -0
  132. package/dist/server-core/src/utils/dev-port.d.ts +36 -0
  133. package/dist/server-core/src/utils/dev-port.d.ts.map +1 -0
  134. package/dist/server-core/src/utils/logger.d.ts +32 -0
  135. package/dist/server-core/src/utils/logger.d.ts.map +1 -0
  136. package/dist/server-core/src/utils/logging.d.ts +10 -0
  137. package/dist/server-core/src/utils/logging.d.ts.map +1 -0
  138. package/dist/server-core/src/utils/request-logger.d.ts +20 -0
  139. package/dist/server-core/src/utils/request-logger.d.ts.map +1 -0
  140. package/dist/server-core/src/utils/sql.d.ts +28 -0
  141. package/dist/server-core/src/utils/sql.d.ts.map +1 -0
  142. package/dist/server-mongodb/src/MongoBootstrapper.d.ts +18 -0
  143. package/dist/server-mongodb/src/MongoBootstrapper.d.ts.map +1 -0
  144. package/dist/server-mongodb/src/auth/ensure-collections.d.ts +3 -0
  145. package/dist/server-mongodb/src/auth/ensure-collections.d.ts.map +1 -0
  146. package/dist/server-mongodb/src/auth/services.d.ts +135 -0
  147. package/dist/server-mongodb/src/auth/services.d.ts.map +1 -0
  148. package/dist/server-mongodb/src/connection.d.ts +35 -0
  149. package/dist/server-mongodb/src/connection.d.ts.map +1 -0
  150. package/dist/server-mongodb/src/db/MongoConditionBuilder.d.ts +64 -0
  151. package/dist/server-mongodb/src/db/MongoConditionBuilder.d.ts.map +1 -0
  152. package/dist/server-mongodb/src/db/MongoEntityService.d.ts +98 -0
  153. package/dist/server-mongodb/src/db/MongoEntityService.d.ts.map +1 -0
  154. package/dist/server-mongodb/src/factory.d.ts +142 -0
  155. package/dist/server-mongodb/src/factory.d.ts.map +1 -0
  156. package/dist/server-mongodb/src/history/ensure-history-collection.d.ts +3 -0
  157. package/dist/server-mongodb/src/history/ensure-history-collection.d.ts.map +1 -0
  158. package/dist/server-mongodb/src/index.d.ts +18 -0
  159. package/dist/server-mongodb/src/index.d.ts.map +1 -0
  160. package/dist/server-mongodb/src/services/MongoDriver.d.ts +83 -0
  161. package/dist/server-mongodb/src/services/MongoDriver.d.ts.map +1 -0
  162. package/dist/server-mongodb/src/services/MongoHistoryService.d.ts +37 -0
  163. package/dist/server-mongodb/src/services/MongoHistoryService.d.ts.map +1 -0
  164. package/dist/server-mongodb/src/services/MongoRealtimeService.d.ts +86 -0
  165. package/dist/server-mongodb/src/services/MongoRealtimeService.d.ts.map +1 -0
  166. package/dist/server-mongodb/src/useMongoDriver.d.ts +18 -0
  167. package/dist/server-mongodb/src/useMongoDriver.d.ts.map +1 -0
  168. package/dist/server-mongodb/src/utils.d.ts +10 -0
  169. package/dist/server-mongodb/src/utils.d.ts.map +1 -0
  170. package/dist/server-mongodb/src/websocket.d.ts +7 -0
  171. package/dist/server-mongodb/src/websocket.d.ts.map +1 -0
  172. package/dist/types/src/controllers/analytics_controller.d.ts +8 -0
  173. package/dist/types/src/controllers/analytics_controller.d.ts.map +1 -0
  174. package/dist/types/src/controllers/auth.d.ts +120 -0
  175. package/dist/types/src/controllers/auth.d.ts.map +1 -0
  176. package/dist/types/src/controllers/client.d.ts +171 -0
  177. package/dist/types/src/controllers/client.d.ts.map +1 -0
  178. package/dist/types/src/controllers/collection_registry.d.ts +46 -0
  179. package/dist/types/src/controllers/collection_registry.d.ts.map +1 -0
  180. package/dist/types/src/controllers/customization_controller.d.ts +61 -0
  181. package/dist/types/src/controllers/customization_controller.d.ts.map +1 -0
  182. package/dist/types/src/controllers/data.d.ts +169 -0
  183. package/dist/types/src/controllers/data.d.ts.map +1 -0
  184. package/dist/types/src/controllers/data_driver.d.ts +161 -0
  185. package/dist/types/src/controllers/data_driver.d.ts.map +1 -0
  186. package/dist/types/src/controllers/database_admin.d.ts +12 -0
  187. package/dist/types/src/controllers/database_admin.d.ts.map +1 -0
  188. package/dist/types/src/controllers/dialogs_controller.d.ts +37 -0
  189. package/dist/types/src/controllers/dialogs_controller.d.ts.map +1 -0
  190. package/dist/types/src/controllers/effective_role.d.ts +5 -0
  191. package/dist/types/src/controllers/effective_role.d.ts.map +1 -0
  192. package/dist/types/src/controllers/email.d.ts +35 -0
  193. package/dist/types/src/controllers/email.d.ts.map +1 -0
  194. package/dist/types/src/controllers/index.d.ts +19 -0
  195. package/dist/types/src/controllers/index.d.ts.map +1 -0
  196. package/dist/types/src/controllers/local_config_persistence.d.ts +21 -0
  197. package/dist/types/src/controllers/local_config_persistence.d.ts.map +1 -0
  198. package/dist/types/src/controllers/navigation.d.ts +214 -0
  199. package/dist/types/src/controllers/navigation.d.ts.map +1 -0
  200. package/dist/types/src/controllers/registry.d.ts +55 -0
  201. package/dist/types/src/controllers/registry.d.ts.map +1 -0
  202. package/dist/types/src/controllers/side_dialogs_controller.d.ts +68 -0
  203. package/dist/types/src/controllers/side_dialogs_controller.d.ts.map +1 -0
  204. package/dist/types/src/controllers/side_entity_controller.d.ts +91 -0
  205. package/dist/types/src/controllers/side_entity_controller.d.ts.map +1 -0
  206. package/dist/types/src/controllers/snackbar.d.ts +25 -0
  207. package/dist/types/src/controllers/snackbar.d.ts.map +1 -0
  208. package/dist/types/src/controllers/storage.d.ts +172 -0
  209. package/dist/types/src/controllers/storage.d.ts.map +1 -0
  210. package/dist/types/src/index.d.ts +5 -0
  211. package/dist/types/src/index.d.ts.map +1 -0
  212. package/dist/types/src/rebase_context.d.ts +106 -0
  213. package/dist/types/src/rebase_context.d.ts.map +1 -0
  214. package/dist/types/src/types/backend.d.ts +537 -0
  215. package/dist/types/src/types/backend.d.ts.map +1 -0
  216. package/dist/types/src/types/builders.d.ts +16 -0
  217. package/dist/types/src/types/builders.d.ts.map +1 -0
  218. package/dist/types/src/types/chips.d.ts +6 -0
  219. package/dist/types/src/types/chips.d.ts.map +1 -0
  220. package/dist/types/src/types/collections.d.ts +857 -0
  221. package/dist/types/src/types/collections.d.ts.map +1 -0
  222. package/dist/types/src/types/cron.d.ts +103 -0
  223. package/dist/types/src/types/cron.d.ts.map +1 -0
  224. package/dist/types/src/types/data_source.d.ts +65 -0
  225. package/dist/types/src/types/data_source.d.ts.map +1 -0
  226. package/dist/types/src/types/entities.d.ts +146 -0
  227. package/dist/types/src/types/entities.d.ts.map +1 -0
  228. package/dist/types/src/types/entity_actions.d.ts +99 -0
  229. package/dist/types/src/types/entity_actions.d.ts.map +1 -0
  230. package/dist/types/src/types/entity_callbacks.d.ts +174 -0
  231. package/dist/types/src/types/entity_callbacks.d.ts.map +1 -0
  232. package/dist/types/src/types/entity_link_builder.d.ts +8 -0
  233. package/dist/types/src/types/entity_link_builder.d.ts.map +1 -0
  234. package/dist/types/src/types/entity_overrides.d.ts +11 -0
  235. package/dist/types/src/types/entity_overrides.d.ts.map +1 -0
  236. package/dist/types/src/types/entity_views.d.ts +62 -0
  237. package/dist/types/src/types/entity_views.d.ts.map +1 -0
  238. package/dist/types/src/types/export_import.d.ts +22 -0
  239. package/dist/types/src/types/export_import.d.ts.map +1 -0
  240. package/dist/types/src/types/index.d.ts +24 -0
  241. package/dist/types/src/types/index.d.ts.map +1 -0
  242. package/dist/types/src/types/locales.d.ts +5 -0
  243. package/dist/types/src/types/locales.d.ts.map +1 -0
  244. package/dist/types/src/types/modify_collections.d.ts +6 -0
  245. package/dist/types/src/types/modify_collections.d.ts.map +1 -0
  246. package/dist/types/src/types/plugins.d.ts +280 -0
  247. package/dist/types/src/types/plugins.d.ts.map +1 -0
  248. package/dist/types/src/types/properties.d.ts +1177 -0
  249. package/dist/types/src/types/properties.d.ts.map +1 -0
  250. package/dist/types/src/types/property_config.d.ts +71 -0
  251. package/dist/types/src/types/property_config.d.ts.map +1 -0
  252. package/dist/types/src/types/relations.d.ts +337 -0
  253. package/dist/types/src/types/relations.d.ts.map +1 -0
  254. package/dist/types/src/types/slots.d.ts +253 -0
  255. package/dist/types/src/types/slots.d.ts.map +1 -0
  256. package/dist/types/src/types/translations.d.ts +871 -0
  257. package/dist/types/src/types/translations.d.ts.map +1 -0
  258. package/dist/types/src/types/user_management_delegate.d.ts +122 -0
  259. package/dist/types/src/types/user_management_delegate.d.ts.map +1 -0
  260. package/dist/types/src/types/websockets.d.ts +79 -0
  261. package/dist/types/src/types/websockets.d.ts.map +1 -0
  262. package/dist/types/src/users/index.d.ts +3 -0
  263. package/dist/types/src/users/index.d.ts.map +1 -0
  264. package/dist/types/src/users/roles.d.ts +23 -0
  265. package/dist/types/src/users/roles.d.ts.map +1 -0
  266. package/dist/types/src/users/user.d.ts +47 -0
  267. package/dist/types/src/users/user.d.ts.map +1 -0
  268. package/dist/websocket-BZlPuJrt.js +220 -0
  269. package/dist/websocket-BZlPuJrt.js.map +1 -0
  270. package/package.json +79 -0
  271. package/src/MongoBootstrapper.ts +177 -0
  272. package/src/auth/ensure-collections.ts +94 -0
  273. package/src/auth/services.ts +638 -0
  274. package/src/connection.ts +60 -0
  275. package/src/db/MongoConditionBuilder.ts +181 -0
  276. package/src/db/MongoEntityService.ts +350 -0
  277. package/src/factory.ts +289 -0
  278. package/src/history/ensure-history-collection.ts +19 -0
  279. package/src/index.ts +25 -0
  280. package/src/services/MongoDriver.ts +297 -0
  281. package/src/services/MongoDriver.ts.backup +266 -0
  282. package/src/services/MongoHistoryService.ts +154 -0
  283. package/src/services/MongoRealtimeService.ts +394 -0
  284. package/src/useMongoDriver.ts +519 -0
  285. package/src/utils.ts +28 -0
  286. package/src/websocket.ts +257 -0
@@ -0,0 +1,135 @@
1
+ import { Db } from "mongodb";
2
+ /** Loose document type that allows string _id values (Rebase convention). */
3
+ export interface MongoDoc {
4
+ _id?: string;
5
+ [key: string]: any;
6
+ }
7
+ import { UserRepository, RoleRepository, TokenRepository, AuthRepository, UserData, CreateUserData, RoleData, CreateRoleData, RefreshTokenInfo, PasswordResetTokenInfo, UserIdentityData, ListUsersOptions, PaginatedUsersResult } from "@rebasepro/server-core";
8
+ export type Role = RoleData;
9
+ export declare class MongoUserService implements UserRepository {
10
+ private db;
11
+ constructor(db: Db);
12
+ private get collection();
13
+ private get identitiesCollection();
14
+ private get userRolesCollection();
15
+ private get rolesCollection();
16
+ createUser(data: CreateUserData): Promise<UserData>;
17
+ getUserById(id: string): Promise<UserData | null>;
18
+ getUserByEmail(email: string): Promise<UserData | null>;
19
+ getUserByIdentity(provider: string, providerId: string): Promise<UserData | null>;
20
+ getUserIdentities(userId: string): Promise<UserIdentityData[]>;
21
+ linkUserIdentity(userId: string, provider: string, providerId: string, profileData?: Record<string, unknown>): Promise<void>;
22
+ updateUser(id: string, data: Partial<Omit<CreateUserData, "id">>): Promise<UserData | null>;
23
+ deleteUser(id: string): Promise<void>;
24
+ listUsers(): Promise<UserData[]>;
25
+ listUsersPaginated(options?: ListUsersOptions): Promise<PaginatedUsersResult>;
26
+ updatePassword(id: string, passwordHash: string): Promise<void>;
27
+ setEmailVerified(id: string, verified: boolean): Promise<void>;
28
+ setVerificationToken(id: string, token: string | null): Promise<void>;
29
+ getUserByVerificationToken(token: string): Promise<UserData | null>;
30
+ getUserRoles(userId: string): Promise<RoleData[]>;
31
+ getUserRoleIds(userId: string): Promise<string[]>;
32
+ setUserRoles(userId: string, roleIds: string[]): Promise<void>;
33
+ assignDefaultRole(userId: string, roleId: string): Promise<void>;
34
+ getUserWithRoles(userId: string): Promise<{
35
+ user: UserData;
36
+ roles: RoleData[];
37
+ } | null>;
38
+ }
39
+ export declare class MongoRoleService implements RoleRepository {
40
+ private db;
41
+ constructor(db: Db);
42
+ private get collection();
43
+ getRoleById(id: string): Promise<RoleData | null>;
44
+ listRoles(): Promise<RoleData[]>;
45
+ createRole(data: CreateRoleData): Promise<RoleData>;
46
+ updateRole(id: string, data: Partial<Omit<RoleData, "id">>): Promise<RoleData | null>;
47
+ deleteRole(id: string): Promise<void>;
48
+ }
49
+ export declare class MongoRefreshTokenService {
50
+ private db;
51
+ constructor(db: Db);
52
+ private get collection();
53
+ createToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
54
+ findByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
55
+ deleteByHash(tokenHash: string): Promise<void>;
56
+ deleteAllForUser(userId: string): Promise<void>;
57
+ listForUser(userId: string): Promise<RefreshTokenInfo[]>;
58
+ deleteById(id: string, userId: string): Promise<void>;
59
+ }
60
+ export declare class MongoPasswordResetTokenService {
61
+ private db;
62
+ constructor(db: Db);
63
+ private get collection();
64
+ createToken(userId: string, tokenHash: string, expiresAt: Date): Promise<void>;
65
+ findValidByHash(tokenHash: string): Promise<{
66
+ userId: string;
67
+ expiresAt: Date;
68
+ } | null>;
69
+ markAsUsed(tokenHash: string): Promise<void>;
70
+ deleteAllForUser(userId: string): Promise<void>;
71
+ deleteExpired(): Promise<void>;
72
+ }
73
+ export declare class MongoTokenRepository implements TokenRepository {
74
+ private db;
75
+ private refreshTokenService;
76
+ private passwordResetTokenService;
77
+ constructor(db: Db);
78
+ createRefreshToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
79
+ findRefreshTokenByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
80
+ deleteRefreshToken(tokenHash: string): Promise<void>;
81
+ deleteAllRefreshTokensForUser(userId: string): Promise<void>;
82
+ listRefreshTokensForUser(userId: string): Promise<RefreshTokenInfo[]>;
83
+ deleteRefreshTokenById(id: string, userId: string): Promise<void>;
84
+ createPasswordResetToken(userId: string, tokenHash: string, expiresAt: Date): Promise<void>;
85
+ findValidPasswordResetToken(tokenHash: string): Promise<PasswordResetTokenInfo | null>;
86
+ markPasswordResetTokenUsed(tokenHash: string): Promise<void>;
87
+ deleteAllPasswordResetTokensForUser(userId: string): Promise<void>;
88
+ deleteExpiredTokens(): Promise<void>;
89
+ }
90
+ export declare class MongoAuthRepository implements AuthRepository {
91
+ private db;
92
+ private userService;
93
+ private roleService;
94
+ private tokenRepository;
95
+ constructor(db: Db);
96
+ createUser(data: CreateUserData): Promise<UserData>;
97
+ getUserById(id: string): Promise<UserData | null>;
98
+ getUserByEmail(email: string): Promise<UserData | null>;
99
+ getUserByIdentity(provider: string, providerId: string): Promise<UserData | null>;
100
+ getUserIdentities(userId: string): Promise<UserIdentityData[]>;
101
+ linkUserIdentity(userId: string, provider: string, providerId: string, profileData?: Record<string, unknown>): Promise<void>;
102
+ updateUser(id: string, data: Partial<Omit<CreateUserData, "id">>): Promise<UserData | null>;
103
+ deleteUser(id: string): Promise<void>;
104
+ listUsers(): Promise<UserData[]>;
105
+ listUsersPaginated(options?: ListUsersOptions): Promise<PaginatedUsersResult>;
106
+ updatePassword(id: string, passwordHash: string): Promise<void>;
107
+ setEmailVerified(id: string, verified: boolean): Promise<void>;
108
+ setVerificationToken(id: string, token: string | null): Promise<void>;
109
+ getUserByVerificationToken(token: string): Promise<UserData | null>;
110
+ getUserRoles(userId: string): Promise<RoleData[]>;
111
+ getUserRoleIds(userId: string): Promise<string[]>;
112
+ setUserRoles(userId: string, roleIds: string[]): Promise<void>;
113
+ assignDefaultRole(userId: string, roleId: string): Promise<void>;
114
+ getUserWithRoles(userId: string): Promise<{
115
+ user: UserData;
116
+ roles: RoleData[];
117
+ } | null>;
118
+ getRoleById(id: string): Promise<RoleData | null>;
119
+ listRoles(): Promise<RoleData[]>;
120
+ createRole(data: CreateRoleData): Promise<RoleData>;
121
+ updateRole(id: string, data: Partial<Omit<RoleData, "id">>): Promise<RoleData | null>;
122
+ deleteRole(id: string): Promise<void>;
123
+ createRefreshToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
124
+ findRefreshTokenByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
125
+ deleteRefreshToken(tokenHash: string): Promise<void>;
126
+ deleteAllRefreshTokensForUser(userId: string): Promise<void>;
127
+ listRefreshTokensForUser(userId: string): Promise<RefreshTokenInfo[]>;
128
+ deleteRefreshTokenById(id: string, userId: string): Promise<void>;
129
+ createPasswordResetToken(userId: string, tokenHash: string, expiresAt: Date): Promise<void>;
130
+ findValidPasswordResetToken(tokenHash: string): Promise<PasswordResetTokenInfo | null>;
131
+ markPasswordResetTokenUsed(tokenHash: string): Promise<void>;
132
+ deleteAllPasswordResetTokensForUser(userId: string): Promise<void>;
133
+ deleteExpiredTokens(): Promise<void>;
134
+ }
135
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/auth/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * MongoDB Connection
3
+ *
4
+ * Wraps MongoDB connection to implement the DatabaseConnection interface.
5
+ */
6
+ import { Db, MongoClient } from "mongodb";
7
+ import { DatabaseConnection } from "@rebasepro/types";
8
+ /**
9
+ * MongoDB database connection wrapper that implements DatabaseConnection interface.
10
+ */
11
+ export declare class MongoDBConnection implements DatabaseConnection {
12
+ readonly db: Db;
13
+ readonly client: MongoClient;
14
+ readonly type = "mongodb";
15
+ constructor(db: Db, client: MongoClient);
16
+ get isConnected(): boolean;
17
+ close(): Promise<void>;
18
+ }
19
+ /**
20
+ * Create a MongoDB database connection from a connection string.
21
+ *
22
+ * @param connectionString - MongoDB connection string (e.g., mongodb://localhost:27017)
23
+ * @param databaseName - Name of the database to use
24
+ * @returns Promise resolving to MongoDBConnection
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const connection = await createMongoDBConnection(
29
+ * "mongodb://localhost:27017",
30
+ * "my_database"
31
+ * );
32
+ * ```
33
+ */
34
+ export declare function createMongoDBConnection(connectionString: string, databaseName: string): Promise<MongoDBConnection>;
35
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/connection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;aAIpC,EAAE,EAAE,EAAE;aACN,MAAM,EAAE,WAAW;IAJvC,QAAQ,CAAC,IAAI,aAAa;gBAGN,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,WAAW;IAGvC,IAAI,WAAW,IAAI,OAAO,CASzB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CACzC,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAK5B"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * MongoDB Condition Builder
3
+ *
4
+ * Translates Rebase filter conditions to MongoDB query operators.
5
+ */
6
+ import { FilterValues } from "@rebasepro/types";
7
+ import { Filter, Document } from "mongodb";
8
+ /**
9
+ * MongoDB Condition Builder
10
+ *
11
+ * Provides static methods to translate Rebase filter conditions
12
+ * to MongoDB query filters.
13
+ */
14
+ export declare class MongoConditionBuilder {
15
+ /**
16
+ * Build MongoDB filter conditions from Rebase FilterValues
17
+ *
18
+ * @param filter - Rebase filter values
19
+ * @returns Array of MongoDB filter objects
20
+ */
21
+ static buildFilterConditions<M extends Record<string, any>>(filter: FilterValues<Extract<keyof M, string>>): Filter<Document>[];
22
+ /**
23
+ * Build search conditions for text search
24
+ *
25
+ * @param searchString - Text to search for
26
+ * @param properties - Properties to search in
27
+ * @returns Array of MongoDB filter objects for text search
28
+ */
29
+ static buildSearchConditions(searchString: string, properties: Record<string, any>): Filter<Document>[];
30
+ /**
31
+ * Combine multiple conditions with AND operator
32
+ *
33
+ * @param conditions - Array of filter conditions
34
+ * @returns Combined filter or undefined if empty
35
+ */
36
+ static combineConditionsWithAnd(conditions: Filter<Document>[]): Filter<Document> | undefined;
37
+ /**
38
+ * Combine multiple conditions with OR operator
39
+ *
40
+ * @param conditions - Array of filter conditions
41
+ * @returns Combined filter or undefined if empty
42
+ */
43
+ static combineConditionsWithOr(conditions: Filter<Document>[]): Filter<Document> | undefined;
44
+ /**
45
+ * Build a complete MongoDB query from Rebase options
46
+ *
47
+ * @param options - Rebase fetch options
48
+ * @returns MongoDB filter object
49
+ */
50
+ static buildQuery<M extends Record<string, any>>(options: {
51
+ filter?: FilterValues<Extract<keyof M, string>>;
52
+ searchString?: string;
53
+ properties?: Record<string, any>;
54
+ }): Filter<Document>;
55
+ /**
56
+ * Build MongoDB sort options from Rebase options
57
+ *
58
+ * @param orderBy - Field to order by
59
+ * @param order - Sort direction
60
+ * @returns MongoDB sort object
61
+ */
62
+ static buildSort(orderBy?: string, order?: "asc" | "desc"): Record<string, 1 | -1> | undefined;
63
+ }
64
+ //# sourceMappingURL=MongoConditionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoConditionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/db/MongoConditionBuilder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAiB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAkB3C;;;;;GAKG;AACH,qBAAa,qBAAqB;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtD,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC/C,MAAM,CAAC,QAAQ,CAAC,EAAE;IA+BrB;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CACxB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAChC,MAAM,CAAC,QAAQ,CAAC,EAAE;IAwBrB;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAM7F;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAM5F;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE;QACtD,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAChD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACpC,GAAG,MAAM,CAAC,QAAQ,CAAC;IA2BpB;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CACZ,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GACvB,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS;CAIxC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * MongoDB Entity Service
3
+ *
4
+ * Implements EntityRepository interface for MongoDB.
5
+ * Provides all CRUD operations for entities.
6
+ */
7
+ import { Db } from "mongodb";
8
+ import { Entity, FilterValues, EntityRepository, EntityCollection } from "@rebasepro/types";
9
+ /**
10
+ * MongoDB Entity Service
11
+ *
12
+ * Implements the EntityRepository interface for MongoDB.
13
+ * Provides all CRUD operations for entities stored in MongoDB collections.
14
+ */
15
+ export declare class MongoEntityService implements EntityRepository {
16
+ private db;
17
+ constructor(db: Db);
18
+ /**
19
+ * Get a MongoDB collection by its path
20
+ */
21
+ private getCollection;
22
+ /**
23
+ * Convert a string ID to ObjectId if it's a valid ObjectId string
24
+ */
25
+ private toObjectId;
26
+ /**
27
+ * Convert a MongoDB document to a Rebase Entity
28
+ */
29
+ private documentToEntity;
30
+ /**
31
+ * Convert values from MongoDB format to Rebase format
32
+ */
33
+ private convertFromMongoValues;
34
+ /**
35
+ * Convert a single value from MongoDB format
36
+ */
37
+ private convertFromMongoValue;
38
+ /**
39
+ * Convert values to MongoDB format for storage
40
+ */
41
+ private convertToMongoValues;
42
+ /**
43
+ * Convert a single value to MongoDB format
44
+ */
45
+ private convertToMongoValue;
46
+ /**
47
+ * Fetch a single entity by ID
48
+ */
49
+ fetchEntity<M extends Record<string, any>>(collectionPath: string, entityId: string | number, _databaseId?: string): Promise<Entity<M> | undefined>;
50
+ /**
51
+ * Fetch a collection of entities with optional filtering, ordering, and pagination
52
+ */
53
+ fetchCollection<M extends Record<string, any>>(collectionPath: string, options?: {
54
+ filter?: FilterValues<Extract<keyof M, string>>;
55
+ orderBy?: string;
56
+ order?: "desc" | "asc";
57
+ limit?: number;
58
+ startAfter?: any;
59
+ searchString?: string;
60
+ databaseId?: string;
61
+ collection?: EntityCollection;
62
+ }): Promise<Entity<M>[]>;
63
+ /**
64
+ * Search entities by text
65
+ */
66
+ searchEntities<M extends Record<string, any>>(collectionPath: string, searchString: string, options?: {
67
+ filter?: FilterValues<Extract<keyof M, string>>;
68
+ orderBy?: string;
69
+ order?: "desc" | "asc";
70
+ limit?: number;
71
+ databaseId?: string;
72
+ collection?: EntityCollection;
73
+ }): Promise<Entity<M>[]>;
74
+ /**
75
+ * Count entities in a collection
76
+ */
77
+ countEntities<M extends Record<string, any>>(collectionPath: string, options?: {
78
+ filter?: FilterValues<Extract<keyof M, string>>;
79
+ databaseId?: string;
80
+ }): Promise<number>;
81
+ /**
82
+ * Save an entity (create or update)
83
+ */
84
+ saveEntity<M extends Record<string, any>>(collectionPath: string, values: Partial<M>, entityId?: string | number, _databaseId?: string): Promise<Entity<M>>;
85
+ /**
86
+ * Delete an entity by ID
87
+ */
88
+ deleteEntity(collectionPath: string, entityId: string | number, _databaseId?: string): Promise<void>;
89
+ /**
90
+ * Check if a field value is unique in a collection
91
+ */
92
+ checkUniqueField(collectionPath: string, fieldName: string, value: any, excludeEntityId?: string, _databaseId?: string): Promise<boolean>;
93
+ /**
94
+ * Generate a new entity ID
95
+ */
96
+ generateEntityId(): string;
97
+ }
98
+ //# sourceMappingURL=MongoEntityService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoEntityService.d.ts","sourceRoot":"","sources":["../../../../src/db/MongoEntityService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * MongoDB Backend Factory
3
+ *
4
+ * This module provides factory functions for creating MongoDB backend instances.
5
+ * It abstracts the creation of drivers, realtime services, and entity services.
6
+ */
7
+ import { Db, MongoClient } from "mongodb";
8
+ import { DataDriver, EntityCollection } from "@rebasepro/types";
9
+ import { MongoEntityService } from "./db/MongoEntityService";
10
+ import { MongoRealtimeService } from "./services/MongoRealtimeService";
11
+ import { MongoDriver } from "./services/MongoDriver";
12
+ import { MongoHistoryService, HistoryRetentionConfig } from "./services/MongoHistoryService";
13
+ import { BackendConfig, BackendInstance, CollectionRegistryInterface, EntityRepository, DatabaseAdmin } from "@rebasepro/types";
14
+ /**
15
+ * Configuration for creating a MongoDB backend.
16
+ */
17
+ export interface MongoBackendConfig extends BackendConfig {
18
+ type: "mongodb";
19
+ /** MongoDB database instance */
20
+ connection: Db;
21
+ /** MongoDB client (for connection management) */
22
+ client: MongoClient;
23
+ /** Collections to register (optional, can be registered later) */
24
+ collections?: EntityCollection[];
25
+ /** History retention configuration */
26
+ historyRetention?: Partial<HistoryRetentionConfig>;
27
+ }
28
+ /**
29
+ * MongoDB-specific backend instance with additional MongoDB types.
30
+ */
31
+ export interface MongoBackendInstance extends BackendInstance {
32
+ /** The MongoDB database instance */
33
+ db: Db;
34
+ /** The MongoDB client */
35
+ client: MongoClient;
36
+ /** MongoDB DataDriver for use with Rebase */
37
+ driver: DataDriver;
38
+ /** Entity service for direct database operations */
39
+ entityService: MongoEntityService;
40
+ /** Realtime service for subscriptions */
41
+ realtimeService: MongoRealtimeService;
42
+ /** Admin capabilities (DocumentAdmin + SchemaAdmin) */
43
+ admin: DatabaseAdmin;
44
+ }
45
+ /**
46
+ * Simple in-memory collection registry for MongoDB.
47
+ */
48
+ export declare class MongoCollectionRegistry implements CollectionRegistryInterface {
49
+ private collections;
50
+ /**
51
+ * Register a collection
52
+ */
53
+ register(collection: EntityCollection): void;
54
+ /**
55
+ * Get a collection by its path
56
+ */
57
+ getCollectionByPath(path: string): EntityCollection | undefined;
58
+ /**
59
+ * Get all registered collections
60
+ */
61
+ getCollections(): EntityCollection[];
62
+ }
63
+ /**
64
+ * Create a complete MongoDB backend instance.
65
+ *
66
+ * This factory function creates all the necessary services for a MongoDB backend:
67
+ * - MongoDBConnection (database connection wrapper)
68
+ * - MongoEntityService (implements EntityRepository)
69
+ * - MongoRealtimeService (implements RealtimeProvider)
70
+ * - MongoCollectionRegistry (implements CollectionRegistryInterface)
71
+ * - MongoDriver (for Rebase integration)
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * import { createMongoBackend } from "@rebasepro/server-mongodb";
76
+ *
77
+ * const client = new MongoClient("mongodb://localhost:27017");
78
+ * await client.connect();
79
+ * const db = client.db("my_database");
80
+ *
81
+ * const backend = createMongoBackend({
82
+ * type: "mongodb",
83
+ * connection: db,
84
+ * client: client,
85
+ * collections: myCollections
86
+ * });
87
+ *
88
+ * // Use the backend
89
+ * const entities = await backend.entityRepository.fetchCollection("users", {});
90
+ * ```
91
+ */
92
+ export declare function createMongoBackend(config: MongoBackendConfig): MongoBackendInstance;
93
+ /**
94
+ * Create a MongoDB DataDriver.
95
+ *
96
+ * This is a convenience function when you only need the DataDriver
97
+ * without the full backend instance.
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * import { createMongoDelegate } from "@rebasepro/server-mongodb";
102
+ *
103
+ * const delegate = createMongoDelegate(db);
104
+ * ```
105
+ */
106
+ export declare function createMongoDelegate(db: Db, realtimeService?: MongoRealtimeService, historyService?: MongoHistoryService): MongoDriver;
107
+ /**
108
+ * Create a RealtimeService for MongoDB.
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * import { createMongoRealtimeService } from "@rebasepro/server-mongodb";
113
+ *
114
+ * const realtimeService = createMongoRealtimeService(db);
115
+ * ```
116
+ */
117
+ export declare function createMongoRealtimeService(db: Db): MongoRealtimeService;
118
+ /**
119
+ * Create a MongoDB entity repository.
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * import { createMongoEntityRepository } from "@rebasepro/server-mongodb";
124
+ *
125
+ * const repository = createMongoEntityRepository(db);
126
+ * const users = await repository.fetchCollection("users", {});
127
+ * ```
128
+ */
129
+ export declare function createMongoEntityRepository(db: Db): EntityRepository;
130
+ /**
131
+ * Check if a backend config is for MongoDB.
132
+ */
133
+ export declare function isMongoBackendConfig(config: BackendConfig): config is MongoBackendConfig;
134
+ /**
135
+ * Check if a driver config is for MongoDB.
136
+ */
137
+ export declare function isMongoDriverConfig(obj: unknown): obj is {
138
+ type: "mongodb";
139
+ connection: Db;
140
+ client: MongoClient;
141
+ };
142
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,2BAA2B,EAAE,gBAAgB,EAAwC,aAAa,EAAiD,MAAM,kBAAkB,CAAC;AAErN;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACrD,IAAI,EAAE,SAAS,CAAC;IAChB,gCAAgC;IAChC,UAAU,EAAE,EAAE,CAAC;IACf,iDAAiD;IACjD,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD,oCAAoC;IACpC,EAAE,EAAE,EAAE,CAAC;IACP,yBAAyB;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,oDAAoD;IACpD,aAAa,EAAE,kBAAkB,CAAC;IAClC,yCAAyC;IACzC,eAAe,EAAE,oBAAoB,CAAC;IACtC,uDAAuD;IACvD,KAAK,EAAE,aAAa,CAAC;CACxB;AAMD;;GAEG;AACH,qBAAa,uBAAwB,YAAW,2BAA2B;IACvE,OAAO,CAAC,WAAW,CAAuC;IAE1D;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAI5C;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D;;OAEG;IACH,cAAc,IAAI,gBAAgB,EAAE;CAGvC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,oBAAoB,CAgGnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,EAAE,EACN,eAAe,CAAC,EAAE,oBAAoB,EACtC,cAAc,CAAC,EAAE,mBAAmB,GACrC,WAAW,CAIb;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,EAAE,GAAG,oBAAoB,CAEvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAEpE;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,kBAAkB,CAIxF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,EAAE,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAOjH"}
@@ -0,0 +1,3 @@
1
+ import { Db } from "mongodb";
2
+ export declare function ensureHistoryCollectionExists(db: Db): Promise<void>;
3
+ //# sourceMappingURL=ensure-history-collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-history-collection.d.ts","sourceRoot":"","sources":["../../../../src/history/ensure-history-collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,wBAAsB,6BAA6B,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @rebasepro/server-mongodb
3
+ *
4
+ * MongoDB backend implementation for Rebase
5
+ * This package provides a complete backend solution for Rebase applications
6
+ * using MongoDB as the database.
7
+ *
8
+ * The package implements the abstract interfaces from @rebasepro/server-core
9
+ * (EntityRepository, RealtimeProvider, CollectionRegistryInterface, etc.)
10
+ */
11
+ export * from "./connection";
12
+ export * from "./factory";
13
+ export * from "./db/MongoEntityService";
14
+ export * from "./db/MongoConditionBuilder";
15
+ export * from "./services/MongoRealtimeService";
16
+ export * from "./services/MongoDriver";
17
+ export * from "./MongoBootstrapper";
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAG1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * MongoDB DataDriver Delegate
3
+ *
4
+ * Implements the DataDriver interface for Rebase frontend integration.
5
+ * This is the main entry point for Rebase to interact with MongoDB.
6
+ */
7
+ import { Db } from "mongodb";
8
+ import { DataDriver, DeleteEntityProps, Entity, EntityCollection, FetchCollectionProps, FetchEntityProps, ListenCollectionProps, ListenEntityProps, SaveEntityProps } from "@rebasepro/types";
9
+ import { MongoEntityService } from "../db/MongoEntityService";
10
+ import { MongoRealtimeService } from "./MongoRealtimeService";
11
+ import { MongoHistoryService } from "./MongoHistoryService";
12
+ /**
13
+ * MongoDB DataDriver Delegate
14
+ *
15
+ * Implements the DataDriver interface for Rebase.
16
+ * Provides all data operations needed by the Rebase frontend.
17
+ */
18
+ export declare class MongoDriver implements DataDriver {
19
+ private db;
20
+ key: string;
21
+ initialised: boolean;
22
+ private entityService;
23
+ private realtimeService;
24
+ historyService: MongoHistoryService;
25
+ constructor(db: Db, realtimeService?: MongoRealtimeService, historyService?: MongoHistoryService);
26
+ /**
27
+ * Get the current timestamp
28
+ */
29
+ currentTime(): Date;
30
+ /**
31
+ * Fetch a collection of entities
32
+ */
33
+ fetchCollection<M extends Record<string, any>>({ path, collection, filter, limit, startAfter, orderBy, searchString, order }: FetchCollectionProps<M>): Promise<Entity<M>[]>;
34
+ /**
35
+ * Listen to collection changes
36
+ */
37
+ listenCollection<M extends Record<string, any>>({ path, collection, filter, limit, startAfter, orderBy, searchString, order, onUpdate, onError }: ListenCollectionProps<M>): () => void;
38
+ /**
39
+ * Fetch a single entity
40
+ */
41
+ fetchEntity<M extends Record<string, any>>({ path, entityId, databaseId, collection }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
42
+ /**
43
+ * Listen to entity changes
44
+ */
45
+ listenEntity<M extends Record<string, any>>({ path, entityId, collection, onUpdate, onError }: ListenEntityProps<M>): () => void;
46
+ /**
47
+ * Save an entity (create or update)
48
+ */
49
+ saveEntity<M extends Record<string, any>>({ path, entityId, values, previousValues, collection, status }: SaveEntityProps<M>): Promise<Entity<M>>;
50
+ /**
51
+ * Delete an entity
52
+ */
53
+ deleteEntity<M extends Record<string, any>>({ entity, collection }: DeleteEntityProps<M>): Promise<void>;
54
+ /**
55
+ * Check if a field value is unique
56
+ */
57
+ checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
58
+ /**
59
+ * Generate a new entity ID
60
+ */
61
+ generateEntityId(path: string, collection?: EntityCollection): string;
62
+ /**
63
+ * Count entities in a collection
64
+ */
65
+ countEntities<M extends Record<string, any>>({ path, collection, filter }: FetchCollectionProps<M>): Promise<number>;
66
+ /**
67
+ * Generate a unique subscription ID
68
+ */
69
+ private generateSubscriptionId;
70
+ /**
71
+ * Check if the delegate is ready
72
+ */
73
+ isReady(): boolean;
74
+ /**
75
+ * Get the underlying entity service for direct access
76
+ */
77
+ getEntityService(): MongoEntityService;
78
+ /**
79
+ * Get the underlying realtime service for direct access
80
+ */
81
+ getRealtimeService(): MongoRealtimeService;
82
+ }
83
+ //# sourceMappingURL=MongoDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoDriver.d.ts","sourceRoot":"","sources":["../../../../src/services/MongoDriver.ts"],"names":[],"mappings":"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"}