@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.
Files changed (325) hide show
  1. package/SECURITY.md +83 -4
  2. package/bin/sdf-tools.exe +0 -0
  3. package/build-info.json +2 -2
  4. package/cli/consumer-deploy.js +1 -1
  5. package/cli/consumer.js +1 -1
  6. package/generators/cli/dashboard/create.js +4 -1
  7. package/generators/cli/endpoint/create.js +1 -1
  8. package/generators/cli/key/generate.js +2 -1
  9. package/generators/cli/key/revoke.js +2 -1
  10. package/generators/cli/payload/diff.js +3 -2
  11. package/generators/cli/payload/generate.js +3 -2
  12. package/generators/cli/payload/sync.js +3 -2
  13. package/generators/cli/payload/validate.js +3 -2
  14. package/generators/cli/processor/create.js +14 -3
  15. package/generators/cli/project/delete.js +2 -1
  16. package/generators/cli/query/validate.js +3 -2
  17. package/generators/cli/schema/apply.js +3 -2
  18. package/generators/cli/schema/describe.js +3 -2
  19. package/generators/cli/schema/diff.js +3 -2
  20. package/generators/cli/schema/introspect.js +3 -2
  21. package/generators/cli/schema/list.js +3 -2
  22. package/generators/cli/schema/migrate.js +3 -2
  23. package/generators/lib/migration/audit-table-runner.js +213 -215
  24. package/generators/lib/payload/payload-runner.js +1 -1
  25. package/generators/lib/templates/dashboard-catalog.js +1 -437
  26. package/generators/lib/templates/db-connection-env.js +1 -212
  27. package/generators/lib/templates/dbschema-catalog.js +1 -489
  28. package/generators/lib/templates/field-validation-catalog.js +1 -531
  29. package/generators/lib/templates/mysql-template.js +1 -3863
  30. package/generators/lib/templates/oracle-template.js +1 -3915
  31. package/generators/lib/templates/postgres-template.js +1 -5838
  32. package/generators/lib/templates/query-declarative-catalog.js +1 -199
  33. package/generators/lib/templates/sqlite-template.js +1 -3440
  34. package/generators/lib/utils/env-manager.js +6 -0
  35. package/generators/lib/utils/path-validator.js +71 -0
  36. package/generators/lib/validators/payload-validator.js +1 -2
  37. package/integrity-manifest.json +28 -10
  38. package/package.json +11 -3
  39. package/scripts/verify-integrity.js +1 -1
  40. package/server.js +1 -1
  41. package/src/components/handlers/adjust_handler.js +1 -1
  42. package/src/components/handlers/audit_handler.js +1 -1
  43. package/src/components/handlers/delete_handler.js +1 -1
  44. package/src/components/handlers/export_handler.js +1 -1
  45. package/src/components/handlers/import_handler.js +1 -1
  46. package/src/components/handlers/insert_handler.js +1 -1
  47. package/src/components/handlers/update_handler.js +1 -1
  48. package/src/components/handlers/upload_handler.js +1 -1
  49. package/src/components/handlers/workflow_handler.js +1 -1
  50. package/src/components/integrations/webhook.js +1 -1
  51. package/src/consumers/baseConsumer.js +1 -1
  52. package/src/consumers/declarativeMapper.js +1 -1
  53. package/src/consumers/handlers/apiHandler.js +1 -1
  54. package/src/consumers/handlers/consoleHandler.js +1 -1
  55. package/src/consumers/handlers/databaseHandler.js +1 -1
  56. package/src/consumers/handlers/index.js +1 -1
  57. package/src/consumers/handlers/kafkaHandler.js +1 -1
  58. package/src/consumers/index.js +1 -1
  59. package/src/consumers/messageTransformer.js +1 -1
  60. package/src/consumers/validator.js +1 -1
  61. package/src/core/db/dialect/base-dialect.js +1 -1
  62. package/src/core/db/dialect/index.js +1 -1
  63. package/src/core/db/dialect/mysql-dialect.js +1 -1
  64. package/src/core/db/dialect/oracle-dialect.js +1 -1
  65. package/src/core/db/dialect/postgres-dialect.js +1 -1
  66. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  67. package/src/core/db/flatten-helper.js +1 -1
  68. package/src/core/db/query-builder-error.js +1 -1
  69. package/src/core/db/query-builder.js +1 -1
  70. package/src/core/db/relation-helper.js +1 -1
  71. package/src/core/handlers/delete_handler.js +1 -1
  72. package/src/core/handlers/insert_handler.js +1 -1
  73. package/src/core/handlers/update_handler.js +1 -1
  74. package/src/core/models/base-model.js +1 -1
  75. package/src/core/utils/cache-manager.js +1 -1
  76. package/src/core/utils/component-engine.js +1 -1
  77. package/src/core/utils/context-builder.js +1 -1
  78. package/src/core/utils/datetime-formatter.js +1 -1
  79. package/src/core/utils/datetime-parser.js +1 -1
  80. package/src/core/utils/db.js +1 -1
  81. package/src/core/utils/logger.js +1 -1
  82. package/src/core/utils/payload-loader.js +1 -1
  83. package/src/core/utils/security-checks.js +1 -1
  84. package/src/middleware/body-options.js +1 -1
  85. package/src/middleware/cors.js +1 -1
  86. package/src/middleware/idempotency.js +1 -1
  87. package/src/middleware/rate-limiter.js +1 -1
  88. package/src/middleware/request-logger.js +1 -1
  89. package/src/middleware/security-headers.js +1 -1
  90. package/src/models/base-model-mysql.js +1 -1
  91. package/src/models/base-model-oracle.js +1 -1
  92. package/src/models/base-model-sqlite.js +1 -1
  93. package/src/models/base-model.js +1 -1
  94. package/src/pro/caching/redis-client.js +1 -1
  95. package/src/pro/caching/redis-helper.js +1 -1
  96. package/src/pro/consumers/baseConsumer.js +1 -1
  97. package/src/pro/consumers/declarativeMapper.js +1 -1
  98. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  99. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  100. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  101. package/src/pro/consumers/handlers/index.js +1 -1
  102. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  103. package/src/pro/consumers/index.js +1 -1
  104. package/src/pro/consumers/messageTransformer.js +1 -1
  105. package/src/pro/consumers/validator.js +1 -1
  106. package/src/pro/database/base-model-mysql.js +1 -1
  107. package/src/pro/database/base-model-oracle.js +1 -1
  108. package/src/pro/database/base-model-sqlite.js +1 -1
  109. package/src/pro/database/db-mysql.js +1 -1
  110. package/src/pro/database/db-oracle.js +1 -1
  111. package/src/pro/database/db-sqlite.js +1 -1
  112. package/src/pro/excel/excel-generator.js +1 -1
  113. package/src/pro/excel/excel-parser.js +1 -1
  114. package/src/pro/excel/export-service.js +1 -1
  115. package/src/pro/excel/export_handler.js +1 -1
  116. package/src/pro/excel/import-service.js +1 -1
  117. package/src/pro/excel/import-validator.js +1 -1
  118. package/src/pro/excel/import_handler.js +1 -1
  119. package/src/pro/excel/upsert-builder.js +1 -1
  120. package/src/pro/idgen/idgen-routes.js +1 -1
  121. package/src/pro/integrations/lookup-resolver.js +1 -1
  122. package/src/pro/integrations/upload-handler-v2.js +1 -1
  123. package/src/pro/integrations/upload-handler.js +1 -1
  124. package/src/pro/integrations/webhook.js +1 -1
  125. package/src/pro/locking/lock-routes.js +1 -1
  126. package/src/pro/locking/resource-lock-manager.js +1 -1
  127. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  128. package/src/pro/messaging/kafkaService.js +1 -1
  129. package/src/pro/messaging/messagehubService.js +1 -1
  130. package/src/pro/messaging/rabbitmqService.js +1 -1
  131. package/src/pro/scheduler/job-manager.js +1 -1
  132. package/src/pro/scheduler/job-routes.js +1 -1
  133. package/src/pro/scheduler/job-validator.js +1 -1
  134. package/src/pro/storage/base-storage-provider.js +1 -1
  135. package/src/pro/storage/file-metadata-helper.js +1 -1
  136. package/src/pro/storage/index.js +1 -1
  137. package/src/pro/storage/local-storage-provider.js +1 -1
  138. package/src/pro/storage/s3-storage-provider.js +1 -1
  139. package/src/pro/storage/upload-cleanup-job.js +1 -1
  140. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  141. package/src/pro/storage/upload-pending-tracker.js +1 -1
  142. package/src/pro/websocket/broadcast-helper.js +1 -1
  143. package/src/pro/websocket/index.js +1 -1
  144. package/src/pro/websocket/livesync-server.js +1 -1
  145. package/src/pro/websocket/ws-broadcaster.js +1 -1
  146. package/src/services/export-service.js +1 -1
  147. package/src/services/import-service.js +1 -1
  148. package/src/services/kafkaConsumerService.js +1 -1
  149. package/src/services/kafkaService.js +1 -1
  150. package/src/services/messagehubService.js +1 -1
  151. package/src/services/rabbitmqService.js +1 -1
  152. package/src/utils/cache-invalidation-registry.js +1 -1
  153. package/src/utils/cache-manager.js +1 -1
  154. package/src/utils/component-engine.js +1 -1
  155. package/src/utils/config-extractor.js +1 -1
  156. package/src/utils/consumerLogger.js +1 -1
  157. package/src/utils/context-builder.js +1 -1
  158. package/src/utils/dashboard-helpers.js +1 -1
  159. package/src/utils/dateHelper.js +1 -1
  160. package/src/utils/datetime-formatter.js +1 -1
  161. package/src/utils/datetime-parser.js +1 -1
  162. package/src/utils/db-bootstrap.js +1 -1
  163. package/src/utils/db-mysql.js +1 -1
  164. package/src/utils/db-oracle.js +1 -1
  165. package/src/utils/db-sqlite.js +1 -1
  166. package/src/utils/db.js +1 -1
  167. package/src/utils/demo-generator.js +1 -1
  168. package/src/utils/excel-generator.js +1 -1
  169. package/src/utils/excel-parser.js +1 -1
  170. package/src/utils/file-watcher.js +1 -1
  171. package/src/utils/id-generator.js +1 -1
  172. package/src/utils/idempotency-manager.js +1 -1
  173. package/src/utils/import-validator.js +1 -1
  174. package/src/utils/license-client.js +1 -1
  175. package/src/utils/lock-manager.js +1 -1
  176. package/src/utils/logger.js +1 -1
  177. package/src/utils/lookup-resolver.js +1 -1
  178. package/src/utils/payload-loader.js +1 -1
  179. package/src/utils/processor-response.js +1 -1
  180. package/src/utils/rabbitmq.js +1 -1
  181. package/src/utils/redis-client.js +1 -1
  182. package/src/utils/redis-helper.js +1 -1
  183. package/src/utils/request-scope.js +1 -1
  184. package/src/utils/security-checks.js +1 -1
  185. package/src/utils/service-resolver.js +1 -1
  186. package/src/utils/shutdown-coordinator.js +1 -1
  187. package/src/utils/trusted-keys.js +1 -1
  188. package/src/utils/upload-handler.js +1 -1
  189. package/src/utils/upsert-builder.js +1 -1
  190. package/src/utils/workflow-hook-executor.js +1 -1
  191. package/generators/metadata/global.json +0 -58
  192. package/generators/metadata/test-mysql-workbench.json +0 -118
  193. package/generators/metadata/test-mysql.json +0 -56
  194. package/generators/metadata/test-oracle-workbench.json +0 -118
  195. package/generators/metadata/test-oracle.json +0 -56
  196. package/generators/metadata/test-pg-workbench.json +0 -118
  197. package/generators/metadata/test-pg.json +0 -56
  198. package/generators/scripts/obfuscate-source.js +0 -356
  199. package/generators/scripts/validate-catalog.js +0 -430
  200. package/generators/scripts/validate-dbschema-catalog.js +0 -708
  201. package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
  202. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  203. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  204. package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
  205. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  206. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  207. package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
  208. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
  209. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
  210. package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
  211. package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
  212. package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
  213. package/generators/tests/fixtures/payloads/order-process.json +0 -52
  214. package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
  215. package/generators/tests/integration-tahap4b/README.md +0 -145
  216. package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
  217. package/generators/tests/integration-tahap4b/seed.sql +0 -53
  218. package/generators/tests/integration-tahap4b/verify.sql +0 -110
  219. package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
  220. package/generators/tests/unit/cli/create-processor.test.js +0 -319
  221. package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
  222. package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
  223. package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
  224. package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
  225. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
  226. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
  227. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
  228. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
  229. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
  230. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
  231. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
  232. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
  233. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
  234. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
  235. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
  236. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
  237. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
  238. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
  239. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
  240. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
  241. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
  242. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
  243. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
  244. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
  245. package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
  246. package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
  247. package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
  248. package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
  249. package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
  250. package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
  251. package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
  252. package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
  253. package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
  254. package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
  255. package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
  256. package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
  257. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
  258. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
  259. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
  260. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
  261. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
  262. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
  263. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
  264. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
  265. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
  266. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
  267. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
  268. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
  269. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
  270. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
  271. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
  272. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
  273. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
  274. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
  275. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
  276. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
  277. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
  278. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
  279. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
  280. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
  281. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
  282. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
  283. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
  284. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
  285. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
  286. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
  287. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
  288. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
  289. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
  290. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
  291. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
  292. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
  293. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
  294. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
  295. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
  296. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
  297. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
  298. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
  299. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
  300. package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
  301. package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
  302. package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
  303. package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
  304. package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
  305. package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
  306. package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
  307. package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
  308. package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
  309. package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
  310. package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
  311. package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
  312. package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
  313. package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
  314. package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
  315. package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
  316. package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
  317. package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
  318. package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
  319. package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
  320. package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
  321. package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
  322. package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
  323. package/scripts/generate-integrity-manifest.js +0 -124
  324. package/scripts/snapshot-cli-contracts.js +0 -194
  325. package/scripts/verify-publish.js +0 -56
