@nonstrict/recordkit 0.87.2 → 0.97.1

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.
Files changed (54) hide show
  1. package/bin/README.md +1 -1
  2. package/bin/recordkit-rpc +0 -0
  3. package/out/Errors.d.ts +91 -0
  4. package/out/Errors.js +63 -0
  5. package/out/Errors.js.map +1 -0
  6. package/out/InputEvents.d.ts +661 -0
  7. package/out/InputEvents.js +8 -0
  8. package/out/InputEvents.js.map +1 -0
  9. package/out/IpcRecordKit.js +13 -0
  10. package/out/IpcRecordKit.js.map +1 -1
  11. package/out/NonstrictRPC.d.ts +9 -0
  12. package/out/NonstrictRPC.js +27 -4
  13. package/out/NonstrictRPC.js.map +1 -1
  14. package/out/RecordKit.d.ts +267 -5
  15. package/out/RecordKit.js +243 -3
  16. package/out/RecordKit.js.map +1 -1
  17. package/out/Recorder.d.ts +451 -53
  18. package/out/Recorder.js +80 -2
  19. package/out/Recorder.js.map +1 -1
  20. package/out/RecordingMetadata.d.ts +96 -0
  21. package/out/RecordingMetadata.js +12 -0
  22. package/out/RecordingMetadata.js.map +1 -0
  23. package/out/WebAudioUtils.d.ts +35 -0
  24. package/out/WebAudioUtils.js +37 -0
  25. package/out/WebAudioUtils.js.map +1 -1
  26. package/out/WindowLevels.d.ts +46 -0
  27. package/out/WindowLevels.js +41 -0
  28. package/out/WindowLevels.js.map +1 -0
  29. package/out/browser.d.ts +8 -1
  30. package/out/browser.js +3 -1
  31. package/out/browser.js.map +1 -1
  32. package/out/index.cjs +603 -9
  33. package/out/index.cjs.map +1 -1
  34. package/out/index.d.ts +8 -0
  35. package/out/index.js +3 -0
  36. package/out/index.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/Errors.test.ts +38 -0
  39. package/src/Errors.ts +151 -0
  40. package/src/InputEvents.ts +695 -0
  41. package/src/IpcRecordKit.ts +12 -0
  42. package/src/NonstrictRPC.test.ts +24 -1
  43. package/src/NonstrictRPC.ts +29 -5
  44. package/src/RecordKit.ts +347 -11
  45. package/src/Recorder.schema.test.ts +167 -0
  46. package/src/Recorder.ts +558 -80
  47. package/src/RecordingMetadata.ts +125 -0
  48. package/src/WebAudioUtils.test.ts +78 -0
  49. package/src/WebAudioUtils.ts +57 -1
  50. package/src/WindowLevels.test.ts +34 -0
  51. package/src/WindowLevels.ts +47 -0
  52. package/src/browser.ts +12 -2
  53. package/src/index.ts +8 -0
  54. package/src/__snapshots__/NonstrictRPC.test.ts.snap +0 -24
package/out/RecordKit.js CHANGED
@@ -2,6 +2,30 @@ import { IpcRecordKit } from "./IpcRecordKit.js";
2
2
  import { Recorder } from "./Recorder.js";
3
3
  import { EventEmitter } from "events";
4
4
  import { existsSync } from "node:fs";
5
+ /** @internal */
6
+ function windowIdOf(window) {
7
+ return typeof window == 'number' ? window : window.id;
8
+ }
9
+ /** @internal */
10
+ function displayIdOf(display) {
11
+ return display == null ? undefined : (typeof display == 'number' ? display : display.id);
12
+ }
13
+ /** @internal */
14
+ function cameraIdOf(camera) {
15
+ return typeof camera == 'string' ? camera : camera.id;
16
+ }
17
+ /** @internal */
18
+ function microphoneIdOf(microphone) {
19
+ return typeof microphone == 'string' ? microphone : microphone.id;
20
+ }
21
+ /** @internal */
22
+ function appleDeviceIdOf(device) {
23
+ return typeof device == 'string' ? device : device.id;
24
+ }
25
+ /** @internal */
26
+ function applicationIdOf(application) {
27
+ return typeof application == 'number' ? application : application.id;
28
+ }
5
29
  /**
6
30
  * Entry point for the RecordKit SDK, an instance is available as `recordkit` that can be imported from the module. Do not instantiate this class directly.
7
31
  *
@@ -13,6 +37,15 @@ import { existsSync } from "node:fs";
13
37
  *
14
38
  * @groupDescription Logging
15
39
  * Log what's going on to the console for easy debugging and troubleshooting. See the [Logging and Error Handling guide](https://recordkit.dev/guides/logging-and-errors) for more information.
40
+ *
41
+ * @groupDescription Preferred Devices
42
+ * Read and update the user's preferred devices, so you can pre-select sensible defaults in your UI.
43
+ *
44
+ * @groupDescription Window Control
45
+ * Move, resize, center and maximize windows of other applications (requires Accessibility Control permission).
46
+ *
47
+ * @groupDescription Device Control
48
+ * Configure capture devices, such as selecting a camera's active format or fetching an application's icon.
16
49
  */
