@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.
Files changed (39) hide show
  1. package/README.md +79 -0
  2. package/dist/backend/index.cjs +12 -3
  3. package/dist/backend/index.cjs.map +1 -1
  4. package/dist/backend/index.d.cts +115 -0
  5. package/dist/backend/index.d.cts.map +1 -0
  6. package/dist/backend/index.d.mts +115 -0
  7. package/dist/backend/index.d.mts.map +1 -0
  8. package/dist/backend/index.d.ts +1 -1
  9. package/dist/backend/index.d.ts.map +1 -1
  10. package/dist/backend/index.mjs +12 -3
  11. package/dist/backend/index.mjs.map +1 -1
  12. package/dist/backend/plugin.d.ts +9 -2
  13. package/dist/backend/plugin.d.ts.map +1 -1
  14. package/dist/backend/webhook-dedup.service.d.ts.map +1 -1
  15. package/dist/backend/webhook-signature.service.d.ts.map +1 -1
  16. package/dist/frontend/components/CreateWebhookModal.d.ts.map +1 -1
  17. package/dist/frontend/components/WebhookDetailPanel.d.ts.map +1 -1
  18. package/dist/frontend/components/WebhooksPage.d.ts.map +1 -1
  19. package/dist/frontend/hooks/useWebhookQueries.d.ts +1 -1
  20. package/dist/frontend/hooks/useWebhookQueries.d.ts.map +1 -1
  21. package/dist/frontend/index.cjs +46 -46
  22. package/dist/frontend/index.cjs.map +1 -1
  23. package/dist/frontend/index.d.cts +70 -0
  24. package/dist/frontend/index.d.cts.map +1 -0
  25. package/dist/frontend/index.d.mts +70 -0
  26. package/dist/frontend/index.d.mts.map +1 -0
  27. package/dist/frontend/index.d.ts +2 -2
  28. package/dist/frontend/index.d.ts.map +1 -1
  29. package/dist/frontend/index.mjs +28 -28
  30. package/dist/frontend/index.mjs.map +1 -1
  31. package/dist/frontend/plugins/webhooksFrontendPlugin.d.ts +2 -2
  32. package/dist/frontend/plugins/webhooksFrontendPlugin.d.ts.map +1 -1
  33. package/dist/shared/types.d.cts +2 -0
  34. package/dist/shared/types.d.mts +2 -0
  35. package/dist/types-cBOT0AqR.d.cts +83 -0
  36. package/dist/types-cBOT0AqR.d.cts.map +1 -0
  37. package/dist/types-zH7xu7mA.d.mts +83 -0
  38. package/dist/types-zH7xu7mA.d.mts.map +1 -0
  39. 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/frontend';
6
- export declare const webhooksFrontendPlugin: InvectFrontendPlugin;
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,kBAAkB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,EAAE,oBAmBpC,CAAC"}
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.1",
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.1"
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/frontend": ">=2.0.0",
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/frontend": {
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": "eslint src",
87
- "lint:fix": "eslint src --fix"
86
+ "lint": "oxlint --fix"
88
87
  }
89
88
  }