@ai-coders/installer 0.3.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/CHANGELOG.md +25 -0
- package/LICENSE +18 -0
- package/README.md +64 -0
- package/dist/callback-page.d.ts +11 -0
- package/dist/callback-page.js +230 -0
- package/dist/callback-page.js.map +1 -0
- package/dist/clerk-auth.d.ts +18 -0
- package/dist/clerk-auth.js +296 -0
- package/dist/clerk-auth.js.map +1 -0
- package/dist/cli-command.d.ts +10 -0
- package/dist/cli-command.js +17 -0
- package/dist/cli-command.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +84 -0
- package/dist/cli.js.map +1 -0
- package/dist/i18n.d.ts +52 -0
- package/dist/i18n.js +163 -0
- package/dist/i18n.js.map +1 -0
- package/dist/product-manifest.d.ts +43 -0
- package/dist/product-manifest.js +140 -0
- package/dist/product-manifest.js.map +1 -0
- package/dist/products/second-brain/apply.d.ts +86 -0
- package/dist/products/second-brain/apply.js +277 -0
- package/dist/products/second-brain/apply.js.map +1 -0
- package/dist/products/second-brain/bearer.d.ts +29 -0
- package/dist/products/second-brain/bearer.js +78 -0
- package/dist/products/second-brain/bearer.js.map +1 -0
- package/dist/products/second-brain/bootstrap.d.ts +33 -0
- package/dist/products/second-brain/bootstrap.js +39 -0
- package/dist/products/second-brain/bootstrap.js.map +1 -0
- package/dist/products/second-brain/envfile.d.ts +35 -0
- package/dist/products/second-brain/envfile.js +136 -0
- package/dist/products/second-brain/envfile.js.map +1 -0
- package/dist/products/second-brain/github.d.ts +77 -0
- package/dist/products/second-brain/github.js +195 -0
- package/dist/products/second-brain/github.js.map +1 -0
- package/dist/products/second-brain/hostinger.d.ts +140 -0
- package/dist/products/second-brain/hostinger.js +607 -0
- package/dist/products/second-brain/hostinger.js.map +1 -0
- package/dist/products/second-brain/i18n.d.ts +887 -0
- package/dist/products/second-brain/i18n.js +587 -0
- package/dist/products/second-brain/i18n.js.map +1 -0
- package/dist/products/second-brain/keys.d.ts +5 -0
- package/dist/products/second-brain/keys.js +16 -0
- package/dist/products/second-brain/keys.js.map +1 -0
- package/dist/products/second-brain/main.d.ts +3 -0
- package/dist/products/second-brain/main.js +78 -0
- package/dist/products/second-brain/main.js.map +1 -0
- package/dist/products/second-brain/ports.d.ts +34 -0
- package/dist/products/second-brain/ports.js +77 -0
- package/dist/products/second-brain/ports.js.map +1 -0
- package/dist/products/second-brain/recovery.d.ts +50 -0
- package/dist/products/second-brain/recovery.js +96 -0
- package/dist/products/second-brain/recovery.js.map +1 -0
- package/dist/products/second-brain/sealed-box.d.ts +1 -0
- package/dist/products/second-brain/sealed-box.js +11 -0
- package/dist/products/second-brain/sealed-box.js.map +1 -0
- package/dist/products/second-brain/server.d.ts +143 -0
- package/dist/products/second-brain/server.js +280 -0
- package/dist/products/second-brain/server.js.map +1 -0
- package/dist/products/second-brain/service.d.ts +26 -0
- package/dist/products/second-brain/service.js +806 -0
- package/dist/products/second-brain/service.js.map +1 -0
- package/dist/products/second-brain/ssh.d.ts +35 -0
- package/dist/products/second-brain/ssh.js +140 -0
- package/dist/products/second-brain/ssh.js.map +1 -0
- package/dist/products/second-brain/state.d.ts +27 -0
- package/dist/products/second-brain/state.js +60 -0
- package/dist/products/second-brain/state.js.map +1 -0
- package/dist/products/second-brain/ui/assets/index-BoXpakUt.css +2 -0
- package/dist/products/second-brain/ui/assets/index-MgfOpW_R.js +66 -0
- package/dist/products/second-brain/ui/index.html +15 -0
- package/dist/products/second-brain/verify.d.ts +23 -0
- package/dist/products/second-brain/verify.js +59 -0
- package/dist/products/second-brain/verify.js.map +1 -0
- package/dist/products/severino/apply.d.ts +87 -0
- package/dist/products/severino/apply.js +250 -0
- package/dist/products/severino/apply.js.map +1 -0
- package/dist/products/severino/domain.d.ts +6 -0
- package/dist/products/severino/domain.js +20 -0
- package/dist/products/severino/domain.js.map +1 -0
- package/dist/products/severino/envfile.d.ts +20 -0
- package/dist/products/severino/envfile.js +89 -0
- package/dist/products/severino/envfile.js.map +1 -0
- package/dist/products/severino/github.d.ts +77 -0
- package/dist/products/severino/github.js +195 -0
- package/dist/products/severino/github.js.map +1 -0
- package/dist/products/severino/hostinger.d.ts +140 -0
- package/dist/products/severino/hostinger.js +607 -0
- package/dist/products/severino/hostinger.js.map +1 -0
- package/dist/products/severino/i18n.d.ts +887 -0
- package/dist/products/severino/i18n.js +587 -0
- package/dist/products/severino/i18n.js.map +1 -0
- package/dist/products/severino/keys.d.ts +5 -0
- package/dist/products/severino/keys.js +16 -0
- package/dist/products/severino/keys.js.map +1 -0
- package/dist/products/severino/main.d.ts +3 -0
- package/dist/products/severino/main.js +78 -0
- package/dist/products/severino/main.js.map +1 -0
- package/dist/products/severino/recovery.d.ts +50 -0
- package/dist/products/severino/recovery.js +96 -0
- package/dist/products/severino/recovery.js.map +1 -0
- package/dist/products/severino/sealed-box.d.ts +1 -0
- package/dist/products/severino/sealed-box.js +11 -0
- package/dist/products/severino/sealed-box.js.map +1 -0
- package/dist/products/severino/server.d.ts +123 -0
- package/dist/products/severino/server.js +274 -0
- package/dist/products/severino/server.js.map +1 -0
- package/dist/products/severino/service.d.ts +28 -0
- package/dist/products/severino/service.js +752 -0
- package/dist/products/severino/service.js.map +1 -0
- package/dist/products/severino/slack-manifest.d.ts +3 -0
- package/dist/products/severino/slack-manifest.js +45 -0
- package/dist/products/severino/slack-manifest.js.map +1 -0
- package/dist/products/severino/ssh.d.ts +35 -0
- package/dist/products/severino/ssh.js +140 -0
- package/dist/products/severino/ssh.js.map +1 -0
- package/dist/products/severino/state.d.ts +26 -0
- package/dist/products/severino/state.js +61 -0
- package/dist/products/severino/state.js.map +1 -0
- package/dist/products/severino/ui/assets/index-7S8Hl4jq.js +96 -0
- package/dist/products/severino/ui/assets/index-D5kql1Bh.css +2 -0
- package/dist/products/severino/ui/index.html +15 -0
- package/dist/products/severino/verify.d.ts +22 -0
- package/dist/products/severino/verify.js +149 -0
- package/dist/products/severino/verify.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../packages/severino/src/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack app manifest for a VPS install. Generated from the chosen public
|
|
3
|
+
* hostname so Event Subscriptions and Interactivity hit this agent, not a
|
|
4
|
+
* leftover Vercel Connect destination.
|
|
5
|
+
*/
|
|
6
|
+
import { normalizeDomain } from "./domain.js";
|
|
7
|
+
export const slackRequestPath = "/eve/v1/slack";
|
|
8
|
+
export function slackRequestUrl(domain) {
|
|
9
|
+
return `https://${normalizeDomain(domain)}${slackRequestPath}`;
|
|
10
|
+
}
|
|
11
|
+
export function buildSlackAppManifest(domain) {
|
|
12
|
+
const requestUrl = slackRequestUrl(domain);
|
|
13
|
+
return `display_information:
|
|
14
|
+
name: Severino
|
|
15
|
+
description: Task-execution assistant on your VPS.
|
|
16
|
+
background_color: "#070707"
|
|
17
|
+
features:
|
|
18
|
+
bot_user:
|
|
19
|
+
display_name: Severino
|
|
20
|
+
always_online: true
|
|
21
|
+
oauth_config:
|
|
22
|
+
scopes:
|
|
23
|
+
bot:
|
|
24
|
+
- app_mentions:read
|
|
25
|
+
- chat:write
|
|
26
|
+
- channels:history
|
|
27
|
+
- groups:history
|
|
28
|
+
- im:history
|
|
29
|
+
- im:read
|
|
30
|
+
- im:write
|
|
31
|
+
settings:
|
|
32
|
+
event_subscriptions:
|
|
33
|
+
request_url: ${requestUrl}
|
|
34
|
+
bot_events:
|
|
35
|
+
- app_mention
|
|
36
|
+
- message.im
|
|
37
|
+
interactivity:
|
|
38
|
+
is_enabled: true
|
|
39
|
+
request_url: ${requestUrl}
|
|
40
|
+
org_deploy_enabled: false
|
|
41
|
+
socket_mode_enabled: false
|
|
42
|
+
token_rotation_enabled: false
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=slack-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-manifest.js","sourceRoot":"","sources":["../../../packages/severino/src/slack-manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEhD,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,WAAW,eAAe,CAAC,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO;;;;;;;;;;;;;;;;;;;;mBAoBU,UAAU;;;;;;mBAMV,UAAU;;;;CAI5B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare function shellQuote(value: string): string;
|
|
2
|
+
export declare function buildAuthorizedKeysCommand(publicKey: string): string;
|
|
3
|
+
export type SshCredentials = {
|
|
4
|
+
readonly host: string;
|
|
5
|
+
readonly port: number;
|
|
6
|
+
readonly username: string;
|
|
7
|
+
readonly auth: {
|
|
8
|
+
readonly kind: "password";
|
|
9
|
+
readonly password: string;
|
|
10
|
+
} | {
|
|
11
|
+
readonly kind: "key";
|
|
12
|
+
readonly privateKey: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export interface SshCommandResult {
|
|
16
|
+
readonly code: number;
|
|
17
|
+
readonly stdout: string;
|
|
18
|
+
readonly stderr: string;
|
|
19
|
+
}
|
|
20
|
+
export declare class SshSession {
|
|
21
|
+
private readonly client;
|
|
22
|
+
private constructor();
|
|
23
|
+
static connect(credentials: SshCredentials): Promise<SshSession>;
|
|
24
|
+
/**
|
|
25
|
+
* Runs one remote command. `input` is written to the command's standard
|
|
26
|
+
* input and the stream is then closed, which is how a secret reaches the
|
|
27
|
+
* remote process without ever appearing in the command line. Commands that
|
|
28
|
+
* pass no input keep the stream untouched, as before.
|
|
29
|
+
*/
|
|
30
|
+
exec(command: string, input?: string): Promise<SshCommandResult>;
|
|
31
|
+
private sftp;
|
|
32
|
+
readFileIfExists(path: string): Promise<string | null>;
|
|
33
|
+
writeFile(path: string, content: string | Buffer, mode?: number): Promise<void>;
|
|
34
|
+
close(): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSH access for the installer. The pure helpers (quoting, authorized_keys
|
|
3
|
+
* command) are unit-tested; SshSession is a thin ssh2 wrapper verified only
|
|
4
|
+
* end-to-end against a real VPS.
|
|
5
|
+
*/
|
|
6
|
+
import ssh2 from "ssh2";
|
|
7
|
+
export function shellQuote(value) {
|
|
8
|
+
if (value.includes("\0") || value.includes("\n") || value.includes("\r")) {
|
|
9
|
+
throw new Error("The value must not contain line breaks.");
|
|
10
|
+
}
|
|
11
|
+
return `'${value.replaceAll("'", `'\\''`)}'`;
|
|
12
|
+
}
|
|
13
|
+
export function buildAuthorizedKeysCommand(publicKey) {
|
|
14
|
+
const key = shellQuote(publicKey.trim());
|
|
15
|
+
return [
|
|
16
|
+
"mkdir -p ~/.ssh",
|
|
17
|
+
"chmod 700 ~/.ssh",
|
|
18
|
+
"touch ~/.ssh/authorized_keys",
|
|
19
|
+
`grep -qxF ${key} ~/.ssh/authorized_keys || printf '%s\\n' ${key} >> ~/.ssh/authorized_keys`,
|
|
20
|
+
"chmod 600 ~/.ssh/authorized_keys",
|
|
21
|
+
].join(" && ");
|
|
22
|
+
}
|
|
23
|
+
export class SshSession {
|
|
24
|
+
client;
|
|
25
|
+
constructor(client) {
|
|
26
|
+
this.client = client;
|
|
27
|
+
}
|
|
28
|
+
static connect(credentials) {
|
|
29
|
+
const client = new ssh2.Client();
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
client.on("ready", () => resolve(new SshSession(client)));
|
|
32
|
+
client.on("error", (error) => {
|
|
33
|
+
const message = String(error.message ?? error);
|
|
34
|
+
if (/authentication/i.test(message)) {
|
|
35
|
+
reject(new Error("The server refused the credentials."));
|
|
36
|
+
}
|
|
37
|
+
else if (/ECONNREFUSED|EHOSTUNREACH|ENOTFOUND|ETIMEDOUT|timed? ?out/i.test(message)) {
|
|
38
|
+
reject(new Error("The server could not be reached."));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
reject(new Error(`SSH connection failed: ${message}`));
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
client.connect({
|
|
45
|
+
host: credentials.host,
|
|
46
|
+
port: credentials.port,
|
|
47
|
+
username: credentials.username,
|
|
48
|
+
readyTimeout: 15_000,
|
|
49
|
+
keepaliveInterval: 10_000,
|
|
50
|
+
...(credentials.auth.kind === "password"
|
|
51
|
+
? { password: credentials.auth.password }
|
|
52
|
+
: { privateKey: credentials.auth.privateKey }),
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Runs one remote command. `input` is written to the command's standard
|
|
58
|
+
* input and the stream is then closed, which is how a secret reaches the
|
|
59
|
+
* remote process without ever appearing in the command line. Commands that
|
|
60
|
+
* pass no input keep the stream untouched, as before.
|
|
61
|
+
*/
|
|
62
|
+
exec(command, input) {
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
this.client.exec(command, (error, stream) => {
|
|
65
|
+
if (error) {
|
|
66
|
+
reject(error);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
let stdout = "";
|
|
70
|
+
let stderr = "";
|
|
71
|
+
stream.on("data", (chunk) => {
|
|
72
|
+
stdout += chunk.toString("utf8");
|
|
73
|
+
});
|
|
74
|
+
stream.stderr.on("data", (chunk) => {
|
|
75
|
+
stderr += chunk.toString("utf8");
|
|
76
|
+
});
|
|
77
|
+
stream.on("close", (code) => {
|
|
78
|
+
resolve({ code: code ?? 1, stdout, stderr });
|
|
79
|
+
});
|
|
80
|
+
if (input !== undefined)
|
|
81
|
+
stream.end(input);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
sftp() {
|
|
86
|
+
return new Promise((resolve, reject) => {
|
|
87
|
+
this.client.sftp((error, sftp) => {
|
|
88
|
+
if (error)
|
|
89
|
+
reject(error);
|
|
90
|
+
else
|
|
91
|
+
resolve(sftp);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async readFileIfExists(path) {
|
|
96
|
+
const sftp = await this.sftp();
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
sftp.readFile(path, (error, contents) => {
|
|
99
|
+
if (error) {
|
|
100
|
+
// Only a genuine "no such file" may report absence. Any other
|
|
101
|
+
// failure must surface: treating it as absence would make the
|
|
102
|
+
// installer regenerate the database password over a live volume.
|
|
103
|
+
const code = error.code;
|
|
104
|
+
const message = String(error.message ?? error);
|
|
105
|
+
if (code === 2 || /no such file/i.test(message))
|
|
106
|
+
resolve(null);
|
|
107
|
+
else
|
|
108
|
+
reject(error instanceof Error ? error : new Error(message));
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
resolve(contents.toString("utf8"));
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
async writeFile(path, content, mode = 0o600) {
|
|
117
|
+
const sftp = await this.sftp();
|
|
118
|
+
const data = typeof content === "string" ? Buffer.from(content, "utf8") : content;
|
|
119
|
+
await new Promise((resolve, reject) => {
|
|
120
|
+
sftp.writeFile(path, data, { mode }, (error) => {
|
|
121
|
+
if (error)
|
|
122
|
+
reject(error);
|
|
123
|
+
else
|
|
124
|
+
resolve();
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
await new Promise((resolve, reject) => {
|
|
128
|
+
sftp.chmod(path, mode, (error) => {
|
|
129
|
+
if (error)
|
|
130
|
+
reject(error);
|
|
131
|
+
else
|
|
132
|
+
resolve();
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
close() {
|
|
137
|
+
this.client.end();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=ssh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../packages/severino/src/ssh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { InstallerLanguage } from "./i18n.js";
|
|
2
|
+
export declare const stateFileName = ".installer-state.json";
|
|
3
|
+
export interface InstallerState {
|
|
4
|
+
readonly version: 1;
|
|
5
|
+
readonly language: InstallerLanguage;
|
|
6
|
+
readonly repository?: {
|
|
7
|
+
readonly owner: string;
|
|
8
|
+
readonly repo: string;
|
|
9
|
+
};
|
|
10
|
+
readonly githubToken?: string;
|
|
11
|
+
readonly vps: {
|
|
12
|
+
readonly host: string;
|
|
13
|
+
readonly port: number;
|
|
14
|
+
readonly username: string;
|
|
15
|
+
};
|
|
16
|
+
readonly deployKey: {
|
|
17
|
+
readonly publicKey: string;
|
|
18
|
+
readonly privateKey: string;
|
|
19
|
+
};
|
|
20
|
+
readonly domain: string;
|
|
21
|
+
readonly installedAt: string;
|
|
22
|
+
readonly updatedAt: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function loadState(path: string): Promise<InstallerState | null>;
|
|
25
|
+
export declare function saveState(path: string, state: InstallerState): Promise<void>;
|
|
26
|
+
export declare function deleteState(path: string): Promise<void>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installer state persisted at the repo root (gitignored). Holds the deploy
|
|
3
|
+
* private key and, once automatic deploys are activated, the GitHub token,
|
|
4
|
+
* so the file is written with mode 0600. Never stores the OpenRouter key,
|
|
5
|
+
* channel credentials, or the VPS root password.
|
|
6
|
+
*/
|
|
7
|
+
import { chmod, readFile, rm, writeFile } from "node:fs/promises";
|
|
8
|
+
export const stateFileName = ".installer-state.json";
|
|
9
|
+
export async function loadState(path) {
|
|
10
|
+
let raw;
|
|
11
|
+
try {
|
|
12
|
+
raw = await readFile(path, "utf8");
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(raw);
|
|
19
|
+
if (parsed.version !== 1)
|
|
20
|
+
return null;
|
|
21
|
+
return parsed;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export async function saveState(path, state) {
|
|
28
|
+
// Runtime objects can carry properties that TypeScript does not know about.
|
|
29
|
+
// Encode the persistence contract explicitly so an accidental object spread
|
|
30
|
+
// can never write transient API tokens, passwords, or confirmation handles.
|
|
31
|
+
const persisted = {
|
|
32
|
+
version: 1,
|
|
33
|
+
language: state.language,
|
|
34
|
+
...(state.repository === undefined ? {} : { repository: state.repository }),
|
|
35
|
+
...(state.githubToken === undefined
|
|
36
|
+
? {}
|
|
37
|
+
: { githubToken: state.githubToken }),
|
|
38
|
+
vps: {
|
|
39
|
+
host: state.vps.host,
|
|
40
|
+
port: state.vps.port,
|
|
41
|
+
username: state.vps.username,
|
|
42
|
+
},
|
|
43
|
+
deployKey: {
|
|
44
|
+
publicKey: state.deployKey.publicKey,
|
|
45
|
+
privateKey: state.deployKey.privateKey,
|
|
46
|
+
},
|
|
47
|
+
domain: state.domain,
|
|
48
|
+
installedAt: state.installedAt,
|
|
49
|
+
updatedAt: state.updatedAt,
|
|
50
|
+
};
|
|
51
|
+
await writeFile(path, `${JSON.stringify(persisted, null, 2)}\n`, {
|
|
52
|
+
mode: 0o600,
|
|
53
|
+
});
|
|
54
|
+
// The mode option only applies when the file is created; re-saving over an
|
|
55
|
+
// existing file needs an explicit chmod.
|
|
56
|
+
await chmod(path, 0o600);
|
|
57
|
+
}
|
|
58
|
+
export async function deleteState(path) {
|
|
59
|
+
await rm(path, { force: true });
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../packages/severino/src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlE,MAAM,CAAC,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAqBrD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;QACxD,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,MAAwB,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAY,EACZ,KAAqB;IAErB,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,SAAS,GAAmB;QAChC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,GAAG,EAAE;YACH,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACpB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACpB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ;SAC7B;QACD,SAAS,EAAE;YACT,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS;YACpC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU;SACvC;QACD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;IACF,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QAC/D,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,2EAA2E;IAC3E,yCAAyC;IACzC,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC"}
|