@webda/azure 0.0.0-stage → 4.0.0-beta.14

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 (68) hide show
  1. package/LICENSE +166 -0
  2. package/README.md +248 -2
  3. package/lib/auth.d.ts +36 -0
  4. package/lib/auth.d.ts.map +1 -0
  5. package/lib/auth.js +70 -0
  6. package/lib/auth.js.map +1 -0
  7. package/lib/deployers/arm.service.d.ts +177 -0
  8. package/lib/deployers/arm.service.d.ts.map +1 -0
  9. package/lib/deployers/arm.service.js +307 -0
  10. package/lib/deployers/arm.service.js.map +1 -0
  11. package/lib/deployers/containerapps.service.d.ts +186 -0
  12. package/lib/deployers/containerapps.service.d.ts.map +1 -0
  13. package/lib/deployers/containerapps.service.js +482 -0
  14. package/lib/deployers/containerapps.service.js.map +1 -0
  15. package/lib/deployers/functions-entrypoint.d.ts +60 -0
  16. package/lib/deployers/functions-entrypoint.d.ts.map +1 -0
  17. package/lib/deployers/functions-entrypoint.js +78 -0
  18. package/lib/deployers/functions-entrypoint.js.map +1 -0
  19. package/lib/deployers/functions.service.d.ts +96 -0
  20. package/lib/deployers/functions.service.d.ts.map +1 -0
  21. package/lib/deployers/functions.service.js +340 -0
  22. package/lib/deployers/functions.service.js.map +1 -0
  23. package/lib/deployers/functionspackager.service.d.ts +82 -0
  24. package/lib/deployers/functionspackager.service.d.ts.map +1 -0
  25. package/lib/deployers/functionspackager.service.js +157 -0
  26. package/lib/deployers/functionspackager.service.js.map +1 -0
  27. package/lib/index.d.ts +15 -0
  28. package/lib/index.d.ts.map +1 -0
  29. package/lib/index.js +18 -0
  30. package/lib/index.js.map +1 -0
  31. package/lib/services/azure-parameters.d.ts +56 -0
  32. package/lib/services/azure-parameters.d.ts.map +1 -0
  33. package/lib/services/azure-parameters.js +43 -0
  34. package/lib/services/azure-parameters.js.map +1 -0
  35. package/lib/services/blob.service.d.ts +196 -0
  36. package/lib/services/blob.service.d.ts.map +1 -0
  37. package/lib/services/blob.service.js +450 -0
  38. package/lib/services/blob.service.js.map +1 -0
  39. package/lib/services/contributors.d.ts +50 -0
  40. package/lib/services/contributors.d.ts.map +1 -0
  41. package/lib/services/contributors.js +2 -0
  42. package/lib/services/contributors.js.map +1 -0
  43. package/lib/services/cosmos.service.d.ts +253 -0
  44. package/lib/services/cosmos.service.d.ts.map +1 -0
  45. package/lib/services/cosmos.service.js +566 -0
  46. package/lib/services/cosmos.service.js.map +1 -0
  47. package/lib/services/functionserver.service.d.ts +51 -0
  48. package/lib/services/functionserver.service.d.ts.map +1 -0
  49. package/lib/services/functionserver.service.js +232 -0
  50. package/lib/services/functionserver.service.js.map +1 -0
  51. package/lib/services/keyvault.service.d.ts +106 -0
  52. package/lib/services/keyvault.service.d.ts.map +1 -0
  53. package/lib/services/keyvault.service.js +228 -0
  54. package/lib/services/keyvault.service.js.map +1 -0
  55. package/lib/services/monitorlogger.service.d.ts +117 -0
  56. package/lib/services/monitorlogger.service.d.ts.map +1 -0
  57. package/lib/services/monitorlogger.service.js +149 -0
  58. package/lib/services/monitorlogger.service.js.map +1 -0
  59. package/lib/services/servicebus.service.d.ts +224 -0
  60. package/lib/services/servicebus.service.d.ts.map +1 -0
  61. package/lib/services/servicebus.service.js +351 -0
  62. package/lib/services/servicebus.service.js.map +1 -0
  63. package/lib/template.d.ts +68 -0
  64. package/lib/template.d.ts.map +1 -0
  65. package/lib/template.js +74 -0
  66. package/lib/template.js.map +1 -0
  67. package/package.json +77 -3
  68. package/webda.module.json +1891 -0
