@hasna/browser 0.4.1 → 0.4.3

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/index.js CHANGED
@@ -18362,6 +18362,52 @@ init_types();
18362
18362
  import { execSync as execSync2, spawn as spawn2 } from "child_process";
18363
18363
  var DEFAULT_TTYD_PORT_START = 7780;
18364
18364
  var nextPort = DEFAULT_TTYD_PORT_START;
18365
+ var THEMES = {
18366
+ dark: {
18367
+ background: "#1e1e1e",
18368
+ foreground: "#d4d4d4",
18369
+ cursor: "#d4d4d4",
18370
+ selectionBackground: "#264f78",
18371
+ black: "#1e1e1e",
18372
+ red: "#f44747",
18373
+ green: "#6a9955",
18374
+ yellow: "#d7ba7d",
18375
+ blue: "#569cd6",
18376
+ magenta: "#c586c0",
18377
+ cyan: "#4ec9b0",
18378
+ white: "#d4d4d4",
18379
+ brightBlack: "#808080",
18380
+ brightRed: "#f44747",
18381
+ brightGreen: "#6a9955",
18382
+ brightYellow: "#d7ba7d",
18383
+ brightBlue: "#569cd6",
18384
+ brightMagenta: "#c586c0",
18385
+ brightCyan: "#4ec9b0",
18386
+ brightWhite: "#ffffff"
18387
+ },
18388
+ light: {
18389
+ background: "#ffffff",
18390
+ foreground: "#1e1e1e",
18391
+ cursor: "#1e1e1e",
18392
+ selectionBackground: "#add6ff",
18393
+ black: "#1e1e1e",
18394
+ red: "#cd3131",
18395
+ green: "#008000",
18396
+ yellow: "#795e26",
18397
+ blue: "#0451a5",
18398
+ magenta: "#af00db",
18399
+ cyan: "#0598bc",
18400
+ white: "#d4d4d4",
18401
+ brightBlack: "#808080",
18402
+ brightRed: "#cd3131",
18403
+ brightGreen: "#008000",
18404
+ brightYellow: "#795e26",
18405
+ brightBlue: "#0451a5",
18406
+ brightMagenta: "#af00db",
18407
+ brightCyan: "#0598bc",
18408
+ brightWhite: "#ffffff"
18409
+ }
18410
+ };
18365
18411
  function isTuiAvailable() {
18366
18412
  try {
18367
18413
  execSync2("which ttyd", { stdio: "ignore" });
@@ -18419,7 +18465,42 @@ async function launchTui(command, options = {}) {
18419
18465
  waitUntil: "domcontentloaded"
18420
18466
  });
18421
18467
  await page.waitForSelector(".xterm-screen", { timeout: 1e4 });
18422
- return { ttydProcess, port, browser, page };
18468
+ let resolvedTheme = "dark";
18469
+ const requestedTheme = options.theme ?? "system";
18470
+ if (requestedTheme === "light") {
18471
+ resolvedTheme = "light";
18472
+ } else if (requestedTheme === "dark") {
18473
+ resolvedTheme = "dark";
18474
+ } else {
18475
+ try {
18476
+ const result = execSync2("defaults read -g AppleInterfaceStyle 2>/dev/null", { encoding: "utf8" }).trim();
18477
+ resolvedTheme = result === "Dark" ? "dark" : "light";
18478
+ } catch {
18479
+ resolvedTheme = "light";
18480
+ }
18481
+ }
18482
+ const themeColors = THEMES[resolvedTheme];
18483
+ await page.evaluate((theme) => {
18484
+ const term = window.term ?? window.terminal;
18485
+ if (term?.options) {
18486
+ term.options.theme = theme;
18487
+ }
18488
+ document.body.style.backgroundColor = theme.background;
18489
+ const container = document.getElementById("terminal-container");
18490
+ if (container)
18491
+ container.style.backgroundColor = theme.background;
18492
+ const viewport2 = document.querySelector(".xterm-viewport");
18493
+ if (viewport2)
18494
+ viewport2.style.backgroundColor = theme.background;
18495
+ }, themeColors);
18496
+ if (options.fontSize) {
18497
+ await page.evaluate((size) => {
18498
+ const term = window.term ?? window.terminal;
18499
+ if (term?.options)
18500
+ term.options.fontSize = size;
18501
+ }, options.fontSize);
18502
+ }
18503
+ return { ttydProcess, port, browser, page, theme: resolvedTheme };
18423
18504
  } catch (err) {
18424
18505
  ttydProcess.kill();
18425
18506
  throw err;
@@ -18842,7 +18923,9 @@ async function createSession2(opts = {}) {
18842
18923
  const command = opts.startUrl ?? "bash";
18843
18924
  const tuiSess = await launchTui(command, {
18844
18925
  headless: opts.headless ?? true,
18845
- viewport: opts.viewport
18926
+ viewport: opts.viewport,
18927
+ theme: opts.tuiTheme ?? "system",
18928
+ fontSize: opts.tuiFontSize
18846
18929
  });
18847
18930
  browser = tuiSess.browser;
18848
18931
  page = tuiSess.page;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAW,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAA0F,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE/I,OAAO,EAAE,iBAAiB,EAAyB,MAAM,2BAA2B,CAAC;AAyBrF,QAAA,MAAM,IAAI,aAAqB,CAAC;AA2ChC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiL3F;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAkBtD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAE7E;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAIjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAIlE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBtE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CAE/F;AAED,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CAE7C;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD;AAED,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;AAE/B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,kBAE5C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAErD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF;AAID,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAcpF;AAID,wBAAgB,iBAAiB,IAAI,mBAAmB,GAAG,IAAI,CAa9D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAW,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAA0F,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE/I,OAAO,EAAE,iBAAiB,EAAyB,MAAM,2BAA2B,CAAC;AAyBrF,QAAA,MAAM,IAAI,aAAqB,CAAC;AA2ChC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmL3F;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAkBtD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAE7E;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAIjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAIlE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBtE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CAE/F;AAED,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CAE7C;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD;AAED,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;AAE/B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,kBAE5C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAErD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF;AAID,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAcpF;AAID,wBAAgB,iBAAiB,IAAI,mBAAmB,GAAG,IAAI,CAa9D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}