@ductape/sdk 0.0.4-v59 → 0.0.4-v60

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 (251) hide show
  1. package/dist/agents/agents.service.d.ts +8 -2
  2. package/dist/agents/agents.service.js +5 -0
  3. package/dist/agents/agents.service.js.map +1 -1
  4. package/dist/agents/types/agents.types.d.ts +2 -0
  5. package/dist/agents/types/agents.types.js.map +1 -1
  6. package/dist/agents/vector-store-adapter.js +5 -5
  7. package/dist/agents/vector-store-adapter.js.map +1 -1
  8. package/dist/api/services/appApi.service.d.ts +3 -3
  9. package/dist/api/services/appApi.service.js.map +1 -1
  10. package/dist/api/services/productsApi.service.d.ts +1 -1
  11. package/dist/api/services/productsApi.service.js +20 -13
  12. package/dist/api/services/productsApi.service.js.map +1 -1
  13. package/dist/api/services/secretsApi.service.d.ts +12 -0
  14. package/dist/api/services/secretsApi.service.js +30 -2
  15. package/dist/api/services/secretsApi.service.js.map +1 -1
  16. package/dist/api/services/workspaceApi.service.d.ts +8 -0
  17. package/dist/api/services/workspaceApi.service.js +20 -0
  18. package/dist/api/services/workspaceApi.service.js.map +1 -1
  19. package/dist/api/urls.d.ts +2 -0
  20. package/dist/api/urls.js +10 -15
  21. package/dist/api/urls.js.map +1 -1
  22. package/dist/api/utils/auth.utils.d.ts +1 -3
  23. package/dist/api/utils/auth.utils.js.map +1 -1
  24. package/dist/apps/utils/oauth-manager.js +27 -3
  25. package/dist/apps/utils/oauth-manager.js.map +1 -1
  26. package/dist/brokers/brokers.service.d.ts +8 -0
  27. package/dist/brokers/brokers.service.js +50 -4
  28. package/dist/brokers/brokers.service.js.map +1 -1
  29. package/dist/brokers/types/index.d.ts +26 -0
  30. package/dist/brokers/utils/providers/kafka.service.d.ts +7 -0
  31. package/dist/brokers/utils/providers/kafka.service.js +102 -23
  32. package/dist/brokers/utils/providers/kafka.service.js.map +1 -1
  33. package/dist/brokers/utils/providers/rabbitmq.service.d.ts +2 -1
  34. package/dist/brokers/utils/providers/rabbitmq.service.js +99 -15
  35. package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -1
  36. package/dist/database/adapters/cassandra.adapter.d.ts +1 -0
  37. package/dist/database/adapters/cassandra.adapter.js +100 -44
  38. package/dist/database/adapters/cassandra.adapter.js.map +1 -1
  39. package/dist/database/adapters/dynamodb.adapter.d.ts +1 -0
  40. package/dist/database/adapters/dynamodb.adapter.js +89 -20
  41. package/dist/database/adapters/dynamodb.adapter.js.map +1 -1
  42. package/dist/database/adapters/mongodb.adapter.d.ts +1 -0
  43. package/dist/database/adapters/mongodb.adapter.js +123 -45
  44. package/dist/database/adapters/mongodb.adapter.js.map +1 -1
  45. package/dist/database/adapters/mysql.adapter.d.ts +1 -0
  46. package/dist/database/adapters/mysql.adapter.js +125 -48
  47. package/dist/database/adapters/mysql.adapter.js.map +1 -1
  48. package/dist/database/adapters/postgresql.adapter.d.ts +5 -0
  49. package/dist/database/adapters/postgresql.adapter.js +151 -50
  50. package/dist/database/adapters/postgresql.adapter.js.map +1 -1
  51. package/dist/database/databases.service.d.ts +15 -1
  52. package/dist/database/databases.service.js +143 -2
  53. package/dist/database/databases.service.js.map +1 -1
  54. package/dist/database/operators/aggregation-builder.d.ts +11 -8
  55. package/dist/database/operators/aggregation-builder.js +184 -89
  56. package/dist/database/operators/aggregation-builder.js.map +1 -1
  57. package/dist/database/operators/query-builder.d.ts +23 -19
  58. package/dist/database/operators/query-builder.js +77 -45
  59. package/dist/database/operators/query-builder.js.map +1 -1
  60. package/dist/database/types/aggregation.interface.d.ts +21 -15
  61. package/dist/database/types/query.interface.d.ts +27 -21
  62. package/dist/database/types/write.interface.d.ts +20 -12
  63. package/dist/graph/adapters/arangodb.adapter.js +61 -22
  64. package/dist/graph/adapters/arangodb.adapter.js.map +1 -1
  65. package/dist/graph/adapters/memgraph.adapter.js +22 -16
  66. package/dist/graph/adapters/memgraph.adapter.js.map +1 -1
  67. package/dist/graph/adapters/neo4j.adapter.js +51 -21
  68. package/dist/graph/adapters/neo4j.adapter.js.map +1 -1
  69. package/dist/graph/adapters/neptune.adapter.js +32 -16
  70. package/dist/graph/adapters/neptune.adapter.js.map +1 -1
  71. package/dist/graph/graphs.service.d.ts +24 -2
  72. package/dist/graph/graphs.service.js +238 -28
  73. package/dist/graph/graphs.service.js.map +1 -1
  74. package/dist/graph/types/connection.interface.d.ts +8 -0
  75. package/dist/graph/types/query.interface.d.ts +21 -14
  76. package/dist/index.d.ts +367 -20
  77. package/dist/index.js +510 -48
  78. package/dist/index.js.map +1 -1
  79. package/dist/inputs/inputs.service.d.ts +1 -1
  80. package/dist/notifications/notifications.service.d.ts +7 -2
  81. package/dist/notifications/notifications.service.js +2 -0
  82. package/dist/notifications/notifications.service.js.map +1 -1
  83. package/dist/processor/services/processor.service.d.ts +5 -1
  84. package/dist/processor/services/processor.service.js +35 -2
  85. package/dist/processor/services/processor.service.js.map +1 -1
  86. package/dist/products/services/products.service.d.ts +76 -2
  87. package/dist/products/services/products.service.js +984 -27
  88. package/dist/products/services/products.service.js.map +1 -1
  89. package/dist/products/validators/joi-validators/create.productAgent.validator.js +52 -4
  90. package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -1
  91. package/dist/products/validators/joi-validators/create.productGraph.validator.js +2 -0
  92. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -1
  93. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +1 -7
  94. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  95. package/dist/products/validators/joi-validators/create.productVector.validator.js +4 -4
  96. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -1
  97. package/dist/products/validators/joi-validators/update.productGraph.validator.js +2 -0
  98. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -1
  99. package/dist/resilience/fallback.service.d.ts +4 -1
  100. package/dist/resilience/fallback.service.js +8 -10
  101. package/dist/resilience/fallback.service.js.map +1 -1
  102. package/dist/resilience/healthcheck.service.d.ts +6 -1
  103. package/dist/resilience/healthcheck.service.js +9 -0
  104. package/dist/resilience/healthcheck.service.js.map +1 -1
  105. package/dist/resilience/quota.service.d.ts +4 -1
  106. package/dist/resilience/quota.service.js +2 -0
  107. package/dist/resilience/quota.service.js.map +1 -1
  108. package/dist/resilience/resilience.service.d.ts +4 -1
  109. package/dist/resilience/resilience.service.js.map +1 -1
  110. package/dist/secrets/secrets.service.d.ts +11 -1
  111. package/dist/secrets/secrets.service.js +109 -10
  112. package/dist/secrets/secrets.service.js.map +1 -1
  113. package/dist/storage/storage.service.d.ts +4 -1
  114. package/dist/storage/storage.service.js +6 -1
  115. package/dist/storage/storage.service.js.map +1 -1
  116. package/dist/test/index.js +1 -3
  117. package/dist/test/index.js.map +1 -1
  118. package/dist/test/test.broker.kafka.d.ts +1 -0
  119. package/dist/test/test.broker.kafka.js +172 -0
  120. package/dist/test/test.broker.kafka.js.map +1 -0
  121. package/dist/test/test.broker.nats.d.ts +1 -0
  122. package/dist/test/test.broker.nats.js +193 -0
  123. package/dist/test/test.broker.nats.js.map +1 -0
  124. package/dist/test/test.broker.pubsub.d.ts +1 -0
  125. package/dist/test/test.broker.pubsub.js +171 -0
  126. package/dist/test/test.broker.pubsub.js.map +1 -0
  127. package/dist/test/test.broker.rabbitmq.d.ts +1 -0
  128. package/dist/test/test.broker.rabbitmq.js +164 -0
  129. package/dist/test/test.broker.rabbitmq.js.map +1 -0
  130. package/dist/test/test.broker.redis.d.ts +1 -0
  131. package/dist/test/test.broker.redis.js +168 -0
  132. package/dist/test/test.broker.redis.js.map +1 -0
  133. package/dist/test/test.broker.sqs.d.ts +1 -0
  134. package/dist/test/test.broker.sqs.js +158 -0
  135. package/dist/test/test.broker.sqs.js.map +1 -0
  136. package/dist/test/test.caches.d.ts +1 -0
  137. package/dist/test/test.caches.js +231 -0
  138. package/dist/test/test.caches.js.map +1 -0
  139. package/dist/test/test.database.dynamo.d.ts +1 -0
  140. package/dist/test/test.database.dynamo.js +265 -0
  141. package/dist/test/test.database.dynamo.js.map +1 -0
  142. package/dist/test/test.database.js +2 -2
  143. package/dist/test/test.database.js.map +1 -1
  144. package/dist/test/test.database.mongo.d.ts +1 -0
  145. package/dist/test/test.database.mongo.js +371 -0
  146. package/dist/test/test.database.mongo.js.map +1 -0
  147. package/dist/test/test.database.mysql.d.ts +1 -0
  148. package/dist/test/test.database.mysql.js +415 -0
  149. package/dist/test/test.database.mysql.js.map +1 -0
  150. package/dist/test/test.database.postgres.d.ts +1 -0
  151. package/dist/test/test.database.postgres.js +412 -0
  152. package/dist/test/test.database.postgres.js.map +1 -0
  153. package/dist/test/test.email.brevo.d.ts +1 -0
  154. package/dist/test/test.email.brevo.js +326 -0
  155. package/dist/test/test.email.brevo.js.map +1 -0
  156. package/dist/test/test.email.mailgun.d.ts +1 -0
  157. package/dist/test/test.email.mailgun.js +352 -0
  158. package/dist/test/test.email.mailgun.js.map +1 -0
  159. package/dist/test/test.email.postmark.d.ts +1 -0
  160. package/dist/test/test.email.postmark.js +316 -0
  161. package/dist/test/test.email.postmark.js.map +1 -0
  162. package/dist/test/test.email.sendgrid.d.ts +1 -0
  163. package/dist/test/test.email.sendgrid.js +365 -0
  164. package/dist/test/test.email.sendgrid.js.map +1 -0
  165. package/dist/test/test.email.smtp.d.ts +1 -0
  166. package/dist/test/test.email.smtp.js +323 -0
  167. package/dist/test/test.email.smtp.js.map +1 -0
  168. package/dist/test/test.graph.arangodb.d.ts +1 -0
  169. package/dist/test/test.graph.arangodb.js +358 -0
  170. package/dist/test/test.graph.arangodb.js.map +1 -0
  171. package/dist/test/test.graph.memgraph.d.ts +1 -0
  172. package/dist/test/test.graph.memgraph.js +320 -0
  173. package/dist/test/test.graph.memgraph.js.map +1 -0
  174. package/dist/test/test.graph.neo4j.d.ts +1 -0
  175. package/dist/test/test.graph.neo4j.js +218 -0
  176. package/dist/test/test.graph.neo4j.js.map +1 -0
  177. package/dist/test/test.graph.neptune.d.ts +1 -0
  178. package/dist/test/test.graph.neptune.js +331 -0
  179. package/dist/test/test.graph.neptune.js.map +1 -0
  180. package/dist/test/test.notifications.d.ts +1 -0
  181. package/dist/test/test.notifications.js +198 -0
  182. package/dist/test/test.notifications.js.map +1 -0
  183. package/dist/test/test.push.expo.d.ts +1 -0
  184. package/dist/test/test.push.expo.js +442 -0
  185. package/dist/test/test.push.expo.js.map +1 -0
  186. package/dist/test/test.push.firebase.d.ts +1 -0
  187. package/dist/test/test.push.firebase.js +409 -0
  188. package/dist/test/test.push.firebase.js.map +1 -0
  189. package/dist/test/test.session.d.ts +1 -0
  190. package/dist/test/test.session.js +299 -0
  191. package/dist/test/test.session.js.map +1 -0
  192. package/dist/test/test.sms.nexmo.d.ts +1 -0
  193. package/dist/test/test.sms.nexmo.js +278 -0
  194. package/dist/test/test.sms.nexmo.js.map +1 -0
  195. package/dist/test/test.sms.twilio.d.ts +1 -0
  196. package/dist/test/test.sms.twilio.js +275 -0
  197. package/dist/test/test.sms.twilio.js.map +1 -0
  198. package/dist/test/test.storage.js +169 -299
  199. package/dist/test/test.storage.js.map +1 -1
  200. package/dist/test/test.vector.pinecone.d.ts +1 -0
  201. package/dist/test/test.vector.pinecone.js +238 -0
  202. package/dist/test/test.vector.pinecone.js.map +1 -0
  203. package/dist/test/test.vector.qdrant.d.ts +1 -0
  204. package/dist/test/test.vector.qdrant.js +307 -0
  205. package/dist/test/test.vector.qdrant.js.map +1 -0
  206. package/dist/test/test.vector.weaviate.d.ts +1 -0
  207. package/dist/test/test.vector.weaviate.js +325 -0
  208. package/dist/test/test.vector.weaviate.js.map +1 -0
  209. package/dist/types/appBuilder.types.d.ts +6 -2
  210. package/dist/types/enums.d.ts +2 -0
  211. package/dist/types/enums.js +2 -0
  212. package/dist/types/enums.js.map +1 -1
  213. package/dist/types/index.types.d.ts +2 -4
  214. package/dist/types/index.types.js +0 -1
  215. package/dist/types/index.types.js.map +1 -1
  216. package/dist/types/processor.types.d.ts +18 -0
  217. package/dist/types/productsBuilder.types.d.ts +19 -15
  218. package/dist/types/productsBuilder.types.js.map +1 -1
  219. package/dist/types/requests.types.d.ts +2 -0
  220. package/dist/utils/index.js +23 -4
  221. package/dist/utils/index.js.map +1 -1
  222. package/dist/vector/adapters/base.adapter.d.ts +1 -1
  223. package/dist/vector/adapters/memory.adapter.d.ts +1 -1
  224. package/dist/vector/adapters/memory.adapter.js +1 -1
  225. package/dist/vector/adapters/memory.adapter.js.map +1 -1
  226. package/dist/vector/adapters/pinecone.adapter.d.ts +1 -1
  227. package/dist/vector/adapters/pinecone.adapter.js +1 -1
  228. package/dist/vector/adapters/pinecone.adapter.js.map +1 -1
  229. package/dist/vector/adapters/qdrant.adapter.d.ts +1 -1
  230. package/dist/vector/adapters/qdrant.adapter.js +1 -1
  231. package/dist/vector/adapters/qdrant.adapter.js.map +1 -1
  232. package/dist/vector/adapters/weaviate.adapter.d.ts +1 -1
  233. package/dist/vector/adapters/weaviate.adapter.js +1 -1
  234. package/dist/vector/adapters/weaviate.adapter.js.map +1 -1
  235. package/dist/vector/index.d.ts +2 -2
  236. package/dist/vector/index.js +2 -2
  237. package/dist/vector/utils/vector-error.js +0 -1
  238. package/dist/vector/utils/vector-error.js.map +1 -1
  239. package/dist/vector/vector-database.service.d.ts +9 -6
  240. package/dist/vector/vector-database.service.js +7 -6
  241. package/dist/vector/vector-database.service.js.map +1 -1
  242. package/dist/vector/vector.service.d.ts +3 -3
  243. package/dist/vector/vector.service.js +12 -9
  244. package/dist/vector/vector.service.js.map +1 -1
  245. package/dist/workflows/workflow-executor.d.ts +4 -1
  246. package/dist/workflows/workflow-executor.js +10 -2
  247. package/dist/workflows/workflow-executor.js.map +1 -1
  248. package/dist/workflows/workflows.service.d.ts +8 -2
  249. package/dist/workflows/workflows.service.js +66 -41
  250. package/dist/workflows/workflows.service.js.map +1 -1
  251. package/package.json +29 -4
