@ductape/sdk 0.1.92 → 0.1.95

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 (37) hide show
  1. package/dist/brokers/brokers.service.d.ts +1 -0
  2. package/dist/brokers/brokers.service.js +16 -2
  3. package/dist/brokers/brokers.service.js.map +1 -1
  4. package/dist/brokers/types/index.d.ts +6 -2
  5. package/dist/brokers/utils/providers/azure-servicebus.service.d.ts +6 -3
  6. package/dist/brokers/utils/providers/azure-servicebus.service.js +25 -4
  7. package/dist/brokers/utils/providers/azure-servicebus.service.js.map +1 -1
  8. package/dist/brokers/utils/providers/google-pubsub.service.d.ts +3 -3
  9. package/dist/brokers/utils/providers/google-pubsub.service.js +22 -9
  10. package/dist/brokers/utils/providers/google-pubsub.service.js.map +1 -1
  11. package/dist/brokers/utils/providers/kafka.service.d.ts +3 -3
  12. package/dist/brokers/utils/providers/kafka.service.js +14 -3
  13. package/dist/brokers/utils/providers/kafka.service.js.map +1 -1
  14. package/dist/brokers/utils/providers/nats.service.d.ts +3 -3
  15. package/dist/brokers/utils/providers/nats.service.js +4 -4
  16. package/dist/brokers/utils/providers/nats.service.js.map +1 -1
  17. package/dist/brokers/utils/providers/rabbitmq.service.d.ts +4 -3
  18. package/dist/brokers/utils/providers/rabbitmq.service.js +14 -8
  19. package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -1
  20. package/dist/brokers/utils/providers/redis.service.d.ts +3 -3
  21. package/dist/brokers/utils/providers/redis.service.js +4 -4
  22. package/dist/brokers/utils/providers/redis.service.js.map +1 -1
  23. package/dist/cloud/types/cloud.types.d.ts +2 -2
  24. package/dist/index.d.ts +16 -0
  25. package/dist/index.js +18 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/notifications/index.d.ts +1 -1
  28. package/dist/notifications/index.js.map +1 -1
  29. package/dist/notifications/types/notifications.types.d.ts +38 -0
  30. package/dist/processor/services/processor.service.js +12 -2
  31. package/dist/processor/services/processor.service.js.map +1 -1
  32. package/dist/products/validators/joi-validators/create.productNotification.validator.js +8 -2
  33. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
  34. package/dist/tsconfig.tsbuildinfo +1 -1
  35. package/dist/types/processor.types.d.ts +2 -0
  36. package/dist/types/processor.types.js.map +1 -1
  37. package/package.json +1 -1
@@ -83,26 +83,28 @@ class RabbitMQService {
83
83
  }
84
84
  }
85
85
  }
