@orgloop/connector-webhook 0.7.6 → 0.7.8
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.
- package/dist/source.d.ts +1 -2
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +14 -25
- package/dist/source.js.map +1 -1
- package/package.json +2 -2
package/dist/source.d.ts
CHANGED
|
@@ -8,12 +8,11 @@ export declare class WebhookSource implements SourceConnector {
|
|
|
8
8
|
private eventTypeField;
|
|
9
9
|
private pendingEvents;
|
|
10
10
|
private sourceId;
|
|
11
|
-
private
|
|
11
|
+
private buffer?;
|
|
12
12
|
init(config: SourceConfig): Promise<void>;
|
|
13
13
|
poll(_checkpoint: string | null): Promise<PollResult>;
|
|
14
14
|
webhook(): WebhookHandler;
|
|
15
15
|
shutdown(): Promise<void>;
|
|
16
16
|
private persistEvent;
|
|
17
|
-
private loadBufferedEvents;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=source.d.ts.map
|
package/dist/source.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAEX,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,MAAM,cAAc,CAAC;AAyBtB,qBAAa,aAAc,YAAW,eAAe;IACpD,QAAQ,CAAC,EAAE,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAc;IAEvB,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAa3D,OAAO,IAAI,cAAc;IA4DnB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAO,CAAC,YAAY;CAQpB"}
|
package/dist/source.js
CHANGED
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
* Generic webhook source connector — receives inbound webhooks and normalizes to OrgLoop events.
|
|
3
3
|
*/
|
|
4
4
|
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
5
|
-
import {
|
|
6
|
-
import { join } from 'node:path';
|
|
7
|
-
import { buildEvent } from '@orgloop/sdk';
|
|
5
|
+
import { buildEvent, EventBuffer, parseBufferSize } from '@orgloop/sdk';
|
|
8
6
|
/** Resolve env var references like ${WEBHOOK_SECRET} */
|
|
9
7
|
function resolveEnvVar(value) {
|
|
10
8
|
const match = value.match(/^\$\{(.+)\}$/);
|
|
@@ -23,7 +21,7 @@ export class WebhookSource {
|
|
|
23
21
|
eventTypeField = 'type';
|
|
24
22
|
pendingEvents = [];
|
|
25
23
|
sourceId = 'webhook';
|
|
26
|
-
|
|
24
|
+
buffer;
|
|
27
25
|
async init(config) {
|
|
28
26
|
this.sourceId = config.id;
|
|
29
27
|
const cfg = config.config;
|
|
@@ -33,19 +31,19 @@ export class WebhookSource {
|
|
|
33
31
|
}
|
|
34
32
|
if (cfg.buffer_dir) {
|
|
35
33
|
const dir = resolveEnvVar(cfg.buffer_dir);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
this.buffer = new EventBuffer({
|
|
35
|
+
bufferDir: dir,
|
|
36
|
+
filePrefix: 'webhook',
|
|
37
|
+
sourceId: this.sourceId,
|
|
38
|
+
maxBufferBytes: cfg.max_buffer_size ? parseBufferSize(cfg.max_buffer_size) : undefined,
|
|
39
|
+
});
|
|
40
|
+
this.buffer.ensureDir();
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
async poll(_checkpoint) {
|
|
44
44
|
let events;
|
|
45
|
-
if (this.
|
|
46
|
-
events = this.
|
|
47
|
-
// Truncate the buffer file after reading
|
|
48
|
-
writeFileSync(this.bufferPath, '');
|
|
45
|
+
if (this.buffer) {
|
|
46
|
+
events = this.buffer.drainSync();
|
|
49
47
|
}
|
|
50
48
|
else {
|
|
51
49
|
events = [...this.pendingEvents];
|
|
@@ -108,23 +106,14 @@ export class WebhookSource {
|
|
|
108
106
|
this.pendingEvents = [];
|
|
109
107
|
}
|
|
110
108
|
persistEvent(event) {
|
|
111
|
-
if (this.
|
|
112
|
-
|
|
109
|
+
if (this.buffer) {
|
|
110
|
+
this.buffer.append(event);
|
|
111
|
+
this.buffer.enforceSize();
|
|
113
112
|
}
|
|
114
113
|
else {
|
|
115
114
|
this.pendingEvents.push(event);
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
|
-
loadBufferedEvents() {
|
|
119
|
-
if (!this.bufferPath || !existsSync(this.bufferPath)) {
|
|
120
|
-
return [];
|
|
121
|
-
}
|
|
122
|
-
const content = readFileSync(this.bufferPath, 'utf-8').trim();
|
|
123
|
-
if (!content) {
|
|
124
|
-
return [];
|
|
125
|
-
}
|
|
126
|
-
return content.split('\n').map((line) => JSON.parse(line));
|
|
127
|
-
}
|
|
128
117
|
}
|
|
129
118
|
function readBody(req) {
|
|
130
119
|
return new Promise((resolve, reject) => {
|
package/dist/source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orgloop/connector-webhook",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.8",
|
|
4
4
|
"description": "OrgLoop generic webhook connector — inbound and outbound",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@orgloop/sdk": "0.7.
|
|
9
|
+
"@orgloop/sdk": "0.7.8"
|
|
10
10
|
},
|
|
11
11
|
"orgloop": {
|
|
12
12
|
"type": "connector",
|