@abyss-project/probe 1.0.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.
- package/README.md +32 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +19 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/probe-scan.api.d.ts +10 -0
- package/dist/api/probe-scan.api.js +60 -0
- package/dist/api/probe-scan.api.js.map +1 -0
- package/dist/api/probe-scan.api.test.d.ts +1 -0
- package/dist/api/probe-scan.api.test.js +37 -0
- package/dist/api/probe-scan.api.test.js.map +1 -0
- package/dist/api/probe-webhook.api.d.ts +4 -0
- package/dist/api/probe-webhook.api.js +21 -0
- package/dist/api/probe-webhook.api.js.map +1 -0
- package/dist/api/probe-webhook.api.test.d.ts +1 -0
- package/dist/api/probe-webhook.api.test.js +33 -0
- package/dist/api/probe-webhook.api.test.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +110 -0
- package/dist/index.js.map +1 -0
- package/dist/types/enum/api-error.enum.d.ts +17 -0
- package/dist/types/enum/api-error.enum.js +23 -0
- package/dist/types/enum/api-error.enum.js.map +1 -0
- package/dist/types/enum/index.d.ts +2 -0
- package/dist/types/enum/index.js +19 -0
- package/dist/types/enum/index.js.map +1 -0
- package/dist/types/enum/probe-scan.enum.d.ts +14 -0
- package/dist/types/enum/probe-scan.enum.js +21 -0
- package/dist/types/enum/probe-scan.enum.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/interface/api/index.d.ts +5 -0
- package/dist/types/interface/api/index.js +22 -0
- package/dist/types/interface/api/index.js.map +1 -0
- package/dist/types/interface/api/requests/index.d.ts +2 -0
- package/dist/types/interface/api/requests/index.js +19 -0
- package/dist/types/interface/api/requests/index.js.map +1 -0
- package/dist/types/interface/api/requests/probe-scan.request.d.ts +22 -0
- package/dist/types/interface/api/requests/probe-scan.request.js +3 -0
- package/dist/types/interface/api/requests/probe-scan.request.js.map +1 -0
- package/dist/types/interface/api/requests/probe-webhook.request.d.ts +6 -0
- package/dist/types/interface/api/requests/probe-webhook.request.js +3 -0
- package/dist/types/interface/api/requests/probe-webhook.request.js.map +1 -0
- package/dist/types/interface/api/responses/index.d.ts +2 -0
- package/dist/types/interface/api/responses/index.js +19 -0
- package/dist/types/interface/api/responses/index.js.map +1 -0
- package/dist/types/interface/api/responses/probe-scan.response.d.ts +18 -0
- package/dist/types/interface/api/responses/probe-scan.response.js +3 -0
- package/dist/types/interface/api/responses/probe-scan.response.js.map +1 -0
- package/dist/types/interface/api/responses/probe-webhook.response.d.ts +10 -0
- package/dist/types/interface/api/responses/probe-webhook.response.js +3 -0
- package/dist/types/interface/api/responses/probe-webhook.response.js.map +1 -0
- package/dist/types/interface/api/type-message/api-error.d.ts +6 -0
- package/dist/types/interface/api/type-message/api-error.js +3 -0
- package/dist/types/interface/api/type-message/api-error.js.map +1 -0
- package/dist/types/interface/api/type-message/base-paginate.d.ts +10 -0
- package/dist/types/interface/api/type-message/base-paginate.js +3 -0
- package/dist/types/interface/api/type-message/base-paginate.js.map +1 -0
- package/dist/types/interface/api/type-message/response.d.ts +5 -0
- package/dist/types/interface/api/type-message/response.js +3 -0
- package/dist/types/interface/api/type-message/response.js.map +1 -0
- package/dist/types/interface/dto/index.d.ts +1 -0
- package/dist/types/interface/dto/index.js +18 -0
- package/dist/types/interface/dto/index.js.map +1 -0
- package/dist/types/interface/dto/probe-webhook-delivery.dto.d.ts +7 -0
- package/dist/types/interface/dto/probe-webhook-delivery.dto.js +3 -0
- package/dist/types/interface/dto/probe-webhook-delivery.dto.js.map +1 -0
- package/dist/types/interface/index.d.ts +3 -0
- package/dist/types/interface/index.js +20 -0
- package/dist/types/interface/index.js.map +1 -0
- package/dist/types/interface/models/index.d.ts +2 -0
- package/dist/types/interface/models/index.js +19 -0
- package/dist/types/interface/models/index.js.map +1 -0
- package/dist/types/interface/models/probe-scan.model.d.ts +22 -0
- package/dist/types/interface/models/probe-scan.model.js +3 -0
- package/dist/types/interface/models/probe-scan.model.js.map +1 -0
- package/dist/types/interface/models/probe-webhook.model.d.ts +9 -0
- package/dist/types/interface/models/probe-webhook.model.js +3 -0
- package/dist/types/interface/models/probe-webhook.model.js.map +1 -0
- package/dist/types/tests/probe.dto.test.d.ts +1 -0
- package/dist/types/tests/probe.dto.test.js +62 -0
- package/dist/types/tests/probe.dto.test.js.map +1 -0
- package/dist/utils/http.utils.d.ts +3 -0
- package/dist/utils/http.utils.js +20 -0
- package/dist/utils/http.utils.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/probe-webhook-signature.utils.d.ts +8 -0
- package/dist/utils/probe-webhook-signature.utils.js +22 -0
- package/dist/utils/probe-webhook-signature.utils.js.map +1 -0
- package/package.json +50 -0
- package/tsconfig.json +36 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ProbeScanMode, ProbeScanStatus, ProbeScanVerdict } from '../../../enum';
|
|
2
|
+
export interface IScanOptions {
|
|
3
|
+
mode?: ProbeScanMode;
|
|
4
|
+
organizationId?: string;
|
|
5
|
+
context?: Record<string, unknown>;
|
|
6
|
+
callbackUrl?: string;
|
|
7
|
+
filename?: string;
|
|
8
|
+
mimeType?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IListScansQuery {
|
|
11
|
+
organizationId?: string;
|
|
12
|
+
verdict?: ProbeScanVerdict;
|
|
13
|
+
mode?: ProbeScanMode;
|
|
14
|
+
status?: ProbeScanStatus;
|
|
15
|
+
from?: Date;
|
|
16
|
+
to?: Date;
|
|
17
|
+
fileName?: string;
|
|
18
|
+
contextKey?: string;
|
|
19
|
+
contextValue?: string;
|
|
20
|
+
page?: number;
|
|
21
|
+
limit?: number;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-scan.request.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/requests/probe-scan.request.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-webhook.request.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/requests/probe-webhook.request.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./probe-scan.response"), exports);
|
|
18
|
+
__exportStar(require("./probe-webhook.response"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/responses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IResponse } from '../type-message/response';
|
|
2
|
+
import { BasePaginate } from '../type-message/base-paginate';
|
|
3
|
+
import { ProbeScanStatus, ProbeScanVerdict } from '../../../enum';
|
|
4
|
+
import { IProbeScanDetail, IProbeScanHistoryItem } from '../../models';
|
|
5
|
+
export interface IScanSyncData {
|
|
6
|
+
scanId: string;
|
|
7
|
+
verdict: ProbeScanVerdict;
|
|
8
|
+
viruses: string[];
|
|
9
|
+
}
|
|
10
|
+
export type IScanSyncResponse = IResponse<IScanSyncData>;
|
|
11
|
+
export interface IScanAsyncData {
|
|
12
|
+
scanId: string;
|
|
13
|
+
status: ProbeScanStatus.QUEUED;
|
|
14
|
+
}
|
|
15
|
+
export type IScanAsyncResponse = IResponse<IScanAsyncData>;
|
|
16
|
+
export type IScanResponse = IScanSyncResponse | IScanAsyncResponse;
|
|
17
|
+
export type IGetScanResponse = IResponse<IProbeScanDetail>;
|
|
18
|
+
export type IPaginateScanResponse = IResponse<BasePaginate<IProbeScanHistoryItem>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-scan.response.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/responses/probe-scan.response.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IResponse } from '../type-message/response';
|
|
2
|
+
import { IProbeWebhook, IProbeWebhookCreated } from '../../models';
|
|
3
|
+
export type ICreateProbeWebhookResponse = IResponse<IProbeWebhookCreated>;
|
|
4
|
+
export interface IListProbeWebhookData {
|
|
5
|
+
webhooks: IProbeWebhook[];
|
|
6
|
+
}
|
|
7
|
+
export type IListProbeWebhookResponse = IResponse<IListProbeWebhookData>;
|
|
8
|
+
export type IDeleteProbeWebhookResponse = IResponse<{
|
|
9
|
+
ok: true;
|
|
10
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-webhook.response.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/responses/probe-webhook.response.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-error.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/type-message/api-error.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-paginate.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/type-message/base-paginate.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/type-message/response.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './probe-webhook-delivery.dto';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./probe-webhook-delivery.dto"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-webhook-delivery.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/dto/probe-webhook-delivery.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./models"), exports);
|
|
18
|
+
__exportStar(require("./dto"), exports);
|
|
19
|
+
__exportStar(require("./api"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,wCAAsB;AACtB,wCAAsB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./probe-scan.model"), exports);
|
|
18
|
+
__exportStar(require("./probe-webhook.model"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,wDAAsC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ProbeScanMode, ProbeScanStatus, ProbeScanVerdict } from '../../enum';
|
|
2
|
+
export interface IProbeScanDetail {
|
|
3
|
+
scanId: string;
|
|
4
|
+
status: ProbeScanStatus;
|
|
5
|
+
verdict: ProbeScanVerdict | null;
|
|
6
|
+
viruses: string[] | null;
|
|
7
|
+
context: Record<string, unknown> | null;
|
|
8
|
+
}
|
|
9
|
+
export interface IProbeScanHistoryItem {
|
|
10
|
+
scanId: string;
|
|
11
|
+
fileName: string;
|
|
12
|
+
fileSize: number;
|
|
13
|
+
mimeType: string;
|
|
14
|
+
verdict: ProbeScanVerdict | null;
|
|
15
|
+
viruses: string[] | null;
|
|
16
|
+
mode: ProbeScanMode;
|
|
17
|
+
status: ProbeScanStatus;
|
|
18
|
+
context: Record<string, unknown> | null;
|
|
19
|
+
startedAt: Date;
|
|
20
|
+
finishedAt: Date | null;
|
|
21
|
+
createdAt: Date;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-scan.model.js","sourceRoot":"","sources":["../../../../src/types/interface/models/probe-scan.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-webhook.model.js","sourceRoot":"","sources":["../../../../src/types/interface/models/probe-webhook.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const __1 = require("..");
|
|
4
|
+
const _verdicts = { clean: true, infected: true };
|
|
5
|
+
const _modes = { sync: true, async: true };
|
|
6
|
+
const _statuses = {
|
|
7
|
+
queued: true,
|
|
8
|
+
scanning: true,
|
|
9
|
+
done: true,
|
|
10
|
+
error: true,
|
|
11
|
+
};
|
|
12
|
+
const _scanDetail = {
|
|
13
|
+
scanId: 's1',
|
|
14
|
+
status: __1.ProbeScanStatus.DONE,
|
|
15
|
+
verdict: __1.ProbeScanVerdict.CLEAN,
|
|
16
|
+
viruses: [],
|
|
17
|
+
context: null,
|
|
18
|
+
};
|
|
19
|
+
const _historyItem = {
|
|
20
|
+
scanId: 's1',
|
|
21
|
+
fileName: 'invoice.pdf',
|
|
22
|
+
fileSize: 1024,
|
|
23
|
+
mimeType: 'application/pdf',
|
|
24
|
+
verdict: __1.ProbeScanVerdict.INFECTED,
|
|
25
|
+
viruses: ['Eicar-Test-Signature'],
|
|
26
|
+
mode: __1.ProbeScanMode.ASYNC,
|
|
27
|
+
status: __1.ProbeScanStatus.DONE,
|
|
28
|
+
context: { applicationFileId: 'af1' },
|
|
29
|
+
startedAt: new Date(),
|
|
30
|
+
finishedAt: new Date(),
|
|
31
|
+
createdAt: new Date(),
|
|
32
|
+
};
|
|
33
|
+
const _scanSyncData = {
|
|
34
|
+
scanId: 's1',
|
|
35
|
+
verdict: __1.ProbeScanVerdict.CLEAN,
|
|
36
|
+
viruses: [],
|
|
37
|
+
};
|
|
38
|
+
const _scanAsyncData = { scanId: 's1', status: __1.ProbeScanStatus.QUEUED };
|
|
39
|
+
const _webhook = {
|
|
40
|
+
id: 'w1',
|
|
41
|
+
callbackUrl: 'https://example.com/hook',
|
|
42
|
+
active: true,
|
|
43
|
+
createdAt: new Date(),
|
|
44
|
+
};
|
|
45
|
+
const _webhookCreated = { ..._webhook, secret: 'shh' };
|
|
46
|
+
const _deliveryPayload = {
|
|
47
|
+
scanId: 's1',
|
|
48
|
+
context: null,
|
|
49
|
+
verdict: __1.ProbeScanVerdict.INFECTED,
|
|
50
|
+
viruses: ['Eicar-Test-Signature'],
|
|
51
|
+
};
|
|
52
|
+
void _verdicts;
|
|
53
|
+
void _modes;
|
|
54
|
+
void _statuses;
|
|
55
|
+
void _scanDetail;
|
|
56
|
+
void _historyItem;
|
|
57
|
+
void _scanSyncData;
|
|
58
|
+
void _scanAsyncData;
|
|
59
|
+
void _webhook;
|
|
60
|
+
void _webhookCreated;
|
|
61
|
+
void _deliveryPayload;
|
|
62
|
+
//# sourceMappingURL=probe.dto.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.dto.test.js","sourceRoot":"","sources":["../../../src/types/tests/probe.dto.test.ts"],"names":[],"mappings":";;AAQA,0BAWY;AAMZ,MAAM,SAAS,GAAmC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAClF,MAAM,MAAM,GAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxE,MAAM,SAAS,GAAkC;IAC/C,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACZ,CAAC;AAGF,MAAM,WAAW,GAAqB;IACpC,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,mBAAe,CAAC,IAAI;IAC5B,OAAO,EAAE,oBAAgB,CAAC,KAAK;IAC/B,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,IAAI;CACd,CAAC;AAIF,MAAM,YAAY,GAA0B;IAC1C,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,oBAAgB,CAAC,QAAQ;IAClC,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,IAAI,EAAE,iBAAa,CAAC,KAAK;IACzB,MAAM,EAAE,mBAAe,CAAC,IAAI;IAC5B,OAAO,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE;IACrC,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,UAAU,EAAE,IAAI,IAAI,EAAE;IACtB,SAAS,EAAE,IAAI,IAAI,EAAE;CACtB,CAAC;AAGF,MAAM,aAAa,GAAkB;IACnC,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,oBAAgB,CAAC,KAAK;IAC/B,OAAO,EAAE,EAAE;CACZ,CAAC;AACF,MAAM,cAAc,GAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAe,CAAC,MAAM,EAAE,CAAC;AAGxF,MAAM,QAAQ,GAAkB;IAC9B,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI,IAAI,EAAE;CACtB,CAAC;AACF,MAAM,eAAe,GAAyB,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAI7E,MAAM,gBAAgB,GAAiC;IACrD,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,oBAAgB,CAAC,QAAQ;IAClC,OAAO,EAAE,CAAC,sBAAsB,CAAC;CAClC,CAAC;AAEF,KAAK,SAAS,CAAC;AACf,KAAK,MAAM,CAAC;AACZ,KAAK,SAAS,CAAC;AACf,KAAK,WAAW,CAAC;AACjB,KAAK,YAAY,CAAC;AAClB,KAAK,aAAa,CAAC;AACnB,KAAK,cAAc,CAAC;AACpB,KAAK,QAAQ,CAAC;AACd,KAAK,eAAe,CAAC;AACrB,KAAK,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeProbeQuery = exports.authHeader = exports.API_KEY_HEADER = void 0;
|
|
4
|
+
exports.API_KEY_HEADER = 'abyss-api-key';
|
|
5
|
+
function authHeader(apiKey) {
|
|
6
|
+
return apiKey ? { [exports.API_KEY_HEADER]: apiKey } : {};
|
|
7
|
+
}
|
|
8
|
+
exports.authHeader = authHeader;
|
|
9
|
+
function serializeProbeQuery(query) {
|
|
10
|
+
const out = {};
|
|
11
|
+
for (const [key, value] of Object.entries(query)) {
|
|
12
|
+
if (value === undefined || value === null)
|
|
13
|
+
continue;
|
|
14
|
+
const wireKey = key === 'organizationId' ? 'organization_id' : key;
|
|
15
|
+
out[wireKey] = value instanceof Date ? value.toISOString() : value;
|
|
16
|
+
}
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
exports.serializeProbeQuery = serializeProbeQuery;
|
|
20
|
+
//# sourceMappingURL=http.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.utils.js","sourceRoot":"","sources":["../../src/utils/http.utils.ts"],"names":[],"mappings":";;;AAQa,QAAA,cAAc,GAAG,eAAe,CAAC;AAS9C,SAAgB,UAAU,CAAC,MAAe;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAFD,gCAEC;AASD,SAAgB,mBAAmB,CAAmB,KAAQ;IAC5D,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,MAAM,OAAO,GAAG,GAAG,KAAK,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACrE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AARD,kDAQC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./http.utils"), exports);
|
|
18
|
+
__exportStar(require("./probe-webhook-signature.utils"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,kEAAgD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
export interface VerifyProbeWebhookSignatureInput {
|
|
4
|
+
rawBody: string | Buffer;
|
|
5
|
+
signatureHeader: string | undefined;
|
|
6
|
+
secret: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function verifyProbeWebhookSignature(input: VerifyProbeWebhookSignatureInput): boolean;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyProbeWebhookSignature = void 0;
|
|
4
|
+
function verifyProbeWebhookSignature(input) {
|
|
5
|
+
if (!input.signatureHeader || !input.secret)
|
|
6
|
+
return false;
|
|
7
|
+
const crypto = require('crypto');
|
|
8
|
+
const computed = crypto
|
|
9
|
+
.createHmac('sha256', input.secret)
|
|
10
|
+
.update(input.rawBody)
|
|
11
|
+
.digest('hex');
|
|
12
|
+
if (input.signatureHeader.length !== computed.length)
|
|
13
|
+
return false;
|
|
14
|
+
try {
|
|
15
|
+
return crypto.timingSafeEqual(Buffer.from(input.signatureHeader, 'hex'), Buffer.from(computed, 'hex'));
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.verifyProbeWebhookSignature = verifyProbeWebhookSignature;
|
|
22
|
+
//# sourceMappingURL=probe-webhook-signature.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-webhook-signature.utils.js","sourceRoot":"","sources":["../../src/utils/probe-webhook-signature.utils.ts"],"names":[],"mappings":";;;AAiCA,SAAgB,2BAA2B,CAAC,KAAuC;IACjF,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAG1D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAW,MAAM;SAC5B,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;SACrB,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEnE,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,eAAe,CAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,EACzC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC7B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QAGP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAtBD,kEAsBC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@abyss-project/probe",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Core package to interact with AbyssProbe (antivirus scanning platform primitive)",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"lint": "eslint \"{src,apps,libs,test,core}/**/*.ts\" --fix",
|
|
12
|
+
"lint:check": "eslint \"{src,apps,libs,test,core}/**/*.ts\" --max-warnings 0",
|
|
13
|
+
"tsc": "tsc",
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"prepublishOnly": "tsc",
|
|
16
|
+
"dev": "tsc --watch"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://gitlab.com/abyss-group"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [],
|
|
23
|
+
"author": "scylla",
|
|
24
|
+
"license": "ISC",
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://gitlab.com/abyss-group/abyss-tools/abyss-tools"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://gitlab.com/abyss-group/abyss-tools/abyss-tools",
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"axios": "^1.6.0",
|
|
31
|
+
"axios-retry": "^4.5.0",
|
|
32
|
+
"form-data": "^4.0.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/node": "^20.11.0",
|
|
36
|
+
"@typescript-eslint/eslint-plugin": "6.21.0",
|
|
37
|
+
"@typescript-eslint/parser": "7.3.1",
|
|
38
|
+
"eslint": "^7.28.0",
|
|
39
|
+
"eslint-config-prettier": "^8.3.0",
|
|
40
|
+
"eslint-config-standard": "^16.0.3",
|
|
41
|
+
"eslint-plugin-filenames-simple": "^0.7.0",
|
|
42
|
+
"eslint-plugin-import": "^2.27.4",
|
|
43
|
+
"eslint-plugin-node": "^11.1.0",
|
|
44
|
+
"eslint-plugin-prettier": "^3.4.0",
|
|
45
|
+
"eslint-plugin-promise": "^5.1.0",
|
|
46
|
+
"prettier": "2.3.1",
|
|
47
|
+
"tsc-watch": "^4.6.2",
|
|
48
|
+
"typescript": "5.4.2"
|
|
49
|
+
}
|
|
50
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"incremental": false,
|
|
4
|
+
"target": "es2021",
|
|
5
|
+
"lib": [
|
|
6
|
+
"dom",
|
|
7
|
+
"es2021"
|
|
8
|
+
],
|
|
9
|
+
"experimentalDecorators": true,
|
|
10
|
+
"emitDecoratorMetadata": true,
|
|
11
|
+
"module": "commonjs",
|
|
12
|
+
"rootDir": "src",
|
|
13
|
+
"moduleResolution": "node",
|
|
14
|
+
"resolveJsonModule": true,
|
|
15
|
+
"allowJs": true,
|
|
16
|
+
"declaration": true,
|
|
17
|
+
"sourceMap": true,
|
|
18
|
+
"outDir": "./dist",
|
|
19
|
+
"removeComments": true,
|
|
20
|
+
"allowSyntheticDefaultImports": true,
|
|
21
|
+
"esModuleInterop": true,
|
|
22
|
+
"forceConsistentCasingInFileNames": true,
|
|
23
|
+
"strict": true,
|
|
24
|
+
"strictNullChecks": true,
|
|
25
|
+
"strictFunctionTypes": true,
|
|
26
|
+
"strictPropertyInitialization": false,
|
|
27
|
+
"skipLibCheck": true
|
|
28
|
+
},
|
|
29
|
+
"include": [
|
|
30
|
+
"./src"
|
|
31
|
+
],
|
|
32
|
+
"exclude": [
|
|
33
|
+
"./dist/**/*",
|
|
34
|
+
"./src/**/*.spec.ts"
|
|
35
|
+
]
|
|
36
|
+
}
|