@@ -0,0 +1,412 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const database_1 = require("../database");
7
+ const index_1 = __importDefault(require("./index"));
8
+ /**
9
+ * PostgreSQL Database Tests
10
+ *
11
+ * Comprehensive tests for PostgreSQL database operations:
12
+ * - Connection management
13
+ * - Schema operations (create, alter, drop tables)
14
+ * - CRUD operations (insert, query, update, delete)
15
+ * - Aggregations (count, sum, avg, min, max)
16
+ * - Transactions
17
+ * - Pre-save operations (trim, hash, encrypt, normalize)
18
+ * - Raw queries
19
+ * - Migrations
20
+ */
21
+ const { databases } = index_1.default;
22
+ databases.create({
23
+ product: 'ductape:rematch',
24
+ name: 'PostgresDB',
25
+ tag: 'postgres-db',
26
+ type: database_1.DatabaseType.POSTGRESQL,
27
+ envs: [{
28
+ slug: 'prd',
29
+ connection_url: 'postgres://avnadmin:AVNS_EslAIqyyBg9876k5_NQ@pg-399355e6-ductapetech-postgres.e.aivencloud.com:24999/rematch-prd?sslmode=require'
30
+ }, {
31
+ slug: 'dev',
32
+ connection_url: 'postgres://avnadmin:AVNS_EslAIqyyBg9876k5_NQ@pg-399355e6-ductapetech-postgres.e.aivencloud.com:24999/rematch-dev?sslmode=require'
33
+ }]
34
+ }).then(() => {
35
+ console.log('PostgreSQL database created');
36
+ });
37
+ // Start timing
38
+ const startTime = performance.now();
39
+ console.log(`[${new Date().toISOString()}] Starting PostgreSQL database operations...`);
40
+ /*databases
41
+ .connect({
42
+ env: 'prd',
43
+ product: 'ductape:rematch',
44
+ database: 'postgres-db', // Your PostgreSQL database tag
45
+ })
46
+ .then(async (connection) => {
47
+ const connectTime = performance.now();
48
+ console.log(`[TIMING] Connect: ${(connectTime - startTime).toFixed(2)}ms`);
49
+ console.log('PostgreSQL connection established:', connection);
50
+
51
+ // ==================== SCHEMA OPERATIONS ====================
52
+
53
+ console.log('\n--- Schema Operations ---');
54
+
55
+ // List existing tables
56
+ const listStart = performance.now();
57
+ const tables = await databases.schema.list();
58
+ console.log(`[TIMING] Schema list: ${(performance.now() - listStart).toFixed(2)}ms`);
59
+ console.log('Existing tables:', tables);
60
+
61
+ // Drop test table if exists
62
+ if (tables.includes('test_users')) {
63
+ console.log('Dropping existing "test_users" table...');
64
+ await databases.schema.drop('test_users');
65
+ }
66
+
67
+ // Create table with PostgreSQL-specific types
68
+ console.log('Creating table "test_users"...');
69
+ const createStart = performance.now();
70
+ await databases.schema.create('test_users', {
71
+ id: { type: 'serial', primaryKey: true },
72
+ uuid: { type: 'uuid', default: 'gen_random_uuid()' },
73
+ name: { type: 'varchar(255)', nullable: false },
74
+ email: { type: 'varchar(255)', unique: true, nullable: false },
75
+ password: { type: 'varchar(255)' },
76
+ age: { type: 'integer' },
77
+ balance: { type: 'decimal(10,2)', default: '0.00' },
78
+ metadata: { type: 'jsonb' },
79
+ tags: { type: 'text[]' },
80
+ active: { type: 'boolean', default: true },
81
+ created_at: { type: 'timestamp', default: 'now()' },
82
+ updated_at: { type: 'timestamp', default: 'now()' },
83
+ });
84
+ console.log(`[TIMING] Schema create: ${(performance.now() - createStart).toFixed(2)}ms`);
85
+
86
+ // Get table schema
87
+ const schemaStart = performance.now();
88
+ const tableSchema = await databases.schema.describe('test_users');
89
+ console.log(`[TIMING] Schema describe: ${(performance.now() - schemaStart).toFixed(2)}ms`);
90
+ console.log('Table schema:', JSON.stringify(tableSchema, null, 2));
91
+
92
+ // Create index
93
+ console.log('Creating index on email...');
94
+ const indexStart = performance.now();
95
+ await databases.schema.createIndex('test_users', {
96
+ name: 'idx_test_users_email',
97
+ columns: ['email'],
98
+ unique: true,
99
+ });
100
+ console.log(`[TIMING] Create index: ${(performance.now() - indexStart).toFixed(2)}ms`);
101
+
102
+ // ==================== INSERT OPERATIONS ====================
103
+
104
+ console.log('\n--- Insert Operations ---');
105
+
106
+ // Generate unique test data
107
+ const timestamp = Date.now();
108
+ const testEmail = `test.user.${timestamp}@example.com`;
109
+
110
+ // Insert with pre-save operations
111
+ console.log('Inserting user with pre-save operations...');
112
+ const insertStart = performance.now();
113
+ const insertResult = await databases.insert({
114
+ table: 'test_users',
115
+ data: {
116
+ name: ' John Doe ',
117
+ email: testEmail.toUpperCase(),
118
+ password: 'password123',
119
+ age: 30,
120
+ balance: 1000.50,
121
+ metadata: { role: 'admin', preferences: { theme: 'dark' } },
122
+ tags: ['developer', 'nodejs'],
123
+ },
124
+ returning: true,
125
+ preSave: [
126
+ PreSave.trim('name'),
127
+ PreSave.normalizeEmail('email'),
128
+ PreSave.hash('password', { algorithm: 'sha256' }),
129
+ ],
130
+ });
131
+ console.log(`[TIMING] Insert: ${(performance.now() - insertStart).toFixed(2)}ms`);
132
+ console.log('Inserted user:', JSON.stringify(insertResult, null, 2));
133
+
134
+ // Bulk insert
135
+ console.log('Bulk inserting users...');
136
+ const bulkStart = performance.now();
137
+ const bulkResult = await databases.insert({
138
+ table: 'test_users',
139
+ data: [
140
+ { name: 'Jane Smith', email: `jane.${timestamp}@example.com`, age: 25, balance: 500.00 },
141
+ { name: 'Bob Wilson', email: `bob.${timestamp}@example.com`, age: 35, balance: 1500.75 },
142
+ { name: 'Alice Brown', email: `alice.${timestamp}@example.com`, age: 28, balance: 750.25 },
143
+ ],
144
+ returning: true,
145
+ });
146
+ console.log(`[TIMING] Bulk insert: ${(performance.now() - bulkStart).toFixed(2)}ms`);
147
+ console.log(`Inserted ${bulkResult.count} users`);
148
+
149
+ // Upsert (ON CONFLICT)
150
+ console.log('Testing upsert (ON CONFLICT)...');
151
+ const upsertStart = performance.now();
152
+ const upsertResult = await databases.insert({
153
+ table: 'test_users',
154
+ data: { name: 'John Doe Updated', email: testEmail, age: 31 },
155
+ onConflict: {
156
+ columns: ['email'],
157
+ action: 'update',
158
+ update: ['name', 'age'],
159
+ },
160
+ returning: true,
161
+ });
162
+ console.log(`[TIMING] Upsert: ${(performance.now() - upsertStart).toFixed(2)}ms`);
163
+ console.log('Upsert result:', JSON.stringify(upsertResult, null, 2));
164
+
165
+ // ==================== QUERY OPERATIONS ====================
166
+
167
+ console.log('\n--- Query Operations ---');
168
+
169
+ // Simple query
170
+ console.log('Querying all users...');
171
+ const queryStart = performance.now();
172
+ const allUsers = await databases.query({
173
+ table: 'test_users',
174
+ orderBy: [{ column: 'created_at', order: 'DESC' }],
175
+ });
176
+ console.log(`[TIMING] Query all: ${(performance.now() - queryStart).toFixed(2)}ms`);
177
+ console.log(`Found ${allUsers.data.length} users`);
178
+
179
+ // Query with where clause
180
+ console.log('Querying users with age > 27...');
181
+ const whereStart = performance.now();
182
+ const filteredUsers = await databases.query({
183
+ table: 'test_users',
184
+ where: { age: Operators.gt(27) },
185
+ select: ['id', 'name', 'email', 'age'],
186
+ });
187
+ console.log(`[TIMING] Query with where: ${(performance.now() - whereStart).toFixed(2)}ms`);
188
+ console.log('Filtered users:', JSON.stringify(filteredUsers.data, null, 2));
189
+
190
+ // Query with complex operators
191
+ console.log('Complex query with multiple conditions...');
192
+ const complexStart = performance.now();
193
+ const complexQuery = await databases.query({
194
+ table: 'test_users',
195
+ where: {
196
+ $and: [
197
+ { age: Operators.gte(25) },
198
+ { balance: Operators.lt(1000) },
199
+ { active: true },
200
+ ],
201
+ },
202
+ orderBy: [{ column: 'balance', order: 'DESC' }],
203
+ limit: 10,
204
+ });
205
+ console.log(`[TIMING] Complex query: ${(performance.now() - complexStart).toFixed(2)}ms`);
206
+ console.log('Complex query results:', complexQuery.data.length);
207
+
208
+ // Query with LIKE
209
+ console.log('Query with LIKE operator...');
210
+ const likeStart = performance.now();
211
+ const likeQuery = await databases.query({
212
+ table: 'test_users',
213
+ where: { email: Operators.like('%example.com') },
214
+ });
215
+ console.log(`[TIMING] LIKE query: ${(performance.now() - likeStart).toFixed(2)}ms`);
216
+ console.log('LIKE query results:', likeQuery.data.length);
217
+
218
+ // Query with IN
219
+ console.log('Query with IN operator...');
220
+ const inStart = performance.now();
221
+ const inQuery = await databases.query({
222
+ table: 'test_users',
223
+ where: { age: Operators.in([25, 30, 35]) },
224
+ });
225
+ console.log(`[TIMING] IN query: ${(performance.now() - inStart).toFixed(2)}ms`);
226
+ console.log('IN query results:', inQuery.data.length);
227
+
228
+ // ==================== UPDATE OPERATIONS ====================
229
+
230
+ console.log('\n--- Update Operations ---');
231
+
232
+ // Simple update
233
+ console.log('Updating user balance...');
234
+ const updateStart = performance.now();
235
+ const updateResult = await databases.update({
236
+ table: 'test_users',
237
+ data: { balance: 2000.00, updated_at: new Date() },
238
+ where: { email: testEmail },
239
+ returning: true,
240
+ });
241
+ console.log(`[TIMING] Update: ${(performance.now() - updateStart).toFixed(2)}ms`);
242
+ console.log('Update result:', JSON.stringify(updateResult, null, 2));
243
+
244
+ // Increment update
245
+ console.log('Incrementing all balances by 100...');
246
+ const incStart = performance.now();
247
+ const incResult = await databases.update({
248
+ table: 'test_users',
249
+ data: { balance: Operators.increment(100) },
250
+ where: { active: true },
251
+ });
252
+ console.log(`[TIMING] Increment update: ${(performance.now() - incStart).toFixed(2)}ms`);
253
+ console.log(`Updated ${incResult.count} rows`);
254
+
255
+ // ==================== AGGREGATION OPERATIONS ====================
256
+
257
+ console.log('\n--- Aggregation Operations ---');
258
+
259
+ // Count
260
+ const countStart = performance.now();
261
+ const count = await databases.count({ table: 'test_users' });
262
+ console.log(`[TIMING] Count: ${(performance.now() - countStart).toFixed(2)}ms`);
263
+ console.log('Total users:', count);
264
+
265
+ // Count with where
266
+ const countWhereStart = performance.now();
267
+ const activeCount = await databases.count({
268
+ table: 'test_users',
269
+ where: { active: true },
270
+ });
271
+ console.log(`[TIMING] Count with where: ${(performance.now() - countWhereStart).toFixed(2)}ms`);
272
+ console.log('Active users:', activeCount);
273
+
274
+ // Sum
275
+ const sumStart = performance.now();
276
+ const totalBalance = await databases.sum({
277
+ table: 'test_users',
278
+ column: 'balance',
279
+ });
280
+ console.log(`[TIMING] Sum: ${(performance.now() - sumStart).toFixed(2)}ms`);
281
+ console.log('Total balance:', totalBalance);
282
+
283
+ // Average
284
+ const avgStart = performance.now();
285
+ const avgAge = await databases.avg({
286
+ table: 'test_users',
287
+ column: 'age',
288
+ });
289
+ console.log(`[TIMING] Avg: ${(performance.now() - avgStart).toFixed(2)}ms`);
290
+ console.log('Average age:', avgAge);
291
+
292
+ // Min/Max
293
+ const minStart = performance.now();
294
+ const minAge = await databases.min({ table: 'test_users', column: 'age' });
295
+ console.log(`[TIMING] Min: ${(performance.now() - minStart).toFixed(2)}ms`);
296
+ console.log('Minimum age:', minAge);
297
+
298
+ const maxStart = performance.now();
299
+ const maxBalance = await databases.max({ table: 'test_users', column: 'balance' });
300
+ console.log(`[TIMING] Max: ${(performance.now() - maxStart).toFixed(2)}ms`);
301
+ console.log('Maximum balance:', maxBalance);
302
+
303
+ // Group by aggregation
304
+ const groupStart = performance.now();
305
+ const groupResult = await databases.aggregate({
306
+ table: 'test_users',
307
+ operations: [
308
+ { type: 'count', alias: 'user_count' },
309
+ { type: 'avg', column: 'balance', alias: 'avg_balance' },
310
+ ],
311
+ groupBy: ['active'],
312
+ });
313
+ console.log(`[TIMING] Group by: ${(performance.now() - groupStart).toFixed(2)}ms`);
314
+ console.log('Group by results:', JSON.stringify(groupResult, null, 2));
315
+
316
+ // ==================== RAW QUERIES ====================
317
+
318
+ console.log('\n--- Raw Queries ---');
319
+
320
+ // PostgreSQL-specific raw query
321
+ const rawStart = performance.now();
322
+ const rawResult = await databases.raw({
323
+ query: `
324
+ SELECT
325
+ name,
326
+ email,
327
+ age,
328
+ balance,
329
+ CASE
330
+ WHEN balance > 1000 THEN 'high'
331
+ WHEN balance > 500 THEN 'medium'
332
+ ELSE 'low'
333
+ END as balance_tier
334
+ FROM test_users
335
+ WHERE age > $1
336
+ ORDER BY balance DESC
337
+ `,
338
+ params: [25],
339
+ });
340
+ console.log(`[TIMING] Raw query: ${(performance.now() - rawStart).toFixed(2)}ms`);
341
+ console.log('Raw query results:', JSON.stringify(rawResult.data, null, 2));
342
+
343
+ // ==================== TRANSACTION ====================
344
+
345
+ console.log('\n--- Transaction ---');
346
+
347
+ const txStart = performance.now();
348
+ try {
349
+ const tx = await databases.beginTransaction({ isolationLevel: 'serializable' });
350
+
351
+ // Insert within transaction
352
+ await databases.insert({
353
+ table: 'test_users',
354
+ data: { name: 'TX User', email: `tx.${timestamp}@example.com`, age: 40 },
355
+ transaction: tx,
356
+ });
357
+
358
+ // Update within transaction
359
+ await databases.update({
360
+ table: 'test_users',
361
+ data: { balance: Operators.increment(50) },
362
+ where: { email: `tx.${timestamp}@example.com` },
363
+ transaction: tx,
364
+ });
365
+
366
+ // Commit
367
+ await tx.commit();
368
+ console.log(`[TIMING] Transaction: ${(performance.now() - txStart).toFixed(2)}ms`);
369
+ console.log('Transaction committed successfully');
370
+ } catch (error) {
371
+ console.log('Transaction error:', error);
372
+ }
373
+
374
+ // ==================== DELETE OPERATIONS ====================
375
+
376
+ console.log('\n--- Delete Operations ---');
377
+
378
+ // Delete specific record
379
+ const deleteStart = performance.now();
380
+ const deleteResult = await databases.delete({
381
+ table: 'test_users',
382
+ where: { email: `tx.${timestamp}@example.com` },
383
+ returning: true,
384
+ });
385
+ console.log(`[TIMING] Delete: ${(performance.now() - deleteStart).toFixed(2)}ms`);
386
+ console.log(`Deleted ${deleteResult.count} rows`);
387
+
388
+ // ==================== CLEANUP ====================
389
+
390
+ console.log('\n--- Cleanup ---');
391
+ const cleanupStart = performance.now();
392
+
393
+ // Drop index
394
+ await databases.schema.dropIndex('test_users', 'idx_test_users_email');
395
+ console.log('Dropped index');
396
+
397
+ // Drop table
398
+ await databases.schema.drop('test_users');
399
+ console.log('Dropped table');
400
+
401
+ console.log(`[TIMING] Cleanup: ${(performance.now() - cleanupStart).toFixed(2)}ms`);
402
+
403
+ // ==================== SUMMARY ====================
404
+
405
+ const totalTime = performance.now() - startTime;
406
+ console.log(`\n[TIMING SUMMARY]`);
407
+ console.log(` Total time: ${totalTime.toFixed(2)}ms`);
408
+ })
409
+ .catch((err) => {
410
+ console.error('Error in PostgreSQL operations:', err);
411
+ });*/
412
+ //# sourceMappingURL=test.database.postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.database.postgres.js","sourceRoot":"","sources":["../../src/test/test.database.postgres.ts"],"names":[],"mappings":";;;;;AAAA,0CAA+D;AAC/D,oDAA8B;AAE9B;;;;;;;;;;;;GAYG;AAEH,MAAM,EAAE,SAAS,EAAE,GAAG,eAAO,CAAC;AAE9B,SAAS,CAAC,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,uBAAY,CAAC,UAAU;IAC7B,IAAI,EAAE,CAAC;YACL,IAAI,EAAE,KAAK;YACX,cAAc,EAAE,kIAAkI;SACnJ,EAAC;YACA,IAAI,EAAE,KAAK;YACX,cAAc,EAAE,kIAAkI;SACnJ,CAAC;CACH,CAAC,CAAC,IAAI,CAAC,GAAE,EAAE;IACV,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAA;AAEF,eAAe;AACf,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACpC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,8CAA8C,CAAC,CAAC;AAExF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmXO"}
@@ -0,0 +1 @@
1
+ export {};