@restforgejs/platform 4.2.8 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SECURITY.md +83 -4
- package/bin/sdf-tools.exe +0 -0
- package/build-info.json +2 -2
- package/cli/consumer-deploy.js +1 -1
- package/cli/consumer.js +1 -1
- package/generators/cli/dashboard/create.js +4 -1
- package/generators/cli/endpoint/create.js +1 -1
- package/generators/cli/key/generate.js +2 -1
- package/generators/cli/key/revoke.js +2 -1
- package/generators/cli/payload/diff.js +3 -2
- package/generators/cli/payload/generate.js +3 -2
- package/generators/cli/payload/sync.js +3 -2
- package/generators/cli/payload/validate.js +3 -2
- package/generators/cli/processor/create.js +14 -3
- package/generators/cli/project/delete.js +2 -1
- package/generators/cli/query/validate.js +3 -2
- package/generators/cli/schema/apply.js +3 -2
- package/generators/cli/schema/describe.js +3 -2
- package/generators/cli/schema/diff.js +3 -2
- package/generators/cli/schema/introspect.js +3 -2
- package/generators/cli/schema/list.js +3 -2
- package/generators/cli/schema/migrate.js +3 -2
- package/generators/lib/migration/audit-table-runner.js +213 -215
- package/generators/lib/templates/dashboard-catalog.js +1 -437
- package/generators/lib/templates/db-connection-env.js +1 -212
- package/generators/lib/templates/dbschema-catalog.js +1 -489
- package/generators/lib/templates/field-validation-catalog.js +1 -531
- package/generators/lib/templates/mysql-template.js +1 -3863
- package/generators/lib/templates/oracle-template.js +1 -3915
- package/generators/lib/templates/postgres-template.js +1 -5838
- package/generators/lib/templates/query-declarative-catalog.js +1 -199
- package/generators/lib/templates/sqlite-template.js +1 -3440
- package/generators/lib/utils/env-manager.js +6 -0
- package/generators/lib/utils/path-validator.js +71 -0
- package/generators/lib/validators/payload-validator.js +1 -2
- package/integrity-manifest.json +28 -10
- package/package.json +11 -3
- package/scripts/verify-integrity.js +1 -1
- package/server.js +1 -1
- package/src/components/handlers/adjust_handler.js +1 -1
- package/src/components/handlers/audit_handler.js +1 -1
- package/src/components/handlers/delete_handler.js +1 -1
- package/src/components/handlers/export_handler.js +1 -1
- package/src/components/handlers/import_handler.js +1 -1
- package/src/components/handlers/insert_handler.js +1 -1
- package/src/components/handlers/update_handler.js +1 -1
- package/src/components/handlers/upload_handler.js +1 -1
- package/src/components/handlers/workflow_handler.js +1 -1
- package/src/components/integrations/webhook.js +1 -1
- package/src/consumers/baseConsumer.js +1 -1
- package/src/consumers/declarativeMapper.js +1 -1
- package/src/consumers/handlers/apiHandler.js +1 -1
- package/src/consumers/handlers/consoleHandler.js +1 -1
- package/src/consumers/handlers/databaseHandler.js +1 -1
- package/src/consumers/handlers/index.js +1 -1
- package/src/consumers/handlers/kafkaHandler.js +1 -1
- package/src/consumers/index.js +1 -1
- package/src/consumers/messageTransformer.js +1 -1
- package/src/consumers/validator.js +1 -1
- package/src/core/db/dialect/base-dialect.js +1 -1
- package/src/core/db/dialect/index.js +1 -1
- package/src/core/db/dialect/mysql-dialect.js +1 -1
- package/src/core/db/dialect/oracle-dialect.js +1 -1
- package/src/core/db/dialect/postgres-dialect.js +1 -1
- package/src/core/db/dialect/sqlite-dialect.js +1 -1
- package/src/core/db/flatten-helper.js +1 -1
- package/src/core/db/query-builder-error.js +1 -1
- package/src/core/db/query-builder.js +1 -1
- package/src/core/db/relation-helper.js +1 -1
- package/src/core/handlers/delete_handler.js +1 -1
- package/src/core/handlers/insert_handler.js +1 -1
- package/src/core/handlers/update_handler.js +1 -1
- package/src/core/models/base-model.js +1 -1
- package/src/core/utils/cache-manager.js +1 -1
- package/src/core/utils/component-engine.js +1 -1
- package/src/core/utils/context-builder.js +1 -1
- package/src/core/utils/datetime-formatter.js +1 -1
- package/src/core/utils/datetime-parser.js +1 -1
- package/src/core/utils/db.js +1 -1
- package/src/core/utils/logger.js +1 -1
- package/src/core/utils/payload-loader.js +1 -1
- package/src/core/utils/security-checks.js +1 -1
- package/src/middleware/body-options.js +1 -1
- package/src/middleware/cors.js +1 -1
- package/src/middleware/idempotency.js +1 -1
- package/src/middleware/rate-limiter.js +1 -1
- package/src/middleware/request-logger.js +1 -1
- package/src/middleware/security-headers.js +1 -1
- package/src/models/base-model-mysql.js +1 -1
- package/src/models/base-model-oracle.js +1 -1
- package/src/models/base-model-sqlite.js +1 -1
- package/src/models/base-model.js +1 -1
- package/src/pro/caching/redis-client.js +1 -1
- package/src/pro/caching/redis-helper.js +1 -1
- package/src/pro/consumers/baseConsumer.js +1 -1
- package/src/pro/consumers/declarativeMapper.js +1 -1
- package/src/pro/consumers/handlers/apiHandler.js +1 -1
- package/src/pro/consumers/handlers/consoleHandler.js +1 -1
- package/src/pro/consumers/handlers/databaseHandler.js +1 -1
- package/src/pro/consumers/handlers/index.js +1 -1
- package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
- package/src/pro/consumers/index.js +1 -1
- package/src/pro/consumers/messageTransformer.js +1 -1
- package/src/pro/consumers/validator.js +1 -1
- package/src/pro/database/base-model-mysql.js +1 -1
- package/src/pro/database/base-model-oracle.js +1 -1
- package/src/pro/database/base-model-sqlite.js +1 -1
- package/src/pro/database/db-mysql.js +1 -1
- package/src/pro/database/db-oracle.js +1 -1
- package/src/pro/database/db-sqlite.js +1 -1
- package/src/pro/excel/excel-generator.js +1 -1
- package/src/pro/excel/excel-parser.js +1 -1
- package/src/pro/excel/export-service.js +1 -1
- package/src/pro/excel/export_handler.js +1 -1
- package/src/pro/excel/import-service.js +1 -1
- package/src/pro/excel/import-validator.js +1 -1
- package/src/pro/excel/import_handler.js +1 -1
- package/src/pro/excel/upsert-builder.js +1 -1
- package/src/pro/idgen/idgen-routes.js +1 -1
- package/src/pro/integrations/lookup-resolver.js +1 -1
- package/src/pro/integrations/upload-handler-v2.js +1 -1
- package/src/pro/integrations/upload-handler.js +1 -1
- package/src/pro/integrations/webhook.js +1 -1
- package/src/pro/locking/lock-routes.js +1 -1
- package/src/pro/locking/resource-lock-manager.js +1 -1
- package/src/pro/messaging/kafkaConsumerService.js +1 -1
- package/src/pro/messaging/kafkaService.js +1 -1
- package/src/pro/messaging/messagehubService.js +1 -1
- package/src/pro/messaging/rabbitmqService.js +1 -1
- package/src/pro/scheduler/job-manager.js +1 -1
- package/src/pro/scheduler/job-routes.js +1 -1
- package/src/pro/scheduler/job-validator.js +1 -1
- package/src/pro/storage/base-storage-provider.js +1 -1
- package/src/pro/storage/file-metadata-helper.js +1 -1
- package/src/pro/storage/index.js +1 -1
- package/src/pro/storage/local-storage-provider.js +1 -1
- package/src/pro/storage/s3-storage-provider.js +1 -1
- package/src/pro/storage/upload-cleanup-job.js +1 -1
- package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
- package/src/pro/storage/upload-pending-tracker.js +1 -1
- package/src/pro/websocket/broadcast-helper.js +1 -1
- package/src/pro/websocket/index.js +1 -1
- package/src/pro/websocket/livesync-server.js +1 -1
- package/src/pro/websocket/ws-broadcaster.js +1 -1
- package/src/services/export-service.js +1 -1
- package/src/services/import-service.js +1 -1
- package/src/services/kafkaConsumerService.js +1 -1
- package/src/services/kafkaService.js +1 -1
- package/src/services/messagehubService.js +1 -1
- package/src/services/rabbitmqService.js +1 -1
- package/src/utils/cache-invalidation-registry.js +1 -1
- package/src/utils/cache-manager.js +1 -1
- package/src/utils/component-engine.js +1 -1
- package/src/utils/config-extractor.js +1 -1
- package/src/utils/consumerLogger.js +1 -1
- package/src/utils/context-builder.js +1 -1
- package/src/utils/dashboard-helpers.js +1 -1
- package/src/utils/dateHelper.js +1 -1
- package/src/utils/datetime-formatter.js +1 -1
- package/src/utils/datetime-parser.js +1 -1
- package/src/utils/db-bootstrap.js +1 -1
- package/src/utils/db-mysql.js +1 -1
- package/src/utils/db-oracle.js +1 -1
- package/src/utils/db-sqlite.js +1 -1
- package/src/utils/db.js +1 -1
- package/src/utils/demo-generator.js +1 -1
- package/src/utils/excel-generator.js +1 -1
- package/src/utils/excel-parser.js +1 -1
- package/src/utils/file-watcher.js +1 -1
- package/src/utils/id-generator.js +1 -1
- package/src/utils/idempotency-manager.js +1 -1
- package/src/utils/import-validator.js +1 -1
- package/src/utils/license-client.js +1 -1
- package/src/utils/lock-manager.js +1 -1
- package/src/utils/logger.js +1 -1
- package/src/utils/lookup-resolver.js +1 -1
- package/src/utils/payload-loader.js +1 -1
- package/src/utils/processor-response.js +1 -1
- package/src/utils/rabbitmq.js +1 -1
- package/src/utils/redis-client.js +1 -1
- package/src/utils/redis-helper.js +1 -1
- package/src/utils/request-scope.js +1 -1
- package/src/utils/security-checks.js +1 -1
- package/src/utils/service-resolver.js +1 -1
- package/src/utils/shutdown-coordinator.js +1 -1
- package/src/utils/trusted-keys.js +1 -1
- package/src/utils/upload-handler.js +1 -1
- package/src/utils/upsert-builder.js +1 -1
- package/src/utils/workflow-hook-executor.js +1 -1
- package/generators/metadata/global.json +0 -58
- package/generators/metadata/test-mysql-workbench.json +0 -118
- package/generators/metadata/test-mysql.json +0 -56
- package/generators/metadata/test-oracle-workbench.json +0 -118
- package/generators/metadata/test-oracle.json +0 -56
- package/generators/metadata/test-pg-workbench.json +0 -118
- package/generators/metadata/test-pg.json +0 -56
- package/generators/scripts/obfuscate-source.js +0 -356
- package/generators/scripts/validate-catalog.js +0 -430
- package/generators/scripts/validate-dbschema-catalog.js +0 -708
- package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
- package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
- package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
- package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
- package/generators/tests/fixtures/payloads/order-process.json +0 -52
- package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
- package/generators/tests/integration-tahap4b/README.md +0 -145
- package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
- package/generators/tests/integration-tahap4b/seed.sql +0 -53
- package/generators/tests/integration-tahap4b/verify.sql +0 -110
- package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
- package/generators/tests/unit/cli/create-processor.test.js +0 -319
- package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
- package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
- package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
- package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
- package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
- package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
- package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
- package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
- package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
- package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
- package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
- package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
- package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
- package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
- package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
- package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
- package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
- package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
- package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
- package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
- package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
- package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
- package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
- package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
- package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
- package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
- package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
- package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
- package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
- package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
- package/scripts/generate-integrity-manifest.js +0 -124
- package/scripts/snapshot-cli-contracts.js +0 -194
- package/scripts/verify-publish.js +0 -56
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x293b(){const _0x5e7597=['z2v0','C2v0zxG','te9ds19esvnuuKLcvvrfrf9uveW','uKvbrcbSB2nRihjLBgvHC2vK','tMLlquy','nJG1oduWmNzMAvfwvq','D29YA2vYswq','x2LUAxrPywXPEMvK','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','swniENy','CMv0CNK','CMjtEeq','zw5HyMXLza','zgvMyxvSDfruta','CMvHzf9SB2nRx2vYCM9Y','v2fPDgLUzYbMB3iGBg9JA3mGDg8GCMvSzwfZzq','CMvHza','Eev4BeK','zxHWB3j0CW','C3rYyxrLz3K','C3vIC3rYAw5N','x2vUywjSzwq','ywXS','ChjLzML4','Cg93','x3jLDhj5rgvSyxK','zvvMsNm','x2vUC3vYzuLUAxrPywXPEMvK','zgvIDwC','uMX1C2u','mtaXnJi2odnOtxr3BxG','tKTysfa','mMrqtwTVwq','DxvPza','Bg9JA19JB25MAwDFAw5PDa','mta0ndq2nhbxu0zAtW','zxjYB3i','CMvHzf9SB2nRx3DHAxrPBMC','x3bYzwzPEa','x2rLzMf1BhruveW','z2v0q2XPzw50','D3jPDgvFBg9JA190Aw1LB3v0','zgvJCG','nvL5whjNEq','D3jPDgvFBg9JA193ywL0Aw5N','CMvHzf9SB2nRx3rPBwvVDxq','BwvZC2fNzq','C2XLzxa','Aw5JCG','uKvbrcbSB2nRigvYCM9Y','x3jLDhj5q291BNq','z2vUzxjHDgvmB2nRvMfSDwu','ueLyAgO','D29YA2vYlq','BgfZDeLUzgv4t2y','CMvQzwn0','tg9JAYbLEhrLBMqGzxjYB3i','ohfgDKrSDW','ywnXDwLYzvjLywrmB2nR','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','ndy3nte3zgnhvvDi','zxzHBa','nZCZnde1meD0yujYqW','vKjZBuS','D3jPDgvFBg9JA19LCNjVCG','CMv0CNLdB3vUDa','x3DVCMTLCKLK','tMX4DNK','zw52','mZm3mZiYoe9QCLfRBW','D3jPDgu','zgvS','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','x3n0CMf0zwD5','C2v0','Chf1ugC','z2v0tg9JA0LUzM8','AxnfBMfIBgvK','CMvSzwfZzuXVy2S','te9ds19esvnuuKLcvvrfrf9srvrswq','yNvPBgrmB2nRs2v5','otq5ntK5mhr3t0XJDa','D3jPDgvFBg9JA19Hy3f1AxjLza','mNW1Fdb8m3W3Fdz8mxW0'];a0_0x293b=function(){return _0x5e7597;};return a0_0x293b();}const a0_0x52ebe4=a0_0x591b;(function(_0x46160d,_0x3f3357){const _0x2edb62=a0_0x591b,_0x2b8b0a=_0x46160d();while(!![]){try{const _0x44b45a=-parseInt(_0x2edb62(0x14b))/0x1+parseInt(_0x2edb62(0x148))/0x2*(parseInt(_0x2edb62(0x164))/0x3)+parseInt(_0x2edb62(0x16d))/0x4*(-parseInt(_0x2edb62(0x153))/0x5)+parseInt(_0x2edb62(0x166))/0x6+-parseInt(_0x2edb62(0x181))/0x7+-parseInt(_0x2edb62(0x161))/0x8*(-parseInt(_0x2edb62(0x146))/0x9)+parseInt(_0x2edb62(0x179))/0xa;if(_0x44b45a===_0x3f3357)break;else _0x2b8b0a['push'](_0x2b8b0a['shift']());}catch(_0x565d02){_0x2b8b0a['push'](_0x2b8b0a['shift']());}}}(a0_0x293b,0xa02dd));function a0_0x591b(_0x1bcefa,_0x227354){_0x1bcefa=_0x1bcefa-0x13e;const _0x293bea=a0_0x293b();let _0x591b04=_0x293bea[_0x1bcefa];if(a0_0x591b['YFaNvm']===undefined){var _0x1f6146=function(_0x3a1ee0){const _0x12e886='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9fc6a='',_0x337119='';for(let _0x48772a=0x0,_0x14ce2b,_0x5b885c,_0x584732=0x0;_0x5b885c=_0x3a1ee0['charAt'](_0x584732++);~_0x5b885c&&(_0x14ce2b=_0x48772a%0x4?_0x14ce2b*0x40+_0x5b885c:_0x5b885c,_0x48772a++%0x4)?_0x9fc6a+=String['fromCharCode'](0xff&_0x14ce2b>>(-0x2*_0x48772a&0x6)):0x0){_0x5b885c=_0x12e886['indexOf'](_0x5b885c);}for(let _0x191b8b=0x0,_0x5ed5fc=_0x9fc6a['length'];_0x191b8b<_0x5ed5fc;_0x191b8b++){_0x337119+='%'+('00'+_0x9fc6a['charCodeAt'](_0x191b8b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x337119);};a0_0x591b['UaPjRe']=_0x1f6146,a0_0x591b['WqxDuL']={},a0_0x591b['YFaNvm']=!![];}const _0x59ebfa=_0x293bea[0x0],_0x3d3b62=_0x1bcefa+_0x59ebfa,_0x3ea47f=a0_0x591b['WqxDuL'][_0x3d3b62];return!_0x3ea47f?(_0x591b04=a0_0x591b['UaPjRe'](_0x591b04),a0_0x591b['WqxDuL'][_0x3d3b62]=_0x591b04):_0x591b04=_0x3ea47f,_0x591b04;}const redisClient=require('./redis-client'),{logger}=require('./logger'),{v4:uuidv4}=require(a0_0x52ebe4(0x149));class LockManager{constructor(){const _0x3f6018=a0_0x52ebe4,_0x17e9ff=_0x3f6018(0x17b)['split']('|');let _0x260988=0x0;while(!![]){switch(_0x17e9ff[_0x260988++]){case'0':this['_defaultTTL']=null;continue;case'1':this['_workerId']=null;continue;case'2':this[_0x3f6018(0x14e)]=null;continue;case'3':this[_0x3f6018(0x15a)]=null;continue;case'4':this['_initialized']=![];continue;case'5':this[_0x3f6018(0x191)]=null;continue;case'6':this[_0x3f6018(0x171)]=null;continue;case'7':this[_0x3f6018(0x141)]=null;continue;}break;}}['_initConfig'](){const _0x145b96=a0_0x52ebe4,_0x48d342={'NiKAF':function(_0x412bdd,_0x5cc83b,_0x33d7fe){return _0x412bdd(_0x5cc83b,_0x33d7fe);},'xExlI':_0x145b96(0x186)};this[_0x145b96(0x14e)]='rf:lock:',this[_0x145b96(0x191)]=process[_0x145b96(0x16c)]['LOCK_DISTRIBUTED_ENABLED']==='true',this['_defaultTTL']=_0x48d342[_0x145b96(0x180)](parseInt,process[_0x145b96(0x16c)][_0x145b96(0x17e)],0xa)||0xa,this[_0x145b96(0x15a)]=_0x48d342['NiKAF'](parseInt,process[_0x145b96(0x16c)][_0x145b96(0x177)],0xa)||0x3,this[_0x145b96(0x141)]=_0x48d342[_0x145b96(0x180)](parseInt,process[_0x145b96(0x16c)]['LOCK_DISTRIBUTED_RETRY_DELAY'],0xa)||0x64,this[_0x145b96(0x171)]=process['env']['LOCK_DISTRIBUTED_STRATEGY']||_0x48d342[_0x145b96(0x18d)],this['_workerId']=_0x145b96(0x15d)+process['pid'],this[_0x145b96(0x183)]=!![],logger['info']({'event':_0x145b96(0x14a),'enabled':this[_0x145b96(0x191)],'strategy':this['_strategy'],'ttl':this[_0x145b96(0x14f)],'retryCount':this[_0x145b96(0x15a)],'retryDelay':this['_retryDelay'],'workerId':this[_0x145b96(0x16a)]},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this[_0x145b96(0x191)]+',\x20strategy:\x20'+this[_0x145b96(0x171)]);}['_ensureInitialized'](){const _0x1272bc=a0_0x52ebe4;!this[_0x1272bc(0x183)]&&this['_initConfig']();}get['prefix'](){const _0x2bcca7=a0_0x52ebe4;return this[_0x2bcca7(0x143)](),this['_prefix'];}get['enabled'](){const _0x244e1d=a0_0x52ebe4;return this['_ensureInitialized'](),this[_0x244e1d(0x191)];}get[a0_0x52ebe4(0x189)](){const _0x1ebb71=a0_0x52ebe4;return this[_0x1ebb71(0x143)](),this['_defaultTTL'];}get['retryCount'](){return this['_ensureInitialized'](),this['_retryCount'];}get['retryDelay'](){const _0x1a0d4d=a0_0x52ebe4;return this[_0x1a0d4d(0x143)](),this['_retryDelay'];}get['strategy'](){const _0x5aca18=a0_0x52ebe4;return this[_0x5aca18(0x143)](),this['_strategy'];}get[a0_0x52ebe4(0x182)](){const _0x5a0998=a0_0x52ebe4;return this[_0x5a0998(0x143)](),this['_workerId'];}['buildLockKey'](_0x25127a){const _0x248e90=a0_0x52ebe4,{module:_0xdb84cc,endpoint:_0x4094c6,lockType:_0x421023,recordId:_0x405236}=_0x25127a;if(_0x405236)return''+this[_0x248e90(0x13f)]+_0xdb84cc+':'+_0x4094c6+':'+_0x405236+':'+_0x421023;return''+this[_0x248e90(0x13f)]+_0xdb84cc+':'+_0x4094c6+':'+_0x421023;}[a0_0x52ebe4(0x15b)](){return this['workerId']+':'+uuidv4()+':'+Date['now']();}async[a0_0x52ebe4(0x162)](_0x19a700){const _0x5054d0=a0_0x52ebe4,_0x4fc2d6={'WRfYZ':'read_lock_acquired','rAsAK':_0x5054d0(0x14d),'rbSxD':function(_0x40e02c,_0x52d232){return _0x40e02c*_0x52d232;},'PIXhj':_0x5054d0(0x155)};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x4411df=this[_0x5054d0(0x178)]({..._0x19a700,'lockType':_0x5054d0(0x16e)}),_0xa7bafd=this[_0x5054d0(0x178)]({..._0x19a700,'lockType':'read'}),_0x1c123d=this['generateLockValue']();try{const _0x3d95af=redisClient[_0x5054d0(0x150)]();for(let _0x447032=0x0;_0x447032<this[_0x5054d0(0x169)];_0x447032++){const _0x5765bb=await _0x3d95af['get'](_0x4411df);if(!_0x5765bb){await _0x3d95af[_0x5054d0(0x158)](_0xa7bafd),await _0x3d95af['expire'](_0xa7bafd,this['defaultTTL']);const _0x246e93=_0xa7bafd+':'+_0x1c123d;return await _0x3d95af[_0x5054d0(0x17d)](_0x246e93,this['defaultTTL'],_0x1c123d),logger[_0x5054d0(0x144)]({'event':_0x4fc2d6['WRfYZ'],'key':_0xa7bafd,'value':_0x1c123d},'READ\x20lock\x20acquired'),{'success':!![],'lockValue':_0x1c123d,'lockKey':_0x246e93};}logger[_0x5054d0(0x144)]({'event':_0x4fc2d6['rAsAK'],'writeKey':_0x4411df,'attempt':_0x447032},'Waiting\x20for\x20WRITE\x20lock\x20to\x20release'),await this[_0x5054d0(0x157)](_0x4fc2d6[_0x5054d0(0x187)](this['retryDelay'],Math[_0x5054d0(0x140)](0x2,_0x447032)));}return logger['warn']({'event':_0x4fc2d6[_0x5054d0(0x15c)],'key':_0xa7bafd},'READ\x20lock\x20acquire\x20timeout'),{'success':![],'lockValue':null,'lockKey':null};}catch(_0xf6bbd){return logger[_0x5054d0(0x14c)]({'event':_0x5054d0(0x18a),'error':_0xf6bbd['message']},_0x5054d0(0x159)),{'success':![],'lockValue':null,'lockKey':null};}}async['acquireWriteLock'](_0x4b903d){const _0x47de25=a0_0x52ebe4,_0x4c915f={'dyBll':function(_0x2cd61,_0x2336b6){return _0x2cd61===_0x2336b6;},'IcHzv':_0x47de25(0x15f),'cZriK':_0x47de25(0x163),'Amysx':'write_lock_rejected','pquPg':'WRITE\x20lock\x20rejected\x20-\x20record\x20busy','dcvJL':function(_0x2683bd,_0x57314f){return _0x2683bd(_0x57314f);},'zJaCQ':function(_0x1b8422,_0x5bf5f3){return _0x1b8422===_0x5bf5f3;},'oieJR':'write_lock_acquired','BFiQj':'retry','pLJvv':_0x47de25(0x170),'VBsmK':_0x47de25(0x18b),'PayIJ':function(_0x1a5847,_0x14c6f6){return _0x1a5847*_0x14c6f6;},'Nlxvy':_0x47de25(0x151),'eUfJs':_0x47de25(0x184),'Fxkjh':_0x47de25(0x168),'Rluse':'WRITE\x20lock\x20error'};if(!this[_0x47de25(0x188)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x523a3a=this['buildLockKey']({..._0x4b903d,'lockType':_0x47de25(0x16e)}),_0xd068d0=this[_0x47de25(0x178)]({..._0x4b903d,'lockType':_0x47de25(0x18c)}),_0xc6cc65=this[_0x47de25(0x15b)]();try{const _0x14ab24=redisClient['getClient']();if(_0x4c915f['dyBll'](this[_0x47de25(0x18f)],_0x4c915f['IcHzv'])){const _0x4f8a06=await _0x14ab24[_0x47de25(0x172)](_0x523a3a,_0xc6cc65,'EX',this[_0x47de25(0x189)],'NX');if(_0x4f8a06==='OK')return logger['debug']({'event':_0x47de25(0x17a),'key':_0x523a3a,'value':_0xc6cc65,'strategy':_0x4c915f[_0x47de25(0x185)]},_0x4c915f['cZriK']),{'success':!![],'lockValue':_0xc6cc65,'lockKey':_0x523a3a};return logger[_0x47de25(0x144)]({'event':_0x4c915f['Amysx'],'key':_0x523a3a},_0x4c915f[_0x47de25(0x173)]),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x669263=0x0;_0x669263<this['retryCount'];_0x669263++){const [_0x4580f8,_0x4efad8]=await Promise[_0x47de25(0x13e)]([_0x14ab24['get'](_0xd068d0),_0x14ab24['get'](_0x523a3a)]);if(!_0x4efad8&&(!_0x4580f8||_0x4c915f['dcvJL'](parseInt,_0x4580f8)===0x0)){const _0x19cd8d=await _0x14ab24[_0x47de25(0x172)](_0x523a3a,_0xc6cc65,'EX',this['defaultTTL'],'NX');if(_0x4c915f['zJaCQ'](_0x19cd8d,'OK'))return logger['debug']({'event':_0x4c915f['oieJR'],'key':_0x523a3a,'value':_0xc6cc65,'strategy':_0x4c915f['BFiQj']},_0x4c915f['pLJvv']),{'success':!![],'lockValue':_0xc6cc65,'lockKey':_0x523a3a};}logger['debug']({'event':_0x47de25(0x154),'writeKey':_0x523a3a,'readCount':_0x4580f8,'attempt':_0x669263},_0x4c915f[_0x47de25(0x167)]),await this[_0x47de25(0x157)](_0x4c915f['PayIJ'](this['retryDelay'],Math['pow'](0x2,_0x669263)));}return logger['warn']({'event':_0x4c915f[_0x47de25(0x16b)],'key':_0x523a3a},_0x4c915f[_0x47de25(0x142)]),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x1343fb){return logger['error']({'event':_0x4c915f['Fxkjh'],'error':_0x1343fb['message']},_0x4c915f[_0x47de25(0x145)]),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x52ebe4(0x176)](_0x4ec0fa,_0x219910){const _0x26b4cd=a0_0x52ebe4,_0x25ecaf={'ofPIZ':':read:','igKoR':function(_0x20b865,_0x17cd30){return _0x20b865>_0x17cd30;},'NKXHP':_0x26b4cd(0x17f),'OCtCj':'WRITE\x20lock\x20released','drOZz':'lock_release_not_owner','REtlq':'Cannot\x20release\x20lock\x20-\x20not\x20owner','RPKgt':'lock_release_error'};if(!this[_0x26b4cd(0x188)]||!_0x4ec0fa)return!![];try{const _0x90acfc=redisClient[_0x26b4cd(0x150)]();if(_0x4ec0fa['includes'](_0x25ecaf['ofPIZ'])){await _0x90acfc[_0x26b4cd(0x16f)](_0x4ec0fa);const _0x515659=_0x4ec0fa[_0x26b4cd(0x190)](0x0,_0x4ec0fa[_0x26b4cd(0x15e)](':')),_0x36e573=await _0x90acfc['get'](_0x515659);return _0x36e573&&_0x25ecaf['igKoR'](parseInt(_0x36e573),0x0)&&await _0x90acfc[_0x26b4cd(0x152)](_0x515659),logger[_0x26b4cd(0x144)]({'event':'read_lock_released','key':_0x4ec0fa},_0x25ecaf[_0x26b4cd(0x147)]),!![];}const _0x540c89='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22del\x22,\x20KEYS[1])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x53302f=await _0x90acfc['eval'](_0x540c89,0x1,_0x4ec0fa,_0x219910);if(_0x53302f===0x1)return logger['debug']({'event':'write_lock_released','key':_0x4ec0fa},_0x25ecaf['OCtCj']),!![];return logger['warn']({'event':_0x25ecaf['drOZz'],'key':_0x4ec0fa},_0x25ecaf['REtlq']),![];}catch(_0x2f232d){return logger['error']({'event':_0x25ecaf['RPKgt'],'key':_0x4ec0fa,'error':_0x2f232d['message']},'Lock\x20release\x20error'),![];}}async['extendLock'](_0x2fc60d,_0x122b9d,_0x2ba540=null){const _0x4b1f43=a0_0x52ebe4,_0x549cb7={'DqVeP':'Lock\x20TTL\x20extended','msfOo':_0x4b1f43(0x160)};if(!this[_0x4b1f43(0x188)]||!_0x2fc60d)return!![];try{const _0x2e8a9e=redisClient['getClient'](),_0xc4946a='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22expire\x22,\x20KEYS[1],\x20ARGV[2])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x145a60=await _0x2e8a9e[_0x4b1f43(0x165)](_0xc4946a,0x1,_0x2fc60d,_0x122b9d,_0x2ba540||this[_0x4b1f43(0x189)]);if(_0x145a60===0x1)return logger['debug']({'event':'lock_extended','key':_0x2fc60d,'ttl':_0x2ba540||this[_0x4b1f43(0x189)]},_0x549cb7['DqVeP']),!![];return![];}catch(_0x3fc569){return logger[_0x4b1f43(0x14c)]({'event':'lock_extend_error','key':_0x2fc60d,'error':_0x3fc569[_0x4b1f43(0x156)]},_0x549cb7['msfOo']),![];}}[a0_0x52ebe4(0x175)](){return this['enabled'];}['sleep'](_0x5c9c05){return new Promise(_0xf0a85=>setTimeout(_0xf0a85,_0x5c9c05));}async[a0_0x52ebe4(0x174)](_0x2961e7){const _0x3912ab=a0_0x52ebe4,_0x4954ea={'JDFep':function(_0x2d2dcc,_0x465bb6){return _0x2d2dcc||_0x465bb6;}};if(!this['enabled'])return{'enabled':![]};try{const _0x7e64df=redisClient['getClient'](),_0x217bc5=this['buildLockKey']({..._0x2961e7,'lockType':'write'}),_0x36e7ca=this[_0x3912ab(0x178)]({..._0x2961e7,'lockType':_0x3912ab(0x18c)}),[_0x4cd4cf,_0x544553]=await Promise['all']([_0x7e64df['get'](_0x217bc5),_0x7e64df[_0x3912ab(0x17c)](_0x36e7ca)]);return{'enabled':!![],'writeLock':_0x4954ea['JDFep'](_0x4cd4cf,null),'readCount':parseInt(_0x544553)||0x0,'writeKey':_0x217bc5,'readKey':_0x36e7ca};}catch(_0x48922b){return{'enabled':!![],'error':_0x48922b[_0x3912ab(0x156)]};}}}module[a0_0x52ebe4(0x18e)]=new LockManager();
|
|
1
|
+
function a0_0x1fae(){const _0x56ee86=['nLP4zMLOuW','Dhj1zq','x3DVCMTLCKLK','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','Bg9JA19LEhrLBMrLza','Bg9JA19LEhrLBMrFzxjYB3i','mtC1ndi0mLffELvgDW','Bg9JA19YzwXLyxnLx2vYCM9Y','veTuvxu','C3rYyxrLz3K','zgvMyxvSDfruta','nZG5mdmWshDTz2Lc','lcbZDhjHDgvNEtOG','tfb4uum','v1jjveuGBg9JAYbLCNjVCG','zxHWAxjL','zw52','s1vky2y','uKvbrcbSB2nRigvYCM9Y','x2vUC3vYzuLUAxrPywXPEMvK','CMv0CNLdB3vUDa','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','lI9YzwrPCY1JBgLLBNq','Cg93','z2v0','ChjLzML4','CMvHzf9SB2nRx3jLBgvHC2vK','mJDJCgnTtuS','zxzet0e','tg9JAYbuveWGzxH0zw5Kzwq','x2rLzMf1BhruveW','v1jjveuGBg9JAYbYzwXLyxnLza','CNDuvNm','zgvS','zxHWB3j0CW','D25VvMS','D3jPDgvFBg9JA19YzwXLyxnLza','z2v0tg9JA0LUzM8','zw5HyMXLza','D3jPDgvFBg9JA19YzwPLy3rLza','te9ds19esvnuuKLcvvrfrf9uveW','mu1Wz3nMDG','zufMq0G','x2LUAxrPywXPEMvK','mJa2mZu0nezTBufcua','mZi3nJbyzLnnv2y','ywnXDwLYzvDYAxrLtg9JAW','CMvHzf9SB2nRx2fJCxvPCMvK','D3jPDgvFBg9JA19Hy3f1AxjLza','Aw5JBhvKzxm','BgfZDeLUzgv4t2y','D2fYBG','ndaYotaXmfnOAxjqqq','mJKXnte2ounlwhbwyW','x3bYzwzPEa','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','C3vIC3rYAw5N','x3jLDhj5q291BNq','x3n0CMf0zwD5','CMvHzf9SB2nRx2vYCM9Y','DxvPza','CMv0CNLezwXHEq','uwvUB3q','CgLK','Bg9JA19JB25MAwDFAw5PDa','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','CMv0CNK','D29YA2vYswq','zxjYB3i','z2v0q2XPzw50','ywnXDwLYzvjLywrmB2nR','zxH0zw5Ktg9JAW','yNvPBgrmB2nRs2v5','DvbbAhi','x2vUywjSzwq','EfjTqwK','C3bSAxq','AxnfBMfIBgvK','D3jPDgu','oNjLywq6','zxzHBa','C2XLzxa','te9ds19esvnuuKLcvvrfrf9tvfjbvevhwq','mZiWotmZovfVsNjOBG','nfjyCxfNzq','CMvHza','zgvIDwC','CMvQzwn0','x3jLDhj5rgvSyxK','tg9JAYbLEhrLBMqGzxjYB3i'];a0_0x1fae=function(){return _0x56ee86;};return a0_0x1fae();}const a0_0x21291f=a0_0x1a47;(function(_0x148177,_0x190c31){const _0x5a58b0=a0_0x1a47,_0x12ddad=_0x148177();while(!![]){try{const _0x1a5582=parseInt(_0x5a58b0(0x156))/0x1*(-parseInt(_0x5a58b0(0x133))/0x2)+-parseInt(_0x5a58b0(0x162))/0x3*(-parseInt(_0x5a58b0(0x181))/0x4)+-parseInt(_0x5a58b0(0x161))/0x5+parseInt(_0x5a58b0(0x12d))/0x6*(parseInt(_0x5a58b0(0x180))/0x7)+-parseInt(_0x5a58b0(0x159))/0x8*(-parseInt(_0x5a58b0(0x148))/0x9)+-parseInt(_0x5a58b0(0x15a))/0xa+parseInt(_0x5a58b0(0x138))/0xb;if(_0x1a5582===_0x190c31)break;else _0x12ddad['push'](_0x12ddad['shift']());}catch(_0x54b859){_0x12ddad['push'](_0x12ddad['shift']());}}}(a0_0x1fae,0x8fef8));function a0_0x1a47(_0x5a14de,_0x5a4f46){_0x5a14de=_0x5a14de-0x12c;const _0x1fae66=a0_0x1fae();let _0x1a47f3=_0x1fae66[_0x5a14de];if(a0_0x1a47['VUcOXa']===undefined){var _0x41e3aa=function(_0x52cad3){const _0x1a1473='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1575db='',_0x43c10f='';for(let _0x40ab79=0x0,_0x5e9d4f,_0x3ce062,_0x527b3a=0x0;_0x3ce062=_0x52cad3['charAt'](_0x527b3a++);~_0x3ce062&&(_0x5e9d4f=_0x40ab79%0x4?_0x5e9d4f*0x40+_0x3ce062:_0x3ce062,_0x40ab79++%0x4)?_0x1575db+=String['fromCharCode'](0xff&_0x5e9d4f>>(-0x2*_0x40ab79&0x6)):0x0){_0x3ce062=_0x1a1473['indexOf'](_0x3ce062);}for(let _0x34d06a=0x0,_0x59b026=_0x1575db['length'];_0x34d06a<_0x59b026;_0x34d06a++){_0x43c10f+='%'+('00'+_0x1575db['charCodeAt'](_0x34d06a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c10f);};a0_0x1a47['YSojXr']=_0x41e3aa,a0_0x1a47['gVmkap']={},a0_0x1a47['VUcOXa']=!![];}const _0x4b3552=_0x1fae66[0x0],_0x4510eb=_0x5a14de+_0x4b3552,_0x2afb0f=a0_0x1a47['gVmkap'][_0x4510eb];return!_0x2afb0f?(_0x1a47f3=a0_0x1a47['YSojXr'](_0x1a47f3),a0_0x1a47['gVmkap'][_0x4510eb]=_0x1a47f3):_0x1a47f3=_0x2afb0f,_0x1a47f3;}const redisClient=require(a0_0x21291f(0x143)),{logger}=require('./logger'),{v4:uuidv4}=require(a0_0x21291f(0x169));class LockManager{constructor(){const _0x52160b=a0_0x21291f,_0x1a9cef={'rwTVs':'0|2|1|4|6|7|3|5'},_0x4a4aef=_0x1a9cef[_0x52160b(0x14d)][_0x52160b(0x179)]('|');let _0x400629=0x0;while(!![]){switch(_0x4a4aef[_0x400629++]){case'0':this[_0x52160b(0x163)]=null;continue;case'1':this[_0x52160b(0x14b)]=null;continue;case'2':this['_enabled']=null;continue;case'3':this['_workerId']=null;continue;case'4':this[_0x52160b(0x166)]=null;continue;case'5':this[_0x52160b(0x158)]=![];continue;case'6':this['_retryDelay']=null;continue;case'7':this[_0x52160b(0x167)]=null;continue;}break;}}['_initConfig'](){const _0x170f43=a0_0x21291f,_0x12c195={'hDoUS':'rf:lock:','DtOrk':_0x170f43(0x12e),'LSASG':function(_0x3824ee,_0x4cf402,_0x538ae4){return _0x3824ee(_0x4cf402,_0x538ae4);}};this[_0x170f43(0x163)]=_0x12c195['hDoUS'],this[_0x170f43(0x177)]=process[_0x170f43(0x13d)]['LOCK_DISTRIBUTED_ENABLED']===_0x12c195['DtOrk'],this[_0x170f43(0x14b)]=_0x12c195['LSASG'](parseInt,process['env'][_0x170f43(0x155)],0xa)||0xa,this[_0x170f43(0x166)]=parseInt(process[_0x170f43(0x13d)]['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3,this[_0x170f43(0x185)]=_0x12c195['LSASG'](parseInt,process[_0x170f43(0x13d)]['LOCK_DISTRIBUTED_RETRY_DELAY'],0xa)||0x64,this['_strategy']=process['env'][_0x170f43(0x17f)]||_0x170f43(0x16f),this[_0x170f43(0x12f)]='worker-'+process[_0x170f43(0x16c)],this['_initialized']=!![],logger['info']({'event':_0x170f43(0x16d),'enabled':this[_0x170f43(0x177)],'strategy':this['_strategy'],'ttl':this['_defaultTTL'],'retryCount':this[_0x170f43(0x166)],'retryDelay':this[_0x170f43(0x185)],'workerId':this['_workerId']},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this[_0x170f43(0x177)]+_0x170f43(0x139)+this[_0x170f43(0x167)]);}[a0_0x21291f(0x140)](){const _0x28e21e=a0_0x21291f;!this[_0x28e21e(0x158)]&&this['_initConfig']();}get['prefix'](){const _0x369b43=a0_0x21291f;return this['_ensureInitialized'](),this[_0x369b43(0x163)];}get['enabled'](){const _0xcc13f7=a0_0x21291f;return this[_0xcc13f7(0x140)](),this['_enabled'];}get['defaultTTL'](){const _0x23e080=a0_0x21291f;return this[_0x23e080(0x140)](),this['_defaultTTL'];}get['retryCount'](){const _0x5d1282=a0_0x21291f;return this['_ensureInitialized'](),this[_0x5d1282(0x166)];}get[a0_0x21291f(0x16a)](){const _0x111aa1=a0_0x21291f;return this[_0x111aa1(0x140)](),this[_0x111aa1(0x185)];}get[a0_0x21291f(0x136)](){return this['_ensureInitialized'](),this['_strategy'];}get['workerId'](){return this['_ensureInitialized'](),this['_workerId'];}['buildLockKey'](_0x4743aa){const _0x1dac01=a0_0x21291f,{module:_0x48b053,endpoint:_0x20f0e0,lockType:_0x2e8215,recordId:_0x4b8d10}=_0x4743aa;if(_0x4b8d10)return''+this['prefix']+_0x48b053+':'+_0x20f0e0+':'+_0x4b8d10+':'+_0x2e8215;return''+this[_0x1dac01(0x146)]+_0x48b053+':'+_0x20f0e0+':'+_0x2e8215;}['generateLockValue'](){const _0x43239b=a0_0x21291f,_0x2fb4ae={'IhUmq':function(_0x468b35){return _0x468b35();}};return this[_0x43239b(0x170)]+':'+_0x2fb4ae['IhUmq'](uuidv4)+':'+Date['now']();}async[a0_0x21291f(0x173)](_0x18becf){const _0x5a5e05=a0_0x21291f,_0x214328={'wnoVk':function(_0x40f488,_0x434f56){return _0x40f488<_0x434f56;},'CKxDR':_0x5a5e05(0x15c),'iTILA':'READ\x20lock\x20acquired','Qenot':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','dYSdz':'read_lock_timeout','fulAF':_0x5a5e05(0x13f)};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x27bb52=this['buildLockKey']({..._0x18becf,'lockType':'write'}),_0x53fd05=this['buildLockKey']({..._0x18becf,'lockType':_0x5a5e05(0x182)}),_0x2821ef=this['generateLockValue']();try{const _0x2d37f9=redisClient[_0x5a5e05(0x172)]();for(let _0x366ecb=0x0;_0x214328[_0x5a5e05(0x150)](_0x366ecb,this[_0x5a5e05(0x141)]);_0x366ecb++){const _0x1ebcc7=await _0x2d37f9['get'](_0x27bb52);if(!_0x1ebcc7){await _0x2d37f9['incr'](_0x53fd05),await _0x2d37f9[_0x5a5e05(0x13c)](_0x53fd05,this['defaultTTL']);const _0x5712cb=_0x53fd05+':'+_0x2821ef;return await _0x2d37f9['setex'](_0x5712cb,this[_0x5a5e05(0x137)],_0x2821ef),logger['debug']({'event':_0x214328['CKxDR'],'key':_0x53fd05,'value':_0x2821ef},_0x214328['iTILA']),{'success':!![],'lockValue':_0x2821ef,'lockKey':_0x5712cb};}logger['debug']({'event':'read_lock_waiting','writeKey':_0x27bb52,'attempt':_0x366ecb},_0x214328[_0x5a5e05(0x16b)]),await this['sleep'](this['retryDelay']*Math[_0x5a5e05(0x144)](0x2,_0x366ecb));}return logger['warn']({'event':_0x214328['dYSdz'],'key':_0x53fd05},_0x5a5e05(0x16e)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x3120ff){return logger['error']({'event':_0x5a5e05(0x168),'error':_0x3120ff['message']},_0x214328['fulAF']),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x21291f(0x15b)](_0x4e6a10){const _0x118f3c=a0_0x21291f,_0x3c3e9d={'nRrBn':'write_lock_acquired','KUJcf':_0x118f3c(0x142),'evDOA':_0x118f3c(0x154),'JYOpD':function(_0x3dbf26,_0x1e9fec){return _0x3dbf26===_0x1e9fec;},'LPxQC':_0x118f3c(0x164),'CwuvP':'write_lock_error','xRmAi':_0x118f3c(0x13b)};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0xe86f39=this['buildLockKey']({..._0x4e6a10,'lockType':_0x118f3c(0x17b)}),_0x336a15=this[_0x118f3c(0x175)]({..._0x4e6a10,'lockType':'read'}),_0x4320f8=this['generateLockValue']();try{const _0x4571a7=redisClient[_0x118f3c(0x172)]();if(this['strategy']===_0x118f3c(0x184)){const _0x55a268=await _0x4571a7['set'](_0xe86f39,_0x4320f8,'EX',this[_0x118f3c(0x137)],'NX');if(_0x55a268==='OK')return logger['debug']({'event':_0x3c3e9d['nRrBn'],'key':_0xe86f39,'value':_0x4320f8,'strategy':_0x118f3c(0x184)},_0x3c3e9d[_0x118f3c(0x13e)]),{'success':!![],'lockValue':_0x4320f8,'lockKey':_0xe86f39};return logger[_0x118f3c(0x183)]({'event':_0x3c3e9d[_0x118f3c(0x149)],'key':_0xe86f39},'WRITE\x20lock\x20rejected\x20-\x20record\x20busy'),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x53a89d=0x0;_0x53a89d<this[_0x118f3c(0x141)];_0x53a89d++){const [_0x91da0a,_0x2854fa]=await Promise['all']([_0x4571a7[_0x118f3c(0x145)](_0x336a15),_0x4571a7[_0x118f3c(0x145)](_0xe86f39)]);if(!_0x2854fa&&(!_0x91da0a||parseInt(_0x91da0a)===0x0)){const _0x6735c6=await _0x4571a7['set'](_0xe86f39,_0x4320f8,'EX',this[_0x118f3c(0x137)],'NX');if(_0x3c3e9d['JYOpD'](_0x6735c6,'OK'))return logger['debug']({'event':_0x118f3c(0x15d),'key':_0xe86f39,'value':_0x4320f8,'strategy':'retry'},_0x3c3e9d[_0x118f3c(0x13a)]),{'success':!![],'lockValue':_0x4320f8,'lockKey':_0xe86f39};}logger['debug']({'event':'write_lock_waiting','writeKey':_0xe86f39,'readCount':_0x91da0a,'attempt':_0x53a89d},'Waiting\x20for\x20locks\x20to\x20release'),await this[_0x118f3c(0x17e)](this[_0x118f3c(0x16a)]*Math['pow'](0x2,_0x53a89d));}return logger[_0x118f3c(0x160)]({'event':'write_lock_timeout','key':_0xe86f39},_0x118f3c(0x130)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0xc081d9){return logger['error']({'event':_0x3c3e9d['CwuvP'],'error':_0xc081d9['message']},_0x3c3e9d[_0x118f3c(0x178)]),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0x54182c,_0x5bdac5){const _0xe8863c=a0_0x21291f,_0x54d6b4={'mANPA':function(_0x58e957,_0x458701){return _0x58e957(_0x458701);},'WIijH':_0xe8863c(0x147),'uPAhr':function(_0x371b88,_0x1a9fbb){return _0x371b88===_0x1a9fbb;},'ZNuNx':_0xe8863c(0x14c),'pfldc':'lock_release_not_owner','CxwjZ':'Lock\x20release\x20error'};if(!this['enabled']||!_0x54182c)return!![];try{const _0x53a614=redisClient['getClient']();if(_0x54182c[_0xe8863c(0x15e)](_0xe8863c(0x17c))){await _0x53a614[_0xe8863c(0x14e)](_0x54182c);const _0x5f0ef3=_0x54182c[_0xe8863c(0x165)](0x0,_0x54182c[_0xe8863c(0x15f)](':')),_0x504042=await _0x53a614['get'](_0x5f0ef3);return _0x504042&&_0x54d6b4['mANPA'](parseInt,_0x504042)>0x0&&await _0x53a614['decr'](_0x5f0ef3),logger['debug']({'event':_0x54d6b4['WIijH'],'key':_0x54182c},'READ\x20lock\x20released'),!![];}const _0xefb15='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22del\x22,\x20KEYS[1])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x3d6657=await _0x53a614['eval'](_0xefb15,0x1,_0x54182c,_0x5bdac5);if(_0x54d6b4[_0xe8863c(0x176)](_0x3d6657,0x1))return logger['debug']({'event':_0xe8863c(0x151),'key':_0x54182c},_0x54d6b4['ZNuNx']),!![];return logger['warn']({'event':_0x54d6b4['pfldc'],'key':_0x54182c},'Cannot\x20release\x20lock\x20-\x20not\x20owner'),![];}catch(_0x310872){return logger[_0xe8863c(0x171)]({'event':_0xe8863c(0x134),'key':_0x54182c,'error':_0x310872['message']},_0x54d6b4['CxwjZ']),![];}}async[a0_0x21291f(0x174)](_0x2e5580,_0x2f11dc,_0x114ee4=null){const _0x5924ab=a0_0x21291f,_0x6fe960={'TKTUu':function(_0x2f884e,_0x9287d6){return _0x2f884e===_0x9287d6;},'YBkJT':_0x5924ab(0x14a),'uowFN':_0x5924ab(0x132),'BVlVX':_0x5924ab(0x12c)};if(!this[_0x5924ab(0x153)]||!_0x2e5580)return!![];try{const _0x36ddfa=redisClient['getClient'](),_0x30d8b4='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22expire\x22,\x20KEYS[1],\x20ARGV[2])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x46dea3=await _0x36ddfa[_0x5924ab(0x17d)](_0x30d8b4,0x1,_0x2e5580,_0x2f11dc,_0x114ee4||this[_0x5924ab(0x137)]);if(_0x6fe960[_0x5924ab(0x135)](_0x46dea3,0x1))return logger[_0x5924ab(0x183)]({'event':_0x5924ab(0x131),'key':_0x2e5580,'ttl':_0x114ee4||this[_0x5924ab(0x137)]},_0x6fe960['YBkJT']),!![];return![];}catch(_0x43d516){return logger['error']({'event':_0x6fe960['uowFN'],'key':_0x2e5580,'error':_0x43d516['message']},_0x6fe960['BVlVX']),![];}}[a0_0x21291f(0x17a)](){const _0xbce554=a0_0x21291f;return this[_0xbce554(0x153)];}[a0_0x21291f(0x17e)](_0x4ec993){return new Promise(_0x256e3f=>setTimeout(_0x256e3f,_0x4ec993));}async[a0_0x21291f(0x152)](_0x571b05){const _0x1f2abf=a0_0x21291f,_0x5d2fc6={'eAfCH':function(_0x29fc2c,_0x3235a2){return _0x29fc2c(_0x3235a2);}};if(!this[_0x1f2abf(0x153)])return{'enabled':![]};try{const _0x411e03=redisClient['getClient'](),_0x44c658=this[_0x1f2abf(0x175)]({..._0x571b05,'lockType':_0x1f2abf(0x17b)}),_0x404004=this[_0x1f2abf(0x175)]({..._0x571b05,'lockType':_0x1f2abf(0x182)}),[_0xa0f49,_0x3e8d7b]=await Promise['all']([_0x411e03['get'](_0x44c658),_0x411e03['get'](_0x404004)]);return{'enabled':!![],'writeLock':_0xa0f49||null,'readCount':_0x5d2fc6[_0x1f2abf(0x157)](parseInt,_0x3e8d7b)||0x0,'writeKey':_0x44c658,'readKey':_0x404004};}catch(_0x5abc3e){return{'enabled':!![],'error':_0x5abc3e['message']};}}}module[a0_0x21291f(0x14f)]=new LockManager();
|
package/src/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x26c466=a0_0x23fa;(function(_0xcb88ad,_0x387ebc){const _0x1d1c6c=a0_0x23fa,_0x16f5bc=_0xcb88ad();while(!![]){try{const _0xbe3e95=-parseInt(_0x1d1c6c(0x1d2))/0x1*(parseInt(_0x1d1c6c(0x22d))/0x2)+-parseInt(_0x1d1c6c(0x23f))/0x3*(parseInt(_0x1d1c6c(0x21d))/0x4)+parseInt(_0x1d1c6c(0x27e))/0x5*(-parseInt(_0x1d1c6c(0x235))/0x6)+-parseInt(_0x1d1c6c(0x1f0))/0x7*(-parseInt(_0x1d1c6c(0x263))/0x8)+-parseInt(_0x1d1c6c(0x22a))/0x9*(parseInt(_0x1d1c6c(0x23a))/0xa)+-parseInt(_0x1d1c6c(0x1e4))/0xb*(-parseInt(_0x1d1c6c(0x268))/0xc)+parseInt(_0x1d1c6c(0x25b))/0xd*(parseInt(_0x1d1c6c(0x249))/0xe);if(_0xbe3e95===_0x387ebc)break;else _0x16f5bc['push'](_0x16f5bc['shift']());}catch(_0x2f9c75){_0x16f5bc['push'](_0x16f5bc['shift']());}}}(a0_0x45c9,0x352bc));const pino=require(a0_0x26c466(0x277)),fs=require('fs'),path=require(a0_0x26c466(0x21e));let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x26c466(0x215),'ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':a0_0x26c466(0x252),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env'][a0_0x26c466(0x1ca)]!==a0_0x26c466(0x22f),logLevel=process['env'][a0_0x26c466(0x1f9)]||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x26c466(0x238)]['APP_VERSION']||'1.0.5','env':process[a0_0x26c466(0x238)][a0_0x26c466(0x1ca)]||'development'},'timestamp':pino[a0_0x26c466(0x236)]['isoTime'],'redact':{'paths':['req.headers.authorization','req.headers[\x22x-api-key\x22]',a0_0x26c466(0x1e3),a0_0x26c466(0x267),'apiKey','DB_PASSWORD',a0_0x26c466(0x1d3)],'censor':a0_0x26c466(0x257)},'serializers':{'req':_0x59c99c=>({'id':_0x59c99c['id'],'method':_0x59c99c[a0_0x26c466(0x217)],'url':_0x59c99c[a0_0x26c466(0x1f6)],'path':_0x59c99c['path'],'remoteAddress':_0x59c99c['ip']||_0x59c99c['connection']?.['remoteAddress']}),'res':_0x5615d9=>({'statusCode':_0x5615d9[a0_0x26c466(0x1db)],'headers':_0x5615d9['getHeaders']?.()}),'err':pino['stdSerializers']['err']}});function initFileLogging(){const _0x1eea99=a0_0x26c466,_0x386df6={'vgkcv':'true','iPGCN':'debug','gPxyu':'false','WdhaD':_0x1eea99(0x213),'GbFPl':_0x1eea99(0x1e1),'pklWd':'error.log','nVjQM':function(_0x20cbb6,_0x45194b,_0x2be05d){return _0x20cbb6(_0x45194b,_0x2be05d);},'WYCzJ':_0x1eea99(0x26c)};if(fileLoggingInitialized)return;logToFile=process['env'][_0x1eea99(0x207)]===_0x386df6[_0x1eea99(0x1d6)];const _0x3bde1f=process[_0x1eea99(0x238)]['RESTFORGE_PROJECT_NAME']||'default';logDir=process['env'][_0x1eea99(0x1f4)]||'./logs/'+_0x3bde1f,serviceName=process[_0x1eea99(0x238)]['SERVICE_NAME']||_0x1eea99(0x27f),sqlLogEnabled=process[_0x1eea99(0x238)][_0x1eea99(0x20a)]==='true',sqlLogLevel=process['env']['SQL_LOG_LEVEL']||_0x386df6[_0x1eea99(0x1ce)],sqlLogParams=process[_0x1eea99(0x238)]['SQL_LOG_PARAMS']!==_0x386df6['gPxyu'],sqlLogSlowThreshold=parseInt(process[_0x1eea99(0x238)]['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x1d7519=path['resolve'](process[_0x1eea99(0x21c)](),logDir);try{!fs['existsSync'](_0x1d7519)&&fs[_0x1eea99(0x241)](_0x1d7519,{'recursive':!![]});}catch(_0x4880b0){console['error'](_0x1eea99(0x24e)+_0x1d7519+':',_0x4880b0['message']),fileLoggingInitialized=!![];return;}const _0x21d4b6=path[_0x1eea99(0x20d)](_0x1d7519,_0x386df6[_0x1eea99(0x1cd)]),_0x1d989a=path['join'](_0x1d7519,_0x1eea99(0x262));try{appLogStream=fs[_0x1eea99(0x256)](_0x21d4b6,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x1d989a,{'flags':'a'}),fileLoggingInitialized=!![];const _0x40584b={'event':_0x386df6['GbFPl'],'logDir':_0x1d7519,'files':[_0x386df6['WdhaD'],_0x386df6[_0x1eea99(0x209)]]},_0x32fec9=_0x1eea99(0x24a)+_0x1d7519;logger[_0x1eea99(0x26c)](_0x40584b,_0x32fec9),_0x386df6['nVjQM'](writeToFileLog,{..._0x40584b,'level':_0x1eea99(0x26c),'msg':_0x32fec9,'time':new Date()['toISOString']()},_0x386df6['WYCzJ']);}catch(_0x2464b0){console['error'](_0x1eea99(0x211),_0x2464b0[_0x1eea99(0x1d8)]),fileLoggingInitialized=!![];}}function a0_0x45c9(){const _0x553871=['DuPdEwq','AM9PBG','icdIHPiG','Ahj0Aw1L','zw52AxjVBM1LBNq','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','tM9Kzs5QCW','yxbWlMXVzW','Dw5JyxvNAhrfEgnLChrPB24','u1LtoKHioK1noNnZ','rgvMyxvSDa','Bwv0Ag9K','BgvUz3rO','Ahr0Cf9LCNjVCG','vfjbtLnbq1rjt05FqKvhsu4','EMvXyMG','y3DK','nZe1mdbYze9YufO','Cgf0Aa','iokvKqRILzeGifbVCNqGicaGicaGidOG','DxnLCG','zxjYB3i','CgfZC3DK','C3fSx3f1zxj5','uMvnzvu','AgvHBhrOq2HLy2S','w1jfrefdveveoNrVA2vUxq','DgL0Dg4','vfjbtLnbq1rjt05FuK9mtejbq0S','iokvKqRILzeGienVBMzPzYaGicaGidOG','mtCWmdq2ow1wsg1vCG','thLACxq','zgjFDhjHBNnHy3rPB24','nhr5rfnoBG','C2vYDMvYx3n0yxj0Aw5N','ChjVzhvJDgLVBG','Bwf0y2G','DhjPBq','tK9uiefdveLwrq','qNjPwuq','B2fsree','mte2mdi3nhzQDwnyCG','C3rKvgLTzuz1BMn0Aw9UCW','y3jLzgL0y2fYza','zw52','iokvKqRILzeGifbYB2PLy3qGicaGidOG','mJbvC2PUwMy','D3jPDgu','AgvHzgvYCW','Ag9ZDa','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','ntDxww1TzKm','sfruuca','BwTKAxjtEw5J','y3jLzgL0x2nHCMq','su5trvju','C0HsvLi','y29Kzq','Ec1Yzxf1zxn0lwLK','Bg9N','AMrTCwi','ndCYmdq1me9Yz2X0DG','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','CgfKrw5K','AgnkvwW','ChjVy2vZC193yxjUAw5N','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','tvzsC0u','C2vJCMv0','D2fYBG','E21Zz30','zxHWB3j0CW','zgf0ywjHC2vFy29UzMLN','z2v0','y3jLyxrLv3jPDgvtDhjLyw0','w1jfrefdvevexq','zMf0ywW','v1Hmy0S','y2HPBgq','mJzYDMfeuwS','r2DOwK4','D2fYBMLUzW','Cg9YDa','Aw5JBhvKzxm','yxbPA2v5','Exjisgm','zxjYB3iUBg9N','odCWmteYzwnLrwnn','w09lxsbqCM9Qzwn0igXVywrLzdOG','Dxb0Aw1L','renXqM4','Dg9Rzw4','odrxtfnyt3O','ChjPDMf0zv9RzxK','y3jLzgvUDgLHBa','uKvtvezpuKDfifjvtLrjtuuGu0vsvKvs','Aw5MBW','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','CMvWBgfJzq','AgfnqLO','uunyq1O','quXurvi','CMvWzwf0','rgf0ywjHC2u6ia','ANDAy3K','CuXzze8','revmrvrf','CgLUBW','EgPNtMO','DurnEue','BxmP','qKvhsu4','BgzfBgq','rKfuquW6ia','nurlA0LYsW','CMvZDgzVCMDL','C3vIC3rYAw5N','sw50zxjUywWGC2vYDMvYigvYCM9Y','yM9KEq','y3jLzgvUDgLHBhm','q1jfqvrf','tK9erv9ftLy','vKXuAMi','zw5KCg9PBNrFCMvNAxn0zxjLza','v2rOyuq','Avbhq04','AxntBg93','uM5tA0G','CxvLCNK','mtG4mtDLwxDYtvq','sLDux1nfq1jfva','B2jQzwn0','zu13uve','DMDRy3y','yxv0Ag9YAxPHDgLVBG','BwvZC2fNzq','DeXxqvu','Dg9ju09tDhjPBMC','C3rHDhvZq29Kzq','vfjbtLnbq1rjt05Fq09ntuLu','C3rHCNrZv2L0Aa','A2Dhr04','AxbrwKS','C3rHDhvZ','zMLSzv9SB2DNAw5Nx2vUywjSzwq','uKvQDM4','CgfZC3DVCMq','nJaYmtyYywjzvurq','yxbPs2v5','w1jfrefdveveoMHHC2HD','ELHSuu4','ChjPDMf0zwTLEq','u0vmrunu','y2Dnsuq','iokvKqRILzeGiefqssblzxKGicaGidOG','yKDAA00','DfvwthC','zKjAvhK','ChDK','n0z4zhLvCq','C3rHy2S','vKfsruq','C3rYAw5NAwz5','te9hx0rjuG','u1rbuLqGvfjbtLnbq1rjt04','DxjS','zgvIDwC','DgvZDa','te9hx0XfvKvm','BwvTB3j5vxnHz2u','CgLU','C29Tzq','zufwDeK','uNbyBMi','BwfW','ic0G','ANnVBG','Bffctuy','rxjYB3i','BMfTzq','twPKs1O','y29UBMvJDgLVBG','te9hx1rpx0zjteu','zgf0ywjHC2u','CgTSv2q','u1fmx0Xpr19ftKfcteve','ChjVAMvJDa'];a0_0x45c9=function(){return _0x553871;};return a0_0x45c9();}function a0_0x23fa(_0x1f67ce,_0x4e8ff7){_0x1f67ce=_0x1f67ce-0x1c6;const _0x45c90a=a0_0x45c9();let _0x23fa44=_0x45c90a[_0x1f67ce];if(a0_0x23fa['wVecUi']===undefined){var _0x3e42d2=function(_0x3227d0){const _0x568c8e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x350037='',_0x1fe605='';for(let _0x1932ba=0x0,_0xbc8e7d,_0x10615b,_0x16f839=0x0;_0x10615b=_0x3227d0['charAt'](_0x16f839++);~_0x10615b&&(_0xbc8e7d=_0x1932ba%0x4?_0xbc8e7d*0x40+_0x10615b:_0x10615b,_0x1932ba++%0x4)?_0x350037+=String['fromCharCode'](0xff&_0xbc8e7d>>(-0x2*_0x1932ba&0x6)):0x0){_0x10615b=_0x568c8e['indexOf'](_0x10615b);}for(let _0x63ba20=0x0,_0x179ad6=_0x350037['length'];_0x63ba20<_0x179ad6;_0x63ba20++){_0x1fe605+='%'+('00'+_0x350037['charCodeAt'](_0x63ba20)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1fe605);};a0_0x23fa['VsbZTI']=_0x3e42d2,a0_0x23fa['JDzyje']={},a0_0x23fa['wVecUi']=!![];}const _0x1167d4=_0x45c90a[0x0],_0x518418=_0x1f67ce+_0x1167d4,_0x5b191b=a0_0x23fa['JDzyje'][_0x518418];return!_0x5b191b?(_0x23fa44=a0_0x23fa['VsbZTI'](_0x23fa44),a0_0x23fa['JDzyje'][_0x518418]=_0x23fa44):_0x23fa44=_0x5b191b,_0x23fa44;}function writeToFileLog(_0xf57dff,_0x105e0a){const _0x22f707=a0_0x26c466,_0x2bf0cc={'lQBMF':function(_0x38fd9c,_0x480065){return _0x38fd9c||_0x480065;},'GXPzl':function(_0x387bac,_0x459e77){return _0x387bac===_0x459e77;},'lfEld':'error','wIfNC':function(_0x320a0a,_0x31042f){return _0x320a0a===_0x31042f;}};if(_0x2bf0cc[_0x22f707(0x202)](!logToFile,!appLogStream))return;const _0x21f147={'service':serviceName,..._0xf57dff},_0xdc8cc6=JSON[_0x22f707(0x1f3)](_0x21f147)+'\x0a';appLogStream['write'](_0xdc8cc6),(_0x2bf0cc['GXPzl'](_0x105e0a,_0x2bf0cc[_0x22f707(0x27c)])||_0x2bf0cc['wIfNC'](_0x105e0a,'fatal'))&&(errorLogStream&&errorLogStream[_0x22f707(0x23b)](_0xdc8cc6));}const createRequestLogger=(_0x48f446={})=>{const _0xd4fab7=a0_0x26c466;return logger[_0xd4fab7(0x25a)](_0x48f446);},logServerStart=_0x1ad23c=>{const _0x5e2ff4=a0_0x26c466,_0x37cea1={'uJCyd':_0x5e2ff4(0x26b),'hWgaA':function(_0x19754c,_0xa85b6){return _0x19754c/_0xa85b6;},'VARED':function(_0x23b93e,_0x519897){return _0x23b93e-_0x519897;},'jcUpd':'N/A','klMrQ':_0x5e2ff4(0x216),'olncC':_0x5e2ff4(0x22e)},_0x1f2f31=_0x37cea1[_0x5e2ff4(0x20c)],_0x5daaf0=Math['max'](0x0,0x37-_0x1f2f31['length']),_0x26c079=Math['floor'](_0x37cea1['hWgaA'](_0x5daaf0,0x2)),_0x107018=_0x37cea1[_0x5e2ff4(0x1f2)](_0x5daaf0,_0x26c079),_0x11538f='║'+'\x20'[_0x5e2ff4(0x272)](_0x26c079)+_0x1f2f31+'\x20'[_0x5e2ff4(0x272)](_0x107018)+'║',_0xb7df4d='\x0a╔═══════════════════════════════════════════════════════╗\x0a'+_0x11538f+'\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x1ad23c[_0x5e2ff4(0x210)]||_0x5e2ff4(0x212))['padEnd'](0x26)+_0x5e2ff4(0x239)+(_0x1ad23c[_0x5e2ff4(0x20b)]||_0x37cea1['jcUpd'])[_0x5e2ff4(0x24b)](0x26)+_0x5e2ff4(0x21f)+String(_0x1ad23c[_0x5e2ff4(0x25e)]||0xbb8)[_0x5e2ff4(0x24b)](0x26)+_0x5e2ff4(0x229)+(_0x1ad23c['configFile']||_0x37cea1['klMrQ'])[_0x5e2ff4(0x24b)](0x26)+_0x5e2ff4(0x1eb)+(_0x1ad23c[_0x5e2ff4(0x1e5)]?'ACTIVE':_0x5e2ff4(0x232))[_0x5e2ff4(0x24b)](0x26)+_0x5e2ff4(0x26d);console[_0x5e2ff4(0x247)](_0xb7df4d);const _0x565f20={'event':_0x37cea1['olncC'],'project':_0x1ad23c[_0x5e2ff4(0x20b)],'port':_0x1ad23c['port'],'config':_0x1ad23c['configFile'],'apiKeyEnabled':!!_0x1ad23c[_0x5e2ff4(0x1e5)]};logger[_0x5e2ff4(0x26c)](_0x565f20),writeToFileLog({..._0x565f20,'level':'info','msg':'Server\x20starting:\x20'+_0x1ad23c['project']+'\x20on\x20port\x20'+_0x1ad23c['port'],'time':new Date()['toISOString']()},_0x5e2ff4(0x26c));},logServerReady=_0x653488=>{const _0x489f47=a0_0x26c466,_0x486230={'haMBZ':'server_ready','GghZN':'info'},_0x305783={'event':_0x486230[_0x489f47(0x26f)],'port':_0x653488['port'],'module':_0x653488['module'],'healthCheck':_0x653488[_0x489f47(0x225)],'serviceInfo':_0x653488['serviceInfo'],'baseUrl':_0x653488['baseUrl']},_0x4237d9=_0x489f47(0x23e)+_0x653488['port'];logger[_0x489f47(0x26c)](_0x305783,_0x4237d9),writeToFileLog({..._0x305783,'level':_0x486230[_0x489f47(0x25c)],'msg':_0x4237d9,'time':new Date()[_0x489f47(0x1da)]()},_0x486230['GghZN']),_0x653488[_0x489f47(0x225)]&&logger[_0x489f47(0x26c)]('\x20\x20Health:\x20'+_0x653488[_0x489f47(0x225)]),_0x653488['serviceInfo']&&logger[_0x489f47(0x26c)]('\x20\x20Info:\x20\x20\x20'+_0x653488['serviceInfo']),_0x653488['baseUrl']&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x653488['baseUrl']);},logProjectLoaded=(_0x57753f,_0xc60a6d)=>{const _0x148c09=a0_0x26c466,_0x5f0976={'Gqnsn':'project_loaded','tittn':_0x148c09(0x26c)},_0x3df54b={'event':_0x5f0976['Gqnsn'],'project':_0x57753f,'path':_0xc60a6d},_0x4d0305=_0x148c09(0x264)+_0x57753f;logger[_0x148c09(0x26c)](_0x3df54b,_0x4d0305),writeToFileLog({..._0x3df54b,'level':'info','msg':_0x4d0305,'time':new Date()[_0x148c09(0x1da)]()},_0x5f0976[_0x148c09(0x227)]);},logEndpointRegistered=(_0xb386e0,_0x2c8c2e)=>{const _0x384221=a0_0x26c466,_0x137971={'qLYdO':_0x384221(0x1cc),'wQHSC':'debug'},_0x199fa1={'event':_0x137971[_0x384221(0x275)],'endpoint':_0xb386e0,'route':_0x2c8c2e},_0x13687c=_0x384221(0x20e)+_0xb386e0+':\x20'+_0x2c8c2e;logger[_0x384221(0x1f7)](_0x199fa1,_0x13687c),writeToFileLog({..._0x199fa1,'level':_0x137971['wQHSC'],'msg':_0x13687c,'time':new Date()['toISOString']()},'debug');},logDatabaseConfig=_0x52c5a1=>{const _0x15e5e4=a0_0x26c466,_0x46c9a={'DTzqI':_0x15e5e4(0x254),'kgGGN':'debug'},_0x3b1eb2={'event':_0x46c9a['DTzqI'],'host':_0x52c5a1[_0x15e5e4(0x23d)],'port':_0x52c5a1['port'],'database':_0x52c5a1['database'],'type':_0x52c5a1['type'],'user':_0x52c5a1[_0x15e5e4(0x220)]},_0xf2abdf=_0x15e5e4(0x273)+_0x52c5a1['type']+'://'+_0x52c5a1[_0x15e5e4(0x23d)]+':'+_0x52c5a1[_0x15e5e4(0x25e)]+'/'+_0x52c5a1[_0x15e5e4(0x208)];logger[_0x15e5e4(0x1f7)](_0x3b1eb2,_0xf2abdf),writeToFileLog({..._0x3b1eb2,'level':'debug','msg':_0xf2abdf,'time':new Date()[_0x15e5e4(0x1da)]()},_0x46c9a[_0x15e5e4(0x1de)]);},logRequest=(_0xac83ff,_0x5b598a,_0x403f96)=>{const _0x18895e=a0_0x26c466,_0x4d4c77={'kEXyH':'http_request','GFTzd':function(_0x389052,_0xefc5b7){return _0x389052>=_0xefc5b7;},'eMwQQ':'error','oniBr':function(_0x857522,_0x10e6b9,_0x30fe5c){return _0x857522(_0x10e6b9,_0x30fe5c);}},_0x5ba05a={'event':_0x4d4c77['kEXyH'],'method':_0xac83ff['method'],'path':_0xac83ff['path'],'statusCode':_0x5b598a[_0x18895e(0x1db)],'durationMs':_0x403f96,'ip':_0xac83ff['ip']},_0x556be4=_0xac83ff[_0x18895e(0x217)]+'\x20'+_0xac83ff[_0x18895e(0x21e)]+_0x18895e(0x200)+_0x5b598a[_0x18895e(0x1db)]+'\x20('+_0x403f96+'ms)';let _0x2c2680=_0x18895e(0x26c);if(_0x4d4c77['GFTzd'](_0x5b598a[_0x18895e(0x1db)],0x1f4))_0x2c2680=_0x4d4c77[_0x18895e(0x1d5)],logger[_0x18895e(0x221)](_0x5ba05a,_0x556be4);else _0x5b598a['statusCode']>=0x190?(_0x2c2680='warn',logger['warn'](_0x5ba05a,_0x556be4)):logger['info'](_0x5ba05a,_0x556be4);_0x4d4c77['oniBr'](writeToFileLog,{..._0x5ba05a,'level':_0x2c2680,'msg':_0x556be4,'time':new Date()['toISOString']()},_0x2c2680);},SENSITIVE_PARAM_PATTERNS=[a0_0x26c466(0x1e3),a0_0x26c466(0x222),a0_0x26c466(0x1ef),a0_0x26c466(0x267),'access_token','refresh_token',a0_0x26c466(0x250),'api_secret','apikey','api_key',a0_0x26c466(0x26a),a0_0x26c466(0x1c8),a0_0x26c466(0x1fb),'otp',a0_0x26c466(0x269),'privatekey'],redactSensitiveParams=(_0x5a0ed9,_0x2ef030)=>{const _0xe264a1=a0_0x26c466,_0x508988={'Whkga':'string','ReMeU':function(_0x5c638c,_0x1a51a4){return _0x5c638c>_0x1a51a4;}};if(!_0x5a0ed9||_0x5a0ed9['length']===0x0)return _0x5a0ed9;const _0x4fa07c=_0x2ef030['toLowerCase'](),_0x389e9d=_0x4fa07c[_0xe264a1(0x230)](/\(([^)]+)\)\s*values/i);let _0x34288a=[];_0x389e9d&&(_0x34288a=_0x389e9d[0x1]['split'](',')[_0xe264a1(0x1ff)](_0x2c9594=>_0x2c9594['trim']()['toLowerCase']()));const _0x41936f=_0x4fa07c['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x41936f){const _0x243ba9=_0x41936f[0x1],_0xa5b0cc=_0x243ba9['match'](/(\w+)\s*=/g);_0xa5b0cc&&(_0x34288a=_0xa5b0cc[_0xe264a1(0x1ff)](_0x273ca0=>_0x273ca0[_0xe264a1(0x26e)](/\s*=/,'')[_0xe264a1(0x231)]()['toLowerCase']()));}return _0x5a0ed9[_0xe264a1(0x1ff)]((_0x1cb03c,_0x427954)=>{const _0x2ea27c=_0xe264a1;if(_0x34288a[_0x427954]){const _0xdfff22=_0x34288a[_0x427954],_0xfa2213=SENSITIVE_PARAM_PATTERNS[_0x2ea27c(0x1fc)](_0x26053b=>_0xdfff22[_0x2ea27c(0x25f)](_0x26053b));if(_0xfa2213)return _0x2ea27c(0x257);}if(typeof _0x1cb03c===_0x508988['Whkga']&&_0x508988[_0x2ea27c(0x224)](_0x1cb03c['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x2ea27c(0x1f8)](_0x1cb03c)&&_0x1cb03c[_0x2ea27c(0x25f)]('.'))return _0x2ea27c(0x226);if(/^[a-fA-F0-9]{32,}$/['test'](_0x1cb03c))return _0x2ea27c(0x1e6);}return _0x1cb03c;});},parseQueryMetadata=_0x249b57=>{const _0x1921de=a0_0x26c466,_0x1418a8={'LyZqt':'UNKNOWN','mtaqV':_0x1921de(0x1e9),'jdmqb':'UPDATE','fBZTy':_0x1921de(0x276),'hcJUl':_0x1921de(0x27b),'Mqzrw':_0x1921de(0x21a),'xjgNj':_0x1921de(0x1dc),'eAVtI':'ROLLBACK','GFbET':_0x1921de(0x1c9),'ULFjk':'DDL_CREATE','REjvn':_0x1921de(0x271),'TLXOE':'DDL_ALTER','xMQRw':'DROP'},_0x3f5ac8=_0x249b57[_0x1921de(0x231)](),_0x46f29d=_0x3f5ac8['toUpperCase']();let _0x5dfc72=_0x1418a8[_0x1921de(0x22b)],_0x2c8c8f=null;if(_0x46f29d['startsWith'](_0x1418a8['mtaqV'])){_0x5dfc72=_0x1418a8['mtaqV'];const _0x1b66d1=_0x3f5ac8['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2c8c8f=_0x1b66d1?_0x1b66d1[0x1]:null;}else{if(_0x46f29d['startsWith'](_0x1921de(0x243))){_0x5dfc72=_0x1921de(0x243);const _0xbb3a92=_0x3f5ac8['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2c8c8f=_0xbb3a92?_0xbb3a92[0x1]:null;}else{if(_0x46f29d['startsWith'](_0x1418a8[_0x1921de(0x248)])){_0x5dfc72=_0x1418a8[_0x1921de(0x248)];const _0x44ee73=_0x3f5ac8['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2c8c8f=_0x44ee73?_0x44ee73[0x1]:null;}else{if(_0x46f29d[_0x1921de(0x1dd)](_0x1418a8[_0x1921de(0x1ee)])){_0x5dfc72=_0x1418a8[_0x1921de(0x1ee)];const _0x2a187a=_0x3f5ac8['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2c8c8f=_0x2a187a?_0x2a187a[0x1]:null;}else{if(_0x46f29d['startsWith'](_0x1418a8[_0x1921de(0x24c)])||_0x46f29d['startsWith'](_0x1921de(0x1f5)))_0x5dfc72=_0x1418a8['Mqzrw'];else{if(_0x46f29d['startsWith']('COMMIT'))_0x5dfc72=_0x1418a8[_0x1921de(0x278)];else{if(_0x46f29d[_0x1921de(0x1dd)](_0x1418a8[_0x1921de(0x1fd)]))_0x5dfc72=_0x1921de(0x228);else{if(_0x46f29d['startsWith'](_0x1418a8['GFbET']))_0x5dfc72=_0x1418a8['ULFjk'];else{if(_0x46f29d['startsWith'](_0x1418a8[_0x1921de(0x1e2)]))_0x5dfc72=_0x1418a8['TLXOE'];else _0x46f29d[_0x1921de(0x1dd)](_0x1418a8['xMQRw'])&&(_0x5dfc72='DDL_DROP');}}}}}}}}return{'type':_0x5dfc72,'table':_0x2c8c8f};},startQueryTimer=()=>{const _0x47e967={'otsgb':function(_0x3fefe5,_0x30e9e8){return _0x3fefe5(_0x30e9e8);},'WXLcK':function(_0x3ec580,_0x4896c3){return _0x3ec580*_0x4896c3;}},_0x52032e=process['hrtime']();return()=>{const _0x21a1d2=a0_0x23fa,[_0x11b8b1,_0x4c6d4a]=process[_0x21a1d2(0x20f)](_0x52032e);return _0x47e967['otsgb'](parseFloat,(_0x47e967[_0x21a1d2(0x259)](_0x11b8b1,0x3e8)+_0x4c6d4a/0xf4240)['toFixed'](0x2));};},logQuery=(_0x1f815f,_0x359c2f=[],_0x3bdfe0={})=>{const _0x1ea7a8=a0_0x26c466,_0x2673ce={'jwZcy':function(_0x2061e4,_0x1a8572){return _0x2061e4>_0x1a8572;},'RnSkH':function(_0x329591,_0x9d3a4a,_0x4fe378){return _0x329591(_0x9d3a4a,_0x4fe378);},'zeqbh':function(_0x1fb33e,_0x3c3460){return _0x1fb33e!==_0x3c3460;},'zXlQN':function(_0x448fe4,_0x3489df){return _0x448fe4>_0x3489df;},'ByPDS':function(_0x49587a,_0x3dbedb){return _0x49587a||_0x3dbedb;},'oaRDA':_0x1ea7a8(0x1f7),'Xdkqc':'\x20[SLOW]','yrHHc':'warn','XZnxd':function(_0x4b0474,_0x439316){return _0x4b0474===_0x439316;},'VwraB':'info'};if(!sqlLogEnabled){logger[_0x1ea7a8(0x1f7)]({'event':'db_query','query':_0x1f815f[_0x1ea7a8(0x280)](0x0,0xc8),'paramCount':_0x359c2f[_0x1ea7a8(0x218)]},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x3bdfe0,{type:_0x30b064,table:_0x386537}=parseQueryMetadata(_0x1f815f),_0xd9491d={'event':_0x1ea7a8(0x223),'queryType':_0x30b064,'table':_0x386537,'query':_0x1f815f,'paramCount':_0x359c2f['length'],'dbType':dbType};sqlLogParams&&_0x2673ce[_0x1ea7a8(0x274)](_0x359c2f[_0x1ea7a8(0x218)],0x0)&&(_0xd9491d['params']=_0x2673ce[_0x1ea7a8(0x1d0)](redactSensitiveParams,_0x359c2f,_0x1f815f));_0x2673ce[_0x1ea7a8(0x21b)](duration,null)&&(_0xd9491d['durationMs']=duration,_0xd9491d[_0x1ea7a8(0x1cf)]=_0x2673ce[_0x1ea7a8(0x1e7)](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0xd9491d['rowsAffected']=rowsAffected);const _0x40232b=_0x2673ce['ByPDS'](_0x386537,'unknown');let _0x456a06='['+_0x30b064+']\x20'+_0x40232b;_0x2673ce[_0x1ea7a8(0x21b)](duration,null)&&(_0x456a06+='\x20('+duration+_0x1ea7a8(0x27a));const _0x10836d=duration!==null&&_0x2673ce['zXlQN'](duration,sqlLogSlowThreshold);let _0x4c8b33=_0x2673ce[_0x1ea7a8(0x234)];if(_0x10836d)_0x456a06+=_0x2673ce['Xdkqc'],_0x4c8b33=_0x2673ce[_0x1ea7a8(0x261)],logger[_0x1ea7a8(0x251)](_0xd9491d,_0x456a06);else _0x2673ce['XZnxd'](sqlLogLevel,_0x1ea7a8(0x26c))?(_0x4c8b33=_0x2673ce['VwraB'],logger[_0x1ea7a8(0x26c)](_0xd9491d,_0x456a06)):logger['debug'](_0xd9491d,_0x456a06);_0x2673ce['RnSkH'](writeToFileLog,{..._0xd9491d,'level':_0x4c8b33,'msg':_0x456a06,'time':new Date()['toISOString']()},_0x4c8b33);},logTransaction=(_0x3d73aa,_0x46f67f)=>{const _0x5abef5=a0_0x26c466,_0x2081e1={'event':_0x5abef5(0x22c),'status':_0x3d73aa,'queryCount':_0x46f67f},_0x2c2337='Transaction\x20'+_0x3d73aa;logger[_0x5abef5(0x1f7)](_0x2081e1,_0x2c2337),writeToFileLog({..._0x2081e1,'level':'debug','msg':_0x2c2337,'time':new Date()[_0x5abef5(0x1da)]()},_0x5abef5(0x1f7));},redactObject=_0x4ea49d=>{const _0x55ed0d=a0_0x26c466,_0x3d626d={'ipQZK':_0x55ed0d(0x1d4),'tUVLw':'password','bzLdb':_0x55ed0d(0x222),'yrdDS':'secret','MjdKZ':_0x55ed0d(0x1d7),'MVRsE':_0x55ed0d(0x237),'RgCSI':_0x55ed0d(0x242),'VLTjb':'cvv','PUcxl':'ssn','cgMID':'access_token','bytCv':function(_0x446cbc,_0x3afd2a){return _0x446cbc===_0x3afd2a;}};if(!_0x4ea49d||typeof _0x4ea49d!==_0x3d626d[_0x55ed0d(0x1df)])return _0x4ea49d;const _0x28d573=[_0x3d626d[_0x55ed0d(0x1ed)],_0x3d626d['bzLdb'],'pwd',_0x55ed0d(0x267),_0x3d626d['yrdDS'],_0x55ed0d(0x260),'api_key',_0x3d626d[_0x55ed0d(0x205)],_0x3d626d[_0x55ed0d(0x24f)],_0x3d626d['RgCSI'],_0x3d626d[_0x55ed0d(0x1cb)],_0x3d626d['PUcxl'],'pin','private_key',_0x55ed0d(0x1e8),'refresh_token',_0x3d626d[_0x55ed0d(0x1ea)]],_0x54aa8b=Array['isArray'](_0x4ea49d)?[..._0x4ea49d]:{..._0x4ea49d};for(const _0x4a3255 of Object['keys'](_0x54aa8b)){const _0x5ebc54=_0x4a3255['toLowerCase']();if(_0x28d573[_0x55ed0d(0x1fc)](_0x3b12ee=>_0x5ebc54['includes'](_0x3b12ee)))_0x54aa8b[_0x4a3255]=_0x55ed0d(0x257);else _0x3d626d['bytCv'](typeof _0x54aa8b[_0x4a3255],'object')&&_0x54aa8b[_0x4a3255]!==null&&(_0x54aa8b[_0x4a3255]=redactObject(_0x54aa8b[_0x4a3255]));}return _0x54aa8b;},logError=(_0x4648b7,_0x4900e3={},_0x1e4c8e=null)=>{const _0x5db4bf=a0_0x26c466,_0x48a656={'OFrRp':'error','MuPyk':_0x5db4bf(0x203),'WTDbq':function(_0x34ff71,_0x39d6d2,_0x22271f){return _0x34ff71(_0x39d6d2,_0x22271f);}},_0x3eac40={'event':_0x48a656['OFrRp'],'errorName':_0x4648b7[_0x5db4bf(0x204)]||_0x48a656['MuPyk'],'errorMessage':_0x4648b7['message'],'errorCode':_0x4648b7[_0x5db4bf(0x245)]||null,'stack':_0x4648b7[_0x5db4bf(0x1f1)],..._0x4900e3},_0x14f2a1=_0x1e4c8e||'Error:\x20'+_0x4648b7['message'];logger['error'](_0x3eac40,_0x14f2a1),_0x48a656['WTDbq'](writeToFileLog,{..._0x3eac40,'level':'error','msg':_0x14f2a1,'time':new Date()['toISOString']()},_0x48a656['OFrRp']);},logFatalError=(_0x2af8a4,_0x393a3c={},_0x390817=null)=>{const _0x224337=a0_0x26c466,_0x514cb7={'DCqBn':'fatal_error','zAylK':'Error','QCXCZ':_0x224337(0x258)},_0xeaa78e={'event':_0x514cb7[_0x224337(0x266)],'errorName':_0x2af8a4['name']||_0x514cb7['zAylK'],'errorMessage':_0x2af8a4['message'],'errorCode':_0x2af8a4[_0x224337(0x245)]||null,'stack':_0x2af8a4['stack'],'severity':'CRITICAL',..._0x393a3c},_0x2bf161=_0x390817||_0x224337(0x27d)+_0x2af8a4['message'];logger['fatal'](_0xeaa78e,_0x2bf161),writeToFileLog({..._0xeaa78e,'level':_0x514cb7[_0x224337(0x270)],'msg':_0x2bf161,'time':new Date()[_0x224337(0x1da)]()},'error');},logHttpError=(_0x5949fa,_0x1dc7e2,_0x269cc5={})=>{const _0x23f6c5=a0_0x26c466,_0x412eea={'VAkMf':_0x23f6c5(0x203),'VcQBR':'user-agent','TtCtI':_0x23f6c5(0x246),'vdcMS':function(_0x1d1d80,_0x285767){return _0x1d1d80>=_0x285767;},'bGZkM':function(_0x3ab4cd,_0x1f9acf,_0x15a7ef){return _0x3ab4cd(_0x1f9acf,_0x15a7ef);},'ZzjYS':'error'},_0x3cb8cc={'event':_0x23f6c5(0x219),'errorName':_0x5949fa[_0x23f6c5(0x204)]||_0x412eea['VAkMf'],'errorMessage':_0x5949fa[_0x23f6c5(0x1d8)],'errorCode':_0x5949fa[_0x23f6c5(0x245)]||_0x5949fa[_0x23f6c5(0x1db)]||0x1f4,'stack':_0x5949fa['stack'],'method':_0x1dc7e2?.[_0x23f6c5(0x217)],'url':_0x1dc7e2?.[_0x23f6c5(0x1f6)]||_0x1dc7e2?.['originalUrl'],'path':_0x1dc7e2?.['path'],'ip':_0x1dc7e2?.['ip']||_0x1dc7e2?.[_0x23f6c5(0x206)]?.['remoteAddress'],'userAgent':_0x1dc7e2?.[_0x23f6c5(0x255)]?.(_0x412eea['VcQBR']),'requestId':_0x1dc7e2?.['id']||_0x1dc7e2?.[_0x23f6c5(0x23c)]?.[_0x412eea['TtCtI']],'body':_0x1dc7e2?.['body']?redactObject(_0x1dc7e2[_0x23f6c5(0x1c7)]):undefined,'query':_0x1dc7e2?.[_0x23f6c5(0x1d1)],..._0x269cc5},_0x12b202=_0x5949fa[_0x23f6c5(0x1db)]||_0x5949fa[_0x23f6c5(0x1e0)]||0x1f4,_0x54b3a9=_0x23f6c5(0x240)+_0x12b202+':\x20'+_0x5949fa['message'];_0x412eea['vdcMS'](_0x12b202,0x1f4)?logger['error'](_0x3cb8cc,_0x54b3a9):logger[_0x23f6c5(0x251)](_0x3cb8cc,_0x54b3a9),_0x412eea[_0x23f6c5(0x1ec)](writeToFileLog,{..._0x3cb8cc,'level':_0x12b202>=0x1f4?_0x412eea['ZzjYS']:'warn','msg':_0x54b3a9,'time':new Date()['toISOString']()},_0x12b202>=0x1f4?_0x23f6c5(0x221):'warn');},logUncaughtError=(_0x253597,_0x3499d2)=>{const _0x277a59=a0_0x26c466,_0x1040aa={'sHRVR':_0x277a59(0x203),'BriYD':'CRITICAL','bmkRz':'error'},_0x4bcd23={'event':_0x253597,'errorName':_0x3499d2?.[_0x277a59(0x204)]||_0x1040aa[_0x277a59(0x244)],'errorMessage':_0x3499d2?.[_0x277a59(0x1d8)]||String(_0x3499d2),'errorCode':_0x3499d2?.['code']||null,'stack':_0x3499d2?.[_0x277a59(0x1f1)],'severity':_0x1040aa[_0x277a59(0x233)],'processId':process['pid'],'memoryUsage':process[_0x277a59(0x1fa)](),'uptime':process[_0x277a59(0x265)]()},_0x4daa0f='['+_0x253597['toUpperCase']()+']\x20'+(_0x3499d2?.[_0x277a59(0x1d8)]||_0x3499d2);logger[_0x277a59(0x258)](_0x4bcd23,_0x4daa0f),writeToFileLog({..._0x4bcd23,'level':'fatal','msg':_0x4daa0f,'time':new Date()['toISOString']()},_0x1040aa['bmkRz']);},setupGlobalErrorHandlers=()=>{const _0xd5c5c=a0_0x26c466,_0x5c5d84={'uDMyA':function(_0x530912,_0x28f3c2,_0xf7de2){return _0x530912(_0x28f3c2,_0xf7de2);},'inWcX':function(_0x1e4ae5,_0x36dd74){return _0x1e4ae5 instanceof _0x36dd74;},'tLWAU':_0xd5c5c(0x24d),'OpRtL':_0xd5c5c(0x25d),'Nlutr':'global_error_handlers_setup','RpXnb':'Global\x20error\x20handlers\x20initialized','nehWR':_0xd5c5c(0x26c)};process['on']('uncaughtException',_0x53a4a9=>{const _0xb3f589=_0xd5c5c;_0x5c5d84[_0xb3f589(0x279)](logUncaughtError,_0xb3f589(0x214),_0x53a4a9),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on']('unhandledRejection',(_0x140e50,_0x3dbb0f)=>{const _0x2c5e49=_0xd5c5c,_0x1f2424=_0x5c5d84['inWcX'](_0x140e50,Error)?_0x140e50:new Error(String(_0x140e50));_0x5c5d84[_0x2c5e49(0x279)](logUncaughtError,'unhandledRejection',_0x1f2424);}),process['on'](_0x5c5d84['OpRtL'],_0x5e9cf0=>{const _0x3e6183=_0xd5c5c;logger['warn']({'event':_0x5c5d84[_0x3e6183(0x1d9)],'name':_0x5e9cf0['name'],'message':_0x5e9cf0['message'],'stack':_0x5e9cf0[_0x3e6183(0x1f1)]},'Process\x20Warning:\x20'+_0x5e9cf0['message']);});const _0x136c34={'event':_0x5c5d84['Nlutr']},_0x533b49=_0x5c5d84[_0xd5c5c(0x1fe)];logger['info'](_0x136c34,_0x533b49),writeToFileLog({..._0x136c34,'level':_0x5c5d84['nehWR'],'msg':_0x533b49,'time':new Date()[_0xd5c5c(0x1da)]()},'info');},createErrorHandlerMiddleware=()=>{const _0xc87a78={'JxQrR':function(_0x1e1050,_0x22e269,_0x18c1fc){return _0x1e1050(_0x22e269,_0x18c1fc);}};return(_0x4832c2,_0x2d953b,_0x41c233,_0x5e601f)=>{const _0x241902=a0_0x23fa;_0xc87a78['JxQrR'](logHttpError,_0x4832c2,_0x2d953b);const _0x241d9d=_0x4832c2[_0x241902(0x1db)]||_0x4832c2[_0x241902(0x1e0)]||0x1f4;_0x41c233[_0x241902(0x1e0)](_0x241d9d)[_0x241902(0x201)]({'success':![],'error':_0x241d9d>=0x1f4?_0x241902(0x1c6):_0x4832c2['message'],'requestId':_0x2d953b['id']||_0x2d953b[_0x241902(0x23c)]?.[_0x241902(0x246)]||null});};};module[a0_0x26c466(0x253)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
|
|
1
|
+
function a0_0x4e16(_0x39a212,_0xebe7dc){_0x39a212=_0x39a212-0x11c;const _0x533c9a=a0_0x533c();let _0x4e1621=_0x533c9a[_0x39a212];if(a0_0x4e16['vROGcf']===undefined){var _0x14a564=function(_0x5c043f){const _0x11ac67='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x82c3fb='',_0x36a6cf='';for(let _0x251818=0x0,_0x3c9966,_0x5cc994,_0x59c39b=0x0;_0x5cc994=_0x5c043f['charAt'](_0x59c39b++);~_0x5cc994&&(_0x3c9966=_0x251818%0x4?_0x3c9966*0x40+_0x5cc994:_0x5cc994,_0x251818++%0x4)?_0x82c3fb+=String['fromCharCode'](0xff&_0x3c9966>>(-0x2*_0x251818&0x6)):0x0){_0x5cc994=_0x11ac67['indexOf'](_0x5cc994);}for(let _0x471346=0x0,_0x3c0416=_0x82c3fb['length'];_0x471346<_0x3c0416;_0x471346++){_0x36a6cf+='%'+('00'+_0x82c3fb['charCodeAt'](_0x471346)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x36a6cf);};a0_0x4e16['DTABVN']=_0x14a564,a0_0x4e16['xIIHcK']={},a0_0x4e16['vROGcf']=!![];}const _0x419c06=_0x533c9a[0x0],_0x598a51=_0x39a212+_0x419c06,_0x47240b=a0_0x4e16['xIIHcK'][_0x598a51];return!_0x47240b?(_0x4e1621=a0_0x4e16['DTABVN'](_0x4e1621),a0_0x4e16['xIIHcK'][_0x598a51]=_0x4e1621):_0x4e1621=_0x47240b,_0x4e1621;}const a0_0x129db8=a0_0x4e16;(function(_0x419c5d,_0x4ba978){const _0x1668f8=a0_0x4e16,_0x1bdcab=_0x419c5d();while(!![]){try{const _0x1a23d1=parseInt(_0x1668f8(0x17f))/0x1+-parseInt(_0x1668f8(0x166))/0x2*(parseInt(_0x1668f8(0x1e0))/0x3)+-parseInt(_0x1668f8(0x162))/0x4+-parseInt(_0x1668f8(0x19c))/0x5+parseInt(_0x1668f8(0x1c9))/0x6+-parseInt(_0x1668f8(0x128))/0x7+-parseInt(_0x1668f8(0x1bd))/0x8*(-parseInt(_0x1668f8(0x1ab))/0x9);if(_0x1a23d1===_0x4ba978)break;else _0x1bdcab['push'](_0x1bdcab['shift']());}catch(_0x4ccb57){_0x1bdcab['push'](_0x1bdcab['shift']());}}}(a0_0x533c,0xd4bcc));function a0_0x533c(){const _0x3b31d3=['C3rYAw5NAwz5','s3HWtve','ifTtte9xxq','wvnSC2m','rfjpua','iokvKqRILzeGifbVCNqGicaGicaGidOG','yxbPx3nLy3jLDa','mtjwC2PysfG','A0PKv1q','iokvKqRILzeGienVBMzPzYaGicaGidOG','qwv6txa','u0vmrunu','CgfKrw5K','y3z2','DhjPBq','C29Tzq','z2v0sgvHzgvYCW','uNPWvNu','C3rHDhvZ','CMvMCMvZAf90B2TLBG','mta1ndGZn0rTtwf4Dq','tK9erv9ftLy','CMvZB2X2zq','BwvZC2fNzq','ve9gy08','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','rgvMyxvSDa','ChHLteC','y3jLzgvUDgLHBhm','vu5ltK9xtG','y3jLzgvUDgLHBa','zgv2zwXVCg1LBNq','CMvTB3rLqwrKCMvZCW','ChjVy2vZC193yxjUAw5N','C3rHCNrZv2L0Aa','Aw5MBW','revPv0W','BMfTzq','vfrvrvm','Aw5JBhvKzxm','AuzrqLi','zMfSC2u','vfjbtLnbq1rjt05FqKvhsu4','r09QrNu','ruTfvvu','zMXVB3i','A2v5CW','Cgf0Aa','Ec1Yzxf1zxn0lwLK','Dhj1zq','vfjbtLnbq1rjt05Fq09ntuLu','w1jfrefdveveoMHHC2HD','te9hx0rjuG','ChjPDMf0zv9RzxK','ANnVBG','z1juAg8','zMXVB2u','zw52','CMvWzwf0','rxjYB3i','DwHvwxu','wvDSAwi','iokvKqRILzeGiefqssblzxKGicaGidOG','Bwf0y2G','reiGuxvLCNK','u1fmx0Xpr19qqvjbtvm','Dg9Rzw4','D3jPDgu','C3rKu2vYAwfSAxPLCNm','zgjFDhjHBNnHy3rPB24','ChjVAMvJDa','rhbhuLi','u1fmx0Xpr19tte9xx1riuKvtse9mra','tKvIyKG','icdIHPiG','uK9mtejbq0S','y3jLzgL0x2nHCMq','shLbAuS','nJyXnZK5mKDfwu1rEG','icbizwfSDgG6ia','wgzoBMS','tK9uiefdveLwrq','ntG1ntGYCfHlA3jR','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','BwvTB3j5vxnHz2u','CePmsw8','Bwv0Ag9K','zgf0ywjHC2u','qvvszMC','Dxb0Aw1L','Bg9N','y29Kzq','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','y29UBMvJDgLVBG','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','vvbeqvrf','DgvZDa','DxjS','Bw9KDwXL','vvPbyxy','uw9ituG','CxvLCNK','yxPYA3K','ywnJzxnZx3rVA2vU','C2vYDMLJzuLUzM8','CMvZDgzVCMDL','yNbMAfu','mti1mdGYmuHqrenurG','D2fYBG','u1DRu2m','vhjHBNnHy3rPB24G','BwfW','ufbXCue','ChjPDMf0zwTLEq','zw52AxjVBM1LBNq','v01PwLK','uwreweO','A3rZyvm','yxbPx2TLEq','qKvhsu4','te9hx1rpx0zjteu','AM9PBG','quXurvi','y1nJCNO','Bfnyyuy','rgf0ywjHC2u6ia','BgvUz3rO','Dg9vChbLCKnHC2u','tM9Kzs5QCW','AgvHBhrOq2HLy2S','CMvWBgfJzq','qvbqx1zfuLnjt04','sfruuca','rermx0rst1a','DxLeB0q','revmrvrf','nta4odK1nxHrEK1SCq','qwzmBge','zgvMyxvSDa','thfqy2m','EhDQu1C','zxjYB3iUBg9N','Bwf4','yxbPA2v5','ChDK','y3jLyxrLv3jPDgvtDhjLyw0','Ag9ZDa','yxbWlMXVzW','Dg9mB3DLCKnHC2u','y29UzMLNrMLSzq','qu9Nwuy','mtaXmta5ntf0zNLQyMe','yxbPs2v5','zgvIDwC','D2fYBMLUzW','ALbyDvy','C3fSx3f1zxj5','t05RsK4','yKLSDK4','BfzPv2K','iokvKqRILzeGifbYB2PLy3qGicaGidOG','thLRtMq','lI9SB2DZlW','Dg9ju09tDhjPBMC','w1jfrefdvevexq','uhjVy2vZCYbxyxjUAw5NoIa','CgLUBY1WCMv0DhK','zfzHt3q','DhLWzq','mJr1AenirfO','su5trvju','Dw5JyxvNAhrfEgnLChrPB24','rKfuquW6ia','icbvuKW6icaGia','zxjYB3i','t2vJqLq','zgf0ywjHC2vFy29UzMLN','AxntBg93','t0rws04','C3rHDhvZq29Kzq','B2jQzwn0','mtq2nJi2ofreAurTva','Cg9YDa','CgfZC3DVCMq','zMf0ywW','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','C3rHy2S','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','C2vJCMv0','Ahj0Aw1L','icbjBMzVoIaGia','qunusvzf','s1HIrfe','yMfZzvvYBa','CM93C0fMzMvJDgvK'];a0_0x533c=function(){return _0x3b31d3;};return a0_0x533c();}const pino=require('pino'),fs=require('fs'),path=require('path');let logToFile=![],logDir='./logs',serviceName=a0_0x129db8(0x17d),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x129db8(0x1ce),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!=='production',logLevel=process[a0_0x129db8(0x14d)]['LOG_LEVEL']||a0_0x129db8(0x137);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x129db8(0x1ba),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env'][a0_0x129db8(0x197)]||'1.0.5','env':process['env'][a0_0x129db8(0x129)]||a0_0x129db8(0x133)},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':['req.headers.authorization','req.headers[\x22x-api-key\x22]',a0_0x129db8(0x1cb),a0_0x129db8(0x156),a0_0x129db8(0x1ac),'DB_PASSWORD','JWT_SECRET'],'censor':a0_0x129db8(0x1b8)},'serializers':{'req':_0x293fee=>({'id':_0x293fee['id'],'method':_0x293fee[a0_0x129db8(0x16a)],'url':_0x293fee['url'],'path':_0x293fee[a0_0x129db8(0x143)],'remoteAddress':_0x293fee['ip']||_0x293fee[a0_0x129db8(0x171)]?.[a0_0x129db8(0x134)]}),'res':_0x23971d=>({'statusCode':_0x23971d['statusCode'],'headers':_0x23971d[a0_0x129db8(0x124)]?.()}),'err':pino[a0_0x129db8(0x158)]['err']}});function initFileLogging(){const _0x5e7cac=a0_0x129db8,_0x29cef3={'GOjFu':_0x5e7cac(0x145),'kfTxH':_0x5e7cac(0x1ad),'pqNmW':function(_0x46d443,_0x488606){return _0x46d443!==_0x488606;},'OecBT':function(_0x2942fe,_0x17b2db){return _0x2942fe(_0x17b2db);},'xwjSW':_0x5e7cac(0x1a1)};if(fileLoggingInitialized)return;logToFile=process[_0x5e7cac(0x14d)][_0x5e7cac(0x18c)]==='true';const _0x5cd93f=process['env']['RESTFORGE_PROJECT_NAME']||_0x5e7cac(0x19e);logDir=process['env'][_0x5e7cac(0x148)]||_0x5e7cac(0x1b6)+_0x5cd93f,serviceName=process['env']['SERVICE_NAME']||'restforge',sqlLogEnabled=process[_0x5e7cac(0x14d)]['SQL_LOG_ENABLED']===_0x29cef3[_0x5e7cac(0x13f)],sqlLogLevel=process[_0x5e7cac(0x14d)]['SQL_LOG_LEVEL']||_0x29cef3['kfTxH'],sqlLogParams=_0x29cef3['pqNmW'](process['env'][_0x5e7cac(0x155)],_0x5e7cac(0x13d)),sqlLogSlowThreshold=_0x29cef3[_0x5e7cac(0x1c3)](parseInt,process[_0x5e7cac(0x14d)][_0x5e7cac(0x15c)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x1c3409=path[_0x5e7cac(0x12a)](process['cwd'](),logDir);try{!fs['existsSync'](_0x1c3409)&&fs['mkdirSync'](_0x1c3409,{'recursive':!![]});}catch(_0x1c875d){console['error'](_0x5e7cac(0x1d1)+_0x1c3409+':',_0x1c875d[_0x5e7cac(0x12b)]),fileLoggingInitialized=!![];return;}const _0x4f6d10=path[_0x5e7cac(0x18d)](_0x1c3409,_0x5e7cac(0x1a7)),_0x5ade40=path['join'](_0x1c3409,_0x5e7cac(0x1a1));try{appLogStream=fs['createWriteStream'](_0x4f6d10,{'flags':'a'}),errorLogStream=fs[_0x5e7cac(0x1a5)](_0x5ade40,{'flags':'a'}),fileLoggingInitialized=!![];const _0x3b6b79={'event':'file_logging_enabled','logDir':_0x1c3409,'files':[_0x5e7cac(0x1a7),_0x29cef3[_0x5e7cac(0x1a0)]]},_0x2e1994=_0x5e7cac(0x1cf)+_0x1c3409;logger[_0x5e7cac(0x137)](_0x3b6b79,_0x2e1994),writeToFileLog({..._0x3b6b79,'level':_0x5e7cac(0x137),'msg':_0x2e1994,'time':new Date()[_0x5e7cac(0x1b7)]()},_0x5e7cac(0x137));}catch(_0x368ab0){console[_0x5e7cac(0x1c2)](_0x5e7cac(0x1cd),_0x368ab0[_0x5e7cac(0x12b)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x1ca062,_0x5147cf){const _0x51b5b9=a0_0x129db8,_0x1fbba1={'azrky':function(_0x407090,_0x50cfa9){return _0x407090||_0x50cfa9;},'KXbDQ':function(_0x269600,_0xc41ff6){return _0x269600+_0xc41ff6;}};if(_0x1fbba1[_0x51b5b9(0x17a)](!logToFile,!appLogStream))return;const _0x11cb7b={'service':serviceName,..._0x1ca062},_0x4e6733=_0x1fbba1[_0x51b5b9(0x1d6)](JSON[_0x51b5b9(0x1d9)](_0x11cb7b),'\x0a');appLogStream[_0x51b5b9(0x157)](_0x4e6733),(_0x5147cf==='error'||_0x5147cf==='fatal')&&(errorLogStream&&errorLogStream['write'](_0x4e6733));}const createRequestLogger=(_0x1564c0={})=>{return logger['child'](_0x1564c0);},logServerStart=_0x1218e2=>{const _0x17e6d6=a0_0x129db8,_0x239c8a={'ScSxn':function(_0x19ef0,_0x48c272){return _0x19ef0/_0x48c272;},'CnXJS':function(_0xbf7d30,_0x3f5f05){return _0xbf7d30-_0x3f5f05;},'OPoPO':'N/A','NOgjF':function(_0x29c15f,_0x41689b){return _0x29c15f(_0x41689b);},'uhUYu':_0x17e6d6(0x12e),'fdwJZ':_0x17e6d6(0x1d5),'UKgBE':'server_starting','OYTty':_0x17e6d6(0x137)},_0x223c78='RESTFORGE\x20RUNTIME\x20SERVER',_0x18e28d=Math[_0x17e6d6(0x1a2)](0x0,0x37-_0x223c78[_0x17e6d6(0x192)]),_0x2c053c=Math[_0x17e6d6(0x141)](_0x239c8a['ScSxn'](_0x18e28d,0x2)),_0x2c9601=_0x239c8a['CnXJS'](_0x18e28d,_0x2c053c),_0x25335f='║'+'\x20'['repeat'](_0x2c053c)+_0x223c78+'\x20'[_0x17e6d6(0x14e)](_0x2c9601)+'║',_0x11a2ca=_0x17e6d6(0x172)+_0x25335f+_0x17e6d6(0x12d)+(_0x1218e2[_0x17e6d6(0x186)]||_0x17e6d6(0x194))[_0x17e6d6(0x120)](0x26)+_0x17e6d6(0x1b4)+(_0x1218e2[_0x17e6d6(0x15a)]||_0x239c8a['OPoPO'])[_0x17e6d6(0x120)](0x26)+_0x17e6d6(0x1de)+_0x239c8a['NOgjF'](String,_0x1218e2['port']||0xbb8)['padEnd'](0x26)+_0x17e6d6(0x11d)+(_0x1218e2[_0x17e6d6(0x1a9)]||_0x239c8a[_0x17e6d6(0x150)])['padEnd'](0x26)+_0x17e6d6(0x152)+(_0x1218e2['apiKey']?_0x239c8a['fdwJZ']:_0x17e6d6(0x165))['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console[_0x17e6d6(0x16e)](_0x11a2ca);const _0xca368e={'event':_0x239c8a['UKgBE'],'project':_0x1218e2['project'],'port':_0x1218e2['port'],'config':_0x1218e2[_0x17e6d6(0x1a9)],'apiKeyEnabled':!!_0x1218e2['apiKey']};logger[_0x17e6d6(0x137)](_0xca368e),writeToFileLog({..._0xca368e,'level':_0x239c8a['OYTty'],'msg':'Server\x20starting:\x20'+_0x1218e2['project']+'\x20on\x20port\x20'+_0x1218e2['port'],'time':new Date()[_0x17e6d6(0x1b7)]()},_0x17e6d6(0x137));},logServerReady=_0x3c568d=>{const _0x6b698d=a0_0x129db8,_0x58247f={'LqPcc':'server_ready','ktsaS':'info'},_0x156eef={'event':_0x58247f[_0x6b698d(0x19f)],'port':_0x3c568d[_0x6b698d(0x1ca)],'module':_0x3c568d[_0x6b698d(0x176)],'healthCheck':_0x3c568d[_0x6b698d(0x195)],'serviceInfo':_0x3c568d[_0x6b698d(0x17c)],'baseUrl':_0x3c568d['baseUrl']},_0x2138d8=_0x6b698d(0x170)+_0x3c568d[_0x6b698d(0x1ca)];logger[_0x6b698d(0x137)](_0x156eef,_0x2138d8),writeToFileLog({..._0x156eef,'level':_0x58247f['ktsaS'],'msg':_0x2138d8,'time':new Date()['toISOString']()},_0x58247f[_0x6b698d(0x189)]),_0x3c568d['healthCheck']&&logger['info'](_0x6b698d(0x163)+_0x3c568d['healthCheck']),_0x3c568d[_0x6b698d(0x17c)]&&logger[_0x6b698d(0x137)](_0x6b698d(0x1d4)+_0x3c568d[_0x6b698d(0x17c)]),_0x3c568d[_0x6b698d(0x1d7)]&&logger['info'](_0x6b698d(0x1c1)+_0x3c568d[_0x6b698d(0x1d7)]);},logProjectLoaded=(_0x47a2ed,_0x1117c0)=>{const _0x1e1b0f=a0_0x129db8,_0x49420a={'oHVNw':'project_loaded','kJdWT':'info'},_0x5c24d3={'event':_0x49420a['oHVNw'],'project':_0x47a2ed,'path':_0x1117c0},_0x1fc4f9='[OK]\x20Project\x20loaded:\x20'+_0x47a2ed;logger['info'](_0x5c24d3,_0x1fc4f9),writeToFileLog({..._0x5c24d3,'level':_0x49420a[_0x1e1b0f(0x11c)],'msg':_0x1fc4f9,'time':new Date()['toISOString']()},'info');},logEndpointRegistered=(_0xca971d,_0x13bff7)=>{const _0x3b05d6=a0_0x129db8,_0x26c8c0={'pxeLG':'endpoint_registered','bIlvN':_0x3b05d6(0x1ad)},_0x1f134c={'event':_0x26c8c0[_0x3b05d6(0x12f)],'endpoint':_0xca971d,'route':_0x13bff7},_0x5b5442=_0x3b05d6(0x15e)+_0xca971d+':\x20'+_0x13bff7;logger[_0x3b05d6(0x1ad)](_0x1f134c,_0x5b5442),writeToFileLog({..._0x1f134c,'level':_0x26c8c0['bIlvN'],'msg':_0x5b5442,'time':new Date()['toISOString']()},_0x26c8c0[_0x3b05d6(0x1b2)]);},logDatabaseConfig=_0x19f4df=>{const _0x8f4da2=a0_0x129db8,_0x4ae363={'SHPzI':_0x8f4da2(0x1c4),'jPXuV':function(_0x160e43,_0x47a296,_0x1333c7){return _0x160e43(_0x47a296,_0x1333c7);}},_0x188b83={'event':_0x4ae363['SHPzI'],'host':_0x19f4df[_0x8f4da2(0x1a6)],'port':_0x19f4df['port'],'database':_0x19f4df[_0x8f4da2(0x16b)],'type':_0x19f4df[_0x8f4da2(0x1bc)],'user':_0x19f4df['user']},_0x2f6667=_0x8f4da2(0x191)+_0x19f4df['type']+'://'+_0x19f4df['host']+':'+_0x19f4df['port']+'/'+_0x19f4df[_0x8f4da2(0x16b)];logger['debug'](_0x188b83,_0x2f6667),_0x4ae363[_0x8f4da2(0x1af)](writeToFileLog,{..._0x188b83,'level':'debug','msg':_0x2f6667,'time':new Date()['toISOString']()},'debug');},logRequest=(_0x16399a,_0x203dd9,_0x3a779c)=>{const _0x19e8ad=a0_0x129db8,_0x8ef59a={'UwZLZ':function(_0x5ac5e9,_0x426be3){return _0x5ac5e9>=_0x426be3;},'baznj':function(_0x90e023,_0x345e30,_0x238480){return _0x90e023(_0x345e30,_0x238480);}},_0x154b98={'event':'http_request','method':_0x16399a[_0x19e8ad(0x16a)],'path':_0x16399a[_0x19e8ad(0x143)],'statusCode':_0x203dd9[_0x19e8ad(0x1c7)],'durationMs':_0x3a779c,'ip':_0x16399a['ip']},_0x5978c8=_0x16399a['method']+'\x20'+_0x16399a[_0x19e8ad(0x143)]+'\x20-\x20'+_0x203dd9[_0x19e8ad(0x1c7)]+'\x20('+_0x3a779c+'ms)';let _0x530681=_0x19e8ad(0x137);if(_0x8ef59a['UwZLZ'](_0x203dd9['statusCode'],0x1f4))_0x530681='error',logger[_0x19e8ad(0x1c2)](_0x154b98,_0x5978c8);else _0x203dd9[_0x19e8ad(0x1c7)]>=0x190?(_0x530681=_0x19e8ad(0x180),logger[_0x19e8ad(0x180)](_0x154b98,_0x5978c8)):logger['info'](_0x154b98,_0x5978c8);_0x8ef59a['baznj'](writeToFileLog,{..._0x154b98,'level':_0x530681,'msg':_0x5978c8,'time':new Date()['toISOString']()},_0x530681);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x129db8(0x1a4),'token',a0_0x129db8(0x17b),a0_0x129db8(0x127),a0_0x129db8(0x1d2),a0_0x129db8(0x1df),a0_0x129db8(0x1a3),'api_key',a0_0x129db8(0x132),a0_0x129db8(0x130),'pin','otp','private_key',a0_0x129db8(0x185)],redactSensitiveParams=(_0x570cef,_0xd932f6)=>{const _0x198d82=a0_0x129db8,_0xe818e0={'lViWi':'string'};if(!_0x570cef||_0x570cef[_0x198d82(0x192)]===0x0)return _0x570cef;const _0x3439b6=_0xd932f6[_0x198d82(0x1a8)](),_0x53901d=_0x3439b6[_0x198d82(0x153)](/\(([^)]+)\)\s*values/i);let _0x11afa2=[];_0x53901d&&(_0x11afa2=_0x53901d[0x1]['split'](',')[_0x198d82(0x183)](_0x5cb032=>_0x5cb032['trim']()['toLowerCase']()));const _0x3d7b1d=_0x3439b6[_0x198d82(0x153)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x3d7b1d){const _0x26a993=_0x3d7b1d[0x1],_0x10e13d=_0x26a993[_0x198d82(0x153)](/(\w+)\s*=/g);_0x10e13d&&(_0x11afa2=_0x10e13d[_0x198d82(0x183)](_0x459d5c=>_0x459d5c[_0x198d82(0x196)](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x570cef[_0x198d82(0x183)]((_0x3c46ae,_0x2c012d)=>{const _0x4df266=_0x198d82;if(_0x11afa2[_0x2c012d]){const _0x3c3d06=_0x11afa2[_0x2c012d],_0x4054f7=SENSITIVE_PARAM_PATTERNS['some'](_0x55cea6=>_0x3c3d06[_0x4df266(0x13b)](_0x55cea6));if(_0x4054f7)return _0x4df266(0x1b8);}if(typeof _0x3c46ae===_0xe818e0[_0x4df266(0x1b3)]&&_0x3c46ae['length']>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x4df266(0x174)](_0x3c46ae)&&_0x3c46ae[_0x4df266(0x13b)]('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/['test'](_0x3c46ae))return _0x4df266(0x147);}return _0x3c46ae;});},parseQueryMetadata=_0x25b35f=>{const _0x304c6b=a0_0x129db8,_0x32d08e={'ODVKN':_0x304c6b(0x131),'AfLla':_0x304c6b(0x11f),'EMAmR':'INSERT','qphim':'UPDATE','AezMp':_0x304c6b(0x19b),'lpCFm':_0x304c6b(0x18b),'QAQNa':'START\x20TRANSACTION','SftgK':'COMMIT','dVaOt':_0x304c6b(0x15f),'QoHMH':'CREATE','ocIKH':_0x304c6b(0x1dd)},_0x13a883=_0x25b35f[_0x304c6b(0x122)](),_0xab4993=_0x13a883['toUpperCase']();let _0x40b747=_0x32d08e[_0x304c6b(0x1c6)],_0x2a7c7b=null;if(_0xab4993[_0x304c6b(0x136)](_0x32d08e[_0x304c6b(0x19d)])){_0x40b747=_0x304c6b(0x11f);const _0x13ee14=_0x13a883['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x13ee14?_0x13ee14[0x1]:null;}else{if(_0xab4993[_0x304c6b(0x136)](_0x32d08e['EMAmR'])){_0x40b747=_0x304c6b(0x1be);const _0x4abcbf=_0x13a883['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x4abcbf?_0x4abcbf[0x1]:null;}else{if(_0xab4993[_0x304c6b(0x136)](_0x304c6b(0x173))){_0x40b747=_0x32d08e['qphim'];const _0x23b004=_0x13a883['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x23b004?_0x23b004[0x1]:null;}else{if(_0xab4993['startsWith'](_0x32d08e[_0x304c6b(0x11e)])){_0x40b747=_0x32d08e['AezMp'];const _0x228b87=_0x13a883['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x228b87?_0x228b87[0x1]:null;}else{if(_0xab4993['startsWith'](_0x32d08e['lpCFm'])||_0xab4993['startsWith'](_0x32d08e['QAQNa']))_0x40b747=_0x304c6b(0x13e);else{if(_0xab4993[_0x304c6b(0x136)](_0x32d08e['SftgK']))_0x40b747=_0x304c6b(0x146);else{if(_0xab4993[_0x304c6b(0x136)](_0x32d08e[_0x304c6b(0x1bb)]))_0x40b747='TRANSACTION_ROLLBACK';else{if(_0xab4993['startsWith'](_0x32d08e[_0x304c6b(0x178)]))_0x40b747='DDL_CREATE';else{if(_0xab4993['startsWith'](_0x304c6b(0x18e)))_0x40b747='DDL_ALTER';else _0xab4993['startsWith'](_0x32d08e['ocIKH'])&&(_0x40b747=_0x304c6b(0x199));}}}}}}}}return{'type':_0x40b747,'table':_0x2a7c7b};},startQueryTimer=()=>{const _0x519d87=process['hrtime']();return()=>{const _0x5d4225=a0_0x4e16,[_0x3517c3,_0x4ac95c]=process[_0x5d4225(0x1d3)](_0x519d87);return parseFloat((_0x3517c3*0x3e8+_0x4ac95c/0xf4240)['toFixed'](0x2));};},logQuery=(_0x3edf9a,_0x2859d5=[],_0x260256={})=>{const _0x314e11=a0_0x129db8,_0x2de000={'FTEGj':'db_query','VsIdy':function(_0x1f0831,_0x56a0f8){return _0x1f0831(_0x56a0f8);},'HGPIZ':_0x314e11(0x1b0),'WMiZY':function(_0x53110a,_0x727776){return _0x53110a!==_0x727776;},'LykNd':function(_0x963323,_0x3eff35){return _0x963323>_0x3eff35;},'DEiWL':'debug','DpGRR':'warn','NRenZ':function(_0x28c346,_0x16cbef){return _0x28c346===_0x16cbef;},'gplRY':function(_0x2772ca,_0x3e05b5,_0x5d8256){return _0x2772ca(_0x3e05b5,_0x5d8256);}};if(!sqlLogEnabled){logger['debug']({'event':_0x2de000['FTEGj'],'query':_0x3edf9a['substring'](0x0,0xc8),'paramCount':_0x2859d5[_0x314e11(0x192)]},_0x314e11(0x154));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x260256,{type:_0x257249,table:_0x42f13d}=_0x2de000['VsIdy'](parseQueryMetadata,_0x3edf9a),_0x375b8d={'event':_0x2de000['HGPIZ'],'queryType':_0x257249,'table':_0x42f13d,'query':_0x3edf9a,'paramCount':_0x2859d5[_0x314e11(0x192)],'dbType':dbType};sqlLogParams&&_0x2859d5['length']>0x0&&(_0x375b8d['params']=redactSensitiveParams(_0x2859d5,_0x3edf9a));duration!==null&&(_0x375b8d['durationMs']=duration,_0x375b8d[_0x314e11(0x1c5)]=duration>sqlLogSlowThreshold);_0x2de000[_0x314e11(0x187)](rowsAffected,null)&&(_0x375b8d[_0x314e11(0x1d8)]=rowsAffected);const _0x402941=_0x42f13d||'unknown';let _0x3216bf='['+_0x257249+']\x20'+_0x402941;duration!==null&&(_0x3216bf+='\x20('+duration+'ms)');const _0x933496=duration!==null&&_0x2de000[_0x314e11(0x1b5)](duration,sqlLogSlowThreshold);let _0x4c43c9=_0x2de000[_0x314e11(0x138)];if(_0x933496)_0x3216bf+=_0x314e11(0x1db),_0x4c43c9=_0x2de000[_0x314e11(0x15b)],logger['warn'](_0x375b8d,_0x3216bf);else _0x2de000['NRenZ'](sqlLogLevel,'info')?(_0x4c43c9='info',logger[_0x314e11(0x137)](_0x375b8d,_0x3216bf)):logger[_0x314e11(0x1ad)](_0x375b8d,_0x3216bf);_0x2de000['gplRY'](writeToFileLog,{..._0x375b8d,'level':_0x4c43c9,'msg':_0x3216bf,'time':new Date()['toISOString']()},_0x4c43c9);},logTransaction=(_0x447c50,_0x480ec3)=>{const _0x953e4f=a0_0x129db8,_0x3837fd={'event':_0x953e4f(0x159),'status':_0x447c50,'queryCount':_0x480ec3},_0x1037b2=_0x953e4f(0x182)+_0x447c50;logger['debug'](_0x3837fd,_0x1037b2),writeToFileLog({..._0x3837fd,'level':_0x953e4f(0x1ad),'msg':_0x1037b2,'time':new Date()['toISOString']()},_0x953e4f(0x1ad));},redactObject=_0x45865f=>{const _0x5b03f6=a0_0x129db8,_0x17da73={'QtlxO':'object','oywpz':_0x5b03f6(0x1cb),'AURfg':'passwd','VWVrA':_0x5b03f6(0x1a4),'sQOUt':'token','IOark':_0x5b03f6(0x18a),'NEbbH':'authorization','cScrz':'creditcard','flooe':_0x5b03f6(0x160),'QdDXJ':_0x5b03f6(0x149),'gRTho':_0x5b03f6(0x185),'Ahplf':'refresh_token','iFQBR':'access_token','QPKnq':'[REDACTED]','uyDoD':function(_0x5bce93,_0x401790){return _0x5bce93!==_0x401790;}};if(!_0x45865f||typeof _0x45865f!==_0x17da73['QtlxO'])return _0x45865f;const _0x411a35=[_0x17da73['oywpz'],_0x17da73[_0x5b03f6(0x16c)],_0x17da73['VWVrA'],_0x17da73['sQOUt'],'secret','apikey',_0x17da73['IOark'],_0x17da73[_0x5b03f6(0x15d)],_0x17da73[_0x5b03f6(0x18f)],_0x17da73[_0x5b03f6(0x14c)],_0x5b03f6(0x121),'ssn','pin',_0x17da73[_0x5b03f6(0x188)],_0x17da73[_0x5b03f6(0x14b)],_0x17da73['Ahplf'],_0x17da73[_0x5b03f6(0x13c)]],_0x57f046=Array['isArray'](_0x45865f)?[..._0x45865f]:{..._0x45865f};for(const _0x637e7e of Object[_0x5b03f6(0x142)](_0x57f046)){const _0x16f490=_0x637e7e[_0x5b03f6(0x1a8)]();if(_0x411a35[_0x5b03f6(0x123)](_0x154afa=>_0x16f490[_0x5b03f6(0x13b)](_0x154afa)))_0x57f046[_0x637e7e]=_0x17da73['QPKnq'];else typeof _0x57f046[_0x637e7e]===_0x5b03f6(0x1c8)&&_0x17da73[_0x5b03f6(0x19a)](_0x57f046[_0x637e7e],null)&&(_0x57f046[_0x637e7e]=redactObject(_0x57f046[_0x637e7e]));}return _0x57f046;},logError=(_0x31576d,_0x3f16f3={},_0xf2573d=null)=>{const _0x3466e7=a0_0x129db8,_0x379975={'YWlib':_0x3466e7(0x1c2)},_0x226b66={'event':_0x379975[_0x3466e7(0x151)],'errorName':_0x31576d['name']||_0x3466e7(0x14f),'errorMessage':_0x31576d['message'],'errorCode':_0x31576d['code']||null,'stack':_0x31576d[_0x3466e7(0x1d0)],..._0x3f16f3},_0x1b0a6f=_0xf2573d||'Error:\x20'+_0x31576d['message'];logger['error'](_0x226b66,_0x1b0a6f),writeToFileLog({..._0x226b66,'level':_0x379975['YWlib'],'msg':_0x1b0a6f,'time':new Date()[_0x3466e7(0x1b7)]()},_0x379975[_0x3466e7(0x151)]);},logFatalError=(_0x193390,_0x24449a={},_0x7dfe71=null)=>{const _0x36a7fd=a0_0x129db8,_0x3fdb79={'TOFcO':'fatal_error','ABQBm':_0x36a7fd(0x14f),'lSXaF':'CRITICAL','hLNcD':'error'},_0x24237f={'event':_0x3fdb79[_0x36a7fd(0x12c)],'errorName':_0x193390[_0x36a7fd(0x139)]||_0x3fdb79['ABQBm'],'errorMessage':_0x193390['message'],'errorCode':_0x193390['code']||null,'stack':_0x193390[_0x36a7fd(0x1d0)],'severity':_0x3fdb79[_0x36a7fd(0x190)],..._0x24449a},_0x14868b=_0x7dfe71||_0x36a7fd(0x1c0)+_0x193390[_0x36a7fd(0x12b)];logger['fatal'](_0x24237f,_0x14868b),writeToFileLog({..._0x24237f,'level':'fatal','msg':_0x14868b,'time':new Date()[_0x36a7fd(0x1b7)]()},_0x3fdb79['hLNcD']);},logHttpError=(_0x579194,_0x5d726f,_0x5d2614={})=>{const _0x3974df=a0_0x129db8,_0x53a63a={'nzsSB':_0x3974df(0x14f),'VkOeE':'user-agent','rpiwB':_0x3974df(0x144),'zHHLF':function(_0x1f3aae,_0x107ba9){return _0x1f3aae>=_0x107ba9;},'BPZGL':function(_0x4e88bd,_0x3e1488,_0x49e46b){return _0x4e88bd(_0x3e1488,_0x49e46b);},'ONkJN':'warn','PPqqA':function(_0x4a755a,_0x247593){return _0x4a755a>=_0x247593;},'pJLIo':'error'},_0x45b225={'event':'http_error','errorName':_0x579194['name']||_0x53a63a['nzsSB'],'errorMessage':_0x579194[_0x3974df(0x12b)],'errorCode':_0x579194[_0x3974df(0x16f)]||_0x579194[_0x3974df(0x1c7)]||0x1f4,'stack':_0x579194[_0x3974df(0x1d0)],'method':_0x5d726f?.['method'],'url':_0x5d726f?.[_0x3974df(0x175)]||_0x5d726f?.['originalUrl'],'path':_0x5d726f?.['path'],'ip':_0x5d726f?.['ip']||_0x5d726f?.[_0x3974df(0x171)]?.['remoteAddress'],'userAgent':_0x5d726f?.['get']?.(_0x53a63a['VkOeE']),'requestId':_0x5d726f?.['id']||_0x5d726f?.['headers']?.[_0x53a63a['rpiwB']],'body':_0x5d726f?.['body']?redactObject(_0x5d726f['body']):undefined,'query':_0x5d726f?.[_0x3974df(0x179)],..._0x5d2614},_0x3e9f08=_0x579194[_0x3974df(0x1c7)]||_0x579194[_0x3974df(0x126)]||0x1f4,_0x3ebbfa=_0x3974df(0x198)+_0x3e9f08+':\x20'+_0x579194['message'];_0x53a63a['zHHLF'](_0x3e9f08,0x1f4)?logger[_0x3974df(0x1c2)](_0x45b225,_0x3ebbfa):logger[_0x3974df(0x180)](_0x45b225,_0x3ebbfa),_0x53a63a['BPZGL'](writeToFileLog,{..._0x45b225,'level':_0x3e9f08>=0x1f4?'error':_0x53a63a[_0x3974df(0x1b1)],'msg':_0x3ebbfa,'time':new Date()['toISOString']()},_0x53a63a[_0x3974df(0x184)](_0x3e9f08,0x1f4)?_0x53a63a[_0x3974df(0x169)]:_0x3974df(0x180));},logUncaughtError=(_0x588fa7,_0x1b22ee)=>{const _0x436033=a0_0x129db8,_0x22c5d8={'CsloU':'Error','UZAav':function(_0x47bd6c,_0x3b9c8f){return _0x47bd6c(_0x3b9c8f);},'DQJPJ':function(_0x33299b,_0x37b4ba,_0x8f45ef){return _0x33299b(_0x37b4ba,_0x8f45ef);},'XfNnk':_0x436033(0x1c2)},_0x47c98b={'event':_0x588fa7,'errorName':_0x1b22ee?.[_0x436033(0x139)]||_0x22c5d8['CsloU'],'errorMessage':_0x1b22ee?.[_0x436033(0x12b)]||_0x22c5d8[_0x436033(0x177)](String,_0x1b22ee),'errorCode':_0x1b22ee?.[_0x436033(0x16f)]||null,'stack':_0x1b22ee?.[_0x436033(0x1d0)],'severity':'CRITICAL','processId':process['pid'],'memoryUsage':process[_0x436033(0x168)](),'uptime':process[_0x436033(0x16d)]()},_0x58bed1='['+_0x588fa7[_0x436033(0x193)]()+']\x20'+(_0x1b22ee?.['message']||_0x1b22ee);logger['fatal'](_0x47c98b,_0x58bed1),_0x22c5d8['DQJPJ'](writeToFileLog,{..._0x47c98b,'level':_0x436033(0x1cc),'msg':_0x58bed1,'time':new Date()[_0x436033(0x1b7)]()},_0x22c5d8[_0x436033(0x164)]);},setupGlobalErrorHandlers=()=>{const _0x95a281=a0_0x129db8,_0x5cd650={'KxpMQ':function(_0x36ad4a,_0x5e5145,_0x3506ca){return _0x36ad4a(_0x5e5145,_0x3506ca);},'LFmKF':_0x95a281(0x1bf),'EKEUU':function(_0x4a9d84,_0x53c499){return _0x4a9d84 instanceof _0x53c499;},'YSlsc':function(_0xd70c84,_0xcaecf3){return _0xd70c84(_0xcaecf3);},'SWkSc':function(_0x5a9a18,_0x5ee4dd,_0x5c0898){return _0x5a9a18(_0x5ee4dd,_0x5c0898);},'HyAiK':_0x95a281(0x135),'bpfhU':'unhandledRejection','RzpVu':'global_error_handlers_setup','AOgYF':_0x95a281(0x167)};process['on'](_0x5cd650['LFmKF'],_0x42ccac=>{const _0x193f0b=_0x95a281;_0x5cd650[_0x193f0b(0x1da)](logUncaughtError,_0x5cd650['LFmKF'],_0x42ccac),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x5cd650[_0x95a281(0x17e)],(_0x5d219d,_0x518779)=>{const _0x57da8c=_0x95a281,_0x18c413=_0x5cd650[_0x57da8c(0x140)](_0x5d219d,Error)?_0x5d219d:new Error(_0x5cd650[_0x57da8c(0x1dc)](String,_0x5d219d));_0x5cd650[_0x57da8c(0x181)](logUncaughtError,'unhandledRejection',_0x18c413);}),process['on'](_0x95a281(0x1ae),_0x291706=>{const _0x31d7c2=_0x95a281;logger['warn']({'event':_0x5cd650[_0x31d7c2(0x161)],'name':_0x291706[_0x31d7c2(0x139)],'message':_0x291706[_0x31d7c2(0x12b)],'stack':_0x291706['stack']},_0x31d7c2(0x1b9)+_0x291706[_0x31d7c2(0x12b)]);});const _0x6c83f={'event':_0x5cd650[_0x95a281(0x125)]},_0xddbfde=_0x5cd650[_0x95a281(0x1aa)];logger['info'](_0x6c83f,_0xddbfde),_0x5cd650[_0x95a281(0x1da)](writeToFileLog,{..._0x6c83f,'level':'info','msg':_0xddbfde,'time':new Date()[_0x95a281(0x1b7)]()},_0x95a281(0x137));},createErrorHandlerMiddleware=()=>{const _0x5e1ec2=a0_0x129db8,_0x325e11={'EnpmJ':'Internal\x20server\x20error','TTUES':_0x5e1ec2(0x144)};return(_0x43b4c3,_0x55897d,_0x2bb3ee,_0x5d8637)=>{const _0x595882=_0x5e1ec2;logHttpError(_0x43b4c3,_0x55897d);const _0x2a9905=_0x43b4c3[_0x595882(0x1c7)]||_0x43b4c3[_0x595882(0x126)]||0x1f4;_0x2bb3ee[_0x595882(0x126)](_0x2a9905)[_0x595882(0x14a)]({'success':![],'error':_0x2a9905>=0x1f4?_0x325e11['EnpmJ']:_0x43b4c3['message'],'requestId':_0x55897d['id']||_0x55897d['headers']?.[_0x325e11[_0x595882(0x13a)]]||null});};};module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x53c662=a0_0x55e3;function a0_0x4240(){const _0x1ecf39=['tg9VA3vWignHy2HLignSzwfYzwq','Bg9VA3vWq2fJAgu','ihzHBhvLkhmPig5VDcbMB3vUzcbPBIa','zxHWB3j0CW','tg9VA3vWigzPzwXKCYbWCM9JzxnZzwq','AgfZ','ChvZAa','C2XPy2u','rNnlvxG','mtiYmtvMA2fdwwi','Bg9VA3vWx3rHyMXLx2XVywrLza','yMDwtwC','z2v0','mZK3mZm5nMnZD2zJrq','Cw1wyNC','zw50CMLLCW','BxLZCwW','mZbpquDVq1G','odi5mtaWm0zOBKHrAG','DhjPBq','lI9KyI1TExnXBa','rMfPBgvKihrVigXVywqGBg9VA3vWihrHyMXLoIa','iezst00G','mZHXA0Lksuu','Burzv3y','vKPHz2i','Bg9HzeXVB2T1CfrHyMXL','mtq0mtC2mZrSruzStNq','Dg9mB3DLCKnHC2u','zNjVBq','ofzisNPiDW','mtm1ntCZnu5ZEKTjBG','lI9SB2DNzxi','zxHLy3v0zvf1zxj5','ode2otzeCgTnsxi','m2PxtgfuCq','CMvZB2X2zuXVB2T1CfzHBhvL','zgvIDwC','Bg9VA3vWx3rHyMXLx2XVywrFzxjYB3i','DuPpu2W','ChjVy2vZC0XVB2T1CezPzwXKCW','mtHluenWtw8','D0T6u1O','zM9YrwfJAa','BwfW','y2XLyxi','Bg9VA3vWx2nHy2HLx2nSzwfYzwq','DMfSAwrHDgvmB29RDxbwywX1zxm','lI9KyG','nJy4mLn4BgvOra','C2v0','tKXUDKe','BgvUz3rO','ndm1nZe5menxDxviDa'];a0_0x4240=function(){return _0x1ecf39;};return a0_0x4240();}(function(_0x108ec3,_0x4a1e9c){const _0xce746e=a0_0x55e3,_0x1956fa=_0x108ec3();while(!![]){try{const _0x9205e3=-parseInt(_0xce746e(0x1a7))/0x1*(-parseInt(_0xce746e(0x1b5))/0x2)+-parseInt(_0xce746e(0x18b))/0x3*(parseInt(_0xce746e(0x1ab))/0x4)+-parseInt(_0xce746e(0x187))/0x5*(-parseInt(_0xce746e(0x1af))/0x6)+-parseInt(_0xce746e(0x1b0))/0x7*(parseInt(_0xce746e(0x186))/0x8)+parseInt(_0xce746e(0x191))/0x9*(-parseInt(_0xce746e(0x19d))/0xa)+-parseInt(_0xce746e(0x183))/0xb+parseInt(_0xce746e(0x18a))/0xc*(parseInt(_0xce746e(0x199))/0xd);if(_0x9205e3===_0x4a1e9c)break;else _0x1956fa['push'](_0x1956fa['shift']());}catch(_0x5bef42){_0x1956fa['push'](_0x1956fa['shift']());}}}(a0_0x4240,0xb18b6));const dbType=(process['env']['DB_TYPE']||'postgresql')['toLowerCase']();let executeQuery;if(dbType==='oracle'){const oracleDb=require('./db-oracle');executeQuery=(_0x5ce357,_0x19c6de)=>oracleDb['executeQuery'](_0x5ce357,_0x19c6de);}else{if(dbType===a0_0x53c662(0x1ae)){const mysqlDb=require(a0_0x53c662(0x1b2));executeQuery=(_0x5ef826,_0x156bca)=>mysqlDb[a0_0x53c662(0x189)](_0x5ef826,_0x156bca);}else executeQuery=require(a0_0x53c662(0x198))['executeQuery'];}function a0_0x55e3(_0x13f2ce,_0x10858e){_0x13f2ce=_0x13f2ce-0x180;const _0x424066=a0_0x4240();let _0x55e347=_0x424066[_0x13f2ce];if(a0_0x55e3['sDfWLy']===undefined){var _0x4e73e9=function(_0x2fb8e1){const _0x279818='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x43830b='',_0x5c4db0='';for(let _0x572864=0x0,_0x49a808,_0x1da9a6,_0x4635ec=0x0;_0x1da9a6=_0x2fb8e1['charAt'](_0x4635ec++);~_0x1da9a6&&(_0x49a808=_0x572864%0x4?_0x49a808*0x40+_0x1da9a6:_0x1da9a6,_0x572864++%0x4)?_0x43830b+=String['fromCharCode'](0xff&_0x49a808>>(-0x2*_0x572864&0x6)):0x0){_0x1da9a6=_0x279818['indexOf'](_0x1da9a6);}for(let _0x56455e=0x0,_0xe41825=_0x43830b['length'];_0x56455e<_0xe41825;_0x56455e++){_0x5c4db0+='%'+('00'+_0x43830b['charCodeAt'](_0x56455e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c4db0);};a0_0x55e3['BaTTEb']=_0x4e73e9,a0_0x55e3['HuZohP']={},a0_0x55e3['sDfWLy']=!![];}const _0x463c79=_0x424066[0x0],_0x4e4567=_0x13f2ce+_0x463c79,_0x3c04c9=a0_0x55e3['HuZohP'][_0x4e4567];return!_0x3c04c9?(_0x55e347=a0_0x55e3['BaTTEb'](_0x55e347),a0_0x55e3['HuZohP'][_0x4e4567]=_0x55e347):_0x55e347=_0x3c04c9,_0x55e347;}const {logger}=require(a0_0x53c662(0x188));class LookupResolver{constructor(){const _0x31aa0a=a0_0x53c662;this[_0x31aa0a(0x19f)]=new Map();}['clearCache'](){const _0xb12018=a0_0x53c662;this['lookupCache'][_0xb12018(0x195)](),logger[_0xb12018(0x18d)]({'event':_0xb12018(0x196)},_0xb12018(0x19e));}async[a0_0x53c662(0x182)](_0x4c9f9b,_0x14b521,_0x354aff){const _0xf4d948=a0_0x53c662,_0x343347={'NLnvA':function(_0x4d15e7,_0x548963){return _0x4d15e7!==_0x548963;},'FsKUx':function(_0x3fdcc7,_0x50af4c){return _0x3fdcc7!==_0x50af4c;},'umkHV':function(_0x5e9f2f,_0x124cab){return _0x5e9f2f(_0x124cab);},'bZVjp':_0xf4d948(0x1a8)},_0x558f84=_0x4c9f9b+':'+_0x14b521+':'+_0x354aff;if(this[_0xf4d948(0x19f)][_0xf4d948(0x1a3)](_0x558f84))return this['lookupCache']['get'](_0x558f84);try{const _0x1e9c77='SELECT\x20'+_0x354aff+',\x20'+_0x14b521+_0xf4d948(0x1b4)+_0x4c9f9b,_0x3fbd62=await _0x343347['umkHV'](executeQuery,_0x1e9c77),_0x4a16fe=new Map();return _0x3fbd62['forEach'](_0x25d8eb=>{const _0x2d5a9a=_0xf4d948,_0x2e668f=_0x343347[_0x2d5a9a(0x19b)](_0x25d8eb[_0x14b521],undefined)?_0x25d8eb[_0x14b521]:_0x25d8eb[_0x14b521['toUpperCase']()],_0x49aa91=_0x25d8eb[_0x354aff]!==undefined?_0x25d8eb[_0x354aff]:_0x25d8eb[_0x354aff['toUpperCase']()];_0x2e668f!==null&&_0x343347[_0x2d5a9a(0x1a6)](_0x2e668f,undefined)&&(_0x4a16fe[_0x2d5a9a(0x19a)](String(_0x2e668f)['toLowerCase']()[_0x2d5a9a(0x1b1)](),_0x49aa91),_0x4a16fe[_0x2d5a9a(0x19a)](String(_0x2e668f)['trim'](),_0x49aa91));}),this[_0xf4d948(0x19f)]['set'](_0x558f84,_0x4a16fe),logger['info']({'event':_0x343347['bZVjp'],'table':_0x4c9f9b,'column':_0x14b521,'count':_0x3fbd62['length']},'Lookup\x20table\x20loaded:\x20'+_0x4c9f9b),_0x4a16fe;}catch(_0xd5323e){logger['error']({'event':_0xf4d948(0x18e),'table':_0x4c9f9b,'error':_0xd5323e['message']},_0xf4d948(0x1b3)+_0x4c9f9b);throw _0xd5323e;}}[a0_0x53c662(0x18c)](_0x4200d1,_0x4b0a11){const _0x17e306=a0_0x53c662,_0x4bc42a={'zqxUw':function(_0x3dba1a,_0x297dc9){return _0x3dba1a===_0x297dc9;},'YfmWN':function(_0x1d8904,_0x1efc46){return _0x1d8904===_0x1efc46;}};if(_0x4bc42a['zqxUw'](_0x4200d1,null)||_0x4200d1===undefined||_0x4bc42a['YfmWN'](_0x4200d1,''))return null;const _0x51a41a=String(_0x4200d1)['trim']();if(_0x4b0a11[_0x17e306(0x1a3)](_0x51a41a))return _0x4b0a11['get'](_0x51a41a);const _0x116a52=_0x51a41a['toLowerCase']();if(_0x4b0a11['has'](_0x116a52))return _0x4b0a11['get'](_0x116a52);return null;}async[a0_0x53c662(0x190)](_0xfa2ce7,_0x56fb6a){const _0x45d570=a0_0x53c662,_0x26b540={'VJagb':function(_0x1d4e19,_0x293721){return _0x1d4e19===_0x293721;},'qmVbw':function(_0x27ce24,_0x288c95){return _0x27ce24===_0x288c95;},'YXkRj':function(_0x3f0ba6,_0x59a285){return _0x3f0ba6!==_0x59a285;}};if(!_0x56fb6a||_0x26b540[_0x45d570(0x1ac)](Object['keys'](_0x56fb6a)[_0x45d570(0x19c)],0x0))return{'processedRows':_0xfa2ce7,'errors':[]};const _0x3ffab1=[],_0x164064=new Map();for(const [_0x46472b,_0x88b366]of Object['entries'](_0x56fb6a)){const {lookupTable:_0x56758c,lookupColumn:_0x554ecb,lookupIdColumn:_0x5a4a59}=_0x88b366,_0x45d51a=_0x56758c+':'+_0x554ecb+':'+_0x5a4a59;if(!_0x164064['has'](_0x45d51a)){const _0x1e7104=await this[_0x45d570(0x182)](_0x56758c,_0x554ecb,_0x5a4a59);_0x164064[_0x45d570(0x19a)](_0x45d51a,_0x1e7104);}}const _0x3ff192=_0xfa2ce7[_0x45d570(0x194)]((_0x5c1ec4,_0x4647db)=>{const _0x3072ed=_0x45d570,_0x56d4ce={..._0x5c1ec4};for(const [_0xef0e20,_0x44f1ed]of Object[_0x3072ed(0x1ad)](_0x56fb6a)){const {lookupTable:_0x5833d1,lookupColumn:_0x556c25,lookupIdColumn:_0x55db71,targetField:_0xbcac10,required:_0x508c23}=_0x44f1ed,_0x4a46ff=_0x5833d1+':'+_0x556c25+':'+_0x55db71,_0x5a8bff=_0x164064[_0x3072ed(0x1aa)](_0x4a46ff),_0x5aec64=_0x5c1ec4[_0xef0e20];if((_0x5aec64===null||_0x26b540[_0x3072ed(0x181)](_0x5aec64,undefined)||_0x26b540[_0x3072ed(0x1ac)](_0x5aec64,''))&&!_0x508c23){_0x56d4ce[_0xbcac10]=null;continue;}const _0x13f8af=this[_0x3072ed(0x18c)](_0x5aec64,_0x5a8bff);_0x26b540['YXkRj'](_0x13f8af,null)?_0x56d4ce[_0xbcac10]=_0x13f8af:(_0x508c23&&_0x3ffab1['push']({'rowIndex':_0x4647db,'field':_0xef0e20,'value':_0x5aec64,'targetField':_0xbcac10,'lookupTable':_0x5833d1,'message':'Value\x20\x22'+_0x5aec64+'\x22\x20not\x20found\x20in\x20'+_0x5833d1}),_0x56d4ce[_0xbcac10]=null);}return _0x56d4ce;});return logger['info']({'event':'lookup_fields_processed','totalRows':_0xfa2ce7[_0x45d570(0x19c)],'errorCount':_0x3ffab1['length'],'lookupFieldCount':Object['keys'](_0x56fb6a)[_0x45d570(0x19c)]},_0x45d570(0x1a2)),{'processedRows':_0x3ff192,'errors':_0x3ffab1};}['getDistinctValues'](_0x1306b0,_0x3af4e3){const _0x3a62b0=a0_0x53c662,_0x5e5048={'mDYWv':function(_0x32d708,_0x333e87){return _0x32d708!==_0x333e87;},'MNKPq':function(_0xb934f1,_0x3510c6){return _0xb934f1!==_0x3510c6;},'bgVMg':function(_0x4cb245,_0x5813b3){return _0x4cb245!==_0x5813b3;},'uJOSl':function(_0x1df7dc,_0x40c533){return _0x1df7dc(_0x40c533);}},_0xdd7ebf=new Set();return _0x1306b0['forEach'](_0x53856f=>{const _0x45a292=a0_0x55e3,_0x5ecafb=_0x53856f[_0x3af4e3];_0x5e5048[_0x45a292(0x180)](_0x5ecafb,null)&&_0x5e5048['MNKPq'](_0x5ecafb,undefined)&&_0x5e5048[_0x45a292(0x1a9)](_0x5ecafb,'')&&_0xdd7ebf['add'](_0x5e5048[_0x45a292(0x18f)](String,_0x5ecafb)[_0x45a292(0x1b1)]());}),Array[_0x3a62b0(0x185)](_0xdd7ebf);}async[a0_0x53c662(0x197)](_0xef68a3,_0x2c03a8){const _0xc91e43=a0_0x53c662,_0xcc4a44={'wKzSZ':function(_0x3d1c27,_0x2d69a2){return _0x3d1c27!==_0x2d69a2;}};if(!_0x2c03a8||Object['keys'](_0x2c03a8)[_0xc91e43(0x19c)]===0x0)return{'valid':!![],'errors':[],'suggestions':{}};const _0x1f4642=[],_0x25459f={};for(const [_0x25e822,_0x17bb2f]of Object['entries'](_0x2c03a8)){const {lookupTable:_0x3080ff,lookupColumn:_0x4a84fd,lookupIdColumn:_0x1f66b7,required:_0x972b27}=_0x17bb2f,_0x55f883=this['getDistinctValues'](_0xef68a3,_0x25e822),_0x3cf463=await this[_0xc91e43(0x182)](_0x3080ff,_0x4a84fd,_0x1f66b7),_0x241e40=[],_0x36eff0=[];_0x55f883[_0xc91e43(0x193)](_0x3d9155=>{const _0x558060=_0xc91e43,_0xdfd432=this['resolveLookupValue'](_0x3d9155,_0x3cf463);_0xcc4a44[_0x558060(0x192)](_0xdfd432,null)?_0x36eff0['push'](_0x3d9155):_0x241e40[_0x558060(0x1a4)](_0x3d9155);});if(_0x241e40[_0xc91e43(0x19c)]>0x0&&_0x972b27){_0x1f4642[_0xc91e43(0x1a4)]({'field':_0x25e822,'lookupTable':_0x3080ff,'invalidValues':_0x241e40,'message':_0x241e40['length']+_0xc91e43(0x1a0)+_0x3080ff});const _0x3c2dfd=[];_0x3cf463['forEach']((_0x842d5e,_0x22c1dd)=>{const _0x1a4298=_0xc91e43;if(_0x22c1dd===_0x22c1dd[_0x1a4298(0x184)]())return;_0x3c2dfd[_0x1a4298(0x1a4)](_0x22c1dd);}),_0x25459f[_0x25e822]={'invalidValues':_0x241e40,'availableValues':_0x3c2dfd[_0xc91e43(0x1a5)](0x0,0x32)};}}return{'valid':_0x1f4642[_0xc91e43(0x19c)]===0x0,'errors':_0x1f4642,'suggestions':_0x25459f};}}module[a0_0x53c662(0x1a1)]=new LookupResolver();
|
|
1
|
+
const a0_0x569339=a0_0x5bc8;function a0_0x3f0c(){const _0x4a1d7c=['CNLgCfm','og9hzvPoEG','Bg9VA3vWx2nHy2HLx2nSzwfYzwq','zM9YrwfJAa','v29wyLG','Dg9mB3DLCKnHC2u','BgvUz3rO','nezHCgznDa','Bg9HzeXVB2T1CfrHyMXL','BxLZCwW','ChvZAa','mKDIEK9grW','DhjPBq','vMfSDwuGiG','C2v0','BwfW','wND2rvG','zw52','ntmWtw1KuMjt','zw50CMLLCW','DeDzqLq','mtuWmJuXnuv2vhfdrG','AuvfCNu','mtqYndD3wfzvsuO','iIbUB3qGzM91BMqGAw4G','rMfPBgvKihrVigXVywqGBg9VA3vWihrHyMXLoIa','ntu0nZaZvLLSDg5M','qxbYDwm','otbprMDsuve','AgfZ','tg9VA3vWignHy2HLignSzwfYzwq','uvfMDxu','nJa2mtK2nxDxshPxCG','mtjvB2LIEhG','Aw5MBW','A2v5CW','zxHLy3v0zvf1zxj5','lI9SB2DNzxi','ota0mZjwqu5nt0K','BwvZC2fNzq','ndCWmdnXvvLes1a','CMvZB2X2zuXVB2T1CfzHBhvL','y2XLyxjdywnOzq','z2v0rgLZDgLUy3rwywX1zxm','y2XLyxi','Cg9ZDgDYzxnXBa','CNbTwKK','iezst00G','nty5nZzeugHWz2K'];a0_0x3f0c=function(){return _0x4a1d7c;};return a0_0x3f0c();}(function(_0x467543,_0x125647){const _0xc56b51=a0_0x5bc8,_0x5b0711=_0x467543();while(!![]){try{const _0x136f18=parseInt(_0xc56b51(0x1b0))/0x1*(-parseInt(_0xc56b51(0x19a))/0x2)+-parseInt(_0xc56b51(0x1bf))/0x3*(-parseInt(_0xc56b51(0x1ac))/0x4)+parseInt(_0xc56b51(0x1c1))/0x5*(-parseInt(_0xc56b51(0x1a4))/0x6)+-parseInt(_0xc56b51(0x1ba))/0x7*(parseInt(_0xc56b51(0x1a6))/0x8)+parseInt(_0xc56b51(0x1bc))/0x9*(parseInt(_0xc56b51(0x1b7))/0xa)+parseInt(_0xc56b51(0x19c))/0xb*(-parseInt(_0xc56b51(0x1c6))/0xc)+parseInt(_0xc56b51(0x1c5))/0xd;if(_0x136f18===_0x125647)break;else _0x5b0711['push'](_0x5b0711['shift']());}catch(_0xddba89){_0x5b0711['push'](_0x5b0711['shift']());}}}(a0_0x3f0c,0x3e36b));function a0_0x5bc8(_0xb98bf8,_0x2cd981){_0xb98bf8=_0xb98bf8-0x199;const _0x3f0ca7=a0_0x3f0c();let _0x5bc87f=_0x3f0ca7[_0xb98bf8];if(a0_0x5bc8['HhFsWr']===undefined){var _0x53cfbc=function(_0x550fee){const _0x1e838e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d1144='',_0x500f41='';for(let _0x36f7f8=0x0,_0x5b70b2,_0xa4abb2,_0x10ad59=0x0;_0xa4abb2=_0x550fee['charAt'](_0x10ad59++);~_0xa4abb2&&(_0x5b70b2=_0x36f7f8%0x4?_0x5b70b2*0x40+_0xa4abb2:_0xa4abb2,_0x36f7f8++%0x4)?_0x4d1144+=String['fromCharCode'](0xff&_0x5b70b2>>(-0x2*_0x36f7f8&0x6)):0x0){_0xa4abb2=_0x1e838e['indexOf'](_0xa4abb2);}for(let _0x2e7eb8=0x0,_0x26a20d=_0x4d1144['length'];_0x2e7eb8<_0x26a20d;_0x2e7eb8++){_0x500f41+='%'+('00'+_0x4d1144['charCodeAt'](_0x2e7eb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x500f41);};a0_0x5bc8['sOrPyf']=_0x53cfbc,a0_0x5bc8['qEOnqY']={},a0_0x5bc8['HhFsWr']=!![];}const _0x1344bb=_0x3f0ca7[0x0],_0x6d146b=_0xb98bf8+_0x1344bb,_0x5661e0=a0_0x5bc8['qEOnqY'][_0x6d146b];return!_0x5661e0?(_0x5bc87f=a0_0x5bc8['sOrPyf'](_0x5bc87f),a0_0x5bc8['qEOnqY'][_0x6d146b]=_0x5bc87f):_0x5bc87f=_0x5661e0,_0x5bc87f;}const dbType=(process[a0_0x569339(0x1b6)]['DB_TYPE']||a0_0x569339(0x1a1))['toLowerCase']();let executeQuery;if(dbType==='oracle'){const oracleDb=require('./db-oracle');executeQuery=(_0x320fd2,_0x15d162)=>oracleDb[a0_0x569339(0x1c9)](_0x320fd2,_0x15d162);}else{if(dbType===a0_0x569339(0x1ae)){const mysqlDb=require('./db-mysql');executeQuery=(_0x489987,_0x442805)=>mysqlDb['executeQuery'](_0x489987,_0x442805);}else executeQuery=require('./db')['executeQuery'];}const {logger}=require(a0_0x569339(0x199));class LookupResolver{constructor(){this['lookupCache']=new Map();}[a0_0x569339(0x19e)](){const _0x27a9bb=a0_0x569339,_0x2e3c75={'iEEru':_0x27a9bb(0x1a7),'hCxcu':_0x27a9bb(0x1c3)};this['lookupCache'][_0x27a9bb(0x1a0)](),logger['debug']({'event':_0x2e3c75[_0x27a9bb(0x1bb)]},_0x2e3c75['hCxcu']);}async[a0_0x569339(0x1ad)](_0x2a85dc,_0x200f39,_0x5b649d){const _0x2289ee=a0_0x569339,_0x46e377={'ygMWR':function(_0x53c0b3,_0x220345){return _0x53c0b3!==_0x220345;},'Apruc':function(_0x53fb68,_0x4b4e58){return _0x53fb68!==_0x4b4e58;},'NkxKU':function(_0x2a3735,_0x3d0068){return _0x2a3735(_0x3d0068);}},_0x558ea6=_0x2a85dc+':'+_0x200f39+':'+_0x5b649d;if(this['lookupCache']['has'](_0x558ea6))return this['lookupCache']['get'](_0x558ea6);try{const _0x2dd720='SELECT\x20'+_0x5b649d+',\x20'+_0x200f39+_0x2289ee(0x1a3)+_0x2a85dc,_0x2f1640=await executeQuery(_0x2dd720),_0x14306b=new Map();return _0x2f1640['forEach'](_0x47d387=>{const _0x1e639b=_0x2289ee,_0xa6d5f=_0x47d387[_0x200f39]!==undefined?_0x47d387[_0x200f39]:_0x47d387[_0x200f39['toUpperCase']()],_0x5c4902=_0x47d387[_0x5b649d]!==undefined?_0x47d387[_0x5b649d]:_0x47d387[_0x5b649d['toUpperCase']()];_0x46e377['ygMWR'](_0xa6d5f,null)&&_0x46e377[_0x1e639b(0x1c0)](_0xa6d5f,undefined)&&(_0x14306b['set'](_0x46e377['NkxKU'](String,_0xa6d5f)['toLowerCase']()['trim'](),_0x5c4902),_0x14306b[_0x1e639b(0x1b3)](String(_0xa6d5f)[_0x1e639b(0x1b1)](),_0x5c4902));}),this['lookupCache'][_0x2289ee(0x1b3)](_0x558ea6,_0x14306b),logger[_0x2289ee(0x1c7)]({'event':'lookup_table_loaded','table':_0x2a85dc,'column':_0x200f39,'count':_0x2f1640[_0x2289ee(0x1ab)]},'Lookup\x20table\x20loaded:\x20'+_0x2a85dc),_0x14306b;}catch(_0x5942b8){logger['error']({'event':'lookup_table_load_error','table':_0x2a85dc,'error':_0x5942b8[_0x2289ee(0x19b)]},_0x2289ee(0x1be)+_0x2a85dc);throw _0x5942b8;}}['resolveLookupValue'](_0x40be3b,_0x4c794a){const _0x39d0be=a0_0x569339,_0x162ada={'GgbBI':function(_0x51692b,_0xccfe32){return _0x51692b===_0xccfe32;},'rpmZI':function(_0x5c96af,_0x47c365){return _0x5c96af(_0x47c365);}};if(_0x162ada['GgbBI'](_0x40be3b,null)||_0x40be3b===undefined||_0x40be3b==='')return null;const _0x1a4898=_0x162ada[_0x39d0be(0x1a2)](String,_0x40be3b)[_0x39d0be(0x1b1)]();if(_0x4c794a['has'](_0x1a4898))return _0x4c794a['get'](_0x1a4898);const _0x1f88c8=_0x1a4898[_0x39d0be(0x1aa)]();if(_0x4c794a[_0x39d0be(0x1c2)](_0x1f88c8))return _0x4c794a['get'](_0x1f88c8);return null;}async['processLookupFields'](_0x3c5283,_0x5e4486){const _0x3198d6=a0_0x569339,_0x57ea05={'ryFpS':function(_0xa9ae65,_0x5368e1){return _0xa9ae65===_0x5368e1;},'QQfuu':'Lookup\x20fields\x20processed'};if(!_0x5e4486||Object[_0x3198d6(0x1c8)](_0x5e4486)['length']===0x0)return{'processedRows':_0x3c5283,'errors':[]};const _0x398ade=[],_0x1edc2f=new Map();for(const [_0x494c84,_0x5c408b]of Object['entries'](_0x5e4486)){const {lookupTable:_0x14c1dc,lookupColumn:_0x22ca95,lookupIdColumn:_0xd842f7}=_0x5c408b,_0x1c6b20=_0x14c1dc+':'+_0x22ca95+':'+_0xd842f7;if(!_0x1edc2f['has'](_0x1c6b20)){const _0x1e716e=await this[_0x3198d6(0x1ad)](_0x14c1dc,_0x22ca95,_0xd842f7);_0x1edc2f[_0x3198d6(0x1b3)](_0x1c6b20,_0x1e716e);}}const _0x93c9ab=_0x3c5283[_0x3198d6(0x1b4)]((_0xd19bfc,_0x3c55e6)=>{const _0x513456=_0x3198d6,_0x436ad9={..._0xd19bfc};for(const [_0x122cae,_0x152ae3]of Object[_0x513456(0x1b8)](_0x5e4486)){const {lookupTable:_0x7b4ef4,lookupColumn:_0x1e7c7c,lookupIdColumn:_0x505ad9,targetField:_0x407712,required:_0xcf3a81}=_0x152ae3,_0xa4f33b=_0x7b4ef4+':'+_0x1e7c7c+':'+_0x505ad9,_0x3f7b46=_0x1edc2f['get'](_0xa4f33b),_0x33c6a7=_0xd19bfc[_0x122cae];if((_0x57ea05[_0x513456(0x1a5)](_0x33c6a7,null)||_0x33c6a7===undefined||_0x57ea05[_0x513456(0x1a5)](_0x33c6a7,''))&&!_0xcf3a81){_0x436ad9[_0x407712]=null;continue;}const _0xed063a=this['resolveLookupValue'](_0x33c6a7,_0x3f7b46);_0xed063a!==null?_0x436ad9[_0x407712]=_0xed063a:(_0xcf3a81&&_0x398ade[_0x513456(0x1af)]({'rowIndex':_0x3c55e6,'field':_0x122cae,'value':_0x33c6a7,'targetField':_0x407712,'lookupTable':_0x7b4ef4,'message':_0x513456(0x1b2)+_0x33c6a7+_0x513456(0x1bd)+_0x7b4ef4}),_0x436ad9[_0x407712]=null);}return _0x436ad9;});return logger[_0x3198d6(0x1c7)]({'event':'lookup_fields_processed','totalRows':_0x3c5283['length'],'errorCount':_0x398ade['length'],'lookupFieldCount':Object['keys'](_0x5e4486)[_0x3198d6(0x1ab)]},_0x57ea05[_0x3198d6(0x1c4)]),{'processedRows':_0x93c9ab,'errors':_0x398ade};}[a0_0x569339(0x19f)](_0x124c73,_0x334e8d){const _0x5d3b5f=a0_0x569339,_0x4aa691={'ZwvEX':function(_0x253a34,_0x5af9a2){return _0x253a34!==_0x5af9a2;},'WoVbX':function(_0x19f59c,_0x3ae8e1){return _0x19f59c(_0x3ae8e1);}},_0x252df7=new Set();return _0x124c73[_0x5d3b5f(0x1a8)](_0x116ca8=>{const _0x3a690f=_0x5d3b5f,_0x199afd=_0x116ca8[_0x334e8d];_0x199afd!==null&&_0x4aa691[_0x3a690f(0x1b5)](_0x199afd,undefined)&&_0x199afd!==''&&_0x252df7['add'](_0x4aa691[_0x3a690f(0x1a9)](String,_0x199afd)[_0x3a690f(0x1b1)]());}),Array['from'](_0x252df7);}async['validateLookupValues'](_0x3c56c9,_0x4a035b){const _0x4963f3=a0_0x569339,_0x304def={'tGYBT':function(_0x1387bb,_0x204765){return _0x1387bb===_0x204765;}};if(!_0x4a035b||Object['keys'](_0x4a035b)[_0x4963f3(0x1ab)]===0x0)return{'valid':!![],'errors':[],'suggestions':{}};const _0x5069bf=[],_0x1d6490={};for(const [_0x54b50d,_0x50a58c]of Object[_0x4963f3(0x1b8)](_0x4a035b)){const {lookupTable:_0x9701cd,lookupColumn:_0x416519,lookupIdColumn:_0x56b2dc,required:_0x19f763}=_0x50a58c,_0x5791ca=this['getDistinctValues'](_0x3c56c9,_0x54b50d),_0x5476a7=await this[_0x4963f3(0x1ad)](_0x9701cd,_0x416519,_0x56b2dc),_0x41a3c1=[],_0x3b3d40=[];_0x5791ca[_0x4963f3(0x1a8)](_0x1d1136=>{const _0xd5483d=_0x4963f3,_0x1b0030=this[_0xd5483d(0x19d)](_0x1d1136,_0x5476a7);_0x1b0030!==null?_0x3b3d40['push'](_0x1d1136):_0x41a3c1['push'](_0x1d1136);});if(_0x41a3c1[_0x4963f3(0x1ab)]>0x0&&_0x19f763){_0x5069bf['push']({'field':_0x54b50d,'lookupTable':_0x9701cd,'invalidValues':_0x41a3c1,'message':_0x41a3c1[_0x4963f3(0x1ab)]+'\x20value(s)\x20not\x20found\x20in\x20'+_0x9701cd});const _0x1d3042=[];_0x5476a7['forEach']((_0x4d754e,_0x1414a7)=>{const _0x17bb11=_0x4963f3;if(_0x1414a7===_0x1414a7[_0x17bb11(0x1aa)]())return;_0x1d3042['push'](_0x1414a7);}),_0x1d6490[_0x54b50d]={'invalidValues':_0x41a3c1,'availableValues':_0x1d3042['slice'](0x0,0x32)};}}return{'valid':_0x304def[_0x4963f3(0x1b9)](_0x5069bf[_0x4963f3(0x1ab)],0x0),'errors':_0x5069bf,'suggestions':_0x1d6490};}}module['exports']=new LookupResolver();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x5ca5e8=a0_0x24c1;function a0_0x5833(){const _0x1d8762=['m0nOrwn1rW','Cgf5Bg9Hzf9SB2fKzwq','nty3nJu5nxPxCwXquG','lI4VlI4VCgf5Bg9Hza','DxrMoa','mtm2odCYsKvAExbm','y29SDw1UrM9YBwf0CW','lMPZB24','BwvZC2fNzq','A0nLvNG','ogDHDKrVvW','Cgf5Bg9HzerPCG','C2v0','mZbbv0jLDgi','zxjYB3i','Cgf0Aa','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','AM9PBG','ugf5Bg9HzcbUB3qGzM91BMq6ia','zxHWB3j0CW','CgfYC2u','mJK5mtyYohHVvxzvyG','mJGYodm1vvfJsvzo','mtm1nZq5mdDWv3DYreK','nZG0ndrzrwzOr20','y2fJAgu','DgHyvhy','mtLHBK1KAMq','zgvIDwC','mtu0nJaZmJbbwxfAEhC','ChjVBwLZzxm','CMvHzezPBgu','Aw5MBW','CMvWBgfJzq','mtq0mwPWtevKuW','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','lI9SB2DNzxi'];a0_0x5833=function(){return _0x1d8762;};return a0_0x5833();}(function(_0x5ae1ef,_0x4d2c78){const _0x43d3e2=a0_0x24c1,_0x1f4565=_0x5ae1ef();while(!![]){try{const _0xa63072=-parseInt(_0x43d3e2(0xfe))/0x1*(parseInt(_0x43d3e2(0xfb))/0x2)+-parseInt(_0x43d3e2(0x108))/0x3*(parseInt(_0x43d3e2(0xf8))/0x4)+parseInt(_0x43d3e2(0x10a))/0x5+-parseInt(_0x43d3e2(0xf0))/0x6*(parseInt(_0x43d3e2(0xf9))/0x7)+-parseInt(_0x43d3e2(0x112))/0x8*(parseInt(_0x43d3e2(0xfa))/0x9)+parseInt(_0x43d3e2(0x100))/0xa+-parseInt(_0x43d3e2(0x105))/0xb*(-parseInt(_0x43d3e2(0x10d))/0xc);if(_0xa63072===_0x4d2c78)break;else _0x1f4565['push'](_0x1f4565['shift']());}catch(_0x4dd355){_0x1f4565['push'](_0x1f4565['shift']());}}}(a0_0x5833,0xed520));const fs=require('fs')[a0_0x5ca5e8(0x101)],path=require(a0_0x5ca5e8(0xf2)),{logger}=require(a0_0x5ca5e8(0x107));class PayloadLoader{constructor(){const _0x3b3cd6=a0_0x5ca5e8,_0x1b8375={'ZGJMn':_0x3b3cd6(0x10b)};this['payloadDir']=path[_0x3b3cd6(0xf4)](__dirname,_0x1b8375['ZGJMn']),this['cache']=new Map();}async['loadPayload'](_0x245194,_0x5d5644){const _0x4e6194=a0_0x5ca5e8,_0x540f0f={'kCeVx':'Failed\x20to\x20load\x20payload'},_0x471c53=_0x245194+':'+_0x5d5644;if(this[_0x4e6194(0xfc)]['has'](_0x471c53))return this[_0x4e6194(0xfc)]['get'](_0x471c53);const _0x5557ce=path[_0x4e6194(0xf4)](this[_0x4e6194(0x113)],_0x245194+'_'+_0x5d5644+_0x4e6194(0x10f));try{const _0x214bda=await fs['readFile'](_0x5557ce,'utf8'),_0x194e03=JSON['parse'](_0x214bda);return this['cache'][_0x4e6194(0xef)](_0x471c53,_0x194e03),logger[_0x4e6194(0xff)]({'event':_0x4e6194(0x109),'project':_0x245194,'resource':_0x5d5644},'Payload\x20loaded\x20successfully'),_0x194e03;}catch(_0x398e89){logger[_0x4e6194(0xf1)]({'event':_0x4e6194(0xf3),'project':_0x245194,'resource':_0x5d5644,'error':_0x398e89['message']},_0x540f0f[_0x4e6194(0x111)]);throw new Error(_0x4e6194(0xf5)+_0x245194+'_'+_0x5d5644);}}async['loadPayloadByName'](_0x3f56f9){const _0x582af4=a0_0x5ca5e8,_0x59ab39={'thXTv':_0x582af4(0x106),'mepzo':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0x49d41b='payload:'+_0x3f56f9;if(this[_0x582af4(0xfc)]['has'](_0x49d41b))return this[_0x582af4(0xfc)]['get'](_0x49d41b);const _0x52821e=path['join'](this['payloadDir'],_0x3f56f9+'.json');try{const _0xc0cd34=await fs[_0x582af4(0x102)](_0x52821e,_0x582af4(0x10c)),_0x4a8017=JSON[_0x582af4(0xf7)](_0xc0cd34);return this[_0x582af4(0xfc)][_0x582af4(0xef)](_0x49d41b,_0x4a8017),logger[_0x582af4(0xff)]({'event':_0x582af4(0x109),'payloadName':_0x3f56f9},_0x59ab39[_0x582af4(0xfd)]),_0x4a8017;}catch(_0x33f237){logger['error']({'event':'payload_load_error','payloadName':_0x3f56f9,'error':_0x33f237[_0x582af4(0x110)]},_0x59ab39['mepzo']);throw new Error('Payload\x20not\x20found:\x20'+_0x3f56f9);}}['isActionEnabled'](_0x4c9eaf,_0x25b958){return _0x4c9eaf['action']&&_0x4c9eaf['action'][_0x25b958]===!![];}['getExportConfig'](_0x54b809){const _0x4a7aa1=a0_0x5ca5e8;return{'columns':_0x54b809['fieldName']||[],'filename':_0x54b809['tableName'][_0x4a7aa1(0x104)]('.','-')+'-export','datatablesQuery':_0x54b809['datatablesQuery']||null,'columnFormats':_0x54b809[_0x4a7aa1(0x10e)]||null,'fieldLabels':_0x54b809['fieldLabels']||null};}['clearCache'](){const _0xef8c92=a0_0x5ca5e8;this['cache']['clear'](),logger[_0xef8c92(0x103)]({'event':'payload_cache_cleared'},'Payload\x20cache\x20cleared');}}function a0_0x24c1(_0x577c5c,_0x80ac39){_0x577c5c=_0x577c5c-0xef;const _0x5833e5=a0_0x5833();let _0x24c1aa=_0x5833e5[_0x577c5c];if(a0_0x24c1['TCdnVW']===undefined){var _0x113173=function(_0xf18805){const _0x43d6c2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4680a5='',_0x54f9d7='';for(let _0x12d1dc=0x0,_0x90bed,_0x446c1d,_0x384621=0x0;_0x446c1d=_0xf18805['charAt'](_0x384621++);~_0x446c1d&&(_0x90bed=_0x12d1dc%0x4?_0x90bed*0x40+_0x446c1d:_0x446c1d,_0x12d1dc++%0x4)?_0x4680a5+=String['fromCharCode'](0xff&_0x90bed>>(-0x2*_0x12d1dc&0x6)):0x0){_0x446c1d=_0x43d6c2['indexOf'](_0x446c1d);}for(let _0x4ca9bd=0x0,_0x53b766=_0x4680a5['length'];_0x4ca9bd<_0x53b766;_0x4ca9bd++){_0x54f9d7+='%'+('00'+_0x4680a5['charCodeAt'](_0x4ca9bd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x54f9d7);};a0_0x24c1['jXIvCA']=_0x113173,a0_0x24c1['yORieN']={},a0_0x24c1['TCdnVW']=!![];}const _0x260dd2=_0x5833e5[0x0],_0x6fc158=_0x577c5c+_0x260dd2,_0x3a36b2=a0_0x24c1['yORieN'][_0x6fc158];return!_0x3a36b2?(_0x24c1aa=a0_0x24c1['jXIvCA'](_0x24c1aa),a0_0x24c1['yORieN'][_0x6fc158]=_0x24c1aa):_0x24c1aa=_0x3a36b2,_0x24c1aa;}module[a0_0x5ca5e8(0xf6)]=new PayloadLoader();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';(function(_0xdd90a3,_0xc2cc2b){var _0x32831b=a0_0x3c4e,_0x3b8d8e=_0xdd90a3();while(!![]){try{var _0x57d646=-parseInt(_0x32831b(0x120))/0x1*(parseInt(_0x32831b(0x127))/0x2)+parseInt(_0x32831b(0x11f))/0x3*(parseInt(_0x32831b(0x126))/0x4)+-parseInt(_0x32831b(0x128))/0x5+-parseInt(_0x32831b(0x121))/0x6+parseInt(_0x32831b(0x125))/0x7+parseInt(_0x32831b(0x123))/0x8+-parseInt(_0x32831b(0x122))/0x9;if(_0x57d646===_0xc2cc2b)break;else _0x3b8d8e['push'](_0x3b8d8e['shift']());}catch(_0x108bb7){_0x3b8d8e['push'](_0x3b8d8e['shift']());}}}(a0_0x5ade,0x8a6f6));function a0_0x5ade(){var _0x3d0661=['mtm0ohDjsK9eDa','nJzIDLLNB04','mJqZnJa1v1LVwfLe','mZe3n0f4t3fRCG','mJiZotHJExr6t3y','mJmZndq2oe5kuMn5va','ntCXodK2uhnJthn0','nti1mZa2neL3C1D4qq','Dg9ju09tDhjPBMC','ntu1nZKZn2f4CxLfuq'];a0_0x5ade=function(){return _0x3d0661;};return a0_0x5ade();}function createResponse(_0x71523e,_0x10fe09,_0x24e971=null){return{'success':!![],'statusCode':_0x71523e,'message':_0x10fe09,'data':_0x24e971,'timestamp':new Date()['toISOString']()};}function a0_0x3c4e(_0x250fd2,_0x265196){_0x250fd2=_0x250fd2-0x11f;var _0x5ade75=a0_0x5ade();var _0x3c4e45=_0x5ade75[_0x250fd2];if(a0_0x3c4e['KhKXlA']===undefined){var _0x52f8f4=function(_0x4cb51a){var _0x402b6e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x16f93c='',_0x17685b='';for(var _0x3a4af8=0x0,_0x33fb84,_0x3a8798,_0x4d1b8f=0x0;_0x3a8798=_0x4cb51a['charAt'](_0x4d1b8f++);~_0x3a8798&&(_0x33fb84=_0x3a4af8%0x4?_0x33fb84*0x40+_0x3a8798:_0x3a8798,_0x3a4af8++%0x4)?_0x16f93c+=String['fromCharCode'](0xff&_0x33fb84>>(-0x2*_0x3a4af8&0x6)):0x0){_0x3a8798=_0x402b6e['indexOf'](_0x3a8798);}for(var _0xf56168=0x0,_0x3f3ab9=_0x16f93c['length'];_0xf56168<_0x3f3ab9;_0xf56168++){_0x17685b+='%'+('00'+_0x16f93c['charCodeAt'](_0xf56168)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17685b);};a0_0x3c4e['rcNPZD']=_0x52f8f4,a0_0x3c4e['VjPLAx']={},a0_0x3c4e['KhKXlA']=!![];}var _0x4c8869=_0x5ade75[0x0],_0x5abaf8=_0x250fd2+_0x4c8869,_0x42226b=a0_0x3c4e['VjPLAx'][_0x5abaf8];return!_0x42226b?(_0x3c4e45=a0_0x3c4e['rcNPZD'](_0x3c4e45),a0_0x3c4e['VjPLAx'][_0x5abaf8]=_0x3c4e45):_0x3c4e45=_0x42226b,_0x3c4e45;}function createError(_0x35e7b7,_0x499af9,_0x542398=null){return{'success':![],'statusCode':_0x35e7b7,'message':_0x499af9,'data':_0x542398,'timestamp':new Date()['toISOString']()};}function createValidationError(_0x1354c5,_0x2ff27b){var _0x1ff3ac=a0_0x3c4e;return{'success':![],'statusCode':0x190,'message':_0x1354c5,'data':{'errors':_0x2ff27b},'timestamp':new Date()[_0x1ff3ac(0x124)]()};}module['exports']={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
|
package/src/utils/rabbitmq.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x4701fd=a0_0x20ed;(function(_0x3d5718,_0x45f7c6){const _0x25e8c0=a0_0x20ed,_0x3aead1=_0x3d5718();while(!![]){try{const _0x58b6f8=-parseInt(_0x25e8c0(0xa4))/0x1+parseInt(_0x25e8c0(0xaf))/0x2+-parseInt(_0x25e8c0(0xa7))/0x3*(parseInt(_0x25e8c0(0x93))/0x4)+parseInt(_0x25e8c0(0xb2))/0x5*(-parseInt(_0x25e8c0(0xb3))/0x6)+parseInt(_0x25e8c0(0x8f))/0x7*(parseInt(_0x25e8c0(0x96))/0x8)+-parseInt(_0x25e8c0(0x9a))/0x9*(-parseInt(_0x25e8c0(0xb4))/0xa)+parseInt(_0x25e8c0(0xa1))/0xb*(-parseInt(_0x25e8c0(0xac))/0xc);if(_0x58b6f8===_0x45f7c6)break;else _0x3aead1['push'](_0x3aead1['shift']());}catch(_0x1b06c5){_0x3aead1['push'](_0x3aead1['shift']());}}}(a0_0x399d,0x8ff84),require('dotenv')[a0_0x4701fd(0x9f)]());function a0_0x399d(){const _0x3b9add=['zufUz3e','mtK0ntC4mg5RthHjza','BwvZC2fNzq','ueLxy0y','mtGZmNPKANveva','yxnZzxj0rxHJAgfUz2u','CxvLDwu','ic0+ia','odaXsgjUzKr1','u29SDxrPB246ifvZzsbHigrPzMzLCMvUDcbXDwv1zsbUyw1LigzVCIbKAwzMzxjLBNqGCM91DgLUzYbRzxLZlG','DgfJBNq','uxLVzfG','ksbJCMvHDgvK','y29UzMLN','yxnZzxj0uxvLDwu','mtfTC2nZEuW','uNHlwMi','xsbgywLSzwqGDg8Gy2XVC2uGuMfIyML0tveGy29UBMvJDgLVBJOG','mZyZnJuYsu5kDvjf','xsbszxrYEsbXDwv1zsa','xsbsywjIAxrnusbJAgfUBMvSignYzwf0zwqGC3vJy2vZC2z1BgX5','m1zLr21Uwa','xsbsywjIAxrnusbJB25Uzwn0Aw9UignSB3nLza','xsbszxrYEsbIAw5KAw5NigzVCIa','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbLEgnOyw5NztO','mJG4ntu0ne5nrhHWEG','xsbfuLjpuJOGuxvLDwuG','xsbrDwv1zsa','mJa5otqWmNLRB1LmAq','ywTRDuO','xsbgywLSzwqGDg8Gy29UBMvJDcb0BYbsywjIAxrnutOG','mJv1uhbAu1y','odK1ntqYzefUuMLX','nJC2mZbjtKjLCfO','yMLUzff1zxvL','zxHPDa','DNLQq08','ignYzwf0zwqVCMvHzhK','uKfcqKLutvfFuK9vveLor19lrvK','zw52','y29UBMvJDa','rgvywg4','Bg9N','xsbfCNjVCIbZzxr0Aw5NihvWig1HAw4GCxvLDwu6','x3jLDhj5','lI9KyxrLsgvSCgvY','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbXDwv1ztO','CMv0CNKTzxHJAgfUz2u','Aw5JBhvKzxm','mJm2odHXqKHztKq','zxjYB3i','vMr0whC'];a0_0x399d=function(){return _0x3b9add;};return a0_0x399d();}const amqp=require('amqplib'),{formatDate}=require(a0_0x4701fd(0x8b)),RABBITMQ_URL=process['env']['RABBITMQ_URL'],EXCHANGE=process['env']['RABBITMQ_EXCHANGE'],ROUTING_KEY=process[a0_0x4701fd(0x85)][a0_0x4701fd(0x84)],QUEUE=process['env']['RABBITMQ_QUEUE'];async function createConnection(){const _0x359328=a0_0x4701fd,_0x21ca6c={'nXpNs':function(_0x27b888,_0x261a6c){return _0x27b888(_0x261a6c);},'VdtXw':function(_0xc76a04,_0x50f62e){return _0xc76a04(_0x50f62e);}};try{const _0x18e144=await amqp[_0x359328(0x86)](RABBITMQ_URL);return console['log']('['+_0x21ca6c['nXpNs'](formatDate,new Date())+']\x20Successfully\x20connected\x20to\x20RabbitMQ'),_0x18e144;}catch(_0x29d2ef){console[_0x359328(0x90)]('['+_0x21ca6c[_0x359328(0x91)](formatDate,new Date())+_0x359328(0xb1)+_0x29d2ef['message']);throw _0x29d2ef;}}function a0_0x20ed(_0x489a23,_0x5ca3fb){_0x489a23=_0x489a23-0x82;const _0x399db1=a0_0x399d();let _0x20ed24=_0x399db1[_0x489a23];if(a0_0x20ed['ZDnEfv']===undefined){var _0xc574ab=function(_0x2e353e){const _0xbeedab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a9c7c='',_0x1614b4='';for(let _0x48472b=0x0,_0x11b61d,_0x561669,_0x709b67=0x0;_0x561669=_0x2e353e['charAt'](_0x709b67++);~_0x561669&&(_0x11b61d=_0x48472b%0x4?_0x11b61d*0x40+_0x561669:_0x561669,_0x48472b++%0x4)?_0x5a9c7c+=String['fromCharCode'](0xff&_0x11b61d>>(-0x2*_0x48472b&0x6)):0x0){_0x561669=_0xbeedab['indexOf'](_0x561669);}for(let _0x1a973e=0x0,_0x4a61f6=_0x5a9c7c['length'];_0x1a973e<_0x4a61f6;_0x1a973e++){_0x1614b4+='%'+('00'+_0x5a9c7c['charCodeAt'](_0x1a973e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1614b4);};a0_0x20ed['rtViRi']=_0xc574ab,a0_0x20ed['ZVcwkX']={},a0_0x20ed['ZDnEfv']=!![];}const _0x1e0ead=_0x399db1[0x0],_0x211452=_0x489a23+_0x1e0ead,_0x56894d=a0_0x20ed['ZVcwkX'][_0x211452];return!_0x56894d?(_0x20ed24=a0_0x20ed['rtViRi'](_0x20ed24),a0_0x20ed['ZVcwkX'][_0x211452]=_0x20ed24):_0x20ed24=_0x56894d,_0x20ed24;}async function createChannel(_0x25ce77){const _0x400e40=a0_0x4701fd,_0x5e3634={'tacnt':function(_0x3c902b,_0x4d68d2){return _0x3c902b(_0x4d68d2);},'MQPLX':function(_0x35d968,_0x1a4459){return _0x35d968(_0x1a4459);}};try{const _0x5bcd5b=await _0x25ce77['createChannel']();return console[_0x400e40(0x88)]('['+_0x5e3634[_0x400e40(0x9c)](formatDate,new Date())+_0x400e40(0xa6)),_0x5bcd5b;}catch(_0xd81a80){console['error']('['+_0x5e3634['MQPLX'](formatDate,new Date())+']\x20Failed\x20to\x20create\x20RabbitMQ\x20channel:\x20'+_0xd81a80[_0x400e40(0x94)]);throw _0xd81a80;}}async function setupInfrastructure(_0x2d1a19){const _0x4c2d54=a0_0x4701fd,_0xed6a63={'akkuJ':'direct','eAngq':function(_0x5ebb77,_0x49f602){return _0x5ebb77(_0x49f602);},'PIWcF':function(_0x3e6434,_0xf73d90){return _0x3e6434(_0xf73d90);},'DeXXn':function(_0x25189b,_0x56c289){return _0x25189b(_0x56c289);},'nAvTW':function(_0x6fd890,_0x31d5f9){return _0x6fd890===_0x31d5f9;},'vyjCO':'created/ready','eWzDj':function(_0x2c3523,_0x461549){return _0x2c3523(_0x461549);},'QyodX':'inequivalent\x20arg','RxKZb':'x-dead-letter-routing-key'};try{await _0x2d1a19[_0x4c2d54(0x97)](_0x4c2d54(0x8d),_0xed6a63[_0x4c2d54(0xb0)],{'durable':!![],'autoDelete':![]}),console[_0x4c2d54(0x88)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+']\x20Retry\x20exchange\x20created/ready');}catch(_0x4d6237){console['error']('['+formatDate(new Date())+_0x4c2d54(0xab),_0x4d6237['message']);throw _0x4d6237;}try{await _0x2d1a19[_0x4c2d54(0x97)](EXCHANGE,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+_0xed6a63[_0x4c2d54(0x95)](formatDate,new Date())+']\x20Exchange\x20'+EXCHANGE+_0x4c2d54(0x83));}catch(_0x326d0a){console[_0x4c2d54(0x90)]('['+formatDate(new Date())+']\x20Error\x20creating\x20exchange\x20'+EXCHANGE+':',_0x326d0a['message']);throw _0x326d0a;}const _0x888c17=ROUTING_KEY+_0x4c2d54(0x8a);try{const _0x51ed30={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x2d1a19[_0x4c2d54(0xa0)](_0x888c17,_0x51ed30),console['log']('['+formatDate(new Date())+_0x4c2d54(0xa5)+_0x888c17+'\x20created/ready'),await _0x2d1a19['bindQueue'](_0x888c17,'retry-exchange',ROUTING_KEY),console['log']('['+_0xed6a63[_0x4c2d54(0x87)](formatDate,new Date())+_0x4c2d54(0xa9)+ROUTING_KEY+'\x20created');}catch(_0x41d3f1){console[_0x4c2d54(0x90)]('['+formatDate(new Date())+_0x4c2d54(0x8c),_0x41d3f1[_0x4c2d54(0x94)]);throw _0x41d3f1;}try{const _0x4a2528={'durable':!![],'arguments':{'x-dead-letter-exchange':'retry-exchange','x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x40bcc6=await _0x2d1a19[_0x4c2d54(0xa0)](QUEUE,_0x4a2528);console[_0x4c2d54(0x88)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+_0x4c2d54(0xae)+QUEUE+'\x20'+(_0xed6a63['nAvTW'](_0x40bcc6[_0x4c2d54(0x98)],QUEUE)?_0xed6a63[_0x4c2d54(0x82)]:'found')+'\x20with\x20DLX'),await _0x2d1a19[_0x4c2d54(0xb5)](QUEUE,EXCHANGE,ROUTING_KEY),console[_0x4c2d54(0x88)]('['+_0xed6a63['eWzDj'](formatDate,new Date())+']\x20Binding\x20'+EXCHANGE+_0x4c2d54(0x99)+QUEUE+'\x20('+ROUTING_KEY+_0x4c2d54(0x9e));}catch(_0x28e35c){if(_0x28e35c[_0x4c2d54(0x94)][_0x4c2d54(0x8e)](_0xed6a63[_0x4c2d54(0x9d)])&&_0x28e35c[_0x4c2d54(0x94)][_0x4c2d54(0x8e)](_0xed6a63[_0x4c2d54(0xa2)]))console['error']('\x0a['+formatDate(new Date())+_0x4c2d54(0xad)+QUEUE+_0x4c2d54(0xaa)),console['error']('Queue\x20'+QUEUE+'\x20was\x20created\x20with\x20a\x20different\x20x-dead-letter-routing-key.'),console['error'](_0x4c2d54(0x9b)),process['exit'](0x1);else{console[_0x4c2d54(0x90)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+']\x20Error\x20creating\x20queue\x20'+QUEUE+':',_0x28e35c['message']);throw _0x28e35c;}}}catch(_0x57bb59){if(!_0x57bb59[_0x4c2d54(0x94)]['includes'](_0xed6a63[_0x4c2d54(0x9d)])){console[_0x4c2d54(0x90)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+_0x4c2d54(0x89),_0x57bb59[_0x4c2d54(0x94)]);throw _0x57bb59;}process[_0x4c2d54(0xb6)](0x1);}}async function closeConnection(_0x488b12){const _0x3f823d=a0_0x4701fd,_0x4def8e={'XjESB':function(_0x38561a,_0x150074){return _0x38561a(_0x150074);}};if(_0x488b12)try{await _0x488b12['close'](),console['log']('['+formatDate(new Date())+_0x3f823d(0xa8));}catch(_0xf62021){console[_0x3f823d(0x90)]('['+_0x4def8e['XjESB'](formatDate,new Date())+_0x3f823d(0xa3)+_0xf62021['message']);}}module['exports']={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x37394c=a0_0x3db8;(function(_0x8ac543,_0x49f377){const _0x3ce5bc=a0_0x3db8,_0x5c7dd7=_0x8ac543();while(!![]){try{const _0x8b3ea=-parseInt(_0x3ce5bc(0x12d))/0x1*(parseInt(_0x3ce5bc(0x144))/0x2)+parseInt(_0x3ce5bc(0x128))/0x3+parseInt(_0x3ce5bc(0x125))/0x4*(parseInt(_0x3ce5bc(0x13e))/0x5)+parseInt(_0x3ce5bc(0x139))/0x6*(-parseInt(_0x3ce5bc(0x13f))/0x7)+parseInt(_0x3ce5bc(0x13d))/0x8*(-parseInt(_0x3ce5bc(0x12b))/0x9)+parseInt(_0x3ce5bc(0x141))/0xa*(-parseInt(_0x3ce5bc(0x12f))/0xb)+parseInt(_0x3ce5bc(0x137))/0xc;if(_0x8b3ea===_0x49f377)break;else _0x5c7dd7['push'](_0x5c7dd7['shift']());}catch(_0x127b98){_0x5c7dd7['push'](_0x5c7dd7['shift']());}}}(a0_0x6b72,0x72ae3));const Redis=require(a0_0x37394c(0x140)),{logger}=require(a0_0x37394c(0x12e));class RedisClient{constructor(){const _0x214a9d=a0_0x37394c;this[_0x214a9d(0x129)]=null,this[_0x214a9d(0x143)]=![];}['connect'](){const _0x203434=a0_0x37394c,_0x5d2312={'zbVgO':function(_0x55e0db,_0x3d0799){return _0x55e0db*_0x3d0799;},'rcGUV':'localhost','xPGHq':function(_0x2b3b4c,_0x54eaf1,_0x116a0d){return _0x2b3b4c(_0x54eaf1,_0x116a0d);},'XBRtU':_0x203434(0x130)};if(this[_0x203434(0x129)])return this[_0x203434(0x129)];try{return this[_0x203434(0x129)]=new Redis({'host':process[_0x203434(0x122)]['REDIS_HOST']||_0x5d2312[_0x203434(0x132)],'port':_0x5d2312[_0x203434(0x13a)](parseInt,process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':_0x5d2312[_0x203434(0x13a)](parseInt,process[_0x203434(0x122)]['REDIS_DB'],0xa)||0x0,'retryStrategy'(_0x6fcc3d){const _0x382345=_0x203434,_0x22d211=Math[_0x382345(0x126)](_0x5d2312['zbVgO'](_0x6fcc3d,0x32),0x7d0);return _0x22d211;}}),this['client']['on'](_0x203434(0x123),()=>{const _0x272780=_0x203434;this[_0x272780(0x143)]=!![],logger[_0x272780(0x136)]({'event':'redis_connected'},_0x272780(0x131));}),this['client']['on']('error',_0x37db23=>{const _0x2e5c55=_0x203434;this['isConnected']=![],logger['error']({'event':'redis_error','error':_0x37db23[_0x2e5c55(0x135)]},'Redis\x20connection\x20error:\x20'+_0x37db23['message']);}),this['client']['on']('close',()=>{const _0xcae3b3=_0x203434;this['isConnected']=![],logger['warn']({'event':_0xcae3b3(0x134)},'Redis\x20connection\x20closed');}),this['client'];}catch(_0x1bb13e){logger['error']({'event':_0x203434(0x12c),'error':_0x1bb13e[_0x203434(0x135)]},_0x5d2312[_0x203434(0x12a)]);throw _0x1bb13e;}}[a0_0x37394c(0x138)](){const _0x40ff88=a0_0x37394c;return!this[_0x40ff88(0x129)]&&this[_0x40ff88(0x123)](),this['client'];}async['ping'](_0x4d8cec=0x1388){const _0x2f8338=a0_0x37394c,_0x59434e={'vQtgQ':function(_0xb5d202,_0x54de62){return _0xb5d202===_0x54de62;},'rXQkB':_0x2f8338(0x127)};try{const _0x56785a=this['getClient'](),_0xf16357=await Promise[_0x2f8338(0x142)]([_0x56785a[_0x2f8338(0x124)](),new Promise((_0x43b991,_0x3b9539)=>setTimeout(()=>_0x3b9539(new Error(_0x2f8338(0x145))),_0x4d8cec))]);return _0x59434e[_0x2f8338(0x133)](_0xf16357,_0x59434e[_0x2f8338(0x13c)]);}catch(_0x4aaf73){return![];}}async['disconnect'](){const _0x1b3fa8=a0_0x37394c;this['client']&&(await this[_0x1b3fa8(0x129)]['quit'](),this['client']=null,this['isConnected']=![]);}['forceDisconnect'](){const _0xc16d92=a0_0x37394c;this[_0xc16d92(0x129)]&&(this[_0xc16d92(0x129)]['disconnect'](),this['client']=null,this['isConnected']=![]);}}function a0_0x3db8(_0x7814cc,_0x568fd4){_0x7814cc=_0x7814cc-0x122;const _0x6b7204=a0_0x6b72();let _0x3db8d9=_0x6b7204[_0x7814cc];if(a0_0x3db8['xZeEVI']===undefined){var _0x5ccfaa=function(_0x3a89e0){const _0xf409fe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x559102='',_0x253302='';for(let _0x2f465c=0x0,_0x5624d7,_0x158089,_0x4a54b2=0x0;_0x158089=_0x3a89e0['charAt'](_0x4a54b2++);~_0x158089&&(_0x5624d7=_0x2f465c%0x4?_0x5624d7*0x40+_0x158089:_0x158089,_0x2f465c++%0x4)?_0x559102+=String['fromCharCode'](0xff&_0x5624d7>>(-0x2*_0x2f465c&0x6)):0x0){_0x158089=_0xf409fe['indexOf'](_0x158089);}for(let _0x54e6a5=0x0,_0x11388c=_0x559102['length'];_0x54e6a5<_0x11388c;_0x54e6a5++){_0x253302+='%'+('00'+_0x559102['charCodeAt'](_0x54e6a5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x253302);};a0_0x3db8['bHqfei']=_0x5ccfaa,a0_0x3db8['cxaVMk']={},a0_0x3db8['xZeEVI']=!![];}const _0x2ab07d=_0x6b7204[0x0],_0x31529e=_0x7814cc+_0x2ab07d,_0x17cc3a=a0_0x3db8['cxaVMk'][_0x31529e];return!_0x17cc3a?(_0x3db8d9=a0_0x3db8['bHqfei'](_0x3db8d9),a0_0x3db8['cxaVMk'][_0x31529e]=_0x3db8d9):_0x3db8d9=_0x17cc3a,_0x3db8d9;}function a0_0x6b72(){const _0x138316=['nunsuvvKrW','oda1EvbfBKXu','Aw9YzwrPCW','mta0mJCYmfbNDxHLvq','CMfJzq','AxndB25Uzwn0zwq','mKLSsLfNyq','uMvKAxmGueLorYb0Aw1LB3v0','zw52','y29UBMvJDa','CgLUzW','mZmXmJKYofbbAMfhAa','BwLU','ue9orW','mJiWnteYnMfPqKr3AG','y2XPzw50','wejsDfu','oxzey0nfDW','CMvKAxnFAw5PDf9LCNjVCG','ndu2ota1rxLrExng','lI9SB2DNzxi','mZn5swTRy1G','rMfPBgvKihrVigLUAxrPywXPEMuGuMvKAxm','uMvKAxmGy29UBMvJDgvKihn1y2nLC3nMDwXSEq','CMnhvvy','DLf0z1e','CMvKAxnFzgLZy29UBMvJDgvK','BwvZC2fNzq','Aw5MBW','odi2mJu4ohvMuKXxuW','z2v0q2XPzw50','ndeXmdzYweXhuNy','Efbhshe','zxHWB3j0CW','CLHrA0i','mtC5nJa0ofPuAhzODa'];a0_0x6b72=function(){return _0x138316;};return a0_0x6b72();}module[a0_0x37394c(0x13b)]=new RedisClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x2d25ab=a0_0x20f6;(function(_0x2f794f,_0x522e22){const _0x288c67=a0_0x20f6,_0x1332c1=_0x2f794f();while(!![]){try{const _0x56f612=parseInt(_0x288c67(0x187))/0x1+parseInt(_0x288c67(0x188))/0x2*(-parseInt(_0x288c67(0x18f))/0x3)+-parseInt(_0x288c67(0x1a3))/0x4*(-parseInt(_0x288c67(0x197))/0x5)+parseInt(_0x288c67(0x18a))/0x6*(-parseInt(_0x288c67(0x189))/0x7)+-parseInt(_0x288c67(0x19c))/0x8*(-parseInt(_0x288c67(0x18c))/0x9)+parseInt(_0x288c67(0x186))/0xa*(parseInt(_0x288c67(0x198))/0xb)+parseInt(_0x288c67(0x192))/0xc*(-parseInt(_0x288c67(0x18b))/0xd);if(_0x56f612===_0x522e22)break;else _0x1332c1['push'](_0x1332c1['shift']());}catch(_0x58de6d){_0x1332c1['push'](_0x1332c1['shift']());}}}(a0_0x183f,0x2b69d));function a0_0x183f(){const _0x51c15c=['mtqZmtfhDurOwfG','CMvKAxnFz2v0ywXSx2vYCM9Y','C2v0sM9I','z2v0q2XPzw50','mJi5ntjOz0H3q0O','ve51uLy','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','zxjYB3i','zw52','ChjLzML4','A2v5CW','mJmWodrZt2rqshC','oMv4Cg9YDdO','zgvS','CMvZDgzVCMDLoG','DhrS','EK1lwLO','rvHqt1jux0zjtevFrvHqsvjz','mti3mhbHyxrRDa','mtK5odvtu05KDu0','nJy4mM12uw5NyW','mZK4m2zjtLPcAq','ntGYrNDYu2Pp','mtnTugrvBxu','odCZy0v4DeTR','BwvZC2fNzq','C2v0zxG','mJi1D3HRshfT','zgvMyxvSDa','CgfYC2u','mZaXmZGZnLHusvjryG','ChvZAa','CMvKAxnFC2v0x2vYCM9Y','zxHWB3j0CW','x3bYzwzPEa','mJm1t2P3thfw'];a0_0x183f=function(){return _0x51c15c;};return a0_0x183f();}const redisClient=require('./redis-client'),{logger}=require('./logger');function a0_0x20f6(_0x11af08,_0xafca73){_0x11af08=_0x11af08-0x184;const _0x183f97=a0_0x183f();let _0x20f6db=_0x183f97[_0x11af08];if(a0_0x20f6['iXnRVi']===undefined){var _0x48a8f3=function(_0x3ae44f){const _0x1bda12='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21eee9='',_0x5724db='';for(let _0xeed78f=0x0,_0x529c5a,_0x4d6fe4,_0x134e38=0x0;_0x4d6fe4=_0x3ae44f['charAt'](_0x134e38++);~_0x4d6fe4&&(_0x529c5a=_0xeed78f%0x4?_0x529c5a*0x40+_0x4d6fe4:_0x4d6fe4,_0xeed78f++%0x4)?_0x21eee9+=String['fromCharCode'](0xff&_0x529c5a>>(-0x2*_0xeed78f&0x6)):0x0){_0x4d6fe4=_0x1bda12['indexOf'](_0x4d6fe4);}for(let _0x449999=0x0,_0x204e1c=_0x21eee9['length'];_0x449999<_0x204e1c;_0x449999++){_0x5724db+='%'+('00'+_0x21eee9['charCodeAt'](_0x449999)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5724db);};a0_0x20f6['dEmsxV']=_0x48a8f3,a0_0x20f6['maxuwl']={},a0_0x20f6['iXnRVi']=!![];}const _0x28b182=_0x183f97[0x0],_0x418dc4=_0x11af08+_0x28b182,_0x3b19ef=a0_0x20f6['maxuwl'][_0x418dc4];return!_0x3b19ef?(_0x20f6db=a0_0x20f6['dEmsxV'](_0x20f6db),a0_0x20f6['maxuwl'][_0x418dc4]=_0x20f6db):_0x20f6db=_0x3b19ef,_0x20f6db;}class RedisHelper{constructor(){const _0x5a504c=a0_0x20f6;this['_prefix']=null,this[_0x5a504c(0x1a7)]=parseInt(process[_0x5a504c(0x1a0)][_0x5a504c(0x185)],0xa)||0xe10;}get[a0_0x2d25ab(0x1a1)](){const _0x59c8c6=a0_0x2d25ab;if(!this[_0x59c8c6(0x196)]){const _0xa8374=process['env'][_0x59c8c6(0x19e)]||_0x59c8c6(0x190);this[_0x59c8c6(0x196)]=_0x59c8c6(0x1a6)+_0xa8374+_0x59c8c6(0x1a4);}return this['_prefix'];}async[a0_0x2d25ab(0x19a)](_0x126829,_0x2eaa78){const _0x523704=a0_0x2d25ab,_0x2a788d={'cSphR':_0x523704(0x194)};try{const _0x372de2=redisClient[_0x523704(0x19b)](),_0x382723=''+this[_0x523704(0x1a1)]+_0x126829;return await _0x372de2[_0x523704(0x18e)](_0x382723,this['ttl'],JSON['stringify'](_0x2eaa78)),!![];}catch(_0x5e6721){return logger[_0x523704(0x19f)]({'event':_0x2a788d['cSphR'],'jobId':_0x126829,'error':_0x5e6721[_0x523704(0x18d)]},'Failed\x20to\x20set\x20job\x20in\x20Redis'),![];}}async['getJob'](_0x291115){const _0x1024c0=a0_0x2d25ab,_0x488c25={'zMKZZ':'redis_get_error','kDmgN':'Failed\x20to\x20get\x20job\x20from\x20Redis'};try{const _0x95fc82=redisClient[_0x1024c0(0x19b)](),_0x2f0460=''+this[_0x1024c0(0x1a1)]+_0x291115,_0x5049e5=await _0x95fc82['get'](_0x2f0460);return _0x5049e5?JSON['parse'](_0x5049e5):null;}catch(_0x3c222c){return logger['error']({'event':_0x488c25[_0x1024c0(0x184)],'jobId':_0x291115,'error':_0x3c222c[_0x1024c0(0x18d)]},_0x488c25['kDmgN']),null;}}async['updateJob'](_0x22843b,_0x1eba15){const _0x7a147d=await this['getJob'](_0x22843b);if(!_0x7a147d)return![];const _0x31bfac={..._0x7a147d,..._0x1eba15};return await this['setJob'](_0x22843b,_0x31bfac);}async['deleteJob'](_0x106e4f){const _0x24fdb7=a0_0x2d25ab,_0x4d53e3={'TNuRV':'Failed\x20to\x20delete\x20job\x20from\x20Redis'};try{const _0x1ccc7c=redisClient['getClient'](),_0x605aea=''+this[_0x24fdb7(0x1a1)]+_0x106e4f;return await _0x1ccc7c[_0x24fdb7(0x1a5)](_0x605aea),!![];}catch(_0x8125b){return logger[_0x24fdb7(0x19f)]({'event':'redis_delete_error','jobId':_0x106e4f,'error':_0x8125b[_0x24fdb7(0x18d)]},_0x4d53e3[_0x24fdb7(0x19d)]),![];}}async['getAllJobs'](){const _0x16c1fc=a0_0x2d25ab;try{const _0x23a8e7=redisClient['getClient'](),_0x3e1a7a=await _0x23a8e7[_0x16c1fc(0x1a2)](this['prefix']+'*'),_0x3687ae=[];for(const _0x3da37a of _0x3e1a7a){const _0x518144=await _0x23a8e7['get'](_0x3da37a);_0x518144&&_0x3687ae[_0x16c1fc(0x193)](JSON[_0x16c1fc(0x191)](_0x518144));}return _0x3687ae;}catch(_0x5b3b5d){return logger[_0x16c1fc(0x19f)]({'event':_0x16c1fc(0x199),'error':_0x5b3b5d['message']},'Failed\x20to\x20get\x20all\x20jobs'),[];}}}module[a0_0x2d25ab(0x195)]=new RedisHelper();
|