modelence 0.8.0 → 0.9.0-dev.0

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/app/authConfig.d.ts +68 -0
  2. package/dist/app/authConfig.d.ts.map +1 -0
  3. package/dist/app/authConfig.js +8 -0
  4. package/dist/app/authConfig.js.map +1 -0
  5. package/dist/app/backendApi.d.ts +29 -0
  6. package/dist/app/backendApi.d.ts.map +1 -0
  7. package/dist/app/backendApi.js +69 -0
  8. package/dist/app/backendApi.js.map +1 -0
  9. package/dist/app/email.d.ts +3 -0
  10. package/dist/app/email.d.ts.map +1 -0
  11. package/dist/app/email.js +8 -0
  12. package/dist/app/email.js.map +1 -0
  13. package/dist/app/emailConfig.d.ts +27 -0
  14. package/dist/app/emailConfig.d.ts.map +1 -0
  15. package/dist/app/emailConfig.js +8 -0
  16. package/dist/app/emailConfig.js.map +1 -0
  17. package/dist/app/index.d.ts +20 -0
  18. package/dist/app/index.d.ts.map +1 -0
  19. package/dist/app/index.js +258 -0
  20. package/dist/app/index.js.map +1 -0
  21. package/dist/app/loggerProcess.d.ts +5 -0
  22. package/dist/app/loggerProcess.d.ts.map +1 -0
  23. package/dist/app/loggerProcess.js +90 -0
  24. package/dist/app/loggerProcess.js.map +1 -0
  25. package/dist/app/metrics.d.ts +6 -0
  26. package/dist/app/metrics.d.ts.map +1 -0
  27. package/dist/app/metrics.js +92 -0
  28. package/dist/app/metrics.js.map +1 -0
  29. package/dist/app/module.d.ts +77 -0
  30. package/dist/app/module.d.ts.map +1 -0
  31. package/dist/app/module.js +46 -0
  32. package/dist/app/module.js.map +1 -0
  33. package/dist/app/server.d.ts +37 -0
  34. package/dist/app/server.d.ts.map +1 -0
  35. package/dist/app/server.js +198 -0
  36. package/dist/app/server.js.map +1 -0
  37. package/dist/app/state.d.ts +19 -0
  38. package/dist/app/state.d.ts.map +1 -0
  39. package/dist/app/state.js +27 -0
  40. package/dist/app/state.js.map +1 -0
  41. package/dist/app/websocketConfig.d.ts +7 -0
  42. package/dist/app/websocketConfig.d.ts.map +1 -0
  43. package/dist/app/websocketConfig.js +8 -0
  44. package/dist/app/websocketConfig.js.map +1 -0
  45. package/dist/auth/client/index.d.ts +69 -0
  46. package/dist/auth/client/index.d.ts.map +1 -0
  47. package/dist/auth/client/index.js +79 -0
  48. package/dist/auth/client/index.js.map +1 -0
  49. package/dist/auth/db.d.ts +176 -0
  50. package/dist/auth/db.d.ts.map +1 -0
  51. package/dist/auth/db.js +117 -0
  52. package/dist/auth/db.js.map +1 -0
  53. package/dist/auth/deleteUser.d.ts +5 -0
  54. package/dist/auth/deleteUser.d.ts.map +1 -0
  55. package/dist/auth/deleteUser.js +34 -0
  56. package/dist/auth/deleteUser.js.map +1 -0
  57. package/dist/auth/disposableEmails.d.ts +6 -0
  58. package/dist/auth/disposableEmails.d.ts.map +1 -0
  59. package/dist/auth/disposableEmails.js +47 -0
  60. package/dist/auth/disposableEmails.js.map +1 -0
  61. package/dist/auth/index.d.ts +7 -0
  62. package/dist/auth/index.d.ts.map +1 -0
  63. package/dist/auth/index.js +33 -0
  64. package/dist/auth/index.js.map +1 -0
  65. package/dist/auth/login.d.ts +9 -0
  66. package/dist/auth/login.d.ts.map +1 -0
  67. package/dist/auth/login.js +100 -0
  68. package/dist/auth/login.js.map +1 -0
  69. package/dist/auth/password.d.ts +14 -0
  70. package/dist/auth/password.d.ts.map +1 -0
  71. package/dist/auth/password.js +26 -0
  72. package/dist/auth/password.js.map +1 -0
  73. package/dist/auth/profile.d.ts +10 -0
  74. package/dist/auth/profile.d.ts.map +1 -0
  75. package/dist/auth/profile.js +13 -0
  76. package/dist/auth/profile.js.map +1 -0
  77. package/dist/auth/providers/github.d.ts +3 -0
  78. package/dist/auth/providers/github.d.ts.map +1 -0
  79. package/dist/auth/providers/github.js +122 -0
  80. package/dist/auth/providers/github.js.map +1 -0
  81. package/dist/auth/providers/google.d.ts +3 -0
  82. package/dist/auth/providers/google.d.ts.map +1 -0
  83. package/dist/auth/providers/google.js +108 -0
  84. package/dist/auth/providers/google.js.map +1 -0
  85. package/dist/auth/providers/oauth-common.d.ts +13 -0
  86. package/dist/auth/providers/oauth-common.d.ts.map +1 -0
  87. package/dist/auth/providers/oauth-common.js +109 -0
  88. package/dist/auth/providers/oauth-common.js.map +1 -0
  89. package/dist/auth/resetPassword.d.ts +10 -0
  90. package/dist/auth/resetPassword.d.ts.map +1 -0
  91. package/dist/auth/resetPassword.js +108 -0
  92. package/dist/auth/resetPassword.js.map +1 -0
  93. package/dist/auth/role.d.ts +8 -0
  94. package/dist/auth/role.d.ts.map +1 -0
  95. package/dist/auth/role.js +37 -0
  96. package/dist/auth/role.js.map +1 -0
  97. package/dist/auth/session.d.ts +24 -0
  98. package/dist/auth/session.d.ts.map +1 -0
  99. package/dist/auth/session.js +84 -0
  100. package/dist/auth/session.js.map +1 -0
  101. package/dist/auth/signup.d.ts +3 -0
  102. package/dist/auth/signup.d.ts.map +1 -0
  103. package/dist/auth/signup.js +89 -0
  104. package/dist/auth/signup.js.map +1 -0
  105. package/dist/auth/templates/emailVerficationTemplate.d.ts +6 -0
  106. package/dist/auth/templates/emailVerficationTemplate.d.ts.map +1 -0
  107. package/dist/auth/templates/emailVerficationTemplate.js +9 -0
  108. package/dist/auth/templates/emailVerficationTemplate.js.map +1 -0
  109. package/dist/auth/types.d.ts +22 -0
  110. package/dist/auth/types.d.ts.map +1 -0
  111. package/dist/auth/types.js +2 -0
  112. package/dist/auth/types.js.map +1 -0
  113. package/dist/auth/user.d.ts +5 -0
  114. package/dist/auth/user.d.ts.map +1 -0
  115. package/dist/auth/user.js +152 -0
  116. package/dist/auth/user.js.map +1 -0
  117. package/dist/auth/validators.d.ts +3 -0
  118. package/dist/auth/validators.d.ts.map +1 -0
  119. package/dist/auth/validators.js +8 -0
  120. package/dist/auth/validators.js.map +1 -0
  121. package/dist/auth/verification.d.ts +8 -0
  122. package/dist/auth/verification.d.ts.map +1 -0
  123. package/dist/auth/verification.js +94 -0
  124. package/dist/auth/verification.js.map +1 -0
  125. package/dist/bin/auth.d.ts +4 -0
  126. package/dist/bin/auth.d.ts.map +1 -0
  127. package/dist/bin/auth.js +48 -0
  128. package/dist/bin/auth.js.map +1 -0
  129. package/dist/bin/build.d.ts +2 -0
  130. package/dist/bin/build.d.ts.map +1 -0
  131. package/dist/bin/build.js +78 -0
  132. package/dist/bin/build.js.map +1 -0
  133. package/dist/bin/config.d.ts +11 -0
  134. package/dist/bin/config.d.ts.map +1 -0
  135. package/dist/bin/config.js +91 -0
  136. package/dist/bin/config.js.map +1 -0
  137. package/dist/bin/deploy.d.ts +6 -0
  138. package/dist/bin/deploy.d.ts.map +1 -0
  139. package/dist/bin/deploy.js +129 -0
  140. package/dist/bin/deploy.js.map +1 -0
  141. package/dist/bin/dev.d.ts +2 -0
  142. package/dist/bin/dev.d.ts.map +1 -0
  143. package/dist/bin/dev.js +14 -0
  144. package/dist/bin/dev.js.map +1 -0
  145. package/dist/bin/modelence.d.ts +3 -0
  146. package/dist/bin/modelence.d.ts.map +1 -0
  147. package/dist/bin/modelence.js +57 -3
  148. package/dist/bin/modelence.js.map +1 -1
  149. package/dist/bin/setup.d.ts +5 -0
  150. package/dist/bin/setup.d.ts.map +1 -0
  151. package/dist/bin/setup.js +91 -0
  152. package/dist/bin/setup.js.map +1 -0
  153. package/dist/bin/start.d.ts +2 -0
  154. package/dist/bin/start.d.ts.map +1 -0
  155. package/dist/bin/start.js +15 -0
  156. package/dist/bin/start.js.map +1 -0
  157. package/dist/client/AppProvider.d.ts +8 -0
  158. package/dist/client/AppProvider.d.ts.map +1 -0
  159. package/dist/client/AppProvider.js +31 -0
  160. package/dist/client/AppProvider.js.map +1 -0
  161. package/dist/client/errorHandler.d.ts +4 -0
  162. package/dist/client/errorHandler.d.ts.map +1 -0
  163. package/dist/client/errorHandler.js +10 -0
  164. package/dist/client/errorHandler.js.map +1 -0
  165. package/dist/client/localStorage.d.ts +3 -0
  166. package/dist/client/localStorage.d.ts.map +1 -0
  167. package/dist/client/localStorage.js +14 -0
  168. package/dist/client/localStorage.js.map +1 -0
  169. package/dist/client/method.d.ts +6 -0
  170. package/dist/client/method.d.ts.map +1 -0
  171. package/dist/client/method.js +52 -0
  172. package/dist/client/method.js.map +1 -0
  173. package/dist/client/renderApp.d.ts +9 -0
  174. package/dist/client/renderApp.d.ts.map +1 -0
  175. package/dist/client/renderApp.js +28 -0
  176. package/dist/client/renderApp.js.map +1 -0
  177. package/dist/client/session.d.ts +34 -0
  178. package/dist/client/session.d.ts.map +1 -0
  179. package/dist/client/session.js +83 -0
  180. package/dist/client/session.js.map +1 -0
  181. package/dist/client.d.ts +10 -133
  182. package/dist/client.d.ts.map +1 -0
  183. package/dist/client.js +14 -1
  184. package/dist/client.js.map +1 -1
  185. package/dist/config/client.d.ts +10 -0
  186. package/dist/config/client.d.ts.map +1 -0
  187. package/dist/config/client.js +14 -0
  188. package/dist/config/client.js.map +1 -0
  189. package/dist/config/server.d.ts +48 -0
  190. package/dist/config/server.d.ts.map +1 -0
  191. package/dist/config/server.js +85 -0
  192. package/dist/config/server.js.map +1 -0
  193. package/dist/config/sync.d.ts +2 -0
  194. package/dist/config/sync.d.ts.map +1 -0
  195. package/dist/config/sync.js +32 -0
  196. package/dist/config/sync.js.map +1 -0
  197. package/dist/config/types.d.ts +19 -0
  198. package/dist/config/types.d.ts.map +1 -0
  199. package/dist/config/types.js +2 -0
  200. package/dist/config/types.js.map +1 -0
  201. package/dist/cron/jobs.d.ts +13 -0
  202. package/dist/cron/jobs.d.ts.map +1 -0
  203. package/dist/cron/jobs.js +155 -0
  204. package/dist/cron/jobs.js.map +1 -0
  205. package/dist/cron/types.d.ts +29 -0
  206. package/dist/cron/types.d.ts.map +1 -0
  207. package/dist/cron/types.js +2 -0
  208. package/dist/cron/types.js.map +1 -0
  209. package/dist/data/schemaSerializer.d.ts +37 -0
  210. package/dist/data/schemaSerializer.d.ts.map +1 -0
  211. package/dist/data/schemaSerializer.js +104 -0
  212. package/dist/data/schemaSerializer.js.map +1 -0
  213. package/dist/{types-WgRbQ-tj.d.ts → data/store.d.ts} +13 -231
  214. package/dist/data/store.d.ts.map +1 -0
  215. package/dist/data/store.js +501 -0
  216. package/dist/data/store.js.map +1 -0
  217. package/dist/data/types.d.ts +47 -0
  218. package/dist/data/types.d.ts.map +1 -0
  219. package/dist/data/types.js +35 -0
  220. package/dist/data/types.js.map +1 -0
  221. package/dist/db/client.d.ts +5 -0
  222. package/dist/db/client.d.ts.map +1 -0
  223. package/dist/db/client.js +41 -0
  224. package/dist/db/client.js.map +1 -0
  225. package/dist/error.d.ts +16 -0
  226. package/dist/error.d.ts.map +1 -0
  227. package/dist/error.js +24 -0
  228. package/dist/error.js.map +1 -0
  229. package/dist/index.d.ts +6 -31
  230. package/dist/index.d.ts.map +1 -0
  231. package/dist/index.js +2 -1
  232. package/dist/index.js.map +1 -1
  233. package/dist/lock/db.d.ts +19 -0
  234. package/dist/lock/db.d.ts.map +1 -0
  235. package/dist/lock/db.js +28 -0
  236. package/dist/lock/db.js.map +1 -0
  237. package/dist/lock/helpers.d.ts +28 -0
  238. package/dist/lock/helpers.d.ts.map +1 -0
  239. package/dist/lock/helpers.js +107 -0
  240. package/dist/lock/helpers.js.map +1 -0
  241. package/dist/lock/index.d.ts +4 -0
  242. package/dist/lock/index.d.ts.map +1 -0
  243. package/dist/lock/index.js +4 -0
  244. package/dist/lock/index.js.map +1 -0
  245. package/dist/lock/module.d.ts +7 -0
  246. package/dist/lock/module.d.ts.map +1 -0
  247. package/dist/lock/module.js +9 -0
  248. package/dist/lock/module.js.map +1 -0
  249. package/dist/methods/index.d.ts +7 -0
  250. package/dist/methods/index.d.ts.map +1 -0
  251. package/dist/methods/index.js +65 -0
  252. package/dist/methods/index.js.map +1 -0
  253. package/dist/methods/serialize.d.ts +15 -0
  254. package/dist/methods/serialize.d.ts.map +1 -0
  255. package/dist/methods/serialize.js +56 -0
  256. package/dist/methods/serialize.js.map +1 -0
  257. package/dist/methods/types.d.ts +37 -0
  258. package/dist/methods/types.d.ts.map +1 -0
  259. package/dist/methods/types.js +2 -0
  260. package/dist/methods/types.js.map +1 -0
  261. package/dist/migration/db.d.ts +17 -0
  262. package/dist/migration/db.d.ts.map +1 -0
  263. package/dist/migration/db.js +13 -0
  264. package/dist/migration/db.js.map +1 -0
  265. package/dist/migration/index.d.ts +11 -0
  266. package/dist/migration/index.d.ts.map +1 -0
  267. package/dist/migration/index.js +85 -0
  268. package/dist/migration/index.js.map +1 -0
  269. package/dist/mongo.d.ts +2 -3
  270. package/dist/mongo.d.ts.map +1 -0
  271. package/dist/mongo.js +2 -1
  272. package/dist/mongo.js.map +1 -1
  273. package/dist/rate-limit/db.d.ts +29 -0
  274. package/dist/rate-limit/db.d.ts.map +1 -0
  275. package/dist/rate-limit/db.js +25 -0
  276. package/dist/rate-limit/db.js.map +1 -0
  277. package/dist/rate-limit/index.d.ts +4 -0
  278. package/dist/rate-limit/index.d.ts.map +1 -0
  279. package/dist/rate-limit/index.js +6 -0
  280. package/dist/rate-limit/index.js.map +1 -0
  281. package/dist/rate-limit/rules.d.ts +22 -0
  282. package/dist/rate-limit/rules.d.ts.map +1 -0
  283. package/dist/rate-limit/rules.js +112 -0
  284. package/dist/rate-limit/rules.js.map +1 -0
  285. package/dist/rate-limit/types.d.ts +12 -0
  286. package/dist/rate-limit/types.d.ts.map +1 -0
  287. package/dist/rate-limit/types.js +2 -0
  288. package/dist/rate-limit/types.js.map +1 -0
  289. package/dist/routes/handler.d.ts +4 -0
  290. package/dist/routes/handler.d.ts.map +1 -0
  291. package/dist/routes/handler.js +66 -0
  292. package/dist/routes/handler.js.map +1 -0
  293. package/dist/routes/types.d.ts +45 -0
  294. package/dist/routes/types.d.ts.map +1 -0
  295. package/dist/routes/types.js +2 -0
  296. package/dist/routes/types.js.map +1 -0
  297. package/dist/server.d.ts +19 -551
  298. package/dist/server.d.ts.map +1 -0
  299. package/dist/server.js +15 -18
  300. package/dist/server.js.map +1 -1
  301. package/dist/system/index.d.ts +4 -0
  302. package/dist/system/index.d.ts.map +1 -0
  303. package/dist/system/index.js +21 -0
  304. package/dist/system/index.js.map +1 -0
  305. package/dist/telemetry/index.d.ts +11 -0
  306. package/dist/telemetry/index.d.ts.map +1 -0
  307. package/dist/telemetry/index.js +79 -0
  308. package/dist/telemetry/index.js.map +1 -0
  309. package/dist/telemetry.d.ts +2 -11
  310. package/dist/telemetry.d.ts.map +1 -0
  311. package/dist/telemetry.js +1 -1
  312. package/dist/telemetry.js.map +1 -1
  313. package/dist/time.d.ts +8 -0
  314. package/dist/time.d.ts.map +1 -0
  315. package/dist/time.js +13 -0
  316. package/dist/time.js.map +1 -0
  317. package/dist/types/email.d.ts +25 -0
  318. package/dist/types/email.d.ts.map +1 -0
  319. package/dist/types/email.js +2 -0
  320. package/dist/types/email.js.map +1 -0
  321. package/dist/types/index.d.ts +14 -0
  322. package/dist/types/index.d.ts.map +1 -0
  323. package/dist/types/index.js +2 -0
  324. package/dist/types/index.js.map +1 -0
  325. package/dist/types.d.ts +10 -7
  326. package/dist/types.d.ts.map +1 -0
  327. package/dist/types.js +1 -1
  328. package/dist/types.js.map +1 -1
  329. package/dist/utils/index.d.ts +4 -0
  330. package/dist/utils/index.d.ts.map +1 -0
  331. package/dist/utils/index.js +15 -0
  332. package/dist/utils/index.js.map +1 -0
  333. package/dist/viteServer.d.ts +13 -0
  334. package/dist/viteServer.d.ts.map +1 -0
  335. package/dist/viteServer.js +132 -0
  336. package/dist/viteServer.js.map +1 -0
  337. package/dist/websocket/client.d.ts +9 -0
  338. package/dist/websocket/client.d.ts.map +1 -0
  339. package/dist/websocket/client.js +16 -0
  340. package/dist/websocket/client.js.map +1 -0
  341. package/dist/websocket/clientChannel.d.ts +9 -0
  342. package/dist/websocket/clientChannel.d.ts.map +1 -0
  343. package/dist/websocket/clientChannel.js +26 -0
  344. package/dist/websocket/clientChannel.js.map +1 -0
  345. package/dist/websocket/serverChannel.d.ts +14 -0
  346. package/dist/websocket/serverChannel.d.ts.map +1 -0
  347. package/dist/websocket/serverChannel.js +21 -0
  348. package/dist/websocket/serverChannel.js.map +1 -0
  349. package/dist/websocket/socketio/client.d.ts +4 -0
  350. package/dist/websocket/socketio/client.d.ts.map +1 -0
  351. package/dist/websocket/socketio/client.js +48 -0
  352. package/dist/websocket/socketio/client.js.map +1 -0
  353. package/dist/websocket/socketio/server.d.ts +10 -0
  354. package/dist/websocket/socketio/server.d.ts.map +1 -0
  355. package/dist/websocket/socketio/server.js +80 -0
  356. package/dist/websocket/socketio/server.js.map +1 -0
  357. package/dist/websocket/types.d.ts +45 -0
  358. package/dist/websocket/types.d.ts.map +1 -0
  359. package/dist/websocket/types.js +2 -0
  360. package/dist/websocket/types.js.map +1 -0
  361. package/package.json +5 -6
  362. package/dist/chunk-3S2FFBNS.js +0 -2
  363. package/dist/chunk-3S2FFBNS.js.map +0 -1
  364. package/dist/chunk-3YAV3UUU.js +0 -3
  365. package/dist/chunk-3YAV3UUU.js.map +0 -1
  366. package/dist/chunk-55J6XMHW.js +0 -2
  367. package/dist/chunk-55J6XMHW.js.map +0 -1
  368. package/dist/chunk-C3UESBRX.js +0 -2
  369. package/dist/chunk-C3UESBRX.js.map +0 -1
  370. package/dist/chunk-DO5TZLF5.js +0 -2
  371. package/dist/chunk-DO5TZLF5.js.map +0 -1
  372. package/dist/chunk-PB6WQQ4L.js +0 -3
  373. package/dist/chunk-PB6WQQ4L.js.map +0 -1
  374. package/dist/index-CwdohC5n.d.ts +0 -15
  375. package/dist/package-3YQBVIVQ.js +0 -2
  376. package/dist/package-3YQBVIVQ.js.map +0 -1
  377. package/dist/types-Ds1ESQSs.d.ts +0 -106
