@oh-my-pi/pi-natives 17.2.5 → 17.2.7

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 CHANGED
@@ -9,6 +9,7 @@ Native Rust functionality via N-API.
9
9
  - **SIXEL**: Terminal image encoding for SIXEL-capable terminals (decode, resize, encode in one pass)
10
10
  - **Audio**: Cross-platform low-latency microphone capture and gapless speaker playback
11
11
  - **WebRTC**: Native Opus media, SDP offer/answer negotiation, and data-channel events for live sessions
12
+ - **File locking**: Process-owned cross-process locks with in-memory kernel names on Linux/Windows and `flock(2)` sidecars on other Unix platforms
12
13
 
13
14
  General-purpose image processing (decode/resize/encode for files and buffers)
14
15
  lives in [`Bun.Image`](https://bun.com/docs/runtime/image) on the JS side; this
package/native/index.d.ts CHANGED
@@ -61,6 +61,22 @@ export declare class DesktopSession {
61
61
  close(): Promise<undefined>
62
62
  }
63
63
 
64
+ /**
65
+ * Process-owned cross-platform advisory lock.
66
+ *
67
+ * `tryAcquire()` is non-blocking; its returned handle reports whether it won
68
+ * through `acquired`. Ownership ends on `release()`, garbage collection, or
69
+ * process exit; `release()` is idempotent.
70
+ */
71
+ export declare class FileLock {
72
+ /** Try to acquire `path` without blocking. */
73
+ static tryAcquire(path: string): FileLock
74
+ /** Whether this handle owns the requested lock. */
75
+ get acquired(): boolean
76
+ /** Release this handle's ownership without affecting a successor. */
77
+ release(): void
78
+ }
79
+
64
80
  /** WebRTC peer that accepts 16 kHz mono PCM and renders remote Opus audio. */
65
81
  export declare class LiveWebRtcPeer {
66
82
  /**
@@ -263,7 +279,7 @@ export declare function __ompInstallTokioRuntime(): void
263
279
  * `packages/natives/native/index.js` (which derives the name from
264
280
  * `package.json#version`).
265
281
  */
266
- export declare function __piNativesV17_2_5(): void
282
+ export declare function __piNativesV17_2_7(): void
267
283
 
268
284
  /**
269
285
  * Apply ast-grep rewrite rules to matching files; honors `dryRun` and returns
package/native/index.js CHANGED
@@ -19,6 +19,7 @@ const nativeBindings = loadNative();
19
19
  export const AudioCapture = nativeBindings.AudioCapture;
20
20
  export const AudioPlayback = nativeBindings.AudioPlayback;
21
21
  export const DesktopSession = nativeBindings.DesktopSession;
22
+ export const FileLock = nativeBindings.FileLock;
22
23
  export const LiveWebRtcPeer = nativeBindings.LiveWebRtcPeer;
23
24
  export const MacAppearanceObserver = nativeBindings.MacAppearanceObserver;
24
25
  export const MacOSPowerAssertion = nativeBindings.MacOSPowerAssertion;
@@ -28,7 +29,7 @@ export const Shell = nativeBindings.Shell;
28
29
 
29
30
  // functions
30
31
  export const __ompInstallTokioRuntime = nativeBindings.__ompInstallTokioRuntime;
31
- export const __piNativesV17_2_5 = nativeBindings.__piNativesV17_2_5;
32
+ export const __piNativesV17_2_7 = nativeBindings.__piNativesV17_2_7;
32
33
  export const astEdit = nativeBindings.astEdit;
33
34
  export const astGrep = nativeBindings.astGrep;
34
35
  export const astMatch = nativeBindings.astMatch;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-my-pi/pi-natives",
3
- "version": "17.2.5",
3
+ "version": "17.2.7",
4
4
  "description": "Native Rust bindings for audio, WebRTC, grep, clipboard, image processing, syntax highlighting, PTY, and shell operations via N-API",
5
5
  "type": "module",
6
6
  "homepage": "https://omp.sh",
@@ -80,10 +80,10 @@
80
80
  }
81
81
  },
82
82
  "optionalDependencies": {
83
- "@oh-my-pi/pi-natives-linux-x64": "17.2.5",
84
- "@oh-my-pi/pi-natives-linux-arm64": "17.2.5",
85
- "@oh-my-pi/pi-natives-darwin-x64": "17.2.5",
86
- "@oh-my-pi/pi-natives-darwin-arm64": "17.2.5",
87
- "@oh-my-pi/pi-natives-win32-x64": "17.2.5"
83
+ "@oh-my-pi/pi-natives-linux-x64": "17.2.7",
84
+ "@oh-my-pi/pi-natives-linux-arm64": "17.2.7",
85
+ "@oh-my-pi/pi-natives-darwin-x64": "17.2.7",
86
+ "@oh-my-pi/pi-natives-darwin-arm64": "17.2.7",
87
+ "@oh-my-pi/pi-natives-win32-x64": "17.2.7"
88
88
  }
89
89
  }