@restforgejs/platform 4.2.8 → 4.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SECURITY.md +83 -4
- package/bin/sdf-tools.exe +0 -0
- package/build-info.json +2 -2
- package/cli/consumer-deploy.js +1 -1
- package/cli/consumer.js +1 -1
- package/generators/cli/dashboard/create.js +4 -1
- package/generators/cli/endpoint/create.js +1 -1
- package/generators/cli/key/generate.js +2 -1
- package/generators/cli/key/revoke.js +2 -1
- package/generators/cli/payload/diff.js +3 -2
- package/generators/cli/payload/generate.js +3 -2
- package/generators/cli/payload/sync.js +3 -2
- package/generators/cli/payload/validate.js +3 -2
- package/generators/cli/processor/create.js +14 -3
- package/generators/cli/project/delete.js +2 -1
- package/generators/cli/query/validate.js +3 -2
- package/generators/cli/schema/apply.js +3 -2
- package/generators/cli/schema/describe.js +3 -2
- package/generators/cli/schema/diff.js +3 -2
- package/generators/cli/schema/introspect.js +3 -2
- package/generators/cli/schema/list.js +3 -2
- package/generators/cli/schema/migrate.js +3 -2
- package/generators/lib/migration/audit-table-runner.js +213 -215
- package/generators/lib/payload/payload-runner.js +1 -1
- package/generators/lib/templates/dashboard-catalog.js +1 -437
- package/generators/lib/templates/db-connection-env.js +1 -212
- package/generators/lib/templates/dbschema-catalog.js +1 -489
- package/generators/lib/templates/field-validation-catalog.js +1 -531
- package/generators/lib/templates/mysql-template.js +1 -3863
- package/generators/lib/templates/oracle-template.js +1 -3915
- package/generators/lib/templates/postgres-template.js +1 -5838
- package/generators/lib/templates/query-declarative-catalog.js +1 -199
- package/generators/lib/templates/sqlite-template.js +1 -3440
- package/generators/lib/utils/env-manager.js +6 -0
- package/generators/lib/utils/path-validator.js +71 -0
- package/generators/lib/validators/payload-validator.js +1 -2
- package/integrity-manifest.json +28 -10
- package/package.json +11 -3
- package/scripts/verify-integrity.js +1 -1
- package/server.js +1 -1
- package/src/components/handlers/adjust_handler.js +1 -1
- package/src/components/handlers/audit_handler.js +1 -1
- package/src/components/handlers/delete_handler.js +1 -1
- package/src/components/handlers/export_handler.js +1 -1
- package/src/components/handlers/import_handler.js +1 -1
- package/src/components/handlers/insert_handler.js +1 -1
- package/src/components/handlers/update_handler.js +1 -1
- package/src/components/handlers/upload_handler.js +1 -1
- package/src/components/handlers/workflow_handler.js +1 -1
- package/src/components/integrations/webhook.js +1 -1
- package/src/consumers/baseConsumer.js +1 -1
- package/src/consumers/declarativeMapper.js +1 -1
- package/src/consumers/handlers/apiHandler.js +1 -1
- package/src/consumers/handlers/consoleHandler.js +1 -1
- package/src/consumers/handlers/databaseHandler.js +1 -1
- package/src/consumers/handlers/index.js +1 -1
- package/src/consumers/handlers/kafkaHandler.js +1 -1
- package/src/consumers/index.js +1 -1
- package/src/consumers/messageTransformer.js +1 -1
- package/src/consumers/validator.js +1 -1
- package/src/core/db/dialect/base-dialect.js +1 -1
- package/src/core/db/dialect/index.js +1 -1
- package/src/core/db/dialect/mysql-dialect.js +1 -1
- package/src/core/db/dialect/oracle-dialect.js +1 -1
- package/src/core/db/dialect/postgres-dialect.js +1 -1
- package/src/core/db/dialect/sqlite-dialect.js +1 -1
- package/src/core/db/flatten-helper.js +1 -1
- package/src/core/db/query-builder-error.js +1 -1
- package/src/core/db/query-builder.js +1 -1
- package/src/core/db/relation-helper.js +1 -1
- package/src/core/handlers/delete_handler.js +1 -1
- package/src/core/handlers/insert_handler.js +1 -1
- package/src/core/handlers/update_handler.js +1 -1
- package/src/core/models/base-model.js +1 -1
- package/src/core/utils/cache-manager.js +1 -1
- package/src/core/utils/component-engine.js +1 -1
- package/src/core/utils/context-builder.js +1 -1
- package/src/core/utils/datetime-formatter.js +1 -1
- package/src/core/utils/datetime-parser.js +1 -1
- package/src/core/utils/db.js +1 -1
- package/src/core/utils/logger.js +1 -1
- package/src/core/utils/payload-loader.js +1 -1
- package/src/core/utils/security-checks.js +1 -1
- package/src/middleware/body-options.js +1 -1
- package/src/middleware/cors.js +1 -1
- package/src/middleware/idempotency.js +1 -1
- package/src/middleware/rate-limiter.js +1 -1
- package/src/middleware/request-logger.js +1 -1
- package/src/middleware/security-headers.js +1 -1
- package/src/models/base-model-mysql.js +1 -1
- package/src/models/base-model-oracle.js +1 -1
- package/src/models/base-model-sqlite.js +1 -1
- package/src/models/base-model.js +1 -1
- package/src/pro/caching/redis-client.js +1 -1
- package/src/pro/caching/redis-helper.js +1 -1
- package/src/pro/consumers/baseConsumer.js +1 -1
- package/src/pro/consumers/declarativeMapper.js +1 -1
- package/src/pro/consumers/handlers/apiHandler.js +1 -1
- package/src/pro/consumers/handlers/consoleHandler.js +1 -1
- package/src/pro/consumers/handlers/databaseHandler.js +1 -1
- package/src/pro/consumers/handlers/index.js +1 -1
- package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
- package/src/pro/consumers/index.js +1 -1
- package/src/pro/consumers/messageTransformer.js +1 -1
- package/src/pro/consumers/validator.js +1 -1
- package/src/pro/database/base-model-mysql.js +1 -1
- package/src/pro/database/base-model-oracle.js +1 -1
- package/src/pro/database/base-model-sqlite.js +1 -1
- package/src/pro/database/db-mysql.js +1 -1
- package/src/pro/database/db-oracle.js +1 -1
- package/src/pro/database/db-sqlite.js +1 -1
- package/src/pro/excel/excel-generator.js +1 -1
- package/src/pro/excel/excel-parser.js +1 -1
- package/src/pro/excel/export-service.js +1 -1
- package/src/pro/excel/export_handler.js +1 -1
- package/src/pro/excel/import-service.js +1 -1
- package/src/pro/excel/import-validator.js +1 -1
- package/src/pro/excel/import_handler.js +1 -1
- package/src/pro/excel/upsert-builder.js +1 -1
- package/src/pro/idgen/idgen-routes.js +1 -1
- package/src/pro/integrations/lookup-resolver.js +1 -1
- package/src/pro/integrations/upload-handler-v2.js +1 -1
- package/src/pro/integrations/upload-handler.js +1 -1
- package/src/pro/integrations/webhook.js +1 -1
- package/src/pro/locking/lock-routes.js +1 -1
- package/src/pro/locking/resource-lock-manager.js +1 -1
- package/src/pro/messaging/kafkaConsumerService.js +1 -1
- package/src/pro/messaging/kafkaService.js +1 -1
- package/src/pro/messaging/messagehubService.js +1 -1
- package/src/pro/messaging/rabbitmqService.js +1 -1
- package/src/pro/scheduler/job-manager.js +1 -1
- package/src/pro/scheduler/job-routes.js +1 -1
- package/src/pro/scheduler/job-validator.js +1 -1
- package/src/pro/storage/base-storage-provider.js +1 -1
- package/src/pro/storage/file-metadata-helper.js +1 -1
- package/src/pro/storage/index.js +1 -1
- package/src/pro/storage/local-storage-provider.js +1 -1
- package/src/pro/storage/s3-storage-provider.js +1 -1
- package/src/pro/storage/upload-cleanup-job.js +1 -1
- package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
- package/src/pro/storage/upload-pending-tracker.js +1 -1
- package/src/pro/websocket/broadcast-helper.js +1 -1
- package/src/pro/websocket/index.js +1 -1
- package/src/pro/websocket/livesync-server.js +1 -1
- package/src/pro/websocket/ws-broadcaster.js +1 -1
- package/src/services/export-service.js +1 -1
- package/src/services/import-service.js +1 -1
- package/src/services/kafkaConsumerService.js +1 -1
- package/src/services/kafkaService.js +1 -1
- package/src/services/messagehubService.js +1 -1
- package/src/services/rabbitmqService.js +1 -1
- package/src/utils/cache-invalidation-registry.js +1 -1
- package/src/utils/cache-manager.js +1 -1
- package/src/utils/component-engine.js +1 -1
- package/src/utils/config-extractor.js +1 -1
- package/src/utils/consumerLogger.js +1 -1
- package/src/utils/context-builder.js +1 -1
- package/src/utils/dashboard-helpers.js +1 -1
- package/src/utils/dateHelper.js +1 -1
- package/src/utils/datetime-formatter.js +1 -1
- package/src/utils/datetime-parser.js +1 -1
- package/src/utils/db-bootstrap.js +1 -1
- package/src/utils/db-mysql.js +1 -1
- package/src/utils/db-oracle.js +1 -1
- package/src/utils/db-sqlite.js +1 -1
- package/src/utils/db.js +1 -1
- package/src/utils/demo-generator.js +1 -1
- package/src/utils/excel-generator.js +1 -1
- package/src/utils/excel-parser.js +1 -1
- package/src/utils/file-watcher.js +1 -1
- package/src/utils/id-generator.js +1 -1
- package/src/utils/idempotency-manager.js +1 -1
- package/src/utils/import-validator.js +1 -1
- package/src/utils/license-client.js +1 -1
- package/src/utils/lock-manager.js +1 -1
- package/src/utils/logger.js +1 -1
- package/src/utils/lookup-resolver.js +1 -1
- package/src/utils/payload-loader.js +1 -1
- package/src/utils/processor-response.js +1 -1
- package/src/utils/rabbitmq.js +1 -1
- package/src/utils/redis-client.js +1 -1
- package/src/utils/redis-helper.js +1 -1
- package/src/utils/request-scope.js +1 -1
- package/src/utils/security-checks.js +1 -1
- package/src/utils/service-resolver.js +1 -1
- package/src/utils/shutdown-coordinator.js +1 -1
- package/src/utils/trusted-keys.js +1 -1
- package/src/utils/upload-handler.js +1 -1
- package/src/utils/upsert-builder.js +1 -1
- package/src/utils/workflow-hook-executor.js +1 -1
- package/generators/metadata/global.json +0 -58
- package/generators/metadata/test-mysql-workbench.json +0 -118
- package/generators/metadata/test-mysql.json +0 -56
- package/generators/metadata/test-oracle-workbench.json +0 -118
- package/generators/metadata/test-oracle.json +0 -56
- package/generators/metadata/test-pg-workbench.json +0 -118
- package/generators/metadata/test-pg.json +0 -56
- package/generators/scripts/obfuscate-source.js +0 -356
- package/generators/scripts/validate-catalog.js +0 -430
- package/generators/scripts/validate-dbschema-catalog.js +0 -708
- package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
- package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
- package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
- package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
- package/generators/tests/fixtures/payloads/order-process.json +0 -52
- package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
- package/generators/tests/integration-tahap4b/README.md +0 -145
- package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
- package/generators/tests/integration-tahap4b/seed.sql +0 -53
- package/generators/tests/integration-tahap4b/verify.sql +0 -110
- package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
- package/generators/tests/unit/cli/create-processor.test.js +0 -319
- package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
- package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
- package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
- package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
- package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
- package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
- package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
- package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
- package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
- package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
- package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
- package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
- package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
- package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
- package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
- package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
- package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
- package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
- package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
- package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
- package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
- package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
- package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
- package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
- package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
- package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
- package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
- package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
- package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
- package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
- package/scripts/generate-integrity-manifest.js +0 -124
- package/scripts/snapshot-cli-contracts.js +0 -194
- package/scripts/verify-publish.js +0 -56
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x5efaf0=a0_0x5466;function a0_0x5d86(){const _0x572c9d=['D2fYBG','zM9YBwf0rgf0zq','z2v0sg91CNm','EMDHte4','CgfKu3rHCNq','zM9YBwf0','mZzqq0ToqM0','otK1ndy1C05mC3jA','z2v0rgf0zq','BwvZC2fNzq','z2v0u2vJB25KCW','z2v0rNvSBfLLyxi','zM9YBwf0vgLTzq','zM9YBwf0vgLTzxn0yw1W','mtaXmvnou0zvsG','CenIv00','rxjYB3iGzM9YBwf0DgLUzYbKyxrLDgLTztOG','z2v0tw9UDgG','sw52ywXPzcb0Aw1LihzHBhvLoIa','z2v0vgLTzq','mJe5mJaXnMrAtMPyCW','mta0nKz3suTPDa','ndyYotu2seLkCxzP','mty3otKYoez4vxvZqG','mJu2nJm0A1jku1Hi','BgvUz3rO','odC1mZe1EwjUtuHb'];a0_0x5d86=function(){return _0x572c9d;};return a0_0x5d86();}(function(_0x278b79,_0x286bf7){const _0x541374=a0_0x5466,_0x533d72=_0x278b79();while(!![]){try{const _0x420ee0=-parseInt(_0x541374(0xcb))/0x1+-parseInt(_0x541374(0xc8))/0x2*(-parseInt(_0x541374(0xc1))/0x3)+parseInt(_0x541374(0xc9))/0x4+-parseInt(_0x541374(0xd5))/0x5+-parseInt(_0x541374(0xc7))/0x6+-parseInt(_0x541374(0xcd))/0x7+-parseInt(_0x541374(0xca))/0x8*(-parseInt(_0x541374(0xd4))/0x9);if(_0x420ee0===_0x286bf7)break;else _0x533d72['push'](_0x533d72['shift']());}catch(_0x52039d){_0x533d72['push'](_0x533d72['shift']());}}}(a0_0x5d86,0x2d5f6));function a0_0x5466(_0x537546,_0x5f4b3c){_0x537546=_0x537546-0xbc;const _0x5d8671=a0_0x5d86();let _0x54667b=_0x5d8671[_0x537546];if(a0_0x5466['PCkMpx']===undefined){var _0x1372e3=function(_0x292102){const _0x5e25c9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xe20a52='',_0x4fe6ba='';for(let _0x59912c=0x0,_0x1311d0,_0x548949,_0xdf2908=0x0;_0x548949=_0x292102['charAt'](_0xdf2908++);~_0x548949&&(_0x1311d0=_0x59912c%0x4?_0x1311d0*0x40+_0x548949:_0x548949,_0x59912c++%0x4)?_0xe20a52+=String['fromCharCode'](0xff&_0x1311d0>>(-0x2*_0x59912c&0x6)):0x0){_0x548949=_0x5e25c9['indexOf'](_0x548949);}for(let _0x1935cc=0x0,_0x28f5a8=_0xe20a52['length'];_0x1935cc<_0x28f5a8;_0x1935cc++){_0x4fe6ba+='%'+('00'+_0xe20a52['charCodeAt'](_0x1935cc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4fe6ba);};a0_0x5466['pdyzfQ']=_0x1372e3,a0_0x5466['VGQQdi']={},a0_0x5466['PCkMpx']=!![];}const _0x57b841=_0x5d8671[0x0],_0x6681e=_0x537546+_0x57b841,_0x253f56=a0_0x5466['VGQQdi'][_0x6681e];return!_0x253f56?(_0x54667b=a0_0x5466['pdyzfQ'](_0x54667b),a0_0x5466['VGQQdi'][_0x6681e]=_0x54667b):_0x54667b=_0x253f56,_0x54667b;}class DateTimeFormatter{static[a0_0x5efaf0(0xd3)](_0x26eb35,_0x568bfe,_0x27f862){const _0x23bb36=a0_0x5efaf0,_0x567235={'zgaLN':'timestamp','dOAJY':function(_0x4b957b,_0x15d104){return _0x4b957b===_0x15d104;}};if(!_0x26eb35)return null;try{if(_0x27f862==='date')return this['formatDate'](_0x26eb35,_0x568bfe);else{if(_0x27f862===_0x567235[_0x23bb36(0xd1)])return this['formatTimestamp'](_0x26eb35,_0x568bfe);else{if(_0x567235['dOAJY'](_0x27f862,'time'))return this['formatTime'](_0x26eb35,_0x568bfe);}}return _0x26eb35;}catch(_0x5cb8a6){return console['error'](_0x23bb36(0xc3)+_0x5cb8a6[_0x23bb36(0xbc)]),_0x26eb35;}}static[a0_0x5efaf0(0xcf)](_0x5ed778,_0x4c0808){const _0x5f4087=a0_0x5efaf0,_0x44dce3={'pCbWM':function(_0x42379b,_0x4c8f78){return _0x42379b+_0x4c8f78;}},_0xdd3daf=new Date(_0x5ed778);if(isNaN(_0xdd3daf[_0x5f4087(0xc6)]()))return console[_0x5f4087(0xce)]('Invalid\x20date\x20value:\x20'+_0x5ed778),_0x5ed778;const _0x2af950=String(_0xdd3daf[_0x5f4087(0xd6)]())[_0x5f4087(0xd2)](0x2,'0'),_0xc94eba=String(_0x44dce3[_0x5f4087(0xc2)](_0xdd3daf[_0x5f4087(0xc4)](),0x1))[_0x5f4087(0xd2)](0x2,'0'),_0x3a4e35=_0xdd3daf[_0x5f4087(0xbe)](),_0x2f774e={'dd/MM/yyyy':_0x2af950+'/'+_0xc94eba+'/'+_0x3a4e35,'dd-MM-yyyy':_0x2af950+'-'+_0xc94eba+'-'+_0x3a4e35,'MM/dd/yyyy':_0xc94eba+'/'+_0x2af950+'/'+_0x3a4e35,'yyyy/MM/dd':_0x3a4e35+'/'+_0xc94eba+'/'+_0x2af950,'yyyy-MM-dd':_0x3a4e35+'-'+_0xc94eba+'-'+_0x2af950};return _0x2f774e[_0x4c0808]||_0x3a4e35+'-'+_0xc94eba+'-'+_0x2af950;}static[a0_0x5efaf0(0xc0)](_0x2fa882,_0x3b279c){const _0xb92938=a0_0x5efaf0,_0x4bff07={'iuFsI':function(_0x26bee3,_0x4e2eff){return _0x26bee3(_0x4e2eff);}},_0x519f02=new Date(_0x2fa882);if(isNaN(_0x519f02['getTime']()))return console[_0xb92938(0xce)]('Invalid\x20timestamp\x20value:\x20'+_0x2fa882),_0x2fa882;const _0x26b8fc=String(_0x519f02['getDate']())[_0xb92938(0xd2)](0x2,'0'),_0x1f6227=String(_0x519f02['getMonth']()+0x1)['padStart'](0x2,'0'),_0x5c93f6=_0x519f02['getFullYear'](),_0x2020ae=String(_0x519f02[_0xb92938(0xd0)]())['padStart'](0x2,'0'),_0x310838=_0x4bff07['iuFsI'](String,_0x519f02['getMinutes']())[_0xb92938(0xd2)](0x2,'0'),_0x28e0a5=_0x4bff07['iuFsI'](String,_0x519f02[_0xb92938(0xbd)]())[_0xb92938(0xd2)](0x2,'0'),_0x1eae60=_0x3b279c['split']('\x20');if(_0x1eae60[_0xb92938(0xcc)]!==0x2)return _0x5c93f6+'-'+_0x1f6227+'-'+_0x26b8fc+'\x20'+_0x2020ae+':'+_0x310838+':'+_0x28e0a5;const _0x12f387=_0x1eae60[0x0],_0x321b8b=_0x1eae60[0x1],_0xef07a2={'dd/MM/yyyy':_0x26b8fc+'/'+_0x1f6227+'/'+_0x5c93f6,'dd-MM-yyyy':_0x26b8fc+'-'+_0x1f6227+'-'+_0x5c93f6,'MM/dd/yyyy':_0x1f6227+'/'+_0x26b8fc+'/'+_0x5c93f6,'yyyy/MM/dd':_0x5c93f6+'/'+_0x1f6227+'/'+_0x26b8fc,'yyyy-MM-dd':_0x5c93f6+'-'+_0x1f6227+'-'+_0x26b8fc},_0x5e19f9={'HH:mm':_0x2020ae+':'+_0x310838,'HH:mm:ss':_0x2020ae+':'+_0x310838+':'+_0x28e0a5,'hh:mm':_0x2020ae+':'+_0x310838},_0x14c95d=_0xef07a2[_0x12f387]||_0x5c93f6+'-'+_0x1f6227+'-'+_0x26b8fc,_0x94bb5=_0x5e19f9[_0x321b8b]||_0x2020ae+':'+_0x310838+':'+_0x28e0a5;return _0x14c95d+'\x20'+_0x94bb5;}static[a0_0x5efaf0(0xbf)](_0x54744c,_0x509995){const _0x4fcb98=a0_0x5efaf0;if(typeof _0x54744c!=='string')return _0x54744c;const _0x32ad04=_0x54744c['split'](':');if(_0x32ad04['length']<0x2)return console['warn'](_0x4fcb98(0xc5)+_0x54744c),_0x54744c;const _0x1f50ae=_0x32ad04[0x0]['padStart'](0x2,'0'),_0x3977f2=_0x32ad04[0x1][_0x4fcb98(0xd2)](0x2,'0'),_0x3881bc=_0x32ad04[0x2]?_0x32ad04[0x2]['split']('.')[0x0][_0x4fcb98(0xd2)](0x2,'0'):'00',_0x9bac8b={'HH:mm':_0x1f50ae+':'+_0x3977f2,'HH:mm:ss':_0x1f50ae+':'+_0x3977f2+':'+_0x3881bc,'hh:mm':_0x1f50ae+':'+_0x3977f2};return _0x9bac8b[_0x509995]||_0x1f50ae+':'+_0x3977f2+':'+_0x3881bc;}}module['exports']=DateTimeFormatter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0xd0e2(_0x36e410,_0x313ab0){_0x36e410=_0x36e410-0x83;const _0x4b29d8=a0_0x4b29();let _0xd0e229=_0x4b29d8[_0x36e410];if(a0_0xd0e2['gooLSd']===undefined){var _0x48f161=function(_0x390d15){const _0x29dee6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c217e='',_0x22af63='';for(let _0x3a37ed=0x0,_0x1e201b,_0x22485e,_0x14f18e=0x0;_0x22485e=_0x390d15['charAt'](_0x14f18e++);~_0x22485e&&(_0x1e201b=_0x3a37ed%0x4?_0x1e201b*0x40+_0x22485e:_0x22485e,_0x3a37ed++%0x4)?_0x2c217e+=String['fromCharCode'](0xff&_0x1e201b>>(-0x2*_0x3a37ed&0x6)):0x0){_0x22485e=_0x29dee6['indexOf'](_0x22485e);}for(let _0x33842c=0x0,_0x3a3ed1=_0x2c217e['length'];_0x33842c<_0x3a3ed1;_0x33842c++){_0x22af63+='%'+('00'+_0x2c217e['charCodeAt'](_0x33842c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22af63);};a0_0xd0e2['cNFEKe']=_0x48f161,a0_0xd0e2['JjjiVZ']={},a0_0xd0e2['gooLSd']=!![];}const _0x77a67b=_0x4b29d8[0x0],_0x4cf289=_0x36e410+_0x77a67b,_0x4d6fb5=a0_0xd0e2['JjjiVZ'][_0x4cf289];return!_0x4d6fb5?(_0xd0e229=a0_0xd0e2['cNFEKe'](_0xd0e229),a0_0xd0e2['JjjiVZ'][_0x4cf289]=_0xd0e229):_0xd0e229=_0x4d6fb5,_0xd0e229;}const a0_0x306d72=a0_0xd0e2;function a0_0x4b29(){const _0x2b1ebe=['ndC3mteYr2XtvfD5','C3bSAxq','tvfhAeK','ntK5nNzIsNflsa','Bg5XA1u','m0fNAg5nrq','nJnjC21NDhO','vw5RBM93BIbKyxrLigzVCM1HDdOG','Bw9UDgG','Bwf0y2G','zgf0zq','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','iIbKB2vZBID0ig1HDgnOigzVCM1HDcaI','zgf5','rhPvzvi','mZC2odK3mfHYz1jUEG','mZGWodi0og1PBur4sG','nJmWnJeWuurSuMTY','EwvHCG','mJK5nfblwxbXqG','tKfmtLC','B3jKzxi','nZu4mgPMugnzwq','z0jkzvu','CgfYC2u','rvbRzLu','ntvuEKzvELa','seLSC1O','DgLTzxn0yw1W','zxjYB3i','CgfYC2vuAw1LC3rHBxa','BgvUz3rO','v05lvu4','oJaW','zxHWB3j0CW','nti5mJC5mwXArffvBW','Cgf0DgvYBG','rgf0zsb2ywX1zsaI','D2fYBG','seG6Bw0'];a0_0x4b29=function(){return _0x2b1ebe;};return a0_0x4b29();}(function(_0x57daac,_0x15dda8){const _0x201fef=a0_0xd0e2,_0x301a9f=_0x57daac();while(!![]){try{const _0x43393f=parseInt(_0x201fef(0x8a))/0x1+parseInt(_0x201fef(0xa4))/0x2*(parseInt(_0x201fef(0xa6))/0x3)+parseInt(_0x201fef(0x89))/0x4+parseInt(_0x201fef(0x8f))/0x5*(parseInt(_0x201fef(0x8c))/0x6)+parseInt(_0x201fef(0x9c))/0x7+-parseInt(_0x201fef(0xa1))/0x8*(parseInt(_0x201fef(0xa7))/0x9)+parseInt(_0x201fef(0x88))/0xa*(-parseInt(_0x201fef(0x93))/0xb);if(_0x43393f===_0x15dda8)break;else _0x301a9f['push'](_0x301a9f['shift']());}catch(_0x1b9267){_0x301a9f['push'](_0x301a9f['shift']());}}}(a0_0x4b29,0xc2695));class DateTimeParser{static[a0_0x306d72(0x91)](_0x1db2b9,_0x2af7b0,_0x1973c1){const _0x54c4d6=a0_0x306d72,_0x3310e3={'EPkfU':function(_0x4ed719,_0x40bd39){return _0x4ed719===_0x40bd39;},'gBJeU':function(_0x2ecda4,_0x14f3c0){return _0x2ecda4===_0x14f3c0;},'bnvJb':_0x54c4d6(0x83),'amJTz':_0x54c4d6(0x95)};if(!_0x1db2b9||_0x3310e3[_0x54c4d6(0x92)](_0x1db2b9,''))return null;try{if(_0x3310e3[_0x54c4d6(0x90)](_0x1973c1,_0x3310e3['bnvJb']))return this['parseDate'](_0x1db2b9,_0x2af7b0);else{if(_0x3310e3[_0x54c4d6(0x90)](_0x1973c1,_0x3310e3['amJTz']))return this['parseTimestamp'](_0x1db2b9,_0x2af7b0);else{if(_0x1973c1==='time')return this['parseTime'](_0x1db2b9,_0x2af7b0);}}return _0x1db2b9;}catch(_0x5076c5){return console[_0x54c4d6(0x96)](_0x54c4d6(0x84)+_0x5076c5['message']),null;}}static['parseDate'](_0x18f41,_0x53bb2f){const _0x50f3f9=a0_0x306d72,_0x248225={'NALNW':function(_0x3b9bdb,_0x7f801b){return _0x3b9bdb===_0x7f801b;},'WNKUN':_0x50f3f9(0xa9),'DzUeR':'day','LgdFG':'year'};if(!_0x53bb2f||_0x248225[_0x50f3f9(0x8d)](_0x53bb2f,'yyyy-MM-dd'))return _0x18f41;const _0x2d54b4={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x50f3f9(0x86),_0x248225['WNKUN'],'year']},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x248225['DzUeR'],'month',_0x50f3f9(0x8b)]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x248225['WNKUN'],_0x50f3f9(0x86),_0x248225['LgdFG']]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x248225['LgdFG'],_0x248225[_0x50f3f9(0x99)],_0x248225[_0x50f3f9(0x87)]]}},_0x27d4cd=_0x2d54b4[_0x53bb2f];if(!_0x27d4cd)return console['warn'](_0x50f3f9(0xa8)+_0x53bb2f+',\x20returning\x20null'),null;const _0x5304a7=_0x18f41['match'](_0x27d4cd[_0x50f3f9(0x9d)]);if(!_0x5304a7)return console['warn'](_0x50f3f9(0x9e)+_0x18f41+_0x50f3f9(0x85)+_0x53bb2f+'\x22'),null;const _0xaf91b0={'day':null,'month':null,'year':null};return _0x27d4cd[_0x50f3f9(0x8e)]['forEach']((_0x402ba4,_0x36e063)=>{_0xaf91b0[_0x402ba4]=_0x5304a7[_0x36e063+0x1];}),_0xaf91b0['year']+'-'+_0xaf91b0['month']+'-'+_0xaf91b0[_0x50f3f9(0x86)];}static[a0_0x306d72(0x97)](_0x371093,_0xb40f52){const _0x1c6eea=a0_0x306d72,_0x318b9a={'NJZgZ':'yyyy-MM-dd\x20HH:mm:ss','lnqkU':function(_0x5bed99,_0x2df077){return _0x5bed99!==_0x2df077;},'MQGhI':function(_0x57fff4,_0x4a1c32){return _0x57fff4===_0x4a1c32;}};if(!_0xb40f52||_0xb40f52===_0x318b9a['NJZgZ'])return _0x371093;const _0x55bce5=_0x371093[_0x1c6eea(0xa2)]('\x20');if(_0x318b9a[_0x1c6eea(0xa5)](_0x55bce5['length'],0x2))return console[_0x1c6eea(0x9f)]('Invalid\x20timestamp\x20format:\x20'+_0x371093),null;const [_0x2259b7,_0x2e023a]=_0x55bce5,_0x23446c=_0xb40f52[_0x1c6eea(0xa2)]('\x20')[0x0],_0x299e9a=this['parseDate'](_0x2259b7,_0x23446c);if(!_0x299e9a)return null;const _0x59a01c=_0x318b9a[_0x1c6eea(0xa3)](_0x2e023a['split'](':')[_0x1c6eea(0x98)],0x2)?_0x2e023a+_0x1c6eea(0x9a):_0x2e023a;return _0x299e9a+'\x20'+_0x59a01c;}static['parseTime'](_0xc8512f,_0x5f5d98){const _0x970ec2=a0_0x306d72,_0x19c822={'Tbwug':'HH:mm:ss','HIlsZ':_0x970ec2(0xa0)};if(!_0x5f5d98||_0x5f5d98===_0x19c822['Tbwug'])return _0xc8512f;if(_0x5f5d98===_0x19c822[_0x970ec2(0x94)]){if(_0xc8512f[_0x970ec2(0xaa)](/^\d{2}:\d{2}$/))return _0xc8512f+_0x970ec2(0x9a);}return _0xc8512f;}}module[a0_0x306d72(0x9b)]=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_0x4620e4=a0_0x32a5;(function(_0x346de7,_0xe3021f){const _0x1b7945=a0_0x32a5,_0x5572df=_0x346de7();while(!![]){try{const _0x4db17c=-parseInt(_0x1b7945(0x100))/0x1*(-parseInt(_0x1b7945(0x11d))/0x2)+parseInt(_0x1b7945(0x10d))/0x3*(parseInt(_0x1b7945(0x12f))/0x4)+parseInt(_0x1b7945(0x109))/0x5+-parseInt(_0x1b7945(0xff))/0x6+parseInt(_0x1b7945(0x11e))/0x7+parseInt(_0x1b7945(0x119))/0x8+parseInt(_0x1b7945(0xf8))/0x9*(-parseInt(_0x1b7945(0xfa))/0xa);if(_0x4db17c===_0xe3021f)break;else _0x5572df['push'](_0x5572df['shift']());}catch(_0x2d513c){_0x5572df['push'](_0x5572df['shift']());}}}(a0_0x8bed,0xd2171));function a0_0x32a5(_0x8167ae,_0x1b8850){_0x8167ae=_0x8167ae-0xec;const _0x8bed9f=a0_0x8bed();let _0x32a557=_0x8bed9f[_0x8167ae];if(a0_0x32a5['lkLGAW']===undefined){var _0x32748a=function(_0x37ba06){const _0x2ba4af='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x461876='',_0x11a921='';for(let _0x37b2d1=0x0,_0x2f67d0,_0x23b2c3,_0x403379=0x0;_0x23b2c3=_0x37ba06['charAt'](_0x403379++);~_0x23b2c3&&(_0x2f67d0=_0x37b2d1%0x4?_0x2f67d0*0x40+_0x23b2c3:_0x23b2c3,_0x37b2d1++%0x4)?_0x461876+=String['fromCharCode'](0xff&_0x2f67d0>>(-0x2*_0x37b2d1&0x6)):0x0){_0x23b2c3=_0x2ba4af['indexOf'](_0x23b2c3);}for(let _0x3eb4bb=0x0,_0x3e1bb9=_0x461876['length'];_0x3eb4bb<_0x3e1bb9;_0x3eb4bb++){_0x11a921+='%'+('00'+_0x461876['charCodeAt'](_0x3eb4bb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11a921);};a0_0x32a5['FqNApi']=_0x32748a,a0_0x32a5['eldKYy']={},a0_0x32a5['lkLGAW']=!![];}const _0x2e625b=_0x8bed9f[0x0],_0x2e934a=_0x8167ae+_0x2e625b,_0x41dcc8=a0_0x32a5['eldKYy'][_0x2e934a];return!_0x41dcc8?(_0x32a557=a0_0x32a5['FqNApi'](_0x32a557),a0_0x32a5['eldKYy'][_0x2e934a]=_0x32a557):_0x32a557=_0x41dcc8,_0x32a557;}const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process['env'][a0_0x4620e4(0xf0)]||'192.168.100.1','port':parseInt(process[a0_0x4620e4(0x107)][a0_0x4620e4(0x122)]||a0_0x4620e4(0x116)),'user':process[a0_0x4620e4(0x107)]['DB_USER']||'postgres','password':process['env']['DB_PASSWORD']||'postgres1234','database':process[a0_0x4620e4(0x107)][a0_0x4620e4(0x121)]||a0_0x4620e4(0xef)};logDatabaseConfig({'host':dbConfig[a0_0x4620e4(0x129)],'port':dbConfig[a0_0x4620e4(0x106)],'database':dbConfig['database'],'type':'postgresql','user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x493620=a0_0x4620e4;return isPoolClosed&&(logger[_0x493620(0xf5)]({'event':'db_pool_recreate'},'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x319c31,_0x105e60=[]){const _0x454a3e=a0_0x4620e4,_0x5b2100={'mYfra':function(_0x440402){return _0x440402();},'iqoEB':'postgresql','WoqqC':function(_0x25c0cc){return _0x25c0cc();},'ceEhu':function(_0x3c68c5,_0x8f2bd6,_0x3df299,_0x5f024e){return _0x3c68c5(_0x8f2bd6,_0x3df299,_0x5f024e);},'ubNBp':'sql_error'},_0x18c8fa=startQueryTimer();try{const _0x23d783=_0x5b2100[_0x454a3e(0x104)](getPool),_0x64e1f4=await _0x23d783['connect']();try{const _0x29c5ca=await _0x64e1f4['query'](_0x319c31,_0x105e60),_0x328aa7=_0x5b2100[_0x454a3e(0x104)](_0x18c8fa);return logQuery(_0x319c31,_0x105e60,{'duration':_0x328aa7,'rowsAffected':_0x29c5ca[_0x454a3e(0x112)],'dbType':_0x5b2100[_0x454a3e(0x114)]}),_0x29c5ca[_0x454a3e(0x130)];}finally{_0x64e1f4[_0x454a3e(0x10f)]();}}catch(_0x3cfd54){const _0x632dab=_0x5b2100['WoqqC'](_0x18c8fa);_0x5b2100['ceEhu'](logError,_0x3cfd54,{'event':_0x5b2100['ubNBp'],'query':_0x319c31[_0x454a3e(0x111)](0x0,0x1f4),'paramCount':_0x105e60[_0x454a3e(0x110)],'durationMs':_0x632dab,'code':_0x3cfd54[_0x454a3e(0xfe)],'dbType':_0x5b2100['iqoEB']},'SQL\x20Error:\x20'+_0x3cfd54[_0x454a3e(0x10c)]);throw _0x3cfd54;}}function formatResponse(_0x57f3f1,_0x48e9e2=null){const _0x307a20=a0_0x4620e4,_0x2a16c1={'kdCQu':'UNKNOWN_ERROR','NMgfJ':_0x307a20(0x11f),'PuZzu':'SYNTAX_ERROR','KmMiz':function(_0x11cc55,_0x36a72c){return _0x11cc55===_0x36a72c;},'kmHEi':'TABLE_NOT_FOUND','vzPRz':_0x307a20(0x11a),'hQPqL':function(_0x2e9c91,_0x11efc4){return _0x2e9c91===_0x11efc4;}};if(_0x48e9e2){let _0x3e5a2f=_0x2a16c1['kdCQu'];if(_0x48e9e2[_0x307a20(0x10c)]['includes'](_0x2a16c1['NMgfJ']))_0x3e5a2f=_0x2a16c1['PuZzu'];else{if(_0x2a16c1[_0x307a20(0xf9)](_0x48e9e2[_0x307a20(0xfe)],_0x307a20(0x131)))_0x3e5a2f=_0x2a16c1[_0x307a20(0x113)];else{if(_0x2a16c1[_0x307a20(0xf9)](_0x48e9e2['code'],'28P01'))_0x3e5a2f=_0x2a16c1[_0x307a20(0x127)];else(_0x2a16c1[_0x307a20(0xf9)](_0x48e9e2['code'],_0x307a20(0x115))||_0x48e9e2['code']==='08001')&&(_0x3e5a2f=_0x307a20(0xf3));}}return{'success':![],'message':'Database\x20error:\x20'+_0x48e9e2[_0x307a20(0x10c)],'count':-0x1,'error_code':_0x3e5a2f};}else{if(!_0x57f3f1||_0x2a16c1[_0x307a20(0xf4)](_0x57f3f1['length'],0x0))return{'success':!![],'message':'No\x20data\x20found.','count':0x0,'data':[]};return{'success':!![],'message':_0x307a20(0x12e)+_0x57f3f1[_0x307a20(0x110)]+_0x307a20(0x125)+(_0x57f3f1['length']===0x1?'':'s')+'.','count':_0x57f3f1[_0x307a20(0x110)],'data':_0x57f3f1};}}function a0_0x8bed(){const _0x5b6622=['DvnUsNC','mti2qNr0tg9P','s21nAxO','mtu4odK0meHAufv1Ea','DhjHBNnHy3rPB25FzxjYB3i','DhjHBNnHy3rPB25Fy29TCgXLDgu','t1vSzvO','y29Kzq','nJaWnJa0mMHswxDjwa','nZfuq1DZALK','rwnfz1q','CxvLCNK','s1DXvhq','BvLMCMe','zgjFCg9VBf9JBg9Zzv9LCNjVCG','Cg9YDa','zw52','y29TBwL0','ntG5mZm4nwXAvg5ACa','CM9SBgjHy2TFzxjYB3i','AvrdwLu','BwvZC2fNzq','nKH3uNDwyq','BxmSia','CMvSzwfZzq','BgvUz3rO','C3vIC3rYAw5N','CM93q291BNq','A21irwK','AxfVrui','mdGWmdy','ntqZmG','v3vvtvO','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','mJyXnJu5mNzhrNjRCW','qvvusevoveLdqvrjt05Frvjst1i','verMrg8','u0vmrunuide','ndyYmZrdBMTWtei','mZeXotiXngniwfHtqG','C3LUDgf4igvYCM9Y','uxPPz3C','rejFtKfnrq','rejFue9sva','C3fS','y29UBMvJDa','ihjVDW','wvvkvuO','DNPquNO','rxjYB3iGCM9SBgLUzYbIywnRihrYyw5Zywn0Aw9UoIa','Ag9ZDa','uK9mtejbq0S','q09ntuLu','vhjHBNnHy3rPB24GzMfPBgvKoIa','zxHWB3j0CW','uxvLCNKGCMv0DxjUzwqG','otG2nZG0A0DbzMnf','CM93CW','ndjqmde','rgf0ywjHC2uGCg9VBcbJBg9ZzwqGC3vJy2vZC2z1BgX5','Cg9ZDgDYzxnXBa','rhr1wKG','uw13ExG','zgj4ytaZ','rejFse9tva','uM5yC0O','A2zNv0q','q09otKvdveLptL9fuLjpuG','AffqCuW','Aw5MBW','y2XPzw50x3jLBgvHC2vFzxjYB3i'];a0_0x8bed=function(){return _0x5b6622;};return a0_0x8bed();}async function closePool(){const _0x532b5d=a0_0x4620e4,_0x456c89={'OUleZ':'db_pool_closed','YUJUJ':_0x532b5d(0x132),'SafeZ':function(_0x57b19c,_0x521a6c,_0xca9fc3,_0x57a95d){return _0x57b19c(_0x521a6c,_0xca9fc3,_0x57a95d);},'TDfDo':_0x532b5d(0x105),'Qmwyx':'db_pool_already_closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger[_0x532b5d(0xf5)]({'event':_0x456c89[_0x532b5d(0xfd)]},_0x456c89[_0x532b5d(0x126)]);}catch(_0x448596){_0x456c89['SafeZ'](logError,_0x448596,{'event':_0x456c89[_0x532b5d(0x11b)]},_0x532b5d(0x118)+_0x448596['message']);}else logger['debug']({'event':_0x456c89[_0x532b5d(0xee)]},'Database\x20pool\x20was\x20already\x20closed');}async function checkConnection(){const _0x30dc26=a0_0x4620e4,_0xff0fee={'WuUMZ':'db_connection_check_error'};try{const _0xc4ec3=getPool(),_0x35be91=await _0xc4ec3['connect']();try{return await _0x35be91['query'](_0x30dc26(0x11c)),!![];}finally{_0x35be91[_0x30dc26(0x10f)]();}}catch(_0x45e67c){return logError(_0x45e67c,{'event':_0xff0fee[_0x30dc26(0x117)]},'Error\x20checking\x20database\x20connection:\x20'+_0x45e67c['message']),![];}}async function executeTransaction(_0x273b4c){const _0x1ca218=a0_0x4620e4,_0x3a6a54={'RnXsJ':function(_0x4be09a){return _0x4be09a();},'kfgWD':function(_0x54f4ce,_0x7a419d,_0xe2da2d){return _0x54f4ce(_0x7a419d,_0xe2da2d);},'KWqTt':'BEGIN','DtuZH':function(_0x22ae7c){return _0x22ae7c();},'uSnJw':function(_0x450d29,_0x41f94a,_0x397d59,_0x1bc610){return _0x450d29(_0x41f94a,_0x397d59,_0x1bc610);},'iTCZU':function(_0x37fe10,_0xc60182,_0x90b066){return _0x37fe10(_0xc60182,_0x90b066);},'EcEgT':_0x1ca218(0xec),'fhGQb':'rollback','Qzigw':_0x1ca218(0xf6)};let _0x21fddb;const _0x4d48a0=_0x3a6a54[_0x1ca218(0xf1)](startQueryTimer);try{const _0x5b5892=getPool();_0x21fddb=await _0x5b5892[_0x1ca218(0x124)](),_0x3a6a54[_0x1ca218(0xf2)](logTransaction,'start',_0x273b4c[_0x1ca218(0x110)]),await _0x21fddb[_0x1ca218(0x102)](_0x3a6a54[_0x1ca218(0x103)]);const _0x482fee=[];for(const _0x22f24f of _0x273b4c){const _0x2f1302=_0x3a6a54[_0x1ca218(0xed)](startQueryTimer),_0x1659af=await _0x21fddb['query'](_0x22f24f[_0x1ca218(0x123)],_0x22f24f['params']||[]),_0x298e89=_0x2f1302();_0x3a6a54[_0x1ca218(0xf7)](logQuery,_0x22f24f['sql'],_0x22f24f['params']||[],{'duration':_0x298e89,'rowsAffected':_0x1659af['rowCount'],'dbType':_0x1ca218(0xec)}),_0x482fee['push'](_0x1659af['rows']);}await _0x21fddb['query'](_0x1ca218(0x12b));const _0x3c6de3=_0x3a6a54[_0x1ca218(0xf1)](_0x4d48a0);return _0x3a6a54[_0x1ca218(0x10b)](logTransaction,_0x1ca218(0x108),_0x273b4c[_0x1ca218(0x110)]),logger['info']({'event':_0x1ca218(0xfc),'queryCount':_0x273b4c['length'],'totalDurationMs':_0x3c6de3,'dbType':_0x3a6a54[_0x1ca218(0x101)]},'Transaction\x20committed\x20('+_0x3c6de3+_0x1ca218(0x10e)+_0x273b4c['length']+'\x20queries)'),_0x482fee;}catch(_0x470da4){const _0x523631=_0x4d48a0();logError(_0x470da4,{'event':_0x1ca218(0xfb),'queryCount':_0x273b4c[_0x1ca218(0x110)],'totalDurationMs':_0x523631,'code':_0x470da4['code'],'dbType':'postgresql'},_0x1ca218(0x12c)+_0x470da4['message']);if(_0x21fddb)try{await _0x21fddb[_0x1ca218(0x102)](_0x1ca218(0x12a)),logTransaction(_0x3a6a54['fhGQb'],_0x273b4c['length']);}catch(_0x19a93a){_0x3a6a54[_0x1ca218(0xf7)](logError,_0x19a93a,{'event':_0x1ca218(0x10a),'dbType':'postgresql'},_0x1ca218(0x128)+_0x19a93a[_0x1ca218(0x10c)]);}throw _0x470da4;}finally{if(_0x21fddb)try{_0x21fddb[_0x1ca218(0x10f)]();}catch(_0x3d8da3){logger['error']({'event':_0x3a6a54[_0x1ca218(0x120)],'error':_0x3d8da3['message'],'dbType':'postgresql'},'Error\x20releasing\x20transaction\x20client:\x20'+_0x3d8da3[_0x1ca218(0x10c)]);}}}module[a0_0x4620e4(0x12d)]={'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_0x1f6eea=a0_0x5082;function a0_0x27ed(){const _0x131c6d=['C3rHDhvZq29Kzq','Ahr0Cf9LCNjVCG','ovffuuXsAa','odfuz2nREK0','CgLU','Aw5MBW','weHxr1q','y29UzMLNrMLSzq','u1rbuLqGvfjbtLnbq1rjt04','qKvhsu4','CMvZDgzVCMDL','mtqWnJLytNvKy1e','iokvKqRILzeGiefqssblzxKGicaGidOG','w1jfrefdveveoMHHC2HD','Cw1qqxu','zw52','rermx0fmvevs','yK1Ruui','C2vJCMv0','Dg9mB3DLCKnHC2u','B2DcyKS','yxbPs2v5','DhLWzq','Ahr0Cf9Yzxf1zxn0','yMfZzvvYBa','BgvUz3rO','s0TyALe','y29UBMvJDgLVBG','ufzhu2i','yM9KEq','D3jPDgu','ota0ntyYDgzruhPv','CgfKrw5K','z0vmt24','yxv0Ag9YAxPHDgLVBG','y3jLzgL0x2nHCMq','ChDK','vfjbtLnbq1rjt05FqKvhsu4','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','u1LtoKHioK1noNnZ','C2vYDMLJzuLUzM8','w1jfrefdveveoNrVA2vUxq','Cgf0Aa','BwvZC2fNzq','te9hx0rjuG','mJqZnKncD3DNua','t3b1yxu','y2HPBgq','ChjVAMvJDa','s2zIqxa','zxHPDa','su5trvju','u0vmrunu','CxvLCNK','y29Kzq','DfvZzKi','C3rKvgLTzuz1BMn0Aw9UCW','ig9UihbVCNqG','ELvVvNO','sgPMu2S','ywfPvvK','B3rW','uK9mtejbq0S','r2vSDhu','uMzvsuW','zMf0ywW','Cg9YDa','y0nKDve','AgvHzgvYCW','nta0odCWr2TzsNjI','q1jfqvrf','rKfuquW6ia','C3rHDhvZ','Ag9ZDa','CxHut1y','C3rHy2S','CKrnC04','ChzfC3u','ANnVBG','q1jjveLdquW','Bwv0Ag9K','C3rHCNrZv2L0Aa','sLDux1nfq1jfva','AxnbCNjHEq','qMresgm','yKXusgi','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','A1PUC3u','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','Aw5JBhvKzxm','iokvKqRILzeGifbVCNqGicaGicaGidOG','s2LTAve','odGWnNfvD3bpqG','sufmz2m','C3fSx3f1zxj5','n21grfnuvW','yxbWlMXVzW','Dg9gAxHLza','DxnLCG','CMvZB2X2zq','t0Xjyue','zMLSzv9SB2DNAw5Nx2vUywjSzwq','AuXlwe4','Bw9KDwXL','BeXbANm','sufWuxq','ChjPDMf0zv9RzxK','AfLcC1m','CKzJsw4','rfvJANG','ndmWm05Ry3j2za','vNbSwNm','C2vYDMvYx3n0yxj0Aw5N','B3jPz2LUywXvCMW','teLNqu4','zKv2u20','C3rYAw5NAwz5','ywnJzxnZx3rVA2vU','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','ntuXnta0me5WzwXsqq','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','CgLUBW','icbjBMzVoIaGia','y3jLzgvUDgLHBhm','rejFueftu1DpuKq','wNLYuuW','rxjYB3i','u2zRAKi','vvbeqvrf','AxnVvgLTzq','sfruuca','te9hx1rpx0zjteu','ndiYnxnuAvDAva','AgvHBhrOq2HLy2S','CgfZC3DVCMq','C29Tzq','y3jLyxrLv3jPDgvtDhjLyw0','qunusvzf','BMfTzq','sKDPuwu','DgvZDa','ifTtte9xxq','revmrvrf','uhjYzMu','quXurvi','teDrzgG','Dg9vChbLCKnHC2u','Ec1Yzxf1zxn0lwLK','EMXfCeq','y3jLzgvUDgLHBa','z2v0','zxjYB3i','zgv2zwXVCg1LBNq','zgjFCxvLCNK','Du5TrNK','zMf0ywXFzxjYB3i','Dw5Oyw5KBgvKuMvQzwn0Aw9U','lI9SB2DZ','Exvtqxa','zw1Zsxm','CMvWBgfJzq','E21Zz30','B2jQzwn0','Cg9ZDgDYzxnXBa','zgvIDwC','mte4ota2nfHTy3DvDG','v1LgwxC','iokvKqRILzeGifbYB2PLy3qGicaGidOG','ms4WlJu','Dw5JyxvNAhrfEgnLChrPB24','Dg9ju09tDhjPBMC','w1jfrefdvevexq','yxbPx2TLEq','mxLiBuLyra','CMvMCMvZAf90B2TLBG','uu5Rtfm','C3nU','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','DxjS','BxmP','qvbqx1zfuLnjt04','DhjPBq','mtm3ngTSrhPvCG','Bwf0y2G','reiGuxvLCNK','D2fYBG','EM9PBMW'];a0_0x27ed=function(){return _0x131c6d;};return a0_0x27ed();}(function(_0x28dbf0,_0x426596){const _0x1fc2d0=a0_0x5082,_0x4184b8=_0x28dbf0();while(!![]){try{const _0x13efcb=parseInt(_0x1fc2d0(0x1e2))/0x1*(parseInt(_0x1fc2d0(0x20f))/0x2)+parseInt(_0x1fc2d0(0x1f2))/0x3*(parseInt(_0x1fc2d0(0x1da))/0x4)+parseInt(_0x1fc2d0(0x1b9))/0x5*(-parseInt(_0x1fc2d0(0x1eb))/0x6)+-parseInt(_0x1fc2d0(0x194))/0x7*(parseInt(_0x1fc2d0(0x1ac))/0x8)+-parseInt(_0x1fc2d0(0x1f3))/0x9*(parseInt(_0x1fc2d0(0x17a))/0xa)+-parseInt(_0x1fc2d0(0x1fb))/0xb*(-parseInt(_0x1fc2d0(0x21d))/0xc)+parseInt(_0x1fc2d0(0x1a3))/0xd*(parseInt(_0x1fc2d0(0x191))/0xe);if(_0x13efcb===_0x426596)break;else _0x4184b8['push'](_0x4184b8['shift']());}catch(_0x40ef54){_0x4184b8['push'](_0x4184b8['shift']());}}}(a0_0x27ed,0x73e17));const pino=require(a0_0x1f6eea(0x1ae)),fs=require('fs'),path=require(a0_0x1f6eea(0x21a));function a0_0x5082(_0x4831a5,_0x1c3677){_0x4831a5=_0x4831a5-0x170;const _0x27ed88=a0_0x27ed();let _0x5082c6=_0x27ed88[_0x4831a5];if(a0_0x5082['fcdgmB']===undefined){var _0x15ef86=function(_0x4e171c){const _0x36dc9f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x589104='',_0x1d6ffd='';for(let _0x26061c=0x0,_0x4d0498,_0x131e5c,_0x1a2331=0x0;_0x131e5c=_0x4e171c['charAt'](_0x1a2331++);~_0x131e5c&&(_0x4d0498=_0x26061c%0x4?_0x4d0498*0x40+_0x131e5c:_0x131e5c,_0x26061c++%0x4)?_0x589104+=String['fromCharCode'](0xff&_0x4d0498>>(-0x2*_0x26061c&0x6)):0x0){_0x131e5c=_0x36dc9f['indexOf'](_0x131e5c);}for(let _0xc175fc=0x0,_0x3d43bc=_0x589104['length'];_0xc175fc<_0x3d43bc;_0xc175fc++){_0x1d6ffd+='%'+('00'+_0x589104['charCodeAt'](_0xc175fc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d6ffd);};a0_0x5082['CCBSLF']=_0x15ef86,a0_0x5082['mgkWIv']={},a0_0x5082['fcdgmB']=!![];}const _0x4a3aa5=_0x27ed88[0x0],_0x1b9b68=_0x4831a5+_0x4a3aa5,_0x24626b=a0_0x5082['mgkWIv'][_0x1b9b68];return!_0x24626b?(_0x5082c6=a0_0x5082['CCBSLF'](_0x5082c6),a0_0x5082['mgkWIv'][_0x1b9b68]=_0x5082c6):_0x5082c6=_0x24626b,_0x5082c6;}let logToFile=![],logDir='./logs',serviceName=a0_0x1f6eea(0x1fa),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x1f6eea(0x217),'ignore':a0_0x1f6eea(0x1e6),'singleLine':![],'levelFirst':!![],'messageFormat':a0_0x1f6eea(0x1d6),'customColors':a0_0x1f6eea(0x1ab),'hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!=='production',logLevel=process[a0_0x1f6eea(0x1ff)]['LOG_LEVEL']||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x1f6eea(0x1ff)][a0_0x1f6eea(0x1e9)]||a0_0x1f6eea(0x1dd),'env':process['env']['NODE_ENV']||a0_0x1f6eea(0x1cd)},'timestamp':pino[a0_0x1f6eea(0x228)][a0_0x1f6eea(0x1b6)],'redact':{'paths':['req.headers.authorization',a0_0x1f6eea(0x216),'password','token','apiKey',a0_0x1f6eea(0x1b1),a0_0x1f6eea(0x187)],'censor':a0_0x1f6eea(0x1e0)},'serializers':{'req':_0x13fa02=>({'id':_0x13fa02['id'],'method':_0x13fa02[a0_0x1f6eea(0x185)],'url':_0x13fa02[a0_0x1f6eea(0x1e7)],'path':_0x13fa02[a0_0x1f6eea(0x21a)],'remoteAddress':_0x13fa02['ip']||_0x13fa02['connection']?.['remoteAddress']}),'res':_0x1b54b3=>({'statusCode':_0x1b54b3[a0_0x1f6eea(0x1f0)],'headers':_0x1b54b3['getHeaders']?.()}),'err':pino['stdSerializers']['err']}});function initFileLogging(){const _0x575453=a0_0x1f6eea,_0x1f1f4f={'zoinl':function(_0x58cadc,_0x5c1d31){return _0x58cadc===_0x5c1d31;},'ogBbK':'true','blZGe':function(_0x570b60,_0x129381){return _0x570b60!==_0x129381;},'IApQt':_0x575453(0x1f5)};if(fileLoggingInitialized)return;logToFile=_0x1f1f4f[_0x575453(0x1ef)](process[_0x575453(0x1ff)][_0x575453(0x1b8)],_0x1f1f4f[_0x575453(0x204)]),logDir=process['env'][_0x575453(0x21c)]||_0x575453(0x1d2),serviceName=process[_0x575453(0x1ff)]['SERVICE_NAME']||'restforge',sqlLogEnabled=_0x1f1f4f[_0x575453(0x1ef)](process[_0x575453(0x1ff)]['SQL_LOG_ENABLED'],'true'),sqlLogLevel=process[_0x575453(0x1ff)]['SQL_LOG_LEVEL']||'debug',sqlLogParams=_0x1f1f4f['blZGe'](process['env']['SQL_LOG_PARAMS'],'false'),sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x4bb03c=path[_0x575453(0x198)](process['cwd'](),logDir);try{!fs['existsSync'](_0x4bb03c)&&fs['mkdirSync'](_0x4bb03c,{'recursive':!![]});}catch(_0x52fea7){console[_0x575453(0x1cc)](_0x575453(0x1ad)+_0x4bb03c+':',_0x52fea7[_0x575453(0x21b)]),fileLoggingInitialized=!![];return;}const _0x314115=path['join'](_0x4bb03c,'app.log'),_0x1e5b44=path['join'](_0x4bb03c,'error.log');try{appLogStream=fs[_0x575453(0x1bd)](_0x314115,{'flags':'a'}),errorLogStream=fs[_0x575453(0x1bd)](_0x1e5b44,{'flags':'a'}),fileLoggingInitialized=!![];const _0x57a258={'event':_0x575453(0x19a),'logDir':_0x4bb03c,'files':[_0x575453(0x195),'error.log']},_0x417d37='File\x20logging\x20enabled:\x20'+_0x4bb03c;logger['info'](_0x57a258,_0x417d37),writeToFileLog({..._0x57a258,'level':'info','msg':_0x417d37,'time':new Date()['toISOString']()},_0x1f1f4f[_0x575453(0x19e)]);}catch(_0x2d7116){console[_0x575453(0x1cc)](_0x575453(0x18d),_0x2d7116[_0x575453(0x21b)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x20219d,_0x475010){const _0x1aa92e=a0_0x1f6eea,_0x1dc8ce={'LGQdh':function(_0x3098bb,_0x3b959f){return _0x3098bb+_0x3b959f;},'Opuau':function(_0x2aef49,_0x133fe0){return _0x2aef49===_0x133fe0;},'IALgc':function(_0x4eaebb,_0x1a7801){return _0x4eaebb===_0x1a7801;},'UDXKR':_0x1aa92e(0x176)};if(!logToFile||!appLogStream)return;const _0x2c7e73={'service':serviceName,..._0x20219d},_0x2bdcea=_0x1dc8ce[_0x1aa92e(0x1c6)](JSON[_0x1aa92e(0x1a9)](_0x2c7e73),'\x0a');appLogStream['write'](_0x2bdcea),(_0x1dc8ce[_0x1aa92e(0x21e)](_0x475010,'error')||_0x1dc8ce[_0x1aa92e(0x192)](_0x475010,_0x1dc8ce['UDXKR']))&&(errorLogStream&&errorLogStream[_0x1aa92e(0x20e)](_0x2bdcea));}const createRequestLogger=(_0x197d37={})=>{const _0x3e39a3=a0_0x1f6eea;return logger[_0x3e39a3(0x21f)](_0x197d37);},logServerStart=_0xf52e36=>{const _0x11809b=a0_0x1f6eea,_0x59fab8={'kZnsu':'N/A','cCduQ':function(_0x46f9dd,_0x1bd1ef){return _0x46f9dd(_0x1bd1ef);},'iLKXN':'Default','hYBsS':_0x11809b(0x1a5),'zUoVz':'info'},_0x6e5f33=_0x11809b(0x18b)+(_0xf52e36['environment']||'Node.js')[_0x11809b(0x210)](0x26)+_0x11809b(0x1dc)+(_0xf52e36['project']||_0x59fab8[_0x11809b(0x18c)])[_0x11809b(0x210)](0x26)+_0x11809b(0x18f)+_0x59fab8[_0x11809b(0x178)](String,_0xf52e36[_0x11809b(0x177)]||0xbb8)[_0x11809b(0x210)](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0xf52e36[_0x11809b(0x1f7)]||_0x59fab8[_0x11809b(0x19b)])['padEnd'](0x26)+_0x11809b(0x1fc)+(_0xf52e36[_0x11809b(0x205)]?_0x11809b(0x1be):'NOT\x20ACTIVE')['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console['log'](_0x6e5f33);const _0x3a8846={'event':_0x59fab8[_0x11809b(0x1a0)],'project':_0xf52e36['project'],'port':_0xf52e36[_0x11809b(0x177)],'config':_0xf52e36[_0x11809b(0x1f7)],'apiKeyEnabled':!!_0xf52e36['apiKey']};logger['info'](_0x3a8846),writeToFileLog({..._0x3a8846,'level':_0x59fab8['zUoVz'],'msg':'Server\x20starting:\x20'+_0xf52e36[_0x11809b(0x220)]+_0x11809b(0x229)+_0xf52e36['port'],'time':new Date()[_0x11809b(0x1df)]()},_0x59fab8[_0x11809b(0x22a)]);},logServerReady=_0x522b2e=>{const _0x5123f5=a0_0x1f6eea,_0x5af878={'tUsfB':'server_ready','emsIs':'info'},_0x42017a={'event':_0x5af878[_0x5123f5(0x227)],'port':_0x522b2e[_0x5123f5(0x177)],'module':_0x522b2e[_0x5123f5(0x19c)],'healthCheck':_0x522b2e[_0x5123f5(0x1ba)],'serviceInfo':_0x522b2e['serviceInfo'],'baseUrl':_0x522b2e['baseUrl']},_0x4b9960='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x522b2e['port'];logger[_0x5123f5(0x1f5)](_0x42017a,_0x4b9960),writeToFileLog({..._0x42017a,'level':_0x5af878[_0x5123f5(0x1d4)],'msg':_0x4b9960,'time':new Date()['toISOString']()},_0x5af878['emsIs']),_0x522b2e['healthCheck']&&logger['info']('\x20\x20Health:\x20'+_0x522b2e['healthCheck']),_0x522b2e[_0x5123f5(0x218)]&&logger['info'](_0x5123f5(0x1af)+_0x522b2e[_0x5123f5(0x218)]),_0x522b2e['baseUrl']&&logger[_0x5123f5(0x1f5)]('\x20\x20URL:\x20\x20\x20\x20'+_0x522b2e[_0x5123f5(0x208)]);},logProjectLoaded=(_0x1d9ae6,_0x5f0588)=>{const _0x5f26c2=a0_0x1f6eea,_0x42109c={'qxTOV':'project_loaded','RfUIL':function(_0x3fc646,_0x411cf6,_0x543f3d){return _0x3fc646(_0x411cf6,_0x543f3d);},'rFcIn':_0x5f26c2(0x1f5)},_0x37f471={'event':_0x42109c[_0x5f26c2(0x17f)],'project':_0x1d9ae6,'path':_0x5f0588},_0x5a736d='[OK]\x20Project\x20loaded:\x20'+_0x1d9ae6;logger['info'](_0x37f471,_0x5a736d),_0x42109c[_0x5f26c2(0x175)](writeToFileLog,{..._0x37f471,'level':_0x42109c[_0x5f26c2(0x1a1)],'msg':_0x5a736d,'time':new Date()[_0x5f26c2(0x1df)]()},_0x42109c['rFcIn']);},logEndpointRegistered=(_0x3e7236,_0x41f3dc)=>{const _0x529014=a0_0x1f6eea,_0x17b8a0={'pWSSt':'endpoint_registered','vLirW':_0x529014(0x1d9)},_0x944ea4={'event':_0x17b8a0['pWSSt'],'endpoint':_0x3e7236,'route':_0x41f3dc},_0xa5ae8d='\x20\x20→\x20'+_0x3e7236+':\x20'+_0x41f3dc;logger[_0x529014(0x1d9)](_0x944ea4,_0xa5ae8d),writeToFileLog({..._0x944ea4,'level':_0x17b8a0['vLirW'],'msg':_0xa5ae8d,'time':new Date()[_0x529014(0x1df)]()},_0x17b8a0['vLirW']);},logDatabaseConfig=_0x10364a=>{const _0x432aab=a0_0x1f6eea,_0x2d0a39={'bLTHb':function(_0x4c5a98,_0x4f0a69,_0x452d15){return _0x4c5a98(_0x4f0a69,_0x452d15);}},_0x4ca696={'event':'database_config','host':_0x10364a[_0x432aab(0x17e)],'port':_0x10364a['port'],'database':_0x10364a['database'],'type':_0x10364a[_0x432aab(0x206)],'user':_0x10364a[_0x432aab(0x197)]},_0x4e09d5='Database:\x20'+_0x10364a['type']+'://'+_0x10364a['host']+':'+_0x10364a[_0x432aab(0x177)]+'/'+_0x10364a['database'];logger[_0x432aab(0x1d9)](_0x4ca696,_0x4e09d5),_0x2d0a39[_0x432aab(0x18a)](writeToFileLog,{..._0x4ca696,'level':'debug','msg':_0x4e09d5,'time':new Date()['toISOString']()},_0x432aab(0x1d9));},logRequest=(_0x2912fa,_0x590e1b,_0x6be406)=>{const _0xdfeccf=a0_0x1f6eea,_0x3160e6={'KfbAp':function(_0x3e8618,_0x2c8f85){return _0x3e8618>=_0x2c8f85;},'kVrdt':'error'},_0x3e22a0={'event':_0xdfeccf(0x207),'method':_0x2912fa['method'],'path':_0x2912fa[_0xdfeccf(0x21a)],'statusCode':_0x590e1b['statusCode'],'durationMs':_0x6be406,'ip':_0x2912fa['ip']},_0x4aa0d6=_0x2912fa[_0xdfeccf(0x185)]+'\x20'+_0x2912fa['path']+'\x20-\x20'+_0x590e1b[_0xdfeccf(0x1f0)]+'\x20('+_0x6be406+'ms)';let _0x545014='info';if(_0x3160e6[_0xdfeccf(0x221)](_0x590e1b[_0xdfeccf(0x1f0)],0x1f4))_0x545014=_0x3160e6['kVrdt'],logger[_0xdfeccf(0x1cc)](_0x3e22a0,_0x4aa0d6);else _0x590e1b['statusCode']>=0x190?(_0x545014=_0xdfeccf(0x1ee),logger['warn'](_0x3e22a0,_0x4aa0d6)):logger[_0xdfeccf(0x1f5)](_0x3e22a0,_0x4aa0d6);writeToFileLog({..._0x3e22a0,'level':_0x545014,'msg':_0x4aa0d6,'time':new Date()['toISOString']()},_0x545014);},SENSITIVE_PARAM_PATTERNS=[a0_0x1f6eea(0x1bb),'passwd',a0_0x1f6eea(0x214),'token',a0_0x1f6eea(0x1aa),a0_0x1f6eea(0x1e3),a0_0x1f6eea(0x202),'api_secret','apikey','api_key',a0_0x1f6eea(0x1ca),a0_0x1f6eea(0x1b0),'pin',a0_0x1f6eea(0x172),'private_key','privatekey'],redactSensitiveParams=(_0x7d7031,_0x20503a)=>{const _0x2c0dab=a0_0x1f6eea,_0x446bb1={'WYFYw':'[REDACTED]','pvEsu':'string','OKlWN':function(_0x1700bc,_0x3367d8){return _0x1700bc>_0x3367d8;},'Geltu':_0x2c0dab(0x219),'bMkQB':_0x2c0dab(0x1fd),'zGmZy':function(_0x39561b,_0x9b6841){return _0x39561b===_0x9b6841;}};if(!_0x7d7031||_0x446bb1['zGmZy'](_0x7d7031[_0x2c0dab(0x209)],0x0))return _0x7d7031;const _0x5651d9=_0x20503a[_0x2c0dab(0x203)](),_0x5703db=_0x5651d9['match'](/\(([^)]+)\)\s*values/i);let _0x4a133b=[];_0x5703db&&(_0x4a133b=_0x5703db[0x1]['split'](',')['map'](_0x2c9f51=>_0x2c9f51[_0x2c0dab(0x1ea)]()[_0x2c0dab(0x203)]()));const _0x2f841e=_0x5651d9['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x2f841e){const _0x4fe54d=_0x2f841e[0x1],_0xe7be11=_0x4fe54d['match'](/(\w+)\s*=/g);_0xe7be11&&(_0x4a133b=_0xe7be11['map'](_0x215ac1=>_0x215ac1[_0x2c0dab(0x1d5)](/\s*=/,'')[_0x2c0dab(0x1ea)]()[_0x2c0dab(0x203)]()));}return _0x7d7031['map']((_0xd74313,_0x41e8f2)=>{const _0x259161=_0x2c0dab;if(_0x4a133b[_0x41e8f2]){const _0x4ad155=_0x4a133b[_0x41e8f2],_0x208516=SENSITIVE_PARAM_PATTERNS[_0x259161(0x1bc)](_0xc1ff35=>_0x4ad155[_0x259161(0x18e)](_0xc1ff35));if(_0x208516)return _0x446bb1[_0x259161(0x1db)];}if(typeof _0xd74313===_0x446bb1[_0x259161(0x182)]&&_0x446bb1['OKlWN'](_0xd74313[_0x259161(0x209)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x259161(0x1c1)](_0xd74313)&&_0xd74313['includes']('.'))return _0x446bb1[_0x259161(0x174)];if(/^[a-fA-F0-9]{32,}$/[_0x259161(0x1c1)](_0xd74313))return _0x446bb1[_0x259161(0x201)];}return _0xd74313;});},parseQueryMetadata=_0x387774=>{const _0xead149=a0_0x1f6eea,_0x5dd26f={'iBnxr':'INSERT','KKXjQ':_0xead149(0x1f8),'fEvSm':_0xead149(0x215),'mSyVI':_0xead149(0x1c5),'BdDHc':_0xead149(0x200),'vAHOP':'DROP'},_0x5d9f1d=_0x387774['trim'](),_0x3b0bb8=_0x5d9f1d[_0xead149(0x1c7)]();let _0x5dcb42='UNKNOWN',_0x197a17=null;if(_0x3b0bb8[_0xead149(0x186)](_0xead149(0x224))){_0x5dcb42=_0xead149(0x224);const _0x39d150=_0x5d9f1d['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x197a17=_0x39d150?_0x39d150[0x1]:null;}else{if(_0x3b0bb8['startsWith'](_0xead149(0x223))){_0x5dcb42=_0x5dd26f['iBnxr'];const _0x54c328=_0x5d9f1d[_0xead149(0x1ec)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x197a17=_0x54c328?_0x54c328[0x1]:null;}else{if(_0x3b0bb8[_0xead149(0x186)]('UPDATE')){_0x5dcb42=_0xead149(0x1b5);const _0x2cfd52=_0x5d9f1d[_0xead149(0x1ec)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x197a17=_0x2cfd52?_0x2cfd52[0x1]:null;}else{if(_0x3b0bb8['startsWith'](_0xead149(0x1c3))){_0x5dcb42=_0xead149(0x1c3);const _0x252752=_0x5d9f1d[_0xead149(0x1ec)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x197a17=_0x252752?_0x252752[0x1]:null;}else{if(_0x3b0bb8[_0xead149(0x186)](_0xead149(0x1f9))||_0x3b0bb8['startsWith'](_0x5dd26f[_0xead149(0x20a)]))_0x5dcb42=_0x5dd26f[_0xead149(0x1a8)];else{if(_0x3b0bb8['startsWith']('COMMIT'))_0x5dcb42='TRANSACTION_COMMIT';else{if(_0x3b0bb8['startsWith'](_0xead149(0x173)))_0x5dcb42='TRANSACTION_ROLLBACK';else{if(_0x3b0bb8[_0xead149(0x186)](_0xead149(0x17b)))_0x5dcb42='DDL_CREATE';else{if(_0x3b0bb8[_0xead149(0x186)](_0x5dd26f['mSyVI']))_0x5dcb42=_0x5dd26f[_0xead149(0x189)];else _0x3b0bb8[_0xead149(0x186)](_0x5dd26f['vAHOP'])&&(_0x5dcb42='DDL_DROP');}}}}}}}}return{'type':_0x5dcb42,'table':_0x197a17};},startQueryTimer=()=>{const _0x45336f=process['hrtime']();return()=>{const _0x399ebf=a0_0x5082,[_0x1083cb,_0x16037d]=process['hrtime'](_0x45336f);return parseFloat((_0x1083cb*0x3e8+_0x16037d/0xf4240)[_0x399ebf(0x196)](0x2));};},logQuery=(_0xf4e4ba,_0x47ae98=[],_0x24c1da={})=>{const _0x13d3dc=a0_0x1f6eea,_0x5b3904={'mjIOE':_0x13d3dc(0x1ed),'KimiQ':function(_0x27bafc,_0x3f06b8){return _0x27bafc(_0x3f06b8);},'QNkLS':function(_0x18525e,_0x34b88d){return _0x18525e>_0x34b88d;},'GNqSO':function(_0xa25980,_0x1fa2e0,_0x5c9f4b){return _0xa25980(_0x1fa2e0,_0x5c9f4b);},'yuSAp':function(_0xdb338b,_0x1efd90){return _0xdb338b!==_0x1efd90;},'JGiQe':function(_0x11d0bc,_0x3f29ca){return _0x11d0bc||_0x3f29ca;},'BLBdN':_0x13d3dc(0x1d9),'lYNKw':'warn','twnwL':_0x13d3dc(0x1f5)};if(!sqlLogEnabled){logger['debug']({'event':_0x13d3dc(0x1ce),'query':_0xf4e4ba['substring'](0x0,0xc8),'paramCount':_0x47ae98['length']},_0x5b3904['mjIOE']);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x13d3dc(0x1d8)}=_0x24c1da,{type:_0x2bb1bf,table:_0x371ddc}=_0x5b3904[_0x13d3dc(0x190)](parseQueryMetadata,_0xf4e4ba),_0x2be263={'event':_0x13d3dc(0x193),'queryType':_0x2bb1bf,'table':_0x371ddc,'query':_0xf4e4ba,'paramCount':_0x47ae98[_0x13d3dc(0x209)],'dbType':dbType};sqlLogParams&&_0x5b3904['QNkLS'](_0x47ae98['length'],0x0)&&(_0x2be263['params']=_0x5b3904['GNqSO'](redactSensitiveParams,_0x47ae98,_0xf4e4ba));_0x5b3904[_0x13d3dc(0x1d3)](duration,null)&&(_0x2be263['durationMs']=duration,_0x2be263['isSlow']=_0x5b3904[_0x13d3dc(0x1e4)](duration,sqlLogSlowThreshold));_0x5b3904['yuSAp'](rowsAffected,null)&&(_0x2be263['rowsAffected']=rowsAffected);const _0x23c9d7=_0x5b3904[_0x13d3dc(0x1c0)](_0x371ddc,'unknown');let _0x49d2f1='['+_0x2bb1bf+']\x20'+_0x23c9d7;duration!==null&&(_0x49d2f1+='\x20('+duration+_0x13d3dc(0x1e8));const _0x58e82e=duration!==null&&duration>sqlLogSlowThreshold;let _0x2bc2c8=_0x5b3904['BLBdN'];if(_0x58e82e)_0x49d2f1+=_0x13d3dc(0x1c2),_0x2bc2c8=_0x5b3904['lYNKw'],logger[_0x13d3dc(0x1ee)](_0x2be263,_0x49d2f1);else sqlLogLevel===_0x5b3904['twnwL']?(_0x2bc2c8='info',logger[_0x13d3dc(0x1f5)](_0x2be263,_0x49d2f1)):logger[_0x13d3dc(0x1d9)](_0x2be263,_0x49d2f1);writeToFileLog({..._0x2be263,'level':_0x2bc2c8,'msg':_0x49d2f1,'time':new Date()[_0x13d3dc(0x1df)]()},_0x2bc2c8);},logTransaction=(_0x309256,_0x4015dc)=>{const _0x378ec0=a0_0x1f6eea,_0x296f07={'gELOn':function(_0xd7614d,_0x27a1d3,_0x8efce){return _0xd7614d(_0x27a1d3,_0x8efce);},'sqnNG':'debug'},_0x26af72={'event':'db_transaction','status':_0x309256,'queryCount':_0x4015dc},_0x387224='Transaction\x20'+_0x309256;logger[_0x378ec0(0x1d9)](_0x26af72,_0x387224),_0x296f07[_0x378ec0(0x211)](writeToFileLog,{..._0x26af72,'level':_0x296f07['sqnNG'],'msg':_0x387224,'time':new Date()[_0x378ec0(0x1df)]()},_0x378ec0(0x1d9));},redactObject=_0xee4199=>{const _0x490bac=a0_0x1f6eea,_0x5ecb42={'qmPAu':'pwd','VplZs':'token','Ztkad':_0x490bac(0x1e1),'aaiUY':'creditcard','lLAjs':'cvv','YoIMr':_0x490bac(0x1f4),'HjfSk':'privatekey','vpjsr':_0x490bac(0x1aa),'qoJFb':function(_0x5317a5,_0x230486){return _0x5317a5===_0x230486;},'XXauY':_0x490bac(0x1d7),'WZtwK':function(_0x5a417c,_0x16661b){return _0x5a417c(_0x16661b);}};if(!_0xee4199||typeof _0xee4199!=='object')return _0xee4199;const _0xcd6d8e=[_0x490bac(0x1bb),'passwd',_0x5ecb42[_0x490bac(0x1fe)],_0x5ecb42[_0x490bac(0x1a4)],'secret','apikey',_0x5ecb42['Ztkad'],_0x490bac(0x212),_0x5ecb42[_0x490bac(0x171)],_0x490bac(0x213),_0x5ecb42[_0x490bac(0x19d)],_0x490bac(0x1e5),_0x5ecb42['YoIMr'],_0x490bac(0x19f),_0x5ecb42[_0x490bac(0x170)],_0x490bac(0x1e3),_0x5ecb42['vpjsr']],_0x51f366=Array[_0x490bac(0x188)](_0xee4199)?[..._0xee4199]:{..._0xee4199};for(const _0x45af79 of Object['keys'](_0x51f366)){const _0x508dd9=_0x45af79[_0x490bac(0x203)]();if(_0xcd6d8e['some'](_0x236ff3=>_0x508dd9[_0x490bac(0x18e)](_0x236ff3)))_0x51f366[_0x45af79]='[REDACTED]';else _0x5ecb42['qoJFb'](typeof _0x51f366[_0x45af79],_0x5ecb42['XXauY'])&&_0x51f366[_0x45af79]!==null&&(_0x51f366[_0x45af79]=_0x5ecb42['WZtwK'](redactObject,_0x51f366[_0x45af79]));}return _0x51f366;},logError=(_0x592330,_0x1d1af4={},_0x156b65=null)=>{const _0x414d7f=a0_0x1f6eea,_0x561475={'hcGNA':'error','rDMsN':function(_0x2cb2b2,_0x183525,_0x147fad){return _0x2cb2b2(_0x183525,_0x147fad);}},_0x3cb518={'event':_0x561475['hcGNA'],'errorName':_0x592330['name']||_0x414d7f(0x1b3),'errorMessage':_0x592330['message'],'errorCode':_0x592330['code']||null,'stack':_0x592330['stack'],..._0x1d1af4},_0x213204=_0x156b65||'Error:\x20'+_0x592330['message'];logger['error'](_0x3cb518,_0x213204),_0x561475[_0x414d7f(0x181)](writeToFileLog,{..._0x3cb518,'level':_0x561475['hcGNA'],'msg':_0x213204,'time':new Date()[_0x414d7f(0x1df)]()},_0x414d7f(0x1cc));},logFatalError=(_0x200af3,_0x8a0190={},_0x134ab9=null)=>{const _0x1b11a1=a0_0x1f6eea,_0xd82ad6={'zlEpD':_0x1b11a1(0x176)},_0x2b9ea4={'event':_0x1b11a1(0x1d0),'errorName':_0x200af3[_0x1b11a1(0x1bf)]||'Error','errorMessage':_0x200af3['message'],'errorCode':_0x200af3['code']||null,'stack':_0x200af3['stack'],'severity':_0x1b11a1(0x184),..._0x8a0190},_0x1e9313=_0x134ab9||_0x1b11a1(0x17c)+_0x200af3[_0x1b11a1(0x21b)];logger[_0x1b11a1(0x176)](_0x2b9ea4,_0x1e9313),writeToFileLog({..._0x2b9ea4,'level':_0xd82ad6[_0x1b11a1(0x1c9)],'msg':_0x1e9313,'time':new Date()[_0x1b11a1(0x1df)]()},_0x1b11a1(0x1cc));},logHttpError=(_0x565c5f,_0x426dce,_0x57e38b={})=>{const _0xe6f042=a0_0x1f6eea,_0x1b1ce8={'tTSli':_0xe6f042(0x1f1),'XHWGT':'user-agent','ftriO':_0xe6f042(0x1c8),'mHRmq':function(_0x454acd,_0x1701d9){return _0x454acd>=_0x1701d9;},'sAins':function(_0x32b6bd,_0x4eb4f4,_0x2431e5){return _0x32b6bd(_0x4eb4f4,_0x2431e5);},'ZyrQL':'error','zwwdk':_0xe6f042(0x1ee)},_0xdb7587={'event':_0x1b1ce8['tTSli'],'errorName':_0x565c5f['name']||_0xe6f042(0x1b3),'errorMessage':_0x565c5f['message'],'errorCode':_0x565c5f[_0xe6f042(0x226)]||_0x565c5f[_0xe6f042(0x1f0)]||0x1f4,'stack':_0x565c5f['stack'],'method':_0x426dce?.[_0xe6f042(0x185)],'url':_0x426dce?.['url']||_0x426dce?.[_0xe6f042(0x1a6)],'path':_0x426dce?.['path'],'ip':_0x426dce?.['ip']||_0x426dce?.[_0xe6f042(0x20b)]?.['remoteAddress'],'userAgent':_0x426dce?.[_0xe6f042(0x1cb)]?.(_0x1b1ce8[_0xe6f042(0x1f6)]),'requestId':_0x426dce?.['id']||_0x426dce?.[_0xe6f042(0x179)]?.[_0x1b1ce8['ftriO']],'body':_0x426dce?.[_0xe6f042(0x20d)]?redactObject(_0x426dce[_0xe6f042(0x20d)]):undefined,'query':_0x426dce?.[_0xe6f042(0x225)],..._0x57e38b},_0x3cb869=_0x565c5f['statusCode']||_0x565c5f['status']||0x1f4,_0x34c55d=_0xe6f042(0x1b7)+_0x3cb869+':\x20'+_0x565c5f['message'];_0x1b1ce8['mHRmq'](_0x3cb869,0x1f4)?logger[_0xe6f042(0x1cc)](_0xdb7587,_0x34c55d):logger['warn'](_0xdb7587,_0x34c55d),_0x1b1ce8['sAins'](writeToFileLog,{..._0xdb7587,'level':_0x3cb869>=0x1f4?_0x1b1ce8[_0xe6f042(0x1b2)]:_0x1b1ce8['zwwdk'],'msg':_0x34c55d,'time':new Date()[_0xe6f042(0x1df)]()},_0x3cb869>=0x1f4?_0x1b1ce8['ZyrQL']:_0x1b1ce8['zwwdk']);},logUncaughtError=(_0x4a103b,_0x2771d5)=>{const _0x15159c=a0_0x1f6eea,_0xc027c1={'PVGSb':function(_0x48abdb,_0x362146){return _0x48abdb(_0x362146);},'odFbg':'CRITICAL','LIgAN':function(_0x1fadda,_0xf76ccf,_0x55fd29){return _0x1fadda(_0xf76ccf,_0x55fd29);},'OLIaA':'fatal'},_0x5e9807={'event':_0x4a103b,'errorName':_0x2771d5?.[_0x15159c(0x1bf)]||_0x15159c(0x1b3),'errorMessage':_0x2771d5?.[_0x15159c(0x21b)]||_0xc027c1[_0x15159c(0x20c)](String,_0x2771d5),'errorCode':_0x2771d5?.[_0x15159c(0x226)]||null,'stack':_0x2771d5?.[_0x15159c(0x180)],'severity':_0xc027c1['odFbg'],'processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0x493ec2='['+_0x4a103b[_0x15159c(0x1c7)]()+']\x20'+(_0x2771d5?.['message']||_0x2771d5);logger[_0x15159c(0x176)](_0x5e9807,_0x493ec2),_0xc027c1[_0x15159c(0x1a7)](writeToFileLog,{..._0x5e9807,'level':_0xc027c1[_0x15159c(0x199)],'msg':_0x493ec2,'time':new Date()['toISOString']()},_0x15159c(0x1cc));},setupGlobalErrorHandlers=()=>{const _0x91c3a2=a0_0x1f6eea,_0x14df7c={'ZrpFH':function(_0x4788c5,_0xd35f74,_0x219463){return _0x4788c5(_0xd35f74,_0x219463);},'QxMXx':'uncaughtException','uNmFy':function(_0x9bb25c,_0x26ff99){return _0x9bb25c(_0x26ff99);},'Prrfe':'process_warning','SfkjB':'warning','DUcjx':'global_error_handlers_setup'};process['on'](_0x91c3a2(0x1de),_0x16fd40=>{_0x14df7c['ZrpFH'](logUncaughtError,_0x14df7c['QxMXx'],_0x16fd40),setTimeout(()=>{const _0x3c3f76=a0_0x5082;process[_0x3c3f76(0x222)](0x1);},0x3e8);}),process['on'](_0x91c3a2(0x1d1),(_0x56e9e4,_0x538b87)=>{const _0x5c6de8=_0x91c3a2,_0x31652a=_0x56e9e4 instanceof Error?_0x56e9e4:new Error(_0x14df7c[_0x5c6de8(0x1cf)](String,_0x56e9e4));logUncaughtError('unhandledRejection',_0x31652a);}),process['on'](_0x14df7c[_0x91c3a2(0x1b4)],_0x521648=>{const _0x2e757d=_0x91c3a2;logger['warn']({'event':_0x14df7c[_0x2e757d(0x1c4)],'name':_0x521648[_0x2e757d(0x1bf)],'message':_0x521648[_0x2e757d(0x21b)],'stack':_0x521648['stack']},'Process\x20Warning:\x20'+_0x521648['message']);});const _0x4a5bb7={'event':_0x14df7c[_0x91c3a2(0x1a2)]},_0x3fc46a='Global\x20error\x20handlers\x20initialized';logger[_0x91c3a2(0x1f5)](_0x4a5bb7,_0x3fc46a),writeToFileLog({..._0x4a5bb7,'level':'info','msg':_0x3fc46a,'time':new Date()['toISOString']()},'info');},createErrorHandlerMiddleware=()=>{const _0x1f43a7={'HYBcH':function(_0x1c3447,_0x513031){return _0x1c3447>=_0x513031;},'XIICZ':'x-request-id'};return(_0x61948b,_0x784b8d,_0x2decd0,_0x5bca25)=>{const _0x291100=a0_0x5082;logHttpError(_0x61948b,_0x784b8d);const _0x1cfaf9=_0x61948b[_0x291100(0x1f0)]||_0x61948b[_0x291100(0x17d)]||0x1f4;_0x2decd0['status'](_0x1cfaf9)[_0x291100(0x183)]({'success':![],'error':_0x1f43a7['HYBcH'](_0x1cfaf9,0x1f4)?'Internal\x20server\x20error':_0x61948b['message'],'requestId':_0x784b8d['id']||_0x784b8d[_0x291100(0x179)]?.[_0x1f43a7['XIICZ']]||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_0x5bdfcb=a0_0x39c7;(function(_0x5aae08,_0x399337){const _0x2be000=a0_0x39c7,_0xc65ca9=_0x5aae08();while(!![]){try{const _0x113a24=-parseInt(_0x2be000(0x189))/0x1*(parseInt(_0x2be000(0x17b))/0x2)+parseInt(_0x2be000(0x196))/0x3*(parseInt(_0x2be000(0x194))/0x4)+parseInt(_0x2be000(0x18c))/0x5+parseInt(_0x2be000(0x18e))/0x6*(-parseInt(_0x2be000(0x199))/0x7)+parseInt(_0x2be000(0x182))/0x8*(-parseInt(_0x2be000(0x17e))/0x9)+parseInt(_0x2be000(0x17d))/0xa*(-parseInt(_0x2be000(0x197))/0xb)+parseInt(_0x2be000(0x180))/0xc*(parseInt(_0x2be000(0x187))/0xd);if(_0x113a24===_0x399337)break;else _0xc65ca9['push'](_0xc65ca9['shift']());}catch(_0x246998){_0xc65ca9['push'](_0xc65ca9['shift']());}}}(a0_0x2f25,0x6874c));const fs=require('fs')['promises'],path=require(a0_0x5bdfcb(0x183)),{logger}=require(a0_0x5bdfcb(0x184));function a0_0x39c7(_0x30f3cd,_0x386d74){_0x30f3cd=_0x30f3cd-0x17a;const _0x2f2595=a0_0x2f25();let _0x39c7a7=_0x2f2595[_0x30f3cd];if(a0_0x39c7['vQMXst']===undefined){var _0x4d84cf=function(_0x2c8439){const _0x591b01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3a126f='',_0x311382='';for(let _0x3e487c=0x0,_0x172572,_0x4820d7,_0x3ac6cf=0x0;_0x4820d7=_0x2c8439['charAt'](_0x3ac6cf++);~_0x4820d7&&(_0x172572=_0x3e487c%0x4?_0x172572*0x40+_0x4820d7:_0x4820d7,_0x3e487c++%0x4)?_0x3a126f+=String['fromCharCode'](0xff&_0x172572>>(-0x2*_0x3e487c&0x6)):0x0){_0x4820d7=_0x591b01['indexOf'](_0x4820d7);}for(let _0x14bfe8=0x0,_0x5f19ce=_0x3a126f['length'];_0x14bfe8<_0x5f19ce;_0x14bfe8++){_0x311382+='%'+('00'+_0x3a126f['charCodeAt'](_0x14bfe8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x311382);};a0_0x39c7['kievtU']=_0x4d84cf,a0_0x39c7['yyTjaQ']={},a0_0x39c7['vQMXst']=!![];}const _0x185d81=_0x2f2595[0x0],_0x1f6406=_0x30f3cd+_0x185d81,_0x54304d=a0_0x39c7['yyTjaQ'][_0x1f6406];return!_0x54304d?(_0x39c7a7=a0_0x39c7['kievtU'](_0x39c7a7),a0_0x39c7['yyTjaQ'][_0x1f6406]=_0x39c7a7):_0x39c7a7=_0x54304d,_0x39c7a7;}class PayloadLoader{constructor(){const _0x3cbe61=a0_0x5bdfcb;this['payloadDir']=path['join'](__dirname,'../../payload'),this[_0x3cbe61(0x18f)]=new Map();}async[a0_0x5bdfcb(0x181)](_0x41ad2a,_0x248884){const _0x37d8ce=a0_0x5bdfcb,_0x5b2961={'XmLqY':'utf8','yTzhy':'payload_loaded','LPWLL':'payload_load_error','sypKn':'Failed\x20to\x20load\x20payload'},_0x163907=_0x41ad2a+':'+_0x248884;if(this['cache']['has'](_0x163907))return this[_0x37d8ce(0x18f)]['get'](_0x163907);const _0x4d5b3f=path['join'](this[_0x37d8ce(0x18d)],_0x41ad2a+'_'+_0x248884+'.json');try{const _0x8e8c7b=await fs['readFile'](_0x4d5b3f,_0x5b2961['XmLqY']),_0x516c41=JSON['parse'](_0x8e8c7b);return this['cache']['set'](_0x163907,_0x516c41),logger[_0x37d8ce(0x190)]({'event':_0x5b2961['yTzhy'],'project':_0x41ad2a,'resource':_0x248884},_0x37d8ce(0x198)),_0x516c41;}catch(_0x541221){logger['error']({'event':_0x5b2961['LPWLL'],'project':_0x41ad2a,'resource':_0x248884,'error':_0x541221['message']},_0x5b2961['sypKn']);throw new Error('Payload\x20not\x20found:\x20'+_0x41ad2a+'_'+_0x248884);}}async['loadPayloadByName'](_0x4e33f0){const _0x3e7723=a0_0x5bdfcb,_0x1ca5e8={'WgCUK':'payload_loaded','gxkud':'Payload\x20loaded\x20successfully\x20by\x20name'},_0xc20be0='payload:'+_0x4e33f0;if(this['cache']['has'](_0xc20be0))return this['cache'][_0x3e7723(0x18b)](_0xc20be0);const _0x554722=path['join'](this['payloadDir'],_0x4e33f0+'.json');try{const _0x289fac=await fs['readFile'](_0x554722,_0x3e7723(0x18a)),_0x10a831=JSON[_0x3e7723(0x195)](_0x289fac);return this[_0x3e7723(0x18f)][_0x3e7723(0x17a)](_0xc20be0,_0x10a831),logger[_0x3e7723(0x190)]({'event':_0x1ca5e8['WgCUK'],'payloadName':_0x4e33f0},_0x1ca5e8['gxkud']),_0x10a831;}catch(_0x3a502c){logger[_0x3e7723(0x188)]({'event':'payload_load_error','payloadName':_0x4e33f0,'error':_0x3a502c[_0x3e7723(0x192)]},'Failed\x20to\x20load\x20payload\x20by\x20name');throw new Error('Payload\x20not\x20found:\x20'+_0x4e33f0);}}['isActionEnabled'](_0x74325a,_0x4e35aa){return _0x74325a['action']&&_0x74325a['action'][_0x4e35aa]===!![];}[a0_0x5bdfcb(0x185)](_0x23d38e){const _0x1ba6c9=a0_0x5bdfcb;return{'columns':_0x23d38e['fieldName']||[],'filename':_0x23d38e['tableName']['replace']('.','-')+_0x1ba6c9(0x191),'datatablesQuery':_0x23d38e[_0x1ba6c9(0x17c)]||null,'columnFormats':_0x23d38e['columnFormats']||null,'fieldLabels':_0x23d38e['fieldLabels']||null};}['clearCache'](){const _0x46b00f=a0_0x5bdfcb;this['cache']['clear'](),logger[_0x46b00f(0x193)]({'event':_0x46b00f(0x17f)},'Payload\x20cache\x20cleared');}}module[a0_0x5bdfcb(0x186)]=new PayloadLoader();function a0_0x2f25(){const _0x4088b=['nhvHDhvzyq','CgfYC2u','mtiXnZq1muvhqNnWBa','ndG1mtqWn0rSDgX6Dq','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','n3jXruPbEq','C2v0','mteZnZrpzwXiBhq','zgf0yxrHyMXLC1f1zxj5','mtb1C3bJyKG','nte4mZu1Aw1IuNr6','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','mtjusK9sqxm','Bg9HzfbHEwXVywq','ndHoD3nlreW','Cgf0Aa','lI9SB2DNzxi','z2v0rxHWB3j0q29UzMLN','zxHWB3j0CW','mtqWnJmWmJnABLPVzMq','zxjYB3i','nJLVCe5zAe8','DxrMoa','z2v0','odKWmJi1tvvovwrc','Cgf5Bg9HzerPCG','mZuYnJi2wLruv25c','y2fJAgu','zgvIDwC','lwv4Cg9YDa','BwvZC2fNzq','Aw5MBW'];a0_0x2f25=function(){return _0x4088b;};return a0_0x2f25();}
|