@monotykamary/localterm-server 2.79.7 → 2.79.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"watch-filesystem.d.ts","sourceRoot":"","sources":["../../src/utils/watch-filesystem.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,eAAO,MAAM,eAAe,EAAE,YAiB7B,CAAC"}
1
+ {"version":3,"file":"watch-filesystem.d.ts","sourceRoot":"","sources":["../../src/utils/watch-filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,YA4B7B,CAAC"}
@@ -1,18 +1,25 @@
1
+ import { watch as nativeWatch } from "node:fs";
2
+ import { platform } from "node:os";
1
3
  import path from "node:path";
2
4
  import { watch } from "chokidar";
3
- // Node's Linux recursive watcher creates child FSWatchers whose errors can
4
- // escape the root handle. Chokidar owns those handles and forwards errors.
5
5
  export const watchFilesystem = (target, options, listener) => {
6
+ const ignored = (relative) => relative.split(path.sep).some((part) => options.ignoredDirectories?.includes(part));
7
+ const host = platform();
8
+ // Native recursion on macOS/Windows avoids a descriptor for every file.
9
+ if (!options.recursive || host === "darwin" || host === "win32") {
10
+ return nativeWatch(target, { recursive: options.recursive, persistent: false, encoding: "utf8" }, (event, filename) => {
11
+ if (filename === null || !ignored(filename))
12
+ listener(event, filename);
13
+ });
14
+ }
15
+ // Node's Linux recursive child watcher errors can escape the root handle.
16
+ // Chokidar only attaches native error handlers in its persistent branch.
6
17
  const watcher = watch(target, {
7
- persistent: false,
18
+ persistent: true,
8
19
  ignoreInitial: true,
9
20
  followSymlinks: false,
10
21
  atomic: false,
11
- depth: options.recursive ? undefined : 0,
12
- ignored: (candidate) => path
13
- .relative(target, candidate)
14
- .split(path.sep)
15
- .some((part) => options.ignoredDirectories?.includes(part)),
22
+ ignored: (candidate) => ignored(path.relative(target, candidate)),
16
23
  });
17
24
  watcher.on("all", (event, candidate) => {
18
25
  listener(event === "change" ? "change" : "rename", path.relative(target, candidate) || null);
@@ -1 +1 @@
1
- {"version":3,"file":"watch-filesystem.js","sourceRoot":"","sources":["../../src/utils/watch-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,2EAA2E;AAC3E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,KAAK;QACrB,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,CACrB,IAAI;aACD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;aAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;KAChE,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACrC,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"watch-filesystem.js","sourceRoot":"","sources":["../../src/utils/watch-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,CAAC,MAAM,eAAe,GAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAW,EAAE,CAC5C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,wEAAwE;IACxE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAChE,OAAO,WAAW,CAChB,MAAM,EACN,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EACrE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClB,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzE,CAAC,CACF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,KAAK;QACrB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACrC,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monotykamary/localterm-server",
3
- "version": "2.79.7",
3
+ "version": "2.79.8",
4
4
  "description": "PTY-backed HTTP/WebSocket server that powers localterm, built on Hono + node-pty.",
5
5
  "keywords": [
6
6
  "hono",