@@ -0,0 +1,117 @@
1
+ import { LogsIngestionClient } from "@azure/monitor-ingestion";
2
+ import { Service } from "@webda/core";
3
+ import { WorkerLogLevel, WorkerMessage } from "@webda/workout";
4
+ import { AzureParameters } from "./azure-parameters.js";
5
+ /** Azure Monitor Logs Ingestion settings. */
6
+ export declare class AzureMonitorLoggerParameters extends AzureParameters {
7
+ /**
8
+ * Endpoint
9
+ */
10
+ endpoint: string;
11
+ /**
12
+ * Rule ID
13
+ */
14
+ ruleId: string;
15
+ /**
16
+ * Stream name
17
+ */
18
+ streamName: string;
19
+ /**
20
+ * Log level
21
+ */
22
+ logLevel: WorkerLogLevel;
23
+ /**
24
+ * Batch size
25
+ */
26
+ batchSize: number;
27
+ /**
28
+ * Flush interval
29
+ */
30
+ flushInterval: number;
31
+ /**
32
+ * Max buffered logs
33
+ */
34
+ maxBufferedLogs: number;
35
+ }
36
+ /** Columns declared in the Data Collection Rule's stream. */
37
+ export interface AzureLogRecord extends Record<string, unknown> {
38
+ /**
39
+ * Time generated
40
+ */
41
+ TimeGenerated: string;
42
+ /**
43
+ * Level
44
+ */
45
+ Level: WorkerLogLevel;
46
+ /**
47
+ * Message
48
+ */
49
+ Message: string;
50
+ }
51
+ /** Forward Webda logs to a custom Azure Monitor table.
52
+ * @WebdaModda
53
+ */
54
+ export declare class AzureMonitorLogger extends Service<AzureMonitorLoggerParameters> {
55
+ /**
56
+ * Parameters
57
+ */
58
+ static Parameters: typeof AzureMonitorLoggerParameters;
59
+ /**
60
+ * Client
61
+ */
62
+ protected client: LogsIngestionClient;
63
+ /**
64
+ * Buffer
65
+ */
66
+ protected buffer: AzureLogRecord[];
67
+ /**
68
+ * Sending
69
+ */
70
+ protected sending?: Promise<void>;
71
+ /**
72
+ * Timer
73
+ */
74
+ protected timer?: ReturnType<typeof setInterval>;
75
+ /**
76
+ * Message listener
77
+ */
78
+ protected messageListener?: (message: WorkerMessage) => void;
79
+ /**
80
+ * Result listener off
81
+ */
82
+ protected resultListenerOff?: () => void;
83
+ /** Number of records dropped because the bounded buffer was full. */
84
+ droppedLogs: number;
85
+ /** Last delivery error, available to health checks without recursively logging it. */
86
+ lastDeliveryFailed: boolean;
87
+ /**
88
+ * Perform init.
89
+ * @override
90
+ */
91
+ init(): Promise<this>;
92
+ /**
93
+ * Buffer one record. SecretString values retain their masked representation.
94
+ * @param level - Worker log level
95
+ * @param args - Log arguments
96
+ */
97
+ _log(level: WorkerLogLevel, ...args: unknown[]): void;
98
+ /**
99
+ * Serialize flushes; failed records stay at the front for the next scheduled retry.
100
+ * @returns Completion of the current flush attempt
101
+ */
102
+ sendLogs(): Promise<void>;
103
+ /**
104
+ * Deliver buffered records in bounded batches.
105
+ */
106
+ protected flush(): Promise<void>;
107
+ /**
108
+ * Detach log forwarding and stop scheduled flushing.
109
+ */
110
+ protected removeListeners(): void;
111
+ /**
112
+ * Perform stop.
113
+ * @override
114
+ */
115
+ stop(): Promise<void>;
116
+ }
117
+ //# sourceMappingURL=monitorlogger.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitorlogger.service.d.ts","sources":["../../src/services/monitorlogger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAA6B,MAAM,aAAa,CAAC;AACjE,OAAO,EAA8B,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE3F,OAAO,EAAE,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAE5E,6CAA6C;AAC7C,qBAAa,4BAA6B,SAAQ,eAAe;IAC/D;;OAEG;IACH,QAAQ,EAAG,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,EAAG,MAAM,CAAC;IAChB;;OAEG;IACH,UAAU,EAAG,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAU;IAClC;;OAEG;IACH,SAAS,SAAO;IAChB;;OAEG;IACH,aAAa,SAAQ;IACrB;;OAEG;IACH,eAAe,SAAS;CACzB;AAED,6DAA6D;AAC7D,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,UAAU,sCAAgC;IACjD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAG,mBAAmB,CAAC;IACvC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAM;IACxC;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACjD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IACzC,qEAAqE;IACrE,WAAW,SAAK;IAChB,sFAAsF;IACtF,kBAAkB,UAAS;IAE3B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B1B;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAOpD;IAED;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAMxB;IAED;;OAEG;IACH,UAAgB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAerC;IAED;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI,CAOhC;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAK1B;CACF"}
@@ -0,0 +1,149 @@
1
+ import { LogsIngestionClient } from "@azure/monitor-ingestion";
2
+ import { Service, useCoreEvents, WebdaError } from "@webda/core";
3
+ import { LogFilter, useWorkerOutput } from "@webda/workout";
4
+ import { format } from "node:util";
5
+ import { AzureParameters, getAzureCredential } from "./azure-parameters.js";
6
+ /** Azure Monitor Logs Ingestion settings. */
7
+ export class AzureMonitorLoggerParameters extends AzureParameters {
8
+ constructor() {
9
+ super(...arguments);
10
+ /**
11
+ * Log level
12
+ */
13
+ this.logLevel = "INFO";
14
+ /**
15
+ * Batch size
16
+ */
17
+ this.batchSize = 100;
18
+ /**
19
+ * Flush interval
20
+ */
21
+ this.flushInterval = 5000;
22
+ /**
23
+ * Max buffered logs
24
+ */
25
+ this.maxBufferedLogs = 10000;
26
+ }
27
+ }
28
+ /** Forward Webda logs to a custom Azure Monitor table.
29
+ * @WebdaModda
30
+ */
31
+ export class AzureMonitorLogger extends Service {
32
+ constructor() {
33
+ super(...arguments);
34
+ /**
35
+ * Buffer
36
+ */
37
+ this.buffer = [];
38
+ /** Number of records dropped because the bounded buffer was full. */
39
+ this.droppedLogs = 0;
40
+ /** Last delivery error, available to health checks without recursively logging it. */
41
+ this.lastDeliveryFailed = false;
42
+ }
43
+ /**
44
+ * Perform init.
45
+ * @override
46
+ */
47
+ async init() {
48
+ await super.init();
49
+ const p = this.parameters;
50
+ if (!p.endpoint ||
51
+ !p.ruleId ||
52
+ !p.streamName ||
53
+ !Number.isInteger(p.batchSize) ||
54
+ p.batchSize < 1 ||
55
+ !Number.isInteger(p.maxBufferedLogs) ||
56
+ p.maxBufferedLogs < p.batchSize ||
57
+ p.flushInterval < 1) {
58
+ throw new WebdaError.BadRequest("Azure Monitor requires endpoint, ruleId, streamName and positive buffer settings");
59
+ }
60
+ this.removeListeners();
61
+ this.client = new LogsIngestionClient(p.endpoint, getAzureCredential(p));
62
+ this.messageListener = message => {
63
+ if (message.type === "log" && message.log && LogFilter(message.log.level, p.logLevel)) {
64
+ this._log(message.log.level, ...message.log.args);
65
+ }
66
+ };
67
+ useWorkerOutput().on("message", this.messageListener);
68
+ this.resultListenerOff = useCoreEvents("Webda.Result", () => this.sendLogs());
69
+ this.timer = setInterval(() => {
70
+ void this.sendLogs();
71
+ }, p.flushInterval);
72
+ this.timer.unref();
73
+ return this;
74
+ }
75
+ /**
76
+ * Buffer one record. SecretString values retain their masked representation.
77
+ * @param level - Worker log level
78
+ * @param args - Log arguments
79
+ */
80
+ _log(level, ...args) {
81
+ if (this.buffer.length >= this.parameters.maxBufferedLogs) {
82
+ this.droppedLogs++;
83
+ return;
84
+ }
85
+ this.buffer.push({ TimeGenerated: new Date().toISOString(), Level: level, Message: format(...args) });
86
+ if (this.buffer.length >= this.parameters.batchSize)
87
+ void this.sendLogs();
88
+ }
89
+ /**
90
+ * Serialize flushes; failed records stay at the front for the next scheduled retry.
91
+ * @returns Completion of the current flush attempt
92
+ */
93
+ sendLogs() {
94
+ if (this.sending)
95
+ return this.sending;
96
+ this.sending = this.flush().finally(() => {
97
+ this.sending = undefined;
98
+ });
99
+ return this.sending;
100
+ }
101
+ /**
102
+ * Deliver buffered records in bounded batches.
103
+ */
104
+ async flush() {
105
+ while (this.buffer.length) {
106
+ const records = this.buffer.splice(0, this.parameters.batchSize);
107
+ try {
108
+ await this.client.upload(this.parameters.ruleId, this.parameters.streamName, records);
109
+ this.lastDeliveryFailed = false;
110
+ }
111
+ catch {
112
+ this.lastDeliveryFailed = true;
113
+ this.buffer.unshift(...records);
114
+ const overflow = Math.max(0, this.buffer.length - this.parameters.maxBufferedLogs);
115
+ this.buffer.splice(this.parameters.maxBufferedLogs, overflow);
116
+ this.droppedLogs += overflow;
117
+ return;
118
+ }
119
+ }
120
+ }
121
+ /**
122
+ * Detach log forwarding and stop scheduled flushing.
123
+ */
124
+ removeListeners() {
125
+ if (this.messageListener)
126
+ useWorkerOutput().off("message", this.messageListener);
127
+ this.messageListener = undefined;
128
+ this.resultListenerOff?.();
129
+ this.resultListenerOff = undefined;
130
+ clearInterval(this.timer);
131
+ this.timer = undefined;
132
+ }
133
+ /**
134
+ * Perform stop.
135
+ * @override
136
+ */
137
+ async stop() {
138
+ this.removeListeners();
139
+ await this.sendLogs();
140
+ await super.stop();
141
+ if (this.buffer.length)
142
+ throw new WebdaError.ServiceUnavailable("Unable to flush remaining Azure Monitor logs");
143
+ }
144
+ }
145
+ /**
146
+ * Parameters
147
+ */
148
+ AzureMonitorLogger.Parameters = AzureMonitorLoggerParameters;
149
+ //# sourceMappingURL=monitorlogger.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitorlogger.service.js","sources":["../../src/services/monitorlogger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAiC,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,6CAA6C;AAC7C,MAAM,OAAO,4BAA6B,SAAQ,eAAe;IAAjE;;QAaE;;WAEG;QACH,aAAQ,GAAmB,MAAM,CAAC;QAClC;;WAEG;QACH,cAAS,GAAG,GAAG,CAAC;QAChB;;WAEG;QACH,kBAAa,GAAG,IAAI,CAAC;QACrB;;WAEG;QACH,oBAAe,GAAG,KAAK,CAAC;IAC1B,CAAC;CAAA;AAkBD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,OAAqC;IAA7E;;QASE;;WAEG;QACO,WAAM,GAAqB,EAAE,CAAC;QAiBxC,qEAAqE;QACrE,gBAAW,GAAG,CAAC,CAAC;QAChB,sFAAsF;QACtF,uBAAkB,GAAG,KAAK,CAAC;IA2G7B,CAAC;IAzGC;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,IACE,CAAC,CAAC,CAAC,QAAQ;YACX,CAAC,CAAC,CAAC,MAAM;YACT,CAAC,CAAC,CAAC,UAAU;YACb,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9B,CAAC,CAAC,SAAS,GAAG,CAAC;YACf,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;YACpC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS;YAC/B,CAAC,CAAC,aAAa,GAAG,CAAC,EACnB,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,UAAU,CAC7B,kFAAkF,CACnF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,EAAE;YAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QACF,eAAe,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAqB,EAAE,GAAG,IAAe;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QACtG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;YAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,KAAK;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACnF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAC9D,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACO,eAAe;QACvB,IAAI,IAAI,CAAC,eAAe;YAAE,eAAe,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACjF,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,8CAA8C,CAAC,CAAC;IAClH,CAAC;CACF;AA1IC;;GAEG;AACI,6BAAU,GAAG,4BAA4B,AAA/B,CAAgC"}
@@ -0,0 +1,224 @@
1
+ import { ServiceBusAdministrationClient, ServiceBusClient, ServiceBusReceivedMessage, ServiceBusReceiver, ServiceBusSender } from "@azure/service-bus";
2
+ import { MessageReceipt, PubSubService, Queue, QueueParameters, SecretString } from "@webda/core";
3
+ import { CancelablePromise } from "@webda/utils";
4
+ import { AzureParameters, AzureServiceParameters } from "./azure-parameters.js";
5
+ import { AzureContributor, AzureDeployerInfo, AzureResourceContribution } from "./contributors.js";
6
+ /**
7
+ * Service bus settings interface
8
+ */
9
+ interface ServiceBusSettings extends AzureServiceParameters {
10
+ /**
11
+ * Namespace
12
+ */
13
+ namespace: string;
14
+ /**
15
+ * Connection string
16
+ */
17
+ connectionString?: string | SecretString;
18
+ /**
19
+ * Whether create if not exists is enabled
20
+ */
21
+ createIfNotExists?: boolean;
22
+ }
23
+ /** Service Bus work queue settings. */
24
+ export declare class ServiceBusQueueParameters extends QueueParameters implements ServiceBusSettings {
25
+ /**
26
+ * Namespace
27
+ */
28
+ namespace: string;
29
+ /**
30
+ * Connection string
31
+ */
32
+ connectionString?: string | SecretString;
33
+ /**
34
+ * Create if not exists
35
+ */
36
+ createIfNotExists: boolean;
37
+ /**
38
+ * Queue
39
+ */
40
+ queue: string;
41
+ /**
42
+ * Tenant ID
43
+ */
44
+ tenantId?: string;
45
+ /**
46
+ * Client ID
47
+ */
48
+ clientId?: string;
49
+ /**
50
+ * Client secret
51
+ */
52
+ clientSecret?: string | SecretString;
53
+ /**
54
+ * Subscription ID
55
+ */
56
+ subscriptionId?: string;
57
+ /**
58
+ * Endpoint
59
+ */
60
+ endpoint?: string;
61
+ /**
62
+ * Max messages
63
+ */
64
+ maxMessages: number;
65
+ /**
66
+ * Max wait time in ms
67
+ */
68
+ maxWaitTimeInMs: number;
69
+ /**
70
+ * Max pending messages
71
+ */
72
+ maxPendingMessages: number;
73
+ /**
74
+ * Perform load.
75
+ * @override
76
+ */
77
+ load(params?: any): this;
78
+ }
79
+ /** Service Bus peek-lock queue. Receipts retain their exact SDK message until completion or expiry.
80
+ * @WebdaModda
81
+ */
82
+ export declare class ServiceBusQueue<T = any> extends Queue<T, ServiceBusQueueParameters> implements AzureContributor {
83
+ /**
84
+ * Parameters
85
+ */
86
+ static Parameters: typeof ServiceBusQueueParameters;
87
+ /**
88
+ * Client
89
+ */
90
+ protected client: ServiceBusClient;
91
+ /**
92
+ * Admin
93
+ */
94
+ protected admin: ServiceBusAdministrationClient;
95
+ /**
96
+ * Sender
97
+ */
98
+ protected sender: ServiceBusSender;
99
+ /**
100
+ * Receiver
101
+ */
102
+ protected receiver: ServiceBusReceiver;
103
+ /**
104
+ * Pending
105
+ */
106
+ protected pending: Map<string, ServiceBusReceivedMessage>;
107
+ /**
108
+ * Perform init.
109
+ * @override
110
+ */
111
+ init(): Promise<this>;
112
+ /**
113
+ * Perform send message.
114
+ * @override
115
+ */
116
+ sendMessage(event: T): Promise<void>;
117
+ /**
118
+ * Perform receive message.
119
+ * @override
120
+ */
121
+ receiveMessage<L>(proto?: new () => L): Promise<MessageReceipt<L>[]>;
122
+ /**
123
+ * Perform delete message.
124
+ * @override
125
+ */
126
+ deleteMessage(handle: string): Promise<void>;
127
+ /**
128
+ * Perform size.
129
+ * @override
130
+ */
131
+ size(): Promise<number>;
132
+ /**
133
+ * Perform stop.
134
+ * @override
135
+ */
136
+ stop(): Promise<void>;
137
+ /**
138
+ * Describe the Azure resources and identity permissions required by this service.
139
+ * @param deployer - Deployment scope and identity helpers
140
+ * @returns The azure resources result
141
+ */
142
+ getAzureResources(deployer: AzureDeployerInfo): AzureResourceContribution;
143
+ }
144
+ /** Service Bus pub/sub settings. Omit subscription to create one temporary subscription per consumer. */
145
+ export declare class ServiceBusPubSubParameters extends AzureParameters implements ServiceBusSettings {
146
+ /**
147
+ * Namespace
148
+ */
149
+ namespace: string;
150
+ /**
151
+ * Connection string
152
+ */
153
+ connectionString?: string | SecretString;
154
+ /**
155
+ * Create if not exists
156
+ */
157
+ createIfNotExists: boolean;
158
+ /**
159
+ * Topic
160
+ */
161
+ topic: string;
162
+ /**
163
+ * Subscription
164
+ */
165
+ subscription?: string;
166
+ }
167
+ /** Service Bus topic with explicit completion after successful processing.
168
+ * @WebdaModda
169
+ */
170
+ export declare class ServiceBusPubSub<T = any> extends PubSubService<T, ServiceBusPubSubParameters> implements AzureContributor {
171
+ /**
172
+ * Parameters
173
+ */
174
+ static Parameters: typeof ServiceBusPubSubParameters;
175
+ /**
176
+ * Client
177
+ */
178
+ protected client: ServiceBusClient;
179
+ /**
180
+ * Admin
181
+ */
182
+ protected admin: ServiceBusAdministrationClient;
183
+ /**
184
+ * Sender
185
+ */
186
+ protected sender: ServiceBusSender;
187
+ /**
188
+ * Consumers
189
+ */
190
+ protected consumers: Set<CancelablePromise<void>>;
191
+ /**
192
+ * Perform init.
193
+ * @override
194
+ */
195
+ init(): Promise<this>;
196
+ /**
197
+ * Perform send message.
198
+ * @override
199
+ */
200
+ sendMessage(event: T): Promise<void>;
201
+ /**
202
+ * Perform size.
203
+ * @override
204
+ */
205
+ size(): Promise<number>;
206
+ /**
207
+ * Perform consume.
208
+ * @override
209
+ */
210
+ consume(callback: (event: T) => Promise<void>, proto?: new () => T, onBind?: () => void): CancelablePromise;
211
+ /**
212
+ * Perform stop.
213
+ * @override
214
+ */
215
+ stop(): Promise<void>;
216
+ /**
217
+ * Describe the Azure resources and identity permissions required by this service.
218
+ * @param deployer - Deployment scope and identity helpers
219
+ * @returns The azure resources result
220
+ */
221
+ getAzureResources(deployer: AzureDeployerInfo): AzureResourceContribution;
222
+ }
223
+ export {};
224
+ //# sourceMappingURL=servicebus.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servicebus.service.d.ts","sources":["../../src/services/servicebus.service.ts"],"names":[],"mappings":"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"}