@invect/webhooks 0.0.1 → 0.0.3
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/README.md +79 -0
- package/dist/backend/index.cjs +12 -3
- package/dist/backend/index.cjs.map +1 -1
- package/dist/backend/index.d.cts +115 -0
- package/dist/backend/index.d.cts.map +1 -0
- package/dist/backend/index.d.mts +115 -0
- package/dist/backend/index.d.mts.map +1 -0
- package/dist/backend/index.d.ts +1 -1
- package/dist/backend/index.d.ts.map +1 -1
- package/dist/backend/index.mjs +12 -3
- package/dist/backend/index.mjs.map +1 -1
- package/dist/backend/plugin.d.ts +9 -2
- package/dist/backend/plugin.d.ts.map +1 -1
- package/dist/backend/webhook-dedup.service.d.ts.map +1 -1
- package/dist/backend/webhook-signature.service.d.ts.map +1 -1
- package/dist/frontend/components/CreateWebhookModal.d.ts.map +1 -1
- package/dist/frontend/components/WebhookDetailPanel.d.ts.map +1 -1
- package/dist/frontend/components/WebhooksPage.d.ts.map +1 -1
- package/dist/frontend/hooks/useWebhookQueries.d.ts +1 -1
- package/dist/frontend/hooks/useWebhookQueries.d.ts.map +1 -1
- package/dist/frontend/index.cjs +46 -46
- package/dist/frontend/index.cjs.map +1 -1
- package/dist/frontend/index.d.cts +70 -0
- package/dist/frontend/index.d.cts.map +1 -0
- package/dist/frontend/index.d.mts +70 -0
- package/dist/frontend/index.d.mts.map +1 -0
- package/dist/frontend/index.d.ts +2 -2
- package/dist/frontend/index.d.ts.map +1 -1
- package/dist/frontend/index.mjs +28 -28
- package/dist/frontend/index.mjs.map +1 -1
- package/dist/frontend/plugins/webhooksFrontendPlugin.d.ts +2 -2
- package/dist/frontend/plugins/webhooksFrontendPlugin.d.ts.map +1 -1
- package/dist/shared/types.d.cts +2 -0
- package/dist/shared/types.d.mts +2 -0
- package/dist/types-cBOT0AqR.d.cts +83 -0
- package/dist/types-cBOT0AqR.d.cts.map +1 -0
- package/dist/types-zH7xu7mA.d.mts +83 -0
- package/dist/types-zH7xu7mA.d.mts.map +1 -0
- package/package.json +49 -50
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Webhooks Frontend Plugin — registers the sidebar item and route
|
|
3
3
|
* for webhook management.
|
|
4
4
|
*/
|
|
5
|
-
import type { InvectFrontendPlugin } from '@invect/
|
|
6
|
-
export declare const
|
|
5
|
+
import type { InvectFrontendPlugin } from '@invect/ui';
|
|
6
|
+
export declare const webhooksFrontend: InvectFrontendPlugin;
|
|
7
7
|
//# sourceMappingURL=webhooksFrontendPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooksFrontendPlugin.d.ts","sourceRoot":"","sources":["../../../src/frontend/plugins/webhooksFrontendPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"webhooksFrontendPlugin.d.ts","sourceRoot":"","sources":["../../../src/frontend/plugins/webhooksFrontendPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,oBAmB9B,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as WebhookTrigger, i as WebhookProvider, n as UpdateWebhookTriggerInput, o as WebhookTriggerInfo, r as WebhookEvent, t as CreateWebhookTriggerInput } from "../types-cBOT0AqR.cjs";
|
|
2
|
+
export { CreateWebhookTriggerInput, UpdateWebhookTriggerInput, WebhookEvent, WebhookProvider, WebhookTrigger, WebhookTriggerInfo };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as WebhookTrigger, i as WebhookProvider, n as UpdateWebhookTriggerInput, o as WebhookTriggerInfo, r as WebhookEvent, t as CreateWebhookTriggerInput } from "../types-zH7xu7mA.mjs";
|
|
2
|
+
export { CreateWebhookTriggerInput, UpdateWebhookTriggerInput, WebhookEvent, WebhookProvider, WebhookTrigger, WebhookTriggerInfo };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
//#region src/shared/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* @invect/webhooks — Shared Types
|
|
4
|
+
*
|
|
5
|
+
* Serializable types shared between backend and frontend.
|
|
6
|
+
* No runtime code, no React, no Node.js dependencies.
|
|
7
|
+
*/
|
|
8
|
+
type WebhookProvider = 'github' | 'slack' | 'stripe' | 'linear' | 'generic';
|
|
9
|
+
interface WebhookTrigger {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
webhookPath: string;
|
|
14
|
+
provider: WebhookProvider;
|
|
15
|
+
isEnabled: boolean;
|
|
16
|
+
allowedMethods: string;
|
|
17
|
+
/** HMAC signature verification */
|
|
18
|
+
hmacEnabled: boolean;
|
|
19
|
+
hmacHeaderName?: string;
|
|
20
|
+
hmacSecret?: string;
|
|
21
|
+
/** IP whitelist (comma-separated IPs/CIDRs) */
|
|
22
|
+
allowedIps?: string;
|
|
23
|
+
flowId?: string;
|
|
24
|
+
nodeId?: string;
|
|
25
|
+
lastTriggeredAt?: string;
|
|
26
|
+
lastPayload?: unknown;
|
|
27
|
+
triggerCount: number;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
updatedAt: string;
|
|
30
|
+
}
|
|
31
|
+
interface CreateWebhookTriggerInput {
|
|
32
|
+
name: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
provider?: WebhookProvider;
|
|
35
|
+
allowedMethods?: string;
|
|
36
|
+
/** HMAC signature verification */
|
|
37
|
+
hmacEnabled?: boolean;
|
|
38
|
+
hmacHeaderName?: string;
|
|
39
|
+
hmacSecret?: string;
|
|
40
|
+
/** IP whitelist (comma-separated IPs/CIDRs) */
|
|
41
|
+
allowedIps?: string;
|
|
42
|
+
flowId?: string;
|
|
43
|
+
nodeId?: string;
|
|
44
|
+
}
|
|
45
|
+
interface UpdateWebhookTriggerInput {
|
|
46
|
+
name?: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
provider?: WebhookProvider;
|
|
49
|
+
isEnabled?: boolean;
|
|
50
|
+
allowedMethods?: string;
|
|
51
|
+
/** HMAC signature verification */
|
|
52
|
+
hmacEnabled?: boolean;
|
|
53
|
+
hmacHeaderName?: string;
|
|
54
|
+
hmacSecret?: string;
|
|
55
|
+
/** IP whitelist (comma-separated IPs/CIDRs) */
|
|
56
|
+
allowedIps?: string;
|
|
57
|
+
flowId?: string;
|
|
58
|
+
nodeId?: string;
|
|
59
|
+
}
|
|
60
|
+
interface WebhookTriggerInfo {
|
|
61
|
+
webhookPath: string;
|
|
62
|
+
fullUrl?: string;
|
|
63
|
+
provider: WebhookProvider;
|
|
64
|
+
isEnabled: boolean;
|
|
65
|
+
hmacEnabled: boolean;
|
|
66
|
+
allowedIps?: string;
|
|
67
|
+
}
|
|
68
|
+
interface WebhookEvent {
|
|
69
|
+
id: string;
|
|
70
|
+
webhookTriggerId: string;
|
|
71
|
+
deliveryId?: string;
|
|
72
|
+
eventType?: string;
|
|
73
|
+
method: string;
|
|
74
|
+
headers: Record<string, string>;
|
|
75
|
+
body: unknown;
|
|
76
|
+
status: 'success' | 'failed' | 'skipped';
|
|
77
|
+
flowRunId?: string;
|
|
78
|
+
error?: string;
|
|
79
|
+
receivedAt: string;
|
|
80
|
+
}
|
|
81
|
+
//#endregion
|
|
82
|
+
export { WebhookTrigger as a, WebhookProvider as i, UpdateWebhookTriggerInput as n, WebhookTriggerInfo as o, WebhookEvent as r, CreateWebhookTriggerInput as t };
|
|
83
|
+
//# sourceMappingURL=types-cBOT0AqR.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-cBOT0AqR.d.cts","names":[],"sources":["../src/shared/types.ts"],"mappings":";;AASA;;;;;KAAY,eAAA;AAAA,UAEK,cAAA;EACf,EAAA;EACA,IAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA,EAAU,eAAA;EACV,SAAA;EACA,cAAA;EAFU;EAIV,WAAA;EACA,cAAA;EACA,UAAA;EADA;EAGA,UAAA;EACA,MAAA;EACA,MAAA;EACA,eAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,SAAA;AAAA;AAAA,UAGe,yBAAA;EACf,IAAA;EACA,WAAA;EACA,QAAA,GAAW,eAAA;EACX,cAAA;EAD0B;EAG1B,WAAA;EACA,cAAA;EACA,UAAA;EALW;EAOX,UAAA;EACA,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,yBAAA;EACf,IAAA;EACA,WAAA;EACA,QAAA,GAAW,eAAA;EACX,SAAA;EACA,cAAA;EALwC;EAOxC,WAAA;EACA,cAAA;EACA,UAAA;EAPA;EASA,UAAA;EACA,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,kBAAA;EACf,WAAA;EACA,OAAA;EACA,QAAA,EAAU,eAAA;EACV,SAAA;EACA,WAAA;EACA,UAAA;AAAA;AAAA,UAKe,YAAA;EACf,EAAA;EACA,gBAAA;EACA,UAAA;EACA,SAAA;EACA,MAAA;EACA,OAAA,EAAS,MAAA;EACT,IAAA;EACA,MAAA;EACA,SAAA;EACA,KAAA;EACA,UAAA;AAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
//#region src/shared/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* @invect/webhooks — Shared Types
|
|
4
|
+
*
|
|
5
|
+
* Serializable types shared between backend and frontend.
|
|
6
|
+
* No runtime code, no React, no Node.js dependencies.
|
|
7
|
+
*/
|
|
8
|
+
type WebhookProvider = 'github' | 'slack' | 'stripe' | 'linear' | 'generic';
|
|
9
|
+
interface WebhookTrigger {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
webhookPath: string;
|
|
14
|
+
provider: WebhookProvider;
|
|
15
|
+
isEnabled: boolean;
|
|
16
|
+
allowedMethods: string;
|
|
17
|
+
/** HMAC signature verification */
|
|
18
|
+
hmacEnabled: boolean;
|
|
19
|
+
hmacHeaderName?: string;
|
|
20
|
+
hmacSecret?: string;
|
|
21
|
+
/** IP whitelist (comma-separated IPs/CIDRs) */
|
|
22
|
+
allowedIps?: string;
|
|
23
|
+
flowId?: string;
|
|
24
|
+
nodeId?: string;
|
|
25
|
+
lastTriggeredAt?: string;
|
|
26
|
+
lastPayload?: unknown;
|
|
27
|
+
triggerCount: number;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
updatedAt: string;
|
|
30
|
+
}
|
|
31
|
+
interface CreateWebhookTriggerInput {
|
|
32
|
+
name: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
provider?: WebhookProvider;
|
|
35
|
+
allowedMethods?: string;
|
|
36
|
+
/** HMAC signature verification */
|
|
37
|
+
hmacEnabled?: boolean;
|
|
38
|
+
hmacHeaderName?: string;
|
|
39
|
+
hmacSecret?: string;
|
|
40
|
+
/** IP whitelist (comma-separated IPs/CIDRs) */
|
|
41
|
+
allowedIps?: string;
|
|
42
|
+
flowId?: string;
|
|
43
|
+
nodeId?: string;
|
|
44
|
+
}
|
|
45
|
+
interface UpdateWebhookTriggerInput {
|
|
46
|
+
name?: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
provider?: WebhookProvider;
|
|
49
|
+
isEnabled?: boolean;
|
|
50
|
+
allowedMethods?: string;
|
|
51
|
+
/** HMAC signature verification */
|
|
52
|
+
hmacEnabled?: boolean;
|
|
53
|
+
hmacHeaderName?: string;
|
|
54
|
+
hmacSecret?: string;
|
|
55
|
+
/** IP whitelist (comma-separated IPs/CIDRs) */
|
|
56
|
+
allowedIps?: string;
|
|
57
|
+
flowId?: string;
|
|
58
|
+
nodeId?: string;
|
|
59
|
+
}
|
|
60
|
+
interface WebhookTriggerInfo {
|
|
61
|
+
webhookPath: string;
|
|
62
|
+
fullUrl?: string;
|
|
63
|
+
provider: WebhookProvider;
|
|
64
|
+
isEnabled: boolean;
|
|
65
|
+
hmacEnabled: boolean;
|
|
66
|
+
allowedIps?: string;
|
|
67
|
+
}
|
|
68
|
+
interface WebhookEvent {
|
|
69
|
+
id: string;
|
|
70
|
+
webhookTriggerId: string;
|
|
71
|
+
deliveryId?: string;
|
|
72
|
+
eventType?: string;
|
|
73
|
+
method: string;
|
|
74
|
+
headers: Record<string, string>;
|
|
75
|
+
body: unknown;
|
|
76
|
+
status: 'success' | 'failed' | 'skipped';
|
|
77
|
+
flowRunId?: string;
|
|
78
|
+
error?: string;
|
|
79
|
+
receivedAt: string;
|
|
80
|
+
}
|
|
81
|
+
//#endregion
|
|
82
|
+
export { WebhookTrigger as a, WebhookProvider as i, UpdateWebhookTriggerInput as n, WebhookTriggerInfo as o, WebhookEvent as r, CreateWebhookTriggerInput as t };
|
|
83
|
+
//# sourceMappingURL=types-zH7xu7mA.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-zH7xu7mA.d.mts","names":[],"sources":["../src/shared/types.ts"],"mappings":";;AASA;;;;;KAAY,eAAA;AAAA,UAEK,cAAA;EACf,EAAA;EACA,IAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA,EAAU,eAAA;EACV,SAAA;EACA,cAAA;EAFU;EAIV,WAAA;EACA,cAAA;EACA,UAAA;EADA;EAGA,UAAA;EACA,MAAA;EACA,MAAA;EACA,eAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,SAAA;AAAA;AAAA,UAGe,yBAAA;EACf,IAAA;EACA,WAAA;EACA,QAAA,GAAW,eAAA;EACX,cAAA;EAD0B;EAG1B,WAAA;EACA,cAAA;EACA,UAAA;EALW;EAOX,UAAA;EACA,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,yBAAA;EACf,IAAA;EACA,WAAA;EACA,QAAA,GAAW,eAAA;EACX,SAAA;EACA,cAAA;EALwC;EAOxC,WAAA;EACA,cAAA;EACA,UAAA;EAPA;EASA,UAAA;EACA,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,kBAAA;EACf,WAAA;EACA,OAAA;EACA,QAAA,EAAU,eAAA;EACV,SAAA;EACA,WAAA;EACA,UAAA;AAAA;AAAA,UAKe,YAAA;EACf,EAAA;EACA,gBAAA;EACA,UAAA;EACA,SAAA;EACA,MAAA;EACA,OAAA,EAAS,MAAA;EACT,IAAA;EACA,MAAA;EACA,SAAA;EACA,KAAA;EACA,UAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,32 +1,64 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@invect/webhooks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Webhook trigger plugin for Invect — adds webhook management, ingestion, signature verification, and a dedicated webhooks UI page",
|
|
5
|
-
"main": "dist/backend/index.cjs",
|
|
6
|
-
"module": "dist/backend/index.mjs",
|
|
7
|
-
"types": "dist/backend/index.d.ts",
|
|
8
|
-
"type": "module",
|
|
9
|
-
"files": [
|
|
10
|
-
"dist/**/*"
|
|
11
|
-
],
|
|
12
5
|
"keywords": [
|
|
13
6
|
"invect",
|
|
14
|
-
"webhooks",
|
|
15
|
-
"triggers",
|
|
16
7
|
"plugin",
|
|
8
|
+
"triggers",
|
|
9
|
+
"webhooks",
|
|
17
10
|
"workflow"
|
|
18
11
|
],
|
|
19
|
-
"author": "Invect Team",
|
|
20
12
|
"license": "MIT",
|
|
13
|
+
"author": "robase <team@invect.dev>",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/robase/invect.git",
|
|
17
|
+
"directory": "pkg/plugins/webhooks"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist/**/*"
|
|
21
|
+
],
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "dist/backend/index.cjs",
|
|
24
|
+
"module": "dist/backend/index.mjs",
|
|
25
|
+
"types": "dist/backend/index.d.mts",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/backend/index.d.mts",
|
|
29
|
+
"import": "./dist/backend/index.mjs",
|
|
30
|
+
"require": "./dist/backend/index.cjs"
|
|
31
|
+
},
|
|
32
|
+
"./ui": {
|
|
33
|
+
"types": "./dist/frontend/index.d.mts",
|
|
34
|
+
"import": "./dist/frontend/index.mjs",
|
|
35
|
+
"require": "./dist/frontend/index.cjs"
|
|
36
|
+
},
|
|
37
|
+
"./types": {
|
|
38
|
+
"types": "./dist/shared/types.d.mts",
|
|
39
|
+
"import": "./dist/shared/types.mjs",
|
|
40
|
+
"require": "./dist/shared/types.cjs"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
21
43
|
"dependencies": {
|
|
22
|
-
"@invect/core": "0.0.
|
|
44
|
+
"@invect/core": "0.0.3"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@tanstack/react-query": "^5.0.0",
|
|
48
|
+
"@types/node": "^20.11.20",
|
|
49
|
+
"@types/react": "18.3.7",
|
|
50
|
+
"@types/react-dom": "18.3.7",
|
|
51
|
+
"lucide-react": "^0.475.0",
|
|
52
|
+
"tsdown": "^0.21.1",
|
|
53
|
+
"typescript": "^5.3.3",
|
|
54
|
+
"@invect/ui": "0.0.3"
|
|
23
55
|
},
|
|
24
56
|
"peerDependencies": {
|
|
25
|
-
"@invect/
|
|
57
|
+
"@invect/ui": ">=0.0.3",
|
|
58
|
+
"@tanstack/react-query": ">=5.0.0",
|
|
26
59
|
"react": ">=18.0.0",
|
|
27
60
|
"react-dom": ">=18.0.0",
|
|
28
|
-
"react-router": ">=7.0.0"
|
|
29
|
-
"@tanstack/react-query": ">=5.0.0"
|
|
61
|
+
"react-router": ">=7.0.0"
|
|
30
62
|
},
|
|
31
63
|
"peerDependenciesMeta": {
|
|
32
64
|
"react": {
|
|
@@ -41,49 +73,16 @@
|
|
|
41
73
|
"@tanstack/react-query": {
|
|
42
74
|
"optional": true
|
|
43
75
|
},
|
|
44
|
-
"@invect/
|
|
76
|
+
"@invect/ui": {
|
|
45
77
|
"optional": true
|
|
46
78
|
}
|
|
47
79
|
},
|
|
48
|
-
"devDependencies": {
|
|
49
|
-
"@tanstack/react-query": "^5.0.0",
|
|
50
|
-
"@types/node": "^20.11.20",
|
|
51
|
-
"@types/react": "18.3.7",
|
|
52
|
-
"@types/react-dom": "18.3.7",
|
|
53
|
-
"lucide-react": "^0.475.0",
|
|
54
|
-
"tsdown": "^0.21.1",
|
|
55
|
-
"typescript": "^5.3.3",
|
|
56
|
-
"@invect/frontend": "0.0.1"
|
|
57
|
-
},
|
|
58
|
-
"exports": {
|
|
59
|
-
".": {
|
|
60
|
-
"types": "./dist/backend/index.d.ts",
|
|
61
|
-
"import": "./dist/backend/index.mjs",
|
|
62
|
-
"require": "./dist/backend/index.cjs"
|
|
63
|
-
},
|
|
64
|
-
"./ui": {
|
|
65
|
-
"types": "./dist/frontend/index.d.ts",
|
|
66
|
-
"import": "./dist/frontend/index.mjs",
|
|
67
|
-
"require": "./dist/frontend/index.cjs"
|
|
68
|
-
},
|
|
69
|
-
"./types": {
|
|
70
|
-
"types": "./dist/shared/types.d.ts",
|
|
71
|
-
"import": "./dist/shared/types.mjs",
|
|
72
|
-
"require": "./dist/shared/types.cjs"
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"repository": {
|
|
76
|
-
"type": "git",
|
|
77
|
-
"url": "https://github.com/robase/flow-backend.git",
|
|
78
|
-
"directory": "pkg/plugins/webhooks"
|
|
79
|
-
},
|
|
80
80
|
"scripts": {
|
|
81
81
|
"build": "tsdown && tsc --emitDeclarationOnly --outDir dist",
|
|
82
82
|
"build:w": "tsdown --watch",
|
|
83
83
|
"dev": "tsdown --watch",
|
|
84
84
|
"clean": "rm -rf dist",
|
|
85
85
|
"typecheck": "tsc --noEmit",
|
|
86
|
-
"lint": "
|
|
87
|
-
"lint:fix": "eslint src --fix"
|
|
86
|
+
"lint": "oxlint --fix"
|
|
88
87
|
}
|
|
89
88
|
}
|