@@ -1 +1 @@
1
- function a0_0x88b7(_0x2e18cf,_0x7b8984){_0x2e18cf=_0x2e18cf-0xf2;const _0x4dd18b=a0_0x4dd1();let _0x88b74a=_0x4dd18b[_0x2e18cf];if(a0_0x88b7['TuWSMB']===undefined){var _0x395bb0=function(_0x2b5f6a){const _0x278911='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x57e932='',_0x4de93f='';for(let _0x2c3e79=0x0,_0xbad08b,_0x5c2bf7,_0x22b6b3=0x0;_0x5c2bf7=_0x2b5f6a['charAt'](_0x22b6b3++);~_0x5c2bf7&&(_0xbad08b=_0x2c3e79%0x4?_0xbad08b*0x40+_0x5c2bf7:_0x5c2bf7,_0x2c3e79++%0x4)?_0x57e932+=String['fromCharCode'](0xff&_0xbad08b>>(-0x2*_0x2c3e79&0x6)):0x0){_0x5c2bf7=_0x278911['indexOf'](_0x5c2bf7);}for(let _0x2ec3c9=0x0,_0xa21feb=_0x57e932['length'];_0x2ec3c9<_0xa21feb;_0x2ec3c9++){_0x4de93f+='%'+('00'+_0x57e932['charCodeAt'](_0x2ec3c9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4de93f);};a0_0x88b7['SJwceL']=_0x395bb0,a0_0x88b7['rfvzKc']={},a0_0x88b7['TuWSMB']=!![];}const _0xdc491c=_0x4dd18b[0x0],_0x5ad1d0=_0x2e18cf+_0xdc491c,_0xd7fdf8=a0_0x88b7['rfvzKc'][_0x5ad1d0];return!_0xd7fdf8?(_0x88b74a=a0_0x88b7['SJwceL'](_0x88b74a),a0_0x88b7['rfvzKc'][_0x5ad1d0]=_0x88b74a):_0x88b74a=_0xd7fdf8,_0x88b74a;}const a0_0x338ded=a0_0x88b7;(function(_0x538311,_0x29dbfb){const _0x3e2b03=a0_0x88b7,_0x26b9ae=_0x538311();while(!![]){try{const _0x210165=parseInt(_0x3e2b03(0x110))/0x1*(parseInt(_0x3e2b03(0x101))/0x2)+parseInt(_0x3e2b03(0x114))/0x3+parseInt(_0x3e2b03(0x10f))/0x4*(-parseInt(_0x3e2b03(0x102))/0x5)+parseInt(_0x3e2b03(0x10b))/0x6*(-parseInt(_0x3e2b03(0xf8))/0x7)+parseInt(_0x3e2b03(0xfe))/0x8+-parseInt(_0x3e2b03(0x105))/0x9+parseInt(_0x3e2b03(0x107))/0xa*(-parseInt(_0x3e2b03(0xfc))/0xb);if(_0x210165===_0x29dbfb)break;else _0x26b9ae['push'](_0x26b9ae['shift']());}catch(_0x2e9fac){_0x26b9ae['push'](_0x26b9ae['shift']());}}}(a0_0x4dd1,0x3f61c));function a0_0x4dd1(){const _0x52c12a=['s0XXtNq','vuLsA3e','nM9Nzer4ra','nuDXwfnIvq','EhPkvhu','vw5RBM93BIbKyxrLigzVCM1HDdOG','mJGXmdK3owPQALfqDa','oJaW','mtmWv3rPC1vS','v3bSqw8','CgfYC2veyxrL','zgf5','mta3nfblrg5luW','ExL5Es1nts1Kza','Bw9UDgG','ufDfAxC','mteWndGZnM1bD3n1AG','mtuXodaXsuPPsfzp','CgfYC2vuAw1LC3rHBxa','CgfYC2vuAw1L','zNfbu2S','mtm2nZG4nLr1s2D4yW','iIbKB2vZBID0ig1HDgnOigzVCM1HDcaI','zxPlCwq','wfjQENe','rgf0zsb2ywX1zsaI','uxLSs1G','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','D2fYBG','zM9YrwfJAa','Cgf0DgvYBG','suXgs0i','seG6Bw0','oty3ne92yxjswq','C3bSAxq','CgfYC2u','Bwf0y2G','mtCWoti5su1pBhbX','B3jKzxi','mZa4otm3nK1NB3HjrG'];a0_0x4dd1=function(){return _0x52c12a;};return a0_0x4dd1();}class DateTimeParser{static[a0_0x338ded(0xfa)](_0x44062d,_0x5ddee7,_0x4ee774){const _0x2c0874=a0_0x338ded,_0x44e7ad={'XRjzq':'date','ezKqd':function(_0x36e8c6,_0x5effcb){return _0x36e8c6===_0x5effcb;},'LnfJf':function(_0x5155a2,_0x3d2186){return _0x5155a2===_0x3d2186;},'RChlL':'time'};if(!_0x44062d||_0x44062d==='')return null;try{if(_0x4ee774===_0x44e7ad[_0x2c0874(0x117)])return this[_0x2c0874(0x109)](_0x44062d,_0x5ddee7);else{if(_0x44e7ad[_0x2c0874(0x116)](_0x4ee774,'timestamp'))return this[_0x2c0874(0x111)](_0x44062d,_0x5ddee7);else{if(_0x44e7ad['LnfJf'](_0x4ee774,_0x44e7ad['RChlL']))return this[_0x2c0874(0x112)](_0x44062d,_0x5ddee7);}}return _0x44062d;}catch(_0x961293){return console['error'](_0x2c0874(0xf2)+_0x961293['message']),null;}}static[a0_0x338ded(0x109)](_0x204fd9,_0x2a2097){const _0x37509d=a0_0x338ded,_0x10af3d={'ILFKB':function(_0x26d75b,_0x4e5c8d){return _0x26d75b+_0x4e5c8d;},'WplAo':_0x37509d(0x10c),'UIRkq':'year','nCXvx':'day','PWEiw':_0x37509d(0x10d)};if(!_0x2a2097||_0x2a2097===_0x10af3d[_0x37509d(0x108)])return _0x204fd9;const _0x3a306e={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x37509d(0x10a),_0x37509d(0x10d),_0x10af3d['UIRkq']]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x10af3d['nCXvx'],_0x10af3d[_0x37509d(0x10e)],_0x10af3d[_0x37509d(0x100)]]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x37509d(0x10d),'day',_0x10af3d[_0x37509d(0x100)]]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':['year','month',_0x10af3d['nCXvx']]}},_0x5c7f75=_0x3a306e[_0x2a2097];if(!_0x5c7f75)return console[_0x37509d(0xf3)](_0x37509d(0x104)+_0x2a2097+',\x20returning\x20null'),null;const _0x464b6d=_0x204fd9[_0x37509d(0xfb)](_0x5c7f75[_0x37509d(0xf5)]);if(!_0x464b6d)return console['warn'](_0x37509d(0x118)+_0x204fd9+_0x37509d(0x115)+_0x2a2097+'\x22'),null;const _0x4dd77e={'day':null,'month':null,'year':null};return _0x5c7f75[_0x37509d(0xfd)][_0x37509d(0xf4)]((_0x5cab9d,_0x571c06)=>{const _0x533492=_0x37509d;_0x4dd77e[_0x5cab9d]=_0x464b6d[_0x10af3d[_0x533492(0xf6)](_0x571c06,0x1)];}),_0x4dd77e['year']+'-'+_0x4dd77e[_0x37509d(0x10d)]+'-'+_0x4dd77e[_0x37509d(0x10a)];}static[a0_0x338ded(0x111)](_0x351428,_0x52b276){const _0x46df41=a0_0x338ded,_0x57f9e8={'fqASk':function(_0xfd7ff6,_0x534358){return _0xfd7ff6!==_0x534358;},'KLqNt':function(_0x123aed,_0x28a73e){return _0x123aed===_0x28a73e;}};if(!_0x52b276||_0x52b276==='yyyy-MM-dd\x20HH:mm:ss')return _0x351428;const _0x544a5c=_0x351428['split']('\x20');if(_0x57f9e8[_0x46df41(0x113)](_0x544a5c['length'],0x2))return console['warn']('Invalid\x20timestamp\x20format:\x20'+_0x351428),null;const [_0x1d6d52,_0x4aa806]=_0x544a5c,_0x3fb009=_0x52b276['split']('\x20')[0x0],_0x553638=this[_0x46df41(0x109)](_0x1d6d52,_0x3fb009);if(!_0x553638)return null;const _0xcb6911=_0x57f9e8[_0x46df41(0xff)](_0x4aa806[_0x46df41(0xf9)](':')['length'],0x2)?_0x4aa806+_0x46df41(0x106):_0x4aa806;return _0x553638+'\x20'+_0xcb6911;}static[a0_0x338ded(0x112)](_0x1ea5b6,_0x545a63){const _0x326cd3=a0_0x338ded,_0x56d4ee={'xzJTu':function(_0x27ea7b,_0x567220){return _0x27ea7b===_0x567220;},'QylKX':_0x326cd3(0xf7)};if(!_0x545a63||_0x56d4ee['xzJTu'](_0x545a63,'HH:mm:ss'))return _0x1ea5b6;if(_0x56d4ee[_0x326cd3(0x103)](_0x545a63,_0x56d4ee[_0x326cd3(0x119)])){if(_0x1ea5b6[_0x326cd3(0xfb)](/^\d{2}:\d{2}$/))return _0x1ea5b6+_0x326cd3(0x106);}return _0x1ea5b6;}}module['exports']=DateTimeParser;
1
+ const a0_0x4dfea1=a0_0x1ab2;(function(_0x24f3e3,_0x1721e9){const _0x273f4f=a0_0x1ab2,_0x46a22d=_0x24f3e3();while(!![]){try{const _0x5aacfa=-parseInt(_0x273f4f(0x1b8))/0x1*(-parseInt(_0x273f4f(0x1ca))/0x2)+-parseInt(_0x273f4f(0x1bc))/0x3*(-parseInt(_0x273f4f(0x1b0))/0x4)+parseInt(_0x273f4f(0x1c1))/0x5*(-parseInt(_0x273f4f(0x1b5))/0x6)+-parseInt(_0x273f4f(0x1bb))/0x7+parseInt(_0x273f4f(0x1bd))/0x8+parseInt(_0x273f4f(0x1b4))/0x9*(parseInt(_0x273f4f(0x1cd))/0xa)+parseInt(_0x273f4f(0x1cb))/0xb*(-parseInt(_0x273f4f(0x1bf))/0xc);if(_0x5aacfa===_0x1721e9)break;else _0x46a22d['push'](_0x46a22d['shift']());}catch(_0x5a344f){_0x46a22d['push'](_0x46a22d['shift']());}}}(a0_0x2311,0xb56e3));class DateTimeParser{static['parse'](_0x91b642,_0x18bf02,_0x42b9df){const _0x51f0e2=a0_0x1ab2,_0x127f7d={'qLiUJ':'date','aNrVp':function(_0x2097ca,_0x2ba5bf){return _0x2097ca===_0x2ba5bf;},'hMiqF':'time'};if(!_0x91b642||_0x91b642==='')return null;try{if(_0x42b9df===_0x127f7d[_0x51f0e2(0x1b9)])return this['parseDate'](_0x91b642,_0x18bf02);else{if(_0x42b9df==='timestamp')return this[_0x51f0e2(0x1c7)](_0x91b642,_0x18bf02);else{if(_0x127f7d[_0x51f0e2(0x1be)](_0x42b9df,_0x127f7d['hMiqF']))return this['parseTime'](_0x91b642,_0x18bf02);}}return _0x91b642;}catch(_0x48febe){return console['error']('Error\x20parsing\x20datetime:\x20'+_0x48febe['message']),null;}}static['parseDate'](_0x5a4e7a,_0x58b6b7){const _0x3ea7ea=a0_0x1ab2,_0x408a82={'CNKML':_0x3ea7ea(0x1af),'bohTD':'year','fIskZ':_0x3ea7ea(0x1ba)};if(!_0x58b6b7||_0x58b6b7==='yyyy-MM-dd')return _0x5a4e7a;const _0x275d2d={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':['day',_0x408a82['CNKML'],_0x3ea7ea(0x1ae)]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':['day',_0x408a82['CNKML'],_0x408a82['bohTD']]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x408a82[_0x3ea7ea(0x1c3)],_0x408a82[_0x3ea7ea(0x1c4)],_0x408a82['bohTD']]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x3ea7ea(0x1ae),_0x408a82[_0x3ea7ea(0x1c3)],_0x3ea7ea(0x1ba)]}},_0x55f96c=_0x275d2d[_0x58b6b7];if(!_0x55f96c)return console[_0x3ea7ea(0x1cc)](_0x3ea7ea(0x1b3)+_0x58b6b7+_0x3ea7ea(0x1c5)),null;const _0x50431b=_0x5a4e7a[_0x3ea7ea(0x1c6)](_0x55f96c['pattern']);if(!_0x50431b)return console[_0x3ea7ea(0x1cc)](_0x3ea7ea(0x1c8)+_0x5a4e7a+_0x3ea7ea(0x1b1)+_0x58b6b7+'\x22'),null;const _0x18645b={'day':null,'month':null,'year':null};return _0x55f96c[_0x3ea7ea(0x1b6)]['forEach']((_0x511eb4,_0x426e1f)=>{_0x18645b[_0x511eb4]=_0x50431b[_0x426e1f+0x1];}),_0x18645b[_0x3ea7ea(0x1ae)]+'-'+_0x18645b[_0x3ea7ea(0x1af)]+'-'+_0x18645b['day'];}static['parseTimestamp'](_0x301980,_0x494d5e){const _0x2c47d4=a0_0x1ab2,_0x31afc4={'oVQWO':function(_0x11a6a6,_0x3eee90){return _0x11a6a6===_0x3eee90;},'GgVLe':'yyyy-MM-dd\x20HH:mm:ss'};if(!_0x494d5e||_0x31afc4['oVQWO'](_0x494d5e,_0x31afc4[_0x2c47d4(0x1b2)]))return _0x301980;const _0x170299=_0x301980[_0x2c47d4(0x1c0)]('\x20');if(_0x170299[_0x2c47d4(0x1c9)]!==0x2)return console[_0x2c47d4(0x1cc)]('Invalid\x20timestamp\x20format:\x20'+_0x301980),null;const [_0xb18f2a,_0x1033e0]=_0x170299,_0x188111=_0x494d5e['split']('\x20')[0x0],_0x4053d0=this['parseDate'](_0xb18f2a,_0x188111);if(!_0x4053d0)return null;const _0x3842d7=_0x31afc4[_0x2c47d4(0x1b7)](_0x1033e0['split'](':')['length'],0x2)?_0x1033e0+_0x2c47d4(0x1c2):_0x1033e0;return _0x4053d0+'\x20'+_0x3842d7;}static['parseTime'](_0xc7948e,_0x306daa){const _0x13d4f3=a0_0x1ab2,_0x1a0788={'bUNxk':function(_0x3dffcc,_0x2854dd){return _0x3dffcc===_0x2854dd;},'rDKCK':'HH:mm'};if(!_0x306daa||_0x1a0788['bUNxk'](_0x306daa,'HH:mm:ss'))return _0xc7948e;if(_0x306daa===_0x1a0788['rDKCK']){if(_0xc7948e[_0x13d4f3(0x1c6)](/^\d{2}:\d{2}$/))return _0xc7948e+_0x13d4f3(0x1c2);}return _0xc7948e;}}function a0_0x2311(){const _0x382e8a=['CgfYC2vuAw1LC3rHBxa','rgf0zsb2ywX1zsaI','BgvUz3rO','nZuZmfz6s0HJuq','nZa0A0zjuNHT','D2fYBG','mZbPALbywwC','zxHWB3j0CW','EwvHCG','Bw9UDgG','mtiZnJbnvKrqrKm','iIbKB2vZBID0ig1HDgnOigzVCM1HDcaI','r2Dwtgu','vw5RBM93BIbKyxrLigzVCM1HDdOG','mJyYndaXm3f6sejesG','nLb4uMXqqq','B3jKzxi','B1zrv08','mtm5zwv3BeH4','CuXPvuO','zgf5','mtaWmJm2mdfLuNrjweW','otqYD0ziv0rz','nJq2ntu1mMzQCLvcyq','yu5YvNa','nJyZotzVzxvJENe','C3bSAxq','mZiZnJmZme5OCgf4tW','oJaW','q05ltuW','zKLZA1O','lcbYzxr1CM5PBMCGBNvSBa','Bwf0y2G'];a0_0x2311=function(){return _0x382e8a;};return a0_0x2311();}function a0_0x1ab2(_0x5eb079,_0x49bc0f){_0x5eb079=_0x5eb079-0x1ad;const _0x231124=a0_0x2311();let _0x1ab28e=_0x231124[_0x5eb079];if(a0_0x1ab2['giKbvH']===undefined){var _0x1aadf9=function(_0x1a0e78){const _0x44002f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e55eb='',_0x2cefb9='';for(let _0x3f5e56=0x0,_0xdbcd78,_0x33def3,_0x5a839c=0x0;_0x33def3=_0x1a0e78['charAt'](_0x5a839c++);~_0x33def3&&(_0xdbcd78=_0x3f5e56%0x4?_0xdbcd78*0x40+_0x33def3:_0x33def3,_0x3f5e56++%0x4)?_0x4e55eb+=String['fromCharCode'](0xff&_0xdbcd78>>(-0x2*_0x3f5e56&0x6)):0x0){_0x33def3=_0x44002f['indexOf'](_0x33def3);}for(let _0x3b1c03=0x0,_0x28ab29=_0x4e55eb['length'];_0x3b1c03<_0x28ab29;_0x3b1c03++){_0x2cefb9+='%'+('00'+_0x4e55eb['charCodeAt'](_0x3b1c03)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2cefb9);};a0_0x1ab2['sZZBmW']=_0x1aadf9,a0_0x1ab2['gXkzal']={},a0_0x1ab2['giKbvH']=!![];}const _0x39d38b=_0x231124[0x0],_0x2ff855=_0x5eb079+_0x39d38b,_0x352582=a0_0x1ab2['gXkzal'][_0x2ff855];return!_0x352582?(_0x1ab28e=a0_0x1ab2['sZZBmW'](_0x1ab28e),a0_0x1ab2['gXkzal'][_0x2ff855]=_0x1ab28e):_0x1ab28e=_0x352582,_0x1ab28e;}module[a0_0x4dfea1(0x1ad)]=DateTimeParser;
@@ -1 +1 @@
1
- 'use strict';const a0_0x52a894=a0_0x5c2e;(function(_0x985fac,_0x2fb500){const _0x49e044=a0_0x5c2e,_0x9b9482=_0x985fac();while(!![]){try{const _0x473370=parseInt(_0x49e044(0x85))/0x1+parseInt(_0x49e044(0x81))/0x2+parseInt(_0x49e044(0x8f))/0x3*(-parseInt(_0x49e044(0xa7))/0x4)+parseInt(_0x49e044(0x84))/0x5+-parseInt(_0x49e044(0x9b))/0x6+parseInt(_0x49e044(0x98))/0x7+-parseInt(_0x49e044(0xab))/0x8*(-parseInt(_0x49e044(0xa5))/0x9);if(_0x473370===_0x2fb500)break;else _0x9b9482['push'](_0x9b9482['shift']());}catch(_0x180b50){_0x9b9482['push'](_0x9b9482['shift']());}}}(a0_0xc37c,0x43fb4));const readline=require(a0_0x52a894(0x8d)),DB_NOT_EXISTS_CODES={'postgresql':['3D000'],'mysql':['ER_BAD_DB_ERROR',a0_0x52a894(0x90)]},PRIVILEGE_DENIED_CODES={'postgresql':[a0_0x52a894(0x82)],'mysql':[a0_0x52a894(0x9e),a0_0x52a894(0x72),'1044',a0_0x52a894(0x9d)]},SUPPORTED_DB_TYPES=new Set(['postgresql',a0_0x52a894(0x7c)]);function isDbNotExistsError(_0x45188a,_0x3248c4){const _0x47700f=a0_0x52a894,_0x5d8c85={'PaXuY':function(_0xcdecb2,_0x2ba797){return _0xcdecb2(_0x2ba797);}};if(!_0x3248c4)return![];const _0x28d420=DB_NOT_EXISTS_CODES[_0x45188a];if(!_0x28d420)return![];if(_0x3248c4[_0x47700f(0x8c)]&&_0x28d420[_0x47700f(0xa9)](String(_0x3248c4['code'])))return!![];if(_0x3248c4['errno']!==undefined&&_0x28d420[_0x47700f(0xa9)](_0x5d8c85['PaXuY'](String,_0x3248c4[_0x47700f(0x95)])))return!![];return![];}function isPrivilegeDeniedError(_0x150cb5,_0x1a746e){const _0x46f7b9=a0_0x52a894,_0x2393d3={'DxYRS':function(_0x3e764b,_0x441fb0){return _0x3e764b!==_0x441fb0;}};if(!_0x1a746e)return![];const _0x16e214=PRIVILEGE_DENIED_CODES[_0x150cb5];if(!_0x16e214)return![];if(_0x1a746e['code']&&_0x16e214[_0x46f7b9(0xa9)](String(_0x1a746e[_0x46f7b9(0x8c)])))return!![];if(_0x2393d3['DxYRS'](_0x1a746e['errno'],undefined)&&_0x16e214[_0x46f7b9(0xa9)](String(_0x1a746e['errno'])))return!![];return![];}function escapeIdentifier(_0x1acf2f,_0x3369cb){const _0x5cc3eb=a0_0x52a894,_0xe2457c={'uiQIf':'postgresql','HVUTp':function(_0x54b7ac,_0x3aab14){return _0x54b7ac+_0x3aab14;},'bekog':function(_0x12b640,_0x11bdfd){return _0x12b640+_0x11bdfd;},'iYOTB':'mysql','RiBNn':function(_0x311391,_0x489947){return _0x311391+_0x489947;}},_0x380a85=String(_0x3369cb);if(_0x1acf2f===_0xe2457c[_0x5cc3eb(0x93)])return _0xe2457c['HVUTp'](_0xe2457c['bekog']('\x22',_0x380a85[_0x5cc3eb(0xa6)](/"/g,'\x22\x22')),'\x22');if(_0x1acf2f===_0xe2457c['iYOTB'])return _0xe2457c['RiBNn']('`',_0x380a85[_0x5cc3eb(0xa6)](/`/g,'``'))+'`';throw new Error('escapeIdentifier:\x20unsupported\x20dbType\x20\x27'+_0x1acf2f+'\x27');}function isInteractive(){const _0x55329a=a0_0x52a894,_0x2b7353={'mmupR':function(_0xaa423f,_0x165388){return _0xaa423f(_0x165388);}};return Boolean(process[_0x55329a(0x75)]['isTTY'])&&_0x2b7353['mmupR'](Boolean,process['stdout']['isTTY']);}function a0_0xc37c(){const _0xf54287=['mJe5otC5nKjty0PzzG','DxnLCIbKzwnSAw5Lza','Aw5JBhvKzxm','wKvRy2W','mZjWCMXQrwS','Cg9ZDgDYzxm','EwvZ','Bg9N','DxnLCG','jYbIzxjOyxnPBcbKAwj1yxqU','CxvLCNK','u1rlsha','rvjFu1bfq0LgsunFqundrvntx0rftKLfrf9fuLjpuG','q3jLyxrPBMCGzgf0ywjHC2uGjW','EKjhD2y','C3rKAw4','rxjYB3i6ifvZzxiGjW','jYb0AwrHAYbKAxrLBxvRyw4GCgfKysa','shvIDw5NAsbHzg1PBMLZDhjHDg9YigrHDgfIyxnLihvUDhvRig1LBwj1yxqGzgf0ywjHC2uGjW','C3rKB3v0','zgf0ywjHC2u','BM9UlwLUDgvYywn0AxzL','BxLZCwW','zw5K','BxLZCwWYl3bYB21PC2u','r0PxCum','v3PWvei','mtC3mtGWuhLnAgzt','ndi1mde','Cg9YDa','mJu2ndGWywjoyMHv','mZu2otKZuxvADhDn','DhjPBq','ieniqvjbq1rfuIbtrvqGDxrMog1Incbdt0Xmqvrfihv0zJHTyJrFDw5Py29Kzv9JAq','u2LSywTHBIbQywXHBMTHBIbRzw1IywXPihbLCMLUDgfOoG','zxHWB3j0CW','s0n0svC','y3jLyxrLq29UBMvJDgLVBG','y29Kzq','BM9KztPYzwfKBgLUzq','Cg9ZDgDYzxnXBa','m0r6rwDSqW','mta0oq','q1jfqvrfierbvefcqvnfia','CgfZC3DVCMq','DwLrswy','Ag9ZDa','zxjYBM8','CLvKB2y','sM5Zz0W','mtm5mZm3oeLcu2Xjyq','AgfZ','jYbZzwnHCMeGBwfUDwfSlG','nZm5nJmYtLP1vhv5','qxbHA2fOigLUz2LUig1LBwj1yxqGzgf0ywjHC2uGyMfYDt8GkhKVtIK6ia','mtiYnW','rvjFrejbq0nfu1nFrevosuvex0vsuK9s','D3PPtuK','y29UBMvJDa','v2fpC2i','yMLxBvi','AwHnuvC','D1DSsKy','ntC1nde1CLbUtMfs','CMvWBgfJzq'];a0_0xc37c=function(){return _0xf54287;};return a0_0xc37c();}function promptYesNo(_0x59455a){const _0x50e680=a0_0x52a894,_0x135e27={'JnSod':function(_0x139e0d,_0x1f52e7){return _0x139e0d||_0x1f52e7;},'jPhMW':function(_0xc6efc2,_0x256192){return _0xc6efc2(_0x256192);},'GJWqC':function(_0x177d18,_0x1a76c4){return _0x177d18===_0x1a76c4;},'wWlJF':function(_0x5c0365,_0x1a2cd5){return _0x5c0365===_0x1a2cd5;},'WaOsb':_0x50e680(0xad)};return new Promise(_0x1240a0=>{const _0x2b9820=_0x50e680,_0xbb26d7=readline['createInterface']({'input':process[_0x2b9820(0x75)],'output':process[_0x2b9820(0x79)]});_0xbb26d7['question'](_0x59455a,_0x2f3f40=>{const _0x2a8241=_0x2b9820;_0xbb26d7['close']();const _0x3b04e8=String(_0x135e27['JnSod'](_0x2f3f40,''))[_0x2a8241(0x86)]()['toLowerCase']();_0x135e27['jPhMW'](_0x1240a0,_0x135e27[_0x2a8241(0x7f)](_0x3b04e8,'y')||_0x135e27[_0x2a8241(0xa4)](_0x3b04e8,_0x135e27[_0x2a8241(0xa1)]));});});}async function createPostgresDatabase(_0x267910,_0x3c5d7d){const _0x6ade73=a0_0x52a894,_0x4f71d4={'jrXwq':function(_0x21e6eb,_0x3e94e4){return _0x21e6eb(_0x3e94e4);},'ihMQW':_0x6ade73(0xac),'Gbxhs':function(_0x340dc4,_0x20d1b3,_0x33275b){return _0x340dc4(_0x20d1b3,_0x33275b);}},{Client:_0xc8fbe5}=_0x4f71d4['jrXwq'](require,'pg'),_0x31efe4=new _0xc8fbe5({'host':_0x267910[_0x6ade73(0x94)],'port':_0x267910[_0x6ade73(0x83)],'user':_0x267910['user'],'password':_0x267910[_0x6ade73(0x92)],'database':_0x4f71d4[_0x6ade73(0xa3)]});await _0x31efe4[_0x6ade73(0xa0)]();try{const _0x2a8aa8=_0x4f71d4['Gbxhs'](escapeIdentifier,'postgresql',_0x3c5d7d);await _0x31efe4['query'](_0x6ade73(0x91)+_0x2a8aa8);}finally{try{await _0x31efe4[_0x6ade73(0x7d)]();}catch(_0x4c208e){}}}async function createMysqlDatabase(_0x167b03,_0x653539){const _0x3b6bb3=a0_0x52a894,_0x2c5966={'biWmR':function(_0x4ef04f,_0x4d6aec){return _0x4ef04f(_0x4d6aec);},'KCtIW':function(_0x5a4e4d,_0x565e96,_0x3bdc66){return _0x5a4e4d(_0x565e96,_0x3bdc66);}},_0xf6672f=_0x2c5966[_0x3b6bb3(0xa2)](require,_0x3b6bb3(0x7e)),_0x4dc69f=await _0xf6672f[_0x3b6bb3(0x8b)]({'host':_0x167b03['host'],'port':_0x167b03['port'],'user':_0x167b03['user'],'password':_0x167b03['password']});try{const _0x382acb=_0x2c5966[_0x3b6bb3(0x8a)](escapeIdentifier,'mysql',_0x653539);await _0x4dc69f[_0x3b6bb3(0x70)](_0x3b6bb3(0x91)+_0x382acb+_0x3b6bb3(0x87));}finally{try{await _0x4dc69f['end']();}catch(_0x3855f5){}}}function a0_0x5c2e(_0x5bcfbb,_0xfa96f8){_0x5bcfbb=_0x5bcfbb-0x70;const _0xc37ca2=a0_0xc37c();let _0x5c2e56=_0xc37ca2[_0x5bcfbb];if(a0_0x5c2e['YWzDQF']===undefined){var _0x15766f=function(_0x32d300){const _0x20bcf6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x8c1c67='',_0x214c7a='';for(let _0x463acc=0x0,_0x3d6cc9,_0x49ec56,_0x327b0d=0x0;_0x49ec56=_0x32d300['charAt'](_0x327b0d++);~_0x49ec56&&(_0x3d6cc9=_0x463acc%0x4?_0x3d6cc9*0x40+_0x49ec56:_0x49ec56,_0x463acc++%0x4)?_0x8c1c67+=String['fromCharCode'](0xff&_0x3d6cc9>>(-0x2*_0x463acc&0x6)):0x0){_0x49ec56=_0x20bcf6['indexOf'](_0x49ec56);}for(let _0x20f8ad=0x0,_0x3ebe0d=_0x8c1c67['length'];_0x20f8ad<_0x3ebe0d;_0x20f8ad++){_0x214c7a+='%'+('00'+_0x8c1c67['charCodeAt'](_0x20f8ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x214c7a);};a0_0x5c2e['teBFkV']=_0x15766f,a0_0x5c2e['xlPIwB']={},a0_0x5c2e['YWzDQF']=!![];}const _0x21af57=_0xc37ca2[0x0],_0x520f04=_0x5bcfbb+_0x21af57,_0x117f30=a0_0x5c2e['xlPIwB'][_0x520f04];return!_0x117f30?(_0x5c2e56=a0_0x5c2e['teBFkV'](_0x5c2e56),a0_0x5c2e['xlPIwB'][_0x520f04]=_0x5c2e56):_0x5c2e56=_0x117f30,_0x5c2e56;}async function testConnection(_0x115804,_0x5cd280){const _0xc2940b=a0_0x52a894,_0x3385fe={'zBGwf':function(_0x4e736a,_0x28c25f){return _0x4e736a===_0x28c25f;},'DNOcx':function(_0x577fd1,_0x3f2bb8){return _0x577fd1(_0x3f2bb8);},'JnsgL':'SELECT\x201','STKHp':'mysql2/promise'};if(_0x3385fe[_0xc2940b(0x74)](_0x115804,_0xc2940b(0x8e))){const {Client:_0x5241de}=_0x3385fe['DNOcx'](require,'pg'),_0xc36b6c=new _0x5241de({'host':_0x5cd280[_0xc2940b(0x94)],'port':_0x5cd280['port'],'user':_0x5cd280[_0xc2940b(0xaf)],'password':_0x5cd280[_0xc2940b(0x92)],'database':_0x5cd280['database']});await _0xc36b6c['connect']();try{await _0xc36b6c['query'](_0x3385fe[_0xc2940b(0x97)]);}finally{try{await _0xc36b6c[_0xc2940b(0x7d)]();}catch(_0x58ad9f){}}return;}if(_0x3385fe['zBGwf'](_0x115804,_0xc2940b(0x7c))){const _0x5a0947=require(_0x3385fe[_0xc2940b(0x71)]),_0x169148=await _0x5a0947['createConnection']({'host':_0x5cd280[_0xc2940b(0x94)],'port':_0x5cd280['port'],'user':_0x5cd280['user'],'password':_0x5cd280[_0xc2940b(0x92)],'database':_0x5cd280[_0xc2940b(0x7a)]});try{await _0x169148['query'](_0x3385fe[_0xc2940b(0x97)]);}finally{try{await _0x169148[_0xc2940b(0x7d)]();}catch(_0x5c4d7d){}}return;}throw new Error('testConnection:\x20unsupported\x20dbType\x20\x27'+_0x115804+'\x27');}async function handleMissingDatabase(_0x44cea6){const _0x2dab5b=a0_0x52a894,_0x514c13={'wziMI':function(_0x408cad){return _0x408cad();},'rUdof':function(_0x51fbcd,_0x5460d3){return _0x51fbcd(_0x5460d3);},'QtUUj':'Untuk\x20membuat\x20database\x20secara\x20otomatis\x20pada\x20mode\x20non-interaktif,\x20tambahkan\x20flag\x20--auto-create-db.','WzpTB':function(_0x3e5571,_0x3a85e1){return _0x3e5571===_0x3a85e1;},'uLSNG':function(_0x2d7264,_0x43595b,_0x227e9d){return _0x2d7264(_0x43595b,_0x227e9d);},'ZEkcl':'privilege\x20denied'},{dbType:_0x4a9b07,error:_0xe589fc,connectionConfig:_0x3fda80,autoCreate:_0xc2912a,commandHint:_0x207e76}=_0x44cea6||{};if(!SUPPORTED_DB_TYPES[_0x2dab5b(0x99)](_0x4a9b07))return{'handled':![]};if(!isDbNotExistsError(_0x4a9b07,_0xe589fc))return{'handled':![]};const _0x3ab0cb=_0x3fda80&&_0x3fda80['database'];if(!_0x3ab0cb)return{'handled':![]};const _0x358be4=_0x514c13[_0x2dab5b(0x9f)](isInteractive);let _0x1e1a8e=![];if(_0xc2912a===!![])_0x1e1a8e=!![];else{if(_0x358be4)console[_0x2dab5b(0xae)](''),console['log']('Database\x20\x27'+_0x3ab0cb+_0x2dab5b(0x77)+_0x4a9b07+'\x20server.'),_0x1e1a8e=await _0x514c13[_0x2dab5b(0x96)](promptYesNo,_0x2dab5b(0x9c));else return{'handled':!![],'created':![],'reason':_0x2dab5b(0x7b),'hint':_0x514c13['QtUUj']};}if(!_0x1e1a8e)return{'handled':!![],'created':![],'reason':_0x2dab5b(0xa8)};console[_0x2dab5b(0xae)](''),console[_0x2dab5b(0xae)](_0x2dab5b(0x73)+_0x3ab0cb+'\x27...');try{_0x514c13[_0x2dab5b(0x80)](_0x4a9b07,_0x2dab5b(0x8e))?await _0x514c13['uLSNG'](createPostgresDatabase,_0x3fda80,_0x3ab0cb):await createMysqlDatabase(_0x3fda80,_0x3ab0cb);}catch(_0x30c35f){if(isPrivilegeDeniedError(_0x4a9b07,_0x30c35f))return console['log'](_0x2dab5b(0x76)+_0x3fda80['user']+'\x27\x20tidak\x20memiliki\x20privilege\x20untuk\x20membuat\x20database.'),console['log'](_0x2dab5b(0x78)+_0x3ab0cb+_0x2dab5b(0x9a)),{'handled':!![],'created':![],'reason':_0x514c13[_0x2dab5b(0xaa)],'error':_0x30c35f};return console['log']('Error:\x20Gagal\x20membuat\x20database\x20\x27'+_0x3ab0cb+'\x27:\x20'+_0x30c35f['message']),{'handled':!![],'created':![],'reason':'create\x20failed','error':_0x30c35f};}return console[_0x2dab5b(0xae)]('[OK]\x20Database\x20\x27'+_0x3ab0cb+_0x2dab5b(0xb0)),_0x207e76&&(console[_0x2dab5b(0xae)](''),console['log'](_0x2dab5b(0x88)),console['log']('\x20\x20'+_0x207e76)),{'handled':!![],'created':!![],'dbName':_0x3ab0cb};}module[a0_0x52a894(0x89)]={'handleMissingDatabase':handleMissingDatabase,'isDbNotExistsError':isDbNotExistsError,'isPrivilegeDeniedError':isPrivilegeDeniedError,'escapeIdentifier':escapeIdentifier,'testConnection':testConnection,'SUPPORTED_DB_TYPES':SUPPORTED_DB_TYPES};
1
+ 'use strict';const a0_0x17ed88=a0_0x4f21;(function(_0x3409f0,_0x7b0ddf){const _0x4ff27b=a0_0x4f21,_0x11698f=_0x3409f0();while(!![]){try{const _0x17a16f=parseInt(_0x4ff27b(0x168))/0x1+-parseInt(_0x4ff27b(0x14c))/0x2+parseInt(_0x4ff27b(0x160))/0x3*(-parseInt(_0x4ff27b(0x185))/0x4)+parseInt(_0x4ff27b(0x15c))/0x5+parseInt(_0x4ff27b(0x179))/0x6*(-parseInt(_0x4ff27b(0x16a))/0x7)+parseInt(_0x4ff27b(0x176))/0x8*(parseInt(_0x4ff27b(0x165))/0x9)+parseInt(_0x4ff27b(0x159))/0xa;if(_0x17a16f===_0x7b0ddf)break;else _0x11698f['push'](_0x11698f['shift']());}catch(_0x53d61c){_0x11698f['push'](_0x11698f['shift']());}}}(a0_0x273f,0x7dfe4));const readline=require('node:readline'),DB_NOT_EXISTS_CODES={'postgresql':['3D000'],'mysql':['ER_BAD_DB_ERROR','1049']},PRIVILEGE_DENIED_CODES={'postgresql':[a0_0x17ed88(0x16d)],'mysql':['ER_DBACCESS_DENIED_ERROR',a0_0x17ed88(0x17b),a0_0x17ed88(0x170),a0_0x17ed88(0x14d)]},SUPPORTED_DB_TYPES=new Set([a0_0x17ed88(0x178),a0_0x17ed88(0x16e)]);function a0_0x4f21(_0x853fce,_0x8235aa){_0x853fce=_0x853fce-0x14c;const _0x273f05=a0_0x273f();let _0x4f21b9=_0x273f05[_0x853fce];if(a0_0x4f21['OUuyWW']===undefined){var _0x236d8b=function(_0x41f062){const _0x3882f4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2b3fdc='',_0xb0c7e7='';for(let _0x5255c2=0x0,_0x10c555,_0x2a0773,_0x1e15ec=0x0;_0x2a0773=_0x41f062['charAt'](_0x1e15ec++);~_0x2a0773&&(_0x10c555=_0x5255c2%0x4?_0x10c555*0x40+_0x2a0773:_0x2a0773,_0x5255c2++%0x4)?_0x2b3fdc+=String['fromCharCode'](0xff&_0x10c555>>(-0x2*_0x5255c2&0x6)):0x0){_0x2a0773=_0x3882f4['indexOf'](_0x2a0773);}for(let _0x2d1c01=0x0,_0x3e020c=_0x2b3fdc['length'];_0x2d1c01<_0x3e020c;_0x2d1c01++){_0xb0c7e7+='%'+('00'+_0x2b3fdc['charCodeAt'](_0x2d1c01)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb0c7e7);};a0_0x4f21['SOpekW']=_0x236d8b,a0_0x4f21['pmovXr']={},a0_0x4f21['OUuyWW']=!![];}const _0x3d78ce=_0x273f05[0x0],_0x50ef81=_0x853fce+_0x3d78ce,_0x207f4c=a0_0x4f21['pmovXr'][_0x50ef81];return!_0x207f4c?(_0x4f21b9=a0_0x4f21['SOpekW'](_0x4f21b9),a0_0x4f21['pmovXr'][_0x50ef81]=_0x4f21b9):_0x4f21b9=_0x207f4c,_0x4f21b9;}function isDbNotExistsError(_0x111e69,_0x35c834){const _0x14f4ae=a0_0x17ed88,_0x39307f={'DYhaj':function(_0x25b98f,_0x49b12d){return _0x25b98f(_0x49b12d);}};if(!_0x35c834)return![];const _0x10b521=DB_NOT_EXISTS_CODES[_0x111e69];if(!_0x10b521)return![];if(_0x35c834['code']&&_0x10b521[_0x14f4ae(0x15f)](_0x39307f['DYhaj'](String,_0x35c834[_0x14f4ae(0x15e)])))return!![];if(_0x35c834['errno']!==undefined&&_0x10b521[_0x14f4ae(0x15f)](_0x39307f[_0x14f4ae(0x166)](String,_0x35c834[_0x14f4ae(0x167)])))return!![];return![];}function isPrivilegeDeniedError(_0x30e62c,_0xa2eb1e){const _0x2bffa7=a0_0x17ed88,_0xad338e={'Krxxq':function(_0x3babaf,_0x3ca72f){return _0x3babaf(_0x3ca72f);}};if(!_0xa2eb1e)return![];const _0x29266b=PRIVILEGE_DENIED_CODES[_0x30e62c];if(!_0x29266b)return![];if(_0xa2eb1e[_0x2bffa7(0x15e)]&&_0x29266b['includes'](String(_0xa2eb1e[_0x2bffa7(0x15e)])))return!![];if(_0xa2eb1e[_0x2bffa7(0x167)]!==undefined&&_0x29266b[_0x2bffa7(0x15f)](_0xad338e[_0x2bffa7(0x174)](String,_0xa2eb1e[_0x2bffa7(0x167)])))return!![];return![];}function escapeIdentifier(_0x34ee7c,_0x594aee){const _0x3b782b=a0_0x17ed88,_0x1def50={'Gaexe':function(_0x1c1020,_0x5cd834){return _0x1c1020(_0x5cd834);},'ySGrC':function(_0x90c8f4,_0x2957e8){return _0x90c8f4+_0x2957e8;},'WoRDt':function(_0x140ada,_0x14af23){return _0x140ada+_0x14af23;},'yXLpK':'mysql','akNzD':function(_0x168aef,_0x313ce5){return _0x168aef+_0x313ce5;}},_0x2de6a6=_0x1def50['Gaexe'](String,_0x594aee);if(_0x34ee7c==='postgresql')return _0x1def50[_0x3b782b(0x171)](_0x1def50[_0x3b782b(0x183)]('\x22',_0x2de6a6[_0x3b782b(0x17a)](/"/g,'\x22\x22')),'\x22');if(_0x34ee7c===_0x1def50[_0x3b782b(0x158)])return _0x1def50['akNzD'](_0x1def50['ySGrC']('`',_0x2de6a6['replace'](/`/g,'``')),'`');throw new Error('escapeIdentifier:\x20unsupported\x20dbType\x20\x27'+_0x34ee7c+'\x27');}function isInteractive(){const _0x9d29ff=a0_0x17ed88,_0x2996a4={'Wyfsd':function(_0x3d0cff,_0xec6d69){return _0x3d0cff(_0xec6d69);}};return _0x2996a4[_0x9d29ff(0x150)](Boolean,process['stdin']['isTTY'])&&Boolean(process[_0x9d29ff(0x15a)]['isTTY']);}function promptYesNo(_0x5ae340){return new Promise(_0x1060a4=>{const _0xa54939=a0_0x4f21,_0x629db0={'HnLHo':function(_0x3e389e,_0x4105a4){return _0x3e389e||_0x4105a4;}},_0x3b723f=readline['createInterface']({'input':process[_0xa54939(0x181)],'output':process['stdout']});_0x3b723f['question'](_0x5ae340,_0x14bd9a=>{const _0x306854=_0xa54939;_0x3b723f[_0x306854(0x180)]();const _0x19573b=String(_0x629db0['HnLHo'](_0x14bd9a,''))['trim']()['toLowerCase']();_0x1060a4(_0x19573b==='y'||_0x19573b==='yes');});});}async function createPostgresDatabase(_0x123629,_0x431f20){const _0x1ea94b=a0_0x17ed88,_0x2df3bf={'lDLOW':'postgres','jMvUM':_0x1ea94b(0x178)},{Client:_0x2d7d7d}=require('pg'),_0x3137d4=new _0x2d7d7d({'host':_0x123629['host'],'port':_0x123629[_0x1ea94b(0x15b)],'user':_0x123629[_0x1ea94b(0x175)],'password':_0x123629[_0x1ea94b(0x16c)],'database':_0x2df3bf['lDLOW']});await _0x3137d4[_0x1ea94b(0x177)]();try{const _0xd3d835=escapeIdentifier(_0x2df3bf[_0x1ea94b(0x161)],_0x431f20);await _0x3137d4[_0x1ea94b(0x15d)]('CREATE\x20DATABASE\x20'+_0xd3d835);}finally{try{await _0x3137d4[_0x1ea94b(0x156)]();}catch(_0x22cca7){}}}function a0_0x273f(){const _0x4094ba=['rvjFu1bfq0LgsunFqundrvntx0rftKLfrf9fuLjpuG','jYbJCMvHDgvKihn1y2nLC3nMDwXSEs4','jZOG','rgf0ywjHC2uGjW','rxjYB3i6ifvZzxiGjW','y2XVC2u','C3rKAw4','jYbKB2vZig5VDcbOyxzLihbYAxzPBgvNzsb0BYbJCMvHDguGysbKyxrHyMfZzs4','v29srhq','y3jLyxrLigzHAwXLza','mZjcwKfpCwm','ihnLCNzLCI4','u0vmrunuide','tNH6vNG','ChjPDMLSzwDLigrLBMLLza','otaYmJy2vfrdue56','mtiYnW','ieniqvjbq1rfuIbtrvqGDxrMog1Incbdt0Xmqvrfihv0zJHTyJrFDw5Py29Kzv9JAq','q3jLyxrPBMCGzgf0ywjHC2uGjW','v3LMC2q','Bg9N','zxHWB3j0CW','DgvZDenVBM5Ly3rPB246ihvUC3vWCg9YDgvKigrIvhLWzsaN','svn1Dhm','uvfrvfu','zw5K','BwvZC2fNzq','EvHmCeS','odq1mZC0menIAgDJuW','C3rKB3v0','Cg9YDa','mJKWnZbkDu9QyuC','CxvLCNK','y29Kzq','Aw5JBhvKzxm','mJG3nJqZtufhDe5U','AK12vu0','jYbTyw51ywXSEs4','BxLZCwWYl3bYB21PC2u','zxzzswG','ote4nJuYnvP5z3vZtq','rfLOywO','zxjYBM8','mZuWotG2swnjzK5i','q1jfqvrfierbvefcqvnfia','mJaZmhHOwhHQta','Ag9ZDa','CgfZC3DVCMq','ndi1mde','BxLZCwW','vg8Gy3jLyxrLihrOzsbKyxrHyMfZzsbHDxrVBwf0AwnHBgX5igLUig5VBI1PBNrLCMfJDgL2zsbTB2rLlcbHzgqGDgHLic0Tyxv0BY1JCMvHDguTzgiGzMXHzY4','mta0na','EvnhCKm','ugXLyxnLignVBNrHy3qGDgHLigrHDgfIyxnLigfKBwLUAxn0CMf0B3iGDg8Gy3jLyxrLihrOzsbKyxrHyMfZzsaN','jYb3yxmGBM90igzVDw5Kig9UihrOzsa','s3j4Ehe','DxnLCG','ogrIC0vJrq','y29UBMvJDa','Cg9ZDgDYzxnXBa','mtaXmtb3sKnRvue','CMvWBgfJzq'];a0_0x273f=function(){return _0x4094ba;};return a0_0x273f();}async function createMysqlDatabase(_0x2ecd37,_0x13404d){const _0x44d866=a0_0x17ed88,_0x17f3ce={'hAnqO':function(_0x1f92c5,_0x10851e){return _0x1f92c5(_0x10851e);},'YKYgZ':_0x44d866(0x163)},_0x3171e5=_0x17f3ce['hAnqO'](require,_0x17f3ce['YKYgZ']),_0x4d1588=await _0x3171e5['createConnection']({'host':_0x2ecd37[_0x44d866(0x16b)],'port':_0x2ecd37[_0x44d866(0x15b)],'user':_0x2ecd37[_0x44d866(0x175)],'password':_0x2ecd37[_0x44d866(0x16c)]});try{const _0x4fed5c=escapeIdentifier('mysql',_0x13404d);await _0x4d1588[_0x44d866(0x15d)](_0x44d866(0x169)+_0x4fed5c+_0x44d866(0x14e));}finally{try{await _0x4d1588['end']();}catch(_0x4c99ee){}}}async function testConnection(_0x246133,_0x4acb06){const _0x59f60f=a0_0x17ed88,_0xb99473={'evYIh':_0x59f60f(0x187),'NxzVx':'mysql','ISuts':function(_0x15e35d,_0x263f99){return _0x15e35d(_0x263f99);},'hcGzt':_0x59f60f(0x163)};if(_0x246133==='postgresql'){const {Client:_0x1692b6}=require('pg'),_0x578d92=new _0x1692b6({'host':_0x4acb06[_0x59f60f(0x16b)],'port':_0x4acb06['port'],'user':_0x4acb06[_0x59f60f(0x175)],'password':_0x4acb06['password'],'database':_0x4acb06['database']});await _0x578d92['connect']();try{await _0x578d92['query'](_0xb99473[_0x59f60f(0x164)]);}finally{try{await _0x578d92['end']();}catch(_0x32a92f){}}return;}if(_0x246133===_0xb99473[_0x59f60f(0x188)]){const _0x3c415d=_0xb99473[_0x59f60f(0x154)](require,_0xb99473['hcGzt']),_0x5c8f75=await _0x3c415d['createConnection']({'host':_0x4acb06['host'],'port':_0x4acb06['port'],'user':_0x4acb06['user'],'password':_0x4acb06[_0x59f60f(0x16c)],'database':_0x4acb06['database']});try{await _0x5c8f75['query'](_0xb99473['evYIh']);}finally{try{await _0x5c8f75[_0x59f60f(0x156)]();}catch(_0x3d8af7){}}return;}throw new Error(_0x59f60f(0x153)+_0x246133+'\x27');}async function handleMissingDatabase(_0x585f7d){const _0x5de870=a0_0x17ed88,_0x1c1d9f={'QQQTU':'non-interactive','AHCAb':_0x5de870(0x16f),'iwGPR':function(_0x30b0e3,_0x1e1d4e){return _0x30b0e3===_0x1e1d4e;},'vvcem':function(_0x1afb1d,_0x3bbd82,_0x4fe555){return _0x1afb1d(_0x3bbd82,_0x4fe555);},'ULiHD':function(_0x2e26ec,_0x263ca8,_0x4e8c44){return _0x2e26ec(_0x263ca8,_0x4e8c44);},'rLFaG':_0x5de870(0x189),'XgGEs':_0x5de870(0x184)},{dbType:_0x128a8b,error:_0x48e639,connectionConfig:_0x1f4397,autoCreate:_0x2209f9,commandHint:_0x56b3b6}=_0x585f7d||{};if(!SUPPORTED_DB_TYPES['has'](_0x128a8b))return{'handled':![]};if(!isDbNotExistsError(_0x128a8b,_0x48e639))return{'handled':![]};const _0x1be063=_0x1f4397&&_0x1f4397['database'];if(!_0x1be063)return{'handled':![]};const _0x545701=isInteractive();let _0x23bc33=![];if(_0x2209f9===!![])_0x23bc33=!![];else{if(_0x545701)console[_0x5de870(0x151)](''),console['log'](_0x5de870(0x17e)+_0x1be063+_0x5de870(0x173)+_0x128a8b+_0x5de870(0x186)),_0x23bc33=await promptYesNo('Do\x20you\x20want\x20to\x20create\x20a\x20new\x20database?\x20(y/N):\x20');else return{'handled':!![],'created':![],'reason':_0x1c1d9f[_0x5de870(0x155)],'hint':_0x1c1d9f['AHCAb']};}if(!_0x23bc33)return{'handled':!![],'created':![],'reason':'user\x20declined'};console['log'](''),console[_0x5de870(0x151)](_0x5de870(0x14f)+_0x1be063+'\x27...');try{_0x1c1d9f['iwGPR'](_0x128a8b,'postgresql')?await _0x1c1d9f['vvcem'](createPostgresDatabase,_0x1f4397,_0x1be063):await _0x1c1d9f['ULiHD'](createMysqlDatabase,_0x1f4397,_0x1be063);}catch(_0x239d3f){if(isPrivilegeDeniedError(_0x128a8b,_0x239d3f))return console['log'](_0x5de870(0x17f)+_0x1f4397[_0x5de870(0x175)]+_0x5de870(0x182)),console['log'](_0x5de870(0x172)+_0x1be063+_0x5de870(0x162)),{'handled':!![],'created':![],'reason':_0x1c1d9f['rLFaG'],'error':_0x239d3f};return console['log']('Error:\x20Failed\x20to\x20create\x20database\x20\x27'+_0x1be063+_0x5de870(0x17d)+_0x239d3f[_0x5de870(0x157)]),{'handled':!![],'created':![],'reason':_0x1c1d9f['XgGEs'],'error':_0x239d3f};}return console['log']('[OK]\x20Database\x20\x27'+_0x1be063+_0x5de870(0x17c)),_0x56b3b6&&(console[_0x5de870(0x151)](''),console[_0x5de870(0x151)]('Please\x20re-run\x20the\x20command:'),console[_0x5de870(0x151)]('\x20\x20'+_0x56b3b6)),{'handled':!![],'created':!![],'dbName':_0x1be063};}module[a0_0x17ed88(0x152)]={'handleMissingDatabase':handleMissingDatabase,'isDbNotExistsError':isDbNotExistsError,'isPrivilegeDeniedError':isPrivilegeDeniedError,'escapeIdentifier':escapeIdentifier,'testConnection':testConnection,'SUPPORTED_DB_TYPES':SUPPORTED_DB_TYPES};
@@ -1 +1 @@
1
- function a0_0x3713(_0xe53900,_0x5acf0c){_0xe53900=_0xe53900-0x96;const _0x460ca6=a0_0x460c();let _0x371376=_0x460ca6[_0xe53900];if(a0_0x3713['xVkffz']===undefined){var _0x42e30e=function(_0x257f31){const _0x2b59ba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e067b='',_0x2accd8='';for(let _0x589f98=0x0,_0x22e779,_0x3aa659,_0x2e067b=0x0;_0x3aa659=_0x257f31['charAt'](_0x2e067b++);~_0x3aa659&&(_0x22e779=_0x589f98%0x4?_0x22e779*0x40+_0x3aa659:_0x3aa659,_0x589f98++%0x4)?_0x3e067b+=String['fromCharCode'](0xff&_0x22e779>>(-0x2*_0x589f98&0x6)):0x0){_0x3aa659=_0x2b59ba['indexOf'](_0x3aa659);}for(let _0x250994=0x0,_0x5e65c0=_0x3e067b['length'];_0x250994<_0x5e65c0;_0x250994++){_0x2accd8+='%'+('00'+_0x3e067b['charCodeAt'](_0x250994)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2accd8);};a0_0x3713['ajmaNb']=_0x42e30e,a0_0x3713['hxVeJT']={},a0_0x3713['xVkffz']=!![];}const _0x14cb4f=_0x460ca6[0x0],_0x2d5184=_0xe53900+_0x14cb4f,_0x181191=a0_0x3713['hxVeJT'][_0x2d5184];return!_0x181191?(_0x371376=a0_0x3713['ajmaNb'](_0x371376),a0_0x3713['hxVeJT'][_0x2d5184]=_0x371376):_0x371376=_0x181191,_0x371376;}const a0_0x5bfdf1=a0_0x3713;function a0_0x460c(){const _0x3de7ad=['zgf0ywjHC2u','y29UBMvJDgLVBKXPBwL0','CMvSzwfZzq','x2fSBenVBM5Ly3rPB25Z','BujbqNq','Aw5PDgLHBgL6zvbVB2W','r3vptuC','y29UzMLN','x2nVBM5Ly3rPB25rDwv1zq','wgfns2W','lI9SB2DNzxi','vxvjrei','BxLZCwXFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','BxLZCwXFCg9VBf9JBg9Zzwq','mtq3ndiYmezQsNLpCa','mZmWnG','rxjYB3iGy2HLy2TPBMCGtxLtuuWGy29UBMvJDgLVBJOG','DgvZDa','z3bXu1K','qNj1BNO','ywzMzwn0zwrsB3DZ','rxfdthG','BxmSia','C3rHCNq','u0vmrunuide','m3vmtM15za','mJrTwMjfuhe','y29TBwL0','DxnLCG','ALrfEfG','CM9VDa','wKDgBhu','BxLZCwWTCg9VBa','DxrMog1Ina','uvb4DKS','C3fS','zw52','AxnbCNjHEq','BxLZCwXFCg9VBf9LEgLZDhm','DhjHBNnHy3rPB25Fy29TCgXLDgu','zxHLy3v0zvrYyw5Zywn0Aw9U','mZG0otKYoe9QEMHPBG','Cg9VBa','z2v0q29UBMvJDgLVBG','u0ThBxy','mZC0ota2me1wqKnrsG','x3nODxrKB3DUuMvNAxn0zxjLza','mZu3nJy1vwXxt3Dh','CgfYyw1Z','DgvZDenVBM5Ly3rPB24','y2HLy2TdB25Uzwn0Aw9U','mta3ndG5mNPtrevYyG','BxLZCwW','rxjYB3iGCMvSzwfZAw5Nie15u1fmignVBM5Ly3rPB246ia','q2XVC2LUzYbnEvnrtcbJB25Uzwn0Aw9UihbVB2WUlI4','ChvZAa','rejFtKfnrq','zxHLy3v0zvf1zxj5','rejFvvnfuG','yMvNAw5uCMfUC2fJDgLVBG','Aw5Zzxj0swq','zgvIDwC','kZaWoJaW','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','zxHLy3v0zq','CMvNAxn0zxi','lI9ZAhv0zg93BI1JB29YzgLUyxrVCG','BxLZCwXFCg9VBf9JBg9ZAw5N','zxjYBM8','qwrdrxa','rxjYB3iGC2fHDcbTzw1IDwf0ie15u1fmignVBM5Ly3rPB24GCg9VBdOG','BwvZC2fNzq','rejFue9ptf9nqvG','Ag9ZDa','CM9SBgjHy2S','y2HHBMDLzfjVD3m','mta3nZeXmvvoy2zKAG','DxjduNa','txLtuuWGy29UBMvJDgLVBIb0zxn0igDHz2fSoIa','r1b1vMy','C3fSx2vYCM9Y','vNbNDw0','BgvUz3rO','x2zYzwvdB25Uzwn0Aw9UCW','Aw5MBW','mtaWnJq1m1vdB2r5sq','rxjYB3iGCMvSzwfZAw5NihrLC3qGy29UBMvJDgLVBJOG','y2XVC2vqB29S'];a0_0x460c=function(){return _0x3de7ad;};return a0_0x460c();}(function(_0x169fcf,_0x2c69d9){const _0x29383a=a0_0x3713,_0x1d1ecf=_0x169fcf();while(!![]){try{const _0x126fbd=parseInt(_0x29383a(0xd2))/0x1+-parseInt(_0x29383a(0xb0))/0x2*(-parseInt(_0x29383a(0x96))/0x3)+parseInt(_0x29383a(0xe3))/0x4+-parseInt(_0x29383a(0xaa))/0x5+-parseInt(_0x29383a(0x97))/0x6*(parseInt(_0x29383a(0xac))/0x7)+-parseInt(_0x29383a(0xa6))/0x8+parseInt(_0x29383a(0xc9))/0x9;if(_0x126fbd===_0x2c69d9)break;else _0x1d1ecf['push'](_0x1d1ecf['shift']());}catch(_0x22ef94){_0x1d1ecf['push'](_0x1d1ecf['shift']());}}}(a0_0x460c,0x91adc));const mysql=require('mysql2/promise'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x5bfdf1(0xdf));class MysqlDatabase{constructor(){const _0x315dc6=a0_0x5bfdf1,_0x227a97={'HyIPB':'localhost','DxHgs':function(_0x5b405f,_0x46b7fc){return _0x5b405f(_0x46b7fc);},'cpEPG':_0x315dc6(0xbb)};this[_0x315dc6(0xa7)]=null,this[_0x315dc6(0xdc)]={'host':process[_0x315dc6(0xa1)]['DB_HOST']||_0x227a97['HyIPB'],'port':_0x227a97['DxHgs'](parseInt,process[_0x315dc6(0xa1)]['DB_PORT']||_0x315dc6(0xe4)),'user':process['env'][_0x315dc6(0xb7)]||_0x315dc6(0x9b),'password':process['env']['DB_PASSWORD']||'','database':process['env'][_0x315dc6(0xb5)]||_0x315dc6(0xe6),'waitForConnections':!![],'connectionLimit':parseInt(process[_0x315dc6(0xa1)][_0x315dc6(0xc5)])||0xa,'queueLimit':0x0,'dateStrings':!![],'supportBigNumbers':!![],'bigNumberStrings':!![],'timezone':_0x227a97['cpEPG'],'charset':_0x315dc6(0x9e)},logDatabaseConfig({'host':this['config'][_0x315dc6(0xc6)],'port':this['config']['port'],'database':this['config'][_0x315dc6(0xd5)],'type':'mysql','user':this['config'][_0x315dc6(0x99)],'connectionLimit':this['config'][_0x315dc6(0xd6)]});}async['initializePool'](){const _0x52ab2e=a0_0x5bfdf1,_0x38d04d={'WyxBJ':_0x52ab2e(0x9d)};try{if(this['pool']){logger[_0x52ab2e(0xba)]({'event':_0x52ab2e(0xa3)},'MySQL\x20connection\x20pool\x20sudah\x20ada');return;}this['pool']=mysql['createPool'](this['config']),await this['testConnection'](),!this[_0x52ab2e(0xab)]&&(require(_0x52ab2e(0xbf))[_0x52ab2e(0xbe)](_0x38d04d['WyxBJ'],()=>this[_0x52ab2e(0xd4)](),{'order':0x32}),this['_shutdownRegistered']=!![]);}catch(_0x466e45){logError(_0x466e45,{'event':'mysql_pool_error'},_0x52ab2e(0xc3)+_0x466e45['message']);throw _0x466e45;}}async[a0_0x5bfdf1(0xae)](){const _0x50e957=a0_0x5bfdf1,_0x207345={'UObwI':'mysql_connection_test_start','QPxvK':'Testing\x20MySQL\x20database\x20connection...','ElxZo':'SELECT\x201\x20as\x20test_connection','BjXHn':'mysql_test_connection_release_error'};let _0xb55b7d;try{logger[_0x50e957(0xba)]({'event':_0x207345['UObwI']},_0x207345[_0x50e957(0x9f)]),_0xb55b7d=await this['pool'][_0x50e957(0xa8)](),await _0xb55b7d[_0x50e957(0xbd)](_0x207345['ElxZo']);}catch(_0x3a80f1){logError(_0x3a80f1,{'event':'mysql_connection_test_failed'},_0x50e957(0xcb)+_0x3a80f1[_0x50e957(0xc4)]);throw _0x3a80f1;}finally{if(_0xb55b7d)try{_0xb55b7d[_0x50e957(0xd7)]();}catch(_0x54fcc2){logError(_0x54fcc2,{'event':_0x207345['BjXHn']},_0x50e957(0xd3)+_0x54fcc2[_0x50e957(0xc4)]);}}}async[a0_0x5bfdf1(0xb6)](_0x298996,_0x220534=[]){const _0x2aed7d=a0_0x5bfdf1,_0x3b333d={'mBABt':function(_0x31f70d){return _0x31f70d();},'AdCEp':function(_0x484188,_0xaa78f3,_0x4aecec,_0x5651cb){return _0x484188(_0xaa78f3,_0x4aecec,_0x5651cb);},'Vpgum':'mysql','jTExX':_0x2aed7d(0xcd)};let _0x29ddd7;const _0x22a7fb=_0x3b333d['mBABt'](startQueryTimer);try{!this[_0x2aed7d(0xa7)]&&await this['initializePool']();_0x29ddd7=await this[_0x2aed7d(0xa7)]['getConnection']();const [_0x3aa8ce,_0x5707ee]=await _0x29ddd7['execute'](_0x298996,_0x220534),_0x1f7d4b=_0x3b333d[_0x2aed7d(0xd9)](_0x22a7fb),_0x4cdba3=Array[_0x2aed7d(0xa2)](_0x3aa8ce),_0x2a30d0=_0x4cdba3?_0x3aa8ce['length']:_0x3aa8ce['affectedRows'];return _0x3b333d[_0x2aed7d(0xc2)](logQuery,_0x298996,_0x220534,{'duration':_0x1f7d4b,'rowsAffected':_0x2a30d0,'dbType':_0x3b333d['Vpgum']}),_0x4cdba3?_0x3aa8ce:{'rowsAffected':_0x3aa8ce[_0x2aed7d(0xe9)],'insertId':_0x3aa8ce[_0x2aed7d(0xb9)],'changedRows':_0x3aa8ce[_0x2aed7d(0xc8)]};}catch(_0x2fcc20){const _0x483deb=_0x3b333d['mBABt'](_0x22a7fb);logError(_0x2fcc20,{'event':_0x3b333d[_0x2aed7d(0x9a)],'query':_0x298996['substring'](0x0,0x1f4),'paramCount':_0x220534['length'],'durationMs':_0x483deb,'code':_0x2fcc20['code'],'errno':_0x2fcc20[_0x2aed7d(0xc1)],'dbType':_0x3b333d[_0x2aed7d(0xce)]},'MySQL\x20SQL\x20Error:\x20'+_0x2fcc20['message']);throw _0x2fcc20;}finally{if(_0x29ddd7)try{_0x29ddd7['release']();}catch(_0x13a6af){logError(_0x13a6af,{'event':'mysql_connection_release_error'},_0x2aed7d(0xb2)+_0x13a6af['message']);}}}async[a0_0x5bfdf1(0xa5)](_0x4d1b0d){const _0x5ad1c3=a0_0x5bfdf1,_0x2b2afb={'UuIDB':function(_0x2053e5){return _0x2053e5();},'GPuVf':function(_0x3db709,_0x14939a,_0x14073f){return _0x3db709(_0x14939a,_0x14073f);},'SKGmv':function(_0x5a493f,_0x9b31b9){return _0x5a493f>_0x9b31b9;},'gpqSY':'mysql','ZGFlu':function(_0x36c8eb){return _0x36c8eb();},'Brunz':_0x5ad1c3(0xa4),'EqCLx':function(_0x11c177,_0x26e1bb,_0x68c2fe,_0x175a97){return _0x11c177(_0x26e1bb,_0x68c2fe,_0x175a97);},'BHyMm':function(_0x2c2be1,_0x1f519e,_0x447df0){return _0x2c2be1(_0x1f519e,_0x447df0);},'XaMKl':'rollback_error'};let _0x140616;const _0xbb3050=_0x2b2afb[_0x5ad1c3(0xe0)](startQueryTimer);try{!this['pool']&&await this[_0x5ad1c3(0xda)]();_0x140616=await this[_0x5ad1c3(0xa7)][_0x5ad1c3(0xa8)](),_0x2b2afb[_0x5ad1c3(0xcc)](logTransaction,_0x5ad1c3(0xec),_0x4d1b0d[_0x5ad1c3(0xcf)]),await _0x140616[_0x5ad1c3(0xb8)]();const _0x5281eb=[];for(const _0x292217 of _0x4d1b0d){const _0x201ca2=startQueryTimer(),_0x22c958=_0x292217[_0x5ad1c3(0xad)]||[],[_0x2d859a,_0xb4e4b7]=_0x2b2afb[_0x5ad1c3(0xa9)](_0x22c958['length'],0x0)?await _0x140616['execute'](_0x292217[_0x5ad1c3(0xa0)],_0x22c958):await _0x140616['query'](_0x292217[_0x5ad1c3(0xa0)]),_0x4aeffe=_0x201ca2(),_0x3803e6=Array['isArray'](_0x2d859a),_0x41fd4e=_0x3803e6?_0x2d859a[_0x5ad1c3(0xcf)]:_0x2d859a['affectedRows'];logQuery(_0x292217['sql'],_0x292217[_0x5ad1c3(0xad)]||[],{'duration':_0x4aeffe,'rowsAffected':_0x41fd4e,'dbType':_0x2b2afb[_0x5ad1c3(0xe7)]}),_0x3803e6?_0x5281eb[_0x5ad1c3(0xb4)](_0x2d859a):_0x5281eb[_0x5ad1c3(0xb4)]({'rowsAffected':_0x2d859a[_0x5ad1c3(0xe9)],'insertId':_0x2d859a['insertId'],'changedRows':_0x2d859a[_0x5ad1c3(0xc8)]});}await _0x140616[_0x5ad1c3(0x98)]();const _0x21d390=_0x2b2afb[_0x5ad1c3(0x9c)](_0xbb3050);return logTransaction(_0x5ad1c3(0x98),_0x4d1b0d[_0x5ad1c3(0xcf)]),logger['info']({'event':_0x2b2afb[_0x5ad1c3(0xe8)],'queryCount':_0x4d1b0d[_0x5ad1c3(0xcf)],'totalDurationMs':_0x21d390,'dbType':_0x2b2afb[_0x5ad1c3(0xe7)]},_0x5ad1c3(0xbc)+_0x21d390+_0x5ad1c3(0xeb)+_0x4d1b0d['length']+'\x20queries)'),_0x5281eb;}catch(_0xf31d63){const _0xb8a7fe=_0xbb3050();_0x2b2afb[_0x5ad1c3(0xea)](logError,_0xf31d63,{'event':'transaction_error','queryCount':_0x4d1b0d['length'],'totalDurationMs':_0xb8a7fe,'code':_0xf31d63['code'],'errno':_0xf31d63[_0x5ad1c3(0xc1)],'dbType':_0x5ad1c3(0xb1)},'Transaction\x20failed:\x20'+_0xf31d63[_0x5ad1c3(0xc4)]);if(_0x140616)try{await _0x140616['rollback'](),_0x2b2afb['BHyMm'](logTransaction,_0x5ad1c3(0xc7),_0x4d1b0d[_0x5ad1c3(0xcf)]);}catch(_0x446b36){_0x2b2afb['EqCLx'](logError,_0x446b36,{'event':_0x2b2afb[_0x5ad1c3(0xde)],'dbType':_0x5ad1c3(0xb1)},'Error\x20rolling\x20back\x20MySQL\x20transaction:\x20'+_0x446b36['message']);}throw _0xf31d63;}finally{if(_0x140616)try{_0x140616['release']();}catch(_0x1c0c89){logError(_0x1c0c89,{'event':'mysql_transaction_connection_release_error'},'Error\x20releasing\x20MySQL\x20transaction\x20connection:\x20'+_0x1c0c89[_0x5ad1c3(0xc4)]);}}}async['getConnection'](){const _0x5b316b=a0_0x5bfdf1;return!this['pool']&&await this['initializePool'](),await this[_0x5b316b(0xa7)]['getConnection']();}async[a0_0x5bfdf1(0xd4)](){const _0x58406f=a0_0x5bfdf1,_0x5cf6b7={'nRFnd':_0x58406f(0xb3),'viTwk':_0x58406f(0xe2),'eNhXm':'MySQL\x20connection\x20pool\x20closed','urCRp':function(_0x4be8d4,_0xb26a91,_0x4c22c1,_0x5c044d){return _0x4be8d4(_0xb26a91,_0x4c22c1,_0x5c044d);}};try{this[_0x58406f(0xa7)]&&(logger[_0x58406f(0xd1)]({'event':_0x58406f(0xc0)},_0x5cf6b7['nRFnd']),await this[_0x58406f(0xa7)]['end'](),this[_0x58406f(0xa7)]=null,logger['info']({'event':_0x5cf6b7['viTwk']},_0x5cf6b7['eNhXm']));}catch(_0x4f0e75){_0x5cf6b7[_0x58406f(0xca)](logError,_0x4f0e75,{'event':'mysql_pool_close_error'},'Error\x20closing\x20MySQL\x20connection\x20pool:\x20'+_0x4f0e75['message']);throw _0x4f0e75;}}async[a0_0x5bfdf1(0xaf)](){const _0x183750=a0_0x5bfdf1,_0x49fe2c={'djBsN':_0x183750(0xe1)};let _0x22f994;try{return!this[_0x183750(0xa7)]&&await this[_0x183750(0xda)](),_0x22f994=await this[_0x183750(0xa7)]['getConnection'](),await _0x22f994['execute'](_0x183750(0xed)),!![];}catch(_0x243eab){return logError(_0x243eab,{'event':_0x49fe2c['djBsN']},_0x183750(0xe5)+_0x243eab[_0x183750(0xc4)]),![];}finally{if(_0x22f994)try{_0x22f994[_0x183750(0xd7)]();}catch(_0x1499c7){}}}['getPoolStatistics'](){const _0x505415=a0_0x5bfdf1,_0x48ec81={'GuOMG':'Pool\x20not\x20initialized','FeBaD':'Active'};if(!this['pool']||!this['pool']['pool'])return{'status':_0x48ec81[_0x505415(0xdb)]};const _0x5ead4c=this['pool']['pool'];return{'connectionsInUse':_0x5ead4c[_0x505415(0xd8)]?_0x5ead4c['_allConnections']['length']-_0x5ead4c[_0x505415(0xd0)]['length']:0x0,'connectionsOpen':_0x5ead4c[_0x505415(0xd8)]?_0x5ead4c[_0x505415(0xd8)]['length']:0x0,'connectionLimit':this[_0x505415(0xdc)]['connectionLimit'],'queueLength':_0x5ead4c['_connectionQueue']?_0x5ead4c[_0x505415(0xdd)][_0x505415(0xcf)]:0x0,'status':_0x48ec81['FeBaD']};}}const mysqlDb=new MysqlDatabase();module['exports']=mysqlDb;
1
+ function a0_0x31ac(){const _0x29c3c4=['z2v0ug9VBfn0yxrPC3rPy3m','mZmWnG','ChvZAa','qMzbrwG','zxHLy3v0zvrYyw5Zywn0Aw9U','r3LoEvK','AhbVCgy','BwvZC2fNzq','C3fS','AfPoEwO','mtaZmdvJvKX2rhy','BevowLm','Aw5MBW','C3rHCNq','mJG5mdqXntbkCfPTzxq','u0vmrunuideGyxmGDgvZDf9JB25Uzwn0Aw9U','zxjYBM8','rxjYB3iGCMvSzwfZAw5Nie15u1fmihrYyw5Zywn0Aw9UignVBM5Ly3rPB246ia','vuDttKG','mtqZng5rtwDcAq','zxHLy3v0zq','x2fSBenVBM5Ly3rPB25Z','t0XStfe','Aw5Zzxj0swq','txLtuuWGu1fmievYCM9YoIa','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','BgvUz3rO','DxnLCG','BxLZCwW','zgvIDwC','mZu0mtm5mM5PrfnJAG','txLtuuWGy29UBMvJDgLVBIb0zxn0igDHz2fSoIa','wMDMEha','BgzMC0O','y2HHBMDLzfjVD3m','txLtuuWGy29UBMvJDgLVBIbWB29Sihn1zgfOigfKyq','AMTZsuW','DxrMog1Ina','Aw5PDgLHBgL6zvbVB2W','CMvSzwfZzq','y29TBwL0','AMz5zLC','A01wwgq','BxLZCwXFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','CgfYyw1Z','lI9ZAhv0zg93BI1JB29YzgLUyxrVCG','Afbdsvm','yNHXwuS','mtq5odu0mKXsvfDxzq','mtKYtMTJCu5V','y29UzMLN','CM9SBgjHy2S','mJmYnZe1DKjHEhfH','CM9SBgjHy2TFzxjYB3i','t3PXtwu','owLKtKTTuG','lI9SB2DNzxi','rxjYB3iGy2HLy2TPBMCGtxLtuuWGy29UBMvJDgLVBJOG','BxLZCwXFCg9VBf9JBg9Zzv9LCNjVCG','y29UBMvJDgLVBKXPBwL0','uhHzu0i','z2v0q29UBMvJDgLVBG','odC4mJu0vuj4DxLP','wK9kDg8','u0vmrunuide','Cg9VBa','CM9VDa','vhjHBNnHy3rPB24GzMfPBgvKoIa','yMvNAw5uCMfUC2fJDgLVBG','rejFueftu1DpuKq','Cg9YDa','ywzMzwn0zwrsB3DZ','CMvNAxn0zxi','DgvZDa','rxjYB3iGy2XVC2LUzYbnEvnrtcbJB25Uzwn0Aw9UihbVB2W6ia','DgvZDenVBM5Ly3rPB24','mJG0mde3CwftsvDN','Eu1cu08','x2zYzwvdB25Uzwn0Aw9UCW','ihf1zxjPzxmP','rxjYB3iGCM9SBgLUzYbIywnRie15u1fmihrYyw5Zywn0Aw9UoIa','AxnbCNjHEq','zw52','x3nODxrKB3DUuMvNAxn0zxjLza','BxLZCwXFDgvZDf9JB25Uzwn0Aw9Ux3jLBgvHC2vFzxjYB3i'];a0_0x31ac=function(){return _0x29c3c4;};return a0_0x31ac();}const a0_0x459756=a0_0x4cee;(function(_0x3e37a5,_0x53649e){const _0x3ae6e1=a0_0x4cee,_0x17b5e5=_0x3e37a5();while(!![]){try{const _0x430562=-parseInt(_0x3ae6e1(0x203))/0x1+-parseInt(_0x3ae6e1(0x1f5))/0x2+parseInt(_0x3ae6e1(0x1e7))/0x3+-parseInt(_0x3ae6e1(0x1d5))/0x4+parseInt(_0x3ae6e1(0x1c1))/0x5*(-parseInt(_0x3ae6e1(0x1ca))/0x6)+-parseInt(_0x3ae6e1(0x1eb))/0x7*(parseInt(_0x3ae6e1(0x1e8))/0x8)+-parseInt(_0x3ae6e1(0x1ee))/0x9*(-parseInt(_0x3ae6e1(0x1c5))/0xa);if(_0x430562===_0x53649e)break;else _0x17b5e5['push'](_0x17b5e5['shift']());}catch(_0x203228){_0x17b5e5['push'](_0x17b5e5['shift']());}}}(a0_0x31ac,0x77de2));function a0_0x4cee(_0x535b6b,_0x12d686){_0x535b6b=_0x535b6b-0x1b8;const _0x31ac3c=a0_0x31ac();let _0x4cee94=_0x31ac3c[_0x535b6b];if(a0_0x4cee['vDTOMO']===undefined){var _0xb19ee6=function(_0x20f75a){const _0x2c67ca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b3987='',_0x4900a1='';for(let _0x1fcd3f=0x0,_0x48bf3c,_0x1c4664,_0x36d959=0x0;_0x1c4664=_0x20f75a['charAt'](_0x36d959++);~_0x1c4664&&(_0x48bf3c=_0x1fcd3f%0x4?_0x48bf3c*0x40+_0x1c4664:_0x1c4664,_0x1fcd3f++%0x4)?_0x4b3987+=String['fromCharCode'](0xff&_0x48bf3c>>(-0x2*_0x1fcd3f&0x6)):0x0){_0x1c4664=_0x2c67ca['indexOf'](_0x1c4664);}for(let _0x42bd1a=0x0,_0x4b652c=_0x4b3987['length'];_0x42bd1a<_0x4b652c;_0x42bd1a++){_0x4900a1+='%'+('00'+_0x4b3987['charCodeAt'](_0x42bd1a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4900a1);};a0_0x4cee['oHhuym']=_0xb19ee6,a0_0x4cee['ZBTsoL']={},a0_0x4cee['vDTOMO']=!![];}const _0x2ede15=_0x31ac3c[0x0],_0x189130=_0x535b6b+_0x2ede15,_0x308400=a0_0x4cee['ZBTsoL'][_0x189130];return!_0x308400?(_0x4cee94=a0_0x4cee['oHhuym'](_0x4cee94),a0_0x4cee['ZBTsoL'][_0x189130]=_0x4cee94):_0x4cee94=_0x308400,_0x4cee94;}const mysql=require('mysql2/promise'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x459756(0x1ef));class MysqlDatabase{constructor(){const _0x2d0c0f=a0_0x459756,_0x390795={'UGSNH':'localhost','KCsfN':_0x2d0c0f(0x1f9),'hpopf':_0x2d0c0f(0x200),'OzqMe':function(_0x14e58b,_0xe99d9c){return _0x14e58b(_0xe99d9c);},'BfAEh':_0x2d0c0f(0x1dc)};this['pool']=null,this[_0x2d0c0f(0x1e9)]={'host':process['env']['DB_HOST']||_0x390795[_0x2d0c0f(0x1c9)],'port':parseInt(process['env']['DB_PORT']||_0x2d0c0f(0x1b8)),'user':process['env']['DB_USER']||_0x390795['KCsfN'],'password':process['env'][_0x2d0c0f(0x1fc)]||'','database':process[_0x2d0c0f(0x209)]['DB_NAME']||_0x390795[_0x2d0c0f(0x1bd)],'waitForConnections':!![],'connectionLimit':_0x390795[_0x2d0c0f(0x1ed)](parseInt,process['env']['DB_POOL_MAX'])||0xa,'queueLimit':0x0,'dateStrings':!![],'supportBigNumbers':!![],'bigNumberStrings':!![],'timezone':'+00:00','charset':_0x390795[_0x2d0c0f(0x1ba)]},_0x390795[_0x2d0c0f(0x1ed)](logDatabaseConfig,{'host':this[_0x2d0c0f(0x1e9)]['host'],'port':this['config'][_0x2d0c0f(0x1fd)],'database':this['config']['database'],'type':'mysql','user':this[_0x2d0c0f(0x1e9)][_0x2d0c0f(0x1d2)],'connectionLimit':this['config'][_0x2d0c0f(0x1f2)]});}async[a0_0x459756(0x1dd)](){const _0x18e9c5=a0_0x459756,_0x200257={'HxjMY':'mysql_pool_exists','maXOm':_0x18e9c5(0x1da),'Zgfxp':function(_0x196886,_0x412754){return _0x196886(_0x412754);},'GUVzT':_0x18e9c5(0x1e4),'XhFmQ':'mysql_pool_error'};try{if(this['pool']){logger[_0x18e9c5(0x1d4)]({'event':_0x200257['HxjMY']},_0x200257['maXOm']);return;}this[_0x18e9c5(0x1f8)]=mysql['createPool'](this[_0x18e9c5(0x1e9)]),await this['testConnection'](),!this['_shutdownRegistered']&&(_0x200257[_0x18e9c5(0x1d7)](require,_0x200257['GUVzT'])[_0x18e9c5(0x1ff)]('mysql-pool',()=>this['closePool'](),{'order':0x32}),this[_0x18e9c5(0x20a)]=!![]);}catch(_0x42cd26){logError(_0x42cd26,{'event':_0x200257['XhFmQ']},'Error\x20saat\x20membuat\x20MySQL\x20connection\x20pool:\x20'+_0x42cd26['message']);throw _0x42cd26;}}async[a0_0x459756(0x202)](){const _0x38159d=a0_0x459756,_0x37f9a0={'BbJEQ':function(_0x1fc219,_0x297efa,_0x39c654,_0x524c61){return _0x1fc219(_0x297efa,_0x39c654,_0x524c61);},'SaDPc':'mysql_connection_test_failed'};let _0x4a0f27;try{logger[_0x38159d(0x1d4)]({'event':'mysql_connection_test_start'},'Testing\x20MySQL\x20database\x20connection...'),_0x4a0f27=await this['pool'][_0x38159d(0x1f4)](),await _0x4a0f27['execute'](_0x38159d(0x1c6));}catch(_0x6ab709){_0x37f9a0['BbJEQ'](logError,_0x6ab709,{'event':_0x37f9a0['SaDPc']},_0x38159d(0x1d6)+_0x6ab709[_0x38159d(0x1be)]);throw _0x6ab709;}finally{if(_0x4a0f27)try{_0x4a0f27[_0x38159d(0x1de)]();}catch(_0x19ada8){_0x37f9a0['BbJEQ'](logError,_0x19ada8,{'event':_0x38159d(0x20b)},'Error\x20releasing\x20test\x20connection:\x20'+_0x19ada8['message']);}}}async['executeQuery'](_0x306adf,_0x38823f=[]){const _0x273bde=a0_0x459756,_0x2d8ed6={'jksIL':function(_0x568abd){return _0x568abd();},'hPCIS':_0x273bde(0x1d3),'ZOJto':function(_0x1d6a63){return _0x1d6a63();},'thAUy':'sql_error','VeWbu':function(_0x340f15,_0x2e5727,_0x20cc84,_0x41f38d){return _0x340f15(_0x2e5727,_0x20cc84,_0x41f38d);}};let _0x130839;const _0x1e448e=_0x2d8ed6['jksIL'](startQueryTimer);try{!this['pool']&&await this[_0x273bde(0x1dd)]();_0x130839=await this[_0x273bde(0x1f8)][_0x273bde(0x1f4)]();const [_0x55727f,_0x492261]=await _0x130839[_0x273bde(0x1cb)](_0x306adf,_0x38823f),_0x3e9b68=_0x2d8ed6[_0x273bde(0x1db)](_0x1e448e),_0x6525d5=Array[_0x273bde(0x208)](_0x55727f),_0x548d51=_0x6525d5?_0x55727f[_0x273bde(0x1d1)]:_0x55727f['affectedRows'];return logQuery(_0x306adf,_0x38823f,{'duration':_0x3e9b68,'rowsAffected':_0x548d51,'dbType':_0x2d8ed6[_0x273bde(0x1e5)]}),_0x6525d5?_0x55727f:{'rowsAffected':_0x55727f[_0x273bde(0x1fe)],'insertId':_0x55727f['insertId'],'changedRows':_0x55727f[_0x273bde(0x1d9)]};}catch(_0xf05e2a){const _0x33ded2=_0x2d8ed6[_0x273bde(0x1f6)](_0x1e448e);logError(_0xf05e2a,{'event':_0x2d8ed6['thAUy'],'query':_0x306adf['substring'](0x0,0x1f4),'paramCount':_0x38823f[_0x273bde(0x1d1)],'durationMs':_0x33ded2,'code':_0xf05e2a['code'],'errno':_0xf05e2a[_0x273bde(0x1c7)],'dbType':'mysql'},_0x273bde(0x1cf)+_0xf05e2a['message']);throw _0xf05e2a;}finally{if(_0x130839)try{_0x130839[_0x273bde(0x1de)]();}catch(_0x221031){_0x2d8ed6['VeWbu'](logError,_0x221031,{'event':'mysql_connection_release_error'},'Error\x20releasing\x20MySQL\x20connection:\x20'+_0x221031[_0x273bde(0x1be)]);}}}async[a0_0x459756(0x1bb)](_0x5647c7){const _0x25b039=a0_0x459756,_0x46296f={'waAhH':function(_0xcfd176,_0x2cedb1,_0x5ebc1c){return _0xcfd176(_0x2cedb1,_0x5ebc1c);},'OLlLQ':function(_0x1ae58b){return _0x1ae58b();},'kMVXd':function(_0x48a80d,_0x4bded1){return _0x48a80d>_0x4bded1;},'GyNyY':_0x25b039(0x1d3),'xaLug':function(_0x4c9661){return _0x4c9661();},'PxYSB':_0x25b039(0x1df),'sHYGK':function(_0x55c125,_0x22f2c0,_0x25ae28,_0x47e233){return _0x55c125(_0x22f2c0,_0x25ae28,_0x47e233);},'dLZqn':'transaction_error','yMBSO':_0x25b039(0x1ea),'hZNyj':function(_0xe7637f,_0x30485d,_0x5ceb37,_0x9d7ff9){return _0xe7637f(_0x30485d,_0x5ceb37,_0x9d7ff9);},'jfyfW':_0x25b039(0x1ec),'JdPgI':function(_0x29b3d8,_0x436847,_0x621494,_0x446411){return _0x29b3d8(_0x436847,_0x621494,_0x446411);},'lffsJ':'mysql_transaction_connection_release_error'};let _0xd255bd;const _0x2f5fd4=startQueryTimer();try{!this[_0x25b039(0x1f8)]&&await this['initializePool']();_0xd255bd=await this['pool']['getConnection'](),_0x46296f['waAhH'](logTransaction,_0x25b039(0x1c4),_0x5647c7['length']),await _0xd255bd[_0x25b039(0x1fb)]();const _0x1d2121=[];for(const _0x59492f of _0x5647c7){const _0x592707=_0x46296f['OLlLQ'](startQueryTimer),_0x40167a=_0x59492f[_0x25b039(0x1e3)]||[],[_0x5250fa,_0x301806]=_0x46296f[_0x25b039(0x1e1)](_0x40167a['length'],0x0)?await _0xd255bd[_0x25b039(0x1cb)](_0x59492f[_0x25b039(0x1bf)],_0x40167a):await _0xd255bd['query'](_0x59492f[_0x25b039(0x1bf)]),_0x5befde=_0x46296f[_0x25b039(0x1cd)](_0x592707),_0x56e3c4=Array[_0x25b039(0x208)](_0x5250fa),_0x15f1e6=_0x56e3c4?_0x5250fa['length']:_0x5250fa['affectedRows'];logQuery(_0x59492f['sql'],_0x59492f[_0x25b039(0x1e3)]||[],{'duration':_0x5befde,'rowsAffected':_0x15f1e6,'dbType':_0x46296f[_0x25b039(0x1bc)]}),_0x56e3c4?_0x1d2121[_0x25b039(0x1b9)](_0x5250fa):_0x1d2121['push']({'rowsAffected':_0x5250fa['affectedRows'],'insertId':_0x5250fa[_0x25b039(0x1ce)],'changedRows':_0x5250fa['changedRows']});}await _0xd255bd['commit']();const _0x1d34cc=_0x46296f['xaLug'](_0x2f5fd4);return logTransaction(_0x46296f[_0x25b039(0x1f3)],_0x5647c7['length']),logger[_0x25b039(0x1c3)]({'event':'transaction_complete','queryCount':_0x5647c7[_0x25b039(0x1d1)],'totalDurationMs':_0x1d34cc,'dbType':_0x46296f['GyNyY']},_0x25b039(0x1d0)+_0x1d34cc+'ms,\x20'+_0x5647c7[_0x25b039(0x1d1)]+_0x25b039(0x206)),_0x1d2121;}catch(_0x21f8c3){const _0x511956=_0x2f5fd4();_0x46296f['sHYGK'](logError,_0x21f8c3,{'event':_0x46296f['dLZqn'],'queryCount':_0x5647c7[_0x25b039(0x1d1)],'totalDurationMs':_0x511956,'code':_0x21f8c3['code'],'errno':_0x21f8c3[_0x25b039(0x1c7)],'dbType':_0x25b039(0x1d3)},_0x25b039(0x1fa)+_0x21f8c3['message']);if(_0xd255bd)try{await _0xd255bd['rollback'](),logTransaction(_0x46296f[_0x25b039(0x204)],_0x5647c7[_0x25b039(0x1d1)]);}catch(_0x3b286c){_0x46296f[_0x25b039(0x1c0)](logError,_0x3b286c,{'event':_0x46296f[_0x25b039(0x1e0)],'dbType':_0x46296f['GyNyY']},_0x25b039(0x207)+_0x3b286c[_0x25b039(0x1be)]);}throw _0x21f8c3;}finally{if(_0xd255bd)try{_0xd255bd['release']();}catch(_0x4733ac){_0x46296f['JdPgI'](logError,_0x4733ac,{'event':_0x46296f[_0x25b039(0x1d8)]},_0x25b039(0x1c8)+_0x4733ac['message']);}}}async[a0_0x459756(0x1f4)](){const _0x2c6952=a0_0x459756;return!this['pool']&&await this['initializePool'](),await this['pool'][_0x2c6952(0x1f4)]();}async['closePool'](){const _0x5d5625=a0_0x459756,_0x439e61={'bxqYK':'mysql_pool_closing','lENZS':'Closing\x20MySQL\x20connection\x20pool...'};try{this['pool']&&(logger[_0x5d5625(0x1c3)]({'event':_0x439e61[_0x5d5625(0x1e6)]},_0x439e61[_0x5d5625(0x1c2)]),await this['pool']['end'](),this[_0x5d5625(0x1f8)]=null,logger[_0x5d5625(0x1c3)]({'event':'mysql_pool_closed'},'MySQL\x20connection\x20pool\x20closed'));}catch(_0x28a089){logError(_0x28a089,{'event':_0x5d5625(0x1f1)},_0x5d5625(0x201)+_0x28a089[_0x5d5625(0x1be)]);throw _0x28a089;}}async['checkConnection'](){const _0x554272=a0_0x459756,_0x3cc017={'HFjzt':function(_0x219a7b,_0x22423c,_0x13cbf1,_0x948e7f){return _0x219a7b(_0x22423c,_0x13cbf1,_0x948e7f);},'VELwm':_0x554272(0x1e2)};let _0x2fb0bf;try{return!this['pool']&&await this['initializePool'](),_0x2fb0bf=await this[_0x554272(0x1f8)]['getConnection'](),await _0x2fb0bf[_0x554272(0x1cb)](_0x554272(0x1f7)),!![];}catch(_0x5561b8){return _0x3cc017['HFjzt'](logError,_0x5561b8,{'event':_0x3cc017['VELwm']},_0x554272(0x1f0)+_0x5561b8[_0x554272(0x1be)]),![];}finally{if(_0x2fb0bf)try{_0x2fb0bf[_0x554272(0x1de)]();}catch(_0x3a1e47){}}}[a0_0x459756(0x20c)](){const _0x84dcb=a0_0x459756,_0x362227={'qfHUr':function(_0x2f0f33,_0x5d9f74){return _0x2f0f33-_0x5d9f74;}};if(!this[_0x84dcb(0x1f8)]||!this['pool'][_0x84dcb(0x1f8)])return{'status':'Pool\x20not\x20initialized'};const _0x553213=this['pool']['pool'];return{'connectionsInUse':_0x553213[_0x84dcb(0x1cc)]?_0x362227['qfHUr'](_0x553213[_0x84dcb(0x1cc)][_0x84dcb(0x1d1)],_0x553213[_0x84dcb(0x205)]['length']):0x0,'connectionsOpen':_0x553213[_0x84dcb(0x1cc)]?_0x553213['_allConnections'][_0x84dcb(0x1d1)]:0x0,'connectionLimit':this[_0x84dcb(0x1e9)]['connectionLimit'],'queueLength':_0x553213['_connectionQueue']?_0x553213['_connectionQueue']['length']:0x0,'status':'Active'};}}const mysqlDb=new MysqlDatabase();module['exports']=mysqlDb;
@@ -1 +1 @@
1
- const a0_0x217a84=a0_0x20ba;function a0_0x20ba(_0x558bdf,_0x5b806f){_0x558bdf=_0x558bdf-0x17b;const _0x1bf47e=a0_0x1bf4();let _0x20ba39=_0x1bf47e[_0x558bdf];if(a0_0x20ba['vDFlqP']===undefined){var _0x1bf1ad=function(_0x55cb1c){const _0x2b722e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x369be2='',_0x27d90c='';for(let _0x5ed484=0x0,_0x4b09d2,_0x330261,_0x34d230=0x0;_0x330261=_0x55cb1c['charAt'](_0x34d230++);~_0x330261&&(_0x4b09d2=_0x5ed484%0x4?_0x4b09d2*0x40+_0x330261:_0x330261,_0x5ed484++%0x4)?_0x369be2+=String['fromCharCode'](0xff&_0x4b09d2>>(-0x2*_0x5ed484&0x6)):0x0){_0x330261=_0x2b722e['indexOf'](_0x330261);}for(let _0x13c8f3=0x0,_0x1b3201=_0x369be2['length'];_0x13c8f3<_0x1b3201;_0x13c8f3++){_0x27d90c+='%'+('00'+_0x369be2['charCodeAt'](_0x13c8f3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27d90c);};a0_0x20ba['NLeiTx']=_0x1bf1ad,a0_0x20ba['kkVAlc']={},a0_0x20ba['vDFlqP']=!![];}const _0x43a0eb=_0x1bf47e[0x0],_0x101d2b=_0x558bdf+_0x43a0eb,_0x1b530b=a0_0x20ba['kkVAlc'][_0x101d2b];return!_0x1b530b?(_0x20ba39=a0_0x20ba['NLeiTx'](_0x20ba39),a0_0x20ba['kkVAlc'][_0x101d2b]=_0x20ba39):_0x20ba39=_0x1b530b,_0x20ba39;}(function(_0x3acd82,_0x3a4b50){const _0xfc2070=a0_0x20ba,_0x4a62df=_0x3acd82();while(!![]){try{const _0xd4b22d=-parseInt(_0xfc2070(0x1c3))/0x1*(parseInt(_0xfc2070(0x1b6))/0x2)+-parseInt(_0xfc2070(0x1b8))/0x3+parseInt(_0xfc2070(0x1a4))/0x4+-parseInt(_0xfc2070(0x1d8))/0x5+parseInt(_0xfc2070(0x18c))/0x6+-parseInt(_0xfc2070(0x1ab))/0x7+parseInt(_0xfc2070(0x1d6))/0x8;if(_0xd4b22d===_0x3a4b50)break;else _0x4a62df['push'](_0x4a62df['shift']());}catch(_0x25e1b3){_0x4a62df['push'](_0x4a62df['shift']());}}}(a0_0x1bf4,0x9801e));const oracledb=require(a0_0x217a84(0x1d3)),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x217a84(0x19a));function a0_0x1bf4(){const _0x460ed8=['u0vmrunuifnzu0rbveuGyxmGy3vYCMvUDf9KyxrLlcbvu0vsigfZign1CNjLBNrFDxnLCIbguK9niervquW','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','y2XVC2u','BgvUz3rO','yLvIC1i','mty4ode2oxrmqNDUwG','C2TwA3u','Aw5MBW','mtuYmq','y29UBMvJDgLVBNnpCgvU','zxHLy3v0zvf1zxj5','zMv0y2HbC0j1zMzLCG','z2v0ug9VBfn0yxrPC3rPy3m','rxjYB3iGy2XVC2LUzYbpCMfJBguGy29UBMvJDgLVBIbWB29SoIa','CgfYyw1Z','ChvZAa','mty5otrMzNPIs3q','z2v0q29UBMvJDgLVBG','mJe4nZy0nw5jt3jjta','rxjYB3iGy2XVC2LUzYbpCMfJBguGDhjHBNnHy3rPB24Gy29UBMvJDgLVBJOG','Bg9JywXOB3n0','y3jLyxrLug9VBa','y29TBwL0','Bg1JCu8','quXurviGu0vtu0LptIbtrvqGtKXtx1rjtuvtvefnuf9uwL9gt1jnqvqGpsaNwvLzws1nts1ercjuiKHimJq6tuK6u1mUrKyZvfPioLrAtsC','uuTHreW','quXurviGu0vtu0LptIbtrvqGtKXtx0rbvevFrK9stufuid0Gj1LzwvKTtu0TreqN','B3jHy2XLx2nVBM5Ly3rPB25FC3rYAw5N','reHLwfO','muX0DvnuyG','zw52','B3jHy2XLx3bVB2XFy2XVC2LUzW','ug9VBcbUB3qGAw5PDgLHBgL6zwq','wMriyu8','Cg9VBe1HEa','y29UzMLN','zgvIDwC','rejFse9tva','q0XpqG','lI9ZAhv0zg93BI1JB29YzgLUyxrVCG','Dhzxvhm','C3rtELG','rxjYB3iGCM9SBgLUzYbIywnRie9YywnSzsb0CMfUC2fJDgLVBJOG','C3rHCNq','rejFue9ptf9jtKnsru1ftLq','B3jHy2XLzgi','DKLgBve','Aw5PDgLHBgL6zvbVB2W','mtiWnda1ndrXr2v4BfO','CM9SBgjHy2S','ntGZntm1mhzizK9XuW','zxHLy3v0zq','B3jHy2XLlxbVB2W','B3jHy2XLx2nVBM5Ly3rPB25Fy2XVC2vFzxjYB3i','tKnmt0i','rNbbzuq','zxHWB3j0CW','Cg9VBeLUy3jLBwvUDa','Cg9VBfrPBwvVDxq','BwvZC2fNzq','C1z3vw4','ruDsrxG','zxHLy3v0zvrYyw5Zywn0Aw9U','rejFueftu1DpuKq','rejFtKfnrq','yxv0B0nVBw1PDa','qKXpqG','BgfZDfjVD2LK','yNvPBgrdB25Uzwn0Aw9Uu3rYAw5N','nJe0nJaZnhbwzKn6Aq','tNjxuxu','Cg9VBe1PBG','y2XVC2vqB29S','Cg9VBa','C0rQAeS','CM93C0fMzMvJDgvK','rejFue9ptf9nqvG','CMvNAxn0zxi','zxjYB3joDw0','B3jHy2XLx2nVBM5Ly3rPB25FDgvZDf9MywLSzwq','CM93CW','q2XVC2LUzYbpCMfJBguGy29UBMvJDgLVBIbWB29SlI4U','x25SC1jLywr5','lI9SB2DNzxi','zMv0y2HbC1n0CMLUzW','B3jHy2XL','C3fSx2vYCM9Y','sND2sLC','rejFue9ptf9nsu4','B3jHy2XLx2nVBM5Ly3rPB25FDgvZDf9ZDgfYDa','CvLqA1m','vhjHBNnHy3rPB24GzMfPBgvKoIa','t3jHy2XLifnrtcbfCNjVCJOG','otu2nJu2shnmELfK','rejFue9ptf9usu1ft1vu'];a0_0x1bf4=function(){return _0x460ed8;};return a0_0x1bf4();}oracledb[a0_0x217a84(0x19b)]=[oracledb[a0_0x217a84(0x1cc)],oracledb[a0_0x217a84(0x17d)]],oracledb[a0_0x217a84(0x1b1)]=[oracledb['BLOB']];async function ensureNlsReady(_0x5f307f){const _0x40caab=a0_0x217a84;if(_0x5f307f['_nlsReady'])return;await _0x5f307f[_0x40caab(0x1d9)](_0x40caab(0x1c0)),await _0x5f307f['execute']('ALTER\x20SESSION\x20SET\x20NLS_TIMESTAMP_FORMAT\x20=\x20\x27YYYY-MM-DD\x22T\x22HH24:MI:SS.FF3\x27'),await _0x5f307f[_0x40caab(0x1d9)](_0x40caab(0x1be)),_0x5f307f[_0x40caab(0x199)]=!![];}class OracleDatabase{constructor(){const _0x522f26=a0_0x217a84,_0x174e12={'DHeXZ':function(_0x360067,_0x535b60){return _0x360067(_0x535b60);},'ECUKP':function(_0x48ff5d,_0x404138){return _0x48ff5d(_0x404138);},'sDjhK':_0x522f26(0x1ae)};this[_0x522f26(0x190)]=null,this[_0x522f26(0x1c9)]={'user':process[_0x522f26(0x1c4)]['DB_USER']||'hr','password':process[_0x522f26(0x1c4)][_0x522f26(0x186)]||'hr','connectString':this[_0x522f26(0x18b)](),'poolMin':parseInt(process[_0x522f26(0x1c4)][_0x522f26(0x19f)])||0x2,'poolMax':parseInt(process[_0x522f26(0x1c4)][_0x522f26(0x193)])||0xa,'poolIncrement':_0x174e12[_0x522f26(0x1c2)](parseInt,process[_0x522f26(0x1c4)][_0x522f26(0x1d2)])||0x1,'poolTimeout':parseInt(process[_0x522f26(0x1c4)][_0x522f26(0x1a5)])||0x3c,'autoCommit':!![],'fetchAsString':[oracledb['CLOB'],oracledb['NCLOB']],'fetchAsBuffer':[oracledb[_0x522f26(0x189)]]},_0x174e12['ECUKP'](logDatabaseConfig,{'host':process['env'][_0x522f26(0x1cb)]||_0x522f26(0x1ba),'port':process['env']['DB_PORT']||_0x174e12[_0x522f26(0x191)],'database':process[_0x522f26(0x1c4)]['DB_NAME']||'XE','type':'oracle','user':this['config']['user'],'poolMin':this[_0x522f26(0x1c9)]['poolMin'],'poolMax':this[_0x522f26(0x1c9)][_0x522f26(0x1c8)]});}[a0_0x217a84(0x18b)](){const _0x579fec=a0_0x217a84,_0x38860a={'nDhTN':_0x579fec(0x1c1)},_0x28c412=process['env'][_0x579fec(0x1cb)]||'localhost',_0x1308ad=process['env']['DB_PORT']||_0x579fec(0x1ae),_0x52bcbe=process[_0x579fec(0x1c4)][_0x579fec(0x187)]||'XE',_0x230769='//'+_0x28c412+':'+_0x1308ad+'/'+_0x52bcbe;return logger['debug']({'event':_0x38860a['nDhTN'],'connectionString':_0x230769},'Oracle\x20Connection\x20String:\x20'+_0x230769),_0x230769;}async['initializePool'](){const _0x24700e=a0_0x217a84,_0xcde5ab={'stSzX':'oracle_pool_exists','QKaDL':'Oracle\x20connection\x20pool\x20sudah\x20ada','skVku':function(_0xf9fa11,_0x4da57e){return _0xf9fa11(_0x4da57e);},'bUbsR':_0x24700e(0x17b)};try{if(this['pool']){logger[_0x24700e(0x1ca)]({'event':_0xcde5ab[_0x24700e(0x1cf)]},_0xcde5ab[_0x24700e(0x1bf)]);return;}this[_0x24700e(0x190)]=await oracledb[_0x24700e(0x1bb)](this[_0x24700e(0x1c9)]),await this['testConnection'](),!this['_shutdownRegistered']&&(_0xcde5ab[_0x24700e(0x1ac)](require,_0x24700e(0x1cd))[_0x24700e(0x194)](_0xcde5ab[_0x24700e(0x1aa)],()=>this['closePool'](),{'order':0x32,'timeoutMs':0x2ee0}),this['_shutdownRegistered']=!![]);}catch(_0x37da58){logError(_0x37da58,{'event':'oracle_pool_error'},'Error\x20saat\x20membuat\x20Oracle\x20connection\x20pool:\x20'+_0x37da58['message']);throw _0x37da58;}}async['testConnection'](){const _0x16fbe9=a0_0x217a84,_0x2acff6={'NLyTO':_0x16fbe9(0x1a0),'EWIuw':_0x16fbe9(0x1a6)};let _0x2878d2;try{logger[_0x16fbe9(0x1ca)]({'event':_0x2acff6['NLyTO']},'Testing\x20Oracle\x20database\x20connection...'),_0x2878d2=await this[_0x16fbe9(0x190)]['getConnection'](),await ensureNlsReady(_0x2878d2);const _0x30ee62=await _0x2878d2[_0x16fbe9(0x1d9)](_0x2acff6['EWIuw']);}catch(_0x4b8860){logError(_0x4b8860,{'event':_0x16fbe9(0x196)},'Oracle\x20connection\x20test\x20gagal:\x20'+_0x4b8860['message']);throw _0x4b8860;}finally{if(_0x2878d2)try{await _0x2878d2['close']();}catch(_0x7e4fa8){logError(_0x7e4fa8,{'event':'oracle_test_connection_close_error'},'Error\x20closing\x20test\x20connection:\x20'+_0x7e4fa8['message']);}}}async[a0_0x217a84(0x1b0)](_0x266492,_0x16a496=[],_0x440eb3={}){const _0x1c28f8=a0_0x217a84,_0x4c0a4b={'DCWeX':function(_0x1eb5c2,_0x32a95f){return _0x1eb5c2(_0x32a95f);},'jjGZF':function(_0x437d2b,_0x4ca8aa){return _0x437d2b!==_0x4ca8aa;},'NrWQu':function(_0x3f4257){return _0x3f4257();},'tvWTs':function(_0x3a3b55,_0x526df2,_0x1e0e78,_0x50ac01){return _0x3a3b55(_0x526df2,_0x1e0e78,_0x50ac01);},'sVwUn':'oracle'};let _0x5ee486;const _0x2bf6b9=startQueryTimer();try{!this['pool']&&await this['initializePool']();_0x5ee486=await this[_0x1c28f8(0x190)]['getConnection'](),await _0x4c0a4b['DCWeX'](ensureNlsReady,_0x5ee486);const _0xb8c599={'outFormat':oracledb['OUT_FORMAT_OBJECT'],'autoCommit':_0x4c0a4b['jjGZF'](_0x440eb3[_0x1c28f8(0x188)],undefined)?_0x440eb3[_0x1c28f8(0x188)]:!![],..._0x440eb3},_0x3a1a9c=await _0x5ee486['execute'](_0x266492,_0x16a496,_0xb8c599),_0x39f418=_0x4c0a4b[_0x1c28f8(0x18d)](_0x2bf6b9),_0x38d3cb=_0x3a1a9c['rows']?_0x3a1a9c['rows']['length']:_0x3a1a9c[_0x1c28f8(0x192)];return _0x4c0a4b['tvWTs'](logQuery,_0x266492,_0x16a496,{'duration':_0x39f418,'rowsAffected':_0x38d3cb,'dbType':_0x4c0a4b[_0x1c28f8(0x183)]}),_0x3a1a9c[_0x1c28f8(0x197)]?_0x3a1a9c[_0x1c28f8(0x197)]:{'rowsAffected':_0x3a1a9c['rowsAffected'],'lastRowid':_0x3a1a9c[_0x1c28f8(0x18a)]};}catch(_0x545090){const _0x1521ea=_0x2bf6b9();logError(_0x545090,{'event':_0x1c28f8(0x19d),'query':_0x266492['substring'](0x0,0x1f4),'paramCount':_0x16a496[_0x1c28f8(0x1a9)],'durationMs':_0x1521ea,'code':_0x545090['errorNum'],'dbType':_0x4c0a4b['sVwUn']},_0x1c28f8(0x1a3)+_0x545090['message']);throw _0x545090;}finally{if(_0x5ee486)try{await _0x5ee486[_0x1c28f8(0x1a8)]();}catch(_0x52f5a0){_0x4c0a4b[_0x1c28f8(0x1ce)](logError,_0x52f5a0,{'event':_0x1c28f8(0x17c)},'Error\x20closing\x20Oracle\x20connection:\x20'+_0x52f5a0['message']);}}}async[a0_0x217a84(0x185)](_0x19f3aa){const _0x1ead42=a0_0x217a84,_0x4c4306={'lmcqO':function(_0x18ad6e){return _0x18ad6e();},'RwiJo':function(_0xb50003,_0x5b9206,_0x2f4a86,_0x1e4250){return _0xb50003(_0x5b9206,_0x2f4a86,_0x1e4250);},'vIFmQ':_0x1ead42(0x19c),'WEYxy':'transaction_complete','AXQYN':function(_0x2abeb3,_0x43b499,_0x2e036c,_0x49c9f7){return _0x2abeb3(_0x43b499,_0x2e036c,_0x49c9f7);},'jFFgH':function(_0x40ee45,_0x143594,_0x41a533){return _0x40ee45(_0x143594,_0x41a533);},'CurmK':_0x1ead42(0x1d7),'oHYGQ':'rollback_error','ZdHaO':'oracle_transaction_connection_close_error'};let _0x47d7d4;const _0x502078=startQueryTimer();try{!this[_0x1ead42(0x190)]&&await this['initializePool']();_0x47d7d4=await this['pool'][_0x1ead42(0x1b7)](),await ensureNlsReady(_0x47d7d4),logTransaction(_0x1ead42(0x1d1),_0x19f3aa['length']);const _0x36eeab=[];for(const _0x2f3652 of _0x19f3aa){const _0x3fda09=_0x4c4306[_0x1ead42(0x1bd)](startQueryTimer),_0x5008d7=await _0x47d7d4[_0x1ead42(0x1d9)](_0x2f3652['sql'],_0x2f3652[_0x1ead42(0x1b4)]||[],{'autoCommit':![],'outFormat':oracledb['OUT_FORMAT_OBJECT']}),_0x13688f=_0x3fda09(),_0x50ec5b=_0x5008d7[_0x1ead42(0x197)]?_0x5008d7['rows'][_0x1ead42(0x1a9)]:_0x5008d7['rowsAffected'];_0x4c4306['RwiJo'](logQuery,_0x2f3652['sql'],_0x2f3652[_0x1ead42(0x1b4)]||[],{'duration':_0x13688f,'rowsAffected':_0x50ec5b,'dbType':_0x4c4306[_0x1ead42(0x1d4)]}),_0x36eeab[_0x1ead42(0x1b5)](_0x5008d7);}await _0x47d7d4[_0x1ead42(0x1bc)]();const _0x4dfd78=_0x502078();return logTransaction('commit',_0x19f3aa['length']),logger['info']({'event':_0x4c4306['WEYxy'],'queryCount':_0x19f3aa[_0x1ead42(0x1a9)],'totalDurationMs':_0x4dfd78,'dbType':_0x1ead42(0x19c)},_0x1ead42(0x1a7)+_0x4dfd78+'ms,\x20'+_0x19f3aa[_0x1ead42(0x1a9)]+'\x20queries)'),_0x36eeab;}catch(_0x2e71a2){const _0x3a741f=_0x502078();_0x4c4306['AXQYN'](logError,_0x2e71a2,{'event':'transaction_error','queryCount':_0x19f3aa[_0x1ead42(0x1a9)],'totalDurationMs':_0x3a741f,'code':_0x2e71a2[_0x1ead42(0x195)],'dbType':_0x4c4306[_0x1ead42(0x1d4)]},_0x1ead42(0x1a2)+_0x2e71a2['message']);if(_0x47d7d4)try{await _0x47d7d4[_0x1ead42(0x1d7)](),_0x4c4306['jFFgH'](logTransaction,_0x4c4306['CurmK'],_0x19f3aa['length']);}catch(_0xbad88d){logError(_0xbad88d,{'event':_0x4c4306['oHYGQ'],'dbType':'oracle'},_0x1ead42(0x1d0)+_0xbad88d[_0x1ead42(0x182)]);}throw _0x2e71a2;}finally{if(_0x47d7d4)try{await _0x47d7d4['close']();}catch(_0x49698b){logError(_0x49698b,{'event':_0x4c4306[_0x1ead42(0x1c7)]},_0x1ead42(0x1b9)+_0x49698b['message']);}}}async['getConnection'](){const _0x2069ab=a0_0x217a84,_0x3e985d={'JwvJW':function(_0x2d106e,_0x441d3a){return _0x2d106e(_0x441d3a);}};!this['pool']&&await this[_0x2069ab(0x1d5)]();const _0x5c9191=await this[_0x2069ab(0x190)][_0x2069ab(0x1b7)]();return await _0x3e985d[_0x2069ab(0x19e)](ensureNlsReady,_0x5c9191),_0x5c9191;}async[a0_0x217a84(0x18f)](){const _0xf51a6c=a0_0x217a84,_0x29579a={'FpAeD':'Oracle\x20connection\x20pool\x20closed','qYPkS':function(_0x2550f0,_0x62fc71,_0x59c2d1,_0x25e818){return _0x2550f0(_0x62fc71,_0x59c2d1,_0x25e818);}};try{this['pool']&&(logger[_0xf51a6c(0x1ad)]({'event':_0xf51a6c(0x1c5)},_0xf51a6c(0x198)),await this[_0xf51a6c(0x190)]['close'](0xa),this['pool']=null,logger['info']({'event':'oracle_pool_closed'},_0x29579a[_0xf51a6c(0x17e)]));}catch(_0x508c63){_0x29579a[_0xf51a6c(0x1a1)](logError,_0x508c63,{'event':'oracle_pool_close_error'},_0xf51a6c(0x1b3)+_0x508c63['message']);throw _0x508c63;}}[a0_0x217a84(0x1b2)](){const _0xd243e4=a0_0x217a84,_0x5c5857={'EGREx':_0xd243e4(0x1c6)};if(!this[_0xd243e4(0x190)])return{'status':_0x5c5857[_0xd243e4(0x184)]};return{'connectionsInUse':this['pool']['connectionsInUse'],'connectionsOpen':this['pool'][_0xd243e4(0x1af)],'poolAlias':this[_0xd243e4(0x190)]['poolAlias'],'poolMin':this['pool'][_0xd243e4(0x18e)],'poolMax':this['pool']['poolMax'],'poolIncrement':this['pool'][_0xd243e4(0x180)],'poolTimeout':this[_0xd243e4(0x190)][_0xd243e4(0x181)],'status':'Active'};}}const oracleDb=new OracleDatabase();module[a0_0x217a84(0x17f)]=oracleDb;
1
+ function a0_0x2b1c(_0x4a76f2,_0x6e0fa0){_0x4a76f2=_0x4a76f2-0x1f4;const _0x4564ab=a0_0x4564();let _0x2b1c2f=_0x4564ab[_0x4a76f2];if(a0_0x2b1c['cswWVq']===undefined){var _0x4a9fa0=function(_0x1f9d12){const _0x4c1ea9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3607f0='',_0x5d9fdb='';for(let _0x261c79=0x0,_0x5bf415,_0xebd5a5,_0xc2e471=0x0;_0xebd5a5=_0x1f9d12['charAt'](_0xc2e471++);~_0xebd5a5&&(_0x5bf415=_0x261c79%0x4?_0x5bf415*0x40+_0xebd5a5:_0xebd5a5,_0x261c79++%0x4)?_0x3607f0+=String['fromCharCode'](0xff&_0x5bf415>>(-0x2*_0x261c79&0x6)):0x0){_0xebd5a5=_0x4c1ea9['indexOf'](_0xebd5a5);}for(let _0x5ebbc0=0x0,_0x49b35b=_0x3607f0['length'];_0x5ebbc0<_0x49b35b;_0x5ebbc0++){_0x5d9fdb+='%'+('00'+_0x3607f0['charCodeAt'](_0x5ebbc0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d9fdb);};a0_0x2b1c['EljDNz']=_0x4a9fa0,a0_0x2b1c['CDnZxs']={},a0_0x2b1c['cswWVq']=!![];}const _0x370de2=_0x4564ab[0x0],_0x227397=_0x4a76f2+_0x370de2,_0x181371=a0_0x2b1c['CDnZxs'][_0x227397];return!_0x181371?(_0x2b1c2f=a0_0x2b1c['EljDNz'](_0x2b1c2f),a0_0x2b1c['CDnZxs'][_0x227397]=_0x2b1c2f):_0x2b1c2f=_0x181371,_0x2b1c2f;}const a0_0x1e2333=a0_0x2b1c;function a0_0x4564(){const _0x31d1ed=['rxjYB3iGC2fHDcbTzw1IDwf0ie9YywnSzsbJB25Uzwn0Aw9UihbVB2W6ia','ywrPB3q','rejFue9ptf9usu1ft1vu','x3nODxrKB3DUuMvNAxn0zxjLza','zw52','yxv0B0nVBw1PDa','mtyZmZuXnLrwyLDHtW','BxvTzK8','vgvZDgLUzYbpCMfJBguGzgf0ywjHC2uGy29UBMvJDgLVBI4UlG','B3jHy2XLx3bVB2XFzxHPC3rZ','mtu0nZqWm1HnC1LWsG','y2XVC2vqB29S','nZC5mdi4ze1nD05r','zMv0y2HbC1n0CMLUzW','mtG1odvjDeLiwwO','qKXpqG','mZm3ndiYnKnLwMDsyG','zMv0y2HbC0j1zMzLCG','zxHLy3v0zq','t1vux0zpuK1bvf9pqKPfq1q','swrywuO','tKnmt0i','CM93CW','y29UBMvJDgLVBNnpCgvU','y29UzMLN','y29TBwL0','thfJyLy','ENDIEhu','B3jHy2XLx2nVBM5Ly3rPB25FC3rYAw5N','y2XVC2u','rxjYB3iGy2XVC2LUzYbpCMfJBguGy29UBMvJDgLVBJOG','zgPzwfe','zxjYB3joDw0','q2XVC2LUzYbpCMfJBguGy29UBMvJDgLVBIbWB29SlI4U','AgT1uLK','quXurviGu0vtu0LptIbtrvqGtKXtx1rjtuvtvefnuf9gt1jnqvqGpsaNwvLzws1nts1ercjuiKHimJq6tuK6u1mUrKyZjW','Cg9VBefSAwfZ','CM9SBgjHy2S','y29UBMvJDgLVBNnjBLvZzq','Bg9JywXOB3n0','u3fRyue','y3jLyxrLug9VBa','CM93C0fMzMvJDgvK','odbzruPVD3y','Aw5PDgLHBgL6zvbVB2W','Aw5MBW','odvNz2DSy3i','EwDXCvy','vhjHBNnHy3rPB24GzMfPBgvKoIa','z2jiu3a','B3jHy2XL','zgvIDwC','AvngC2S','rejFue9ptf9nqvG','qwn0AxzL','DhjHBNnHy3rPB25FzxjYB3i','CM9SBgjHy2TFzxjYB3i','te50yvm','yNvPBgrdB25Uzwn0Aw9Uu3rYAw5N','Cg9VBa','C3vIC3rYAw5N','rejFtKfnrq','rxjYB3iGy2XVC2LUzYbpCMfJBguGy29UBMvJDgLVBIbWB29SoIa','x25SC1jLywr5','u0vmrunuifnzu0rbveuGyxmGy3vYCMvUDf9KyxrLlcbvu0vsigfZign1CNjLBNrFDxnLCIbguK9niervquW','rejFueftu1DpuKq','zxHWB3j0CW','wKjkBwW','Cg9VBeLUy3jLBwvUDa','yKjStha','BwvZC2fNzq','DKvfv2m','Cfbwq0C','Cg9VBe1PBG','mZm0mZa2nvryAg5izG','B3jHy2XLx3rYyw5Zywn0Aw9Ux2nVBM5Ly3rPB25Fy2XVC2vFzxjYB3i','BgvUz3rO','DhjHBNnHy3rPB25Fy29TCgXLDgu','B3jHy2XLx3rLC3rFy29UBMvJDgLVBL9JBg9Zzv9LCNjVCG','CwnUy08','z2v0ug9VBfn0yxrPC3rPy3m','nhfYu2DfDG','mtaWrgn3DvHe','ChvZAa','lI9ZAhv0zg93BI1JB29YzgLUyxrVCG','AvzKAfe','z2v0q29UBMvJDgLVBG','rxjYB3iGy2XVC2LUzYb0zxn0ignVBM5Ly3rPB246ia','Cg9VBe1HEa','mJK0mtHrDgjlv1y','BxmSia','B3jHy2XLx2nVBM5Ly3rPB25FDgvZDf9ZDgfYDa','B3jHy2XLx3bVB2XFy2XVC2vK'];a0_0x4564=function(){return _0x31d1ed;};return a0_0x4564();}(function(_0x363fb6,_0x1ef7a3){const _0x16394b=a0_0x2b1c,_0x3d77e0=_0x363fb6();while(!![]){try{const _0x5b70f1=-parseInt(_0x16394b(0x235))/0x1+-parseInt(_0x16394b(0x22f))/0x2+-parseInt(_0x16394b(0x233))/0x3*(parseInt(_0x16394b(0x21d))/0x4)+-parseInt(_0x16394b(0x1fa))/0x5*(parseInt(_0x16394b(0x225))/0x6)+parseInt(_0x16394b(0x237))/0x7*(-parseInt(_0x16394b(0x1f7))/0x8)+-parseInt(_0x16394b(0x239))/0x9+-parseInt(_0x16394b(0x21e))/0xa*(-parseInt(_0x16394b(0x216))/0xb);if(_0x5b70f1===_0x1ef7a3)break;else _0x3d77e0['push'](_0x3d77e0['shift']());}catch(_0x169292){_0x3d77e0['push'](_0x3d77e0['shift']());}}}(a0_0x4564,0x6c17c));const oracledb=require('oracledb'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger');oracledb[a0_0x1e2333(0x236)]=[oracledb['CLOB'],oracledb[a0_0x1e2333(0x23e)]],oracledb[a0_0x1e2333(0x23a)]=[oracledb[a0_0x1e2333(0x238)]];async function ensureNlsReady(_0x4ffc15){const _0x4a2711=a0_0x1e2333;if(_0x4ffc15[_0x4a2711(0x20b)])return;await _0x4ffc15['execute']('ALTER\x20SESSION\x20SET\x20NLS_DATE_FORMAT\x20=\x20\x27YYYY-MM-DD\x27'),await _0x4ffc15['execute'](_0x4a2711(0x24c)),await _0x4ffc15[_0x4a2711(0x23b)]('ALTER\x20SESSION\x20SET\x20NLS_TIMESTAMP_TZ_FORMAT\x20=\x20\x27YYYY-MM-DD\x22T\x22HH24:MI:SS.FF3TZH:TZM\x27'),_0x4ffc15['_nlsReady']=!![];}class OracleDatabase{constructor(){const _0x226cc9=a0_0x1e2333,_0x2b15cf={'zwbxu':function(_0x5353f5,_0x53def1){return _0x5353f5(_0x53def1);},'gbHSp':function(_0x59cb04,_0x19b703){return _0x59cb04(_0x19b703);},'bBlLp':_0x226cc9(0x250),'ygqqV':'1521'};this[_0x226cc9(0x207)]=null,this[_0x226cc9(0x241)]={'user':process[_0x226cc9(0x22d)]['DB_USER']||'hr','password':process[_0x226cc9(0x22d)][_0x226cc9(0x20d)]||'hr','connectString':this[_0x226cc9(0x206)](),'poolMin':_0x2b15cf[_0x226cc9(0x244)](parseInt,process['env']['DB_POOL_MIN'])||0x2,'poolMax':parseInt(process['env'][_0x226cc9(0x201)])||0xa,'poolIncrement':parseInt(process[_0x226cc9(0x22d)]['DB_POOL_INCREMENT'])||0x1,'poolTimeout':_0x2b15cf[_0x226cc9(0x1fd)](parseInt,process['env'][_0x226cc9(0x22b)])||0x3c,'autoCommit':!![],'fetchAsString':[oracledb['CLOB'],oracledb['NCLOB']],'fetchAsBuffer':[oracledb[_0x226cc9(0x238)]]},logDatabaseConfig({'host':process['env']['DB_HOST']||_0x2b15cf[_0x226cc9(0x211)],'port':process[_0x226cc9(0x22d)]['DB_PORT']||_0x2b15cf[_0x226cc9(0x1fb)],'database':process['env'][_0x226cc9(0x209)]||'XE','type':'oracle','user':this[_0x226cc9(0x241)]['user'],'poolMin':this['config']['poolMin'],'poolMax':this['config']['poolMax']});}['buildConnectionString'](){const _0x2881c5=a0_0x1e2333,_0x21f696={'iPrjI':_0x2881c5(0x245)},_0x286a27=process['env']['DB_HOST']||_0x2881c5(0x250),_0x24148a=process['env']['DB_PORT']||'1521',_0x3c3996=process['env'][_0x2881c5(0x209)]||'XE',_0x1742d4='//'+_0x286a27+':'+_0x24148a+'/'+_0x3c3996;return logger['debug']({'event':_0x21f696['iPrjI'],'connectionString':_0x1742d4},'Oracle\x20Connection\x20String:\x20'+_0x1742d4),_0x1742d4;}async[a0_0x1e2333(0x1f8)](){const _0x388fc8=a0_0x1e2333,_0x1d3e06={'dPiZb':_0x388fc8(0x220),'iSFsk':'oracle-pool','mumfO':function(_0x3dc3c6,_0x236886,_0x234b30,_0x23b1b0){return _0x3dc3c6(_0x236886,_0x234b30,_0x23b1b0);}};try{if(this[_0x388fc8(0x207)]){logger[_0x388fc8(0x1ff)]({'event':_0x388fc8(0x232)},'Oracle\x20connection\x20pool\x20sudah\x20ada');return;}this[_0x388fc8(0x207)]=await oracledb[_0x388fc8(0x1f5)](this[_0x388fc8(0x241)]),await this['testConnection'](),!this['_shutdownRegistered']&&(require(_0x1d3e06['dPiZb'])['register'](_0x1d3e06[_0x388fc8(0x200)],()=>this[_0x388fc8(0x234)](),{'order':0x32,'timeoutMs':0x2ee0}),this[_0x388fc8(0x22c)]=!![]);}catch(_0x5a0706){_0x1d3e06[_0x388fc8(0x230)](logError,_0x5a0706,{'event':'oracle_pool_error'},_0x388fc8(0x229)+_0x5a0706[_0x388fc8(0x212)]);throw _0x5a0706;}}async['testConnection'](){const _0x17b349=a0_0x1e2333,_0x4e7bb5={'IdXYJ':_0x17b349(0x227),'LqcbV':_0x17b349(0x231),'vEEWc':function(_0x4e460b,_0x1ef8bc){return _0x4e460b(_0x1ef8bc);},'cFneS':_0x17b349(0x20c),'glgVk':function(_0x2bd8f5,_0x4bfab3,_0x3fb928,_0x1e62e0){return _0x2bd8f5(_0x4bfab3,_0x3fb928,_0x1e62e0);}};let _0x312719;try{logger[_0x17b349(0x1ff)]({'event':_0x4e7bb5[_0x17b349(0x23d)]},_0x4e7bb5[_0x17b349(0x243)]),_0x312719=await this[_0x17b349(0x207)]['getConnection'](),await _0x4e7bb5[_0x17b349(0x213)](ensureNlsReady,_0x312719);const _0x44f9e9=await _0x312719['execute'](_0x4e7bb5['cFneS']);}catch(_0x164d9c){_0x4e7bb5['glgVk'](logError,_0x164d9c,{'event':'oracle_connection_test_failed'},'Oracle\x20connection\x20test\x20gagal:\x20'+_0x164d9c[_0x17b349(0x212)]);throw _0x164d9c;}finally{if(_0x312719)try{await _0x312719['close']();}catch(_0x4ff25f){logError(_0x4ff25f,{'event':_0x17b349(0x21a)},_0x17b349(0x223)+_0x4ff25f[_0x17b349(0x212)]);}}}async['executeQuery'](_0x1b770e,_0x5bace6=[],_0x4c4540={}){const _0x51d19c=a0_0x1e2333,_0x4063ff={'adiot':function(_0x2cc38a){return _0x2cc38a();},'ibAjp':function(_0x191994){return _0x191994();},'SqkaA':'sql_error','LNtaS':function(_0x539950,_0x181fcd,_0x17d76e,_0x1e27bd){return _0x539950(_0x181fcd,_0x17d76e,_0x1e27bd);},'djYXQ':'oracle_connection_close_error'};let _0x1f4e79;const _0x3eee1a=_0x4063ff[_0x51d19c(0x22a)](startQueryTimer);try{!this['pool']&&await this['initializePool']();_0x1f4e79=await this[_0x51d19c(0x207)]['getConnection'](),await ensureNlsReady(_0x1f4e79);const _0x31a43b={'outFormat':oracledb['OUT_FORMAT_OBJECT'],'autoCommit':_0x4c4540[_0x51d19c(0x22e)]!==undefined?_0x4c4540[_0x51d19c(0x22e)]:!![],..._0x4c4540},_0x5ceb9b=await _0x1f4e79[_0x51d19c(0x23b)](_0x1b770e,_0x5bace6,_0x31a43b),_0x5495ae=_0x3eee1a(),_0x59760a=_0x5ceb9b['rows']?_0x5ceb9b[_0x51d19c(0x23f)]['length']:_0x5ceb9b['rowsAffected'];return logQuery(_0x1b770e,_0x5bace6,{'duration':_0x5495ae,'rowsAffected':_0x59760a,'dbType':'oracle'}),_0x5ceb9b[_0x51d19c(0x23f)]?_0x5ceb9b['rows']:{'rowsAffected':_0x5ceb9b[_0x51d19c(0x1f6)],'lastRowid':_0x5ceb9b['lastRowid']};}catch(_0x355fd1){const _0x55c2ca=_0x4063ff['ibAjp'](_0x3eee1a);logError(_0x355fd1,{'event':_0x4063ff[_0x51d19c(0x1f4)],'query':_0x1b770e[_0x51d19c(0x208)](0x0,0x1f4),'paramCount':_0x5bace6[_0x51d19c(0x218)],'durationMs':_0x55c2ca,'code':_0x355fd1[_0x51d19c(0x249)],'dbType':_0x51d19c(0x1fe)},'Oracle\x20SQL\x20Error:\x20'+_0x355fd1['message']);throw _0x355fd1;}finally{if(_0x1f4e79)try{await _0x1f4e79['close']();}catch(_0x5839a1){_0x4063ff[_0x51d19c(0x205)](logError,_0x5839a1,{'event':_0x4063ff[_0x51d19c(0x248)]},_0x51d19c(0x247)+_0x5839a1[_0x51d19c(0x212)]);}}}async['executeTransaction'](_0x532612){const _0x5332f4=a0_0x1e2333,_0x22900d={'hkuRY':function(_0x49f933){return _0x49f933();},'kMiVZ':function(_0x55fcc3,_0x167427,_0x3f9098,_0x569a9d){return _0x55fcc3(_0x167427,_0x3f9098,_0x569a9d);},'pPVCG':_0x5332f4(0x1fe),'iVdhQ':function(_0x5674fb){return _0x5674fb();},'ZBJml':_0x5332f4(0x203),'QzZtJ':function(_0x2097d8,_0xe45c2d,_0x4f719e){return _0x2097d8(_0xe45c2d,_0x4f719e);},'hHPNA':_0x5332f4(0x24e),'DRPmp':_0x5332f4(0x217)};let _0x191502;const _0x69c5bc=startQueryTimer();try{!this['pool']&&await this[_0x5332f4(0x1f8)]();_0x191502=await this[_0x5332f4(0x207)]['getConnection'](),await ensureNlsReady(_0x191502),logTransaction('start',_0x532612[_0x5332f4(0x218)]);const _0x27563b=[];for(const _0x506763 of _0x532612){const _0x1c32f2=startQueryTimer(),_0x3f108c=await _0x191502['execute'](_0x506763['sql'],_0x506763['params']||[],{'autoCommit':![],'outFormat':oracledb[_0x5332f4(0x23c)]}),_0xed7c58=_0x22900d[_0x5332f4(0x24b)](_0x1c32f2),_0x19b594=_0x3f108c['rows']?_0x3f108c[_0x5332f4(0x23f)][_0x5332f4(0x218)]:_0x3f108c[_0x5332f4(0x1f6)];_0x22900d['kMiVZ'](logQuery,_0x506763['sql'],_0x506763['params']||[],{'duration':_0xed7c58,'rowsAffected':_0x19b594,'dbType':_0x22900d[_0x5332f4(0x214)]}),_0x27563b[_0x5332f4(0x21f)](_0x3f108c);}await _0x191502[_0x5332f4(0x242)]();const _0x91f64c=_0x22900d[_0x5332f4(0x221)](_0x69c5bc);return logTransaction(_0x5332f4(0x242),_0x532612['length']),logger['info']({'event':_0x5332f4(0x219),'queryCount':_0x532612['length'],'totalDurationMs':_0x91f64c,'dbType':_0x22900d[_0x5332f4(0x214)]},'Transaction\x20committed\x20('+_0x91f64c+_0x5332f4(0x226)+_0x532612[_0x5332f4(0x218)]+'\x20queries)'),_0x27563b;}catch(_0x20c7e5){const _0x8a4336=_0x69c5bc();logError(_0x20c7e5,{'event':_0x22900d[_0x5332f4(0x20f)],'queryCount':_0x532612[_0x5332f4(0x218)],'totalDurationMs':_0x8a4336,'code':_0x20c7e5[_0x5332f4(0x249)],'dbType':_0x5332f4(0x1fe)},_0x5332f4(0x1fc)+_0x20c7e5[_0x5332f4(0x212)]);if(_0x191502)try{await _0x191502[_0x5332f4(0x24e)](),_0x22900d['QzZtJ'](logTransaction,_0x22900d['hHPNA'],_0x532612['length']);}catch(_0x52d640){_0x22900d['kMiVZ'](logError,_0x52d640,{'event':_0x5332f4(0x204),'dbType':_0x22900d['pPVCG']},'Error\x20rolling\x20back\x20Oracle\x20transaction:\x20'+_0x52d640['message']);}throw _0x20c7e5;}finally{if(_0x191502)try{await _0x191502[_0x5332f4(0x246)]();}catch(_0x57f76e){logError(_0x57f76e,{'event':_0x22900d['DRPmp']},'Error\x20closing\x20Oracle\x20transaction\x20connection:\x20'+_0x57f76e['message']);}}}async[a0_0x1e2333(0x222)](){const _0x5282b4=a0_0x1e2333,_0x1c68c8={'wWxYP':function(_0x312610,_0xba98cd){return _0x312610(_0xba98cd);}};!this['pool']&&await this[_0x5282b4(0x1f8)]();const _0x36580c=await this['pool'][_0x5282b4(0x222)]();return await _0x1c68c8['wWxYP'](ensureNlsReady,_0x36580c),_0x36580c;}async[a0_0x1e2333(0x234)](){const _0x2e3e2e=a0_0x1e2333,_0xf923ca={'qcncO':'oracle_pool_closing','wiAfH':_0x2e3e2e(0x228)};try{this['pool']&&(logger[_0x2e3e2e(0x1f9)]({'event':_0xf923ca[_0x2e3e2e(0x21b)]},_0x2e3e2e(0x24a)),await this['pool']['close'](0xa),this[_0x2e3e2e(0x207)]=null,logger['info']({'event':_0xf923ca['wiAfH']},'Oracle\x20connection\x20pool\x20closed'));}catch(_0x2ad704){logError(_0x2ad704,{'event':'oracle_pool_close_error'},_0x2e3e2e(0x20a)+_0x2ad704['message']);throw _0x2ad704;}}[a0_0x1e2333(0x21c)](){const _0x10fdae=a0_0x1e2333,_0x37dbe7={'yABPh':_0x10fdae(0x202)};if(!this[_0x10fdae(0x207)])return{'status':'Pool\x20not\x20initialized'};return{'connectionsInUse':this['pool'][_0x10fdae(0x24f)],'connectionsOpen':this[_0x10fdae(0x207)][_0x10fdae(0x240)],'poolAlias':this[_0x10fdae(0x207)][_0x10fdae(0x24d)],'poolMin':this[_0x10fdae(0x207)][_0x10fdae(0x215)],'poolMax':this[_0x10fdae(0x207)][_0x10fdae(0x224)],'poolIncrement':this[_0x10fdae(0x207)][_0x10fdae(0x210)],'poolTimeout':this['pool']['poolTimeout'],'status':_0x37dbe7['yABPh']};}}const oracleDb=new OracleDatabase();module[a0_0x1e2333(0x20e)]=oracleDb;
@@ -1 +1 @@
1
- const a0_0x1ba5d9=a0_0x4a82;(function(_0x54619d,_0x5e4ebb){const _0x47a900=a0_0x4a82,_0x268e79=_0x54619d();while(!![]){try{const _0x3fc00b=-parseInt(_0x47a900(0x14d))/0x1*(-parseInt(_0x47a900(0x13a))/0x2)+parseInt(_0x47a900(0x16a))/0x3+parseInt(_0x47a900(0x164))/0x4*(parseInt(_0x47a900(0x133))/0x5)+-parseInt(_0x47a900(0x153))/0x6+parseInt(_0x47a900(0x141))/0x7*(-parseInt(_0x47a900(0x14e))/0x8)+-parseInt(_0x47a900(0x138))/0x9*(-parseInt(_0x47a900(0x135))/0xa)+parseInt(_0x47a900(0x15d))/0xb;if(_0x3fc00b===_0x5e4ebb)break;else _0x268e79['push'](_0x268e79['shift']());}catch(_0x2965d6){_0x268e79['push'](_0x268e79['shift']());}}}(a0_0x53a6,0xca971));let Database;try{Database=require(a0_0x1ba5d9(0x167));}catch(a0_0x15b4a8){if(a0_0x15b4a8&&a0_0x15b4a8[a0_0x1ba5d9(0x16c)]===a0_0x1ba5d9(0x14b)&&/better-sqlite3/['test'](a0_0x15b4a8[a0_0x1ba5d9(0x16d)]||'')){const e=new Error('SQLite\x20driver\x20tidak\x20ter-install.\x20better-sqlite3\x20tidak\x20di-bundle\x20dalam\x20'+a0_0x1ba5d9(0x158)+'npm\x20install\x20better-sqlite3');e[a0_0x1ba5d9(0x16c)]=a0_0x1ba5d9(0x163);throw e;}throw a0_0x15b4a8;}function a0_0x4a82(_0x5e3337,_0x33d9bb){_0x5e3337=_0x5e3337-0x12d;const _0x53a6e0=a0_0x53a6();let _0x4a82d0=_0x53a6e0[_0x5e3337];if(a0_0x4a82['KROZYO']===undefined){var _0x5e6166=function(_0x10c07){const _0x28ec30='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x71fa3c='',_0x2eb62d='';for(let _0x1bcf50=0x0,_0x1a2d03,_0x4022e2,_0x22ded1=0x0;_0x4022e2=_0x10c07['charAt'](_0x22ded1++);~_0x4022e2&&(_0x1a2d03=_0x1bcf50%0x4?_0x1a2d03*0x40+_0x4022e2:_0x4022e2,_0x1bcf50++%0x4)?_0x71fa3c+=String['fromCharCode'](0xff&_0x1a2d03>>(-0x2*_0x1bcf50&0x6)):0x0){_0x4022e2=_0x28ec30['indexOf'](_0x4022e2);}for(let _0x5b29b1=0x0,_0x1c4d28=_0x71fa3c['length'];_0x5b29b1<_0x1c4d28;_0x5b29b1++){_0x2eb62d+='%'+('00'+_0x71fa3c['charCodeAt'](_0x5b29b1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2eb62d);};a0_0x4a82['jciaFF']=_0x5e6166,a0_0x4a82['ogKlXY']={},a0_0x4a82['KROZYO']=!![];}const _0x15e2a9=_0x53a6e0[0x0],_0x4821e1=_0x5e3337+_0x15e2a9,_0x18b6a7=a0_0x4a82['ogKlXY'][_0x4821e1];return!_0x18b6a7?(_0x4a82d0=a0_0x4a82['jciaFF'](_0x4a82d0),a0_0x4a82['ogKlXY'][_0x4821e1]=_0x4a82d0):_0x4a82d0=_0x18b6a7,_0x4a82d0;}const {logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger');class SqliteDatabase{constructor(){const _0x34aa76=a0_0x1ba5d9,_0x24ee15={'kSeXp':'5000','QgOdO':function(_0xed0719,_0x110b33){return _0xed0719(_0x110b33);},'QlTbL':_0x34aa76(0x15c)};this['db']=null,this['dbPath']=process['env']['DB_NAME']||_0x34aa76(0x147),this[_0x34aa76(0x130)]=parseInt(process[_0x34aa76(0x12e)][_0x34aa76(0x151)]||_0x24ee15[_0x34aa76(0x137)]),_0x24ee15[_0x34aa76(0x162)](logDatabaseConfig,{'database':this[_0x34aa76(0x150)],'type':_0x24ee15['QlTbL'],'busyTimeout':this[_0x34aa76(0x130)]});}['initializeDatabase'](){const _0x4d10f9=a0_0x1ba5d9,_0x259a92={'VDgVR':function(_0x36f6ba,_0x5a6389){return _0x36f6ba(_0x5a6389);},'gtgai':'SQLite\x20database\x20connection\x20sudah\x20ada','IvzRk':function(_0x4f0ec9,_0x5980b3,_0x7d632c,_0x53248f){return _0x4f0ec9(_0x5980b3,_0x7d632c,_0x53248f);},'uzlGA':_0x4d10f9(0x160)};try{const _0x331def='5|2|3|4|1|0'['split']('|');let _0xdf1f52=0x0;while(!![]){switch(_0x331def[_0xdf1f52++]){case'0':!this['_shutdownRegistered']&&(_0x259a92['VDgVR'](require,_0x4d10f9(0x136))['register']('sqlite-db',()=>this[_0x4d10f9(0x165)](),{'order':0x32}),this['_shutdownRegistered']=!![]);continue;case'1':this[_0x4d10f9(0x143)]();continue;case'2':this['db']=new Database(this[_0x4d10f9(0x150)],{'timeout':this[_0x4d10f9(0x130)]});continue;case'3':this['db']['pragma'](_0x4d10f9(0x154));continue;case'4':this['db'][_0x4d10f9(0x14f)]('foreign_keys\x20=\x20ON');continue;case'5':if(this['db']){logger['debug']({'event':_0x4d10f9(0x169)},_0x259a92[_0x4d10f9(0x161)]);return;}continue;}break;}}catch(_0x52fe74){_0x259a92[_0x4d10f9(0x145)](logError,_0x52fe74,{'event':_0x259a92[_0x4d10f9(0x15b)]},'Error\x20saat\x20membuka\x20SQLite\x20database:\x20'+_0x52fe74['message']);throw _0x52fe74;}}[a0_0x1ba5d9(0x143)](){const _0x1aef32=a0_0x1ba5d9;try{logger[_0x1aef32(0x168)]({'event':_0x1aef32(0x12d)},'Testing\x20SQLite\x20database\x20connection...'),this['db']['prepare']('SELECT\x201\x20as\x20test_connection')['get']();}catch(_0x24843f){logError(_0x24843f,{'event':'sqlite_connection_test_failed'},_0x1aef32(0x131)+_0x24843f['message']);throw _0x24843f;}}async[a0_0x1ba5d9(0x16b)](_0x21fef4,_0x4eca99=[]){const _0x59f500=a0_0x1ba5d9,_0x2931a7={'mfMIs':function(_0x3bfd07){return _0x3bfd07();},'jkExu':function(_0x2b8d4e,_0x5d2c2f,_0x4c950a,_0x5c95cc){return _0x2b8d4e(_0x5d2c2f,_0x4c950a,_0x5c95cc);},'qKTdJ':'sql_error','AZuhg':'sqlite'},_0x1baaca=startQueryTimer();try{!this['db']&&this[_0x59f500(0x166)]();const _0x1ea850=this['db'][_0x59f500(0x142)](_0x21fef4),_0x3b62c8=/\bRETURNING\b/i['test'](_0x21fef4),_0x2460bc=/^\s*(SELECT|PRAGMA|EXPLAIN|WITH\s)/i['test'](_0x21fef4);let _0x5a2eab,_0x4ac403;if(_0x2460bc||_0x3b62c8){const _0x1232fd=_0x1ea850[_0x59f500(0x13e)](..._0x4eca99),_0x45f598=_0x2931a7[_0x59f500(0x12f)](_0x1baaca);return _0x2931a7[_0x59f500(0x13d)](logQuery,_0x21fef4,_0x4eca99,{'duration':_0x45f598,'rowsAffected':_0x1232fd[_0x59f500(0x14a)],'dbType':_0x59f500(0x15c)}),_0x1232fd;}else{const _0xc890=_0x1ea850['run'](..._0x4eca99),_0x3c8350=_0x1baaca();return _0x5a2eab={'rowsAffected':_0xc890['changes'],'insertId':_0xc890[_0x59f500(0x13c)]},logQuery(_0x21fef4,_0x4eca99,{'duration':_0x3c8350,'rowsAffected':_0xc890['changes'],'dbType':_0x59f500(0x15c)}),_0x5a2eab;}}catch(_0x9fa01b){const _0x28a3eb=_0x1baaca();logError(_0x9fa01b,{'event':_0x2931a7[_0x59f500(0x13b)],'query':_0x21fef4['substring'](0x0,0x1f4),'paramCount':_0x4eca99[_0x59f500(0x14a)],'durationMs':_0x28a3eb,'code':_0x9fa01b[_0x59f500(0x16c)],'dbType':_0x2931a7[_0x59f500(0x15e)]},_0x59f500(0x132)+_0x9fa01b[_0x59f500(0x16d)]);throw _0x9fa01b;}}async[a0_0x1ba5d9(0x159)](_0x3110c3){const _0x59b7bf=a0_0x1ba5d9,_0x275314={'fVZKj':function(_0x7d07d6){return _0x7d07d6();},'Xpodp':function(_0x27a6c1,_0x46392d,_0x2b97ab,_0x50cf12){return _0x27a6c1(_0x46392d,_0x2b97ab,_0x50cf12);},'HcdoH':'sqlite','XKdJc':function(_0x2a6260,_0x1fbed6,_0x88e36d){return _0x2a6260(_0x1fbed6,_0x88e36d);},'yLKgK':function(_0x2fc48f,_0x10e87d){return _0x2fc48f(_0x10e87d);},'HkMGK':function(_0x1a1f00){return _0x1a1f00();},'wwuIR':function(_0x43c0ae,_0x2c240b,_0x56a4c6){return _0x43c0ae(_0x2c240b,_0x56a4c6);},'OvykJ':'rollback','YQpbv':function(_0x33b3b0,_0x427c46,_0x7e3dba,_0x3f7575){return _0x33b3b0(_0x427c46,_0x7e3dba,_0x3f7575);}},_0x3dd89b=startQueryTimer();try{!this['db']&&this['initializeDatabase']();_0x275314[_0x59b7bf(0x149)](logTransaction,'start',_0x3110c3[_0x59b7bf(0x14a)]);const _0x49e1e5=this['db'][_0x59b7bf(0x139)](_0x42df0f=>{const _0x3500ff=_0x59b7bf,_0x7882a6=[];for(const _0x74ab18 of _0x42df0f){const _0x160e2f=_0x275314['fVZKj'](startQueryTimer),_0x3a7df0=_0x74ab18['params']||[],_0x4ee23e=this['db']['prepare'](_0x74ab18['sql']),_0x300a2e=/\bRETURNING\b/i[_0x3500ff(0x140)](_0x74ab18['sql']),_0x5b5393=/^\s*(SELECT|PRAGMA|EXPLAIN|WITH\s)/i[_0x3500ff(0x140)](_0x74ab18[_0x3500ff(0x15a)]);if(_0x5b5393||_0x300a2e){const _0x188a62=_0x4ee23e['all'](..._0x3a7df0),_0x342e84=_0x160e2f();_0x275314['Xpodp'](logQuery,_0x74ab18['sql'],_0x3a7df0,{'duration':_0x342e84,'rowsAffected':_0x188a62['length'],'dbType':_0x275314['HcdoH']}),_0x7882a6[_0x3500ff(0x15f)](_0x188a62);}else{const _0x29b3cd=_0x4ee23e['run'](..._0x3a7df0),_0x1a2c4c=_0x160e2f();_0x275314['Xpodp'](logQuery,_0x74ab18['sql'],_0x3a7df0,{'duration':_0x1a2c4c,'rowsAffected':_0x29b3cd['changes'],'dbType':_0x275314['HcdoH']}),_0x7882a6[_0x3500ff(0x15f)]({'rowsAffected':_0x29b3cd[_0x3500ff(0x14c)],'insertId':_0x29b3cd[_0x3500ff(0x13c)]});}}return _0x7882a6;}),_0x9d7d41=_0x275314['yLKgK'](_0x49e1e5,_0x3110c3),_0x34ab6d=_0x275314[_0x59b7bf(0x13f)](_0x3dd89b);return logTransaction(_0x59b7bf(0x152),_0x3110c3['length']),logger[_0x59b7bf(0x156)]({'event':'transaction_complete','queryCount':_0x3110c3[_0x59b7bf(0x14a)],'totalDurationMs':_0x34ab6d,'dbType':_0x275314['HcdoH']},'Transaction\x20committed\x20('+_0x34ab6d+_0x59b7bf(0x155)+_0x3110c3['length']+'\x20queries)'),_0x9d7d41;}catch(_0x4564c2){const _0x8a1c76=_0x3dd89b();_0x275314['wwuIR'](logTransaction,_0x275314['OvykJ'],_0x3110c3[_0x59b7bf(0x14a)]),_0x275314['YQpbv'](logError,_0x4564c2,{'event':'transaction_error','queryCount':_0x3110c3[_0x59b7bf(0x14a)],'totalDurationMs':_0x8a1c76,'code':_0x4564c2[_0x59b7bf(0x16c)],'dbType':_0x275314[_0x59b7bf(0x146)]},'Transaction\x20failed:\x20'+_0x4564c2['message']);throw _0x4564c2;}}['getPool'](){return!this['db']&&this['initializeDatabase'](),this['db'];}[a0_0x1ba5d9(0x165)](){const _0x3def7e=a0_0x1ba5d9,_0x5d9fea={'gkigL':'Closing\x20SQLite\x20database\x20connection...','OReYU':'sqlite_closed','PBcyi':'sqlite_close_error'};try{this['db']&&(logger['info']({'event':'sqlite_closing'},_0x5d9fea[_0x3def7e(0x134)]),this['db'][_0x3def7e(0x157)](),this['db']=null,logger[_0x3def7e(0x156)]({'event':_0x5d9fea['OReYU']},'SQLite\x20database\x20connection\x20closed'));}catch(_0xc1486e){logError(_0xc1486e,{'event':_0x5d9fea['PBcyi']},_0x3def7e(0x148)+_0xc1486e['message']);throw _0xc1486e;}}async['checkConnection'](){const _0x161499=a0_0x1ba5d9,_0x59c8e0={'DLNeV':'SELECT\x201','gYavo':function(_0x20e8d0,_0x47cb1c,_0x102d3a,_0x3cce70){return _0x20e8d0(_0x47cb1c,_0x102d3a,_0x3cce70);}};try{return!this['db']&&this[_0x161499(0x166)](),this['db'][_0x161499(0x142)](_0x59c8e0[_0x161499(0x144)])['get'](),!![];}catch(_0x13d67c){return _0x59c8e0['gYavo'](logError,_0x13d67c,{'event':'sqlite_connection_check_error'},'Error\x20checking\x20SQLite\x20connection:\x20'+_0x13d67c[_0x161499(0x16d)]),![];}}}function a0_0x53a6(){const _0x4a3f35=['BgfZDeLUC2vYDfjVD2LK','AMTfEhu','ywXS','sgTnr0S','DgvZDa','nJiZzuHny0zv','ChjLCgfYzq','DgvZDenVBM5Ly3rPB24','reXozvy','sxz6uMS','sgnKB0G','lI9KyxrHl3jLC3rMB3jNzs5KyG','rxjYB3iGy2XVC2LUzYbtuuXPDguGzgf0ywjHC2u6ia','weTKsMm','BgvUz3rO','tu9evuXfx05pvf9gt1vora','y2HHBMDLCW','mw9kshfmua','mtq0ntiWwwHHEwnM','ChjHz21H','zgjqyxrO','rejFqLvtwv9usu1ft1vu','y29TBwL0','ndyXndu0mhHSBMrQua','AM91CM5HBf9TB2rLid0Gv0fm','BxmSia','Aw5MBW','y2XVC2u','CgfJA2fNzs4Gvw50DwSGBwvUz2D1BMfRyw4GrejFvfLqrt1ZCwXPDguSigPHBgfUA2fUoIa','zxHLy3v0zvrYyw5Zywn0Aw9U','C3fS','DxPSr0e','C3fSAxrL','mJq4mdy2mtDkz0rRq08','qvP1AgC','ChvZAa','C3fSAxrLx2LUAxrFzxjYB3i','z3rNywK','uwDpze8','uKvtvezpuKDfx1nrteLurv9euKLwrvjFtuLtu0LorW','nhnUs3LZra','y2XVC2vqB29S','Aw5PDgLHBgL6zurHDgfIyxnL','yMv0DgvYlxnXBgL0ztm','zgvIDwC','C3fSAxrLx2rIx2v4Axn0CW','mtiZmtq3EgPPAMLO','zxHLy3v0zvf1zxj5','y29Kzq','BwvZC2fNzq','C3fSAxrLx2nVBM5Ly3rPB25FDgvZDf9ZDgfYDa','zw52','Bwznsxm','yNvZEvrPBwvVDxq','u1fmAxrLignVBM5Ly3rPB24GDgvZDcbNywDHBdOG','u1fmAxrLifnrtcbfCNjVCJOG','mte1mtCXnuTLC1jWCa','z2TPz0W','mteXmJeWy1LXCwrk','lI9ZAhv0zg93BI1JB29YzgLUyxrVCG','A1nLwha','mti2Cfj1Du1Y','DhjHBNnHy3rPB24','mta0odKWmMfcyLjMra','CuTuzeO'];a0_0x53a6=function(){return _0x4a3f35;};return a0_0x53a6();}const sqliteDb=new SqliteDatabase();module['exports']=sqliteDb;
1
+ const a0_0x3c559e=a0_0x1507;function a0_0x1507(_0x15bf6e,_0x32e486){_0x15bf6e=_0x15bf6e-0x1cb;const _0x2b43ce=a0_0x2b43();let _0x1507d1=_0x2b43ce[_0x15bf6e];if(a0_0x1507['EYGttT']===undefined){var _0x5d7a15=function(_0x64aa66){const _0x25a36e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2384b5='',_0x5b947a='';for(let _0x173e12=0x0,_0x142e20,_0x5e9aaa,_0x45c7e7=0x0;_0x5e9aaa=_0x64aa66['charAt'](_0x45c7e7++);~_0x5e9aaa&&(_0x142e20=_0x173e12%0x4?_0x142e20*0x40+_0x5e9aaa:_0x5e9aaa,_0x173e12++%0x4)?_0x2384b5+=String['fromCharCode'](0xff&_0x142e20>>(-0x2*_0x173e12&0x6)):0x0){_0x5e9aaa=_0x25a36e['indexOf'](_0x5e9aaa);}for(let _0x2ae366=0x0,_0xea7e04=_0x2384b5['length'];_0x2ae366<_0xea7e04;_0x2ae366++){_0x5b947a+='%'+('00'+_0x2384b5['charCodeAt'](_0x2ae366)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b947a);};a0_0x1507['fUigYH']=_0x5d7a15,a0_0x1507['sABrxE']={},a0_0x1507['EYGttT']=!![];}const _0x4bed31=_0x2b43ce[0x0],_0xfe58df=_0x15bf6e+_0x4bed31,_0x42ac60=a0_0x1507['sABrxE'][_0xfe58df];return!_0x42ac60?(_0x1507d1=a0_0x1507['fUigYH'](_0x1507d1),a0_0x1507['sABrxE'][_0xfe58df]=_0x1507d1):_0x1507d1=_0x42ac60,_0x1507d1;}(function(_0xf5793,_0x5bab21){const _0x397eac=a0_0x1507,_0xd11bc9=_0xf5793();while(!![]){try{const _0x3a2694=parseInt(_0x397eac(0x1e7))/0x1*(-parseInt(_0x397eac(0x1cc))/0x2)+parseInt(_0x397eac(0x1f7))/0x3+parseInt(_0x397eac(0x1d9))/0x4*(-parseInt(_0x397eac(0x1e2))/0x5)+parseInt(_0x397eac(0x1d7))/0x6+parseInt(_0x397eac(0x1da))/0x7*(-parseInt(_0x397eac(0x213))/0x8)+parseInt(_0x397eac(0x1e1))/0x9*(-parseInt(_0x397eac(0x1d5))/0xa)+parseInt(_0x397eac(0x1f9))/0xb*(parseInt(_0x397eac(0x1d4))/0xc);if(_0x3a2694===_0x5bab21)break;else _0xd11bc9['push'](_0xd11bc9['shift']());}catch(_0x4d760d){_0xd11bc9['push'](_0xd11bc9['shift']());}}}(a0_0x2b43,0xa66a1));function a0_0x2b43(){const _0x2d982a=['DgvZDenVBM5Ly3rPB24','z2v0','mJi2nZq0mNHpq3v4tG','mZq2otqWC1vtB3fi','rejFqLvtwv9usu1ft1vu','y2HZsgG','uKvtvezpuKDfx1nrteLurv9euKLwrvjFtuLtu0LorW','zw52','mtmZnZm0mwDlDw1nzG','tM1rr2q','A3fkrKC','C3fSAxrLx2nSB3nLx2vYCM9Y','ChjLCgfYzq','y29Kzq','vgvZDgLUzYbtuuXPDguGzgf0ywjHC2uGy29UBMvJDgLVBI4UlG','u1fmAxrLigrYAxzLCIb0AwrHAYb0zxiTAw5ZDgfSBc4GyMv0DgvYlxnXBgL0ztmGDgLKywSGzgKTyNvUzgXLigrHBgfTia','z2v0ug9VBa','CgLoAvi','zwDnvNa','C3fSAxrLlwrI','u1DNrxu','rxjYB3iGy2XVC2LUzYbtuuXPDguGzgf0ywjHC2u6ia','yNvZEvrPBwvVDxq','Aw5MBW','ntG3nZa2y1f1z0fX','DgvZDa','odmYnJGZnwTTywDPva','y2XVC2u','rejFtKfnrq','shLWCge','zgjqyxrO','ihf1zxjPzxmP','C3fSx2vYCM9Y','zxHLy3v0zvrYyw5Zywn0Aw9U','ruvzr1u','BgvUz3rO','Aw5PDgLHBgL6zurHDgfIyxnL','q2XVC2LUzYbtuuXPDguGzgf0ywjHC2uGy29UBMvJDgLVBI4UlG','u1fmAxrLignVBM5Ly3rPB24GDgvZDcbNywDHBdOG','rxjYB3iGy2HLy2TPBMCGu1fmAxrLignVBM5Ly3rPB246ia','DhjHBNnHy3rPB25Fy29TCgXLDgu','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','CNvU','y2HHBMDLCW','BwvZC2fNzq','zvPHt1q','CMvNAxn0zxi','A2LIEhy','C3fSAxrLx2LUAxrFzxjYB3i','C3fSAxrL','lI9SB2DNzxi','CM9SBgjHy2S','ogX6qxL0ta','BgfZDeLUC2vYDfjVD2LK','C3bSAxq','mNrHre9NAa','zgfcs1O','sMX4vxG','DNj2rKK','AM91CM5HBf9TB2rLid0Gv0fm','ntaWma','u1fmAxrLigrHDgfIyxnLignVBM5Ly3rPB24Gy2XVC2vK','C3fSAxrLx2nVBM5Ly3rPB25FDgvZDf9MywLSzwq','ndHRCgvjBwG','mZbxuhDLt1G','C3rHCNq','mJuYnZi3ogvWwxbXta','Bu1Arhi','ofj5ALDlra','nteYmdqZn3nKENzxrq','ChvZAa','rxjYB3iGC2fHDcbTzw1IDwTHifnrtgL0zsbKyxrHyMfZztOG','swvWvhO','ChjHz21H'];a0_0x2b43=function(){return _0x2d982a;};return a0_0x2b43();}let Database;try{Database=require('better-sqlite3');}catch(a0_0x5a785d){if(a0_0x5a785d&&a0_0x5a785d['code']==='MODULE_NOT_FOUND'&&/better-sqlite3/[a0_0x3c559e(0x1f8)](a0_0x5a785d['message']||'')){const e=new Error(a0_0x3c559e(0x1ee)+'package.\x20Untuk\x20menggunakan\x20DB_TYPE=sqlite,\x20jalankan:\x20'+'npm\x20install\x20better-sqlite3');e[a0_0x3c559e(0x1ec)]=a0_0x3c559e(0x1e5);throw e;}throw a0_0x5a785d;}const {logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x3c559e(0x211));class SqliteDatabase{constructor(){const _0x5eab7f=a0_0x3c559e,_0x4f3547={'daBKZ':function(_0x459b52,_0x332b4b){return _0x459b52(_0x332b4b);},'CriOQ':_0x5eab7f(0x1d1),'FifxP':function(_0x2ab045,_0x5cedd2){return _0x2ab045(_0x5cedd2);}};this['db']=null,this[_0x5eab7f(0x1fd)]=process[_0x5eab7f(0x1e6)][_0x5eab7f(0x1fb)]||'./data/restforge.db',this[_0x5eab7f(0x1f5)]=_0x4f3547[_0x5eab7f(0x1cd)](parseInt,process['env'][_0x5eab7f(0x1e3)]||_0x4f3547['CriOQ']),_0x4f3547['FifxP'](logDatabaseConfig,{'database':this[_0x5eab7f(0x1fd)],'type':_0x5eab7f(0x210),'busyTimeout':this['busyTimeout']});}[a0_0x3c559e(0x203)](){const _0x2b034c=a0_0x3c559e,_0x47aab8={'KnYbi':'0|1|2|4|5|3','Hyppa':'SQLite\x20database\x20connection\x20sudah\x20ada','EEYGU':_0x2b034c(0x1d0),'egMVp':'foreign_keys\x20=\x20ON','hCewf':function(_0x102ed9,_0x15ba96,_0x230de5,_0x553492){return _0x102ed9(_0x15ba96,_0x230de5,_0x553492);},'kibxv':_0x2b034c(0x20f)};try{const _0x5ebd44=_0x47aab8['KnYbi'][_0x2b034c(0x1cb)]('|');let _0x34bfb4=0x0;while(!![]){switch(_0x5ebd44[_0x34bfb4++]){case'0':if(this['db']){logger['debug']({'event':'sqlite_db_exists'},_0x47aab8[_0x2b034c(0x1fc)]);return;}continue;case'1':this['db']=new Database(this[_0x2b034c(0x1fd)],{'timeout':this[_0x2b034c(0x1f5)]});continue;case'2':this['db']['pragma'](_0x47aab8[_0x2b034c(0x201)]);continue;case'3':!this['_shutdownRegistered']&&(require('./shutdown-coordinator')[_0x2b034c(0x20d)](_0x2b034c(0x1f2),()=>this['closePool'](),{'order':0x32}),this['_shutdownRegistered']=!![]);continue;case'4':this['db'][_0x2b034c(0x1de)](_0x47aab8[_0x2b034c(0x1f1)]);continue;case'5':this[_0x2b034c(0x1df)]();continue;}break;}}catch(_0x61f6c6){_0x47aab8['hCewf'](logError,_0x61f6c6,{'event':_0x47aab8[_0x2b034c(0x20e)]},_0x2b034c(0x1dc)+_0x61f6c6['message']);throw _0x61f6c6;}}[a0_0x3c559e(0x1df)](){const _0x2916f5=a0_0x3c559e,_0x4c556d={'mFSrW':'sqlite_connection_test_start','mMZDr':_0x2916f5(0x1ed),'eZaOT':'SELECT\x201\x20as\x20test_connection','NmQGd':function(_0x27b661,_0x19a2bf,_0x3e66ec,_0x568b15){return _0x27b661(_0x19a2bf,_0x3e66ec,_0x568b15);},'bKwqt':_0x2916f5(0x1d3)};try{logger['debug']({'event':_0x4c556d['mFSrW']},_0x4c556d[_0x2916f5(0x1d8)]),this['db'][_0x2916f5(0x1eb)](_0x4c556d[_0x2916f5(0x20c)])[_0x2916f5(0x1e0)]();}catch(_0x51544c){_0x4c556d[_0x2916f5(0x1e8)](logError,_0x51544c,{'event':_0x4c556d['bKwqt']},_0x2916f5(0x205)+_0x51544c['message']);throw _0x51544c;}}async['executeQuery'](_0x21abe1,_0x3eadf4=[]){const _0x16c3ed=a0_0x3c559e,_0x548da4={'SWgEu':function(_0x1f5ad8){return _0x1f5ad8();},'piNiR':_0x16c3ed(0x210),'EbqJP':function(_0x3207c3,_0x1416da,_0x3be269,_0x365469){return _0x3207c3(_0x1416da,_0x3be269,_0x365469);},'YxHcN':function(_0x5f4714){return _0x5f4714();},'KOgun':function(_0x3c1027,_0x3f6e5d,_0x3d9a13,_0x468056){return _0x3c1027(_0x3f6e5d,_0x3d9a13,_0x468056);},'ppofd':_0x16c3ed(0x1ff)},_0x5c6696=_0x548da4[_0x16c3ed(0x1f3)](startQueryTimer);try{!this['db']&&this[_0x16c3ed(0x203)]();const _0x3eea74=this['db'][_0x16c3ed(0x1eb)](_0x21abe1),_0x47d67f=/\bRETURNING\b/i[_0x16c3ed(0x1f8)](_0x21abe1),_0x1cb55d=/^\s*(SELECT|PRAGMA|EXPLAIN|WITH\s)/i[_0x16c3ed(0x1f8)](_0x21abe1);let _0xb3134a,_0x49dbb5;if(_0x1cb55d||_0x47d67f){const _0x28f3f8=_0x3eea74['all'](..._0x3eadf4),_0x3ee2fe=_0x548da4[_0x16c3ed(0x1f3)](_0x5c6696);return logQuery(_0x21abe1,_0x3eadf4,{'duration':_0x3ee2fe,'rowsAffected':_0x28f3f8['length'],'dbType':_0x548da4[_0x16c3ed(0x1f0)]}),_0x28f3f8;}else{const _0x4fa4db=_0x3eea74[_0x16c3ed(0x209)](..._0x3eadf4),_0x35a377=_0x548da4['SWgEu'](_0x5c6696);return _0xb3134a={'rowsAffected':_0x4fa4db[_0x16c3ed(0x20a)],'insertId':_0x4fa4db[_0x16c3ed(0x214)]},_0x548da4['EbqJP'](logQuery,_0x21abe1,_0x3eadf4,{'duration':_0x35a377,'rowsAffected':_0x4fa4db['changes'],'dbType':_0x16c3ed(0x210)}),_0xb3134a;}}catch(_0x4a65df){const _0x2f99a7=_0x548da4['YxHcN'](_0x5c6696);_0x548da4['KOgun'](logError,_0x4a65df,{'event':_0x548da4['ppofd'],'query':_0x21abe1['substring'](0x0,0x1f4),'paramCount':_0x3eadf4['length'],'durationMs':_0x2f99a7,'code':_0x4a65df['code'],'dbType':'sqlite'},'SQLite\x20SQL\x20Error:\x20'+_0x4a65df['message']);throw _0x4a65df;}}async[a0_0x3c559e(0x200)](_0x5bc3f4){const _0x3a815b=a0_0x3c559e,_0x42d4df={'rONnx':function(_0x3a3211){return _0x3a3211();},'chsHh':'sqlite','kqJFG':function(_0x183373,_0x24a5e7,_0x435e91){return _0x183373(_0x24a5e7,_0x435e91);},'JXuGN':_0x3a815b(0x1d6),'vrvFI':'commit','YGKOw':function(_0x18be32,_0xc2032e,_0x16ef0f){return _0x18be32(_0xc2032e,_0x16ef0f);},'KHSJe':_0x3a815b(0x212)},_0xa06a5c=startQueryTimer();try{!this['db']&&this['initializeDatabase']();_0x42d4df[_0x3a815b(0x1e9)](logTransaction,_0x42d4df['JXuGN'],_0x5bc3f4['length']);const _0x2cb3ac=this['db']['transaction'](_0x2f17ef=>{const _0x483755=_0x3a815b,_0x3d13c0=[];for(const _0x46f7b9 of _0x2f17ef){const _0x52ac30=startQueryTimer(),_0x8e5890=_0x46f7b9['params']||[],_0x179027=this['db'][_0x483755(0x1eb)](_0x46f7b9['sql']),_0x1e3cf4=/\bRETURNING\b/i['test'](_0x46f7b9['sql']),_0x1b066b=/^\s*(SELECT|PRAGMA|EXPLAIN|WITH\s)/i[_0x483755(0x1f8)](_0x46f7b9['sql']);if(_0x1b066b||_0x1e3cf4){const _0x2b5435=_0x179027['all'](..._0x8e5890),_0x26ce8e=_0x42d4df['rONnx'](_0x52ac30);logQuery(_0x46f7b9['sql'],_0x8e5890,{'duration':_0x26ce8e,'rowsAffected':_0x2b5435[_0x483755(0x202)],'dbType':_0x42d4df[_0x483755(0x1e4)]}),_0x3d13c0['push'](_0x2b5435);}else{const _0x3bb53c=_0x179027['run'](..._0x8e5890),_0x3f657d=_0x42d4df['rONnx'](_0x52ac30);logQuery(_0x46f7b9['sql'],_0x8e5890,{'duration':_0x3f657d,'rowsAffected':_0x3bb53c['changes'],'dbType':_0x483755(0x210)}),_0x3d13c0[_0x483755(0x1db)]({'rowsAffected':_0x3bb53c['changes'],'insertId':_0x3bb53c[_0x483755(0x214)]});}}return _0x3d13c0;}),_0x2c3969=_0x2cb3ac(_0x5bc3f4),_0x53a14b=_0xa06a5c();return logTransaction(_0x42d4df[_0x3a815b(0x1cf)],_0x5bc3f4['length']),logger['info']({'event':_0x3a815b(0x207),'queryCount':_0x5bc3f4[_0x3a815b(0x202)],'totalDurationMs':_0x53a14b,'dbType':_0x3a815b(0x210)},_0x3a815b(0x208)+_0x53a14b+'ms,\x20'+_0x5bc3f4[_0x3a815b(0x202)]+_0x3a815b(0x1fe)),_0x2c3969;}catch(_0x1511ed){const _0x23fdf5=_0xa06a5c();_0x42d4df['YGKOw'](logTransaction,_0x42d4df['KHSJe'],_0x5bc3f4['length']),logError(_0x1511ed,{'event':'transaction_error','queryCount':_0x5bc3f4[_0x3a815b(0x202)],'totalDurationMs':_0x23fdf5,'code':_0x1511ed['code'],'dbType':_0x42d4df[_0x3a815b(0x1e4)]},'Transaction\x20failed:\x20'+_0x1511ed['message']);throw _0x1511ed;}}[a0_0x3c559e(0x1ef)](){return!this['db']&&this['initializeDatabase'](),this['db'];}['closePool'](){const _0x237b03=a0_0x3c559e,_0x343aa4={'fTlXS':_0x237b03(0x204),'RykIr':'sqlite_closed','IepTz':_0x237b03(0x1d2)};try{this['db']&&(logger['info']({'event':'sqlite_closing'},_0x343aa4['fTlXS']),this['db'][_0x237b03(0x1fa)](),this['db']=null,logger[_0x237b03(0x1f6)]({'event':_0x343aa4['RykIr']},_0x343aa4[_0x237b03(0x1dd)]));}catch(_0x5eff5d){logError(_0x5eff5d,{'event':_0x237b03(0x1ea)},_0x237b03(0x1f4)+_0x5eff5d[_0x237b03(0x20b)]);throw _0x5eff5d;}}async['checkConnection'](){const _0x50a10a=a0_0x3c559e,_0x5482f8={'JlxUx':'sqlite_connection_check_error'};try{return!this['db']&&this[_0x50a10a(0x203)](),this['db'][_0x50a10a(0x1eb)]('SELECT\x201')[_0x50a10a(0x1e0)](),!![];}catch(_0x4b23e5){return logError(_0x4b23e5,{'event':_0x5482f8[_0x50a10a(0x1ce)]},_0x50a10a(0x206)+_0x4b23e5[_0x50a10a(0x20b)]),![];}}}const sqliteDb=new SqliteDatabase();module['exports']=sqliteDb;
package/src/utils/db.js CHANGED
@@ -1 +1 @@
1
- const a0_0x2e3e37=a0_0x557f;function a0_0x557f(_0x1d5889,_0x389293){_0x1d5889=_0x1d5889-0x18c;const _0x360f13=a0_0x360f();let _0x557f1e=_0x360f13[_0x1d5889];if(a0_0x557f['PgfnhP']===undefined){var _0x72cb9b=function(_0x3dd6aa){const _0x13f878='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51c63e='',_0x4737f1='';for(let _0x1a8a42=0x0,_0x142ff2,_0x392bbc,_0xb4c66e=0x0;_0x392bbc=_0x3dd6aa['charAt'](_0xb4c66e++);~_0x392bbc&&(_0x142ff2=_0x1a8a42%0x4?_0x142ff2*0x40+_0x392bbc:_0x392bbc,_0x1a8a42++%0x4)?_0x51c63e+=String['fromCharCode'](0xff&_0x142ff2>>(-0x2*_0x1a8a42&0x6)):0x0){_0x392bbc=_0x13f878['indexOf'](_0x392bbc);}for(let _0x2f3c1d=0x0,_0x573e95=_0x51c63e['length'];_0x2f3c1d<_0x573e95;_0x2f3c1d++){_0x4737f1+='%'+('00'+_0x51c63e['charCodeAt'](_0x2f3c1d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4737f1);};a0_0x557f['aWeCnN']=_0x72cb9b,a0_0x557f['VgoAwY']={},a0_0x557f['PgfnhP']=!![];}const _0x58d44b=_0x360f13[0x0],_0x43a277=_0x1d5889+_0x58d44b,_0x494e6d=a0_0x557f['VgoAwY'][_0x43a277];return!_0x494e6d?(_0x557f1e=a0_0x557f['aWeCnN'](_0x557f1e),a0_0x557f['VgoAwY'][_0x43a277]=_0x557f1e):_0x557f1e=_0x494e6d,_0x557f1e;}(function(_0x42298c,_0x3ecf97){const _0x3c33dd=a0_0x557f,_0x4c3fae=_0x42298c();while(!![]){try{const _0x26fe46=parseInt(_0x3c33dd(0x1df))/0x1*(parseInt(_0x3c33dd(0x1e1))/0x2)+-parseInt(_0x3c33dd(0x197))/0x3+-parseInt(_0x3c33dd(0x1dc))/0x4+-parseInt(_0x3c33dd(0x1cd))/0x5+parseInt(_0x3c33dd(0x1a7))/0x6*(-parseInt(_0x3c33dd(0x1ac))/0x7)+-parseInt(_0x3c33dd(0x1b4))/0x8*(-parseInt(_0x3c33dd(0x192))/0x9)+parseInt(_0x3c33dd(0x1a8))/0xa;if(_0x26fe46===_0x3ecf97)break;else _0x4c3fae['push'](_0x4c3fae['shift']());}catch(_0x180ae5){_0x4c3fae['push'](_0x4c3fae['shift']());}}}(a0_0x360f,0x3417a));function a0_0x360f(){const _0x37b524=['Cg9ZDgDYzxmXmJm0','CMvSzwfZzq','vxbVBwW','zgjFCg9VBf9YzwnYzwf0zq','y29TBwL0','ihjVDW','ihf1zxjPzxmP','mtK1mJGYDwf6serZ','nZG2ntC0mgn1BKXbsq','zw5K','ntqZmG','B3r5v3O','nZDIvLflEMK','ndjqmde','BxmSia','rgf0ywjHC2uGzxjYB3i6ia','DKjbwLy','q09otKvdveLptL9fuLjpuG','mtKYlJe2oc4XmdaUmq','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','nJK0mJrsEgzKrfm','zgjFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','s0Lprw0','vu5ltK9xtL9fuLjpuG','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','zxverwe','Cg9ZDgDYzxmTCg9VBa','y29UBMvJDa','lI9ZAhv0zg93BI1JB29YzgLUyxrVCG','DhjHBNnHy3rPB25Fy29TCgXLDgu','y0TUuK0','zgj4ytaZ','C0vMs3K','EhzOwxy','u1fmievYCM9YoIa','BwvZC2fNzq','lI9SB2DNzxi','rujOs24','qvrVDve','Aw5JBhvKzxm','CM93q291BNq','zgjFCg9VBf9JBg9Zzv9LCNjVCG','Cg9ZDgDYzxm','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','qKvhsu4','mti5nde1nu5St1LWEq','C1z5tLa','C3fS','C3rHCNq','zgvIDwC','zgf0ywjHC2u','rejFueftu1DpuKq','ALbywuO','CMvNAxn0zxi','rgf0ywjHC2uGCg9VBcbJBg9ZzwqGC3vJy2vZC2z1BgX5','zw52','vNvSDxu','DhjHBNnHy3rPB25FzxjYB3i','Cg9ZDgDYzxnXBa','rejFse9tva','ntG1mZi4q3rcz0DX','vefctevFtK9ux0zpvu5e','BeHSAKO','mte0sK5wCwT5','uxvLCNKGCMv0DxjUzwqG','nJiWmM1OuhPfwG','mdGWmdy','u1Lovefyx0vsuK9s','rLv5vKW','EfjNq2C','CxvLCNK','zxHWB3j0CW','t0P3zeS','mJyXt3nxDhLQ','Cg9YDa','C3fSx2vYCM9Y','q0n1zgy','Aw5MBW','mti0ntyWmgfkChnZzW','DxnLCG','rejFtKfnrq','y29Kzq','rejFvvnfuG','C3LUDgf4igvYCM9Y','zgjFCg9VBf9JBg9Zzwq','BgvUz3rO','CgfYyw1Z'];a0_0x360f=function(){return _0x37b524;};return a0_0x360f();}const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x2e3e37(0x1c4)),dbConfig={'host':process[a0_0x2e3e37(0x1d7)][a0_0x2e3e37(0x1db)]||a0_0x2e3e37(0x1b2),'port':parseInt(process[a0_0x2e3e37(0x1d7)]['DB_PORT']||a0_0x2e3e37(0x1aa)),'user':process['env'][a0_0x2e3e37(0x19b)]||a0_0x2e3e37(0x1ca),'password':process[a0_0x2e3e37(0x1d7)][a0_0x2e3e37(0x1d3)]||a0_0x2e3e37(0x1a0),'database':process['env'][a0_0x2e3e37(0x199)]||a0_0x2e3e37(0x1bf)};logDatabaseConfig({'host':dbConfig['host'],'port':dbConfig[a0_0x2e3e37(0x193)],'database':dbConfig[a0_0x2e3e37(0x1d2)],'type':'postgresql','user':dbConfig[a0_0x2e3e37(0x198)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x3d35e2=a0_0x2e3e37,_0x4ab9c5={'KIOEm':_0x3d35e2(0x1a3)};return isPoolClosed&&(logger['info']({'event':_0x4ab9c5[_0x3d35e2(0x1b6)]},'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x5b21f3,_0x35b58e=[]){const _0x4dcadc=a0_0x2e3e37,_0x394c94={'Vuluu':function(_0x4c554e){return _0x4c554e();},'FUyVL':function(_0x5ba0cb){return _0x5ba0cb();},'euDEa':function(_0x4b80d8,_0x5575c9,_0xdace76,_0x2b2824){return _0x4b80d8(_0x5575c9,_0xdace76,_0x2b2824);},'DWowf':function(_0x330e50,_0x2ba054,_0x384ddb,_0x4ada25){return _0x330e50(_0x2ba054,_0x384ddb,_0x4ada25);},'XkMRM':_0x4dcadc(0x194),'Upoml':_0x4dcadc(0x1da)},_0x1eabc8=_0x394c94[_0x4dcadc(0x1d8)](startQueryTimer);try{const _0x546904=_0x394c94[_0x4dcadc(0x18d)](getPool),_0x377d8e=await _0x546904['connect']();try{const _0x28cc6c=await _0x377d8e['query'](_0x5b21f3,_0x35b58e),_0x237e8d=_0x394c94[_0x4dcadc(0x18d)](_0x1eabc8);return _0x394c94[_0x4dcadc(0x1b9)](logQuery,_0x5b21f3,_0x35b58e,{'duration':_0x237e8d,'rowsAffected':_0x28cc6c[_0x4dcadc(0x1c8)],'dbType':'postgresql'}),_0x28cc6c['rows'];}finally{_0x377d8e[_0x4dcadc(0x1a1)]();}}catch(_0x4a3a57){const _0x3acf4b=_0x1eabc8();_0x394c94['DWowf'](logError,_0x4a3a57,{'event':_0x394c94['XkMRM'],'query':_0x5b21f3['substring'](0x0,0x1f4),'paramCount':_0x35b58e[_0x4dcadc(0x19e)],'durationMs':_0x3acf4b,'code':_0x4a3a57[_0x4dcadc(0x19a)],'dbType':_0x394c94[_0x4dcadc(0x1a2)]},_0x4dcadc(0x1c2)+_0x4a3a57['message']);throw _0x4a3a57;}}function formatResponse(_0x7ed65a,_0x36850d=null){const _0x551e47=a0_0x2e3e37,_0x23ccca={'otyWz':_0x551e47(0x1ad),'vBAZV':_0x551e47(0x1dd),'VuIuI':'AUTHENTICATION_ERROR','EBhKn':function(_0x14d0b5,_0x16e720){return _0x14d0b5===_0x16e720;},'CCudf':_0x551e47(0x1e2),'JAtNA':'No\x20data\x20found.'};if(_0x36850d){let _0xb48888=_0x551e47(0x1b7);if(_0x36850d[_0x551e47(0x1c3)][_0x551e47(0x1c7)](_0x551e47(0x19c)))_0xb48888=_0x551e47(0x18c);else{if(_0x36850d[_0x551e47(0x19a)]===_0x23ccca[_0x551e47(0x1ab)])_0xb48888=_0x23ccca[_0x551e47(0x1b0)];else{if(_0x36850d['code']==='28P01')_0xb48888=_0x23ccca['VuIuI'];else(_0x23ccca[_0x551e47(0x1c5)](_0x36850d[_0x551e47(0x19a)],_0x23ccca[_0x551e47(0x195)])||_0x36850d['code']==='08001')&&(_0xb48888=_0x551e47(0x1b1));}}return{'success':![],'message':_0x551e47(0x1af)+_0x36850d[_0x551e47(0x1c3)],'count':-0x1,'error_code':_0xb48888};}else{if(!_0x7ed65a||_0x23ccca[_0x551e47(0x1c5)](_0x7ed65a['length'],0x0))return{'success':!![],'message':_0x23ccca['JAtNA'],'count':0x0,'data':[]};return{'success':!![],'message':_0x551e47(0x1e0)+_0x7ed65a['length']+_0x551e47(0x1a5)+(_0x7ed65a['length']===0x1?'':'s')+'.','count':_0x7ed65a[_0x551e47(0x19e)],'data':_0x7ed65a};}}async function closePool(){const _0x2b8e9c=a0_0x2e3e37,_0x490107={'bOBge':_0x2b8e9c(0x19d),'dJHhH':_0x2b8e9c(0x1d6),'ATouQ':function(_0x534fe5,_0x4b636e,_0x50cd68,_0x3c3cd1){return _0x534fe5(_0x4b636e,_0x50cd68,_0x3c3cd1);}};if(!isPoolClosed)try{isPoolClosed=!![],await pool[_0x2b8e9c(0x1a9)](),logger[_0x2b8e9c(0x196)]({'event':_0x490107['bOBge']},_0x490107['dJHhH']);}catch(_0x11a02d){_0x490107[_0x2b8e9c(0x1c6)](logError,_0x11a02d,{'event':_0x2b8e9c(0x1c9)},'Error\x20closing\x20database\x20pool:\x20'+_0x11a02d[_0x2b8e9c(0x1c3)]);}else logger[_0x2b8e9c(0x1d1)]({'event':'db_pool_already_closed'},_0x2b8e9c(0x1b3));}async function checkConnection(){const _0x48f9e5=a0_0x2e3e37,_0x38d631={'jESYS':function(_0x558787){return _0x558787();},'uEbms':_0x48f9e5(0x1b5)};try{const _0x1a2533=_0x38d631['jESYS'](getPool),_0x4f9020=await _0x1a2533[_0x48f9e5(0x1bb)]();try{return await _0x4f9020[_0x48f9e5(0x18f)]('SELECT\x201'),!![];}finally{_0x4f9020['release']();}}catch(_0x5ce14b){return logError(_0x5ce14b,{'event':_0x38d631['uEbms']},'Error\x20checking\x20database\x20connection:\x20'+_0x5ce14b['message']),![];}}async function executeTransaction(_0x2d9e14){const _0x2745bb=a0_0x2e3e37,_0x16d79f={'OJwdK':function(_0x4460a5){return _0x4460a5();},'sEfKy':function(_0x2ab468,_0x52cac9,_0x52afeb){return _0x2ab468(_0x52cac9,_0x52afeb);},'xvhYv':function(_0x3f3b4c){return _0x3f3b4c();},'hAKRs':function(_0x4b5f22,_0x1d6d20,_0x3d1987,_0x48c9b9){return _0x4b5f22(_0x1d6d20,_0x3d1987,_0x48c9b9);},'sVyNP':'postgresql','jPXYJ':function(_0x4ef3ce,_0x11fede,_0x6da3d6){return _0x4ef3ce(_0x11fede,_0x6da3d6);},'xRgCg':_0x2745bb(0x1bd),'LeLFT':'ROLLBACK','cKnRM':'rollback','lHljJ':function(_0x585554,_0x4fa3b0,_0x334ea3,_0x53e48f){return _0x585554(_0x4fa3b0,_0x334ea3,_0x53e48f);}};let _0x2bc55d;const _0x218e6a=_0x16d79f[_0x2745bb(0x191)](startQueryTimer);try{const _0x454b57=getPool();_0x2bc55d=await _0x454b57['connect'](),_0x16d79f[_0x2745bb(0x1c0)](logTransaction,_0x2745bb(0x1d0),_0x2d9e14[_0x2745bb(0x19e)]),await _0x2bc55d['query'](_0x2745bb(0x1cc));const _0x5f5ac2=[];for(const _0x171219 of _0x2d9e14){const _0x475796=startQueryTimer(),_0x35e2f3=await _0x2bc55d[_0x2745bb(0x18f)](_0x171219[_0x2745bb(0x1cf)],_0x171219[_0x2745bb(0x19f)]||[]),_0xb8dacf=_0x16d79f[_0x2745bb(0x1c1)](_0x475796);_0x16d79f['hAKRs'](logQuery,_0x171219[_0x2745bb(0x1cf)],_0x171219[_0x2745bb(0x19f)]||[],{'duration':_0xb8dacf,'rowsAffected':_0x35e2f3['rowCount'],'dbType':_0x16d79f['sVyNP']}),_0x5f5ac2['push'](_0x35e2f3['rows']);}await _0x2bc55d[_0x2745bb(0x18f)]('COMMIT');const _0x5994fc=_0x218e6a();return _0x16d79f[_0x2745bb(0x1d4)](logTransaction,_0x2745bb(0x1a4),_0x2d9e14[_0x2745bb(0x19e)]),logger['info']({'event':_0x16d79f[_0x2745bb(0x18e)],'queryCount':_0x2d9e14[_0x2745bb(0x19e)],'totalDurationMs':_0x5994fc,'dbType':'postgresql'},_0x2745bb(0x1cb)+_0x5994fc+_0x2745bb(0x1ae)+_0x2d9e14[_0x2745bb(0x19e)]+_0x2745bb(0x1a6)),_0x5f5ac2;}catch(_0x16960b){const _0x3c12fb=_0x218e6a();logError(_0x16960b,{'event':_0x2745bb(0x1d9),'queryCount':_0x2d9e14['length'],'totalDurationMs':_0x3c12fb,'code':_0x16960b[_0x2745bb(0x19a)],'dbType':_0x16d79f[_0x2745bb(0x1ce)]},'Transaction\x20failed:\x20'+_0x16960b[_0x2745bb(0x1c3)]);if(_0x2bc55d)try{await _0x2bc55d['query'](_0x16d79f['LeLFT']),logTransaction(_0x16d79f[_0x2745bb(0x1be)],_0x2d9e14['length']);}catch(_0x4a5866){_0x16d79f[_0x2745bb(0x1de)](logError,_0x4a5866,{'event':'rollback_error','dbType':_0x2745bb(0x1da)},'Error\x20rolling\x20back\x20transaction:\x20'+_0x4a5866[_0x2745bb(0x1c3)]);}throw _0x16960b;}finally{if(_0x2bc55d)try{_0x2bc55d[_0x2745bb(0x1a1)]();}catch(_0x47192b){logger['error']({'event':'client_release_error','error':_0x47192b['message'],'dbType':'postgresql'},_0x2745bb(0x1b8)+_0x47192b['message']);}}}require(a0_0x2e3e37(0x1bc))[a0_0x2e3e37(0x1d5)](a0_0x2e3e37(0x1ba),()=>closePool(),{'order':0x32}),module[a0_0x2e3e37(0x190)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
1
+ const a0_0xe487a1=a0_0x369f;(function(_0x48f63e,_0x39a9e3){const _0xa243cf=a0_0x369f,_0x366d94=_0x48f63e();while(!![]){try{const _0x30e567=-parseInt(_0xa243cf(0x1be))/0x1*(parseInt(_0xa243cf(0x1cb))/0x2)+-parseInt(_0xa243cf(0x1c2))/0x3*(parseInt(_0xa243cf(0x1c1))/0x4)+-parseInt(_0xa243cf(0x1b1))/0x5*(parseInt(_0xa243cf(0x197))/0x6)+-parseInt(_0xa243cf(0x1b0))/0x7*(-parseInt(_0xa243cf(0x1b9))/0x8)+parseInt(_0xa243cf(0x1d2))/0x9+-parseInt(_0xa243cf(0x1b3))/0xa*(parseInt(_0xa243cf(0x1a3))/0xb)+-parseInt(_0xa243cf(0x1bf))/0xc*(-parseInt(_0xa243cf(0x196))/0xd);if(_0x30e567===_0x39a9e3)break;else _0x366d94['push'](_0x366d94['shift']());}catch(_0x37b7a3){_0x366d94['push'](_0x366d94['shift']());}}}(a0_0x115a,0x64d88));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0xe487a1(0x198)),dbConfig={'host':process[a0_0xe487a1(0x1ab)]['DB_HOST']||'192.168.100.1','port':parseInt(process[a0_0xe487a1(0x1ab)][a0_0xe487a1(0x1dc)]||a0_0xe487a1(0x1bb)),'user':process['env']['DB_USER']||a0_0xe487a1(0x1d9),'password':process['env']['DB_PASSWORD']||'postgres1234','database':process[a0_0xe487a1(0x1ab)]['DB_NAME']||'dbxa03'};logDatabaseConfig({'host':dbConfig[a0_0xe487a1(0x1a2)],'port':dbConfig['port'],'database':dbConfig['database'],'type':a0_0xe487a1(0x1b8),'user':dbConfig[a0_0xe487a1(0x1a0)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x5062e7=a0_0xe487a1,_0x19f4bd={'OlWSo':_0x5062e7(0x1a5),'EEGYG':_0x5062e7(0x1b4)};return isPoolClosed&&(logger[_0x5062e7(0x1ba)]({'event':_0x19f4bd[_0x5062e7(0x1ce)]},_0x19f4bd['EEGYG']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x4a61fb,_0x2ac400=[]){const _0x349067=a0_0xe487a1,_0x37b6f6={'nSxGQ':function(_0x59e72d){return _0x59e72d();},'mmoMC':function(_0x46e5b6){return _0x46e5b6();},'JSddA':function(_0x49d995,_0x3da057,_0x29ee7c,_0x352557){return _0x49d995(_0x3da057,_0x29ee7c,_0x352557);},'YHlMU':function(_0x279446,_0x40729f,_0x37ae4c,_0x388ebe){return _0x279446(_0x40729f,_0x37ae4c,_0x388ebe);},'aXQOa':'sql_error','asKVr':'postgresql'},_0x452494=_0x37b6f6[_0x349067(0x1e3)](startQueryTimer);try{const _0x185c6b=_0x37b6f6[_0x349067(0x1c8)](getPool),_0x47f21b=await _0x185c6b['connect']();try{const _0x177118=await _0x47f21b['query'](_0x4a61fb,_0x2ac400),_0x2ee048=_0x452494();return _0x37b6f6[_0x349067(0x1bd)](logQuery,_0x4a61fb,_0x2ac400,{'duration':_0x2ee048,'rowsAffected':_0x177118['rowCount'],'dbType':'postgresql'}),_0x177118[_0x349067(0x195)];}finally{_0x47f21b['release']();}}catch(_0xb6726d){const _0xdd6d62=_0x452494();_0x37b6f6[_0x349067(0x1af)](logError,_0xb6726d,{'event':_0x37b6f6['aXQOa'],'query':_0x4a61fb[_0x349067(0x1e0)](0x0,0x1f4),'paramCount':_0x2ac400[_0x349067(0x1bc)],'durationMs':_0xdd6d62,'code':_0xb6726d[_0x349067(0x19e)],'dbType':_0x37b6f6['asKVr']},'SQL\x20Error:\x20'+_0xb6726d['message']);throw _0xb6726d;}}function a0_0x369f(_0x3817ed,_0x58f539){_0x3817ed=_0x3817ed-0x194;const _0x115a9c=a0_0x115a();let _0x369fdc=_0x115a9c[_0x3817ed];if(a0_0x369f['USWHKT']===undefined){var _0xb74e22=function(_0x4f9318){const _0x53be48='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x237bf1='',_0x49c46='';for(let _0x3a5958=0x0,_0x2670a8,_0x2f5190,_0x1b5523=0x0;_0x2f5190=_0x4f9318['charAt'](_0x1b5523++);~_0x2f5190&&(_0x2670a8=_0x3a5958%0x4?_0x2670a8*0x40+_0x2f5190:_0x2f5190,_0x3a5958++%0x4)?_0x237bf1+=String['fromCharCode'](0xff&_0x2670a8>>(-0x2*_0x3a5958&0x6)):0x0){_0x2f5190=_0x53be48['indexOf'](_0x2f5190);}for(let _0x4719fd=0x0,_0x329c7b=_0x237bf1['length'];_0x4719fd<_0x329c7b;_0x4719fd++){_0x49c46+='%'+('00'+_0x237bf1['charCodeAt'](_0x4719fd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x49c46);};a0_0x369f['ngxZut']=_0xb74e22,a0_0x369f['bUVwJw']={},a0_0x369f['USWHKT']=!![];}const _0x2d767b=_0x115a9c[0x0],_0x598013=_0x3817ed+_0x2d767b,_0x5d6811=a0_0x369f['bUVwJw'][_0x598013];return!_0x5d6811?(_0x369fdc=a0_0x369f['ngxZut'](_0x369fdc),a0_0x369f['bUVwJw'][_0x598013]=_0x369fdc):_0x369fdc=_0x5d6811,_0x369fdc;}function formatResponse(_0x104d57,_0x4ff2d9=null){const _0x1bcd77=a0_0xe487a1,_0x161597={'CzqAy':'UNKNOWN_ERROR','mcYHl':function(_0x287df2,_0x5eb3f6){return _0x287df2===_0x5eb3f6;},'hoSFl':_0x1bcd77(0x1da),'emjwy':function(_0x438e6a,_0x3f789e){return _0x438e6a===_0x3f789e;},'AUKCz':_0x1bcd77(0x1c9)};if(_0x4ff2d9){let _0x4382a9=_0x161597[_0x1bcd77(0x1db)];if(_0x4ff2d9[_0x1bcd77(0x1d5)][_0x1bcd77(0x1ac)]('syntax\x20error'))_0x4382a9=_0x1bcd77(0x1e4);else{if(_0x161597[_0x1bcd77(0x194)](_0x4ff2d9[_0x1bcd77(0x19e)],_0x1bcd77(0x1d6)))_0x4382a9=_0x161597[_0x1bcd77(0x1c5)];else{if(_0x161597[_0x1bcd77(0x1e2)](_0x4ff2d9[_0x1bcd77(0x19e)],'28P01'))_0x4382a9='AUTHENTICATION_ERROR';else(_0x4ff2d9['code']===_0x161597['AUKCz']||_0x4ff2d9[_0x1bcd77(0x19e)]==='08001')&&(_0x4382a9=_0x1bcd77(0x19b));}}return{'success':![],'message':_0x1bcd77(0x1c7)+_0x4ff2d9[_0x1bcd77(0x1d5)],'count':-0x1,'error_code':_0x4382a9};}else{if(!_0x104d57||_0x161597['emjwy'](_0x104d57[_0x1bcd77(0x1bc)],0x0))return{'success':!![],'message':_0x1bcd77(0x19c),'count':0x0,'data':[]};return{'success':!![],'message':'Query\x20returned\x20'+_0x104d57['length']+_0x1bcd77(0x1e1)+(_0x161597['emjwy'](_0x104d57['length'],0x1)?'':'s')+'.','count':_0x104d57['length'],'data':_0x104d57};}}async function closePool(){const _0x30c9ac=a0_0xe487a1,_0x3ff3d2={'BhNAA':function(_0x168752,_0x1dc333,_0x4f7ade,_0x54304a){return _0x168752(_0x1dc333,_0x4f7ade,_0x54304a);},'xjraB':_0x30c9ac(0x1ad),'DzaPj':_0x30c9ac(0x19a)};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger[_0x30c9ac(0x1ba)]({'event':'db_pool_closed'},'Database\x20pool\x20closed\x20successfully');}catch(_0xcd7a53){_0x3ff3d2['BhNAA'](logError,_0xcd7a53,{'event':_0x30c9ac(0x1d7)},_0x30c9ac(0x1d3)+_0xcd7a53['message']);}else logger['debug']({'event':_0x3ff3d2[_0x30c9ac(0x1cf)]},_0x3ff3d2['DzaPj']);}async function checkConnection(){const _0x415b21=a0_0xe487a1,_0x3516b7={'VdGpq':function(_0x2ac1d7){return _0x2ac1d7();},'eJQJg':_0x415b21(0x1a1),'ReWyC':function(_0x4c890a,_0x5dc617,_0x4d6357,_0x26df46){return _0x4c890a(_0x5dc617,_0x4d6357,_0x26df46);}};try{const _0x57e847=_0x3516b7[_0x415b21(0x1c4)](getPool),_0x1620d7=await _0x57e847['connect']();try{return await _0x1620d7[_0x415b21(0x1a6)](_0x3516b7[_0x415b21(0x1b7)]),!![];}finally{_0x1620d7['release']();}}catch(_0x5b4ff0){return _0x3516b7['ReWyC'](logError,_0x5b4ff0,{'event':_0x415b21(0x1de)},'Error\x20checking\x20database\x20connection:\x20'+_0x5b4ff0['message']),![];}}function a0_0x115a(){const _0x6d5b8=['BgvUz3rO','sLnKzee','mJa1m2zIEMXLAG','mtjTq1HwELO','uK9mtejbq0S','mZKYmti0wvHSsfPM','m0jSr2vOqq','CM93q291BNq','vMrhChe','Ag9trMW','DhjHBNnHy3rPB25Fy29TCgXLDgu','rgf0ywjHC2uGzxjYB3i6ia','Bw1Vtum','mdGWmdy','B2PNwe8','nZeWD2rOBury','CMzZCve','y2XPzw50x3jLBgvHC2vFzxjYB3i','t2Xxu28','EgPYyui','uw9ytee','qKvhsu4','mte4mdq0mefHA0XwvG','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','BwvZC2fNzq','ndjqmde','zgjFCg9VBf9JBg9Zzv9LCNjVCG','CgfYyw1Z','Cg9ZDgDYzxm','vefctevFtK9ux0zpvu5e','q3PXqxK','rejFue9sva','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','zgjFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','CM9SBgjHy2S','C3vIC3rYAw5N','ihjVDW','zw1QD3K','BLn4r1e','u1Lovefyx0vsuK9s','BwnzsgW','CM93CW','mtyZodm1mZzTvNnKzxa','mZm3ody5nLPwsxDzDW','lI9SB2DNzxi','BhzOrfu','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','q09otKvdveLptL9fuLjpuG','tM8Gzgf0ysbMB3vUzc4','vhjHBNnHy3rPB24GzMfPBgvKoIa','y29Kzq','CMvSzwfZzq','DxnLCG','u0vmrunuide','Ag9ZDa','mta5mdfJy2HKwfm','DhjHBNnHy3rPB25FzxjYB3i','zgjFCg9VBf9YzwnYzwf0zq','CxvLCNK','y29TBwL0','zxHWB3j0CW','ChvZAa','s3rIqMq','zw52','Aw5JBhvKzxm','zgjFCg9VBf9HBhjLywr5x2nSB3nLza','C3fS','wuHStvu','mJfkCNDuB3K','nvfezu1rwa','Cg9ZDgDYzxmTCg9VBa','mtC0mfrrrvrbra','q3jLyxrPBMCGBMv3igrHDgfIyxnLihbVB2WGkhbYzxzPB3vZihbVB2WGD2fZignSB3nLzcK','EevdvKm','CMvNAxn0zxi','zuPrsMC','Cg9ZDgDYzxnXBa','mtu1nZqWoef1qKXUAa','Aw5MBW','ntqZmG'];a0_0x115a=function(){return _0x6d5b8;};return a0_0x115a();}async function executeTransaction(_0x4103fb){const _0x58a7c7=a0_0xe487a1,_0x5007a2={'LweBv':function(_0x25aaf2){return _0x25aaf2();},'lvhDU':'start','jfweF':_0x58a7c7(0x1d1),'KtbBd':function(_0x15b4f8){return _0x15b4f8();},'rfsqQ':function(_0x16a817,_0x29769b,_0x3b478a,_0x4a93b0){return _0x16a817(_0x29769b,_0x3b478a,_0x4a93b0);},'QoXLA':function(_0x109ae8,_0x246dac,_0x124d6a){return _0x109ae8(_0x246dac,_0x124d6a);},'LDRSa':_0x58a7c7(0x1a7),'xECVC':_0x58a7c7(0x1c6),'ojgXO':function(_0xfcbe4b){return _0xfcbe4b();},'mccOx':_0x58a7c7(0x1a4),'RsCtd':_0x58a7c7(0x1df),'Arqeo':'rollback_error'};let _0x2ef04f;const _0x66f0e4=startQueryTimer();try{const _0x1dd3d0=_0x5007a2['LweBv'](getPool);_0x2ef04f=await _0x1dd3d0['connect'](),logTransaction(_0x5007a2[_0x58a7c7(0x199)],_0x4103fb[_0x58a7c7(0x1bc)]),await _0x2ef04f[_0x58a7c7(0x1a6)](_0x5007a2['jfweF']);const _0x738654=[];for(const _0x259d51 of _0x4103fb){const _0x3e41cf=startQueryTimer(),_0x3b496e=await _0x2ef04f['query'](_0x259d51[_0x58a7c7(0x1ae)],_0x259d51['params']||[]),_0x58432b=_0x5007a2[_0x58a7c7(0x1aa)](_0x3e41cf);_0x5007a2[_0x58a7c7(0x1cc)](logQuery,_0x259d51['sql'],_0x259d51[_0x58a7c7(0x1d8)]||[],{'duration':_0x58432b,'rowsAffected':_0x3b496e[_0x58a7c7(0x1c3)],'dbType':_0x58a7c7(0x1b8)}),_0x738654[_0x58a7c7(0x1a9)](_0x3b496e[_0x58a7c7(0x195)]);}await _0x2ef04f[_0x58a7c7(0x1a6)]('COMMIT');const _0x287c7a=_0x66f0e4();return _0x5007a2[_0x58a7c7(0x1d0)](logTransaction,_0x5007a2['LDRSa'],_0x4103fb['length']),logger['info']({'event':_0x5007a2[_0x58a7c7(0x1b5)],'queryCount':_0x4103fb[_0x58a7c7(0x1bc)],'totalDurationMs':_0x287c7a,'dbType':_0x58a7c7(0x1b8)},_0x58a7c7(0x1d4)+_0x287c7a+'ms,\x20'+_0x4103fb['length']+'\x20queries)'),_0x738654;}catch(_0x23a78b){const _0x49e6af=_0x5007a2[_0x58a7c7(0x1ca)](_0x66f0e4);logError(_0x23a78b,{'event':_0x5007a2['mccOx'],'queryCount':_0x4103fb['length'],'totalDurationMs':_0x49e6af,'code':_0x23a78b['code'],'dbType':'postgresql'},_0x58a7c7(0x19d)+_0x23a78b['message']);if(_0x2ef04f)try{await _0x2ef04f[_0x58a7c7(0x1a6)](_0x58a7c7(0x1c0)),logTransaction(_0x5007a2['RsCtd'],_0x4103fb[_0x58a7c7(0x1bc)]);}catch(_0x405aaa){logError(_0x405aaa,{'event':_0x5007a2['Arqeo'],'dbType':'postgresql'},'Error\x20rolling\x20back\x20transaction:\x20'+_0x405aaa[_0x58a7c7(0x1d5)]);}throw _0x23a78b;}finally{if(_0x2ef04f)try{_0x2ef04f[_0x58a7c7(0x19f)]();}catch(_0x52761b){logger['error']({'event':_0x58a7c7(0x1cd),'error':_0x52761b['message'],'dbType':'postgresql'},_0x58a7c7(0x1dd)+_0x52761b[_0x58a7c7(0x1d5)]);}}}require('./shutdown-coordinator')[a0_0xe487a1(0x1b6)](a0_0xe487a1(0x1b2),()=>closePool(),{'order':0x32}),module[a0_0xe487a1(0x1a8)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};