@restforgejs/platform 4.2.8 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SECURITY.md +83 -4
- package/bin/sdf-tools.exe +0 -0
- package/build-info.json +2 -2
- package/cli/consumer-deploy.js +1 -1
- package/cli/consumer.js +1 -1
- package/generators/cli/dashboard/create.js +4 -1
- package/generators/cli/endpoint/create.js +1 -1
- package/generators/cli/key/generate.js +2 -1
- package/generators/cli/key/revoke.js +2 -1
- package/generators/cli/payload/diff.js +3 -2
- package/generators/cli/payload/generate.js +3 -2
- package/generators/cli/payload/sync.js +3 -2
- package/generators/cli/payload/validate.js +3 -2
- package/generators/cli/processor/create.js +14 -3
- package/generators/cli/project/delete.js +2 -1
- package/generators/cli/query/validate.js +3 -2
- package/generators/cli/schema/apply.js +3 -2
- package/generators/cli/schema/describe.js +3 -2
- package/generators/cli/schema/diff.js +3 -2
- package/generators/cli/schema/introspect.js +3 -2
- package/generators/cli/schema/list.js +3 -2
- package/generators/cli/schema/migrate.js +3 -2
- package/generators/lib/migration/audit-table-runner.js +213 -215
- package/generators/lib/templates/dashboard-catalog.js +1 -437
- package/generators/lib/templates/db-connection-env.js +1 -212
- package/generators/lib/templates/dbschema-catalog.js +1 -489
- package/generators/lib/templates/field-validation-catalog.js +1 -531
- package/generators/lib/templates/mysql-template.js +1 -3863
- package/generators/lib/templates/oracle-template.js +1 -3915
- package/generators/lib/templates/postgres-template.js +1 -5838
- package/generators/lib/templates/query-declarative-catalog.js +1 -199
- package/generators/lib/templates/sqlite-template.js +1 -3440
- package/generators/lib/utils/env-manager.js +6 -0
- package/generators/lib/utils/path-validator.js +71 -0
- package/generators/lib/validators/payload-validator.js +1 -2
- package/integrity-manifest.json +28 -10
- package/package.json +11 -3
- package/scripts/verify-integrity.js +1 -1
- package/server.js +1 -1
- package/src/components/handlers/adjust_handler.js +1 -1
- package/src/components/handlers/audit_handler.js +1 -1
- package/src/components/handlers/delete_handler.js +1 -1
- package/src/components/handlers/export_handler.js +1 -1
- package/src/components/handlers/import_handler.js +1 -1
- package/src/components/handlers/insert_handler.js +1 -1
- package/src/components/handlers/update_handler.js +1 -1
- package/src/components/handlers/upload_handler.js +1 -1
- package/src/components/handlers/workflow_handler.js +1 -1
- package/src/components/integrations/webhook.js +1 -1
- package/src/consumers/baseConsumer.js +1 -1
- package/src/consumers/declarativeMapper.js +1 -1
- package/src/consumers/handlers/apiHandler.js +1 -1
- package/src/consumers/handlers/consoleHandler.js +1 -1
- package/src/consumers/handlers/databaseHandler.js +1 -1
- package/src/consumers/handlers/index.js +1 -1
- package/src/consumers/handlers/kafkaHandler.js +1 -1
- package/src/consumers/index.js +1 -1
- package/src/consumers/messageTransformer.js +1 -1
- package/src/consumers/validator.js +1 -1
- package/src/core/db/dialect/base-dialect.js +1 -1
- package/src/core/db/dialect/index.js +1 -1
- package/src/core/db/dialect/mysql-dialect.js +1 -1
- package/src/core/db/dialect/oracle-dialect.js +1 -1
- package/src/core/db/dialect/postgres-dialect.js +1 -1
- package/src/core/db/dialect/sqlite-dialect.js +1 -1
- package/src/core/db/flatten-helper.js +1 -1
- package/src/core/db/query-builder-error.js +1 -1
- package/src/core/db/query-builder.js +1 -1
- package/src/core/db/relation-helper.js +1 -1
- package/src/core/handlers/delete_handler.js +1 -1
- package/src/core/handlers/insert_handler.js +1 -1
- package/src/core/handlers/update_handler.js +1 -1
- package/src/core/models/base-model.js +1 -1
- package/src/core/utils/cache-manager.js +1 -1
- package/src/core/utils/component-engine.js +1 -1
- package/src/core/utils/context-builder.js +1 -1
- package/src/core/utils/datetime-formatter.js +1 -1
- package/src/core/utils/datetime-parser.js +1 -1
- package/src/core/utils/db.js +1 -1
- package/src/core/utils/logger.js +1 -1
- package/src/core/utils/payload-loader.js +1 -1
- package/src/core/utils/security-checks.js +1 -1
- package/src/middleware/body-options.js +1 -1
- package/src/middleware/cors.js +1 -1
- package/src/middleware/idempotency.js +1 -1
- package/src/middleware/rate-limiter.js +1 -1
- package/src/middleware/request-logger.js +1 -1
- package/src/middleware/security-headers.js +1 -1
- package/src/models/base-model-mysql.js +1 -1
- package/src/models/base-model-oracle.js +1 -1
- package/src/models/base-model-sqlite.js +1 -1
- package/src/models/base-model.js +1 -1
- package/src/pro/caching/redis-client.js +1 -1
- package/src/pro/caching/redis-helper.js +1 -1
- package/src/pro/consumers/baseConsumer.js +1 -1
- package/src/pro/consumers/declarativeMapper.js +1 -1
- package/src/pro/consumers/handlers/apiHandler.js +1 -1
- package/src/pro/consumers/handlers/consoleHandler.js +1 -1
- package/src/pro/consumers/handlers/databaseHandler.js +1 -1
- package/src/pro/consumers/handlers/index.js +1 -1
- package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
- package/src/pro/consumers/index.js +1 -1
- package/src/pro/consumers/messageTransformer.js +1 -1
- package/src/pro/consumers/validator.js +1 -1
- package/src/pro/database/base-model-mysql.js +1 -1
- package/src/pro/database/base-model-oracle.js +1 -1
- package/src/pro/database/base-model-sqlite.js +1 -1
- package/src/pro/database/db-mysql.js +1 -1
- package/src/pro/database/db-oracle.js +1 -1
- package/src/pro/database/db-sqlite.js +1 -1
- package/src/pro/excel/excel-generator.js +1 -1
- package/src/pro/excel/excel-parser.js +1 -1
- package/src/pro/excel/export-service.js +1 -1
- package/src/pro/excel/export_handler.js +1 -1
- package/src/pro/excel/import-service.js +1 -1
- package/src/pro/excel/import-validator.js +1 -1
- package/src/pro/excel/import_handler.js +1 -1
- package/src/pro/excel/upsert-builder.js +1 -1
- package/src/pro/idgen/idgen-routes.js +1 -1
- package/src/pro/integrations/lookup-resolver.js +1 -1
- package/src/pro/integrations/upload-handler-v2.js +1 -1
- package/src/pro/integrations/upload-handler.js +1 -1
- package/src/pro/integrations/webhook.js +1 -1
- package/src/pro/locking/lock-routes.js +1 -1
- package/src/pro/locking/resource-lock-manager.js +1 -1
- package/src/pro/messaging/kafkaConsumerService.js +1 -1
- package/src/pro/messaging/kafkaService.js +1 -1
- package/src/pro/messaging/messagehubService.js +1 -1
- package/src/pro/messaging/rabbitmqService.js +1 -1
- package/src/pro/scheduler/job-manager.js +1 -1
- package/src/pro/scheduler/job-routes.js +1 -1
- package/src/pro/scheduler/job-validator.js +1 -1
- package/src/pro/storage/base-storage-provider.js +1 -1
- package/src/pro/storage/file-metadata-helper.js +1 -1
- package/src/pro/storage/index.js +1 -1
- package/src/pro/storage/local-storage-provider.js +1 -1
- package/src/pro/storage/s3-storage-provider.js +1 -1
- package/src/pro/storage/upload-cleanup-job.js +1 -1
- package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
- package/src/pro/storage/upload-pending-tracker.js +1 -1
- package/src/pro/websocket/broadcast-helper.js +1 -1
- package/src/pro/websocket/index.js +1 -1
- package/src/pro/websocket/livesync-server.js +1 -1
- package/src/pro/websocket/ws-broadcaster.js +1 -1
- package/src/services/export-service.js +1 -1
- package/src/services/import-service.js +1 -1
- package/src/services/kafkaConsumerService.js +1 -1
- package/src/services/kafkaService.js +1 -1
- package/src/services/messagehubService.js +1 -1
- package/src/services/rabbitmqService.js +1 -1
- package/src/utils/cache-invalidation-registry.js +1 -1
- package/src/utils/cache-manager.js +1 -1
- package/src/utils/component-engine.js +1 -1
- package/src/utils/config-extractor.js +1 -1
- package/src/utils/consumerLogger.js +1 -1
- package/src/utils/context-builder.js +1 -1
- package/src/utils/dashboard-helpers.js +1 -1
- package/src/utils/dateHelper.js +1 -1
- package/src/utils/datetime-formatter.js +1 -1
- package/src/utils/datetime-parser.js +1 -1
- package/src/utils/db-bootstrap.js +1 -1
- package/src/utils/db-mysql.js +1 -1
- package/src/utils/db-oracle.js +1 -1
- package/src/utils/db-sqlite.js +1 -1
- package/src/utils/db.js +1 -1
- package/src/utils/demo-generator.js +1 -1
- package/src/utils/excel-generator.js +1 -1
- package/src/utils/excel-parser.js +1 -1
- package/src/utils/file-watcher.js +1 -1
- package/src/utils/id-generator.js +1 -1
- package/src/utils/idempotency-manager.js +1 -1
- package/src/utils/import-validator.js +1 -1
- package/src/utils/license-client.js +1 -1
- package/src/utils/lock-manager.js +1 -1
- package/src/utils/logger.js +1 -1
- package/src/utils/lookup-resolver.js +1 -1
- package/src/utils/payload-loader.js +1 -1
- package/src/utils/processor-response.js +1 -1
- package/src/utils/rabbitmq.js +1 -1
- package/src/utils/redis-client.js +1 -1
- package/src/utils/redis-helper.js +1 -1
- package/src/utils/request-scope.js +1 -1
- package/src/utils/security-checks.js +1 -1
- package/src/utils/service-resolver.js +1 -1
- package/src/utils/shutdown-coordinator.js +1 -1
- package/src/utils/trusted-keys.js +1 -1
- package/src/utils/upload-handler.js +1 -1
- package/src/utils/upsert-builder.js +1 -1
- package/src/utils/workflow-hook-executor.js +1 -1
- package/generators/metadata/global.json +0 -58
- package/generators/metadata/test-mysql-workbench.json +0 -118
- package/generators/metadata/test-mysql.json +0 -56
- package/generators/metadata/test-oracle-workbench.json +0 -118
- package/generators/metadata/test-oracle.json +0 -56
- package/generators/metadata/test-pg-workbench.json +0 -118
- package/generators/metadata/test-pg.json +0 -56
- package/generators/scripts/obfuscate-source.js +0 -356
- package/generators/scripts/validate-catalog.js +0 -430
- package/generators/scripts/validate-dbschema-catalog.js +0 -708
- package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
- package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
- package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
- package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
- package/generators/tests/fixtures/payloads/order-process.json +0 -52
- package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
- package/generators/tests/integration-tahap4b/README.md +0 -145
- package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
- package/generators/tests/integration-tahap4b/seed.sql +0 -53
- package/generators/tests/integration-tahap4b/verify.sql +0 -110
- package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
- package/generators/tests/unit/cli/create-processor.test.js +0 -319
- package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
- package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
- package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
- package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
- package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
- package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
- package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
- package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
- package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
- package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
- package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
- package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
- package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
- package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
- package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
- package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
- package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
- package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
- package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
- package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
- package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
- package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
- package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
- package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
- package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
- package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
- package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
- package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
- package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
- package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
- package/scripts/generate-integrity-manifest.js +0 -124
- package/scripts/snapshot-cli-contracts.js +0 -194
- package/scripts/verify-publish.js +0 -56
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a0_0x4868(_0x5c0ff5,_0x2657c5){_0x5c0ff5=_0x5c0ff5-0x64;const _0x590281=a0_0x5902();let _0x486881=_0x590281[_0x5c0ff5];if(a0_0x4868['jfZzJW']===undefined){var _0x1bdf10=function(_0x115a4a){const _0x30c2f0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16be30='',_0x4855fa='';for(let _0x1625cd=0x0,_0x53337f,_0x4d7f46,_0x103815=0x0;_0x4d7f46=_0x115a4a['charAt'](_0x103815++);~_0x4d7f46&&(_0x53337f=_0x1625cd%0x4?_0x53337f*0x40+_0x4d7f46:_0x4d7f46,_0x1625cd++%0x4)?_0x16be30+=String['fromCharCode'](0xff&_0x53337f>>(-0x2*_0x1625cd&0x6)):0x0){_0x4d7f46=_0x30c2f0['indexOf'](_0x4d7f46);}for(let _0x132fda=0x0,_0x2cde79=_0x16be30['length'];_0x132fda<_0x2cde79;_0x132fda++){_0x4855fa+='%'+('00'+_0x16be30['charCodeAt'](_0x132fda)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4855fa);};a0_0x4868['RRsoym']=_0x1bdf10,a0_0x4868['SToiWv']={},a0_0x4868['jfZzJW']=!![];}const _0x53103d=_0x590281[0x0],_0x25784c=_0x5c0ff5+_0x53103d,_0x3ec0e2=a0_0x4868['SToiWv'][_0x25784c];return!_0x3ec0e2?(_0x486881=a0_0x4868['RRsoym'](_0x486881),a0_0x4868['SToiWv'][_0x25784c]=_0x486881):_0x486881=_0x3ec0e2,_0x486881;}(function(_0x4e3530,_0x1ff719){const _0x131d9d=a0_0x4868,_0x57ef3f=_0x4e3530();while(!![]){try{const _0x577864=parseInt(_0x131d9d(0x6e))/0x1+-parseInt(_0x131d9d(0x6a))/0x2*(parseInt(_0x131d9d(0x6b))/0x3)+parseInt(_0x131d9d(0x6d))/0x4*(-parseInt(_0x131d9d(0x7c))/0x5)+parseInt(_0x131d9d(0x78))/0x6*(parseInt(_0x131d9d(0x79))/0x7)+parseInt(_0x131d9d(0x67))/0x8*(-parseInt(_0x131d9d(0x7e))/0x9)+-parseInt(_0x131d9d(0x70))/0xa+parseInt(_0x131d9d(0x6f))/0xb;if(_0x577864===_0x1ff719)break;else _0x57ef3f['push'](_0x57ef3f['shift']());}catch(_0x591326){_0x57ef3f['push'](_0x57ef3f['shift']());}}}(a0_0x5902,0xde4f8));class DateTimeFormatter{static['format'](_0x17d045,_0x24cf02,_0xf1121){const _0x3bdb04=a0_0x4868,_0x3ee279={'RyFvw':function(_0x2611d7,_0x2f93ed){return _0x2611d7===_0x2f93ed;},'CHkwx':_0x3bdb04(0x69),'fpNmX':function(_0x5cfc35,_0x7b92c8){return _0x5cfc35===_0x7b92c8;}};if(!_0x17d045)return null;try{if(_0xf1121===_0x3bdb04(0x68))return this[_0x3bdb04(0x75)](_0x17d045,_0x24cf02);else{if(_0x3ee279['RyFvw'](_0xf1121,_0x3ee279['CHkwx']))return this['formatTimestamp'](_0x17d045,_0x24cf02);else{if(_0x3ee279['fpNmX'](_0xf1121,_0x3bdb04(0x72)))return this[_0x3bdb04(0x6c)](_0x17d045,_0x24cf02);}}return _0x17d045;}catch(_0xf9a554){return console['error']('Error\x20formatting\x20datetime:\x20'+_0xf9a554['message']),_0x17d045;}}static['formatDate'](_0x34d197,_0x15b65c){const _0x5106fb=a0_0x4868,_0x46cf57={'cjVAc':function(_0x239e48,_0x90cc74){return _0x239e48(_0x90cc74);},'rLGSp':function(_0x4310b0,_0x5611ca){return _0x4310b0+_0x5611ca;}},_0x187416=new Date(_0x34d197);if(_0x46cf57[_0x5106fb(0x77)](isNaN,_0x187416[_0x5106fb(0x76)]()))return console[_0x5106fb(0x7f)]('Invalid\x20date\x20value:\x20'+_0x34d197),_0x34d197;const _0x2b3ea7=_0x46cf57['cjVAc'](String,_0x187416['getDate']())[_0x5106fb(0x65)](0x2,'0'),_0x136c7f=String(_0x46cf57['rLGSp'](_0x187416['getMonth'](),0x1))['padStart'](0x2,'0'),_0x5ce9d4=_0x187416[_0x5106fb(0x7b)](),_0x147150={'dd/MM/yyyy':_0x2b3ea7+'/'+_0x136c7f+'/'+_0x5ce9d4,'dd-MM-yyyy':_0x2b3ea7+'-'+_0x136c7f+'-'+_0x5ce9d4,'MM/dd/yyyy':_0x136c7f+'/'+_0x2b3ea7+'/'+_0x5ce9d4,'yyyy/MM/dd':_0x5ce9d4+'/'+_0x136c7f+'/'+_0x2b3ea7,'yyyy-MM-dd':_0x5ce9d4+'-'+_0x136c7f+'-'+_0x2b3ea7};return _0x147150[_0x15b65c]||_0x5ce9d4+'-'+_0x136c7f+'-'+_0x2b3ea7;}static['formatTimestamp'](_0x3842d5,_0x38c0f2){const _0xf1bdde=a0_0x4868,_0x57cd68={'DEMyj':function(_0x49535c,_0x15a3d4){return _0x49535c(_0x15a3d4);},'hmCUR':function(_0x5720d1,_0x4de873){return _0x5720d1(_0x4de873);},'klDaV':function(_0x4e049d,_0x274774){return _0x4e049d(_0x274774);}},_0x6ca817=new Date(_0x3842d5);if(isNaN(_0x6ca817['getTime']()))return console['warn'](_0xf1bdde(0x7d)+_0x3842d5),_0x3842d5;const _0x531700=String(_0x6ca817[_0xf1bdde(0x74)]())[_0xf1bdde(0x65)](0x2,'0'),_0x533d96=_0x57cd68['DEMyj'](String,_0x6ca817['getMonth']()+0x1)[_0xf1bdde(0x65)](0x2,'0'),_0x4692af=_0x6ca817[_0xf1bdde(0x7b)](),_0x2e71ce=String(_0x6ca817['getHours']())[_0xf1bdde(0x65)](0x2,'0'),_0x1c65c6=_0x57cd68['hmCUR'](String,_0x6ca817[_0xf1bdde(0x80)]())[_0xf1bdde(0x65)](0x2,'0'),_0x4f3a44=_0x57cd68[_0xf1bdde(0x64)](String,_0x6ca817[_0xf1bdde(0x73)]())['padStart'](0x2,'0'),_0x1f2b85=_0x38c0f2[_0xf1bdde(0x66)]('\x20');if(_0x1f2b85[_0xf1bdde(0x71)]!==0x2)return _0x4692af+'-'+_0x533d96+'-'+_0x531700+'\x20'+_0x2e71ce+':'+_0x1c65c6+':'+_0x4f3a44;const _0x5c0e71=_0x1f2b85[0x0],_0x5c52ec=_0x1f2b85[0x1],_0x1a8fdb={'dd/MM/yyyy':_0x531700+'/'+_0x533d96+'/'+_0x4692af,'dd-MM-yyyy':_0x531700+'-'+_0x533d96+'-'+_0x4692af,'MM/dd/yyyy':_0x533d96+'/'+_0x531700+'/'+_0x4692af,'yyyy/MM/dd':_0x4692af+'/'+_0x533d96+'/'+_0x531700,'yyyy-MM-dd':_0x4692af+'-'+_0x533d96+'-'+_0x531700},_0x149316={'HH:mm':_0x2e71ce+':'+_0x1c65c6,'HH:mm:ss':_0x2e71ce+':'+_0x1c65c6+':'+_0x4f3a44,'hh:mm':_0x2e71ce+':'+_0x1c65c6},_0x2d5abe=_0x1a8fdb[_0x5c0e71]||_0x4692af+'-'+_0x533d96+'-'+_0x531700,_0x10366c=_0x149316[_0x5c52ec]||_0x2e71ce+':'+_0x1c65c6+':'+_0x4f3a44;return _0x2d5abe+'\x20'+_0x10366c;}static['formatTime'](_0xca9e8b,_0x505e1c){const _0x430b9f=a0_0x4868,_0xac4b9f={'xRPDV':function(_0x1fe109,_0x410f4e){return _0x1fe109!==_0x410f4e;}};if(_0xac4b9f[_0x430b9f(0x7a)](typeof _0xca9e8b,'string'))return _0xca9e8b;const _0x23bdf2=_0xca9e8b[_0x430b9f(0x66)](':');if(_0x23bdf2[_0x430b9f(0x71)]<0x2)return console[_0x430b9f(0x7f)]('Invalid\x20time\x20value:\x20'+_0xca9e8b),_0xca9e8b;const _0x8e8ef3=_0x23bdf2[0x0]['padStart'](0x2,'0'),_0x276ec8=_0x23bdf2[0x1]['padStart'](0x2,'0'),_0x399bc3=_0x23bdf2[0x2]?_0x23bdf2[0x2][_0x430b9f(0x66)]('.')[0x0]['padStart'](0x2,'0'):'00',_0x306709={'HH:mm':_0x8e8ef3+':'+_0x276ec8,'HH:mm:ss':_0x8e8ef3+':'+_0x276ec8+':'+_0x399bc3,'hh:mm':_0x8e8ef3+':'+_0x276ec8};return _0x306709[_0x505e1c]||_0x8e8ef3+':'+_0x276ec8+':'+_0x399bc3;}}function a0_0x5902(){const _0x5e3de0=['z2v0rgf0zq','zM9YBwf0rgf0zq','z2v0vgLTzq','y2Pwqwm','ndHmAxjiAwG','mtyWnZq4q0r4Eg9m','Efjqrfy','z2v0rNvSBfLLyxi','otvsEw91zNC','sw52ywXPzcb0Aw1LC3rHBxaGDMfSDwu6ia','mtCWotiXn2LKuw1hrG','D2fYBG','z2v0twLUDxrLCW','A2Xeyvy','CgfKu3rHCNq','C3bSAxq','ndHdDvndvee','zgf0zq','DgLTzxn0yw1W','mtbJqvPuEKm','nJa4mtyZBvPrAhrv','zM9YBwf0vgLTzq','ntuZmtzuwNf5qui','mtyWotqWnKDdzgrIwa','mJK4nJa5odvPr2zvCKi','mte4mtmZntbezvr2t3O','BgvUz3rO','DgLTzq','z2v0u2vJB25KCW'];a0_0x5902=function(){return _0x5e3de0;};return a0_0x5902();}module['exports']=DateTimeFormatter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x1459a1=a0_0x785a;(function(_0x55f6ed,_0x493569){const _0x50f307=a0_0x785a,_0x3ed8f3=_0x55f6ed();while(!![]){try{const _0x586baf=parseInt(_0x50f307(0x1f0))/0x1+-parseInt(_0x50f307(0x1db))/0x2*(-parseInt(_0x50f307(0x1f4))/0x3)+parseInt(_0x50f307(0x1d8))/0x4+-parseInt(_0x50f307(0x1e6))/0x5+-parseInt(_0x50f307(0x1e3))/0x6*(-parseInt(_0x50f307(0x1da))/0x7)+-parseInt(_0x50f307(0x1d9))/0x8+-parseInt(_0x50f307(0x1de))/0x9;if(_0x586baf===_0x493569)break;else _0x3ed8f3['push'](_0x3ed8f3['shift']());}catch(_0x5cf04a){_0x3ed8f3['push'](_0x3ed8f3['shift']());}}}(a0_0x44e3,0x4d735));function a0_0x785a(_0x345cdd,_0x57c64d){_0x345cdd=_0x345cdd-0x1d4;const _0x44e31e=a0_0x44e3();let _0x785a12=_0x44e31e[_0x345cdd];if(a0_0x785a['vtEcHN']===undefined){var _0x5085c3=function(_0x300711){const _0x3c6efb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13406b='',_0x1ab642='';for(let _0x46402c=0x0,_0x357054,_0x95f060,_0x5c32c7=0x0;_0x95f060=_0x300711['charAt'](_0x5c32c7++);~_0x95f060&&(_0x357054=_0x46402c%0x4?_0x357054*0x40+_0x95f060:_0x95f060,_0x46402c++%0x4)?_0x13406b+=String['fromCharCode'](0xff&_0x357054>>(-0x2*_0x46402c&0x6)):0x0){_0x95f060=_0x3c6efb['indexOf'](_0x95f060);}for(let _0x57906d=0x0,_0x3a7371=_0x13406b['length'];_0x57906d<_0x3a7371;_0x57906d++){_0x1ab642+='%'+('00'+_0x13406b['charCodeAt'](_0x57906d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1ab642);};a0_0x785a['rhoovS']=_0x5085c3,a0_0x785a['zmFwmo']={},a0_0x785a['vtEcHN']=!![];}const _0x2a060b=_0x44e31e[0x0],_0x2a4181=_0x345cdd+_0x2a060b,_0x3eef20=a0_0x785a['zmFwmo'][_0x2a4181];return!_0x3eef20?(_0x785a12=a0_0x785a['rhoovS'](_0x785a12),a0_0x785a['zmFwmo'][_0x2a4181]=_0x785a12):_0x785a12=_0x3eef20,_0x785a12;}class DateTimeParser{static[a0_0x1459a1(0x1dd)](_0x1f3582,_0x3b18f7,_0x90b267){const _0x341218=a0_0x1459a1,_0x457c8a={'lYOOL':function(_0x182c99,_0x4c0ffb){return _0x182c99===_0x4c0ffb;},'CeqZe':'timestamp','LHzOK':_0x341218(0x1e4)};if(!_0x1f3582||_0x1f3582==='')return null;try{if(_0x90b267==='date')return this[_0x341218(0x1f5)](_0x1f3582,_0x3b18f7);else{if(_0x457c8a[_0x341218(0x1e8)](_0x90b267,_0x457c8a['CeqZe']))return this['parseTimestamp'](_0x1f3582,_0x3b18f7);else{if(_0x457c8a['lYOOL'](_0x90b267,_0x457c8a['LHzOK']))return this['parseTime'](_0x1f3582,_0x3b18f7);}}return _0x1f3582;}catch(_0x328225){return console[_0x341218(0x1d4)](_0x341218(0x1dc)+_0x328225['message']),null;}}static['parseDate'](_0x42f7a3,_0x1bf417){const _0x420f59=a0_0x1459a1,_0x2b10f2={'HaMVV':function(_0x473ecb,_0x35e635){return _0x473ecb+_0x35e635;},'XOvfb':_0x420f59(0x1f1),'zabTv':'year','OOjRQ':_0x420f59(0x1d7)};if(!_0x1bf417||_0x1bf417===_0x420f59(0x1eb))return _0x42f7a3;const _0x3efe8a={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x420f59(0x1d7),_0x2b10f2['XOvfb'],_0x2b10f2[_0x420f59(0x1f2)]]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x2b10f2['OOjRQ'],_0x420f59(0x1f1),_0x420f59(0x1df)]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':['month','day','year']},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x420f59(0x1df),_0x2b10f2['XOvfb'],_0x2b10f2[_0x420f59(0x1d6)]]}},_0x3d048=_0x3efe8a[_0x1bf417];if(!_0x3d048)return console['warn'](_0x420f59(0x1e0)+_0x1bf417+',\x20returning\x20null'),null;const _0x1793e1=_0x42f7a3[_0x420f59(0x1d5)](_0x3d048['pattern']);if(!_0x1793e1)return console[_0x420f59(0x1ef)](_0x420f59(0x1e1)+_0x42f7a3+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x1bf417+'\x22'),null;const _0x545717={'day':null,'month':null,'year':null};return _0x3d048[_0x420f59(0x1e5)][_0x420f59(0x1f6)]((_0xe1c6f7,_0x44fbe0)=>{const _0x2a03c3=_0x420f59;_0x545717[_0xe1c6f7]=_0x1793e1[_0x2b10f2[_0x2a03c3(0x1f3)](_0x44fbe0,0x1)];}),_0x545717[_0x420f59(0x1df)]+'-'+_0x545717[_0x420f59(0x1f1)]+'-'+_0x545717['day'];}static['parseTimestamp'](_0xf89da8,_0x28e1d8){const _0xa7a4bd=a0_0x1459a1,_0x11467e={'dIAdL':_0xa7a4bd(0x1ee)};if(!_0x28e1d8||_0x28e1d8===_0x11467e['dIAdL'])return _0xf89da8;const _0x4fe74=_0xf89da8[_0xa7a4bd(0x1ed)]('\x20');if(_0x4fe74[_0xa7a4bd(0x1e7)]!==0x2)return console[_0xa7a4bd(0x1ef)](_0xa7a4bd(0x1ec)+_0xf89da8),null;const [_0x40000f,_0x32afe1]=_0x4fe74,_0x5855ef=_0x28e1d8[_0xa7a4bd(0x1ed)]('\x20')[0x0],_0x4317e1=this['parseDate'](_0x40000f,_0x5855ef);if(!_0x4317e1)return null;const _0x297f3d=_0x32afe1['split'](':')['length']===0x2?_0x32afe1+':00':_0x32afe1;return _0x4317e1+'\x20'+_0x297f3d;}static[a0_0x1459a1(0x1e2)](_0x413243,_0x3aebb3){const _0x58758d=a0_0x1459a1,_0x27485c={'ERnHy':'HH:mm:ss','AdiYL':'HH:mm'};if(!_0x3aebb3||_0x3aebb3===_0x27485c[_0x58758d(0x1ea)])return _0x413243;if(_0x3aebb3===_0x27485c['AdiYL']){if(_0x413243[_0x58758d(0x1d5)](/^\d{2}:\d{2}$/))return _0x413243+':00';}return _0x413243;}}function a0_0x44e3(){const _0x5cb5f3=['zxHWB3j0CW','rvjUshK','ExL5Es1nts1Kza','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa','C3bSAxq','ExL5Es1nts1KzcbisdPTBtPZCW','D2fYBG','mJe5oty1u1H0BKro','Bw9UDgG','EMfIvhy','sgfnvLy','mty3nfj0uezwEa','CgfYC2veyxrL','zM9YrwfJAa','zxjYB3i','Bwf0y2G','t09QuLe','zgf5','ntiZntuYt2jruLLk','oda1mZyWq3r6Exzn','mJCWnti5AK1UC2P0','mJeYmK9QwxflvW','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','CgfYC2u','ndiWndeWn3bRwNDdvW','EwvHCG','vw5RBM93BIbKyxrLigzVCM1HDdOG','rgf0zsb2ywX1zsaI','CgfYC2vuAw1L','ndHOyxHvCgC','DgLTzq','B3jKzxi','mtGZnte4nu9HAxnXAG','BgvUz3rO','BfLpt0W'];a0_0x44e3=function(){return _0x5cb5f3;};return a0_0x44e3();}module[a0_0x1459a1(0x1e9)]=DateTimeParser;
|
package/src/core/utils/db.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x4690(){const _0x42b48a=['Cg9ZDgDYzxm','mta0odK5oxzwwNPeyG','CMvSzwfZzq','mJq2nZK0mKHfufbxqG','zvnkBuO','mteZota0mZzlCeTtEwi','C3vIC3rYAw5N','Bgjxse8','zgjFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','nti0ndq0tM5hqNDj','CxvLCNK','y29UBMvJDa','DxnLCG','EM9kvw8','BwvZC2fNzq','odeYmJyZnwDxve1Tyq','zgj4ytaZ','twTtCNi','C3rHCNq','Aw5MBW','v3HfDxq','zw52','Cg9ZDgDYzxnXBa','wvztsLu','CM93CW','lI9SB2DNzxi','y29Kzq','u1Lovefyx0vsuK9s','Exbtsuq','CM9SBgjHy2S','r0foz2C','uxv1A2y','ywL2t0i','zgvIDwC','mdGWmdy','Cg9YDa','vu5ltK9xtL9fuLjpuG','uxvLCNKGCMv0DxjUzwqG','rxf2zgK','rejFvvnfuG','uK9mtejbq0S','BMXiv2q','C3fS','n2PnzMHhBG','mJi3otuZmKXQwwT1va','mtKYlJe2oc4XmdaUmq','rxjYB3iGCM9SBgLUzYbIywnRihrYyw5Zywn0Aw9UoIa','ChvZAa','CM9SBgjHy2TFzxjYB3i','Aw5JBhvKzxm','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','mdGWmde','DhjHBNnHy3rPB25Fy29TCgXLDgu','CgfYyw1Z','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','wxLcDKe','rgf0ywjHC2uGzxjYB3i6ia','DLPst3i','C3LUDgf4igvYCM9Y','zgjFCg9VBf9JBg9Zzv9LCNjVCG','zgf0ywjHC2u','ALvWs2O','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','vefctevFtK9ux0zpvu5e','ndq2otK5nJbcswPOuLm','rejFueftu1DpuKq','u1fmievYCM9YoIa','BgvUz3rO','u2Lxzvu','CM93q291BNq','Ag9ZDa','DhjHBNnHy3rPB25FzxjYB3i'];a0_0x4690=function(){return _0x42b48a;};return a0_0x4690();}const a0_0x8f9c1=a0_0x4829;(function(_0x2bb946,_0x36cb6d){const _0x571e45=a0_0x4829,_0x1fc458=_0x2bb946();while(!![]){try{const _0x1ef3ab=parseInt(_0x571e45(0x95))/0x1+-parseInt(_0x571e45(0x97))/0x2+-parseInt(_0x571e45(0xc0))/0x3+-parseInt(_0x571e45(0x9d))/0x4+-parseInt(_0x571e45(0xa3))/0x5+parseInt(_0x571e45(0x99))/0x6*(-parseInt(_0x571e45(0xbf))/0x7)+parseInt(_0x571e45(0x8c))/0x8;if(_0x1ef3ab===_0x36cb6d)break;else _0x1fc458['push'](_0x1fc458['shift']());}catch(_0x28ac2f){_0x1fc458['push'](_0x1fc458['shift']());}}}(a0_0x4690,0xf15db));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x8f9c1(0xad)),dbConfig={'host':process[a0_0x8f9c1(0xa9)]['DB_HOST']||a0_0x8f9c1(0xc1),'port':parseInt(process['env']['DB_PORT']||'5432'),'user':process[a0_0x8f9c1(0xa9)][a0_0x8f9c1(0xbb)]||a0_0x8f9c1(0x94),'password':process['env'][a0_0x8f9c1(0x8d)]||'postgres1234','database':process['env']['DB_NAME']||a0_0x8f9c1(0xa4)};logDatabaseConfig({'host':dbConfig[a0_0x8f9c1(0x92)],'port':dbConfig[a0_0x8f9c1(0xb7)],'database':dbConfig[a0_0x8f9c1(0x88)],'type':'postgresql','user':dbConfig[a0_0x8f9c1(0xa0)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x3b6703=a0_0x8f9c1,_0x567dad={'Eqvdi':'db_pool_recreate'};return isPoolClosed&&(logger[_0x3b6703(0xa7)]({'event':_0x567dad[_0x3b6703(0xba)]},'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x39dded,_0x5cacad=[]){const _0x338d06=a0_0x8f9c1,_0x591366={'wLskl':function(_0x1723a2){return _0x1723a2();},'VfvXB':function(_0x826959,_0x58c570,_0x3bbe39,_0x50108a){return _0x826959(_0x58c570,_0x3bbe39,_0x50108a);},'eSJmJ':'sql_error'},_0x1ec1c3=startQueryTimer();try{const _0x50b7b8=getPool(),_0x79bff4=await _0x50b7b8[_0x338d06(0x9f)]();try{const _0x428f39=await _0x79bff4[_0x338d06(0x9e)](_0x39dded,_0x5cacad),_0x313b21=_0x591366['wLskl'](_0x1ec1c3);return _0x591366['VfvXB'](logQuery,_0x39dded,_0x5cacad,{'duration':_0x313b21,'rowsAffected':_0x428f39[_0x338d06(0x91)],'dbType':_0x338d06(0xaa)}),_0x428f39[_0x338d06(0xac)];}finally{_0x79bff4['release']();}}catch(_0x438b20){const _0x3d478e=_0x1ec1c3();logError(_0x438b20,{'event':_0x591366[_0x338d06(0x98)],'query':_0x39dded[_0x338d06(0x9a)](0x0,0x1f4),'paramCount':_0x5cacad['length'],'durationMs':_0x3d478e,'code':_0x438b20[_0x338d06(0xae)],'dbType':'postgresql'},_0x338d06(0x8e)+_0x438b20['message']);throw _0x438b20;}}function formatResponse(_0x166d44,_0x1adb4c=null){const _0x41b448=a0_0x8f9c1,_0x4d7ea9={'nlHWd':_0x41b448(0xce),'vZROr':function(_0xf0b622,_0x9511a0){return _0xf0b622===_0x9511a0;},'vwnyy':'28P01','YyBvA':'No\x20data\x20found.'};if(_0x1adb4c){let _0xfc2131=_0x41b448(0xb8);if(_0x1adb4c[_0x41b448(0xa2)][_0x41b448(0xc5)](_0x4d7ea9[_0x41b448(0xbd)]))_0xfc2131=_0x41b448(0xaf);else{if(_0x4d7ea9[_0x41b448(0xcd)](_0x1adb4c['code'],'42P01'))_0xfc2131=_0x41b448(0x8b);else{if(_0x1adb4c['code']===_0x4d7ea9['vwnyy'])_0xfc2131='AUTHENTICATION_ERROR';else(_0x4d7ea9['vZROr'](_0x1adb4c[_0x41b448(0xae)],_0x41b448(0xb6))||_0x4d7ea9['vZROr'](_0x1adb4c['code'],_0x41b448(0xc7)))&&(_0xfc2131='CONNECTION_ERROR');}}return{'success':![],'message':_0x41b448(0xcc)+_0x1adb4c['message'],'count':-0x1,'error_code':_0xfc2131};}else{if(!_0x166d44||_0x4d7ea9[_0x41b448(0xcd)](_0x166d44[_0x41b448(0x8f)],0x0))return{'success':!![],'message':_0x4d7ea9[_0x41b448(0xcb)],'count':0x0,'data':[]};return{'success':!![],'message':_0x41b448(0xb9)+_0x166d44['length']+'\x20row'+(_0x166d44[_0x41b448(0x8f)]===0x1?'':'s')+'.','count':_0x166d44[_0x41b448(0x8f)],'data':_0x166d44};}}async function closePool(){const _0x1de82a=a0_0x8f9c1,_0x2f325d={'ypSID':'db_pool_closed','MkSrr':'Database\x20pool\x20closed\x20successfully','lbWHO':function(_0xe1a10e,_0x227130,_0x4cab5d,_0x471d34){return _0xe1a10e(_0x227130,_0x4cab5d,_0x471d34);},'GVrax':_0x1de82a(0xcf),'ymkKJ':'db_pool_already_closed','aivOB':'Database\x20pool\x20was\x20already\x20closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger['info']({'event':_0x2f325d[_0x1de82a(0xb0)]},_0x2f325d[_0x1de82a(0xa5)]);}catch(_0x1ad9f6){_0x2f325d[_0x1de82a(0x9b)](logError,_0x1ad9f6,{'event':_0x2f325d['GVrax']},_0x1de82a(0xc6)+_0x1ad9f6['message']);}else logger[_0x1de82a(0xb5)]({'event':_0x2f325d['ymkKJ']},_0x2f325d[_0x1de82a(0xb4)]);}function a0_0x4829(_0x527f9a,_0x4caec6){_0x527f9a=_0x527f9a-0x88;const _0x46906a=a0_0x4690();let _0x482962=_0x46906a[_0x527f9a];if(a0_0x4829['hcBQbs']===undefined){var _0x1b8781=function(_0x53adcd){const _0x3cfafa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x133638='',_0x4a018e='';for(let _0x288311=0x0,_0x312f3f,_0x567f5b,_0x44a4ca=0x0;_0x567f5b=_0x53adcd['charAt'](_0x44a4ca++);~_0x567f5b&&(_0x312f3f=_0x288311%0x4?_0x312f3f*0x40+_0x567f5b:_0x567f5b,_0x288311++%0x4)?_0x133638+=String['fromCharCode'](0xff&_0x312f3f>>(-0x2*_0x288311&0x6)):0x0){_0x567f5b=_0x3cfafa['indexOf'](_0x567f5b);}for(let _0x1f4fb0=0x0,_0x1fd10d=_0x133638['length'];_0x1f4fb0<_0x1fd10d;_0x1f4fb0++){_0x4a018e+='%'+('00'+_0x133638['charCodeAt'](_0x1f4fb0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a018e);};a0_0x4829['DjNrTi']=_0x1b8781,a0_0x4829['GoUENV']={},a0_0x4829['hcBQbs']=!![];}const _0x1eaf2b=_0x46906a[0x0],_0x2f4641=_0x527f9a+_0x1eaf2b,_0x2eac16=a0_0x4829['GoUENV'][_0x2f4641];return!_0x2eac16?(_0x482962=a0_0x4829['DjNrTi'](_0x482962),a0_0x4829['GoUENV'][_0x2f4641]=_0x482962):_0x482962=_0x2eac16,_0x482962;}async function checkConnection(){const _0x1e6fb4=a0_0x8f9c1;try{const _0x22831d=getPool(),_0x4cc4cd=await _0x22831d[_0x1e6fb4(0x9f)]();try{return await _0x4cc4cd[_0x1e6fb4(0x9e)]('SELECT\x201'),!![];}finally{_0x4cc4cd[_0x1e6fb4(0x96)]();}}catch(_0x4ada87){return logError(_0x4ada87,{'event':_0x1e6fb4(0x9c)},_0x1e6fb4(0xca)+_0x4ada87[_0x1e6fb4(0xa2)]),![];}}async function executeTransaction(_0x413b70){const _0xb91682=a0_0x8f9c1,_0x5a1d06={'YVSJU':function(_0x24d8fd){return _0x24d8fd();},'IYTKv':function(_0x278d3e,_0x49f9bd,_0x2a68ca){return _0x278d3e(_0x49f9bd,_0x2a68ca);},'zIlVq':_0xb91682(0xa6),'ubqRO':function(_0x20c7a8){return _0x20c7a8();},'Quukf':'postgresql','GANgg':'COMMIT','JEZjH':'commit','Oaixt':function(_0x54340d){return _0x54340d();},'SiWeU':function(_0x3ed494,_0x2bdeb1,_0x2c5113,_0x4f7a0e){return _0x3ed494(_0x2bdeb1,_0x2c5113,_0x4f7a0e);},'jUpKj':_0xb91682(0x93),'zoJUo':_0xb91682(0xbc),'WxEut':_0xb91682(0xc4)};let _0x19f191;const _0x13030b=_0x5a1d06[_0xb91682(0xab)](startQueryTimer);try{const _0xbb9eec=getPool();_0x19f191=await _0xbb9eec[_0xb91682(0x9f)](),_0x5a1d06['IYTKv'](logTransaction,_0x5a1d06['zIlVq'],_0x413b70[_0xb91682(0x8f)]),await _0x19f191['query']('BEGIN');const _0xa8e7e7=[];for(const _0x568fee of _0x413b70){const _0x38da73=startQueryTimer(),_0x3f1ccd=await _0x19f191[_0xb91682(0x9e)](_0x568fee[_0xb91682(0xbe)],_0x568fee['params']||[]),_0x246ddd=_0x5a1d06['ubqRO'](_0x38da73);logQuery(_0x568fee['sql'],_0x568fee[_0xb91682(0xc9)]||[],{'duration':_0x246ddd,'rowsAffected':_0x3f1ccd[_0xb91682(0x91)],'dbType':_0x5a1d06[_0xb91682(0xb3)]}),_0xa8e7e7[_0xb91682(0xc3)](_0x3f1ccd['rows']);}await _0x19f191['query'](_0x5a1d06[_0xb91682(0xb2)]);const _0x2e5406=_0x13030b();return logTransaction(_0x5a1d06['JEZjH'],_0x413b70['length']),logger['info']({'event':_0xb91682(0xc8),'queryCount':_0x413b70['length'],'totalDurationMs':_0x2e5406,'dbType':'postgresql'},'Transaction\x20committed\x20('+_0x2e5406+'ms,\x20'+_0x413b70['length']+'\x20queries)'),_0xa8e7e7;}catch(_0x3a6075){const _0x1c12f0=_0x5a1d06['Oaixt'](_0x13030b);_0x5a1d06[_0xb91682(0x90)](logError,_0x3a6075,{'event':_0x5a1d06[_0xb91682(0x89)],'queryCount':_0x413b70['length'],'totalDurationMs':_0x1c12f0,'code':_0x3a6075[_0xb91682(0xae)],'dbType':'postgresql'},'Transaction\x20failed:\x20'+_0x3a6075['message']);if(_0x19f191)try{await _0x19f191[_0xb91682(0x9e)](_0x5a1d06[_0xb91682(0xa1)]),logTransaction(_0xb91682(0xb1),_0x413b70[_0xb91682(0x8f)]);}catch(_0xd63663){logError(_0xd63663,{'event':_0x5a1d06[_0xb91682(0xa8)],'dbType':_0x5a1d06[_0xb91682(0xb3)]},_0xb91682(0xc2)+_0xd63663[_0xb91682(0xa2)]);}throw _0x3a6075;}finally{if(_0x19f191)try{_0x19f191[_0xb91682(0x96)]();}catch(_0x40d119){logger['error']({'event':'client_release_error','error':_0x40d119['message'],'dbType':'postgresql'},_0xb91682(0x8a)+_0x40d119[_0xb91682(0xa2)]);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
|
|
1
|
+
const a0_0x4301c6=a0_0x19e3;(function(_0x3fd781,_0x1bc00d){const _0x496e39=a0_0x19e3,_0x2c054a=_0x3fd781();while(!![]){try{const _0x3273d3=-parseInt(_0x496e39(0x155))/0x1*(-parseInt(_0x496e39(0x15b))/0x2)+-parseInt(_0x496e39(0x150))/0x3+parseInt(_0x496e39(0x136))/0x4*(parseInt(_0x496e39(0x135))/0x5)+-parseInt(_0x496e39(0x123))/0x6+parseInt(_0x496e39(0x12f))/0x7+-parseInt(_0x496e39(0x152))/0x8*(-parseInt(_0x496e39(0x159))/0x9)+parseInt(_0x496e39(0x121))/0xa;if(_0x3273d3===_0x1bc00d)break;else _0x2c054a['push'](_0x2c054a['shift']());}catch(_0x369799){_0x2c054a['push'](_0x2c054a['shift']());}}}(a0_0x426e,0x92cce));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process[a0_0x4301c6(0x13a)]['DB_HOST']||a0_0x4301c6(0x145),'port':parseInt(process[a0_0x4301c6(0x13a)][a0_0x4301c6(0x14f)]||a0_0x4301c6(0x132)),'user':process['env']['DB_USER']||a0_0x4301c6(0x142),'password':process['env'][a0_0x4301c6(0x137)]||'postgres1234','database':process[a0_0x4301c6(0x13a)][a0_0x4301c6(0x128)]||a0_0x4301c6(0x147)};function a0_0x426e(){const _0x1728f9=['zgvIDwC','zgjFCg9VBf9JBg9Zzwq','zxDIsuC','u1Lovefyx0vsuK9s','Cg9ZDgDYzxm','BKzSBNy','q09ntuLu','mtKYlJe2oc4XmdaUmq','Cff2veC','zgj4ytaZ','CgfYyw1Z','zgjFCg9VBf9HBhjLywr5x2nSB3nLza','Aw5MBW','vefctevFtK9ux0zpvu5e','ww5vCKy','CM93q291BNq','CMvSzwfZzq','rejFue9sva','mta2oda0og1Vr2jIDW','u0vmrunuide','odG0mtzoALPou2G','rhPsAwi','rgf0ywjHC2uGCg9VBcbJBg9ZzwqGC3vJy2vZC2z1BgX5','mZGXm09oCxvNuG','zgf0ywjHC2u','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','tM8Gzgf0ysbMB3vUzc4','mtyYsxPku3bm','zxjYB3i','mJG2yK5gvwDh','y29UBMvJDa','r1DfCuK','y2XPzw50x3jLBgvHC2vFzxjYB3i','uvnfAwC','CM9SBgjHy2TFzxjYB3i','D0LAvgq','mJeYodi3mgn3Chz5Ba','Cg9ZDgDYzxnXBa','nJGXmZmWnNbNEgXdqq','C3rHCNq','C3vIC3rYAw5N','C3fS','BxmSia','rejFtKfnrq','CxvLCNK','BwvZC2fNzq','zMPzr2O','qvvusevoveLdqvrjt05Frvjst1i','y29Kzq','BgvUz3rO','mta1ndu0m0XWs3PuCG','CM93CW','DhjHBNnHy3rPB25Fy29TCgXLDgu','ntqZmG','ywDdzwi','zw5K','ndKYntK1mff0t1bmtG','nfz0sNPJra','rejFueftu1DpuKq','Ag9ZDa','Aw5JBhvKzxm','zw52','qvvbshO','DurkA0y','tKvSqwi'];a0_0x426e=function(){return _0x1728f9;};return a0_0x426e();}logDatabaseConfig({'host':dbConfig[a0_0x4301c6(0x138)],'port':dbConfig['port'],'database':dbConfig[a0_0x4301c6(0x156)],'type':a0_0x4301c6(0x122),'user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x51b0a4=a0_0x4301c6,_0x3babd1={'bTBLh':'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'};return isPoolClosed&&(logger[_0x51b0a4(0x14a)]({'event':'db_pool_recreate'},_0x3babd1['bTBLh']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x16bda3,_0xcb112b=[]){const _0xcddfe0=a0_0x4301c6,_0x343451={'NElAb':function(_0x59eaf8){return _0x59eaf8();},'pQvTG':function(_0x1258fb,_0x5909d4,_0x474bc6,_0x7ca5a2){return _0x1258fb(_0x5909d4,_0x474bc6,_0x7ca5a2);},'wbwfU':_0xcddfe0(0x122)},_0x53da32=_0x343451['NElAb'](startQueryTimer);try{const _0x282cc5=getPool(),_0x41c28a=await _0x282cc5[_0xcddfe0(0x11b)]();try{const _0x39dd3a=await _0x41c28a[_0xcddfe0(0x129)](_0x16bda3,_0xcb112b),_0x2daae7=_0x343451[_0xcddfe0(0x13d)](_0x53da32);return _0x343451[_0xcddfe0(0x146)](logQuery,_0x16bda3,_0xcb112b,{'duration':_0x2daae7,'rowsAffected':_0x39dd3a['rowCount'],'dbType':_0x343451['wbwfU']}),_0x39dd3a[_0xcddfe0(0x130)];}finally{_0x41c28a[_0xcddfe0(0x14e)]();}}catch(_0x4e467d){const _0x310896=_0x53da32();logError(_0x4e467d,{'event':'sql_error','query':_0x16bda3[_0xcddfe0(0x125)](0x0,0x1f4),'paramCount':_0xcb112b['length'],'durationMs':_0x310896,'code':_0x4e467d[_0xcddfe0(0x12d)],'dbType':_0xcddfe0(0x122)},'SQL\x20Error:\x20'+_0x4e467d[_0xcddfe0(0x12a)]);throw _0x4e467d;}}function a0_0x19e3(_0x4af3a4,_0x2e99b4){_0x4af3a4=_0x4af3a4-0x11b;const _0x426e2e=a0_0x426e();let _0x19e3b1=_0x426e2e[_0x4af3a4];if(a0_0x19e3['YtYpTR']===undefined){var _0x5f4c03=function(_0x5da199){const _0x2bca71='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4701e7='',_0x480cce='';for(let _0x5b051a=0x0,_0x56413e,_0x2bbb75,_0x11394d=0x0;_0x2bbb75=_0x5da199['charAt'](_0x11394d++);~_0x2bbb75&&(_0x56413e=_0x5b051a%0x4?_0x56413e*0x40+_0x2bbb75:_0x2bbb75,_0x5b051a++%0x4)?_0x4701e7+=String['fromCharCode'](0xff&_0x56413e>>(-0x2*_0x5b051a&0x6)):0x0){_0x2bbb75=_0x2bca71['indexOf'](_0x2bbb75);}for(let _0x1bb7be=0x0,_0x197a91=_0x4701e7['length'];_0x1bb7be<_0x197a91;_0x1bb7be++){_0x480cce+='%'+('00'+_0x4701e7['charCodeAt'](_0x1bb7be)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x480cce);};a0_0x19e3['JYeaGi']=_0x5f4c03,a0_0x19e3['nfMTmt']={},a0_0x19e3['YtYpTR']=!![];}const _0xf748ca=_0x426e2e[0x0],_0x114a8f=_0x4af3a4+_0xf748ca,_0x854609=a0_0x19e3['nfMTmt'][_0x114a8f];return!_0x854609?(_0x19e3b1=a0_0x19e3['JYeaGi'](_0x19e3b1),a0_0x19e3['nfMTmt'][_0x114a8f]=_0x19e3b1):_0x19e3b1=_0x854609,_0x19e3b1;}function formatResponse(_0x2791fc,_0x8719cb=null){const _0x1d8bb5=a0_0x4301c6,_0x85bffd={'xOajY':'UNKNOWN_ERROR','erqvt':'syntax\x20error','KMDlW':function(_0x17bd70,_0x1b607e){return _0x17bd70===_0x1b607e;},'buRnT':'28P01','uDJkF':function(_0x5a11e7,_0x4c4d90){return _0x5a11e7===_0x4c4d90;},'GWEqI':'08006','wIZTd':_0x1d8bb5(0x158)};if(_0x8719cb){let _0x586f5c=_0x85bffd['xOajY'];if(_0x8719cb['message'][_0x1d8bb5(0x139)](_0x85bffd['erqvt']))_0x586f5c=_0x1d8bb5(0x141);else{if(_0x8719cb[_0x1d8bb5(0x12d)]==='42P01')_0x586f5c=_0x1d8bb5(0x14b);else{if(_0x85bffd['KMDlW'](_0x8719cb['code'],_0x85bffd['buRnT']))_0x586f5c=_0x1d8bb5(0x12c);else(_0x85bffd[_0x1d8bb5(0x13c)](_0x8719cb['code'],_0x85bffd[_0x1d8bb5(0x11c)])||_0x85bffd['uDJkF'](_0x8719cb[_0x1d8bb5(0x12d)],'08001'))&&(_0x586f5c='CONNECTION_ERROR');}}return{'success':![],'message':'Database\x20error:\x20'+_0x8719cb[_0x1d8bb5(0x12a)],'count':-0x1,'error_code':_0x586f5c};}else{if(!_0x2791fc||_0x2791fc['length']===0x0)return{'success':!![],'message':_0x85bffd[_0x1d8bb5(0x120)],'count':0x0,'data':[]};return{'success':!![],'message':'Query\x20returned\x20'+_0x2791fc['length']+'\x20row'+(_0x2791fc[_0x1d8bb5(0x12e)]===0x1?'':'s')+'.','count':_0x2791fc['length'],'data':_0x2791fc};}}async function closePool(){const _0x5daae1=a0_0x4301c6,_0x2cc359={'WIHBk':_0x5daae1(0x13f),'RGPyK':_0x5daae1(0x154),'nFlnv':function(_0x24b59a,_0x651295,_0x330728,_0x1237ec){return _0x24b59a(_0x651295,_0x330728,_0x1237ec);},'CVOOY':'Database\x20pool\x20was\x20already\x20closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool[_0x5daae1(0x134)](),logger['info']({'event':_0x2cc359['WIHBk']},_0x2cc359['RGPyK']);}catch(_0x50e7e5){_0x2cc359[_0x5daae1(0x143)](logError,_0x50e7e5,{'event':'db_pool_close_error'},_0x5daae1(0x157)+_0x50e7e5['message']);}else logger[_0x5daae1(0x13e)]({'event':_0x5daae1(0x149)},_0x2cc359['CVOOY']);}async function checkConnection(){const _0x199d10=a0_0x4301c6,_0x3d409e={'YnUrF':function(_0x48a729){return _0x48a729();},'fjYGj':_0x199d10(0x151),'YBaTr':function(_0x1602a2,_0x5189e1,_0x1a16c9,_0x596491){return _0x1602a2(_0x5189e1,_0x1a16c9,_0x596491);}};try{const _0x1a4db2=_0x3d409e[_0x199d10(0x14c)](getPool),_0x2d95e9=await _0x1a4db2[_0x199d10(0x11b)]();try{return await _0x2d95e9['query'](_0x3d409e[_0x199d10(0x12b)]),!![];}finally{_0x2d95e9['release']();}}catch(_0x28c04d){return _0x3d409e['YBaTr'](logError,_0x28c04d,{'event':'db_connection_check_error'},'Error\x20checking\x20database\x20connection:\x20'+_0x28c04d['message']),![];}}async function executeTransaction(_0x5bfa48){const _0x433f0f=a0_0x4301c6,_0x5c5edf={'QSEig':function(_0x21e2d5){return _0x21e2d5();},'BkCkk':_0x433f0f(0x124),'agCeb':function(_0x35f343){return _0x35f343();},'MkluV':_0x433f0f(0x144),'ewbIG':'commit','Wkoal':_0x433f0f(0x131),'tXSto':function(_0x208f63){return _0x208f63();},'YJJYm':function(_0x1a79bf,_0x312785,_0x5a2563,_0x591709){return _0x1a79bf(_0x312785,_0x5a2563,_0x591709);},'xDHcx':'transaction_error','AUAHz':'postgresql','DzRib':'rollback','NrNyW':function(_0x5415bb,_0x383fe0,_0x365ad2,_0x10a198){return _0x5415bb(_0x383fe0,_0x365ad2,_0x10a198);}};let _0x29fa62;const _0x5e0574=_0x5c5edf[_0x433f0f(0x11e)](startQueryTimer);try{const _0x3dc6c9=getPool();_0x29fa62=await _0x3dc6c9[_0x433f0f(0x11b)](),logTransaction(_0x5c5edf['BkCkk'],_0x5bfa48[_0x433f0f(0x12e)]),await _0x29fa62['query']('BEGIN');const _0x58cd60=[];for(const _0x303e24 of _0x5bfa48){const _0x102700=startQueryTimer(),_0x56e649=await _0x29fa62[_0x433f0f(0x129)](_0x303e24[_0x433f0f(0x126)],_0x303e24['params']||[]),_0x5cb9f8=_0x5c5edf[_0x433f0f(0x133)](_0x102700);logQuery(_0x303e24[_0x433f0f(0x126)],_0x303e24[_0x433f0f(0x148)]||[],{'duration':_0x5cb9f8,'rowsAffected':_0x56e649[_0x433f0f(0x14d)],'dbType':_0x433f0f(0x122)}),_0x58cd60['push'](_0x56e649['rows']);}await _0x29fa62['query'](_0x5c5edf['MkluV']);const _0x3e2129=_0x5e0574();return logTransaction(_0x5c5edf[_0x433f0f(0x140)],_0x5bfa48['length']),logger['info']({'event':_0x5c5edf['Wkoal'],'queryCount':_0x5bfa48['length'],'totalDurationMs':_0x3e2129,'dbType':'postgresql'},'Transaction\x20committed\x20('+_0x3e2129+_0x433f0f(0x127)+_0x5bfa48[_0x433f0f(0x12e)]+'\x20queries)'),_0x58cd60;}catch(_0x29b320){const _0x40470f=_0x5c5edf['tXSto'](_0x5e0574);_0x5c5edf['YJJYm'](logError,_0x29b320,{'event':_0x5c5edf['xDHcx'],'queryCount':_0x5bfa48[_0x433f0f(0x12e)],'totalDurationMs':_0x40470f,'code':_0x29b320['code'],'dbType':_0x5c5edf['AUAHz']},'Transaction\x20failed:\x20'+_0x29b320[_0x433f0f(0x12a)]);if(_0x29fa62)try{await _0x29fa62[_0x433f0f(0x129)]('ROLLBACK'),logTransaction(_0x5c5edf[_0x433f0f(0x153)],_0x5bfa48['length']);}catch(_0x444beb){_0x5c5edf['NrNyW'](logError,_0x444beb,{'event':_0x433f0f(0x11f),'dbType':_0x5c5edf[_0x433f0f(0x13b)]},'Error\x20rolling\x20back\x20transaction:\x20'+_0x444beb[_0x433f0f(0x12a)]);}throw _0x29b320;}finally{if(_0x29fa62)try{_0x29fa62['release']();}catch(_0x78d982){logger[_0x433f0f(0x15a)]({'event':_0x433f0f(0x11d),'error':_0x78d982['message'],'dbType':_0x433f0f(0x122)},'Error\x20releasing\x20transaction\x20client:\x20'+_0x78d982[_0x433f0f(0x12a)]);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
|
package/src/core/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x20e266=a0_0x3a8d;(function(_0x2956bd,_0x589455){const _0x4e8ee5=a0_0x3a8d,_0x1627d5=_0x2956bd();while(!![]){try{const _0x536a79=parseInt(_0x4e8ee5(0x17a))/0x1+-parseInt(_0x4e8ee5(0x11a))/0x2*(parseInt(_0x4e8ee5(0x171))/0x3)+parseInt(_0x4e8ee5(0x132))/0x4+parseInt(_0x4e8ee5(0x16b))/0x5+-parseInt(_0x4e8ee5(0x125))/0x6+parseInt(_0x4e8ee5(0x173))/0x7+-parseInt(_0x4e8ee5(0x13b))/0x8*(parseInt(_0x4e8ee5(0x182))/0x9);if(_0x536a79===_0x589455)break;else _0x1627d5['push'](_0x1627d5['shift']());}catch(_0x13481d){_0x1627d5['push'](_0x1627d5['shift']());}}}(a0_0x3ee3,0x6eb3f));const pino=require('pino'),fs=require('fs'),path=require('path');let logToFile=![],logDir='./logs',serviceName=a0_0x20e266(0x181),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x20e266(0x10a),'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':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!=='production',logLevel=process[a0_0x20e266(0x156)][a0_0x20e266(0x130)]||a0_0x20e266(0x164);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||'1.0.5','env':process[a0_0x20e266(0x156)]['NODE_ENV']||'development'},'timestamp':pino[a0_0x20e266(0x13f)]['isoTime'],'redact':{'paths':[a0_0x20e266(0x122),'req.headers[\x22x-api-key\x22]',a0_0x20e266(0x155),a0_0x20e266(0x11c),'apiKey',a0_0x20e266(0x19d),'JWT_SECRET'],'censor':a0_0x20e266(0x161)},'serializers':{'req':_0x5880d2=>({'id':_0x5880d2['id'],'method':_0x5880d2[a0_0x20e266(0x18d)],'url':_0x5880d2['url'],'path':_0x5880d2[a0_0x20e266(0x19e)],'remoteAddress':_0x5880d2['ip']||_0x5880d2['connection']?.['remoteAddress']}),'res':_0x29b384=>({'statusCode':_0x29b384['statusCode'],'headers':_0x29b384[a0_0x20e266(0x1aa)]?.()}),'err':pino['stdSerializers'][a0_0x20e266(0x102)]}});function initFileLogging(){const _0x2fb9cc=a0_0x20e266,_0x91a56={'nPQzW':'true','yyGbq':function(_0x46cbc2,_0x3c0b93){return _0x46cbc2===_0x3c0b93;},'KyHbS':'debug','AITCV':function(_0x5257a9,_0x5b3e71){return _0x5257a9!==_0x5b3e71;},'VyLuS':_0x2fb9cc(0x15c),'VLtbx':'error.log','bQIhi':function(_0x52d2c1,_0x686507,_0xa102c0){return _0x52d2c1(_0x686507,_0xa102c0);},'IYxya':_0x2fb9cc(0x164)};if(fileLoggingInitialized)return;logToFile=process['env']['LOG_TO_FILE']===_0x91a56[_0x2fb9cc(0x14e)],logDir=process[_0x2fb9cc(0x156)][_0x2fb9cc(0x119)]||'./logs',serviceName=process['env'][_0x2fb9cc(0x17c)]||_0x2fb9cc(0x181),sqlLogEnabled=_0x91a56['yyGbq'](process[_0x2fb9cc(0x156)][_0x2fb9cc(0x1a2)],_0x91a56['nPQzW']),sqlLogLevel=process['env']['SQL_LOG_LEVEL']||_0x91a56[_0x2fb9cc(0x126)],sqlLogParams=_0x91a56[_0x2fb9cc(0x1ab)](process['env'][_0x2fb9cc(0x1a5)],'false'),sqlLogSlowThreshold=parseInt(process[_0x2fb9cc(0x156)]['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x16e955=path[_0x2fb9cc(0x10c)](process[_0x2fb9cc(0x1a3)](),logDir);try{!fs[_0x2fb9cc(0x1a9)](_0x16e955)&&fs[_0x2fb9cc(0x177)](_0x16e955,{'recursive':!![]});}catch(_0x45fe6c){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x16e955+':',_0x45fe6c[_0x2fb9cc(0x14d)]),fileLoggingInitialized=!![];return;}const _0x478977=path['join'](_0x16e955,_0x91a56['VyLuS']),_0x56bb91=path[_0x2fb9cc(0x123)](_0x16e955,_0x2fb9cc(0x17d));try{appLogStream=fs['createWriteStream'](_0x478977,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x56bb91,{'flags':'a'}),fileLoggingInitialized=!![];const _0x23cb9f={'event':'file_logging_enabled','logDir':_0x16e955,'files':[_0x2fb9cc(0x15c),_0x91a56['VLtbx']]},_0x5497ba=_0x2fb9cc(0x147)+_0x16e955;logger[_0x2fb9cc(0x164)](_0x23cb9f,_0x5497ba),_0x91a56['bQIhi'](writeToFileLog,{..._0x23cb9f,'level':_0x91a56[_0x2fb9cc(0x142)],'msg':_0x5497ba,'time':new Date()['toISOString']()},_0x2fb9cc(0x164));}catch(_0x2098aa){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x2098aa[_0x2fb9cc(0x14d)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0xde3f52,_0x276b4f){const _0x5d69f2=a0_0x20e266,_0x439b19={'VMhxS':function(_0x3eea64,_0x42d094){return _0x3eea64===_0x42d094;},'wcKhe':_0x5d69f2(0x168)};if(!logToFile||!appLogStream)return;const _0x969aed={'service':serviceName,..._0xde3f52},_0x505661=JSON['stringify'](_0x969aed)+'\x0a';appLogStream[_0x5d69f2(0x176)](_0x505661),(_0x439b19[_0x5d69f2(0x116)](_0x276b4f,_0x5d69f2(0x12f))||_0x276b4f===_0x439b19['wcKhe'])&&(errorLogStream&&errorLogStream['write'](_0x505661));}const createRequestLogger=(_0x40f234={})=>{const _0x54fc92=a0_0x20e266;return logger[_0x54fc92(0x113)](_0x40f234);},logServerStart=_0x134961=>{const _0x57b8e0=a0_0x20e266,_0x2a8d89={'hLlpH':_0x57b8e0(0x138),'vAoGd':'ACTIVE','cGtOr':_0x57b8e0(0x105),'rbqcn':function(_0x411b67,_0x3ca91b,_0x4958a5){return _0x411b67(_0x3ca91b,_0x4958a5);},'NdJSm':_0x57b8e0(0x164)},_0x4a9c86=_0x57b8e0(0x188)+(_0x134961['environment']||_0x57b8e0(0x111))[_0x57b8e0(0x180)](0x26)+_0x57b8e0(0x185)+(_0x134961[_0x57b8e0(0x15a)]||'N/A')['padEnd'](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0x134961['port']||0xbb8)['padEnd'](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x134961['configFile']||_0x2a8d89[_0x57b8e0(0x134)])['padEnd'](0x26)+_0x57b8e0(0x170)+(_0x134961[_0x57b8e0(0x1ac)]?_0x2a8d89['vAoGd']:_0x2a8d89['cGtOr'])[_0x57b8e0(0x180)](0x26)+_0x57b8e0(0x18b);console['log'](_0x4a9c86);const _0x7d6718={'event':'server_starting','project':_0x134961[_0x57b8e0(0x15a)],'port':_0x134961[_0x57b8e0(0x196)],'config':_0x134961[_0x57b8e0(0x10f)],'apiKeyEnabled':!!_0x134961[_0x57b8e0(0x1ac)]};logger['info'](_0x7d6718),_0x2a8d89[_0x57b8e0(0x14b)](writeToFileLog,{..._0x7d6718,'level':_0x2a8d89['NdJSm'],'msg':'Server\x20starting:\x20'+_0x134961[_0x57b8e0(0x15a)]+_0x57b8e0(0x112)+_0x134961['port'],'time':new Date()[_0x57b8e0(0x15b)]()},_0x2a8d89['NdJSm']);},logServerReady=_0x188a5b=>{const _0x2208f0=a0_0x20e266,_0x32f6b3={'yTxVv':_0x2208f0(0x164)},_0x573440={'event':_0x2208f0(0x141),'port':_0x188a5b[_0x2208f0(0x196)],'module':_0x188a5b[_0x2208f0(0x179)],'healthCheck':_0x188a5b['healthCheck'],'serviceInfo':_0x188a5b[_0x2208f0(0x124)],'baseUrl':_0x188a5b['baseUrl']},_0x135221='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x188a5b['port'];logger['info'](_0x573440,_0x135221),writeToFileLog({..._0x573440,'level':_0x32f6b3[_0x2208f0(0x121)],'msg':_0x135221,'time':new Date()[_0x2208f0(0x15b)]()},_0x2208f0(0x164)),_0x188a5b[_0x2208f0(0x101)]&&logger[_0x2208f0(0x164)]('\x20\x20Health:\x20'+_0x188a5b['healthCheck']),_0x188a5b[_0x2208f0(0x124)]&&logger['info']('\x20\x20Info:\x20\x20\x20'+_0x188a5b[_0x2208f0(0x124)]),_0x188a5b['baseUrl']&&logger[_0x2208f0(0x164)]('\x20\x20URL:\x20\x20\x20\x20'+_0x188a5b['baseUrl']);},logProjectLoaded=(_0x1a1f42,_0x28e7a4)=>{const _0x348a81=a0_0x20e266,_0x1cb97d={'event':_0x348a81(0x110),'project':_0x1a1f42,'path':_0x28e7a4},_0x193d5e='[OK]\x20Project\x20loaded:\x20'+_0x1a1f42;logger['info'](_0x1cb97d,_0x193d5e),writeToFileLog({..._0x1cb97d,'level':'info','msg':_0x193d5e,'time':new Date()['toISOString']()},_0x348a81(0x164));},logEndpointRegistered=(_0x42d960,_0x4e01aa)=>{const _0x4df1d7=a0_0x20e266,_0xd2bf55={'VRxAa':function(_0x465bc8,_0x43eec5,_0x3d7bab){return _0x465bc8(_0x43eec5,_0x3d7bab);},'jVUvq':'debug'},_0x3d98f0={'event':_0x4df1d7(0x16e),'endpoint':_0x42d960,'route':_0x4e01aa},_0x3a2069=_0x4df1d7(0x12d)+_0x42d960+':\x20'+_0x4e01aa;logger[_0x4df1d7(0x1a1)](_0x3d98f0,_0x3a2069),_0xd2bf55['VRxAa'](writeToFileLog,{..._0x3d98f0,'level':_0xd2bf55['jVUvq'],'msg':_0x3a2069,'time':new Date()[_0x4df1d7(0x15b)]()},_0xd2bf55['jVUvq']);},logDatabaseConfig=_0x56e57f=>{const _0x3dcfa4=a0_0x20e266,_0x5c5a74={'srOGh':_0x3dcfa4(0x1a1)},_0x5f6ad9={'event':_0x3dcfa4(0x193),'host':_0x56e57f[_0x3dcfa4(0x17e)],'port':_0x56e57f['port'],'database':_0x56e57f['database'],'type':_0x56e57f['type'],'user':_0x56e57f['user']},_0x19d839=_0x3dcfa4(0x13c)+_0x56e57f['type']+_0x3dcfa4(0x12e)+_0x56e57f[_0x3dcfa4(0x17e)]+':'+_0x56e57f[_0x3dcfa4(0x196)]+'/'+_0x56e57f['database'];logger['debug'](_0x5f6ad9,_0x19d839),writeToFileLog({..._0x5f6ad9,'level':_0x5c5a74['srOGh'],'msg':_0x19d839,'time':new Date()['toISOString']()},_0x3dcfa4(0x1a1));},logRequest=(_0x19862b,_0x1cab4d,_0x10e18a)=>{const _0x1611a0=a0_0x20e266,_0x56763b={'RuoOf':_0x1611a0(0x131),'vqKDO':'info','htnvc':function(_0x5be778,_0x1e0bd7){return _0x5be778>=_0x1e0bd7;},'dcnre':_0x1611a0(0x12f),'INaMI':_0x1611a0(0x107),'oKIcs':function(_0x486b67,_0x55603d,_0x55ee41){return _0x486b67(_0x55603d,_0x55ee41);}},_0x500929={'event':_0x56763b['RuoOf'],'method':_0x19862b[_0x1611a0(0x18d)],'path':_0x19862b['path'],'statusCode':_0x1cab4d[_0x1611a0(0x175)],'durationMs':_0x10e18a,'ip':_0x19862b['ip']},_0x916c96=_0x19862b[_0x1611a0(0x18d)]+'\x20'+_0x19862b['path']+'\x20-\x20'+_0x1cab4d[_0x1611a0(0x175)]+'\x20('+_0x10e18a+'ms)';let _0x3ee255=_0x56763b['vqKDO'];if(_0x56763b[_0x1611a0(0x114)](_0x1cab4d['statusCode'],0x1f4))_0x3ee255=_0x56763b[_0x1611a0(0x1ae)],logger['error'](_0x500929,_0x916c96);else _0x56763b['htnvc'](_0x1cab4d[_0x1611a0(0x175)],0x190)?(_0x3ee255=_0x56763b['INaMI'],logger['warn'](_0x500929,_0x916c96)):logger[_0x1611a0(0x164)](_0x500929,_0x916c96);_0x56763b[_0x1611a0(0x172)](writeToFileLog,{..._0x500929,'level':_0x3ee255,'msg':_0x916c96,'time':new Date()[_0x1611a0(0x15b)]()},_0x3ee255);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x20e266(0x183),a0_0x20e266(0x144),'token','access_token',a0_0x20e266(0x12b),'secret',a0_0x20e266(0x1a8),a0_0x20e266(0x135),'api_key',a0_0x20e266(0x118),'credentials','pin',a0_0x20e266(0x17f),a0_0x20e266(0x198),a0_0x20e266(0x186)],redactSensitiveParams=(_0xeae933,_0x55d6ad)=>{const _0x463054=a0_0x20e266,_0x59b755={'xYgzI':'[REDACTED]','MfLwp':'string','TycaR':'[REDACTED:token]'};if(!_0xeae933||_0xeae933[_0x463054(0x157)]===0x0)return _0xeae933;const _0x3c22e4=_0x55d6ad['toLowerCase'](),_0xa3b3c6=_0x3c22e4[_0x463054(0x1a0)](/\(([^)]+)\)\s*values/i);let _0x500088=[];_0xa3b3c6&&(_0x500088=_0xa3b3c6[0x1][_0x463054(0x108)](',')[_0x463054(0x151)](_0x56fa2e=>_0x56fa2e['trim']()[_0x463054(0x18e)]()));const _0x249341=_0x3c22e4[_0x463054(0x1a0)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x249341){const _0x2031b2=_0x249341[0x1],_0xb3650=_0x2031b2['match'](/(\w+)\s*=/g);_0xb3650&&(_0x500088=_0xb3650[_0x463054(0x151)](_0x3048d3=>_0x3048d3[_0x463054(0x149)](/\s*=/,'')[_0x463054(0x199)]()[_0x463054(0x18e)]()));}return _0xeae933[_0x463054(0x151)]((_0x5066fe,_0x15e284)=>{const _0x17903b=_0x463054;if(_0x500088[_0x15e284]){const _0x2e8f1a=_0x500088[_0x15e284],_0x385ba9=SENSITIVE_PARAM_PATTERNS[_0x17903b(0x104)](_0x424672=>_0x2e8f1a['includes'](_0x424672));if(_0x385ba9)return _0x59b755['xYgzI'];}if(typeof _0x5066fe===_0x59b755[_0x17903b(0x128)]&&_0x5066fe[_0x17903b(0x157)]>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x5066fe)&&_0x5066fe[_0x17903b(0x139)]('.'))return _0x59b755[_0x17903b(0x167)];if(/^[a-fA-F0-9]{32,}$/['test'](_0x5066fe))return'[REDACTED:hash]';}return _0x5066fe;});},parseQueryMetadata=_0x3f8225=>{const _0x19c3dc=a0_0x20e266,_0x55222d={'IFYDW':'SELECT','wHLOe':_0x19c3dc(0x152),'QaShM':'UPDATE','YLwVR':'DELETE','apXUp':_0x19c3dc(0x117),'kMMRJ':_0x19c3dc(0x169),'vZJBK':_0x19c3dc(0x13a),'bhAoZ':'TRANSACTION_COMMIT','gtgNF':_0x19c3dc(0x154),'PEjvI':_0x19c3dc(0x19b),'ZlQBK':'DDL_ALTER','nturU':'DROP'},_0x23311c=_0x3f8225['trim'](),_0xf53c38=_0x23311c[_0x19c3dc(0x197)]();let _0x5b05d8=_0x19c3dc(0x145),_0xdc1e14=null;if(_0xf53c38[_0x19c3dc(0x10d)](_0x55222d['IFYDW'])){_0x5b05d8=_0x19c3dc(0x11f);const _0x22036f=_0x23311c[_0x19c3dc(0x1a0)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x22036f?_0x22036f[0x1]:null;}else{if(_0xf53c38['startsWith'](_0x55222d['wHLOe'])){_0x5b05d8=_0x55222d['wHLOe'];const _0x34a221=_0x23311c[_0x19c3dc(0x1a0)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x34a221?_0x34a221[0x1]:null;}else{if(_0xf53c38[_0x19c3dc(0x10d)]('UPDATE')){_0x5b05d8=_0x55222d[_0x19c3dc(0x1ad)];const _0x31d3de=_0x23311c[_0x19c3dc(0x1a0)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x31d3de?_0x31d3de[0x1]:null;}else{if(_0xf53c38['startsWith']('DELETE')){_0x5b05d8=_0x55222d['YLwVR'];const _0x330a07=_0x23311c[_0x19c3dc(0x1a0)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x330a07?_0x330a07[0x1]:null;}else{if(_0xf53c38['startsWith']('BEGIN')||_0xf53c38[_0x19c3dc(0x10d)](_0x55222d[_0x19c3dc(0x133)]))_0x5b05d8=_0x55222d['kMMRJ'];else{if(_0xf53c38[_0x19c3dc(0x10d)](_0x55222d['vZJBK']))_0x5b05d8=_0x55222d['bhAoZ'];else{if(_0xf53c38[_0x19c3dc(0x10d)]('ROLLBACK'))_0x5b05d8=_0x55222d[_0x19c3dc(0x143)];else{if(_0xf53c38[_0x19c3dc(0x10d)](_0x55222d['PEjvI']))_0x5b05d8=_0x19c3dc(0x100);else{if(_0xf53c38[_0x19c3dc(0x10d)]('ALTER'))_0x5b05d8=_0x55222d[_0x19c3dc(0x163)];else _0xf53c38['startsWith'](_0x55222d['nturU'])&&(_0x5b05d8='DDL_DROP');}}}}}}}}return{'type':_0x5b05d8,'table':_0xdc1e14};},startQueryTimer=()=>{const _0x18298c=a0_0x20e266,_0x5ba4f0={'zBxSl':function(_0x9d451a,_0x38fc1b){return _0x9d451a*_0x38fc1b;},'ISrxl':function(_0x5ea8cc,_0xd80864){return _0x5ea8cc/_0xd80864;}},_0x56636c=process[_0x18298c(0x10e)]();return()=>{const _0x5e2265=_0x18298c,[_0x2c618f,_0x492413]=process[_0x5e2265(0x10e)](_0x56636c);return parseFloat((_0x5ba4f0['zBxSl'](_0x2c618f,0x3e8)+_0x5ba4f0[_0x5e2265(0x166)](_0x492413,0xf4240))['toFixed'](0x2));};},logQuery=(_0x46e9b6,_0x251aed=[],_0x4af9d0={})=>{const _0x49eefe=a0_0x20e266,_0x5edfdf={'qJjzW':_0x49eefe(0x146),'RbeUs':function(_0x15e58a,_0x483c06){return _0x15e58a(_0x483c06);},'qDhav':function(_0x443dde,_0x52232f){return _0x443dde>_0x52232f;},'BScwm':function(_0x4d787b,_0x138049){return _0x4d787b!==_0x138049;},'HVtLP':function(_0x285092,_0x2d1e64){return _0x285092>_0x2d1e64;},'WjPje':_0x49eefe(0x162),'qINXh':'warn'};if(!sqlLogEnabled){logger[_0x49eefe(0x1a1)]({'event':_0x5edfdf['qJjzW'],'query':_0x46e9b6[_0x49eefe(0x106)](0x0,0xc8),'paramCount':_0x251aed[_0x49eefe(0x157)]},_0x49eefe(0x11d));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x4af9d0,{type:_0x2fbf25,table:_0x1a3cf5}=_0x5edfdf[_0x49eefe(0x129)](parseQueryMetadata,_0x46e9b6),_0x55514f={'event':_0x49eefe(0x192),'queryType':_0x2fbf25,'table':_0x1a3cf5,'query':_0x46e9b6,'paramCount':_0x251aed['length'],'dbType':dbType};sqlLogParams&&_0x251aed['length']>0x0&&(_0x55514f[_0x49eefe(0x103)]=redactSensitiveParams(_0x251aed,_0x46e9b6));duration!==null&&(_0x55514f['durationMs']=duration,_0x55514f[_0x49eefe(0x14f)]=_0x5edfdf['qDhav'](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x55514f['rowsAffected']=rowsAffected);const _0x3e2268=_0x1a3cf5||'unknown';let _0x5640d6='['+_0x2fbf25+']\x20'+_0x3e2268;_0x5edfdf['BScwm'](duration,null)&&(_0x5640d6+='\x20('+duration+_0x49eefe(0x194));const _0xc34e5f=_0x5edfdf[_0x49eefe(0x12c)](duration,null)&&_0x5edfdf['HVtLP'](duration,sqlLogSlowThreshold);let _0x5ca032='debug';if(_0xc34e5f)_0x5640d6+=_0x5edfdf['WjPje'],_0x5ca032=_0x5edfdf[_0x49eefe(0x19f)],logger[_0x49eefe(0x107)](_0x55514f,_0x5640d6);else sqlLogLevel===_0x49eefe(0x164)?(_0x5ca032='info',logger[_0x49eefe(0x164)](_0x55514f,_0x5640d6)):logger[_0x49eefe(0x1a1)](_0x55514f,_0x5640d6);writeToFileLog({..._0x55514f,'level':_0x5ca032,'msg':_0x5640d6,'time':new Date()['toISOString']()},_0x5ca032);},logTransaction=(_0x4f7e3a,_0x11c8b7)=>{const _0x4b41a7=a0_0x20e266,_0x1fb315={'KEXZI':'db_transaction','dcSNo':function(_0x2a65ac,_0x1e2f6b,_0x3df9b7){return _0x2a65ac(_0x1e2f6b,_0x3df9b7);}},_0x138df6={'event':_0x1fb315[_0x4b41a7(0x13e)],'status':_0x4f7e3a,'queryCount':_0x11c8b7},_0x40b244=_0x4b41a7(0x1a6)+_0x4f7e3a;logger[_0x4b41a7(0x1a1)](_0x138df6,_0x40b244),_0x1fb315['dcSNo'](writeToFileLog,{..._0x138df6,'level':_0x4b41a7(0x1a1),'msg':_0x40b244,'time':new Date()['toISOString']()},_0x4b41a7(0x1a1));},redactObject=_0x1d9edd=>{const _0x5592c5=a0_0x20e266,_0x5766e6={'WqhBO':'password','oJiqc':_0x5592c5(0x144),'Uzcgq':_0x5592c5(0x14c),'oOJXu':_0x5592c5(0x16d),'hCgvZ':'creditcard','tzwbm':_0x5592c5(0x191),'aikfP':'pin','DMhAE':_0x5592c5(0x198),'WsHBX':_0x5592c5(0x12b),'gUSTQ':_0x5592c5(0x13d),'wwoYO':function(_0x371710,_0x564aa6){return _0x371710(_0x564aa6);}};if(!_0x1d9edd||typeof _0x1d9edd!==_0x5592c5(0x17b))return _0x1d9edd;const _0x5955cd=[_0x5766e6['WqhBO'],_0x5592c5(0x183),_0x5766e6['oJiqc'],_0x5592c5(0x11c),_0x5766e6['Uzcgq'],'apikey',_0x5592c5(0x11e),_0x5766e6['oOJXu'],_0x5766e6[_0x5592c5(0x148)],'credit_card',_0x5592c5(0x150),_0x5766e6[_0x5592c5(0x127)],_0x5766e6['aikfP'],_0x5766e6[_0x5592c5(0x18a)],'privatekey',_0x5766e6[_0x5592c5(0x19a)],_0x5766e6['gUSTQ']],_0x5bb440=Array[_0x5592c5(0x109)](_0x1d9edd)?[..._0x1d9edd]:{..._0x1d9edd};for(const _0x4eaec1 of Object['keys'](_0x5bb440)){const _0x43b5e7=_0x4eaec1[_0x5592c5(0x18e)]();if(_0x5955cd['some'](_0x34cb28=>_0x43b5e7[_0x5592c5(0x139)](_0x34cb28)))_0x5bb440[_0x4eaec1]=_0x5592c5(0x161);else typeof _0x5bb440[_0x4eaec1]===_0x5592c5(0x17b)&&_0x5bb440[_0x4eaec1]!==null&&(_0x5bb440[_0x4eaec1]=_0x5766e6['wwoYO'](redactObject,_0x5bb440[_0x4eaec1]));}return _0x5bb440;},logError=(_0x2db6ff,_0x238722={},_0x5448c9=null)=>{const _0x4c6b4a=a0_0x20e266,_0x594c51={'uajih':_0x4c6b4a(0x120),'oelPd':function(_0x33d2d7,_0x2b9303,_0x463921){return _0x33d2d7(_0x2b9303,_0x463921);}},_0x25cd03={'event':_0x4c6b4a(0x12f),'errorName':_0x2db6ff['name']||_0x594c51[_0x4c6b4a(0x153)],'errorMessage':_0x2db6ff[_0x4c6b4a(0x14d)],'errorCode':_0x2db6ff['code']||null,'stack':_0x2db6ff[_0x4c6b4a(0x189)],..._0x238722},_0x1ffea3=_0x5448c9||'Error:\x20'+_0x2db6ff['message'];logger['error'](_0x25cd03,_0x1ffea3),_0x594c51['oelPd'](writeToFileLog,{..._0x25cd03,'level':'error','msg':_0x1ffea3,'time':new Date()['toISOString']()},'error');},logFatalError=(_0x26ef51,_0x5caa7e={},_0x5a7e4a=null)=>{const _0x1630e2=a0_0x20e266,_0x4b0971={'qYAHe':'fatal_error','ouXUy':'Error','IadxP':function(_0xcaf232,_0x360da6,_0x33b559){return _0xcaf232(_0x360da6,_0x33b559);}},_0x571b3f={'event':_0x4b0971[_0x1630e2(0x16c)],'errorName':_0x26ef51[_0x1630e2(0x178)]||_0x4b0971['ouXUy'],'errorMessage':_0x26ef51[_0x1630e2(0x14d)],'errorCode':_0x26ef51['code']||null,'stack':_0x26ef51[_0x1630e2(0x189)],'severity':'CRITICAL',..._0x5caa7e},_0x33198f=_0x5a7e4a||_0x1630e2(0x1a7)+_0x26ef51[_0x1630e2(0x14d)];logger['fatal'](_0x571b3f,_0x33198f),_0x4b0971[_0x1630e2(0x158)](writeToFileLog,{..._0x571b3f,'level':'fatal','msg':_0x33198f,'time':new Date()[_0x1630e2(0x15b)]()},'error');},logHttpError=(_0x5c4399,_0x1a8947,_0xb668c0={})=>{const _0x368cdb=a0_0x20e266,_0x410a41={'xMFyf':_0x368cdb(0x120),'qyiuV':'x-request-id','iDIss':function(_0x3f3902,_0x5daff1){return _0x3f3902>=_0x5daff1;},'Onvqe':function(_0x347ec0,_0x39a0f2){return _0x347ec0>=_0x39a0f2;},'iBIcp':'error'},_0x501b2a={'event':'http_error','errorName':_0x5c4399[_0x368cdb(0x178)]||_0x410a41['xMFyf'],'errorMessage':_0x5c4399['message'],'errorCode':_0x5c4399[_0x368cdb(0x190)]||_0x5c4399[_0x368cdb(0x175)]||0x1f4,'stack':_0x5c4399[_0x368cdb(0x189)],'method':_0x1a8947?.['method'],'url':_0x1a8947?.['url']||_0x1a8947?.[_0x368cdb(0x15d)],'path':_0x1a8947?.[_0x368cdb(0x19e)],'ip':_0x1a8947?.['ip']||_0x1a8947?.[_0x368cdb(0x18f)]?.[_0x368cdb(0x159)],'userAgent':_0x1a8947?.[_0x368cdb(0xff)]?.('user-agent'),'requestId':_0x1a8947?.['id']||_0x1a8947?.['headers']?.[_0x410a41['qyiuV']],'body':_0x1a8947?.[_0x368cdb(0x10b)]?redactObject(_0x1a8947[_0x368cdb(0x10b)]):undefined,'query':_0x1a8947?.[_0x368cdb(0x18c)],..._0xb668c0},_0x3484e5=_0x5c4399[_0x368cdb(0x175)]||_0x5c4399[_0x368cdb(0x165)]||0x1f4,_0x315fd4='HTTP\x20'+_0x3484e5+':\x20'+_0x5c4399[_0x368cdb(0x14d)];_0x410a41[_0x368cdb(0x187)](_0x3484e5,0x1f4)?logger['error'](_0x501b2a,_0x315fd4):logger['warn'](_0x501b2a,_0x315fd4),writeToFileLog({..._0x501b2a,'level':_0x410a41[_0x368cdb(0x1a4)](_0x3484e5,0x1f4)?_0x410a41['iBIcp']:'warn','msg':_0x315fd4,'time':new Date()['toISOString']()},_0x3484e5>=0x1f4?'error':'warn');},logUncaughtError=(_0x5ef675,_0x2b70d8)=>{const _0xda1b3e=a0_0x20e266,_0x25818a={'aLnEh':'Error','ozfbr':_0xda1b3e(0x195)},_0x3adebc={'event':_0x5ef675,'errorName':_0x2b70d8?.[_0xda1b3e(0x178)]||_0x25818a['aLnEh'],'errorMessage':_0x2b70d8?.[_0xda1b3e(0x14d)]||String(_0x2b70d8),'errorCode':_0x2b70d8?.[_0xda1b3e(0x190)]||null,'stack':_0x2b70d8?.['stack'],'severity':_0x25818a['ozfbr'],'processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process[_0xda1b3e(0x160)]()},_0x332d16='['+_0x5ef675['toUpperCase']()+']\x20'+(_0x2b70d8?.['message']||_0x2b70d8);logger[_0xda1b3e(0x168)](_0x3adebc,_0x332d16),writeToFileLog({..._0x3adebc,'level':'fatal','msg':_0x332d16,'time':new Date()[_0xda1b3e(0x15b)]()},'error');},setupGlobalErrorHandlers=()=>{const _0x26234a=a0_0x20e266,_0x2b2f7a={'uODJM':function(_0x10c670,_0x4e8354,_0x4df859){return _0x10c670(_0x4e8354,_0x4df859);},'FVoUk':_0x26234a(0x136),'ClqMy':function(_0x4c81ef,_0x718a45){return _0x4c81ef instanceof _0x718a45;},'XArAV':function(_0x15850e,_0x47e517){return _0x15850e(_0x47e517);},'nleYR':_0x26234a(0x184),'OTFwH':'global_error_handlers_setup','Rauuc':_0x26234a(0x164)};process['on']('uncaughtException',_0x234a69=>{const _0x4586bc=_0x26234a;_0x2b2f7a[_0x4586bc(0x140)](logUncaughtError,_0x2b2f7a['FVoUk'],_0x234a69),setTimeout(()=>{const _0x218ba1=_0x4586bc;process[_0x218ba1(0x14a)](0x1);},0x3e8);}),process['on'](_0x26234a(0x12a),(_0x5a3b4f,_0x50f212)=>{const _0x4e0a24=_0x26234a,_0x52046=_0x2b2f7a[_0x4e0a24(0x15e)](_0x5a3b4f,Error)?_0x5a3b4f:new Error(_0x2b2f7a['XArAV'](String,_0x5a3b4f));logUncaughtError(_0x4e0a24(0x12a),_0x52046);}),process['on'](_0x2b2f7a['nleYR'],_0x50e29b=>{const _0x21177b=_0x26234a;logger[_0x21177b(0x107)]({'event':_0x21177b(0x16a),'name':_0x50e29b[_0x21177b(0x178)],'message':_0x50e29b[_0x21177b(0x14d)],'stack':_0x50e29b[_0x21177b(0x189)]},_0x21177b(0x16f)+_0x50e29b[_0x21177b(0x14d)]);});const _0x516935={'event':_0x2b2f7a[_0x26234a(0x19c)]},_0x3b7cc9=_0x26234a(0x115);logger[_0x26234a(0x164)](_0x516935,_0x3b7cc9),writeToFileLog({..._0x516935,'level':_0x2b2f7a['Rauuc'],'msg':_0x3b7cc9,'time':new Date()[_0x26234a(0x15b)]()},_0x2b2f7a['Rauuc']);},createErrorHandlerMiddleware=()=>{const _0x37ef46=a0_0x20e266,_0x43a525={'UcqAD':function(_0x20cd10,_0x2b9340,_0x4f74db){return _0x20cd10(_0x2b9340,_0x4f74db);},'erdoj':function(_0x21e868,_0x1c8b7a){return _0x21e868>=_0x1c8b7a;},'WqVVz':_0x37ef46(0x11b),'sNSeA':_0x37ef46(0x174)};return(_0x532762,_0x3f5811,_0x3a3e6a,_0x1d5ef1)=>{const _0x5b97b8=_0x37ef46;_0x43a525['UcqAD'](logHttpError,_0x532762,_0x3f5811);const _0x48c063=_0x532762['statusCode']||_0x532762['status']||0x1f4;_0x3a3e6a[_0x5b97b8(0x165)](_0x48c063)[_0x5b97b8(0x137)]({'success':![],'error':_0x43a525['erdoj'](_0x48c063,0x1f4)?_0x43a525['WqVVz']:_0x532762[_0x5b97b8(0x14d)],'requestId':_0x3f5811['id']||_0x3f5811['headers']?.[_0x43a525[_0x5b97b8(0x15f)]]||null});};};function a0_0x3ee3(){const _0x24b2e0=['zw5KCg9PBNrFCMvNAxn0zxjLza','uhjVy2vZCYbxyxjUAw5NoIa','iokvKqRILzeGiefqssblzxKGicaGidOG','mJruBej1rhe','B0Tjy3m','ndaXode3nunUrKnzvG','Ec1Yzxf1zxn0lwLK','C3rHDhvZq29Kzq','D3jPDgu','BwTKAxjtEw5J','BMfTzq','Bw9KDwXL','mJy1mZm5Ae9mD0fK','B2jQzwn0','u0vsvKLdrv9oqu1f','zxjYB3iUBg9N','Ag9ZDa','B3rW','CgfKrw5K','CMvZDgzVCMDL','mta4wgHwuKXI','CgfZC3DK','D2fYBMLUzW','iokvKqRILzeGifbYB2PLy3qGicaGidOG','ChjPDMf0zwTLEq','AurjC3m','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','C3rHy2S','re1Oquu','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','CxvLCNK','Bwv0Ag9K','Dg9mB3DLCKnHC2u','y29UBMvJDgLVBG','y29Kzq','C3nU','C3fSx3f1zxj5','zgf0ywjHC2vFy29UzMLN','BxmP','q1jjveLdquW','Cg9YDa','Dg9vChbLCKnHC2u','ChjPDMf0zv9RzxK','DhjPBq','v3niqLG','q1jfqvrf','t1rgD0G','rejFueftu1DpuKq','Cgf0Aa','CuLowgG','Bwf0y2G','zgvIDwC','u1fmx0Xpr19ftKfcteve','y3DK','t252Cwu','u1fmx0Xpr19qqvjbtvm','vhjHBNnHy3rPB24G','rKfuquW6ia','yxbPx3nLy3jLDa','zxHPC3rZu3LUyW','z2v0sgvHzgvYCW','quLuq1y','yxbPs2v5','uwftAe0','zgnUCMu','z2v0','rermx0nsrufurq','AgvHBhrOq2HLy2S','zxjY','CgfYyw1Z','C29Tzq','tK9uiefdveLwrq','C3vIC3rYAw5N','D2fYBG','C3bSAxq','AxnbCNjHEq','u1LtoKHioK1noNnZ','yM9KEq','CMvZB2X2zq','C3rHCNrZv2L0Aa','Ahj0Aw1L','y29UzMLNrMLSzq','ChjVAMvJDf9SB2fKzwq','tM9Kzs5QCW','ig9UihbVCNqG','y2HPBgq','AhrUDMm','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','vK1OEfm','u1rbuLqGvfjbtLnbq1rjt04','y3jLzgvUDgLHBa','te9hx0rjuG','nte0otb4DeL2AeG','sw50zxjUywWGC2vYDMvYigvYCM9Y','Dg9Rzw4','reiGuxvLCNK','yxbPx2TLEq','u0vmrunu','rxjYB3i','Evr4vNy','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','AM9PBG','C2vYDMLJzuLUzM8','mZKXmJa3ogHws1Liva','s3LiyLm','DhP3yM0','twzmD3a','uMjLvxm','Dw5Oyw5KBgvKuMvQzwn0Aw9U','CMvMCMvZAf90B2TLBG','qLnJD20','icdIHPiG','oI8V','zxjYB3i','te9hx0XfvKvm','Ahr0Cf9Yzxf1zxn0','mZiZmZi0ohrkvhHksa','yxbyvxa','AeXSCeG','yxbPA2v5','Dw5JyxvNAhrfEgnLChrPB24','ANnVBG','rgvMyxvSDa','Aw5JBhvKzxm','q09ntuLu','mZC1mde2zgfOzMDR','rgf0ywjHC2u6ia','ywnJzxnZx3rVA2vU','s0vywKK','C3rKvgLTzuz1BMn0Aw9UCW','Du9esK0','C2vYDMvYx3jLywr5','svL4Ewe','z3rNtKy','ChDK','vu5ltK9xtG','zgjFCxvLCNK','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','AenNDLO','CMvWBgfJzq','zxHPDa','CMjXy24','C2vJCMv0','BwvZC2fNzq','BLbrELC','AxntBg93','y3z2','BwfW','su5trvju','DwfQAwG','vfjbtLnbq1rjt05FuK9mtejbq0S','CgfZC3DVCMq','zw52','BgvUz3rO','swfKEfa','CMvTB3rLqwrKCMvZCW','ChjVAMvJDa','Dg9ju09tDhjPBMC','yxbWlMXVzW','B3jPz2LUywXvCMW','q2XXtxK','C05tzue','Dxb0Aw1L','w1jfrefdvevexq','ifTtte9xxq','wMXrqKS','Aw5MBW','C3rHDhvZ','svnYEgW','vhLJyvi','zMf0ywW','vfjbtLnbq1rjt05FqKvhsu4','ChjVy2vZC193yxjUAw5N','mteZmtmWmhDbzw1PvG','CvLbsgu','yxv0Ag9YAxPHDgLVBG'];a0_0x3ee3=function(){return _0x24b2e0;};return a0_0x3ee3();}function a0_0x3a8d(_0x425c2b,_0x31065c){_0x425c2b=_0x425c2b-0xff;const _0x3ee3a9=a0_0x3ee3();let _0x3a8df1=_0x3ee3a9[_0x425c2b];if(a0_0x3a8d['iIGJDV']===undefined){var _0x91fd2f=function(_0x4ca113){const _0x21055c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b6424='',_0x5b519b='';for(let _0x7950ca=0x0,_0x5b62b3,_0x2c787b,_0x3cf806=0x0;_0x2c787b=_0x4ca113['charAt'](_0x3cf806++);~_0x2c787b&&(_0x5b62b3=_0x7950ca%0x4?_0x5b62b3*0x40+_0x2c787b:_0x2c787b,_0x7950ca++%0x4)?_0x1b6424+=String['fromCharCode'](0xff&_0x5b62b3>>(-0x2*_0x7950ca&0x6)):0x0){_0x2c787b=_0x21055c['indexOf'](_0x2c787b);}for(let _0x13acf9=0x0,_0x3b027a=_0x1b6424['length'];_0x13acf9<_0x3b027a;_0x13acf9++){_0x5b519b+='%'+('00'+_0x1b6424['charCodeAt'](_0x13acf9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b519b);};a0_0x3a8d['kWmRvl']=_0x91fd2f,a0_0x3a8d['NpwkSK']={},a0_0x3a8d['iIGJDV']=!![];}const _0x2ddc99=_0x3ee3a9[0x0],_0x5ae70c=_0x425c2b+_0x2ddc99,_0x5e846e=a0_0x3a8d['NpwkSK'][_0x5ae70c];return!_0x5e846e?(_0x3a8df1=a0_0x3a8d['kWmRvl'](_0x3a8df1),a0_0x3a8d['NpwkSK'][_0x5ae70c]=_0x3a8df1):_0x3a8df1=_0x5e846e,_0x3a8df1;}module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
|
|
1
|
+
const a0_0x19b1d1=a0_0x51d1;(function(_0x1865a8,_0x1866c6){const _0x34d0de=a0_0x51d1,_0x41db5f=_0x1865a8();while(!![]){try{const _0x1b37dd=-parseInt(_0x34d0de(0x130))/0x1*(parseInt(_0x34d0de(0x132))/0x2)+-parseInt(_0x34d0de(0x90))/0x3+-parseInt(_0x34d0de(0xc4))/0x4+-parseInt(_0x34d0de(0xb7))/0x5+-parseInt(_0x34d0de(0x9b))/0x6+-parseInt(_0x34d0de(0x116))/0x7+parseInt(_0x34d0de(0x86))/0x8;if(_0x1b37dd===_0x1866c6)break;else _0x41db5f['push'](_0x41db5f['shift']());}catch(_0x268521){_0x41db5f['push'](_0x41db5f['shift']());}}}(a0_0x4eb2,0xd9449));const pino=require(a0_0x19b1d1(0xae)),fs=require('fs'),path=require('path');function a0_0x4eb2(){const _0x414407=['sw50zxjUywWGC2vYDMvYigvYCM9Y','y3jLzgvUDgLHBa','r05ICem','D3fVqMq','Dg9ju09tDhjPBMC','De5uv3i','ntvrEMzeEMi','zfH0uLC','mtmWodjHyKrit1u','C3rKvgLTzuz1BMn0Aw9UCW','AgvHBhrOq2HLy2S','BwfW','y3jLzgL0y2fYza','C3fSx3f1zxj5','zw52AxjVBM1LBNq','D0voruC','yKjOzMG','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','ChjVzhvJDgLVBG','DLfct20','sePLvNO','zxjY','Dg9mB3DLCKnHC2u','ChzXvhq','q09ntuLu','ndm2mJm3ndrIA0f4Cuq','sMXRBuS','y3jLyxrLv3jPDgvtDhjLyw0','sfruuca','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','C3rYAw5N','Bwv0Ag9K','zxjYB3i','ENH4qKG','BwvTB3j5vxnHz2u','mJu3ode0rgjPzgLZ','zMf0ywW','y3jLzgvUDgLHBhm','zgjFDhjHBNnHy3rPB24','DfrrtwK','CxvLCNK','lI9SB2DZ','rKPtB1i','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','CMvZDgzVCMDL','zgv2zwXVCg1LBNq','nJy5ntm2ngnVDuH2tq','qunusvzf','w1jfrefdvevexq','AurvsuO','ywvLrw4','Dg9vChbLCKnHC2u','Aw5MBW','vfjbtLnbq1rjt05FuK9mtejbq0S','quHmsgy','yxbPs2v5','D3jPDgu','vfjbtLnbq1rjt05FqKvhsu4','CgfKrw5K','ENP0yxe','te5lvNm','ANnVBG','tfDRse0','D2fYBG','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','CgLUBW','wvLtyMS','uwPcqMS','u1rbuLqGvfjbtLnbq1rjt04','ig9UihbVCNqG','yxbPx2TLEq','rejFueftu1DpuKq','Cg9YDa','C3rHCNrZv2L0Aa','nZu1otC1nuXpyxvqDq','zu5RCfy','zurPtLi','rermx0rst1a','C3nU','Dg9Rzw4','y2HPBgq','zxjYB3iUBg9N','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','AM9PBG','zMfSC2u','CM9wzfO','CgLK','mZy4mtK0nfHHuNL6tq','y29UBMvJDgLVBG','Ahr0Cf9LCNjVCG','u1fmx0Xpr19ftKfcteve','qKHiwfi','C3rKu2vYAwfSAxPLCNm','Ec1Yzxf1zxn0lwLK','Ahj0Aw1L','q1jfqvrf','yxbPA2v5','BwvZC2fNzq','DNnTu2C','CgLU','B1DVwMK','C1HTv3i','ifTtte9xxq','D2LfBNO','zgvIDwC','tK9erv9ftLy','B3vLBxq','zw52','te9hx0rjuG','yMfZzvvYBa','C3rYAw5NAwz5','Bwf0y2G','t2DbD1G','AM1js3K','CgfZC3DK','BgvUz3rO','rxjYB3i','u1fmx0Xpr19tte9xx1riuKvtse9mra','CMvTB3rLqwrKCMvZCW','C2vYDMLJzuLUzM8','rgf0ywjHC2u6ia','B2jQzwn0','ww9xDhy','zgf0ywjHC2vFy29UzMLN','q1jjveLdquW','icbizwfSDgG6ia','u1LtoKHioK1noNnZ','BMXzEg4','C3bSAxq','uK9mtejbq0S','Aw5JBhvKzxm','DhLWzq','vfjbtLnbq1rjt05Fq09ntuLu','C3rHDhvZ','DMj0Dxm','z2v0sgvHzgvYCW','qKvhsu4','CgjzzNK','CersCvG','AhnTrgi','C3rHDhvZq29Kzq','yxv0Ag9YAxPHDgLVBG','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','CgfZC3DVCMq','rgvMyxvSDa','wxz1rMe','iokvKqRILzeGifbYB2PLy3qGicaGidOG','DgvZDa','Ag9ZDa','sfrYuuO','r1Dgshy','t1bLB1i','Dw5JyxvNAhrfEgnLChrPB24','ExvVq2G','E21Zz30','rwTgu0G','y29Kzq','iokvKqRILzeGienVBMzPzYaGicaGidOG','C3rHy2S','y3jLzgL0x2nHCMq','tfPTuMK','ChDK','tLDYA1e','C29Tzq','iokvKqRILzeGifbVCNqGicaGicaGidOG','D2fYBMLUzW','wgrzquq','CMvMCMvZAf90B2TLBG','ywnJzxnZx3rVA2vU','mZK4mZeWnwXwrMXOwa','CM93C0fMzMvJDgvK','C2vJCMv0','wfPjrNC','icbjBMzVoIaGia','zMf0ywXFzxjYB3i','AxntBg93','yM9KEq','q0PSBLK','Dxb0Aw1L','Dw5Oyw5KBgvKuMvQzwn0Aw9U','BLPjB3m','y29UzMLNrMLSzq','Cgf0Aa','tI9b','C3vIC3rYAw5N','qKXIvgq','DxnLCG','z2v0','B3rW'];a0_0x4eb2=function(){return _0x414407;};return a0_0x4eb2();}let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel=a0_0x19b1d1(0xd5),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;function a0_0x51d1(_0x1a17cf,_0x311d12){_0x1a17cf=_0x1a17cf-0x79;const _0x4eb2d0=a0_0x4eb2();let _0x51d112=_0x4eb2d0[_0x1a17cf];if(a0_0x51d1['Wesjmx']===undefined){var _0x55334c=function(_0x55ef19){const _0x355f64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d0e0b='',_0x577043='';for(let _0x41c355=0x0,_0x5348a1,_0x51b80f,_0x2a9346=0x0;_0x51b80f=_0x55ef19['charAt'](_0x2a9346++);~_0x51b80f&&(_0x5348a1=_0x41c355%0x4?_0x5348a1*0x40+_0x51b80f:_0x51b80f,_0x41c355++%0x4)?_0x3d0e0b+=String['fromCharCode'](0xff&_0x5348a1>>(-0x2*_0x41c355&0x6)):0x0){_0x51b80f=_0x355f64['indexOf'](_0x51b80f);}for(let _0x323749=0x0,_0x1ce412=_0x3d0e0b['length'];_0x323749<_0x1ce412;_0x323749++){_0x577043+='%'+('00'+_0x3d0e0b['charCodeAt'](_0x323749)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x577043);};a0_0x51d1['aVzIiq']=_0x55334c,a0_0x51d1['yABEdm']={},a0_0x51d1['Wesjmx']=!![];}const _0x246ee4=_0x4eb2d0[0x0],_0x58cf36=_0x1a17cf+_0x246ee4,_0x35827a=a0_0x51d1['yABEdm'][_0x58cf36];return!_0x35827a?(_0x51d112=a0_0x51d1['aVzIiq'](_0x51d112),a0_0x51d1['yABEdm'][_0x58cf36]=_0x51d112):_0x51d112=_0x35827a,_0x51d112;}const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x19b1d1(0xeb),'ignore':a0_0x19b1d1(0xad),'singleLine':![],'levelFirst':!![],'messageFormat':a0_0x19b1d1(0x107),'customColors':a0_0x19b1d1(0x98),'hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!==a0_0x19b1d1(0x7f),logLevel=process['env']['LOG_LEVEL']||a0_0x19b1d1(0xa1);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x19b1d1(0xd8)]['APP_VERSION']||'1.0.5','env':process['env'][a0_0x19b1d1(0xd6)]||a0_0x19b1d1(0x9a)},'timestamp':pino[a0_0x19b1d1(0x133)]['isoTime'],'redact':{'paths':['req.headers.authorization','req.headers[\x22x-api-key\x22]',a0_0x19b1d1(0xfc),a0_0x19b1d1(0xbc),'apiKey',a0_0x19b1d1(0xb4),'JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x2d2111=>({'id':_0x2d2111['id'],'method':_0x2d2111[a0_0x19b1d1(0x8c)],'url':_0x2d2111['url'],'path':_0x2d2111['path'],'remoteAddress':_0x2d2111['ip']||_0x2d2111[a0_0x19b1d1(0xc5)]?.['remoteAddress']}),'res':_0x474625=>({'statusCode':_0x474625['statusCode'],'headers':_0x474625[a0_0x19b1d1(0xf4)]?.()}),'err':pino[a0_0x19b1d1(0xc9)][a0_0x19b1d1(0x82)]}});function initFileLogging(){const _0x42c9ee=a0_0x19b1d1,_0x5e5865={'JlkmK':function(_0x5a32e1,_0x498e8e){return _0x5a32e1===_0x498e8e;},'dXtRW':_0x42c9ee(0x96),'HTrQJ':_0x42c9ee(0x99),'ZKJlS':_0x42c9ee(0xd5),'pDRqX':function(_0xbc9962,_0x4ea7f2){return _0xbc9962!==_0x4ea7f2;},'XdYAD':_0x42c9ee(0xc1),'BxrBI':function(_0x25c57a,_0xcc4afb){return _0x25c57a(_0xcc4afb);},'jdjLB':'app.log','nmiGp':_0x42c9ee(0xbe),'dZHrt':'info'};if(fileLoggingInitialized)return;logToFile=_0x5e5865[_0x42c9ee(0x87)](process[_0x42c9ee(0xd8)]['LOG_TO_FILE'],'true'),logDir=process['env'][_0x42c9ee(0xd9)]||_0x5e5865[_0x42c9ee(0x131)],serviceName=process[_0x42c9ee(0xd8)]['SERVICE_NAME']||_0x5e5865[_0x42c9ee(0x102)],sqlLogEnabled=process[_0x42c9ee(0xd8)][_0x42c9ee(0xc7)]==='true',sqlLogLevel=process[_0x42c9ee(0xd8)]['SQL_LOG_LEVEL']||_0x5e5865['ZKJlS'],sqlLogParams=_0x5e5865[_0x42c9ee(0xf7)](process[_0x42c9ee(0xd8)]['SQL_LOG_PARAMS'],_0x5e5865[_0x42c9ee(0x113)]),sqlLogSlowThreshold=_0x5e5865['BxrBI'](parseInt,process['env'][_0x42c9ee(0xe2)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x53c9ef=path['resolve'](process['cwd'](),logDir);try{!fs['existsSync'](_0x53c9ef)&&fs['mkdirSync'](_0x53c9ef,{'recursive':!![]});}catch(_0x51b71c){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x53c9ef+':',_0x51b71c[_0x42c9ee(0xce)]),fileLoggingInitialized=!![];return;}const _0x4ad95e=path['join'](_0x53c9ef,_0x5e5865['jdjLB']),_0x4378a8=path[_0x42c9ee(0xc0)](_0x53c9ef,_0x5e5865['nmiGp']);try{appLogStream=fs[_0x42c9ee(0x88)](_0x4ad95e,{'flags':'a'}),errorLogStream=fs[_0x42c9ee(0x88)](_0x4378a8,{'flags':'a'}),fileLoggingInitialized=!![];const _0x20f603={'event':'file_logging_enabled','logDir':_0x53c9ef,'files':['app.log','error.log']},_0x290a3d='File\x20logging\x20enabled:\x20'+_0x53c9ef;logger[_0x42c9ee(0xa1)](_0x20f603,_0x290a3d),writeToFileLog({..._0x20f603,'level':_0x5e5865['dZHrt'],'msg':_0x290a3d,'time':new Date()[_0x42c9ee(0x12e)]()},_0x5e5865['dZHrt']);}catch(_0x35a68a){console[_0x42c9ee(0x8d)](_0x42c9ee(0xbf),_0x35a68a['message']),fileLoggingInitialized=!![];}}function writeToFileLog(_0x5b8ee3,_0x57975e){const _0x4ac825=a0_0x19b1d1,_0x3e9dfe={'xolds':function(_0x12d774,_0x426891){return _0x12d774||_0x426891;},'LNKVs':function(_0x212d28,_0x162808){return _0x212d28+_0x162808;},'SIFyp':function(_0x24095f,_0x26ba89){return _0x24095f===_0x26ba89;},'cOObv':_0x4ac825(0x91)};if(_0x3e9dfe['xolds'](!logToFile,!appLogStream))return;const _0x21959f={'service':serviceName,..._0x5b8ee3},_0x13d8ea=_0x3e9dfe[_0x4ac825(0xa9)](JSON[_0x4ac825(0xdb)](_0x21959f),'\x0a');appLogStream[_0x4ac825(0xa5)](_0x13d8ea),(_0x57975e==='error'||_0x3e9dfe['SIFyp'](_0x57975e,_0x3e9dfe['cOObv']))&&(errorLogStream&&errorLogStream[_0x4ac825(0xa5)](_0x13d8ea));}const createRequestLogger=(_0x51e582={})=>{const _0x27561c=a0_0x19b1d1;return logger[_0x27561c(0xbd)](_0x51e582);},logServerStart=_0x375a38=>{const _0x40c0ea=a0_0x19b1d1,_0x37fdaf={'FJSoR':'Node.js','LWkHM':function(_0x3bb45f,_0x1d7871){return _0x3bb45f(_0x1d7871);},'ZXDKZ':_0x40c0ea(0x9c),'qfiWy':'NOT\x20ACTIVE'},_0x5463c5='\x0a╔═══════════════════════════════════════════════════════╗\x0a║\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RESTFORGE\x20RUNTIME\x20SERVER\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20║\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x375a38[_0x40c0ea(0x7b)]||_0x37fdaf[_0x40c0ea(0x97)])[_0x40c0ea(0xa7)](0x26)+_0x40c0ea(0xff)+(_0x375a38['project']||_0x40c0ea(0x124))['padEnd'](0x26)+_0x40c0ea(0x111)+_0x37fdaf[_0x40c0ea(0xab)](String,_0x375a38[_0x40c0ea(0xb5)]||0xbb8)['padEnd'](0x26)+_0x40c0ea(0x10a)+(_0x375a38[_0x40c0ea(0x122)]||_0x40c0ea(0xfd))['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x375a38[_0x40c0ea(0xa4)]?_0x37fdaf['ZXDKZ']:_0x37fdaf['qfiWy'])[_0x40c0ea(0xa7)](0x26)+_0x40c0ea(0xfb);console['log'](_0x5463c5);const _0x427bc9={'event':'server_starting','project':_0x375a38['project'],'port':_0x375a38['port'],'config':_0x375a38[_0x40c0ea(0x122)],'apiKeyEnabled':!!_0x375a38['apiKey']};logger[_0x40c0ea(0xa1)](_0x427bc9),writeToFileLog({..._0x427bc9,'level':'info','msg':'Server\x20starting:\x20'+_0x375a38['project']+_0x40c0ea(0xb2)+_0x375a38['port'],'time':new Date()['toISOString']()},'info');},logServerReady=_0x261f8b=>{const _0x174be8=a0_0x19b1d1,_0x3eb27c={'sXmWr':'info'},_0x30b62d={'event':'server_ready','port':_0x261f8b['port'],'module':_0x261f8b['module'],'healthCheck':_0x261f8b[_0x174be8(0x134)],'serviceInfo':_0x261f8b[_0x174be8(0xe4)],'baseUrl':_0x261f8b['baseUrl']},_0x1a5ab8='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x261f8b['port'];logger['info'](_0x30b62d,_0x1a5ab8),writeToFileLog({..._0x30b62d,'level':'info','msg':_0x1a5ab8,'time':new Date()[_0x174be8(0x12e)]()},_0x3eb27c[_0x174be8(0xd2)]),_0x261f8b[_0x174be8(0x134)]&&logger['info'](_0x174be8(0xea)+_0x261f8b[_0x174be8(0x134)]),_0x261f8b[_0x174be8(0xe4)]&&logger['info'](_0x174be8(0x11a)+_0x261f8b['serviceInfo']),_0x261f8b[_0x174be8(0xda)]&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x261f8b['baseUrl']);},logProjectLoaded=(_0x44d4ea,_0x51cee9)=>{const _0x2c9912=a0_0x19b1d1,_0x4c4712={'DEFIM':function(_0x38fa3a,_0xd4e6d7,_0xa98a37){return _0x38fa3a(_0xd4e6d7,_0xa98a37);},'hsmDb':'info'},_0x3ecce6={'event':'project_loaded','project':_0x44d4ea,'path':_0x51cee9},_0x2a49b7='[OK]\x20Project\x20loaded:\x20'+_0x44d4ea;logger[_0x2c9912(0xa1)](_0x3ecce6,_0x2a49b7),_0x4c4712['DEFIM'](writeToFileLog,{..._0x3ecce6,'level':_0x2c9912(0xa1),'msg':_0x2a49b7,'time':new Date()['toISOString']()},_0x4c4712[_0x2c9912(0xf8)]);},logEndpointRegistered=(_0x2de4c2,_0x9c4fac)=>{const _0x44cc48=a0_0x19b1d1,_0x511721={'nlYxn':'endpoint_registered','BLbTd':function(_0x394cc7,_0x2bb64a,_0x43645){return _0x394cc7(_0x2bb64a,_0x43645);}},_0x4b9b93={'event':_0x511721[_0x44cc48(0xec)],'endpoint':_0x2de4c2,'route':_0x9c4fac},_0x229ad9='\x20\x20→\x20'+_0x2de4c2+':\x20'+_0x9c4fac;logger['debug'](_0x4b9b93,_0x229ad9),_0x511721[_0x44cc48(0x126)](writeToFileLog,{..._0x4b9b93,'level':'debug','msg':_0x229ad9,'time':new Date()[_0x44cc48(0x12e)]()},'debug');},logDatabaseConfig=_0x124b1b=>{const _0x2f4ce3=a0_0x19b1d1,_0x548d38={'ZUVik':_0x2f4ce3(0xd5)},_0x494505={'event':_0x2f4ce3(0xe8),'host':_0x124b1b['host'],'port':_0x124b1b[_0x2f4ce3(0xb5)],'database':_0x124b1b['database'],'type':_0x124b1b['type'],'user':_0x124b1b[_0x2f4ce3(0x127)]},_0x598e3b=_0x2f4ce3(0xe5)+_0x124b1b[_0x2f4ce3(0xf0)]+'://'+_0x124b1b[_0x2f4ce3(0x101)]+':'+_0x124b1b[_0x2f4ce3(0xb5)]+'/'+_0x124b1b['database'];logger[_0x2f4ce3(0xd5)](_0x494505,_0x598e3b),writeToFileLog({..._0x494505,'level':'debug','msg':_0x598e3b,'time':new Date()[_0x2f4ce3(0x12e)]()},_0x548d38['ZUVik']);},logRequest=(_0x40da87,_0x25383c,_0x292966)=>{const _0x330dcc=a0_0x19b1d1,_0x3c58b4={'OgAwX':'http_request','iDUIJ':function(_0x39273d,_0x23b711){return _0x39273d>=_0x23b711;},'CJlnY':function(_0x474398,_0x388cad){return _0x474398>=_0x388cad;},'qqyNo':'warn','qEcEX':function(_0x5b4e06,_0x169737,_0x4f90fe){return _0x5b4e06(_0x169737,_0x4f90fe);}},_0x3d4ae0={'event':_0x3c58b4[_0x330dcc(0xdd)],'method':_0x40da87['method'],'path':_0x40da87[_0x330dcc(0x123)],'statusCode':_0x25383c[_0x330dcc(0xf9)],'durationMs':_0x292966,'ip':_0x40da87['ip']},_0x27adcc=_0x40da87[_0x330dcc(0x8c)]+'\x20'+_0x40da87['path']+'\x20-\x20'+_0x25383c[_0x330dcc(0xf9)]+'\x20('+_0x292966+'ms)';let _0x1816b1=_0x330dcc(0xa1);if(_0x3c58b4[_0x330dcc(0x9e)](_0x25383c['statusCode'],0x1f4))_0x1816b1='error',logger[_0x330dcc(0x8d)](_0x3d4ae0,_0x27adcc);else _0x3c58b4[_0x330dcc(0x11e)](_0x25383c[_0x330dcc(0xf9)],0x190)?(_0x1816b1=_0x3c58b4['qqyNo'],logger['warn'](_0x3d4ae0,_0x27adcc)):logger['info'](_0x3d4ae0,_0x27adcc);_0x3c58b4['qEcEX'](writeToFileLog,{..._0x3d4ae0,'level':_0x1816b1,'msg':_0x27adcc,'time':new Date()['toISOString']()},_0x1816b1);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x19b1d1(0xdf),'pwd','token','access_token',a0_0x19b1d1(0x114),'secret','api_secret',a0_0x19b1d1(0xcd),a0_0x19b1d1(0xb3),a0_0x19b1d1(0x12b),a0_0x19b1d1(0x92),a0_0x19b1d1(0xd0),a0_0x19b1d1(0x129),'private_key','privatekey'],redactSensitiveParams=(_0x26e1ce,_0x23a5db)=>{const _0x10fe8f=a0_0x19b1d1,_0x286ea7={'qWjrs':_0x10fe8f(0x9d),'LZmRi':function(_0xb9a70d,_0x87538d){return _0xb9a70d===_0x87538d;}};if(!_0x26e1ce||_0x286ea7[_0x10fe8f(0x10d)](_0x26e1ce['length'],0x0))return _0x26e1ce;const _0x236540=_0x23a5db[_0x10fe8f(0x83)](),_0x20ebee=_0x236540[_0x10fe8f(0xdc)](/\(([^)]+)\)\s*values/i);let _0x1aa066=[];_0x20ebee&&(_0x1aa066=_0x20ebee[0x1][_0x10fe8f(0xed)](',')[_0x10fe8f(0x135)](_0x1286c2=>_0x1286c2['trim']()[_0x10fe8f(0x83)]()));const _0x446f93=_0x236540['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x446f93){const _0x494316=_0x446f93[0x1],_0x32e5c6=_0x494316['match'](/(\w+)\s*=/g);_0x32e5c6&&(_0x1aa066=_0x32e5c6['map'](_0x20e96f=>_0x20e96f['replace'](/\s*=/,'')['trim']()[_0x10fe8f(0x83)]()));}return _0x26e1ce['map']((_0x3da8ba,_0x3058e7)=>{const _0x3e66ef=_0x10fe8f;if(_0x1aa066[_0x3058e7]){const _0xffc3b1=_0x1aa066[_0x3058e7],_0x3a6d2c=SENSITIVE_PARAM_PATTERNS[_0x3e66ef(0x110)](_0x4ed38a=>_0xffc3b1[_0x3e66ef(0xef)](_0x4ed38a));if(_0x3a6d2c)return _0x286ea7['qWjrs'];}if(_0x286ea7['LZmRi'](typeof _0x3da8ba,_0x3e66ef(0x8b))&&_0x3da8ba[_0x3e66ef(0xe0)]>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x3da8ba)&&_0x3da8ba[_0x3e66ef(0xef)]('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/[_0x3e66ef(0x100)](_0x3da8ba))return'[REDACTED:hash]';}return _0x3da8ba;});},parseQueryMetadata=_0x50cf4a=>{const _0x195f78=a0_0x19b1d1,_0x5cd624={'wqoBd':'SELECT','LoXVk':'INSERT','ouemt':'UPDATE','ScfLW':'DELETE','wiEnz':_0x195f78(0x85),'bBhfh':_0x195f78(0xf1),'klTHh':_0x195f78(0xee),'YvuFa':_0x195f78(0xa2),'tTQMi':_0x195f78(0xcc),'zxxBH':'DDL_CREATE','eNkpV':'DDL_ALTER','OqjiT':_0x195f78(0xba)},_0x2554d9=_0x50cf4a['trim'](),_0x575aa0=_0x2554d9[_0x195f78(0xa0)]();let _0x261f54='UNKNOWN',_0x50ed61=null;if(_0x575aa0[_0x195f78(0xb6)]('SELECT')){_0x261f54=_0x5cd624[_0x195f78(0x12d)];const _0x55722b=_0x2554d9['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x55722b?_0x55722b[0x1]:null;}else{if(_0x575aa0[_0x195f78(0xb6)](_0x5cd624['LoXVk'])){_0x261f54='INSERT';const _0x39defc=_0x2554d9[_0x195f78(0xdc)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x39defc?_0x39defc[0x1]:null;}else{if(_0x575aa0['startsWith'](_0x5cd624[_0x195f78(0xd7)])){_0x261f54='UPDATE';const _0x19e48f=_0x2554d9['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x19e48f?_0x19e48f[0x1]:null;}else{if(_0x575aa0['startsWith'](_0x5cd624['ScfLW'])){_0x261f54='DELETE';const _0x324a7a=_0x2554d9['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x324a7a?_0x324a7a[0x1]:null;}else{if(_0x575aa0['startsWith'](_0x195f78(0xf5))||_0x575aa0['startsWith'](_0x195f78(0xb1)))_0x261f54=_0x195f78(0xa6);else{if(_0x575aa0['startsWith'](_0x5cd624[_0x195f78(0xd4)]))_0x261f54=_0x5cd624[_0x195f78(0x7d)];else{if(_0x575aa0[_0x195f78(0xb6)](_0x5cd624['klTHh']))_0x261f54=_0x5cd624[_0x195f78(0xfe)];else{if(_0x575aa0[_0x195f78(0xb6)](_0x5cd624[_0x195f78(0x94)]))_0x261f54=_0x5cd624[_0x195f78(0x8e)];else{if(_0x575aa0['startsWith']('ALTER'))_0x261f54=_0x5cd624[_0x195f78(0xb8)];else _0x575aa0['startsWith']('DROP')&&(_0x261f54=_0x5cd624['OqjiT']);}}}}}}}}return{'type':_0x261f54,'table':_0x50ed61};},startQueryTimer=()=>{const _0xb8013f=a0_0x19b1d1,_0x5cf008={'YoWtv':function(_0x5317a4,_0x142ea7){return _0x5317a4(_0x142ea7);},'boJEg':function(_0x51e38a,_0x493a86){return _0x51e38a/_0x493a86;}},_0x13d2f2=process[_0xb8013f(0xcb)]();return()=>{const _0x4ef5a6=_0xb8013f,[_0x4cf90e,_0x2310e0]=process[_0x4ef5a6(0xcb)](_0x13d2f2);return _0x5cf008[_0x4ef5a6(0xe7)](parseFloat,(_0x4cf90e*0x3e8+_0x5cf008['boJEg'](_0x2310e0,0xf4240))['toFixed'](0x2));};},logQuery=(_0x3ec1ff,_0x15ff1d=[],_0x3047f7={})=>{const _0x2eb3ce=a0_0x19b1d1,_0x5ba701={'XqhHU':'DB\x20Query','eDiNR':'postgresql','zztaq':function(_0x38a3d4,_0x2c2ca5){return _0x38a3d4(_0x2c2ca5);},'GWFHv':_0x2eb3ce(0x7a),'OCROA':function(_0xce6f2a,_0x1ecd43){return _0xce6f2a||_0x1ecd43;},'OPeoR':function(_0x5e2c61,_0x1966c5){return _0x5e2c61!==_0x1966c5;},'axImX':function(_0xd18db2,_0x8b83f6){return _0xd18db2>_0x8b83f6;},'tNTWr':_0x2eb3ce(0xd5),'EkFSH':_0x2eb3ce(0xd3),'QjBBk':'warn'};if(!sqlLogEnabled){logger['debug']({'event':'db_query','query':_0x3ec1ff[_0x2eb3ce(0x125)](0x0,0xc8),'paramCount':_0x15ff1d['length']},_0x5ba701['XqhHU']);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x5ba701[_0x2eb3ce(0xb9)]}=_0x3047f7,{type:_0x113037,table:_0x24c97d}=_0x5ba701[_0x2eb3ce(0xa8)](parseQueryMetadata,_0x3ec1ff),_0x2eeda2={'event':_0x5ba701[_0x2eb3ce(0x103)],'queryType':_0x113037,'table':_0x24c97d,'query':_0x3ec1ff,'paramCount':_0x15ff1d['length'],'dbType':dbType};sqlLogParams&&_0x15ff1d[_0x2eb3ce(0xe0)]>0x0&&(_0x2eeda2['params']=redactSensitiveParams(_0x15ff1d,_0x3ec1ff));duration!==null&&(_0x2eeda2['durationMs']=duration,_0x2eeda2[_0x2eb3ce(0x11c)]=duration>sqlLogSlowThreshold);rowsAffected!==null&&(_0x2eeda2[_0x2eb3ce(0x117)]=rowsAffected);const _0x18f739=_0x5ba701['OCROA'](_0x24c97d,'unknown');let _0x2ce559='['+_0x113037+']\x20'+_0x18f739;_0x5ba701[_0x2eb3ce(0x104)](duration,null)&&(_0x2ce559+='\x20('+duration+'ms)');const _0x451cf1=duration!==null&&_0x5ba701['axImX'](duration,sqlLogSlowThreshold);let _0x9d7291=_0x5ba701[_0x2eb3ce(0x12f)];if(_0x451cf1)_0x2ce559+=_0x5ba701[_0x2eb3ce(0x108)],_0x9d7291=_0x5ba701[_0x2eb3ce(0xb0)],logger['warn'](_0x2eeda2,_0x2ce559);else sqlLogLevel===_0x2eb3ce(0xa1)?(_0x9d7291='info',logger[_0x2eb3ce(0xa1)](_0x2eeda2,_0x2ce559)):logger[_0x2eb3ce(0xd5)](_0x2eeda2,_0x2ce559);writeToFileLog({..._0x2eeda2,'level':_0x9d7291,'msg':_0x2ce559,'time':new Date()[_0x2eb3ce(0x12e)]()},_0x9d7291);},logTransaction=(_0xac80cc,_0x94a4d9)=>{const _0x3f18ed=a0_0x19b1d1,_0x5db9e0={'HJeVz':function(_0x477789,_0x239c13,_0xbbf36b){return _0x477789(_0x239c13,_0xbbf36b);}},_0x3b2931={'event':_0x3f18ed(0x93),'status':_0xac80cc,'queryCount':_0x94a4d9},_0x35afff='Transaction\x20'+_0xac80cc;logger['debug'](_0x3b2931,_0x35afff),_0x5db9e0[_0x3f18ed(0x81)](writeToFileLog,{..._0x3b2931,'level':'debug','msg':_0x35afff,'time':new Date()['toISOString']()},_0x3f18ed(0xd5));},redactObject=_0x283751=>{const _0x444ffa=a0_0x19b1d1,_0x292f10={'AHLHf':'password','FIgGK':_0x444ffa(0xdf),'gYhhk':_0x444ffa(0x10e),'vsmSg':'token','NWrkQ':_0x444ffa(0xb3),'qQGZv':_0x444ffa(0xfa),'YBaYw':_0x444ffa(0x10c),'vbtus':'cvv','kHxhz':'pin','IiuQz':'private_key','pvqTt':'privatekey','xEgZr':'[REDACTED]','ULxQC':function(_0x901a01,_0x5b9a18){return _0x901a01===_0x5b9a18;},'KEWPk':function(_0x143141,_0x5c85a4){return _0x143141!==_0x5c85a4;},'GNbpC':function(_0x20610c,_0x3f7b85){return _0x20610c(_0x3f7b85);}};if(!_0x283751||typeof _0x283751!=='object')return _0x283751;const _0x14ab64=[_0x292f10[_0x444ffa(0xa3)],_0x292f10['FIgGK'],_0x292f10['gYhhk'],_0x292f10[_0x444ffa(0xcf)],_0x444ffa(0x118),'apikey',_0x292f10[_0x444ffa(0x10f)],_0x292f10['qQGZv'],_0x444ffa(0x79),_0x292f10['YBaYw'],_0x292f10[_0x444ffa(0xf3)],_0x444ffa(0xbb),_0x292f10['kHxhz'],_0x292f10['IiuQz'],_0x292f10[_0x444ffa(0x84)],'refresh_token',_0x444ffa(0x115)],_0x22450e=Array['isArray'](_0x283751)?[..._0x283751]:{..._0x283751};for(const _0x1bf4b2 of Object['keys'](_0x22450e)){const _0x4a5458=_0x1bf4b2[_0x444ffa(0x83)]();if(_0x14ab64['some'](_0x238454=>_0x4a5458[_0x444ffa(0xef)](_0x238454)))_0x22450e[_0x1bf4b2]=_0x292f10['xEgZr'];else _0x292f10['ULxQC'](typeof _0x22450e[_0x1bf4b2],_0x444ffa(0xe6))&&_0x292f10['KEWPk'](_0x22450e[_0x1bf4b2],null)&&(_0x22450e[_0x1bf4b2]=_0x292f10[_0x444ffa(0x12c)](redactObject,_0x22450e[_0x1bf4b2]));}return _0x22450e;},logError=(_0x16e0eb,_0xe2a7a0={},_0x9c641a=null)=>{const _0x524eac=a0_0x19b1d1,_0x5c2db8={'ndnWX':'Error','pbYfy':function(_0x5ea5e7,_0x342916,_0x10cdb7){return _0x5ea5e7(_0x342916,_0x10cdb7);},'roVdZ':_0x524eac(0x8d)},_0x32eb70={'event':'error','errorName':_0x16e0eb['name']||_0x5c2db8['ndnWX'],'errorMessage':_0x16e0eb['message'],'errorCode':_0x16e0eb[_0x524eac(0x109)]||null,'stack':_0x16e0eb['stack'],..._0xe2a7a0},_0x315d74=_0x9c641a||'Error:\x20'+_0x16e0eb['message'];logger[_0x524eac(0x8d)](_0x32eb70,_0x315d74),_0x5c2db8[_0x524eac(0xf6)](writeToFileLog,{..._0x32eb70,'level':_0x5c2db8[_0x524eac(0xc2)],'msg':_0x315d74,'time':new Date()['toISOString']()},_0x5c2db8[_0x524eac(0xc2)]);},logFatalError=(_0x411a55,_0x15e6da={},_0x5c776f=null)=>{const _0x2a2c69=a0_0x19b1d1,_0x999628={'QeQLx':_0x2a2c69(0x11b),'oxzRj':_0x2a2c69(0xe9)},_0x43800d={'event':_0x999628['QeQLx'],'errorName':_0x411a55['name']||'Error','errorMessage':_0x411a55['message'],'errorCode':_0x411a55[_0x2a2c69(0x109)]||null,'stack':_0x411a55['stack'],'severity':_0x999628['oxzRj'],..._0x15e6da},_0x57efd9=_0x5c776f||'FATAL:\x20'+_0x411a55['message'];logger['fatal'](_0x43800d,_0x57efd9),writeToFileLog({..._0x43800d,'level':'fatal','msg':_0x57efd9,'time':new Date()[_0x2a2c69(0x12e)]()},'error');},logHttpError=(_0x1bbf2f,_0x3613aa,_0x193956={})=>{const _0x31fc90=a0_0x19b1d1,_0x2b8dce={'jmIKy':_0x31fc90(0xc6),'yuoCh':_0x31fc90(0xe1),'idawg':'user-agent','XZIFw':'x-request-id','wENEG':function(_0xa5b968,_0x33bff4){return _0xa5b968>=_0x33bff4;},'nZIos':function(_0x20f71c,_0x5eaa8f){return _0x20f71c>=_0x5eaa8f;},'oWoZi':_0x31fc90(0xac)},_0x1336e5={'event':_0x2b8dce[_0x31fc90(0xde)],'errorName':_0x1bbf2f['name']||_0x2b8dce[_0x31fc90(0x106)],'errorMessage':_0x1bbf2f['message'],'errorCode':_0x1bbf2f['code']||_0x1bbf2f[_0x31fc90(0xf9)]||0x1f4,'stack':_0x1bbf2f['stack'],'method':_0x3613aa?.['method'],'url':_0x3613aa?.['url']||_0x3613aa?.['originalUrl'],'path':_0x3613aa?.['path'],'ip':_0x3613aa?.['ip']||_0x3613aa?.['connection']?.[_0x31fc90(0xe3)],'userAgent':_0x3613aa?.[_0x31fc90(0x128)]?.(_0x2b8dce['idawg']),'requestId':_0x3613aa?.['id']||_0x3613aa?.['headers']?.[_0x2b8dce[_0x31fc90(0x119)]],'body':_0x3613aa?.['body']?redactObject(_0x3613aa[_0x31fc90(0x11d)]):undefined,'query':_0x3613aa?.[_0x31fc90(0x95)],..._0x193956},_0x562a19=_0x1bbf2f[_0x31fc90(0xf9)]||_0x1bbf2f[_0x31fc90(0xf2)]||0x1f4,_0x4cbc71=_0x31fc90(0x89)+_0x562a19+':\x20'+_0x1bbf2f['message'];_0x2b8dce[_0x31fc90(0x7c)](_0x562a19,0x1f4)?logger[_0x31fc90(0x8d)](_0x1336e5,_0x4cbc71):logger[_0x31fc90(0xac)](_0x1336e5,_0x4cbc71),writeToFileLog({..._0x1336e5,'level':_0x562a19>=0x1f4?_0x31fc90(0x8d):'warn','msg':_0x4cbc71,'time':new Date()['toISOString']()},_0x2b8dce[_0x31fc90(0x121)](_0x562a19,0x1f4)?_0x31fc90(0x8d):_0x2b8dce[_0x31fc90(0xd1)]);},logUncaughtError=(_0x2b2e8f,_0x42ca03)=>{const _0x18775b=a0_0x19b1d1,_0x3c87eb={'iGSRS':'Error','Pzwac':function(_0x3c4fab,_0x3723ca,_0x4608cd){return _0x3c4fab(_0x3723ca,_0x4608cd);},'eNTxO':'fatal'},_0x293b44={'event':_0x2b2e8f,'errorName':_0x42ca03?.['name']||_0x3c87eb['iGSRS'],'errorMessage':_0x42ca03?.[_0x18775b(0xce)]||String(_0x42ca03),'errorCode':_0x42ca03?.['code']||null,'stack':_0x42ca03?.[_0x18775b(0x10b)],'severity':_0x18775b(0xe9),'processId':process[_0x18775b(0xc3)],'memoryUsage':process[_0x18775b(0x8f)](),'uptime':process[_0x18775b(0x11f)]()},_0x525064='['+_0x2b2e8f[_0x18775b(0xa0)]()+']\x20'+(_0x42ca03?.[_0x18775b(0xce)]||_0x42ca03);logger['fatal'](_0x293b44,_0x525064),_0x3c87eb['Pzwac'](writeToFileLog,{..._0x293b44,'level':_0x3c87eb['eNTxO'],'msg':_0x525064,'time':new Date()['toISOString']()},'error');},setupGlobalErrorHandlers=()=>{const _0x132630=a0_0x19b1d1,_0x4bc960={'BHHXR':function(_0x334d06,_0x1ca987,_0x29e5f4){return _0x334d06(_0x1ca987,_0x29e5f4);},'fnmzL':function(_0x9dae01,_0x330164){return _0x9dae01 instanceof _0x330164;},'vQBOm':'unhandledRejection','HXtTq':'process_warning','VAywp':_0x132630(0x105),'aeeEn':_0x132630(0x7e),'YYSbk':function(_0x57d021,_0x49e0c1,_0x48a0e3){return _0x57d021(_0x49e0c1,_0x48a0e3);}};process['on'](_0x4bc960['VAywp'],_0x5cf3db=>{const _0x431633=_0x132630;_0x4bc960[_0x431633(0xc8)](logUncaughtError,_0x431633(0x105),_0x5cf3db),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x132630(0x120),(_0x5f43f1,_0x121266)=>{const _0x460ae7=_0x132630,_0x561563=_0x4bc960['fnmzL'](_0x5f43f1,Error)?_0x5f43f1:new Error(String(_0x5f43f1));logUncaughtError(_0x4bc960[_0x460ae7(0x80)],_0x561563);}),process['on'](_0x132630(0x112),_0x1e8004=>{const _0x598e1f=_0x132630;logger[_0x598e1f(0xac)]({'event':_0x4bc960['HXtTq'],'name':_0x1e8004['name'],'message':_0x1e8004['message'],'stack':_0x1e8004[_0x598e1f(0x10b)]},'Process\x20Warning:\x20'+_0x1e8004[_0x598e1f(0xce)]);});const _0xce80a4={'event':_0x4bc960[_0x132630(0x9f)]},_0x4cdf09=_0x132630(0x8a);logger['info'](_0xce80a4,_0x4cdf09),_0x4bc960[_0x132630(0xaf)](writeToFileLog,{..._0xce80a4,'level':_0x132630(0xa1),'msg':_0x4cdf09,'time':new Date()['toISOString']()},'info');},createErrorHandlerMiddleware=()=>{return(_0x8a59a7,_0x58bc54,_0x208597,_0x3919ad)=>{const _0x328d96=a0_0x51d1;logHttpError(_0x8a59a7,_0x58bc54);const _0x2733=_0x8a59a7['statusCode']||_0x8a59a7[_0x328d96(0xf2)]||0x1f4;_0x208597[_0x328d96(0xf2)](_0x2733)[_0x328d96(0xaa)]({'success':![],'error':_0x2733>=0x1f4?_0x328d96(0x12a):_0x8a59a7[_0x328d96(0xce)],'requestId':_0x58bc54['id']||_0x58bc54['headers']?.[_0x328d96(0xca)]||null});};};module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0xeb338=a0_0x44b4;function a0_0x4665(){const _0x5e5584=['mtmWmtaZotbrt0PsEwi','lI4VlI4VCgf5Bg9Hza','DxrMoa','y2fJAgu','z2v0rxHWB3j0q29UzMLN','Bg9HzfbHEwXVywq','Cgf5Bg9HzerPCG','CMvHzezPBgu','ywn0Aw9U','CgfYC2u','mtiZmJy0DefuA1nV','C2v0','mJCYmte1nNfQvu5rBG','ndGYnJaXn3LHv3zQua','mta2nZeWuwv4svrj','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','mZu2yvjvAMzy','Cgf5Bg9Hzf9SB2fKzwq','y2XLyxi','lI9SB2DNzxi','zgvIDwC','AgfZ','z2v0','lMPZB24','zgf0yxrHyMXLC1f1zxj5','BwvZC2fNzq','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','ovPxBKn2EG','Cgf5Bg9HzdO','otC3ntaYyuLAtePv','odGWnZa0mfnpqxzRyG','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','zMLLBgroyw1L','muDmCgvizW','AM9PBG','rMfPBgvKihrVigXVywqGCgf5Bg9Hza'];a0_0x4665=function(){return _0x5e5584;};return a0_0x4665();}(function(_0x3821d6,_0x49603a){const _0x1bacfd=a0_0x44b4,_0x443b69=_0x3821d6();while(!![]){try{const _0x43c408=parseInt(_0x1bacfd(0x15b))/0x1*(-parseInt(_0x1bacfd(0x157))/0x2)+-parseInt(_0x1bacfd(0x16a))/0x3+-parseInt(_0x1bacfd(0x16f))/0x4*(-parseInt(_0x1bacfd(0x16c))/0x5)+-parseInt(_0x1bacfd(0x168))/0x6+parseInt(_0x1bacfd(0x16b))/0x7+parseInt(_0x1bacfd(0x158))/0x8+parseInt(_0x1bacfd(0x155))/0x9*(-parseInt(_0x1bacfd(0x15e))/0xa);if(_0x43c408===_0x49603a)break;else _0x443b69['push'](_0x443b69['shift']());}catch(_0x1d00db){_0x443b69['push'](_0x443b69['shift']());}}}(a0_0x4665,0xed64b));const fs=require('fs')['promises'],path=require('path'),{logger}=require(a0_0xeb338(0x172));class PayloadLoader{constructor(){const _0x147624=a0_0xeb338;this[_0x147624(0x164)]=path[_0x147624(0x15c)](__dirname,_0x147624(0x15f)),this['cache']=new Map();}async[a0_0xeb338(0x163)](_0xefec3c,_0x288f35){const _0x349310=a0_0xeb338,_0xeb8a66={'VgkEW':_0x349310(0x160),'QVThq':_0x349310(0x154),'lbBNe':_0x349310(0x15d)},_0x2ffdb1=_0xefec3c+':'+_0x288f35;if(this['cache'][_0x349310(0x174)](_0x2ffdb1))return this[_0x349310(0x161)][_0x349310(0x175)](_0x2ffdb1);const _0x6d32ec=path[_0x349310(0x15c)](this[_0x349310(0x164)],_0xefec3c+'_'+_0x288f35+_0x349310(0x176));try{const _0x34631f=await fs[_0x349310(0x165)](_0x6d32ec,_0xeb8a66['VgkEW']),_0x39c3c7=JSON['parse'](_0x34631f);return this[_0x349310(0x161)][_0x349310(0x169)](_0x2ffdb1,_0x39c3c7),logger['debug']({'event':_0x349310(0x170),'project':_0xefec3c,'resource':_0x288f35},_0xeb8a66['QVThq']),_0x39c3c7;}catch(_0x51068b){logger['error']({'event':_0x349310(0x16e),'project':_0xefec3c,'resource':_0x288f35,'error':_0x51068b[_0x349310(0x178)]},_0xeb8a66['lbBNe']);throw new Error('Payload\x20not\x20found:\x20'+_0xefec3c+'_'+_0x288f35);}}async['loadPayloadByName'](_0x2fa70b){const _0x432c05=a0_0xeb338,_0x59bceb={'wnrCg':_0x432c05(0x16e),'mojSe':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0x241df0=_0x432c05(0x156)+_0x2fa70b;if(this['cache']['has'](_0x241df0))return this[_0x432c05(0x161)]['get'](_0x241df0);const _0x1d0622=path[_0x432c05(0x15c)](this[_0x432c05(0x164)],_0x2fa70b+'.json');try{const _0x3a3b3e=await fs['readFile'](_0x1d0622,_0x432c05(0x160)),_0x4342b6=JSON[_0x432c05(0x167)](_0x3a3b3e);return this[_0x432c05(0x161)]['set'](_0x241df0,_0x4342b6),logger[_0x432c05(0x173)]({'event':_0x432c05(0x170),'payloadName':_0x2fa70b},'Payload\x20loaded\x20successfully\x20by\x20name'),_0x4342b6;}catch(_0x4a19f4){logger['error']({'event':_0x59bceb['wnrCg'],'payloadName':_0x2fa70b,'error':_0x4a19f4['message']},_0x59bceb['mojSe']);throw new Error('Payload\x20not\x20found:\x20'+_0x2fa70b);}}['isActionEnabled'](_0x22ddb2,_0x33984f){const _0x246201=a0_0xeb338;return _0x22ddb2['action']&&_0x22ddb2[_0x246201(0x166)][_0x33984f]===!![];}[a0_0xeb338(0x162)](_0x330a3c){const _0x5b6d5b=a0_0xeb338;return{'columns':_0x330a3c[_0x5b6d5b(0x15a)]||[],'filename':_0x330a3c['tableName']['replace']('.','-')+'-export','datatablesQuery':_0x330a3c[_0x5b6d5b(0x177)]||null,'columnFormats':_0x330a3c['columnFormats']||null,'fieldLabels':_0x330a3c['fieldLabels']||null};}['clearCache'](){const _0xeda0dc=a0_0xeb338,_0x375e9d={'RcZAK':_0xeda0dc(0x16d)};this[_0xeda0dc(0x161)][_0xeda0dc(0x171)](),logger['info']({'event':_0xeda0dc(0x159)},_0x375e9d['RcZAK']);}}function a0_0x44b4(_0x227de7,_0x458598){_0x227de7=_0x227de7-0x154;const _0x466537=a0_0x4665();let _0x44b465=_0x466537[_0x227de7];if(a0_0x44b4['sIPMrw']===undefined){var _0x1b2b64=function(_0x40047b){const _0x2831d7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c4203='',_0x5f0041='';for(let _0x1169b9=0x0,_0x21420a,_0x40281a,_0x2667b4=0x0;_0x40281a=_0x40047b['charAt'](_0x2667b4++);~_0x40281a&&(_0x21420a=_0x1169b9%0x4?_0x21420a*0x40+_0x40281a:_0x40281a,_0x1169b9++%0x4)?_0x5c4203+=String['fromCharCode'](0xff&_0x21420a>>(-0x2*_0x1169b9&0x6)):0x0){_0x40281a=_0x2831d7['indexOf'](_0x40281a);}for(let _0x5cfaca=0x0,_0xc285c8=_0x5c4203['length'];_0x5cfaca<_0xc285c8;_0x5cfaca++){_0x5f0041+='%'+('00'+_0x5c4203['charCodeAt'](_0x5cfaca)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5f0041);};a0_0x44b4['FaRFBY']=_0x1b2b64,a0_0x44b4['DMuHzS']={},a0_0x44b4['sIPMrw']=!![];}const _0x53330a=_0x466537[0x0],_0x422ae4=_0x227de7+_0x53330a,_0x25edd2=a0_0x44b4['DMuHzS'][_0x422ae4];return!_0x25edd2?(_0x44b465=a0_0x44b4['FaRFBY'](_0x44b465),a0_0x44b4['DMuHzS'][_0x422ae4]=_0x44b465):_0x44b465=_0x25edd2,_0x44b465;}module['exports']=new PayloadLoader();
|