@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.
- package/README.md +49 -27
- package/dist/server/api-docs/openAPIDocumentGenerator.js +6489 -0
- package/dist/server/api-docs/openAPIDocumentGenerator.js.map +1 -0
- package/dist/server/api-docs/openAPIResponseBuilders.js +89 -0
- package/dist/server/api-docs/openAPIResponseBuilders.js.map +1 -0
- package/dist/server/api-docs/openAPIRouter.js +6505 -0
- package/dist/server/api-docs/openAPIRouter.js.map +1 -0
- package/dist/server/api-docs/serviceResponse.js +39 -0
- package/dist/server/api-docs/serviceResponse.js.map +1 -0
- package/dist/server/app.js +6751 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/config.js +1055 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/controllers/app.controller.js +1949 -0
- package/dist/server/controllers/app.controller.js.map +1 -0
- package/dist/server/controllers/auth.controller.js +2079 -0
- package/dist/server/controllers/auth.controller.js.map +1 -0
- package/dist/server/controllers/baseline.controller.js +1976 -0
- package/dist/server/controllers/baseline.controller.js.map +1 -0
- package/dist/server/controllers/check.controller.js +2289 -0
- package/dist/server/controllers/check.controller.js.map +1 -0
- package/dist/server/controllers/client.controller.js +2994 -0
- package/dist/server/controllers/client.controller.js.map +1 -0
- package/dist/server/controllers/index.js +4289 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/logs.controller.js +1954 -0
- package/dist/server/controllers/logs.controller.js.map +1 -0
- package/dist/server/controllers/runs.controller.js +2293 -0
- package/dist/server/controllers/runs.controller.js.map +1 -0
- package/dist/server/controllers/settings.controller.js +843 -0
- package/dist/server/controllers/settings.controller.js.map +1 -0
- package/dist/server/controllers/snapshots.controller.js +1953 -0
- package/dist/server/controllers/snapshots.controller.js.map +1 -0
- package/dist/server/controllers/suite.controller.js +2288 -0
- package/dist/server/controllers/suite.controller.js.map +1 -0
- package/dist/server/controllers/tasks.controller.js +2378 -0
- package/dist/server/controllers/tasks.controller.js.map +1 -0
- package/dist/server/controllers/test.controller.js +2312 -0
- package/dist/server/controllers/test.controller.js.map +1 -0
- package/dist/server/controllers/users.controller.js +2056 -0
- package/dist/server/controllers/users.controller.js.map +1 -0
- package/dist/server/envConfig.js +70 -0
- package/dist/server/envConfig.js.map +1 -0
- package/dist/server/lib/AppSettings/AppSettings.js +814 -0
- package/dist/server/lib/AppSettings/AppSettings.js.map +1 -0
- package/dist/server/lib/AppSettings/index.js +814 -0
- package/dist/server/lib/AppSettings/index.js.map +1 -0
- package/dist/server/lib/connectDb.js +1873 -0
- package/dist/server/lib/connectDb.js.map +1 -0
- package/dist/server/lib/dbItems/createAppIfNotExist.js +1878 -0
- package/dist/server/lib/dbItems/createAppIfNotExist.js.map +1 -0
- package/dist/server/lib/dbItems/createItemIfNotExist.js +1883 -0
- package/dist/server/lib/dbItems/createItemIfNotExist.js.map +1 -0
- package/dist/server/lib/dbItems/createItemProm.js +1877 -0
- package/dist/server/lib/dbItems/createItemProm.js.map +1 -0
- package/dist/server/lib/dbItems/createRunIfNotExist.js +1898 -0
- package/dist/server/lib/dbItems/createRunIfNotExist.js.map +1 -0
- package/dist/server/lib/dbItems/createSuiteIfNotExist.js +1878 -0
- package/dist/server/lib/dbItems/createSuiteIfNotExist.js.map +1 -0
- package/dist/server/lib/dbItems/createTest.js +1884 -0
- package/dist/server/lib/dbItems/createTest.js.map +1 -0
- package/dist/server/lib/dbItems/createUser.js +1884 -0
- package/dist/server/lib/dbItems/createUser.js.map +1 -0
- package/dist/server/lib/dbItems/index.js +2043 -0
- package/dist/server/lib/dbItems/index.js.map +1 -0
- package/dist/server/lib/dbItems/updateItem.js +1873 -0
- package/dist/server/lib/dbItems/updateItem.js.map +1 -0
- package/dist/server/lib/dbItems/updateItemDate.js +1872 -0
- package/dist/server/lib/dbItems/updateItemDate.js.map +1 -0
- package/dist/server/lib/httpLogger.js +1066 -0
- package/dist/server/lib/httpLogger.js.map +1 -0
- package/dist/server/lib/logger.js +1852 -0
- package/dist/server/lib/logger.js.map +1 -0
- package/dist/server/lib/startup/createBasicUsers.js +1901 -0
- package/dist/server/lib/startup/createBasicUsers.js.map +1 -0
- package/dist/server/lib/startup/createInitialSettings.js +820 -0
- package/dist/server/lib/startup/createInitialSettings.js.map +1 -0
- package/dist/server/lib/startup/createTempDir.js +1066 -0
- package/dist/server/lib/startup/createTempDir.js.map +1 -0
- package/dist/server/lib/startup/createTestsUsers.js +1916 -0
- package/dist/server/lib/startup/createTestsUsers.js.map +1 -0
- package/dist/server/lib/startup/index.js +2071 -0
- package/dist/server/lib/startup/index.js.map +1 -0
- package/dist/server/lib//321/201omparison/comparator.js +1955 -0
- package/dist/server/lib//321/201omparison/comparator.js.map +1 -0
- package/dist/server/lib//321/201omparison/compareImagesNode.js +91 -0
- package/dist/server/lib//321/201omparison/compareImagesNode.js.map +1 -0
- package/dist/server/lib//321/201omparison/index.js +1955 -0
- package/dist/server/lib//321/201omparison/index.js.map +1 -0
- package/dist/server/middlewares/authorization.js +1994 -0
- package/dist/server/middlewares/authorization.js.map +1 -0
- package/dist/server/middlewares/compressionFilter.js +47 -0
- package/dist/server/middlewares/compressionFilter.js.map +1 -0
- package/dist/server/middlewares/disableCors.js +1073 -0
- package/dist/server/middlewares/disableCors.js.map +1 -0
- package/dist/server/middlewares/ensureLogin/ensureLoggedIn.js +2103 -0
- package/dist/server/middlewares/ensureLogin/ensureLoggedIn.js.map +1 -0
- package/dist/server/middlewares/ensureLogin/index.js +2087 -0
- package/dist/server/middlewares/ensureLogin/index.js.map +1 -0
- package/dist/server/middlewares/errorHandler.js +1886 -0
- package/dist/server/middlewares/errorHandler.js.map +1 -0
- package/dist/server/middlewares/index.js +2025 -0
- package/dist/server/middlewares/index.js.map +1 -0
- package/dist/server/models/App.model.js +145 -0
- package/dist/server/models/App.model.js.map +1 -0
- package/dist/server/models/AppSettings.model.js +105 -0
- package/dist/server/models/AppSettings.model.js.map +1 -0
- package/dist/server/models/Baseline.model.js +187 -0
- package/dist/server/models/Baseline.model.js.map +1 -0
- package/dist/server/models/Check.model.js +241 -0
- package/dist/server/models/Check.model.js.map +1 -0
- package/dist/server/models/Log.model.js +139 -0
- package/dist/server/models/Log.model.js.map +1 -0
- package/dist/server/models/Run.model.js +154 -0
- package/dist/server/models/Run.model.js.map +1 -0
- package/dist/server/models/Snapshot.model.js +148 -0
- package/dist/server/models/Snapshot.model.js.map +1 -0
- package/dist/server/models/Suite.model.js +151 -0
- package/dist/server/models/Suite.model.js.map +1 -0
- package/dist/server/models/Test.model.js +248 -0
- package/dist/server/models/Test.model.js.map +1 -0
- package/dist/server/models/User.model.js +169 -0
- package/dist/server/models/User.model.js.map +1 -0
- package/dist/server/models/index.js +720 -0
- package/dist/server/models/index.js.map +1 -0
- package/dist/server/models/plugins/index.js +159 -0
- package/dist/server/models/plugins/index.js.map +1 -0
- package/dist/server/models/plugins/paginate.plugin.js +68 -0
- package/dist/server/models/plugins/paginate.plugin.js.map +1 -0
- package/dist/server/models/plugins/paginateDistinct.plugin.js +73 -0
- package/dist/server/models/plugins/paginateDistinct.plugin.js.map +1 -0
- package/dist/server/models/plugins/toJSON.plugin.js +56 -0
- package/dist/server/models/plugins/toJSON.plugin.js.map +1 -0
- package/dist/server/models/plugins/utils.js +19 -0
- package/dist/server/models/plugins/utils.js.map +1 -0
- package/dist/server/routes/ui/admin.js +2082 -0
- package/dist/server/routes/ui/admin.js.map +1 -0
- package/dist/server/routes/ui/auth.js +711 -0
- package/dist/server/routes/ui/auth.js.map +1 -0
- package/dist/server/routes/ui/index.js +2036 -0
- package/dist/server/routes/ui/index.js.map +1 -0
- package/dist/server/routes/v1/app.route.js +4372 -0
- package/dist/server/routes/v1/app.route.js.map +1 -0
- package/dist/server/routes/v1/auth.route.js +2325 -0
- package/dist/server/routes/v1/auth.route.js.map +1 -0
- package/dist/server/routes/v1/baselines.route.js +2487 -0
- package/dist/server/routes/v1/baselines.route.js.map +1 -0
- package/dist/server/routes/v1/checks.route.js +2840 -0
- package/dist/server/routes/v1/checks.route.js.map +1 -0
- package/dist/server/routes/v1/client.route.js +3764 -0
- package/dist/server/routes/v1/client.route.js.map +1 -0
- package/dist/server/routes/v1/index.route.js +6536 -0
- package/dist/server/routes/v1/index.route.js.map +1 -0
- package/dist/server/routes/v1/logs.route.js +2426 -0
- package/dist/server/routes/v1/logs.route.js.map +1 -0
- package/dist/server/routes/v1/runs.route.js +2771 -0
- package/dist/server/routes/v1/runs.route.js.map +1 -0
- package/dist/server/routes/v1/settings.route.js +2349 -0
- package/dist/server/routes/v1/settings.route.js.map +1 -0
- package/dist/server/routes/v1/snapshots.route.js +2361 -0
- package/dist/server/routes/v1/snapshots.route.js.map +1 -0
- package/dist/server/routes/v1/suites.route.js +2713 -0
- package/dist/server/routes/v1/suites.route.js.map +1 -0
- package/dist/server/routes/v1/tasks.route.js +2761 -0
- package/dist/server/routes/v1/tasks.route.js.map +1 -0
- package/dist/server/routes/v1/test_distinct.route.js +2714 -0
- package/dist/server/routes/v1/test_distinct.route.js.map +1 -0
- package/dist/server/routes/v1/tests.route.js +2895 -0
- package/dist/server/routes/v1/tests.route.js.map +1 -0
- package/dist/server/routes/v1/users.route.js +4619 -0
- package/dist/server/routes/v1/users.route.js.map +1 -0
- package/dist/server/schemas/App.schema.js +102 -0
- package/dist/server/schemas/App.schema.js.map +1 -0
- package/dist/server/schemas/Auth.schema.js +116 -0
- package/dist/server/schemas/Auth.schema.js.map +1 -0
- package/dist/server/schemas/Baseline.schema.js +183 -0
- package/dist/server/schemas/Baseline.schema.js.map +1 -0
- package/dist/server/schemas/Check.schema.js +198 -0
- package/dist/server/schemas/Check.schema.js.map +1 -0
- package/dist/server/schemas/Client.schema.js +455 -0
- package/dist/server/schemas/Client.schema.js.map +1 -0
- package/dist/server/schemas/CreateCheck.shema.js +47 -0
- package/dist/server/schemas/CreateCheck.shema.js.map +1 -0
- package/dist/server/schemas/GetBaseline.shema.js +56 -0
- package/dist/server/schemas/GetBaseline.shema.js.map +1 -0
- package/dist/server/schemas/Logs.schema.js +140 -0
- package/dist/server/schemas/Logs.schema.js.map +1 -0
- package/dist/server/schemas/Runs.schema.js +128 -0
- package/dist/server/schemas/Runs.schema.js.map +1 -0
- package/dist/server/schemas/Settings.schema.js +156 -0
- package/dist/server/schemas/Settings.schema.js.map +1 -0
- package/dist/server/schemas/SkipValid.schema.js +32 -0
- package/dist/server/schemas/SkipValid.schema.js.map +1 -0
- package/dist/server/schemas/SnapshotDiff.schema.js +44 -0
- package/dist/server/schemas/SnapshotDiff.schema.js.map +1 -0
- package/dist/server/schemas/Snapshots.schema.js +115 -0
- package/dist/server/schemas/Snapshots.schema.js.map +1 -0
- package/dist/server/schemas/Suite.schema.js +114 -0
- package/dist/server/schemas/Suite.schema.js.map +1 -0
- package/dist/server/schemas/Test.schema.js +204 -0
- package/dist/server/schemas/Test.schema.js.map +1 -0
- package/dist/server/schemas/TestDistinct.schema.js +63 -0
- package/dist/server/schemas/TestDistinct.schema.js.map +1 -0
- package/dist/server/schemas/User.schema.js +139 -0
- package/dist/server/schemas/User.schema.js.map +1 -0
- package/dist/server/schemas/common/ApiError.schema.js +51 -0
- package/dist/server/schemas/common/ApiError.schema.js.map +1 -0
- package/dist/server/schemas/common/Error.schema.js +47 -0
- package/dist/server/schemas/common/Error.schema.js.map +1 -0
- package/dist/server/schemas/common/RequestPagination.schema.js +121 -0
- package/dist/server/schemas/common/RequestPagination.schema.js.map +1 -0
- package/dist/server/schemas/common/Version.schema.js +36 -0
- package/dist/server/schemas/common/Version.schema.js.map +1 -0
- package/dist/server/schemas/common/requestQueryFilterSchema.schema.js +53 -0
- package/dist/server/schemas/common/requestQueryFilterSchema.schema.js.map +1 -0
- package/dist/server/schemas/index.js +155 -0
- package/dist/server/schemas/index.js.map +1 -0
- package/dist/server/schemas/utils/commonValidations.js +82 -0
- package/dist/server/schemas/utils/commonValidations.js.map +1 -0
- package/dist/server/schemas/utils/createRequestBodySchema.js +32 -0
- package/dist/server/schemas/utils/createRequestBodySchema.js.map +1 -0
- package/dist/server/schemas/utils/createRequestOpenApiBodySchema.js +35 -0
- package/dist/server/schemas/utils/createRequestOpenApiBodySchema.js.map +1 -0
- package/dist/server/schemas/utils/createRequestParamsSchema.js +93 -0
- package/dist/server/schemas/utils/createRequestParamsSchema.js.map +1 -0
- package/dist/server/schemas/utils/createRequestQuerySchema.js +32 -0
- package/dist/server/schemas/utils/createRequestQuerySchema.js.map +1 -0
- package/dist/server/schemas/utils/index.js +84 -0
- package/dist/server/schemas/utils/index.js.map +1 -0
- package/dist/server/server.js +6921 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/server_old.js +7284 -0
- package/dist/server/server_old.js.map +1 -0
- package/dist/server/services/app.service.js +696 -0
- package/dist/server/services/app.service.js.map +1 -0
- package/dist/server/services/auth.service.js +2025 -0
- package/dist/server/services/auth.service.js.map +1 -0
- package/dist/server/services/check.service.js +2149 -0
- package/dist/server/services/check.service.js.map +1 -0
- package/dist/server/services/client.service.js +2648 -0
- package/dist/server/services/client.service.js.map +1 -0
- package/dist/server/services/generic.service.js +1888 -0
- package/dist/server/services/generic.service.js.map +1 -0
- package/dist/server/services/index.js +3548 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/logs.service.js +1875 -0
- package/dist/server/services/logs.service.js.map +1 -0
- package/dist/server/services/run.service.js +2221 -0
- package/dist/server/services/run.service.js.map +1 -0
- package/dist/server/services/snapshot.service.js +1921 -0
- package/dist/server/services/snapshot.service.js.map +1 -0
- package/dist/server/services/suite.service.js +2218 -0
- package/dist/server/services/suite.service.js.map +1 -0
- package/dist/server/services/tasks.service.js +2288 -0
- package/dist/server/services/tasks.service.js.map +1 -0
- package/dist/server/services/test.service.js +2230 -0
- package/dist/server/services/test.service.js.map +1 -0
- package/dist/server/services/user.service.js +1925 -0
- package/dist/server/services/user.service.js.map +1 -0
- package/dist/server/utils/ApiError.js +39 -0
- package/dist/server/utils/ApiError.js.map +1 -0
- package/dist/server/utils/ProgressBar.js +54 -0
- package/dist/server/utils/ProgressBar.js.map +1 -0
- package/dist/server/utils/ServiceResponse.js +45 -0
- package/dist/server/utils/ServiceResponse.js.map +1 -0
- package/dist/server/utils/buildIdentObject.js +52 -0
- package/dist/server/utils/buildIdentObject.js.map +1 -0
- package/dist/server/utils/calculateAcceptedStatus.js +710 -0
- package/dist/server/utils/calculateAcceptedStatus.js.map +1 -0
- package/dist/server/utils/catchAsync.js +32 -0
- package/dist/server/utils/catchAsync.js.map +1 -0
- package/dist/server/utils/checkIdent.js +36 -0
- package/dist/server/utils/checkIdent.js.map +1 -0
- package/dist/server/utils/dateToISO8601.js +30 -0
- package/dist/server/utils/dateToISO8601.js.map +1 -0
- package/dist/server/utils/deserializeIfJSON.js +706 -0
- package/dist/server/utils/deserializeIfJSON.js.map +1 -0
- package/dist/server/utils/errMsg.js +33 -0
- package/dist/server/utils/errMsg.js.map +1 -0
- package/dist/server/utils/formatISOToDateTime.js +31 -0
- package/dist/server/utils/formatISOToDateTime.js.map +1 -0
- package/dist/server/utils/ident.js +31 -0
- package/dist/server/utils/ident.js.map +1 -0
- package/dist/server/utils/index.js +910 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/isJSON.js +34 -0
- package/dist/server/utils/isJSON.js.map +1 -0
- package/dist/server/utils/paramsGuard.js +45 -0
- package/dist/server/utils/paramsGuard.js.map +1 -0
- package/dist/server/utils/pick.js +35 -0
- package/dist/server/utils/pick.js.map +1 -0
- package/dist/server/utils/prettyCheckParams.js +37 -0
- package/dist/server/utils/prettyCheckParams.js.map +1 -0
- package/dist/server/utils/removeEmptyProperties.js +34 -0
- package/dist/server/utils/removeEmptyProperties.js.map +1 -0
- package/dist/server/utils/subDays.js +32 -0
- package/dist/server/utils/subDays.js.map +1 -0
- package/dist/server/utils/validateRequest.js +1922 -0
- package/dist/server/utils/validateRequest.js.map +1 -0
- package/dist/server/utils/waitUntil.js +43 -0
- package/dist/server/utils/waitUntil.js.map +1 -0
- package/dist/tasks/backup.js +1085 -0
- package/dist/tasks/backup.js.map +1 -0
- package/dist/tasks/lib/index.js +717 -0
- package/dist/tasks/lib/index.js.map +1 -0
- package/dist/tasks/lib/utils.js +1070 -0
- package/dist/tasks/lib/utils.js.map +1 -0
- package/dist/tasks/migrations/2.0.migration.js +908 -0
- package/dist/tasks/migrations/2.0.migration.js.map +1 -0
- package/dist/tasks/reindex.js +1742 -0
- package/dist/tasks/reindex.js.map +1 -0
- package/dist/tasks/restore.js +1097 -0
- package/dist/tasks/restore.js.map +1 -0
- package/docker-compose.yml +3 -3
- package/mvc/views/react/admin/index.html +4 -4
- package/mvc/views/react/assets/{LogicalGroup.6c0a9f4a.js → LogicalGroup.80e37bbf.js} +1 -22
- package/mvc/views/react/assets/{PasswordInput.b97a4ef7.js → PasswordInput.eb05d2ed.js} +1 -1
- package/mvc/views/react/assets/{admin.6d843d1b.js → admin.d6aa02f7.js} +3 -3
- package/mvc/views/react/assets/{auth.ecf25364.js → auth.e49d0968.js} +3 -2
- package/mvc/views/react/assets/{root.25abcc85.js → root.b071750f.js} +7 -9
- package/mvc/views/react/assets/{use-form.10003abf.js → use-form.c4a2cf47.js} +203 -151
- package/mvc/views/react/auth/index.html +3 -3
- package/mvc/views/react/index2/index.html +3 -3
- package/package.json +45 -14
- package/src/seeds/testAdmin.json +10 -0
- package/src/server/api-docs/openAPIDocumentGenerator.ts +48 -0
- package/src/server/api-docs/openAPIResponseBuilders.ts +38 -0
- package/src/server/api-docs/openAPIRouter.ts +18 -0
- package/src/server/api-docs/serviceResponse.ts +11 -0
- package/src/server/app.ts +77 -0
- package/src/server/config.ts +57 -0
- package/src/server/controllers/app.controller.ts +23 -0
- package/src/server/controllers/auth.controller.ts +149 -0
- package/src/server/controllers/baseline.controller.ts +32 -0
- package/src/server/controllers/{check.controller.js → check.controller.ts} +17 -14
- package/src/server/controllers/client.controller.ts +134 -0
- package/src/server/controllers/index.ts +27 -0
- package/src/server/controllers/logs.controller.ts +36 -0
- package/src/server/controllers/runs.controller.ts +32 -0
- package/src/server/controllers/settings.controller.ts +28 -0
- package/src/server/controllers/snapshots.controller.ts +24 -0
- package/src/server/controllers/suite.controller.ts +30 -0
- package/src/server/controllers/tasks.controller.ts +47 -0
- package/src/server/controllers/test.controller.ts +62 -0
- package/src/server/controllers/users.controller.ts +89 -0
- package/src/server/envConfig.ts +36 -0
- package/src/server/lib/AppSettings/AppSettings.ts +88 -0
- package/src/server/lib/AppSettings/index.ts +1 -0
- package/src/server/lib/connectDb.ts +18 -0
- package/src/server/lib/dbItems/createAppIfNotExist.ts +26 -0
- package/src/server/lib/dbItems/createItemIfNotExist.ts +29 -0
- package/src/server/lib/dbItems/createItemProm.ts +22 -0
- package/src/server/lib/dbItems/createRunIfNotExist.ts +44 -0
- package/src/server/lib/dbItems/createSuiteIfNotExist.ts +26 -0
- package/src/server/lib/dbItems/createTest.ts +7 -0
- package/src/server/lib/dbItems/createUser.ts +7 -0
- package/src/server/lib/dbItems/index.ts +12 -0
- package/src/server/lib/dbItems/updateItem.ts +17 -0
- package/src/server/lib/dbItems/updateItemDate.ts +18 -0
- package/src/server/lib/httpLogger.ts +14 -0
- package/src/server/lib/logger.ts +147 -0
- package/src/server/lib/startup/createBasicUsers.ts +25 -0
- package/src/server/lib/startup/createInitialSettings.ts +8 -0
- package/src/server/lib/startup/createTempDir.ts +9 -0
- package/src/server/lib/startup/createTestsUsers.ts +17 -0
- package/src/server/lib/startup/index.ts +4 -0
- package/src/server/lib//321/201omparison/comparator.ts +49 -0
- package/src/server/lib//321/201omparison/compareImagesNode.ts +61 -0
- package/src/server/lib//321/201omparison/index.ts +1 -0
- package/src/server/middlewares/{authorization.js → authorization.ts} +23 -14
- package/src/server/middlewares/compressionFilter.ts +9 -0
- package/src/server/middlewares/disableCors.ts +32 -0
- package/src/server/{lib/ensureLogin/ensureLoggedIn.js → middlewares/ensureLogin/ensureLoggedIn.ts} +60 -63
- package/src/server/middlewares/ensureLogin/index.ts +2 -0
- package/src/server/middlewares/errorHandler.ts +42 -0
- package/src/server/middlewares/index.ts +4 -0
- package/src/server/models/App.model.ts +42 -0
- package/src/server/models/AppSettings.model.ts +48 -0
- package/src/server/models/Baseline.model.ts +98 -0
- package/src/server/models/Check.model.ts +166 -0
- package/src/server/models/Log.model.ts +36 -0
- package/src/server/models/Run.model.ts +55 -0
- package/src/server/models/Snapshot.model.ts +47 -0
- package/src/server/models/Suite.model.ts +50 -0
- package/src/server/models/Test.model.ts +117 -0
- package/src/server/models/User.model.ts +77 -0
- package/src/server/models/index.ts +11 -0
- package/src/server/models/plugins/index.ts +3 -0
- package/src/server/models/plugins/paginate.plugin.ts +74 -0
- package/src/server/models/plugins/paginateDistinct.plugin.ts +90 -0
- package/src/server/models/plugins/toJSON.plugin.ts +41 -0
- package/src/server/models/plugins/utils.ts +34 -0
- package/src/server/routes/ui/admin.ts +29 -0
- package/src/server/routes/ui/auth.ts +22 -0
- package/src/server/routes/ui/index.ts +25 -0
- package/src/server/routes/v1/app.route.ts +48 -0
- package/src/server/routes/v1/auth.route.ts +88 -0
- package/src/server/routes/v1/baselines.route.ts +52 -0
- package/src/server/routes/v1/checks.route.ts +85 -0
- package/src/server/routes/v1/client.route.ts +123 -0
- package/src/server/routes/v1/{index.js → index.route.ts} +16 -16
- package/src/server/routes/v1/logs.route.ts +65 -0
- package/src/server/routes/v1/runs.route.ts +55 -0
- package/src/server/routes/v1/settings.route.ts +54 -0
- package/src/server/routes/v1/snapshots.route.ts +32 -0
- package/src/server/routes/v1/suites.route.ts +52 -0
- package/src/server/routes/v1/tasks.route.ts +121 -0
- package/src/server/routes/v1/test_distinct.route.ts +32 -0
- package/src/server/routes/v1/tests.route.ts +90 -0
- package/src/server/routes/v1/users.route.ts +115 -0
- package/src/server/schemas/App.schema.ts +19 -0
- package/src/server/schemas/Auth.schema.ts +27 -0
- package/src/server/schemas/Baseline.schema.ts +106 -0
- package/src/server/schemas/Check.schema.ts +117 -0
- package/src/server/schemas/Client.schema.ts +380 -0
- package/src/server/schemas/GetBaseline.shema.ts +34 -0
- package/src/server/schemas/Logs.schema.ts +61 -0
- package/src/server/schemas/Runs.schema.ts +45 -0
- package/src/server/schemas/Settings.schema.ts +71 -0
- package/src/server/schemas/SkipValid.schema.ts +2 -0
- package/src/server/schemas/SnapshotDiff.schema.ts +18 -0
- package/src/server/schemas/Snapshots.schema.ts +42 -0
- package/src/server/schemas/Suite.schema.ts +34 -0
- package/src/server/schemas/Test.schema.ts +126 -0
- package/src/server/schemas/TestDistinct.schema.ts +36 -0
- package/src/server/schemas/User.schema.ts +59 -0
- package/src/server/schemas/common/ApiError.schema.ts +23 -0
- package/src/server/schemas/common/Error.schema.ts +19 -0
- package/src/server/schemas/common/RequestPagination.schema.ts +16 -0
- package/src/server/schemas/common/Version.schema.ts +14 -0
- package/src/server/schemas/common/requestQueryFilterSchema.schema.ts +32 -0
- package/src/server/schemas/index.ts +4 -0
- package/src/server/schemas/utils/commonValidations.ts +51 -0
- package/src/server/schemas/utils/createRequestBodySchema.ts +2 -0
- package/src/server/schemas/utils/createRequestOpenApiBodySchema.ts +6 -0
- package/src/server/schemas/utils/createRequestParamsSchema.ts +7 -0
- package/src/server/schemas/utils/createRequestQuerySchema.ts +2 -0
- package/src/server/schemas/utils/index.ts +3 -0
- package/src/server/server.ts +54 -0
- package/src/server/server_old.ts +185 -0
- package/src/server/services/app.service.ts +9 -0
- package/src/server/services/auth.service.ts +94 -0
- package/src/server/services/check.service.ts +241 -0
- package/src/server/services/client.service.ts +691 -0
- package/src/server/services/generic.service.ts +37 -0
- package/src/server/services/index.ts +24 -0
- package/src/server/services/logs.service.ts +27 -0
- package/src/server/services/run.service.ts +32 -0
- package/src/server/services/snapshot.service.ts +78 -0
- package/src/server/services/suite.service.ts +30 -0
- package/src/server/services/{tasks.service.js → tasks.service.ts} +157 -228
- package/src/server/services/test.service.ts +65 -0
- package/src/server/services/user.service.ts +90 -0
- package/src/server/utils/{ApiError.js → ApiError.ts} +5 -2
- package/src/server/utils/ProgressBar.ts +35 -0
- package/src/server/utils/ServiceResponse.ts +18 -0
- package/src/server/utils/buildIdentObject.ts +34 -0
- package/src/server/utils/calculateAcceptedStatus.ts +22 -0
- package/src/server/utils/catchAsync.ts +11 -0
- package/src/server/utils/checkIdent.ts +4 -0
- package/src/server/utils/dateToISO8601.ts +5 -0
- package/src/server/utils/deserializeIfJSON.ts +9 -0
- package/src/server/utils/errMsg.ts +3 -0
- package/src/server/utils/{formatISOToDateTime.js → formatISOToDateTime.ts} +2 -2
- package/src/server/utils/ident.ts +1 -0
- package/src/server/utils/index.ts +24 -0
- package/src/server/utils/isJSON.ts +14 -0
- package/src/server/utils/paramsGuard.ts +7 -6
- package/src/server/utils/pick.ts +17 -0
- package/src/server/utils/prettyCheckParams.ts +18 -0
- package/src/server/utils/removeEmptyProperties.ts +5 -0
- package/src/server/utils/{subDays.js → subDays.ts} +2 -2
- package/src/server/utils/validateRequest.ts +56 -0
- package/src/server/utils/waitUntil.ts +14 -0
- package/src/tasks/backup.ts +1 -1
- package/src/tasks/lib/index.ts +13 -0
- package/src/tasks/lib/utils.ts +14 -0
- package/src/tasks/migrations/2.0.migration.ts +2 -2
- package/src/tasks/reindex.ts +34 -0
- package/src/tasks/restore.ts +1 -1
- package/src/types/ExtRequest.ts +10 -0
- package/src/types/LogOpts.ts +20 -0
- package/src/types/Midleware.ts +3 -0
- package/src/types/RequestUser.ts +14 -0
- package/src/types/index.ts +4 -0
- package/src/ui-app/README.md +2 -2
- package/src/ui-app/auth/components/ChangePasswordForm.tsx +1 -1
- package/src/ui-app/index2/components/Tests/Table/Checks/CheckDetails/Canvas/mainView.ts +3 -3
- package/src/ui-app/index2/components/Tests/Table/Checks/Checks.tsx +30 -2
- package/src/ui-app/package-lock.json +10 -16
- package/src/ui-app/package.json +2 -2
- package/src/ui-app/shared/services/checks.service.ts +1 -1
- package/src/ui-app/shared/services/generic.service.ts +0 -28
- package/src/ui-app/tsconfig.json +3 -2
- package/config.js +0 -17
- package/dist/config.js +0 -16
- package/dist/src/server/models/index.js +0 -508
- package/dist/src/server/models/plugins/index.js +0 -4
- package/dist/src/server/models/plugins/paginate.plugin.js +0 -76
- package/dist/src/server/models/plugins/paginateDistinct.plugin.js +0 -76
- package/dist/src/server/models/plugins/toJSON.plugin.js +0 -39
- package/dist/src/server/schemas/createCheck.shema.js +0 -17
- package/dist/src/server/schemas/getBaseline.shema.js +0 -12
- package/dist/src/server/utils/paramsGuard.js +0 -18
- package/dist/src/tasks/backup.js +0 -68
- package/dist/src/tasks/lib/common.js +0 -14
- package/dist/src/tasks/lib/utils.js +0 -14
- package/dist/src/tasks/migrations/2.0.migration.js +0 -86
- package/dist/src/tasks/migrations/2.0.migration_mql.js +0 -57
- package/dist/src/tasks/reindex.js +0 -28
- package/dist/src/tasks/restore.js +0 -86
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/mvc/views/react/index.html +0 -19
- package/server.js +0 -166
- package/src/server/controllers/app.controller.js +0 -21
- package/src/server/controllers/auth.controller.js +0 -156
- package/src/server/controllers/baseline.controller.js +0 -24
- package/src/server/controllers/client.controller.js +0 -173
- package/src/server/controllers/index.js +0 -12
- package/src/server/controllers/logs.controller.js +0 -30
- package/src/server/controllers/runs.controller.js +0 -25
- package/src/server/controllers/settings.controller.js +0 -23
- package/src/server/controllers/snapshots.controller.js +0 -17
- package/src/server/controllers/suite.controller.js +0 -24
- package/src/server/controllers/tasks.controller.js +0 -47
- package/src/server/controllers/test.controller.js +0 -70
- package/src/server/controllers/users.controller.js +0 -79
- package/src/server/data/custom_devices.json +0 -8
- package/src/server/lib/AppSettings.js +0 -56
- package/src/server/lib/comparator.js +0 -147
- package/src/server/lib/compareImagesNode.js +0 -60
- package/src/server/lib/dbItems.js +0 -215
- package/src/server/lib/ensureLogin/ensureLoggedOut.js +0 -44
- package/src/server/lib/getElementsByPixPositionsFromDump.js +0 -72
- package/src/server/lib/logger.js +0 -95
- package/src/server/lib/onStart.js +0 -53
- package/src/server/lib/parseDiff.js.bak +0 -72
- package/src/server/middlewares/disableCors.js +0 -19
- package/src/server/models/index.js +0 -534
- package/src/server/models/plugins/index.js +0 -3
- package/src/server/models/plugins/paginate.plugin.js +0 -83
- package/src/server/models/plugins/paginateDistinct.plugin.js +0 -80
- package/src/server/models/plugins/toJSON.plugin.js +0 -44
- package/src/server/routes/ui/admin.js +0 -20
- package/src/server/routes/ui/auth.js +0 -15
- package/src/server/routes/ui/index.js +0 -19
- package/src/server/routes/v1/app.route.js +0 -9
- package/src/server/routes/v1/auth.route.js +0 -12
- package/src/server/routes/v1/baselines.route.js +0 -14
- package/src/server/routes/v1/checks.route.js +0 -25
- package/src/server/routes/v1/client.route.js +0 -39
- package/src/server/routes/v1/logs.route.js +0 -16
- package/src/server/routes/v1/runs.route.js +0 -15
- package/src/server/routes/v1/settings.route.js +0 -23
- package/src/server/routes/v1/snapshots.route.js +0 -11
- package/src/server/routes/v1/suites.route.js +0 -15
- package/src/server/routes/v1/tasks.route.js +0 -59
- package/src/server/routes/v1/test.route.js +0 -20
- package/src/server/routes/v1/test_distinct.route.js +0 -14
- package/src/server/routes/v1/users.route.js +0 -36
- package/src/server/schemas/getBaseline.shema.ts +0 -12
- package/src/server/services/app.service.js +0 -23
- package/src/server/services/check.service.js +0 -178
- package/src/server/services/client.service.js +0 -648
- package/src/server/services/generic.service.js +0 -51
- package/src/server/services/index.js +0 -12
- package/src/server/services/logs.service.js +0 -38
- package/src/server/services/run.service.js +0 -40
- package/src/server/services/suite.service.js +0 -39
- package/src/server/services/test.service.js +0 -72
- package/src/server/services/user.service.js +0 -128
- package/src/server/utils/catchAsync.js +0 -8
- package/src/server/utils/check.js +0 -58
- package/src/server/utils/dateToISO8601.js +0 -2
- package/src/server/utils/deserializeIfJSON.js +0 -9
- package/src/server/utils/index.js +0 -10
- package/src/server/utils/isJSON.js +0 -6
- package/src/server/utils/pick.js +0 -15
- package/src/server/utils/prettyCheckParams.js +0 -13
- package/src/server/utils/snapshots.js +0 -73
- package/src/server/utils/tests.js +0 -36
- package/src/server/utils/utils.js +0 -146
- package/src/tasks/backup.js.bak +0 -84
- package/src/tasks/lib/common.js +0 -24
- package/src/tasks/lib/utils.js +0 -15
- package/src/tasks/reindex.js +0 -36
- package/src/tasks/restore.js.bak +0 -100
- package/src/ui-app/tsconfig.node.json +0 -12
- package/static/js/canvasjs.min.js.bak +0 -957
- package/static/js/chart.js.bak +0 -92
- package/static/js/jquery-3.3.1.slim.js.bak +0 -8269
- package/static/js/jquery-3.3.1.slim.min.js.bak +0 -2
- package/static/js/moment.min.js.bak +0 -2
- /package/src/{server/lib → seeds}/admin.json +0 -0
- /package/src/{server/lib → seeds}/guest.json +0 -0
- /package/src/{server/lib → seeds}/initialAppSettings.json +0 -0
- /package/src/{server/lib/testAdmin.json → seeds/testAdmin copy.json} +0 -0
- /package/src/{server/lib → seeds}/testUsers.json +0 -0
- /package/src/server/schemas/{createCheck.shema.ts → CreateCheck.shema.ts} +0 -0
- /package/{static → src/server/static/static}/A.png +0 -0
- /package/{static → src/server/static/static}/B.png +0 -0
- /package/{static → src/server/static/static}/affected.html +0 -0
- /package/{static → src/server/static/static}/affected_2.html +0 -0
- /package/{static → src/server/static/static}/data/custom_devices.json +0 -0
- /package/{static → src/server/static/static}/grids/desktop-higher.html +0 -0
- /package/{static → src/server/static/static}/grids/desktop-wider.html +0 -0
- /package/{static → src/server/static/static}/grids/desktop.html +0 -0
- /package/{static → src/server/static/static}/grids/fit-in-view.html +0 -0
- /package/{static → src/server/static/static}/low_diff_0.png +0 -0
- /package/{static → src/server/static/static}/low_diff_1.png +0 -0
- /package/{static → src/server/static/static}/vShift.png +0 -0
- /package/{static → src/server/static/static}/vShift_bottom.png +0 -0
- /package/{static → src/server/static/static}/vShift_top.png +0 -0
|
@@ -1,37 +1,45 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
1
3
|
/* eslint-disable camelcase */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import { Response } from "express";
|
|
5
|
+
import { env } from "@/server/envConfig";
|
|
6
|
+
|
|
7
|
+
interface StringTable {
|
|
8
|
+
create(data: { [key: string]: any }[]): string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
import fs, { promises as fsp } from 'fs';
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
import st from 'string-table';
|
|
14
|
+
import { config } from '@config';
|
|
15
|
+
import { subDays, dateToISO8601 } from '@utils';
|
|
16
|
+
import { ProgressBar } from '@utils';
|
|
17
|
+
import log from "../lib/logger";
|
|
18
|
+
import testAdminUser from '../../seeds/testAdmin.json'
|
|
19
|
+
const stringTable: StringTable = st;
|
|
20
|
+
|
|
21
|
+
import {
|
|
9
22
|
Snapshot,
|
|
10
23
|
Check,
|
|
11
24
|
Test,
|
|
12
25
|
Run,
|
|
13
|
-
Log,
|
|
14
26
|
Suite,
|
|
15
27
|
User,
|
|
28
|
+
Log,
|
|
16
29
|
Baseline,
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const $this = this;
|
|
20
|
-
$this.logMeta = {
|
|
21
|
-
scope: 'app_service',
|
|
22
|
-
msgType: 'APP',
|
|
23
|
-
};
|
|
30
|
+
} from '@models';
|
|
31
|
+
import { ExtRequest } from '@types';
|
|
24
32
|
|
|
25
|
-
function taskOutput(msg, res) {
|
|
33
|
+
function taskOutput(msg: any, res: any) {
|
|
26
34
|
res.write(`${msg.toString()}\n`);
|
|
27
|
-
log.debug(msg.toString()
|
|
35
|
+
log.debug(msg.toString());
|
|
28
36
|
}
|
|
29
37
|
|
|
30
|
-
function parseHrtimeToSeconds(hrtime) {
|
|
38
|
+
function parseHrtimeToSeconds(hrtime: any) {
|
|
31
39
|
return (hrtime[0] + (hrtime[1] / 1e9)).toFixed(3);
|
|
32
40
|
}
|
|
33
41
|
|
|
34
|
-
const status = async (currentUser) => {
|
|
42
|
+
const status = async (currentUser: any) => {
|
|
35
43
|
const count = await User.countDocuments().exec();
|
|
36
44
|
|
|
37
45
|
log.silly(`server status: check users counts: ${count}`);
|
|
@@ -42,7 +50,7 @@ const status = async (currentUser) => {
|
|
|
42
50
|
};
|
|
43
51
|
|
|
44
52
|
const screenshots = async () => {
|
|
45
|
-
const files =
|
|
53
|
+
const files = fs.readdirSync(config.defaultImagesPath);
|
|
46
54
|
return files;
|
|
47
55
|
};
|
|
48
56
|
|
|
@@ -52,126 +60,99 @@ const loadTestUser = async () => {
|
|
|
52
60
|
msgType: 'LOAD',
|
|
53
61
|
ref: 'Administrator',
|
|
54
62
|
};
|
|
55
|
-
if (
|
|
63
|
+
if (!env.SYNGRISI_TEST_MODE) {
|
|
56
64
|
return { message: 'the feature works only in test mode' };
|
|
57
65
|
}
|
|
58
66
|
const testAdmin = await User.findOne({ username: 'Test' }).exec();
|
|
59
67
|
if (!testAdmin) {
|
|
60
|
-
log.info('create the test Administrator',
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
log.info(`test Administrator with id: '${admin._id}' was created`, $this, logOpts);
|
|
68
|
+
log.info('create the test Administrator', logOpts);
|
|
69
|
+
const admin = await User.create(testAdminUser);
|
|
70
|
+
log.info(`test Administrator with id: '${admin._id}' was created`, logOpts);
|
|
64
71
|
return admin;
|
|
65
72
|
}
|
|
66
73
|
|
|
67
|
-
log.info(`test admin is exists: ${JSON.stringify(testAdmin, null, 2)}`,
|
|
74
|
+
log.info(`test admin is exists: ${JSON.stringify(testAdmin, null, 2)}`, logOpts);
|
|
68
75
|
return { msg: `already exist '${testAdmin}'` };
|
|
69
76
|
};
|
|
70
77
|
|
|
71
|
-
const task_handle_database_consistency = async (options, res) => {
|
|
72
|
-
// this header to response with chunks data
|
|
78
|
+
const task_handle_database_consistency = async (options: any, res: any) => {
|
|
73
79
|
res.writeHead(200, {
|
|
74
80
|
'Content-Type': 'text/event-stream',
|
|
75
81
|
'Cache-Control': 'no-cache',
|
|
76
82
|
'Content-Encoding': 'none',
|
|
77
83
|
'x-no-compression': 'true',
|
|
78
84
|
});
|
|
79
|
-
// res.setHeader('x-no-compression', 'true');
|
|
80
85
|
try {
|
|
81
86
|
const startTime = process.hrtime();
|
|
82
87
|
taskOutput('- starting...\n', res);
|
|
83
88
|
taskOutput('---------------------------------', res);
|
|
84
89
|
taskOutput('STAGE #1: Calculate Common stats', res);
|
|
85
90
|
taskOutput('get runs data', res);
|
|
86
|
-
const allRunsBefore = await Run.find()
|
|
87
|
-
.exec();
|
|
91
|
+
const allRunsBefore = await Run.find().exec();
|
|
88
92
|
taskOutput('get suites data', res);
|
|
89
|
-
const allSuitesBefore = await Suite.find()
|
|
90
|
-
.exec();
|
|
93
|
+
const allSuitesBefore = await Suite.find().exec();
|
|
91
94
|
taskOutput('get tests data', res);
|
|
92
|
-
const allTestsBefore = await Test.find()
|
|
93
|
-
.lean()
|
|
94
|
-
.exec();
|
|
95
|
+
const allTestsBefore = await Test.find().lean().exec();
|
|
95
96
|
taskOutput('get checks data', res);
|
|
96
|
-
const allChecksBefore = await Check.find()
|
|
97
|
-
.lean()
|
|
98
|
-
.exec();
|
|
97
|
+
const allChecksBefore = await Check.find().lean().exec();
|
|
99
98
|
taskOutput('get snapshots data', res);
|
|
100
|
-
const allSnapshotsBefore = await Snapshot.find()
|
|
101
|
-
.lean()
|
|
102
|
-
.exec();
|
|
99
|
+
const allSnapshotsBefore = await Snapshot.find().lean().exec();
|
|
103
100
|
taskOutput('get files data', res);
|
|
104
|
-
const allFilesBefore = (await
|
|
105
|
-
.filter((item) => !item.isDirectory())
|
|
106
|
-
.map((
|
|
107
|
-
.filter((x) => x.includes('.png'));
|
|
101
|
+
const allFilesBefore = (await fsp.readdir(config.defaultImagesPath, { withFileTypes: true }))
|
|
102
|
+
.filter((item: any) => !item.isDirectory())
|
|
103
|
+
.map((x: any) => x.name)
|
|
104
|
+
.filter((x: any) => x.includes('.png'));
|
|
108
105
|
|
|
109
106
|
taskOutput('-----------------------------', res);
|
|
110
|
-
const beforeStatTable = stringTable.create(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
]
|
|
119
|
-
);
|
|
107
|
+
const beforeStatTable = stringTable.create([
|
|
108
|
+
{ item: 'suites', count: allSuitesBefore.length },
|
|
109
|
+
{ item: 'runs', count: allRunsBefore.length },
|
|
110
|
+
{ item: 'tests', count: allTestsBefore.length },
|
|
111
|
+
{ item: 'checks', count: allChecksBefore.length },
|
|
112
|
+
{ item: 'snapshots', count: allSnapshotsBefore.length },
|
|
113
|
+
{ item: 'files', count: allFilesBefore.length },
|
|
114
|
+
]);
|
|
120
115
|
res.flush();
|
|
121
116
|
taskOutput(beforeStatTable, res);
|
|
122
117
|
|
|
123
118
|
taskOutput('---------------------------------', res);
|
|
124
119
|
taskOutput('STAGE #2: Calculate Inconsistent Items', res);
|
|
125
120
|
taskOutput('> calculate abandoned snapshots', res);
|
|
126
|
-
|
|
127
|
-
const abandonedSnapshots = allSnapshotsBefore.filter((sn) => {
|
|
128
|
-
return !fss.existsSync(`${config.defaultImagesPath}/${sn.filename}`);
|
|
129
|
-
});
|
|
121
|
+
const abandonedSnapshots = allSnapshotsBefore.filter((sn: any) => !fs.existsSync(`${config.defaultImagesPath}/${sn.filename}`));
|
|
130
122
|
|
|
131
123
|
taskOutput('> calculate abandoned files', res);
|
|
132
|
-
const snapshotsUniqueFiles = Array.from(new Set(allSnapshotsBefore.map((x) => x.filename)));
|
|
133
|
-
const abandonedFiles = [];
|
|
124
|
+
const snapshotsUniqueFiles = Array.from(new Set(allSnapshotsBefore.map((x: any) => x.filename)));
|
|
125
|
+
const abandonedFiles: any[] = [];
|
|
134
126
|
const progress = new ProgressBar(allFilesBefore.length);
|
|
135
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
136
127
|
for (const [index, file] of allFilesBefore.entries()) {
|
|
137
128
|
setTimeout(() => {
|
|
138
129
|
progress.writeIfChange(index, allFilesBefore.length, taskOutput, res);
|
|
139
130
|
}, 10);
|
|
140
131
|
|
|
141
|
-
if (!
|
|
132
|
+
if (!snapshotsUniqueFiles.includes(file.toString())) {
|
|
142
133
|
abandonedFiles.push(file);
|
|
143
134
|
}
|
|
144
135
|
}
|
|
145
|
-
// we don't remove the abandoned checks yet, need more statistics
|
|
146
136
|
taskOutput('> calculate abandoned checks', res);
|
|
147
|
-
const allSnapshotsBeforeIds = allSnapshotsBefore.map((x) => x._id.valueOf());
|
|
137
|
+
const allSnapshotsBeforeIds = allSnapshotsBefore.map((x: any) => x._id.valueOf());
|
|
148
138
|
|
|
149
|
-
const allChecksBeforeLight = allChecksBefore.map((x) => ({
|
|
139
|
+
const allChecksBeforeLight = allChecksBefore.map((x: any) => ({
|
|
150
140
|
_id: x._id.valueOf(), baselineId: x.baselineId.valueOf(), actualSnapshotId: x.actualSnapshotId.valueOf(),
|
|
151
141
|
}));
|
|
152
|
-
const abandonedChecks = [];
|
|
142
|
+
const abandonedChecks: any[] = [];
|
|
153
143
|
const progressChecks = new ProgressBar(allChecksBefore.length);
|
|
154
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
155
144
|
for (const [index, check] of allChecksBeforeLight.entries()) {
|
|
156
145
|
progressChecks.writeIfChange(index, allChecksBeforeLight.length, taskOutput, res);
|
|
157
|
-
if (
|
|
158
|
-
!(allSnapshotsBeforeIds.includes(check.baselineId))
|
|
159
|
-
|| !(allSnapshotsBeforeIds.includes(check.actualSnapshotId.valueOf()))
|
|
160
|
-
) {
|
|
146
|
+
if (!allSnapshotsBeforeIds.includes(check.baselineId) || !allSnapshotsBeforeIds.includes(check.actualSnapshotId.valueOf())) {
|
|
161
147
|
abandonedChecks.push(check._id.valueOf());
|
|
162
148
|
}
|
|
163
149
|
}
|
|
164
150
|
|
|
165
151
|
taskOutput('> calculate empty tests', res);
|
|
166
|
-
const checksUniqueTests = (await Check.find()
|
|
167
|
-
.lean()
|
|
168
|
-
.distinct('test')
|
|
169
|
-
.exec())
|
|
170
|
-
.map((x) => x.valueOf());
|
|
171
|
-
|
|
172
|
-
const emptyTests = [];
|
|
152
|
+
const checksUniqueTests = (await Check.find().lean().distinct('test').exec()).map((x: any) => x.valueOf());
|
|
173
153
|
|
|
174
|
-
|
|
154
|
+
const emptyTests: any[] = [];
|
|
155
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
175
156
|
for (const [index, test] of allTestsBefore.entries()) {
|
|
176
157
|
if (!checksUniqueTests.includes(test._id.valueOf())) {
|
|
177
158
|
emptyTests.push(test._id.valueOf());
|
|
@@ -180,14 +161,10 @@ const task_handle_database_consistency = async (options, res) => {
|
|
|
180
161
|
|
|
181
162
|
taskOutput('> calculate empty runs', res);
|
|
182
163
|
|
|
183
|
-
const checksUniqueRuns = (await Check.find()
|
|
184
|
-
.distinct('run')
|
|
185
|
-
.exec()).map((x) => x.valueOf());
|
|
164
|
+
const checksUniqueRuns = (await Check.find().distinct('run').exec()).map((x: any) => x.valueOf());
|
|
186
165
|
|
|
187
|
-
const emptyRuns = [];
|
|
188
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
166
|
+
const emptyRuns: any[] = [];
|
|
189
167
|
for (const run of allRunsBefore) {
|
|
190
|
-
// eslint-disable-next-line no-await-in-loop
|
|
191
168
|
if (!checksUniqueRuns.includes(run._id.valueOf())) {
|
|
192
169
|
emptyRuns.push(run._id.valueOf());
|
|
193
170
|
}
|
|
@@ -195,30 +172,24 @@ const task_handle_database_consistency = async (options, res) => {
|
|
|
195
172
|
|
|
196
173
|
taskOutput('> calculate empty suites', res);
|
|
197
174
|
|
|
198
|
-
const checksUniqueSuites = (await Check.find()
|
|
199
|
-
.distinct('suite')
|
|
200
|
-
.exec()).map((x) => x.valueOf());
|
|
175
|
+
const checksUniqueSuites = (await Check.find().distinct('suite').exec()).map((x: any) => x.valueOf());
|
|
201
176
|
|
|
202
|
-
const emptySuites = [];
|
|
203
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
177
|
+
const emptySuites: any[] = [];
|
|
204
178
|
for (const suite of allSuitesBefore) {
|
|
205
|
-
// eslint-disable-next-line no-await-in-loop
|
|
206
179
|
if (!checksUniqueSuites.includes(suite._id.valueOf())) {
|
|
207
180
|
emptySuites.push(suite._id.valueOf());
|
|
208
181
|
}
|
|
209
182
|
}
|
|
210
183
|
taskOutput('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', res);
|
|
211
184
|
taskOutput('Current inconsistent items:', res);
|
|
212
|
-
const inconsistentStatTable = stringTable.create(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
]
|
|
221
|
-
);
|
|
185
|
+
const inconsistentStatTable = stringTable.create([
|
|
186
|
+
{ item: 'empty suites', count: emptySuites.length },
|
|
187
|
+
{ item: 'empty runs', count: emptyRuns.length },
|
|
188
|
+
{ item: 'empty tests', count: emptyTests.length },
|
|
189
|
+
{ item: 'abandoned checks', count: abandonedChecks.length },
|
|
190
|
+
{ item: 'abandoned snapshots', count: abandonedSnapshots.length },
|
|
191
|
+
{ item: 'abandoned files', count: abandonedFiles.length },
|
|
192
|
+
]);
|
|
222
193
|
taskOutput(inconsistentStatTable, res);
|
|
223
194
|
|
|
224
195
|
if (options.clean) {
|
|
@@ -236,41 +207,39 @@ const task_handle_database_consistency = async (options, res) => {
|
|
|
236
207
|
taskOutput('> remove abandoned snapshots', res);
|
|
237
208
|
await Snapshot.deleteMany({ _id: { $in: abandonedSnapshots } });
|
|
238
209
|
taskOutput('> remove abandoned files', res);
|
|
239
|
-
await Promise.all(abandonedFiles.map((filename) =>
|
|
240
|
-
const allFilesAfter =
|
|
241
|
-
.filter((item) => !item.isDirectory())
|
|
242
|
-
.map((
|
|
243
|
-
.filter((x) => x.includes('.png'));
|
|
210
|
+
await Promise.all(abandonedFiles.map((filename) => fsp.unlink(`${config.defaultImagesPath}/${filename}`)));
|
|
211
|
+
const allFilesAfter = fs.readdirSync(config.defaultImagesPath, { withFileTypes: true })
|
|
212
|
+
.filter((item: any) => !item.isDirectory())
|
|
213
|
+
.map((x: any) => x.name)
|
|
214
|
+
.filter((x: any) => x.includes('.png'));
|
|
244
215
|
|
|
245
216
|
taskOutput('STAGE #4: Calculate Common stats after cleaning', res);
|
|
246
217
|
taskOutput('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', res);
|
|
247
218
|
taskOutput('Current items:', res);
|
|
248
|
-
const afterStatTable = stringTable.create(
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
]
|
|
257
|
-
);
|
|
219
|
+
const afterStatTable = stringTable.create([
|
|
220
|
+
{ item: 'suites', count: await Suite.countDocuments() },
|
|
221
|
+
{ item: 'runs', count: await Run.countDocuments() },
|
|
222
|
+
{ item: 'tests', count: await Test.countDocuments() },
|
|
223
|
+
{ item: 'checks', count: await Check.countDocuments() },
|
|
224
|
+
{ item: 'snapshots', count: await Snapshot.countDocuments() },
|
|
225
|
+
{ item: 'files', count: allFilesAfter.length },
|
|
226
|
+
]);
|
|
258
227
|
taskOutput(afterStatTable, res);
|
|
259
228
|
}
|
|
260
229
|
|
|
261
230
|
const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(startTime));
|
|
262
231
|
taskOutput(`> Done in ${elapsedSeconds} seconds, ${elapsedSeconds / 60} min`, res);
|
|
263
232
|
taskOutput('- end...\n', res);
|
|
264
|
-
} catch (e) {
|
|
265
|
-
|
|
266
|
-
|
|
233
|
+
} catch (e: unknown) {
|
|
234
|
+
const errMsg = e instanceof Error ? e.message : String(e);
|
|
235
|
+
log.error(errMsg);
|
|
236
|
+
taskOutput(errMsg, res);
|
|
267
237
|
} finally {
|
|
268
238
|
res.end();
|
|
269
239
|
}
|
|
270
240
|
};
|
|
271
241
|
|
|
272
|
-
const task_remove_old_logs = async (options, res) => {
|
|
273
|
-
// this header to response with chunks data
|
|
242
|
+
const task_remove_old_logs = async (options: any, res: any) => {
|
|
274
243
|
res.writeHead(200, {
|
|
275
244
|
'Content-Type': 'text/event-stream',
|
|
276
245
|
'Cache-Control': 'no-cache',
|
|
@@ -278,21 +247,14 @@ const task_remove_old_logs = async (options, res) => {
|
|
|
278
247
|
});
|
|
279
248
|
const trashHoldDate = subDays(new Date(), parseInt(options.days, 10));
|
|
280
249
|
const filter = { timestamp: { $lt: trashHoldDate } };
|
|
281
|
-
const allLogsCountBefore = await Log.find({})
|
|
282
|
-
|
|
283
|
-
const oldLogsCount = await Log.find(filter)
|
|
284
|
-
.countDocuments();
|
|
250
|
+
const allLogsCountBefore = await Log.find({}).countDocuments();
|
|
251
|
+
const oldLogsCount = await Log.find(filter).countDocuments();
|
|
285
252
|
taskOutput(`- the count of all documents is: '${allLogsCountBefore}'\n`, res);
|
|
286
253
|
taskOutput(`- the count of documents to be removed is: '${oldLogsCount}'\n`, res);
|
|
287
254
|
if (options.statistics === 'false') {
|
|
288
|
-
taskOutput(
|
|
289
|
-
`- will remove all logs older that: '${options.days}' days,`
|
|
290
|
-
+ ` '${dateToISO8601(trashHoldDate)}'\n`,
|
|
291
|
-
res
|
|
292
|
-
);
|
|
255
|
+
taskOutput(`- will remove all logs older that: '${options.days}' days, '${dateToISO8601(trashHoldDate)}'\n`, res);
|
|
293
256
|
await Log.deleteMany(filter);
|
|
294
|
-
const allLogsCountAfter = await Log.find({})
|
|
295
|
-
.countDocuments();
|
|
257
|
+
const allLogsCountAfter = await Log.find({}).countDocuments();
|
|
296
258
|
taskOutput(`- the count of all documents now is: '${allLogsCountAfter}'\n`, res);
|
|
297
259
|
}
|
|
298
260
|
|
|
@@ -300,8 +262,7 @@ const task_remove_old_logs = async (options, res) => {
|
|
|
300
262
|
res.end();
|
|
301
263
|
};
|
|
302
264
|
|
|
303
|
-
const task_handle_old_checks = async (options, res) => {
|
|
304
|
-
// this header to response with chunks data
|
|
265
|
+
const task_handle_old_checks = async (options: any, res: any) => {
|
|
305
266
|
res.writeHead(200, {
|
|
306
267
|
'Content-Type': 'text/event-stream',
|
|
307
268
|
'Cache-Control': 'no-cache',
|
|
@@ -316,66 +277,51 @@ const task_handle_old_checks = async (options, res) => {
|
|
|
316
277
|
const trashHoldDate = subDays(new Date(), parseInt(options.days, 10));
|
|
317
278
|
|
|
318
279
|
taskOutput('> get all checks data', res);
|
|
319
|
-
const allChecksBefore = await Check.find()
|
|
320
|
-
.lean()
|
|
321
|
-
.exec();
|
|
280
|
+
const allChecksBefore = await Check.find().lean().exec();
|
|
322
281
|
taskOutput('> get snapshots data', res);
|
|
323
|
-
const allSnapshotsBefore = await Snapshot.find()
|
|
324
|
-
.lean()
|
|
325
|
-
.exec();
|
|
282
|
+
const allSnapshotsBefore = await Snapshot.find().lean().exec();
|
|
326
283
|
taskOutput('> get files data', res);
|
|
327
|
-
const allFilesBefore = (await
|
|
328
|
-
.filter((item) => !item.isDirectory())
|
|
329
|
-
.map((
|
|
330
|
-
.filter((x) => x.includes('.png'));
|
|
284
|
+
const allFilesBefore = (await fsp.readdir(config.defaultImagesPath, { withFileTypes: true }))
|
|
285
|
+
.filter((item: any) => !item.isDirectory())
|
|
286
|
+
.map((x: any) => x.name)
|
|
287
|
+
.filter((x: any) => x.includes('.png'));
|
|
331
288
|
|
|
332
289
|
taskOutput('> get old checks data', res);
|
|
333
|
-
const oldChecks = await Check.find({ createdDate: { $lt: trashHoldDate } })
|
|
334
|
-
.lean()
|
|
335
|
-
.exec();
|
|
290
|
+
const oldChecks = await Check.find({ createdDate: { $lt: trashHoldDate } }).lean().exec();
|
|
336
291
|
|
|
337
292
|
taskOutput('>>> collect all baselineIds for old Checks ', res);
|
|
338
|
-
const oldSnapshotsBaselineIdIds = oldChecks.map((x) => x.baselineId)
|
|
339
|
-
.filter((x) => x);
|
|
293
|
+
const oldSnapshotsBaselineIdIds = oldChecks.map((x: any) => x.baselineId).filter((x: any) => x);
|
|
340
294
|
|
|
341
295
|
taskOutput('>>> collect all actualSnapshotId for old Checks ', res);
|
|
342
|
-
const oldSnapshotsActualSnapshotIdIds = oldChecks.map((x) => x.actualSnapshotId)
|
|
343
|
-
.filter((x) => x);
|
|
296
|
+
const oldSnapshotsActualSnapshotIdIds = oldChecks.map((x: any) => x.actualSnapshotId).filter((x: any) => x);
|
|
344
297
|
|
|
345
298
|
taskOutput('>>> collect all diffId for old Checks ', res);
|
|
346
|
-
const oldSnapshotsDiffIds = oldChecks.map((x) => x.diffId)
|
|
347
|
-
.filter((x) => x);
|
|
299
|
+
const oldSnapshotsDiffIds = oldChecks.map((x: any) => x.diffId).filter((x: any) => x);
|
|
348
300
|
|
|
349
301
|
taskOutput('>>> calculate all unique snapshots ids for old Checks ', res);
|
|
350
302
|
|
|
351
|
-
const allOldSnapshotsUniqueIds = Array.from(
|
|
352
|
-
|
|
353
|
-
)
|
|
354
|
-
.map((x) => x.valueOf());
|
|
303
|
+
const allOldSnapshotsUniqueIds = Array.from(new Set([...oldSnapshotsBaselineIdIds, ...oldSnapshotsActualSnapshotIdIds, ...oldSnapshotsDiffIds]))
|
|
304
|
+
.map((x: any) => x.valueOf());
|
|
355
305
|
|
|
356
306
|
taskOutput('>>> collect all old snapshots', res);
|
|
357
|
-
const oldSnapshots = await Snapshot.find({ _id: { $in: allOldSnapshotsUniqueIds } })
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
{ item: 'all old snapshots', count: oldSnapshots.length },
|
|
371
|
-
]
|
|
372
|
-
);
|
|
307
|
+
const oldSnapshots = await Snapshot.find({ _id: { $in: allOldSnapshotsUniqueIds } }).lean();
|
|
308
|
+
|
|
309
|
+
const outTable = stringTable.create([
|
|
310
|
+
{ item: 'all checks', count: allChecksBefore.length },
|
|
311
|
+
{ item: 'all snapshots', count: allSnapshotsBefore.length },
|
|
312
|
+
{ item: 'all files', count: allFilesBefore.length },
|
|
313
|
+
{ item: `checks older than: '${options.days}' days`, count: oldChecks.length },
|
|
314
|
+
{ item: 'old snapshots baseline ids', count: oldSnapshotsBaselineIdIds.length },
|
|
315
|
+
{ item: 'old snapshots actual snapshotId', count: oldSnapshotsActualSnapshotIdIds.length },
|
|
316
|
+
{ item: 'old snapshots diffIds', count: oldSnapshotsDiffIds.length },
|
|
317
|
+
{ item: 'all old snapshots unique Ids', count: allOldSnapshotsUniqueIds.length },
|
|
318
|
+
{ item: 'all old snapshots', count: oldSnapshots.length },
|
|
319
|
+
]);
|
|
373
320
|
|
|
374
321
|
taskOutput(outTable, res);
|
|
375
322
|
|
|
376
323
|
if (options.remove === 'true') {
|
|
377
|
-
taskOutput(`STAGE #2 Remove checks that older that: '${options.days}' days
|
|
378
|
-
+ ` '${dateToISO8601(trashHoldDate)}'\n`, res);
|
|
324
|
+
taskOutput(`STAGE #2 Remove checks that older that: '${options.days}' days, '${dateToISO8601(trashHoldDate)}'\n`, res);
|
|
379
325
|
|
|
380
326
|
taskOutput('> remove checks', res);
|
|
381
327
|
const checkRemovingResult = await Check.deleteMany({ createdDate: { $lt: trashHoldDate } });
|
|
@@ -385,17 +331,13 @@ const task_handle_old_checks = async (options, res) => {
|
|
|
385
331
|
|
|
386
332
|
taskOutput('>> collect data to removing', res);
|
|
387
333
|
taskOutput('>>> get all baselines snapshots id`s', res);
|
|
388
|
-
const baselinesSnapshotsIds = (await Baseline.find({})
|
|
389
|
-
.distinct('snapshootId'));
|
|
334
|
+
const baselinesSnapshotsIds = (await Baseline.find({}).distinct('snapshootId'));
|
|
390
335
|
|
|
391
|
-
// get baselineIds after removing
|
|
392
336
|
taskOutput('>>> get all checks snapshots baselineId', res);
|
|
393
|
-
const checksSnapshotsBaselineId = (await Check.find({})
|
|
394
|
-
.distinct('baselineId'));
|
|
337
|
+
const checksSnapshotsBaselineId = (await Check.find({}).distinct('baselineId'));
|
|
395
338
|
|
|
396
339
|
taskOutput('>>> get all checks snapshots actualSnapshotId', res);
|
|
397
|
-
const checksSnapshotsActualSnapshotId = (await Check.find({})
|
|
398
|
-
.distinct('actualSnapshotId'));
|
|
340
|
+
const checksSnapshotsActualSnapshotId = (await Check.find({}).distinct('actualSnapshotId'));
|
|
399
341
|
|
|
400
342
|
taskOutput('>> remove baselines snapshots', res);
|
|
401
343
|
|
|
@@ -411,8 +353,6 @@ const task_handle_old_checks = async (options, res) => {
|
|
|
411
353
|
taskOutput(`>>> removed: '${removedByBaselineSnapshotsResult.deletedCount}'`, res);
|
|
412
354
|
|
|
413
355
|
taskOutput('>> remove actual snapshots', res);
|
|
414
|
-
// here we give all old checks and then exclude all baselines
|
|
415
|
-
// and all checks related to new checks with actual and baseline snapshots with such baselineId
|
|
416
356
|
taskOutput('>> remove all old snapshots that not related to new baseline and check items', res);
|
|
417
357
|
const removedByActualSnapshotsResult = await Snapshot.deleteMany({
|
|
418
358
|
$and: [
|
|
@@ -434,66 +374,59 @@ const task_handle_old_checks = async (options, res) => {
|
|
|
434
374
|
|
|
435
375
|
taskOutput('> remove files', res);
|
|
436
376
|
taskOutput('>>> collect all old snapshots filenames', res);
|
|
437
|
-
const oldSnapshotsUniqueFilenames = Array.from(new Set(oldSnapshots.map((x) => x.filename)));
|
|
377
|
+
const oldSnapshotsUniqueFilenames = Array.from(new Set(oldSnapshots.map((x: any) => x.filename)));
|
|
438
378
|
taskOutput(`>> found: ${oldSnapshotsUniqueFilenames.length}`, res);
|
|
439
379
|
|
|
440
380
|
taskOutput('> get all current snapshots filenames', res);
|
|
441
|
-
const allCurrentSnapshotsFilenames = await Snapshot.find()
|
|
442
|
-
.distinct('filename')
|
|
443
|
-
.exec();
|
|
381
|
+
const allCurrentSnapshotsFilenames = await Snapshot.find().distinct('filename').exec();
|
|
444
382
|
|
|
445
383
|
taskOutput('>> calculate interception between all current snapshot filenames and old shapshots filenames', res);
|
|
446
|
-
const arrayIntersection = (arr1, arr2) => arr1.filter((x) => arr2.includes(x));
|
|
384
|
+
const arrayIntersection = (arr1: any, arr2: any) => arr1.filter((x: any) => arr2.includes(x));
|
|
447
385
|
const filesInterception = arrayIntersection(allCurrentSnapshotsFilenames, oldSnapshotsUniqueFilenames);
|
|
448
386
|
taskOutput(`>> found: ${filesInterception.length}`, res);
|
|
449
387
|
|
|
450
388
|
taskOutput('>> calculate filenames to remove', res);
|
|
451
|
-
const arrayDiff = (arr1, arr2) => arr1.filter((x) => !arr2.includes(x));
|
|
389
|
+
const arrayDiff = (arr1: any, arr2: any) => arr1.filter((x: any) => !arr2.includes(x));
|
|
452
390
|
const filesToDelete = arrayDiff(oldSnapshotsUniqueFilenames, filesInterception);
|
|
453
391
|
taskOutput(`>> found: ${filesToDelete.length}`, res);
|
|
454
392
|
|
|
455
393
|
taskOutput(`>> remove these files: ${filesToDelete.length}`, res);
|
|
456
|
-
await Promise.all(filesToDelete.map((filename) =>
|
|
394
|
+
await Promise.all(filesToDelete.map((filename: string) => fsp.unlink(`${config.defaultImagesPath}/${filename}`)));
|
|
457
395
|
taskOutput(`>> done: ${filesToDelete.length}`, res);
|
|
458
396
|
|
|
459
397
|
taskOutput('STAGE #3 Calculate common stats after Removing', res);
|
|
460
398
|
|
|
461
399
|
taskOutput('> get all checks data', res);
|
|
462
|
-
const allChecksAfter = await Check.find()
|
|
463
|
-
.lean()
|
|
464
|
-
.exec();
|
|
400
|
+
const allChecksAfter = await Check.find().lean().exec();
|
|
465
401
|
taskOutput('> get snapshots data', res);
|
|
466
|
-
const allSnapshotsAfter = await Snapshot.find()
|
|
467
|
-
.lean()
|
|
468
|
-
.exec();
|
|
402
|
+
const allSnapshotsAfter = await Snapshot.find().lean().exec();
|
|
469
403
|
taskOutput('> get files data', res);
|
|
470
|
-
const allFilesAfter = (await
|
|
471
|
-
.filter((item) => !item.isDirectory())
|
|
472
|
-
.map((
|
|
473
|
-
.filter((x) => x.includes('.png'));
|
|
474
|
-
|
|
475
|
-
const outTableAfter = stringTable.create(
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
]
|
|
481
|
-
);
|
|
404
|
+
const allFilesAfter = (await fsp.readdir(config.defaultImagesPath, { withFileTypes: true }))
|
|
405
|
+
.filter((item: any) => !item.isDirectory())
|
|
406
|
+
.map((x: any) => x.name)
|
|
407
|
+
.filter((x: any) => x.includes('.png'));
|
|
408
|
+
|
|
409
|
+
const outTableAfter = stringTable.create([
|
|
410
|
+
{ item: 'all checks', count: allChecksAfter.length },
|
|
411
|
+
{ item: 'all snapshots', count: allSnapshotsAfter.length },
|
|
412
|
+
{ item: 'all files', count: allFilesAfter.length },
|
|
413
|
+
]);
|
|
482
414
|
|
|
483
415
|
taskOutput(outTableAfter, res);
|
|
484
416
|
}
|
|
485
417
|
const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(startTime));
|
|
486
418
|
|
|
487
419
|
taskOutput(`> done in ${elapsedSeconds} seconds ${elapsedSeconds / 60} min`, res);
|
|
488
|
-
} catch (e) {
|
|
489
|
-
|
|
490
|
-
|
|
420
|
+
} catch (e: unknown) {
|
|
421
|
+
const errMsg = e instanceof Error ? e.message : String(e);
|
|
422
|
+
log.error(errMsg);
|
|
423
|
+
taskOutput(errMsg, res);
|
|
491
424
|
} finally {
|
|
492
425
|
res.end();
|
|
493
426
|
}
|
|
494
427
|
};
|
|
495
|
-
|
|
496
|
-
|
|
428
|
+
|
|
429
|
+
const task_test = async (options = 'empty', req: ExtRequest, res: Response) => {
|
|
497
430
|
res.writeHead(200, {
|
|
498
431
|
'Content-Type': 'text/event-stream',
|
|
499
432
|
'Cache-Control': 'no-cache',
|
|
@@ -501,31 +434,27 @@ const task_test = async (options = 'empty', req, res) => {
|
|
|
501
434
|
});
|
|
502
435
|
|
|
503
436
|
const x = 1000;
|
|
504
|
-
const interval = 30;
|
|
437
|
+
// const interval = 30;
|
|
505
438
|
let isAborted = false;
|
|
506
439
|
|
|
507
|
-
req.on(
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
isAborted = true;
|
|
511
|
-
}
|
|
512
|
-
);
|
|
440
|
+
req.on('close', () => {
|
|
441
|
+
isAborted = true;
|
|
442
|
+
});
|
|
513
443
|
|
|
514
444
|
for (let i = 0; i < x; i += 1) {
|
|
515
|
-
//
|
|
516
|
-
await new Promise((r) => setTimeout(() => r(), interval));
|
|
445
|
+
// await new Promise((r) => setTimeout(() => r(), interval));
|
|
517
446
|
taskOutput(`- Task Output: '${i}', options: ${options}\n`, res);
|
|
518
447
|
if (isAborted) {
|
|
519
448
|
taskOutput('the task was aborted\n', res);
|
|
520
|
-
log.warn('the task was aborted'
|
|
521
|
-
res.flush();
|
|
449
|
+
log.warn('the task was aborted');
|
|
450
|
+
(res as any).flush();
|
|
522
451
|
return res.end();
|
|
523
452
|
}
|
|
524
453
|
}
|
|
525
454
|
return res.end();
|
|
526
455
|
};
|
|
527
456
|
|
|
528
|
-
|
|
457
|
+
export {
|
|
529
458
|
task_test,
|
|
530
459
|
task_handle_old_checks,
|
|
531
460
|
task_handle_database_consistency,
|