@volter/browser-toolbelt 0.1.226 → 0.1.228

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/dist/install.d.ts CHANGED
@@ -1,8 +1,10 @@
1
- import { type BrowserRuntime } from "@volter/browser-runtime";
1
+ import { type BrowserRuntime, type BrowserCommandShell, type BrowserProcessRunOptions, type BrowserProcessResult } 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";
5
5
  export interface BrowserToolbeltOptions {
6
+ /** An image selected WALI sh: reserve its names and never construct just-bash. */
7
+ shell?: "catalog";
6
8
  /**
7
9
  * The smart-HTTP transport `git-remote-https` speaks through: the page's
8
10
  * own, so the proxy, the host allowlist, the credential and the byte bound
@@ -13,10 +15,22 @@ export interface BrowserToolbeltOptions {
13
15
  share?: boolean;
14
16
  }
15
17
  export interface BrowserToolbelt {
16
- shell: BrowserShell;
18
+ shell: BrowserShell | BrowserCatalogShell;
17
19
  share?: BrowserShareCommand;
18
20
  dispose(): void;
19
21
  }
22
+ /** The process host remains the one program table; the admitted sh owns syntax. */
23
+ export declare class BrowserCatalogShell implements BrowserCommandShell {
24
+ private readonly runtime;
25
+ readonly ownsCommandSyntax = true;
26
+ readonly capabilities: Readonly<{
27
+ filesystemPolicy: true;
28
+ }>;
29
+ constructor(runtime: BrowserRuntime);
30
+ registerProgram(): void;
31
+ run(command: string, options?: BrowserProcessRunOptions): Promise<BrowserProcessResult>;
32
+ terminate(): void;
33
+ }
20
34
  /** Installs the optional development command set on an existing runtime. */
21
35
  export declare function installBrowserToolbelt(runtime: BrowserRuntime, options?: BrowserToolbeltOptions): BrowserToolbelt;
22
36
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE3K,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,kFAAkF;IAClF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAAC;IAC1C,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,mFAAmF;AACnF,qBAAa,mBAAoB,YAAW,mBAAmB;IAGjD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,QAAQ,CAAC,iBAAiB,QAAQ;IAClC,QAAQ,CAAC,YAAY;;OAAsD;gBAC9C,OAAO,EAAE,cAAc;IACpD,eAAe,IAAI,IAAI;IACvB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK3F,SAAS,IAAI,IAAI;CAClB;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,sBAA2B,GACnC,eAAe,CA6CjB"}
package/dist/install.js CHANGED
@@ -4,11 +4,28 @@ import { BrowserGitHttp } from "./browser-git-http.js";
4
4
  import { BrowserShareCommand } from "./browser-share-command.js";
5
5
  import { BrowserShell } from "./browser-shell.js";
6
6
  import { interactiveShell } from "./browser-interactive-shell.js";
7
+ /** The process host remains the one program table; the admitted sh owns syntax. */
8
+ export class BrowserCatalogShell {
9
+ runtime;
10
+ ownsCommandSyntax = true;
11
+ capabilities = Object.freeze({ filesystemPolicy: true });
12
+ constructor(runtime) {
13
+ this.runtime = runtime;
14
+ }
15
+ registerProgram() { }
16
+ run(command, options = {}) {
17
+ // This argv door cannot recurse through command parsing or a JS fallback.
18
+ const executablePath = "/opt/programs/bin/sh";
19
+ return this.runtime.processHost.runArgv(["/bin/sh", "-c", command], { ...options, executablePath });
20
+ }
21
+ terminate() { }
22
+ }
7
23
  /** Installs the optional development command set on an existing runtime. */
8
24
  export function installBrowserToolbelt(runtime, options = {}) {
9
25
  const selected = new Set(browserBaselineCommands(runtime.baselines, "shell"));
10
- const shell = new BrowserShell(runtime.filesystem);
11
- shell.setProcessTable(() => runtime.processes());
26
+ const shell = options.shell === "catalog" ? new BrowserCatalogShell(runtime) : new BrowserShell(runtime.filesystem);
27
+ if (shell instanceof BrowserShell)
28
+ shell.setProcessTable(() => runtime.processes());
12
29
  runtime.processHost.registerShell(shell);
13
30
  // `git` itself is a pack, the program Git publishes; what belongs to the
14
31
  // page is the helper Git invokes to reach a remote. It is registered here
@@ -37,7 +54,7 @@ export function installBrowserToolbelt(runtime, options = {}) {
37
54
  // the way the process host runs any command.
38
55
  const shellProgram = interactiveShell((command, runOptions) => runtime.spawn(command, runOptions), (path) => runtime.filesystem.readFile(path, "utf8").catch(() => undefined));
39
56
  runtime.filesystem.mkdirSync("/bin", { recursive: true });
40
- for (const name of [...selected].filter(name => name === "sh" || name === "bash")) {
57
+ for (const name of [...selected].filter(name => options.shell !== "catalog" && (name === "sh" || name === "bash"))) {
41
58
  runtime.registerProgram(name, shellProgram);
42
59
  // Registered executables must also be discoverable by stat/access,
43
60
  // before a caller chooses to spawn them. Dispatch remains the host's.
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/browser-toolbelt",
3
- "version": "0.1.226",
3
+ "version": "0.1.228",
4
4
  "description": "Shell, Git's remote helper, and standard development commands for the Volter browser runtime",
5
5
  "license": "MIT",
6
6
  "repository": {