fase(6): fuzzing module complete
This commit is contained in:
39
dist/modules/fuzzing/application/commands/RunFuzzCommand.js
vendored
Normal file
39
dist/modules/fuzzing/application/commands/RunFuzzCommand.js
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.RunFuzzCommand = void 0;
|
||||
const Result_1 = require("../../../../shared/domain/Result");
|
||||
const FuzzSession_1 = require("../../domain/entities/FuzzSession");
|
||||
class RunFuzzCommand {
|
||||
constructor(fuzzerEngine, repository, eventBus) {
|
||||
this.fuzzerEngine = fuzzerEngine;
|
||||
this.repository = repository;
|
||||
this.eventBus = eventBus;
|
||||
}
|
||||
async execute(request) {
|
||||
const sessionResult = FuzzSession_1.FuzzSession.create({
|
||||
crawlSessionId: request.crawlSessionId,
|
||||
intensity: request.intensity,
|
||||
seed: request.seed,
|
||||
});
|
||||
if (!sessionResult.ok) {
|
||||
return (0, Result_1.Err)(sessionResult.error);
|
||||
}
|
||||
const session = sessionResult.value;
|
||||
await this.repository.save(session);
|
||||
const actions = this.fuzzerEngine.generateFuzzActions(request.state.domSnapshot, request.state);
|
||||
for (const _action of actions) {
|
||||
session.incrementActions();
|
||||
}
|
||||
session.complete();
|
||||
await this.repository.update(session);
|
||||
for (const event of session.domainEvents) {
|
||||
await this.eventBus.publish(event);
|
||||
}
|
||||
session.clearEvents();
|
||||
return (0, Result_1.Ok)({
|
||||
fuzzSessionId: session.id.toString(),
|
||||
actionsGenerated: actions.length,
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.RunFuzzCommand = RunFuzzCommand;
|
||||
Reference in New Issue
Block a user