@@ -0,0 +1,90 @@
1
+ // import { spawn } from 'child_process';
2
+ // import { fileURLToPath } from 'url';
3
+ // import { dirname, join } from 'path';
4
+ import { logInfo, logError } from '../telemetry';
5
+ import process from 'process';
6
+ const buffer = {
7
+ stdout: [{ log: '', timestamp: null }],
8
+ stderr: [{ log: '', timestamp: null }],
9
+ };
10
+ let sequenceId = 1;
11
+ export function startLoggerProcess({ elasticCloudId: _elasticCloudId, elasticApiKey: _elasticApiKey, }) {
12
+ const originalStdoutWrite = process.stdout.write;
13
+ const originalStderrWrite = process.stderr.write;
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ process.stdout.write = function (chunk, ...args) {
16
+ addToBuffer(chunk.toString(), buffer.stdout);
17
+ return originalStdoutWrite.call(process.stdout, chunk, ...args);
18
+ };
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ process.stderr.write = function (chunk, ...args) {
21
+ addToBuffer(chunk.toString(), buffer.stderr);
22
+ return originalStderrWrite.call(process.stderr, chunk, ...args);
23
+ };
24
+ loopSendLogs();
25
+ // const currentFilePath = fileURLToPath(import.meta.url);
26
+ // const projectRoot = dirname(dirname(currentFilePath));
27
+ // const loggerPath = join(projectRoot, 'bin', 'modelence-logger', 'index.js');
28
+ // const logger = spawn(process.execPath, [loggerPath], {
29
+ // env: {
30
+ // NODE_ENV: process.env.NODE_ENV,
31
+ // ELASTIC_CLOUD_ID: elasticCloudId,
32
+ // ELASTIC_API_KEY: elasticApiKey
33
+ // },
34
+ // stdio: ['pipe', 'inherit', 'inherit'],
35
+ // detached: true
36
+ // });
37
+ // const originalStdoutWrite = process.stdout.write;
38
+ // const originalStderrWrite = process.stderr.write;
39
+ // process.stdout.write = function(chunk: any, ...args: any[]) {
40
+ // logger.stdin.write(chunk);
41
+ // return originalStdoutWrite.apply(process.stdout, [chunk, ...args]);
42
+ // };
43
+ // process.stderr.write = function(chunk: any, ...args: any[]) {
44
+ // logger.stdin.write(chunk);
45
+ // return originalStderrWrite.apply(process.stderr, [chunk, ...args]);
46
+ // };
47
+ // process.on('exit', () => {
48
+ // process.stdout.write = originalStdoutWrite;
49
+ // process.stderr.write = originalStderrWrite;
50
+ // });
51
+ // logger.unref();
52
+ }
53
+ function addToBuffer(chunk, buffer) {
54
+ if (chunk.length === 0) {
55
+ return;
56
+ }
57
+ const timestamp = new Date();
58
+ for (let i = 0; i < chunk.length; i++) {
59
+ const current = buffer[buffer.length - 1];
60
+ if (!current.timestamp) {
61
+ current.timestamp = timestamp;
62
+ current.sequenceId = sequenceId++;
63
+ }
64
+ if (chunk[i] === '\n') {
65
+ buffer.push({ log: '', timestamp: null });
66
+ }
67
+ else {
68
+ current.log += chunk[i];
69
+ }
70
+ }
71
+ }
72
+ async function sendLogs() {
73
+ const stdoutLogs = buffer.stdout.slice(0, -1);
74
+ buffer.stdout = [buffer.stdout[buffer.stdout.length - 1]];
75
+ const stderrLogs = buffer.stderr.slice(0, -1);
76
+ buffer.stderr = [buffer.stderr[buffer.stderr.length - 1]];
77
+ stdoutLogs.forEach(({ log, timestamp, sequenceId }) => {
78
+ logInfo(log, { timestamp, source: 'console', sequenceId });
79
+ });
80
+ stderrLogs.forEach(({ log, timestamp, sequenceId }) => {
81
+ logError(log, { timestamp, source: 'console', sequenceId });
82
+ });
83
+ }
84
+ function loopSendLogs() {
85
+ setTimeout(() => {
86
+ sendLogs();
87
+ loopSendLogs();
88
+ }, 1000);
89
+ }
90
+ //# sourceMappingURL=loggerProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggerProcess.js","sourceRoot":"","sources":["../../src/app/loggerProcess.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import elasticApm from 'elastic-apm-node';
2
+ import winston from 'winston';
3
+ export declare const initMetrics: () => Promise<void>;
4
+ export declare function getApm(): elasticApm.Agent;
5
+ export declare function getLogger(): winston.Logger;
6
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/app/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,OAAO,MAAM,SAAS,CAAC;AAiB9B,eAAO,MAAM,WAAW,qBAUvB,CAAC;AAsEF,wBAAgB,MAAM,qBAKrB;AAED,wBAAgB,SAAS,mBAKxB"}
@@ -0,0 +1,92 @@
1
+ import elasticApm from 'elastic-apm-node';
2
+ import winston from 'winston';
3
+ import { ElasticsearchTransport } from 'winston-elasticsearch';
4
+ import { getConfig } from '../config/server';
5
+ import { startLoggerProcess } from './loggerProcess';
6
+ import { getAppAlias, getEnvironmentAlias, getEnvironmentId, getTelemetryServiceName, isTelemetryEnabled, } from './state';
7
+ let isInitialized = false;
8
+ let apm = null;
9
+ let logger = null;
10
+ export const initMetrics = async () => {
11
+ if (isInitialized) {
12
+ throw new Error('Metrics are already initialized, duplicate "initMetrics" call received');
13
+ }
14
+ isInitialized = true;
15
+ if (isTelemetryEnabled()) {
16
+ await initElasticApm();
17
+ }
18
+ };
19
+ async function initElasticApm() {
20
+ const elasticApmEndpoint = getConfig('_system.elastic.apmEndpoint');
21
+ const elasticCloudId = getConfig('_system.elastic.cloudId');
22
+ const elasticApiKey = getConfig('_system.elastic.apiKey');
23
+ const appAlias = getAppAlias() ?? 'unknown';
24
+ const environmentAlias = getEnvironmentAlias() ?? 'unknown';
25
+ const environmentId = getEnvironmentId() ?? 'unknown';
26
+ const serviceName = getTelemetryServiceName();
27
+ apm = elasticApm.start({
28
+ serviceName,
29
+ apiKey: elasticApiKey,
30
+ serverUrl: elasticApmEndpoint,
31
+ // environment: 'dev',
32
+ transactionSampleRate: 1.0,
33
+ centralConfig: false,
34
+ globalLabels: {
35
+ modelenceEnv: 'dev',
36
+ appEnv: 'dev',
37
+ environmentId,
38
+ appAlias,
39
+ environmentAlias,
40
+ },
41
+ // logLevel: 'debug'
42
+ });
43
+ const esTransport = new ElasticsearchTransport({
44
+ apm,
45
+ level: 'debug',
46
+ clientOpts: {
47
+ cloud: {
48
+ id: elasticCloudId,
49
+ },
50
+ auth: {
51
+ apiKey: elasticApiKey,
52
+ },
53
+ requestTimeout: 10000,
54
+ tls: {
55
+ rejectUnauthorized: false,
56
+ },
57
+ },
58
+ bufferLimit: 1000,
59
+ silent: false,
60
+ });
61
+ esTransport.on('error', (error) => {
62
+ console.error('Elasticsearch Transport Error:', error);
63
+ });
64
+ logger = winston.createLogger({
65
+ level: 'debug',
66
+ defaultMeta: {
67
+ serviceName,
68
+ },
69
+ format: winston.format.combine(winston.format.json()),
70
+ transports: [
71
+ // new winston.transports.Console(), // TODO: remove, just for debugging
72
+ esTransport,
73
+ ],
74
+ });
75
+ startLoggerProcess({
76
+ elasticCloudId,
77
+ elasticApiKey,
78
+ });
79
+ }
80
+ export function getApm() {
81
+ if (!apm) {
82
+ throw new Error('APM is not initialized');
83
+ }
84
+ return apm;
85
+ }
86
+ export function getLogger() {
87
+ if (!logger) {
88
+ throw new Error('Logger is not initialized');
89
+ }
90
+ return logger;
91
+ }
92
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/app/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { ConfigSchema } from '../config/types';
2
+ import { CronJobInputParams } from '../cron/types';
3
+ import { Store } from '../data/store';
4
+ import { MethodDefinition } from '../methods/types';
5
+ import { RouteDefinition } from '../routes/types';
6
+ import { RateLimitRule } from '../rate-limit/types';
7
+ import { ServerChannel } from '../websocket/serverChannel';
8
+ /** Array of Store instances that will be provisioned when the module is loaded */
9
+ type Stores = Store<any, any>[];
10
+ /** Record of query methods that can be called from the client */
11
+ type Queries = Record<string, MethodDefinition<any>>;
12
+ /** Record of mutation methods that can be called from the client */
13
+ type Mutations = Record<string, MethodDefinition<any>>;
14
+ /**
15
+ * The Module class is a core building block of a Modelence application that encapsulates related functionality.
16
+ * Modules can contain stores, queries, mutations, routes, cron jobs and configurations.
17
+ *
18
+ * @category Module
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const todoModule = new Module('todo', {
23
+ * stores: [dbTodos],
24
+ * queries: {
25
+ * async getAll() {
26
+ * // Fetch and return all Todo items
27
+ * }
28
+ * },
29
+ * mutations: {
30
+ * async create({ title }, { user }) {
31
+ * // Create a new Todo item
32
+ * }
33
+ * }
34
+ * });
35
+ * ```
36
+ */
37
+ export declare class Module {
38
+ /** @internal */
39
+ readonly name: string;
40
+ /** @internal */
41
+ readonly stores: Stores;
42
+ /** @internal */
43
+ readonly queries: Queries;
44
+ /** @internal */
45
+ readonly mutations: Mutations;
46
+ /** @internal */
47
+ readonly routes: RouteDefinition[];
48
+ /** @internal */
49
+ readonly cronJobs: Record<string, CronJobInputParams>;
50
+ /** @internal */
51
+ readonly configSchema: ConfigSchema;
52
+ /** @internal */
53
+ readonly rateLimits: RateLimitRule[];
54
+ /** @internal */
55
+ readonly channels: ServerChannel[];
56
+ /**
57
+ * Creates a new Module instance
58
+ *
59
+ * @param name - The unique name of the module.
60
+ * This name is used to namespace queries, mutations,
61
+ * cron jobs and configuration values with a prefix (e.g. "todo.create")
62
+ *
63
+ * @param options - Module configuration options
64
+ */
65
+ constructor(name: string, { stores, queries, mutations, routes, cronJobs, configSchema, rateLimits, channels, }: {
66
+ stores?: Store<any, any>[];
67
+ queries?: Queries;
68
+ mutations?: Mutations;
69
+ routes?: RouteDefinition[];
70
+ cronJobs?: Record<string, CronJobInputParams>;
71
+ configSchema?: ConfigSchema;
72
+ rateLimits?: RateLimitRule[];
73
+ channels?: ServerChannel[];
74
+ });
75
+ }
76
+ export {};
77
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/app/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,kFAAkF;AAElF,KAAK,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAEhC,iEAAiE;AAEjE,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAErD,oEAAoE;AAEpE,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,MAAM;IACjB,gBAAgB;IAChB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,gBAAgB;IAChB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,gBAAgB;IAChB,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,gBAAgB;IAChB,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1C,gBAAgB;IAChB,SAAgB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE7D,gBAAgB;IAChB,SAAgB,YAAY,EAAE,YAAY,CAAC;IAE3C,gBAAgB;IAChB,SAAgB,UAAU,EAAE,aAAa,EAAE,CAAC;IAE5C,gBAAgB;IAChB,SAAgB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE1C;;;;;;;;OAQG;gBAED,IAAI,EAAE,MAAM,EACZ,EACE,MAAW,EACX,OAAY,EACZ,SAAc,EACd,MAAW,EACX,QAAa,EACb,YAAiB,EACjB,UAAe,EACf,QAAa,GACd,EAAE;QAED,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QAC7B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;KAC5B;CAYJ"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The Module class is a core building block of a Modelence application that encapsulates related functionality.
3
+ * Modules can contain stores, queries, mutations, routes, cron jobs and configurations.
4
+ *
5
+ * @category Module
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const todoModule = new Module('todo', {
10
+ * stores: [dbTodos],
11
+ * queries: {
12
+ * async getAll() {
13
+ * // Fetch and return all Todo items
14
+ * }
15
+ * },
16
+ * mutations: {
17
+ * async create({ title }, { user }) {
18
+ * // Create a new Todo item
19
+ * }
20
+ * }
21
+ * });
22
+ * ```
23
+ */
24
+ export class Module {
25
+ /**
26
+ * Creates a new Module instance
27
+ *
28
+ * @param name - The unique name of the module.
29
+ * This name is used to namespace queries, mutations,
30
+ * cron jobs and configuration values with a prefix (e.g. "todo.create")
31
+ *
32
+ * @param options - Module configuration options
33
+ */
34
+ constructor(name, { stores = [], queries = {}, mutations = {}, routes = [], cronJobs = {}, configSchema = {}, rateLimits = [], channels = [], }) {
35
+ this.name = name;
36
+ this.stores = stores;
37
+ this.queries = queries;
38
+ this.mutations = mutations;
39
+ this.routes = routes;
40
+ this.cronJobs = cronJobs;
41
+ this.configSchema = configSchema;
42
+ this.rateLimits = rateLimits;
43
+ this.channels = channels;
44
+ }
45
+ }
46
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/app/module.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,MAAM;IA4BjB;;;;;;;;OAQG;IACH,YACE,IAAY,EACZ,EACE,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,SAAS,GAAG,EAAE,EACd,MAAM,GAAG,EAAE,EACX,QAAQ,GAAG,EAAE,EACb,YAAY,GAAG,EAAE,EACjB,UAAU,GAAG,EAAE,EACf,QAAQ,GAAG,EAAE,GAWd;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,37 @@
1
+ import { Request } from 'express';
2
+ import type { AppServer } from '../types';
3
+ import { Module } from './module';
4
+ import { ConnectionInfo } from '../methods/types';
5
+ import { ServerChannel } from '../websocket/serverChannel';
6
+ export declare function startServer(server: AppServer, { combinedModules, channels, }: {
7
+ combinedModules: Module[];
8
+ channels: ServerChannel[];
9
+ }): Promise<void>;
10
+ export declare function getCallContext(req: Request): Promise<{
11
+ clientInfo: {
12
+ screenWidth: number;
13
+ screenHeight: number;
14
+ windowWidth: number;
15
+ windowHeight: number;
16
+ pixelRatio: number;
17
+ orientation: string | null;
18
+ };
19
+ connectionInfo: ConnectionInfo;
20
+ session: import("../types").Session;
21
+ user: import("../server").UserInfo | null;
22
+ roles: string[];
23
+ } | {
24
+ clientInfo: {
25
+ screenWidth: number;
26
+ screenHeight: number;
27
+ windowWidth: number;
28
+ windowHeight: number;
29
+ pixelRatio: number;
30
+ orientation: string | null;
31
+ };
32
+ connectionInfo: ConnectionInfo;
33
+ session: null;
34
+ user: null;
35
+ roles: string[];
36
+ }>;
37
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/app/server.ts"],"names":[],"mappings":"AAQA,OAAgB,EAAE,OAAO,EAAY,MAAM,SAAS,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAwD1D,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,EACE,eAAe,EACf,QAAQ,GACT,EAAE;IACD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,iBA6FF;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDhD"}
@@ -0,0 +1,198 @@
1
+ import googleAuthRouter from '../auth/providers/google';
2
+ import githubAuthRouter from '../auth/providers/github';
3
+ import { runMethod } from '../methods';
4
+ import { getResponseTypeMap } from '../methods/serialize';
5
+ import { createRouteHandler } from '../routes/handler';
6
+ import { logInfo } from '../telemetry';
7
+ import cookieParser from 'cookie-parser';
8
+ import express from 'express';
9
+ import http from 'http';
10
+ import z from 'zod';
11
+ import { authenticate } from '../auth';
12
+ import { getUnauthenticatedRoles } from '../auth/role';
13
+ import { getMongodbUri } from '../db/client';
14
+ import { ModelenceError } from '../error';
15
+ import { getWebsocketConfig } from './websocketConfig';
16
+ function getBodyParserMiddleware(config) {
17
+ const middlewares = [];
18
+ if (!config) {
19
+ // Default: apply JSON and urlencoded parsing
20
+ middlewares.push(express.json({ limit: '16mb' }));
21
+ middlewares.push(express.urlencoded({ extended: true, limit: '16mb' }));
22
+ return middlewares;
23
+ }
24
+ // Handle JSON parsing
25
+ if (config.json !== false) {
26
+ const jsonOptions = typeof config.json === 'object' ? config.json : { limit: '16mb' };
27
+ middlewares.push(express.json(jsonOptions));
28
+ }
29
+ // Handle URL-encoded parsing
30
+ if (config.urlencoded !== false) {
31
+ const urlencodedOptions = typeof config.urlencoded === 'object' ? config.urlencoded : { extended: true, limit: '16mb' };
32
+ middlewares.push(express.urlencoded(urlencodedOptions));
33
+ }
34
+ // Handle raw body parsing
35
+ if (config.raw) {
36
+ const rawOptions = typeof config.raw === 'object' ? config.raw : {};
37
+ const defaultRawOptions = {
38
+ limit: rawOptions.limit || '16mb',
39
+ type: rawOptions.type || '*/*',
40
+ };
41
+ middlewares.push(express.raw(defaultRawOptions));
42
+ }
43
+ return middlewares;
44
+ }
45
+ function registerModuleRoutes(app, modules) {
46
+ for (const module of modules) {
47
+ for (const route of module.routes) {
48
+ const { path, handlers, body } = route;
49
+ const middlewares = getBodyParserMiddleware(body);
50
+ Object.entries(handlers).forEach(([method, handler]) => {
51
+ app[method](path, ...middlewares, createRouteHandler(method, path, handler));
52
+ });
53
+ }
54
+ }
55
+ }
56
+ export async function startServer(server, { combinedModules, channels, }) {
57
+ const app = express();
58
+ app.use(cookieParser());
59
+ // Register module routes first (with per-route body parser config)
60
+ registerModuleRoutes(app, combinedModules);
61
+ // Apply global body parsing for remaining routes
62
+ app.use(express.json({ limit: '16mb' }));
63
+ app.use(express.urlencoded({ extended: true, limit: '16mb' }));
64
+ app.use(googleAuthRouter());
65
+ app.use(githubAuthRouter());
66
+ app.post('/api/_internal/method/:methodName(*)', async (req, res) => {
67
+ const { methodName } = req.params;
68
+ const context = await getCallContext(req);
69
+ try {
70
+ const result = await runMethod(methodName, req.body.args, context);
71
+ res.json({
72
+ data: result,
73
+ typeMap: getResponseTypeMap(result),
74
+ });
75
+ }
76
+ catch (error) {
77
+ // TODO: introduce error codes and handle them differently
78
+ // TODO: support multiple errors
79
+ // TODO: add an option to silence these error console logs, especially when Elastic logs are configured
80
+ console.error(`Error in method ${methodName}:`, error);
81
+ if (error instanceof ModelenceError) {
82
+ res.status(error.status).send(error.message);
83
+ }
84
+ else if (error instanceof Error &&
85
+ error?.constructor?.name === 'ZodError' &&
86
+ 'errors' in error) {
87
+ const zodError = error;
88
+ const flattened = zodError.flatten();
89
+ const fieldMessages = Object.entries(flattened.fieldErrors)
90
+ .map(([key, errors]) => `${key}: ${(errors ?? []).join(', ')}`)
91
+ .join('; ');
92
+ const formMessages = flattened.formErrors.join('; ');
93
+ const allMessages = [fieldMessages, formMessages].filter(Boolean).join('; ');
94
+ res.status(400).send(allMessages);
95
+ }
96
+ else {
97
+ res.status(500).send(error instanceof Error ? error.message : String(error));
98
+ }
99
+ }
100
+ });
101
+ await server.init();
102
+ if (server.middlewares) {
103
+ app.use(server.middlewares());
104
+ }
105
+ app.all('*', (req, res) => {
106
+ return server.handler(req, res);
107
+ });
108
+ process.on('unhandledRejection', (reason, promise) => {
109
+ console.error('Unhandled Promise Rejection:');
110
+ console.error(reason instanceof Error ? reason.stack : reason);
111
+ console.error('Promise:', promise);
112
+ });
113
+ // Global uncaught exceptions
114
+ process.on('uncaughtException', (error) => {
115
+ console.error('Uncaught Exception:');
116
+ console.error(error.stack); // This gives you the full stack trace
117
+ console.trace('Full application stack:'); // Additional context
118
+ });
119
+ const httpServer = http.createServer(app);
120
+ const websocketProvider = getWebsocketConfig()?.provider;
121
+ if (websocketProvider) {
122
+ websocketProvider.init({
123
+ httpServer,
124
+ channels,
125
+ });
126
+ }
127
+ const port = process.env.MODELENCE_PORT || process.env.PORT || 3000;
128
+ httpServer.listen(port, () => {
129
+ logInfo(`Application started`, { source: 'app' });
130
+ const siteUrl = process.env.MODELENCE_SITE_URL || `http://localhost:${port}`;
131
+ console.log(`\nApplication started on ${siteUrl}\n`);
132
+ });
133
+ }
134
+ export async function getCallContext(req) {
135
+ const authToken = z
136
+ .string()
137
+ .nullish()
138
+ .transform((val) => val ?? null)
139
+ .parse(req.cookies.authToken || req.body.authToken);
140
+ const clientInfo = z
141
+ .object({
142
+ screenWidth: z.number(),
143
+ screenHeight: z.number(),
144
+ windowWidth: z.number(),
145
+ windowHeight: z.number(),
146
+ pixelRatio: z.number(),
147
+ orientation: z.string().nullable(),
148
+ })
149
+ .nullish()
150
+ .parse(req.body.clientInfo) ?? {
151
+ screenWidth: 0,
152
+ screenHeight: 0,
153
+ windowWidth: 0,
154
+ windowHeight: 0,
155
+ pixelRatio: 1,
156
+ orientation: null,
157
+ };
158
+ const connectionInfo = {
159
+ ip: getClientIp(req),
160
+ userAgent: req.get('user-agent'),
161
+ acceptLanguage: req.get('accept-language'),
162
+ referrer: req.get('referrer'),
163
+ baseUrl: req.protocol + '://' + req.get('host'),
164
+ };
165
+ const hasDatabase = Boolean(getMongodbUri());
166
+ if (hasDatabase) {
167
+ const { session, user, roles } = await authenticate(authToken);
168
+ return {
169
+ clientInfo,
170
+ connectionInfo,
171
+ session,
172
+ user,
173
+ roles,
174
+ };
175
+ }
176
+ return {
177
+ clientInfo,
178
+ connectionInfo,
179
+ session: null,
180
+ user: null,
181
+ roles: getUnauthenticatedRoles(),
182
+ };
183
+ }
184
+ function getClientIp(req) {
185
+ // On Heroku and other proxies, X-Forwarded-For contains the real client IP
186
+ const forwardedFor = req.headers['x-forwarded-for'];
187
+ if (forwardedFor) {
188
+ const firstIp = Array.isArray(forwardedFor) ? forwardedFor[0] : forwardedFor.split(',')[0];
189
+ return firstIp.trim();
190
+ }
191
+ const directIp = req.ip || req.socket?.remoteAddress;
192
+ if (directIp) {
193
+ // Remove IPv6-to-IPv4 mapping prefix
194
+ return directIp.startsWith('::ffff:') ? directIp.substring(7) : directIp;
195
+ }
196
+ return undefined;
197
+ }
198
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/app/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ type AppMetadata = {
2
+ environmentId: string;
3
+ appAlias: string;
4
+ environmentAlias: string;
5
+ telemetry: {
6
+ isEnabled: boolean;
7
+ serviceName: string;
8
+ };
9
+ };
10
+ export declare function markAppStarted(): void;
11
+ export declare function isAppStarted(): boolean;
12
+ export declare function setMetadata(_metadata: AppMetadata): void;
13
+ export declare function getEnvironmentId(): string | undefined;
14
+ export declare function getAppAlias(): string | undefined;
15
+ export declare function getEnvironmentAlias(): string | undefined;
16
+ export declare function getTelemetryServiceName(): string | undefined;
17
+ export declare function isTelemetryEnabled(): boolean;
18
+ export {};
19
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/app/state.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE;QACT,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAKF,wBAAgB,cAAc,SAE7B;AAED,wBAAgB,YAAY,YAE3B;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,WAAW,QAEjD;AAED,wBAAgB,gBAAgB,uBAE/B;AAED,wBAAgB,WAAW,uBAE1B;AAED,wBAAgB,mBAAmB,uBAElC;AAED,wBAAgB,uBAAuB,uBAEtC;AAED,wBAAgB,kBAAkB,YAEjC"}
@@ -0,0 +1,27 @@
1
+ let appStarted = false;
2
+ let metadata = null;
3
+ export function markAppStarted() {
4
+ appStarted = true;
5
+ }
6
+ export function isAppStarted() {
7
+ return appStarted;
8
+ }
9
+ export function setMetadata(_metadata) {
10
+ metadata = Object.assign({}, metadata, _metadata);
11
+ }
12
+ export function getEnvironmentId() {
13
+ return metadata?.environmentId;
14
+ }
15
+ export function getAppAlias() {
16
+ return metadata?.appAlias;
17
+ }
18
+ export function getEnvironmentAlias() {
19
+ return metadata?.environmentAlias;
20
+ }
21
+ export function getTelemetryServiceName() {
22
+ return metadata?.telemetry?.serviceName;
23
+ }
24
+ export function isTelemetryEnabled() {
25
+ return Boolean(metadata?.telemetry?.isEnabled);
26
+ }
27
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/app/state.ts"],"names":[],"mappings":"AAUA,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,QAAQ,GAAuB,IAAI,CAAC;AAExC,MAAM,UAAU,cAAc;IAC5B,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAsB;IAChD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,QAAQ,EAAE,aAAa,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,EAAE,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,QAAQ,EAAE,gBAAgB,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { WebsocketServerProvider } from '../websocket/types';
2
+ export type WebsocketConfig = {
3
+ provider?: WebsocketServerProvider;
4
+ };
5
+ export declare function setWebsocketConfig(newWebsocketConfig: WebsocketConfig): void;
6
+ export declare function getWebsocketConfig(): WebsocketConfig;
7
+ //# sourceMappingURL=websocketConfig.d.ts.map