testeranto 0.219.14 → 0.219.15
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 +1 -1
- package/src/testeranto.ts +1 -1
- package/dist/common/allTestsUtils.js +0 -17
- package/dist/common/package.json +0 -3
- package/dist/common/scripts/build-example.js +0 -105
- package/dist/common/src/Init.js +0 -38
- package/dist/common/src/Types.js +0 -63
- package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +0 -38
- package/dist/common/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -21
- package/dist/common/src/esbuildConfigs/featuresPlugin.js +0 -39
- package/dist/common/src/esbuildConfigs/index.js +0 -22
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -30
- package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -24
- package/dist/common/src/esbuildConfigs/rebuildPlugin.js +0 -19
- package/dist/common/src/init-docs.js +0 -9
- package/dist/common/src/lib/tiposkripto/BaseGiven.js +0 -96
- package/dist/common/src/lib/tiposkripto/BaseSuite.js +0 -134
- package/dist/common/src/lib/tiposkripto/BaseThen.js +0 -65
- package/dist/common/src/lib/tiposkripto/BaseTiposkripto.js +0 -193
- package/dist/common/src/lib/tiposkripto/BaseWhen.js +0 -46
- package/dist/common/src/lib/tiposkripto/CoreTypes.js +0 -2
- package/dist/common/src/lib/tiposkripto/Node.js +0 -40
- package/dist/common/src/lib/tiposkripto/Tiposkripto.js +0 -49
- package/dist/common/src/lib/tiposkripto/Types.js +0 -2
- package/dist/common/src/lib/tiposkripto/Web.js +0 -70
- package/dist/common/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -22
- package/dist/common/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -16
- package/dist/common/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -18
- package/dist/common/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -24
- package/dist/common/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -38
- package/dist/common/src/lib/tiposkripto/abstractBase.test/index.js +0 -17
- package/dist/common/src/lib/tiposkripto/abstractBase.test/specification.js +0 -19
- package/dist/common/src/lib/tiposkripto/abstractBase.test/types.js +0 -2
- package/dist/common/src/lib/tiposkripto/index.js +0 -29
- package/dist/common/src/runtimes.js +0 -4
- package/dist/common/src/server/aider/configParser.js +0 -124
- package/dist/common/src/server/aider/docker.js +0 -30
- package/dist/common/src/server/getRunnables.js +0 -36
- package/dist/common/src/server/htmlTemplate.js +0 -44
- package/dist/common/src/server/nodeVersion.js +0 -5
- package/dist/common/src/server/runtimes/common.js +0 -136
- package/dist/common/src/server/runtimes/golang/docker.js +0 -62
- package/dist/common/src/server/runtimes/java/docker.js +0 -46
- package/dist/common/src/server/runtimes/node/docker.js +0 -42
- package/dist/common/src/server/runtimes/node/esbuild.js +0 -40
- package/dist/common/src/server/runtimes/node/node.js +0 -75
- package/dist/common/src/server/runtimes/python/docker.js +0 -31
- package/dist/common/src/server/runtimes/ruby/docker.js +0 -34
- package/dist/common/src/server/runtimes/rust/docker.js +0 -35
- package/dist/common/src/server/runtimes/web/docker.js +0 -42
- package/dist/common/src/server/runtimes/web/esbuild.js +0 -29
- package/dist/common/src/server/runtimes/web/hoist.js +0 -16
- package/dist/common/src/server/runtimes/web/web.js +0 -157
- package/dist/common/src/server/serverClasees/Server.js +0 -47
- package/dist/common/src/server/serverClasees/Server_Base.js +0 -18
- package/dist/common/src/server/serverClasees/Server_Docker.js +0 -904
- package/dist/common/src/server/serverClasees/Server_FS.js +0 -119
- package/dist/common/src/server/serverClasees/Server_HTTP.js +0 -189
- package/dist/common/src/server/serverClasees/Server_WS.js +0 -262
- package/dist/common/src/server/serverManagers/DockerManager.js +0 -28
- package/dist/common/src/server/serverManagers/HttpManager.js +0 -114
- package/dist/common/src/server/serverManagers/WsManager.js +0 -230
- package/dist/common/src/server/serverManagers/fs.js +0 -32
- package/dist/common/src/server/serverManagers/tcp.js +0 -51
- package/dist/common/src/server/types.js +0 -2
- package/dist/common/src/testeranto.js +0 -75
- package/dist/common/src/vscode/TerminalManager.js +0 -129
- package/dist/common/src/vscode/TestTreeItem.js +0 -77
- package/dist/common/src/vscode/extension.js +0 -185
- package/dist/common/src/vscode/providers/FeaturesTreeDataProvider.js +0 -445
- package/dist/common/src/vscode/providers/FileTreeDataProvider.js +0 -190
- package/dist/common/src/vscode/providers/ProcessesTreeDataProvider.js +0 -270
- package/dist/common/src/vscode/providers/ResultsTreeDataProvider.js +0 -87
- package/dist/common/src/vscode/providers/TestTreeDataProvider.js +0 -309
- package/dist/common/src/vscode/types.js +0 -9
- package/dist/common/testeranto/runtimes/node/node.js +0 -7
- package/dist/common/testeranto/runtimes/web/web.js +0 -6
- package/dist/common/testeranto/testeranto.js +0 -70
- package/dist/common/tsconfig.common.tsbuildinfo +0 -1
- package/dist/module/allTestsUtils.js +0 -13
- package/dist/module/package.json +0 -3
- package/dist/module/scripts/build-example.js +0 -100
- package/dist/module/src/Init.js +0 -33
- package/dist/module/src/Types.js +0 -62
- package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +0 -32
- package/dist/module/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -18
- package/dist/module/src/esbuildConfigs/featuresPlugin.js +0 -34
- package/dist/module/src/esbuildConfigs/index.js +0 -20
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -25
- package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -21
- package/dist/module/src/esbuildConfigs/rebuildPlugin.js +0 -14
- package/dist/module/src/init-docs.js +0 -4
- package/dist/module/src/lib/tiposkripto/BaseGiven.js +0 -92
- package/dist/module/src/lib/tiposkripto/BaseSuite.js +0 -130
- package/dist/module/src/lib/tiposkripto/BaseThen.js +0 -61
- package/dist/module/src/lib/tiposkripto/BaseTiposkripto.js +0 -190
- package/dist/module/src/lib/tiposkripto/BaseWhen.js +0 -42
- package/dist/module/src/lib/tiposkripto/CoreTypes.js +0 -1
- package/dist/module/src/lib/tiposkripto/Node.js +0 -33
- package/dist/module/src/lib/tiposkripto/Tiposkripto.js +0 -14
- package/dist/module/src/lib/tiposkripto/Types.js +0 -1
- package/dist/module/src/lib/tiposkripto/Web.js +0 -63
- package/dist/module/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -18
- package/dist/module/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -12
- package/dist/module/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -14
- package/dist/module/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -21
- package/dist/module/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -35
- package/dist/module/src/lib/tiposkripto/abstractBase.test/index.js +0 -12
- package/dist/module/src/lib/tiposkripto/abstractBase.test/specification.js +0 -15
- package/dist/module/src/lib/tiposkripto/abstractBase.test/types.js +0 -1
- package/dist/module/src/lib/tiposkripto/index.js +0 -24
- package/dist/module/src/runtimes.js +0 -1
- package/dist/module/src/server/aider/configParser.js +0 -116
- package/dist/module/src/server/aider/docker.js +0 -28
- package/dist/module/src/server/getRunnables.js +0 -29
- package/dist/module/src/server/htmlTemplate.js +0 -40
- package/dist/module/src/server/nodeVersion.js +0 -2
- package/dist/module/src/server/runtimes/common.js +0 -127
- package/dist/module/src/server/runtimes/golang/docker.js +0 -55
- package/dist/module/src/server/runtimes/java/docker.js +0 -40
- package/dist/module/src/server/runtimes/node/docker.js +0 -36
- package/dist/module/src/server/runtimes/node/esbuild.js +0 -35
- package/dist/module/src/server/runtimes/node/node.js +0 -37
- package/dist/module/src/server/runtimes/python/docker.js +0 -25
- package/dist/module/src/server/runtimes/ruby/docker.js +0 -28
- package/dist/module/src/server/runtimes/rust/docker.js +0 -29
- package/dist/module/src/server/runtimes/web/docker.js +0 -36
- package/dist/module/src/server/runtimes/web/esbuild.js +0 -24
- package/dist/module/src/server/runtimes/web/hoist.js +0 -11
- package/dist/module/src/server/runtimes/web/web.js +0 -119
- package/dist/module/src/server/serverClasees/Server.js +0 -40
- package/dist/module/src/server/serverClasees/Server_Base.js +0 -14
- package/dist/module/src/server/serverClasees/Server_Docker.js +0 -897
- package/dist/module/src/server/serverClasees/Server_FS.js +0 -119
- package/dist/module/src/server/serverClasees/Server_HTTP.js +0 -182
- package/dist/module/src/server/serverClasees/Server_WS.js +0 -258
- package/dist/module/src/server/serverManagers/DockerManager.js +0 -28
- package/dist/module/src/server/serverManagers/HttpManager.js +0 -110
- package/dist/module/src/server/serverManagers/WsManager.js +0 -226
- package/dist/module/src/server/serverManagers/fs.js +0 -32
- package/dist/module/src/server/serverManagers/tcp.js +0 -47
- package/dist/module/src/server/types.js +0 -1
- package/dist/module/src/testeranto.js +0 -40
- package/dist/module/src/vscode/TerminalManager.js +0 -92
- package/dist/module/src/vscode/TestTreeItem.js +0 -40
- package/dist/module/src/vscode/extension.js +0 -148
- package/dist/module/src/vscode/providers/FeaturesTreeDataProvider.js +0 -408
- package/dist/module/src/vscode/providers/FileTreeDataProvider.js +0 -153
- package/dist/module/src/vscode/providers/ProcessesTreeDataProvider.js +0 -233
- package/dist/module/src/vscode/providers/ResultsTreeDataProvider.js +0 -50
- package/dist/module/src/vscode/providers/TestTreeDataProvider.js +0 -272
- package/dist/module/src/vscode/types.js +0 -6
- package/dist/module/testeranto/runtimes/node/node.js +0 -5
- package/dist/module/testeranto/runtimes/web/web.js +0 -4
- package/dist/module/testeranto/testeranto.js +0 -68
- package/dist/module/tsconfig.module.tsbuildinfo +0 -1
- package/dist/prebuild/chunk-QLT7PNPK.mjs +0 -162
- package/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs +0 -20
- package/dist/prebuild/init-docs.mjs +0 -56
- package/dist/prebuild/server/runtimes/node/node.mjs +0 -80
- package/dist/prebuild/server/runtimes/web/hoist.mjs +0 -12
- package/dist/prebuild/server/runtimes/web/web.mjs +0 -162
- package/dist/prebuild/testeranto-6SAYRVSE.mjs +0 -72
- package/dist/prebuild/testeranto.mjs +0 -1692
- package/dist/types/src/Init.d.ts +0 -2
- package/dist/types/src/Types.d.ts +0 -87
- package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/eslint-formatter-testeranto.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +0 -5
- package/dist/types/src/esbuildConfigs/index.d.ts +0 -3
- package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +0 -7
- package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/rebuildPlugin.d.ts +0 -6
- package/dist/types/src/init-docs.d.ts +0 -1
- package/dist/types/src/lib/tiposkripto/BaseGiven.d.ts +0 -42
- package/dist/types/src/lib/tiposkripto/BaseSuite.d.ts +0 -46
- package/dist/types/src/lib/tiposkripto/BaseThen.d.ts +0 -28
- package/dist/types/src/lib/tiposkripto/BaseTiposkripto.d.ts +0 -35
- package/dist/types/src/lib/tiposkripto/BaseWhen.d.ts +0 -27
- package/dist/types/src/lib/tiposkripto/CoreTypes.d.ts +0 -51
- package/dist/types/src/lib/tiposkripto/Node.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/Tiposkripto.d.ts +0 -5
- package/dist/types/src/lib/tiposkripto/Types.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/Web.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/abstractBase.test/MockGiven.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/abstractBase.test/MockThen.d.ts +0 -6
- package/dist/types/src/lib/tiposkripto/abstractBase.test/MockWhen.d.ts +0 -6
- package/dist/types/src/lib/tiposkripto/abstractBase.test/adapter.d.ts +0 -3
- package/dist/types/src/lib/tiposkripto/abstractBase.test/implementation.d.ts +0 -3
- package/dist/types/src/lib/tiposkripto/abstractBase.test/index.d.ts +0 -28
- package/dist/types/src/lib/tiposkripto/abstractBase.test/specification.d.ts +0 -3
- package/dist/types/src/lib/tiposkripto/abstractBase.test/types.d.ts +0 -39
- package/dist/types/src/lib/tiposkripto/index.d.ts +0 -56
- package/dist/types/src/runtimes.d.ts +0 -2
- package/dist/types/src/server/aider/configParser.d.ts +0 -11
- package/dist/types/src/server/aider/docker.d.ts +0 -2
- package/dist/types/src/server/getRunnables.d.ts +0 -3
- package/dist/types/src/server/htmlTemplate.d.ts +0 -2
- package/dist/types/src/server/nodeVersion.d.ts +0 -2
- package/dist/types/src/server/runtimes/common.d.ts +0 -12
- package/dist/types/src/server/runtimes/golang/docker.d.ts +0 -5
- package/dist/types/src/server/runtimes/java/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/node/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/node/esbuild.d.ts +0 -4
- package/dist/types/src/server/runtimes/node/node.d.ts +0 -1
- package/dist/types/src/server/runtimes/python/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/ruby/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/rust/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/web/docker.d.ts +0 -15
- package/dist/types/src/server/runtimes/web/esbuild.d.ts +0 -4
- package/dist/types/src/server/runtimes/web/hoist.d.ts +0 -1
- package/dist/types/src/server/runtimes/web/web.d.ts +0 -1
- package/dist/types/src/server/serverClasees/Server.d.ts +0 -8
- package/dist/types/src/server/serverClasees/Server_Base.d.ts +0 -9
- package/dist/types/src/server/serverClasees/Server_Docker.d.ts +0 -81
- package/dist/types/src/server/serverClasees/Server_FS.d.ts +0 -0
- package/dist/types/src/server/serverClasees/Server_HTTP.d.ts +0 -20
- package/dist/types/src/server/serverClasees/Server_WS.d.ts +0 -23
- package/dist/types/src/server/serverManagers/DockerManager.d.ts +0 -0
- package/dist/types/src/server/serverManagers/HttpManager.d.ts +0 -9
- package/dist/types/src/server/serverManagers/WsManager.d.ts +0 -10
- package/dist/types/src/server/serverManagers/fs.d.ts +0 -0
- package/dist/types/src/server/serverManagers/tcp.d.ts +0 -27
- package/dist/types/src/server/types.d.ts +0 -68
- package/dist/types/src/testeranto.d.ts +0 -1
- package/dist/types/src/vscode/TerminalManager.d.ts +0 -18
- package/dist/types/src/vscode/TestTreeItem.d.ts +0 -13
- package/dist/types/src/vscode/extension.d.ts +0 -3
- package/dist/types/src/vscode/providers/FeaturesTreeDataProvider.d.ts +0 -17
- package/dist/types/src/vscode/providers/FileTreeDataProvider.d.ts +0 -13
- package/dist/types/src/vscode/providers/ProcessesTreeDataProvider.d.ts +0 -23
- package/dist/types/src/vscode/providers/ResultsTreeDataProvider.d.ts +0 -10
- package/dist/types/src/vscode/providers/TestTreeDataProvider.d.ts +0 -16
- package/dist/types/src/vscode/types.d.ts +0 -14
- package/dist/types/testeranto/testeranto.d.ts +0 -3
- package/dist/types/tsconfig.types.tsbuildinfo +0 -1
- package/dist/vscode/extension.mjs +0 -5116
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
export class HttpManager {
|
|
2
|
-
routeName(req) {
|
|
3
|
-
const url = new URL(req.url, `http://${req.headers.host}`);
|
|
4
|
-
const urlPath = url.pathname;
|
|
5
|
-
// Extract route name (remove /~/ prefix)
|
|
6
|
-
return urlPath.slice(3); // Remove '/~/'
|
|
7
|
-
}
|
|
8
|
-
decodedPath(req) {
|
|
9
|
-
const urlPath = new URL(req.url, `http://${req.headers.host}`).pathname;
|
|
10
|
-
// Prevent directory traversal attacks
|
|
11
|
-
const decodedPath = decodeURIComponent(urlPath);
|
|
12
|
-
// Remove leading slash to make it relative
|
|
13
|
-
return decodedPath.startsWith("/")
|
|
14
|
-
? decodedPath.slice(1)
|
|
15
|
-
: decodedPath;
|
|
16
|
-
}
|
|
17
|
-
matchRoute(routeName, routes) {
|
|
18
|
-
// First, try exact match
|
|
19
|
-
if (routes && routes[routeName]) {
|
|
20
|
-
return { handler: routes[routeName], params: {} };
|
|
21
|
-
}
|
|
22
|
-
// Then, try pattern matching
|
|
23
|
-
for (const [pattern, handler] of Object.entries(routes)) {
|
|
24
|
-
if (pattern.includes(':')) {
|
|
25
|
-
// Split pattern into parts
|
|
26
|
-
const patternParts = pattern.split('/');
|
|
27
|
-
const routeParts = routeName.split('/');
|
|
28
|
-
// Check if the last pattern part ends with .xml and contains a parameter
|
|
29
|
-
const lastPatternPart = patternParts[patternParts.length - 1];
|
|
30
|
-
const isLastParamWithExtension = lastPatternPart.includes(':') && lastPatternPart.includes('.xml');
|
|
31
|
-
if (isLastParamWithExtension) {
|
|
32
|
-
// For patterns like 'process_manager/:runtime/:testname.xml'
|
|
33
|
-
let matches = true;
|
|
34
|
-
const params = {};
|
|
35
|
-
// Match all parts except the last one
|
|
36
|
-
for (let i = 0; i < patternParts.length - 1; i++) {
|
|
37
|
-
const patternPart = patternParts[i];
|
|
38
|
-
const routePart = routeParts[i];
|
|
39
|
-
if (patternPart.startsWith(':')) {
|
|
40
|
-
// It's a parameter
|
|
41
|
-
const paramName = patternPart.slice(1);
|
|
42
|
-
params[paramName] = routePart;
|
|
43
|
-
}
|
|
44
|
-
else if (patternPart !== routePart) {
|
|
45
|
-
matches = false;
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (matches) {
|
|
50
|
-
// The last parameter should capture all remaining route parts
|
|
51
|
-
const lastParamName = lastPatternPart.slice(1, lastPatternPart.indexOf('.xml'));
|
|
52
|
-
const remainingParts = routeParts.slice(patternParts.length - 1);
|
|
53
|
-
let paramValue = remainingParts.join('/');
|
|
54
|
-
// Remove .xml from the end if present
|
|
55
|
-
if (paramValue.endsWith('.xml')) {
|
|
56
|
-
paramValue = paramValue.slice(0, -4);
|
|
57
|
-
}
|
|
58
|
-
params[lastParamName] = paramValue;
|
|
59
|
-
return { handler, params };
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// Original logic for patterns without special handling
|
|
64
|
-
if (patternParts.length !== routeParts.length) {
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
let matches = true;
|
|
68
|
-
const params = {};
|
|
69
|
-
for (let i = 0; i < patternParts.length; i++) {
|
|
70
|
-
const patternPart = patternParts[i];
|
|
71
|
-
const routePart = routeParts[i];
|
|
72
|
-
if (patternPart.startsWith(':')) {
|
|
73
|
-
// It's a parameter
|
|
74
|
-
const paramName = patternPart.slice(1);
|
|
75
|
-
params[paramName] = routePart;
|
|
76
|
-
}
|
|
77
|
-
else if (patternPart !== routePart) {
|
|
78
|
-
matches = false;
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (matches) {
|
|
83
|
-
return { handler, params };
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
extractParams(pattern, routeName) {
|
|
91
|
-
const patternParts = pattern.split('/');
|
|
92
|
-
const routeParts = routeName.split('/');
|
|
93
|
-
if (patternParts.length !== routeParts.length) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
const params = {};
|
|
97
|
-
for (let i = 0; i < patternParts.length; i++) {
|
|
98
|
-
const patternPart = patternParts[i];
|
|
99
|
-
const routePart = routeParts[i];
|
|
100
|
-
if (patternPart.startsWith(':')) {
|
|
101
|
-
const paramName = patternPart.slice(1);
|
|
102
|
-
params[paramName] = routePart;
|
|
103
|
-
}
|
|
104
|
-
else if (patternPart !== routePart) {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return params;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
export class WsManager {
|
|
2
|
-
constructor() { }
|
|
3
|
-
escapeXml(unsafe) {
|
|
4
|
-
if (!unsafe)
|
|
5
|
-
return '';
|
|
6
|
-
return unsafe.replace(/[<>&'"]/g, (c) => {
|
|
7
|
-
switch (c) {
|
|
8
|
-
case '<': return '<';
|
|
9
|
-
case '>': return '>';
|
|
10
|
-
case '&': return '&';
|
|
11
|
-
case '\'': return ''';
|
|
12
|
-
case '"': return '"';
|
|
13
|
-
default: return c;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
// Process message and return response data
|
|
18
|
-
processMessage(type, data, getProcessSummary, getProcessLogs) {
|
|
19
|
-
console.log("[WsManager] Processing message:", type);
|
|
20
|
-
switch (type) {
|
|
21
|
-
case "ping":
|
|
22
|
-
return {
|
|
23
|
-
type: "pong",
|
|
24
|
-
timestamp: new Date().toISOString()
|
|
25
|
-
};
|
|
26
|
-
case "getProcesses":
|
|
27
|
-
if (getProcessSummary) {
|
|
28
|
-
const summary = getProcessSummary();
|
|
29
|
-
return {
|
|
30
|
-
type: "processes",
|
|
31
|
-
data: summary,
|
|
32
|
-
timestamp: new Date().toISOString()
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return {
|
|
37
|
-
type: "processes",
|
|
38
|
-
data: { processes: [], totalProcesses: 0, running: 0 },
|
|
39
|
-
timestamp: new Date().toISOString()
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
case "getLogs":
|
|
43
|
-
const { processId } = data || {};
|
|
44
|
-
if (!processId) {
|
|
45
|
-
return {
|
|
46
|
-
type: "logs",
|
|
47
|
-
status: "error",
|
|
48
|
-
message: "Missing processId",
|
|
49
|
-
timestamp: new Date().toISOString()
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
if (getProcessLogs) {
|
|
53
|
-
const logs = getProcessLogs(processId);
|
|
54
|
-
return {
|
|
55
|
-
type: "logs",
|
|
56
|
-
processId,
|
|
57
|
-
logs: logs.map((log) => {
|
|
58
|
-
let level = "info";
|
|
59
|
-
let source = "process";
|
|
60
|
-
let message = log;
|
|
61
|
-
const match = log.match(/\[(.*?)\] \[(.*?)\] (.*)/);
|
|
62
|
-
if (match) {
|
|
63
|
-
const timestamp = match[1];
|
|
64
|
-
source = match[2];
|
|
65
|
-
message = match[3];
|
|
66
|
-
if (source === "stderr" || source === "error") {
|
|
67
|
-
level = "error";
|
|
68
|
-
}
|
|
69
|
-
else if (source === "warn") {
|
|
70
|
-
level = "warn";
|
|
71
|
-
}
|
|
72
|
-
else if (source === "debug") {
|
|
73
|
-
level = "debug";
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
level = "info";
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
timestamp: new Date().toISOString(),
|
|
81
|
-
level: level,
|
|
82
|
-
message: message,
|
|
83
|
-
source: source
|
|
84
|
-
};
|
|
85
|
-
}),
|
|
86
|
-
timestamp: new Date().toISOString()
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
return {
|
|
91
|
-
type: "logs",
|
|
92
|
-
processId,
|
|
93
|
-
logs: [],
|
|
94
|
-
timestamp: new Date().toISOString()
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
case "subscribeToLogs":
|
|
98
|
-
const { processId: subProcessId } = data || {};
|
|
99
|
-
if (!subProcessId) {
|
|
100
|
-
return {
|
|
101
|
-
type: "logSubscription",
|
|
102
|
-
status: "error",
|
|
103
|
-
message: "Missing processId",
|
|
104
|
-
timestamp: new Date().toISOString()
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
type: "logSubscription",
|
|
109
|
-
status: "subscribed",
|
|
110
|
-
processId: subProcessId,
|
|
111
|
-
timestamp: new Date().toISOString()
|
|
112
|
-
};
|
|
113
|
-
case "sourceFilesUpdated":
|
|
114
|
-
const { testName, hash, files, runtime } = data || {};
|
|
115
|
-
if (!testName || !hash || !files || !runtime) {
|
|
116
|
-
return {
|
|
117
|
-
type: "sourceFilesUpdated",
|
|
118
|
-
status: "error",
|
|
119
|
-
message: "Missing required fields: testName, hash, files, or runtime",
|
|
120
|
-
timestamp: new Date().toISOString()
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
// Note: Actual processing needs to be done by the server
|
|
124
|
-
return {
|
|
125
|
-
type: "sourceFilesUpdated",
|
|
126
|
-
status: "success",
|
|
127
|
-
testName,
|
|
128
|
-
runtime,
|
|
129
|
-
message: "Build update processed successfully",
|
|
130
|
-
timestamp: new Date().toISOString()
|
|
131
|
-
};
|
|
132
|
-
case "getBuildListenerState":
|
|
133
|
-
// This needs server-side implementation
|
|
134
|
-
return {
|
|
135
|
-
type: "buildListenerState",
|
|
136
|
-
status: "error",
|
|
137
|
-
message: "Build listener state not available",
|
|
138
|
-
timestamp: new Date().toISOString()
|
|
139
|
-
};
|
|
140
|
-
case "getBuildEvents":
|
|
141
|
-
// This needs server-side implementation
|
|
142
|
-
return {
|
|
143
|
-
type: "buildEvents",
|
|
144
|
-
status: "error",
|
|
145
|
-
message: "Build events not available",
|
|
146
|
-
timestamp: new Date().toISOString()
|
|
147
|
-
};
|
|
148
|
-
default:
|
|
149
|
-
return {
|
|
150
|
-
type: "error",
|
|
151
|
-
message: `Unknown message type: ${type}`,
|
|
152
|
-
timestamp: new Date().toISOString()
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// Helper methods for specific message types
|
|
157
|
-
getProcessesResponse(processSummary) {
|
|
158
|
-
return {
|
|
159
|
-
type: "processes",
|
|
160
|
-
data: processSummary,
|
|
161
|
-
timestamp: new Date().toISOString()
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
getLogsResponse(processId, logs) {
|
|
165
|
-
return {
|
|
166
|
-
type: "logs",
|
|
167
|
-
processId,
|
|
168
|
-
logs: logs.map((log) => {
|
|
169
|
-
let level = "info";
|
|
170
|
-
let source = "process";
|
|
171
|
-
let message = log;
|
|
172
|
-
const match = log.match(/\[(.*?)\] \[(.*?)\] (.*)/);
|
|
173
|
-
if (match) {
|
|
174
|
-
const timestamp = match[1];
|
|
175
|
-
source = match[2];
|
|
176
|
-
message = match[3];
|
|
177
|
-
if (source === "stderr" || source === "error") {
|
|
178
|
-
level = "error";
|
|
179
|
-
}
|
|
180
|
-
else if (source === "warn") {
|
|
181
|
-
level = "warn";
|
|
182
|
-
}
|
|
183
|
-
else if (source === "debug") {
|
|
184
|
-
level = "debug";
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
level = "info";
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return {
|
|
191
|
-
timestamp: new Date().toISOString(),
|
|
192
|
-
level: level,
|
|
193
|
-
message: message,
|
|
194
|
-
source: source
|
|
195
|
-
};
|
|
196
|
-
}),
|
|
197
|
-
timestamp: new Date().toISOString()
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
getSourceFilesUpdatedResponse(testName, runtime, status, message) {
|
|
201
|
-
return {
|
|
202
|
-
type: "sourceFilesUpdated",
|
|
203
|
-
status,
|
|
204
|
-
testName,
|
|
205
|
-
runtime,
|
|
206
|
-
message: message || "Build update processed successfully",
|
|
207
|
-
timestamp: new Date().toISOString()
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
getErrorResponse(type, errorMessage) {
|
|
211
|
-
return {
|
|
212
|
-
type: type,
|
|
213
|
-
status: "error",
|
|
214
|
-
message: errorMessage,
|
|
215
|
-
timestamp: new Date().toISOString()
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
getSuccessResponse(type, data) {
|
|
219
|
-
return {
|
|
220
|
-
type: type,
|
|
221
|
-
status: "success",
|
|
222
|
-
data: data,
|
|
223
|
-
timestamp: new Date().toISOString()
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// // Do not allow imports from outside the project
|
|
3
|
-
// const getBaseHtml = (title: string) => `
|
|
4
|
-
// <!DOCTYPE html>
|
|
5
|
-
// <html lang="en">
|
|
6
|
-
// <head>
|
|
7
|
-
// <meta name="description" content="Webpage description goes here" />
|
|
8
|
-
// <meta charset="utf-8" />
|
|
9
|
-
// <title>${title} - testeranto</title>
|
|
10
|
-
// <meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
11
|
-
// <meta name="author" content="" />
|
|
12
|
-
// `;
|
|
13
|
-
// export const ProcessMangerHtml = () => `
|
|
14
|
-
// ${getBaseHtml("Testeranto")}
|
|
15
|
-
// <link rel="stylesheet" href="ProcessManger.css" />
|
|
16
|
-
// <script src="ProcessManger.js"></script>
|
|
17
|
-
// </head>
|
|
18
|
-
// <body>
|
|
19
|
-
// <div id="root"></div>
|
|
20
|
-
// </body>
|
|
21
|
-
// </html>
|
|
22
|
-
// `;
|
|
23
|
-
// export const IndexHtml = () => `
|
|
24
|
-
// ${getBaseHtml("Testeranto")}
|
|
25
|
-
// <link rel="stylesheet" href="Index.css" />
|
|
26
|
-
// <script src="Index.js"></script>
|
|
27
|
-
// </head>
|
|
28
|
-
// <body>
|
|
29
|
-
// <div id="root"></div>
|
|
30
|
-
// </body>
|
|
31
|
-
// </html>
|
|
32
|
-
// `;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
// Do not allow imports from outside the project
|
|
2
|
-
/**
|
|
3
|
-
* Constants for Server_TCP configuration
|
|
4
|
-
*/
|
|
5
|
-
export const SERVER_CONSTANTS = {
|
|
6
|
-
HOST: "0.0.0.0",
|
|
7
|
-
};
|
|
8
|
-
export const CONTENT_TYPES = {
|
|
9
|
-
PLAIN: "text/plain",
|
|
10
|
-
HTML: "text/html",
|
|
11
|
-
JAVASCRIPT: "application/javascript",
|
|
12
|
-
CSS: "text/css",
|
|
13
|
-
JSON: "application/json",
|
|
14
|
-
PNG: "image/png",
|
|
15
|
-
JPEG: "image/jpeg",
|
|
16
|
-
GIF: "image/gif",
|
|
17
|
-
SVG: "image/svg+xml",
|
|
18
|
-
ICO: "image/x-icon",
|
|
19
|
-
WOFF: "font/woff",
|
|
20
|
-
WOFF2: "font/woff2",
|
|
21
|
-
TTF: "font/ttf",
|
|
22
|
-
EOT: "application/vnd.ms-fontobject",
|
|
23
|
-
XML: "application/xml",
|
|
24
|
-
PDF: "application/pdf",
|
|
25
|
-
ZIP: "application/zip",
|
|
26
|
-
OCTET_STREAM: "application/octet-stream",
|
|
27
|
-
};
|
|
28
|
-
export function getContentType(filePath) {
|
|
29
|
-
if (filePath.endsWith(".html"))
|
|
30
|
-
return CONTENT_TYPES.HTML;
|
|
31
|
-
else if (filePath.endsWith(".js") || filePath.endsWith(".mjs"))
|
|
32
|
-
return CONTENT_TYPES.JAVASCRIPT;
|
|
33
|
-
else if (filePath.endsWith(".css"))
|
|
34
|
-
return CONTENT_TYPES.CSS;
|
|
35
|
-
else if (filePath.endsWith(".json"))
|
|
36
|
-
return CONTENT_TYPES.JSON;
|
|
37
|
-
else if (filePath.endsWith(".png"))
|
|
38
|
-
return CONTENT_TYPES.PNG;
|
|
39
|
-
else if (filePath.endsWith(".jpg") || filePath.endsWith(".jpeg"))
|
|
40
|
-
return CONTENT_TYPES.JPEG;
|
|
41
|
-
else if (filePath.endsWith(".gif"))
|
|
42
|
-
return CONTENT_TYPES.GIF;
|
|
43
|
-
else if (filePath.endsWith(".svg"))
|
|
44
|
-
return CONTENT_TYPES.SVG;
|
|
45
|
-
else
|
|
46
|
-
return CONTENT_TYPES.PLAIN;
|
|
47
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
const fs = await import('fs/promises');
|
|
2
|
-
// const yaml = await import('yaml');
|
|
3
|
-
// import path from "path";
|
|
4
|
-
import { Server } from "./server/serverClasees/Server";
|
|
5
|
-
const mode = process.argv[3];
|
|
6
|
-
if (mode !== "once" && mode !== "dev") {
|
|
7
|
-
console.error(`The 3rd argument should be 'dev' or 'once', not '${mode}'.`);
|
|
8
|
-
process.exit(-1);
|
|
9
|
-
}
|
|
10
|
-
const main = async () => {
|
|
11
|
-
// const yamlPath = path.join(process.cwd(), 'testeranto/testeranto.yml');
|
|
12
|
-
// const yamlContent = await fs.readFile(yamlPath, 'utf-8');
|
|
13
|
-
// const parsed = yaml.parse(yamlContent);
|
|
14
|
-
// const config: ITestconfigV2 = new Map();
|
|
15
|
-
// for (const [key, value] of Object.entries(parsed)) {
|
|
16
|
-
// if (Array.isArray(value) && value.length >= 4) {
|
|
17
|
-
// // The first three elements are runtime, dockerfile, script
|
|
18
|
-
// const runtime = String(value[0]) as IRunTime;
|
|
19
|
-
// const dockerfile = String(value[1]);
|
|
20
|
-
// const script = String(value[2]);
|
|
21
|
-
// // The fourth element should be an object with tests
|
|
22
|
-
// let testsObj = { tests: [] as string[] };
|
|
23
|
-
// const fourth = value[3];
|
|
24
|
-
// if (fourth && typeof fourth === 'object' && fourth !== null) {
|
|
25
|
-
// const testsData = fourth as any;
|
|
26
|
-
// if (testsData.tests && Array.isArray(testsData.tests)) {
|
|
27
|
-
// testsObj.tests = testsData.tests.map((t: any) => String(t));
|
|
28
|
-
// }
|
|
29
|
-
// }
|
|
30
|
-
// config.set(key, [runtime, dockerfile, script, testsObj]);
|
|
31
|
-
// } else {
|
|
32
|
-
// console.warn(`Skipping entry ${key}: expected array with at least 4 elements, got`, value);
|
|
33
|
-
// }
|
|
34
|
-
// }
|
|
35
|
-
// console.log('Parsed config:', Array.from(config.entries()));
|
|
36
|
-
const config = (await import('../testeranto/testeranto.ts')).default;
|
|
37
|
-
console.log("mark123", config);
|
|
38
|
-
await new Server(config, mode).start();
|
|
39
|
-
};
|
|
40
|
-
main();
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import * as vscode from 'vscode';
|
|
2
|
-
export class TerminalManager {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.terminals = new Map();
|
|
5
|
-
}
|
|
6
|
-
getTerminalKey(runtime, testName) {
|
|
7
|
-
return `${runtime}:${testName}`;
|
|
8
|
-
}
|
|
9
|
-
createTerminal(runtime, testName) {
|
|
10
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
11
|
-
const terminal = vscode.window.createTerminal(`Testeranto: ${testName} (${runtime})`);
|
|
12
|
-
this.terminals.set(key, terminal);
|
|
13
|
-
return terminal;
|
|
14
|
-
}
|
|
15
|
-
getTerminal(runtime, testName) {
|
|
16
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
17
|
-
return this.terminals.get(key);
|
|
18
|
-
}
|
|
19
|
-
showTerminal(runtime, testName) {
|
|
20
|
-
const terminal = this.getTerminal(runtime, testName);
|
|
21
|
-
if (terminal) {
|
|
22
|
-
terminal.show();
|
|
23
|
-
}
|
|
24
|
-
return terminal;
|
|
25
|
-
}
|
|
26
|
-
sendTextToTerminal(runtime, testName, text) {
|
|
27
|
-
const terminal = this.getTerminal(runtime, testName);
|
|
28
|
-
if (terminal) {
|
|
29
|
-
terminal.sendText(text);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
disposeTerminal(runtime, testName) {
|
|
33
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
34
|
-
const terminal = this.terminals.get(key);
|
|
35
|
-
if (terminal) {
|
|
36
|
-
terminal.dispose();
|
|
37
|
-
this.terminals.delete(key);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
disposeAll() {
|
|
41
|
-
for (const terminal of this.terminals.values()) {
|
|
42
|
-
terminal.dispose();
|
|
43
|
-
}
|
|
44
|
-
this.terminals.clear();
|
|
45
|
-
}
|
|
46
|
-
getAllTestConfigs() {
|
|
47
|
-
const configs = [];
|
|
48
|
-
const runtimes = ["node", "web", "python", "golang"];
|
|
49
|
-
for (const runtime of runtimes) {
|
|
50
|
-
let testNames = [];
|
|
51
|
-
switch (runtime) {
|
|
52
|
-
case "node":
|
|
53
|
-
testNames = ["Calculator.test.ts"];
|
|
54
|
-
break;
|
|
55
|
-
case "web":
|
|
56
|
-
testNames = ["Calculator.test.ts"];
|
|
57
|
-
break;
|
|
58
|
-
case "python":
|
|
59
|
-
testNames = ["Calculator.pitono.test.py"];
|
|
60
|
-
break;
|
|
61
|
-
case "golang":
|
|
62
|
-
testNames = ["Calculator.golingvu.test.go"];
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
for (const testName of testNames) {
|
|
66
|
-
configs.push({ runtime, testName });
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return configs;
|
|
70
|
-
}
|
|
71
|
-
createAiderTerminal(runtime, testName) {
|
|
72
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
73
|
-
let terminal = this.terminals.get(key);
|
|
74
|
-
if (terminal && terminal.exitStatus === undefined) {
|
|
75
|
-
return terminal;
|
|
76
|
-
}
|
|
77
|
-
terminal = vscode.window.createTerminal(`Aider: ${testName} (${runtime})`);
|
|
78
|
-
this.terminals.set(key, terminal);
|
|
79
|
-
return terminal;
|
|
80
|
-
}
|
|
81
|
-
createAllTerminals() {
|
|
82
|
-
const configs = this.getAllTestConfigs();
|
|
83
|
-
for (const { runtime, testName } of configs) {
|
|
84
|
-
try {
|
|
85
|
-
this.createTerminal(runtime, testName);
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
console.error(`Failed to create terminal for ${testName} (${runtime}):`, error);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import * as vscode from 'vscode';
|
|
2
|
-
import { TreeItemType } from './types';
|
|
3
|
-
export class TestTreeItem extends vscode.TreeItem {
|
|
4
|
-
constructor(label, type, collapsibleState, data, command, iconPath) {
|
|
5
|
-
super(label, collapsibleState);
|
|
6
|
-
this.label = label;
|
|
7
|
-
this.type = type;
|
|
8
|
-
this.collapsibleState = collapsibleState;
|
|
9
|
-
this.data = data;
|
|
10
|
-
this.command = command;
|
|
11
|
-
this.iconPath = iconPath;
|
|
12
|
-
this.tooltip = `${this.label}`;
|
|
13
|
-
this.iconPath = iconPath || this.getDefaultIcon();
|
|
14
|
-
this.contextValue = this.getContextValue();
|
|
15
|
-
}
|
|
16
|
-
getDefaultIcon() {
|
|
17
|
-
switch (this.type) {
|
|
18
|
-
case TreeItemType.Runtime:
|
|
19
|
-
return new vscode.ThemeIcon("symbol-namespace");
|
|
20
|
-
case TreeItemType.Test:
|
|
21
|
-
return new vscode.ThemeIcon("beaker");
|
|
22
|
-
case TreeItemType.File:
|
|
23
|
-
return new vscode.ThemeIcon("file");
|
|
24
|
-
default:
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
getContextValue() {
|
|
29
|
-
switch (this.type) {
|
|
30
|
-
case TreeItemType.Runtime:
|
|
31
|
-
return 'runtimeItem';
|
|
32
|
-
case TreeItemType.Test:
|
|
33
|
-
return 'testItem';
|
|
34
|
-
case TreeItemType.File:
|
|
35
|
-
return 'fileItem';
|
|
36
|
-
default:
|
|
37
|
-
return 'unknown';
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|