17
50
  export class RecordKit extends EventEmitter {
18
51
  ipcRecordKit = new IpcRecordKit();
@@ -38,8 +71,9 @@ export class RecordKit extends EventEmitter {
38
71
  await this.ipcRecordKit.initialize(rpcBinaryPath, args.logRpcMessages);
39
72
  const logHandlerInstance = this.ipcRecordKit.nsrpc.registerClosure({
40
73
  handler: (params) => {
41
- console.log('RecordKit:', params.formattedMessage);
42
- this.emit('log', params);
74
+ const message = params;
75
+ console.log('RecordKit:', message.formattedMessage);
76
+ this.emit('log', message);
43
77
  },
44
78
  prefix: 'RecordKit.logHandler',
45
79
  lifecycle: this
@@ -118,6 +152,179 @@ export class RecordKit extends EventEmitter {
118
152
  async getRunningApplications() {
119
153
  return await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'getRunningApplications' });
120
154
  }
155
+ /**
156
+ * The user's preferred devices for each source type, ordered most-preferred first.
157
+ *
158
+ * RecordKit remembers which devices the user last recorded with (unless disabled via the recorder's
159
+ * `updatesUserPreferred` setting). Use this to pre-select a sensible default device in your UI.
160
+ *
161
+ * @group Preferred Devices
162
+ */
163
+ async getUserPreferred() {
164
+ return await this.ipcRecordKit.nsrpc.perform({ type: 'UserPreferred', action: 'getPreferred' });
165
+ }
166
+ /**
167
+ * Records the given microphone as the user's most-preferred microphone.
168
+ *
169
+ * Call this whenever the user manually selects a microphone, so it can be pre-selected later via
170
+ * {@link getUserPreferred}. The selection moves to the front of {@link UserPreferred.microphoneIDs}.
171
+ *
172
+ * @param microphone - The microphone to prefer, either a {@link Microphone} or its {@link Microphone.id}.
173
+ * @group Preferred Devices
174
+ */
175
+ async updatePreferredMicrophone(microphone) {
176
+ const id = microphoneIdOf(microphone);
177
+ await this.ipcRecordKit.nsrpc.perform({ type: 'UserPreferred', action: 'updateMicrophone', params: { id } });
178
+ }
179
+ /**
180
+ * Records the given camera as the user's most-preferred camera.
181
+ *
182
+ * Call this whenever the user manually selects a camera, so it can be pre-selected later via
183
+ * {@link getUserPreferred}. The selection moves to the front of {@link UserPreferred.cameraIDs}.
184
+ *
185
+ * @param camera - The camera to prefer, either a {@link Camera} or its {@link Camera.id}.
186
+ * @group Preferred Devices
187
+ */
188
+ async updatePreferredCamera(camera) {
189
+ const id = cameraIdOf(camera);
190
+ await this.ipcRecordKit.nsrpc.perform({ type: 'UserPreferred', action: 'updateCamera', params: { id } });
191
+ }
192
+ /**
193
+ * Records the given display as the user's most-preferred display.
194
+ *
195
+ * Call this whenever the user manually selects a display, so it can be pre-selected later via
196
+ * {@link getUserPreferred}. The selection moves to the front of {@link UserPreferred.displayIDs}.
197
+ *
198
+ * @param display - The display to prefer, either a {@link Display} or its {@link Display.id}.
199
+ * @group Preferred Devices
200
+ */
201
+ async updatePreferredDisplay(display) {
202
+ const id = displayIdOf(display);
203
+ await this.ipcRecordKit.nsrpc.perform({ type: 'UserPreferred', action: 'updateDisplay', params: { id } });
204
+ }
205
+ /**
206
+ * Records the given Apple device as the user's most-preferred Apple device.
207
+ *
208
+ * Call this whenever the user manually selects an Apple device, so it can be pre-selected later via
209
+ * {@link getUserPreferred}. The selection moves to the front of {@link UserPreferred.appleDeviceIDs}.
210
+ *
211
+ * @param device - The Apple device to prefer, either an {@link AppleDevice} or its {@link AppleDevice.id}.
212
+ * @group Preferred Devices
213
+ */
214
+ async updatePreferredAppleDevice(device) {
215
+ const id = appleDeviceIdOf(device);
216
+ await this.ipcRecordKit.nsrpc.perform({ type: 'UserPreferred', action: 'updateAppleDevice', params: { id } });
217
+ }
218
+ /**
219
+ * Maximizes the given window, resizing it to fill the display's visible area (excluding the menu bar and Dock)
220
+ * and centering it on that display.
221
+ *
222
+ * Requires Accessibility Control permission (see {@link getAccessibilityControlAccess}).
223
+ *
224
+ * @remarks
225
+ * Rejects if the window cannot be maximized — typically because Accessibility permission is missing,
226
+ * the target display cannot be found, or the window is minimized or closed.
227
+ *
228
+ * @param window - The window to maximize, either a {@link Window} or its {@link Window.id}.
229
+ * @param options.display - The display to maximize onto, either a {@link Display} or its {@link Display.id}. Defaults to the window's current display.
230
+ * @group Window Control
231
+ */
232
+ async maximizeWindow(window, options) {
233
+ await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'windowMaximize', params: { window: windowIdOf(window), display: displayIdOf(options?.display) } });
234
+ }
235
+ /**
236
+ * Resizes the given window to the given size (in points), keeping it centered on its display.
237
+ *
238
+ * Requires Accessibility Control permission (see {@link getAccessibilityControlAccess}).
239
+ *
240
+ * @remarks
241
+ * The requested size is clipped to the display's visible frame if it would be larger. After resizing,
242
+ * the window is re-centered so that a window which could not shrink/grow to the requested size still
243
+ * ends up centered. Rejects if Accessibility permission is missing, the target display cannot be found,
244
+ * or the window is minimized, closed, or does not support resizing.
245
+ *
246
+ * @param window - The window to resize, either a {@link Window} or its {@link Window.id}.
247
+ * @param size - The new size in points.
248
+ * @param options.display - The display to center on, either a {@link Display} or its {@link Display.id}. Defaults to the window's current display.
249
+ * @group Window Control
250
+ */
251
+ async resizeWindow(window, size, options) {
252
+ await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'windowResize', params: { window: windowIdOf(window), width: size.width, height: size.height, display: displayIdOf(options?.display) } });
253
+ }
254
+ /**
255
+ * Centers the given window within the visible area (excluding the menu bar and Dock) of its display,
256
+ * keeping its current size.
257
+ *
258
+ * Requires Accessibility Control permission (see {@link getAccessibilityControlAccess}).
259
+ *
260
+ * @remarks
261
+ * Rejects if Accessibility permission is missing, the target display cannot be found, or the window is
262
+ * minimized, closed, or does not support moving.
263
+ *
264
+ * @param window - The window to center, either a {@link Window} or its {@link Window.id}.
265
+ * @param options.display - The display to center on, either a {@link Display} or its {@link Display.id}. Defaults to the window's current display.
266
+ * @group Window Control
267
+ */
268
+ async centerWindow(window, options) {
269
+ await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'windowCenter', params: { window: windowIdOf(window), display: displayIdOf(options?.display) } });
270
+ }
271
+ /**
272
+ * Moves the given window so its top-left corner is at the given position (in points, top-left origin).
273
+ *
274
+ * Requires Accessibility Control permission (see {@link getAccessibilityControlAccess}).
275
+ *
276
+ * @remarks
277
+ * Rejects if Accessibility permission is missing, or the window is minimized, closed, or does not
278
+ * support moving.
279
+ *
280
+ * @param window - The window to move, either a {@link Window} or its {@link Window.id}.
281
+ * @param position - The new top-left origin for the window, in points (top-left coordinate space).
282
+ * @group Window Control
283
+ */
284
+ async moveWindow(window, position) {
285
+ await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'windowMove', params: { window: windowIdOf(window), x: position.x, y: position.y } });
286
+ }
287
+ /**
288
+ * Selects the camera's active capture format that best matches the given dimensions (in pixels).
289
+ *
290
+ * Use this when you want the camera to deliver a specific resolution — typically before recording or
291
+ * before showing a live preview, so the preview renders at the intended resolution. The format stays
292
+ * in effect until something else changes it.
293
+ *
294
+ * The chosen format is the smallest format whose dimensions are ≥ the target, preferring biplanar YUV
295
+ * pixel formats, and falling back to the largest available format if nothing meets the target.
296
+ *
297
+ * @remarks
298
+ * Rejects if the camera is unavailable, has no usable video format, or its configuration is locked by
299
+ * another process.
300
+ *
301
+ * @param camera - The camera to configure, either a {@link Camera} or its {@link Camera.id}.
302
+ * @param dimensions - Target dimensions in pixels.
303
+ * @group Device Control
304
+ */
305
+ async setCameraActiveFormat(camera, dimensions) {
306
+ await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'cameraSetActiveFormat', params: { camera: cameraIdOf(camera), width: dimensions.width, height: dimensions.height } });
307
+ }
308
+ /**
309
+ * Returns the camera capture format that {@link setCameraActiveFormat} would select for the given
310
+ * dimensions (in pixels), without applying it. Returns `undefined` if the camera has no suitable format.
311
+ *
312
+ * @group Device Control
313
+ */
314
+ async getCameraBestFormat(camera, dimensions) {
315
+ return await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'cameraBestFormat', params: { camera: cameraIdOf(camera), width: dimensions.width, height: dimensions.height } });
316
+ }
317
+ /**
318
+ * Returns the icon of the given running application as a `data:image/png;base64,...` URL,
319
+ * usable directly as the `src` of an HTML `<img>` tag.
320
+ *
321
+ * @group Device Control
322
+ */
323
+ async getApplicationIcon(application) {
324
+ const id = applicationIdOf(application);
325
+ const result = await this.ipcRecordKit.nsrpc.perform({ type: 'Recorder', action: 'getApplicationIcon', params: { application: id } });
326
+ return result.icon;
327
+ }
121
328
  /**
122
329
  * Indicates if camera can be used.
123
330
  *
@@ -160,6 +367,25 @@ export class RecordKit extends EventEmitter {
160
367
  }
161
368
  });
162
369
  }
370
+ /**
371
+ * Probes whether system audio can actually be recorded with the given backend by attempting a short silent capture.
372
+ *
373
+ * Unlike {@link getSystemAudioRecordingAccess}, which reads the recorded permission state, this verifies the
374
+ * permission is truly usable, immediately detecting cases where the OS reports a permission as granted but
375
+ * capture would still fail (e.g. after the user revokes it).
376
+ *
377
+ * @remarks If the permission state is still undetermined, this may trigger the system audio permission prompt.
378
+ * @group Permissions
379
+ */
380
+ async probeSystemAudioRecordingAccess(options) {
381
+ return await this.ipcRecordKit.nsrpc.perform({
382
+ type: 'AuthorizationStatus',
383
+ action: 'probeSystemAudioRecordingAccess',
384
+ params: {
385
+ backend: options?.backend ?? 'default'
386
+ }
387
+ });
388
+ }
163
389
  /**
164
390
  * Indicates if keystroke events of other apps can be recorded via Input Monitoring.
165
391
  *
@@ -216,7 +442,9 @@ export class RecordKit extends EventEmitter {
216
442
  * - `screenCaptureKit`: Screen Recording permission
217
443
  * - `_beta_coreAudio`: deprecated alias for `coreAudio`
218
444
  *
219
- * Afterwards, the users needs to restart this app, for the permission to become active in the app.
445
+ * For the `screenCaptureKit` backend the user must restart the app before the granted permission
446
+ * becomes active. The `default` and `coreAudio` backends return the live granted/denied result
447
+ * with no restart required (macOS 14.2+).
220
448
  *
221
449
  * @returns Boolean value that indicates whether the user granted or denied access to your app.
222
450
  * @group Permissions
@@ -256,6 +484,18 @@ export class RecordKit extends EventEmitter {
256
484
  async requestAccessibilityControlAccess() {
257
485
  return await this.ipcRecordKit.nsrpc.perform({ type: 'AuthorizationStatus', action: 'requestAccessibilityControlAccess' });
258
486
  }
487
+ /**
488
+ * Creates a {@link Recorder} for the given schema.
489
+ *
490
+ * The schema describes what to record (its `items`, e.g. a webcam, display, microphone or system audio),
491
+ * where to write the resulting RecordKit bundle (`output_directory`), and optional session-wide
492
+ * {@link RecorderSettings}. Call {@link Recorder.prepare} then {@link Recorder.start} on the returned recorder.
493
+ *
494
+ * @remarks The given `schema` is consumed: device/window objects in its `items` are replaced by their IDs and
495
+ * any callbacks are registered internally. Pass a fresh schema object per call rather than reusing one.
496
+ *
497
+ * @group Recording
498
+ */
259
499
  async createRecorder(schema) {
260
500
  return Recorder.newInstance(this.ipcRecordKit.nsrpc, schema);
261
501
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RecordKit.js","sourceRoot":"","sources":["../src/RecordKit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecordKit.js","sourceRoot":"","sources":["../src/RecordKit.ts"],"names":[],"mappings":"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"}