@restforgejs/platform 4.2.8 → 4.3.2
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/payload/payload-runner.js +1 -1
- 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
|
+
const a0_0x261e05=a0_0x1f5e;(function(_0x4d6fd4,_0x1ac103){const _0x30c30a=a0_0x1f5e,_0x31b85e=_0x4d6fd4();while(!![]){try{const _0x1741b0=parseInt(_0x30c30a(0x17a))/0x1+-parseInt(_0x30c30a(0x154))/0x2+parseInt(_0x30c30a(0x166))/0x3+-parseInt(_0x30c30a(0x167))/0x4*(parseInt(_0x30c30a(0x139))/0x5)+parseInt(_0x30c30a(0x15b))/0x6+-parseInt(_0x30c30a(0x16f))/0x7+-parseInt(_0x30c30a(0x178))/0x8;if(_0x1741b0===_0x1ac103)break;else _0x31b85e['push'](_0x31b85e['shift']());}catch(_0x3e474f){_0x31b85e['push'](_0x31b85e['shift']());}}}(a0_0x4d06,0xa2c31));const redisClient=require('./redis-client'),{logger}=require(a0_0x261e05(0x131)),{v4:uuidv4}=require(a0_0x261e05(0x169));function a0_0x1f5e(_0x11d916,_0x4c966c){_0x11d916=_0x11d916-0x124;const _0x4d0648=a0_0x4d06();let _0x1f5e0b=_0x4d0648[_0x11d916];if(a0_0x1f5e['VBTjOe']===undefined){var _0x4ce606=function(_0x141edb){const _0x364b54='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x305f6a='',_0x5149e8='';for(let _0x2c8d38=0x0,_0x592edc,_0x1eef34,_0x30ae88=0x0;_0x1eef34=_0x141edb['charAt'](_0x30ae88++);~_0x1eef34&&(_0x592edc=_0x2c8d38%0x4?_0x592edc*0x40+_0x1eef34:_0x1eef34,_0x2c8d38++%0x4)?_0x305f6a+=String['fromCharCode'](0xff&_0x592edc>>(-0x2*_0x2c8d38&0x6)):0x0){_0x1eef34=_0x364b54['indexOf'](_0x1eef34);}for(let _0x543d3f=0x0,_0x212031=_0x305f6a['length'];_0x543d3f<_0x212031;_0x543d3f++){_0x5149e8+='%'+('00'+_0x305f6a['charCodeAt'](_0x543d3f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5149e8);};a0_0x1f5e['OiTHRp']=_0x4ce606,a0_0x1f5e['QjhCKb']={},a0_0x1f5e['VBTjOe']=!![];}const _0x5280c9=_0x4d0648[0x0],_0x536fd2=_0x11d916+_0x5280c9,_0x358a36=a0_0x1f5e['QjhCKb'][_0x536fd2];return!_0x358a36?(_0x1f5e0b=a0_0x1f5e['OiTHRp'](_0x1f5e0b),a0_0x1f5e['QjhCKb'][_0x536fd2]=_0x1f5e0b):_0x1f5e0b=_0x358a36,_0x1f5e0b;}class LockManager{constructor(){const _0x305b0e=a0_0x261e05;this[_0x305b0e(0x124)]=null,this[_0x305b0e(0x138)]=null,this['_defaultTTL']=null,this['_retryCount']=null,this['_retryDelay']=null,this['_strategy']=null,this[_0x305b0e(0x16b)]=null,this['_initialized']=![];}[a0_0x261e05(0x146)](){const _0x4d7051=a0_0x261e05,_0x2d4ec6={'NxxzC':'4|2|7|3|6|1|8|0|5','spNpL':'true','KrgLd':_0x4d7051(0x16d),'BKuFQ':'lock_config_init'},_0x249f41=_0x2d4ec6[_0x4d7051(0x15a)]['split']('|');let _0x9ff8cb=0x0;while(!![]){switch(_0x249f41[_0x9ff8cb++]){case'0':this[_0x4d7051(0x15e)]=!![];continue;case'1':this['_strategy']=process['env'][_0x4d7051(0x128)]||'retry';continue;case'2':this[_0x4d7051(0x138)]=process['env']['LOCK_DISTRIBUTED_ENABLED']===_0x2d4ec6['spNpL'];continue;case'3':this[_0x4d7051(0x16c)]=parseInt(process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3;continue;case'4':this[_0x4d7051(0x124)]=_0x2d4ec6['KrgLd'];continue;case'5':logger[_0x4d7051(0x14b)]({'event':_0x2d4ec6[_0x4d7051(0x158)],'enabled':this[_0x4d7051(0x138)],'strategy':this[_0x4d7051(0x172)],'ttl':this['_defaultTTL'],'retryCount':this[_0x4d7051(0x16c)],'retryDelay':this[_0x4d7051(0x163)],'workerId':this[_0x4d7051(0x16b)]},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this['_enabled']+_0x4d7051(0x12d)+this[_0x4d7051(0x172)]);continue;case'6':this[_0x4d7051(0x163)]=parseInt(process['env'][_0x4d7051(0x16e)],0xa)||0x64;continue;case'7':this[_0x4d7051(0x174)]=parseInt(process[_0x4d7051(0x14a)]['LOCK_DISTRIBUTED_TTL'],0xa)||0xa;continue;case'8':this['_workerId']='worker-'+process[_0x4d7051(0x13b)];continue;}break;}}['_ensureInitialized'](){const _0x2e1a80=a0_0x261e05;!this['_initialized']&&this[_0x2e1a80(0x146)]();}get[a0_0x261e05(0x15f)](){return this['_ensureInitialized'](),this['_prefix'];}get['enabled'](){return this['_ensureInitialized'](),this['_enabled'];}get['defaultTTL'](){const _0x42566c=a0_0x261e05;return this[_0x42566c(0x179)](),this[_0x42566c(0x174)];}get[a0_0x261e05(0x130)](){return this['_ensureInitialized'](),this['_retryCount'];}get[a0_0x261e05(0x14e)](){const _0xd81a28=a0_0x261e05;return this[_0xd81a28(0x179)](),this[_0xd81a28(0x163)];}get[a0_0x261e05(0x15d)](){const _0x396a20=a0_0x261e05;return this[_0x396a20(0x179)](),this['_strategy'];}get['workerId'](){const _0x182baa=a0_0x261e05;return this[_0x182baa(0x179)](),this['_workerId'];}['buildLockKey'](_0x5809bd){const _0x2b9e25=a0_0x261e05,{module:_0x4bc7c7,endpoint:_0x43c225,lockType:_0x15652b,recordId:_0x52b9d1}=_0x5809bd;if(_0x52b9d1)return''+this[_0x2b9e25(0x15f)]+_0x4bc7c7+':'+_0x43c225+':'+_0x52b9d1+':'+_0x15652b;return''+this[_0x2b9e25(0x15f)]+_0x4bc7c7+':'+_0x43c225+':'+_0x15652b;}[a0_0x261e05(0x14f)](){const _0xa441db=a0_0x261e05;return this[_0xa441db(0x161)]+':'+uuidv4()+':'+Date['now']();}async['acquireReadLock'](_0x3f8c1d){const _0x91f3b1=a0_0x261e05,_0x25186e={'euxJe':'write','ncCgO':'read','IdAwb':function(_0x225efb,_0x515f23){return _0x225efb<_0x515f23;},'XUrFX':function(_0x5cee42,_0x418c12){return _0x5cee42*_0x418c12;},'LaGTR':_0x91f3b1(0x148),'SeLzj':'READ\x20lock\x20error'};if(!this[_0x91f3b1(0x132)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x12105a=this[_0x91f3b1(0x173)]({..._0x3f8c1d,'lockType':_0x25186e['euxJe']}),_0x9105fc=this['buildLockKey']({..._0x3f8c1d,'lockType':_0x25186e['ncCgO']}),_0x53aa6a=this['generateLockValue']();try{const _0x4f5abc=redisClient['getClient']();for(let _0x42be1b=0x0;_0x25186e[_0x91f3b1(0x12c)](_0x42be1b,this['retryCount']);_0x42be1b++){const _0x47af44=await _0x4f5abc['get'](_0x12105a);if(!_0x47af44){await _0x4f5abc[_0x91f3b1(0x12e)](_0x9105fc),await _0x4f5abc[_0x91f3b1(0x170)](_0x9105fc,this[_0x91f3b1(0x127)]);const _0x13b2c7=_0x9105fc+':'+_0x53aa6a;return await _0x4f5abc['setex'](_0x13b2c7,this[_0x91f3b1(0x127)],_0x53aa6a),logger[_0x91f3b1(0x153)]({'event':_0x91f3b1(0x145),'key':_0x9105fc,'value':_0x53aa6a},_0x91f3b1(0x175)),{'success':!![],'lockValue':_0x53aa6a,'lockKey':_0x13b2c7};}logger[_0x91f3b1(0x153)]({'event':'read_lock_waiting','writeKey':_0x12105a,'attempt':_0x42be1b},'Waiting\x20for\x20WRITE\x20lock\x20to\x20release'),await this['sleep'](_0x25186e[_0x91f3b1(0x133)](this[_0x91f3b1(0x14e)],Math[_0x91f3b1(0x13d)](0x2,_0x42be1b)));}return logger[_0x91f3b1(0x13f)]({'event':_0x91f3b1(0x160),'key':_0x9105fc},_0x25186e[_0x91f3b1(0x135)]),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x388078){return logger['error']({'event':'read_lock_error','error':_0x388078['message']},_0x25186e['SeLzj']),{'success':![],'lockValue':null,'lockKey':null};}}async['acquireWriteLock'](_0x5a78d1){const _0x464975=a0_0x261e05,_0x55a1a0={'KxZoH':_0x464975(0x171),'icEJK':'reject','hQZeJ':'WRITE\x20lock\x20acquired\x20(reject\x20mode)','vABHx':_0x464975(0x159),'LPMJs':'WRITE\x20lock\x20rejected\x20-\x20record\x20busy','LtLwd':function(_0x4bf10c,_0x1c01e8){return _0x4bf10c===_0x1c01e8;},'gVrei':_0x464975(0x176),'FJrbg':'write_lock_waiting','IZekD':function(_0x30401f,_0x295830){return _0x30401f*_0x295830;},'PigDL':'write_lock_error'};if(!this[_0x464975(0x132)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x36b6ad=this[_0x464975(0x173)]({..._0x5a78d1,'lockType':_0x55a1a0['KxZoH']}),_0x127704=this[_0x464975(0x173)]({..._0x5a78d1,'lockType':'read'}),_0xcf4915=this['generateLockValue']();try{const _0x22b7a5=redisClient['getClient']();if(this[_0x464975(0x15d)]===_0x464975(0x156)){const _0x4d7d0f=await _0x22b7a5['set'](_0x36b6ad,_0xcf4915,'EX',this[_0x464975(0x127)],'NX');if(_0x4d7d0f==='OK')return logger[_0x464975(0x153)]({'event':'write_lock_acquired','key':_0x36b6ad,'value':_0xcf4915,'strategy':_0x55a1a0[_0x464975(0x147)]},_0x55a1a0['hQZeJ']),{'success':!![],'lockValue':_0xcf4915,'lockKey':_0x36b6ad};return logger[_0x464975(0x153)]({'event':_0x55a1a0[_0x464975(0x12a)],'key':_0x36b6ad},_0x55a1a0[_0x464975(0x152)]),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x132740=0x0;_0x132740<this[_0x464975(0x130)];_0x132740++){const [_0x32140a,_0x9cd71e]=await Promise['all']([_0x22b7a5[_0x464975(0x13c)](_0x127704),_0x22b7a5[_0x464975(0x13c)](_0x36b6ad)]);if(!_0x9cd71e&&(!_0x32140a||_0x55a1a0['LtLwd'](parseInt(_0x32140a),0x0))){const _0x56486c=await _0x22b7a5[_0x464975(0x141)](_0x36b6ad,_0xcf4915,'EX',this['defaultTTL'],'NX');if(_0x56486c==='OK')return logger[_0x464975(0x153)]({'event':'write_lock_acquired','key':_0x36b6ad,'value':_0xcf4915,'strategy':_0x55a1a0['gVrei']},_0x464975(0x13a)),{'success':!![],'lockValue':_0xcf4915,'lockKey':_0x36b6ad};}logger['debug']({'event':_0x55a1a0['FJrbg'],'writeKey':_0x36b6ad,'readCount':_0x32140a,'attempt':_0x132740},_0x464975(0x16a)),await this['sleep'](_0x55a1a0['IZekD'](this[_0x464975(0x14e)],Math[_0x464975(0x13d)](0x2,_0x132740)));}return logger['warn']({'event':_0x464975(0x165),'key':_0x36b6ad},'WRITE\x20lock\x20acquire\x20timeout'),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x555124){return logger[_0x464975(0x14c)]({'event':_0x55a1a0['PigDL'],'error':_0x555124['message']},_0x464975(0x177)),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x261e05(0x168)](_0x3445cc,_0x1ada98){const _0x58f0ce=a0_0x261e05,_0x404938={'RZHKs':function(_0x536d03,_0x401045){return _0x536d03>_0x401045;},'PDckL':_0x58f0ce(0x142),'jvMWg':'Cannot\x20release\x20lock\x20-\x20not\x20owner'};if(!this[_0x58f0ce(0x132)]||!_0x3445cc)return!![];try{const _0x39eb2e=redisClient[_0x58f0ce(0x136)]();if(_0x3445cc[_0x58f0ce(0x15c)](':read:')){await _0x39eb2e[_0x58f0ce(0x162)](_0x3445cc);const _0x537449=_0x3445cc['substring'](0x0,_0x3445cc['lastIndexOf'](':')),_0x4cb2a2=await _0x39eb2e[_0x58f0ce(0x13c)](_0x537449);return _0x4cb2a2&&_0x404938[_0x58f0ce(0x12f)](parseInt(_0x4cb2a2),0x0)&&await _0x39eb2e[_0x58f0ce(0x137)](_0x537449),logger['debug']({'event':_0x58f0ce(0x157),'key':_0x3445cc},'READ\x20lock\x20released'),!![];}const _0x50a65d=_0x58f0ce(0x12b),_0x16d097=await _0x39eb2e['eval'](_0x50a65d,0x1,_0x3445cc,_0x1ada98);if(_0x16d097===0x1)return logger['debug']({'event':_0x58f0ce(0x149),'key':_0x3445cc},'WRITE\x20lock\x20released'),!![];return logger['warn']({'event':_0x404938['PDckL'],'key':_0x3445cc},_0x404938['jvMWg']),![];}catch(_0x184cea){return logger[_0x58f0ce(0x14c)]({'event':'lock_release_error','key':_0x3445cc,'error':_0x184cea[_0x58f0ce(0x14d)]},_0x58f0ce(0x126)),![];}}async[a0_0x261e05(0x13e)](_0x2fdb54,_0x4f9704,_0x351b40=null){const _0x38b63d=a0_0x261e05,_0x1e8bd9={'RgPCl':function(_0xcf84a0,_0x5ceff7){return _0xcf84a0===_0x5ceff7;},'UJWbf':'lock_extended'};if(!this[_0x38b63d(0x132)]||!_0x2fdb54)return!![];try{const _0x3b3f32=redisClient['getClient'](),_0x6d42a1=_0x38b63d(0x143),_0xc949c0=await _0x3b3f32[_0x38b63d(0x140)](_0x6d42a1,0x1,_0x2fdb54,_0x4f9704,_0x351b40||this[_0x38b63d(0x127)]);if(_0x1e8bd9['RgPCl'](_0xc949c0,0x1))return logger['debug']({'event':_0x1e8bd9['UJWbf'],'key':_0x2fdb54,'ttl':_0x351b40||this[_0x38b63d(0x127)]},_0x38b63d(0x129)),!![];return![];}catch(_0x95adde){return logger[_0x38b63d(0x14c)]({'event':_0x38b63d(0x151),'key':_0x2fdb54,'error':_0x95adde[_0x38b63d(0x14d)]},'Lock\x20extend\x20error'),![];}}[a0_0x261e05(0x125)](){const _0x3875b3=a0_0x261e05;return this[_0x3875b3(0x132)];}[a0_0x261e05(0x144)](_0xd27853){return new Promise(_0x507542=>setTimeout(_0x507542,_0xd27853));}async['getLockInfo'](_0x42bba7){const _0x5c7fbb=a0_0x261e05,_0x3e5c8f={'OVqiN':'write','LyjQY':function(_0x2ba4a1,_0x3a01d3){return _0x2ba4a1||_0x3a01d3;}};if(!this['enabled'])return{'enabled':![]};try{const _0xced578=redisClient[_0x5c7fbb(0x136)](),_0x468f05=this[_0x5c7fbb(0x173)]({..._0x42bba7,'lockType':_0x3e5c8f[_0x5c7fbb(0x164)]}),_0x179941=this['buildLockKey']({..._0x42bba7,'lockType':'read'}),[_0x23e4b7,_0x3affb0]=await Promise[_0x5c7fbb(0x150)]([_0xced578[_0x5c7fbb(0x13c)](_0x468f05),_0xced578['get'](_0x179941)]);return{'enabled':!![],'writeLock':_0x3e5c8f[_0x5c7fbb(0x155)](_0x23e4b7,null),'readCount':parseInt(_0x3affb0)||0x0,'writeKey':_0x468f05,'readKey':_0x179941};}catch(_0x49c22b){return{'enabled':!![],'error':_0x49c22b['message']};}}}module[a0_0x261e05(0x134)]=new LockManager();function a0_0x4d06(){const _0xcc014b=['ywXS','Bg9JA19LEhrLBMrFzxjYB3i','tfbnsNm','zgvIDwC','ndiXmZG4v0fpBNbb','thLQuvK','CMvQzwn0','CMvHzf9SB2nRx3jLBgvHC2vK','qKT1rLe','D3jPDgvFBg9JA19YzwPLy3rLza','tNH4EKm','ndK2otC1oejZtLLvva','Aw5JBhvKzxm','C3rYyxrLz3K','x2LUAxrPywXPEMvK','ChjLzML4','CMvHzf9SB2nRx3rPBwvVDxq','D29YA2vYswq','zgvS','x3jLDhj5rgvSyxK','t1zXAu4','D3jPDgvFBg9JA190Aw1LB3v0','mtyXntGWm1P5z3PHsq','ndy0odrtuwL5Dwi','CMvSzwfZzuXVy2S','DxvPza','v2fPDgLUzYbMB3iGBg9JA3mGDg8GCMvSzwfZzq','x3DVCMTLCKLK','x3jLDhj5q291BNq','CMy6Bg9JAZO','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','ndeWntiYDu54BufV','zxHWAxjL','D3jPDgu','x3n0CMf0zwD5','yNvPBgrmB2nRs2v5','x2rLzMf1BhruveW','uKvbrcbSB2nRigfJCxvPCMvK','CMv0CNK','v1jjveuGBg9JAYbLCNjVCG','mteXnZm0nJrTrejlvg8','x2vUC3vYzuLUAxrPywXPEMvK','mteXnJG3nwfLzurOvW','x3bYzwzPEa','AxnfBMfIBgvK','tg9JAYbYzwXLyxnLigvYCM9Y','zgvMyxvSDfruta','te9ds19esvnuuKLcvvrfrf9tvfjbvevhwq','tg9JAYbuveWGzxH0zw5Kzwq','DKfcshG','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzgvSiIWGs0vzu1SXxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','swrbD2i','lcbZDhjHDgvNEtOG','Aw5JCG','uLPis3m','CMv0CNLdB3vUDa','lI9SB2DNzxi','zw5HyMXLza','wfvYrLG','zxHWB3j0CW','tgfhvfi','z2v0q2XPzw50','zgvJCG','x2vUywjSzwq','nJvotKD5ruS','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','CgLK','z2v0','Cg93','zxH0zw5Ktg9JAW','D2fYBG','zxzHBa','C2v0','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzxHWAxjLiIWGs0vzu1SXxsWGqvjhvLSYxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','C2XLzxa','CMvHzf9SB2nRx2fJCxvPCMvK','x2LUAxrdB25MAwC','AwnfsKS','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','D3jPDgvFBg9JA19YzwXLyxnLza','zw52','Aw5MBW','zxjYB3i','BwvZC2fNzq','CMv0CNLezwXHEq','z2vUzxjHDgvmB2nRvMfSDwu'];a0_0x4d06=function(){return _0xcc014b;};return a0_0x4d06();}
|
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
|
+
const a0_0x3cf150=a0_0x1a6e;(function(_0x524335,_0x4704a1){const _0x4dd850=a0_0x1a6e,_0x43ca40=_0x524335();while(!![]){try{const _0x3df870=-parseInt(_0x4dd850(0xc6))/0x1+parseInt(_0x4dd850(0xfc))/0x2+-parseInt(_0x4dd850(0xe3))/0x3*(parseInt(_0x4dd850(0x158))/0x4)+parseInt(_0x4dd850(0x177))/0x5+-parseInt(_0x4dd850(0xd6))/0x6*(-parseInt(_0x4dd850(0x104))/0x7)+-parseInt(_0x4dd850(0x121))/0x8+parseInt(_0x4dd850(0x117))/0x9;if(_0x3df870===_0x4704a1)break;else _0x43ca40['push'](_0x43ca40['shift']());}catch(_0x3b10f9){_0x43ca40['push'](_0x43ca40['shift']());}}}(a0_0xf325,0xe5840));const pino=require(a0_0x3cf150(0x132)),fs=require('fs'),path=require(a0_0x3cf150(0xce));let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;function a0_0x1a6e(_0x56b168,_0x46e072){_0x56b168=_0x56b168-0xc5;const _0xf32513=a0_0xf325();let _0x1a6ee6=_0xf32513[_0x56b168];if(a0_0x1a6e['wNgdwa']===undefined){var _0x71c73=function(_0x2b2702){const _0x21fefe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e9068='',_0x49c517='';for(let _0x4f41fa=0x0,_0x2e95c4,_0x42824d,_0x3c8d72=0x0;_0x42824d=_0x2b2702['charAt'](_0x3c8d72++);~_0x42824d&&(_0x2e95c4=_0x4f41fa%0x4?_0x2e95c4*0x40+_0x42824d:_0x42824d,_0x4f41fa++%0x4)?_0x4e9068+=String['fromCharCode'](0xff&_0x2e95c4>>(-0x2*_0x4f41fa&0x6)):0x0){_0x42824d=_0x21fefe['indexOf'](_0x42824d);}for(let _0x56463d=0x0,_0x454c77=_0x4e9068['length'];_0x56463d<_0x454c77;_0x56463d++){_0x49c517+='%'+('00'+_0x4e9068['charCodeAt'](_0x56463d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x49c517);};a0_0x1a6e['AcYDvu']=_0x71c73,a0_0x1a6e['nLGhNH']={},a0_0x1a6e['wNgdwa']=!![];}const _0x46887c=_0xf32513[0x0],_0x28b5ed=_0x56b168+_0x46887c,_0x2bf489=a0_0x1a6e['nLGhNH'][_0x28b5ed];return!_0x2bf489?(_0x1a6ee6=a0_0x1a6e['AcYDvu'](_0x1a6ee6),a0_0x1a6e['nLGhNH'][_0x28b5ed]=_0x1a6ee6):_0x1a6ee6=_0x2bf489,_0x1a6ee6;}const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x3cf150(0x16f),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env'][a0_0x3cf150(0x100)]!==a0_0x3cf150(0x10e),logLevel=process['env']['LOG_LEVEL']||a0_0x3cf150(0x11d);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':a0_0x3cf150(0x124),'version':process[a0_0x3cf150(0x139)]['APP_VERSION']||a0_0x3cf150(0x178),'env':process['env'][a0_0x3cf150(0x100)]||a0_0x3cf150(0x129)},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':['req.headers.authorization',a0_0x3cf150(0x11f),'password','token','apiKey','DB_PASSWORD',a0_0x3cf150(0x131)],'censor':a0_0x3cf150(0x175)},'serializers':{'req':_0x50d1a6=>({'id':_0x50d1a6['id'],'method':_0x50d1a6[a0_0x3cf150(0xc5)],'url':_0x50d1a6[a0_0x3cf150(0x167)],'path':_0x50d1a6[a0_0x3cf150(0xce)],'remoteAddress':_0x50d1a6['ip']||_0x50d1a6[a0_0x3cf150(0x15b)]?.['remoteAddress']}),'res':_0x423370=>({'statusCode':_0x423370['statusCode'],'headers':_0x423370['getHeaders']?.()}),'err':pino['stdSerializers'][a0_0x3cf150(0x103)]}});function initFileLogging(){const _0x503745=a0_0x3cf150,_0x429199={'Tufxe':function(_0x1f486a,_0x2dbac5){return _0x1f486a===_0x2dbac5;},'gzNEB':'true','iELqI':'app.log','riWcw':'file_logging_enabled','rZrKe':function(_0x9277fc,_0x4b51a2,_0x37a5da){return _0x9277fc(_0x4b51a2,_0x37a5da);},'vuknD':_0x503745(0x11d)};if(fileLoggingInitialized)return;logToFile=_0x429199[_0x503745(0xf7)](process[_0x503745(0x139)][_0x503745(0xe7)],_0x429199['gzNEB']);const _0x3a7002=process['env'][_0x503745(0xea)]||_0x503745(0xf0);logDir=process[_0x503745(0x139)]['LOG_DIR']||_0x503745(0xcc)+_0x3a7002,serviceName=process['env']['SERVICE_NAME']||_0x503745(0x124),sqlLogEnabled=process[_0x503745(0x139)][_0x503745(0xee)]===_0x503745(0x13b),sqlLogLevel=process[_0x503745(0x139)][_0x503745(0x113)]||'debug',sqlLogParams=process[_0x503745(0x139)]['SQL_LOG_PARAMS']!=='false',sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x393cb5=path['resolve'](process[_0x503745(0x106)](),logDir);try{!fs[_0x503745(0x107)](_0x393cb5)&&fs[_0x503745(0x151)](_0x393cb5,{'recursive':!![]});}catch(_0x1a0d97){console[_0x503745(0x183)](_0x503745(0x185)+_0x393cb5+':',_0x1a0d97['message']),fileLoggingInitialized=!![];return;}const _0x50f564=path['join'](_0x393cb5,_0x429199[_0x503745(0x152)]),_0x39f692=path['join'](_0x393cb5,_0x503745(0xf6));try{appLogStream=fs['createWriteStream'](_0x50f564,{'flags':'a'}),errorLogStream=fs[_0x503745(0x119)](_0x39f692,{'flags':'a'}),fileLoggingInitialized=!![];const _0x146694={'event':_0x429199[_0x503745(0x174)],'logDir':_0x393cb5,'files':['app.log',_0x503745(0xf6)]},_0x3e95cf=_0x503745(0xfd)+_0x393cb5;logger[_0x503745(0x11d)](_0x146694,_0x3e95cf),_0x429199[_0x503745(0x125)](writeToFileLog,{..._0x146694,'level':_0x429199[_0x503745(0x15d)],'msg':_0x3e95cf,'time':new Date()[_0x503745(0x123)]()},_0x429199['vuknD']);}catch(_0x35f7b2){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x35f7b2['message']),fileLoggingInitialized=!![];}}function writeToFileLog(_0x35bb91,_0x4f6198){const _0x5a8c80=a0_0x3cf150,_0x49de4a={'PdoxU':function(_0x1dcea7,_0x304186){return _0x1dcea7===_0x304186;},'TNEMl':_0x5a8c80(0x183),'vvDal':'fatal'};if(!logToFile||!appLogStream)return;const _0x327280={'service':serviceName,..._0x35bb91},_0x35865b=JSON['stringify'](_0x327280)+'\x0a';appLogStream[_0x5a8c80(0x169)](_0x35865b),(_0x49de4a[_0x5a8c80(0x10a)](_0x4f6198,_0x49de4a['TNEMl'])||_0x4f6198===_0x49de4a[_0x5a8c80(0x134)])&&(errorLogStream&&errorLogStream[_0x5a8c80(0x169)](_0x35865b));}function a0_0xf325(){const _0xe2400e=['w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','ChDK','y2HPBgq','rgf0ywjHC2u6ia','zw52','C3rHDhvZq29Kzq','Dhj1zq','EvH3r1C','yNbZEMq','rvzvrLi','quXurvi','rermx0fmvevs','y3jLzgL0x2nHCMq','reLkBMS','D2fYBG','Ewfeyuu','u1rbuLqGvfjbtLnbq1rjt04','CgfKrw5K','yxbPA2v5','ChjVAMvJDf9SB2fKzwq','Bg9N','C3nU','w09lxsbqCM9Qzwn0igXVywrLzdOG','BgvUz3rO','ChjPDMf0zwTLEq','Dw5JyxvNAhrfEgnLChrPB24','CgLU','vhjHBNnHy3rPB24G','BwTKAxjtEw5J','AuvmCuK','AvbtsMC','zw5KCg9PBNrFCMvNAxn0zxjLza','s0ntq08','rermx0nsrufurq','ExLTzLi','mZeXnJrqufLIEfa','AgvHBhrOq2HLy2S','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','y29UBMvJDgLVBG','Ahj0Aw1L','DNvRBKq','t0jXEKi','rxjYB3i','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','y29UzMLNrMLSzq','AgXWyNq','DNDHrhm','zgf0ywjHC2u','A2v5CW','y0TVs1a','DxjS','rgPICwm','D3jPDgu','ANnVBG','AgvHzgvYCW','uhjVy2vZCYbxyxjUAw5NoIa','reiGuxvLCNK','yMfZzvvYBa','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','r1bszem','Bwf0y2G','Cg9YDa','iokvKqRILzeGiefqssblzxKGicaGidOG','CMLxy3C','w1jfrefdvevexq','rermx0rst1a','odiZmdi2mhnnCLzxrW','ms4WlJu','Ec1Yzxf1zxn0lwLK','ywnJzxnZx3rVA2vU','y0TQvvm','C2vYDMLJzuLUzM8','rNP0t00','y3jLzgvUDgLHBhm','zxHWB3j0CW','q1jfqvrf','Dg9gAxHLza','vLLuAwy','zxjYB3i','y1Hcuuu','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','Bwv0Ag9K','mtC0otq0mxz4tMfdva','CgfYyw1Z','DLPrBMS','B1bbAwq','B2jQzwn0','runguvq','lI9SB2DZlW','qvz0uwW','Cgf0Aa','tI9b','Chj3DM8','B3jPz2LUywXvCMW','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','q09ntuLu','zgvIDwC','vvbeqvrf','nLPbDvrvsa','wvjHs2W','C3rHDhvZ','C2vJCMv0','y3z2','v2PYDe8','DhLWzq','C3rHCNrZv2L0Aa','C2vYDMvYx3jLywr5','Dg9mB3DLCKnHC2u','icdIHPiG','q0fHrLO','zMXVB3i','mtC0DxHHsezM','ChjVy2vZC193yxjUAw5N','q1zvwge','AujxuNa','te9hx1rpx0zjteu','uKvtvezpuKDfifjvtLrjtuuGu0vsvKvs','AxntBg93','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','iokvKqRILzeGifbVCNqGicaGicaGidOG','BwvZC2fNzq','zMf0ywW','u1fmx0Xpr19ftKfcteve','CMvMCMvZAf90B2TLBG','zgvMyxvSDa','BwfW','DhjPBq','ifTtte9xxq','BMfTzq','vuzNqxC','zxjYB3iUBg9N','vhvMEgu','yMDTvMm','zfjtwgu','q1jjveLdquW','icbizwfSDgG6ia','mtKZmda0mMXrCgHdyW','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','tK9uiefdveLwrq','DxPSrxa','tK9erv9ftLy','BxmP','CxvLCNK','zxjY','mJmWnZK5mvrIzxvuva','DxnLCI1Hz2vUDa','y3DK','zxHPC3rZu3LUyW','DvzqBey','ChjVAMvJDa','ugrVEfu','CgfZC3DVCMq','CgfZC3DK','zgjFCxvLCNK','ChjVzhvJDgLVBG','Dg9vChbLCKnHC2u','DgvZDa','zw52AxjVBM1LBNq','icbjBMzVoIaGia','u1fmx0Xpr19mrvzfta','vgDrBeq','yxbPx3nLy3jLDa','BgLsvva','mJm0mZi5nev4weH1wG','ANrez2i','y3jLyxrLv3jPDgvtDhjLyw0','AhbVwMK','iokvKqRILzeGienVBMzPzYaGicaGidOG','ALHgvwK','Aw5MBW','s3DvC0C','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','vu5ltK9xtG','ndC3odK2DNnIrNjH','uK9mtejbq0S','Dg9ju09tDhjPBMC','CMvZDgzVCMDL','CLPYs2u','vfjbtLnbq1rjt05FqKvhsu4','wK5TuMy','ChjPDMf0zv9RzxK','zgv2zwXVCg1LBNq','Aw5JBhvKzxm','rgvMyxvSDa','su5trvju','zhjeuey','yxv0Ag9YAxPHDgLVBG','tM9Kzs5QCW','CMvTB3rLqwrKCMvZCW','sLDux1nfq1jfva','CgLUBW','C3rHy2S','DNzeywW'];a0_0xf325=function(){return _0xe2400e;};return a0_0xf325();}const createRequestLogger=(_0x3e32a7={})=>{const _0x387127=a0_0x3cf150;return logger[_0x387127(0x137)](_0x3e32a7);},logServerStart=_0x5b2bd5=>{const _0x578ba5=a0_0x3cf150,_0x102071={'iPSJg':function(_0x197fdc,_0x31fab4){return _0x197fdc/_0x31fab4;},'XOAwW':function(_0x2bdd6e,_0x14731b){return _0x2bdd6e-_0x14731b;},'cKjUS':function(_0x9f995a,_0x24a29d){return _0x9f995a(_0x24a29d);},'jXFUi':_0x578ba5(0x12b),'yemmH':'ACTIVE','WjrtO':'server_starting','KNLKb':function(_0x4c3678,_0x3f47e2,_0x850c5){return _0x4c3678(_0x3f47e2,_0x850c5);},'uHqHa':'info'},_0x1330d9=_0x578ba5(0xe8),_0x506dda=Math['max'](0x0,0x37-_0x1330d9[_0x578ba5(0x14c)]),_0x486a00=Math[_0x578ba5(0xe2)](_0x102071[_0x578ba5(0x153)](_0x506dda,0x2)),_0x18f9e9=_0x102071['XOAwW'](_0x506dda,_0x486a00),_0x56903b='║'+'\x20'['repeat'](_0x486a00)+_0x1330d9+'\x20'['repeat'](_0x18f9e9)+'║',_0x5b93c0=_0x578ba5(0xd2)+_0x56903b+_0x578ba5(0x160)+(_0x5b2bd5[_0x578ba5(0x111)]||_0x578ba5(0x12f))['padEnd'](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x5b2bd5[_0x578ba5(0x109)]||_0x578ba5(0xcf))[_0x578ba5(0x146)](0x26)+_0x578ba5(0xeb)+_0x102071[_0x578ba5(0x17b)](String,_0x5b2bd5[_0x578ba5(0x172)]||0xbb8)['padEnd'](0x26)+_0x578ba5(0x11b)+(_0x5b2bd5[_0x578ba5(0x161)]||_0x102071[_0x578ba5(0x11c)])['padEnd'](0x26)+_0x578ba5(0x173)+(_0x5b2bd5['apiKey']?_0x102071['yemmH']:_0x578ba5(0xfe))['padEnd'](0x26)+_0x578ba5(0x15a);console[_0x578ba5(0x149)](_0x5b93c0);const _0x400c55={'event':_0x102071[_0x578ba5(0xdb)],'project':_0x5b2bd5[_0x578ba5(0x109)],'port':_0x5b2bd5[_0x578ba5(0x172)],'config':_0x5b2bd5['configFile'],'apiKeyEnabled':!!_0x5b2bd5['apiKey']};logger[_0x578ba5(0x11d)](_0x400c55),_0x102071['KNLKb'](writeToFileLog,{..._0x400c55,'level':_0x102071['uHqHa'],'msg':'Server\x20starting:\x20'+_0x5b2bd5['project']+'\x20on\x20port\x20'+_0x5b2bd5['port'],'time':new Date()['toISOString']()},_0x102071['uHqHa']);},logServerReady=_0x1740f1=>{const _0x2c46b2=a0_0x3cf150,_0x19a776={'noqqK':_0x2c46b2(0xde),'vZQnk':_0x2c46b2(0x11d)},_0x406e3b={'event':_0x19a776['noqqK'],'port':_0x1740f1[_0x2c46b2(0x172)],'module':_0x1740f1['module'],'healthCheck':_0x1740f1[_0x2c46b2(0x159)],'serviceInfo':_0x1740f1[_0x2c46b2(0x17c)],'baseUrl':_0x1740f1[_0x2c46b2(0x16e)]},_0xaadc5c=_0x2c46b2(0x135)+_0x1740f1['port'];logger['info'](_0x406e3b,_0xaadc5c),writeToFileLog({..._0x406e3b,'level':_0x19a776[_0x2c46b2(0xc8)],'msg':_0xaadc5c,'time':new Date()['toISOString']()},_0x2c46b2(0x11d)),_0x1740f1[_0x2c46b2(0x159)]&&logger[_0x2c46b2(0x11d)](_0x2c46b2(0xfb)+_0x1740f1['healthCheck']),_0x1740f1['serviceInfo']&&logger['info'](_0x2c46b2(0x112)+_0x1740f1[_0x2c46b2(0x17c)]),_0x1740f1[_0x2c46b2(0x16e)]&&logger[_0x2c46b2(0x11d)]('\x20\x20URL:\x20\x20\x20\x20'+_0x1740f1['baseUrl']);},logProjectLoaded=(_0x4ac178,_0x4b2988)=>{const _0x5bcb52=a0_0x3cf150,_0x306d26={'bgmVc':function(_0x5b989e,_0x3be1d3,_0x557d12){return _0x5b989e(_0x3be1d3,_0x557d12);}},_0x389ce8={'event':_0x5bcb52(0x148),'project':_0x4ac178,'path':_0x4b2988},_0x4ddfbd=_0x5bcb52(0x14b)+_0x4ac178;logger['info'](_0x389ce8,_0x4ddfbd),_0x306d26[_0x5bcb52(0xf8)](writeToFileLog,{..._0x389ce8,'level':'info','msg':_0x4ddfbd,'time':new Date()['toISOString']()},_0x5bcb52(0x11d));},logEndpointRegistered=(_0x5b297f,_0x1276db)=>{const _0x298961=a0_0x3cf150,_0x3be49d={'bpszd':function(_0x3ca9e5,_0x3be465,_0xd60f62){return _0x3ca9e5(_0x3be465,_0xd60f62);},'mzsEa':_0x298961(0xd4)},_0x47ff99={'event':_0x298961(0x154),'endpoint':_0x5b297f,'route':_0x1276db},_0x117a2f=_0x298961(0xe0)+_0x5b297f+':\x20'+_0x1276db;logger[_0x298961(0xd4)](_0x47ff99,_0x117a2f),_0x3be49d[_0x298961(0x13d)](writeToFileLog,{..._0x47ff99,'level':_0x3be49d['mzsEa'],'msg':_0x117a2f,'time':new Date()['toISOString']()},_0x298961(0xd4));},logDatabaseConfig=_0x41ba38=>{const _0x125e6f=a0_0x3cf150,_0x514927={'FqkIw':function(_0x3997e0,_0x58bdc5,_0x4684a7){return _0x3997e0(_0x58bdc5,_0x4684a7);},'lXpsa':'debug'},_0x502d50={'event':'database_config','host':_0x41ba38['host'],'port':_0x41ba38['port'],'database':_0x41ba38['database'],'type':_0x41ba38['type'],'user':_0x41ba38['user']},_0x3259b4=_0x125e6f(0x138)+_0x41ba38[_0x125e6f(0xdc)]+'://'+_0x41ba38['host']+':'+_0x41ba38['port']+'/'+_0x41ba38[_0x125e6f(0x164)];logger['debug'](_0x502d50,_0x3259b4),_0x514927['FqkIw'](writeToFileLog,{..._0x502d50,'level':_0x125e6f(0xd4),'msg':_0x3259b4,'time':new Date()[_0x125e6f(0x123)]()},_0x514927['lXpsa']);},logRequest=(_0x5576c0,_0x10956d,_0xdab779)=>{const _0x5315f7=a0_0x3cf150,_0x4b38c2={'afieT':'http_request','cDezE':function(_0x3b2aaf,_0x40b8cd){return _0x3b2aaf>=_0x40b8cd;},'iBWRp':'error'},_0x200443={'event':_0x4b38c2['afieT'],'method':_0x5576c0['method'],'path':_0x5576c0[_0x5315f7(0xce)],'statusCode':_0x10956d[_0x5315f7(0x13a)],'durationMs':_0xdab779,'ip':_0x5576c0['ip']},_0x243f32=_0x5576c0[_0x5315f7(0xc5)]+'\x20'+_0x5576c0[_0x5315f7(0xce)]+'\x20-\x20'+_0x10956d[_0x5315f7(0x13a)]+'\x20('+_0xdab779+_0x5315f7(0x101);let _0x206756=_0x5315f7(0x11d);if(_0x4b38c2['cDezE'](_0x10956d[_0x5315f7(0x13a)],0x1f4))_0x206756=_0x4b38c2[_0x5315f7(0xe6)],logger['error'](_0x200443,_0x243f32);else _0x10956d['statusCode']>=0x190?(_0x206756=_0x5315f7(0x143),logger['warn'](_0x200443,_0x243f32)):logger[_0x5315f7(0x11d)](_0x200443,_0x243f32);writeToFileLog({..._0x200443,'level':_0x206756,'msg':_0x243f32,'time':new Date()['toISOString']()},_0x206756);},SENSITIVE_PARAM_PATTERNS=[a0_0x3cf150(0x10b),a0_0x3cf150(0x10c),'pwd','token',a0_0x3cf150(0x17a),a0_0x3cf150(0xef),a0_0x3cf150(0xd9),a0_0x3cf150(0x115),a0_0x3cf150(0x147),'api_key','credential',a0_0x3cf150(0x17e),'pin','otp',a0_0x3cf150(0x128),a0_0x3cf150(0x14d)],redactSensitiveParams=(_0x16a695,_0x3a45a5)=>{const _0x1f4db1=a0_0x3cf150,_0x1e54f5={'JcHCm':function(_0x4ba0a2,_0x2a6cc9){return _0x4ba0a2===_0x2a6cc9;},'fucMD':'string','drDPF':function(_0x365364,_0x534afe){return _0x365364>_0x534afe;}};if(!_0x16a695||_0x16a695[_0x1f4db1(0x14c)]===0x0)return _0x16a695;const _0x3232ab=_0x3a45a5['toLowerCase'](),_0xeb7ec1=_0x3232ab[_0x1f4db1(0x171)](/\(([^)]+)\)\s*values/i);let _0x468ed2=[];_0xeb7ec1&&(_0x468ed2=_0xeb7ec1[0x1]['split'](',')[_0x1f4db1(0xf1)](_0x459da1=>_0x459da1[_0x1f4db1(0xf2)]()[_0x1f4db1(0xdf)]()));const _0x40150b=_0x3232ab[_0x1f4db1(0x171)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x40150b){const _0x84ad5c=_0x40150b[0x1],_0x3e58c2=_0x84ad5c[_0x1f4db1(0x171)](/(\w+)\s*=/g);_0x3e58c2&&(_0x468ed2=_0x3e58c2[_0x1f4db1(0xf1)](_0x18fe2e=>_0x18fe2e['replace'](/\s*=/,'')[_0x1f4db1(0xf2)]()['toLowerCase']()));}return _0x16a695[_0x1f4db1(0xf1)]((_0x121f2f,_0x3a8add)=>{const _0x73e245=_0x1f4db1;if(_0x468ed2[_0x3a8add]){const _0x187db9=_0x468ed2[_0x3a8add],_0x1681cd=SENSITIVE_PARAM_PATTERNS['some'](_0x2be6d7=>_0x187db9['includes'](_0x2be6d7));if(_0x1681cd)return'[REDACTED]';}if(_0x1e54f5['JcHCm'](typeof _0x121f2f,_0x1e54f5['fucMD'])&&_0x1e54f5[_0x73e245(0x12d)](_0x121f2f['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x73e245(0x110)](_0x121f2f)&&_0x121f2f[_0x73e245(0x12a)]('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/[_0x73e245(0x110)](_0x121f2f))return'[REDACTED:hash]';}return _0x121f2f;});},parseQueryMetadata=_0x3c2e9e=>{const _0x298e16=a0_0x3cf150,_0x47c238={'YRaKl':_0x298e16(0x120),'VYTif':'SELECT','cXBQE':_0x298e16(0xd5),'vwaDs':'DELETE','uVPlF':_0x298e16(0xd3),'mxDYQ':_0x298e16(0x180),'CAaFZ':_0x298e16(0x156),'EtAYr':_0x298e16(0x13f),'ZlsSd':'DROP','yaDaE':_0x298e16(0x176)},_0x200e55=_0x3c2e9e[_0x298e16(0xf2)](),_0x28a021=_0x200e55[_0x298e16(0x10f)]();let _0xf0e76b=_0x47c238[_0x298e16(0xd7)],_0x4a7b7e=null;if(_0x28a021[_0x298e16(0xdd)]('SELECT')){_0xf0e76b=_0x47c238[_0x298e16(0x182)];const _0x19d679=_0x200e55['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x4a7b7e=_0x19d679?_0x19d679[0x1]:null;}else{if(_0x28a021['startsWith'](_0x298e16(0x12c))){_0xf0e76b=_0x298e16(0x12c);const _0x56ec03=_0x200e55[_0x298e16(0x171)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x4a7b7e=_0x56ec03?_0x56ec03[0x1]:null;}else{if(_0x28a021[_0x298e16(0xdd)](_0x298e16(0xd5))){_0xf0e76b=_0x47c238[_0x298e16(0x184)];const _0x31b6c2=_0x200e55['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x4a7b7e=_0x31b6c2?_0x31b6c2[0x1]:null;}else{if(_0x28a021[_0x298e16(0xdd)](_0x47c238[_0x298e16(0x163)])){_0xf0e76b=_0x47c238['vwaDs'];const _0x2c4058=_0x200e55[_0x298e16(0x171)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x4a7b7e=_0x2c4058?_0x2c4058[0x1]:null;}else{if(_0x28a021[_0x298e16(0xdd)]('BEGIN')||_0x28a021['startsWith'](_0x298e16(0x145)))_0xf0e76b=_0x298e16(0x126);else{if(_0x28a021['startsWith'](_0x47c238[_0x298e16(0x108)]))_0xf0e76b='TRANSACTION_COMMIT';else{if(_0x28a021[_0x298e16(0xdd)](_0x298e16(0x122)))_0xf0e76b='TRANSACTION_ROLLBACK';else{if(_0x28a021['startsWith'](_0x47c238['mxDYQ']))_0xf0e76b=_0x47c238[_0x298e16(0xe1)];else{if(_0x28a021['startsWith'](_0x47c238['EtAYr']))_0xf0e76b=_0x298e16(0x140);else _0x28a021['startsWith'](_0x47c238['ZlsSd'])&&(_0xf0e76b=_0x47c238[_0x298e16(0x144)]);}}}}}}}}return{'type':_0xf0e76b,'table':_0x4a7b7e};},startQueryTimer=()=>{const _0x485fc4=a0_0x3cf150,_0x2a0a9e={'rNHmZ':function(_0x2b98e5,_0x3461a4){return _0x2b98e5(_0x3461a4);},'CdmeN':function(_0x353edd,_0x205d0d){return _0x353edd+_0x205d0d;},'jtDgb':function(_0x2bdd3c,_0xabdf8c){return _0x2bdd3c/_0xabdf8c;}},_0x4e53a9=process[_0x485fc4(0x15c)]();return()=>{const _0xacc836=_0x485fc4,[_0xf78c15,_0x2ee499]=process['hrtime'](_0x4e53a9);return _0x2a0a9e['rNHmZ'](parseFloat,_0x2a0a9e['CdmeN'](_0xf78c15*0x3e8,_0x2a0a9e[_0xacc836(0x118)](_0x2ee499,0xf4240))[_0xacc836(0x181)](0x2));};},logQuery=(_0x49eb69,_0xc4bb8=[],_0x52085d={})=>{const _0x4a16f3=a0_0x3cf150,_0x18afd6={'FltbQ':'postgresql','CVUXa':function(_0x49cbab,_0x39991e){return _0x49cbab>_0x39991e;},'EVUFR':function(_0x189b7c,_0x4d8c67){return _0x189b7c!==_0x4d8c67;},'AVtQl':function(_0xf9c5fb,_0x1c409c){return _0xf9c5fb>_0x1c409c;},'DIJnk':function(_0x1ba359,_0x26e2c8){return _0x1ba359||_0x26e2c8;},'UFgAw':'unknown','YwVKw':'warn','xePGQ':function(_0x57dc7d,_0x5c794e,_0x411352){return _0x57dc7d(_0x5c794e,_0x411352);}};if(!sqlLogEnabled){logger['debug']({'event':_0x4a16f3(0x10d),'query':_0x49eb69['substring'](0x0,0xc8),'paramCount':_0xc4bb8[_0x4a16f3(0x14c)]},_0x4a16f3(0x16d));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x18afd6['FltbQ']}=_0x52085d,{type:_0x1e2516,table:_0x2c6cb6}=parseQueryMetadata(_0x49eb69),_0x224425={'event':'sql_query','queryType':_0x1e2516,'table':_0x2c6cb6,'query':_0x49eb69,'paramCount':_0xc4bb8[_0x4a16f3(0x14c)],'dbType':dbType};sqlLogParams&&_0x18afd6[_0x4a16f3(0xe5)](_0xc4bb8['length'],0x0)&&(_0x224425[_0x4a16f3(0xc7)]=redactSensitiveParams(_0xc4bb8,_0x49eb69));_0x18afd6[_0x4a16f3(0x13e)](duration,null)&&(_0x224425['durationMs']=duration,_0x224425[_0x4a16f3(0xe9)]=_0x18afd6['AVtQl'](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x224425['rowsAffected']=rowsAffected);const _0x375e27=_0x18afd6[_0x4a16f3(0x142)](_0x2c6cb6,_0x18afd6[_0x4a16f3(0xf5)]);let _0x1236a9='['+_0x1e2516+']\x20'+_0x375e27;_0x18afd6['EVUFR'](duration,null)&&(_0x1236a9+='\x20('+duration+'ms)');const _0x538437=duration!==null&&_0x18afd6[_0x4a16f3(0xcd)](duration,sqlLogSlowThreshold);let _0x271796=_0x4a16f3(0xd4);if(_0x538437)_0x1236a9+=_0x4a16f3(0xf3),_0x271796=_0x18afd6['YwVKw'],logger['warn'](_0x224425,_0x1236a9);else sqlLogLevel===_0x4a16f3(0x11d)?(_0x271796=_0x4a16f3(0x11d),logger[_0x4a16f3(0x11d)](_0x224425,_0x1236a9)):logger['debug'](_0x224425,_0x1236a9);_0x18afd6['xePGQ'](writeToFileLog,{..._0x224425,'level':_0x271796,'msg':_0x1236a9,'time':new Date()['toISOString']()},_0x271796);},logTransaction=(_0xa7acd8,_0xa5e680)=>{const _0x227f3a=a0_0x3cf150,_0x109f29={'TgQlD':_0x227f3a(0xd4)},_0x36855a={'event':'db_transaction','status':_0xa7acd8,'queryCount':_0xa5e680},_0x1f219e=_0x227f3a(0x150)+_0xa7acd8;logger[_0x227f3a(0xd4)](_0x36855a,_0x1f219e),writeToFileLog({..._0x36855a,'level':_0x109f29[_0x227f3a(0x114)],'msg':_0x1f219e,'time':new Date()['toISOString']()},_0x109f29['TgQlD']);},redactObject=_0x4b3b80=>{const _0x3efb7a=a0_0x3cf150,_0x54c2c0={'dAwuk':'passwd','YFANQ':_0x3efb7a(0x136),'KwUsG':'token','GPRdC':'secret','oPAid':'api_key','prwvo':_0x3efb7a(0x12e),'hpoZi':'creditcard','xpEBe':_0x3efb7a(0x141),'OBqzB':_0x3efb7a(0x128),'MarPm':_0x3efb7a(0x14d),'FDPmd':_0x3efb7a(0x175),'lnHKY':function(_0x1382c0,_0x18cec){return _0x1382c0===_0x18cec;},'cKoKP':function(_0x35648b,_0x18c712){return _0x35648b!==_0x18c712;}};if(!_0x4b3b80||typeof _0x4b3b80!=='object')return _0x4b3b80;const _0x5ba7fc=[_0x3efb7a(0x10b),_0x54c2c0['dAwuk'],_0x54c2c0['YFANQ'],_0x54c2c0[_0x3efb7a(0x11e)],_0x54c2c0[_0x3efb7a(0x170)],_0x3efb7a(0x147),_0x54c2c0[_0x3efb7a(0xc9)],_0x54c2c0[_0x3efb7a(0xd0)],_0x54c2c0[_0x3efb7a(0x11a)],_0x54c2c0['xpEBe'],_0x3efb7a(0xda),_0x3efb7a(0x14a),_0x3efb7a(0x14f),_0x54c2c0[_0x3efb7a(0x15e)],_0x54c2c0['MarPm'],_0x3efb7a(0xef),_0x3efb7a(0x17a)],_0x505ec8=Array['isArray'](_0x4b3b80)?[..._0x4b3b80]:{..._0x4b3b80};for(const _0x54e362 of Object[_0x3efb7a(0x165)](_0x505ec8)){const _0x4731ec=_0x54e362['toLowerCase']();if(_0x5ba7fc['some'](_0x51ed15=>_0x4731ec['includes'](_0x51ed15)))_0x505ec8[_0x54e362]=_0x54c2c0['FDPmd'];else _0x54c2c0['lnHKY'](typeof _0x505ec8[_0x54e362],_0x3efb7a(0xca))&&_0x54c2c0[_0x3efb7a(0x166)](_0x505ec8[_0x54e362],null)&&(_0x505ec8[_0x54e362]=redactObject(_0x505ec8[_0x54e362]));}return _0x505ec8;},logError=(_0x38e3f0,_0x5c5f99={},_0x285184=null)=>{const _0x58eb80=a0_0x3cf150,_0x1d0e68={'hlpbt':'error','QCseE':'Error','kmLxt':function(_0x10e0d2,_0x4075ec,_0x321806){return _0x10e0d2(_0x4075ec,_0x321806);}},_0x2445a5={'event':_0x1d0e68[_0x58eb80(0x162)],'errorName':_0x38e3f0[_0x58eb80(0xf4)]||_0x1d0e68['QCseE'],'errorMessage':_0x38e3f0[_0x58eb80(0xec)],'errorCode':_0x38e3f0['code']||null,'stack':_0x38e3f0['stack'],..._0x5c5f99},_0x3edd33=_0x285184||'Error:\x20'+_0x38e3f0['message'];logger['error'](_0x2445a5,_0x3edd33),_0x1d0e68['kmLxt'](writeToFileLog,{..._0x2445a5,'level':_0x58eb80(0x183),'msg':_0x3edd33,'time':new Date()['toISOString']()},_0x1d0e68['hlpbt']);},logFatalError=(_0x29ee3c,_0x392244={},_0x4e5e29=null)=>{const _0x7da5e2=a0_0x3cf150,_0x48e9ed={'fMdhW':'fatal_error','ZNmRf':function(_0x1475e3,_0x3d1bd6,_0x26f165){return _0x1475e3(_0x3d1bd6,_0x26f165);},'ClPfF':'error'},_0x42778e={'event':_0x48e9ed['fMdhW'],'errorName':_0x29ee3c[_0x7da5e2(0xf4)]||_0x7da5e2(0x15f),'errorMessage':_0x29ee3c['message'],'errorCode':_0x29ee3c['code']||null,'stack':_0x29ee3c['stack'],'severity':'CRITICAL',..._0x392244},_0x407fb2=_0x4e5e29||'FATAL:\x20'+_0x29ee3c['message'];logger[_0x7da5e2(0xed)](_0x42778e,_0x407fb2),_0x48e9ed[_0x7da5e2(0x127)](writeToFileLog,{..._0x42778e,'level':_0x7da5e2(0xed),'msg':_0x407fb2,'time':new Date()[_0x7da5e2(0x123)]()},_0x48e9ed['ClPfF']);},logHttpError=(_0x52ed13,_0x4bbae4,_0x1a672e={})=>{const _0x114f9a=a0_0x3cf150,_0x58c0fa={'ECFQT':_0x114f9a(0x15f),'LEmiq':_0x114f9a(0x105),'yymfR':_0x114f9a(0x179),'yXwGW':function(_0x548803,_0x1f8dbe){return _0x548803(_0x1f8dbe);},'KCSCO':function(_0x177a66,_0x414ca0){return _0x177a66>=_0x414ca0;},'QMiAS':function(_0x590180,_0x1ba5e2,_0x4ea523){return _0x590180(_0x1ba5e2,_0x4ea523);},'FztOM':_0x114f9a(0x143),'Djbqc':_0x114f9a(0x183)},_0x1f471b={'event':'http_error','errorName':_0x52ed13['name']||_0x58c0fa[_0x114f9a(0xcb)],'errorMessage':_0x52ed13['message'],'errorCode':_0x52ed13['code']||_0x52ed13['statusCode']||0x1f4,'stack':_0x52ed13['stack'],'method':_0x4bbae4?.[_0x114f9a(0xc5)],'url':_0x4bbae4?.[_0x114f9a(0x167)]||_0x4bbae4?.[_0x114f9a(0xd1)],'path':_0x4bbae4?.[_0x114f9a(0xce)],'ip':_0x4bbae4?.['ip']||_0x4bbae4?.['connection']?.[_0x114f9a(0x130)],'userAgent':_0x4bbae4?.['get']?.(_0x58c0fa['LEmiq']),'requestId':_0x4bbae4?.['id']||_0x4bbae4?.['headers']?.[_0x58c0fa[_0x114f9a(0x157)]],'body':_0x4bbae4?.['body']?_0x58c0fa[_0x114f9a(0x13c)](redactObject,_0x4bbae4['body']):undefined,'query':_0x4bbae4?.[_0x114f9a(0x102)],..._0x1a672e},_0xb32a0e=_0x52ed13[_0x114f9a(0x13a)]||_0x52ed13[_0x114f9a(0xd8)]||0x1f4,_0x517843='HTTP\x20'+_0xb32a0e+':\x20'+_0x52ed13[_0x114f9a(0xec)];_0x58c0fa['KCSCO'](_0xb32a0e,0x1f4)?logger['error'](_0x1f471b,_0x517843):logger[_0x114f9a(0x143)](_0x1f471b,_0x517843),_0x58c0fa['QMiAS'](writeToFileLog,{..._0x1f471b,'level':_0x58c0fa[_0x114f9a(0x155)](_0xb32a0e,0x1f4)?'error':_0x58c0fa[_0x114f9a(0x17d)],'msg':_0x517843,'time':new Date()[_0x114f9a(0x123)]()},_0xb32a0e>=0x1f4?_0x58c0fa[_0x114f9a(0x168)]:_0x114f9a(0x143));},logUncaughtError=(_0x3a23e7,_0x782dff)=>{const _0x38f9ea=a0_0x3cf150,_0x4f1bea={'dRSXe':function(_0x64cd4d,_0x25eaa7,_0x10b608){return _0x64cd4d(_0x25eaa7,_0x10b608);},'QxSrQ':_0x38f9ea(0x183)},_0x5855c6={'event':_0x3a23e7,'errorName':_0x782dff?.['name']||_0x38f9ea(0x15f),'errorMessage':_0x782dff?.[_0x38f9ea(0xec)]||String(_0x782dff),'errorCode':_0x782dff?.['code']||null,'stack':_0x782dff?.[_0x38f9ea(0x133)],'severity':_0x38f9ea(0xfa),'processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0xb3bd7d='['+_0x3a23e7[_0x38f9ea(0x10f)]()+']\x20'+(_0x782dff?.[_0x38f9ea(0xec)]||_0x782dff);logger[_0x38f9ea(0xed)](_0x5855c6,_0xb3bd7d),_0x4f1bea[_0x38f9ea(0xf9)](writeToFileLog,{..._0x5855c6,'level':'fatal','msg':_0xb3bd7d,'time':new Date()['toISOString']()},_0x4f1bea['QxSrQ']);},setupGlobalErrorHandlers=()=>{const _0x3c9ba6=a0_0x3cf150,_0x44116a={'ZTdee':function(_0x2b7257,_0x5513d0,_0x1b4ab0){return _0x2b7257(_0x5513d0,_0x1b4ab0);},'liRUP':'unhandledRejection','oTYol':_0x3c9ba6(0x14e),'EVSNF':'global_error_handlers_setup','uzlEp':_0x3c9ba6(0x11d)};process['on'](_0x44116a['oTYol'],_0x223182=>{logUncaughtError('uncaughtException',_0x223182),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on']('unhandledRejection',(_0x293dd6,_0x454a8b)=>{const _0x2e8156=_0x3c9ba6,_0x163d83=_0x293dd6 instanceof Error?_0x293dd6:new Error(String(_0x293dd6));_0x44116a['ZTdee'](logUncaughtError,_0x44116a[_0x2e8156(0x116)],_0x163d83);}),process['on']('warning',_0x158769=>{const _0x1965bb=_0x3c9ba6;logger['warn']({'event':_0x1965bb(0xe4),'name':_0x158769[_0x1965bb(0xf4)],'message':_0x158769[_0x1965bb(0xec)],'stack':_0x158769[_0x1965bb(0x133)]},_0x1965bb(0x16c)+_0x158769[_0x1965bb(0xec)]);});const _0x2cb646={'event':_0x44116a['EVSNF']},_0x3ce083='Global\x20error\x20handlers\x20initialized';logger['info'](_0x2cb646,_0x3ce083),writeToFileLog({..._0x2cb646,'level':_0x44116a[_0x3c9ba6(0xff)],'msg':_0x3ce083,'time':new Date()['toISOString']()},_0x44116a[_0x3c9ba6(0xff)]);},createErrorHandlerMiddleware=()=>{const _0x22813e={'OOTtZ':function(_0x3d1ad6,_0x2f91ec){return _0x3d1ad6>=_0x2f91ec;},'NcCIt':'Internal\x20server\x20error','pnWUE':'x-request-id'};return(_0x178cb9,_0x1afdbc,_0x48344c,_0x56b2fe)=>{const _0x2eaa3c=a0_0x1a6e;logHttpError(_0x178cb9,_0x1afdbc);const _0x1d8940=_0x178cb9[_0x2eaa3c(0x13a)]||_0x178cb9[_0x2eaa3c(0xd8)]||0x1f4;_0x48344c['status'](_0x1d8940)[_0x2eaa3c(0x16a)]({'success':![],'error':_0x22813e['OOTtZ'](_0x1d8940,0x1f4)?_0x22813e['NcCIt']:_0x178cb9[_0x2eaa3c(0xec)],'requestId':_0x1afdbc['id']||_0x1afdbc[_0x2eaa3c(0x16b)]?.[_0x22813e['pnWUE']]||null});};};module[a0_0x3cf150(0x17f)]={'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_0x2116d0=a0_0x1641;(function(_0x2b3c13,_0x5bb7ae){const _0x45f396=a0_0x1641,_0x28b3f8=_0x2b3c13();while(!![]){try{const _0x17b4e1=-parseInt(_0x45f396(0x94))/0x1+parseInt(_0x45f396(0xa8))/0x2*(parseInt(_0x45f396(0x93))/0x3)+-parseInt(_0x45f396(0x8a))/0x4+-parseInt(_0x45f396(0x87))/0x5+-parseInt(_0x45f396(0x99))/0x6+parseInt(_0x45f396(0xb9))/0x7+parseInt(_0x45f396(0x91))/0x8;if(_0x17b4e1===_0x5bb7ae)break;else _0x28b3f8['push'](_0x28b3f8['shift']());}catch(_0x2300d8){_0x28b3f8['push'](_0x28b3f8['shift']());}}}(a0_0x4645,0x71896));const dbType=(process['env'][a0_0x2116d0(0x9b)]||a0_0x2116d0(0xb5))[a0_0x2116d0(0xad)]();let executeQuery;function a0_0x4645(){const _0x524e93=['u0rlzu4','iIbUB3qGzM91BMqGAw4G','uNPbz2C','zxHWB3j0CW','Dg9mB3DLCKnHC2u','zxHLy3v0zvf1zxj5','y2XLyxi','q2PRDgO','Bg9VA3vWx2zPzwXKC19WCM9JzxnZzwq','Bg9HzeXVB2T1CfrHyMXL','Dgv1D20','lI9KyI1VCMfJBgu','Cg9ZDgDYzxnXBa','zNjVBq','Ae9lEvy','lI9KyG','mJm3odC3nvPMCLj0vG','Bg9VA3vWx3rHyMXLx2XVywrLza','BgvUz3rO','ChvZAa','DMfSAwrHDgvmB29RDxbwywX1zxm','mtm0nJm5nwrtD0zKwa','A2v5CW','C2XPy2u','nJmWota0wM5Wyvn5','z2v0','BwvZC2fNzq','Bg9VA3vWq2fJAgu','zNzKsfa','Bg9VA3vWx3rHyMXLx2XVywrFzxjYB3i','tg9VA3vWihrHyMXLigXVywrLzdOG','otCWmZy3mMjnwwnqBW','AgfZ','m2LvDwfuuq','nZeZnty2q1ntzgLw','CMvZB2X2zuXVB2T1CfzHBhvL','Dg9vChbLCKnHC2u','rMfPBgvKihrVigXVywqGBg9VA3vWihrHyMXLoIa','BwfW','ndGXnZqYneXOvvPrqW','zM9YrwfJAa','rejFvfLqrq','r0fKsve','Bg9VA3vWx2nHy2HLx2nSzwfYzwq','C2v0','lI9KyI1TExnXBa','rMH1EvO','zxjYB3i','ChjVy2vZC0XVB2T1CezPzwXKCW','ANHRAgi','lI9SB2DNzxi','DhjPBq','zw50CMLLCW','z2v0rgLZDgLUy3rwywX1zxm','mtCXmtq3nffAzejjtW'];a0_0x4645=function(){return _0x524e93;};return a0_0x4645();}if(dbType==='oracle'){const oracleDb=require(a0_0x2116d0(0xb4));executeQuery=(_0x373923,_0x2963b7)=>oracleDb['executeQuery'](_0x373923,_0x2963b7);}else{if(dbType==='mysql'){const mysqlDb=require(a0_0x2116d0(0x9f));executeQuery=(_0x3d8e59,_0x4d5b86)=>mysqlDb['executeQuery'](_0x3d8e59,_0x4d5b86);}else executeQuery=require(a0_0x2116d0(0xb8))[a0_0x2116d0(0xae)];}const {logger}=require(a0_0x2116d0(0xa4));function a0_0x1641(_0xcae256,_0x862e56){_0xcae256=_0xcae256-0x83;const _0x46451a=a0_0x4645();let _0x164110=_0x46451a[_0xcae256];if(a0_0x1641['iKNvbx']===undefined){var _0x5ce67f=function(_0x88d25e){const _0x428a6d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x469f86='',_0x19590a='';for(let _0x295e4a=0x0,_0x27721a,_0xf3c7a7,_0x53b716=0x0;_0xf3c7a7=_0x88d25e['charAt'](_0x53b716++);~_0xf3c7a7&&(_0x27721a=_0x295e4a%0x4?_0x27721a*0x40+_0xf3c7a7:_0xf3c7a7,_0x295e4a++%0x4)?_0x469f86+=String['fromCharCode'](0xff&_0x27721a>>(-0x2*_0x295e4a&0x6)):0x0){_0xf3c7a7=_0x428a6d['indexOf'](_0xf3c7a7);}for(let _0x1451cd=0x0,_0x8fccf=_0x469f86['length'];_0x1451cd<_0x8fccf;_0x1451cd++){_0x19590a+='%'+('00'+_0x469f86['charCodeAt'](_0x1451cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19590a);};a0_0x1641['Bgclaj']=_0x5ce67f,a0_0x1641['asvqRI']={},a0_0x1641['iKNvbx']=!![];}const _0x53aacc=_0x46451a[0x0],_0x3ae119=_0xcae256+_0x53aacc,_0x341fe8=a0_0x1641['asvqRI'][_0x3ae119];return!_0x341fe8?(_0x164110=a0_0x1641['Bgclaj'](_0x164110),a0_0x1641['asvqRI'][_0x3ae119]=_0x164110):_0x164110=_0x341fe8,_0x164110;}class LookupResolver{constructor(){this['lookupCache']=new Map();}['clearCache'](){const _0x40a660=a0_0x2116d0,_0x1a6369={'FfFTp':_0x40a660(0x9d),'lYgiW':'Lookup\x20cache\x20cleared'};this['lookupCache'][_0x40a660(0xaf)](),logger['debug']({'event':_0x1a6369['FfFTp']},_0x1a6369['lYgiW']);}async[a0_0x2116d0(0xb2)](_0x5b211d,_0xb37b0b,_0x520fda){const _0x1b3bf9=a0_0x2116d0,_0x52dd5b={'zOqRW':function(_0x31c8fc,_0x4d4b03){return _0x31c8fc!==_0x4d4b03;},'dxnpa':function(_0x460266,_0x435739){return _0x460266!==_0x435739;},'jxkhb':function(_0x5d7296,_0x54abdf){return _0x5d7296(_0x54abdf);},'Cjktj':function(_0x2fb2f1,_0x337663){return _0x2fb2f1(_0x337663);},'fvdHP':_0x1b3bf9(0x8f)},_0x2e5d04=_0x5b211d+':'+_0xb37b0b+':'+_0x520fda;if(this['lookupCache']['has'](_0x2e5d04))return this[_0x1b3bf9(0x8d)]['get'](_0x2e5d04);try{const _0xc4dedf='SELECT\x20'+_0x520fda+',\x20'+_0xb37b0b+'\x20FROM\x20'+_0x5b211d,_0x413a89=await executeQuery(_0xc4dedf),_0x23543b=new Map();return _0x413a89[_0x1b3bf9(0x9a)](_0xcab405=>{const _0x476098=_0x1b3bf9,_0x1bf395=_0x52dd5b['zOqRW'](_0xcab405[_0xb37b0b],undefined)?_0xcab405[_0xb37b0b]:_0xcab405[_0xb37b0b[_0x476098(0x96)]()],_0x5af9a1=_0xcab405[_0x520fda]!==undefined?_0xcab405[_0x520fda]:_0xcab405[_0x520fda['toUpperCase']()];_0x1bf395!==null&&_0x52dd5b['dxnpa'](_0x1bf395,undefined)&&(_0x23543b[_0x476098(0x9e)](_0x52dd5b[_0x476098(0xa3)](String,_0x1bf395)[_0x476098(0xad)]()['trim'](),_0x5af9a1),_0x23543b[_0x476098(0x9e)](_0x52dd5b[_0x476098(0xb0)](String,_0x1bf395)['trim'](),_0x5af9a1));}),this['lookupCache'][_0x1b3bf9(0x9e)](_0x2e5d04,_0x23543b),logger['info']({'event':_0x1b3bf9(0x83),'table':_0x5b211d,'column':_0xb37b0b,'count':_0x413a89[_0x1b3bf9(0x84)]},_0x1b3bf9(0x90)+_0x5b211d),_0x23543b;}catch(_0x4a1542){logger[_0x1b3bf9(0xa1)]({'event':_0x52dd5b[_0x1b3bf9(0x8e)],'table':_0x5b211d,'error':_0x4a1542[_0x1b3bf9(0x8c)]},_0x1b3bf9(0x97)+_0x5b211d);throw _0x4a1542;}}[a0_0x2116d0(0x95)](_0x505d37,_0x241c0c){const _0x274d22=a0_0x2116d0,_0x2b5c2f={'VlaYJ':function(_0x6aafca,_0x3c3a99){return _0x6aafca===_0x3c3a99;}};if(_0x2b5c2f['VlaYJ'](_0x505d37,null)||_0x505d37===undefined||_0x2b5c2f['VlaYJ'](_0x505d37,''))return null;const _0x5a5843=String(_0x505d37)[_0x274d22(0xa5)]();if(_0x241c0c['has'](_0x5a5843))return _0x241c0c[_0x274d22(0x8b)](_0x5a5843);const _0x482c62=_0x5a5843['toLowerCase']();if(_0x241c0c['has'](_0x482c62))return _0x241c0c[_0x274d22(0x8b)](_0x482c62);return null;}async[a0_0x2116d0(0xa2)](_0x1dcbde,_0x2e4309){const _0xb158d1=a0_0x2116d0,_0x4d6759={'FhuyZ':function(_0x1e1bfc,_0x15e45c){return _0x1e1bfc===_0x15e45c;},'SDKeN':function(_0x300227,_0xb0846e){return _0x300227!==_0xb0846e;},'AzGpU':_0xb158d1(0xb1),'teuwm':'Lookup\x20fields\x20processed'};if(!_0x2e4309||_0x4d6759[_0xb158d1(0xa0)](Object['keys'](_0x2e4309)['length'],0x0))return{'processedRows':_0x1dcbde,'errors':[]};const _0x1cf289=[],_0x8f8334=new Map();for(const [_0x1438c1,_0x24d78d]of Object['entries'](_0x2e4309)){const {lookupTable:_0x2472ef,lookupColumn:_0x59dbb7,lookupIdColumn:_0x30ea00}=_0x24d78d,_0xdfbcca=_0x2472ef+':'+_0x59dbb7+':'+_0x30ea00;if(!_0x8f8334[_0xb158d1(0x92)](_0xdfbcca)){const _0x4d7299=await this[_0xb158d1(0xb2)](_0x2472ef,_0x59dbb7,_0x30ea00);_0x8f8334[_0xb158d1(0x9e)](_0xdfbcca,_0x4d7299);}}const _0xc4865a=_0x1dcbde[_0xb158d1(0x98)]((_0xd66ef2,_0x494b30)=>{const _0x224f2b=_0xb158d1,_0x34c8fb={..._0xd66ef2};for(const [_0x202b31,_0x19ef2c]of Object[_0x224f2b(0xa6)](_0x2e4309)){const {lookupTable:_0x52658d,lookupColumn:_0xbdc31a,lookupIdColumn:_0x4303ad,targetField:_0x2c6b5b,required:_0x396760}=_0x19ef2c,_0xfacc12=_0x52658d+':'+_0xbdc31a+':'+_0x4303ad,_0x3a7c0a=_0x8f8334[_0x224f2b(0x8b)](_0xfacc12),_0x5b49a0=_0xd66ef2[_0x202b31];if((_0x5b49a0===null||_0x5b49a0===undefined||_0x4d6759[_0x224f2b(0xa0)](_0x5b49a0,''))&&!_0x396760){_0x34c8fb[_0x2c6b5b]=null;continue;}const _0x3cd22c=this[_0x224f2b(0x95)](_0x5b49a0,_0x3a7c0a);_0x4d6759[_0x224f2b(0xa9)](_0x3cd22c,null)?_0x34c8fb[_0x2c6b5b]=_0x3cd22c:(_0x396760&&_0x1cf289[_0x224f2b(0x85)]({'rowIndex':_0x494b30,'field':_0x202b31,'value':_0x5b49a0,'targetField':_0x2c6b5b,'lookupTable':_0x52658d,'message':'Value\x20\x22'+_0x5b49a0+_0x224f2b(0xaa)+_0x52658d}),_0x34c8fb[_0x2c6b5b]=null);}return _0x34c8fb;});return logger['info']({'event':_0x4d6759['AzGpU'],'totalRows':_0x1dcbde['length'],'errorCount':_0x1cf289['length'],'lookupFieldCount':Object[_0xb158d1(0x88)](_0x2e4309)['length']},_0x4d6759[_0xb158d1(0xb3)]),{'processedRows':_0xc4865a,'errors':_0x1cf289};}['getDistinctValues'](_0x4a85d6,_0x1fa0a7){const _0x4c41d5=a0_0x2116d0,_0x126e02={'RzAgg':function(_0x331fee,_0x4fca62){return _0x331fee!==_0x4fca62;}},_0x2d7ef8=new Set();return _0x4a85d6[_0x4c41d5(0x9a)](_0x3d9d0d=>{const _0x5d5736=_0x4c41d5,_0x53b597=_0x3d9d0d[_0x1fa0a7];_0x53b597!==null&&_0x126e02[_0x5d5736(0xab)](_0x53b597,undefined)&&_0x53b597!==''&&_0x2d7ef8['add'](String(_0x53b597)['trim']());}),Array[_0x4c41d5(0xb6)](_0x2d7ef8);}async[a0_0x2116d0(0x86)](_0x36b953,_0x1610c8){const _0x38df39=a0_0x2116d0,_0x973b3f={'hOKyV':function(_0x5ed710,_0x99a87a){return _0x5ed710!==_0x99a87a;},'GAdIQ':function(_0x667b6d,_0x440541){return _0x667b6d===_0x440541;},'uMJcc':function(_0x4adea8,_0x3aa56c){return _0x4adea8>_0x3aa56c;}};if(!_0x1610c8||_0x973b3f[_0x38df39(0x9c)](Object['keys'](_0x1610c8)[_0x38df39(0x84)],0x0))return{'valid':!![],'errors':[],'suggestions':{}};const _0x1507d2=[],_0x1a9263={};for(const [_0x49c3d5,_0x36632c]of Object[_0x38df39(0xa6)](_0x1610c8)){const {lookupTable:_0x512c83,lookupColumn:_0x23d2cb,lookupIdColumn:_0xdc2acb,required:_0x1f84f5}=_0x36632c,_0x28deb8=this[_0x38df39(0xa7)](_0x36b953,_0x49c3d5),_0x67bad8=await this['loadLookupTable'](_0x512c83,_0x23d2cb,_0xdc2acb),_0x40fe3c=[],_0x4f1af8=[];_0x28deb8[_0x38df39(0x9a)](_0x4e6c42=>{const _0x28ff63=_0x38df39,_0x5c3459=this[_0x28ff63(0x95)](_0x4e6c42,_0x67bad8);_0x973b3f[_0x28ff63(0xb7)](_0x5c3459,null)?_0x4f1af8['push'](_0x4e6c42):_0x40fe3c['push'](_0x4e6c42);});if(_0x973b3f['uMJcc'](_0x40fe3c['length'],0x0)&&_0x1f84f5){_0x1507d2[_0x38df39(0x85)]({'field':_0x49c3d5,'lookupTable':_0x512c83,'invalidValues':_0x40fe3c,'message':_0x40fe3c['length']+'\x20value(s)\x20not\x20found\x20in\x20'+_0x512c83});const _0x4f55f1=[];_0x67bad8['forEach']((_0x5179a1,_0x164f4c)=>{const _0x1b1ad7=_0x38df39;if(_0x973b3f[_0x1b1ad7(0x9c)](_0x164f4c,_0x164f4c['toLowerCase']()))return;_0x4f55f1[_0x1b1ad7(0x85)](_0x164f4c);}),_0x1a9263[_0x49c3d5]={'invalidValues':_0x40fe3c,'availableValues':_0x4f55f1[_0x38df39(0x89)](0x0,0x32)};}}return{'valid':_0x1507d2['length']===0x0,'errors':_0x1507d2,'suggestions':_0x1a9263};}}module[a0_0x2116d0(0xac)]=new LookupResolver();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a0_0x3793(_0x2fd019,_0x109656){_0x2fd019=_0x2fd019-0x96;const _0x395c34=a0_0x395c();let _0x3793b9=_0x395c34[_0x2fd019];if(a0_0x3793['JMKDvp']===undefined){var _0x371977=function(_0x500f0f){const _0x257c50='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55d880='',_0x1d3cbd='';for(let _0x2e5012=0x0,_0x53e0cf,_0x5b76e8,_0x364a5c=0x0;_0x5b76e8=_0x500f0f['charAt'](_0x364a5c++);~_0x5b76e8&&(_0x53e0cf=_0x2e5012%0x4?_0x53e0cf*0x40+_0x5b76e8:_0x5b76e8,_0x2e5012++%0x4)?_0x55d880+=String['fromCharCode'](0xff&_0x53e0cf>>(-0x2*_0x2e5012&0x6)):0x0){_0x5b76e8=_0x257c50['indexOf'](_0x5b76e8);}for(let _0xf8eaec=0x0,_0x3ea8fa=_0x55d880['length'];_0xf8eaec<_0x3ea8fa;_0xf8eaec++){_0x1d3cbd+='%'+('00'+_0x55d880['charCodeAt'](_0xf8eaec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d3cbd);};a0_0x3793['aLQXHo']=_0x371977,a0_0x3793['rqJWNp']={},a0_0x3793['JMKDvp']=!![];}const _0x1a3c80=_0x395c34[0x0],_0x453686=_0x2fd019+_0x1a3c80,_0x3b1515=a0_0x3793['rqJWNp'][_0x453686];return!_0x3b1515?(_0x3793b9=a0_0x3793['aLQXHo'](_0x3793b9),a0_0x3793['rqJWNp'][_0x453686]=_0x3793b9):_0x3793b9=_0x3b1515,_0x3793b9;}const a0_0xcf4a55=a0_0x3793;(function(_0x5aad7f,_0x4e28d4){const _0x5bd9c2=a0_0x3793,_0x218dca=_0x5aad7f();while(!![]){try{const _0x452e7f=parseInt(_0x5bd9c2(0xaf))/0x1+parseInt(_0x5bd9c2(0xaa))/0x2*(parseInt(_0x5bd9c2(0xb9))/0x3)+-parseInt(_0x5bd9c2(0xba))/0x4*(-parseInt(_0x5bd9c2(0xbb))/0x5)+-parseInt(_0x5bd9c2(0xa2))/0x6*(-parseInt(_0x5bd9c2(0x9e))/0x7)+parseInt(_0x5bd9c2(0xa4))/0x8*(parseInt(_0x5bd9c2(0xb8))/0x9)+parseInt(_0x5bd9c2(0xae))/0xa+-parseInt(_0x5bd9c2(0xa1))/0xb;if(_0x452e7f===_0x4e28d4)break;else _0x218dca['push'](_0x218dca['shift']());}catch(_0xec1515){_0x218dca['push'](_0x218dca['shift']());}}}(a0_0x395c,0x8420e));const fs=require('fs')[a0_0xcf4a55(0x96)],path=require('path'),{logger}=require('./logger');function a0_0x395c(){const _0x3b3c9a=['mtq5mdiXmMPhsxDAvW','mtbAvwj5rMC','DxrMoa','AM9PBG','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','zxjYB3i','ChjVBwLZzxm','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','AgfZ','Cgf5Bg9Hzf9SB2fKzwq','CMvHzezPBgu','CgfYC2u','Cgf5Bg9HzdO','rgHYr1O','n05SrNfzyq','BwvZC2fNzq','y2fJAgu','mJG1nZiYmtrevNnhA0O','ntuYndy3neHvtvHQsG','Axnby3rPB25fBMfIBgvK','odmXmKfrvfH5DG','s2zStwq','ugf5Bg9HzcbUB3qGzM91BMq6ia','Aw5MBW','Bg9HzfbHEwXVywq','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','mZG5mZm4BwHRB1rc','lMPZB24','Cgf5Bg9HzerPCG','z2v0','mJK1nty1mgPrzNzzuq','mZm4mZCZvgz4B0Tl','z2v0rxHWB3j0q29UzMLN','Bg9HzfbHEwXVywrcEu5HBwu','C2v0','zgf0yxrHyMXLC1f1zxj5','lwv4Cg9YDa','lI4VlI4VCgf5Bg9Hza','CMvWBgfJzq','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','ntu4mfPwDhbSqG','m3jJwhPdAq'];a0_0x395c=function(){return _0x3b3c9a;};return a0_0x395c();}class PayloadLoader{constructor(){const _0x25c966=a0_0xcf4a55,_0xc70df4={'cMebg':_0x25c966(0xb5)};this[_0x25c966(0xac)]=path[_0x25c966(0xbd)](__dirname,_0xc70df4['cMebg']),this['cache']=new Map();}async[a0_0xcf4a55(0xa8)](_0x12bfea,_0x14c0bc){const _0x2ee741=a0_0xcf4a55,_0x1044e0={'DhrGZ':_0x2ee741(0x99),'qmLRv':_0x2ee741(0xa9)},_0x252ba6=_0x12bfea+':'+_0x14c0bc;if(this[_0x2ee741(0xa0)][_0x2ee741(0x98)](_0x252ba6))return this[_0x2ee741(0xa0)][_0x2ee741(0xad)](_0x252ba6);const _0x3fab5d=path[_0x2ee741(0xbd)](this['payloadDir'],_0x12bfea+'_'+_0x14c0bc+'.json');try{const _0x3488fd=await fs[_0x2ee741(0x9a)](_0x3fab5d,_0x2ee741(0xbc)),_0x209ee1=JSON['parse'](_0x3488fd);return this['cache']['set'](_0x252ba6,_0x209ee1),logger['debug']({'event':_0x1044e0[_0x2ee741(0x9d)],'project':_0x12bfea,'resource':_0x14c0bc},'Payload\x20loaded\x20successfully'),_0x209ee1;}catch(_0x1437eb){logger[_0x2ee741(0xbf)]({'event':_0x2ee741(0xb7),'project':_0x12bfea,'resource':_0x14c0bc,'error':_0x1437eb[_0x2ee741(0x9f)]},_0x1044e0['qmLRv']);throw new Error('Payload\x20not\x20found:\x20'+_0x12bfea+'_'+_0x14c0bc);}}async[a0_0xcf4a55(0xb1)](_0x24375c){const _0x4fbed8=a0_0xcf4a55,_0x1d5276={'KflMd':'payload_load_error'},_0x53516f=_0x4fbed8(0x9c)+_0x24375c;if(this['cache']['has'](_0x53516f))return this['cache'][_0x4fbed8(0xad)](_0x53516f);const _0x25c7aa=path[_0x4fbed8(0xbd)](this[_0x4fbed8(0xac)],_0x24375c+_0x4fbed8(0xab));try{const _0x468930=await fs['readFile'](_0x25c7aa,_0x4fbed8(0xbc)),_0x364da0=JSON[_0x4fbed8(0x9b)](_0x468930);return this[_0x4fbed8(0xa0)][_0x4fbed8(0xb2)](_0x53516f,_0x364da0),logger['debug']({'event':_0x4fbed8(0x99),'payloadName':_0x24375c},'Payload\x20loaded\x20successfully\x20by\x20name'),_0x364da0;}catch(_0x127d80){logger['error']({'event':_0x1d5276[_0x4fbed8(0xa5)],'payloadName':_0x24375c,'error':_0x127d80['message']},'Failed\x20to\x20load\x20payload\x20by\x20name');throw new Error(_0x4fbed8(0xa6)+_0x24375c);}}[a0_0xcf4a55(0xa3)](_0x2ad2c1,_0x42ee54){const _0x5909a6={'Lfgoz':function(_0x56e44e,_0x23657f){return _0x56e44e===_0x23657f;}};return _0x2ad2c1['action']&&_0x5909a6['Lfgoz'](_0x2ad2c1['action'][_0x42ee54],!![]);}[a0_0xcf4a55(0xb0)](_0x3c37f0){const _0x5713ed=a0_0xcf4a55;return{'columns':_0x3c37f0['fieldName']||[],'filename':_0x3c37f0['tableName'][_0x5713ed(0xb6)]('.','-')+_0x5713ed(0xb4),'datatablesQuery':_0x3c37f0[_0x5713ed(0xb3)]||null,'columnFormats':_0x3c37f0['columnFormats']||null,'fieldLabels':_0x3c37f0['fieldLabels']||null};}['clearCache'](){const _0x29995b=a0_0xcf4a55,_0x35d100={'ulGyb':_0x29995b(0xbe)};this['cache']['clear'](),logger[_0x29995b(0xa7)]({'event':_0x35d100['ulGyb']},_0x29995b(0x97));}}module['exports']=new PayloadLoader();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';function a0_0x9cad(){var _0x39f6af=['ntKWnZy2nNLbreDsvW','mJy1mJuZmg1PthvtDG','ndK3mdDZy3H4sMO','nJaYmfHwuhn6sa','nta4mtm4sLv6v0TS','mZy0ndu1m2PlA0LXsW','mty3oteYng5ZEMLvrW','nJy5nZKXmKnJALDZEq','n3rrtNzjza','Dg9ju09tDhjPBMC','nNPzq2Puqq'];a0_0x9cad=function(){return _0x39f6af;};return a0_0x9cad();}(function(_0x37d3e3,_0x1a5eb0){var _0x2d1dad=a0_0x1b98,_0x5a71d6=_0x37d3e3();while(!![]){try{var _0x498a0b=parseInt(_0x2d1dad(0xf1))/0x1*(parseInt(_0x2d1dad(0xf6))/0x2)+-parseInt(_0x2d1dad(0xf7))/0x3+-parseInt(_0x2d1dad(0xed))/0x4+-parseInt(_0x2d1dad(0xf3))/0x5+-parseInt(_0x2d1dad(0xf2))/0x6+-parseInt(_0x2d1dad(0xef))/0x7*(parseInt(_0x2d1dad(0xee))/0x8)+-parseInt(_0x2d1dad(0xf4))/0x9*(-parseInt(_0x2d1dad(0xf5))/0xa);if(_0x498a0b===_0x1a5eb0)break;else _0x5a71d6['push'](_0x5a71d6['shift']());}catch(_0x526f3e){_0x5a71d6['push'](_0x5a71d6['shift']());}}}(a0_0x9cad,0xd2840));function a0_0x1b98(_0x3bedc5,_0x1f13c5){_0x3bedc5=_0x3bedc5-0xed;var _0x9cad6d=a0_0x9cad();var _0x1b9884=_0x9cad6d[_0x3bedc5];if(a0_0x1b98['ZlFDht']===undefined){var _0x346385=function(_0x461214){var _0x20744a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x284e70='',_0x2c7f1f='';for(var _0x1da29a=0x0,_0x46357a,_0x3ce990,_0x5bd794=0x0;_0x3ce990=_0x461214['charAt'](_0x5bd794++);~_0x3ce990&&(_0x46357a=_0x1da29a%0x4?_0x46357a*0x40+_0x3ce990:_0x3ce990,_0x1da29a++%0x4)?_0x284e70+=String['fromCharCode'](0xff&_0x46357a>>(-0x2*_0x1da29a&0x6)):0x0){_0x3ce990=_0x20744a['indexOf'](_0x3ce990);}for(var _0x11b88f=0x0,_0x540041=_0x284e70['length'];_0x11b88f<_0x540041;_0x11b88f++){_0x2c7f1f+='%'+('00'+_0x284e70['charCodeAt'](_0x11b88f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c7f1f);};a0_0x1b98['oktasO']=_0x346385,a0_0x1b98['PMvTix']={},a0_0x1b98['ZlFDht']=!![];}var _0x3c8373=_0x9cad6d[0x0],_0x591a3d=_0x3bedc5+_0x3c8373,_0x2f9c4d=a0_0x1b98['PMvTix'][_0x591a3d];return!_0x2f9c4d?(_0x1b9884=a0_0x1b98['oktasO'](_0x1b9884),a0_0x1b98['PMvTix'][_0x591a3d]=_0x1b9884):_0x1b9884=_0x2f9c4d,_0x1b9884;}function createResponse(_0x5ba2a4,_0x18cbae,_0x21ad10=null){return{'success':!![],'statusCode':_0x5ba2a4,'message':_0x18cbae,'data':_0x21ad10,'timestamp':new Date()['toISOString']()};}function createError(_0x13eb82,_0x264898,_0xb0e804=null){return{'success':![],'statusCode':_0x13eb82,'message':_0x264898,'data':_0xb0e804,'timestamp':new Date()['toISOString']()};}function createValidationError(_0x3560bd,_0x515238){var _0x3efb40=a0_0x1b98;return{'success':![],'statusCode':0x190,'message':_0x3560bd,'data':{'errors':_0x515238},'timestamp':new Date()[_0x3efb40(0xf0)]()};}module['exports']={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
|
package/src/utils/rabbitmq.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x177d31=a0_0x2fcc;(function(_0x364ec4,_0x56ca0f){const _0x243922=a0_0x2fcc,_0x13b55d=_0x364ec4();while(!![]){try{const _0x511038=parseInt(_0x243922(0xf6))/0x1+parseInt(_0x243922(0xde))/0x2*(-parseInt(_0x243922(0xe9))/0x3)+-parseInt(_0x243922(0xec))/0x4*(parseInt(_0x243922(0xd2))/0x5)+parseInt(_0x243922(0xfb))/0x6+parseInt(_0x243922(0xe8))/0x7*(-parseInt(_0x243922(0x102))/0x8)+-parseInt(_0x243922(0x100))/0x9*(parseInt(_0x243922(0xda))/0xa)+-parseInt(_0x243922(0xf2))/0xb*(-parseInt(_0x243922(0xf3))/0xc);if(_0x511038===_0x56ca0f)break;else _0x13b55d['push'](_0x13b55d['shift']());}catch(_0x457953){_0x13b55d['push'](_0x13b55d['shift']());}}}(a0_0x1ef1,0x64f80),require(a0_0x177d31(0xf9))['config']());const amqp=require(a0_0x177d31(0xee)),{formatDate}=require(a0_0x177d31(0xf1)),RABBITMQ_URL=process['env']['RABBITMQ_URL'],EXCHANGE=process['env']['RABBITMQ_EXCHANGE'],ROUTING_KEY=process['env']['RABBITMQ_ROUTING_KEY'],QUEUE=process['env']['RABBITMQ_QUEUE'];async function createConnection(){const _0x1a4b63=a0_0x177d31,_0x161812={'EIxcw':function(_0x3c9784,_0xb6178e){return _0x3c9784(_0xb6178e);}};try{const _0x58fba3=await amqp['connect'](RABBITMQ_URL);return console[_0x1a4b63(0xd7)]('['+formatDate(new Date())+_0x1a4b63(0xf8)),_0x58fba3;}catch(_0x3b9ef6){console['error']('['+_0x161812[_0x1a4b63(0xfc)](formatDate,new Date())+']\x20Failed\x20to\x20connect\x20to\x20RabbitMQ:\x20'+_0x3b9ef6['message']);throw _0x3b9ef6;}}async function createChannel(_0x3d4b6b){const _0x14e7d2=a0_0x177d31;try{const _0x366018=await _0x3d4b6b['createChannel']();return console[_0x14e7d2(0xd7)]('['+formatDate(new Date())+']\x20RabbitMQ\x20channel\x20created\x20successfully'),_0x366018;}catch(_0x55b83c){console[_0x14e7d2(0xdb)]('['+formatDate(new Date())+_0x14e7d2(0xe6)+_0x55b83c['message']);throw _0x55b83c;}}function a0_0x2fcc(_0x334abe,_0x1f7b09){_0x334abe=_0x334abe-0xd1;const _0x1ef170=a0_0x1ef1();let _0x2fcc4a=_0x1ef170[_0x334abe];if(a0_0x2fcc['ncJKyZ']===undefined){var _0x5810e4=function(_0x18b3b1){const _0x5f45dd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32d4e9='',_0x337ce8='';for(let _0x10b8c7=0x0,_0x509d16,_0x54b349,_0x245b2b=0x0;_0x54b349=_0x18b3b1['charAt'](_0x245b2b++);~_0x54b349&&(_0x509d16=_0x10b8c7%0x4?_0x509d16*0x40+_0x54b349:_0x54b349,_0x10b8c7++%0x4)?_0x32d4e9+=String['fromCharCode'](0xff&_0x509d16>>(-0x2*_0x10b8c7&0x6)):0x0){_0x54b349=_0x5f45dd['indexOf'](_0x54b349);}for(let _0x1873fa=0x0,_0x6c4652=_0x32d4e9['length'];_0x1873fa<_0x6c4652;_0x1873fa++){_0x337ce8+='%'+('00'+_0x32d4e9['charCodeAt'](_0x1873fa)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x337ce8);};a0_0x2fcc['Uxpcnx']=_0x5810e4,a0_0x2fcc['EEztAK']={},a0_0x2fcc['ncJKyZ']=!![];}const _0x1770db=_0x1ef170[0x0],_0x2db637=_0x334abe+_0x1770db,_0x3cc35e=a0_0x2fcc['EEztAK'][_0x2db637];return!_0x3cc35e?(_0x2fcc4a=a0_0x2fcc['Uxpcnx'](_0x2fcc4a),a0_0x2fcc['EEztAK'][_0x2db637]=_0x2fcc4a):_0x2fcc4a=_0x3cc35e,_0x2fcc4a;}async function setupInfrastructure(_0x290ee7){const _0x477f59=a0_0x177d31,_0x1bf507={'YOBMp':_0x477f59(0xe2),'LSDPc':'direct','FUWpl':function(_0x21b794,_0x266d60){return _0x21b794(_0x266d60);},'wqmLF':_0x477f59(0xff)};try{await _0x290ee7['assertExchange'](_0x1bf507[_0x477f59(0xe7)],_0x1bf507[_0x477f59(0xf4)],{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+_0x477f59(0xe5));}catch(_0x299694){console[_0x477f59(0xdb)]('['+formatDate(new Date())+_0x477f59(0xf7),_0x299694['message']);throw _0x299694;}try{await _0x290ee7[_0x477f59(0xe0)](EXCHANGE,'direct',{'durable':!![],'autoDelete':![]}),console[_0x477f59(0xd7)]('['+formatDate(new Date())+']\x20Exchange\x20'+EXCHANGE+_0x477f59(0xd5));}catch(_0x4e2c9e){console[_0x477f59(0xdb)]('['+formatDate(new Date())+_0x477f59(0xdd)+EXCHANGE+':',_0x4e2c9e['message']);throw _0x4e2c9e;}const _0x5b55ae=ROUTING_KEY+_0x477f59(0xf0);try{const _0x3af954={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x290ee7['assertQueue'](_0x5b55ae,_0x3af954),console[_0x477f59(0xd7)]('['+formatDate(new Date())+_0x477f59(0xf5)+_0x5b55ae+_0x477f59(0xd5)),await _0x290ee7[_0x477f59(0xef)](_0x5b55ae,_0x477f59(0xe2),ROUTING_KEY),console[_0x477f59(0xd7)]('['+formatDate(new Date())+']\x20Retry\x20binding\x20for\x20'+ROUTING_KEY+_0x477f59(0xd3));}catch(_0x23d46b){console['error']('['+formatDate(new Date())+_0x477f59(0xeb),_0x23d46b[_0x477f59(0xe1)]);throw _0x23d46b;}try{const _0x48b5b6={'durable':!![],'arguments':{'x-dead-letter-exchange':'retry-exchange','x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x54bb6d=await _0x290ee7[_0x477f59(0xd1)](QUEUE,_0x48b5b6);console['log']('['+formatDate(new Date())+_0x477f59(0xd6)+QUEUE+'\x20'+(_0x54bb6d['queue']===QUEUE?_0x477f59(0xfe):'found')+'\x20with\x20DLX'),await _0x290ee7['bindQueue'](QUEUE,EXCHANGE,ROUTING_KEY),console['log']('['+formatDate(new Date())+_0x477f59(0xd9)+EXCHANGE+'\x20->\x20'+QUEUE+'\x20('+ROUTING_KEY+_0x477f59(0xea));}catch(_0x56c6f1){if(_0x56c6f1[_0x477f59(0xe1)]['includes']('inequivalent\x20arg')&&_0x56c6f1[_0x477f59(0xe1)][_0x477f59(0xed)](_0x477f59(0xdf)))console[_0x477f59(0xdb)]('\x0a['+_0x1bf507[_0x477f59(0xd4)](formatDate,new Date())+_0x477f59(0xd8)+QUEUE+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x477f59(0xdb)](_0x477f59(0xdc)+QUEUE+_0x477f59(0xfa)),console['error']('Solution:\x20Use\x20a\x20different\x20queue\x20name\x20for\x20different\x20routing\x20keys.'),process[_0x477f59(0x101)](0x1);else{console[_0x477f59(0xdb)]('['+formatDate(new Date())+']\x20Error\x20creating\x20queue\x20'+QUEUE+':',_0x56c6f1['message']);throw _0x56c6f1;}}}catch(_0x4f7b47){if(!_0x4f7b47[_0x477f59(0xe1)]['includes'](_0x1bf507[_0x477f59(0xe4)])){console['error']('['+formatDate(new Date())+']\x20Error\x20setting\x20up\x20main\x20queue:',_0x4f7b47[_0x477f59(0xe1)]);throw _0x4f7b47;}process['exit'](0x1);}}async function closeConnection(_0x271f03){const _0x86027c=a0_0x177d31,_0xe47e73={'eHPDF':function(_0x521b7b,_0x43d3b0){return _0x521b7b(_0x43d3b0);}};if(_0x271f03)try{await _0x271f03[_0x86027c(0xfd)](),console['log']('['+formatDate(new Date())+']\x20RabbitMQ\x20connection\x20closed');}catch(_0x28b8f9){console['error']('['+_0xe47e73['eHPDF'](formatDate,new Date())+_0x86027c(0xe3)+_0x28b8f9[_0x86027c(0xe1)]);}}module['exports']={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};function a0_0x1ef1(){const _0x11ebd9=['uxvLDwuG','xsbfCNjVCIbJCMvHDgLUzYbLEgnOyw5Nzsa','mLrIueTjtG','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','yxnZzxj0rxHJAgfUz2u','BwvZC2fNzq','CMv0CNKTzxHJAgfUz2u','xsbgywLSzwqGDg8Gy2XVC2uGuMfIyML0tveGy29UBMvJDgLVBJOG','D3fTtey','xsbszxrYEsbLEgnOyw5NzsbJCMvHDgvKl3jLywr5','xsbgywLSzwqGDg8Gy3jLyxrLifjHyMjPDe1rignOyw5UzwW6ia','wu9ctxa','mJqZmZi3uK55sxj3','nJu2odC3DMrPB3bO','ksbJCMvHDgvK','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbXDwv1ztO','mJbyA0r1vNG','Aw5JBhvKzxm','yw1XCgXPyG','yMLUzff1zxvL','x3jLDhj5','lI9KyxrLsgvSCgvY','mJCYogLfruPesq','otyWnZjmDgXyz0C','tfneugm','xsbszxrYEsbXDwv1zsa','mZKZotK1vLHkrNjH','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbLEgnOyw5NztO','xsbtDwnJzxnZzNvSBhKGy29UBMvJDgvKihrVifjHyMjPDe1r','zg90zw52','ihDHCYbJCMvHDgvKihDPDgGGysbKAwzMzxjLBNqGEc1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEs4','ntq4nZq4v2jxtMPh','ruL4y3C','y2XVC2u','y3jLyxrLzc9YzwfKEq','Aw5LCxvPDMfSzw50igfYzW','oxjrBgLbsq','zxHPDa','mtC2AwfhEhDy','yxnZzxj0uxvLDwu','nZa3mtu1yufVzKrx','ignYzwf0zwq','rLvxCgW','ignYzwf0zwqVCMvHzhK','xsbrDwv1zsa','Bg9N','xsbfuLjpuJOGuxvLDwuG','xsbcAw5KAw5Nia','mZy2nte3mgnSD1H1Aa','zxjYB3i'];a0_0x1ef1=function(){return _0x11ebd9;};return a0_0x1ef1();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x1544d1=a0_0x5f59;function a0_0x5f59(_0x301444,_0x4f868d){_0x301444=_0x301444-0x1ad;const _0x51af53=a0_0x51af();let _0x5f5920=_0x51af53[_0x301444];if(a0_0x5f59['NDcjJd']===undefined){var _0x4d2e03=function(_0x115677){const _0x2a3ed7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x422f83='',_0x13c101='';for(let _0x31e1a5=0x0,_0x45b0ef,_0x23c2fd,_0x4e8b33=0x0;_0x23c2fd=_0x115677['charAt'](_0x4e8b33++);~_0x23c2fd&&(_0x45b0ef=_0x31e1a5%0x4?_0x45b0ef*0x40+_0x23c2fd:_0x23c2fd,_0x31e1a5++%0x4)?_0x422f83+=String['fromCharCode'](0xff&_0x45b0ef>>(-0x2*_0x31e1a5&0x6)):0x0){_0x23c2fd=_0x2a3ed7['indexOf'](_0x23c2fd);}for(let _0x2e38b2=0x0,_0x82c4bd=_0x422f83['length'];_0x2e38b2<_0x82c4bd;_0x2e38b2++){_0x13c101+='%'+('00'+_0x422f83['charCodeAt'](_0x2e38b2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13c101);};a0_0x5f59['kTDeTd']=_0x4d2e03,a0_0x5f59['ZfXeBU']={},a0_0x5f59['NDcjJd']=!![];}const _0x465549=_0x51af53[0x0],_0x36f5b3=_0x301444+_0x465549,_0x2d3db5=a0_0x5f59['ZfXeBU'][_0x36f5b3];return!_0x2d3db5?(_0x5f5920=a0_0x5f59['kTDeTd'](_0x5f5920),a0_0x5f59['ZfXeBU'][_0x36f5b3]=_0x5f5920):_0x5f5920=_0x2d3db5,_0x5f5920;}(function(_0x458432,_0x2843ac){const _0x3818dc=a0_0x5f59,_0x1ad712=_0x458432();while(!![]){try{const _0x62ed53=parseInt(_0x3818dc(0x1bf))/0x1+-parseInt(_0x3818dc(0x1b7))/0x2*(parseInt(_0x3818dc(0x1ae))/0x3)+-parseInt(_0x3818dc(0x1cc))/0x4*(-parseInt(_0x3818dc(0x1c8))/0x5)+-parseInt(_0x3818dc(0x1cd))/0x6+parseInt(_0x3818dc(0x1c5))/0x7+-parseInt(_0x3818dc(0x1b9))/0x8*(parseInt(_0x3818dc(0x1c0))/0x9)+-parseInt(_0x3818dc(0x1ba))/0xa*(-parseInt(_0x3818dc(0x1cb))/0xb);if(_0x62ed53===_0x2843ac)break;else _0x1ad712['push'](_0x1ad712['shift']());}catch(_0x58f3a4){_0x1ad712['push'](_0x1ad712['shift']());}}}(a0_0x51af,0x8f5c2));const Redis=require(a0_0x1544d1(0x1c1)),{logger}=require('./logger');class RedisClient{constructor(){this['client']=null,this['isConnected']=![];}['connect'](){const _0x30c342=a0_0x1544d1,_0x2e8e32={'GKANZ':function(_0x2a5145,_0x3f5f8e){return _0x2a5145*_0x3f5f8e;},'OPXGG':_0x30c342(0x1ca),'yZBiG':_0x30c342(0x1bd),'daJcx':'localhost','jknRi':function(_0x456480,_0x50816f,_0x356c73){return _0x456480(_0x50816f,_0x356c73);},'IxeYZ':'error','kOAHm':'Failed\x20to\x20initialize\x20Redis'};if(this[_0x30c342(0x1be)])return this[_0x30c342(0x1be)];try{return this['client']=new Redis({'host':process[_0x30c342(0x1c3)]['REDIS_HOST']||_0x2e8e32['daJcx'],'port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':_0x2e8e32[_0x30c342(0x1b6)](parseInt,process[_0x30c342(0x1c3)][_0x30c342(0x1c4)],0xa)||0x0,'retryStrategy'(_0x5b9ccc){const _0x4fec3c=_0x30c342,_0x198fd3=Math[_0x4fec3c(0x1c2)](_0x2e8e32[_0x4fec3c(0x1c7)](_0x5b9ccc,0x32),0x7d0);return _0x198fd3;}}),this[_0x30c342(0x1be)]['on']('connect',()=>{const _0x4185e1=_0x30c342;this[_0x4185e1(0x1bc)]=!![],logger[_0x4185e1(0x1c6)]({'event':_0x2e8e32[_0x4185e1(0x1ce)]},_0x4185e1(0x1ad));}),this[_0x30c342(0x1be)]['on'](_0x2e8e32['IxeYZ'],_0x267f65=>{const _0x1c78ea=_0x30c342;this['isConnected']=![],logger[_0x1c78ea(0x1b1)]({'event':_0x2e8e32['yZBiG'],'error':_0x267f65[_0x1c78ea(0x1c9)]},'Redis\x20connection\x20error:\x20'+_0x267f65[_0x1c78ea(0x1c9)]);}),this['client']['on'](_0x30c342(0x1b3),()=>{const _0x57d9d8=_0x30c342;this[_0x57d9d8(0x1bc)]=![],logger[_0x57d9d8(0x1b4)]({'event':'redis_disconnected'},'Redis\x20connection\x20closed');}),this[_0x30c342(0x1be)];}catch(_0x1a0fd9){logger[_0x30c342(0x1b1)]({'event':_0x30c342(0x1b5),'error':_0x1a0fd9[_0x30c342(0x1c9)]},_0x2e8e32['kOAHm']);throw _0x1a0fd9;}}[a0_0x1544d1(0x1bb)](){const _0x327e4f=a0_0x1544d1;return!this['client']&&this['connect'](),this[_0x327e4f(0x1be)];}async['ping'](_0x88caa6=0x1388){const _0xd20197=a0_0x1544d1,_0x5a825a={'XtLDo':_0xd20197(0x1b0)};try{const _0x1dad4f=this['getClient'](),_0x21f46f=await Promise['race']([_0x1dad4f[_0xd20197(0x1b8)](),new Promise((_0x6fd6ea,_0x477e9e)=>setTimeout(()=>_0x477e9e(new Error('Redis\x20PING\x20timeout')),_0x88caa6))]);return _0x21f46f===_0x5a825a[_0xd20197(0x1af)];}catch(_0x17bf2a){return![];}}async['disconnect'](){const _0x20b82c=a0_0x1544d1;this['client']&&(await this[_0x20b82c(0x1be)]['quit'](),this['client']=null,this['isConnected']=![]);}['forceDisconnect'](){const _0x12c81e=a0_0x1544d1;this['client']&&(this['client'][_0x12c81e(0x1b2)](),this['client']=null,this[_0x12c81e(0x1bc)]=![]);}}module['exports']=new RedisClient();function a0_0x51af(){const _0x172933=['ouLlu3jsCq','whrmrg8','ue9orW','zxjYB3i','zgLZy29UBMvJDa','y2XVC2u','D2fYBG','CMvKAxnFAw5PDf9LCNjVCG','AMTUuMK','nty2ndK4t2Lcq0L5','CgLUzW','nJC5nJbwBNLdwhq','ndKZmdq5mgfkCg50vG','z2v0q2XPzw50','AxndB25Uzwn0zwq','CMvKAxnFzxjYB3i','y2XPzw50','ntCYndy1v2rowKH2','otaWvMD0Ehn0','Aw9YzwrPCW','BwLU','zw52','uKvesvnFrei','ntK1ntqXohHeswjWrW','Aw5MBW','r0TbtLO','mta2odyXmgrbv2jxsa','BwvZC2fNzq','CMvKAxnFy29UBMvJDgvK','mtfYBgLiBKW','ohbuB29htG','mZqZnJK4BNjgCuLq','t1byr0C','uMvKAxmGy29UBMvJDgvKihn1y2nLC3nMDwXSEq'];a0_0x51af=function(){return _0x172933;};return a0_0x51af();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a0_0x463f(){const _0x211709=['mJq2ndeXnvrbvLnRwa','mtq3mtC0mLndCgfICW','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','ndC2oez1s2Dfta','nZmXn2PYAxbpDa','C2v0sM9I','rMfPBgvKihrVigrLBgv0zsbQB2iGzNjVBsbszwrPCW','zgvSzxrLsM9I','tuvIEu0','zeXRsNG','z0n2vNa','rMfPBgvKihrVihnLDcbQB2iGAw4GuMvKAxm','CMvKAxnFzgvSzxrLx2vYCM9Y','z2v0sM9I','z2v0','mZqWmJm1mJHTq2T4yMu','x3bYzwzPEa','DxbKyxrLsM9I','BwvZC2fNzq','mtb2EePcweK','nMPOwMfesG','nty1nZCWmvPcBerPtW','mJi1mJq0mgLMvufWra','zxjYB3i','rMfPBgvKihrVigDLDcbHBgWGAM9ICW','oMv4Cg9YDdO','mZiZmJq4oefrB2PQBa','ChjLzML4','mvnnvNbZuq','z2v0q2XPzw50','A2v5CW','zgvMyxvSDa','zw52'];a0_0x463f=function(){return _0x211709;};return a0_0x463f();}const a0_0x2ebb59=a0_0x5703;function a0_0x5703(_0x3dba64,_0x462bed){_0x3dba64=_0x3dba64-0x8c;const _0x463fc8=a0_0x463f();let _0x570388=_0x463fc8[_0x3dba64];if(a0_0x5703['HmjXja']===undefined){var _0x1c6f7c=function(_0x494ace){const _0x5d5089='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x373bf3='',_0x3a4835='';for(let _0x22b865=0x0,_0x393efb,_0x2c71ae,_0xb681dc=0x0;_0x2c71ae=_0x494ace['charAt'](_0xb681dc++);~_0x2c71ae&&(_0x393efb=_0x22b865%0x4?_0x393efb*0x40+_0x2c71ae:_0x2c71ae,_0x22b865++%0x4)?_0x373bf3+=String['fromCharCode'](0xff&_0x393efb>>(-0x2*_0x22b865&0x6)):0x0){_0x2c71ae=_0x5d5089['indexOf'](_0x2c71ae);}for(let _0xc56c37=0x0,_0xe6463c=_0x373bf3['length'];_0xc56c37<_0xe6463c;_0xc56c37++){_0x3a4835+='%'+('00'+_0x373bf3['charCodeAt'](_0xc56c37)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a4835);};a0_0x5703['hyIUHP']=_0x1c6f7c,a0_0x5703['OTiQFD']={},a0_0x5703['HmjXja']=!![];}const _0x34ecc7=_0x463fc8[0x0],_0x2eebb7=_0x3dba64+_0x34ecc7,_0xbd46a1=a0_0x5703['OTiQFD'][_0x2eebb7];return!_0xbd46a1?(_0x570388=a0_0x5703['hyIUHP'](_0x570388),a0_0x5703['OTiQFD'][_0x2eebb7]=_0x570388):_0x570388=_0xbd46a1,_0x570388;}(function(_0x1dd592,_0x22263c){const _0x935cfa=a0_0x5703,_0x3bb3cb=_0x1dd592();while(!![]){try{const _0x23ca4f=parseInt(_0x935cfa(0xa0))/0x1*(-parseInt(_0x935cfa(0xa6))/0x2)+-parseInt(_0x935cfa(0x9e))/0x3+-parseInt(_0x935cfa(0x9a))/0x4+-parseInt(_0x935cfa(0xa5))/0x5*(parseInt(_0x935cfa(0x98))/0x6)+parseInt(_0x935cfa(0x99))/0x7+-parseInt(_0x935cfa(0xa8))/0x8*(parseInt(_0x935cfa(0xa9))/0x9)+-parseInt(_0x935cfa(0x97))/0xa*(-parseInt(_0x935cfa(0x93))/0xb);if(_0x23ca4f===_0x22263c)break;else _0x3bb3cb['push'](_0x3bb3cb['shift']());}catch(_0xc626fa){_0x3bb3cb['push'](_0x3bb3cb['shift']());}}}(a0_0x463f,0x85a73));const redisClient=require('./redis-client'),{logger}=require('./logger');class RedisHelper{constructor(){const _0x50190d=a0_0x5703;this['_prefix']=null,this['ttl']=parseInt(process[_0x50190d(0xa4)]['EXPORT_FILE_EXPIRY'],0xa)||0xe10;}get[a0_0x2ebb59(0x9f)](){const _0x5f484a=a0_0x2ebb59,_0x1aa906={'nAvAh':_0x5f484a(0xa3)};if(!this['_prefix']){const _0x3adeb=process[_0x5f484a(0xa4)][_0x5f484a(0xa7)]||_0x1aa906['nAvAh'];this[_0x5f484a(0x94)]='restforge:'+_0x3adeb+_0x5f484a(0x9d);}return this[_0x5f484a(0x94)];}async['setJob'](_0x3f69f0,_0x3571f2){const _0x40effc=a0_0x2ebb59,_0x1f328e={'MEbyM':'redis_set_error'};try{const _0xbabd4a=redisClient[_0x40effc(0xa1)](),_0x136c59=''+this['prefix']+_0x3f69f0;return await _0xbabd4a['setex'](_0x136c59,this['ttl'],JSON['stringify'](_0x3571f2)),!![];}catch(_0x489cad){return logger[_0x40effc(0x9b)]({'event':_0x1f328e[_0x40effc(0x8c)],'jobId':_0x3f69f0,'error':_0x489cad[_0x40effc(0x96)]},_0x40effc(0x8f)),![];}}async[a0_0x2ebb59(0x91)](_0x3eb809){const _0x1edf61=a0_0x2ebb59,_0x53783d={'gCvVp':'redis_get_error'};try{const _0x2f7957=redisClient['getClient'](),_0x1a1d1a=''+this[_0x1edf61(0x9f)]+_0x3eb809,_0x597949=await _0x2f7957[_0x1edf61(0x92)](_0x1a1d1a);return _0x597949?JSON['parse'](_0x597949):null;}catch(_0x400204){return logger[_0x1edf61(0x9b)]({'event':_0x53783d[_0x1edf61(0x8e)],'jobId':_0x3eb809,'error':_0x400204['message']},'Failed\x20to\x20get\x20job\x20from\x20Redis'),null;}}async[a0_0x2ebb59(0x95)](_0x26d6d2,_0x55c285){const _0x4b88bf=a0_0x2ebb59,_0x24424f=await this[_0x4b88bf(0x91)](_0x26d6d2);if(!_0x24424f)return![];const _0x56aa7c={..._0x24424f,..._0x55c285};return await this[_0x4b88bf(0xaa)](_0x26d6d2,_0x56aa7c);}async[a0_0x2ebb59(0xac)](_0x948abc){const _0x58acce=a0_0x2ebb59,_0x8b1a00={'dLkJx':_0x58acce(0xab)};try{const _0x38bb48=redisClient[_0x58acce(0xa1)](),_0x2b3b3c=''+this[_0x58acce(0x9f)]+_0x948abc;return await _0x38bb48['del'](_0x2b3b3c),!![];}catch(_0x2ef7e4){return logger['error']({'event':_0x58acce(0x90),'jobId':_0x948abc,'error':_0x2ef7e4['message']},_0x8b1a00[_0x58acce(0x8d)]),![];}}async['getAllJobs'](){const _0x56bbf8=a0_0x2ebb59,_0x17ff8a={'mrNWM':_0x56bbf8(0x9c)};try{const _0x35f00e=redisClient['getClient'](),_0x382301=await _0x35f00e[_0x56bbf8(0xa2)](this['prefix']+'*'),_0x33a108=[];for(const _0x2a743c of _0x382301){const _0x5829d8=await _0x35f00e['get'](_0x2a743c);_0x5829d8&&_0x33a108['push'](JSON['parse'](_0x5829d8));}return _0x33a108;}catch(_0x45134e){return logger['error']({'event':'redis_getall_error','error':_0x45134e['message']},_0x17ff8a['mrNWM']),[];}}}module['exports']=new RedisHelper();
|