@cotestdev/ai-runner 0.0.5 → 0.0.6
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/agents/logger.d.ts.map +1 -0
- package/dist/agents/logger.js.map +1 -0
- package/dist/agents/playwright-executor.d.ts.map +1 -0
- package/dist/agents/playwright-executor.js.map +1 -0
- package/dist/agents/tools/playwright-backend-adapter.d.ts.map +1 -0
- package/dist/agents/tools/playwright-backend-adapter.js.map +1 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/{core-infra/src → agents}/types.js.map +1 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/playwright-groups.d.ts.map +1 -0
- package/dist/tools/playwright-groups.js.map +1 -0
- package/dist/types/external.d.ts.map +1 -0
- package/dist/types/external.js.map +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +2 -7
- package/playwright.config.ts +38 -0
- package/src/agents/logger.ts +20 -0
- package/src/agents/playwright-executor.ts +252 -0
- package/src/agents/tools/playwright-backend-adapter.ts +134 -0
- package/src/agents/tools/playwright-mcp-types.d.ts +71 -0
- package/src/agents/types.ts +80 -0
- package/src/index.ts +27 -0
- package/src/runner.ts +224 -0
- package/src/tools/index.ts +48 -0
- package/src/tools/playwright-groups.ts +54 -0
- package/src/types/external.ts +7 -0
- package/src/types/index.ts +118 -0
- package/tests/agent/test-heal-agent.spec.ts +54 -0
- package/tsconfig.json +26 -0
- package/dist/ai-runner/src/agents/logger.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/logger.js.map +0 -1
- package/dist/ai-runner/src/agents/playwright-executor.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/playwright-executor.js.map +0 -1
- package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.js.map +0 -1
- package/dist/ai-runner/src/agents/types.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/types.js.map +0 -1
- package/dist/ai-runner/src/index.d.ts.map +0 -1
- package/dist/ai-runner/src/index.js.map +0 -1
- package/dist/ai-runner/src/runner.d.ts.map +0 -1
- package/dist/ai-runner/src/runner.js.map +0 -1
- package/dist/ai-runner/src/tools/index.d.ts.map +0 -1
- package/dist/ai-runner/src/tools/index.js.map +0 -1
- package/dist/ai-runner/src/tools/playwright-groups.d.ts.map +0 -1
- package/dist/ai-runner/src/tools/playwright-groups.js.map +0 -1
- package/dist/ai-runner/src/types/external.d.ts.map +0 -1
- package/dist/ai-runner/src/types/external.js.map +0 -1
- package/dist/ai-runner/src/types/index.d.ts.map +0 -1
- package/dist/ai-runner/src/types/index.js.map +0 -1
- package/dist/core-infra/src/directory-validator.d.ts +0 -29
- package/dist/core-infra/src/directory-validator.d.ts.map +0 -1
- package/dist/core-infra/src/directory-validator.js +0 -91
- package/dist/core-infra/src/directory-validator.js.map +0 -1
- package/dist/core-infra/src/index.d.ts +0 -14
- package/dist/core-infra/src/index.d.ts.map +0 -1
- package/dist/core-infra/src/index.js +0 -44
- package/dist/core-infra/src/index.js.map +0 -1
- package/dist/core-infra/src/mcp/file-mcp-manager.d.ts +0 -14
- package/dist/core-infra/src/mcp/file-mcp-manager.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/file-mcp-manager.js +0 -46
- package/dist/core-infra/src/mcp/file-mcp-manager.js.map +0 -1
- package/dist/core-infra/src/mcp/index.d.ts +0 -21
- package/dist/core-infra/src/mcp/index.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/index.js +0 -17
- package/dist/core-infra/src/mcp/index.js.map +0 -1
- package/dist/core-infra/src/mcp/mcp-client.d.ts +0 -128
- package/dist/core-infra/src/mcp/mcp-client.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/mcp-client.js +0 -163
- package/dist/core-infra/src/mcp/mcp-client.js.map +0 -1
- package/dist/core-infra/src/mcp/mcp-manager.d.ts +0 -21
- package/dist/core-infra/src/mcp/mcp-manager.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/mcp-manager.js +0 -99
- package/dist/core-infra/src/mcp/mcp-manager.js.map +0 -1
- package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts +0 -19
- package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/playwright-mcp-manager.js +0 -121
- package/dist/core-infra/src/mcp/playwright-mcp-manager.js.map +0 -1
- package/dist/core-infra/src/model.d.ts +0 -13
- package/dist/core-infra/src/model.d.ts.map +0 -1
- package/dist/core-infra/src/model.js +0 -191
- package/dist/core-infra/src/model.js.map +0 -1
- package/dist/core-infra/src/repositories/BaseRepository.d.ts +0 -69
- package/dist/core-infra/src/repositories/BaseRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/BaseRepository.js +0 -213
- package/dist/core-infra/src/repositories/BaseRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/DirectoryRepository.d.ts +0 -70
- package/dist/core-infra/src/repositories/DirectoryRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/DirectoryRepository.js +0 -336
- package/dist/core-infra/src/repositories/DirectoryRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/ExplorationRepository.d.ts +0 -34
- package/dist/core-infra/src/repositories/ExplorationRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/ExplorationRepository.js +0 -54
- package/dist/core-infra/src/repositories/ExplorationRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/FileRepository.d.ts +0 -56
- package/dist/core-infra/src/repositories/FileRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/FileRepository.js +0 -132
- package/dist/core-infra/src/repositories/FileRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts +0 -38
- package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/ModelConfigRepository.js +0 -59
- package/dist/core-infra/src/repositories/ModelConfigRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/ProjectRepository.d.ts +0 -32
- package/dist/core-infra/src/repositories/ProjectRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/ProjectRepository.js +0 -67
- package/dist/core-infra/src/repositories/ProjectRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/SettingsRepository.d.ts +0 -19
- package/dist/core-infra/src/repositories/SettingsRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/SettingsRepository.js +0 -72
- package/dist/core-infra/src/repositories/SettingsRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TableDataRepository.d.ts +0 -22
- package/dist/core-infra/src/repositories/TableDataRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TableDataRepository.js +0 -33
- package/dist/core-infra/src/repositories/TableDataRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TestCaseRepository.d.ts +0 -120
- package/dist/core-infra/src/repositories/TestCaseRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TestCaseRepository.js +0 -463
- package/dist/core-infra/src/repositories/TestCaseRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TestPlanRepository.d.ts +0 -35
- package/dist/core-infra/src/repositories/TestPlanRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TestPlanRepository.js +0 -80
- package/dist/core-infra/src/repositories/TestPlanRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TestResultRepository.d.ts +0 -30
- package/dist/core-infra/src/repositories/TestResultRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TestResultRepository.js +0 -54
- package/dist/core-infra/src/repositories/TestResultRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/index.d.ts +0 -17
- package/dist/core-infra/src/repositories/index.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/index.js +0 -31
- package/dist/core-infra/src/repositories/index.js.map +0 -1
- package/dist/core-infra/src/storageService.d.ts +0 -131
- package/dist/core-infra/src/storageService.d.ts.map +0 -1
- package/dist/core-infra/src/storageService.js +0 -304
- package/dist/core-infra/src/storageService.js.map +0 -1
- package/dist/core-infra/src/types.d.ts +0 -219
- package/dist/core-infra/src/types.d.ts.map +0 -1
- package/dist/core-infra/src/types.js +0 -3
- /package/dist/{ai-runner/src/agents → agents}/logger.d.ts +0 -0
- /package/dist/{ai-runner/src/agents → agents}/logger.js +0 -0
- /package/dist/{ai-runner/src/agents → agents}/playwright-executor.d.ts +0 -0
- /package/dist/{ai-runner/src/agents → agents}/playwright-executor.js +0 -0
- /package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.d.ts +0 -0
- /package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.js +0 -0
- /package/dist/{ai-runner/src/agents → agents}/types.d.ts +0 -0
- /package/dist/{ai-runner/src/agents → agents}/types.js +0 -0
- /package/dist/{ai-runner/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{ai-runner/src/index.js → index.js} +0 -0
- /package/dist/{ai-runner/src/runner.d.ts → runner.d.ts} +0 -0
- /package/dist/{ai-runner/src/runner.js → runner.js} +0 -0
- /package/dist/{ai-runner/src/tools → tools}/index.d.ts +0 -0
- /package/dist/{ai-runner/src/tools → tools}/index.js +0 -0
- /package/dist/{ai-runner/src/tools → tools}/playwright-groups.d.ts +0 -0
- /package/dist/{ai-runner/src/tools → tools}/playwright-groups.js +0 -0
- /package/dist/{ai-runner/src/types → types}/external.d.ts +0 -0
- /package/dist/{ai-runner/src/types → types}/external.js +0 -0
- /package/dist/{ai-runner/src/types → types}/index.d.ts +0 -0
- /package/dist/{ai-runner/src/types → types}/index.js +0 -0
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TestResultRepository = void 0;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const BaseRepository_1 = require("./BaseRepository");
|
|
6
|
-
/**
|
|
7
|
-
* TestResultRepository handles all storage operations for test results
|
|
8
|
-
* Responsible for managing test execution results and history
|
|
9
|
-
*/
|
|
10
|
-
class TestResultRepository extends BaseRepository_1.BaseRepository {
|
|
11
|
-
constructor(projectId) {
|
|
12
|
-
super((0, path_1.join)("projects", projectId, 'results'));
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Save a test result
|
|
16
|
-
*/
|
|
17
|
-
async saveTestResult(result) {
|
|
18
|
-
await this.save(result.id, result, 'json');
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Load a test result by ID
|
|
22
|
-
*/
|
|
23
|
-
async loadTestResult(resultId) {
|
|
24
|
-
return this.load(resultId, 'json');
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Load all results for a specific test case
|
|
28
|
-
*/
|
|
29
|
-
async loadTestResults(testId) {
|
|
30
|
-
const results = await this.listAll();
|
|
31
|
-
return results
|
|
32
|
-
.filter(r => r.testId === testId)
|
|
33
|
-
.sort((a, b) => b.executedAt - a.executedAt);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Delete a test result
|
|
37
|
-
*/
|
|
38
|
-
async deleteTestResult(resultId) {
|
|
39
|
-
await this.delete(resultId, 'json');
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Delete all results for a specific test case
|
|
43
|
-
*/
|
|
44
|
-
async deleteTestResults(testId) {
|
|
45
|
-
const results = await this.listAll();
|
|
46
|
-
for (const result of results) {
|
|
47
|
-
if (result.testId === testId) {
|
|
48
|
-
await this.delete(result.id, 'json');
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.TestResultRepository = TestResultRepository;
|
|
54
|
-
//# sourceMappingURL=TestResultRepository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestResultRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/TestResultRepository.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,qDAAkD;AAGlD;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,+BAAc;IACpD,YAAY,SAAiB;QAC7B,KAAK,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAAkB;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAa,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAc,CAAC;QACjD,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;aAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAc,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA/CD,oDA+CC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Repository layer
|
|
3
|
-
* Provides separated data access concerns for different business entities
|
|
4
|
-
* Following Repository Pattern to decouple business logic from data access
|
|
5
|
-
*/
|
|
6
|
-
export { BaseRepository } from './BaseRepository';
|
|
7
|
-
export { TestCaseRepository } from './TestCaseRepository';
|
|
8
|
-
export { TestResultRepository } from './TestResultRepository';
|
|
9
|
-
export { ModelConfigRepository } from './ModelConfigRepository';
|
|
10
|
-
export { ExplorationRepository } from './ExplorationRepository';
|
|
11
|
-
export { SettingsRepository } from './SettingsRepository';
|
|
12
|
-
export { ProjectRepository } from './ProjectRepository';
|
|
13
|
-
export { DirectoryRepository } from './DirectoryRepository';
|
|
14
|
-
export { TestPlanRepository } from './TestPlanRepository';
|
|
15
|
-
export { TableDataRepository } from './TableDataRepository';
|
|
16
|
-
export { FileRepository } from './FileRepository';
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Repository layer
|
|
4
|
-
* Provides separated data access concerns for different business entities
|
|
5
|
-
* Following Repository Pattern to decouple business logic from data access
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.FileRepository = exports.TableDataRepository = exports.TestPlanRepository = exports.DirectoryRepository = exports.ProjectRepository = exports.SettingsRepository = exports.ExplorationRepository = exports.ModelConfigRepository = exports.TestResultRepository = exports.TestCaseRepository = exports.BaseRepository = void 0;
|
|
9
|
-
var BaseRepository_1 = require("./BaseRepository");
|
|
10
|
-
Object.defineProperty(exports, "BaseRepository", { enumerable: true, get: function () { return BaseRepository_1.BaseRepository; } });
|
|
11
|
-
var TestCaseRepository_1 = require("./TestCaseRepository");
|
|
12
|
-
Object.defineProperty(exports, "TestCaseRepository", { enumerable: true, get: function () { return TestCaseRepository_1.TestCaseRepository; } });
|
|
13
|
-
var TestResultRepository_1 = require("./TestResultRepository");
|
|
14
|
-
Object.defineProperty(exports, "TestResultRepository", { enumerable: true, get: function () { return TestResultRepository_1.TestResultRepository; } });
|
|
15
|
-
var ModelConfigRepository_1 = require("./ModelConfigRepository");
|
|
16
|
-
Object.defineProperty(exports, "ModelConfigRepository", { enumerable: true, get: function () { return ModelConfigRepository_1.ModelConfigRepository; } });
|
|
17
|
-
var ExplorationRepository_1 = require("./ExplorationRepository");
|
|
18
|
-
Object.defineProperty(exports, "ExplorationRepository", { enumerable: true, get: function () { return ExplorationRepository_1.ExplorationRepository; } });
|
|
19
|
-
var SettingsRepository_1 = require("./SettingsRepository");
|
|
20
|
-
Object.defineProperty(exports, "SettingsRepository", { enumerable: true, get: function () { return SettingsRepository_1.SettingsRepository; } });
|
|
21
|
-
var ProjectRepository_1 = require("./ProjectRepository");
|
|
22
|
-
Object.defineProperty(exports, "ProjectRepository", { enumerable: true, get: function () { return ProjectRepository_1.ProjectRepository; } });
|
|
23
|
-
var DirectoryRepository_1 = require("./DirectoryRepository");
|
|
24
|
-
Object.defineProperty(exports, "DirectoryRepository", { enumerable: true, get: function () { return DirectoryRepository_1.DirectoryRepository; } });
|
|
25
|
-
var TestPlanRepository_1 = require("./TestPlanRepository");
|
|
26
|
-
Object.defineProperty(exports, "TestPlanRepository", { enumerable: true, get: function () { return TestPlanRepository_1.TestPlanRepository; } });
|
|
27
|
-
var TableDataRepository_1 = require("./TableDataRepository");
|
|
28
|
-
Object.defineProperty(exports, "TableDataRepository", { enumerable: true, get: function () { return TableDataRepository_1.TableDataRepository; } });
|
|
29
|
-
var FileRepository_1 = require("./FileRepository");
|
|
30
|
-
Object.defineProperty(exports, "FileRepository", { enumerable: true, get: function () { return FileRepository_1.FileRepository; } });
|
|
31
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import type { TestCase, TestResult, AppSettings, ModelConfig, TestStep, ExplorationRecord, Project, DirectoryInfo, TestDirectory, TestPlan, TableData } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* StorageService acts as a facade for all data storage operations
|
|
4
|
-
* Coordinates between different repositories and provides a unified interface
|
|
5
|
-
* This decouples business logic from repository implementation details
|
|
6
|
-
*
|
|
7
|
-
* Benefits:
|
|
8
|
-
* - Single point of entry for all storage operations
|
|
9
|
-
* - Encapsulates repository instantiation
|
|
10
|
-
* - Easy to add cross-cutting concerns (logging, caching, etc.)
|
|
11
|
-
* - Simplifies unit testing by allowing mock repositories
|
|
12
|
-
*/
|
|
13
|
-
export declare class StorageService {
|
|
14
|
-
private static instance;
|
|
15
|
-
private testCaseRepo;
|
|
16
|
-
private testResultRepo;
|
|
17
|
-
private modelConfigRepo;
|
|
18
|
-
private explorationRepo;
|
|
19
|
-
private settingsRepo;
|
|
20
|
-
private projectRepo;
|
|
21
|
-
private directoryRepo;
|
|
22
|
-
private testPlanRepo;
|
|
23
|
-
private tableDataRepo;
|
|
24
|
-
private fileRepo;
|
|
25
|
-
private constructor();
|
|
26
|
-
private static instances;
|
|
27
|
-
/**
|
|
28
|
-
* Get singleton instance of StorageService
|
|
29
|
-
*/
|
|
30
|
-
static getInstance(projectId: string): StorageService;
|
|
31
|
-
/**
|
|
32
|
-
* Reset instance (useful for testing)
|
|
33
|
-
*/
|
|
34
|
-
static resetInstance(): void;
|
|
35
|
-
/**
|
|
36
|
-
* Initialize storage directories
|
|
37
|
-
*/
|
|
38
|
-
private static createDirs;
|
|
39
|
-
/**
|
|
40
|
-
* Get storage root directory
|
|
41
|
-
*/
|
|
42
|
-
getStorageDir(): string;
|
|
43
|
-
saveTestCase(testCase: TestCase): void;
|
|
44
|
-
loadTestCase(testId: string): TestCase | null;
|
|
45
|
-
listTestCases(): TestCase[];
|
|
46
|
-
listResuableTestCases(currentId: string): TestCase[];
|
|
47
|
-
deleteTestCase(testId: string): void;
|
|
48
|
-
listTestCasesRecursively(dirPath: string): TestCase[];
|
|
49
|
-
saveTestScript(testId: string, script: string): void;
|
|
50
|
-
hasTestScript(testId: string): boolean;
|
|
51
|
-
loadTestScript(testId: string): string | undefined;
|
|
52
|
-
saveTestSteps(testId: string, steps: TestStep[]): void;
|
|
53
|
-
loadTestSteps(testId: string): TestStep[];
|
|
54
|
-
saveTestStep(testId: string, step: {
|
|
55
|
-
id: string;
|
|
56
|
-
description?: string;
|
|
57
|
-
isBreakpoint?: boolean;
|
|
58
|
-
reusedFromTestId?: string;
|
|
59
|
-
}, afterStepId?: string): boolean;
|
|
60
|
-
saveStepBreakPoint(testId: string, id: string, isBreakpoint?: boolean): void;
|
|
61
|
-
insertStep(testId: string, afterStepId: string | null | undefined, newStep: TestStep): void;
|
|
62
|
-
deleteStep(testId: string, stepId: string): boolean;
|
|
63
|
-
buildTestDirectoryTree(): TestDirectory;
|
|
64
|
-
createDirectory(path: string, info: Omit<DirectoryInfo, 'id' | 'path'>): DirectoryInfo;
|
|
65
|
-
getDirectoryInfo(path: string): DirectoryInfo | null;
|
|
66
|
-
updateDirectoryInfo(path: string, updates: Partial<Omit<DirectoryInfo, 'id' | 'path'>>): DirectoryInfo;
|
|
67
|
-
deleteDirectory(path: string): void;
|
|
68
|
-
renameDirectory(oldPath: string, newName: string): DirectoryInfo;
|
|
69
|
-
getDirectoriesAtPath(path?: string): DirectoryInfo[];
|
|
70
|
-
isValidDirectory(path: string): boolean;
|
|
71
|
-
moveDirectory(sourcePath: string, targetParentPath: string): DirectoryInfo;
|
|
72
|
-
moveTestCase(testId: string, sourceDir: string, targetDir: string): boolean;
|
|
73
|
-
saveTestResult(result: TestResult): Promise<void>;
|
|
74
|
-
loadTestResult(resultId: string): Promise<TestResult | null>;
|
|
75
|
-
loadTestResults(testId: string): Promise<TestResult[]>;
|
|
76
|
-
deleteTestResult(resultId: string): Promise<void>;
|
|
77
|
-
deleteTestResults(testId: string): Promise<void>;
|
|
78
|
-
saveModelConfig(config: ModelConfig): Promise<void>;
|
|
79
|
-
loadModelConfig(configId: string): Promise<ModelConfig | null>;
|
|
80
|
-
listModelConfigs(): Promise<ModelConfig[]>;
|
|
81
|
-
listModelConfigsSync(): ModelConfig[];
|
|
82
|
-
updateModelConfig(config: ModelConfig): Promise<void>;
|
|
83
|
-
deleteModelConfig(configId: string): Promise<void>;
|
|
84
|
-
modelConfigExists(configId: string): Promise<boolean>;
|
|
85
|
-
saveExplorationRecord(record: ExplorationRecord): Promise<void>;
|
|
86
|
-
loadExplorationRecord(recordId: string): Promise<ExplorationRecord | null>;
|
|
87
|
-
listExplorationRecords(): Promise<ExplorationRecord[]>;
|
|
88
|
-
updateExplorationRecord(record: ExplorationRecord): Promise<void>;
|
|
89
|
-
deleteExplorationRecord(recordId: string): Promise<void>;
|
|
90
|
-
getExplorationRecordsByUrl(url: string): Promise<ExplorationRecord[]>;
|
|
91
|
-
saveSettings(settings: AppSettings): Promise<void>;
|
|
92
|
-
loadSettings(): Promise<AppSettings | null>;
|
|
93
|
-
saveProject(project: Project): void;
|
|
94
|
-
loadProject(projectId: string): Project | null;
|
|
95
|
-
listProjects(): Project[];
|
|
96
|
-
deleteProject(projectId: string): void;
|
|
97
|
-
projectExists(projectId: string): Promise<boolean>;
|
|
98
|
-
saveTestPlan(testPlan: TestPlan): void;
|
|
99
|
-
loadTestPlan(testPlanId: string): TestPlan | null;
|
|
100
|
-
listTestPlans(): TestPlan[];
|
|
101
|
-
updateTestPlan(testPlan: TestPlan): void;
|
|
102
|
-
deleteTestPlan(testPlanId: string): void;
|
|
103
|
-
testPlanExists(testPlanId: string): boolean;
|
|
104
|
-
saveTableData(tableData: TableData): Promise<void>;
|
|
105
|
-
loadTableData(testId: string): Promise<TableData | null>;
|
|
106
|
-
deleteTableData(testId: string): Promise<void>;
|
|
107
|
-
getFileDir(testId: string): string;
|
|
108
|
-
saveFile(testId: string, fileName: string, content: Buffer): {
|
|
109
|
-
name: string;
|
|
110
|
-
size: number;
|
|
111
|
-
uploadedAt: string;
|
|
112
|
-
path: string;
|
|
113
|
-
};
|
|
114
|
-
loadFile(testId: string, fileName: string): Buffer | null;
|
|
115
|
-
listFiles(testId: string): {
|
|
116
|
-
name: string;
|
|
117
|
-
size: number;
|
|
118
|
-
uploadedAt: string;
|
|
119
|
-
path: string;
|
|
120
|
-
}[];
|
|
121
|
-
deleteFile(testId: string, fileName: string): boolean;
|
|
122
|
-
deleteAllFiles(testId: string): void;
|
|
123
|
-
fileExists(testId: string, fileName: string): boolean;
|
|
124
|
-
getFileInfo(testId: string, fileName: string): {
|
|
125
|
-
name: string;
|
|
126
|
-
size: number;
|
|
127
|
-
uploadedAt: string;
|
|
128
|
-
path: string;
|
|
129
|
-
} | null;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=storageService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storageService.d.ts","sourceRoot":"","sources":["../../../../core-infra/src/storageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StorageService = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const os_1 = require("os");
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const repositories_1 = require("./repositories");
|
|
8
|
-
const STORAGE_DIR = (0, path_1.join)((0, os_1.homedir)(), '.test_agent');
|
|
9
|
-
let isInit = false;
|
|
10
|
-
/**
|
|
11
|
-
* StorageService acts as a facade for all data storage operations
|
|
12
|
-
* Coordinates between different repositories and provides a unified interface
|
|
13
|
-
* This decouples business logic from repository implementation details
|
|
14
|
-
*
|
|
15
|
-
* Benefits:
|
|
16
|
-
* - Single point of entry for all storage operations
|
|
17
|
-
* - Encapsulates repository instantiation
|
|
18
|
-
* - Easy to add cross-cutting concerns (logging, caching, etc.)
|
|
19
|
-
* - Simplifies unit testing by allowing mock repositories
|
|
20
|
-
*/
|
|
21
|
-
class StorageService {
|
|
22
|
-
constructor(projectId) {
|
|
23
|
-
this.testCaseRepo = new repositories_1.TestCaseRepository(projectId);
|
|
24
|
-
this.testResultRepo = new repositories_1.TestResultRepository(projectId);
|
|
25
|
-
this.modelConfigRepo = new repositories_1.ModelConfigRepository();
|
|
26
|
-
this.explorationRepo = new repositories_1.ExplorationRepository(projectId);
|
|
27
|
-
this.settingsRepo = new repositories_1.SettingsRepository();
|
|
28
|
-
this.projectRepo = new repositories_1.ProjectRepository();
|
|
29
|
-
this.directoryRepo = new repositories_1.DirectoryRepository(projectId);
|
|
30
|
-
this.testPlanRepo = new repositories_1.TestPlanRepository(projectId);
|
|
31
|
-
this.tableDataRepo = new repositories_1.TableDataRepository(projectId);
|
|
32
|
-
this.fileRepo = new repositories_1.FileRepository(projectId);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Get singleton instance of StorageService
|
|
36
|
-
*/
|
|
37
|
-
static getInstance(projectId) {
|
|
38
|
-
if (isInit === false) {
|
|
39
|
-
isInit = true;
|
|
40
|
-
StorageService.createDirs(["models", "settings"]);
|
|
41
|
-
}
|
|
42
|
-
let instance = StorageService.instances.get(projectId);
|
|
43
|
-
if (!instance) {
|
|
44
|
-
instance = new StorageService(projectId);
|
|
45
|
-
StorageService.instances.set(projectId, instance);
|
|
46
|
-
}
|
|
47
|
-
return instance;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Reset instance (useful for testing)
|
|
51
|
-
*/
|
|
52
|
-
static resetInstance() {
|
|
53
|
-
StorageService.instances.clear();
|
|
54
|
-
isInit = false;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Initialize storage directories
|
|
58
|
-
*/
|
|
59
|
-
static createDirs(dirs) {
|
|
60
|
-
for (const dir of dirs) {
|
|
61
|
-
const dirPath = (0, path_1.join)(STORAGE_DIR, dir);
|
|
62
|
-
if (!(0, fs_1.existsSync)(dirPath)) {
|
|
63
|
-
(0, fs_1.mkdirSync)(dirPath, { recursive: true });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Get storage root directory
|
|
69
|
-
*/
|
|
70
|
-
getStorageDir() {
|
|
71
|
-
return STORAGE_DIR;
|
|
72
|
-
}
|
|
73
|
-
// ==================== TestCase Operations ====================
|
|
74
|
-
saveTestCase(testCase) {
|
|
75
|
-
this.testCaseRepo.saveTestCase(testCase);
|
|
76
|
-
}
|
|
77
|
-
loadTestCase(testId) {
|
|
78
|
-
return this.testCaseRepo.loadTestCase(testId);
|
|
79
|
-
}
|
|
80
|
-
listTestCases() {
|
|
81
|
-
return this.testCaseRepo.listTestCases();
|
|
82
|
-
}
|
|
83
|
-
listResuableTestCases(currentId) {
|
|
84
|
-
const list = this.testCaseRepo.listTestCases();
|
|
85
|
-
return list.filter(test => test.reusable && test.id !== currentId && test.status === 'completed');
|
|
86
|
-
}
|
|
87
|
-
deleteTestCase(testId) {
|
|
88
|
-
this.testCaseRepo.deleteTestCase(testId);
|
|
89
|
-
try {
|
|
90
|
-
this.tableDataRepo.deleteTableData(testId);
|
|
91
|
-
}
|
|
92
|
-
catch (err) {
|
|
93
|
-
console.error(`Failed to delete table data for test case ${testId}:`, err);
|
|
94
|
-
}
|
|
95
|
-
try {
|
|
96
|
-
this.fileRepo.deleteAllFiles(testId);
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
console.error(`Failed to delete files for test case ${testId}:`, err);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
listTestCasesRecursively(dirPath) {
|
|
103
|
-
return this.testCaseRepo.listTestCasesRecursively(dirPath);
|
|
104
|
-
}
|
|
105
|
-
saveTestScript(testId, script) {
|
|
106
|
-
this.testCaseRepo.saveTestScript(testId, script);
|
|
107
|
-
}
|
|
108
|
-
hasTestScript(testId) {
|
|
109
|
-
return this.testCaseRepo.hasTestScript(testId);
|
|
110
|
-
}
|
|
111
|
-
loadTestScript(testId) {
|
|
112
|
-
return this.testCaseRepo.loadTestScript(testId);
|
|
113
|
-
}
|
|
114
|
-
saveTestSteps(testId, steps) {
|
|
115
|
-
this.testCaseRepo.saveTestSteps(testId, steps);
|
|
116
|
-
}
|
|
117
|
-
loadTestSteps(testId) {
|
|
118
|
-
return this.testCaseRepo.loadTestSteps(testId);
|
|
119
|
-
}
|
|
120
|
-
saveTestStep(testId, step, afterStepId) {
|
|
121
|
-
return this.testCaseRepo.saveTestStep(testId, step, afterStepId);
|
|
122
|
-
}
|
|
123
|
-
saveStepBreakPoint(testId, id, isBreakpoint) {
|
|
124
|
-
return this.testCaseRepo.updateStepBreakPoint(testId, id, isBreakpoint);
|
|
125
|
-
}
|
|
126
|
-
insertStep(testId, afterStepId, newStep) {
|
|
127
|
-
this.testCaseRepo.insertStep(testId, afterStepId, newStep);
|
|
128
|
-
}
|
|
129
|
-
deleteStep(testId, stepId) {
|
|
130
|
-
return this.testCaseRepo.deleteStep(testId, stepId);
|
|
131
|
-
}
|
|
132
|
-
buildTestDirectoryTree() {
|
|
133
|
-
return this.testCaseRepo.buildDirectoryTree();
|
|
134
|
-
}
|
|
135
|
-
// ==================== Directory Operations ====================
|
|
136
|
-
createDirectory(path, info) {
|
|
137
|
-
return this.directoryRepo.createDirectory(path, info);
|
|
138
|
-
}
|
|
139
|
-
getDirectoryInfo(path) {
|
|
140
|
-
return this.directoryRepo.getDirectoryInfo(path);
|
|
141
|
-
}
|
|
142
|
-
updateDirectoryInfo(path, updates) {
|
|
143
|
-
return this.directoryRepo.updateDirectoryInfo(path, updates);
|
|
144
|
-
}
|
|
145
|
-
deleteDirectory(path) {
|
|
146
|
-
return this.directoryRepo.deleteDirectory(path);
|
|
147
|
-
}
|
|
148
|
-
renameDirectory(oldPath, newName) {
|
|
149
|
-
return this.directoryRepo.renameDirectory(oldPath, newName);
|
|
150
|
-
}
|
|
151
|
-
getDirectoriesAtPath(path) {
|
|
152
|
-
return this.directoryRepo.getDirectoriesAtPath(path);
|
|
153
|
-
}
|
|
154
|
-
isValidDirectory(path) {
|
|
155
|
-
return this.directoryRepo.isValidDirectory(path);
|
|
156
|
-
}
|
|
157
|
-
moveDirectory(sourcePath, targetParentPath) {
|
|
158
|
-
return this.directoryRepo.moveDirectory(sourcePath, targetParentPath);
|
|
159
|
-
}
|
|
160
|
-
moveTestCase(testId, sourceDir, targetDir) {
|
|
161
|
-
return this.directoryRepo.moveTestCase(testId, sourceDir, targetDir);
|
|
162
|
-
}
|
|
163
|
-
// ==================== TestResult Operations ====================
|
|
164
|
-
async saveTestResult(result) {
|
|
165
|
-
await this.testResultRepo.saveTestResult(result);
|
|
166
|
-
}
|
|
167
|
-
async loadTestResult(resultId) {
|
|
168
|
-
return this.testResultRepo.loadTestResult(resultId);
|
|
169
|
-
}
|
|
170
|
-
async loadTestResults(testId) {
|
|
171
|
-
return this.testResultRepo.loadTestResults(testId);
|
|
172
|
-
}
|
|
173
|
-
async deleteTestResult(resultId) {
|
|
174
|
-
await this.testResultRepo.deleteTestResult(resultId);
|
|
175
|
-
}
|
|
176
|
-
async deleteTestResults(testId) {
|
|
177
|
-
await this.testResultRepo.deleteTestResults(testId);
|
|
178
|
-
}
|
|
179
|
-
// ==================== ModelConfig Operations ====================
|
|
180
|
-
async saveModelConfig(config) {
|
|
181
|
-
await this.modelConfigRepo.saveModelConfig(config);
|
|
182
|
-
}
|
|
183
|
-
async loadModelConfig(configId) {
|
|
184
|
-
return this.modelConfigRepo.loadModelConfig(configId);
|
|
185
|
-
}
|
|
186
|
-
async listModelConfigs() {
|
|
187
|
-
return this.modelConfigRepo.listModelConfigs();
|
|
188
|
-
}
|
|
189
|
-
listModelConfigsSync() {
|
|
190
|
-
return this.modelConfigRepo.listModelConfigsSync();
|
|
191
|
-
}
|
|
192
|
-
async updateModelConfig(config) {
|
|
193
|
-
await this.modelConfigRepo.updateModelConfig(config);
|
|
194
|
-
}
|
|
195
|
-
async deleteModelConfig(configId) {
|
|
196
|
-
await this.modelConfigRepo.deleteModelConfig(configId);
|
|
197
|
-
}
|
|
198
|
-
async modelConfigExists(configId) {
|
|
199
|
-
return this.modelConfigRepo.exists(configId);
|
|
200
|
-
}
|
|
201
|
-
// ==================== ExplorationRecord Operations ====================
|
|
202
|
-
async saveExplorationRecord(record) {
|
|
203
|
-
await this.explorationRepo.saveExplorationRecord(record);
|
|
204
|
-
}
|
|
205
|
-
async loadExplorationRecord(recordId) {
|
|
206
|
-
return this.explorationRepo.loadExplorationRecord(recordId);
|
|
207
|
-
}
|
|
208
|
-
async listExplorationRecords() {
|
|
209
|
-
return this.explorationRepo.listExplorationRecords();
|
|
210
|
-
}
|
|
211
|
-
async updateExplorationRecord(record) {
|
|
212
|
-
await this.explorationRepo.updateExplorationRecord(record);
|
|
213
|
-
}
|
|
214
|
-
async deleteExplorationRecord(recordId) {
|
|
215
|
-
await this.explorationRepo.deleteExplorationRecord(recordId);
|
|
216
|
-
}
|
|
217
|
-
async getExplorationRecordsByUrl(url) {
|
|
218
|
-
return this.explorationRepo.getRecordsByUrl(url);
|
|
219
|
-
}
|
|
220
|
-
// ==================== Settings Operations ====================
|
|
221
|
-
async saveSettings(settings) {
|
|
222
|
-
await this.settingsRepo.saveSettings(settings);
|
|
223
|
-
}
|
|
224
|
-
async loadSettings() {
|
|
225
|
-
return this.settingsRepo.loadSettings();
|
|
226
|
-
}
|
|
227
|
-
// ==================== Project Operations ====================
|
|
228
|
-
saveProject(project) {
|
|
229
|
-
this.projectRepo.saveProject(project);
|
|
230
|
-
}
|
|
231
|
-
loadProject(projectId) {
|
|
232
|
-
return this.projectRepo.loadProject(projectId);
|
|
233
|
-
}
|
|
234
|
-
listProjects() {
|
|
235
|
-
return this.projectRepo.listProjects();
|
|
236
|
-
}
|
|
237
|
-
deleteProject(projectId) {
|
|
238
|
-
this.projectRepo.deleteProject(projectId);
|
|
239
|
-
}
|
|
240
|
-
async projectExists(projectId) {
|
|
241
|
-
return this.projectRepo.exists(projectId);
|
|
242
|
-
}
|
|
243
|
-
// ==================== TestPlan Operations ====================
|
|
244
|
-
saveTestPlan(testPlan) {
|
|
245
|
-
this.testPlanRepo.saveTestPlan(testPlan);
|
|
246
|
-
}
|
|
247
|
-
loadTestPlan(testPlanId) {
|
|
248
|
-
return this.testPlanRepo.loadTestPlan(testPlanId);
|
|
249
|
-
}
|
|
250
|
-
listTestPlans() {
|
|
251
|
-
return this.testPlanRepo.listTestPlans();
|
|
252
|
-
}
|
|
253
|
-
updateTestPlan(testPlan) {
|
|
254
|
-
this.testPlanRepo.updateTestPlan(testPlan);
|
|
255
|
-
}
|
|
256
|
-
deleteTestPlan(testPlanId) {
|
|
257
|
-
this.testPlanRepo.deleteTestPlan(testPlanId);
|
|
258
|
-
}
|
|
259
|
-
testPlanExists(testPlanId) {
|
|
260
|
-
return this.testPlanRepo.exists(testPlanId);
|
|
261
|
-
}
|
|
262
|
-
// ==================== TableData Operations ====================
|
|
263
|
-
async saveTableData(tableData) {
|
|
264
|
-
await this.tableDataRepo.saveTableData(tableData);
|
|
265
|
-
}
|
|
266
|
-
async loadTableData(testId) {
|
|
267
|
-
const data = await this.tableDataRepo.loadTableData(testId);
|
|
268
|
-
if (data && data.rows.length > 0) {
|
|
269
|
-
return data;
|
|
270
|
-
}
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
async deleteTableData(testId) {
|
|
274
|
-
await this.tableDataRepo.deleteTableData(testId);
|
|
275
|
-
}
|
|
276
|
-
// ==================== File Operations ====================
|
|
277
|
-
getFileDir(testId) {
|
|
278
|
-
return this.fileRepo.getTestFilesDir(testId);
|
|
279
|
-
}
|
|
280
|
-
saveFile(testId, fileName, content) {
|
|
281
|
-
return this.fileRepo.saveFile(testId, fileName, content);
|
|
282
|
-
}
|
|
283
|
-
loadFile(testId, fileName) {
|
|
284
|
-
return this.fileRepo.loadFile(testId, fileName);
|
|
285
|
-
}
|
|
286
|
-
listFiles(testId) {
|
|
287
|
-
return this.fileRepo.listFiles(testId);
|
|
288
|
-
}
|
|
289
|
-
deleteFile(testId, fileName) {
|
|
290
|
-
return this.fileRepo.deleteFile(testId, fileName);
|
|
291
|
-
}
|
|
292
|
-
deleteAllFiles(testId) {
|
|
293
|
-
this.fileRepo.deleteAllFiles(testId);
|
|
294
|
-
}
|
|
295
|
-
fileExists(testId, fileName) {
|
|
296
|
-
return this.fileRepo.fileExists(testId, fileName);
|
|
297
|
-
}
|
|
298
|
-
getFileInfo(testId, fileName) {
|
|
299
|
-
return this.fileRepo.getFileInfo(testId, fileName);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
exports.StorageService = StorageService;
|
|
303
|
-
StorageService.instances = new Map();
|
|
304
|
-
//# sourceMappingURL=storageService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storageService.js","sourceRoot":"","sources":["../../../../core-infra/src/storageService.ts"],"names":[],"mappings":"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"}
|