@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,331 @@
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
+ * Amazon Neptune Graph Database Tests
9
+ *
10
+ * Comprehensive tests for Amazon Neptune graph database operations:
11
+ * - Graph database creation/registration
12
+ * - Connection management
13
+ * - Node operations (create, find, update, delete)
14
+ * - Relationship operations (create, find, delete)
15
+ * - Graph traversal and neighborhood queries
16
+ * - Gremlin queries (Neptune's primary query language)
17
+ * - SPARQL queries (for RDF data)
18
+ * - Transactions
19
+ * - Statistics
20
+ * - Neptune-specific features (serverless, read replicas)
21
+ */
22
+ const { graphs } = index_1.default;
23
+ // Start timing
24
+ const startTime = performance.now();
25
+ console.log(`[${new Date().toISOString()}] Starting Amazon Neptune graph database operations...`);
26
+ async function runNeptuneTests() {
27
+ try {
28
+ // ==================== CREATE GRAPH DATABASE ====================
29
+ console.log('\n--- Creating Graph Database Configuration ---');
30
+ const createStart = performance.now();
31
+ // Create/register an Amazon Neptune graph database configuration
32
+ await graphs.create({
33
+ name: 'Neptune Knowledge Graph',
34
+ tag: 'neptune-graph',
35
+ type: 'neptune',
36
+ description: 'AWS Neptune graph database for e-commerce knowledge graph',
37
+ envs: [
38
+ {
39
+ slug: 'prd',
40
+ connection_url: process.env.NEPTUNE_ENDPOINT || 'wss://your-cluster.region.neptune.amazonaws.com:8182/gremlin',
41
+ region: process.env.AWS_REGION || 'us-east-1',
42
+ iam_auth: true,
43
+ },
44
+ {
45
+ slug: 'dev',
46
+ connection_url: process.env.NEPTUNE_DEV_ENDPOINT || 'wss://dev-cluster.region.neptune.amazonaws.com:8182/gremlin',
47
+ region: process.env.AWS_REGION || 'us-east-1',
48
+ iam_auth: true,
49
+ },
50
+ ],
51
+ }, 'ductape:rematch');
52
+ console.log(`[TIMING] Create graph config: ${(performance.now() - createStart).toFixed(2)}ms`);
53
+ console.log('Graph database configuration created successfully');
54
+ // ==================== CONNECT ====================
55
+ console.log('\n--- Connecting to Neptune ---');
56
+ const connectStart = performance.now();
57
+ const connection = await graphs.connect({
58
+ env: 'prd',
59
+ product: 'ductape:rematch',
60
+ graph: 'neptune-graph',
61
+ });
62
+ console.log(`[TIMING] Connect: ${(performance.now() - connectStart).toFixed(2)}ms`);
63
+ console.log('Neptune connection established:', connection);
64
+ // ==================== NODE OPERATIONS ====================
65
+ console.log('\n--- Creating Nodes ---');
66
+ // Create User nodes (Neptune uses vertices in Gremlin terminology)
67
+ const createNodeStart = performance.now();
68
+ const alice = await graphs.createNode({
69
+ labels: ['User'],
70
+ properties: {
71
+ userId: 'user-001',
72
+ name: 'Alice',
73
+ email: 'alice@example.com',
74
+ age: 28,
75
+ tier: 'premium',
76
+ created_at: new Date().toISOString(),
77
+ },
78
+ });
79
+ console.log(`[TIMING] Create node (Alice): ${(performance.now() - createNodeStart).toFixed(2)}ms`);
80
+ console.log('Created Alice:', JSON.stringify(alice, null, 2));
81
+ const bobStart = performance.now();
82
+ const bob = await graphs.createNode({
83
+ labels: ['User'],
84
+ properties: {
85
+ userId: 'user-002',
86
+ name: 'Bob',
87
+ email: 'bob@example.com',
88
+ age: 32,
89
+ tier: 'standard',
90
+ created_at: new Date().toISOString(),
91
+ },
92
+ });
93
+ console.log(`[TIMING] Create node (Bob): ${(performance.now() - bobStart).toFixed(2)}ms`);
94
+ console.log('Created Bob:', JSON.stringify(bob, null, 2));
95
+ // Create Product node
96
+ const productStart = performance.now();
97
+ const product = await graphs.createNode({
98
+ labels: ['Product'],
99
+ properties: {
100
+ productId: 'prod-001',
101
+ name: 'Premium Subscription',
102
+ category: 'subscription',
103
+ price: 99.99,
104
+ active: true,
105
+ },
106
+ });
107
+ console.log(`[TIMING] Create node (Product): ${(performance.now() - productStart).toFixed(2)}ms`);
108
+ console.log('Created Product:', JSON.stringify(product, null, 2));
109
+ // Create Category node
110
+ const categoryStart = performance.now();
111
+ const category = await graphs.createNode({
112
+ labels: ['Category'],
113
+ properties: {
114
+ categoryId: 'cat-001',
115
+ name: 'Software',
116
+ description: 'Software products and subscriptions',
117
+ },
118
+ });
119
+ console.log(`[TIMING] Create node (Category): ${(performance.now() - categoryStart).toFixed(2)}ms`);
120
+ console.log('Created Category:', JSON.stringify(category, null, 2));
121
+ // ==================== RELATIONSHIP OPERATIONS ====================
122
+ console.log('\n--- Creating Relationships ---');
123
+ // Create FOLLOWS relationship
124
+ const followsStart = performance.now();
125
+ const follows = await graphs.createRelationship({
126
+ type: 'FOLLOWS',
127
+ startNodeId: alice.node.id,
128
+ endNodeId: bob.node.id,
129
+ properties: {
130
+ since: new Date().toISOString(),
131
+ notifications: true,
132
+ },
133
+ });
134
+ console.log(`[TIMING] Create FOLLOWS: ${(performance.now() - followsStart).toFixed(2)}ms`);
135
+ console.log('Created follows:', JSON.stringify(follows, null, 2));
136
+ // Create PURCHASED relationship
137
+ const purchasedStart = performance.now();
138
+ const purchased = await graphs.createRelationship({
139
+ type: 'PURCHASED',
140
+ startNodeId: alice.node.id,
141
+ endNodeId: product.node.id,
142
+ properties: {
143
+ purchaseDate: new Date().toISOString(),
144
+ quantity: 1,
145
+ amount: 99.99,
146
+ },
147
+ });
148
+ console.log(`[TIMING] Create PURCHASED: ${(performance.now() - purchasedStart).toFixed(2)}ms`);
149
+ console.log('Created purchased:', JSON.stringify(purchased, null, 2));
150
+ // Create BELONGS_TO relationship
151
+ const belongsToStart = performance.now();
152
+ const belongsTo = await graphs.createRelationship({
153
+ type: 'BELONGS_TO',
154
+ startNodeId: product.node.id,
155
+ endNodeId: category.node.id,
156
+ properties: {
157
+ primary: true,
158
+ },
159
+ });
160
+ console.log(`[TIMING] Create BELONGS_TO: ${(performance.now() - belongsToStart).toFixed(2)}ms`);
161
+ console.log('Created belongs_to:', JSON.stringify(belongsTo, null, 2));
162
+ // Create VIEWED relationship
163
+ const viewedStart = performance.now();
164
+ await graphs.createRelationship({
165
+ type: 'VIEWED',
166
+ startNodeId: bob.node.id,
167
+ endNodeId: product.node.id,
168
+ properties: {
169
+ viewedAt: new Date().toISOString(),
170
+ duration: 120, // seconds
171
+ },
172
+ });
173
+ console.log(`[TIMING] Create VIEWED: ${(performance.now() - viewedStart).toFixed(2)}ms`);
174
+ // ==================== QUERY OPERATIONS ====================
175
+ console.log('\n--- Finding Nodes ---');
176
+ // Find all User nodes
177
+ const findStart = performance.now();
178
+ const users = await graphs.findNodes({
179
+ labels: ['User'],
180
+ limit: 10,
181
+ });
182
+ console.log(`[TIMING] Find nodes: ${(performance.now() - findStart).toFixed(2)}ms`);
183
+ console.log('Found users:', JSON.stringify(users, null, 2));
184
+ // Find premium users
185
+ const findPremiumStart = performance.now();
186
+ const premiumUsers = await graphs.findNodes({
187
+ labels: ['User'],
188
+ properties: { tier: 'premium' },
189
+ limit: 10,
190
+ });
191
+ console.log(`[TIMING] Find premium users: ${(performance.now() - findPremiumStart).toFixed(2)}ms`);
192
+ console.log('Found premium users:', JSON.stringify(premiumUsers, null, 2));
193
+ console.log('\n--- Finding Relationships ---');
194
+ // Find purchase relationships
195
+ const findRelStart = performance.now();
196
+ const purchases = await graphs.findRelationships({
197
+ types: ['PURCHASED'],
198
+ limit: 10,
199
+ });
200
+ console.log(`[TIMING] Find relationships: ${(performance.now() - findRelStart).toFixed(2)}ms`);
201
+ console.log('Found purchases:', JSON.stringify(purchases, null, 2));
202
+ // ==================== TRAVERSAL OPERATIONS ====================
203
+ console.log('\n--- Graph Traversal ---');
204
+ // Traverse from Alice to find connected nodes
205
+ const traverseStart = performance.now();
206
+ const traversalResult = await graphs.traverse({
207
+ startNodeId: alice.node.id,
208
+ direction: 'outgoing',
209
+ maxDepth: 3,
210
+ relationshipTypes: ['FOLLOWS', 'PURCHASED'],
211
+ });
212
+ console.log(`[TIMING] Traverse: ${(performance.now() - traverseStart).toFixed(2)}ms`);
213
+ console.log('Traversal result:', JSON.stringify(traversalResult, null, 2));
214
+ // Get neighborhood
215
+ console.log('\n--- Get Neighborhood ---');
216
+ const neighborStart = performance.now();
217
+ const neighborhood = await graphs.getNeighborhood({
218
+ nodeId: alice.node.id,
219
+ depth: 2,
220
+ });
221
+ console.log(`[TIMING] Get neighborhood: ${(performance.now() - neighborStart).toFixed(2)}ms`);
222
+ console.log('Neighborhood:', JSON.stringify(neighborhood, null, 2));
223
+ // ==================== COUNTING ====================
224
+ console.log('\n--- Counting ---');
225
+ const countStart = performance.now();
226
+ const nodeCount = await graphs.countNodes(['User']);
227
+ console.log(`[TIMING] Count nodes: ${(performance.now() - countStart).toFixed(2)}ms`);
228
+ console.log('User count:', nodeCount);
229
+ const relCountStart = performance.now();
230
+ const relCount = await graphs.countRelationships(['PURCHASED']);
231
+ console.log(`[TIMING] Count relationships: ${(performance.now() - relCountStart).toFixed(2)}ms`);
232
+ console.log('PURCHASED count:', relCount);
233
+ // ==================== STATISTICS ====================
234
+ console.log('\n--- Graph Statistics ---');
235
+ const statsStart = performance.now();
236
+ const stats = await graphs.getStatistics();
237
+ console.log(`[TIMING] Get statistics: ${(performance.now() - statsStart).toFixed(2)}ms`);
238
+ console.log('Graph statistics:', JSON.stringify(stats, null, 2));
239
+ // ==================== UPDATE OPERATIONS ====================
240
+ console.log('\n--- Updating Node ---');
241
+ const updateStart = performance.now();
242
+ const updatedAlice = await graphs.updateNode({
243
+ id: alice.node.id,
244
+ properties: {
245
+ tier: 'enterprise',
246
+ lastLogin: new Date().toISOString(),
247
+ updated_at: new Date().toISOString(),
248
+ },
249
+ });
250
+ console.log(`[TIMING] Update node: ${(performance.now() - updateStart).toFixed(2)}ms`);
251
+ console.log('Updated Alice:', JSON.stringify(updatedAlice, null, 2));
252
+ // ==================== RAW GREMLIN QUERIES ====================
253
+ console.log('\n--- Raw Gremlin Query ---');
254
+ // Neptune uses Gremlin query language
255
+ const queryStart = performance.now();
256
+ const queryResult = await graphs.query("g.V().hasLabel('User').has('tier', tier).valueMap(true)", { tier: 'enterprise' });
257
+ console.log(`[TIMING] Raw query: ${(performance.now() - queryStart).toFixed(2)}ms`);
258
+ console.log('Query result:', JSON.stringify(queryResult, null, 2));
259
+ // Product recommendation query
260
+ console.log('\n--- Recommendation Query ---');
261
+ const recStart = performance.now();
262
+ const recommendations = await graphs.query(`g.V().hasLabel('User').has('userId', userId)
263
+ .out('FOLLOWS')
264
+ .out('PURCHASED')
265
+ .dedup()
266
+ .valueMap(true)`, { userId: 'user-001' });
267
+ console.log(`[TIMING] Recommendation query: ${(performance.now() - recStart).toFixed(2)}ms`);
268
+ console.log('Recommendations:', JSON.stringify(recommendations, null, 2));
269
+ // ==================== TRANSACTIONS ====================
270
+ console.log('\n--- Transaction Test ---');
271
+ const txStart = performance.now();
272
+ try {
273
+ const txResult = await graphs.executeTransaction(async (tx) => {
274
+ const charlie = await graphs.createNode({
275
+ labels: ['User'],
276
+ properties: {
277
+ userId: 'user-003',
278
+ name: 'Charlie',
279
+ email: 'charlie@example.com',
280
+ age: 25,
281
+ tier: 'standard',
282
+ },
283
+ }, tx);
284
+ await graphs.createRelationship({
285
+ type: 'FOLLOWS',
286
+ startNodeId: charlie.node.id,
287
+ endNodeId: alice.node.id,
288
+ properties: {
289
+ since: new Date().toISOString(),
290
+ },
291
+ }, tx);
292
+ await graphs.createRelationship({
293
+ type: 'VIEWED',
294
+ startNodeId: charlie.node.id,
295
+ endNodeId: product.node.id,
296
+ properties: {
297
+ viewedAt: new Date().toISOString(),
298
+ duration: 60,
299
+ },
300
+ }, tx);
301
+ return charlie;
302
+ });
303
+ console.log(`[TIMING] Transaction: ${(performance.now() - txStart).toFixed(2)}ms`);
304
+ console.log('Transaction result:', JSON.stringify(txResult, null, 2));
305
+ // Clean up Charlie
306
+ await graphs.deleteNode({ id: txResult.node.id, detachRelationships: true });
307
+ }
308
+ catch (error) {
309
+ console.log('Transaction test skipped or failed:', error);
310
+ }
311
+ // ==================== CLEANUP ====================
312
+ console.log('\n--- Cleanup ---');
313
+ const cleanupStart = performance.now();
314
+ // Delete nodes (detaching relationships)
315
+ await graphs.deleteNode({ id: category.node.id, detachRelationships: true });
316
+ await graphs.deleteNode({ id: product.node.id, detachRelationships: true });
317
+ await graphs.deleteNode({ id: alice.node.id, detachRelationships: true });
318
+ await graphs.deleteNode({ id: bob.node.id, detachRelationships: true });
319
+ console.log(`[TIMING] Cleanup: ${(performance.now() - cleanupStart).toFixed(2)}ms`);
320
+ console.log('Test nodes deleted.');
321
+ // ==================== SUMMARY ====================
322
+ const totalTime = performance.now() - startTime;
323
+ console.log(`\n[TIMING SUMMARY]`);
324
+ console.log(` Total time: ${totalTime.toFixed(2)}ms`);
325
+ }
326
+ catch (err) {
327
+ console.error('Error in Neptune operations:', err);
328
+ }
329
+ }
330
+ runNeptuneTests();
331
+ //# sourceMappingURL=test.graph.neptune.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.graph.neptune.js","sourceRoot":"","sources":["../../src/test/test.graph.neptune.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,198 @@
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
+ const { notifications } = index_1.default;
8
+ // Start timing
9
+ const startTime = performance.now();
10
+ console.log(`[${new Date().toISOString()}] Starting notification operations...`);
11
+ async function runNotificationTests() {
12
+ try {
13
+ // Test sending push notification
14
+ console.log('\n--- Sending Push Notification ---');
15
+ const pushStart = performance.now();
16
+ const pushResult = await notifications.push({
17
+ product: 'ductape:rematch',
18
+ env: 'prd',
19
+ notification: 'alerts:welcome-message',
20
+ input: {
21
+ device_tokens: ['test-device-token-1', 'test-device-token-2'],
22
+ title: { name: 'John' },
23
+ body: { message: 'Welcome to Ductape!' },
24
+ data: { action: 'open_home', screen: 'dashboard' },
25
+ },
26
+ });
27
+ console.log(`[TIMING] Push notification: ${(performance.now() - pushStart).toFixed(2)}ms`);
28
+ console.log('Push result:', JSON.stringify(pushResult, null, 2));
29
+ // Test sending email
30
+ console.log('\n--- Sending Email ---');
31
+ const emailStart = performance.now();
32
+ const emailResult = await notifications.email({
33
+ product: 'ductape:rematch',
34
+ env: 'prd',
35
+ notification: 'emails:order-confirmation',
36
+ input: {
37
+ recipients: ['user@example.com', 'admin@example.com'],
38
+ subject: { orderId: '12345' },
39
+ template: {
40
+ customerName: 'John Doe',
41
+ orderTotal: '$99.99',
42
+ orderDate: new Date().toLocaleDateString(),
43
+ items: [
44
+ { name: 'Product A', quantity: 2, price: '$49.99' },
45
+ { name: 'Product B', quantity: 1, price: '$50.00' },
46
+ ],
47
+ },
48
+ },
49
+ });
50
+ console.log(`[TIMING] Email: ${(performance.now() - emailStart).toFixed(2)}ms`);
51
+ console.log('Email result:', JSON.stringify(emailResult, null, 2));
52
+ // Test sending SMS
53
+ console.log('\n--- Sending SMS ---');
54
+ const smsStart = performance.now();
55
+ const smsResult = await notifications.sms({
56
+ product: 'ductape:rematch',
57
+ env: 'prd',
58
+ notification: 'sms:verification',
59
+ input: {
60
+ recipients: ['+1234567890', '+0987654321'],
61
+ body: { code: '123456' },
62
+ },
63
+ });
64
+ console.log(`[TIMING] SMS: ${(performance.now() - smsStart).toFixed(2)}ms`);
65
+ console.log('SMS result:', JSON.stringify(smsResult, null, 2));
66
+ // Test sending callback (webhook)
67
+ console.log('\n--- Sending Callback (Webhook) ---');
68
+ const callbackStart = performance.now();
69
+ const callbackResult = await notifications.callback({
70
+ product: 'ductape:rematch',
71
+ env: 'prd',
72
+ notification: 'webhooks:order-created',
73
+ input: {
74
+ body: {
75
+ orderId: '12345',
76
+ status: 'created',
77
+ timestamp: Date.now(),
78
+ customer: {
79
+ id: 'cust-001',
80
+ email: 'customer@example.com',
81
+ },
82
+ },
83
+ headers: {
84
+ 'X-Custom-Header': 'custom-value',
85
+ 'X-Webhook-Signature': 'sha256=abc123',
86
+ },
87
+ query: {
88
+ source: 'ductape',
89
+ version: '1.0',
90
+ },
91
+ },
92
+ });
93
+ console.log(`[TIMING] Callback: ${(performance.now() - callbackStart).toFixed(2)}ms`);
94
+ console.log('Callback result:', JSON.stringify(callbackResult, null, 2));
95
+ // Test multi-channel notification
96
+ console.log('\n--- Multi-Channel Notification ---');
97
+ const multiStart = performance.now();
98
+ const multiResult = await notifications.send({
99
+ product: 'ductape:rematch',
100
+ env: 'prd',
101
+ notification: 'alerts:order-placed',
102
+ push_notification: {
103
+ device_tokens: ['token1', 'token2'],
104
+ title: { order: 'New Order' },
105
+ body: { message: 'Order #12345 has been placed' },
106
+ },
107
+ email: {
108
+ recipients: ['user@example.com'],
109
+ subject: { orderId: '12345' },
110
+ template: { orderDetails: 'Your order is confirmed.' },
111
+ },
112
+ sms: {
113
+ recipients: ['+1234567890'],
114
+ body: { message: 'Order #12345 confirmed!' },
115
+ },
116
+ });
117
+ console.log(`[TIMING] Multi-channel: ${(performance.now() - multiStart).toFixed(2)}ms`);
118
+ console.log('Multi-channel result:', JSON.stringify(multiResult, null, 2));
119
+ // Test scheduled notification
120
+ console.log('\n--- Scheduled Notification ---');
121
+ const scheduleStart = performance.now();
122
+ const scheduledResult = await notifications.dispatch({
123
+ product: 'ductape:rematch',
124
+ env: 'prd',
125
+ notification: 'reminders:payment-due',
126
+ push_notification: {
127
+ device_tokens: ['token1'],
128
+ title: { name: 'Payment' },
129
+ body: { message: 'Your payment is due tomorrow' },
130
+ },
131
+ schedule: {
132
+ start_at: Date.now() + 86400000, // 24 hours from now
133
+ },
134
+ retries: 3,
135
+ });
136
+ console.log(`[TIMING] Schedule notification: ${(performance.now() - scheduleStart).toFixed(2)}ms`);
137
+ console.log('Scheduled result:', JSON.stringify(scheduledResult, null, 2));
138
+ // Test recurring notification
139
+ console.log('\n--- Recurring Notification ---');
140
+ const recurringStart = performance.now();
141
+ const recurringResult = await notifications.dispatch({
142
+ product: 'ductape:rematch',
143
+ env: 'prd',
144
+ notification: 'reminders:daily-digest',
145
+ email: {
146
+ recipients: ['user@example.com'],
147
+ subject: { date: new Date().toLocaleDateString() },
148
+ template: { summary: 'Your daily activity summary' },
149
+ },
150
+ schedule: {
151
+ cron: '0 9 * * *', // Every day at 9 AM
152
+ tz: 'America/New_York',
153
+ },
154
+ });
155
+ console.log(`[TIMING] Recurring notification: ${(performance.now() - recurringStart).toFixed(2)}ms`);
156
+ console.log('Recurring result:', JSON.stringify(recurringResult, null, 2));
157
+ // Test notification with session context
158
+ console.log('\n--- Notification with Session ---');
159
+ const sessionNotifStart = performance.now();
160
+ const sessionNotifResult = await notifications.push({
161
+ product: 'ductape:rematch',
162
+ env: 'prd',
163
+ notification: 'alerts:account-activity',
164
+ input: {
165
+ device_tokens: ['user-device-token'],
166
+ title: { event: 'Login' },
167
+ body: { message: 'New login detected from New York' },
168
+ },
169
+ session: 'user-session:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
170
+ });
171
+ console.log(`[TIMING] Session notification: ${(performance.now() - sessionNotifStart).toFixed(2)}ms`);
172
+ console.log('Session notification result:', JSON.stringify(sessionNotifResult, null, 2));
173
+ // Test notification with cache
174
+ console.log('\n--- Notification with Cache ---');
175
+ const cacheNotifStart = performance.now();
176
+ const cacheNotifResult = await notifications.email({
177
+ product: 'ductape:rematch',
178
+ env: 'prd',
179
+ notification: 'emails:weekly-report',
180
+ input: {
181
+ recipients: ['user@example.com'],
182
+ subject: { week: '52' },
183
+ template: { reportData: 'Weekly statistics' },
184
+ },
185
+ cache: 'notifications-cache',
186
+ });
187
+ console.log(`[TIMING] Cached notification: ${(performance.now() - cacheNotifStart).toFixed(2)}ms`);
188
+ console.log('Cached notification result:', JSON.stringify(cacheNotifResult, null, 2));
189
+ const totalTime = performance.now() - startTime;
190
+ console.log(`\n[TIMING SUMMARY]`);
191
+ console.log(` Total time: ${totalTime.toFixed(2)}ms`);
192
+ }
193
+ catch (error) {
194
+ console.error('Error in notification operations:', error);
195
+ }
196
+ }
197
+ runNotificationTests();
198
+ //# sourceMappingURL=test.notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.notifications.js","sourceRoot":"","sources":["../../src/test/test.notifications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};