@syngrisi/syngrisi 2.2.2 → 2.2.6-alpha.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 (613) hide show
  1. package/README.md +49 -27
  2. package/dist/server/api-docs/openAPIDocumentGenerator.js +6489 -0
  3. package/dist/server/api-docs/openAPIDocumentGenerator.js.map +1 -0
  4. package/dist/server/api-docs/openAPIResponseBuilders.js +89 -0
  5. package/dist/server/api-docs/openAPIResponseBuilders.js.map +1 -0
  6. package/dist/server/api-docs/openAPIRouter.js +6505 -0
  7. package/dist/server/api-docs/openAPIRouter.js.map +1 -0
  8. package/dist/server/api-docs/serviceResponse.js +39 -0
  9. package/dist/server/api-docs/serviceResponse.js.map +1 -0
  10. package/dist/server/app.js +6751 -0
  11. package/dist/server/app.js.map +1 -0
  12. package/dist/server/config.js +1055 -0
  13. package/dist/server/config.js.map +1 -0
  14. package/dist/server/controllers/app.controller.js +1949 -0
  15. package/dist/server/controllers/app.controller.js.map +1 -0
  16. package/dist/server/controllers/auth.controller.js +2079 -0
  17. package/dist/server/controllers/auth.controller.js.map +1 -0
  18. package/dist/server/controllers/baseline.controller.js +1976 -0
  19. package/dist/server/controllers/baseline.controller.js.map +1 -0
  20. package/dist/server/controllers/check.controller.js +2289 -0
  21. package/dist/server/controllers/check.controller.js.map +1 -0
  22. package/dist/server/controllers/client.controller.js +2994 -0
  23. package/dist/server/controllers/client.controller.js.map +1 -0
  24. package/dist/server/controllers/index.js +4289 -0
  25. package/dist/server/controllers/index.js.map +1 -0
  26. package/dist/server/controllers/logs.controller.js +1954 -0
  27. package/dist/server/controllers/logs.controller.js.map +1 -0
  28. package/dist/server/controllers/runs.controller.js +2293 -0
  29. package/dist/server/controllers/runs.controller.js.map +1 -0
  30. package/dist/server/controllers/settings.controller.js +843 -0
  31. package/dist/server/controllers/settings.controller.js.map +1 -0
  32. package/dist/server/controllers/snapshots.controller.js +1953 -0
  33. package/dist/server/controllers/snapshots.controller.js.map +1 -0
  34. package/dist/server/controllers/suite.controller.js +2288 -0
  35. package/dist/server/controllers/suite.controller.js.map +1 -0
  36. package/dist/server/controllers/tasks.controller.js +2378 -0
  37. package/dist/server/controllers/tasks.controller.js.map +1 -0
  38. package/dist/server/controllers/test.controller.js +2312 -0
  39. package/dist/server/controllers/test.controller.js.map +1 -0
  40. package/dist/server/controllers/users.controller.js +2056 -0
  41. package/dist/server/controllers/users.controller.js.map +1 -0
  42. package/dist/server/envConfig.js +70 -0
  43. package/dist/server/envConfig.js.map +1 -0
  44. package/dist/server/lib/AppSettings/AppSettings.js +814 -0
  45. package/dist/server/lib/AppSettings/AppSettings.js.map +1 -0
  46. package/dist/server/lib/AppSettings/index.js +814 -0
  47. package/dist/server/lib/AppSettings/index.js.map +1 -0
  48. package/dist/server/lib/connectDb.js +1873 -0
  49. package/dist/server/lib/connectDb.js.map +1 -0
  50. package/dist/server/lib/dbItems/createAppIfNotExist.js +1878 -0
  51. package/dist/server/lib/dbItems/createAppIfNotExist.js.map +1 -0
  52. package/dist/server/lib/dbItems/createItemIfNotExist.js +1883 -0
  53. package/dist/server/lib/dbItems/createItemIfNotExist.js.map +1 -0
  54. package/dist/server/lib/dbItems/createItemProm.js +1877 -0
  55. package/dist/server/lib/dbItems/createItemProm.js.map +1 -0
  56. package/dist/server/lib/dbItems/createRunIfNotExist.js +1898 -0
  57. package/dist/server/lib/dbItems/createRunIfNotExist.js.map +1 -0
  58. package/dist/server/lib/dbItems/createSuiteIfNotExist.js +1878 -0
  59. package/dist/server/lib/dbItems/createSuiteIfNotExist.js.map +1 -0
  60. package/dist/server/lib/dbItems/createTest.js +1884 -0
  61. package/dist/server/lib/dbItems/createTest.js.map +1 -0
  62. package/dist/server/lib/dbItems/createUser.js +1884 -0
  63. package/dist/server/lib/dbItems/createUser.js.map +1 -0
  64. package/dist/server/lib/dbItems/index.js +2043 -0
  65. package/dist/server/lib/dbItems/index.js.map +1 -0
  66. package/dist/server/lib/dbItems/updateItem.js +1873 -0
  67. package/dist/server/lib/dbItems/updateItem.js.map +1 -0
  68. package/dist/server/lib/dbItems/updateItemDate.js +1872 -0
  69. package/dist/server/lib/dbItems/updateItemDate.js.map +1 -0
  70. package/dist/server/lib/httpLogger.js +1066 -0
  71. package/dist/server/lib/httpLogger.js.map +1 -0
  72. package/dist/server/lib/logger.js +1852 -0
  73. package/dist/server/lib/logger.js.map +1 -0
  74. package/dist/server/lib/startup/createBasicUsers.js +1901 -0
  75. package/dist/server/lib/startup/createBasicUsers.js.map +1 -0
  76. package/dist/server/lib/startup/createInitialSettings.js +820 -0
  77. package/dist/server/lib/startup/createInitialSettings.js.map +1 -0
  78. package/dist/server/lib/startup/createTempDir.js +1066 -0
  79. package/dist/server/lib/startup/createTempDir.js.map +1 -0
  80. package/dist/server/lib/startup/createTestsUsers.js +1916 -0
  81. package/dist/server/lib/startup/createTestsUsers.js.map +1 -0
  82. package/dist/server/lib/startup/index.js +2071 -0
  83. package/dist/server/lib/startup/index.js.map +1 -0
  84. package/dist/server/lib//321/201omparison/comparator.js +1955 -0
  85. package/dist/server/lib//321/201omparison/comparator.js.map +1 -0
  86. package/dist/server/lib//321/201omparison/compareImagesNode.js +91 -0
  87. package/dist/server/lib//321/201omparison/compareImagesNode.js.map +1 -0
  88. package/dist/server/lib//321/201omparison/index.js +1955 -0
  89. package/dist/server/lib//321/201omparison/index.js.map +1 -0
  90. package/dist/server/middlewares/authorization.js +1994 -0
  91. package/dist/server/middlewares/authorization.js.map +1 -0
  92. package/dist/server/middlewares/compressionFilter.js +47 -0
  93. package/dist/server/middlewares/compressionFilter.js.map +1 -0
  94. package/dist/server/middlewares/disableCors.js +1073 -0
  95. package/dist/server/middlewares/disableCors.js.map +1 -0
  96. package/dist/server/middlewares/ensureLogin/ensureLoggedIn.js +2103 -0
  97. package/dist/server/middlewares/ensureLogin/ensureLoggedIn.js.map +1 -0
  98. package/dist/server/middlewares/ensureLogin/index.js +2087 -0
  99. package/dist/server/middlewares/ensureLogin/index.js.map +1 -0
  100. package/dist/server/middlewares/errorHandler.js +1886 -0
  101. package/dist/server/middlewares/errorHandler.js.map +1 -0
  102. package/dist/server/middlewares/index.js +2025 -0
  103. package/dist/server/middlewares/index.js.map +1 -0
  104. package/dist/server/models/App.model.js +145 -0
  105. package/dist/server/models/App.model.js.map +1 -0
  106. package/dist/server/models/AppSettings.model.js +105 -0
  107. package/dist/server/models/AppSettings.model.js.map +1 -0
  108. package/dist/server/models/Baseline.model.js +187 -0
  109. package/dist/server/models/Baseline.model.js.map +1 -0
  110. package/dist/server/models/Check.model.js +241 -0
  111. package/dist/server/models/Check.model.js.map +1 -0
  112. package/dist/server/models/Log.model.js +139 -0
  113. package/dist/server/models/Log.model.js.map +1 -0
  114. package/dist/server/models/Run.model.js +154 -0
  115. package/dist/server/models/Run.model.js.map +1 -0
  116. package/dist/server/models/Snapshot.model.js +148 -0
  117. package/dist/server/models/Snapshot.model.js.map +1 -0
  118. package/dist/server/models/Suite.model.js +151 -0
  119. package/dist/server/models/Suite.model.js.map +1 -0
  120. package/dist/server/models/Test.model.js +248 -0
  121. package/dist/server/models/Test.model.js.map +1 -0
  122. package/dist/server/models/User.model.js +169 -0
  123. package/dist/server/models/User.model.js.map +1 -0
  124. package/dist/server/models/index.js +720 -0
  125. package/dist/server/models/index.js.map +1 -0
  126. package/dist/server/models/plugins/index.js +159 -0
  127. package/dist/server/models/plugins/index.js.map +1 -0
  128. package/dist/server/models/plugins/paginate.plugin.js +68 -0
  129. package/dist/server/models/plugins/paginate.plugin.js.map +1 -0
  130. package/dist/server/models/plugins/paginateDistinct.plugin.js +73 -0
  131. package/dist/server/models/plugins/paginateDistinct.plugin.js.map +1 -0
  132. package/dist/server/models/plugins/toJSON.plugin.js +56 -0
  133. package/dist/server/models/plugins/toJSON.plugin.js.map +1 -0
  134. package/dist/server/models/plugins/utils.js +19 -0
  135. package/dist/server/models/plugins/utils.js.map +1 -0
  136. package/dist/server/routes/ui/admin.js +2082 -0
  137. package/dist/server/routes/ui/admin.js.map +1 -0
  138. package/dist/server/routes/ui/auth.js +711 -0
  139. package/dist/server/routes/ui/auth.js.map +1 -0
  140. package/dist/server/routes/ui/index.js +2036 -0
  141. package/dist/server/routes/ui/index.js.map +1 -0
  142. package/dist/server/routes/v1/app.route.js +4372 -0
  143. package/dist/server/routes/v1/app.route.js.map +1 -0
  144. package/dist/server/routes/v1/auth.route.js +2325 -0
  145. package/dist/server/routes/v1/auth.route.js.map +1 -0
  146. package/dist/server/routes/v1/baselines.route.js +2487 -0
  147. package/dist/server/routes/v1/baselines.route.js.map +1 -0
  148. package/dist/server/routes/v1/checks.route.js +2840 -0
  149. package/dist/server/routes/v1/checks.route.js.map +1 -0
  150. package/dist/server/routes/v1/client.route.js +3764 -0
  151. package/dist/server/routes/v1/client.route.js.map +1 -0
  152. package/dist/server/routes/v1/index.route.js +6536 -0
  153. package/dist/server/routes/v1/index.route.js.map +1 -0
  154. package/dist/server/routes/v1/logs.route.js +2426 -0
  155. package/dist/server/routes/v1/logs.route.js.map +1 -0
  156. package/dist/server/routes/v1/runs.route.js +2771 -0
  157. package/dist/server/routes/v1/runs.route.js.map +1 -0
  158. package/dist/server/routes/v1/settings.route.js +2349 -0
  159. package/dist/server/routes/v1/settings.route.js.map +1 -0
  160. package/dist/server/routes/v1/snapshots.route.js +2361 -0
  161. package/dist/server/routes/v1/snapshots.route.js.map +1 -0
  162. package/dist/server/routes/v1/suites.route.js +2713 -0
  163. package/dist/server/routes/v1/suites.route.js.map +1 -0
  164. package/dist/server/routes/v1/tasks.route.js +2761 -0
  165. package/dist/server/routes/v1/tasks.route.js.map +1 -0
  166. package/dist/server/routes/v1/test_distinct.route.js +2714 -0
  167. package/dist/server/routes/v1/test_distinct.route.js.map +1 -0
  168. package/dist/server/routes/v1/tests.route.js +2895 -0
  169. package/dist/server/routes/v1/tests.route.js.map +1 -0
  170. package/dist/server/routes/v1/users.route.js +4619 -0
  171. package/dist/server/routes/v1/users.route.js.map +1 -0
  172. package/dist/server/schemas/App.schema.js +102 -0
  173. package/dist/server/schemas/App.schema.js.map +1 -0
  174. package/dist/server/schemas/Auth.schema.js +116 -0
  175. package/dist/server/schemas/Auth.schema.js.map +1 -0
  176. package/dist/server/schemas/Baseline.schema.js +183 -0
  177. package/dist/server/schemas/Baseline.schema.js.map +1 -0
  178. package/dist/server/schemas/Check.schema.js +198 -0
  179. package/dist/server/schemas/Check.schema.js.map +1 -0
  180. package/dist/server/schemas/Client.schema.js +455 -0
  181. package/dist/server/schemas/Client.schema.js.map +1 -0
  182. package/dist/server/schemas/CreateCheck.shema.js +47 -0
  183. package/dist/server/schemas/CreateCheck.shema.js.map +1 -0
  184. package/dist/server/schemas/GetBaseline.shema.js +56 -0
  185. package/dist/server/schemas/GetBaseline.shema.js.map +1 -0
  186. package/dist/server/schemas/Logs.schema.js +140 -0
  187. package/dist/server/schemas/Logs.schema.js.map +1 -0
  188. package/dist/server/schemas/Runs.schema.js +128 -0
  189. package/dist/server/schemas/Runs.schema.js.map +1 -0
  190. package/dist/server/schemas/Settings.schema.js +156 -0
  191. package/dist/server/schemas/Settings.schema.js.map +1 -0
  192. package/dist/server/schemas/SkipValid.schema.js +32 -0
  193. package/dist/server/schemas/SkipValid.schema.js.map +1 -0
  194. package/dist/server/schemas/SnapshotDiff.schema.js +44 -0
  195. package/dist/server/schemas/SnapshotDiff.schema.js.map +1 -0
  196. package/dist/server/schemas/Snapshots.schema.js +115 -0
  197. package/dist/server/schemas/Snapshots.schema.js.map +1 -0
  198. package/dist/server/schemas/Suite.schema.js +114 -0
  199. package/dist/server/schemas/Suite.schema.js.map +1 -0
  200. package/dist/server/schemas/Test.schema.js +204 -0
  201. package/dist/server/schemas/Test.schema.js.map +1 -0
  202. package/dist/server/schemas/TestDistinct.schema.js +63 -0
  203. package/dist/server/schemas/TestDistinct.schema.js.map +1 -0
  204. package/dist/server/schemas/User.schema.js +139 -0
  205. package/dist/server/schemas/User.schema.js.map +1 -0
  206. package/dist/server/schemas/common/ApiError.schema.js +51 -0
  207. package/dist/server/schemas/common/ApiError.schema.js.map +1 -0
  208. package/dist/server/schemas/common/Error.schema.js +47 -0
  209. package/dist/server/schemas/common/Error.schema.js.map +1 -0
  210. package/dist/server/schemas/common/RequestPagination.schema.js +121 -0
  211. package/dist/server/schemas/common/RequestPagination.schema.js.map +1 -0
  212. package/dist/server/schemas/common/Version.schema.js +36 -0
  213. package/dist/server/schemas/common/Version.schema.js.map +1 -0
  214. package/dist/server/schemas/common/requestQueryFilterSchema.schema.js +53 -0
  215. package/dist/server/schemas/common/requestQueryFilterSchema.schema.js.map +1 -0
  216. package/dist/server/schemas/index.js +155 -0
  217. package/dist/server/schemas/index.js.map +1 -0
  218. package/dist/server/schemas/utils/commonValidations.js +82 -0
  219. package/dist/server/schemas/utils/commonValidations.js.map +1 -0
  220. package/dist/server/schemas/utils/createRequestBodySchema.js +32 -0
  221. package/dist/server/schemas/utils/createRequestBodySchema.js.map +1 -0
  222. package/dist/server/schemas/utils/createRequestOpenApiBodySchema.js +35 -0
  223. package/dist/server/schemas/utils/createRequestOpenApiBodySchema.js.map +1 -0
  224. package/dist/server/schemas/utils/createRequestParamsSchema.js +93 -0
  225. package/dist/server/schemas/utils/createRequestParamsSchema.js.map +1 -0
  226. package/dist/server/schemas/utils/createRequestQuerySchema.js +32 -0
  227. package/dist/server/schemas/utils/createRequestQuerySchema.js.map +1 -0
  228. package/dist/server/schemas/utils/index.js +84 -0
  229. package/dist/server/schemas/utils/index.js.map +1 -0
  230. package/dist/server/server.js +6921 -0
  231. package/dist/server/server.js.map +1 -0
  232. package/dist/server/server_old.js +7284 -0
  233. package/dist/server/server_old.js.map +1 -0
  234. package/dist/server/services/app.service.js +696 -0
  235. package/dist/server/services/app.service.js.map +1 -0
  236. package/dist/server/services/auth.service.js +2025 -0
  237. package/dist/server/services/auth.service.js.map +1 -0
  238. package/dist/server/services/check.service.js +2149 -0
  239. package/dist/server/services/check.service.js.map +1 -0
  240. package/dist/server/services/client.service.js +2648 -0
  241. package/dist/server/services/client.service.js.map +1 -0
  242. package/dist/server/services/generic.service.js +1888 -0
  243. package/dist/server/services/generic.service.js.map +1 -0
  244. package/dist/server/services/index.js +3548 -0
  245. package/dist/server/services/index.js.map +1 -0
  246. package/dist/server/services/logs.service.js +1875 -0
  247. package/dist/server/services/logs.service.js.map +1 -0
  248. package/dist/server/services/run.service.js +2221 -0
  249. package/dist/server/services/run.service.js.map +1 -0
  250. package/dist/server/services/snapshot.service.js +1921 -0
  251. package/dist/server/services/snapshot.service.js.map +1 -0
  252. package/dist/server/services/suite.service.js +2218 -0
  253. package/dist/server/services/suite.service.js.map +1 -0
  254. package/dist/server/services/tasks.service.js +2288 -0
  255. package/dist/server/services/tasks.service.js.map +1 -0
  256. package/dist/server/services/test.service.js +2230 -0
  257. package/dist/server/services/test.service.js.map +1 -0
  258. package/dist/server/services/user.service.js +1925 -0
  259. package/dist/server/services/user.service.js.map +1 -0
  260. package/dist/server/utils/ApiError.js +39 -0
  261. package/dist/server/utils/ApiError.js.map +1 -0
  262. package/dist/server/utils/ProgressBar.js +54 -0
  263. package/dist/server/utils/ProgressBar.js.map +1 -0
  264. package/dist/server/utils/ServiceResponse.js +45 -0
  265. package/dist/server/utils/ServiceResponse.js.map +1 -0
  266. package/dist/server/utils/buildIdentObject.js +52 -0
  267. package/dist/server/utils/buildIdentObject.js.map +1 -0
  268. package/dist/server/utils/calculateAcceptedStatus.js +710 -0
  269. package/dist/server/utils/calculateAcceptedStatus.js.map +1 -0
  270. package/dist/server/utils/catchAsync.js +32 -0
  271. package/dist/server/utils/catchAsync.js.map +1 -0
  272. package/dist/server/utils/checkIdent.js +36 -0
  273. package/dist/server/utils/checkIdent.js.map +1 -0
  274. package/dist/server/utils/dateToISO8601.js +30 -0
  275. package/dist/server/utils/dateToISO8601.js.map +1 -0
  276. package/dist/server/utils/deserializeIfJSON.js +706 -0
  277. package/dist/server/utils/deserializeIfJSON.js.map +1 -0
  278. package/dist/server/utils/errMsg.js +33 -0
  279. package/dist/server/utils/errMsg.js.map +1 -0
  280. package/dist/server/utils/formatISOToDateTime.js +31 -0
  281. package/dist/server/utils/formatISOToDateTime.js.map +1 -0
  282. package/dist/server/utils/ident.js +31 -0
  283. package/dist/server/utils/ident.js.map +1 -0
  284. package/dist/server/utils/index.js +910 -0
  285. package/dist/server/utils/index.js.map +1 -0
  286. package/dist/server/utils/isJSON.js +34 -0
  287. package/dist/server/utils/isJSON.js.map +1 -0
  288. package/dist/server/utils/paramsGuard.js +45 -0
  289. package/dist/server/utils/paramsGuard.js.map +1 -0
  290. package/dist/server/utils/pick.js +35 -0
  291. package/dist/server/utils/pick.js.map +1 -0
  292. package/dist/server/utils/prettyCheckParams.js +37 -0
  293. package/dist/server/utils/prettyCheckParams.js.map +1 -0
  294. package/dist/server/utils/removeEmptyProperties.js +34 -0
  295. package/dist/server/utils/removeEmptyProperties.js.map +1 -0
  296. package/dist/server/utils/subDays.js +32 -0
  297. package/dist/server/utils/subDays.js.map +1 -0
  298. package/dist/server/utils/validateRequest.js +1922 -0
  299. package/dist/server/utils/validateRequest.js.map +1 -0
  300. package/dist/server/utils/waitUntil.js +43 -0
  301. package/dist/server/utils/waitUntil.js.map +1 -0
  302. package/dist/tasks/backup.js +1085 -0
  303. package/dist/tasks/backup.js.map +1 -0
  304. package/dist/tasks/lib/index.js +717 -0
  305. package/dist/tasks/lib/index.js.map +1 -0
  306. package/dist/tasks/lib/utils.js +1070 -0
  307. package/dist/tasks/lib/utils.js.map +1 -0
  308. package/dist/tasks/migrations/2.0.migration.js +908 -0
  309. package/dist/tasks/migrations/2.0.migration.js.map +1 -0
  310. package/dist/tasks/reindex.js +1742 -0
  311. package/dist/tasks/reindex.js.map +1 -0
  312. package/dist/tasks/restore.js +1097 -0
  313. package/dist/tasks/restore.js.map +1 -0
  314. package/docker-compose.yml +3 -3
  315. package/mvc/views/react/admin/index.html +4 -4
  316. package/mvc/views/react/assets/{LogicalGroup.6c0a9f4a.js → LogicalGroup.80e37bbf.js} +1 -22
  317. package/mvc/views/react/assets/{PasswordInput.b97a4ef7.js → PasswordInput.eb05d2ed.js} +1 -1
  318. package/mvc/views/react/assets/{admin.6d843d1b.js → admin.d6aa02f7.js} +3 -3
  319. package/mvc/views/react/assets/{auth.ecf25364.js → auth.e49d0968.js} +3 -2
  320. package/mvc/views/react/assets/{root.25abcc85.js → root.b071750f.js} +7 -9
  321. package/mvc/views/react/assets/{use-form.10003abf.js → use-form.c4a2cf47.js} +203 -151
  322. package/mvc/views/react/auth/index.html +3 -3
  323. package/mvc/views/react/index2/index.html +3 -3
  324. package/package.json +45 -14
  325. package/src/seeds/testAdmin.json +10 -0
  326. package/src/server/api-docs/openAPIDocumentGenerator.ts +48 -0
  327. package/src/server/api-docs/openAPIResponseBuilders.ts +38 -0
  328. package/src/server/api-docs/openAPIRouter.ts +18 -0
  329. package/src/server/api-docs/serviceResponse.ts +11 -0
  330. package/src/server/app.ts +77 -0
  331. package/src/server/config.ts +57 -0
  332. package/src/server/controllers/app.controller.ts +23 -0
  333. package/src/server/controllers/auth.controller.ts +149 -0
  334. package/src/server/controllers/baseline.controller.ts +32 -0
  335. package/src/server/controllers/{check.controller.js → check.controller.ts} +17 -14
  336. package/src/server/controllers/client.controller.ts +134 -0
  337. package/src/server/controllers/index.ts +27 -0
  338. package/src/server/controllers/logs.controller.ts +36 -0
  339. package/src/server/controllers/runs.controller.ts +32 -0
  340. package/src/server/controllers/settings.controller.ts +28 -0
  341. package/src/server/controllers/snapshots.controller.ts +24 -0
  342. package/src/server/controllers/suite.controller.ts +30 -0
  343. package/src/server/controllers/tasks.controller.ts +47 -0
  344. package/src/server/controllers/test.controller.ts +62 -0
  345. package/src/server/controllers/users.controller.ts +89 -0
  346. package/src/server/envConfig.ts +36 -0
  347. package/src/server/lib/AppSettings/AppSettings.ts +88 -0
  348. package/src/server/lib/AppSettings/index.ts +1 -0
  349. package/src/server/lib/connectDb.ts +18 -0
  350. package/src/server/lib/dbItems/createAppIfNotExist.ts +26 -0
  351. package/src/server/lib/dbItems/createItemIfNotExist.ts +29 -0
  352. package/src/server/lib/dbItems/createItemProm.ts +22 -0
  353. package/src/server/lib/dbItems/createRunIfNotExist.ts +44 -0
  354. package/src/server/lib/dbItems/createSuiteIfNotExist.ts +26 -0
  355. package/src/server/lib/dbItems/createTest.ts +7 -0
  356. package/src/server/lib/dbItems/createUser.ts +7 -0
  357. package/src/server/lib/dbItems/index.ts +12 -0
  358. package/src/server/lib/dbItems/updateItem.ts +17 -0
  359. package/src/server/lib/dbItems/updateItemDate.ts +18 -0
  360. package/src/server/lib/httpLogger.ts +14 -0
  361. package/src/server/lib/logger.ts +147 -0
  362. package/src/server/lib/startup/createBasicUsers.ts +25 -0
  363. package/src/server/lib/startup/createInitialSettings.ts +8 -0
  364. package/src/server/lib/startup/createTempDir.ts +9 -0
  365. package/src/server/lib/startup/createTestsUsers.ts +17 -0
  366. package/src/server/lib/startup/index.ts +4 -0
  367. package/src/server/lib//321/201omparison/comparator.ts +49 -0
  368. package/src/server/lib//321/201omparison/compareImagesNode.ts +61 -0
  369. package/src/server/lib//321/201omparison/index.ts +1 -0
  370. package/src/server/middlewares/{authorization.js → authorization.ts} +23 -14
  371. package/src/server/middlewares/compressionFilter.ts +9 -0
  372. package/src/server/middlewares/disableCors.ts +32 -0
  373. package/src/server/{lib/ensureLogin/ensureLoggedIn.js → middlewares/ensureLogin/ensureLoggedIn.ts} +60 -63
  374. package/src/server/middlewares/ensureLogin/index.ts +2 -0
  375. package/src/server/middlewares/errorHandler.ts +42 -0
  376. package/src/server/middlewares/index.ts +4 -0
  377. package/src/server/models/App.model.ts +42 -0
  378. package/src/server/models/AppSettings.model.ts +48 -0
  379. package/src/server/models/Baseline.model.ts +98 -0
  380. package/src/server/models/Check.model.ts +166 -0
  381. package/src/server/models/Log.model.ts +36 -0
  382. package/src/server/models/Run.model.ts +55 -0
  383. package/src/server/models/Snapshot.model.ts +47 -0
  384. package/src/server/models/Suite.model.ts +50 -0
  385. package/src/server/models/Test.model.ts +117 -0
  386. package/src/server/models/User.model.ts +77 -0
  387. package/src/server/models/index.ts +11 -0
  388. package/src/server/models/plugins/index.ts +3 -0
  389. package/src/server/models/plugins/paginate.plugin.ts +74 -0
  390. package/src/server/models/plugins/paginateDistinct.plugin.ts +90 -0
  391. package/src/server/models/plugins/toJSON.plugin.ts +41 -0
  392. package/src/server/models/plugins/utils.ts +34 -0
  393. package/src/server/routes/ui/admin.ts +29 -0
  394. package/src/server/routes/ui/auth.ts +22 -0
  395. package/src/server/routes/ui/index.ts +25 -0
  396. package/src/server/routes/v1/app.route.ts +48 -0
  397. package/src/server/routes/v1/auth.route.ts +88 -0
  398. package/src/server/routes/v1/baselines.route.ts +52 -0
  399. package/src/server/routes/v1/checks.route.ts +85 -0
  400. package/src/server/routes/v1/client.route.ts +123 -0
  401. package/src/server/routes/v1/{index.js → index.route.ts} +16 -16
  402. package/src/server/routes/v1/logs.route.ts +65 -0
  403. package/src/server/routes/v1/runs.route.ts +55 -0
  404. package/src/server/routes/v1/settings.route.ts +54 -0
  405. package/src/server/routes/v1/snapshots.route.ts +32 -0
  406. package/src/server/routes/v1/suites.route.ts +52 -0
  407. package/src/server/routes/v1/tasks.route.ts +121 -0
  408. package/src/server/routes/v1/test_distinct.route.ts +32 -0
  409. package/src/server/routes/v1/tests.route.ts +90 -0
  410. package/src/server/routes/v1/users.route.ts +115 -0
  411. package/src/server/schemas/App.schema.ts +19 -0
  412. package/src/server/schemas/Auth.schema.ts +27 -0
  413. package/src/server/schemas/Baseline.schema.ts +106 -0
  414. package/src/server/schemas/Check.schema.ts +117 -0
  415. package/src/server/schemas/Client.schema.ts +380 -0
  416. package/src/server/schemas/GetBaseline.shema.ts +34 -0
  417. package/src/server/schemas/Logs.schema.ts +61 -0
  418. package/src/server/schemas/Runs.schema.ts +45 -0
  419. package/src/server/schemas/Settings.schema.ts +71 -0
  420. package/src/server/schemas/SkipValid.schema.ts +2 -0
  421. package/src/server/schemas/SnapshotDiff.schema.ts +18 -0
  422. package/src/server/schemas/Snapshots.schema.ts +42 -0
  423. package/src/server/schemas/Suite.schema.ts +34 -0
  424. package/src/server/schemas/Test.schema.ts +126 -0
  425. package/src/server/schemas/TestDistinct.schema.ts +36 -0
  426. package/src/server/schemas/User.schema.ts +59 -0
  427. package/src/server/schemas/common/ApiError.schema.ts +23 -0
  428. package/src/server/schemas/common/Error.schema.ts +19 -0
  429. package/src/server/schemas/common/RequestPagination.schema.ts +16 -0
  430. package/src/server/schemas/common/Version.schema.ts +14 -0
  431. package/src/server/schemas/common/requestQueryFilterSchema.schema.ts +32 -0
  432. package/src/server/schemas/index.ts +4 -0
  433. package/src/server/schemas/utils/commonValidations.ts +51 -0
  434. package/src/server/schemas/utils/createRequestBodySchema.ts +2 -0
  435. package/src/server/schemas/utils/createRequestOpenApiBodySchema.ts +6 -0
  436. package/src/server/schemas/utils/createRequestParamsSchema.ts +7 -0
  437. package/src/server/schemas/utils/createRequestQuerySchema.ts +2 -0
  438. package/src/server/schemas/utils/index.ts +3 -0
  439. package/src/server/server.ts +54 -0
  440. package/src/server/server_old.ts +185 -0
  441. package/src/server/services/app.service.ts +9 -0
  442. package/src/server/services/auth.service.ts +94 -0
  443. package/src/server/services/check.service.ts +241 -0
  444. package/src/server/services/client.service.ts +691 -0
  445. package/src/server/services/generic.service.ts +37 -0
  446. package/src/server/services/index.ts +24 -0
  447. package/src/server/services/logs.service.ts +27 -0
  448. package/src/server/services/run.service.ts +32 -0
  449. package/src/server/services/snapshot.service.ts +78 -0
  450. package/src/server/services/suite.service.ts +30 -0
  451. package/src/server/services/{tasks.service.js → tasks.service.ts} +157 -228
  452. package/src/server/services/test.service.ts +65 -0
  453. package/src/server/services/user.service.ts +90 -0
  454. package/src/server/utils/{ApiError.js → ApiError.ts} +5 -2
  455. package/src/server/utils/ProgressBar.ts +35 -0
  456. package/src/server/utils/ServiceResponse.ts +18 -0
  457. package/src/server/utils/buildIdentObject.ts +34 -0
  458. package/src/server/utils/calculateAcceptedStatus.ts +22 -0
  459. package/src/server/utils/catchAsync.ts +11 -0
  460. package/src/server/utils/checkIdent.ts +4 -0
  461. package/src/server/utils/dateToISO8601.ts +5 -0
  462. package/src/server/utils/deserializeIfJSON.ts +9 -0
  463. package/src/server/utils/errMsg.ts +3 -0
  464. package/src/server/utils/{formatISOToDateTime.js → formatISOToDateTime.ts} +2 -2
  465. package/src/server/utils/ident.ts +1 -0
  466. package/src/server/utils/index.ts +24 -0
  467. package/src/server/utils/isJSON.ts +14 -0
  468. package/src/server/utils/paramsGuard.ts +7 -6
  469. package/src/server/utils/pick.ts +17 -0
  470. package/src/server/utils/prettyCheckParams.ts +18 -0
  471. package/src/server/utils/removeEmptyProperties.ts +5 -0
  472. package/src/server/utils/{subDays.js → subDays.ts} +2 -2
  473. package/src/server/utils/validateRequest.ts +56 -0
  474. package/src/server/utils/waitUntil.ts +14 -0
  475. package/src/tasks/backup.ts +1 -1
  476. package/src/tasks/lib/index.ts +13 -0
  477. package/src/tasks/lib/utils.ts +14 -0
  478. package/src/tasks/migrations/2.0.migration.ts +2 -2
  479. package/src/tasks/reindex.ts +34 -0
  480. package/src/tasks/restore.ts +1 -1
  481. package/src/types/ExtRequest.ts +10 -0
  482. package/src/types/LogOpts.ts +20 -0
  483. package/src/types/Midleware.ts +3 -0
  484. package/src/types/RequestUser.ts +14 -0
  485. package/src/types/index.ts +4 -0
  486. package/src/ui-app/README.md +2 -2
  487. package/src/ui-app/auth/components/ChangePasswordForm.tsx +1 -1
  488. package/src/ui-app/index2/components/Tests/Table/Checks/CheckDetails/Canvas/mainView.ts +3 -3
  489. package/src/ui-app/index2/components/Tests/Table/Checks/Checks.tsx +30 -2
  490. package/src/ui-app/package-lock.json +10 -16
  491. package/src/ui-app/package.json +2 -2
  492. package/src/ui-app/shared/services/checks.service.ts +1 -1
  493. package/src/ui-app/shared/services/generic.service.ts +0 -28
  494. package/src/ui-app/tsconfig.json +3 -2
  495. package/config.js +0 -17
  496. package/dist/config.js +0 -16
  497. package/dist/src/server/models/index.js +0 -508
  498. package/dist/src/server/models/plugins/index.js +0 -4
  499. package/dist/src/server/models/plugins/paginate.plugin.js +0 -76
  500. package/dist/src/server/models/plugins/paginateDistinct.plugin.js +0 -76
  501. package/dist/src/server/models/plugins/toJSON.plugin.js +0 -39
  502. package/dist/src/server/schemas/createCheck.shema.js +0 -17
  503. package/dist/src/server/schemas/getBaseline.shema.js +0 -12
  504. package/dist/src/server/utils/paramsGuard.js +0 -18
  505. package/dist/src/tasks/backup.js +0 -68
  506. package/dist/src/tasks/lib/common.js +0 -14
  507. package/dist/src/tasks/lib/utils.js +0 -14
  508. package/dist/src/tasks/migrations/2.0.migration.js +0 -86
  509. package/dist/src/tasks/migrations/2.0.migration_mql.js +0 -57
  510. package/dist/src/tasks/reindex.js +0 -28
  511. package/dist/src/tasks/restore.js +0 -86
  512. package/dist/tsconfig.tsbuildinfo +0 -1
  513. package/mvc/views/react/index.html +0 -19
  514. package/server.js +0 -166
  515. package/src/server/controllers/app.controller.js +0 -21
  516. package/src/server/controllers/auth.controller.js +0 -156
  517. package/src/server/controllers/baseline.controller.js +0 -24
  518. package/src/server/controllers/client.controller.js +0 -173
  519. package/src/server/controllers/index.js +0 -12
  520. package/src/server/controllers/logs.controller.js +0 -30
  521. package/src/server/controllers/runs.controller.js +0 -25
  522. package/src/server/controllers/settings.controller.js +0 -23
  523. package/src/server/controllers/snapshots.controller.js +0 -17
  524. package/src/server/controllers/suite.controller.js +0 -24
  525. package/src/server/controllers/tasks.controller.js +0 -47
  526. package/src/server/controllers/test.controller.js +0 -70
  527. package/src/server/controllers/users.controller.js +0 -79
  528. package/src/server/data/custom_devices.json +0 -8
  529. package/src/server/lib/AppSettings.js +0 -56
  530. package/src/server/lib/comparator.js +0 -147
  531. package/src/server/lib/compareImagesNode.js +0 -60
  532. package/src/server/lib/dbItems.js +0 -215
  533. package/src/server/lib/ensureLogin/ensureLoggedOut.js +0 -44
  534. package/src/server/lib/getElementsByPixPositionsFromDump.js +0 -72
  535. package/src/server/lib/logger.js +0 -95
  536. package/src/server/lib/onStart.js +0 -53
  537. package/src/server/lib/parseDiff.js.bak +0 -72
  538. package/src/server/middlewares/disableCors.js +0 -19
  539. package/src/server/models/index.js +0 -534
  540. package/src/server/models/plugins/index.js +0 -3
  541. package/src/server/models/plugins/paginate.plugin.js +0 -83
  542. package/src/server/models/plugins/paginateDistinct.plugin.js +0 -80
  543. package/src/server/models/plugins/toJSON.plugin.js +0 -44
  544. package/src/server/routes/ui/admin.js +0 -20
  545. package/src/server/routes/ui/auth.js +0 -15
  546. package/src/server/routes/ui/index.js +0 -19
  547. package/src/server/routes/v1/app.route.js +0 -9
  548. package/src/server/routes/v1/auth.route.js +0 -12
  549. package/src/server/routes/v1/baselines.route.js +0 -14
  550. package/src/server/routes/v1/checks.route.js +0 -25
  551. package/src/server/routes/v1/client.route.js +0 -39
  552. package/src/server/routes/v1/logs.route.js +0 -16
  553. package/src/server/routes/v1/runs.route.js +0 -15
  554. package/src/server/routes/v1/settings.route.js +0 -23
  555. package/src/server/routes/v1/snapshots.route.js +0 -11
  556. package/src/server/routes/v1/suites.route.js +0 -15
  557. package/src/server/routes/v1/tasks.route.js +0 -59
  558. package/src/server/routes/v1/test.route.js +0 -20
  559. package/src/server/routes/v1/test_distinct.route.js +0 -14
  560. package/src/server/routes/v1/users.route.js +0 -36
  561. package/src/server/schemas/getBaseline.shema.ts +0 -12
  562. package/src/server/services/app.service.js +0 -23
  563. package/src/server/services/check.service.js +0 -178
  564. package/src/server/services/client.service.js +0 -648
  565. package/src/server/services/generic.service.js +0 -51
  566. package/src/server/services/index.js +0 -12
  567. package/src/server/services/logs.service.js +0 -38
  568. package/src/server/services/run.service.js +0 -40
  569. package/src/server/services/suite.service.js +0 -39
  570. package/src/server/services/test.service.js +0 -72
  571. package/src/server/services/user.service.js +0 -128
  572. package/src/server/utils/catchAsync.js +0 -8
  573. package/src/server/utils/check.js +0 -58
  574. package/src/server/utils/dateToISO8601.js +0 -2
  575. package/src/server/utils/deserializeIfJSON.js +0 -9
  576. package/src/server/utils/index.js +0 -10
  577. package/src/server/utils/isJSON.js +0 -6
  578. package/src/server/utils/pick.js +0 -15
  579. package/src/server/utils/prettyCheckParams.js +0 -13
  580. package/src/server/utils/snapshots.js +0 -73
  581. package/src/server/utils/tests.js +0 -36
  582. package/src/server/utils/utils.js +0 -146
  583. package/src/tasks/backup.js.bak +0 -84
  584. package/src/tasks/lib/common.js +0 -24
  585. package/src/tasks/lib/utils.js +0 -15
  586. package/src/tasks/reindex.js +0 -36
  587. package/src/tasks/restore.js.bak +0 -100
  588. package/src/ui-app/tsconfig.node.json +0 -12
  589. package/static/js/canvasjs.min.js.bak +0 -957
  590. package/static/js/chart.js.bak +0 -92
  591. package/static/js/jquery-3.3.1.slim.js.bak +0 -8269
  592. package/static/js/jquery-3.3.1.slim.min.js.bak +0 -2
  593. package/static/js/moment.min.js.bak +0 -2
  594. /package/src/{server/lib → seeds}/admin.json +0 -0
  595. /package/src/{server/lib → seeds}/guest.json +0 -0
  596. /package/src/{server/lib → seeds}/initialAppSettings.json +0 -0
  597. /package/src/{server/lib/testAdmin.json → seeds/testAdmin copy.json} +0 -0
  598. /package/src/{server/lib → seeds}/testUsers.json +0 -0
  599. /package/src/server/schemas/{createCheck.shema.ts → CreateCheck.shema.ts} +0 -0
  600. /package/{static → src/server/static/static}/A.png +0 -0
  601. /package/{static → src/server/static/static}/B.png +0 -0
  602. /package/{static → src/server/static/static}/affected.html +0 -0
  603. /package/{static → src/server/static/static}/affected_2.html +0 -0
  604. /package/{static → src/server/static/static}/data/custom_devices.json +0 -0
  605. /package/{static → src/server/static/static}/grids/desktop-higher.html +0 -0
  606. /package/{static → src/server/static/static}/grids/desktop-wider.html +0 -0
  607. /package/{static → src/server/static/static}/grids/desktop.html +0 -0
  608. /package/{static → src/server/static/static}/grids/fit-in-view.html +0 -0
  609. /package/{static → src/server/static/static}/low_diff_0.png +0 -0
  610. /package/{static → src/server/static/static}/low_diff_1.png +0 -0
  611. /package/{static → src/server/static/static}/vShift.png +0 -0
  612. /package/{static → src/server/static/static}/vShift_bottom.png +0 -0
  613. /package/{static → src/server/static/static}/vShift_top.png +0 -0
