modelence 0.9.0-dev.0 → 0.9.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 (377) hide show
  1. package/dist/bin/modelence.js +3 -57
  2. package/dist/bin/modelence.js.map +1 -1
  3. package/dist/chunk-3S2FFBNS.js +2 -0
  4. package/dist/chunk-3S2FFBNS.js.map +1 -0
  5. package/dist/chunk-55J6XMHW.js +2 -0
  6. package/dist/chunk-55J6XMHW.js.map +1 -0
  7. package/dist/chunk-C3UESBRX.js +2 -0
  8. package/dist/chunk-C3UESBRX.js.map +1 -0
  9. package/dist/chunk-DO5TZLF5.js +2 -0
  10. package/dist/chunk-DO5TZLF5.js.map +1 -0
  11. package/dist/chunk-EAKMFYSK.js +3 -0
  12. package/dist/chunk-EAKMFYSK.js.map +1 -0
  13. package/dist/chunk-PB6WQQ4L.js +3 -0
  14. package/dist/chunk-PB6WQQ4L.js.map +1 -0
  15. package/dist/client.d.ts +133 -10
  16. package/dist/client.js +1 -14
  17. package/dist/client.js.map +1 -1
  18. package/dist/index-CwdohC5n.d.ts +15 -0
  19. package/dist/index.d.ts +31 -6
  20. package/dist/index.js +1 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/mongo.d.ts +3 -2
  23. package/dist/mongo.js +1 -2
  24. package/dist/mongo.js.map +1 -1
  25. package/dist/package-PESFLDOK.js +2 -0
  26. package/dist/package-PESFLDOK.js.map +1 -0
  27. package/dist/server.d.ts +537 -19
  28. package/dist/server.js +18 -15
  29. package/dist/server.js.map +1 -1
  30. package/dist/telemetry.d.ts +11 -2
  31. package/dist/telemetry.js +1 -1
  32. package/dist/telemetry.js.map +1 -1
  33. package/dist/types-BOFsm7A2.d.ts +155 -0
  34. package/dist/{data/store.d.ts → types-V9eDnP35.d.ts} +234 -15
  35. package/dist/types.d.ts +7 -10
  36. package/dist/types.js +1 -1
  37. package/dist/types.js.map +1 -1
  38. package/package.json +6 -5
  39. package/dist/app/authConfig.d.ts +0 -68
  40. package/dist/app/authConfig.d.ts.map +0 -1
  41. package/dist/app/authConfig.js +0 -8
  42. package/dist/app/authConfig.js.map +0 -1
  43. package/dist/app/backendApi.d.ts +0 -29
  44. package/dist/app/backendApi.d.ts.map +0 -1
  45. package/dist/app/backendApi.js +0 -69
  46. package/dist/app/backendApi.js.map +0 -1
  47. package/dist/app/email.d.ts +0 -3
  48. package/dist/app/email.d.ts.map +0 -1
  49. package/dist/app/email.js +0 -8
  50. package/dist/app/email.js.map +0 -1
  51. package/dist/app/emailConfig.d.ts +0 -27
  52. package/dist/app/emailConfig.d.ts.map +0 -1
  53. package/dist/app/emailConfig.js +0 -8
  54. package/dist/app/emailConfig.js.map +0 -1
  55. package/dist/app/index.d.ts +0 -20
  56. package/dist/app/index.d.ts.map +0 -1
  57. package/dist/app/index.js +0 -258
  58. package/dist/app/index.js.map +0 -1
  59. package/dist/app/loggerProcess.d.ts +0 -5
  60. package/dist/app/loggerProcess.d.ts.map +0 -1
  61. package/dist/app/loggerProcess.js +0 -90
  62. package/dist/app/loggerProcess.js.map +0 -1
  63. package/dist/app/metrics.d.ts +0 -6
  64. package/dist/app/metrics.d.ts.map +0 -1
  65. package/dist/app/metrics.js +0 -92
  66. package/dist/app/metrics.js.map +0 -1
  67. package/dist/app/module.d.ts +0 -77
  68. package/dist/app/module.d.ts.map +0 -1
  69. package/dist/app/module.js +0 -46
  70. package/dist/app/module.js.map +0 -1
  71. package/dist/app/server.d.ts +0 -37
  72. package/dist/app/server.d.ts.map +0 -1
  73. package/dist/app/server.js +0 -198
  74. package/dist/app/server.js.map +0 -1
  75. package/dist/app/state.d.ts +0 -19
  76. package/dist/app/state.d.ts.map +0 -1
  77. package/dist/app/state.js +0 -27
  78. package/dist/app/state.js.map +0 -1
  79. package/dist/app/websocketConfig.d.ts +0 -7
  80. package/dist/app/websocketConfig.d.ts.map +0 -1
  81. package/dist/app/websocketConfig.js +0 -8
  82. package/dist/app/websocketConfig.js.map +0 -1
  83. package/dist/auth/client/index.d.ts +0 -69
  84. package/dist/auth/client/index.d.ts.map +0 -1
  85. package/dist/auth/client/index.js +0 -79
  86. package/dist/auth/client/index.js.map +0 -1
  87. package/dist/auth/db.d.ts +0 -176
  88. package/dist/auth/db.d.ts.map +0 -1
  89. package/dist/auth/db.js +0 -117
  90. package/dist/auth/db.js.map +0 -1
  91. package/dist/auth/deleteUser.d.ts +0 -5
  92. package/dist/auth/deleteUser.d.ts.map +0 -1
  93. package/dist/auth/deleteUser.js +0 -34
  94. package/dist/auth/deleteUser.js.map +0 -1
  95. package/dist/auth/disposableEmails.d.ts +0 -6
  96. package/dist/auth/disposableEmails.d.ts.map +0 -1
  97. package/dist/auth/disposableEmails.js +0 -47
  98. package/dist/auth/disposableEmails.js.map +0 -1
  99. package/dist/auth/index.d.ts +0 -7
  100. package/dist/auth/index.d.ts.map +0 -1
  101. package/dist/auth/index.js +0 -33
  102. package/dist/auth/index.js.map +0 -1
  103. package/dist/auth/login.d.ts +0 -9
  104. package/dist/auth/login.d.ts.map +0 -1
  105. package/dist/auth/login.js +0 -100
  106. package/dist/auth/login.js.map +0 -1
  107. package/dist/auth/password.d.ts +0 -14
  108. package/dist/auth/password.d.ts.map +0 -1
  109. package/dist/auth/password.js +0 -26
  110. package/dist/auth/password.js.map +0 -1
  111. package/dist/auth/profile.d.ts +0 -10
  112. package/dist/auth/profile.d.ts.map +0 -1
  113. package/dist/auth/profile.js +0 -13
  114. package/dist/auth/profile.js.map +0 -1
  115. package/dist/auth/providers/github.d.ts +0 -3
  116. package/dist/auth/providers/github.d.ts.map +0 -1
  117. package/dist/auth/providers/github.js +0 -122
  118. package/dist/auth/providers/github.js.map +0 -1
  119. package/dist/auth/providers/google.d.ts +0 -3
  120. package/dist/auth/providers/google.d.ts.map +0 -1
  121. package/dist/auth/providers/google.js +0 -108
  122. package/dist/auth/providers/google.js.map +0 -1
  123. package/dist/auth/providers/oauth-common.d.ts +0 -13
  124. package/dist/auth/providers/oauth-common.d.ts.map +0 -1
  125. package/dist/auth/providers/oauth-common.js +0 -109
  126. package/dist/auth/providers/oauth-common.js.map +0 -1
  127. package/dist/auth/resetPassword.d.ts +0 -10
  128. package/dist/auth/resetPassword.d.ts.map +0 -1
  129. package/dist/auth/resetPassword.js +0 -108
  130. package/dist/auth/resetPassword.js.map +0 -1
  131. package/dist/auth/role.d.ts +0 -8
  132. package/dist/auth/role.d.ts.map +0 -1
  133. package/dist/auth/role.js +0 -37
  134. package/dist/auth/role.js.map +0 -1
  135. package/dist/auth/session.d.ts +0 -24
  136. package/dist/auth/session.d.ts.map +0 -1
  137. package/dist/auth/session.js +0 -84
  138. package/dist/auth/session.js.map +0 -1
  139. package/dist/auth/signup.d.ts +0 -3
  140. package/dist/auth/signup.d.ts.map +0 -1
  141. package/dist/auth/signup.js +0 -89
  142. package/dist/auth/signup.js.map +0 -1
  143. package/dist/auth/templates/emailVerficationTemplate.d.ts +0 -6
  144. package/dist/auth/templates/emailVerficationTemplate.d.ts.map +0 -1
  145. package/dist/auth/templates/emailVerficationTemplate.js +0 -9
  146. package/dist/auth/templates/emailVerficationTemplate.js.map +0 -1
  147. package/dist/auth/types.d.ts +0 -22
  148. package/dist/auth/types.d.ts.map +0 -1
  149. package/dist/auth/types.js +0 -2
  150. package/dist/auth/types.js.map +0 -1
  151. package/dist/auth/user.d.ts +0 -5
  152. package/dist/auth/user.d.ts.map +0 -1
  153. package/dist/auth/user.js +0 -152
  154. package/dist/auth/user.js.map +0 -1
  155. package/dist/auth/validators.d.ts +0 -3
  156. package/dist/auth/validators.d.ts.map +0 -1
  157. package/dist/auth/validators.js +0 -8
  158. package/dist/auth/validators.js.map +0 -1
  159. package/dist/auth/verification.d.ts +0 -8
  160. package/dist/auth/verification.d.ts.map +0 -1
  161. package/dist/auth/verification.js +0 -94
  162. package/dist/auth/verification.js.map +0 -1
  163. package/dist/bin/auth.d.ts +0 -4
  164. package/dist/bin/auth.d.ts.map +0 -1
  165. package/dist/bin/auth.js +0 -48
  166. package/dist/bin/auth.js.map +0 -1
  167. package/dist/bin/build.d.ts +0 -2
  168. package/dist/bin/build.d.ts.map +0 -1
  169. package/dist/bin/build.js +0 -78
  170. package/dist/bin/build.js.map +0 -1
  171. package/dist/bin/config.d.ts +0 -11
  172. package/dist/bin/config.d.ts.map +0 -1
  173. package/dist/bin/config.js +0 -91
  174. package/dist/bin/config.js.map +0 -1
  175. package/dist/bin/deploy.d.ts +0 -6
  176. package/dist/bin/deploy.d.ts.map +0 -1
  177. package/dist/bin/deploy.js +0 -129
  178. package/dist/bin/deploy.js.map +0 -1
  179. package/dist/bin/dev.d.ts +0 -2
  180. package/dist/bin/dev.d.ts.map +0 -1
  181. package/dist/bin/dev.js +0 -14
  182. package/dist/bin/dev.js.map +0 -1
  183. package/dist/bin/modelence.d.ts +0 -3
  184. package/dist/bin/modelence.d.ts.map +0 -1
  185. package/dist/bin/setup.d.ts +0 -5
  186. package/dist/bin/setup.d.ts.map +0 -1
  187. package/dist/bin/setup.js +0 -91
  188. package/dist/bin/setup.js.map +0 -1
  189. package/dist/bin/start.d.ts +0 -2
  190. package/dist/bin/start.d.ts.map +0 -1
  191. package/dist/bin/start.js +0 -15
  192. package/dist/bin/start.js.map +0 -1
  193. package/dist/client/AppProvider.d.ts +0 -8
  194. package/dist/client/AppProvider.d.ts.map +0 -1
  195. package/dist/client/AppProvider.js +0 -31
  196. package/dist/client/AppProvider.js.map +0 -1
  197. package/dist/client/errorHandler.d.ts +0 -4
  198. package/dist/client/errorHandler.d.ts.map +0 -1
  199. package/dist/client/errorHandler.js +0 -10
  200. package/dist/client/errorHandler.js.map +0 -1
  201. package/dist/client/localStorage.d.ts +0 -3
  202. package/dist/client/localStorage.d.ts.map +0 -1
  203. package/dist/client/localStorage.js +0 -14
  204. package/dist/client/localStorage.js.map +0 -1
  205. package/dist/client/method.d.ts +0 -6
  206. package/dist/client/method.d.ts.map +0 -1
  207. package/dist/client/method.js +0 -52
  208. package/dist/client/method.js.map +0 -1
  209. package/dist/client/renderApp.d.ts +0 -9
  210. package/dist/client/renderApp.d.ts.map +0 -1
  211. package/dist/client/renderApp.js +0 -28
  212. package/dist/client/renderApp.js.map +0 -1
  213. package/dist/client/session.d.ts +0 -34
  214. package/dist/client/session.d.ts.map +0 -1
  215. package/dist/client/session.js +0 -83
  216. package/dist/client/session.js.map +0 -1
  217. package/dist/client.d.ts.map +0 -1
  218. package/dist/config/client.d.ts +0 -10
  219. package/dist/config/client.d.ts.map +0 -1
  220. package/dist/config/client.js +0 -14
  221. package/dist/config/client.js.map +0 -1
  222. package/dist/config/server.d.ts +0 -48
  223. package/dist/config/server.d.ts.map +0 -1
  224. package/dist/config/server.js +0 -85
  225. package/dist/config/server.js.map +0 -1
  226. package/dist/config/sync.d.ts +0 -2
  227. package/dist/config/sync.d.ts.map +0 -1
  228. package/dist/config/sync.js +0 -32
  229. package/dist/config/sync.js.map +0 -1
  230. package/dist/config/types.d.ts +0 -19
  231. package/dist/config/types.d.ts.map +0 -1
  232. package/dist/config/types.js +0 -2
  233. package/dist/config/types.js.map +0 -1
  234. package/dist/cron/jobs.d.ts +0 -13
  235. package/dist/cron/jobs.d.ts.map +0 -1
  236. package/dist/cron/jobs.js +0 -155
  237. package/dist/cron/jobs.js.map +0 -1
  238. package/dist/cron/types.d.ts +0 -29
  239. package/dist/cron/types.d.ts.map +0 -1
  240. package/dist/cron/types.js +0 -2
  241. package/dist/cron/types.js.map +0 -1
  242. package/dist/data/schemaSerializer.d.ts +0 -37
  243. package/dist/data/schemaSerializer.d.ts.map +0 -1
  244. package/dist/data/schemaSerializer.js +0 -104
  245. package/dist/data/schemaSerializer.js.map +0 -1
  246. package/dist/data/store.d.ts.map +0 -1
  247. package/dist/data/store.js +0 -501
  248. package/dist/data/store.js.map +0 -1
  249. package/dist/data/types.d.ts +0 -47
  250. package/dist/data/types.d.ts.map +0 -1
  251. package/dist/data/types.js +0 -35
  252. package/dist/data/types.js.map +0 -1
  253. package/dist/db/client.d.ts +0 -5
  254. package/dist/db/client.d.ts.map +0 -1
  255. package/dist/db/client.js +0 -41
  256. package/dist/db/client.js.map +0 -1
  257. package/dist/error.d.ts +0 -16
  258. package/dist/error.d.ts.map +0 -1
  259. package/dist/error.js +0 -24
  260. package/dist/error.js.map +0 -1
  261. package/dist/index.d.ts.map +0 -1
  262. package/dist/lock/db.d.ts +0 -19
  263. package/dist/lock/db.d.ts.map +0 -1
  264. package/dist/lock/db.js +0 -28
  265. package/dist/lock/db.js.map +0 -1
  266. package/dist/lock/helpers.d.ts +0 -28
  267. package/dist/lock/helpers.d.ts.map +0 -1
  268. package/dist/lock/helpers.js +0 -107
  269. package/dist/lock/helpers.js.map +0 -1
  270. package/dist/lock/index.d.ts +0 -4
  271. package/dist/lock/index.d.ts.map +0 -1
  272. package/dist/lock/index.js +0 -4
  273. package/dist/lock/index.js.map +0 -1
  274. package/dist/lock/module.d.ts +0 -7
  275. package/dist/lock/module.d.ts.map +0 -1
  276. package/dist/lock/module.js +0 -9
  277. package/dist/lock/module.js.map +0 -1
  278. package/dist/methods/index.d.ts +0 -7
  279. package/dist/methods/index.d.ts.map +0 -1
  280. package/dist/methods/index.js +0 -65
  281. package/dist/methods/index.js.map +0 -1
  282. package/dist/methods/serialize.d.ts +0 -15
  283. package/dist/methods/serialize.d.ts.map +0 -1
  284. package/dist/methods/serialize.js +0 -56
  285. package/dist/methods/serialize.js.map +0 -1
  286. package/dist/methods/types.d.ts +0 -37
  287. package/dist/methods/types.d.ts.map +0 -1
  288. package/dist/methods/types.js +0 -2
  289. package/dist/methods/types.js.map +0 -1
  290. package/dist/migration/db.d.ts +0 -17
  291. package/dist/migration/db.d.ts.map +0 -1
  292. package/dist/migration/db.js +0 -13
  293. package/dist/migration/db.js.map +0 -1
  294. package/dist/migration/index.d.ts +0 -11
  295. package/dist/migration/index.d.ts.map +0 -1
  296. package/dist/migration/index.js +0 -85
  297. package/dist/migration/index.js.map +0 -1
  298. package/dist/mongo.d.ts.map +0 -1
  299. package/dist/rate-limit/db.d.ts +0 -29
  300. package/dist/rate-limit/db.d.ts.map +0 -1
  301. package/dist/rate-limit/db.js +0 -25
  302. package/dist/rate-limit/db.js.map +0 -1
  303. package/dist/rate-limit/index.d.ts +0 -4
  304. package/dist/rate-limit/index.d.ts.map +0 -1
  305. package/dist/rate-limit/index.js +0 -6
  306. package/dist/rate-limit/index.js.map +0 -1
  307. package/dist/rate-limit/rules.d.ts +0 -22
  308. package/dist/rate-limit/rules.d.ts.map +0 -1
  309. package/dist/rate-limit/rules.js +0 -112
  310. package/dist/rate-limit/rules.js.map +0 -1
  311. package/dist/rate-limit/types.d.ts +0 -12
  312. package/dist/rate-limit/types.d.ts.map +0 -1
  313. package/dist/rate-limit/types.js +0 -2
  314. package/dist/rate-limit/types.js.map +0 -1
  315. package/dist/routes/handler.d.ts +0 -4
  316. package/dist/routes/handler.d.ts.map +0 -1
  317. package/dist/routes/handler.js +0 -66
  318. package/dist/routes/handler.js.map +0 -1
  319. package/dist/routes/types.d.ts +0 -45
  320. package/dist/routes/types.d.ts.map +0 -1
  321. package/dist/routes/types.js +0 -2
  322. package/dist/routes/types.js.map +0 -1
  323. package/dist/server.d.ts.map +0 -1
  324. package/dist/system/index.d.ts +0 -4
  325. package/dist/system/index.d.ts.map +0 -1
  326. package/dist/system/index.js +0 -21
  327. package/dist/system/index.js.map +0 -1
  328. package/dist/telemetry/index.d.ts +0 -11
  329. package/dist/telemetry/index.d.ts.map +0 -1
  330. package/dist/telemetry/index.js +0 -79
  331. package/dist/telemetry/index.js.map +0 -1
  332. package/dist/telemetry.d.ts.map +0 -1
  333. package/dist/time.d.ts +0 -8
  334. package/dist/time.d.ts.map +0 -1
  335. package/dist/time.js +0 -13
  336. package/dist/time.js.map +0 -1
  337. package/dist/types/email.d.ts +0 -25
  338. package/dist/types/email.d.ts.map +0 -1
  339. package/dist/types/email.js +0 -2
  340. package/dist/types/email.js.map +0 -1
  341. package/dist/types/index.d.ts +0 -14
  342. package/dist/types/index.d.ts.map +0 -1
  343. package/dist/types/index.js +0 -2
  344. package/dist/types/index.js.map +0 -1
  345. package/dist/types.d.ts.map +0 -1
  346. package/dist/utils/index.d.ts +0 -4
  347. package/dist/utils/index.d.ts.map +0 -1
  348. package/dist/utils/index.js +0 -15
  349. package/dist/utils/index.js.map +0 -1
  350. package/dist/viteServer.d.ts +0 -13
  351. package/dist/viteServer.d.ts.map +0 -1
  352. package/dist/viteServer.js +0 -132
  353. package/dist/viteServer.js.map +0 -1
  354. package/dist/websocket/client.d.ts +0 -9
  355. package/dist/websocket/client.d.ts.map +0 -1
  356. package/dist/websocket/client.js +0 -16
  357. package/dist/websocket/client.js.map +0 -1
  358. package/dist/websocket/clientChannel.d.ts +0 -9
  359. package/dist/websocket/clientChannel.d.ts.map +0 -1
  360. package/dist/websocket/clientChannel.js +0 -26
  361. package/dist/websocket/clientChannel.js.map +0 -1
  362. package/dist/websocket/serverChannel.d.ts +0 -14
  363. package/dist/websocket/serverChannel.d.ts.map +0 -1
  364. package/dist/websocket/serverChannel.js +0 -21
  365. package/dist/websocket/serverChannel.js.map +0 -1
  366. package/dist/websocket/socketio/client.d.ts +0 -4
  367. package/dist/websocket/socketio/client.d.ts.map +0 -1
  368. package/dist/websocket/socketio/client.js +0 -48
  369. package/dist/websocket/socketio/client.js.map +0 -1
  370. package/dist/websocket/socketio/server.d.ts +0 -10
  371. package/dist/websocket/socketio/server.d.ts.map +0 -1
  372. package/dist/websocket/socketio/server.js +0 -80
  373. package/dist/websocket/socketio/server.js.map +0 -1
  374. package/dist/websocket/types.d.ts +0 -45
  375. package/dist/websocket/types.d.ts.map +0 -1
  376. package/dist/websocket/types.js +0 -2
  377. package/dist/websocket/types.js.map +0 -1
