@j3r3mcdev/oast-server 1.0.0 → 1.1.0

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 (187) hide show
  1. package/.github/workflows/ci.yml +29 -29
  2. package/.github/workflows/publish.yml +31 -31
  3. package/README.md +192 -192
  4. package/dist/api/controllers/__tests__/tasks.controller.test.d.ts +1 -0
  5. package/dist/api/controllers/events.controller.d.ts +6 -0
  6. package/dist/api/controllers/health.controller.d.ts +4 -0
  7. package/dist/api/controllers/index.d.ts +0 -0
  8. package/dist/api/controllers/tasks.controller.d.ts +40 -0
  9. package/dist/api/dto/__tests__/create-task.dto.test.d.ts +1 -0
  10. package/dist/api/dto/__tests__/filter-tasks.dto.test.d.ts +1 -0
  11. package/dist/api/dto/create-task.dto.d.ts +9 -0
  12. package/dist/api/dto/filter-tasks.dto.d.ts +8 -0
  13. package/dist/api/services/__tests__/events.service.test.d.ts +1 -0
  14. package/dist/api/services/__tests__/tasks.service.test.d.ts +1 -0
  15. package/dist/api/services/events.service.d.ts +8 -0
  16. package/dist/api/services/tasks.service.d.ts +22 -0
  17. package/dist/api/sse/events.stream.d.ts +25 -0
  18. package/dist/config/constants.d.ts +0 -0
  19. package/dist/config/env.d.ts +0 -0
  20. package/dist/core/__tests__/core-router.test.d.ts +1 -0
  21. package/dist/core/__tests__/core-server.test.d.ts +1 -0
  22. package/dist/core/__tests__/event.normalizer.test.d.ts +1 -0
  23. package/dist/core/__tests__/event.router.test.d.ts +1 -0
  24. package/dist/core/__tests__/logger.test.d.ts +1 -0
  25. package/dist/core/__tests__/storage-manager.test.d.ts +1 -0
  26. package/dist/core/event.normalizer.d.ts +10 -0
  27. package/dist/core/event.router.d.ts +7 -0
  28. package/dist/core/http/__tests__/adapter-node.test.d.ts +1 -0
  29. package/dist/core/http/__tests__/body-parser-multipart.test.d.ts +1 -0
  30. package/dist/core/http/__tests__/body-parser-raw.test.d.ts +1 -0
  31. package/dist/core/http/__tests__/body-parser-text.test.d.ts +1 -0
  32. package/dist/core/http/__tests__/compile-path.test.d.ts +1 -0
  33. package/dist/core/http/__tests__/middleware-pipeline.test.d.ts +1 -0
  34. package/dist/core/http/__tests__/request.test.d.ts +1 -0
  35. package/dist/core/http/__tests__/response.test.d.ts +1 -0
  36. package/dist/core/http/__tests__/router-match.test.d.ts +1 -0
  37. package/dist/core/http/adapter-node.d.ts +8 -0
  38. package/dist/core/http/buildRequest.d.ts +2 -0
  39. package/dist/core/http/compile-path.d.ts +13 -0
  40. package/dist/core/http/errors.d.ts +9 -0
  41. package/dist/core/http/http-server.d.ts +7 -0
  42. package/dist/core/http/index.d.ts +0 -0
  43. package/dist/core/http/main.d.ts +0 -0
  44. package/dist/core/http/middleware.d.ts +12 -0
  45. package/dist/core/http/request.d.ts +35 -0
  46. package/dist/core/http/response.d.ts +17 -0
  47. package/dist/core/http/router.d.ts +28 -0
  48. package/dist/core/http/utils.d.ts +0 -0
  49. package/dist/core/id-generator.d.ts +3 -0
  50. package/dist/core/logger.d.ts +29 -0
  51. package/dist/core/router.d.ts +16 -0
  52. package/dist/core/server.d.ts +25 -0
  53. package/dist/core/storage.d.ts +24 -0
  54. package/dist/index.d.ts +1 -0
  55. package/dist/listeners/api/__tests__/api.controller.test.d.ts +1 -0
  56. package/dist/listeners/api/__tests__/api.extractor.test.d.ts +1 -0
  57. package/dist/listeners/api/__tests__/api.listener.test.d.ts +1 -0
  58. package/dist/listeners/api/__tests__/api.routes.test.d.ts +1 -0
  59. package/dist/listeners/api/__tests__/api.sse.test.d.ts +1 -0
  60. package/dist/listeners/api/api.controllers.d.ts +9 -0
  61. package/dist/listeners/api/api.extractor.d.ts +5 -0
  62. package/dist/listeners/api/api.listener.d.ts +17 -0
  63. package/dist/listeners/api/api.routes.d.ts +5 -0
  64. package/dist/listeners/api/api.sse.d.ts +10 -0
  65. package/dist/listeners/dns/__tests__/dns.test.d.ts +1 -0
  66. package/dist/listeners/dns/dns.extractor.d.ts +8 -0
  67. package/dist/listeners/dns/dns.listener.d.ts +15 -0
  68. package/dist/listeners/http/__tests__/http.extractor.test.d.ts +1 -0
  69. package/dist/listeners/http/__tests__/http.listener.test.d.ts +1 -0
  70. package/dist/listeners/http/http.extractor.d.ts +11 -0
  71. package/dist/listeners/http/http.listener.d.ts +17 -0
  72. package/dist/listeners/listener.interface.d.ts +4 -0
  73. package/dist/listeners/smtp/__tests__/smtp.extractor.test.d.ts +1 -0
  74. package/dist/listeners/smtp/__tests__/smtp.listener.test.d.ts +1 -0
  75. package/dist/listeners/smtp/smtp.extractor.d.ts +12 -0
  76. package/dist/listeners/smtp/smtp.listener.d.ts +13 -0
  77. package/dist/listeners/ssrf/__tests__/ssrf.extractor.test.d.ts +1 -0
  78. package/dist/listeners/ssrf/__tests__/ssrf.listener.test.d.ts +1 -0
  79. package/dist/listeners/ssrf/__tests__/ssrf.listener.test.js +4 -16
  80. package/dist/listeners/ssrf/ssrf.extractor.d.ts +10 -0
  81. package/dist/listeners/ssrf/ssrf.listener.d.ts +8 -0
  82. package/dist/listeners/tcp/tcp.extractor.d.ts +4 -0
  83. package/dist/listeners/tcp/tcp.listener.d.ts +18 -0
  84. package/dist/listeners/webhook/__tests__/webhook.extractor.test.d.ts +1 -0
  85. package/dist/listeners/webhook/__tests__/webhook.listener.test.d.ts +1 -0
  86. package/dist/listeners/webhook/webhook.extractor.d.ts +8 -0
  87. package/dist/listeners/webhook/webhook.listener.d.ts +8 -0
  88. package/dist/listeners/websocket/__tests__/websocket.extractor.test.d.ts +1 -0
  89. package/dist/listeners/websocket/__tests__/websocket.listener.test.d.ts +1 -0
  90. package/dist/listeners/websocket/websocket.extractor.d.ts +10 -0
  91. package/dist/listeners/websocket/websocket.listener.d.ts +8 -0
  92. package/dist/storage-adapters/adapters/__tests__/memory.storage.test.d.ts +1 -0
  93. package/dist/storage-adapters/adapters/memory.storage.d.ts +21 -0
  94. package/dist/storage-adapters/adapters/redis.storage.d.ts +0 -0
  95. package/dist/storage-adapters/adapters/sqlite.storage.d.ts +0 -0
  96. package/dist/storage-adapters/storage.interface.d.ts +18 -0
  97. package/dist/types/event.types.d.ts +118 -0
  98. package/dist/utils/token.d.ts +0 -0
  99. package/jest.config.js +14 -11
  100. package/package.json +45 -45
  101. package/sadmin list shadows +9 -9
  102. package/src/api/controllers/__tests__/tasks.controller.test.ts +74 -74
  103. package/src/api/controllers/events.controller.ts +10 -10
  104. package/src/api/controllers/health.controller.ts +7 -7
  105. package/src/api/controllers/tasks.controller.ts +41 -41
  106. package/src/api/dto/__tests__/create-task.dto.test.ts +41 -41
  107. package/src/api/dto/__tests__/filter-tasks.dto.test.ts +35 -35
  108. package/src/api/dto/create-task.dto.ts +33 -33
  109. package/src/api/dto/filter-tasks.dto.ts +33 -33
  110. package/src/api/services/__tests__/events.service.test.ts +41 -41
  111. package/src/api/services/__tests__/tasks.service.test.ts +41 -41
  112. package/src/api/services/events.service.ts +17 -17
  113. package/src/api/services/tasks.service.ts +79 -79
  114. package/src/api/sse/events.stream.ts +90 -90
  115. package/src/core/__tests__/core-router.test.ts +30 -30
  116. package/src/core/__tests__/core-server.test.ts +44 -44
  117. package/src/core/__tests__/event.normalizer.test.ts +56 -56
  118. package/src/core/__tests__/event.router.test.ts +89 -89
  119. package/src/core/__tests__/logger.test.ts +32 -32
  120. package/src/core/__tests__/storage-manager.test.ts +74 -74
  121. package/src/core/event.normalizer.ts +147 -147
  122. package/src/core/event.router.ts +13 -13
  123. package/src/core/http/__tests__/adapter-node.test.ts +52 -52
  124. package/src/core/http/__tests__/body-parser-multipart.test.ts +41 -41
  125. package/src/core/http/__tests__/body-parser-raw.test.ts +28 -28
  126. package/src/core/http/__tests__/body-parser-text.test.ts +28 -28
  127. package/src/core/http/__tests__/compile-path.test.ts +39 -39
  128. package/src/core/http/__tests__/middleware-pipeline.test.ts +51 -51
  129. package/src/core/http/__tests__/request.test.ts +34 -34
  130. package/src/core/http/__tests__/response.test.ts +35 -35
  131. package/src/core/http/__tests__/router-match.test.ts +171 -171
  132. package/src/core/http/adapter-node.ts +51 -51
  133. package/src/core/http/buildRequest.ts +18 -18
  134. package/src/core/http/compile-path.ts +32 -32
  135. package/src/core/http/errors.ts +37 -37
  136. package/src/core/http/http-server.ts +52 -52
  137. package/src/core/http/middleware.ts +160 -160
  138. package/src/core/http/request.ts +55 -55
  139. package/src/core/http/response.ts +93 -93
  140. package/src/core/http/router.ts +138 -138
  141. package/src/core/id-generator.ts +8 -8
  142. package/src/core/logger.ts +113 -113
  143. package/src/core/router.ts +44 -44
  144. package/src/core/server.ts +85 -85
  145. package/src/core/storage.ts +64 -64
  146. package/src/index.ts +89 -89
  147. package/src/listeners/api/__tests__/api.controller.test.ts +116 -116
  148. package/src/listeners/api/__tests__/api.extractor.test.ts +46 -46
  149. package/src/listeners/api/__tests__/api.listener.test.ts +82 -82
  150. package/src/listeners/api/__tests__/api.routes.test.ts +155 -155
  151. package/src/listeners/api/__tests__/api.sse.test.ts +105 -105
  152. package/src/listeners/api/api.controllers.ts +67 -67
  153. package/src/listeners/api/api.extractor.ts +43 -43
  154. package/src/listeners/api/api.listener.ts +50 -50
  155. package/src/listeners/api/api.routes.ts +76 -76
  156. package/src/listeners/api/api.sse.ts +38 -38
  157. package/src/listeners/dns/__tests__/dns.test.ts +118 -118
  158. package/src/listeners/dns/dns.extractor.ts +14 -14
  159. package/src/listeners/dns/dns.listener.ts +61 -61
  160. package/src/listeners/http/__tests__/http.extractor.test.ts +59 -59
  161. package/src/listeners/http/__tests__/http.listener.test.ts +133 -133
  162. package/src/listeners/http/http.extractor.ts +15 -15
  163. package/src/listeners/http/http.listener.ts +110 -110
  164. package/src/listeners/listener.interface.ts +4 -4
  165. package/src/listeners/smtp/__tests__/smtp.extractor.test.ts +69 -69
  166. package/src/listeners/smtp/__tests__/smtp.listener.test.ts +150 -150
  167. package/src/listeners/smtp/smtp.extractor.ts +18 -18
  168. package/src/listeners/smtp/smtp.listener.ts +60 -60
  169. package/src/listeners/ssrf/__tests__/ssrf.extractor.test.ts +41 -41
  170. package/src/listeners/ssrf/__tests__/ssrf.listener.test.ts +87 -98
  171. package/src/listeners/ssrf/ssrf.extractor.ts +14 -14
  172. package/src/listeners/ssrf/ssrf.listener.ts +37 -37
  173. package/src/listeners/tcp/tcp.extractor.ts +16 -16
  174. package/src/listeners/tcp/tcp.listener.ts +61 -61
  175. package/src/listeners/webhook/__tests__/webhook.extractor.test.ts +35 -35
  176. package/src/listeners/webhook/__tests__/webhook.listener.test.ts +122 -122
  177. package/src/listeners/webhook/webhook.extractor.ts +12 -12
  178. package/src/listeners/webhook/webhook.listener.ts +58 -58
  179. package/src/listeners/websocket/__tests__/websocket.extractor.test.ts +33 -33
  180. package/src/listeners/websocket/__tests__/websocket.listener.test.ts +90 -90
  181. package/src/listeners/websocket/websocket.extractor.ts +11 -11
  182. package/src/listeners/websocket/websocket.listener.ts +40 -40
  183. package/src/storage-adapters/adapters/__tests__/memory.storage.test.ts +75 -75
  184. package/src/storage-adapters/adapters/memory.storage.ts +64 -64
  185. package/src/storage-adapters/storage.interface.ts +26 -26
  186. package/src/types/event.types.ts +147 -147
  187. package/tsconfig.json +21 -15
