@gjermundgaraba/clankerbox-sdk 0.19.0 → 0.20.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.
|
@@ -249,6 +249,7 @@ declare const Http: ActionHttp.Binding<readonly [Action.Action<"listMachines", S
|
|
|
249
249
|
readonly setup: Schema.optionalKey<Schema.Struct<{
|
|
250
250
|
readonly script: Schema.String;
|
|
251
251
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
252
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
252
253
|
}>>;
|
|
253
254
|
readonly profile: Schema.optionalKey<Schema.String>;
|
|
254
255
|
readonly id: Schema.String;
|
|
@@ -451,6 +452,7 @@ declare const Http: ActionHttp.Binding<readonly [Action.Action<"listMachines", S
|
|
|
451
452
|
readonly setup: Schema.Struct<{
|
|
452
453
|
readonly script: Schema.String;
|
|
453
454
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
455
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
454
456
|
}>;
|
|
455
457
|
}>, Schema.Struct<{
|
|
456
458
|
readonly checkpoint: Schema.Struct<{
|
|
@@ -506,6 +508,7 @@ declare const actionsByName: {
|
|
|
506
508
|
readonly setup: Schema.optionalKey<Schema.Struct<{
|
|
507
509
|
readonly script: Schema.String;
|
|
508
510
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
511
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
509
512
|
}>>;
|
|
510
513
|
readonly profile: Schema.optionalKey<Schema.String>;
|
|
511
514
|
readonly id: Schema.String;
|
|
@@ -689,6 +692,7 @@ declare const actionsByName: {
|
|
|
689
692
|
readonly setup: Schema.Struct<{
|
|
690
693
|
readonly script: Schema.String;
|
|
691
694
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
695
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
692
696
|
}>;
|
|
693
697
|
}>, Schema.Struct<{
|
|
694
698
|
readonly checkpoint: Schema.Struct<{
|
|
@@ -942,10 +946,20 @@ type Usage = typeof Usage.Type;
|
|
|
942
946
|
type WithoutHost<Row> = Row extends unknown ? Omit<Row, "host"> : never;
|
|
943
947
|
/** A `Usage` row as a runtime reads it, before the host names itself on it. */
|
|
944
948
|
type Reading = WithoutHost<Usage>;
|
|
945
|
-
/**
|
|
949
|
+
/**
|
|
950
|
+
* Public keys, as `.pub` files hold them: each line that isn't blank is `<type> <base64>
|
|
951
|
+
* [comment]`, the type an OpenSSH key's, its certificate's or a hardware key's, and at least one
|
|
952
|
+
* line is. Anything else, a private key included, is refused.
|
|
953
|
+
*/
|
|
954
|
+
declare const PublicKeys: Schema.String;
|
|
955
|
+
/**
|
|
956
|
+
* Nothing logs the script: it can carry secrets. `authorizedKeys` is appended to the login user's
|
|
957
|
+
* `~/.ssh/authorized_keys` once the script exits 0, through the guest's `sudo`.
|
|
958
|
+
*/
|
|
946
959
|
declare const Setup: Schema.Struct<{
|
|
947
960
|
readonly script: Schema.String;
|
|
948
961
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
962
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
949
963
|
}>;
|
|
950
964
|
type Setup = typeof Setup.Type;
|
|
951
965
|
/** A profile file fills these in; the host sees only the `profile` label. */
|
|
@@ -957,6 +971,7 @@ declare const MachineSpec: Schema.Struct<{
|
|
|
957
971
|
setup: Schema.optionalKey<Schema.Struct<{
|
|
958
972
|
readonly script: Schema.String;
|
|
959
973
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
974
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
960
975
|
}>>;
|
|
961
976
|
profile: Schema.optionalKey<Schema.String>;
|
|
962
977
|
}>;
|
|
@@ -970,6 +985,7 @@ declare const CreateRequest: Schema.Struct<{
|
|
|
970
985
|
readonly setup: Schema.optionalKey<Schema.Struct<{
|
|
971
986
|
readonly script: Schema.String;
|
|
972
987
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
988
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
973
989
|
}>>;
|
|
974
990
|
readonly profile: Schema.optionalKey<Schema.String>;
|
|
975
991
|
readonly id: Schema.String;
|
|
@@ -986,6 +1002,7 @@ declare const PrebuildRequest: Schema.Struct<{
|
|
|
986
1002
|
readonly setup: Schema.Struct<{
|
|
987
1003
|
readonly script: Schema.String;
|
|
988
1004
|
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
1005
|
+
readonly authorizedKeys: Schema.optionalKey<Schema.String>;
|
|
989
1006
|
}>;
|
|
990
1007
|
}>;
|
|
991
1008
|
type PrebuildRequest = typeof PrebuildRequest.Type;
|
|
@@ -1096,4 +1113,4 @@ declare class Client extends Client_base {}
|
|
|
1096
1113
|
declare const make: (hosts: ReadonlyArray<HostEntry>, options?: Options) => Effect.Effect<Interface, Invalid, HttpClient.HttpClient>;
|
|
1097
1114
|
declare const layer: (hosts: ReadonlyArray<HostEntry>, options?: Options) => Layer.Layer<Client, Invalid, HttpClient.HttpClient>;
|
|
1098
1115
|
//#endregion
|
|
1099
|
-
export {
|
|
1116
|
+
export { ClankerboxError as A, Refused as B, Usage as C, actionsByName as D, Http as E, Missing as F, WrongState as G, Superseded as H, NotFound as I, hostErrors as K, NotMade as L, HostError as M, Internal as N, readTimeout as O, Invalid as P, NotOffered as R, TailnetStatus as S, Declared as T, Unavailable as U, ScriptFailed as V, Unsizable as W, Reading as _, Options as a, SshEndpoint as b, CreateRequest as c, Machine as d, MachineSpec as f, PublicKeys as g, Prebuilt as h, Interface as i, Conflict as j, Capacity as k, Desired as l, PrebuildRequest as m, CreateOptions as n, client_d_exports as o, Phase as p, retryable as q, HostEntry as r, Checkpoint as s, Client as t, Host as u, Runtime as v, stateLabel as w, SshLogin as x, Setup as y, PinMismatch as z };
|
|
@@ -349,10 +349,25 @@ const Usage = Schema.Union([Schema.Struct({
|
|
|
349
349
|
...usageFields,
|
|
350
350
|
unread: Schema.Array(Id)
|
|
351
351
|
})]).annotate({ identifier: "Usage" });
|
|
352
|
-
|
|
352
|
+
const publicKeyLine = /^(?:ssh|ecdsa|sk)-[a-z0-9@.-]+ [A-Za-z0-9+/]+={0,3}(?: .*)?$/u;
|
|
353
|
+
const blankLine = /^\s*$/u;
|
|
354
|
+
/**
|
|
355
|
+
* Public keys, as `.pub` files hold them: each line that isn't blank is `<type> <base64>
|
|
356
|
+
* [comment]`, the type an OpenSSH key's, its certificate's or a hardware key's, and at least one
|
|
357
|
+
* line is. Anything else, a private key included, is refused.
|
|
358
|
+
*/
|
|
359
|
+
const PublicKeys = Schema.String.check(Schema.makeFilter((text) => {
|
|
360
|
+
const lines = text.split("\n").filter((line) => !blankLine.test(line));
|
|
361
|
+
return lines.length > 0 && lines.every((line) => publicKeyLine.test(line)) || "each line that isn't blank is a public key, <type> <base64> [comment], as a .pub file holds it";
|
|
362
|
+
}));
|
|
363
|
+
/**
|
|
364
|
+
* Nothing logs the script: it can carry secrets. `authorizedKeys` is appended to the login user's
|
|
365
|
+
* `~/.ssh/authorized_keys` once the script exits 0, through the guest's `sudo`.
|
|
366
|
+
*/
|
|
353
367
|
const Setup = Schema.Struct({
|
|
354
368
|
script: Schema.String,
|
|
355
|
-
timeoutSeconds: Schema.optionalKey(Size)
|
|
369
|
+
timeoutSeconds: Schema.optionalKey(Size),
|
|
370
|
+
authorizedKeys: Schema.optionalKey(PublicKeys)
|
|
356
371
|
});
|
|
357
372
|
const specFields = {
|
|
358
373
|
base: Schema.String,
|
|
@@ -547,7 +562,7 @@ const actionsByName = Action.byName(Http.actions);
|
|
|
547
562
|
//#endregion
|
|
548
563
|
//#region src/release.ts
|
|
549
564
|
/** Also the version of the clankerbox CLI released with it. */
|
|
550
|
-
const version = "0.
|
|
565
|
+
const version = "0.20.0";
|
|
551
566
|
/** major.minor: releases that share it speak the same API. */
|
|
552
567
|
const release = (of) => of.split(".").slice(0, 2).join(".");
|
|
553
568
|
/** A host refuses a request whose `release` differs from its own, or that has none. */
|
|
@@ -755,4 +770,4 @@ const make = (hosts, options) => Effect.gen(function* () {
|
|
|
755
770
|
});
|
|
756
771
|
const layer = (hosts, options) => Layer.effect(Client, make(hosts, options));
|
|
757
772
|
//#endregion
|
|
758
|
-
export {
|
|
773
|
+
export { Name as A, Missing as B, SshEndpoint as C, stateLabel as D, Usage as E, ClankerboxError as F, Refused as G, NotMade as H, Conflict as I, Unavailable as J, ScriptFailed as K, HostError as L, parseId as M, parseName as N, HostId as O, Capacity as P, retryable as Q, Internal as R, Setup as S, TailnetStatus as T, NotOffered as U, NotFound as V, PinMismatch as W, WrongState as X, Unsizable as Y, hostErrors as Z, Phase as _, release as a, PublicKeys as b, Http as c, Checkpoint as d, CreateRequest as f, MachineSpec as g, Machine as h, describeIssues as i, formatId as j, Id as k, actionsByName as l, Host as m, layer as n, version as o, Desired as p, Superseded as q, describeFileError as r, versionHeader as s, client_exports as t, readTimeout as u, PrebuildRequest as v, SshLogin as w, Runtime as x, Prebuilt as y, Invalid as z };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as ClankerboxError, B as Refused, C as Usage, D as actionsByName, E as Http, F as Missing, G as WrongState, H as Superseded, I as NotFound, K as hostErrors, L as NotMade, M as HostError, N as Internal, O as readTimeout, P as Invalid, R as NotOffered, S as TailnetStatus, T as Declared, U as Unavailable, V as ScriptFailed, W as Unsizable, _ as Reading, b as SshEndpoint, c as CreateRequest, d as Machine, f as MachineSpec, g as PublicKeys, h as Prebuilt, i as Interface, j as Conflict, k as Capacity, l as Desired, m as PrebuildRequest, n as CreateOptions$1, o as client_d_exports, p as Phase, q as retryable, s as Checkpoint, u as Host, v as Runtime, w as stateLabel, x as SshLogin, y as Setup, z as PinMismatch } from "./client-Dr3PcuCP.mjs";
|
|
2
2
|
import { Effect, FileSystem, Path, PlatformError, Schema, Scope } from "effect";
|
|
3
3
|
//#region src/ids.d.ts
|
|
4
4
|
export declare const HostId: Schema.String;
|
|
@@ -18,8 +18,8 @@ declare namespace prebuild_d_exports {
|
|
|
18
18
|
export { CreateOptions, Created, build, create, nameOf };
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* A digest of the spec's label, base, sizes, setup script as sent, and the host's
|
|
22
|
-
* version: a `ram` checkpoint restores only under the release that saved it, so after a runtime
|
|
21
|
+
* A digest of the spec's label, base, sizes, setup script as sent, authorized keys, and the host's
|
|
22
|
+
* runtime version: a `ram` checkpoint restores only under the release that saved it, so after a runtime
|
|
23
23
|
* bump a create misses the old prebuild instead of failing to restore it. The setup's timeout and
|
|
24
24
|
* the base's image are no part of it.
|
|
25
25
|
*/
|
|
@@ -87,6 +87,8 @@ export type Overrides = { readonly [K in keyof Sizes]?: Sizes[K] | undefined; }
|
|
|
87
87
|
readonly setup?: string | undefined;
|
|
88
88
|
readonly setupTimeoutSeconds?: number | undefined;
|
|
89
89
|
readonly host?: string | undefined;
|
|
90
|
+
/** A public-key file, already resolved, which a setup needs and which is read only for one. */
|
|
91
|
+
readonly authorizedKeys?: string | undefined;
|
|
90
92
|
};
|
|
91
93
|
export interface SpecRequest {
|
|
92
94
|
readonly spec: MachineSpec;
|
|
@@ -107,6 +109,11 @@ export declare const specRequest: (what: string, profile: LoadedProfile | undefi
|
|
|
107
109
|
export declare const packRecipe: (directory: string) => Effect.Effect<string, Invalid, FileSystem.FileSystem>;
|
|
108
110
|
/** A script file's text, or a recipe directory packed into one script. */
|
|
109
111
|
export declare const readSetup: (path: string) => Effect.Effect<string, Invalid, FileSystem.FileSystem>;
|
|
112
|
+
/**
|
|
113
|
+
* A public-key file's text, such as `~/.ssh/id_ed25519.pub`'s, for a setup's `authorizedKeys`, with
|
|
114
|
+
* its line endings as `\n`.
|
|
115
|
+
*/
|
|
116
|
+
export declare const readAuthorizedKeys: (path: string) => Effect.Effect<string, Invalid, FileSystem.FileSystem>;
|
|
110
117
|
//#endregion
|
|
111
118
|
//#region src/ssh.d.ts
|
|
112
119
|
export interface SshTarget {
|
|
@@ -145,4 +152,4 @@ export declare const formatMib: (mib: number) => string;
|
|
|
145
152
|
/** As a size flag takes it: `60G`. */
|
|
146
153
|
export declare const formatGib: (gib: number) => string;
|
|
147
154
|
//#endregion
|
|
148
|
-
export { Capacity, Checkpoint, ClankerboxError, client_d_exports as Client, Conflict, CreateRequest, Declared, Desired, Host, HostError, Http, Internal, Invalid, Machine, MachineSpec, Missing, NotFound, NotMade, NotOffered, Phase, PinMismatch, prebuild_d_exports as Prebuild, PrebuildRequest, Prebuilt, Reading, Refused, Runtime, ScriptFailed, Setup, SshEndpoint, SshLogin, Superseded, TailnetStatus, Unavailable, Unsizable, Usage, WrongState, actionsByName, hostErrors, readTimeout, retryable, stateLabel };
|
|
155
|
+
export { Capacity, Checkpoint, ClankerboxError, client_d_exports as Client, Conflict, CreateRequest, Declared, Desired, Host, HostError, Http, Internal, Invalid, Machine, MachineSpec, Missing, NotFound, NotMade, NotOffered, Phase, PinMismatch, prebuild_d_exports as Prebuild, PrebuildRequest, Prebuilt, PublicKeys, Reading, Refused, Runtime, ScriptFailed, Setup, SshEndpoint, SshLogin, Superseded, TailnetStatus, Unavailable, Unsizable, Usage, WrongState, actionsByName, hostErrors, readTimeout, retryable, stateLabel };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import { A as
|
|
2
|
+
import { A as Name, B as Missing, C as SshEndpoint, D as stateLabel, E as Usage, F as ClankerboxError, G as Refused, H as NotMade, I as Conflict, J as Unavailable, K as ScriptFailed, L as HostError, M as parseId, N as parseName, O as HostId, P as Capacity, Q as retryable, R as Internal, S as Setup, T as TailnetStatus, U as NotOffered, V as NotFound, W as PinMismatch, X as WrongState, Y as Unsizable, Z as hostErrors, _ as Phase, a as release, b as PublicKeys, c as Http, d as Checkpoint, f as CreateRequest, g as MachineSpec, h as Machine, i as describeIssues, j as formatId, k as Id, l as actionsByName, m as Host, o as version, p as Desired, q as Superseded, r as describeFileError, s as versionHeader, t as client_exports, u as readTimeout, v as PrebuildRequest, w as SshLogin, x as Runtime, y as Prebuilt, z as Invalid } from "./client-S3cTnrsp.mjs";
|
|
3
3
|
import { Effect, FileSystem, Option, Path, Predicate, Record, Schema } from "effect";
|
|
4
4
|
import { Base64, Hex } from "effect/encoding";
|
|
5
5
|
//#region src/prebuild.ts
|
|
@@ -11,8 +11,8 @@ var prebuild_exports = /* @__PURE__ */ __exportAll({
|
|
|
11
11
|
const prefix = "prebuilt-";
|
|
12
12
|
const digestDigits = 12;
|
|
13
13
|
/**
|
|
14
|
-
* A digest of the spec's label, base, sizes, setup script as sent, and the host's
|
|
15
|
-
* version: a `ram` checkpoint restores only under the release that saved it, so after a runtime
|
|
14
|
+
* A digest of the spec's label, base, sizes, setup script as sent, authorized keys, and the host's
|
|
15
|
+
* runtime version: a `ram` checkpoint restores only under the release that saved it, so after a runtime
|
|
16
16
|
* bump a create misses the old prebuild instead of failing to restore it. The setup's timeout and
|
|
17
17
|
* the base's image are no part of it.
|
|
18
18
|
*/
|
|
@@ -23,6 +23,7 @@ const nameOf = (spec, host) => Effect.promise(() => globalThis.crypto.subtle.dig
|
|
|
23
23
|
spec.ramMib,
|
|
24
24
|
spec.diskGib,
|
|
25
25
|
spec.setup?.script ?? null,
|
|
26
|
+
spec.setup?.authorizedKeys ?? null,
|
|
26
27
|
host.runtimeVersion
|
|
27
28
|
])))).pipe(Effect.map((digest) => `${prefix}${Hex.encode(new Uint8Array(digest)).slice(0, digestDigits)}`));
|
|
28
29
|
const lookup = (client, id) => client.getCheckpoint({ id }).pipe(Effect.map(Option.some), Effect.catchTag("NotFound", () => Effect.succeedNone));
|
|
@@ -131,6 +132,21 @@ const readSetup = (path) => Effect.gen(function* () {
|
|
|
131
132
|
message: `couldn't read setup ${path}: ${describeFileError(error)}`,
|
|
132
133
|
file: path
|
|
133
134
|
}))));
|
|
135
|
+
const decodePublicKeys = Schema.decodeUnknownEffect(PublicKeys);
|
|
136
|
+
/**
|
|
137
|
+
* A public-key file's text, such as `~/.ssh/id_ed25519.pub`'s, for a setup's `authorizedKeys`, with
|
|
138
|
+
* its line endings as `\n`.
|
|
139
|
+
*/
|
|
140
|
+
const readAuthorizedKeys = (path) => Effect.gen(function* () {
|
|
141
|
+
const text = yield* (yield* FileSystem.FileSystem).readFileString(path).pipe(Effect.mapError((error) => new Invalid({
|
|
142
|
+
message: `couldn't read authorized keys ${path}: ${describeFileError(error)}`,
|
|
143
|
+
file: path
|
|
144
|
+
})));
|
|
145
|
+
return yield* decodePublicKeys(text.replaceAll("\r\n", "\n")).pipe(Effect.mapError((error) => new Invalid({
|
|
146
|
+
message: `authorized keys ${path}: ${describeIssues(error)}`,
|
|
147
|
+
file: path
|
|
148
|
+
})));
|
|
149
|
+
});
|
|
134
150
|
//#endregion
|
|
135
151
|
//#region src/profile.ts
|
|
136
152
|
/**
|
|
@@ -189,16 +205,18 @@ const specRequest = (what, profile, overrides, names) => Effect.gen(function* ()
|
|
|
189
205
|
const file = overrides.setup ?? profile?.setup?.path;
|
|
190
206
|
const timeoutSeconds = overrides.setupTimeoutSeconds ?? profile?.setup?.timeoutSeconds;
|
|
191
207
|
if (file === void 0 && overrides.setupTimeoutSeconds !== void 0) return yield* new Invalid({ message: `${what}: ${names?.get("setupTimeoutSeconds") ?? "the setup timeout"} needs a setup to time` });
|
|
192
|
-
const
|
|
208
|
+
const keys = overrides.authorizedKeys;
|
|
209
|
+
const setup = file === void 0 ? void 0 : keys === void 0 ? yield* new Invalid({ message: `${what}: a setup needs ${names?.get("authorizedKeys") ?? "authorizedKeys"}, the public keys the host installs for the login user after it` }) : Record.filter({
|
|
210
|
+
script: yield* readSetup(file),
|
|
211
|
+
timeoutSeconds,
|
|
212
|
+
authorizedKeys: yield* readAuthorizedKeys(keys)
|
|
213
|
+
}, Predicate.isNotUndefined);
|
|
193
214
|
const fields = {
|
|
194
215
|
base: overrides.base ?? profile?.base,
|
|
195
216
|
cpu: overrides.cpu ?? profile?.cpu,
|
|
196
217
|
ramMib: overrides.ramMib ?? profile?.ramMib,
|
|
197
218
|
diskGib: overrides.diskGib ?? profile?.diskGib,
|
|
198
|
-
setup
|
|
199
|
-
script,
|
|
200
|
-
timeoutSeconds
|
|
201
|
-
}, Predicate.isNotUndefined),
|
|
219
|
+
setup,
|
|
202
220
|
profile: profile?.label
|
|
203
221
|
};
|
|
204
222
|
return {
|
|
@@ -274,4 +292,4 @@ const formatMib = (mib) => mib >= 1024 && mib % 512 === 0 ? `${mib / mibPerGib}G
|
|
|
274
292
|
/** As a size flag takes it: `60G`. */
|
|
275
293
|
const formatGib = (gib) => `${gib}G`;
|
|
276
294
|
//#endregion
|
|
277
|
-
export { Capacity, Checkpoint, ClankerboxError, client_exports as Client, Conflict, CreateRequest, Desired, Host, HostError, HostId, Http, Id, Internal, Invalid, Machine, MachineSpec, Missing, Name, NotFound, NotMade, NotOffered, Phase, PinMismatch, prebuild_exports as Prebuild, PrebuildRequest, Prebuilt, Profile, Refused, Runtime, ScriptFailed, Setup, SshEndpoint, SshLogin, Superseded, TailnetStatus, Unavailable, Unsizable, Usage, WrongState, actionsByName, describeFileError, describeIssues, formatGib, formatId, formatMib, hostErrors, knownHostsLine, loadProfile, mibPerGib, packRecipe, parseId, parseName, pinnedSsh, readSetup, readTimeout, release, retryable, specRequest, sshTarget, stateLabel, version, versionHeader };
|
|
295
|
+
export { Capacity, Checkpoint, ClankerboxError, client_exports as Client, Conflict, CreateRequest, Desired, Host, HostError, HostId, Http, Id, Internal, Invalid, Machine, MachineSpec, Missing, Name, NotFound, NotMade, NotOffered, Phase, PinMismatch, prebuild_exports as Prebuild, PrebuildRequest, Prebuilt, Profile, PublicKeys, Refused, Runtime, ScriptFailed, Setup, SshEndpoint, SshLogin, Superseded, TailnetStatus, Unavailable, Unsizable, Usage, WrongState, actionsByName, describeFileError, describeIssues, formatGib, formatId, formatMib, hostErrors, knownHostsLine, loadProfile, mibPerGib, packRecipe, parseId, parseName, pinnedSsh, readAuthorizedKeys, readSetup, readTimeout, release, retryable, specRequest, sshTarget, stateLabel, version, versionHeader };
|
package/dist/node.d.mts
CHANGED
package/dist/node.mjs
CHANGED