@abyss-project/tools 2.3.0 → 2.4.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/dist/types/enum/beam.enum.d.ts +8 -2
- package/dist/types/enum/beam.enum.js +9 -2
- package/dist/types/enum/beam.enum.js.map +1 -1
- package/dist/types/interface/api/responses/beam.response.d.ts +2 -1
- package/package.json +1 -1
- package/src/types/enum/beam.enum.ts +17 -1
- package/src/types/interface/api/responses/beam.response.ts +10 -1
|
@@ -7,8 +7,14 @@ export declare enum BeamServeDenyReasonCode {
|
|
|
7
7
|
EXPIRED = "expired",
|
|
8
8
|
FORBIDDEN_VISIBILITY = "forbidden_visibility",
|
|
9
9
|
MAX_DOWNLOADS = "max_downloads",
|
|
10
|
-
SCAN_PENDING = "scan_pending"
|
|
11
|
-
|
|
10
|
+
SCAN_PENDING = "scan_pending"
|
|
11
|
+
}
|
|
12
|
+
export declare enum BeamFileScanStatus {
|
|
13
|
+
PENDING_SCAN = "pending_scan",
|
|
14
|
+
CLEAN = "clean",
|
|
15
|
+
INFECTED = "infected",
|
|
16
|
+
SKIPPED = "skipped",
|
|
17
|
+
ERROR = "error"
|
|
12
18
|
}
|
|
13
19
|
export declare enum BeamDownloadKind {
|
|
14
20
|
FILE = "file",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BeamDownloadKind = exports.BeamServeDenyReasonCode = exports.BeamVisibility = void 0;
|
|
3
|
+
exports.BeamDownloadKind = exports.BeamFileScanStatus = exports.BeamServeDenyReasonCode = exports.BeamVisibility = void 0;
|
|
4
4
|
var BeamVisibility;
|
|
5
5
|
(function (BeamVisibility) {
|
|
6
6
|
BeamVisibility["PUBLIC"] = "PUBLIC";
|
|
@@ -13,8 +13,15 @@ var BeamServeDenyReasonCode;
|
|
|
13
13
|
BeamServeDenyReasonCode["FORBIDDEN_VISIBILITY"] = "forbidden_visibility";
|
|
14
14
|
BeamServeDenyReasonCode["MAX_DOWNLOADS"] = "max_downloads";
|
|
15
15
|
BeamServeDenyReasonCode["SCAN_PENDING"] = "scan_pending";
|
|
16
|
-
BeamServeDenyReasonCode["SCAN_INFECTED"] = "scan_infected";
|
|
17
16
|
})(BeamServeDenyReasonCode || (exports.BeamServeDenyReasonCode = BeamServeDenyReasonCode = {}));
|
|
17
|
+
var BeamFileScanStatus;
|
|
18
|
+
(function (BeamFileScanStatus) {
|
|
19
|
+
BeamFileScanStatus["PENDING_SCAN"] = "pending_scan";
|
|
20
|
+
BeamFileScanStatus["CLEAN"] = "clean";
|
|
21
|
+
BeamFileScanStatus["INFECTED"] = "infected";
|
|
22
|
+
BeamFileScanStatus["SKIPPED"] = "skipped";
|
|
23
|
+
BeamFileScanStatus["ERROR"] = "error";
|
|
24
|
+
})(BeamFileScanStatus || (exports.BeamFileScanStatus = BeamFileScanStatus = {}));
|
|
18
25
|
var BeamDownloadKind;
|
|
19
26
|
(function (BeamDownloadKind) {
|
|
20
27
|
BeamDownloadKind["FILE"] = "file";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beam.enum.js","sourceRoot":"","sources":["../../../src/types/enum/beam.enum.ts"],"names":[],"mappings":";;;AAIA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AASD,IAAY,
|
|
1
|
+
{"version":3,"file":"beam.enum.js","sourceRoot":"","sources":["../../../src/types/enum/beam.enum.ts"],"names":[],"mappings":";;;AAIA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AASD,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,wEAA6C,CAAA;IAC7C,0DAA+B,CAAA;IAC/B,wDAA6B,CAAA;AAC/B,CAAC,EANW,uBAAuB,uCAAvB,uBAAuB,QAMlC;AAWD,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,mDAA6B,CAAA;IAC7B,qCAAe,CAAA;IACf,2CAAqB,CAAA;IACrB,yCAAmB,CAAA;IACnB,qCAAe,CAAA;AACjB,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B;AAKD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,+BAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B"}
|
|
@@ -2,7 +2,7 @@ import { BasePaginate } from '../type-message/base-paginate';
|
|
|
2
2
|
import { IResponse } from '../type-message/response';
|
|
3
3
|
import { IBeamTransfer, IBeamFile, IBeamRecipient } from '../../models/beam.dto';
|
|
4
4
|
import { IContentShare } from '../../models/content-share.dto';
|
|
5
|
-
import { BeamVisibility, BeamServeDenyReasonCode, BeamDownloadKind } from '../../../enum/beam.enum';
|
|
5
|
+
import { BeamVisibility, BeamServeDenyReasonCode, BeamDownloadKind, BeamFileScanStatus } from '../../../enum/beam.enum';
|
|
6
6
|
export interface IGetBeamData {
|
|
7
7
|
beamTransfer: IBeamTransfer;
|
|
8
8
|
}
|
|
@@ -39,6 +39,7 @@ export interface IBeamPublicFile {
|
|
|
39
39
|
hasThumbnail: boolean;
|
|
40
40
|
width: number | null;
|
|
41
41
|
height: number | null;
|
|
42
|
+
scanStatus: BeamFileScanStatus;
|
|
42
43
|
}
|
|
43
44
|
export interface IBeamPublicView {
|
|
44
45
|
slug: string;
|
package/package.json
CHANGED
|
@@ -20,7 +20,23 @@ export enum BeamServeDenyReasonCode {
|
|
|
20
20
|
FORBIDDEN_VISIBILITY = 'forbidden_visibility',
|
|
21
21
|
MAX_DOWNLOADS = 'max_downloads',
|
|
22
22
|
SCAN_PENDING = 'scan_pending',
|
|
23
|
-
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Per-file AV verdict surfaced on the public listing (GET /b/:slug) so the
|
|
26
|
+
// front can render a per-file badge — clean / "en analyse" (pending) /
|
|
27
|
+
// "infecté" — independently of the whole-transfer denial reason above.
|
|
28
|
+
// Storage-neutral: AbyssBeam serves an INFECTED file's bytes (spec decision —
|
|
29
|
+
// infected files stay downloadable, not blocked; the front is expected to
|
|
30
|
+
// warn before/at download). Mirrors the storage extension's `FileScanStatus`
|
|
31
|
+
// (`@abyss-project/storage`) byte-for-byte; duplicated locally because this
|
|
32
|
+
// package does not depend on `@abyss-project/storage` (same rationale as
|
|
33
|
+
// BeamServeDenyReasonCode above).
|
|
34
|
+
export enum BeamFileScanStatus {
|
|
35
|
+
PENDING_SCAN = 'pending_scan',
|
|
36
|
+
CLEAN = 'clean',
|
|
37
|
+
INFECTED = 'infected',
|
|
38
|
+
SKIPPED = 'skipped',
|
|
39
|
+
ERROR = 'error',
|
|
24
40
|
}
|
|
25
41
|
|
|
26
42
|
// What a beam_download_events row counted: a single-file download (/b/:slug/
|
|
@@ -2,7 +2,12 @@ import { BasePaginate } from '../type-message/base-paginate';
|
|
|
2
2
|
import { IResponse } from '../type-message/response';
|
|
3
3
|
import { IBeamTransfer, IBeamFile, IBeamRecipient } from '../../models/beam.dto';
|
|
4
4
|
import { IContentShare } from '../../models/content-share.dto';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
BeamVisibility,
|
|
7
|
+
BeamServeDenyReasonCode,
|
|
8
|
+
BeamDownloadKind,
|
|
9
|
+
BeamFileScanStatus,
|
|
10
|
+
} from '../../../enum/beam.enum';
|
|
6
11
|
|
|
7
12
|
export interface IGetBeamData {
|
|
8
13
|
beamTransfer: IBeamTransfer;
|
|
@@ -39,6 +44,9 @@ export type IFinalizeBeamResponse = IResponse<IFinalizeBeamData>;
|
|
|
39
44
|
// Public serving (B3) — safe, purpose-built projection of a transfer for the
|
|
40
45
|
// browser-facing view: no owner ids, no password/manage hashes; adds
|
|
41
46
|
// hasPassword/isLocked/hasThumbnail so the front can render the locked state.
|
|
47
|
+
// `scanStatus` is the per-file AV verdict (storage-neutral — an INFECTED file
|
|
48
|
+
// is still listed and downloadable; the front renders the warning from this
|
|
49
|
+
// field, see BeamFileScanStatus).
|
|
42
50
|
export interface IBeamPublicFile {
|
|
43
51
|
id: string;
|
|
44
52
|
name: string;
|
|
@@ -48,6 +56,7 @@ export interface IBeamPublicFile {
|
|
|
48
56
|
hasThumbnail: boolean;
|
|
49
57
|
width: number | null;
|
|
50
58
|
height: number | null;
|
|
59
|
+
scanStatus: BeamFileScanStatus;
|
|
51
60
|
}
|
|
52
61
|
|
|
53
62
|
export interface IBeamPublicView {
|