node-mac-recorder 2.18.7 → 2.18.9

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.
@@ -12,7 +12,9 @@
12
12
  "Bash(./test-cleanup.sh:*)",
13
13
  "Bash(FORCE_AVFOUNDATION=1 node test-avfoundation-dpr.js)",
14
14
  "Bash(FORCE_AVFOUNDATION=1 node test-cursor-fix.js)",
15
- "Bash(pkill:*)"
15
+ "Bash(pkill:*)",
16
+ "Bash(FORCE_AVFOUNDATION=1 node debug-cursor-scaling.js)",
17
+ "Bash(FORCE_AVFOUNDATION=1 node test-final-cursor.js)"
16
18
  ],
17
19
  "deny": [],
18
20
  "ask": []
package/index.js CHANGED
@@ -253,10 +253,10 @@ class MacRecorder extends EventEmitter {
253
253
  // Recording için display bilgisini sakla (cursor capture için)
254
254
  const targetDisplay = displays.find(d => d.id === targetDisplayId);
255
255
 
256
- // CRITICAL FIX: Get actual physical dimensions for proper cursor scaling
257
- // This fixes cursor coordinate issues on Retina displays during AVFoundation recording
258
- const cursorPosition = nativeBinding.getCursorPosition();
259
- const displayScalingInfo = cursorPosition.displayInfo;
256
+ // CRITICAL FIX: For now, use logical dimensions to avoid cross-display scaling issues
257
+ // This prevents using wrong display's physical dimensions
258
+ let displayScalingInfo = null;
259
+ // TODO: Implement proper per-display scaling detection in native layer
260
260
 
261
261
  this.recordingDisplayInfo = {
262
262
  displayId: targetDisplayId,
@@ -308,10 +308,10 @@ class MacRecorder extends EventEmitter {
308
308
  }
309
309
 
310
310
  if (targetDisplay) {
311
- // CRITICAL FIX: Get actual physical dimensions for proper cursor scaling
312
- // This fixes cursor coordinate issues on Retina displays during AVFoundation recording
313
- const cursorPosition = nativeBinding.getCursorPosition();
314
- const displayScalingInfo = cursorPosition.displayInfo;
311
+ // CRITICAL FIX: For now, use logical dimensions to avoid cross-display scaling issues
312
+ // This prevents using wrong display's physical dimensions
313
+ const displayScalingInfo = null;
314
+ // TODO: Implement proper per-display scaling detection in native layer
315
315
 
316
316
  this.recordingDisplayInfo = {
317
317
  displayId: targetDisplay.id,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-mac-recorder",
3
- "version": "2.18.7",
3
+ "version": "2.18.9",
4
4
  "description": "Native macOS screen recording package for Node.js applications",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -2,7 +2,6 @@
2
2
  #import <ScreenCaptureKit/ScreenCaptureKit.h>
3
3
  // NO AVFoundation - Pure ScreenCaptureKit implementation
4
4
 
5
- API_AVAILABLE(macos(15.0))
6
5
  @interface ScreenCaptureKitRecorder : NSObject
7
6
 
8
7
  + (BOOL)isScreenCaptureKitAvailable;
@@ -297,9 +297,11 @@ static NSString *g_outputPath = nil;
297
297
  }
298
298
  }
299
299
 
300
- if (!g_recordingOutput) {
301
- NSLog(@"❌ Failed to create SCRecordingOutput");
302
- return;
300
+ if (@available(macOS 15.0, *)) {
301
+ if (!g_recordingOutput) {
302
+ NSLog(@"❌ Failed to create SCRecordingOutput");
303
+ return;
304
+ }
303
305
  }
304
306
 
305
307
  NSLog(@"✅ Pure ScreenCaptureKit recording output created");
@@ -389,9 +391,11 @@ static NSString *g_outputPath = nil;
389
391
  g_isCleaningUp = YES;
390
392
  g_isRecording = NO;
391
393
 
392
- if (g_recordingOutput) {
393
- // SCRecordingOutput finalizes automatically
394
- NSLog(@"✅ Pure recording output finalized");
394
+ if (@available(macOS 15.0, *)) {
395
+ if (g_recordingOutput) {
396
+ // SCRecordingOutput finalizes automatically
397
+ NSLog(@"✅ Pure recording output finalized");
398
+ }
395
399
  }
396
400
 
397
401
  [ScreenCaptureKitRecorder cleanupVideoWriter];
@@ -413,9 +417,11 @@ static NSString *g_outputPath = nil;
413
417
  NSLog(@"✅ Stream reference cleared");
414
418
  }
415
419
 
416
- if (g_recordingOutput) {
417
- g_recordingOutput = nil;
418
- NSLog(@"✅ Recording output reference cleared");
420
+ if (@available(macOS 15.0, *)) {
421
+ if (g_recordingOutput) {
422
+ g_recordingOutput = nil;
423
+ NSLog(@"✅ Recording output reference cleared");
424
+ }
419
425
  }
420
426
 
421
427
  if (g_streamDelegate) {