@@ -1,2 +1,11 @@
1
- export { startTransaction, captureError, logInfo, logError, logDebug } from './telemetry/index';
2
- //# sourceMappingURL=telemetry.d.ts.map
1
+ declare function logDebug(message: string, args: object): void;
2
+ declare function logInfo(message: string, args: object): void;
3
+ declare function logError(message: string, args: object): void;
4
+ interface WrappedTransaction {
5
+ end(result?: string, context?: Record<string, unknown>): void;
6
+ setContext(context: Record<string, unknown>): void;
7
+ }
8
+ declare function startTransaction(type: 'method' | 'cron' | 'ai' | 'custom' | 'route', name: string, context?: Record<string, unknown>): WrappedTransaction;
9
+ declare function captureError(error: Error): void;
10
+
11
+ export { captureError, logDebug, logError, logInfo, startTransaction };
package/dist/telemetry.js CHANGED
@@ -1,2 +1,2 @@
1
- export { startTransaction, captureError, logInfo, logError, logDebug } from './telemetry/index';
1
+ export{l as captureError,h as logDebug,j as logError,i as logInfo,k as startTransaction}from'./chunk-PB6WQQ4L.js';//# sourceMappingURL=telemetry.js.map
2
2
  //# sourceMappingURL=telemetry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"telemetry.js"}