86
- async publish(topic, message) {
86
+ async publish(topic, message, options = {}) {
87
87
  if (!this.channel) {
88
88
  await this.connect();
89
89
  }
90
90
  try {
91
- await this.channel.assertQueue(topic, { durable: true });
91
+ const queue = this.logicalQueue(topic, options.logicalTopic);
92
+ await this.channel.assertQueue(queue, { durable: true });
92
93
  const messageBuffer = Buffer.from(JSON.stringify(message));
93
- this.channel.sendToQueue(topic, messageBuffer, { persistent: true });
94
+ this.channel.sendToQueue(queue, messageBuffer, { persistent: true });
94
95
  }
95
96
  catch (error) {
96
97
  throw error;
97
98
  }
98
99
  }
99
- async subscribe(topic, callback) {
100
+ async subscribe(topic, callback, options = {}) {
100
101
  if (!this.channel) {
101
102
  await this.connect();
102
103
  }
103
104
  try {
104
- await this.channel.assertQueue(topic, { durable: true });
105
- this.channel.consume(topic, async (msg) => {
105
+ const queue = this.logicalQueue(topic, options.logicalTopic);
106
+ await this.channel.assertQueue(queue, { durable: true });
107
+ this.channel.consume(queue, async (msg) => {
106
108
  if (msg) {
107
109
  try {
108
110
  const content = JSON.parse(msg.content.toString());
@@ -110,8 +112,7 @@ class RabbitMQService {
110
112
  this.channel.ack(msg);
111
113
  }
112
114
  catch (error) {
113
- // Note: Message will not be acked, allowing redelivery
114
- throw error;
115
+ this.channel.nack(msg, false, true);
115
116
  }
116
117
  }
117
118
  });
@@ -120,6 +121,11 @@ class RabbitMQService {
120
121
  throw error;
121
122
  }
122
123
  }
124
+ logicalQueue(physicalQueue, logicalTopic) {
125
+ if (!logicalTopic || physicalQueue === logicalTopic)
126
+ return physicalQueue;
127
+ return `${physicalQueue}-${logicalTopic}`.replace(/[^a-zA-Z0-9._:-]/g, '-');
128
+ }
123
129
  async disconnect() {
124
130
  try {
125
131
  if (this.channel) {
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq.service.js","sourceRoot":"","sources":["../../../../src/brokers/utils/providers/rabbitmq.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rabbitmq.service.js","sourceRoot":"","sources":["../../../../src/brokers/utils/providers/rabbitmq.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IMessageBrokerService } from '../../types';
1
+ import type { IBrokerMessageRoutingOptions, IMessageBrokerService } from '../../types';
2
2
  export declare class RedisService implements IMessageBrokerService {
3
3
  private config;
4
4
  private client;
@@ -12,7 +12,7 @@ export declare class RedisService implements IMessageBrokerService {
12
12
  });
13
13
  private loadRedis;
14
14
  connect(): Promise<void>;
15
- publish(topic: string, message: object): Promise<void>;
16
- subscribe(topic: string, callback: (message: object) => Promise<void>): Promise<void>;
15
+ publish(topic: string, message: object, options?: IBrokerMessageRoutingOptions): Promise<void>;
16
+ subscribe(topic: string, callback: (message: object) => Promise<void>, options?: IBrokerMessageRoutingOptions): Promise<void>;
17
17
  disconnect(): Promise<void>;
18
18
  }
@@ -58,23 +58,23 @@ class RedisService {
58
58
  await this.client.connect();
59
59
  await this.subscriber.connect();
60
60
  }
61
- async publish(topic, message) {
61
+ async publish(topic, message, options = {}) {
62
62
  if (!this.isServer) {
63
63
  throw new Error('RedisService can only be used in a server environment');
64
64
  }
65
65
  if (!this.client) {
66
66
  await this.connect();
67
67
  }
68
- await this.client.publish(topic, JSON.stringify(message));
68
+ await this.client.publish(options.logicalTopic || topic, JSON.stringify(message));
69
69
  }
70
- async subscribe(topic, callback) {
70
+ async subscribe(topic, callback, options = {}) {
71
71
  if (!this.isServer) {
72
72
  throw new Error('RedisService can only be used in a server environment');
73
73
  }
74
74
  if (!this.subscriber) {
75
75
  await this.connect();
76
76
  }
77
- await this.subscriber.subscribe(topic, async (message) => {
77
+ await this.subscriber.subscribe(options.logicalTopic || topic, async (message) => {
78
78
  await callback(JSON.parse(message));
79
79
  });
80
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../../src/brokers/utils/providers/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAa,YAAY;IAKvB,YAAoB,MAA2E;QAA3E,WAAM,GAAN,MAAM,CAAqE;QAC7F,IAAI,CAAC,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAC1D,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAe;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAa,EACb,QAA4C;QAE5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;YAC/D,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AArED,oCAqEC"}
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../../src/brokers/utils/providers/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAa,YAAY;IAKvB,YAAoB,MAA2E;QAA3E,WAAM,GAAN,MAAM,CAAqE;QAC7F,IAAI,CAAC,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAC1D,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAe,EAAE,UAAwC,EAAE;QACtF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAa,EACb,QAA4C,EAC5C,UAAwC,EAAE;QAE1C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,KAAK,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;YACvF,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AAtED,oCAsEC"}
@@ -8,7 +8,7 @@ export type CloudAuthMode = 'iam_role' | 'oauth' | 'service_principal' | 'worklo
8
8
  /** Connection lifecycle status */
9
9
  export type CloudConnectionStatus = 'pending' | 'active' | 'error' | 'revoked';
10
10
  /** Scopes gate which resource types can be listed/imported */
11
- export type CloudConnectionScope = 'storage' | 'broker' | 'database' | 'graph' | 'vector' | 'cache';
11
+ export type CloudConnectionScope = 'storage' | 'broker' | 'database' | 'graph' | 'vector' | 'cache' | 'notifications';
12
12
  /** Workspace cloud connection record */
13
13
  export interface ICloudConnection {
14
14
  id: string;
@@ -139,7 +139,7 @@ export interface IValidateCloudConnectionResult {
139
139
  tested_at?: string;
140
140
  }
141
141
  /** Cloud resource kinds exposed by the connector */
142
- export type CloudResourceService = 's3' | 'sqs' | 'sns' | 'gcs' | 'pubsub' | 'blob' | 'servicebus' | 'rds' | 'postgresql' | 'cloudsql' | 'dynamodb' | 'keyspaces' | 'neptune' | 'cosmos-gremlin' | 'opensearch' | 'azure-search' | 'spanner-graph' | 'vertex-vector-search' | 'pinecone' | 'atlas-cluster' | 'aura-instance';
142
+ export type CloudResourceService = 's3' | 'sqs' | 'sns' | 'gcs' | 'pubsub' | 'firebase' | 'blob' | 'servicebus' | 'rds' | 'postgresql' | 'cloudsql' | 'dynamodb' | 'keyspaces' | 'neptune' | 'cosmos-gremlin' | 'opensearch' | 'azure-search' | 'spanner-graph' | 'vertex-vector-search' | 'pinecone' | 'atlas-cluster' | 'aura-instance';
143
143
  export interface ICloudResource {
144
144
  id: string;
145
145
  name: string;
package/dist/index.d.ts CHANGED
@@ -1586,6 +1586,22 @@ export default class Ductape implements IDuctape {
1586
1586
  };
1587
1587
  }>;
1588
1588
  };
1589
+ slack: {
1590
+ send: (options: import("./notifications").ISlackOptions) => Promise<{
1591
+ process_id: string;
1592
+ output: {
1593
+ sent: boolean;
1594
+ };
1595
+ }>;
1596
+ };
1597
+ discord: {
1598
+ send: (options: import("./notifications").IDiscordOptions) => Promise<{
1599
+ process_id: string;
1600
+ output: {
1601
+ sent: boolean;
1602
+ };
1603
+ }>;
1604
+ };
1589
1605
  /**
1590
1606
  * Sends a notification immediately using the notification processor.
1591
1607
  * @param {INotificationProcessorInput} data - The notification processor input.
package/dist/index.js CHANGED
@@ -1988,6 +1988,24 @@ class Ductape {
1988
1988
  });
1989
1989
  },
1990
1990
  },
1991
+ slack: {
1992
+ send: async (options) => {
1993
+ const processorService = await this.createNewProcessor();
1994
+ const { product, env, notification, input, session, cache } = this.mergeRuntime(options);
1995
+ return processorService.processNotification({
1996
+ product, env, event: notification, input: { slack: input }, session, cache,
1997
+ });
1998
+ },
1999
+ },
2000
+ discord: {
2001
+ send: async (options) => {
2002
+ const processorService = await this.createNewProcessor();
2003
+ const { product, env, notification, input, session, cache } = this.mergeRuntime(options);
2004
+ return processorService.processNotification({
2005
+ product, env, event: notification, input: { discord: input }, session, cache,
2006
+ });
2007
+ },
2008
+ },
1991
2009
  /**
1992
2010
  * Sends a notification immediately using the notification processor.
1993
2011
  * @param {INotificationProcessorInput} data - The notification processor input.