@intuned/runtime-dev 0.0.1-testing.0 → 0.0.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/.vite/deps_temp_01af7156/package.json +3 -0
- package/.vscode/extensions.json +3 -0
- package/.vscode/launch.json +102 -0
- package/.vscode/settings.json +12 -0
- package/WebTemplate/controllers/authSessions/create.ts +1 -1
- package/WebTemplate/controllers/runApi/helpers.ts +3 -1
- package/package.json +3 -3
- package/playwright.config.ts +48 -0
- package/src/commands/api/run.ts +225 -0
- package/src/commands/auth-sessions/load.ts +42 -0
- package/src/commands/auth-sessions/run-check.ts +70 -0
- package/src/commands/auth-sessions/run-create.ts +124 -0
- package/src/commands/browser/save-state.ts +22 -0
- package/src/commands/browser/start-browser.ts +17 -0
- package/src/commands/build.ts +125 -0
- package/src/commands/common/browserUtils.ts +80 -0
- package/src/commands/common/getDefaultExportFromFile.ts +13 -0
- package/{dist/commands/common/getFirstLineNumber.test.js → src/commands/common/getFirstLineNumber.test.ts} +121 -75
- package/src/commands/common/getFirstLineNumber.ts +146 -0
- package/src/commands/common/sendMessageToClient.ts +8 -0
- package/src/commands/common/utils/fileUtils.ts +25 -0
- package/src/commands/common/utils/settings.ts +23 -0
- package/src/commands/common/utils/webTemplate.ts +46 -0
- package/src/commands/testing/saveVisibleHtml.ts +29 -0
- package/src/commands/ts-check.ts +88 -0
- package/src/common/Logger/Logger/index.ts +64 -0
- package/{dist/common/Logger/types.d.ts → src/common/Logger/Logger/types.ts} +5 -4
- package/src/common/Logger/index.ts +64 -0
- package/{dist/common/Logger/Logger/types.d.ts → src/common/Logger/types.ts} +5 -4
- package/src/common/asyncLocalStorage/index.ts +29 -0
- package/src/common/cleanEnvironmentVariables.ts +13 -0
- package/src/common/constants.ts +1 -0
- package/src/common/contextStorageStateHelpers.ts +71 -0
- package/src/common/getPlaywrightConstructs.ts +283 -0
- package/src/common/jwtTokenManager.ts +111 -0
- package/src/common/settingsSchema.ts +16 -0
- package/src/common/telemetry.ts +49 -0
- package/src/index.ts +14 -0
- package/src/runtime/RunError.ts +16 -0
- package/src/runtime/downloadDirectory.ts +14 -0
- package/src/runtime/enums.ts +11 -0
- package/src/runtime/executionHelpers.test.ts +70 -0
- package/src/runtime/extendPayload.ts +22 -0
- package/src/runtime/extendTimeout.ts +32 -0
- package/{dist/runtime/index.d.ts → src/runtime/index.ts} +3 -1
- package/src/runtime/requestMoreInfo.ts +40 -0
- package/src/runtime/runInfo.ts +19 -0
- package/vite.config.ts +17 -0
- package/bin/intuned-api-run +0 -2
- package/bin/intuned-auth-session-check +0 -2
- package/bin/intuned-auth-session-create +0 -2
- package/bin/intuned-auth-session-load +0 -2
- package/bin/intuned-auth-session-refresh +0 -2
- package/bin/intuned-browser-save-state +0 -2
- package/bin/intuned-browser-start +0 -2
- package/bin/intuned-build +0 -2
- package/bin/intuned-ts-check +0 -2
- package/dist/commands/api/run.d.ts +0 -6
- package/dist/commands/api/run.js +0 -135
- package/dist/commands/auth-sessions/load.d.ts +0 -2
- package/dist/commands/auth-sessions/load.js +0 -26
- package/dist/commands/auth-sessions/run-check.d.ts +0 -2
- package/dist/commands/auth-sessions/run-check.js +0 -42
- package/dist/commands/auth-sessions/run-create.d.ts +0 -2
- package/dist/commands/auth-sessions/run-create.js +0 -75
- package/dist/commands/browser/save-state.d.ts +0 -2
- package/dist/commands/browser/save-state.js +0 -17
- package/dist/commands/browser/start-browser.d.ts +0 -2
- package/dist/commands/browser/start-browser.js +0 -14
- package/dist/commands/build.d.ts +0 -2
- package/dist/commands/build.js +0 -80
- package/dist/commands/common/browserUtils.d.ts +0 -14
- package/dist/commands/common/browserUtils.js +0 -58
- package/dist/commands/common/getDefaultExportFromFile.d.ts +0 -1
- package/dist/commands/common/getDefaultExportFromFile.js +0 -19
- package/dist/commands/common/getFirstLineNumber.d.ts +0 -9
- package/dist/commands/common/getFirstLineNumber.js +0 -103
- package/dist/commands/common/sendMessageToClient.d.ts +0 -1
- package/dist/commands/common/sendMessageToClient.js +0 -10
- package/dist/commands/common/utils/fileUtils.d.ts +0 -6
- package/dist/commands/common/utils/fileUtils.js +0 -33
- package/dist/commands/common/utils/settings.d.ts +0 -2
- package/dist/commands/common/utils/settings.js +0 -28
- package/dist/commands/common/utils/webTemplate.d.ts +0 -1
- package/dist/commands/common/utils/webTemplate.js +0 -31
- package/dist/commands/ts-check.d.ts +0 -2
- package/dist/commands/ts-check.js +0 -54
- package/dist/common/Logger/Logger/index.d.ts +0 -12
- package/dist/common/Logger/Logger/index.js +0 -60
- package/dist/common/Logger/Logger/types.js +0 -5
- package/dist/common/Logger/index.d.ts +0 -12
- package/dist/common/Logger/index.js +0 -60
- package/dist/common/Logger/types.js +0 -5
- package/dist/common/asyncLocalStorage/index.d.ts +0 -16
- package/dist/common/asyncLocalStorage/index.js +0 -17
- package/dist/common/cleanEnvironmentVariables.d.ts +0 -1
- package/dist/common/cleanEnvironmentVariables.js +0 -16
- package/dist/common/constants.d.ts +0 -1
- package/dist/common/constants.js +0 -7
- package/dist/common/contextStorageStateHelpers.d.ts +0 -15
- package/dist/common/contextStorageStateHelpers.js +0 -48
- package/dist/common/getPlaywrightConstructs.d.ts +0 -28
- package/dist/common/getPlaywrightConstructs.js +0 -175
- package/dist/common/jwtTokenManager.d.ts +0 -16
- package/dist/common/jwtTokenManager.js +0 -81
- package/dist/common/settingsSchema.d.ts +0 -19
- package/dist/common/settingsSchema.js +0 -17
- package/dist/common/telemetry.d.ts +0 -3
- package/dist/common/telemetry.js +0 -32
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -69
- package/dist/runtime/RunError.d.ts +0 -5
- package/dist/runtime/RunError.js +0 -19
- package/dist/runtime/downloadDirectory.d.ts +0 -1
- package/dist/runtime/downloadDirectory.js +0 -19
- package/dist/runtime/enums.d.js +0 -5
- package/dist/runtime/enums.js +0 -18
- package/dist/runtime/executionHelpers.test.js +0 -53
- package/dist/runtime/export.d.js +0 -5
- package/dist/runtime/extendPayload.d.ts +0 -2
- package/dist/runtime/extendPayload.js +0 -21
- package/dist/runtime/extendTimeout.d.ts +0 -1
- package/dist/runtime/extendTimeout.js +0 -26
- package/dist/runtime/index.js +0 -53
- package/dist/runtime/requestMoreInfo.d.ts +0 -17
- package/dist/runtime/requestMoreInfo.js +0 -25
- package/dist/runtime/runInfo.d.ts +0 -2
- package/dist/runtime/runInfo.js +0 -21
- /package/{dist → src}/common/assets/browser_scripts.js +0 -0
- /package/{dist → src}/runtime/enums.d.ts +0 -0
- /package/{dist → src}/runtime/export.d.ts +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getExecutionContext } from "../common/asyncLocalStorage";
|
|
2
|
+
import { RunInfo } from "./export";
|
|
3
|
+
import { RunType, RunEnvironment } from "./enums";
|
|
4
|
+
|
|
5
|
+
export function runInfo(): RunInfo {
|
|
6
|
+
const context = getExecutionContext();
|
|
7
|
+
|
|
8
|
+
if (!context) {
|
|
9
|
+
return {
|
|
10
|
+
runEnvironment: RunEnvironment.IDE,
|
|
11
|
+
// runType: RunType.SYNC,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//remove extendedPayloads from the user exposed data
|
|
16
|
+
const { extendedPayloads: _extendedPayloads, ...rest } = context;
|
|
17
|
+
|
|
18
|
+
return rest;
|
|
19
|
+
}
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import macros from "vite-plugin-babel-macros"
|
|
3
|
+
require('dotenv').config();
|
|
4
|
+
|
|
5
|
+
export default defineConfig({
|
|
6
|
+
test: {
|
|
7
|
+
reporters: ['verbose', "html"],
|
|
8
|
+
outputFile: { html: './reports/html/index.html' },
|
|
9
|
+
testTimeout: 30000,
|
|
10
|
+
env: {
|
|
11
|
+
RUN_ENVIRONMENT: "AUTHORING",
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
plugins: [
|
|
15
|
+
macros(),
|
|
16
|
+
],
|
|
17
|
+
});
|
package/bin/intuned-api-run
DELETED
package/bin/intuned-build
DELETED
package/bin/intuned-ts-check
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
export declare function executeCLI(apiName: string, mode: "vanilla" | "playwright" | "playwright-standalone" | "playwright-headless", inputData: object | null | undefined, options: {
|
|
3
|
-
cdpAddress: string;
|
|
4
|
-
authSessionPath: undefined | string;
|
|
5
|
-
outputFileId: string | undefined;
|
|
6
|
-
}): Promise<any>;
|
package/dist/commands/api/run.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.executeCLI = executeCLI;
|
|
8
|
-
var _commander = require("commander");
|
|
9
|
-
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
10
|
-
var _getDefaultExportFromFile = require("../common/getDefaultExportFromFile");
|
|
11
|
-
var _fileUtils = require("../common/utils/fileUtils");
|
|
12
|
-
var _settings = require("../common/utils/settings");
|
|
13
|
-
var _getFirstLineNumber = _interopRequireDefault(require("../common/getFirstLineNumber"));
|
|
14
|
-
var _sendMessageToClient = require("../common/sendMessageToClient");
|
|
15
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
16
|
-
var _asyncLocalStorage = require("../../common/asyncLocalStorage");
|
|
17
|
-
var _enums = require("../../runtime/enums");
|
|
18
|
-
var _cleanEnvironmentVariables = require("../../common/cleanEnvironmentVariables");
|
|
19
|
-
var _Logger = require("../../common/Logger");
|
|
20
|
-
var _nanoid = require("nanoid");
|
|
21
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
22
|
-
var _runtime = require("../../runtime");
|
|
23
|
-
var _getPlaywrightConstructs = require("../../common/getPlaywrightConstructs");
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
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); }
|
|
26
|
-
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; }
|
|
27
|
-
_dotenv.default.config({
|
|
28
|
-
path: `.env`
|
|
29
|
-
});
|
|
30
|
-
async function executeCLI(apiName, mode, inputData, options) {
|
|
31
|
-
var _getExecutionContext;
|
|
32
|
-
(0, _cleanEnvironmentVariables.cleanEnvironmentVariables)();
|
|
33
|
-
const apiFilePath = (0, _fileUtils.getFullPathInProject)("api", `${apiName}.ts`);
|
|
34
|
-
let authSessionPathToUse = null;
|
|
35
|
-
const settings = await (0, _settings.getSettings)();
|
|
36
|
-
if (settings.authSessions.enabled) {
|
|
37
|
-
if (!options.authSessionPath) {
|
|
38
|
-
throw new Error("Auth session is enabled but no auth session provided");
|
|
39
|
-
}
|
|
40
|
-
authSessionPathToUse = options.authSessionPath;
|
|
41
|
-
} else {
|
|
42
|
-
if (options.authSessionPath) {
|
|
43
|
-
throw new Error("Auth session is not enabled but auth session provided. To use auth session please enable it in Intuned.json");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const defaultExport = await (0, _getDefaultExportFromFile.getDefaultExportFromFile)(apiFilePath);
|
|
47
|
-
const isDebug = process.execArgv.some(arg => arg.includes("--inspect"));
|
|
48
|
-
if (isDebug) {
|
|
49
|
-
const {
|
|
50
|
-
sourceFileName,
|
|
51
|
-
lineNumber
|
|
52
|
-
} = await (0, _getFirstLineNumber.default)(apiFilePath);
|
|
53
|
-
(0, _sendMessageToClient.sendBreakPointOnToClient)(sourceFileName, lineNumber);
|
|
54
|
-
}
|
|
55
|
-
if (mode === "vanilla") {
|
|
56
|
-
const result = await defaultExport(inputData);
|
|
57
|
-
return result;
|
|
58
|
-
}
|
|
59
|
-
const {
|
|
60
|
-
page,
|
|
61
|
-
context
|
|
62
|
-
} = await (0, _getPlaywrightConstructs.getPlaywrightConstructsForMode)(mode, options.cdpAddress, authSessionPathToUse ? authSessionPathToUse : undefined);
|
|
63
|
-
let isPageStable = false;
|
|
64
|
-
let retry = 0;
|
|
65
|
-
while (!isPageStable && retry < 10) {
|
|
66
|
-
try {
|
|
67
|
-
await page.locator("html").all();
|
|
68
|
-
isPageStable = true;
|
|
69
|
-
break;
|
|
70
|
-
} catch (error) {
|
|
71
|
-
var _error$message;
|
|
72
|
-
if (error !== null && error !== void 0 && (_error$message = error.message) !== null && _error$message !== void 0 && _error$message.includes("Execution context was destroyed")) {
|
|
73
|
-
await new Promise(resolve => setTimeout(resolve, 200));
|
|
74
|
-
} else {
|
|
75
|
-
throw error;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
retry++;
|
|
79
|
-
}
|
|
80
|
-
if (!isPageStable) {
|
|
81
|
-
throw new Error("The page is not stable, try to run again.");
|
|
82
|
-
}
|
|
83
|
-
const result = await defaultExport(inputData, page, context);
|
|
84
|
-
const downloadsPath = (0, _runtime.getDownloadDirectoryPath)();
|
|
85
|
-
await fs.remove(downloadsPath);
|
|
86
|
-
if (mode == "playwright") {
|
|
87
|
-
await context.close();
|
|
88
|
-
}
|
|
89
|
-
const isResponseObject = typeof result === "object" && result !== null;
|
|
90
|
-
const hasMoreThank5Keys = isResponseObject && Object.keys(result).length > 5;
|
|
91
|
-
const hasNestedObjects = isResponseObject && Object.values(result).some(value => typeof value === "object");
|
|
92
|
-
const shouldWriteToFile = isResponseObject && (hasMoreThank5Keys || hasNestedObjects);
|
|
93
|
-
const resultsDir = "/tmp/run-results";
|
|
94
|
-
if (options.outputFileId && shouldWriteToFile) {
|
|
95
|
-
_Logger.logger.info(_chalk.default.underline.bgBlue.white(`Click to Open: Results saved (Run: ${options.outputFileId})`));
|
|
96
|
-
fs.ensureDirSync(resultsDir);
|
|
97
|
-
const path = `${resultsDir}/${options.outputFileId}.json`;
|
|
98
|
-
await fs.writeJson(path, result, {
|
|
99
|
-
spaces: 2
|
|
100
|
-
});
|
|
101
|
-
} else {
|
|
102
|
-
console.log("result:", result);
|
|
103
|
-
}
|
|
104
|
-
const payloadToAppend = (_getExecutionContext = (0, _asyncLocalStorage.getExecutionContext)()) === null || _getExecutionContext === void 0 ? void 0 : _getExecutionContext.extendedPayloads;
|
|
105
|
-
const hasPayloadToAppend = payloadToAppend && payloadToAppend.length > 0;
|
|
106
|
-
if (hasPayloadToAppend && options.outputFileId) {
|
|
107
|
-
_Logger.logger.info(_chalk.default.underline.bgBlue.white(`Click to Open: payloads to append (Run: ${options.outputFileId})`));
|
|
108
|
-
fs.ensureDirSync(resultsDir);
|
|
109
|
-
const path = `${resultsDir}/${options.outputFileId}-payloads-to-append.json`;
|
|
110
|
-
await fs.writeJson(path, payloadToAppend, {
|
|
111
|
-
spaces: 2
|
|
112
|
-
});
|
|
113
|
-
} else if (hasPayloadToAppend) {
|
|
114
|
-
_Logger.logger.info("payload to append:", payloadToAppend);
|
|
115
|
-
_Logger.logger.info("This will only take an effect if this API run was part of a job.");
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
_commander.program.description("run the user function in the cli for testing purposes").option("-i, --input [file]", "input json file").option("-j, --json [json]", "input json string").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "auth session to use when executing the api").option("--outputFileId <outputFileId>", "the output file id to save the result in").option("--proxy <proxy>", "proxy to use").argument("[apiName]", "name of the api", "default").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone", "playwright-headless"]).default("playwright-standalone").argOptional()).action(async (apiName, mode, options) => {
|
|
119
|
-
let inputData = null;
|
|
120
|
-
if (options.input) {
|
|
121
|
-
inputData = await fs.readJSON(options.input);
|
|
122
|
-
} else if (options.json) {
|
|
123
|
-
inputData = JSON.parse(options.json);
|
|
124
|
-
} else {
|
|
125
|
-
inputData = {};
|
|
126
|
-
}
|
|
127
|
-
await (0, _asyncLocalStorage.runWithContext)({
|
|
128
|
-
runEnvironment: _enums.RunEnvironment.IDE,
|
|
129
|
-
extendedPayloads: [],
|
|
130
|
-
runId: (0, _nanoid.nanoid)(),
|
|
131
|
-
proxy: options.proxy
|
|
132
|
-
}, () => executeCLI(apiName, mode, inputData, options));
|
|
133
|
-
process.exit(0);
|
|
134
|
-
});
|
|
135
|
-
_commander.program.parse(process.argv);
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = require("commander");
|
|
5
|
-
var _getPlaywrightConstructs = require("../../common/getPlaywrightConstructs");
|
|
6
|
-
var _settings = require("../common/utils/settings");
|
|
7
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
_dotenv.default.config({
|
|
10
|
-
path: `.env`
|
|
11
|
-
});
|
|
12
|
-
_commander.program.description("load auth session to browser").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "auth session to use when executing the api").allowUnknownOption().action(async ({
|
|
13
|
-
cdpAddress,
|
|
14
|
-
authSessionPath
|
|
15
|
-
}) => {
|
|
16
|
-
const setting = await (0, _settings.getSettings)();
|
|
17
|
-
if (!setting.authSessions.enabled) {
|
|
18
|
-
throw new Error("Auth session is not enabled");
|
|
19
|
-
}
|
|
20
|
-
const {
|
|
21
|
-
context
|
|
22
|
-
} = await (0, _getPlaywrightConstructs.getRemotePlaywrightContext)(cdpAddress);
|
|
23
|
-
await (0, _getPlaywrightConstructs.loadAuthSessionToContext)(context, authSessionPath);
|
|
24
|
-
process.exit(0);
|
|
25
|
-
});
|
|
26
|
-
_commander.program.parse(process.argv);
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = require("commander");
|
|
5
|
-
var _getDefaultExportFromFile = require("../common/getDefaultExportFromFile");
|
|
6
|
-
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
7
|
-
var _fileUtils = require("../common/utils/fileUtils");
|
|
8
|
-
var _settings = require("../common/utils/settings");
|
|
9
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
10
|
-
var _constants = require("../../common/constants");
|
|
11
|
-
var _getPlaywrightConstructs = require("../../common/getPlaywrightConstructs");
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
-
_dotenv.default.config({
|
|
16
|
-
path: `.env`
|
|
17
|
-
});
|
|
18
|
-
_commander.program.description("run auth session check").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "auth session to use when executing the check").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone"]).default("playwright-standalone").argOptional()).action(async (mode, {
|
|
19
|
-
cdpAddress,
|
|
20
|
-
authSessionPath
|
|
21
|
-
}) => {
|
|
22
|
-
const setting = await (0, _settings.getSettings)();
|
|
23
|
-
if (!setting.authSessions.enabled) {
|
|
24
|
-
throw new Error("auth session is not enabled");
|
|
25
|
-
}
|
|
26
|
-
const checkFilePath = (0, _fileUtils.getFullPathInProject)(_constants.AUTH_SESSIONS_FOLDER_NAME, "check.ts");
|
|
27
|
-
if (!fs.exists(checkFilePath)) {
|
|
28
|
-
throw new Error("auth session check file not found");
|
|
29
|
-
}
|
|
30
|
-
const defaultExport = await (0, _getDefaultExportFromFile.getDefaultExportFromFile)(checkFilePath);
|
|
31
|
-
const {
|
|
32
|
-
page,
|
|
33
|
-
context
|
|
34
|
-
} = await (0, _getPlaywrightConstructs.getPlaywrightConstructsForMode)(mode, cdpAddress, authSessionPath);
|
|
35
|
-
const result = await defaultExport(page, context);
|
|
36
|
-
console.log("check result", result);
|
|
37
|
-
if (!result) {
|
|
38
|
-
throw new Error("auth session check failed");
|
|
39
|
-
}
|
|
40
|
-
process.exit(0);
|
|
41
|
-
});
|
|
42
|
-
_commander.program.parse(process.argv);
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = require("commander");
|
|
5
|
-
var _getDefaultExportFromFile = require("../common/getDefaultExportFromFile");
|
|
6
|
-
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
7
|
-
var _browserUtils = require("../common/browserUtils");
|
|
8
|
-
var _promptly = require("promptly");
|
|
9
|
-
var _fileUtils = require("../common/utils/fileUtils");
|
|
10
|
-
var _settings = require("../common/utils/settings");
|
|
11
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
12
|
-
var _constants = require("../../common/constants");
|
|
13
|
-
var _getPlaywrightConstructs = require("../../common/getPlaywrightConstructs");
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
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); }
|
|
16
|
-
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; }
|
|
17
|
-
_dotenv.default.config({
|
|
18
|
-
path: `.env`
|
|
19
|
-
});
|
|
20
|
-
_commander.program.description("run auth session create").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("-i, --input [file]", "input json file").option("-j, --json [json]", "input json string").option("--authSessionPath <authSession>", "auth session to use when executing the api").option("--pathToSave <pathToSave>", "path to save the auth session, if not provided, will discard the auth session").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone"]).default("playwright-standalone").argOptional()).action(async (mode, {
|
|
21
|
-
cdpAddress,
|
|
22
|
-
pathToSave,
|
|
23
|
-
input,
|
|
24
|
-
json
|
|
25
|
-
}) => {
|
|
26
|
-
let inputData = null;
|
|
27
|
-
if (input) {
|
|
28
|
-
inputData = await fs.readJSON(input);
|
|
29
|
-
} else if (json) {
|
|
30
|
-
inputData = JSON.parse(json);
|
|
31
|
-
} else {
|
|
32
|
-
inputData = {};
|
|
33
|
-
}
|
|
34
|
-
const setting = await (0, _settings.getSettings)();
|
|
35
|
-
if (!setting.authSessions.enabled) {
|
|
36
|
-
throw new Error("auth sessions feature is not enabled");
|
|
37
|
-
}
|
|
38
|
-
const createFilePath = (0, _fileUtils.getFullPathInProject)(_constants.AUTH_SESSIONS_FOLDER_NAME, "create.ts");
|
|
39
|
-
if (!fs.exists(createFilePath)) {
|
|
40
|
-
throw new Error("auth session create file not found");
|
|
41
|
-
}
|
|
42
|
-
const defaultExport = await (0, _getDefaultExportFromFile.getDefaultExportFromFile)(createFilePath);
|
|
43
|
-
const {
|
|
44
|
-
page,
|
|
45
|
-
context
|
|
46
|
-
} = await (0, _getPlaywrightConstructs.getPlaywrightConstructsForMode)(mode, cdpAddress);
|
|
47
|
-
const generator = await defaultExport(inputData, page, context, false);
|
|
48
|
-
let nextGeneratorParam = undefined;
|
|
49
|
-
while (true) {
|
|
50
|
-
const {
|
|
51
|
-
value,
|
|
52
|
-
done
|
|
53
|
-
} = await generator.next(nextGeneratorParam);
|
|
54
|
-
if (done) {
|
|
55
|
-
if (pathToSave) {
|
|
56
|
-
await (0, _browserUtils.saveSession)(pathToSave, context);
|
|
57
|
-
}
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
if (value.action === "request_more_info" && value.requestType == "multiple_choice") {
|
|
61
|
-
nextGeneratorParam = await (0, _promptly.prompt)(value.messageToUser + `, choices: ${value.choices}`, {
|
|
62
|
-
validator: input => {
|
|
63
|
-
if (!value.choices.includes(input)) {
|
|
64
|
-
throw new Error("Please type on of the allowed choices");
|
|
65
|
-
}
|
|
66
|
-
return input;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
} else if (value.action === "request_more_info" && value.requestType == "otp") {
|
|
70
|
-
nextGeneratorParam = await (0, _promptly.prompt)(value.messageToUser, {});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
process.exit(0);
|
|
74
|
-
});
|
|
75
|
-
_commander.program.parse(process.argv);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = require("commander");
|
|
5
|
-
var _browserUtils = require("../common/browserUtils");
|
|
6
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
7
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
_dotenv.default.config({
|
|
9
|
-
path: `.env`
|
|
10
|
-
});
|
|
11
|
-
_commander.program.description("save browser state to file storage.json").option("-p, --path [file]", "path for file", "./localSessions/default.json").allowUnknownOption().action(async ({
|
|
12
|
-
path
|
|
13
|
-
}) => {
|
|
14
|
-
await (0, _browserUtils.saveSessionFromOpenedBrowser)(path);
|
|
15
|
-
process.exit(0);
|
|
16
|
-
});
|
|
17
|
-
_commander.program.parse(process.argv);
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = require("commander");
|
|
5
|
-
var _browserUtils = require("../common/browserUtils");
|
|
6
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
7
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
_dotenv.default.config({
|
|
9
|
-
path: `.env`
|
|
10
|
-
});
|
|
11
|
-
_commander.program.description("start browser testing purposes").allowUnknownOption().action(async () => {
|
|
12
|
-
await (0, _browserUtils.startOrRestartBrowser)();
|
|
13
|
-
});
|
|
14
|
-
_commander.program.parse(process.argv);
|
package/dist/commands/build.d.ts
DELETED
package/dist/commands/build.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = require("commander");
|
|
5
|
-
var _rollup = require("rollup");
|
|
6
|
-
var _pluginTypescript = _interopRequireDefault(require("@rollup/plugin-typescript"));
|
|
7
|
-
var _pluginCommonjs = _interopRequireDefault(require("@rollup/plugin-commonjs"));
|
|
8
|
-
var _pluginNodeResolve = require("@rollup/plugin-node-resolve");
|
|
9
|
-
var _pluginDynamicImportVars = _interopRequireDefault(require("@rollup/plugin-dynamic-import-vars"));
|
|
10
|
-
var _pluginJson = _interopRequireDefault(require("@rollup/plugin-json"));
|
|
11
|
-
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
12
|
-
var path = _interopRequireWildcard(require("path"));
|
|
13
|
-
var _webTemplate = require("./common/utils/webTemplate");
|
|
14
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
15
|
-
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); }
|
|
16
|
-
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; }
|
|
17
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
-
function isThirdPartyWarning(warning) {
|
|
19
|
-
if (warning.id && /node_modules/.test(warning.id)) return true;
|
|
20
|
-
if (warning.ids && warning.ids.every(id => /node_modules/.test(id))) return true;
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
_dotenv.default.config();
|
|
24
|
-
_commander.program.description("build the intuned server").addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright"]).default("playwright").argOptional()).argument("[outfile]", "output bundle", "./output/bundle_v2.js").allowUnknownOption().action(async (mode, outfile) => {
|
|
25
|
-
await (0, _webTemplate.moveWebTemplateFiles)();
|
|
26
|
-
const currentTemplateTsConfig = path.resolve(__dirname, "..", "..", "template.tsconfig.json");
|
|
27
|
-
await fs.copy(currentTemplateTsConfig, "./intuned/WebTemplate/tsconfig.json");
|
|
28
|
-
await build(outfile, mode);
|
|
29
|
-
});
|
|
30
|
-
async function build(outfile, mode) {
|
|
31
|
-
let bundle = null;
|
|
32
|
-
let buildFailed = false;
|
|
33
|
-
try {
|
|
34
|
-
bundle = await (0, _rollup.rollup)({
|
|
35
|
-
input: `./intuned/WebTemplate/index.${mode}.ts`,
|
|
36
|
-
output: {
|
|
37
|
-
globals: {
|
|
38
|
-
crypto: "crypto"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
plugins: [(0, _pluginJson.default)(), (0, _pluginNodeResolve.nodeResolve)({
|
|
42
|
-
exportConditions: ["node"],
|
|
43
|
-
preferBuiltins: true
|
|
44
|
-
}), (0, _pluginTypescript.default)({
|
|
45
|
-
tsconfig: "./intuned/WebTemplate/tsconfig.json"
|
|
46
|
-
}), (0, _pluginCommonjs.default)({
|
|
47
|
-
include: ["node_modules/**", "intuned/WebTemplate/**", "dist", "../typescript-sdk/**", "../typescript-runtime/**"],
|
|
48
|
-
extensions: [".js"],
|
|
49
|
-
ignoreGlobal: false,
|
|
50
|
-
sourceMap: false
|
|
51
|
-
}), (0, _pluginDynamicImportVars.default)({
|
|
52
|
-
include: ["**/*.js", "**/*.ts"],
|
|
53
|
-
exclude: ["**/*.d.ts", "**/*.js.map"]
|
|
54
|
-
})],
|
|
55
|
-
onwarn: (warning, warn) => {
|
|
56
|
-
if (isThirdPartyWarning(warning)) return;
|
|
57
|
-
warn(warning);
|
|
58
|
-
},
|
|
59
|
-
external: ["@intuned/playwright", "@intuned/playwright-core", "jsdom", "canvas", "pdfjs-dist", "pdf-to-png-converter", "crypto", "applicationinsights", "fingerprint-generator", "fingerprint-injector"]
|
|
60
|
-
});
|
|
61
|
-
console.log(`📦 Building ${outfile}`);
|
|
62
|
-
const outfileFolder = path.dirname(outfile);
|
|
63
|
-
const assetsDir = path.resolve(__dirname, "..", "common", "assets");
|
|
64
|
-
await fs.copy(assetsDir, `${outfileFolder}/assets`);
|
|
65
|
-
await bundle.write({
|
|
66
|
-
format: "cjs",
|
|
67
|
-
file: outfile,
|
|
68
|
-
inlineDynamicImports: true
|
|
69
|
-
});
|
|
70
|
-
console.log(`✨ Build succeeded: ${outfile}`);
|
|
71
|
-
} catch (error) {
|
|
72
|
-
buildFailed = true;
|
|
73
|
-
console.error("error", error);
|
|
74
|
-
}
|
|
75
|
-
if (buildFailed) {
|
|
76
|
-
console.error("build failed");
|
|
77
|
-
process.exit(1);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
_commander.program.parse(process.argv);
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BrowserContext } from "@intuned/playwright-core";
|
|
2
|
-
export declare const REMOTE_DEBUGGING_PORT = 9222;
|
|
3
|
-
export declare const getChromiumLaunchArgs: () => string[];
|
|
4
|
-
export declare function startOrRestartBrowser(): Promise<void>;
|
|
5
|
-
export interface SessionState {
|
|
6
|
-
cookies: any[];
|
|
7
|
-
storage: Record<string, {
|
|
8
|
-
localStorage: any;
|
|
9
|
-
sessionStorage: any;
|
|
10
|
-
}>;
|
|
11
|
-
}
|
|
12
|
-
export declare function saveSessionFromOpenedBrowser(path: string): Promise<void>;
|
|
13
|
-
export declare function loadState(path: string, context: BrowserContext): Promise<void>;
|
|
14
|
-
export declare function saveSession(path: string, context: BrowserContext): Promise<void>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getChromiumLaunchArgs = exports.REMOTE_DEBUGGING_PORT = void 0;
|
|
7
|
-
exports.loadState = loadState;
|
|
8
|
-
exports.saveSession = saveSession;
|
|
9
|
-
exports.saveSessionFromOpenedBrowser = saveSessionFromOpenedBrowser;
|
|
10
|
-
exports.startOrRestartBrowser = startOrRestartBrowser;
|
|
11
|
-
var _child_process = require("child_process");
|
|
12
|
-
var playwright = _interopRequireWildcard(require("@intuned/playwright-core"));
|
|
13
|
-
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
14
|
-
var _fileUtils = require("./utils/fileUtils");
|
|
15
|
-
var _contextStorageStateHelpers = require("../../common/contextStorageStateHelpers");
|
|
16
|
-
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); }
|
|
17
|
-
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; }
|
|
18
|
-
const REMOTE_DEBUGGING_PORT = exports.REMOTE_DEBUGGING_PORT = 9222;
|
|
19
|
-
const getChromiumLaunchArgs = () => ["--no-sandbox", `--remote-debugging-port=${REMOTE_DEBUGGING_PORT}`, `--user-data-dir=/tmp/${Date.now()}`, "--new-window", "--start-maximized", "--disable-popup-blocking"];
|
|
20
|
-
exports.getChromiumLaunchArgs = getChromiumLaunchArgs;
|
|
21
|
-
async function getBrowser() {
|
|
22
|
-
let playwrightBrowser = null;
|
|
23
|
-
try {
|
|
24
|
-
playwrightBrowser = await playwright.chromium.connectOverCDP(`http://localhost:${REMOTE_DEBUGGING_PORT}`);
|
|
25
|
-
} catch (e) {
|
|
26
|
-
throw new Error("Browser is not running");
|
|
27
|
-
}
|
|
28
|
-
return playwrightBrowser;
|
|
29
|
-
}
|
|
30
|
-
async function startOrRestartBrowser() {
|
|
31
|
-
const chromiumPath = await playwright.chromium.executablePath();
|
|
32
|
-
const chromeInstanceProcess = (0, _child_process.spawn)(chromiumPath, getChromiumLaunchArgs());
|
|
33
|
-
chromeInstanceProcess.stdout.on("data", data => {
|
|
34
|
-
console.log(`Chrome stdout: ${data}`);
|
|
35
|
-
});
|
|
36
|
-
chromeInstanceProcess.stderr.on("data", data => {
|
|
37
|
-
console.error(`Chrome stderr: ${data}`);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
async function saveSessionFromOpenedBrowser(path) {
|
|
41
|
-
const browser = await getBrowser();
|
|
42
|
-
const context = await browser.contexts()[0];
|
|
43
|
-
return saveSession(path, context);
|
|
44
|
-
}
|
|
45
|
-
async function loadState(path, context) {
|
|
46
|
-
const fullPath = (0, _fileUtils.getFullPathInProject)(path);
|
|
47
|
-
if (!(await fs.pathExists(fullPath))) {
|
|
48
|
-
throw new Error("session file does not exist");
|
|
49
|
-
}
|
|
50
|
-
const data = await fs.readJson(fullPath);
|
|
51
|
-
await context.addCookies(data.cookies);
|
|
52
|
-
}
|
|
53
|
-
async function saveSession(path, context) {
|
|
54
|
-
const fullState = await (0, _contextStorageStateHelpers.getContextStorageState)(context);
|
|
55
|
-
const fullPath = (0, _fileUtils.getFullPathInProject)(path);
|
|
56
|
-
fs.ensureFileSync(fullPath);
|
|
57
|
-
await fs.writeJSON(fullPath, fullState);
|
|
58
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getDefaultExportFromFile(apiFilePath: string): Promise<any>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getDefaultExportFromFile = getDefaultExportFromFile;
|
|
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
|
-
async function getDefaultExportFromFile(apiFilePath) {
|
|
10
|
-
require("ts-node").register({
|
|
11
|
-
transpileOnly: true,
|
|
12
|
-
compilerOptions: {
|
|
13
|
-
lib: ["dom", "es2020"]
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
const imported = await (specifier => new Promise(r => r(`${specifier}`)).then(s => _interopRequireWildcard(require(s))))(apiFilePath);
|
|
17
|
-
const defaultExport = imported.default;
|
|
18
|
-
return defaultExport;
|
|
19
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SourceFile } from "ts-morph";
|
|
2
|
-
export declare function findFirstExecutableLine(sourceFile: SourceFile): -1 | {
|
|
3
|
-
line: number;
|
|
4
|
-
column: number;
|
|
5
|
-
};
|
|
6
|
-
export default function getFirstLineNumber(apiFilePath: string): Promise<{
|
|
7
|
-
sourceFileName: string;
|
|
8
|
-
lineNumber: number;
|
|
9
|
-
}>;
|