@intuned/runtime-dev 0.0.1 → 0.1.0-test.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.
- package/InterfaceTemplate/index.ts +1 -0
- package/Intuned.json +5 -0
- package/WebTemplate/api.ts +92 -90
- package/WebTemplate/controllers/authSessions/check.ts +23 -29
- package/WebTemplate/controllers/authSessions/create.ts +46 -71
- package/WebTemplate/controllers/authSessions/index.ts +4 -4
- package/WebTemplate/controllers/authSessions/killOperation.ts +1 -1
- package/WebTemplate/controllers/authSessions/resumeOperation.ts +28 -52
- package/WebTemplate/controllers/authSessions/store.ts +11 -6
- package/WebTemplate/controllers/runApi/helpers.ts +49 -146
- package/WebTemplate/index.playwright.ts +42 -32
- package/WebTemplate/index.vanilla.ts +2 -20
- package/WebTemplate/jobs.ts +2 -13
- package/WebTemplate/utils.ts +1 -85
- package/WebTemplate.zip +0 -0
- package/api/authed.ts +12 -0
- package/api/test.ts +3 -0
- package/api/test2.ts +25 -0
- package/auth-sessions/check.ts +9 -0
- package/auth-sessions/create.ts +32 -0
- package/authSessions +1 -0
- package/bin/intuned-api-run +2 -0
- package/bin/intuned-auth-session-check +2 -0
- package/bin/intuned-auth-session-create +2 -0
- package/bin/intuned-auth-session-load +2 -0
- package/bin/intuned-auth-session-refresh +2 -0
- package/bin/intuned-browser-save-state +2 -0
- package/bin/intuned-browser-start +2 -0
- package/bin/intuned-build +2 -0
- package/bin/intuned-ts-check +2 -0
- package/dist/commands/api/run.d.ts +6 -0
- package/dist/commands/api/run.js +113 -0
- package/dist/commands/auth-sessions/load.d.ts +2 -0
- package/dist/commands/auth-sessions/load.js +32 -0
- package/dist/commands/auth-sessions/run-check.d.ts +2 -0
- package/dist/commands/auth-sessions/run-check.js +56 -0
- package/dist/commands/auth-sessions/run-create.d.ts +2 -0
- package/dist/commands/auth-sessions/run-create.js +96 -0
- package/dist/commands/browser/save-state.d.ts +2 -0
- package/dist/commands/browser/save-state.js +17 -0
- package/dist/commands/browser/start-browser.d.ts +2 -0
- package/dist/commands/browser/start-browser.js +14 -0
- package/dist/commands/build.d.ts +2 -0
- package/dist/commands/build.js +83 -0
- package/dist/commands/common/browserUtils.d.ts +14 -0
- package/dist/commands/common/browserUtils.js +58 -0
- package/dist/commands/common/getDefaultExportFromFile.d.ts +1 -0
- package/dist/commands/common/getDefaultExportFromFile.js +19 -0
- package/dist/commands/common/getFirstLineNumber.d.ts +9 -0
- package/dist/commands/common/getFirstLineNumber.js +103 -0
- package/{src/commands/common/getFirstLineNumber.test.ts → dist/commands/common/getFirstLineNumber.test.js} +75 -121
- package/dist/commands/common/sendMessageToClient.d.ts +1 -0
- package/dist/commands/common/sendMessageToClient.js +10 -0
- package/dist/commands/common/utils/fileUtils.d.ts +6 -0
- package/dist/commands/common/utils/fileUtils.js +33 -0
- package/dist/commands/common/utils/settings.d.ts +2 -0
- package/dist/commands/common/utils/settings.js +28 -0
- package/dist/commands/common/utils/unixSocket.d.ts +9 -0
- package/dist/commands/common/utils/unixSocket.js +45 -0
- package/dist/commands/common/utils/webTemplate.d.ts +1 -0
- package/dist/commands/common/utils/webTemplate.js +31 -0
- package/dist/commands/interface/run.d.ts +2 -0
- package/dist/commands/interface/run.js +161 -0
- package/dist/commands/ts-check.d.ts +2 -0
- package/dist/commands/ts-check.js +54 -0
- package/dist/common/Logger/Logger/index.d.ts +12 -0
- package/dist/common/Logger/Logger/index.js +60 -0
- package/{src/common/Logger/Logger/types.ts → dist/common/Logger/Logger/types.d.ts} +4 -5
- package/dist/common/Logger/Logger/types.js +5 -0
- package/dist/common/Logger/index.d.ts +12 -0
- package/dist/common/Logger/index.js +60 -0
- package/{src/common/Logger/types.ts → dist/common/Logger/types.d.ts} +4 -5
- package/dist/common/Logger/types.js +5 -0
- package/dist/common/asyncLocalStorage/index.d.ts +16 -0
- package/dist/common/asyncLocalStorage/index.js +17 -0
- package/dist/common/cleanEnvironmentVariables.d.ts +1 -0
- package/dist/common/cleanEnvironmentVariables.js +16 -0
- package/dist/common/constants.d.ts +1 -0
- package/dist/common/constants.js +7 -0
- package/dist/common/contextStorageStateHelpers.d.ts +14 -0
- package/dist/common/contextStorageStateHelpers.js +50 -0
- package/dist/common/getPlaywrightConstructs.d.ts +30 -0
- package/dist/common/getPlaywrightConstructs.js +192 -0
- package/dist/common/jwtTokenManager.d.ts +16 -0
- package/dist/common/jwtTokenManager.js +81 -0
- package/dist/common/runApi/errors.d.ts +71 -0
- package/dist/common/runApi/errors.js +172 -0
- package/dist/common/runApi/index.d.ts +12 -0
- package/dist/common/runApi/index.js +288 -0
- package/dist/common/runApi/types.d.ts +486 -0
- package/dist/common/runApi/types.js +50 -0
- package/dist/common/settingsSchema.d.ts +19 -0
- package/dist/common/settingsSchema.js +17 -0
- package/dist/common/telemetry.d.ts +3 -0
- package/dist/common/telemetry.js +32 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +69 -0
- package/dist/runtime/RunError.d.ts +5 -0
- package/dist/runtime/RunError.js +19 -0
- package/dist/runtime/downloadDirectory.d.ts +1 -0
- package/dist/runtime/downloadDirectory.js +19 -0
- package/dist/runtime/enums.d.js +5 -0
- package/dist/runtime/enums.js +18 -0
- package/dist/runtime/executionHelpers.test.js +53 -0
- package/dist/runtime/export.d.js +5 -0
- package/dist/runtime/extendPayload.d.ts +2 -0
- package/dist/runtime/extendPayload.js +21 -0
- package/dist/runtime/extendTimeout.d.ts +1 -0
- package/dist/runtime/extendTimeout.js +30 -0
- package/{src/runtime/index.ts → dist/runtime/index.d.ts} +2 -3
- package/dist/runtime/index.js +53 -0
- package/dist/runtime/requestMoreInfo.d.ts +18 -0
- package/dist/runtime/requestMoreInfo.js +25 -0
- package/dist/runtime/runInfo.d.ts +2 -0
- package/dist/runtime/runInfo.js +21 -0
- package/output.txt +39 -0
- package/package.json +9 -7
- package/testing +0 -0
- package/tsconfig.json +2 -1
- package/.vite/deps_temp_01af7156/package.json +0 -3
- package/.vscode/extensions.json +0 -3
- package/.vscode/launch.json +0 -102
- package/.vscode/settings.json +0 -12
- package/playwright.config.ts +0 -48
- package/src/commands/api/run.ts +0 -225
- package/src/commands/auth-sessions/load.ts +0 -42
- package/src/commands/auth-sessions/run-check.ts +0 -70
- package/src/commands/auth-sessions/run-create.ts +0 -124
- package/src/commands/browser/save-state.ts +0 -22
- package/src/commands/browser/start-browser.ts +0 -17
- package/src/commands/build.ts +0 -125
- package/src/commands/common/browserUtils.ts +0 -80
- package/src/commands/common/getDefaultExportFromFile.ts +0 -13
- package/src/commands/common/getFirstLineNumber.ts +0 -146
- package/src/commands/common/sendMessageToClient.ts +0 -8
- package/src/commands/common/utils/fileUtils.ts +0 -25
- package/src/commands/common/utils/settings.ts +0 -23
- package/src/commands/common/utils/webTemplate.ts +0 -46
- package/src/commands/testing/saveVisibleHtml.ts +0 -29
- package/src/commands/ts-check.ts +0 -88
- package/src/common/Logger/Logger/index.ts +0 -64
- package/src/common/Logger/index.ts +0 -64
- package/src/common/asyncLocalStorage/index.ts +0 -29
- package/src/common/cleanEnvironmentVariables.ts +0 -13
- package/src/common/constants.ts +0 -1
- package/src/common/contextStorageStateHelpers.ts +0 -71
- package/src/common/getPlaywrightConstructs.ts +0 -283
- package/src/common/jwtTokenManager.ts +0 -111
- package/src/common/settingsSchema.ts +0 -16
- package/src/common/telemetry.ts +0 -49
- package/src/index.ts +0 -14
- package/src/runtime/RunError.ts +0 -16
- package/src/runtime/downloadDirectory.ts +0 -14
- package/src/runtime/enums.ts +0 -11
- package/src/runtime/executionHelpers.test.ts +0 -70
- package/src/runtime/extendPayload.ts +0 -22
- package/src/runtime/extendTimeout.ts +0 -32
- package/src/runtime/requestMoreInfo.ts +0 -40
- package/src/runtime/runInfo.ts +0 -19
- package/vite.config.ts +0 -17
- /package/{src → dist}/common/assets/browser_scripts.js +0 -0
- /package/{src → dist}/runtime/enums.d.ts +0 -0
- /package/{src → dist}/runtime/export.d.ts +0 -0
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _vitest = require("vitest");
|
|
4
|
+
var _getFirstLineNumber = _interopRequireDefault(require("./getFirstLineNumber"));
|
|
5
|
+
var fs = _interopRequireWildcard(require("fs"));
|
|
6
|
+
var path = _interopRequireWildcard(require("path"));
|
|
7
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
8
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
(0, _vitest.describe)("getFirstLineNumber", () => {
|
|
7
11
|
const testFilesDir = path.join(__dirname, "testFiles");
|
|
8
|
-
const createTestFile = (fileName
|
|
12
|
+
const createTestFile = (fileName, content) => {
|
|
9
13
|
const filePath = path.join(testFilesDir, fileName);
|
|
10
14
|
fs.writeFileSync(filePath, content);
|
|
11
15
|
return filePath;
|
|
12
16
|
};
|
|
13
|
-
|
|
14
|
-
beforeAll(() => {
|
|
17
|
+
(0, _vitest.beforeAll)(() => {
|
|
15
18
|
if (!fs.existsSync(testFilesDir)) {
|
|
16
19
|
fs.mkdirSync(testFilesDir);
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
fs.readdirSync(testFilesDir).forEach((file) =>
|
|
22
|
-
fs.unlinkSync(path.join(testFilesDir, file))
|
|
23
|
-
);
|
|
22
|
+
(0, _vitest.afterAll)(() => {
|
|
23
|
+
fs.readdirSync(testFilesDir).forEach(file => fs.unlinkSync(path.join(testFilesDir, file)));
|
|
24
24
|
fs.rmdirSync(testFilesDir);
|
|
25
25
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const filePath = createTestFile(
|
|
29
|
-
"defaultFunction.ts",
|
|
30
|
-
`import {
|
|
26
|
+
(0, _vitest.it)("correctly identifies first line in a default exported named function", async () => {
|
|
27
|
+
const filePath = createTestFile("defaultFunction.ts", `import {
|
|
31
28
|
EnhancedPlaywrightPage,
|
|
32
29
|
EnhancedPlaywrightBrowserContext,
|
|
33
30
|
ExecutionHelpers,
|
|
@@ -48,16 +45,12 @@ describe("getFirstLineNumber", () => {
|
|
|
48
45
|
await page.getByLabel("Search Wikipedia").press("Enter");
|
|
49
46
|
return { done: "true", name: "custom name from api1" };
|
|
50
47
|
}
|
|
51
|
-
`
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
expect(result.lineNumber).toBe(4); // 4 is the index after it's compiled to commonjs
|
|
48
|
+
`);
|
|
49
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
50
|
+
(0, _vitest.expect)(result.lineNumber).toBe(4);
|
|
55
51
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const filePath = createTestFile(
|
|
59
|
-
"defaultFunction.ts",
|
|
60
|
-
`import {
|
|
52
|
+
(0, _vitest.it)("correctly identifies first line in a default exported anonymous function", async () => {
|
|
53
|
+
const filePath = createTestFile("defaultFunction.ts", `import {
|
|
61
54
|
EnhancedPlaywrightPage,
|
|
62
55
|
EnhancedPlaywrightBrowserContext,
|
|
63
56
|
ExecutionHelpers,
|
|
@@ -78,16 +71,12 @@ describe("getFirstLineNumber", () => {
|
|
|
78
71
|
await page.getByLabel("Search Wikipedia").press("Enter");
|
|
79
72
|
return { done: "true", name: "custom name from api1" };
|
|
80
73
|
}
|
|
81
|
-
`
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
expect(result.lineNumber).toBe(4);
|
|
74
|
+
`);
|
|
75
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
76
|
+
(0, _vitest.expect)(result.lineNumber).toBe(4);
|
|
85
77
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const filePath = createTestFile(
|
|
89
|
-
"defaultFunction.ts",
|
|
90
|
-
`import {
|
|
78
|
+
(0, _vitest.it)("correctly identifies first line in a default exported function identifier", async () => {
|
|
79
|
+
const filePath = createTestFile("defaultFunction.ts", `import {
|
|
91
80
|
EnhancedPlaywrightPage,
|
|
92
81
|
EnhancedPlaywrightBrowserContext,
|
|
93
82
|
ExecutionHelpers,
|
|
@@ -109,16 +98,12 @@ describe("getFirstLineNumber", () => {
|
|
|
109
98
|
return { done: "true", name: "custom name from api1" };
|
|
110
99
|
}
|
|
111
100
|
export default runApi;
|
|
112
|
-
`
|
|
113
|
-
);
|
|
114
|
-
|
|
115
|
-
expect(result.lineNumber).toBe(4);
|
|
101
|
+
`);
|
|
102
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
103
|
+
(0, _vitest.expect)(result.lineNumber).toBe(4);
|
|
116
104
|
});
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const filePath = createTestFile(
|
|
120
|
-
"multipleExports.ts",
|
|
121
|
-
`import {
|
|
105
|
+
(0, _vitest.it)("correctly identifies first line in a file with multiple exports including a default function", async () => {
|
|
106
|
+
const filePath = createTestFile("multipleExports.ts", `import {
|
|
122
107
|
EnhancedPlaywrightPage,
|
|
123
108
|
EnhancedPlaywrightBrowserContext,
|
|
124
109
|
ExecutionHelpers,
|
|
@@ -140,16 +125,12 @@ describe("getFirstLineNumber", () => {
|
|
|
140
125
|
await page.getByLabel("Search Wikipedia").press("Enter");
|
|
141
126
|
return { done: "true", name: "custom name from api1" };
|
|
142
127
|
}
|
|
143
|
-
export default runApi;`
|
|
144
|
-
);
|
|
145
|
-
|
|
146
|
-
expect(result.lineNumber).toBe(7);
|
|
128
|
+
export default runApi;`);
|
|
129
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
130
|
+
(0, _vitest.expect)(result.lineNumber).toBe(7);
|
|
147
131
|
});
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
const filePath = createTestFile(
|
|
151
|
-
"multipleExports.ts",
|
|
152
|
-
`import {
|
|
132
|
+
(0, _vitest.it)("correctly identifies first line in a default exported arrow function identifier", async () => {
|
|
133
|
+
const filePath = createTestFile("multipleExports.ts", `import {
|
|
153
134
|
EnhancedPlaywrightPage,
|
|
154
135
|
EnhancedPlaywrightBrowserContext,
|
|
155
136
|
ExecutionHelpers,
|
|
@@ -170,16 +151,12 @@ describe("getFirstLineNumber", () => {
|
|
|
170
151
|
await page.getByLabel("Search Wikipedia").press("Enter");
|
|
171
152
|
return { done: "true", name: "custom name from api1" };
|
|
172
153
|
}
|
|
173
|
-
export default runApi;`
|
|
174
|
-
);
|
|
175
|
-
|
|
176
|
-
expect(result.lineNumber).toBe(4);
|
|
154
|
+
export default runApi;`);
|
|
155
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
156
|
+
(0, _vitest.expect)(result.lineNumber).toBe(4);
|
|
177
157
|
});
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
const filePath = createTestFile(
|
|
181
|
-
"multipleExports.ts",
|
|
182
|
-
`import {
|
|
158
|
+
(0, _vitest.it)("correctly identifies first line in a default exported anonymous arrow function", async () => {
|
|
159
|
+
const filePath = createTestFile("multipleExports.ts", `import {
|
|
183
160
|
EnhancedPlaywrightPage,
|
|
184
161
|
EnhancedPlaywrightBrowserContext,
|
|
185
162
|
ExecutionHelpers,
|
|
@@ -199,76 +176,53 @@ describe("getFirstLineNumber", () => {
|
|
|
199
176
|
await page.getByLabel("Search Wikipedia").type(params.name);
|
|
200
177
|
await page.getByLabel("Search Wikipedia").press("Enter");
|
|
201
178
|
return { done: "true", name: "custom name from api1" };
|
|
202
|
-
};`
|
|
203
|
-
);
|
|
204
|
-
|
|
205
|
-
expect(result.lineNumber).toBe(4);
|
|
179
|
+
};`);
|
|
180
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
181
|
+
(0, _vitest.expect)(result.lineNumber).toBe(4);
|
|
206
182
|
});
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const filePath = createTestFile(
|
|
210
|
-
"defaultArrowFunction.ts",
|
|
211
|
-
`export default () => {
|
|
183
|
+
(0, _vitest.it)("identifies first executable line in a default exported arrow function", async () => {
|
|
184
|
+
const filePath = createTestFile("defaultArrowFunction.ts", `export default () => {
|
|
212
185
|
console.log("Hello, Arrow World!");
|
|
213
|
-
};`
|
|
214
|
-
);
|
|
215
|
-
|
|
216
|
-
expect(result.lineNumber).toBe(4);
|
|
186
|
+
};`);
|
|
187
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
188
|
+
(0, _vitest.expect)(result.lineNumber).toBe(4);
|
|
217
189
|
});
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
const filePath = createTestFile(
|
|
221
|
-
"nestedFunctions.ts",
|
|
222
|
-
`const x = 4;
|
|
190
|
+
(0, _vitest.it)("identifies first executable line within nested functions of a default export", async () => {
|
|
191
|
+
const filePath = createTestFile("nestedFunctions.ts", `const x = 4;
|
|
223
192
|
export default function() {
|
|
224
193
|
const nested = (x) => console.log("Nested function call");
|
|
225
194
|
nested(x);
|
|
226
|
-
}`
|
|
227
|
-
);
|
|
228
|
-
|
|
229
|
-
expect(result.lineNumber).toBe(5);
|
|
195
|
+
}`);
|
|
196
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
197
|
+
(0, _vitest.expect)(result.lineNumber).toBe(5);
|
|
230
198
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
const filePath = createTestFile(
|
|
234
|
-
"asyncDefaultFunction.ts",
|
|
235
|
-
`export default async function() {
|
|
199
|
+
(0, _vitest.it)("handles async default exported function correctly", async () => {
|
|
200
|
+
const filePath = createTestFile("asyncDefaultFunction.ts", `export default async function() {
|
|
236
201
|
await Promise.resolve(console.log("Async Hello, World!"));
|
|
237
|
-
}`
|
|
238
|
-
);
|
|
239
|
-
|
|
240
|
-
expect(result.lineNumber).toBe(4);
|
|
202
|
+
}`);
|
|
203
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
204
|
+
(0, _vitest.expect)(result.lineNumber).toBe(4);
|
|
241
205
|
});
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
const filePath = createTestFile(
|
|
245
|
-
"defaultClass.ts",
|
|
246
|
-
`export default class MyClass {
|
|
206
|
+
(0, _vitest.it)("returns -1 for a default exported class", async () => {
|
|
207
|
+
const filePath = createTestFile("defaultClass.ts", `export default class MyClass {
|
|
247
208
|
constructor() {}
|
|
248
|
-
}`
|
|
249
|
-
);
|
|
250
|
-
|
|
251
|
-
expect(result.lineNumber).toBe(-1);
|
|
209
|
+
}`);
|
|
210
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
211
|
+
(0, _vitest.expect)(result.lineNumber).toBe(-1);
|
|
252
212
|
});
|
|
253
|
-
|
|
254
|
-
it("returns -1 for a default exported variable", async () => {
|
|
213
|
+
(0, _vitest.it)("returns -1 for a default exported variable", async () => {
|
|
255
214
|
const filePath = createTestFile("defaultVariable.ts", `export default 42;`);
|
|
256
|
-
const result = await
|
|
257
|
-
expect(result.lineNumber).toBe(-1);
|
|
215
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
216
|
+
(0, _vitest.expect)(result.lineNumber).toBe(-1);
|
|
258
217
|
});
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
`export const foo = () => console.log("bar");`
|
|
264
|
-
);
|
|
265
|
-
const result = await getFirstLineNumber(filePath);
|
|
266
|
-
expect(result.lineNumber).toBe(-1);
|
|
218
|
+
(0, _vitest.it)("returns -1 when there is no default export", async () => {
|
|
219
|
+
const filePath = createTestFile("noDefaultExport.ts", `export const foo = () => console.log("bar");`);
|
|
220
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
221
|
+
(0, _vitest.expect)(result.lineNumber).toBe(-1);
|
|
267
222
|
});
|
|
268
|
-
|
|
269
|
-
it("returns -1 for an empty file", async () => {
|
|
223
|
+
(0, _vitest.it)("returns -1 for an empty file", async () => {
|
|
270
224
|
const filePath = createTestFile("emptyFile.ts", ``);
|
|
271
|
-
const result = await
|
|
272
|
-
expect(result.lineNumber).toBe(-1);
|
|
225
|
+
const result = await (0, _getFirstLineNumber.default)(filePath);
|
|
226
|
+
(0, _vitest.expect)(result.lineNumber).toBe(-1);
|
|
273
227
|
});
|
|
274
|
-
});
|
|
228
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const sendBreakPointOnToClient: (sourceFileName: string, lineNumber: number) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sendBreakPointOnToClient = void 0;
|
|
7
|
+
const sendBreakPointOnToClient = (sourceFileName, lineNumber) => {
|
|
8
|
+
console.log(`breakpoint on ${sourceFileName}:${lineNumber}`);
|
|
9
|
+
};
|
|
10
|
+
exports.sendBreakPointOnToClient = sendBreakPointOnToClient;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getFullPathInProject = getFullPathInProject;
|
|
7
|
+
exports.listProjectFilesAndFolders = listProjectFilesAndFolders;
|
|
8
|
+
var path = _interopRequireWildcard(require("path"));
|
|
9
|
+
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
10
|
+
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
_dotenv.default.config();
|
|
15
|
+
function getFullPathInProject(...paths) {
|
|
16
|
+
return path.resolve(process.cwd(), process.env.ROOT || "./", ...paths);
|
|
17
|
+
}
|
|
18
|
+
async function listProjectFilesAndFolders() {
|
|
19
|
+
const projectPath = path.resolve(process.cwd(), process.env.ROOT || "./");
|
|
20
|
+
try {
|
|
21
|
+
const files = await fs.readdir(projectPath, {
|
|
22
|
+
withFileTypes: true
|
|
23
|
+
});
|
|
24
|
+
return files.map(file => ({
|
|
25
|
+
type: file.isDirectory() ? "Folder" : "File",
|
|
26
|
+
fullPath: path.join(projectPath, file.name),
|
|
27
|
+
name: file.name
|
|
28
|
+
}));
|
|
29
|
+
} catch (err) {
|
|
30
|
+
console.error("Error reading the directory:", err);
|
|
31
|
+
throw err;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSettings = getSettings;
|
|
7
|
+
var _fileUtils = require("./fileUtils");
|
|
8
|
+
var _settingsSchema = require("../../../common/settingsSchema");
|
|
9
|
+
var _fsExtra = require("fs-extra");
|
|
10
|
+
async function getSettings() {
|
|
11
|
+
const settingsFilePath = (0, _fileUtils.getFullPathInProject)("Intuned.json");
|
|
12
|
+
console.log("loading settings");
|
|
13
|
+
const settings = await (0, _fsExtra.readJSON)(settingsFilePath);
|
|
14
|
+
if (settings) {
|
|
15
|
+
const parsed = _settingsSchema.settingsSchema.safeParse(settings);
|
|
16
|
+
console.log(parsed);
|
|
17
|
+
if (parsed.success) {
|
|
18
|
+
return parsed.data;
|
|
19
|
+
} else {
|
|
20
|
+
throw new Error(parsed.error.message);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
authSessions: {
|
|
25
|
+
enabled: false
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as net from "net";
|
|
3
|
+
export declare class JSONUnixSocket {
|
|
4
|
+
private readonly socket;
|
|
5
|
+
static readonly LENGTH_HEADER_LENGTH = 4;
|
|
6
|
+
constructor(socket: net.Socket);
|
|
7
|
+
sendJSON(data: any): void;
|
|
8
|
+
receiveJSON(): AsyncGenerator<any, void, unknown>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.JSONUnixSocket = void 0;
|
|
7
|
+
class JSONUnixSocket {
|
|
8
|
+
static LENGTH_HEADER_LENGTH = 4;
|
|
9
|
+
constructor(socket) {
|
|
10
|
+
this.socket = socket;
|
|
11
|
+
}
|
|
12
|
+
sendJSON(data) {
|
|
13
|
+
const dataToSend = JSON.stringify(data);
|
|
14
|
+
const length = Buffer.byteLength(dataToSend);
|
|
15
|
+
const buffer = Buffer.alloc(JSONUnixSocket.LENGTH_HEADER_LENGTH + length);
|
|
16
|
+
buffer.writeUInt32BE(length, 0);
|
|
17
|
+
buffer.write(dataToSend, JSONUnixSocket.LENGTH_HEADER_LENGTH);
|
|
18
|
+
this.socket.write(buffer);
|
|
19
|
+
}
|
|
20
|
+
async *receiveJSON() {
|
|
21
|
+
let buffer = Buffer.alloc(0);
|
|
22
|
+
const endPromise = new Promise((resolve, reject) => {
|
|
23
|
+
this.socket.once("end", () => {
|
|
24
|
+
console.log("end");
|
|
25
|
+
resolve();
|
|
26
|
+
});
|
|
27
|
+
this.socket.once("error", reject);
|
|
28
|
+
});
|
|
29
|
+
while (true) {
|
|
30
|
+
const chunk = await Promise.race([new Promise(resolve => this.socket.once("data", data => resolve(data))), endPromise]);
|
|
31
|
+
if (!(chunk instanceof Buffer)) {
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
buffer = Buffer.concat([buffer, chunk]);
|
|
35
|
+
const length = buffer.readUInt32BE(0);
|
|
36
|
+
if (buffer.length < length + JSONUnixSocket.LENGTH_HEADER_LENGTH) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const data = buffer.subarray(JSONUnixSocket.LENGTH_HEADER_LENGTH, length + JSONUnixSocket.LENGTH_HEADER_LENGTH);
|
|
40
|
+
buffer = buffer.subarray(length + JSONUnixSocket.LENGTH_HEADER_LENGTH);
|
|
41
|
+
yield JSON.parse(data.toString());
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.JSONUnixSocket = JSONUnixSocket;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const moveWebTemplateFiles: () => Promise<void>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.moveWebTemplateFiles = void 0;
|
|
7
|
+
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
8
|
+
var path = _interopRequireWildcard(require("path"));
|
|
9
|
+
var _fileUtils = require("./fileUtils");
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
const moveWebTemplateFiles = async () => {
|
|
13
|
+
await fs.remove("./intuned");
|
|
14
|
+
await fs.ensureDir("./intuned");
|
|
15
|
+
const currentFileLocation = path.resolve(__dirname, "..", "..", "..", "..", "WebTemplate");
|
|
16
|
+
await fs.copy(`${currentFileLocation}`, "./intuned/WebTemplate", {
|
|
17
|
+
filter: (src, dest) => {
|
|
18
|
+
if (src.includes(".d.ts")) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
const filesAndFolders = await (0, _fileUtils.listProjectFilesAndFolders)();
|
|
25
|
+
const pathsIgnoreList = [(0, _fileUtils.getFullPathInProject)("intuned"), (0, _fileUtils.getFullPathInProject)("node_modules"), (0, _fileUtils.getFullPathInProject)("package.json"), (0, _fileUtils.getFullPathInProject)("yarn.lock"), (0, _fileUtils.getFullPathInProject)(".env")];
|
|
26
|
+
const filesToCopy = filesAndFolders.filter(file => !pathsIgnoreList.includes(file.fullPath));
|
|
27
|
+
for (const file of filesToCopy) {
|
|
28
|
+
await fs.copy(file.fullPath, `./intuned/WebTemplate/${file.name}`);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.moveWebTemplateFiles = moveWebTemplateFiles;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _commander = require("commander");
|
|
5
|
+
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
6
|
+
var _asyncLocalStorage = require("../../common/asyncLocalStorage");
|
|
7
|
+
var net = _interopRequireWildcard(require("net"));
|
|
8
|
+
var _zod = _interopRequireDefault(require("zod"));
|
|
9
|
+
var _runApi = require("../../common/runApi");
|
|
10
|
+
var _enums = require("src/runtime/enums");
|
|
11
|
+
var _unixSocket = require("../common/utils/unixSocket");
|
|
12
|
+
var _promises = require("timers/promises");
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
const startRunApiSchema = _zod.default.object({
|
|
17
|
+
type: _zod.default.literal("start"),
|
|
18
|
+
parameters: _runApi.runApiParametersSchema.extend({
|
|
19
|
+
retrieveSession: _zod.default.boolean(),
|
|
20
|
+
context: _zod.default.object({
|
|
21
|
+
jobId: _zod.default.string().optional(),
|
|
22
|
+
jobRunId: _zod.default.string().optional(),
|
|
23
|
+
runId: _zod.default.string().optional(),
|
|
24
|
+
queueId: _zod.default.string().optional()
|
|
25
|
+
}).optional()
|
|
26
|
+
})
|
|
27
|
+
});
|
|
28
|
+
const nextRunApiSchema = _zod.default.object({
|
|
29
|
+
type: _zod.default.literal("next"),
|
|
30
|
+
parameters: _zod.default.object({
|
|
31
|
+
value: _zod.default.string()
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
const abortRunApiSchema = _zod.default.object({
|
|
35
|
+
type: _zod.default.literal("abort"),
|
|
36
|
+
parameters: _zod.default.object({}).optional()
|
|
37
|
+
});
|
|
38
|
+
const inputSchema = _zod.default.union([startRunApiSchema, nextRunApiSchema, abortRunApiSchema]);
|
|
39
|
+
_dotenv.default.config({
|
|
40
|
+
path: `.env`
|
|
41
|
+
});
|
|
42
|
+
_commander.program.description("run user automation and communicate using unix socket").argument("<socket-path>", "path to unix socket").action(async socketPath => {
|
|
43
|
+
let context;
|
|
44
|
+
const throttleTime = 1_000;
|
|
45
|
+
let timeoutTimestamp = Date.now();
|
|
46
|
+
const client = net.createConnection(socketPath, () => {
|
|
47
|
+
console.log("connected to server!");
|
|
48
|
+
});
|
|
49
|
+
let generator = null;
|
|
50
|
+
const abortController = new AbortController();
|
|
51
|
+
client.on("end", () => {
|
|
52
|
+
console.log("Disconnected from socket");
|
|
53
|
+
});
|
|
54
|
+
client.on("error", err => {
|
|
55
|
+
var _generator;
|
|
56
|
+
console.error("Child connection error:", err);
|
|
57
|
+
void ((_generator = generator) === null || _generator === void 0 ? void 0 : _generator.throw(err).catch(() => undefined));
|
|
58
|
+
});
|
|
59
|
+
process.on("SIGINT", () => {
|
|
60
|
+
var _generator2;
|
|
61
|
+
console.log("Received SIGINT");
|
|
62
|
+
void ((_generator2 = generator) === null || _generator2 === void 0 ? void 0 : _generator2.throw(new Error("Interrupted")).catch(() => undefined));
|
|
63
|
+
client.end();
|
|
64
|
+
process.exit(1);
|
|
65
|
+
});
|
|
66
|
+
const jsonUnixSocket = new _unixSocket.JSONUnixSocket(client);
|
|
67
|
+
async function runGeneratorAndSendResult(next) {
|
|
68
|
+
if (!generator) return;
|
|
69
|
+
const result = await (0, _asyncLocalStorage.runWithContext)(context, () => generator.next(next));
|
|
70
|
+
if (result.done) {
|
|
71
|
+
const resultToSend = result.value.isOk() ? result.value.value : result.value.error.json;
|
|
72
|
+
const success = result.value.isOk();
|
|
73
|
+
jsonUnixSocket.sendJSON({
|
|
74
|
+
type: "done",
|
|
75
|
+
result: resultToSend,
|
|
76
|
+
success
|
|
77
|
+
});
|
|
78
|
+
return true;
|
|
79
|
+
} else {
|
|
80
|
+
jsonUnixSocket.sendJSON({
|
|
81
|
+
type: "yield",
|
|
82
|
+
result: result.value
|
|
83
|
+
});
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
for await (const data of jsonUnixSocket.receiveJSON()) {
|
|
88
|
+
const inputParseResult = inputSchema.safeParse(data);
|
|
89
|
+
if (!inputParseResult.success) {
|
|
90
|
+
console.error(inputParseResult.error.errors);
|
|
91
|
+
jsonUnixSocket.sendJSON({
|
|
92
|
+
type: "done",
|
|
93
|
+
result: {
|
|
94
|
+
error: "InvalidJSON",
|
|
95
|
+
message: "Invalid input",
|
|
96
|
+
details: {
|
|
97
|
+
errors: inputParseResult.error.errors
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
success: false
|
|
101
|
+
});
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
const input = inputParseResult.data;
|
|
105
|
+
if (input.type === "abort") {
|
|
106
|
+
abortController.abort();
|
|
107
|
+
await (0, _promises.setTimeout)(10);
|
|
108
|
+
jsonUnixSocket.sendJSON({
|
|
109
|
+
type: "done",
|
|
110
|
+
result: null
|
|
111
|
+
});
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
if (input.type === "start") {
|
|
115
|
+
const gen = (0, _runApi.runApiGenerator)({
|
|
116
|
+
...input.parameters,
|
|
117
|
+
abortSignal: abortController.signal
|
|
118
|
+
});
|
|
119
|
+
generator = gen;
|
|
120
|
+
context = {
|
|
121
|
+
extendedPayloads: [],
|
|
122
|
+
runEnvironment: input.parameters.runOptions.environment === "deployed" ? _enums.RunEnvironment.DEPLOYED : _enums.RunEnvironment.IDE,
|
|
123
|
+
timeoutInfo: {
|
|
124
|
+
extendTimeoutCallback: async () => {
|
|
125
|
+
if (Date.now() - timeoutTimestamp < throttleTime) return;
|
|
126
|
+
timeoutTimestamp = Date.now();
|
|
127
|
+
jsonUnixSocket.sendJSON({
|
|
128
|
+
type: "extend"
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
...(input.parameters.context ?? {}),
|
|
133
|
+
proxy: getProxyUrlFromRunOptions(input.parameters.runOptions)
|
|
134
|
+
};
|
|
135
|
+
if (await runGeneratorAndSendResult()) {
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (input.type === "next") {
|
|
141
|
+
if (!generator) {
|
|
142
|
+
throw new Error("generator not started");
|
|
143
|
+
}
|
|
144
|
+
if (await runGeneratorAndSendResult(input.parameters.value)) {
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
process.exit(0);
|
|
151
|
+
});
|
|
152
|
+
_commander.program.parse(process.argv);
|
|
153
|
+
function getProxyUrlFromRunOptions(runOptions) {
|
|
154
|
+
if ((runOptions === null || runOptions === void 0 ? void 0 : runOptions.environment) !== "deployed") return undefined;
|
|
155
|
+
const proxy = runOptions.proxy;
|
|
156
|
+
if (!proxy) return undefined;
|
|
157
|
+
const url = new URL(proxy.server);
|
|
158
|
+
url.username = proxy.username;
|
|
159
|
+
url.password = proxy.password;
|
|
160
|
+
return url.toString();
|
|
161
|
+
}
|