@@ -0,0 +1,155 @@
1
+ import { Server } from 'http';
2
+ import { Document, ObjectId } from 'mongodb';
3
+
4
+ type ConfigType = 'text' | 'string' | 'number' | 'boolean' | 'secret';
5
+ type ConfigKey = string;
6
+ type ConfigParams = {
7
+ type: ConfigType;
8
+ default: ValueType<ConfigType>;
9
+ isPublic: boolean;
10
+ };
11
+ type AppConfig = {
12
+ key: ConfigKey;
13
+ value: ValueType<ConfigType>;
14
+ type: ConfigType;
15
+ };
16
+ type ConfigSchema = {
17
+ [key: string]: ConfigParams;
18
+ };
19
+ type Configs = Record<ConfigKey, AppConfig>;
20
+ type ValueType<T> = T extends 'number' ? number : T extends 'string' ? string : T extends 'text' ? string : T extends 'boolean' ? boolean : T extends 'secret' ? string : never;
21
+
22
+ type User = Document;
23
+ type UserInfo = {
24
+ id: string;
25
+ handle: string;
26
+ roles: string[];
27
+ hasRole: (role: string) => boolean;
28
+ requireRole: (role: string) => void;
29
+ };
30
+ type Role = string;
31
+ type DefaultRoles = Record<'authenticated' | 'unauthenticated', Role | null>;
32
+ type Session = {
33
+ authToken: string;
34
+ expiresAt: Date;
35
+ userId: ObjectId | null;
36
+ };
37
+ type Permission = string;
38
+ type RoleDefinition = {
39
+ description?: string;
40
+ permissions: Permission[];
41
+ };
42
+ type AuthProvider = 'google' | 'github' | 'email';
43
+ type AuthSuccessProps = {
44
+ provider: AuthProvider;
45
+ user: User;
46
+ session: Session | null;
47
+ connectionInfo: ConnectionInfo;
48
+ };
49
+ type AuthErrorProps = {
50
+ provider: AuthProvider;
51
+ error: Error;
52
+ session: Session | null;
53
+ connectionInfo: ConnectionInfo;
54
+ };
55
+
56
+ type ClientInfo = {
57
+ screenWidth: number;
58
+ screenHeight: number;
59
+ windowWidth: number;
60
+ windowHeight: number;
61
+ pixelRatio: number;
62
+ orientation: string | null;
63
+ };
64
+ type ConnectionInfo = {
65
+ ip?: string;
66
+ userAgent?: string;
67
+ acceptLanguage?: string;
68
+ referrer?: string;
69
+ baseUrl?: string;
70
+ };
71
+ type Context = {
72
+ session: Session | null;
73
+ user: UserInfo | null;
74
+ roles: string[];
75
+ clientInfo: ClientInfo;
76
+ connectionInfo: ConnectionInfo;
77
+ };
78
+ type Args = Record<string, unknown>;
79
+ type Handler<T = unknown> = (args: Args, context: Context) => Promise<T> | T;
80
+ type MethodType = 'query' | 'mutation';
81
+ type MethodDefinition<T = unknown> = {
82
+ permissions?: Permission[];
83
+ handler: Handler<T>;
84
+ } | Handler<T>;
85
+ type Method<T = unknown> = {
86
+ type: MethodType;
87
+ name: string;
88
+ permissions: Permission[];
89
+ handler: Handler<T>;
90
+ };
91
+
92
+ type canAccessChannel = (props: {
93
+ user: User | null;
94
+ session: Session | null;
95
+ roles: string[];
96
+ }) => Promise<boolean>;
97
+ declare class ServerChannel<T = unknown> {
98
+ readonly category: string;
99
+ readonly canAccessChannel: canAccessChannel | null;
100
+ constructor(category: string, canAccessChannel?: canAccessChannel);
101
+ broadcast(id: string, data: T): void;
102
+ }
103
+
104
+ declare class ClientChannel<T = unknown> {
105
+ readonly category: string;
106
+ private readonly onMessage;
107
+ constructor(category: string, onMessage: (data: T) => void);
108
+ init(): void;
109
+ joinChannel(id: string): void;
110
+ leaveChannel(id: string): void;
111
+ }
112
+
113
+ interface WebsocketServerProvider {
114
+ init(props: {
115
+ httpServer: Server;
116
+ channels: ServerChannel[];
117
+ }): Promise<void>;
118
+ broadcast<T>(props: {
119
+ category: string;
120
+ id: string;
121
+ data: T;
122
+ }): void;
123
+ }
124
+ interface WebsocketClientProvider {
125
+ init(props: {
126
+ channels?: ClientChannel[];
127
+ }): void;
128
+ on<T>(props: {
129
+ category: string;
130
+ listener: (data: T) => void;
131
+ }): void;
132
+ once<T>(props: {
133
+ category: string;
134
+ listener: (data: T) => void;
135
+ }): void;
136
+ off<T>(props: {
137
+ category: string;
138
+ listener: (data: T) => void;
139
+ }): void;
140
+ emit(props: {
141
+ eventName: string;
142
+ category: string;
143
+ id: string;
144
+ }): void;
145
+ joinChannel(props: {
146
+ category: string;
147
+ id: string;
148
+ }): void;
149
+ leaveChannel(props: {
150
+ category: string;
151
+ id: string;
152
+ }): void;
153
+ }
154
+
155
+ export { type AuthSuccessProps as A, type ConfigSchema as C, type DefaultRoles as D, type Handler as H, type MethodDefinition as M, type Permission as P, type RoleDefinition as R, ServerChannel as S, type User as U, type WebsocketServerProvider as W, type WebsocketClientProvider as a, type ConfigKey as b, ClientChannel as c, type AuthErrorProps as d, type AppConfig as e, type Session as f, type UserInfo as g, type Role as h, type Context as i, type ClientInfo as j, type ConnectionInfo as k, type Args as l, type MethodType as m, type Method as n, type ConfigType as o, type Configs as p, type AuthProvider as q };
@@ -1,10 +1,106 @@
1
- import { AggregateOptions, AggregationCursor, Collection, DeleteResult, Document, IndexDescription, InsertOneResult, MongoClient, UpdateResult, WithId, OptionalUnlessRequiredId, FindOptions, UpdateFilter, ObjectId, BulkWriteResult, AnyBulkWriteOperation, InsertManyResult, ClientSession, SearchIndexDescription, FilterOperators } from 'mongodb';
2
- import { ModelSchema, InferDocumentType } from './types';
3
- /**
4
- * Helper type to match strings containing dots (for MongoDB dot notation)
5
- * @internal
6
- */
7
- type DottedString = `${string}.${string}`;
1
+ import './index-CwdohC5n.js';
2
+ import { i as Context } from './types-BOFsm7A2.js';
3
+ import * as mongodb from 'mongodb';
4
+ import { WithId, IndexDescription, SearchIndexDescription, MongoClient, Collection, FilterOperators, Document, FindOptions, ObjectId, OptionalUnlessRequiredId, InsertOneResult, InsertManyResult, UpdateFilter, UpdateResult, ClientSession, DeleteResult, AggregateOptions, AggregationCursor, AnyBulkWriteOperation, BulkWriteResult } from 'mongodb';
5
+ import { z, ZodNumber, ZodArray } from 'zod';
6
+ import { Request, Response, NextFunction } from 'express';
7
+
8
+ type EmailAttachment = {
9
+ filename: string;
10
+ content: Buffer | string;
11
+ contentType: string;
12
+ };
13
+ type EmailPayload = {
14
+ from: string;
15
+ to: string | string[];
16
+ subject: string;
17
+ html?: string;
18
+ text?: string;
19
+ cc?: string | string[];
20
+ bcc?: string | string[];
21
+ replyTo?: string | string[];
22
+ headers?: Record<string, string>;
23
+ attachments?: EmailAttachment[];
24
+ } & ({
25
+ html: string;
26
+ } | {
27
+ text: string;
28
+ });
29
+ interface EmailProvider {
30
+ sendEmail(data: EmailPayload): Promise<void>;
31
+ }
32
+
33
+ type RateLimitType = 'ip' | 'user';
34
+ type RateLimitRule = {
35
+ /** Logical action being limited, e.g. "signup" */
36
+ bucket: string;
37
+ /** Identifier type of the actor this rule applies to */
38
+ type: RateLimitType;
39
+ /** Time window size in milliseconds */
40
+ window: number;
41
+ /** Maximum allowed hits within the window */
42
+ limit: number;
43
+ };
44
+
45
+ type CronJobHandler = () => Promise<void>;
46
+ type CronJob = {
47
+ alias: string;
48
+ params: {
49
+ description: string;
50
+ interval: number;
51
+ timeout: number;
52
+ };
53
+ handler: CronJobHandler;
54
+ state: {
55
+ startTs?: number;
56
+ scheduledRunTs?: number;
57
+ isRunning: boolean;
58
+ };
59
+ };
60
+ type CronJobInputParams = {
61
+ description?: string;
62
+ interval: number;
63
+ timeout?: number;
64
+ handler: CronJobHandler;
65
+ };
66
+ type CronJobMetadata = {
67
+ alias: string;
68
+ description: string;
69
+ interval: number;
70
+ timeout: number;
71
+ };
72
+
73
+ interface SerializedModelSchema {
74
+ [key: string]: SerializedSchema | (SerializedSchema | SerializedModelSchema)[] | SerializedModelSchema | 'v2';
75
+ }
76
+ type BaseSerializedSchema = {
77
+ type: 'string';
78
+ } | {
79
+ type: 'number';
80
+ } | {
81
+ type: 'boolean';
82
+ } | {
83
+ type: 'date';
84
+ } | {
85
+ type: 'array';
86
+ items: SerializedSchema;
87
+ } | {
88
+ type: 'object';
89
+ items: Record<string, SerializedSchema>;
90
+ } | {
91
+ type: 'enum';
92
+ items: readonly string[];
93
+ } | {
94
+ type: 'union';
95
+ items: SerializedSchema[];
96
+ } | {
97
+ type: 'custom';
98
+ typeName: string;
99
+ };
100
+ type SerializedSchema = BaseSerializedSchema | (BaseSerializedSchema & {
101
+ optional: true;
102
+ });
103
+
8
104
  /**
9
105
  * Top-level query operators (logical and evaluation) - custom version without Document index signature
10
106
  * Based on MongoDB's RootFilterOperators but without the [key: string]: any from Document
@@ -26,6 +122,38 @@ type StrictRootFilterOperators<TSchema> = {
26
122
  $expr?: any;
27
123
  $jsonSchema?: any;
28
124
  };
125
+ /**
126
+ * Helper type to extract array element type
127
+ * @internal
128
+ */
129
+ type ArrayElement<T> = T extends (infer E)[] ? E : never;
130
+ /**
131
+ * Helper type for $in/$nin that accepts any array/tuple where elements are assignable to T
132
+ * This solves the issue where TypeScript infers ['a', 'b'] as a tuple instead of ('a' | 'b')[]
133
+ * and where Array<Union> gets distributed into Union1[] | Union2[] | ...
134
+ * We wrap the Exclude in a tuple check to prevent distribution
135
+ * @internal
136
+ */
137
+ type NonUndefined<T> = T extends undefined ? never : T;
138
+ type ArrayLikeOfUnion<T> = [NonUndefined<T>] extends [never] ? never : ReadonlyArray<NonUndefined<T>> | Array<NonUndefined<T>>;
139
+ /**
140
+ * Enhanced FilterOperators that fixes $in and $nin to properly accept arrays of union types
141
+ * MongoDB's native FilterOperators has issues with union types in $in/$nin arrays
142
+ * because TypeScript distributes Array<Union> into Array1 | Array2 | ...
143
+ * @internal
144
+ */
145
+ type EnhancedFilterOperators<T> = Omit<FilterOperators<T>, '$in' | '$nin'> & {
146
+ $in?: ArrayLikeOfUnion<T>;
147
+ $nin?: ArrayLikeOfUnion<T>;
148
+ };
149
+ /**
150
+ * Custom filter value type that handles array fields specially:
151
+ * - For array fields: allows element type, full array type, or FilterOperators
152
+ * - For non-array fields: allows exact type or FilterOperators
153
+ * We use [T] to prevent distribution when T is a union type
154
+ * @internal
155
+ */
156
+ type FilterValue<T> = [T] extends [unknown[]] ? ArrayElement<T> | T | EnhancedFilterOperators<T> : [T] extends [never] ? never : T | EnhancedFilterOperators<[T] extends [never] ? never : T>;
29
157
  /**
30
158
  * Type-safe MongoDB filter that ensures only schema fields can be queried
31
159
  * while supporting all MongoDB query operators and dot notation for nested fields.
@@ -33,6 +161,7 @@ type StrictRootFilterOperators<TSchema> = {
33
161
  * This type combines:
34
162
  * - MongoDB's native `FilterOperators<T>` for field-level operators (comprehensive operator support)
35
163
  * - Custom `StrictRootFilterOperators<T>` for top-level operators without index signature
164
+ * - Custom array field handling: allows passing single element when field is an array
36
165
  * - Custom restriction: only strings containing dots are allowed for nested field queries
37
166
  *
38
167
  * @example
@@ -42,6 +171,7 @@ type StrictRootFilterOperators<TSchema> = {
42
171
  * name: schema.string(),
43
172
  * age: schema.number(),
44
173
  * tags: schema.array(schema.string()),
174
+ * collections: schema.array(schema.string()),
45
175
  * address: schema.object({
46
176
  * street: schema.string(),
47
177
  * city: schema.string(),
@@ -58,6 +188,9 @@ type StrictRootFilterOperators<TSchema> = {
58
188
  * await dbUsers.findOne({ tags: { $in: ['typescript', 'mongodb'] } });
59
189
  * await dbUsers.findOne({ $or: [{ name: 'John' }, { name: 'Jane' }] });
60
190
  *
191
+ * // ✅ Valid - array field with single element (checks if array contains the element)
192
+ * await dbUsers.findOne({ collections: 'users' });
193
+ *
61
194
  * // ✅ Valid - dot notation for nested fields (must contain a dot)
62
195
  * await dbUsers.findOne({ 'address.city': 'New York' });
63
196
  * await dbUsers.findOne({ 'emails.0.address': 'test@example.com' });
@@ -66,10 +199,10 @@ type StrictRootFilterOperators<TSchema> = {
66
199
  * await dbUsers.findOne({ id: '123' });
67
200
  * ```
68
201
  */
