@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,323 @@
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 index_1 = __importDefault(require("./index"));
7
+ /**
8
+ * SMTP Email Provider Tests
9
+ *
10
+ * Comprehensive tests for SMTP email operations:
11
+ * - Notification configuration with SMTP
12
+ * - Email sending with templates
13
+ * - Multi-recipient emails
14
+ * - HTML and plain text emails
15
+ * - SMTP-specific features (TLS, auth, ports)
16
+ */
17
+ const { notifications } = index_1.default;
18
+ // Start timing
19
+ const startTime = performance.now();
20
+ console.log(`[${new Date().toISOString()}] Starting SMTP email provider operations...`);
21
+ async function runSMTPTests() {
22
+ try {
23
+ // ==================== CREATE NOTIFICATION CONFIGURATION ====================
24
+ console.log('\n--- Creating Notification Configuration (SMTP) ---');
25
+ const createStart = performance.now();
26
+ // Create notification with SMTP email configuration
27
+ await notifications.create('ductape:rematch', {
28
+ name: 'SMTP Email Notifications',
29
+ tag: 'smtp-notifications',
30
+ description: 'Email notifications via SMTP server',
31
+ envs: [
32
+ {
33
+ slug: 'prd',
34
+ emails: {
35
+ provider: 'smtp',
36
+ smtp: {
37
+ host: process.env.SMTP_HOST || 'smtp.gmail.com',
38
+ port: process.env.SMTP_PORT || '587',
39
+ sender_email: process.env.SMTP_SENDER || 'noreply@company.com',
40
+ auth: {
41
+ user: process.env.SMTP_USER || 'smtp-user@company.com',
42
+ pass: process.env.SMTP_PASS || 'your-smtp-password',
43
+ },
44
+ secure: process.env.SMTP_SECURE === 'true',
45
+ tls: {
46
+ rejectUnauthorized: process.env.SMTP_TLS_REJECT !== 'false',
47
+ },
48
+ },
49
+ },
50
+ },
51
+ {
52
+ slug: 'dev',
53
+ emails: {
54
+ provider: 'smtp',
55
+ smtp: {
56
+ host: process.env.SMTP_DEV_HOST || 'localhost',
57
+ port: process.env.SMTP_DEV_PORT || '1025',
58
+ sender_email: process.env.SMTP_DEV_SENDER || 'dev@localhost.com',
59
+ auth: {
60
+ user: process.env.SMTP_DEV_USER || 'dev-user',
61
+ pass: process.env.SMTP_DEV_PASS || 'dev-password',
62
+ },
63
+ secure: false,
64
+ tls: {
65
+ rejectUnauthorized: false,
66
+ },
67
+ },
68
+ },
69
+ },
70
+ ],
71
+ });
72
+ console.log(`[TIMING] Create notification config: ${(performance.now() - createStart).toFixed(2)}ms`);
73
+ console.log('SMTP notification configuration created successfully');
74
+ // Create notification message templates
75
+ console.log('\n--- Creating Message Templates ---');
76
+ const templateStart = performance.now();
77
+ await notifications.messages.create('ductape:rematch', {
78
+ name: 'Welcome Email',
79
+ tag: 'smtp-notifications:welcome',
80
+ description: 'Welcome email for new users',
81
+ email: {
82
+ subject: 'Welcome to {{company_name}}, {{user_name}}!',
83
+ template: `
84
+ <html>
85
+ <body style="font-family: Arial, sans-serif; padding: 20px;">
86
+ <h1>Welcome, {{user_name}}!</h1>
87
+ <p>Thank you for joining {{company_name}}.</p>
88
+ <p>Your account has been created successfully.</p>
89
+ <p>Username: {{username}}</p>
90
+ <p>Email: {{email}}</p>
91
+ <a href="{{activation_link}}" style="background-color: #007bff; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;">
92
+ Activate Your Account
93
+ </a>
94
+ <p style="margin-top: 20px;">Best regards,<br/>The {{company_name}} Team</p>
95
+ </body>
96
+ </html>
97
+ `,
98
+ },
99
+ });
100
+ await notifications.messages.create('ductape:rematch', {
101
+ name: 'Password Reset',
102
+ tag: 'smtp-notifications:password-reset',
103
+ description: 'Password reset email',
104
+ email: {
105
+ subject: 'Password Reset Request - {{company_name}}',
106
+ template: `
107
+ <html>
108
+ <body style="font-family: Arial, sans-serif; padding: 20px;">
109
+ <h2>Password Reset Request</h2>
110
+ <p>Hi {{user_name}},</p>
111
+ <p>We received a request to reset your password for your {{company_name}} account.</p>
112
+ <p>Click the link below to reset your password:</p>
113
+ <a href="{{reset_link}}" style="background-color: #dc3545; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;">
114
+ Reset Password
115
+ </a>
116
+ <p style="margin-top: 20px;">This link will expire in {{expiry_hours}} hours.</p>
117
+ <p>If you didn't request this, please ignore this email.</p>
118
+ </body>
119
+ </html>
120
+ `,
121
+ },
122
+ });
123
+ await notifications.messages.create('ductape:rematch', {
124
+ name: 'Order Confirmation',
125
+ tag: 'smtp-notifications:order-confirmation',
126
+ description: 'Order confirmation email',
127
+ email: {
128
+ subject: 'Order Confirmed - #{{order_id}}',
129
+ template: `
130
+ <html>
131
+ <body style="font-family: Arial, sans-serif; padding: 20px;">
132
+ <h2>Order Confirmation</h2>
133
+ <p>Thank you for your order, {{customer_name}}!</p>
134
+ <p><strong>Order ID:</strong> {{order_id}}</p>
135
+ <p><strong>Order Date:</strong> {{order_date}}</p>
136
+ <p><strong>Total:</strong> {{order_total}}</p>
137
+ <h3>Items:</h3>
138
+ <table style="width: 100%; border-collapse: collapse;">
139
+ <tr style="background-color: #f2f2f2;">
140
+ <th style="padding: 10px; text-align: left;">Item</th>
141
+ <th style="padding: 10px; text-align: right;">Qty</th>
142
+ <th style="padding: 10px; text-align: right;">Price</th>
143
+ </tr>
144
+ {{#items}}
145
+ <tr>
146
+ <td style="padding: 10px;">{{name}}</td>
147
+ <td style="padding: 10px; text-align: right;">{{quantity}}</td>
148
+ <td style="padding: 10px; text-align: right;">{{price}}</td>
149
+ </tr>
150
+ {{/items}}
151
+ </table>
152
+ <p style="margin-top: 20px;">
153
+ <a href="{{tracking_link}}">Track Your Order</a>
154
+ </p>
155
+ </body>
156
+ </html>
157
+ `,
158
+ },
159
+ });
160
+ console.log(`[TIMING] Create message templates: ${(performance.now() - templateStart).toFixed(2)}ms`);
161
+ console.log('Message templates created successfully');
162
+ // ==================== SEND EMAILS ====================
163
+ console.log('\n--- Sending Welcome Email ---');
164
+ const welcomeStart = performance.now();
165
+ const welcomeResult = await notifications.email({
166
+ product: 'ductape:rematch',
167
+ env: 'prd',
168
+ notification: 'smtp-notifications:welcome',
169
+ input: {
170
+ recipients: ['newuser@example.com'],
171
+ subject: {
172
+ company_name: 'Acme Inc',
173
+ user_name: 'John Doe',
174
+ },
175
+ template: {
176
+ user_name: 'John Doe',
177
+ company_name: 'Acme Inc',
178
+ username: 'johndoe',
179
+ email: 'newuser@example.com',
180
+ activation_link: 'https://acme.com/activate?token=abc123',
181
+ },
182
+ },
183
+ });
184
+ console.log(`[TIMING] Send welcome email: ${(performance.now() - welcomeStart).toFixed(2)}ms`);
185
+ console.log('Welcome email result:', JSON.stringify(welcomeResult, null, 2));
186
+ // Send password reset email
187
+ console.log('\n--- Sending Password Reset Email ---');
188
+ const resetStart = performance.now();
189
+ const resetResult = await notifications.email({
190
+ product: 'ductape:rematch',
191
+ env: 'prd',
192
+ notification: 'smtp-notifications:password-reset',
193
+ input: {
194
+ recipients: ['user@example.com'],
195
+ subject: {
196
+ company_name: 'Acme Inc',
197
+ },
198
+ template: {
199
+ user_name: 'John Doe',
200
+ company_name: 'Acme Inc',
201
+ reset_link: 'https://acme.com/reset?token=xyz789',
202
+ expiry_hours: '24',
203
+ },
204
+ },
205
+ });
206
+ console.log(`[TIMING] Send password reset email: ${(performance.now() - resetStart).toFixed(2)}ms`);
207
+ console.log('Password reset result:', JSON.stringify(resetResult, null, 2));
208
+ // Send order confirmation with multiple recipients
209
+ console.log('\n--- Sending Order Confirmation (Multiple Recipients) ---');
210
+ const orderStart = performance.now();
211
+ const orderResult = await notifications.email({
212
+ product: 'ductape:rematch',
213
+ env: 'prd',
214
+ notification: 'smtp-notifications:order-confirmation',
215
+ input: {
216
+ recipients: ['customer@example.com', 'orders@company.com'],
217
+ subject: {
218
+ order_id: 'ORD-12345',
219
+ },
220
+ template: {
221
+ customer_name: 'Jane Smith',
222
+ order_id: 'ORD-12345',
223
+ order_date: new Date().toLocaleDateString(),
224
+ order_total: '$149.99',
225
+ items: [
226
+ { name: 'Widget Pro', quantity: 2, price: '$49.99' },
227
+ { name: 'Gadget Plus', quantity: 1, price: '$50.01' },
228
+ ],
229
+ tracking_link: 'https://acme.com/track/ORD-12345',
230
+ },
231
+ },
232
+ });
233
+ console.log(`[TIMING] Send order confirmation: ${(performance.now() - orderStart).toFixed(2)}ms`);
234
+ console.log('Order confirmation result:', JSON.stringify(orderResult, null, 2));
235
+ // ==================== SEND WITH SESSION ====================
236
+ console.log('\n--- Sending Email with Session Context ---');
237
+ const sessionStart = performance.now();
238
+ const sessionResult = await notifications.email({
239
+ product: 'ductape:rematch',
240
+ env: 'prd',
241
+ notification: 'smtp-notifications:welcome',
242
+ input: {
243
+ recipients: ['authenticated-user@example.com'],
244
+ subject: {
245
+ company_name: 'Acme Inc',
246
+ user_name: 'Authenticated User',
247
+ },
248
+ template: {
249
+ user_name: 'Authenticated User',
250
+ company_name: 'Acme Inc',
251
+ username: 'authuser',
252
+ email: 'authenticated-user@example.com',
253
+ activation_link: 'https://acme.com/activate?token=session123',
254
+ },
255
+ },
256
+ session: 'user-session:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
257
+ });
258
+ console.log(`[TIMING] Send email with session: ${(performance.now() - sessionStart).toFixed(2)}ms`);
259
+ console.log('Session email result:', JSON.stringify(sessionResult, null, 2));
260
+ // ==================== SEND WITH CACHE ====================
261
+ console.log('\n--- Sending Email with Cache ---');
262
+ const cacheStart = performance.now();
263
+ const cacheResult = await notifications.email({
264
+ product: 'ductape:rematch',
265
+ env: 'prd',
266
+ notification: 'smtp-notifications:order-confirmation',
267
+ input: {
268
+ recipients: ['cached-user@example.com'],
269
+ subject: {
270
+ order_id: 'ORD-CACHED',
271
+ },
272
+ template: {
273
+ customer_name: 'Cache User',
274
+ order_id: 'ORD-CACHED',
275
+ order_date: new Date().toLocaleDateString(),
276
+ order_total: '$99.99',
277
+ items: [{ name: 'Cached Item', quantity: 1, price: '$99.99' }],
278
+ tracking_link: 'https://acme.com/track/ORD-CACHED',
279
+ },
280
+ },
281
+ cache: 'email-cache',
282
+ });
283
+ console.log(`[TIMING] Send email with cache: ${(performance.now() - cacheStart).toFixed(2)}ms`);
284
+ console.log('Cached email result:', JSON.stringify(cacheResult, null, 2));
285
+ // ==================== FETCH CONFIGURATIONS ====================
286
+ console.log('\n--- Fetching Notification Configurations ---');
287
+ const fetchStart = performance.now();
288
+ const notificationConfig = await notifications.fetch('ductape:rematch', 'smtp-notifications');
289
+ console.log(`[TIMING] Fetch notification config: ${(performance.now() - fetchStart).toFixed(2)}ms`);
290
+ console.log('Notification config:', JSON.stringify(notificationConfig, null, 2));
291
+ // List all notifications
292
+ console.log('\n--- Listing All Notifications ---');
293
+ const listStart = performance.now();
294
+ const allNotifications = await notifications.list('ductape:rematch');
295
+ console.log(`[TIMING] List notifications: ${(performance.now() - listStart).toFixed(2)}ms`);
296
+ console.log('All notifications:', allNotifications.map(n => {
297
+ var _a;
298
+ return ({
299
+ tag: n.tag,
300
+ name: n.name,
301
+ envsCount: (_a = n.envs) === null || _a === void 0 ? void 0 : _a.length,
302
+ });
303
+ }));
304
+ // List message templates
305
+ console.log('\n--- Listing Message Templates ---');
306
+ const listMsgStart = performance.now();
307
+ const messages = await notifications.messages.list('ductape:rematch', 'smtp-notifications');
308
+ console.log(`[TIMING] List message templates: ${(performance.now() - listMsgStart).toFixed(2)}ms`);
309
+ console.log('Message templates:', messages.map(m => ({
310
+ tag: m.tag,
311
+ name: m.name,
312
+ })));
313
+ // ==================== SUMMARY ====================
314
+ const totalTime = performance.now() - startTime;
315
+ console.log(`\n[TIMING SUMMARY]`);
316
+ console.log(` Total time: ${totalTime.toFixed(2)}ms`);
317
+ }
318
+ catch (error) {
319
+ console.error('Error in SMTP email operations:', error);
320
+ }
321
+ }
322
+ runSMTPTests();
323
+ //# sourceMappingURL=test.email.smtp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.email.smtp.js","sourceRoot":"","sources":["../../src/test/test.email.smtp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};