@volter/browser-toolbelt 0.1.116 → 0.1.117
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/README.md +1 -1
- package/dist/github-device-auth.d.ts +1 -1
- package/dist/github-device-auth.d.ts.map +1 -1
- package/dist/install.d.ts +1 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +7 -4
- package/dist/install.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ For GitHub credentials, save the entire `GithubDeviceToken` with
|
|
|
12
12
|
`GithubTokenVault.save(token)`. Use `await vault.current(auth)` before Git or
|
|
13
13
|
sharing requests, not a cached `load()` result: it refreshes expiring device
|
|
14
14
|
tokens and persists rotation under a browser Web Lock. `load()` only restores
|
|
15
|
-
UI state.
|
|
15
|
+
UI state. Non-expiring tokens remain usable. An uncertain refresh fails
|
|
16
16
|
explicitly without starting another login; see ADR-0030 in the repository.
|
|
17
17
|
|
|
18
18
|
`BrowserShell.run(command, { filesystemPolicy: { writableRoots: ["/workspace"] } })`
|
|
@@ -26,7 +26,7 @@ export interface GithubDeviceToken {
|
|
|
26
26
|
tokenType: string;
|
|
27
27
|
scope: string;
|
|
28
28
|
clientId?: string;
|
|
29
|
-
/** Absolute milliseconds since the epoch; absent for
|
|
29
|
+
/** Absolute milliseconds since the epoch; absent for non-expiring tokens. */
|
|
30
30
|
expiresAt?: number;
|
|
31
31
|
refreshToken?: string;
|
|
32
32
|
refreshTokenExpiresAt?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-device-auth.d.ts","sourceRoot":"","sources":["../src/github-device-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAGtF,eAAO,MAAM,sBAAsB,yCAAyC,CAAC;AAC7E,eAAO,MAAM,uBAAuB,gDAAgD,CAAC;AACrF,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAI/D,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"github-device-auth.d.ts","sourceRoot":"","sources":["../src/github-device-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/install.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type BrowserRuntime } from "@volter/browser-runtime";
|
|
2
2
|
import { type GitHttpClient } from "./browser-git-http.js";
|
|
3
3
|
import { BrowserShareCommand } from "./browser-share-command.js";
|
|
4
4
|
import { BrowserShell } from "./browser-shell.js";
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,sBAA2B,GACnC,eAAe,CA6CjB"}
|
package/dist/install.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { browserBaselineCommands } from "@volter/browser-runtime";
|
|
1
2
|
import { BrowserGitRemoteHttps } from "./browser-git-remote-https.js";
|
|
2
3
|
import { BrowserGitHttp } from "./browser-git-http.js";
|
|
3
4
|
import { BrowserShareCommand } from "./browser-share-command.js";
|
|
@@ -5,6 +6,7 @@ import { BrowserShell } from "./browser-shell.js";
|
|
|
5
6
|
import { interactiveShell } from "./browser-interactive-shell.js";
|
|
6
7
|
/** Installs the optional development command set on an existing runtime. */
|
|
7
8
|
export function installBrowserToolbelt(runtime, options = {}) {
|
|
9
|
+
const selected = new Set(browserBaselineCommands(runtime.baselines, "shell"));
|
|
8
10
|
const shell = new BrowserShell(runtime.filesystem);
|
|
9
11
|
shell.setProcessTable(() => runtime.processes());
|
|
10
12
|
runtime.processHost.registerShell(shell);
|
|
@@ -18,15 +20,16 @@ export function installBrowserToolbelt(runtime, options = {}) {
|
|
|
18
20
|
} } : new BrowserGitHttp({ authorize: (url) => runtime.policy.assertWorldEgress("git", url) }).client,
|
|
19
21
|
spawn: runtime.processHost,
|
|
20
22
|
});
|
|
21
|
-
|
|
23
|
+
if (selected.has("git-remote-https"))
|
|
24
|
+
runtime.registerProgram("git-remote-https", remote.run);
|
|
22
25
|
const bin = "/opt/programs/bin";
|
|
23
26
|
const marker = `${bin}/git-remote-https`;
|
|
24
27
|
runtime.filesystem.mkdirSync(bin, { recursive: true });
|
|
25
|
-
if (!runtime.filesystem.existsSync(marker)) {
|
|
28
|
+
if (selected.has("git-remote-https") && !runtime.filesystem.existsSync(marker)) {
|
|
26
29
|
runtime.filesystem.writeFileSync(marker, "#!/bin/sh\n# git-remote-https: runtime-registered program\n");
|
|
27
30
|
runtime.filesystem.chmodSync?.(marker, 0o755);
|
|
28
31
|
}
|
|
29
|
-
const share = options.share === false ? undefined : new BrowserShareCommand(runtime);
|
|
32
|
+
const share = !selected.has("share") || options.share === false ? undefined : new BrowserShareCommand(runtime);
|
|
30
33
|
if (share)
|
|
31
34
|
runtime.registerProgram("share", share.run);
|
|
32
35
|
// `sh` and `bash` as programs: an exec of either with a TTY is the
|
|
@@ -34,7 +37,7 @@ export function installBrowserToolbelt(runtime, options = {}) {
|
|
|
34
37
|
// the way the process host runs any command.
|
|
35
38
|
const shellProgram = interactiveShell((command, runOptions) => runtime.spawn(command, runOptions), (path) => runtime.filesystem.readFile(path, "utf8").catch(() => undefined));
|
|
36
39
|
runtime.filesystem.mkdirSync("/bin", { recursive: true });
|
|
37
|
-
for (const name of ["sh"
|
|
40
|
+
for (const name of [...selected].filter(name => name === "sh" || name === "bash")) {
|
|
38
41
|
runtime.registerProgram(name, shellProgram);
|
|
39
42
|
// Registered executables must also be discoverable by stat/access,
|
|
40
43
|
// before a caller chooses to spawn them. Dispatch remains the host's.
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|