@sectester/scan 0.16.1

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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +301 -0
  3. package/package.json +56 -0
  4. package/src/DefaultScans.d.ts +20 -0
  5. package/src/DefaultScans.js +63 -0
  6. package/src/DefaultScans.js.map +1 -0
  7. package/src/Scan.d.ts +33 -0
  8. package/src/Scan.js +133 -0
  9. package/src/Scan.js.map +1 -0
  10. package/src/ScanFactory.d.ts +19 -0
  11. package/src/ScanFactory.js +96 -0
  12. package/src/ScanFactory.js.map +1 -0
  13. package/src/ScanSettings.d.ts +47 -0
  14. package/src/ScanSettings.js +113 -0
  15. package/src/ScanSettings.js.map +1 -0
  16. package/src/Scans.d.ts +20 -0
  17. package/src/Scans.js +5 -0
  18. package/src/Scans.js.map +1 -0
  19. package/src/commands/CreateScan.d.ts +17 -0
  20. package/src/commands/CreateScan.js +15 -0
  21. package/src/commands/CreateScan.js.map +1 -0
  22. package/src/commands/DeleteScan.d.ts +4 -0
  23. package/src/commands/DeleteScan.js +16 -0
  24. package/src/commands/DeleteScan.js.map +1 -0
  25. package/src/commands/GetScan.d.ts +5 -0
  26. package/src/commands/GetScan.js +14 -0
  27. package/src/commands/GetScan.js.map +1 -0
  28. package/src/commands/ListIssues.d.ts +5 -0
  29. package/src/commands/ListIssues.js +14 -0
  30. package/src/commands/ListIssues.js.map +1 -0
  31. package/src/commands/StopScan.d.ts +4 -0
  32. package/src/commands/StopScan.js +15 -0
  33. package/src/commands/StopScan.js.map +1 -0
  34. package/src/commands/UploadHar.d.ts +8 -0
  35. package/src/commands/UploadHar.js +23 -0
  36. package/src/commands/UploadHar.js.map +1 -0
  37. package/src/commands/index.d.ts +6 -0
  38. package/src/commands/index.js +10 -0
  39. package/src/commands/index.js.map +1 -0
  40. package/src/exceptions/ScanAborted.d.ts +7 -0
  41. package/src/exceptions/ScanAborted.js +15 -0
  42. package/src/exceptions/ScanAborted.js.map +1 -0
  43. package/src/exceptions/ScanException.d.ts +6 -0
  44. package/src/exceptions/ScanException.js +11 -0
  45. package/src/exceptions/ScanException.js.map +1 -0
  46. package/src/exceptions/ScanExceptionCode.d.ts +4 -0
  47. package/src/exceptions/ScanExceptionCode.js +9 -0
  48. package/src/exceptions/ScanExceptionCode.js.map +1 -0
  49. package/src/exceptions/ScanTimedOut.d.ts +6 -0
  50. package/src/exceptions/ScanTimedOut.js +15 -0
  51. package/src/exceptions/ScanTimedOut.js.map +1 -0
  52. package/src/exceptions/index.d.ts +4 -0
  53. package/src/exceptions/index.js +8 -0
  54. package/src/exceptions/index.js.map +1 -0
  55. package/src/index.d.ts +7 -0
  56. package/src/index.js +11 -0
  57. package/src/index.js.map +1 -0
  58. package/src/models/AttackParamLocation.d.ts +9 -0
  59. package/src/models/AttackParamLocation.js +14 -0
  60. package/src/models/AttackParamLocation.js.map +1 -0
  61. package/src/models/Discovery.d.ts +5 -0
  62. package/src/models/Discovery.js +10 -0
  63. package/src/models/Discovery.js.map +1 -0
  64. package/src/models/HttpMethod.d.ts +18 -0
  65. package/src/models/HttpMethod.js +24 -0
  66. package/src/models/HttpMethod.js.map +1 -0
  67. package/src/models/Issue.d.ts +54 -0
  68. package/src/models/Issue.js +3 -0
  69. package/src/models/Issue.js.map +1 -0
  70. package/src/models/IssueGroup.d.ts +5 -0
  71. package/src/models/IssueGroup.js +3 -0
  72. package/src/models/IssueGroup.js.map +1 -0
  73. package/src/models/Module.d.ts +4 -0
  74. package/src/models/Module.js +9 -0
  75. package/src/models/Module.js.map +1 -0
  76. package/src/models/ScanConfig.d.ts +20 -0
  77. package/src/models/ScanConfig.js +3 -0
  78. package/src/models/ScanConfig.js.map +1 -0
  79. package/src/models/ScanState.d.ts +14 -0
  80. package/src/models/ScanState.js +3 -0
  81. package/src/models/ScanState.js.map +1 -0
  82. package/src/models/ScanStatus.d.ts +11 -0
  83. package/src/models/ScanStatus.js +16 -0
  84. package/src/models/ScanStatus.js.map +1 -0
  85. package/src/models/Severity.d.ts +8 -0
  86. package/src/models/Severity.js +37 -0
  87. package/src/models/Severity.js.map +1 -0
  88. package/src/models/TestType.d.ts +48 -0
  89. package/src/models/TestType.js +53 -0
  90. package/src/models/TestType.js.map +1 -0
  91. package/src/models/index.d.ts +11 -0
  92. package/src/models/index.js +15 -0
  93. package/src/models/index.js.map +1 -0
  94. package/src/register.d.ts +1 -0
  95. package/src/register.js +14 -0
  96. package/src/register.js.map +1 -0
  97. package/src/target/Target.d.ts +48 -0
  98. package/src/target/Target.js +166 -0
  99. package/src/target/Target.js.map +1 -0
  100. package/src/target/body-parsers/BinaryBodyParser.d.ts +6 -0
  101. package/src/target/body-parsers/BinaryBodyParser.js +14 -0
  102. package/src/target/body-parsers/BinaryBodyParser.js.map +1 -0
  103. package/src/target/body-parsers/BodyParser.d.ts +12 -0
  104. package/src/target/body-parsers/BodyParser.js +5 -0
  105. package/src/target/body-parsers/BodyParser.js.map +1 -0
  106. package/src/target/body-parsers/FormDataBodyParser.d.ts +9 -0
  107. package/src/target/body-parsers/FormDataBodyParser.js +63 -0
  108. package/src/target/body-parsers/FormDataBodyParser.js.map +1 -0
  109. package/src/target/body-parsers/JsonBodyParser.d.ts +7 -0
  110. package/src/target/body-parsers/JsonBodyParser.js +24 -0
  111. package/src/target/body-parsers/JsonBodyParser.js.map +1 -0
  112. package/src/target/body-parsers/TextBodyParser.d.ts +6 -0
  113. package/src/target/body-parsers/TextBodyParser.js +15 -0
  114. package/src/target/body-parsers/TextBodyParser.js.map +1 -0
  115. package/src/target/body-parsers/UrlEncodedBodyParser.d.ts +7 -0
  116. package/src/target/body-parsers/UrlEncodedBodyParser.js +25 -0
  117. package/src/target/body-parsers/UrlEncodedBodyParser.js.map +1 -0
  118. package/src/target/body-parsers/index.d.ts +2 -0
  119. package/src/target/body-parsers/index.js +6 -0
  120. package/src/target/body-parsers/index.js.map +1 -0
  121. package/src/target/body-parsers/register.d.ts +1 -0
  122. package/src/target/body-parsers/register.js +26 -0
  123. package/src/target/body-parsers/register.js.map +1 -0
  124. package/src/target/index.d.ts +2 -0
  125. package/src/target/index.js +6 -0
  126. package/src/target/index.js.map +1 -0
  127. package/src/utils/entries-to-list.d.ts +7 -0
  128. package/src/utils/entries-to-list.js +10 -0
  129. package/src/utils/entries-to-list.js.map +1 -0
  130. package/src/utils/escape.d.ts +1 -0
  131. package/src/utils/escape.js +19 -0
  132. package/src/utils/escape.js.map +1 -0
  133. package/src/utils/index.d.ts +2 -0
  134. package/src/utils/index.js +6 -0
  135. package/src/utils/index.js.map +1 -0
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScanFactory = void 0;
4
+ const Scans_1 = require("./Scans");
5
+ const Scan_1 = require("./Scan");
6
+ const models_1 = require("./models");
7
+ const ScanSettings_1 = require("./ScanSettings");
8
+ const target_1 = require("./target");
9
+ const uuid_1 = require("uuid");
10
+ const core_1 = require("@sectester/core");
11
+ class ScanFactory {
12
+ constructor(configuration) {
13
+ this.configuration = configuration;
14
+ this.container = this.configuration.container.createChildContainer();
15
+ this.scans = this.container.resolve(Scans_1.Scans);
16
+ this.logger = this.container.resolve(core_1.Logger);
17
+ }
18
+ async createScan(settings, options = {}) {
19
+ const config = await this.buildScanConfig(new ScanSettings_1.ScanSettings(settings));
20
+ const { id } = await this.scans.createScan(config);
21
+ return new Scan_1.Scan({ id, logger: this.logger, scans: this.scans, ...options });
22
+ }
23
+ async buildScanConfig({ name, tests, target, repeaterId, smart, poolSize, targetTimeout, slowEpTimeout, skipStaticParams, attackParamLocations }) {
24
+ const fileId = await this.createAndUploadHar(target);
25
+ return {
26
+ name,
27
+ fileId,
28
+ smart,
29
+ poolSize,
30
+ skipStaticParams,
31
+ slowEpTimeout,
32
+ targetTimeout,
33
+ module: models_1.Module.DAST,
34
+ discoveryTypes: [models_1.Discovery.ARCHIVE],
35
+ attackParamLocations: [...attackParamLocations],
36
+ tests: [...tests],
37
+ repeaters: repeaterId ? [repeaterId] : undefined
38
+ };
39
+ }
40
+ async createAndUploadHar(target) {
41
+ const har = this.createHar(target);
42
+ const filename = this.generateFilename(target.url);
43
+ const { id } = await this.scans.uploadHar({
44
+ har,
45
+ filename,
46
+ discard: true
47
+ });
48
+ return id;
49
+ }
50
+ generateFilename(url) {
51
+ const { hostname } = new URL(url);
52
+ const slug = (0, core_1.truncate)(hostname, 200);
53
+ return `${slug}-${(0, uuid_1.v4)()}.har`;
54
+ }
55
+ createHarEntry(target) {
56
+ return {
57
+ startedDateTime: new Date().toISOString(),
58
+ request: new target_1.Target(target).toHarRequest(),
59
+ response: {
60
+ httpVersion: 'HTTP/1.1',
61
+ status: 200,
62
+ statusText: 'OK',
63
+ headersSize: -1,
64
+ bodySize: -1,
65
+ content: {
66
+ size: -1,
67
+ mimeType: 'text/plain'
68
+ },
69
+ redirectURL: '',
70
+ cookies: [],
71
+ headers: []
72
+ },
73
+ cache: {},
74
+ time: 0,
75
+ timings: {
76
+ send: 0,
77
+ receive: 0,
78
+ wait: 0
79
+ }
80
+ };
81
+ }
82
+ createHar(target) {
83
+ return {
84
+ log: {
85
+ version: '1.2',
86
+ creator: {
87
+ name: this.configuration.name,
88
+ version: this.configuration.version
89
+ },
90
+ entries: [this.createHarEntry(target)]
91
+ }
92
+ };
93
+ }
94
+ }
95
+ exports.ScanFactory = ScanFactory;
96
+ //# sourceMappingURL=ScanFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanFactory.js","sourceRoot":"","sources":["../../../../packages/scan/src/ScanFactory.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,iCAA8B;AAC9B,qCAAyD;AACzD,iDAAmE;AACnE,qCAAiD;AACjD,+BAA0B;AAC1B,0CAAkE;AAIlE,MAAa,WAAW;IAKtB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QACrE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAM,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,QAA4C,EAC5C,UAGI,EAAE;QAEN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnD,OAAO,IAAI,WAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACP;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAErD,OAAO;YACL,IAAI;YACJ,MAAM;YACN,KAAK;YACL,QAAQ;YACR,gBAAgB;YAChB,aAAa;YACb,aAAa;YACb,MAAM,EAAE,eAAM,CAAC,IAAI;YACnB,cAAc,EAAE,CAAC,kBAAS,CAAC,OAAO,CAAC;YACnC,oBAAoB,EAAE,CAAC,GAAG,oBAAoB,CAAC;YAC/C,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;YACjB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACjD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,MAA8B;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACxC,GAAG;YACH,QAAQ;YACR,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,gBAAgB,CAAC,GAAW;QAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAErC,OAAO,GAAG,IAAI,IAAI,IAAA,SAAE,GAAE,MAAM,CAAC;IAC/B,CAAC;IAEO,cAAc,CAAC,MAA8B;QACnD,OAAO;YACL,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACzC,OAAO,EAAE,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE;YAC1C,QAAQ,EAAE;gBACR,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,CAAC,CAAC;gBACf,QAAQ,EAAE,CAAC,CAAC;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,CAAC,CAAC;oBACR,QAAQ,EAAE,YAAY;iBACvB;gBACD,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;aACZ;YACD,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,CAAC;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACR;SACF,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,MAA8B;QAC9C,OAAO;YACL,GAAG,EAAE;gBACH,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;oBAC7B,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;iBACpC;gBACD,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACvC;SACF,CAAC;IACJ,CAAC;CACF;AAnHD,kCAmHC"}
@@ -0,0 +1,47 @@
1
+ import { AttackParamLocation, TestType } from './models';
2
+ import { Target, TargetOptions } from './target';
3
+ export interface ScanSettingsOptions {
4
+ tests: TestType[];
5
+ target: Target | TargetOptions;
6
+ name?: string;
7
+ repeaterId?: string;
8
+ smart?: boolean;
9
+ poolSize?: number;
10
+ slowEpTimeout?: number;
11
+ targetTimeout?: number;
12
+ skipStaticParams?: boolean;
13
+ attackParamLocations?: AttackParamLocation[];
14
+ }
15
+ export declare class ScanSettings implements ScanSettingsOptions {
16
+ private _name;
17
+ get name(): string;
18
+ private set name(value);
19
+ private _repeaterId?;
20
+ get repeaterId(): string | undefined;
21
+ private set repeaterId(value);
22
+ private _skipStaticParams;
23
+ get skipStaticParams(): boolean;
24
+ private set skipStaticParams(value);
25
+ private _smart;
26
+ get smart(): boolean;
27
+ set smart(value: boolean);
28
+ private _target;
29
+ get target(): Target;
30
+ private set target(value);
31
+ private _targetTimeout?;
32
+ get targetTimeout(): number | undefined;
33
+ private set targetTimeout(value);
34
+ private _slowEpTimeout?;
35
+ get slowEpTimeout(): number | undefined;
36
+ private set slowEpTimeout(value);
37
+ private _poolSize;
38
+ get poolSize(): number;
39
+ private set poolSize(value);
40
+ private _tests;
41
+ get tests(): TestType[];
42
+ private set tests(value);
43
+ private _attackParamLocations;
44
+ get attackParamLocations(): AttackParamLocation[];
45
+ private set attackParamLocations(value);
46
+ constructor({ name, tests, target, repeaterId, smart, poolSize, targetTimeout, slowEpTimeout, skipStaticParams, attackParamLocations }: ScanSettingsOptions);
47
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScanSettings = void 0;
4
+ const models_1 = require("./models");
5
+ const target_1 = require("./target");
6
+ const core_1 = require("@sectester/core");
7
+ class ScanSettings {
8
+ constructor({ name, tests, target, repeaterId, smart = true, poolSize = 10, targetTimeout = 5, slowEpTimeout = 1000, skipStaticParams = true, attackParamLocations = [
9
+ models_1.AttackParamLocation.BODY,
10
+ models_1.AttackParamLocation.QUERY,
11
+ models_1.AttackParamLocation.FRAGMENT
12
+ ] }) {
13
+ this.attackParamLocations = attackParamLocations;
14
+ this.target = target;
15
+ const { method, parsedURL } = this.target;
16
+ this.name = name || (0, core_1.truncate)(`${method} ${parsedURL.hostname}`, 200);
17
+ this.poolSize = poolSize;
18
+ this.repeaterId = repeaterId;
19
+ this.skipStaticParams = skipStaticParams;
20
+ this.slowEpTimeout = slowEpTimeout;
21
+ this.smart = smart;
22
+ this.targetTimeout = targetTimeout;
23
+ this.tests = tests;
24
+ }
25
+ get name() {
26
+ return this._name;
27
+ }
28
+ set name(value) {
29
+ if (value.length > 200) {
30
+ throw new Error('Name must be less than 200 characters.');
31
+ }
32
+ this._name = value;
33
+ }
34
+ get repeaterId() {
35
+ return this._repeaterId;
36
+ }
37
+ set repeaterId(value) {
38
+ this._repeaterId = value;
39
+ }
40
+ get skipStaticParams() {
41
+ return this._skipStaticParams;
42
+ }
43
+ set skipStaticParams(value) {
44
+ this._skipStaticParams = !!value;
45
+ }
46
+ get smart() {
47
+ return this._smart;
48
+ }
49
+ set smart(value) {
50
+ this._smart = !!value;
51
+ }
52
+ get target() {
53
+ return this._target;
54
+ }
55
+ set target(value) {
56
+ this._target = new target_1.Target(value);
57
+ }
58
+ get targetTimeout() {
59
+ return this._targetTimeout;
60
+ }
61
+ set targetTimeout(value) {
62
+ if (!(0, core_1.checkBoundaries)(value, { max: 120, min: 0, exclusiveMin: true })) {
63
+ throw new Error('Invalid target connection timeout.');
64
+ }
65
+ this._targetTimeout = value;
66
+ }
67
+ get slowEpTimeout() {
68
+ return this._slowEpTimeout;
69
+ }
70
+ set slowEpTimeout(value) {
71
+ if (!(0, core_1.checkBoundaries)(value, { min: 100 })) {
72
+ throw new Error('Invalid slow entry point timeout.');
73
+ }
74
+ this._slowEpTimeout = value;
75
+ }
76
+ get poolSize() {
77
+ return this._poolSize;
78
+ }
79
+ set poolSize(value) {
80
+ if (!(0, core_1.checkBoundaries)(value, { min: 1, max: 50 })) {
81
+ throw new Error('Invalid pool size.');
82
+ }
83
+ this._poolSize = value;
84
+ }
85
+ get tests() {
86
+ return this._tests;
87
+ }
88
+ set tests(value) {
89
+ if (!(0, core_1.contains)(models_1.TestType, value)) {
90
+ throw new Error('Unknown test type supplied.');
91
+ }
92
+ const uniqueTestTypes = new Set(value);
93
+ if (uniqueTestTypes.size < 1) {
94
+ throw new Error('Please provide a least one test.');
95
+ }
96
+ this._tests = [...uniqueTestTypes];
97
+ }
98
+ get attackParamLocations() {
99
+ return this._attackParamLocations;
100
+ }
101
+ set attackParamLocations(value) {
102
+ if (!(0, core_1.contains)(models_1.AttackParamLocation, value)) {
103
+ throw new Error('Unknown attack param location supplied.');
104
+ }
105
+ const uniqueAttackParamLocations = new Set(value);
106
+ if (uniqueAttackParamLocations.size < 1) {
107
+ throw new Error('Please provide a least one attack parameter location.');
108
+ }
109
+ this._attackParamLocations = [...uniqueAttackParamLocations];
110
+ }
111
+ }
112
+ exports.ScanSettings = ScanSettings;
113
+ //# sourceMappingURL=ScanSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanSettings.js","sourceRoot":"","sources":["../../../../packages/scan/src/ScanSettings.ts"],"names":[],"mappings":"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"}
package/src/Scans.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ import { Issue, ScanConfig, ScanState } from './models';
2
+ import { Har } from '@har-sdk/core';
3
+ export interface UploadHarOptions {
4
+ har: Har;
5
+ filename: string;
6
+ discard?: boolean;
7
+ }
8
+ export interface Scans {
9
+ createScan(config: ScanConfig): Promise<{
10
+ id: string;
11
+ }>;
12
+ listIssues(id: string): Promise<Issue[]>;
13
+ stopScan(id: string): Promise<void>;
14
+ deleteScan(id: string): Promise<void>;
15
+ getScan(id: string): Promise<ScanState>;
16
+ uploadHar(options: UploadHarOptions): Promise<{
17
+ id: string;
18
+ }>;
19
+ }
20
+ export declare const Scans: unique symbol;
package/src/Scans.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Scans = void 0;
4
+ exports.Scans = Symbol('Scans');
5
+ //# sourceMappingURL=Scans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scans.js","sourceRoot":"","sources":["../../../../packages/scan/src/Scans.ts"],"names":[],"mappings":";;;AAuBa,QAAA,KAAK,GAAkB,MAAM,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ScanConfig } from '../models';
2
+ import { HttpRequest } from '@sectester/bus';
3
+ export declare type CreateScanPayload = ScanConfig & {
4
+ info: {
5
+ source: 'utlib';
6
+ client: {
7
+ name: string;
8
+ version: string;
9
+ };
10
+ provider: string | null;
11
+ };
12
+ };
13
+ export declare class CreateScan extends HttpRequest<CreateScanPayload, {
14
+ id: string;
15
+ }> {
16
+ constructor(payload: CreateScanPayload);
17
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateScan = void 0;
4
+ const bus_1 = require("@sectester/bus");
5
+ class CreateScan extends bus_1.HttpRequest {
6
+ constructor(payload) {
7
+ super({
8
+ payload,
9
+ url: '/api/v1/scans',
10
+ method: 'POST'
11
+ });
12
+ }
13
+ }
14
+ exports.CreateScan = CreateScan;
15
+ //# sourceMappingURL=CreateScan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateScan.js","sourceRoot":"","sources":["../../../../../packages/scan/src/commands/CreateScan.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAU7C,MAAa,UAAW,SAAQ,iBAA8C;IAC5E,YAAY,OAA0B;QACpC,KAAK,CAAC;YACJ,OAAO;YACP,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;CACF;AARD,gCAQC"}
@@ -0,0 +1,4 @@
1
+ import { HttpRequest } from '@sectester/bus';
2
+ export declare class DeleteScan extends HttpRequest {
3
+ constructor(id: string);
4
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteScan = void 0;
4
+ const bus_1 = require("@sectester/bus");
5
+ class DeleteScan extends bus_1.HttpRequest {
6
+ constructor(id) {
7
+ super({
8
+ method: 'DELETE',
9
+ url: `/api/v1/scans/${id}`,
10
+ payload: undefined,
11
+ expectReply: false
12
+ });
13
+ }
14
+ }
15
+ exports.DeleteScan = DeleteScan;
16
+ //# sourceMappingURL=DeleteScan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteScan.js","sourceRoot":"","sources":["../../../../../packages/scan/src/commands/DeleteScan.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAE7C,MAAa,UAAW,SAAQ,iBAAW;IACzC,YAAY,EAAU;QACpB,KAAK,CAAC;YACJ,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,iBAAiB,EAAE,EAAE;YAC1B,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AATD,gCASC"}
@@ -0,0 +1,5 @@
1
+ import { ScanState } from '../models';
2
+ import { HttpRequest } from '@sectester/bus';
3
+ export declare class GetScan extends HttpRequest<undefined, ScanState> {
4
+ constructor(id: string);
5
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetScan = void 0;
4
+ const bus_1 = require("@sectester/bus");
5
+ class GetScan extends bus_1.HttpRequest {
6
+ constructor(id) {
7
+ super({
8
+ url: `/api/v1/scans/${id}`,
9
+ payload: undefined
10
+ });
11
+ }
12
+ }
13
+ exports.GetScan = GetScan;
14
+ //# sourceMappingURL=GetScan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetScan.js","sourceRoot":"","sources":["../../../../../packages/scan/src/commands/GetScan.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAE7C,MAAa,OAAQ,SAAQ,iBAAiC;IAC5D,YAAY,EAAU;QACpB,KAAK,CAAC;YACJ,GAAG,EAAE,iBAAiB,EAAE,EAAE;YAC1B,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AAPD,0BAOC"}
@@ -0,0 +1,5 @@
1
+ import { Issue } from '../models';
2
+ import { HttpRequest } from '@sectester/bus';
3
+ export declare class ListIssues extends HttpRequest<undefined, Omit<Issue, 'link'>[]> {
4
+ constructor(id: string);
5
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListIssues = void 0;
4
+ const bus_1 = require("@sectester/bus");
5
+ class ListIssues extends bus_1.HttpRequest {
6
+ constructor(id) {
7
+ super({
8
+ url: `/api/v1/scans/${id}/issues`,
9
+ payload: undefined
10
+ });
11
+ }
12
+ }
13
+ exports.ListIssues = ListIssues;
14
+ //# sourceMappingURL=ListIssues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListIssues.js","sourceRoot":"","sources":["../../../../../packages/scan/src/commands/ListIssues.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAE7C,MAAa,UAAW,SAAQ,iBAA6C;IAC3E,YAAY,EAAU;QACpB,KAAK,CAAC;YACJ,GAAG,EAAE,iBAAiB,EAAE,SAAS;YACjC,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AAPD,gCAOC"}
@@ -0,0 +1,4 @@
1
+ import { HttpRequest } from '@sectester/bus';
2
+ export declare class StopScan extends HttpRequest {
3
+ constructor(id: string);
4
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StopScan = void 0;
4
+ const bus_1 = require("@sectester/bus");
5
+ class StopScan extends bus_1.HttpRequest {
6
+ constructor(id) {
7
+ super({
8
+ url: `/api/v1/scans/${id}/stop`,
9
+ payload: undefined,
10
+ expectReply: false
11
+ });
12
+ }
13
+ }
14
+ exports.StopScan = StopScan;
15
+ //# sourceMappingURL=StopScan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StopScan.js","sourceRoot":"","sources":["../../../../../packages/scan/src/commands/StopScan.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAE7C,MAAa,QAAS,SAAQ,iBAAW;IACvC,YAAY,EAAU;QACpB,KAAK,CAAC;YACJ,GAAG,EAAE,iBAAiB,EAAE,OAAO;YAC/B,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AARD,4BAQC"}
@@ -0,0 +1,8 @@
1
+ import { UploadHarOptions } from '../Scans';
2
+ import FormData from 'form-data';
3
+ import { HttpRequest } from '@sectester/bus';
4
+ export declare class UploadHar extends HttpRequest<FormData, {
5
+ id: string;
6
+ }> {
7
+ constructor({ filename, har, discard }: UploadHarOptions);
8
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UploadHar = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const form_data_1 = (0, tslib_1.__importDefault)(require("form-data"));
6
+ const bus_1 = require("@sectester/bus");
7
+ class UploadHar extends bus_1.HttpRequest {
8
+ constructor({ filename, har, discard = false }) {
9
+ const payload = new form_data_1.default();
10
+ payload.append('file', JSON.stringify(har), {
11
+ filename,
12
+ contentType: 'application/json'
13
+ });
14
+ super({
15
+ payload,
16
+ method: 'POST',
17
+ url: '/api/v1/files',
18
+ params: { discard }
19
+ });
20
+ }
21
+ }
22
+ exports.UploadHar = UploadHar;
23
+ //# sourceMappingURL=UploadHar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadHar.js","sourceRoot":"","sources":["../../../../../packages/scan/src/commands/UploadHar.ts"],"names":[],"mappings":";;;;AACA,uEAAiC;AACjC,wCAA6C;AAE7C,MAAa,SAAU,SAAQ,iBAAqC;IAClE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,KAAK,EAAoB;QAC9D,MAAM,OAAO,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC1C,QAAQ;YACR,WAAW,EAAE,kBAAkB;SAChC,CAAC,CAAC;QAEH,KAAK,CAAC;YACJ,OAAO;YACP,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC,CAAC;IACL,CAAC;CACF;AAfD,8BAeC"}
@@ -0,0 +1,6 @@
1
+ export * from './CreateScan';
2
+ export * from './GetScan';
3
+ export * from './DeleteScan';
4
+ export * from './ListIssues';
5
+ export * from './StopScan';
6
+ export * from './UploadHar';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./CreateScan"), exports);
5
+ (0, tslib_1.__exportStar)(require("./GetScan"), exports);
6
+ (0, tslib_1.__exportStar)(require("./DeleteScan"), exports);
7
+ (0, tslib_1.__exportStar)(require("./ListIssues"), exports);
8
+ (0, tslib_1.__exportStar)(require("./StopScan"), exports);
9
+ (0, tslib_1.__exportStar)(require("./UploadHar"), exports);
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/scan/src/commands/index.ts"],"names":[],"mappings":";;;AAAA,4DAA6B;AAC7B,yDAA0B;AAC1B,4DAA6B;AAC7B,4DAA6B;AAC7B,0DAA2B;AAC3B,2DAA4B"}
@@ -0,0 +1,7 @@
1
+ import { ScanException } from './ScanException';
2
+ import { ScanExceptionCode } from './ScanExceptionCode';
3
+ import { ScanStatus } from '../models';
4
+ export declare class ScanAborted extends ScanException {
5
+ get type(): ScanExceptionCode;
6
+ constructor(status: ScanStatus);
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScanAborted = void 0;
4
+ const ScanException_1 = require("./ScanException");
5
+ const ScanExceptionCode_1 = require("./ScanExceptionCode");
6
+ class ScanAborted extends ScanException_1.ScanException {
7
+ get type() {
8
+ return ScanExceptionCode_1.ScanExceptionCode.ABORTED;
9
+ }
10
+ constructor(status) {
11
+ super(`Scan ${status}.`);
12
+ }
13
+ }
14
+ exports.ScanAborted = ScanAborted;
15
+ //# sourceMappingURL=ScanAborted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanAborted.js","sourceRoot":"","sources":["../../../../../packages/scan/src/exceptions/ScanAborted.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,2DAAwD;AAGxD,MAAa,WAAY,SAAQ,6BAAa;IAC5C,IAAI,IAAI;QACN,OAAO,qCAAiB,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,YAAY,MAAkB;QAC5B,KAAK,CAAC,QAAQ,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF;AARD,kCAQC"}
@@ -0,0 +1,6 @@
1
+ import { ScanExceptionCode } from './ScanExceptionCode';
2
+ import { SecTesterError } from '@sectester/core';
3
+ export declare abstract class ScanException extends SecTesterError {
4
+ abstract get type(): ScanExceptionCode;
5
+ protected constructor(message: string);
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScanException = void 0;
4
+ const core_1 = require("@sectester/core");
5
+ class ScanException extends core_1.SecTesterError {
6
+ constructor(message) {
7
+ super(message);
8
+ }
9
+ }
10
+ exports.ScanException = ScanException;
11
+ //# sourceMappingURL=ScanException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanException.js","sourceRoot":"","sources":["../../../../../packages/scan/src/exceptions/ScanException.ts"],"names":[],"mappings":";;;AACA,0CAAiD;AAEjD,MAAsB,aAAc,SAAQ,qBAAc;IAGxD,YAAsB,OAAe;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAND,sCAMC"}
@@ -0,0 +1,4 @@
1
+ export declare enum ScanExceptionCode {
2
+ ABORTED = -1,
3
+ TIMED_OUT = -2
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScanExceptionCode = void 0;
4
+ var ScanExceptionCode;
5
+ (function (ScanExceptionCode) {
6
+ ScanExceptionCode[ScanExceptionCode["ABORTED"] = -1] = "ABORTED";
7
+ ScanExceptionCode[ScanExceptionCode["TIMED_OUT"] = -2] = "TIMED_OUT";
8
+ })(ScanExceptionCode = exports.ScanExceptionCode || (exports.ScanExceptionCode = {}));
9
+ //# sourceMappingURL=ScanExceptionCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanExceptionCode.js","sourceRoot":"","sources":["../../../../../packages/scan/src/exceptions/ScanExceptionCode.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,gEAAY,CAAA;IACZ,oEAAc,CAAA;AAChB,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B"}
@@ -0,0 +1,6 @@
1
+ import { ScanException } from './ScanException';
2
+ import { ScanExceptionCode } from './ScanExceptionCode';
3
+ export declare class ScanTimedOut extends ScanException {
4
+ get type(): ScanExceptionCode;
5
+ constructor(timeout: number);
6
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScanTimedOut = void 0;
4
+ const ScanException_1 = require("./ScanException");
5
+ const ScanExceptionCode_1 = require("./ScanExceptionCode");
6
+ class ScanTimedOut extends ScanException_1.ScanException {
7
+ get type() {
8
+ return ScanExceptionCode_1.ScanExceptionCode.TIMED_OUT;
9
+ }
10
+ constructor(timeout) {
11
+ super(`The expectation was not satisfied within the ${timeout} ms timeout specified.`);
12
+ }
13
+ }
14
+ exports.ScanTimedOut = ScanTimedOut;
15
+ //# sourceMappingURL=ScanTimedOut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanTimedOut.js","sourceRoot":"","sources":["../../../../../packages/scan/src/exceptions/ScanTimedOut.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,2DAAwD;AAExD,MAAa,YAAa,SAAQ,6BAAa;IAC7C,IAAI,IAAI;QACN,OAAO,qCAAiB,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,YAAY,OAAe;QACzB,KAAK,CACH,gDAAgD,OAAO,wBAAwB,CAChF,CAAC;IACJ,CAAC;CACF;AAVD,oCAUC"}
@@ -0,0 +1,4 @@
1
+ export * from './ScanException';
2
+ export * from './ScanExceptionCode';
3
+ export * from './ScanAborted';
4
+ export * from './ScanTimedOut';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./ScanException"), exports);
5
+ (0, tslib_1.__exportStar)(require("./ScanExceptionCode"), exports);
6
+ (0, tslib_1.__exportStar)(require("./ScanAborted"), exports);
7
+ (0, tslib_1.__exportStar)(require("./ScanTimedOut"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/scan/src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,+DAAgC;AAChC,mEAAoC;AACpC,6DAA8B;AAC9B,8DAA+B"}
package/src/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import './register';
2
+ export * from './exceptions';
3
+ export * from './models';
4
+ export * from './target';
5
+ export * from './Scan';
6
+ export * from './ScanFactory';
7
+ export * from './ScanSettings';