@vertesia/cli 0.54.0 → 0.55.0
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/lib/agent/commands.d.ts +11 -0
- package/lib/agent/commands.d.ts.map +1 -0
- package/lib/agent/commands.js +173 -0
- package/lib/agent/commands.js.map +1 -0
- package/lib/agent/connect.d.ts +7 -0
- package/lib/agent/connect.d.ts.map +1 -0
- package/lib/agent/connect.js +68 -0
- package/lib/agent/connect.js.map +1 -0
- package/lib/agent/docker-credential.d.ts +2 -0
- package/lib/agent/docker-credential.d.ts.map +1 -0
- package/lib/agent/docker-credential.js +50 -0
- package/lib/agent/docker-credential.js.map +1 -0
- package/lib/agent/docker.d.ts +10 -0
- package/lib/agent/docker.d.ts.map +1 -0
- package/lib/agent/docker.js +93 -0
- package/lib/agent/docker.js.map +1 -0
- package/lib/agent/index.d.ts +3 -0
- package/lib/agent/index.d.ts.map +1 -0
- package/lib/agent/index.js +89 -0
- package/lib/agent/index.js.map +1 -0
- package/lib/agent/project.d.ts +58 -0
- package/lib/agent/project.d.ts.map +1 -0
- package/lib/agent/project.js +148 -0
- package/lib/agent/project.js.map +1 -0
- package/lib/agent/refresh.d.ts +6 -0
- package/lib/agent/refresh.d.ts.map +1 -0
- package/lib/agent/refresh.js +47 -0
- package/lib/agent/refresh.js.map +1 -0
- package/lib/agent/registry.d.ts +7 -0
- package/lib/agent/registry.d.ts.map +1 -0
- package/lib/agent/registry.js +47 -0
- package/lib/agent/registry.js.map +1 -0
- package/lib/agent/version.d.ts +2 -0
- package/lib/agent/version.d.ts.map +1 -0
- package/lib/agent/version.js +4 -0
- package/lib/agent/version.js.map +1 -0
- package/lib/client.d.ts +4 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +22 -0
- package/lib/client.js.map +1 -0
- package/lib/codegen/CodeBuilder.d.ts +16 -0
- package/lib/codegen/CodeBuilder.d.ts.map +1 -0
- package/lib/codegen/CodeBuilder.js +115 -0
- package/lib/codegen/CodeBuilder.js.map +1 -0
- package/lib/codegen/InteractionVersion.d.ts +29 -0
- package/lib/codegen/InteractionVersion.d.ts.map +1 -0
- package/lib/codegen/InteractionVersion.js +94 -0
- package/lib/codegen/InteractionVersion.js.map +1 -0
- package/lib/codegen/index.d.ts +3 -0
- package/lib/codegen/index.d.ts.map +1 -0
- package/lib/codegen/index.js +24 -0
- package/lib/codegen/index.js.map +1 -0
- package/lib/codegen/template.d.ts +3 -0
- package/lib/codegen/template.d.ts.map +1 -0
- package/lib/codegen/template.js +28 -0
- package/lib/codegen/template.js.map +1 -0
- package/lib/codegen/utils.d.ts +2 -0
- package/lib/codegen/utils.d.ts.map +1 -0
- package/lib/codegen/utils.js +4 -0
- package/lib/codegen/utils.js.map +1 -0
- package/lib/datagen/index.d.ts +3 -0
- package/lib/datagen/index.d.ts.map +1 -0
- package/lib/datagen/index.js +80 -0
- package/lib/datagen/index.js.map +1 -0
- package/lib/envs/index.d.ts +3 -0
- package/lib/envs/index.d.ts.map +1 -0
- package/lib/envs/index.js +24 -0
- package/lib/envs/index.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +177 -0
- package/lib/index.js.map +1 -0
- package/lib/interactions/index.d.ts +3 -0
- package/lib/interactions/index.d.ts.map +1 -0
- package/lib/interactions/index.js +37 -0
- package/lib/interactions/index.js.map +1 -0
- package/lib/memory/index.d.ts +3 -0
- package/lib/memory/index.d.ts.map +1 -0
- package/lib/memory/index.js +15 -0
- package/lib/memory/index.js.map +1 -0
- package/lib/objects/commands.d.ts +14 -0
- package/lib/objects/commands.d.ts.map +1 -0
- package/lib/objects/commands.js +239 -0
- package/lib/objects/commands.js.map +1 -0
- package/lib/objects/index.d.ts +3 -0
- package/lib/objects/index.d.ts.map +1 -0
- package/lib/objects/index.js +37 -0
- package/lib/objects/index.js.map +1 -0
- package/lib/package.d.ts +8 -0
- package/lib/package.d.ts.map +1 -0
- package/lib/package.js +63 -0
- package/lib/package.js.map +1 -0
- package/lib/profiles/commands.d.ts +20 -0
- package/lib/profiles/commands.d.ts.map +1 -0
- package/lib/profiles/commands.js +191 -0
- package/lib/profiles/commands.js.map +1 -0
- package/lib/profiles/index.d.ts +65 -0
- package/lib/profiles/index.d.ts.map +1 -0
- package/lib/profiles/index.js +324 -0
- package/lib/profiles/index.js.map +1 -0
- package/lib/profiles/server/cors.d.ts +3 -0
- package/lib/profiles/server/cors.d.ts.map +1 -0
- package/lib/profiles/server/cors.js +18 -0
- package/lib/profiles/server/cors.js.map +1 -0
- package/lib/profiles/server/index.d.ts +12 -0
- package/lib/profiles/server/index.d.ts.map +1 -0
- package/lib/profiles/server/index.js +134 -0
- package/lib/profiles/server/index.js.map +1 -0
- package/lib/profiles/server/server.d.ts +4 -0
- package/lib/profiles/server/server.d.ts.map +1 -0
- package/lib/profiles/server/server.js +32 -0
- package/lib/profiles/server/server.js.map +1 -0
- package/lib/projects/index.d.ts +3 -0
- package/lib/projects/index.d.ts.map +1 -0
- package/lib/projects/index.js +13 -0
- package/lib/projects/index.js.map +1 -0
- package/lib/run/executor.d.ts +22 -0
- package/lib/run/executor.d.ts.map +1 -0
- package/lib/run/executor.js +182 -0
- package/lib/run/executor.js.map +1 -0
- package/lib/run/index.d.ts +3 -0
- package/lib/run/index.d.ts.map +1 -0
- package/lib/run/index.js +192 -0
- package/lib/run/index.js.map +1 -0
- package/lib/runs/index.d.ts +3 -0
- package/lib/runs/index.d.ts.map +1 -0
- package/lib/runs/index.js +48 -0
- package/lib/runs/index.js.map +1 -0
- package/lib/utils/console.d.ts +42 -0
- package/lib/utils/console.d.ts.map +1 -0
- package/lib/utils/console.js +256 -0
- package/lib/utils/console.js.map +1 -0
- package/lib/utils/stdio.d.ts +7 -0
- package/lib/utils/stdio.d.ts.map +1 -0
- package/lib/utils/stdio.js +35 -0
- package/lib/utils/stdio.js.map +1 -0
- package/lib/workflows/commands.d.ts +14 -0
- package/lib/workflows/commands.d.ts.map +1 -0
- package/lib/workflows/commands.js +231 -0
- package/lib/workflows/commands.js.map +1 -0
- package/lib/workflows/index.d.ts +3 -0
- package/lib/workflows/index.d.ts.map +1 -0
- package/lib/workflows/index.js +117 -0
- package/lib/workflows/index.js.map +1 -0
- package/lib/workflows/json-loader.d.ts +3 -0
- package/lib/workflows/json-loader.d.ts.map +1 -0
- package/lib/workflows/json-loader.js +16 -0
- package/lib/workflows/json-loader.js.map +1 -0
- package/lib/workflows/streams.d.ts +2 -0
- package/lib/workflows/streams.d.ts.map +1 -0
- package/lib/workflows/streams.js +419 -0
- package/lib/workflows/streams.js.map +1 -0
- package/lib/workflows/ts-loader.d.ts +3 -0
- package/lib/workflows/ts-loader.d.ts.map +1 -0
- package/lib/workflows/ts-loader.js +94 -0
- package/lib/workflows/ts-loader.js.map +1 -0
- package/lib/workflows/validation.d.ts +6 -0
- package/lib/workflows/validation.d.ts.map +1 -0
- package/lib/workflows/validation.js +22 -0
- package/lib/workflows/validation.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ConfigPayload, ConfigResult } from "./server/index.js";
|
|
2
|
+
import { OnResultCallback } from "./commands.js";
|
|
3
|
+
export declare function getConfigFile(path?: string): string;
|
|
4
|
+
export type ConfigUrlRef = "local" | "staging" | "preview" | "prod" | string;
|
|
5
|
+
export declare function getConfigUrl(value: ConfigUrlRef): string;
|
|
6
|
+
export declare function getServerUrls(value: ConfigUrlRef): {
|
|
7
|
+
studio_server_url: string;
|
|
8
|
+
zeno_server_url: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function getCloudTypeFromConfigUrl(url: string): "staging" | "preview" | "production";
|
|
11
|
+
export interface Profile {
|
|
12
|
+
name: string;
|
|
13
|
+
config_url: string;
|
|
14
|
+
apikey: string;
|
|
15
|
+
account: string;
|
|
16
|
+
project: string;
|
|
17
|
+
studio_server_url: string;
|
|
18
|
+
zeno_server_url: string;
|
|
19
|
+
session_tags?: string;
|
|
20
|
+
}
|
|
21
|
+
interface ProfilesData {
|
|
22
|
+
default: string;
|
|
23
|
+
profiles: Profile[];
|
|
24
|
+
}
|
|
25
|
+
export declare function shouldRefreshProfileToken(profile: Profile, thresholdInSeconds?: number): boolean;
|
|
26
|
+
export declare class ConfigureProfile {
|
|
27
|
+
config: Config;
|
|
28
|
+
data: Partial<Profile>;
|
|
29
|
+
isNew: boolean;
|
|
30
|
+
onResultCallback?: OnResultCallback;
|
|
31
|
+
constructor(config: Config, data: Partial<Profile>, isNew: boolean);
|
|
32
|
+
getConfigPayload(): ConfigPayload;
|
|
33
|
+
applyConfigResult(result: ConfigResult | undefined): Promise<void>;
|
|
34
|
+
start(onResult?: OnResultCallback, signal?: AbortSignal): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
export declare class Config {
|
|
37
|
+
current?: Profile;
|
|
38
|
+
profiles: Profile[];
|
|
39
|
+
isDevMode: boolean;
|
|
40
|
+
constructor(data?: ProfilesData);
|
|
41
|
+
hasProfile(name: string): boolean;
|
|
42
|
+
getProfile(name: string): Profile | undefined;
|
|
43
|
+
use(name: string): this;
|
|
44
|
+
add(profile: Profile): this;
|
|
45
|
+
update(profile: Profile): this;
|
|
46
|
+
replace(existingProfile: Profile, newProfile: Profile): this;
|
|
47
|
+
remove(name: string): this;
|
|
48
|
+
createProfile(name: string, target: ConfigUrlRef): ConfigureProfile;
|
|
49
|
+
updateProfile(name: string): ConfigureProfile;
|
|
50
|
+
createOrUpdateProfile(name: string, target?: ConfigUrlRef): ConfigureProfile;
|
|
51
|
+
save(): this;
|
|
52
|
+
load(): this;
|
|
53
|
+
}
|
|
54
|
+
export declare class ProfileAlreadyExistsError extends Error {
|
|
55
|
+
constructor(message: string);
|
|
56
|
+
}
|
|
57
|
+
export declare class ProfileNotFoundError extends Error {
|
|
58
|
+
constructor(message: string);
|
|
59
|
+
}
|
|
60
|
+
export declare class InvalidConfigUrlError extends Error {
|
|
61
|
+
constructor(message: string);
|
|
62
|
+
}
|
|
63
|
+
declare const config: Config;
|
|
64
|
+
export { config };
|
|
65
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,UAO1C;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7E,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,UAiB/C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY;;;EAqBhD;AACD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,wCAYpD;AAED,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,SAAI,WASjF;AAED,qBAAa,gBAAgB;IAEN,MAAM,EAAE,MAAM;IAAS,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAAS,KAAK,EAAE,OAAO;IADvF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;gBACjB,MAAM,EAAE,MAAM,EAAS,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAS,KAAK,EAAE,OAAO;IAKvF,gBAAgB,IAAI,aAAa;IAQ3B,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS;IA8BlD,KAAK,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW;CAShE;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,UAAS;gBAEN,IAAI,CAAC,EAAE,YAAY;IAO/B,UAAU,CAAC,IAAI,EAAE,MAAM;IAIvB,UAAU,CAAC,IAAI,EAAE,MAAM;IAIvB,GAAG,CAAC,IAAI,EAAE,MAAM;IAShB,GAAG,CAAC,OAAO,EAAE,OAAO;IAUpB,MAAM,CAAC,OAAO,EAAE,OAAO;IAUvB,OAAO,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAQrD,MAAM,CAAC,IAAI,EAAE,MAAM;IAWnB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;IAKhD,aAAa,CAAC,IAAI,EAAE,MAAM;IAQ1B,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,gBAAgB;IAkB5E,IAAI;IAaJ,IAAI;CA0BP;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI9B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI9B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI9B;AAED,QAAA,MAAM,MAAM,QAAsB,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, statSync } from "fs";
|
|
2
|
+
import jwt from 'jsonwebtoken';
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import { join } from "path";
|
|
5
|
+
import { readJsonFile, writeJsonFile } from "../utils/stdio.js";
|
|
6
|
+
import { startConfigSession } from "./server/index.js";
|
|
7
|
+
export function getConfigFile(path) {
|
|
8
|
+
const dir = join(os.homedir(), '.vertesia');
|
|
9
|
+
if (!path || path === '/') {
|
|
10
|
+
return dir;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return join(dir, path);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function getConfigUrl(value) {
|
|
17
|
+
switch (value) {
|
|
18
|
+
case "local":
|
|
19
|
+
return "https://localhost:5173/cli";
|
|
20
|
+
case "staging":
|
|
21
|
+
return "https://staging.cloud.vertesia.io/cli";
|
|
22
|
+
case "preview":
|
|
23
|
+
return "https://preview.cloud.vertesia.io/cli";
|
|
24
|
+
case "prod":
|
|
25
|
+
return "https://cloud.vertesia.io/cli";
|
|
26
|
+
default:
|
|
27
|
+
if (value.startsWith("http://") || value.startsWith("https://")) {
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
throw new InvalidConfigUrlError("Custom targets must be a valid http or https URL.");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const getServiceUrl = (service, env) => `https://${service}-server-${env}.api.vertesia.io`;
|
|
36
|
+
export function getServerUrls(value) {
|
|
37
|
+
switch (value) {
|
|
38
|
+
case "local":
|
|
39
|
+
return {
|
|
40
|
+
studio_server_url: "http://localhost:8091",
|
|
41
|
+
zeno_server_url: "http://localhost:8092",
|
|
42
|
+
};
|
|
43
|
+
case "staging":
|
|
44
|
+
case "preview":
|
|
45
|
+
return {
|
|
46
|
+
studio_server_url: getServiceUrl("studio", value),
|
|
47
|
+
zeno_server_url: getServiceUrl("zeno", value),
|
|
48
|
+
};
|
|
49
|
+
case "prod":
|
|
50
|
+
return {
|
|
51
|
+
studio_server_url: getServiceUrl("studio", "production"),
|
|
52
|
+
zeno_server_url: getServiceUrl("zeno", "production"),
|
|
53
|
+
};
|
|
54
|
+
default:
|
|
55
|
+
throw new Error("Unable to detect server urls from custom target.");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export function getCloudTypeFromConfigUrl(url) {
|
|
59
|
+
if (url.startsWith("https://localhost")) {
|
|
60
|
+
return "staging";
|
|
61
|
+
}
|
|
62
|
+
else if (url.startsWith("https://staging.")) {
|
|
63
|
+
return "staging";
|
|
64
|
+
}
|
|
65
|
+
else if (url.startsWith("https://preview.")) {
|
|
66
|
+
return "preview";
|
|
67
|
+
}
|
|
68
|
+
else if (url.startsWith("https://cloud.")) {
|
|
69
|
+
return "production";
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error("Unknown cloud env type");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function shouldRefreshProfileToken(profile, thresholdInSeconds = 1) {
|
|
76
|
+
if (profile.apikey) {
|
|
77
|
+
const token = jwt.decode(profile.apikey, { json: true });
|
|
78
|
+
if (token && token.exp) {
|
|
79
|
+
return (token.exp - thresholdInSeconds) * 1000 < Date.now();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// if no token or no expiration set then refresh auth token
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
export class ConfigureProfile {
|
|
86
|
+
constructor(config, data, isNew) {
|
|
87
|
+
Object.defineProperty(this, "config", {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
configurable: true,
|
|
90
|
+
writable: true,
|
|
91
|
+
value: config
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(this, "data", {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
configurable: true,
|
|
96
|
+
writable: true,
|
|
97
|
+
value: data
|
|
98
|
+
});
|
|
99
|
+
Object.defineProperty(this, "isNew", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
configurable: true,
|
|
102
|
+
writable: true,
|
|
103
|
+
value: isNew
|
|
104
|
+
});
|
|
105
|
+
Object.defineProperty(this, "onResultCallback", {
|
|
106
|
+
enumerable: true,
|
|
107
|
+
configurable: true,
|
|
108
|
+
writable: true,
|
|
109
|
+
value: void 0
|
|
110
|
+
});
|
|
111
|
+
this.data = data;
|
|
112
|
+
this.isNew = !data.name;
|
|
113
|
+
}
|
|
114
|
+
getConfigPayload() {
|
|
115
|
+
return {
|
|
116
|
+
profile: this.data.name,
|
|
117
|
+
account: this.data.account,
|
|
118
|
+
project: this.data.project,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
async applyConfigResult(result) {
|
|
122
|
+
if (!result) {
|
|
123
|
+
// Handle cancellation or no result
|
|
124
|
+
console.log('\nAuthentication canceled or failed.');
|
|
125
|
+
process.exit(1);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const oldName = this.data.name;
|
|
129
|
+
this.data.name = result.profile;
|
|
130
|
+
this.data.account = result.account;
|
|
131
|
+
this.data.project = result.project;
|
|
132
|
+
this.data.studio_server_url = result.studio_server_url;
|
|
133
|
+
this.data.zeno_server_url = result.zeno_server_url;
|
|
134
|
+
this.data.apikey = result.token;
|
|
135
|
+
this.config.remove(oldName);
|
|
136
|
+
this.config.add(this.data);
|
|
137
|
+
if (this.isNew) {
|
|
138
|
+
this.config.use(this.data.name);
|
|
139
|
+
}
|
|
140
|
+
this.config.save();
|
|
141
|
+
if (this.onResultCallback) {
|
|
142
|
+
await this.onResultCallback(result);
|
|
143
|
+
this.onResultCallback = undefined;
|
|
144
|
+
}
|
|
145
|
+
// force exit to close last prompt
|
|
146
|
+
console.log('\n');
|
|
147
|
+
console.log('Authentication completed.');
|
|
148
|
+
process.exit(0);
|
|
149
|
+
}
|
|
150
|
+
async start(onResult, signal) {
|
|
151
|
+
this.onResultCallback = onResult;
|
|
152
|
+
await startConfigSession(this.data.config_url, this.getConfigPayload(), this.applyConfigResult.bind(this), signal);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
export class Config {
|
|
156
|
+
constructor(data) {
|
|
157
|
+
Object.defineProperty(this, "current", {
|
|
158
|
+
enumerable: true,
|
|
159
|
+
configurable: true,
|
|
160
|
+
writable: true,
|
|
161
|
+
value: void 0
|
|
162
|
+
});
|
|
163
|
+
Object.defineProperty(this, "profiles", {
|
|
164
|
+
enumerable: true,
|
|
165
|
+
configurable: true,
|
|
166
|
+
writable: true,
|
|
167
|
+
value: void 0
|
|
168
|
+
});
|
|
169
|
+
Object.defineProperty(this, "isDevMode", {
|
|
170
|
+
enumerable: true,
|
|
171
|
+
configurable: true,
|
|
172
|
+
writable: true,
|
|
173
|
+
value: false
|
|
174
|
+
});
|
|
175
|
+
this.profiles = data?.profiles || [];
|
|
176
|
+
if (data?.default) {
|
|
177
|
+
this.use(data.default);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
hasProfile(name) {
|
|
181
|
+
return !!this.profiles.find(p => p.name === name);
|
|
182
|
+
}
|
|
183
|
+
getProfile(name) {
|
|
184
|
+
return this.profiles.find(p => p.name === name);
|
|
185
|
+
}
|
|
186
|
+
use(name) {
|
|
187
|
+
this.current = this.profiles.find(p => p.name === name);
|
|
188
|
+
if (!this.current) {
|
|
189
|
+
console.error(`No configuration named ${name} found`);
|
|
190
|
+
process.exit(1);
|
|
191
|
+
}
|
|
192
|
+
return this;
|
|
193
|
+
}
|
|
194
|
+
add(profile) {
|
|
195
|
+
if (this.profiles.find(p => p.name === profile.name)) {
|
|
196
|
+
console.error(`A configuration named ${profile.name} already exists`);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
this.profiles.push(profile);
|
|
200
|
+
}
|
|
201
|
+
this.use(profile.name);
|
|
202
|
+
return this;
|
|
203
|
+
}
|
|
204
|
+
update(profile) {
|
|
205
|
+
const existingProfile = this.profiles.find(p => p.name === profile.name);
|
|
206
|
+
if (existingProfile) {
|
|
207
|
+
Object.assign(existingProfile, profile);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
console.error(`Configuration named ${profile.name} doesn't exists`);
|
|
211
|
+
}
|
|
212
|
+
return this;
|
|
213
|
+
}
|
|
214
|
+
replace(existingProfile, newProfile) {
|
|
215
|
+
const index = this.profiles.indexOf(existingProfile);
|
|
216
|
+
if (index > -1) {
|
|
217
|
+
this.profiles[index] = newProfile;
|
|
218
|
+
}
|
|
219
|
+
return this;
|
|
220
|
+
}
|
|
221
|
+
remove(name) {
|
|
222
|
+
const i = this.profiles.findIndex(p => p.name === name);
|
|
223
|
+
if (i > -1) {
|
|
224
|
+
this.profiles.splice(i, 1);
|
|
225
|
+
if (this.current?.name === name) {
|
|
226
|
+
this.current = undefined;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return this;
|
|
230
|
+
}
|
|
231
|
+
createProfile(name, target) {
|
|
232
|
+
let config_url = getConfigUrl(target);
|
|
233
|
+
return new ConfigureProfile(this, { name, config_url }, true);
|
|
234
|
+
}
|
|
235
|
+
updateProfile(name) {
|
|
236
|
+
const profile = this.getProfile(name);
|
|
237
|
+
if (!profile) {
|
|
238
|
+
throw new ProfileNotFoundError(`Profile not found: ${name}.`);
|
|
239
|
+
}
|
|
240
|
+
return new ConfigureProfile(this, profile, false);
|
|
241
|
+
}
|
|
242
|
+
createOrUpdateProfile(name, target) {
|
|
243
|
+
let config_url = target && getConfigUrl(target);
|
|
244
|
+
const data = this.getProfile(name);
|
|
245
|
+
if (config_url) { // create a new profile on config_url
|
|
246
|
+
if (data) {
|
|
247
|
+
throw new ProfileAlreadyExistsError(`Profile ${name} already exists.`);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
return new ConfigureProfile(this, { name, config_url }, true);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
else { // update an existing profile
|
|
254
|
+
if (data) {
|
|
255
|
+
return new ConfigureProfile(this, data, false);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
throw new ProfileNotFoundError(`Profile not found: ${name}.`);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
save() {
|
|
263
|
+
const dir = getConfigFile();
|
|
264
|
+
if (!existsSync(dir)) {
|
|
265
|
+
mkdirSync(dir, { recursive: true });
|
|
266
|
+
}
|
|
267
|
+
const file = getConfigFile('profiles.json');
|
|
268
|
+
writeJsonFile(file, {
|
|
269
|
+
default: this.current?.name,
|
|
270
|
+
profiles: this.profiles,
|
|
271
|
+
});
|
|
272
|
+
return this;
|
|
273
|
+
}
|
|
274
|
+
load() {
|
|
275
|
+
try {
|
|
276
|
+
const stats = statSync(getConfigFile('dev'));
|
|
277
|
+
if (stats.isFile()) {
|
|
278
|
+
this.isDevMode = true;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
catch (err) {
|
|
282
|
+
if (err.code !== 'ENOENT') {
|
|
283
|
+
throw err;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
const data = readJsonFile(getConfigFile('profiles.json'));
|
|
288
|
+
this.profiles = data.profiles;
|
|
289
|
+
if (data.default) {
|
|
290
|
+
this.use(data.default);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
this.current = undefined;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
if (err.code !== 'ENOENT') {
|
|
298
|
+
throw err;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return this;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
export class ProfileAlreadyExistsError extends Error {
|
|
305
|
+
constructor(message) {
|
|
306
|
+
super(message);
|
|
307
|
+
this.name = 'ProfileAlreadyExistsError';
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
export class ProfileNotFoundError extends Error {
|
|
311
|
+
constructor(message) {
|
|
312
|
+
super(message);
|
|
313
|
+
this.name = 'ProfileNotFoundError';
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
export class InvalidConfigUrlError extends Error {
|
|
317
|
+
constructor(message) {
|
|
318
|
+
super(message);
|
|
319
|
+
this.name = 'InvalidConfigUrlError';
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
const config = new Config().load();
|
|
323
|
+
export { config };
|
|
324
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../src/profiles/server/cors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AASvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,WAUnE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const corsHeaders = {
|
|
2
|
+
'Access-Control-Allow-Origin': '*',
|
|
3
|
+
'Access-Control-Allow-Methods': 'OPTIONS, POST, GET, ',
|
|
4
|
+
'Access-Control-Allow-Headers': 'Content-Type',
|
|
5
|
+
'Access-Control-Max-Age': '86400' // 1 day
|
|
6
|
+
};
|
|
7
|
+
export function handleCors(req, res) {
|
|
8
|
+
if (req.method === 'OPTIONS') {
|
|
9
|
+
res.writeHead(204, corsHeaders);
|
|
10
|
+
res.end();
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
res.writeHead(204, corsHeaders);
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=cors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../../src/profiles/server/cors.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,GAAG;IAChB,6BAA6B,EAAE,GAAG;IAClC,8BAA8B,EAAE,sBAAsB;IACtD,8BAA8B,EAAE,cAAc;IAC9C,wBAAwB,EAAE,OAAO,CAAC,QAAQ;CAC7C,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,GAAoB,EAAE,GAAmB;IAChE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAChC,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AAEjB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ConfigPayload {
|
|
2
|
+
profile?: string;
|
|
3
|
+
account?: string;
|
|
4
|
+
project?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ConfigResult extends Required<ConfigPayload> {
|
|
7
|
+
studio_server_url: string;
|
|
8
|
+
zeno_server_url: string;
|
|
9
|
+
token: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function startConfigSession(config_url: string, payload: ConfigPayload, callback: (response: ConfigResult | undefined) => void, signal?: AbortSignal): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/server/index.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,aAAa,CAAC;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAsB,kBAAkB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,KAAK,IAAI,EACtD,MAAM,CAAC,EAAE,WAAW,iBA2IvB"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { randomInt } from "crypto";
|
|
2
|
+
import enquirer from "enquirer";
|
|
3
|
+
import open from "open";
|
|
4
|
+
import { handleCors } from "./cors.js";
|
|
5
|
+
import { readRequestBody, startServer } from "./server.js";
|
|
6
|
+
const { prompt } = enquirer;
|
|
7
|
+
export async function startConfigSession(config_url, payload, callback, signal) {
|
|
8
|
+
if (!config_url) {
|
|
9
|
+
console.error("You are trying to update a profile without a config_url. Your profile was likely created with a previous version of the cli.");
|
|
10
|
+
console.error("Please, delete the profile and create it again.");
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
// Check if already aborted
|
|
14
|
+
if (signal?.aborted) {
|
|
15
|
+
callback(undefined);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// Handle abort signal
|
|
19
|
+
const onAbort = () => {
|
|
20
|
+
// Clean up and exit
|
|
21
|
+
if (server) {
|
|
22
|
+
server.close();
|
|
23
|
+
}
|
|
24
|
+
callback(undefined);
|
|
25
|
+
};
|
|
26
|
+
if (signal) {
|
|
27
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
28
|
+
}
|
|
29
|
+
const code = randomInt(1000, 9999);
|
|
30
|
+
let server;
|
|
31
|
+
try {
|
|
32
|
+
server = await startServer(async (req, res) => {
|
|
33
|
+
if (handleCors(req, res)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (req.method !== 'POST') {
|
|
37
|
+
res.statusCode = 405;
|
|
38
|
+
res.end();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (req.url !== '/') {
|
|
42
|
+
res.statusCode = 404;
|
|
43
|
+
res.end();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const data = await readRequestBody(req);
|
|
48
|
+
const result = JSON.parse(data);
|
|
49
|
+
res.statusCode = 200;
|
|
50
|
+
res.end();
|
|
51
|
+
// Check if signal is aborted before proceeding
|
|
52
|
+
if (signal?.aborted) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
await callback(result);
|
|
56
|
+
// Clean up signal listener
|
|
57
|
+
if (signal) {
|
|
58
|
+
signal.removeEventListener('abort', onAbort);
|
|
59
|
+
}
|
|
60
|
+
server.close(); // close the server
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
res.statusCode = 500;
|
|
64
|
+
res.end();
|
|
65
|
+
console.error("Error processing request:", error);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
const port = server.address().port;
|
|
69
|
+
const params = new URLSearchParams();
|
|
70
|
+
params.append('redirect_uri', `http://localhost:${port}`);
|
|
71
|
+
params.append('code', String(code));
|
|
72
|
+
if (payload.profile)
|
|
73
|
+
params.append('profile', payload.profile);
|
|
74
|
+
if (payload.account)
|
|
75
|
+
params.append('account', payload.account);
|
|
76
|
+
if (payload.project)
|
|
77
|
+
params.append('project', payload.project);
|
|
78
|
+
const url = `${config_url}?${params.toString()}`;
|
|
79
|
+
console.log("Opening browser to", url);
|
|
80
|
+
open(url);
|
|
81
|
+
console.log(`The session code is ${code}`);
|
|
82
|
+
// Handle manual token entry
|
|
83
|
+
try {
|
|
84
|
+
// Check if already aborted
|
|
85
|
+
if (signal?.aborted) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const answer = await prompt({
|
|
89
|
+
name: 'result',
|
|
90
|
+
type: 'input',
|
|
91
|
+
message: "The browser failed to send the token? Copy the token here",
|
|
92
|
+
});
|
|
93
|
+
// Check if aborted after prompt
|
|
94
|
+
if (signal?.aborted) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const resultText = answer.result?.trim();
|
|
98
|
+
if (resultText) {
|
|
99
|
+
try {
|
|
100
|
+
const result = JSON.parse(answer.result.trim());
|
|
101
|
+
// Clean up signal listener before callback
|
|
102
|
+
if (signal) {
|
|
103
|
+
signal.removeEventListener('abort', onAbort);
|
|
104
|
+
}
|
|
105
|
+
await callback(result);
|
|
106
|
+
console.log('Authentication completed.');
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
console.error("Invalid token");
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
// This could be thrown if the prompt is interrupted
|
|
116
|
+
if (signal?.aborted) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
throw err;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
// Clean up signal listener on error
|
|
124
|
+
if (signal) {
|
|
125
|
+
signal.removeEventListener('abort', onAbort);
|
|
126
|
+
}
|
|
127
|
+
// Only throw if not aborted
|
|
128
|
+
if (!signal?.aborted) {
|
|
129
|
+
throw err;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//startConfigSession("https://localhost:5173/cli", {}, (result: ConfigResult) => console.log("Logged in", result));
|
|
134
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;AAe5B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,UAAkB,EAClB,OAAsB,EACtB,QAAsD,EACtD,MAAoB;IAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,8HAA8H,CAAC,CAAC;QAC9I,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,OAAO;IACX,CAAC;IAED,sBAAsB;IACtB,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,oBAAoB;QACpB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QACD,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,MAAc,CAAC;IAEnB,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1C,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO;YACX,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YACD,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBAClB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;gBAC1C,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,EAAE,CAAC;gBAEV,+CAA+C;gBAC/C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBAClB,OAAO;gBACX,CAAC;gBAED,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAEvB,2BAA2B;gBAC3B,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjD,CAAC;gBAED,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAI,MAAM,CAAC,OAAO,EAAsB,CAAC,IAAI,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAE3C,4BAA4B;QAC5B,IAAI,CAAC;YACD,2BAA2B;YAC3B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAQ,MAAM,MAAM,CAAC;gBAC7B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,2DAA2D;aACvE,CAAC,CAAC;YAEH,gCAAgC;YAChC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,OAAO;YACX,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACzC,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAEhD,2CAA2C;oBAC3C,IAAI,MAAM,EAAE,CAAC;wBACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACjD,CAAC;oBAED,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,oDAAoD;YACpD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,OAAO;YACX,CAAC;YACD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,oCAAoC;QACpC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;AACL,CAAC;AAED,mHAAmH"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Server, ServerResponse, IncomingMessage } from 'http';
|
|
2
|
+
export declare function startServer(cb: (req: IncomingMessage, res: ServerResponse) => void): Promise<Server>;
|
|
3
|
+
export declare function readRequestBody(request: IncomingMessage): Promise<unknown>;
|
|
4
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/profiles/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE7E,wBAAsB,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAe1G;AAGD,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,oBAcvD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createServer } from 'http';
|
|
2
|
+
export async function startServer(cb) {
|
|
3
|
+
const server = createServer(cb);
|
|
4
|
+
const onSigint = () => {
|
|
5
|
+
server.close();
|
|
6
|
+
};
|
|
7
|
+
server.on('close', () => {
|
|
8
|
+
process.off('SIGINT', onSigint);
|
|
9
|
+
});
|
|
10
|
+
process.on('SIGINT', onSigint);
|
|
11
|
+
// start the server on a random unused port
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
server.listen().once('listening', () => resolve(server))
|
|
14
|
+
.once('error', reject);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function readRequestBody(request) {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
const chunks = [];
|
|
20
|
+
let body;
|
|
21
|
+
request.on('data', (chunk) => {
|
|
22
|
+
chunks.push(chunk);
|
|
23
|
+
}).on('end', () => {
|
|
24
|
+
body = Buffer.concat(chunks).toString();
|
|
25
|
+
resolve(body);
|
|
26
|
+
}).on('error', (err) => {
|
|
27
|
+
reject(err);
|
|
28
|
+
});
|
|
29
|
+
;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/profiles/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAmC,MAAM,MAAM,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAuD;IACrF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAA;IACD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/B,2CAA2C;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACnD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,OAAwB;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC;QACT,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACd,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAAA,CAAC;IACR,CAAC,CAAC,CAAC;AAEP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/projects/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAS5C"}
|