69
- export type TypedFilter<T> = {
70
- [K in keyof WithId<T>]?: WithId<T>[K] | FilterOperators<WithId<T>[K]>;
202
+ type TypedFilter<T> = {
203
+ [K in keyof WithId<T>]?: FilterValue<WithId<T>[K]>;
71
204
  } & StrictRootFilterOperators<T> & {
72
- [K: DottedString]: any;
205
+ [K: `${string}.${string}`]: any;
73
206
  };
74
207
  /**
75
208
  * Helper type to preserve method types when extending a store.
@@ -103,7 +236,7 @@ type PreserveMethodsForExtendedSchema<TBaseMethods extends Record<string, (...ar
103
236
  * });
104
237
  * ```
105
238
  */
106
- export declare class Store<TSchema extends ModelSchema, TMethods extends Record<string, (this: WithId<InferDocumentType<TSchema>> & TMethods, ...args: any[]) => any>> {
239
+ declare class Store<TSchema extends ModelSchema, TMethods extends Record<string, (this: WithId<InferDocumentType<TSchema>> & TMethods, ...args: any[]) => any>> {
107
240
  /** @internal */
108
241
  readonly _type: InferDocumentType<TSchema>;
109
242
  /** @internal */
@@ -138,7 +271,7 @@ export declare class Store<TSchema extends ModelSchema, TMethods extends Record<
138
271
  /** @internal */
139
272
  getSchema(): TSchema;
140
273
  /** @internal */
141
- getSerializedSchema(): import("./schemaSerializer").SerializedModelSchema;
274
+ getSerializedSchema(): SerializedModelSchema;
142
275
  /**
143
276
  * Extends the store with additional schema fields, indexes, methods, and search indexes.
144
277
  * Returns a new Store instance with the extended schema and updated types.
@@ -331,7 +464,7 @@ export declare class Store<TSchema extends ModelSchema, TMethods extends Record<
331
464
  * @returns The MongoDB database instance
332
465
  * @throws Error if the store is not provisioned
333
466
  */
334
- getDatabase(): import("mongodb").Db;
467
+ getDatabase(): mongodb.Db;
335
468
  /**
336
469
  * Returns the raw MongoDB collection instance for advanced operations
337
470
  * @returns The MongoDB collection instance
@@ -423,5 +556,91 @@ export declare class Store<TSchema extends ModelSchema, TMethods extends Record<
423
556
  };
424
557
  };
425
558
  }
426
- export {};
427
- //# sourceMappingURL=store.d.ts.map
559
+
560
+ type ObjectTypeDefinition = {
561
+ [key: string]: SchemaTypeDefinition;
562
+ };
563
+ type SingularSchemaTypeDefinition = z.ZodType | ObjectTypeDefinition;
564
+ type SchemaTypeDefinition = SingularSchemaTypeDefinition | Array<SingularSchemaTypeDefinition>;
565
+ type ModelSchema = {
566
+ [key: string]: SchemaTypeDefinition;
567
+ };
568
+ type InferDocumentType<T extends SchemaTypeDefinition> = {
569
+ [K in keyof T as T[K] extends z.ZodOptional<z.ZodTypeAny> ? K : never]?: T[K] extends z.ZodType ? z.infer<T[K]> : never;
570
+ } & {
571
+ [K in keyof T as T[K] extends z.ZodOptional<z.ZodTypeAny> ? never : K]: T[K] extends z.ZodType ? z.infer<T[K]> : T[K] extends Array<infer ElementType extends SchemaTypeDefinition> ? Array<InferDocumentType<ElementType>> : T[K] extends ObjectTypeDefinition ? InferDocumentType<T[K]> : never;
572
+ };
573
+ declare const schema: {
574
+ readonly string: (params?: z.RawCreateParams & {
575
+ coerce?: true;
576
+ }) => z.ZodString;
577
+ readonly number: (params?: z.RawCreateParams & {
578
+ coerce?: boolean;
579
+ }) => ZodNumber;
580
+ readonly date: (params?: z.RawCreateParams & {
581
+ coerce?: boolean;
582
+ }) => z.ZodDate;
583
+ readonly boolean: (params?: z.RawCreateParams & {
584
+ coerce?: boolean;
585
+ }) => z.ZodBoolean;
586
+ readonly array: <El extends z.ZodTypeAny>(schema: El, params?: z.RawCreateParams) => ZodArray<El>;
587
+ readonly object: <Shape extends z.ZodRawShape>(shape: Shape, params?: z.RawCreateParams) => z.ZodObject<Shape, "strip", z.ZodTypeAny, z.objectOutputType<Shape, z.ZodTypeAny, "strip">, z.objectInputType<Shape, z.ZodTypeAny, "strip">>;
588
+ readonly enum: {
589
+ <U extends string, T extends Readonly<[U, ...U[]]>>(values: T, params?: z.RawCreateParams): z.ZodEnum<z.Writeable<T>>;
590
+ <U extends string, T extends [U, ...U[]]>(values: T, params?: z.RawCreateParams): z.ZodEnum<T>;
591
+ };
592
+ readonly embedding: () => ZodArray<ZodNumber>;
593
+ readonly objectId: () => z.ZodType<ObjectId>;
594
+ readonly userId: () => z.ZodType<ObjectId>;
595
+ readonly ref: <T extends ModelSchema>(_collection: string | Store<T, InferDocumentType<T>>) => z.ZodType<ObjectId>;
596
+ readonly union: <Options extends Readonly<[z.ZodTypeAny, z.ZodTypeAny, ...z.ZodTypeAny[]]>>(types: Options, params?: z.RawCreateParams) => z.ZodUnion<Options>;
597
+ readonly infer: <T extends SchemaTypeDefinition>(_schema: T) => InferDocumentType<T>;
598
+ };
599
+ declare namespace schema {
600
+ type infer<T extends SchemaTypeDefinition> = InferDocumentType<T>;
601
+ }
602
+
603
+ type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head' | 'all' | 'use';
604
+ type RouteParams<T = unknown> = {
605
+ query: Record<string, string>;
606
+ body: T;
607
+ params: Record<string, string>;
608
+ headers: Record<string, string>;
609
+ cookies: Record<string, string>;
610
+ rawBody?: Buffer;
611
+ req: Request;
612
+ res: Response;
613
+ next: NextFunction;
614
+ };
615
+ type RouteResponse<T = unknown> = {
616
+ data?: T;
617
+ status?: number;
618
+ headers?: Record<string, string>;
619
+ redirect?: string;
620
+ } | null;
621
+ type RouteHandler<T = unknown> = (params: RouteParams, context: Pick<Context, 'session' | 'user'>) => Promise<RouteResponse<T>> | RouteResponse<T>;
622
+ type RouteHandlers = {
623
+ [key in HttpMethod]?: RouteHandler;
624
+ };
625
+ type BodyConfig = {
626
+ json?: boolean | {
627
+ limit?: string;
628
+ };
629
+ urlencoded?: boolean | {
630
+ limit?: string;
631
+ extended?: boolean;
632
+ };
633
+ raw?: boolean | {
634
+ limit?: string;
635
+ type?: string | string[];
636
+ };
637
+ };
638
+ type RouteDefinition = {
639
+ path: string;
640
+ handlers: RouteHandlers;
641
+ errorHandler?: RouteHandler;
642
+ body?: BodyConfig;
643
+ };
644
+ type ExpressHandler = (req: Request, res: Response) => Promise<void> | void;
645
+
646
+ export { type BodyConfig as B, type CronJobInputParams as C, type EmailProvider as E, type HttpMethod as H, type InferDocumentType as I, type ModelSchema as M, type RouteDefinition as R, Store as S, type RateLimitRule as a, type RateLimitType as b, type EmailPayload as c, type RouteHandler as d, type RouteParams as e, type RouteResponse as f, type EmailAttachment as g, type CronJob as h, type CronJobMetadata as i, type RouteHandlers as j, type ExpressHandler as k, schema as s };
package/dist/types.d.ts CHANGED
@@ -1,10 +1,7 @@
1
- export type * from './types/index';
2
- export type * from './methods/types';
3
- export type * from './rate-limit/types';
4
- export type * from './cron/types';
5
- export type * from './config/types';
6
- export type * from './websocket/types';
7
- export type * from './data/types';
8
- export type * from './auth/types';
9
- export type * from './routes/types';
10
- //# sourceMappingURL=types.d.ts.map
1
+ export { A as AppServer, E as ExpressMiddleware, M as ModelenceConfig } from './index-CwdohC5n.js';
2
+ export { e as AppConfig, l as Args, d as AuthErrorProps, q as AuthProvider, A as AuthSuccessProps, j as ClientInfo, b as ConfigKey, C as ConfigSchema, o as ConfigType, p as Configs, k as ConnectionInfo, i as Context, D as DefaultRoles, H as Handler, n as Method, M as MethodDefinition, m as MethodType, P as Permission, h as Role, R as RoleDefinition, f as Session, U as User, g as UserInfo, a as WebsocketClientProvider, W as WebsocketServerProvider } from './types-BOFsm7A2.js';
3
+ export { B as BodyConfig, h as CronJob, C as CronJobInputParams, i as CronJobMetadata, g as EmailAttachment, c as EmailPayload, E as EmailProvider, k as ExpressHandler, H as HttpMethod, I as InferDocumentType, M as ModelSchema, a as RateLimitRule, b as RateLimitType, R as RouteDefinition, d as RouteHandler, j as RouteHandlers, e as RouteParams, f as RouteResponse, s as schema } from './types-V9eDnP35.js';
4
+ import 'express';
5
+ import 'http';
6
+ import 'mongodb';
7
+ import 'zod';
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ import'./chunk-55J6XMHW.js';//# sourceMappingURL=types.js.map
2
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"types.js"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "modelence",
4
- "version": "0.9.0-dev.0",
4
+ "version": "0.9.1",
5
5
  "description": "The Node.js Framework for Real-Time MongoDB Apps",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/global.d.ts",
@@ -24,8 +24,8 @@
24
24
  "modelence": "./dist/bin/modelence.js"
25
25
  },
26
26
  "scripts": {
27
- "build": "rm -rf dist && tsc && tsc-alias",
28
- "dev": "tsc --watch",
27
+ "build": "tsup",
28
+ "dev": "tsup --watch",
29
29
  "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,md}\"",
30
30
  "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css,md}\"",
31
31
  "lint": "eslint src --ext .ts,.tsx --fix",
@@ -48,6 +48,7 @@
48
48
  "homepage": "https://modelence.com",
49
49
  "devDependencies": {
50
50
  "@types/archiver": "^6.0.3",
51
+ "@types/bcrypt": "^5.0.2",
51
52
  "@types/cookie-parser": "^1.4.9",
52
53
  "@types/express": "^5.0.0",
53
54
  "@types/fs-extra": "^11.0.4",
@@ -64,13 +65,13 @@
64
65
  "react": "^19.0.0",
65
66
  "react-dom": "^19.0.0",
66
67
  "ts-jest": "^29.4.5",
67
- "ts-node": "^10.9.2",
68
- "tsc-alias": "^1.8.16"
68
+ "ts-node": "^10.9.2"
69
69
  },
70
70
  "dependencies": {
71
71
  "@socket.io/mongo-adapter": "^0.4.0",
72
72
  "@vitejs/plugin-react": "^4.3.4",
73
73
  "archiver": "^7.0.1",
74
+ "bcrypt": "^5.1.1",
74
75
  "commander": "^12.0.0",
75
76
  "cookie-parser": "^1.4.7",
76
77
  "dotenv": "^16.4.5",
@@ -1,68 +0,0 @@
1
- import { Session, User } from '../auth/types';
2
- import { ConnectionInfo } from '../methods/types';
3
- /**
4
- * Callback options for authentication operations
5
- */
6
- export type AuthOption = {
7
- /** Callback executed when authentication succeeds */
8
- onSuccess?: (user: User) => void;
9
- /** Callback executed when authentication fails */
10
- onError?: (error: Error) => void;
11
- };
12
- /**
13
- * Authentication configuration for the application
14
- *
15
- * @example
16
- * ```typescript
17
- * import { startApp } from 'modelence/server';
18
- *
19
- * startApp({
20
- * auth: {
21
- * onAfterLogin: ({ user }) => {
22
- * console.log('User logged in:', user.name);
23
- * // Redirect to dashboard
24
- * },
25
- * onLoginError: ({ error }) => {
26
- * console.error('Login failed:', error.message);
27
- * // Show error toast
28
- * },
29
- * onAfterSignup: ({ user }) => {
30
- * console.log('User signed up:', user.email);
31
- * // Send welcome email
32
- * },
33
- * onSignupError: ({ error }) => {
34
- * console.error('Signup failed:', error.message);
35
- * }
36
- * }
37
- * });
38
- * ```
39
- */
40
- export type AuthConfig = {
41
- onAfterLogin?: (props: {
42
- user: User;
43
- session: Session | null;
44
- connectionInfo: ConnectionInfo;
45
- }) => void;
46
- onLoginError?: (props: {
47
- error: Error;
48
- session: Session | null;
49
- connectionInfo: ConnectionInfo;
50
- }) => void;
51
- onAfterSignup?: (props: {
52
- user: User;
53
- session: Session | null;
54
- connectionInfo: ConnectionInfo;
55
- }) => void;
56
- onSignupError?: (props: {
57
- error: Error;
58
- session: Session | null;
59
- connectionInfo: ConnectionInfo;
60
- }) => void;
61
- /** deprecated: use onAfterLogin and onLoginError */
62
- login?: AuthOption;
63
- /** deprecated: user onAfterSignup and onSignupError */
64
- signup?: AuthOption;
65
- };
66
- export declare function setAuthConfig(newAuthConfig: AuthConfig): void;
67
- export declare function getAuthConfig(): AuthConfig;
68
- //# sourceMappingURL=authConfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authConfig.d.ts","sourceRoot":"","sources":["../../src/app/authConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,qDAAqD;IACrD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,kDAAkD;IAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QACrB,IAAI,EAAE,IAAI,CAAC;QACX,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,cAAc,EAAE,cAAc,CAAC;KAChC,KAAK,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QACrB,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,cAAc,EAAE,cAAc,CAAC;KAChC,KAAK,IAAI,CAAC;IACX,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,IAAI,EAAE,IAAI,CAAC;QACX,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,cAAc,EAAE,cAAc,CAAC;KAChC,KAAK,IAAI,CAAC;IACX,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,cAAc,EAAE,cAAc,CAAC;KAChC,KAAK,IAAI,CAAC;IAEX,oDAAoD;IACpD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAC;AAIF,wBAAgB,aAAa,CAAC,aAAa,EAAE,UAAU,QAEtD;AAED,wBAAgB,aAAa,eAE5B"}
@@ -1,8 +0,0 @@
1
- let authConfig = Object.freeze({});
2
- export function setAuthConfig(newAuthConfig) {
3
- authConfig = Object.freeze(Object.assign({}, authConfig, newAuthConfig));
4
- }
5
- export function getAuthConfig() {
6
- return authConfig;
7
- }
8
- //# sourceMappingURL=authConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authConfig.js","sourceRoot":"","sources":["../../src/app/authConfig.ts"],"names":[],"mappings":"AAqEA,IAAI,UAAU,GAAe,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE/C,MAAM,UAAU,aAAa,CAAC,aAAyB;IACrD,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC"}