@intuned/runtime-dev 1.0.4-stuck.1 → 1.0.6-cli-auth.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/InterfaceTemplate/utils.ts +53 -31
- package/bin/cli-build +3 -0
- package/bin/create-auth-session +3 -0
- package/bin/deploy +3 -0
- package/bin/init +3 -0
- package/bin/run-api +3 -0
- package/dist/commands/api/run.js +2 -2
- package/dist/commands/auth-sessions/load.js +1 -1
- package/dist/commands/auth-sessions/run-check.js +2 -2
- package/dist/commands/auth-sessions/run-create.js +2 -2
- package/dist/commands/browser/save-state.js +1 -1
- package/dist/commands/browser/start-browser.js +1 -1
- package/dist/commands/build.js +4 -4
- package/dist/commands/cli-auth-sessions/check.d.ts +0 -0
- package/dist/commands/cli-auth-sessions/check.js +1 -0
- package/dist/commands/cli-auth-sessions/create.d.ts +2 -0
- package/dist/commands/cli-auth-sessions/create.js +28 -0
- package/dist/commands/cli-auth-sessions/utils.d.ts +4 -0
- package/dist/commands/cli-auth-sessions/utils.js +55 -0
- package/dist/commands/cli-build/cli-build.d.ts +2 -0
- package/dist/commands/cli-build/cli-build.js +20 -0
- package/dist/commands/common/browserUtils.d.ts +1 -1
- package/dist/commands/common/browserUtils.js +3 -3
- package/dist/commands/common/getFirstLineNumber.test.js +2 -2
- package/dist/commands/common/projectExclusions.d.ts +2 -0
- package/dist/commands/common/projectExclusions.js +8 -0
- package/dist/commands/common/tsNodeImport.d.ts +2 -1
- package/dist/commands/common/tsNodeImport.js +20 -6
- package/dist/commands/common/utils/fileUtils.js +2 -2
- package/dist/commands/common/utils/settings.js +1 -1
- package/dist/commands/common/utils/template.d.ts +1 -1
- package/dist/commands/common/utils/template.js +1 -1
- package/dist/commands/deploy/deploy.d.ts +2 -0
- package/dist/commands/deploy/deploy.js +47 -0
- package/dist/commands/deploy/utils.d.ts +16 -0
- package/dist/commands/deploy/utils.js +350 -0
- package/dist/commands/init/init.d.ts +2 -0
- package/dist/commands/init/init.js +22 -0
- package/dist/commands/init/utils.d.ts +9 -0
- package/dist/commands/init/utils.js +179 -0
- package/dist/commands/interface/run.js +141 -94
- package/dist/commands/run-api-cli/run-api.d.ts +2 -0
- package/dist/commands/run-api-cli/run-api.js +48 -0
- package/dist/commands/run-api-cli/utils.d.ts +10 -0
- package/dist/commands/run-api-cli/utils.js +98 -0
- package/dist/commands/ts-check.js +2 -2
- package/dist/common/Logger/Logger/index.js +1 -1
- package/dist/common/Logger/index.js +1 -1
- package/dist/common/asyncLocalStorage/index.d.ts +1 -1
- package/dist/common/asyncLocalStorage/index.js +2 -2
- package/dist/common/cli/cliReadme.d.ts +1 -0
- package/dist/common/cli/cliReadme.js +69 -0
- package/dist/common/cli/constants.d.ts +24 -0
- package/dist/common/cli/constants.js +30 -0
- package/dist/common/cli/types.d.ts +52 -0
- package/dist/common/cli/types.js +7 -0
- package/dist/common/cli/utils.d.ts +6 -0
- package/dist/common/cli/utils.js +35 -0
- package/dist/common/contextStorageStateHelpers.d.ts +20 -13
- package/dist/common/contextStorageStateHelpers.js +69 -42
- package/dist/common/getPlaywrightConstructs.d.ts +1 -1
- package/dist/common/getPlaywrightConstructs.js +5 -5
- package/dist/common/jwtTokenManager.js +2 -2
- package/dist/common/runApi/errors.d.ts +0 -11
- package/dist/common/runApi/errors.js +2 -41
- package/dist/common/runApi/index.d.ts +2 -1
- package/dist/common/runApi/index.js +11 -4
- package/dist/common/runApi/types.d.ts +82 -76
- package/dist/common/runApi/types.js +1 -1
- package/dist/common/settingsSchema.js +1 -1
- package/dist/common/telemetry.js +1 -1
- package/package.json +14 -6
- package/WebTemplate/accessKeyHelpers.ts +0 -28
- package/WebTemplate/api.ts +0 -139
- package/WebTemplate/app.ts +0 -18
- package/WebTemplate/controllers/async.ts +0 -142
- package/WebTemplate/controllers/authSessions/check.ts +0 -61
- package/WebTemplate/controllers/authSessions/create.ts +0 -101
- package/WebTemplate/controllers/authSessions/index.ts +0 -41
- package/WebTemplate/controllers/authSessions/killOperation.ts +0 -35
- package/WebTemplate/controllers/authSessions/resumeOperation.ts +0 -56
- package/WebTemplate/controllers/authSessions/store.ts +0 -19
- package/WebTemplate/controllers/controllers.ts +0 -73
- package/WebTemplate/controllers/runApi/helpers.ts +0 -128
- package/WebTemplate/controllers/runApi/index.ts +0 -68
- package/WebTemplate/controllers/runApi/types.ts +0 -13
- package/WebTemplate/controllers/traces.ts +0 -151
- package/WebTemplate/features.ts +0 -8
- package/WebTemplate/headers.ts +0 -6
- package/WebTemplate/index.playwright.ts +0 -47
- package/WebTemplate/index.vanilla.ts +0 -26
- package/WebTemplate/jobs.ts +0 -356
- package/WebTemplate/shutdown.ts +0 -64
- package/WebTemplate/utils.ts +0 -257
- package/WebTemplate.zip +0 -0
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ImportFunction } from "@intuned/runtime/dist/common/runApi";
|
|
2
|
+
import { err, ok } from "neverthrow";
|
|
3
|
+
|
|
4
|
+
export const importModule: ImportFunction = async (path: string) => {
|
|
2
5
|
const [folderName, ...functionNameParts] = path.split("/");
|
|
3
6
|
const functionNameDepth = functionNameParts.length;
|
|
4
7
|
|
|
@@ -6,34 +9,53 @@ export async function importModule(path: string) {
|
|
|
6
9
|
// currently we support only 5 levels of depth
|
|
7
10
|
// rollup dynamic import does not support multiple levels of dynamic imports so we need to specify the possible paths explicitly
|
|
8
11
|
let imported: any = undefined;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
12
|
+
try {
|
|
13
|
+
switch (functionNameDepth) {
|
|
14
|
+
case 1:
|
|
15
|
+
imported = await import(`./${folderName}/${functionNameParts[0]}.ts`);
|
|
16
|
+
break;
|
|
17
|
+
case 2:
|
|
18
|
+
imported = await import(
|
|
19
|
+
`./${folderName}/${functionNameParts[0]}/${functionNameParts[1]}.ts`
|
|
20
|
+
);
|
|
21
|
+
break;
|
|
22
|
+
case 3:
|
|
23
|
+
imported = await import(
|
|
24
|
+
`./${folderName}/${functionNameParts[0]}/${functionNameParts[1]}/${functionNameParts[2]}.ts`
|
|
25
|
+
);
|
|
26
|
+
break;
|
|
27
|
+
case 4:
|
|
28
|
+
imported = await import(
|
|
29
|
+
`./${folderName}/${functionNameParts[0]}/${functionNameParts[1]}/${functionNameParts[2]}/${functionNameParts[3]}.ts`
|
|
30
|
+
);
|
|
31
|
+
break;
|
|
32
|
+
case 5:
|
|
33
|
+
imported = await import(
|
|
34
|
+
`./${folderName}/${functionNameParts[0]}/${functionNameParts[1]}/${functionNameParts[2]}/${functionNameParts[3]}/${functionNameParts[4]}.ts`
|
|
35
|
+
);
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
return err({
|
|
39
|
+
type: "other",
|
|
40
|
+
error: new Error(
|
|
41
|
+
`intuned supports maximum 5 levels of depth in the api folder`
|
|
42
|
+
),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return ok(imported);
|
|
46
|
+
} catch (e: any) {
|
|
47
|
+
if (
|
|
48
|
+
"message" in e &&
|
|
49
|
+
typeof e.message === "string" &&
|
|
50
|
+
e.message.includes("Unknown variable dynamic import")
|
|
51
|
+
) {
|
|
52
|
+
return err({
|
|
53
|
+
type: "not_found",
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return err({
|
|
57
|
+
type: "other",
|
|
58
|
+
error: e,
|
|
59
|
+
});
|
|
37
60
|
}
|
|
38
|
-
|
|
39
|
-
}
|
|
61
|
+
};
|
package/bin/cli-build
ADDED
package/bin/deploy
ADDED
package/bin/init
ADDED
package/bin/run-api
ADDED
package/dist/commands/api/run.js
CHANGED
|
@@ -17,9 +17,9 @@ var _nanoid = require("nanoid");
|
|
|
17
17
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
18
18
|
var _runApi = require("../../common/runApi");
|
|
19
19
|
var _tsNodeImport = require("../common/tsNodeImport");
|
|
20
|
-
function _interopRequireDefault(
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
21
|
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); }
|
|
22
|
-
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 &&
|
|
22
|
+
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 && {}.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; }
|
|
23
23
|
_dotenv.default.config({
|
|
24
24
|
path: `.env`
|
|
25
25
|
});
|
|
@@ -5,7 +5,7 @@ var _commander = require("commander");
|
|
|
5
5
|
var _getPlaywrightConstructs = require("../../common/getPlaywrightConstructs");
|
|
6
6
|
var _settings = require("../common/utils/settings");
|
|
7
7
|
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
_dotenv.default.config({
|
|
10
10
|
path: `.env`
|
|
11
11
|
});
|
|
@@ -9,9 +9,9 @@ var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
|
9
9
|
var _constants = require("../../common/constants");
|
|
10
10
|
var _runApi = require("../../common/runApi");
|
|
11
11
|
var _tsNodeImport = require("../common/tsNodeImport");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
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 &&
|
|
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 && {}.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
15
|
_dotenv.default.config({
|
|
16
16
|
path: `.env`
|
|
17
17
|
});
|
|
@@ -13,9 +13,9 @@ var _asyncLocalStorage = require("../../common/asyncLocalStorage");
|
|
|
13
13
|
var _nanoid = require("nanoid");
|
|
14
14
|
var _enums = require("../../runtime/enums");
|
|
15
15
|
var _tsNodeImport = require("../common/tsNodeImport");
|
|
16
|
-
function _interopRequireDefault(
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
17
|
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); }
|
|
18
|
-
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 &&
|
|
18
|
+
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 && {}.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; }
|
|
19
19
|
_dotenv.default.config({
|
|
20
20
|
path: `.env`
|
|
21
21
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
var _commander = require("commander");
|
|
5
5
|
var _browserUtils = require("../common/browserUtils");
|
|
6
6
|
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
7
|
-
function _interopRequireDefault(
|
|
7
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
8
|
_dotenv.default.config({
|
|
9
9
|
path: `.env`
|
|
10
10
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
var _commander = require("commander");
|
|
5
5
|
var _browserUtils = require("../common/browserUtils");
|
|
6
6
|
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
7
|
-
function _interopRequireDefault(
|
|
7
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
8
|
_dotenv.default.config({
|
|
9
9
|
path: `.env`
|
|
10
10
|
});
|
package/dist/commands/build.js
CHANGED
|
@@ -12,15 +12,15 @@ var path = _interopRequireWildcard(require("path"));
|
|
|
12
12
|
var _template = require("./common/utils/template");
|
|
13
13
|
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
14
14
|
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); }
|
|
15
|
-
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 &&
|
|
16
|
-
function _interopRequireDefault(
|
|
15
|
+
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 && {}.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; }
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
17
|
function isThirdPartyWarning(warning) {
|
|
18
18
|
if (warning.id && /node_modules/.test(warning.id)) return true;
|
|
19
19
|
if (warning.ids && warning.ids.every(id => /node_modules/.test(id))) return true;
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
22
|
_dotenv.default.config();
|
|
23
|
-
_commander.program.description("build the intuned server").option("-t, --template <type>", "template to use", "
|
|
23
|
+
_commander.program.description("build the intuned server").option("-t, --template <type>", "template to use", "InterfaceTemplate").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, {
|
|
24
24
|
template
|
|
25
25
|
}) => {
|
|
26
26
|
await (0, _template.moveTemplateFiles)(template);
|
|
@@ -60,7 +60,7 @@ async function build(outfile, mode, template) {
|
|
|
60
60
|
if (isThirdPartyWarning(warning)) return;
|
|
61
61
|
warn(warning);
|
|
62
62
|
},
|
|
63
|
-
external: ["
|
|
63
|
+
external: ["playwright", "playwright-core", "jsdom", "canvas", "pdfjs-dist", "pdf-to-png-converter", "crypto", "applicationinsights", "fingerprint-generator", "fingerprint-injector", "node-fetch"]
|
|
64
64
|
});
|
|
65
65
|
console.log(`📦 Building ${outfile}`);
|
|
66
66
|
const outfileFolder = path.dirname(outfile);
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _commander = require("commander");
|
|
5
|
+
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
6
|
+
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
7
|
+
var _path = _interopRequireDefault(require("path"));
|
|
8
|
+
var _utils = require("./utils");
|
|
9
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
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); }
|
|
12
|
+
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 && {}.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; }
|
|
13
|
+
_dotenv.default.config({
|
|
14
|
+
path: `.env`
|
|
15
|
+
});
|
|
16
|
+
_commander.program.description("Create an auth session").option("-i, --input <input>", "Auth session input parameters file").action(async options => {
|
|
17
|
+
let authSessionInput = {};
|
|
18
|
+
if (options.input) {
|
|
19
|
+
const authSessionInputFile = options.input;
|
|
20
|
+
const authSessionInputPath = _path.default.join(process.cwd(), authSessionInputFile);
|
|
21
|
+
authSessionInput = await fs.readJSON(authSessionInputPath);
|
|
22
|
+
}
|
|
23
|
+
const session = (0, _utils.runCreateApi)(authSessionInput);
|
|
24
|
+
console.log(_chalk.default.green("Auth session created successfully!"));
|
|
25
|
+
console.log(_chalk.default.blue("Session details:"));
|
|
26
|
+
console.log(_chalk.default.blue(JSON.stringify(session, null, 2)));
|
|
27
|
+
});
|
|
28
|
+
_commander.program.parse(process.argv);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { StorageState } from "../../common/contextStorageStateHelpers";
|
|
2
|
+
export declare function isAuthEnabled(): Promise<boolean>;
|
|
3
|
+
export declare function ensureCreateApi(): Promise<boolean>;
|
|
4
|
+
export declare function runCreateApi(authSessionInput: Record<string, any>): Promise<StorageState | null>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ensureCreateApi = ensureCreateApi;
|
|
7
|
+
exports.isAuthEnabled = isAuthEnabled;
|
|
8
|
+
exports.runCreateApi = runCreateApi;
|
|
9
|
+
var _path = _interopRequireDefault(require("path"));
|
|
10
|
+
var _constants = require("../../common/constants");
|
|
11
|
+
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
12
|
+
var _utils = require("../run-api-cli/utils");
|
|
13
|
+
var _asyncLocalStorage = require("../../common/asyncLocalStorage");
|
|
14
|
+
var _enums = require("../../runtime/enums");
|
|
15
|
+
var _nanoid = require("nanoid");
|
|
16
|
+
var _runApi = require("../../common/runApi");
|
|
17
|
+
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); }
|
|
18
|
+
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 && {}.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; }
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
async function isAuthEnabled() {
|
|
21
|
+
try {
|
|
22
|
+
var _intunedJson$authSess;
|
|
23
|
+
const intunedJson = await fs.readJSON(_path.default.join(process.cwd(), "Intuned.json"));
|
|
24
|
+
return Boolean(intunedJson === null || intunedJson === void 0 || (_intunedJson$authSess = intunedJson.authSessions) === null || _intunedJson$authSess === void 0 ? void 0 : _intunedJson$authSess.enabled);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function ensureCreateApi() {
|
|
30
|
+
const createApiFile = `${_constants.AUTH_SESSIONS_FOLDER_NAME}/create.ts`;
|
|
31
|
+
const createApiFilePath = _path.default.join(process.cwd(), createApiFile);
|
|
32
|
+
return await fs.exists(createApiFilePath);
|
|
33
|
+
}
|
|
34
|
+
async function runCreateApi(authSessionInput) {
|
|
35
|
+
try {
|
|
36
|
+
const createApiName = `${_constants.AUTH_SESSIONS_FOLDER_NAME}/create`;
|
|
37
|
+
const createApiRunId = (0, _nanoid.nanoid)();
|
|
38
|
+
const runCreateResult = await (0, _asyncLocalStorage.runWithContext)({
|
|
39
|
+
runEnvironment: _enums.RunEnvironment.IDE,
|
|
40
|
+
extendedPayloads: [],
|
|
41
|
+
runId: createApiRunId
|
|
42
|
+
}, () => (0, _utils.runApiViaCLI)(createApiName, authSessionInput, {
|
|
43
|
+
retrieveSession: true
|
|
44
|
+
}));
|
|
45
|
+
if (runCreateResult.result.isErr()) {
|
|
46
|
+
throw new _runApi.AutomationError(runCreateResult.result.error);
|
|
47
|
+
}
|
|
48
|
+
if (!runCreateResult.session) {
|
|
49
|
+
throw new Error(`Auth session not retrieved in the result. Please check the create API.`);
|
|
50
|
+
}
|
|
51
|
+
return runCreateResult.session;
|
|
52
|
+
} catch (error) {
|
|
53
|
+
throw new Error(`Error running the create API: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _commander = require("commander");
|
|
5
|
+
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
6
|
+
var _utils = require("../deploy/utils");
|
|
7
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
_dotenv.default.config({
|
|
9
|
+
path: `.env`
|
|
10
|
+
});
|
|
11
|
+
_commander.program.name("intuned-build-project").description("Build your current Intuned project").action(async () => {
|
|
12
|
+
try {
|
|
13
|
+
await (0, _utils.runBuild)();
|
|
14
|
+
} catch (error) {
|
|
15
|
+
process.exit(1);
|
|
16
|
+
} finally {
|
|
17
|
+
process.exit(0);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
_commander.program.parse(process.argv);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BrowserContext } from "
|
|
1
|
+
import { BrowserContext } from "playwright-core";
|
|
2
2
|
export declare const REMOTE_DEBUGGING_PORT = 9222;
|
|
3
3
|
export declare const getChromiumLaunchArgs: () => string[];
|
|
4
4
|
export declare function startOrRestartBrowser(): Promise<void>;
|
|
@@ -9,12 +9,12 @@ exports.saveSession = saveSession;
|
|
|
9
9
|
exports.saveSessionFromOpenedBrowser = saveSessionFromOpenedBrowser;
|
|
10
10
|
exports.startOrRestartBrowser = startOrRestartBrowser;
|
|
11
11
|
var _child_process = require("child_process");
|
|
12
|
-
var playwright = _interopRequireWildcard(require("
|
|
12
|
+
var playwright = _interopRequireWildcard(require("playwright-core"));
|
|
13
13
|
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
14
14
|
var _fileUtils = require("./utils/fileUtils");
|
|
15
15
|
var _contextStorageStateHelpers = require("../../common/contextStorageStateHelpers");
|
|
16
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 &&
|
|
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 && {}.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
18
|
const REMOTE_DEBUGGING_PORT = exports.REMOTE_DEBUGGING_PORT = 9222;
|
|
19
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
20
|
exports.getChromiumLaunchArgs = getChromiumLaunchArgs;
|
|
@@ -51,7 +51,7 @@ async function loadState(path, context) {
|
|
|
51
51
|
await context.addCookies(data.cookies);
|
|
52
52
|
}
|
|
53
53
|
async function saveSession(path, context) {
|
|
54
|
-
const fullState = await (0, _contextStorageStateHelpers.
|
|
54
|
+
const fullState = await (0, _contextStorageStateHelpers.getStorageState)(context);
|
|
55
55
|
const fullPath = (0, _fileUtils.getFullPathInProject)(path);
|
|
56
56
|
fs.ensureFileSync(fullPath);
|
|
57
57
|
await fs.writeJSON(fullPath, fullState);
|
|
@@ -5,8 +5,8 @@ var _getFirstLineNumber = _interopRequireDefault(require("./getFirstLineNumber")
|
|
|
5
5
|
var fs = _interopRequireWildcard(require("fs"));
|
|
6
6
|
var path = _interopRequireWildcard(require("path"));
|
|
7
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 &&
|
|
9
|
-
function _interopRequireDefault(
|
|
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 && {}.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(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
(0, _vitest.describe)("getFirstLineNumber", () => {
|
|
11
11
|
const testFilesDir = path.join(__dirname, "testFiles");
|
|
12
12
|
const createTestFile = (fileName, content) => {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
const exclusions = ["node_modules/**", ".git/**", "dist/**", "build/**", "coverage/**", ".next/**", ".cache/**", "out/**", "tmp/**", ".DS_Store", "npm-debug.log*", "yarn-debug.log*", "yarn-error.log*", ".env", ".env.*", "**/*.map", "**/*.tsbuildinfo", "tsconfig.json", "parameters/**", "output/**", "README.md"];
|
|
8
|
+
var _default = exports.default = exclusions;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ExtendedRunApiParameters } from "../../common/runApi/types";
|
|
2
|
+
export declare const tsNodeImport: ExtendedRunApiParameters["importFunction"];
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.tsNodeImport =
|
|
6
|
+
exports.tsNodeImport = void 0;
|
|
7
|
+
var _neverthrow = require("neverthrow");
|
|
7
8
|
var _fileUtils = require("./utils/fileUtils");
|
|
8
9
|
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); }
|
|
9
|
-
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 &&
|
|
10
|
-
async
|
|
10
|
+
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 && {}.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; }
|
|
11
|
+
const tsNodeImport = async apiName => {
|
|
11
12
|
require("ts-node").register({
|
|
12
13
|
transpileOnly: true,
|
|
13
14
|
compilerOptions: {
|
|
@@ -15,6 +16,19 @@ async function tsNodeImport(apiName) {
|
|
|
15
16
|
}
|
|
16
17
|
});
|
|
17
18
|
const path = (0, _fileUtils.getFullPathInProject)(...apiName.split("/"));
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
try {
|
|
20
|
+
const imported = await (specifier => new Promise(r => r(`${specifier}`)).then(s => _interopRequireWildcard(require(s))))(path);
|
|
21
|
+
return (0, _neverthrow.ok)(imported);
|
|
22
|
+
} catch (e) {
|
|
23
|
+
if ("code" in e && e.code === "MODULE_NOT_FOUND") {
|
|
24
|
+
return (0, _neverthrow.err)({
|
|
25
|
+
type: "not_found"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return (0, _neverthrow.err)({
|
|
29
|
+
type: "other",
|
|
30
|
+
error: e
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.tsNodeImport = tsNodeImport;
|
|
@@ -8,9 +8,9 @@ exports.listProjectFilesAndFolders = listProjectFilesAndFolders;
|
|
|
8
8
|
var path = _interopRequireWildcard(require("path"));
|
|
9
9
|
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
10
10
|
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
11
|
-
function _interopRequireDefault(
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
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 &&
|
|
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 && {}.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
14
|
_dotenv.default.config();
|
|
15
15
|
function getFullPathInProject(...paths) {
|
|
16
16
|
return path.resolve(process.cwd(), process.env.ROOT || "./", ...paths);
|
|
@@ -7,7 +7,7 @@ exports.getSettings = getSettings;
|
|
|
7
7
|
var _fileUtils = require("./fileUtils");
|
|
8
8
|
var _settingsSchema = require("../../../common/settingsSchema");
|
|
9
9
|
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); }
|
|
10
|
-
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 &&
|
|
10
|
+
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 && {}.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; }
|
|
11
11
|
async function getSettings() {
|
|
12
12
|
const settingsFilePath = (0, _fileUtils.getFullPathInProject)("Intuned.json");
|
|
13
13
|
console.log("loading settings");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type TemplateName = "
|
|
1
|
+
export type TemplateName = "InterfaceTemplate";
|
|
2
2
|
export declare const moveTemplateFiles: (templateName: TemplateName) => Promise<void>;
|
|
@@ -8,7 +8,7 @@ var fs = _interopRequireWildcard(require("fs-extra"));
|
|
|
8
8
|
var path = _interopRequireWildcard(require("path"));
|
|
9
9
|
var _fileUtils = require("./fileUtils");
|
|
10
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 &&
|
|
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 && {}.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
12
|
const moveTemplateFiles = async templateName => {
|
|
13
13
|
await fs.remove("./intuned");
|
|
14
14
|
await fs.ensureDir("./intuned");
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _commander = require("commander");
|
|
5
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
6
|
+
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
7
|
+
var _utils = require("./utils");
|
|
8
|
+
var _utils2 = require("../../common/cli/utils");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
_dotenv.default.config({
|
|
11
|
+
path: `.env`
|
|
12
|
+
});
|
|
13
|
+
_commander.program.description("Deploy an Intuned project to be public").argument("[project-name]", "Name of the project to deploy").option("-w, --workspace-id <id>", "Your Intuned workspace ID").option("-k, --api-key <key>", "Your Intuned API key").action(async (projectName, options) => {
|
|
14
|
+
try {
|
|
15
|
+
const {
|
|
16
|
+
isValid,
|
|
17
|
+
errorMessage
|
|
18
|
+
} = await (0, _utils.validateIntunedProject)();
|
|
19
|
+
if (!isValid) {
|
|
20
|
+
const userErrorMesage = `Project to be deployed is not a valid Intuned project: ${errorMessage}, modify and check again`;
|
|
21
|
+
throw new Error(userErrorMesage);
|
|
22
|
+
}
|
|
23
|
+
const _projectName = projectName || (await (0, _utils2.getSettingIntunedJSON)("projectName"));
|
|
24
|
+
if (!_projectName) {
|
|
25
|
+
throw new Error("Project name is required");
|
|
26
|
+
}
|
|
27
|
+
const projectNameValidation = (0, _utils.validateProjectName)(_projectName);
|
|
28
|
+
if (!projectNameValidation.isValid) {
|
|
29
|
+
throw new Error(projectNameValidation.errorMessage);
|
|
30
|
+
}
|
|
31
|
+
const auth = await (0, _utils2.getAuthCredentials)(options);
|
|
32
|
+
const {
|
|
33
|
+
deployDone,
|
|
34
|
+
projectId,
|
|
35
|
+
deployErrorMessage
|
|
36
|
+
} = await (0, _utils.deployProject)(_projectName, auth);
|
|
37
|
+
if (!deployDone) {
|
|
38
|
+
throw new Error(`Project not deployed: ${deployErrorMessage}`);
|
|
39
|
+
}
|
|
40
|
+
const url = (0, _utils2.getBaseUrl)();
|
|
41
|
+
console.log(_chalk.default.green(`\n✅ Project "${_projectName}" deployed successfully!` + `\n\nYou can check your project on the platform: ${_chalk.default.bold(`${url}/projects/${projectId}/details`)}\n`));
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.error(_chalk.default.red(`\n${error.message}`));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
_commander.program.parse(process.argv);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AuthCredentials, FileSystemTree } from "../../common/cli/types";
|
|
2
|
+
export declare function convertProjectToCodeTree(projectPath: string): Promise<FileSystemTree>;
|
|
3
|
+
export declare function deployProject(projectName: string, auth: AuthCredentials): Promise<{
|
|
4
|
+
deployDone: boolean;
|
|
5
|
+
projectId?: string;
|
|
6
|
+
deployErrorMessage?: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const validateProjectName: (projectName: string) => {
|
|
9
|
+
isValid: boolean;
|
|
10
|
+
errorMessage?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const validateIntunedProject: () => Promise<{
|
|
13
|
+
isValid: boolean;
|
|
14
|
+
errorMessage?: string;
|
|
15
|
+
}>;
|
|
16
|
+
export declare const runBuild: () => Promise<boolean>;
|