@@ -0,0 +1,1884 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/server/lib/dbItems/createTest.ts
31
+ var createTest_exports = {};
32
+ __export(createTest_exports, {
33
+ createTest: () => createTest
34
+ });
35
+ module.exports = __toCommonJS(createTest_exports);
36
+
37
+ // src/server/lib/dbItems/createItemProm.ts
38
+ var import_mongoose11 = __toESM(require("mongoose"));
39
+
40
+ // src/server/lib/logger.ts
41
+ var import_winston = __toESM(require("winston"));
42
+ var import_winston_mongodb = require("winston-mongodb");
43
+ var import_chalk = require("chalk");
44
+
45
+ // src/server/utils/formatISOToDateTime.ts
46
+ function formatISOToDateTime(isoDateString) {
47
+ const date = new Date(isoDateString);
48
+ return `${date.toISOString().slice(0, 10)} ${date.toTimeString().slice(0, 8)}`;
49
+ }
50
+ var formatISOToDateTime_default = formatISOToDateTime;
51
+
52
+ // src/server/config.ts
53
+ var import_fs = __toESM(require("fs"));
54
+ var import_dotenv2 = __toESM(require("dotenv"));
55
+
56
+ // package.json
57
+ var version = "2.2.3";
58
+
59
+ // src/server/config.ts
60
+ var import_crypto2 = __toESM(require("crypto"));
61
+
62
+ // src/server/envConfig.ts
63
+ var import_envalid = require("envalid");
64
+ var import_crypto = __toESM(require("crypto"));
65
+ var import_path = __toESM(require("path"));
66
+ var import_dotenv = __toESM(require("dotenv"));
67
+ import_dotenv.default.config();
68
+ var env = (0, import_envalid.cleanEnv)(process.env, {
69
+ NODE_ENV: (0, import_envalid.str)({ choices: ["development", "production", "test"] }),
70
+ SYNGRISI_DB_URI: (0, import_envalid.str)({ devDefault: "mongodb://127.0.0.1:27017/SyngrisiDb" }),
71
+ SYNGRISI_APP_PORT: (0, import_envalid.port)({ devDefault: 3e3 }),
72
+ SYNGRISI_IMAGES_PATH: (0, import_envalid.str)({ devDefault: "./.snapshots-images/" }),
73
+ SYNGRISI_TMP_DIR: (0, import_envalid.str)({ default: import_path.default.join(process.cwd(), ".tmp") }),
74
+ SYNGRISI_HTTP_LOG: (0, import_envalid.bool)({ devDefault: false }),
75
+ SYNGRISI_COVERAGE: (0, import_envalid.bool)({ devDefault: false }),
76
+ SYNGRISI_HOSTNAME: (0, import_envalid.host)({ devDefault: "localhost" }),
77
+ SYNGRISI_AUTH: (0, import_envalid.bool)({ default: true }),
78
+ SYNGRISI_TEST_MODE: (0, import_envalid.bool)({ default: false }),
79
+ SYNGRISI_DISABLE_FIRST_RUN: (0, import_envalid.bool)({ default: false }),
80
+ MONGODB_ROOT_USERNAME: (0, import_envalid.str)({ default: "" }),
81
+ MONGODB_ROOT_PASSWORD: (0, import_envalid.str)({ default: "" }),
82
+ LOGLEVEL: (0, import_envalid.str)({ choices: ["error", "warn", "info", "verbose", "debug", "silly"], default: "debug" }),
83
+ SYNGRISI_PAGINATION_SIZE: (0, import_envalid.num)({ default: 50 }),
84
+ SYNGRISI_DISABLE_DEV_CORS: (0, import_envalid.bool)({ default: false, devDefault: true }),
85
+ SYNGRISI_SESSION_STORE_KEY: (0, import_envalid.str)({ default: import_crypto.default.randomBytes(64).toString("hex") }),
86
+ SYNGRISI_LOG_LEVEL: (0, import_envalid.str)({ default: "debug" }),
87
+ // trunk features
88
+ SYNGRISI_TRUNK_FEATURE_AI_SEVERITY: (0, import_envalid.bool)({ default: false }),
89
+ SYNGRISI_AI_KEY: (0, import_envalid.str)({ default: "" }),
90
+ OPENAI_API_BASE_URL: (0, import_envalid.str)({ default: "https://api.openai.com/v1" }),
91
+ OPENAI_API_KEY: (0, import_envalid.str)({ default: "" })
92
+ });
93
+
94
+ // src/server/data/devices.json
95
+ var devices_default = [
96
+ {
97
+ os: "ios",
98
+ os_version: "16",
99
+ device: "iPhone 14 Pro Max",
100
+ realMobile: true
101
+ },
102
+ {
103
+ os: "ios",
104
+ os_version: "16",
105
+ device: "iPhone 14 Pro",
106
+ realMobile: true
107
+ },
108
+ {
109
+ os: "ios",
110
+ os_version: "16",
111
+ device: "iPhone 14 Plus",
112
+ realMobile: true
113
+ },
114
+ {
115
+ os: "ios",
116
+ os_version: "16",
117
+ device: "iPhone 14",
118
+ realMobile: true
119
+ },
120
+ {
121
+ os: "ios",
122
+ os_version: "16",
123
+ device: "iPhone 12 Pro Max",
124
+ realMobile: true
125
+ },
126
+ {
127
+ os: "ios",
128
+ os_version: "16",
129
+ device: "iPhone 12 Pro",
130
+ realMobile: true
131
+ },
132
+ {
133
+ os: "ios",
134
+ os_version: "16",
135
+ device: "iPhone 12 Mini",
136
+ realMobile: true
137
+ },
138
+ {
139
+ os: "ios",
140
+ os_version: "16",
141
+ device: "iPhone 11 Pro Max",
142
+ realMobile: true
143
+ },
144
+ {
145
+ os: "ios",
146
+ os_version: "15",
147
+ device: "iPhone XS",
148
+ realMobile: true
149
+ },
150
+ {
151
+ os: "ios",
152
+ os_version: "15",
153
+ device: "iPhone 13 Pro Max",
154
+ realMobile: true
155
+ },
156
+ {
157
+ os: "ios",
158
+ os_version: "15",
159
+ device: "iPhone 13 Pro",
160
+ realMobile: true
161
+ },
162
+ {
163
+ os: "ios",
164
+ os_version: "15",
165
+ device: "iPhone 13 Mini",
166
+ realMobile: true
167
+ },
168
+ {
169
+ os: "ios",
170
+ os_version: "15",
171
+ device: "iPhone 13",
172
+ realMobile: true
173
+ },
174
+ {
175
+ os: "ios",
176
+ os_version: "15",
177
+ device: "iPhone 11 Pro",
178
+ realMobile: true
179
+ },
180
+ {
181
+ os: "ios",
182
+ os_version: "15",
183
+ device: "iPhone 11",
184
+ realMobile: true
185
+ },
186
+ {
187
+ os: "ios",
188
+ os_version: "14",
189
+ device: "iPhone XS",
190
+ realMobile: true
191
+ },
192
+ {
193
+ os: "ios",
194
+ os_version: "14",
195
+ device: "iPhone 12 Pro Max",
196
+ realMobile: true
197
+ },
198
+ {
199
+ os: "ios",
200
+ os_version: "14",
201
+ device: "iPhone 12 Pro",
202
+ realMobile: true
203
+ },
204
+ {
205
+ os: "ios",
206
+ os_version: "14",
207
+ device: "iPhone 12 Mini",
208
+ realMobile: true
209
+ },
210
+ {
211
+ os: "ios",
212
+ os_version: "14",
213
+ device: "iPhone 12",
214
+ realMobile: true
215
+ },
216
+ {
217
+ os: "ios",
218
+ os_version: "14",
219
+ device: "iPhone 11 Pro Max",
220
+ realMobile: true
221
+ },
222
+ {
223
+ os: "ios",
224
+ os_version: "14",
225
+ device: "iPhone 11",
226
+ realMobile: true
227
+ },
228
+ {
229
+ os: "ios",
230
+ os_version: "13",
231
+ device: "iPhone XS",
232
+ realMobile: true
233
+ },
234
+ {
235
+ os: "ios",
236
+ os_version: "13",
237
+ device: "iPhone 11 Pro Max",
238
+ realMobile: true
239
+ },
240
+ {
241
+ os: "ios",
242
+ os_version: "13",
243
+ device: "iPhone 11 Pro",
244
+ realMobile: true
245
+ },
246
+ {
247
+ os: "ios",
248
+ os_version: "13",
249
+ device: "iPhone 11",
250
+ realMobile: true
251
+ },
252
+ {
253
+ os: "ios",
254
+ os_version: "12",
255
+ device: "iPhone XS",
256
+ realMobile: true
257
+ },
258
+ {
259
+ os: "ios",
260
+ os_version: "12",
261
+ device: "iPhone XS Max",
262
+ realMobile: true
263
+ },
264
+ {
265
+ os: "ios",
266
+ os_version: "15",
267
+ device: "iPhone XR",
268
+ realMobile: true
269
+ },
270
+ {
271
+ os: "ios",
272
+ os_version: "12",
273
+ device: "iPhone XR",
274
+ realMobile: true
275
+ },
276
+ {
277
+ os: "ios",
278
+ os_version: "11",
279
+ device: "iPhone X",
280
+ realMobile: true
281
+ },
282
+ {
283
+ os: "ios",
284
+ os_version: "15",
285
+ device: "iPhone 8",
286
+ realMobile: true
287
+ },
288
+ {
289
+ os: "ios",
290
+ os_version: "13",
291
+ device: "iPhone 8",
292
+ realMobile: true
293
+ },
294
+ {
295
+ os: "ios",
296
+ os_version: "12",
297
+ device: "iPhone 8",
298
+ realMobile: true
299
+ },
300
+ {
301
+ os: "ios",
302
+ os_version: "11",
303
+ device: "iPhone 8",
304
+ realMobile: true
305
+ },
306
+ {
307
+ os: "ios",
308
+ os_version: "12",
309
+ device: "iPhone 8 Plus",
310
+ realMobile: true
311
+ },
312
+ {
313
+ os: "ios",
314
+ os_version: "11",
315
+ device: "iPhone 8 Plus",
316
+ realMobile: true
317
+ },
318
+ {
319
+ os: "ios",
320
+ os_version: "12",
321
+ device: "iPhone 7",
322
+ realMobile: true
323
+ },
324
+ {
325
+ os: "ios",
326
+ os_version: "10",
327
+ device: "iPhone 7",
328
+ realMobile: true
329
+ },
330
+ {
331
+ os: "ios",
332
+ os_version: "12",
333
+ device: "iPhone 6S",
334
+ realMobile: true
335
+ },
336
+ {
337
+ os: "ios",
338
+ os_version: "11",
339
+ device: "iPhone 6S",
340
+ realMobile: true
341
+ },
342
+ {
343
+ os: "ios",
344
+ os_version: "11",
345
+ device: "iPhone 6S Plus",
346
+ realMobile: true
347
+ },
348
+ {
349
+ os: "ios",
350
+ os_version: "11",
351
+ device: "iPhone 6",
352
+ realMobile: true
353
+ },
354
+ {
355
+ os: "ios",
356
+ os_version: "15",
357
+ device: "iPhone SE 2022",
358
+ realMobile: true
359
+ },
360
+ {
361
+ os: "ios",
362
+ os_version: "13",
363
+ device: "iPhone SE 2020",
364
+ realMobile: true
365
+ },
366
+ {
367
+ os: "ios",
368
+ os_version: "11",
369
+ device: "iPhone SE",
370
+ realMobile: true
371
+ },
372
+ {
373
+ os: "ios",
374
+ os_version: "14",
375
+ device: "iPad Air 4",
376
+ realMobile: true
377
+ },
378
+ {
379
+ os: "ios",
380
+ os_version: "15",
381
+ device: "iPad 9th",
382
+ realMobile: true
383
+ },
384
+ {
385
+ os: "ios",
386
+ os_version: "16",
387
+ device: "iPad Pro 12.9 2022",
388
+ realMobile: true
389
+ },
390
+ {
391
+ os: "ios",
392
+ os_version: "16",
393
+ device: "iPad Pro 12.9 2020",
394
+ realMobile: true
395
+ },
396
+ {
397
+ os: "ios",
398
+ os_version: "16",
399
+ device: "iPad Pro 11 2022",
400
+ realMobile: true
401
+ },
402
+ {
403
+ os: "ios",
404
+ os_version: "16",
405
+ device: "iPad 10th",
406
+ realMobile: true
407
+ },
408
+ {
409
+ os: "ios",
410
+ os_version: "15",
411
+ device: "iPad Air 5",
412
+ realMobile: true
413
+ },
414
+ {
415
+ os: "ios",
416
+ os_version: "14",
417
+ device: "iPad Pro 12.9 2021",
418
+ realMobile: true
419
+ },
420
+ {
421
+ os: "ios",
422
+ os_version: "14",
423
+ device: "iPad Pro 12.9 2020",
424
+ realMobile: true
425
+ },
426
+ {
427
+ os: "ios",
428
+ os_version: "14",
429
+ device: "iPad Pro 11 2021",
430
+ realMobile: true
431
+ },
432
+ {
433
+ os: "ios",
434
+ os_version: "13",
435
+ device: "iPad Pro 12.9 2020",
436
+ realMobile: true
437
+ },
438
+ {
439
+ os: "ios",
440
+ os_version: "16",
441
+ device: "iPad 8th",
442
+ realMobile: true
443
+ },
444
+ {
445
+ os: "ios",
446
+ os_version: "15",
447
+ device: "iPad Pro 12.9 2018",
448
+ realMobile: true
449
+ },
450
+ {
451
+ os: "ios",
452
+ os_version: "15",
453
+ device: "iPad Mini 2021",
454
+ realMobile: true
455
+ },
456
+ {
457
+ os: "ios",
458
+ os_version: "14",
459
+ device: "iPad 8th",
460
+ realMobile: true
461
+ },
462
+ {
463
+ os: "ios",
464
+ os_version: "13",
465
+ device: "iPad Pro 12.9 2018",
466
+ realMobile: true
467
+ },
468
+ {
469
+ os: "ios",
470
+ os_version: "13",
471
+ device: "iPad Pro 11 2020",
472
+ realMobile: true
473
+ },
474
+ {
475
+ os: "ios",
476
+ os_version: "13",
477
+ device: "iPad Mini 2019",
478
+ realMobile: true
479
+ },
480
+ {
481
+ os: "ios",
482
+ os_version: "13",
483
+ device: "iPad Air 2019",
484
+ realMobile: true
485
+ },
486
+ {
487
+ os: "ios",
488
+ os_version: "13",
489
+ device: "iPad 7th",
490
+ realMobile: true
491
+ },
492
+ {
493
+ os: "ios",
494
+ os_version: "12",
495
+ device: "iPad Pro 12.9 2018",
496
+ realMobile: true
497
+ },
498
+ {
499
+ os: "ios",
500
+ os_version: "12",
501
+ device: "iPad Pro 11 2018",
502
+ realMobile: true
503
+ },
504
+ {
505
+ os: "ios",
506
+ os_version: "12",
507
+ device: "iPad Mini 2019",
508
+ realMobile: true
509
+ },
510
+ {
511
+ os: "ios",
512
+ os_version: "12",
513
+ device: "iPad Air 2019",
514
+ realMobile: true
515
+ },
516
+ {
517
+ os: "ios",
518
+ os_version: "11",
519
+ device: "iPad Pro 9.7 2016",
520
+ realMobile: true
521
+ },
522
+ {
523
+ os: "ios",
524
+ os_version: "11",
525
+ device: "iPad Pro 12.9 2017",
526
+ realMobile: true
527
+ },
528
+ {
529
+ os: "ios",
530
+ os_version: "11",
531
+ device: "iPad Mini 4",
532
+ realMobile: true
533
+ },
534
+ {
535
+ os: "ios",
536
+ os_version: "11",
537
+ device: "iPad 6th",
538
+ realMobile: true
539
+ },
540
+ {
541
+ os: "ios",
542
+ os_version: "11",
543
+ device: "iPad 5th",
544
+ realMobile: true
545
+ },
546
+ {
547
+ os: "android",
548
+ os_version: "12.0",
549
+ device: "Samsung Galaxy S22 Ultra",
550
+ realMobile: true
551
+ },
552
+ {
553
+ os: "android",
554
+ os_version: "12.0",
555
+ device: "Samsung Galaxy S22 Plus",
556
+ realMobile: true
557
+ },
558
+ {
559
+ os: "android",
560
+ os_version: "12.0",
561
+ device: "Samsung Galaxy S22",
562
+ realMobile: true
563
+ },
564
+ {
565
+ os: "android",
566
+ os_version: "12.0",
567
+ device: "Samsung Galaxy S21",
568
+ realMobile: true
569
+ },
570
+ {
571
+ os: "android",
572
+ os_version: "11.0",
573
+ device: "Samsung Galaxy S21 Ultra",
574
+ realMobile: true
575
+ },
576
+ {
577
+ os: "android",
578
+ os_version: "11.0",
579
+ device: "Samsung Galaxy S21",
580
+ realMobile: true
581
+ },
582
+ {
583
+ os: "android",
584
+ os_version: "11.0",
585
+ device: "Samsung Galaxy S21 Plus",
586
+ realMobile: true
587
+ },
588
+ {
589
+ os: "android",
590
+ os_version: "10.0",
591
+ device: "Samsung Galaxy S20",
592
+ realMobile: true
593
+ },
594
+ {
595
+ os: "android",
596
+ os_version: "10.0",
597
+ device: "Samsung Galaxy S20 Plus",
598
+ realMobile: true
599
+ },
600
+ {
601
+ os: "android",
602
+ os_version: "10.0",
603
+ device: "Samsung Galaxy S20 Ultra",
604
+ realMobile: true
605
+ },
606
+ {
607
+ os: "android",
608
+ os_version: "11.0",
609
+ device: "Samsung Galaxy M52",
610
+ realMobile: true
611
+ },
612
+ {
613
+ os: "android",
614
+ os_version: "11.0",
615
+ device: "Samsung Galaxy M32",
616
+ realMobile: true
617
+ },
618
+ {
619
+ os: "android",
620
+ os_version: "11.0",
621
+ device: "Samsung Galaxy A52",
622
+ realMobile: true
623
+ },
624
+ {
625
+ os: "android",
626
+ os_version: "10.0",
627
+ device: "Samsung Galaxy Note 20 Ultra",
628
+ realMobile: true
629
+ },
630
+ {
631
+ os: "android",
632
+ os_version: "10.0",
633
+ device: "Samsung Galaxy Note 20",
634
+ realMobile: true
635
+ },
636
+ {
637
+ os: "android",
638
+ os_version: "10.0",
639
+ device: "Samsung Galaxy A51",
640
+ realMobile: true
641
+ },
642
+ {
643
+ os: "android",
644
+ os_version: "10.0",
645
+ device: "Samsung Galaxy A11",
646
+ realMobile: true
647
+ },
648
+ {
649
+ os: "android",
650
+ os_version: "9.0",
651
+ device: "Samsung Galaxy S9 Plus",
652
+ realMobile: true
653
+ },
654
+ {
655
+ os: "android",
656
+ os_version: "9.0",
657
+ device: "Samsung Galaxy S10e",
658
+ realMobile: true
659
+ },
660
+ {
661
+ os: "android",
662
+ os_version: "9.0",
663
+ device: "Samsung Galaxy S10 Plus",
664
+ realMobile: true
665
+ },
666
+ {
667
+ os: "android",
668
+ os_version: "9.0",
669
+ device: "Samsung Galaxy S10",
670
+ realMobile: true
671
+ },
672
+ {
673
+ os: "android",
674
+ os_version: "9.0",
675
+ device: "Samsung Galaxy Note 10 Plus",
676
+ realMobile: true
677
+ },
678
+ {
679
+ os: "android",
680
+ os_version: "9.0",
681
+ device: "Samsung Galaxy Note 10",
682
+ realMobile: true
683
+ },
684
+ {
685
+ os: "android",
686
+ os_version: "9.0",
687
+ device: "Samsung Galaxy A10",
688
+ realMobile: true
689
+ },
690
+ {
691
+ os: "android",
692
+ os_version: "8.1",
693
+ device: "Samsung Galaxy Note 9",
694
+ realMobile: true
695
+ },
696
+ {
697
+ os: "android",
698
+ os_version: "8.1",
699
+ device: "Samsung Galaxy J7 Prime",
700
+ realMobile: true
701
+ },
702
+ {
703
+ os: "android",
704
+ os_version: "8.0",
705
+ device: "Samsung Galaxy S9 Plus",
706
+ realMobile: true
707
+ },
708
+ {
709
+ os: "android",
710
+ os_version: "8.0",
711
+ device: "Samsung Galaxy S9",
712
+ realMobile: true
713
+ },
714
+ {
715
+ os: "android",
716
+ os_version: "7.1",
717
+ device: "Samsung Galaxy Note 8",
718
+ realMobile: true
719
+ },
720
+ {
721
+ os: "android",
722
+ os_version: "7.1",
723
+ device: "Samsung Galaxy A8",
724
+ realMobile: true
725
+ },
726
+ {
727
+ os: "android",
728
+ os_version: "7.0",
729
+ device: "Samsung Galaxy S8 Plus",
730
+ realMobile: true
731
+ },
732
+ {
733
+ os: "android",
734
+ os_version: "7.0",
735
+ device: "Samsung Galaxy S8",
736
+ realMobile: true
737
+ },
738
+ {
739
+ os: "android",
740
+ os_version: "6.0",
741
+ device: "Samsung Galaxy S7",
742
+ realMobile: true
743
+ },
744
+ {
745
+ os: "android",
746
+ os_version: "5.0",
747
+ device: "Samsung Galaxy S6",
748
+ realMobile: true
749
+ },
750
+ {
751
+ os: "android",
752
+ os_version: "13.0",
753
+ device: "Google Pixel 7 Pro",
754
+ realMobile: true
755
+ },
756
+ {
757
+ os: "android",
758
+ os_version: "13.0",
759
+ device: "Google Pixel 7",
760
+ realMobile: true
761
+ },
762
+ {
763
+ os: "android",
764
+ os_version: "13.0",
765
+ device: "Google Pixel 6 Pro",
766
+ realMobile: true
767
+ },
768
+ {
769
+ os: "android",
770
+ os_version: "12.0",
771
+ device: "Google Pixel 6 Pro",
772
+ realMobile: true
773
+ },
774
+ {
775
+ os: "android",
776
+ os_version: "12.0",
777
+ device: "Google Pixel 6",
778
+ realMobile: true
779
+ },
780
+ {
781
+ os: "android",
782
+ os_version: "12.0",
783
+ device: "Google Pixel 5",
784
+ realMobile: true
785
+ },
786
+ {
787
+ os: "android",
788
+ os_version: "11.0",
789
+ device: "Google Pixel 5",
790
+ realMobile: true
791
+ },
792
+ {
793
+ os: "android",
794
+ os_version: "11.0",
795
+ device: "Google Pixel 4",
796
+ realMobile: true
797
+ },
798
+ {
799
+ os: "android",
800
+ os_version: "10.0",
801
+ device: "Google Pixel 4 XL",
802
+ realMobile: true
803
+ },
804
+ {
805
+ os: "android",
806
+ os_version: "10.0",
807
+ device: "Google Pixel 4",
808
+ realMobile: true
809
+ },
810
+ {
811
+ os: "android",
812
+ os_version: "10.0",
813
+ device: "Google Pixel 3",
814
+ realMobile: true
815
+ },
816
+ {
817
+ os: "android",
818
+ os_version: "9.0",
819
+ device: "Google Pixel 3a XL",
820
+ realMobile: true
821
+ },
822
+ {
823
+ os: "android",
824
+ os_version: "9.0",
825
+ device: "Google Pixel 3a",
826
+ realMobile: true
827
+ },
828
+ {
829
+ os: "android",
830
+ os_version: "9.0",
831
+ device: "Google Pixel 3 XL",
832
+ realMobile: true
833
+ },
834
+ {
835
+ os: "android",
836
+ os_version: "9.0",
837
+ device: "Google Pixel 3",
838
+ realMobile: true
839
+ },
840
+ {
841
+ os: "android",
842
+ os_version: "9.0",
843
+ device: "Google Pixel 2",
844
+ realMobile: true
845
+ },
846
+ {
847
+ os: "android",
848
+ os_version: "8.0",
849
+ device: "Google Pixel 2",
850
+ realMobile: true
851
+ },
852
+ {
853
+ os: "android",
854
+ os_version: "7.1",
855
+ device: "Google Pixel",
856
+ realMobile: true
857
+ },
858
+ {
859
+ os: "android",
860
+ os_version: "6.0",
861
+ device: "Google Nexus 6",
862
+ realMobile: true
863
+ },
864
+ {
865
+ os: "android",
866
+ os_version: "4.4",
867
+ device: "Google Nexus 5",
868
+ realMobile: true
869
+ },
870
+ {
871
+ os: "android",
872
+ os_version: "11.0",
873
+ device: "OnePlus 9",
874
+ realMobile: true
875
+ },
876
+ {
877
+ os: "android",
878
+ os_version: "10.0",
879
+ device: "OnePlus 8",
880
+ realMobile: true
881
+ },
882
+ {
883
+ os: "android",
884
+ os_version: "10.0",
885
+ device: "OnePlus 7T",
886
+ realMobile: true
887
+ },
888
+ {
889
+ os: "android",
890
+ os_version: "9.0",
891
+ device: "OnePlus 7",
892
+ realMobile: true
893
+ },
894
+ {
895
+ os: "android",
896
+ os_version: "9.0",
897
+ device: "OnePlus 6T",
898
+ realMobile: true
899
+ },
900
+ {
901
+ os: "android",
902
+ os_version: "11.0",
903
+ device: "Xiaomi Redmi Note 11",
904
+ realMobile: true
905
+ },
906
+ {
907
+ os: "android",
908
+ os_version: "10.0",
909
+ device: "Xiaomi Redmi Note 9",
910
+ realMobile: true
911
+ },
912
+ {
913
+ os: "android",
914
+ os_version: "9.0",
915
+ device: "Xiaomi Redmi Note 8",
916
+ realMobile: true
917
+ },
918
+ {
919
+ os: "android",
920
+ os_version: "9.0",
921
+ device: "Xiaomi Redmi Note 7",
922
+ realMobile: true
923
+ },
924
+ {
925
+ os: "android",
926
+ os_version: "11.0",
927
+ device: "Vivo Y21",
928
+ realMobile: true
929
+ },
930
+ {
931
+ os: "android",
932
+ os_version: "11.0",
933
+ device: "Vivo V21",
934
+ realMobile: true
935
+ },
936
+ {
937
+ os: "android",
938
+ os_version: "10.0",
939
+ device: "Vivo Y50",
940
+ realMobile: true
941
+ },
942
+ {
943
+ os: "android",
944
+ os_version: "11.0",
945
+ device: "Oppo Reno 6",
946
+ realMobile: true
947
+ },
948
+ {
949
+ os: "android",
950
+ os_version: "11.0",
951
+ device: "Oppo A96",
952
+ realMobile: true
953
+ },
954
+ {
955
+ os: "android",
956
+ os_version: "10.0",
957
+ device: "Oppo Reno 3 Pro",
958
+ realMobile: true
959
+ },
960
+ {
961
+ os: "android",
962
+ os_version: "11.0",
963
+ device: "Motorola Moto G71 5G",
964
+ realMobile: true
965
+ },
966
+ {
967
+ os: "android",
968
+ os_version: "10.0",
969
+ device: "Motorola Moto G9 Play",
970
+ realMobile: true
971
+ },
972
+ {
973
+ os: "android",
974
+ os_version: "9.0",
975
+ device: "Motorola Moto G7 Play",
976
+ realMobile: true
977
+ },
978
+ {
979
+ os: "android",
980
+ os_version: "9.0",
981
+ device: "Huawei P30",
982
+ realMobile: true
983
+ },
984
+ {
985
+ os: "android",
986
+ os_version: "12.0",
987
+ device: "Samsung Galaxy Tab S8",
988
+ realMobile: true
989
+ },
990
+ {
991
+ os: "android",
992
+ os_version: "11.0",
993
+ device: "Samsung Galaxy Tab S7",
994
+ realMobile: true
995
+ },
996
+ {
997
+ os: "android",
998
+ os_version: "10.0",
999
+ device: "Samsung Galaxy Tab S7",
1000
+ realMobile: true
1001
+ },
1002
+ {
1003
+ os: "android",
1004
+ os_version: "9.0",
1005
+ device: "Samsung Galaxy Tab S6",
1006
+ realMobile: true
1007
+ },
1008
+ {
1009
+ os: "android",
1010
+ os_version: "9.0",
1011
+ device: "Samsung Galaxy Tab S5e",
1012
+ realMobile: true
1013
+ },
1014
+ {
1015
+ os: "android",
1016
+ os_version: "8.1",
1017
+ device: "Samsung Galaxy Tab S4",
1018
+ realMobile: true
1019
+ }
1020
+ ];
1021
+
1022
+ // src/server/config.ts
1023
+ var customDevicesPath = "./server/data/custom_devices.json";
1024
+ var logsFolder = "./logs";
1025
+ import_dotenv2.default.config();
1026
+ var config = {
1027
+ version,
1028
+ // this isn't used
1029
+ getDevices: async () => {
1030
+ if (import_fs.default.existsSync(customDevicesPath)) {
1031
+ return [...devices_default, ...(await import(customDevicesPath)).default];
1032
+ }
1033
+ return devices_default;
1034
+ },
1035
+ defaultImagesPath: env.SYNGRISI_IMAGES_PATH,
1036
+ connectionString: env.SYNGRISI_DB_URI || "mongodb://127.0.0.1:27017/SyngrisiDb",
1037
+ host: env.SYNGRISI_HOSTNAME,
1038
+ port: env.SYNGRISI_APP_PORT || 3e3,
1039
+ backupsFolder: "./backups",
1040
+ enableHttpLogger: env.SYNGRISI_HTTP_LOG,
1041
+ httpLoggerFilePath: `${logsFolder}/http.log`,
1042
+ storeSessionKey: env.SYNGRISI_SESSION_STORE_KEY || import_crypto2.default.randomBytes(64).toString("hex"),
1043
+ codeCoverage: env.SYNGRISI_COVERAGE,
1044
+ disableCors: env.SYNGRISI_DISABLE_DEV_CORS,
1045
+ fileUploadMaxSize: 50 * 1024 * 1024,
1046
+ testMode: env.SYNGRISI_TEST_MODE,
1047
+ jsonLimit: "50mb",
1048
+ tmpDir: env.SYNGRISI_TMP_DIR,
1049
+ helmet: {
1050
+ crossOriginEmbedderPolicy: !env.SYNGRISI_DISABLE_DEV_CORS,
1051
+ crossOriginResourcePolicy: !env.SYNGRISI_DISABLE_DEV_CORS,
1052
+ contentSecurityPolicy: {
1053
+ directives: {
1054
+ frameAncestors: ["'self'", "vscode-webview:", "vscode-resource:", "https:", "http:"],
1055
+ frameSrc: ["'self'", "vscode-webview:", "https:", "http:"],
1056
+ scriptSrc: ["'self'", "'unsafe-inline'"],
1057
+ styleSrc: ["'self'", "'unsafe-inline'"]
1058
+ }
1059
+ }
1060
+ }
1061
+ };
1062
+ if (!import_fs.default.existsSync(config.defaultImagesPath)) {
1063
+ import_fs.default.mkdirSync(config.defaultImagesPath, { recursive: true });
1064
+ }
1065
+ if (!import_fs.default.existsSync(logsFolder)) {
1066
+ import_fs.default.mkdirSync(logsFolder, { recursive: true });
1067
+ }
1068
+
1069
+ // src/server/lib/logger.ts
1070
+ var import_path2 = __toESM(require("path"));
1071
+
1072
+ // src/server/utils/ApiError.ts
1073
+ var ApiError = class extends Error {
1074
+ constructor(statusCode, message, isOperational = true, stack = "") {
1075
+ super(message);
1076
+ this.statusCode = statusCode;
1077
+ this.isOperational = isOperational;
1078
+ if (stack) {
1079
+ this.stack = stack;
1080
+ } else {
1081
+ Error.captureStackTrace(this, this.constructor);
1082
+ }
1083
+ }
1084
+ };
1085
+ var ApiError_default = ApiError;
1086
+
1087
+ // src/server/utils/deserializeIfJSON.ts
1088
+ var import_bson = require("bson");
1089
+
1090
+ // src/server/models/Check.model.ts
1091
+ var import_mongoose = __toESM(require("mongoose"));
1092
+
1093
+ // src/server/models/plugins/paginate.plugin.ts
1094
+ var paginate = (schema) => {
1095
+ schema.statics.paginate = async function(filter, options) {
1096
+ let sort;
1097
+ if (options.sortBy) {
1098
+ const sortingCriteria = [];
1099
+ options.sortBy.split(",").forEach((sortOption) => {
1100
+ const [key, order] = sortOption.split(":");
1101
+ sortingCriteria.push((order === "desc" ? "-" : "") + key);
1102
+ });
1103
+ sort = sortingCriteria.join(" ");
1104
+ } else {
1105
+ sort = { _id: -1 };
1106
+ }
1107
+ const limit = options.limit && parseInt(options.limit.toString(), 10) >= 0 ? parseInt(options.limit.toString(), 10) : 10;
1108
+ const page = options.page && parseInt(options.page.toString(), 10) > 0 ? parseInt(options.page.toString(), 10) : 1;
1109
+ const skip = (page - 1) * limit;
1110
+ const countPromise = this.countDocuments(filter).exec();
1111
+ let docsPromise = this.find(filter).sort(sort).skip(skip).limit(limit);
1112
+ if (options.populate) {
1113
+ options.populate.split(",").forEach((populateOption) => {
1114
+ docsPromise = docsPromise.populate(
1115
+ populateOption.split(".").reverse().reduce((a, b) => ({ path: b, populate: a }))
1116
+ );
1117
+ });
1118
+ }
1119
+ docsPromise = docsPromise.exec();
1120
+ return Promise.all([countPromise, docsPromise]).then((values) => {
1121
+ const [totalResults, results] = values;
1122
+ const totalPages = Math.ceil(totalResults / limit);
1123
+ const result = {
1124
+ results,
1125
+ page,
1126
+ limit,
1127
+ totalPages,
1128
+ totalResults,
1129
+ timestamp: Number(Date.now() + String(process.hrtime()[1]).slice(3, 6))
1130
+ };
1131
+ return Promise.resolve(result);
1132
+ });
1133
+ };
1134
+ };
1135
+ var paginate_plugin_default = paginate;
1136
+
1137
+ // src/server/models/plugins/toJSON.plugin.ts
1138
+ var deleteAtPath = (obj, path3, index) => {
1139
+ if (index === path3.length - 1) {
1140
+ delete obj[path3[index]];
1141
+ return;
1142
+ }
1143
+ deleteAtPath(obj[path3[index]], path3, index + 1);
1144
+ };
1145
+ var toJSON = (schema) => {
1146
+ let transform;
1147
+ if (schema.options.toJSON && schema.options.toJSON.transform) {
1148
+ transform = schema.options.toJSON.transform;
1149
+ }
1150
+ schema.options.toJSON = Object.assign(schema.options.toJSON || {}, {
1151
+ transform(doc, ret, options) {
1152
+ Object.keys(schema.paths).forEach((path3) => {
1153
+ if (schema.paths[path3].options && schema.paths[path3].options.private) {
1154
+ deleteAtPath(ret, path3.split("."), 0);
1155
+ }
1156
+ });
1157
+ ret.id = ret._id.toString();
1158
+ delete ret.__v;
1159
+ delete ret.createdAt;
1160
+ delete ret.updatedAt;
1161
+ if (transform) {
1162
+ return transform(doc, ret, options);
1163
+ }
1164
+ }
1165
+ });
1166
+ };
1167
+ var toJSON_plugin_default = toJSON;
1168
+
1169
+ // src/server/models/plugins/paginateDistinct.plugin.ts
1170
+ var import_bson2 = require("bson");
1171
+ var paginateDistinct = (schema) => {
1172
+ schema.statics.paginateDistinct = async function(filter, options) {
1173
+ let sort;
1174
+ if (options.sortBy) {
1175
+ options.sortBy.split(",").forEach((sortOption) => {
1176
+ const [key, order] = sortOption.split(":");
1177
+ sort[key] = order === "desc" ? -1 : 1;
1178
+ });
1179
+ } else {
1180
+ sort = { _id: -1 };
1181
+ }
1182
+ let limit = options.limit && parseInt(options.limit.toString(), 10) >= 0 ? parseInt(options.limit.toString(), 10) : 10;
1183
+ limit = limit === 0 ? 9007199254740991 : limit;
1184
+ const page = options.page && parseInt(options.page.toString(), 10) > 0 ? parseInt(options.page.toString(), 10) : 1;
1185
+ const skip = (page - 1) * limit;
1186
+ const groupAggregateObj = { $group: { _id: `$${options.field}` } };
1187
+ const documentsCount = (await this.aggregate([groupAggregateObj]).exec()).length;
1188
+ const aggregateArr = [
1189
+ { $match: import_bson2.EJSON.parse(filter.filter || "{}") },
1190
+ groupAggregateObj,
1191
+ { $sort: sort },
1192
+ { $skip: skip },
1193
+ { $limit: limit }
1194
+ ];
1195
+ const aggregatedDocs = (await this.aggregate(aggregateArr)).filter((x) => x._id).map((x) => {
1196
+ if (x[options.field]) {
1197
+ return x[options.field][0];
1198
+ }
1199
+ return { name: x._id };
1200
+ });
1201
+ return Promise.all([documentsCount, aggregatedDocs]).then((values) => {
1202
+ const [totalResults, results] = values;
1203
+ const totalPages = Math.ceil(totalResults / limit);
1204
+ const result = {
1205
+ results,
1206
+ page,
1207
+ limit,
1208
+ totalPages,
1209
+ totalResults,
1210
+ timestamp: (/* @__PURE__ */ new Date()).getTime()
1211
+ };
1212
+ return Promise.resolve(result);
1213
+ });
1214
+ };
1215
+ };
1216
+ var paginateDistinct_plugin_default = paginateDistinct;
1217
+
1218
+ // src/server/models/Check.model.ts
1219
+ var CheckSchema = new import_mongoose.Schema({
1220
+ name: {
1221
+ type: String,
1222
+ required: [true, 'CheckSchema: The "name" field must be required']
1223
+ },
1224
+ test: {
1225
+ type: import_mongoose.Schema.Types.ObjectId,
1226
+ ref: "VRSTest",
1227
+ required: [true, 'CheckSchema: The "test" field must be required']
1228
+ },
1229
+ suite: {
1230
+ type: import_mongoose.Schema.Types.ObjectId,
1231
+ ref: "VRSSuite",
1232
+ required: [true, 'CheckSchema: The "suite" field must be required']
1233
+ },
1234
+ app: {
1235
+ type: import_mongoose.Schema.Types.ObjectId,
1236
+ ref: "VRSApp",
1237
+ required: [true, 'CheckSchema: The "app" field must be required']
1238
+ },
1239
+ branch: {
1240
+ type: String
1241
+ },
1242
+ realBaselineId: {
1243
+ type: import_mongoose.Schema.Types.ObjectId,
1244
+ ref: "VRSBaseline"
1245
+ },
1246
+ baselineId: {
1247
+ type: import_mongoose.Schema.Types.ObjectId,
1248
+ ref: "VRSSnapshot"
1249
+ },
1250
+ actualSnapshotId: {
1251
+ type: import_mongoose.Schema.Types.ObjectId,
1252
+ ref: "VRSSnapshot"
1253
+ },
1254
+ diffId: {
1255
+ type: import_mongoose.Schema.Types.ObjectId,
1256
+ ref: "VRSSnapshot"
1257
+ },
1258
+ createdDate: {
1259
+ type: Date,
1260
+ required: true,
1261
+ default: Date.now
1262
+ },
1263
+ updatedDate: {
1264
+ type: Date
1265
+ },
1266
+ status: {
1267
+ type: [{
1268
+ type: String,
1269
+ enum: {
1270
+ values: ["new", "pending", "approved", "running", "passed", "failed", "aborted"],
1271
+ message: "status is required"
1272
+ }
1273
+ }],
1274
+ default: ["new"]
1275
+ },
1276
+ browserName: {
1277
+ type: String
1278
+ },
1279
+ browserVersion: {
1280
+ type: String
1281
+ },
1282
+ browserFullVersion: {
1283
+ type: String
1284
+ },
1285
+ viewport: {
1286
+ type: String
1287
+ },
1288
+ os: {
1289
+ type: String
1290
+ },
1291
+ domDump: {
1292
+ type: String
1293
+ },
1294
+ result: {
1295
+ type: String,
1296
+ default: "{}"
1297
+ },
1298
+ run: {
1299
+ type: import_mongoose.Schema.Types.ObjectId
1300
+ },
1301
+ markedAs: {
1302
+ type: String,
1303
+ enum: ["bug", "accepted"]
1304
+ },
1305
+ markedDate: {
1306
+ type: Date
1307
+ },
1308
+ markedById: {
1309
+ type: import_mongoose.Schema.Types.ObjectId,
1310
+ ref: "VRSUser"
1311
+ },
1312
+ markedByUsername: {
1313
+ type: String
1314
+ },
1315
+ markedBugComment: {
1316
+ type: String
1317
+ },
1318
+ creatorId: {
1319
+ type: import_mongoose.Schema.Types.ObjectId,
1320
+ ref: "VRSUser"
1321
+ },
1322
+ creatorUsername: {
1323
+ type: String
1324
+ },
1325
+ failReasons: {
1326
+ type: [String]
1327
+ },
1328
+ vOffset: {
1329
+ type: String
1330
+ },
1331
+ topStablePixels: {
1332
+ type: String
1333
+ },
1334
+ meta: {
1335
+ type: Object
1336
+ }
1337
+ });
1338
+ CheckSchema.plugin(toJSON_plugin_default);
1339
+ CheckSchema.plugin(paginate_plugin_default);
1340
+ var Check = import_mongoose.default.model("VRSCheck", CheckSchema);
1341
+
1342
+ // src/server/models/Log.model.ts
1343
+ var import_mongoose2 = __toESM(require("mongoose"));
1344
+ var LogSchema = new import_mongoose2.Schema({
1345
+ timestamp: {
1346
+ type: Date
1347
+ },
1348
+ level: {
1349
+ type: String
1350
+ },
1351
+ message: {
1352
+ type: String
1353
+ },
1354
+ meta: {
1355
+ type: Object
1356
+ },
1357
+ hostname: {
1358
+ type: Object
1359
+ }
1360
+ });
1361
+ LogSchema.plugin(toJSON_plugin_default);
1362
+ LogSchema.plugin(paginate_plugin_default);
1363
+ var Log = import_mongoose2.default.model("VRSLog", LogSchema);
1364
+
1365
+ // src/server/models/App.model.ts
1366
+ var import_mongoose3 = __toESM(require("mongoose"));
1367
+ var AppSchema = new import_mongoose3.Schema({
1368
+ name: {
1369
+ type: String,
1370
+ default: "Others",
1371
+ unique: true,
1372
+ required: [true, 'AppSchema: The "name" field must be required']
1373
+ },
1374
+ description: {
1375
+ type: String
1376
+ },
1377
+ version: {
1378
+ type: String
1379
+ },
1380
+ updatedDate: {
1381
+ type: Date
1382
+ },
1383
+ createdDate: {
1384
+ type: Date
1385
+ },
1386
+ meta: {
1387
+ type: Object
1388
+ }
1389
+ });
1390
+ AppSchema.plugin(paginate_plugin_default);
1391
+ AppSchema.plugin(toJSON_plugin_default);
1392
+ var App = import_mongoose3.default.model("VRSApp", AppSchema);
1393
+
1394
+ // src/server/models/Snapshot.model.ts
1395
+ var import_mongoose4 = __toESM(require("mongoose"));
1396
+ var SnapshotSchema = new import_mongoose4.Schema({
1397
+ name: {
1398
+ type: String,
1399
+ required: [true, 'SnapshotSchema: The "name" field must be required']
1400
+ },
1401
+ path: {
1402
+ type: String
1403
+ },
1404
+ filename: {
1405
+ type: String
1406
+ },
1407
+ imghash: {
1408
+ type: String,
1409
+ required: [true, 'SnapshotSchema: The "imghash" field must be required']
1410
+ },
1411
+ createdDate: {
1412
+ type: Date,
1413
+ default: Date.now
1414
+ },
1415
+ vOffset: {
1416
+ type: Number
1417
+ },
1418
+ hOffset: {
1419
+ type: Number
1420
+ }
1421
+ });
1422
+ SnapshotSchema.plugin(toJSON_plugin_default);
1423
+ SnapshotSchema.plugin(paginate_plugin_default);
1424
+ var Snapshot = import_mongoose4.default.model("VRSSnapshot", SnapshotSchema);
1425
+
1426
+ // src/server/models/AppSettings.model.ts
1427
+ var import_mongoose5 = __toESM(require("mongoose"));
1428
+ var AppSettingsSchema = new import_mongoose5.Schema({
1429
+ name: {
1430
+ type: String,
1431
+ unique: true,
1432
+ required: [true, 'AppSettingsSchema: The "name" field must be required']
1433
+ },
1434
+ label: {
1435
+ type: String,
1436
+ required: [true, 'AppSettingsSchema: The "label" field must be required']
1437
+ },
1438
+ description: {
1439
+ type: String
1440
+ },
1441
+ type: {
1442
+ type: String,
1443
+ required: [true, 'AppSettingsSchema: The "type" field must be required']
1444
+ },
1445
+ value: {
1446
+ type: import_mongoose5.Schema.Types.Mixed,
1447
+ required: [true, 'AppSettingsSchema: The "value" field must be required']
1448
+ },
1449
+ env_variable: {
1450
+ type: String
1451
+ },
1452
+ enabled: {
1453
+ type: Boolean
1454
+ }
1455
+ });
1456
+ AppSettingsSchema.plugin(toJSON_plugin_default);
1457
+ var AppSettings = import_mongoose5.default.model("VRSAppSettings", AppSettingsSchema);
1458
+
1459
+ // src/server/models/Suite.model.ts
1460
+ var import_mongoose6 = __toESM(require("mongoose"));
1461
+ var SuiteSchema = new import_mongoose6.Schema({
1462
+ name: {
1463
+ type: String,
1464
+ default: "Others",
1465
+ unique: true,
1466
+ required: [true, 'SuiteSchema: The "name" field must be required']
1467
+ },
1468
+ tags: {
1469
+ type: [String]
1470
+ },
1471
+ app: {
1472
+ type: import_mongoose6.Schema.Types.ObjectId,
1473
+ ref: "VRSApp",
1474
+ required: [true, 'SuiteSchema: The "app" field must be required']
1475
+ },
1476
+ description: {
1477
+ type: String
1478
+ },
1479
+ updatedDate: {
1480
+ type: Date,
1481
+ default: Date.now
1482
+ },
1483
+ createdDate: {
1484
+ type: Date
1485
+ },
1486
+ meta: {
1487
+ type: Object
1488
+ }
1489
+ });
1490
+ SuiteSchema.plugin(paginate_plugin_default);
1491
+ SuiteSchema.plugin(toJSON_plugin_default);
1492
+ var Suite = import_mongoose6.default.model("VRSSuite", SuiteSchema);
1493
+
1494
+ // src/server/models/Run.model.ts
1495
+ var import_mongoose7 = __toESM(require("mongoose"));
1496
+ var RunSchema = new import_mongoose7.Schema({
1497
+ name: {
1498
+ type: String,
1499
+ required: [true, 'RunSchema: The "name" field must be required']
1500
+ },
1501
+ app: {
1502
+ type: import_mongoose7.Schema.Types.ObjectId,
1503
+ ref: "VRSApp",
1504
+ required: [true, 'RunSchema: The "app" field must be required']
1505
+ },
1506
+ ident: {
1507
+ type: String,
1508
+ unique: true,
1509
+ required: [true, 'RunSchema: The "ident" field must be required']
1510
+ },
1511
+ description: {
1512
+ type: String
1513
+ },
1514
+ updatedDate: {
1515
+ type: Date,
1516
+ default: Date.now
1517
+ },
1518
+ createdDate: {
1519
+ type: Date
1520
+ },
1521
+ parameters: {
1522
+ type: [String]
1523
+ },
1524
+ meta: {
1525
+ type: Object
1526
+ }
1527
+ });
1528
+ RunSchema.plugin(paginate_plugin_default);
1529
+ RunSchema.plugin(toJSON_plugin_default);
1530
+ var Run = import_mongoose7.default.model("VRSRun", RunSchema);
1531
+
1532
+ // src/server/models/User.model.ts
1533
+ var import_mongoose8 = __toESM(require("mongoose"));
1534
+ var import_passport_local_mongoose = __toESM(require("passport-local-mongoose"));
1535
+ var UserSchema = new import_mongoose8.Schema({
1536
+ username: {
1537
+ type: String,
1538
+ unique: true,
1539
+ required: [true, 'UserSchema: The "username" field must be required']
1540
+ },
1541
+ firstName: {
1542
+ type: String,
1543
+ required: [true, 'UserSchema: The "firstName" field must be required']
1544
+ },
1545
+ lastName: {
1546
+ type: String,
1547
+ required: [true, 'UserSchema: The "lastName" field must be required']
1548
+ },
1549
+ role: {
1550
+ type: String,
1551
+ enum: ["admin", "reviewer", "user"],
1552
+ required: [true, 'UserSchema: The "role" field must be required']
1553
+ },
1554
+ password: {
1555
+ type: String
1556
+ },
1557
+ token: {
1558
+ type: String
1559
+ },
1560
+ apiKey: {
1561
+ type: String
1562
+ },
1563
+ createdDate: {
1564
+ type: Date
1565
+ },
1566
+ updatedDate: {
1567
+ type: Date
1568
+ },
1569
+ expiration: {
1570
+ type: Date
1571
+ },
1572
+ meta: {
1573
+ type: Object
1574
+ }
1575
+ });
1576
+ UserSchema.statics.isEmailTaken = async function(username, excludeUserId) {
1577
+ const user = await this.findOne({ username, _id: { $ne: excludeUserId } });
1578
+ return !!user;
1579
+ };
1580
+ UserSchema.plugin(toJSON_plugin_default);
1581
+ UserSchema.plugin(paginate_plugin_default);
1582
+ UserSchema.plugin(import_passport_local_mongoose.default, { hashField: "password" });
1583
+ var User = import_mongoose8.default.model("VRSUser", UserSchema);
1584
+
1585
+ // src/server/models/Baseline.model.ts
1586
+ var import_mongoose9 = __toESM(require("mongoose"));
1587
+ var BaselineSchema = new import_mongoose9.Schema({
1588
+ snapshootId: {
1589
+ type: import_mongoose9.Schema.Types.ObjectId
1590
+ },
1591
+ name: {
1592
+ type: String,
1593
+ required: [true, 'VRSBaselineSchema: The "name" field must be required']
1594
+ },
1595
+ app: {
1596
+ type: import_mongoose9.Schema.Types.ObjectId,
1597
+ ref: "VRSApp",
1598
+ required: [true, 'VRSBaselineSchema: The "app" field must be required']
1599
+ },
1600
+ branch: {
1601
+ type: String
1602
+ },
1603
+ browserName: {
1604
+ type: String
1605
+ },
1606
+ browserVersion: {
1607
+ type: String
1608
+ },
1609
+ browserFullVersion: {
1610
+ type: String
1611
+ },
1612
+ viewport: {
1613
+ type: String
1614
+ },
1615
+ os: {
1616
+ type: String
1617
+ },
1618
+ markedAs: {
1619
+ type: String,
1620
+ enum: ["bug", "accepted"]
1621
+ },
1622
+ lastMarkedDate: {
1623
+ type: Date
1624
+ },
1625
+ createdDate: {
1626
+ type: Date
1627
+ },
1628
+ updatedDate: {
1629
+ type: Date
1630
+ },
1631
+ markedById: {
1632
+ type: import_mongoose9.Schema.Types.ObjectId,
1633
+ ref: "VRSUser"
1634
+ },
1635
+ markedByUsername: {
1636
+ type: String
1637
+ },
1638
+ ignoreRegions: {
1639
+ type: String
1640
+ },
1641
+ boundRegions: {
1642
+ type: String
1643
+ },
1644
+ matchType: {
1645
+ type: String,
1646
+ enum: ["antialiasing", "nothing", "colors"]
1647
+ },
1648
+ meta: {
1649
+ type: Object
1650
+ }
1651
+ });
1652
+ BaselineSchema.plugin(toJSON_plugin_default);
1653
+ BaselineSchema.plugin(paginate_plugin_default);
1654
+ var Baseline = import_mongoose9.default.model("VRSBaseline", BaselineSchema);
1655
+
1656
+ // src/server/models/Test.model.ts
1657
+ var import_mongoose10 = __toESM(require("mongoose"));
1658
+ var TestSchema = new import_mongoose10.Schema(
1659
+ {
1660
+ name: {
1661
+ type: String,
1662
+ required: "TestSchema: the test name is empty"
1663
+ },
1664
+ description: {
1665
+ type: String
1666
+ },
1667
+ status: {
1668
+ type: String
1669
+ },
1670
+ browserName: {
1671
+ type: String
1672
+ },
1673
+ browserVersion: {
1674
+ type: String
1675
+ },
1676
+ branch: {
1677
+ type: String
1678
+ },
1679
+ tags: {
1680
+ type: [String]
1681
+ },
1682
+ viewport: {
1683
+ type: String
1684
+ },
1685
+ calculatedViewport: {
1686
+ type: String
1687
+ },
1688
+ os: {
1689
+ type: String
1690
+ },
1691
+ app: {
1692
+ type: import_mongoose10.Schema.Types.ObjectId,
1693
+ ref: "VRSApp",
1694
+ required: [true, 'TestSchema: The "app" field must be required']
1695
+ },
1696
+ blinking: {
1697
+ type: Number,
1698
+ default: 0
1699
+ },
1700
+ updatedDate: {
1701
+ type: Date
1702
+ },
1703
+ startDate: {
1704
+ type: Date
1705
+ },
1706
+ checks: [
1707
+ {
1708
+ type: import_mongoose10.default.Schema.Types.ObjectId,
1709
+ ref: "VRSCheck"
1710
+ }
1711
+ ],
1712
+ suite: {
1713
+ type: import_mongoose10.Schema.Types.ObjectId,
1714
+ ref: "VRSSuite"
1715
+ },
1716
+ run: {
1717
+ type: import_mongoose10.Schema.Types.ObjectId,
1718
+ ref: "VRSRun"
1719
+ },
1720
+ markedAs: {
1721
+ type: String,
1722
+ enum: ["Bug", "Accepted", "Unaccepted", "Partially"]
1723
+ },
1724
+ creatorId: {
1725
+ type: import_mongoose10.Schema.Types.ObjectId,
1726
+ ref: "VRSUser"
1727
+ },
1728
+ creatorUsername: {
1729
+ type: String
1730
+ },
1731
+ meta: {
1732
+ type: Object
1733
+ }
1734
+ },
1735
+ { strictQuery: true }
1736
+ );
1737
+ TestSchema.plugin(toJSON_plugin_default);
1738
+ TestSchema.plugin(paginate_plugin_default);
1739
+ TestSchema.plugin(paginateDistinct_plugin_default);
1740
+ var Test = import_mongoose10.default.model("VRSTest", TestSchema);
1741
+
1742
+ // src/server/lib/logger.ts
1743
+ var logLevel = env.SYNGRISI_LOG_LEVEL;
1744
+ function getScriptLine() {
1745
+ const stack = new Error().stack;
1746
+ if (stack) {
1747
+ const stackLines = stack.split("\n");
1748
+ let loggerLineIndex = -1;
1749
+ for (let i = 0; i < stackLines.length; i++) {
1750
+ if (stackLines[i].includes("lib/logger")) {
1751
+ loggerLineIndex = i;
1752
+ }
1753
+ }
1754
+ const targetLineIndex = loggerLineIndex + 1;
1755
+ if (targetLineIndex >= 0 && targetLineIndex < stackLines.length) {
1756
+ const targetLine = stackLines[targetLineIndex];
1757
+ const match = targetLine.match(/at\s+(?:.+\s+\()?(.+):(\d+):(\d+)\)?/);
1758
+ if (match) {
1759
+ const scriptPath = match[1];
1760
+ const relativePath = import_path2.default.relative(process.cwd(), scriptPath);
1761
+ const lineNumber = match[2];
1762
+ return `${relativePath}:${lineNumber}`;
1763
+ }
1764
+ }
1765
+ }
1766
+ return "unknown";
1767
+ }
1768
+ function createWinstonLogger(opts) {
1769
+ return import_winston.default.createLogger({
1770
+ transports: [
1771
+ new import_winston.default.transports.Console({
1772
+ level: logLevel || "silly",
1773
+ format: import_winston.default.format.combine(
1774
+ import_winston.default.format.colorize(),
1775
+ import_winston.default.format.timestamp(),
1776
+ import_winston.default.format.ms(),
1777
+ import_winston.default.format.metadata(),
1778
+ import_winston.default.format.printf((info) => {
1779
+ const user = info.metadata.user ? (0, import_chalk.blue)(` <${info.metadata.user}>`) : "";
1780
+ const ref = info.metadata.ref ? (0, import_chalk.gray)(` ${info.metadata.ref}`) : "";
1781
+ const msgType = info.metadata.msgType ? ` ${info.metadata.msgType}` : "";
1782
+ const itemType = info.metadata.itemType ? (0, import_chalk.magenta)(` ${info.metadata.itemType}`) : "";
1783
+ const scope = info.metadata.scope ? (0, import_chalk.magenta)(` [${info.metadata.scope}] `) : (0, import_chalk.magenta)(` [${getScriptLine()}] `);
1784
+ const msg = typeof info.message === "object" ? `
1785
+ ${JSON.stringify(info.message, null, 2)}` : info.message;
1786
+ return `${info.level} ${scope}${formatISOToDateTime_default(info.metadata.timestamp)} ${info.metadata.ms}${user}${ref}${msgType}${itemType} '${msg}'`;
1787
+ }),
1788
+ import_winston.default.format.padLevels()
1789
+ )
1790
+ }),
1791
+ new import_winston.default.transports.MongoDB({
1792
+ level: logLevel || "debug",
1793
+ format: import_winston.default.format.combine(
1794
+ import_winston.default.format.timestamp(),
1795
+ import_winston.default.format.json(),
1796
+ import_winston.default.format.metadata()
1797
+ ),
1798
+ options: {
1799
+ useUnifiedTopology: true
1800
+ },
1801
+ db: opts.dbConnectionString,
1802
+ collection: "vrslogs"
1803
+ })
1804
+ ]
1805
+ });
1806
+ }
1807
+ var Logger = class _Logger {
1808
+ constructor(opts = { dbConnectionString: config.connectionString }) {
1809
+ this.winstonLogger = createWinstonLogger(opts);
1810
+ }
1811
+ static mergeMeta(objects) {
1812
+ return objects.reduce((acc, obj) => {
1813
+ return { ...acc, ...obj };
1814
+ }, {});
1815
+ }
1816
+ log(severity, msg, meta) {
1817
+ const mergedMeta = _Logger.mergeMeta(meta);
1818
+ if (!mergedMeta.scope) {
1819
+ mergedMeta.scope = getScriptLine();
1820
+ }
1821
+ const formattedMsg = typeof msg === "object" ? JSON.stringify(msg, null, 2) : msg;
1822
+ this.winstonLogger.log(severity, formattedMsg, mergedMeta);
1823
+ }
1824
+ error(msg, ...meta) {
1825
+ let message = String(msg);
1826
+ let code = 0;
1827
+ if (msg instanceof Object) {
1828
+ message = JSON.stringify(msg);
1829
+ }
1830
+ if (msg instanceof Error) {
1831
+ message = msg.stack;
1832
+ }
1833
+ if (msg instanceof ApiError_default) {
1834
+ code = msg.statusCode;
1835
+ }
1836
+ this.log("error", `${code !== 0 ? "[" + code + "]" : ""}${message}
1837
+ stacktrace: ${new Error().stack}`, meta);
1838
+ }
1839
+ warn(msg, ...meta) {
1840
+ this.log("warn", `${msg}
1841
+ stacktrace: ${new Error().stack}`, meta);
1842
+ }
1843
+ info(msg, ...meta) {
1844
+ this.log("info", msg, meta);
1845
+ }
1846
+ verbose(msg, ...meta) {
1847
+ this.log("verbose", msg, meta);
1848
+ }
1849
+ debug(msg, ...meta) {
1850
+ this.log("debug", msg, meta);
1851
+ }
1852
+ silly(msg, ...meta) {
1853
+ this.log("silly", msg, meta);
1854
+ }
1855
+ };
1856
+ var logger_default = new Logger();
1857
+
1858
+ // src/server/lib/dbItems/createItemProm.ts
1859
+ var logOpts = {
1860
+ scope: "dbitems",
1861
+ msgType: "DB"
1862
+ };
1863
+ async function createItemProm(modelName, params) {
1864
+ try {
1865
+ const itemModel = import_mongoose11.default.model(modelName);
1866
+ logger_default.debug(`start to create ORM item via promise: '${modelName}', params: '${JSON.stringify(params)}'`, logOpts);
1867
+ const item = await itemModel.create(params);
1868
+ return item;
1869
+ } catch (e) {
1870
+ const errMsg2 = `cannot create '${modelName}', error: '${e.stack || e}'`;
1871
+ logger_default.error(errMsg2, logOpts);
1872
+ throw new Error(errMsg2);
1873
+ }
1874
+ }
1875
+
1876
+ // src/server/lib/dbItems/createTest.ts
1877
+ async function createTest(params) {
1878
+ return createItemProm("VRSTest", params);
1879
+ }
1880
+ // Annotate the CommonJS export names for ESM import in node:
1881
+ 0 && (module.exports = {
1882
+ createTest
1883
+ });
1884
+ //# sourceMappingURL=createTest.js.map