@virusis/api-client 0.1.16 → 0.1.19
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/base.d.ts +12 -1
- package/dist/base.js +174 -1
- package/dist/container.d.ts +15 -3
- package/dist/generated/clients/diagnostics-service.d.ts +2 -0
- package/dist/generated/clients/diagnostics-service.js +2 -0
- package/dist/generated/clients/feedbacks-service.d.ts +2 -0
- package/dist/generated/clients/feedbacks-service.js +2 -0
- package/dist/generated/clients/index.d.ts +5 -1
- package/dist/generated/clients/index.js +5 -1
- package/dist/generated/clients/portal-service.d.ts +2 -0
- package/dist/generated/clients/portal-service.js +2 -0
- package/dist/generated/clients/risk-service.d.ts +2 -0
- package/dist/generated/clients/risk-service.js +2 -0
- package/dist/generated/clients-rx/diagnostics-service-rx.d.ts +16 -0
- package/dist/generated/clients-rx/diagnostics-service-rx.js +12 -0
- package/dist/generated/clients-rx/feedbacks-service-rx.d.ts +16 -0
- package/dist/generated/clients-rx/feedbacks-service-rx.js +12 -0
- package/dist/generated/clients-rx/index.d.ts +5 -1
- package/dist/generated/clients-rx/index.js +5 -1
- package/dist/generated/clients-rx/portal-service-rx.d.ts +16 -0
- package/dist/generated/clients-rx/portal-service-rx.js +12 -0
- package/dist/generated/clients-rx/risk-service-rx.d.ts +16 -0
- package/dist/generated/clients-rx/risk-service-rx.js +12 -0
- package/dist/generated/index.d.ts +398 -67
- package/dist/generated/index.js +811 -138
- package/dist/generated/models/access-token-i-data-result.d.ts +4 -0
- package/dist/generated/models/access-token-i-data-result.js +1 -0
- package/dist/generated/models/access-token.d.ts +4 -0
- package/dist/generated/models/access-token.js +1 -0
- package/dist/generated/models/application-click-event-batch-dto.d.ts +4 -0
- package/dist/generated/models/application-click-event-batch-dto.js +1 -0
- package/dist/generated/models/application-click-event-create-dto.d.ts +4 -0
- package/dist/generated/models/application-click-event-create-dto.js +1 -0
- package/dist/generated/models/feedback-category-dto-list-i-data-result.d.ts +4 -0
- package/dist/generated/models/feedback-category-dto-list-i-data-result.js +1 -0
- package/dist/generated/models/feedback-category-dto.d.ts +4 -0
- package/dist/generated/models/feedback-category-dto.js +1 -0
- package/dist/generated/models/index.d.ts +17 -0
- package/dist/generated/models/index.js +17 -0
- package/dist/generated/models/otp-generate-result.d.ts +4 -0
- package/dist/generated/models/otp-generate-result.js +1 -0
- package/dist/generated/models/queue-monitor-workers-response.d.ts +4 -0
- package/dist/generated/models/queue-monitor-workers-response.js +1 -0
- package/dist/generated/models/risk-flag-request-dto.d.ts +4 -0
- package/dist/generated/models/risk-flag-request-dto.js +1 -0
- package/dist/generated/models/risk-signal-avg-dto.d.ts +4 -0
- package/dist/generated/models/risk-signal-avg-dto.js +1 -0
- package/dist/generated/models/risk-signal-client-dto.d.ts +4 -0
- package/dist/generated/models/risk-signal-client-dto.js +1 -0
- package/dist/generated/models/risk-signal-counts-dto.d.ts +4 -0
- package/dist/generated/models/risk-signal-counts-dto.js +1 -0
- package/dist/generated/models/risk-signals-dto.d.ts +4 -0
- package/dist/generated/models/risk-signals-dto.js +1 -0
- package/dist/generated/models/risk-state-dto.d.ts +4 -0
- package/dist/generated/models/risk-state-dto.js +1 -0
- package/dist/generated/models/risk-verify-dto.d.ts +4 -0
- package/dist/generated/models/risk-verify-dto.js +1 -0
- package/dist/generated/models/scan-status-dto-i-data-result.d.ts +4 -0
- package/dist/generated/models/scan-status-dto-i-data-result.js +1 -0
- package/dist/generated/models/scan-status-dto.d.ts +4 -0
- package/dist/generated/models/scan-status-dto.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/rx.d.ts +30 -6
- package/dist/security/index.d.ts +4 -0
- package/dist/security/index.js +2 -0
- package/dist/security/input-security-policy.d.ts +23 -0
- package/dist/security/input-security-policy.js +5 -0
- package/dist/security/input-security-service.d.ts +3 -0
- package/dist/security/input-security-service.js +153 -0
- package/dist/security/request-sanitizer.d.ts +18 -0
- package/dist/security/request-sanitizer.js +242 -0
- package/package.json +9 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AccessTokenIDataResult as __AccessTokenIDataResult } from "../index.js";
|
|
2
|
+
export declare const AccessTokenIDataResult: __AccessTokenIDataResult;
|
|
3
|
+
export type AccessTokenIDataResult = __AccessTokenIDataResult;
|
|
4
|
+
export type accessTokenIDataResult = __AccessTokenIDataResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const AccessTokenIDataResult = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const AccessToken = {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ApplicationClickEventBatchDto as __ApplicationClickEventBatchDto } from "../index.js";
|
|
2
|
+
export declare const ApplicationClickEventBatchDto: __ApplicationClickEventBatchDto;
|
|
3
|
+
export type ApplicationClickEventBatchDto = __ApplicationClickEventBatchDto;
|
|
4
|
+
export type applicationClickEventBatchDto = __ApplicationClickEventBatchDto;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ApplicationClickEventBatchDto = {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ApplicationClickEventCreateDto as __ApplicationClickEventCreateDto } from "../index.js";
|
|
2
|
+
export declare const ApplicationClickEventCreateDto: __ApplicationClickEventCreateDto;
|
|
3
|
+
export type ApplicationClickEventCreateDto = __ApplicationClickEventCreateDto;
|
|
4
|
+
export type applicationClickEventCreateDto = __ApplicationClickEventCreateDto;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ApplicationClickEventCreateDto = {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FeedbackCategoryDtoListIDataResult as __FeedbackCategoryDtoListIDataResult } from "../index.js";
|
|
2
|
+
export declare const FeedbackCategoryDtoListIDataResult: __FeedbackCategoryDtoListIDataResult;
|
|
3
|
+
export type FeedbackCategoryDtoListIDataResult = __FeedbackCategoryDtoListIDataResult;
|
|
4
|
+
export type feedbackCategoryDtoListIDataResult = __FeedbackCategoryDtoListIDataResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const FeedbackCategoryDtoListIDataResult = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const FeedbackCategoryDto = {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from "./access-token.js";
|
|
2
|
+
export * from "./access-token-i-data-result.js";
|
|
1
3
|
export * from "./aggregate-exception.js";
|
|
2
4
|
export * from "./app-state-log.js";
|
|
3
5
|
export * from "./app-state-log-for-table-dto.js";
|
|
@@ -9,6 +11,8 @@ export * from "./app-state-log-for-table-filter-data-table-query.js";
|
|
|
9
11
|
export * from "./app-state-log-i-data-result.js";
|
|
10
12
|
export * from "./app-state-log-list-i-data-result.js";
|
|
11
13
|
export * from "./application.js";
|
|
14
|
+
export * from "./application-click-event-batch-dto.js";
|
|
15
|
+
export * from "./application-click-event-create-dto.js";
|
|
12
16
|
export * from "./application-for-table-dto.js";
|
|
13
17
|
export * from "./application-for-table-dto-list-i-data-result.js";
|
|
14
18
|
export * from "./application-for-table-dto-list-result-filter.js";
|
|
@@ -56,6 +60,8 @@ export * from "./device-list-i-data-result.js";
|
|
|
56
60
|
export * from "./event-attributes.js";
|
|
57
61
|
export * from "./event-info.js";
|
|
58
62
|
export * from "./exception.js";
|
|
63
|
+
export * from "./feedback-category-dto.js";
|
|
64
|
+
export * from "./feedback-category-dto-list-i-data-result.js";
|
|
59
65
|
export * from "./field-attributes.js";
|
|
60
66
|
export * from "./field-info.js";
|
|
61
67
|
export * from "./field-mapping-result-paginate-dto.js";
|
|
@@ -135,12 +141,21 @@ export * from "./operation-claim-for-table-filter.js";
|
|
|
135
141
|
export * from "./operation-claim-for-table-filter-data-table-query.js";
|
|
136
142
|
export * from "./operation-claim-i-data-result.js";
|
|
137
143
|
export * from "./operation-claim-list-i-data-result.js";
|
|
144
|
+
export * from "./otp-generate-result.js";
|
|
138
145
|
export * from "./parameter-attributes.js";
|
|
139
146
|
export * from "./parameter-info.js";
|
|
140
147
|
export * from "./process-scan-scores-request.js";
|
|
141
148
|
export * from "./process-scan-static-result-request.js";
|
|
142
149
|
export * from "./property-attributes.js";
|
|
143
150
|
export * from "./property-info.js";
|
|
151
|
+
export * from "./queue-monitor-workers-response.js";
|
|
152
|
+
export * from "./risk-flag-request-dto.js";
|
|
153
|
+
export * from "./risk-signal-avg-dto.js";
|
|
154
|
+
export * from "./risk-signal-client-dto.js";
|
|
155
|
+
export * from "./risk-signal-counts-dto.js";
|
|
156
|
+
export * from "./risk-signals-dto.js";
|
|
157
|
+
export * from "./risk-state-dto.js";
|
|
158
|
+
export * from "./risk-verify-dto.js";
|
|
144
159
|
export * from "./runtime-field-handle.js";
|
|
145
160
|
export * from "./runtime-method-handle.js";
|
|
146
161
|
export * from "./runtime-type-handle.js";
|
|
@@ -487,6 +502,8 @@ export * from "./scan-static-section-for-table-filter.js";
|
|
|
487
502
|
export * from "./scan-static-section-for-table-filter-data-table-query.js";
|
|
488
503
|
export * from "./scan-static-section-i-data-result.js";
|
|
489
504
|
export * from "./scan-static-section-list-i-data-result.js";
|
|
505
|
+
export * from "./scan-status-dto.js";
|
|
506
|
+
export * from "./scan-status-dto-i-data-result.js";
|
|
490
507
|
export * from "./scan-summary-dto.js";
|
|
491
508
|
export * from "./scan-summary-dto-i-data-result.js";
|
|
492
509
|
export * from "./scan-threat-detection.js";
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from "./access-token.js";
|
|
2
|
+
export * from "./access-token-i-data-result.js";
|
|
1
3
|
export * from "./aggregate-exception.js";
|
|
2
4
|
export * from "./app-state-log.js";
|
|
3
5
|
export * from "./app-state-log-for-table-dto.js";
|
|
@@ -9,6 +11,8 @@ export * from "./app-state-log-for-table-filter-data-table-query.js";
|
|
|
9
11
|
export * from "./app-state-log-i-data-result.js";
|
|
10
12
|
export * from "./app-state-log-list-i-data-result.js";
|
|
11
13
|
export * from "./application.js";
|
|
14
|
+
export * from "./application-click-event-batch-dto.js";
|
|
15
|
+
export * from "./application-click-event-create-dto.js";
|
|
12
16
|
export * from "./application-for-table-dto.js";
|
|
13
17
|
export * from "./application-for-table-dto-list-i-data-result.js";
|
|
14
18
|
export * from "./application-for-table-dto-list-result-filter.js";
|
|
@@ -56,6 +60,8 @@ export * from "./device-list-i-data-result.js";
|
|
|
56
60
|
export * from "./event-attributes.js";
|
|
57
61
|
export * from "./event-info.js";
|
|
58
62
|
export * from "./exception.js";
|
|
63
|
+
export * from "./feedback-category-dto.js";
|
|
64
|
+
export * from "./feedback-category-dto-list-i-data-result.js";
|
|
59
65
|
export * from "./field-attributes.js";
|
|
60
66
|
export * from "./field-info.js";
|
|
61
67
|
export * from "./field-mapping-result-paginate-dto.js";
|
|
@@ -135,12 +141,21 @@ export * from "./operation-claim-for-table-filter.js";
|
|
|
135
141
|
export * from "./operation-claim-for-table-filter-data-table-query.js";
|
|
136
142
|
export * from "./operation-claim-i-data-result.js";
|
|
137
143
|
export * from "./operation-claim-list-i-data-result.js";
|
|
144
|
+
export * from "./otp-generate-result.js";
|
|
138
145
|
export * from "./parameter-attributes.js";
|
|
139
146
|
export * from "./parameter-info.js";
|
|
140
147
|
export * from "./process-scan-scores-request.js";
|
|
141
148
|
export * from "./process-scan-static-result-request.js";
|
|
142
149
|
export * from "./property-attributes.js";
|
|
143
150
|
export * from "./property-info.js";
|
|
151
|
+
export * from "./queue-monitor-workers-response.js";
|
|
152
|
+
export * from "./risk-flag-request-dto.js";
|
|
153
|
+
export * from "./risk-signal-avg-dto.js";
|
|
154
|
+
export * from "./risk-signal-client-dto.js";
|
|
155
|
+
export * from "./risk-signal-counts-dto.js";
|
|
156
|
+
export * from "./risk-signals-dto.js";
|
|
157
|
+
export * from "./risk-state-dto.js";
|
|
158
|
+
export * from "./risk-verify-dto.js";
|
|
144
159
|
export * from "./runtime-field-handle.js";
|
|
145
160
|
export * from "./runtime-method-handle.js";
|
|
146
161
|
export * from "./runtime-type-handle.js";
|
|
@@ -487,6 +502,8 @@ export * from "./scan-static-section-for-table-filter.js";
|
|
|
487
502
|
export * from "./scan-static-section-for-table-filter-data-table-query.js";
|
|
488
503
|
export * from "./scan-static-section-i-data-result.js";
|
|
489
504
|
export * from "./scan-static-section-list-i-data-result.js";
|
|
505
|
+
export * from "./scan-status-dto.js";
|
|
506
|
+
export * from "./scan-status-dto-i-data-result.js";
|
|
490
507
|
export * from "./scan-summary-dto.js";
|
|
491
508
|
export * from "./scan-summary-dto-i-data-result.js";
|
|
492
509
|
export * from "./scan-threat-detection.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const OtpGenerateResult = {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { QueueMonitorWorkersResponse as __QueueMonitorWorkersResponse } from "../index.js";
|
|
2
|
+
export declare const QueueMonitorWorkersResponse: __QueueMonitorWorkersResponse;
|
|
3
|
+
export type QueueMonitorWorkersResponse = __QueueMonitorWorkersResponse;
|
|
4
|
+
export type queueMonitorWorkersResponse = __QueueMonitorWorkersResponse;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const QueueMonitorWorkersResponse = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const RiskFlagRequestDto = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const RiskSignalAvgDto = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const RiskSignalClientDto = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const RiskSignalCountsDto = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const RiskSignalsDto = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const RiskStateDto = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const RiskVerifyDto = {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ScanStatusDtoIDataResult as __ScanStatusDtoIDataResult } from "../index.js";
|
|
2
|
+
export declare const ScanStatusDtoIDataResult: __ScanStatusDtoIDataResult;
|
|
3
|
+
export type ScanStatusDtoIDataResult = __ScanStatusDtoIDataResult;
|
|
4
|
+
export type scanStatusDtoIDataResult = __ScanStatusDtoIDataResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ScanStatusDtoIDataResult = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ScanStatusDto = {};
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/rx.d.ts
CHANGED
|
@@ -36,6 +36,15 @@ export declare function createAllClients(cfg: ApiClientConfig, baseUrl?: string,
|
|
|
36
36
|
DevicesClient: ClientCtors.DevicesClient;
|
|
37
37
|
DevicesService: ClientCtors.DevicesClient;
|
|
38
38
|
devicesService: ClientCtors.DevicesClient;
|
|
39
|
+
DiagnosticsClient: ClientCtors.DiagnosticsClient;
|
|
40
|
+
DiagnosticsService: ClientCtors.DiagnosticsClient;
|
|
41
|
+
diagnosticsService: ClientCtors.DiagnosticsClient;
|
|
42
|
+
FeedbacksClient: ClientCtors.FeedbacksClient;
|
|
43
|
+
FeedbacksService: ClientCtors.FeedbacksClient;
|
|
44
|
+
feedbacksService: ClientCtors.FeedbacksClient;
|
|
45
|
+
ApiClient: ClientCtors.ApiClient;
|
|
46
|
+
ApiService: ClientCtors.ApiClient;
|
|
47
|
+
apiService: ClientCtors.ApiClient;
|
|
39
48
|
InteractionTrackersClient: ClientCtors.InteractionTrackersClient;
|
|
40
49
|
InteractionTrackersService: ClientCtors.InteractionTrackersClient;
|
|
41
50
|
interactionTrackersService: ClientCtors.InteractionTrackersClient;
|
|
@@ -54,6 +63,9 @@ export declare function createAllClients(cfg: ApiClientConfig, baseUrl?: string,
|
|
|
54
63
|
OperationClaimsClient: ClientCtors.OperationClaimsClient;
|
|
55
64
|
OperationClaimsService: ClientCtors.OperationClaimsClient;
|
|
56
65
|
operationClaimsService: ClientCtors.OperationClaimsClient;
|
|
66
|
+
PortalClient: ClientCtors.PortalClient;
|
|
67
|
+
PortalService: ClientCtors.PortalClient;
|
|
68
|
+
portalService: ClientCtors.PortalClient;
|
|
57
69
|
QueueMonitorClient: ClientCtors.QueueMonitorClient;
|
|
58
70
|
QueueMonitorService: ClientCtors.QueueMonitorClient;
|
|
59
71
|
queueMonitorService: ClientCtors.QueueMonitorClient;
|
|
@@ -63,6 +75,9 @@ export declare function createAllClients(cfg: ApiClientConfig, baseUrl?: string,
|
|
|
63
75
|
HealthClient: ClientCtors.HealthClient;
|
|
64
76
|
HealthService: ClientCtors.HealthClient;
|
|
65
77
|
healthService: ClientCtors.HealthClient;
|
|
78
|
+
RiskClient: ClientCtors.RiskClient;
|
|
79
|
+
RiskService: ClientCtors.RiskClient;
|
|
80
|
+
riskService: ClientCtors.RiskClient;
|
|
66
81
|
ScanApiBusSourcesClient: ClientCtors.ScanApiBusSourcesClient;
|
|
67
82
|
ScanApiBusSourcesService: ClientCtors.ScanApiBusSourcesClient;
|
|
68
83
|
scanApiBusSourcesService: ClientCtors.ScanApiBusSourcesClient;
|
|
@@ -183,9 +198,6 @@ export declare function createAllClients(cfg: ApiClientConfig, baseUrl?: string,
|
|
|
183
198
|
ScanVisibilityTypesClient: ClientCtors.ScanVisibilityTypesClient;
|
|
184
199
|
ScanVisibilityTypesService: ClientCtors.ScanVisibilityTypesClient;
|
|
185
200
|
scanVisibilityTypesService: ClientCtors.ScanVisibilityTypesClient;
|
|
186
|
-
ApiClient: ClientCtors.ApiClient;
|
|
187
|
-
ApiService: ClientCtors.ApiClient;
|
|
188
|
-
apiService: ClientCtors.ApiClient;
|
|
189
201
|
InternalClient: ClientCtors.InternalClient;
|
|
190
202
|
InternalService: ClientCtors.InternalClient;
|
|
191
203
|
internalService: ClientCtors.InternalClient;
|
|
@@ -263,6 +275,15 @@ export declare function createAllRxClients(cfg: ApiClientConfig, baseUrl?: strin
|
|
|
263
275
|
DevicesClient: Rxified<ClientCtors.DevicesClient>;
|
|
264
276
|
DevicesService: Rxified<ClientCtors.DevicesClient>;
|
|
265
277
|
devicesService: Rxified<ClientCtors.DevicesClient>;
|
|
278
|
+
DiagnosticsClient: Rxified<ClientCtors.DiagnosticsClient>;
|
|
279
|
+
DiagnosticsService: Rxified<ClientCtors.DiagnosticsClient>;
|
|
280
|
+
diagnosticsService: Rxified<ClientCtors.DiagnosticsClient>;
|
|
281
|
+
FeedbacksClient: Rxified<ClientCtors.FeedbacksClient>;
|
|
282
|
+
FeedbacksService: Rxified<ClientCtors.FeedbacksClient>;
|
|
283
|
+
feedbacksService: Rxified<ClientCtors.FeedbacksClient>;
|
|
284
|
+
ApiClient: Rxified<ClientCtors.ApiClient>;
|
|
285
|
+
ApiService: Rxified<ClientCtors.ApiClient>;
|
|
286
|
+
apiService: Rxified<ClientCtors.ApiClient>;
|
|
266
287
|
InteractionTrackersClient: Rxified<ClientCtors.InteractionTrackersClient>;
|
|
267
288
|
InteractionTrackersService: Rxified<ClientCtors.InteractionTrackersClient>;
|
|
268
289
|
interactionTrackersService: Rxified<ClientCtors.InteractionTrackersClient>;
|
|
@@ -281,6 +302,9 @@ export declare function createAllRxClients(cfg: ApiClientConfig, baseUrl?: strin
|
|
|
281
302
|
OperationClaimsClient: Rxified<ClientCtors.OperationClaimsClient>;
|
|
282
303
|
OperationClaimsService: Rxified<ClientCtors.OperationClaimsClient>;
|
|
283
304
|
operationClaimsService: Rxified<ClientCtors.OperationClaimsClient>;
|
|
305
|
+
PortalClient: Rxified<ClientCtors.PortalClient>;
|
|
306
|
+
PortalService: Rxified<ClientCtors.PortalClient>;
|
|
307
|
+
portalService: Rxified<ClientCtors.PortalClient>;
|
|
284
308
|
QueueMonitorClient: Rxified<ClientCtors.QueueMonitorClient>;
|
|
285
309
|
QueueMonitorService: Rxified<ClientCtors.QueueMonitorClient>;
|
|
286
310
|
queueMonitorService: Rxified<ClientCtors.QueueMonitorClient>;
|
|
@@ -290,6 +314,9 @@ export declare function createAllRxClients(cfg: ApiClientConfig, baseUrl?: strin
|
|
|
290
314
|
HealthClient: Rxified<ClientCtors.HealthClient>;
|
|
291
315
|
HealthService: Rxified<ClientCtors.HealthClient>;
|
|
292
316
|
healthService: Rxified<ClientCtors.HealthClient>;
|
|
317
|
+
RiskClient: Rxified<ClientCtors.RiskClient>;
|
|
318
|
+
RiskService: Rxified<ClientCtors.RiskClient>;
|
|
319
|
+
riskService: Rxified<ClientCtors.RiskClient>;
|
|
293
320
|
ScanApiBusSourcesClient: Rxified<ClientCtors.ScanApiBusSourcesClient>;
|
|
294
321
|
ScanApiBusSourcesService: Rxified<ClientCtors.ScanApiBusSourcesClient>;
|
|
295
322
|
scanApiBusSourcesService: Rxified<ClientCtors.ScanApiBusSourcesClient>;
|
|
@@ -410,9 +437,6 @@ export declare function createAllRxClients(cfg: ApiClientConfig, baseUrl?: strin
|
|
|
410
437
|
ScanVisibilityTypesClient: Rxified<ClientCtors.ScanVisibilityTypesClient>;
|
|
411
438
|
ScanVisibilityTypesService: Rxified<ClientCtors.ScanVisibilityTypesClient>;
|
|
412
439
|
scanVisibilityTypesService: Rxified<ClientCtors.ScanVisibilityTypesClient>;
|
|
413
|
-
ApiClient: Rxified<ClientCtors.ApiClient>;
|
|
414
|
-
ApiService: Rxified<ClientCtors.ApiClient>;
|
|
415
|
-
apiService: Rxified<ClientCtors.ApiClient>;
|
|
416
440
|
InternalClient: Rxified<ClientCtors.InternalClient>;
|
|
417
441
|
InternalService: Rxified<ClientCtors.InternalClient>;
|
|
418
442
|
internalService: Rxified<ClientCtors.InternalClient>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { InputPolicyKind, ThreatType, ThreatDetail, InputSecurityResult, InputSecurityPolicy, } from "./input-security-policy.js";
|
|
2
|
+
export { sanitize, detect } from "./input-security-service.js";
|
|
3
|
+
export { validatePath, validateAbsoluteUrl, sanitizeBody, sanitizeFormDataFileName, sanitizeHeaderValue, } from "./request-sanitizer.js";
|
|
4
|
+
export type { SanitizeBodyResult } from "./request-sanitizer.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input Security Policy types for the API client.
|
|
3
|
+
* Aligned with VirusProof-main Core InputPolicyKind.
|
|
4
|
+
*/
|
|
5
|
+
export type InputPolicyKind = "scanName" | "url" | "ip" | "sha256" | "sha1" | "md5" | "email" | "freeTextShort" | "freeTextLong" | "scanDisplayName" | "otp" | "captchaToken" | "password" | "enum" | "date" | "fileName" | "routeSegment" | "queryText" | "headerValue" | "guid" | "scanMode" | "engineIdsJson" | "analysisIdsJson" | "workerPayload" | "jsonPayload";
|
|
6
|
+
export type ThreatType = "xss" | "sql-injection" | "nosql-injection" | "ssti" | "command-injection" | "path-traversal" | "log-injection" | "header-injection" | "ssrf" | "prototype-pollution";
|
|
7
|
+
export interface ThreatDetail {
|
|
8
|
+
type: ThreatType;
|
|
9
|
+
severity: "low" | "medium" | "high" | "critical";
|
|
10
|
+
message: string;
|
|
11
|
+
}
|
|
12
|
+
export interface InputSecurityResult {
|
|
13
|
+
sanitized: string;
|
|
14
|
+
modified: boolean;
|
|
15
|
+
blocked: boolean;
|
|
16
|
+
detectedThreats: ThreatDetail[];
|
|
17
|
+
}
|
|
18
|
+
export interface InputSecurityPolicy {
|
|
19
|
+
kind: InputPolicyKind;
|
|
20
|
+
maxLength: number;
|
|
21
|
+
sanitizerChain: ThreatType[];
|
|
22
|
+
blockOnDetection: boolean;
|
|
23
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { InputPolicyKind, InputSecurityResult, ThreatDetail } from "./input-security-policy.js";
|
|
2
|
+
export declare function sanitize(kind: InputPolicyKind, value: string | null | undefined, fieldName?: string): InputSecurityResult;
|
|
3
|
+
export declare function detect(kind: InputPolicyKind, value: string): ThreatDetail[];
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight client-side input security service.
|
|
3
|
+
* NOT authoritative — server is the trust boundary.
|
|
4
|
+
* This provides early rejection and UX feedback.
|
|
5
|
+
*/
|
|
6
|
+
// ─── Pattern definitions ────────────────────────────────────────
|
|
7
|
+
const XSS_PATTERNS = [
|
|
8
|
+
/<script\b/i,
|
|
9
|
+
/javascript\s*:/i,
|
|
10
|
+
/on(?:load|error|click|mouse|focus|blur|change|submit)\s*=/i,
|
|
11
|
+
/<\s*(?:iframe|object|embed|svg|math|form|input)\b/i,
|
|
12
|
+
/expression\s*\(/i,
|
|
13
|
+
];
|
|
14
|
+
const SQL_PATTERNS = [
|
|
15
|
+
/'\s*(?:OR|AND)\s+.+?(?:=|--|;)/i,
|
|
16
|
+
/;\s*(?:DROP|ALTER|DELETE|INSERT|UPDATE|EXEC)\b/i,
|
|
17
|
+
/\bUNION\s+(?:ALL\s+)?SELECT\b/i,
|
|
18
|
+
/\b(?:WAITFOR\s+DELAY|BENCHMARK\s*\(|SLEEP\s*\()/i,
|
|
19
|
+
/\bINFORMATION_SCHEMA\b/i,
|
|
20
|
+
/\b(?:OrderBy|Where|FromSqlRaw|ExecuteSqlRaw)\s*\(/i,
|
|
21
|
+
];
|
|
22
|
+
const NOSQL_PATTERNS = [
|
|
23
|
+
/\$\s*(?:ne|gt|gte|lt|lte|in|nin|exists|regex|where|or|and)\b/i,
|
|
24
|
+
/\{\s*"\$/,
|
|
25
|
+
];
|
|
26
|
+
const SSTI_PATTERNS = [/\{\{.*?\}\}/, /\$\{.*?\}/, /\{%.*?%\}/];
|
|
27
|
+
const CMD_PATTERNS = [
|
|
28
|
+
/[;&|`]/,
|
|
29
|
+
/\$\(/,
|
|
30
|
+
/\b(?:whoami|cat|wget|curl|bash|sh|rm|nc)\b/i,
|
|
31
|
+
];
|
|
32
|
+
const PATH_PATTERNS = [
|
|
33
|
+
/\.\.[/\\]/,
|
|
34
|
+
/%2e%2e[%2f%5c/\\]/i,
|
|
35
|
+
/%00/,
|
|
36
|
+
/\x00/,
|
|
37
|
+
];
|
|
38
|
+
const CRLF_PATTERN = /[\r\n]/;
|
|
39
|
+
const CONTROL_CHARS = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/;
|
|
40
|
+
const PROTOTYPE_POLLUTION_PATTERNS = [
|
|
41
|
+
/"__proto__"\s*:/,
|
|
42
|
+
/"constructor"\s*:/,
|
|
43
|
+
/"prototype"\s*:/,
|
|
44
|
+
/__proto__/,
|
|
45
|
+
];
|
|
46
|
+
const SSRF_PATTERNS = [
|
|
47
|
+
/^(?:javascript|data|file|vbscript|ftp|gopher|dict|ldap):/i,
|
|
48
|
+
/:\/\/(?:localhost|127\.0\.0\.1|\[::1\])/i,
|
|
49
|
+
/:\/\/169\.254\.169\.254/,
|
|
50
|
+
/:\/\/100\.100\.100\.200/,
|
|
51
|
+
/:\/\/metadata\.google\.internal/i,
|
|
52
|
+
/:\/\/10\.\d{1,3}\.\d{1,3}\.\d{1,3}/,
|
|
53
|
+
/:\/\/172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}/,
|
|
54
|
+
/:\/\/192\.168\.\d{1,3}\.\d{1,3}/,
|
|
55
|
+
/:\/\/[^/]*@/, // user:pass@host
|
|
56
|
+
];
|
|
57
|
+
const POLICIES = {
|
|
58
|
+
scanName: { maxLength: 128, block: true, checks: ["xss", "sql-injection", "command-injection", "ssti", "path-traversal", "log-injection", "header-injection"] },
|
|
59
|
+
url: { maxLength: 2048, block: true, checks: ["xss", "command-injection", "path-traversal", "header-injection", "ssrf"] },
|
|
60
|
+
ip: { maxLength: 45, block: true, checks: ["command-injection", "log-injection"] },
|
|
61
|
+
sha256: { maxLength: 64, block: true, checks: ["xss", "sql-injection", "command-injection", "path-traversal", "log-injection"] },
|
|
62
|
+
sha1: { maxLength: 40, block: true, checks: ["xss", "sql-injection", "command-injection", "path-traversal", "log-injection"] },
|
|
63
|
+
md5: { maxLength: 32, block: true, checks: ["xss", "sql-injection", "command-injection", "path-traversal", "log-injection"] },
|
|
64
|
+
email: { maxLength: 254, block: true, checks: ["xss", "sql-injection", "command-injection", "header-injection"] },
|
|
65
|
+
freeTextShort: { maxLength: 256, block: false, checks: ["xss", "sql-injection", "nosql-injection", "ssti", "command-injection", "path-traversal", "log-injection", "header-injection"] },
|
|
66
|
+
freeTextLong: { maxLength: 5000, block: false, checks: ["xss", "sql-injection", "nosql-injection", "ssti", "command-injection", "path-traversal", "log-injection", "header-injection"] },
|
|
67
|
+
scanDisplayName: { maxLength: 512, block: false, checks: ["xss", "sql-injection", "nosql-injection", "ssti", "command-injection", "path-traversal", "log-injection", "header-injection"] },
|
|
68
|
+
otp: { maxLength: 10, block: true, checks: ["sql-injection", "header-injection"] },
|
|
69
|
+
captchaToken: { maxLength: 4096, block: false, checks: [] },
|
|
70
|
+
password: { maxLength: 256, block: false, checks: [] },
|
|
71
|
+
enum: { maxLength: 64, block: true, checks: ["sql-injection", "command-injection", "log-injection"] },
|
|
72
|
+
date: { maxLength: 32, block: true, checks: ["sql-injection", "command-injection"] },
|
|
73
|
+
fileName: { maxLength: 255, block: true, checks: ["path-traversal", "command-injection", "xss", "log-injection"] },
|
|
74
|
+
routeSegment: { maxLength: 256, block: true, checks: ["path-traversal", "sql-injection", "command-injection", "header-injection"] },
|
|
75
|
+
queryText: { maxLength: 512, block: false, checks: ["xss", "sql-injection", "nosql-injection", "ssti", "command-injection", "path-traversal"] },
|
|
76
|
+
headerValue: { maxLength: 8192, block: true, checks: ["header-injection", "log-injection"] },
|
|
77
|
+
guid: { maxLength: 36, block: true, checks: ["sql-injection", "log-injection"] },
|
|
78
|
+
scanMode: { maxLength: 16, block: true, checks: ["sql-injection", "command-injection", "log-injection"] },
|
|
79
|
+
engineIdsJson: { maxLength: 4096, block: true, checks: ["nosql-injection", "sql-injection", "xss", "command-injection", "log-injection", "prototype-pollution"] },
|
|
80
|
+
analysisIdsJson: { maxLength: 8192, block: true, checks: ["nosql-injection", "sql-injection", "xss", "command-injection", "log-injection", "prototype-pollution"] },
|
|
81
|
+
workerPayload: { maxLength: 65536, block: true, checks: ["sql-injection", "nosql-injection", "command-injection", "xss", "ssti", "log-injection", "header-injection", "prototype-pollution"] },
|
|
82
|
+
jsonPayload: { maxLength: 65536, block: false, checks: ["sql-injection", "nosql-injection", "xss", "ssti", "command-injection", "log-injection", "prototype-pollution"] },
|
|
83
|
+
};
|
|
84
|
+
// ─── Core logic ─────────────────────────────────────────────────
|
|
85
|
+
function checkPatterns(input, type) {
|
|
86
|
+
const patterns = type === "xss" ? XSS_PATTERNS
|
|
87
|
+
: type === "sql-injection" ? SQL_PATTERNS
|
|
88
|
+
: type === "nosql-injection" ? NOSQL_PATTERNS
|
|
89
|
+
: type === "ssti" ? SSTI_PATTERNS
|
|
90
|
+
: type === "command-injection" ? CMD_PATTERNS
|
|
91
|
+
: type === "path-traversal" ? PATH_PATTERNS
|
|
92
|
+
: type === "log-injection" ? [CRLF_PATTERN]
|
|
93
|
+
: type === "header-injection" ? [CRLF_PATTERN, CONTROL_CHARS]
|
|
94
|
+
: type === "ssrf" ? SSRF_PATTERNS
|
|
95
|
+
: type === "prototype-pollution" ? PROTOTYPE_POLLUTION_PATTERNS
|
|
96
|
+
: [];
|
|
97
|
+
for (const p of patterns) {
|
|
98
|
+
if (p.test(input)) {
|
|
99
|
+
return {
|
|
100
|
+
type,
|
|
101
|
+
severity: type === "sql-injection" || type === "command-injection" || type === "ssrf" || type === "prototype-pollution" ? "critical" : "high",
|
|
102
|
+
message: `${type} pattern detected`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
export function sanitize(kind, value, fieldName = "") {
|
|
109
|
+
if (!value) {
|
|
110
|
+
return { sanitized: value ?? "", modified: false, blocked: false, detectedThreats: [] };
|
|
111
|
+
}
|
|
112
|
+
const policy = POLICIES[kind];
|
|
113
|
+
let current = value.trim();
|
|
114
|
+
let modified = false;
|
|
115
|
+
// Max length
|
|
116
|
+
if (current.length > policy.maxLength) {
|
|
117
|
+
current = current.slice(0, policy.maxLength);
|
|
118
|
+
modified = true;
|
|
119
|
+
}
|
|
120
|
+
// CR/LF sanitize for all
|
|
121
|
+
if (CRLF_PATTERN.test(current)) {
|
|
122
|
+
current = current.replace(/[\r\n]/g, " ");
|
|
123
|
+
modified = true;
|
|
124
|
+
}
|
|
125
|
+
if (CONTROL_CHARS.test(current)) {
|
|
126
|
+
current = current.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, "");
|
|
127
|
+
modified = true;
|
|
128
|
+
}
|
|
129
|
+
// Run checks
|
|
130
|
+
const threats = [];
|
|
131
|
+
for (const check of policy.checks) {
|
|
132
|
+
const threat = checkPatterns(current, check);
|
|
133
|
+
if (threat)
|
|
134
|
+
threats.push(threat);
|
|
135
|
+
}
|
|
136
|
+
const blocked = policy.block && threats.length > 0;
|
|
137
|
+
return {
|
|
138
|
+
sanitized: blocked ? "" : current,
|
|
139
|
+
modified: modified || current !== value,
|
|
140
|
+
blocked,
|
|
141
|
+
detectedThreats: threats,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
export function detect(kind, value) {
|
|
145
|
+
const policy = POLICIES[kind];
|
|
146
|
+
const threats = [];
|
|
147
|
+
for (const check of policy.checks) {
|
|
148
|
+
const threat = checkPatterns(value, check);
|
|
149
|
+
if (threat)
|
|
150
|
+
threats.push(threat);
|
|
151
|
+
}
|
|
152
|
+
return threats;
|
|
153
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { InputSecurityResult } from "./input-security-policy.js";
|
|
2
|
+
export declare function validatePath(path: string): {
|
|
3
|
+
safe: boolean;
|
|
4
|
+
sanitized: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function validateAbsoluteUrl(url: string, trustedHosts: string[]): {
|
|
7
|
+
safe: boolean;
|
|
8
|
+
reason?: string;
|
|
9
|
+
};
|
|
10
|
+
export interface SanitizeBodyResult {
|
|
11
|
+
body: Record<string, unknown>;
|
|
12
|
+
modified: boolean;
|
|
13
|
+
blocked: boolean;
|
|
14
|
+
threats: InputSecurityResult[];
|
|
15
|
+
}
|
|
16
|
+
export declare function sanitizeBody(body: Record<string, unknown>, depth?: number, visited?: WeakSet<object>): SanitizeBodyResult;
|
|
17
|
+
export declare function sanitizeFormDataFileName(filename: string): string;
|
|
18
|
+
export declare function sanitizeHeaderValue(value: string): string;
|