@@ -1,147 +1,147 @@
1
- //
2
- // RAW EVENTS
3
- //
4
- export interface RawEvent {
5
- ip: string;
6
- method: string;
7
- path: string;
8
- headers: Record<string, string | string[] | undefined>;
9
- query: Record<string, any>;
10
- body: any;
11
- raw: any;
12
- }
13
-
14
- export interface RawDnsEvent {
15
- ip: string;
16
- query: string;
17
- recordType: string;
18
- raw: any;
19
- }
20
-
21
- export interface RawSmtpEvent {
22
- ip: string;
23
- from: string;
24
- to: string[];
25
- subject: string;
26
- body: string;
27
- raw: any;
28
- }
29
-
30
- export interface RawTcpEvent {
31
- ip: string;
32
- port: number;
33
- data: string;
34
- raw: any;
35
- }
36
-
37
- export interface RawSsrfEvent {
38
- ip: string;
39
- method: string | undefined;
40
- path: string | undefined;
41
- headers: Record<string, string | string[] | undefined>;
42
- query: Record<string, any>;
43
- raw: any;
44
- }
45
-
46
- export interface RawWebhookEvent {
47
- ip: string;
48
- headers: Record<string, string | string[] | undefined>;
49
- body: any;
50
- raw: any;
51
- }
52
-
53
- export interface RawWebSocketEvent {
54
- ip: string;
55
- message: string;
56
- raw: any;
57
- }
58
-
59
- //
60
- // NORMALIZED EVENTS
61
- //
62
- export interface NormalizedHttpEvent {
63
- id: string;
64
- type: "http";
65
- timestamp: number;
66
- sourceIp: string;
67
- request: {
68
- method: string;
69
- path: string;
70
- headers: Record<string, string | string[] | undefined>;
71
- query: Record<string, any>;
72
- body: any;
73
- };
74
- }
75
-
76
- export interface NormalizedDnsEvent {
77
- id: string;
78
- type: "dns";
79
- timestamp: number;
80
- ip: string;
81
- query: string;
82
- recordType: string;
83
- raw: any;
84
- }
85
-
86
- export interface NormalizedSmtpEvent {
87
- id: string;
88
- type: "smtp";
89
- timestamp: number;
90
- ip: string;
91
- from: string;
92
- to: string[];
93
- subject: string;
94
- body: string;
95
- raw: any;
96
- }
97
-
98
- export interface NormalizedTcpEvent {
99
- id: string;
100
- type: "tcp";
101
- timestamp: number;
102
- ip: string;
103
- port: number;
104
- data: string;
105
- raw: any;
106
- }
107
- export interface NormalizedSsrfEvent {
108
- id: string;
109
- type: "ssrf";
110
- timestamp: number;
111
- sourceIp: string;
112
- request: {
113
- method: string | undefined;
114
- path: string | undefined;
115
- headers: Record<string, string | string[] | undefined>;
116
- query: Record<string, any>;
117
- };
118
- }
119
-
120
- export interface NormalizedWebhookEvent {
121
- id: string;
122
- type: "webhook";
123
- timestamp: number;
124
- sourceIp: string;
125
- headers: Record<string, string | string[] | undefined>;
126
- body: any;
127
- }
128
-
129
- export interface NormalizedWebSocketEvent {
130
- id: string;
131
- type: "websocket";
132
- timestamp: number;
133
- sourceIp: string;
134
- message: string;
135
- }
136
-
137
- //
138
- // UNION
139
- //
140
- export type AnyNormalizedEvent =
141
- | NormalizedHttpEvent
142
- | NormalizedDnsEvent
143
- | NormalizedSmtpEvent
144
- | NormalizedTcpEvent
145
- | NormalizedSsrfEvent
146
- | NormalizedWebhookEvent
147
- | NormalizedWebSocketEvent;
1
+ //
2
+ // RAW EVENTS
3
+ //
4
+ export interface RawEvent {
5
+ ip: string;
6
+ method: string;
7
+ path: string;
8
+ headers: Record<string, string | string[] | undefined>;
9
+ query: Record<string, any>;
10
+ body: any;
11
+ raw: any;
12
+ }
13
+
14
+ export interface RawDnsEvent {
15
+ ip: string;
16
+ query: string;
17
+ recordType: string;
18
+ raw: any;
19
+ }
20
+
21
+ export interface RawSmtpEvent {
22
+ ip: string;
23
+ from: string;
24
+ to: string[];
25
+ subject: string;
26
+ body: string;
27
+ raw: any;
28
+ }
29
+
30
+ export interface RawTcpEvent {
31
+ ip: string;
32
+ port: number;
33
+ data: string;
34
+ raw: any;
35
+ }
36
+
37
+ export interface RawSsrfEvent {
38
+ ip: string;
39
+ method: string | undefined;
40
+ path: string | undefined;
41
+ headers: Record<string, string | string[] | undefined>;
42
+ query: Record<string, any>;
43
+ raw: any;
44
+ }
45
+
46
+ export interface RawWebhookEvent {
47
+ ip: string;
48
+ headers: Record<string, string | string[] | undefined>;
49
+ body: any;
50
+ raw: any;
51
+ }
52
+
53
+ export interface RawWebSocketEvent {
54
+ ip: string;
55
+ message: string;
56
+ raw: any;
57
+ }
58
+
59
+ //
60
+ // NORMALIZED EVENTS
61
+ //
62
+ export interface NormalizedHttpEvent {
63
+ id: string;
64
+ type: "http";
65
+ timestamp: number;
66
+ sourceIp: string;
67
+ request: {
68
+ method: string;
69
+ path: string;
70
+ headers: Record<string, string | string[] | undefined>;
71
+ query: Record<string, any>;
72
+ body: any;
73
+ };
74
+ }
75
+
76
+ export interface NormalizedDnsEvent {
77
+ id: string;
78
+ type: "dns";
79
+ timestamp: number;
80
+ ip: string;
81
+ query: string;
82
+ recordType: string;
83
+ raw: any;
84
+ }
85
+
86
+ export interface NormalizedSmtpEvent {
87
+ id: string;
88
+ type: "smtp";
89
+ timestamp: number;
90
+ ip: string;
91
+ from: string;
92
+ to: string[];
93
+ subject: string;
94
+ body: string;
95
+ raw: any;
96
+ }
97
+
98
+ export interface NormalizedTcpEvent {
99
+ id: string;
100
+ type: "tcp";
101
+ timestamp: number;
102
+ ip: string;
103
+ port: number;
104
+ data: string;
105
+ raw: any;
106
+ }
107
+ export interface NormalizedSsrfEvent {
108
+ id: string;
109
+ type: "ssrf";
110
+ timestamp: number;
111
+ sourceIp: string;
112
+ request: {
113
+ method: string | undefined;
114
+ path: string | undefined;
115
+ headers: Record<string, string | string[] | undefined>;
116
+ query: Record<string, any>;
117
+ };
118
+ }
119
+
120
+ export interface NormalizedWebhookEvent {
121
+ id: string;
122
+ type: "webhook";
123
+ timestamp: number;
124
+ sourceIp: string;
125
+ headers: Record<string, string | string[] | undefined>;
126
+ body: any;
127
+ }
128
+
129
+ export interface NormalizedWebSocketEvent {
130
+ id: string;
131
+ type: "websocket";
132
+ timestamp: number;
133
+ sourceIp: string;
134
+ message: string;
135
+ }
136
+
137
+ //
138
+ // UNION
139
+ //
140
+ export type AnyNormalizedEvent =
141
+ | NormalizedHttpEvent
142
+ | NormalizedDnsEvent
143
+ | NormalizedSmtpEvent
144
+ | NormalizedTcpEvent
145
+ | NormalizedSsrfEvent
146
+ | NormalizedWebhookEvent
147
+ | NormalizedWebSocketEvent;
package/tsconfig.json CHANGED
@@ -1,15 +1,21 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "module": "CommonJS",
5
- "rootDir": "src",
6
- "outDir": "dist",
7
- "strict": true,
8
- "esModuleInterop": true,
9
- "forceConsistentCasingInFileNames": true,
10
- "skipLibCheck": true,
11
- "resolveJsonModule": true
12
- },
13
- "include": ["src"],
14
- "exclude": ["node_modules", "dist"]
15
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "CommonJS",
5
+
6
+ "rootDir": "src",
7
+ "outDir": "dist",
8
+
9
+ "declaration": true,
10
+ "declarationDir": "dist",
11
+ "emitDeclarationOnly": false,
12
+
13
+ "strict": true,
14
+ "esModuleInterop": true,
15
+ "forceConsistentCasingInFileNames": true,
16
+ "skipLibCheck": true,
17
+ "resolveJsonModule": true
18
+ },
19
+ "include": ["src/**/*"],
20
+ "exclude": ["node_modules", "dist"]
21
+ }