@sectester/repeater 0.20.2 → 0.22.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectester/repeater",
3
- "version": "0.20.2",
3
+ "version": "0.22.0",
4
4
  "description": "Package for managing repeaters, which are mandatory for scanning targets on a local network.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3,9 +3,10 @@ import { CommandDispatcher } from '@sectester/core';
3
3
  export declare class DefaultRepeatersManager implements RepeatersManager {
4
4
  private readonly commandDispatcher;
5
5
  constructor(commandDispatcher: CommandDispatcher);
6
- createRepeater(payload: {
6
+ createRepeater({ projectId, ...options }: {
7
7
  name: string;
8
8
  description?: string;
9
+ projectId?: string;
9
10
  }): Promise<{
10
11
  repeaterId: string;
11
12
  }>;
@@ -9,8 +9,11 @@ let DefaultRepeatersManager = class DefaultRepeatersManager {
9
9
  constructor(commandDispatcher) {
10
10
  this.commandDispatcher = commandDispatcher;
11
11
  }
12
- async createRepeater(payload) {
13
- const repeater = await this.commandDispatcher.execute(new commands_1.CreateRepeaterRequest(payload));
12
+ async createRepeater({ projectId, ...options }) {
13
+ const repeater = await this.commandDispatcher.execute(new commands_1.CreateRepeaterRequest({
14
+ ...options,
15
+ ...(projectId ? { projectIds: [projectId] } : {})
16
+ }));
14
17
  if (!(repeater === null || repeater === void 0 ? void 0 : repeater.id)) {
15
18
  throw new Error('Cannot find created repeater id');
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultRepeatersManager.js","sourceRoot":"","sources":["../../../../../packages/repeater/src/api/DefaultRepeatersManager.ts"],"names":[],"mappings":";;;;AACA,yCAA0E;AAC1E,uCAA8C;AAC9C,0CAAoD;AAGpD,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAClC,YAEmB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAEG,KAAK,CAAC,cAAc,CAAC,OAG3B;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACnD,IAAI,gCAAqB,CAAC,OAAO,CAAC,CACnC,CAAC;QAEF,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QAED,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACnC,IAAI,gCAAqB,CAAC,EAAE,UAAU,EAAE,CAAC,CAC1C,CAAC;IACJ,CAAC;CACF,CAAA;AA1BY,uBAAuB;IADnC,IAAA,qBAAU,GAAE;IAGR,mBAAA,IAAA,iBAAM,EAAC,wBAAiB,CAAC,CAAA;;GAFjB,uBAAuB,CA0BnC;AA1BY,0DAAuB"}
1
+ {"version":3,"file":"DefaultRepeatersManager.js","sourceRoot":"","sources":["../../../../../packages/repeater/src/api/DefaultRepeatersManager.ts"],"names":[],"mappings":";;;;AACA,yCAA0E;AAC1E,uCAA8C;AAC9C,0CAAoD;AAGpD,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAClC,YAEmB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAEG,KAAK,CAAC,cAAc,CAAC,EAC1B,SAAS,EACT,GAAG,OAAO,EAKX;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACnD,IAAI,gCAAqB,CAAC;YACxB,GAAG,OAAO;YACV,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QAED,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACnC,IAAI,gCAAqB,CAAC,EAAE,UAAU,EAAE,CAAC,CAC1C,CAAC;IACJ,CAAC;CACF,CAAA;AAjCY,uBAAuB;IADnC,IAAA,qBAAU,GAAE;IAGR,mBAAA,IAAA,iBAAM,EAAC,wBAAiB,CAAC,CAAA;;GAFjB,uBAAuB,CAiCnC;AAjCY,0DAAuB"}
@@ -1,6 +1,7 @@
1
1
  export interface RepeatersManager {
2
2
  createRepeater(options: {
3
3
  name: string;
4
+ projectId?: string;
4
5
  description?: string;
5
6
  }): Promise<{
6
7
  repeaterId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatersManager.js","sourceRoot":"","sources":["../../../../../packages/repeater/src/api/RepeatersManager.ts"],"names":[],"mappings":";;;AASa,QAAA,gBAAgB,GAAkB,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"RepeatersManager.js","sourceRoot":"","sources":["../../../../../packages/repeater/src/api/RepeatersManager.ts"],"names":[],"mappings":";;;AAUa,QAAA,gBAAgB,GAAkB,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { HttpRequest } from '@sectester/bus';
2
2
  export interface CreateRepeaterRequestPayload {
3
3
  name: string;
4
4
  description?: string;
5
+ projectIds?: string[];
5
6
  }
6
7
  export interface CreateRepeaterResponsePayload {
7
8
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"CreateRepeaterRequest.js","sourceRoot":"","sources":["../../../../../../packages/repeater/src/api/commands/CreateRepeaterRequest.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAW7C,MAAa,qBAAsB,SAAQ,iBAG1C;IACC,YAAY,OAAqC;QAC/C,KAAK,CAAC;YACJ,OAAO;YACP,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAXD,sDAWC"}
1
+ {"version":3,"file":"CreateRepeaterRequest.js","sourceRoot":"","sources":["../../../../../../packages/repeater/src/api/commands/CreateRepeaterRequest.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAY7C,MAAa,qBAAsB,SAAQ,iBAG1C;IACC,YAAY,OAAqC;QAC/C,KAAK,CAAC;YACJ,OAAO;YACP,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAXD,sDAWC"}
@@ -6,12 +6,14 @@ import { Configuration } from '@sectester/core';
6
6
  */
7
7
  export declare class RepeaterFactory {
8
8
  private readonly configuration;
9
+ private readonly MAX_NAME_LENGTH;
9
10
  private readonly DEFAULT_RUNNER_OPTIONS;
10
11
  private readonly container;
11
12
  private readonly repeatersManager;
12
13
  private readonly eventBusFactory;
13
14
  constructor(configuration: Configuration);
14
- createRepeater({ namePrefix, description, requestRunnerOptions, requestRunners }?: RepeaterOptions): Promise<Repeater>;
15
+ createRepeater({ projectId, description, disableRandomNameGeneration, requestRunnerOptions, namePrefix, requestRunners }?: RepeaterOptions): Promise<Repeater>;
16
+ private generateName;
15
17
  private registerRequestRunners;
16
18
  private registerRequestRunnerOptions;
17
19
  private registerRequestRunner;
@@ -15,6 +15,7 @@ const tsyringe_1 = require("tsyringe");
15
15
  let RepeaterFactory = class RepeaterFactory {
16
16
  constructor(configuration) {
17
17
  this.configuration = configuration;
18
+ this.MAX_NAME_LENGTH = 80;
18
19
  this.DEFAULT_RUNNER_OPTIONS = {
19
20
  timeout: 30000,
20
21
  maxContentLength: 100,
@@ -42,17 +43,14 @@ let RepeaterFactory = class RepeaterFactory {
42
43
  this.eventBusFactory =
43
44
  this.container.resolve(bus_1.EventBusFactory);
44
45
  }
45
- async createRepeater({ namePrefix, description, requestRunnerOptions, requestRunners = [request_runner_1.HttpRequestRunner, request_runner_1.WsRequestRunner] } = {
46
- namePrefix: 'sectester'
47
- }) {
46
+ async createRepeater({ projectId, description, disableRandomNameGeneration, requestRunnerOptions, namePrefix = 'sectester', requestRunners = [request_runner_1.HttpRequestRunner, request_runner_1.WsRequestRunner] } = {}) {
48
47
  var _a;
49
- if (namePrefix && namePrefix.length > 44) {
50
- throw new Error('Name prefix must be less than 44 characters.');
51
- }
52
48
  this.registerRequestRunners(requestRunners, requestRunnerOptions);
49
+ const name = this.generateName(namePrefix, disableRandomNameGeneration);
53
50
  const { repeaterId } = await this.repeatersManager.createRepeater({
54
51
  description,
55
- name: `${namePrefix}-${(0, uuid_1.v4)()}`
52
+ projectId,
53
+ name
56
54
  });
57
55
  const bus = await this.eventBusFactory.create(repeaterId);
58
56
  await ((_a = bus.init) === null || _a === void 0 ? void 0 : _a.call(bus));
@@ -62,6 +60,16 @@ let RepeaterFactory = class RepeaterFactory {
62
60
  configuration: this.configuration
63
61
  });
64
62
  }
63
+ generateName(namePrefix, disableRandomNameGeneration = false) {
64
+ const normalizedPrefix = namePrefix === null || namePrefix === void 0 ? void 0 : namePrefix.trim();
65
+ const randomPostfix = disableRandomNameGeneration ? '' : `-${(0, uuid_1.v4)()}`;
66
+ const name = `${normalizedPrefix}${randomPostfix}`;
67
+ if (name.length > this.MAX_NAME_LENGTH) {
68
+ const maxPrefixLength = this.MAX_NAME_LENGTH - randomPostfix.length;
69
+ throw new Error(`Name prefix must be less than or equal to ${maxPrefixLength} characters.`);
70
+ }
71
+ return name;
72
+ }
65
73
  registerRequestRunners(requestRunners, requestRunnerOptions) {
66
74
  this.registerRequestRunnerOptions(requestRunnerOptions);
67
75
  requestRunners === null || requestRunners === void 0 ? void 0 : requestRunners.forEach(runner => this.registerRequestRunner(runner));
@@ -1 +1 @@
1
- {"version":3,"file":"RepeaterFactory.js","sourceRoot":"","sources":["../../../../../packages/repeater/src/lib/RepeaterFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RepeaterFactory.js","sourceRoot":"","sources":["../../../../../packages/repeater/src/lib/RepeaterFactory.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { RequestRunner, RequestRunnerOptions } from '../request-runner';
2
2
  export interface RepeaterOptions {
3
3
  namePrefix?: string;
4
+ projectId?: string;
4
5
  description?: string;
6
+ disableRandomNameGeneration?: boolean;
5
7
  requestRunnerOptions?: RequestRunnerOptions;
6
8
  requestRunners?: (RequestRunner | {
7
9
  new (...args: any[]): RequestRunner;