@recallai/desktop-sdk 2024.2.1-4bd5d080eda7b15e0578cfddf2c5de2bba06bc6c → 2024.2.1-5afb463f5e16c658dd0ce05298eb93a1dd6da1ed

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 (42) hide show
  1. package/binding.gyp +11 -1
  2. package/desktop_sdk_macos.framework/Headers/desktop_sdk_macos-Swift.h +6 -0
  3. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo +0 -0
  4. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo +0 -0
  5. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.abi.json +247 -3
  6. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.private.swiftinterface +7 -0
  7. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.swiftinterface +7 -0
  8. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.swiftmodule +0 -0
  9. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.abi.json +247 -3
  10. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.private.swiftinterface +7 -0
  11. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.swiftinterface +7 -0
  12. package/desktop_sdk_macos.framework/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.swiftmodule +0 -0
  13. package/desktop_sdk_macos.framework/Versions/A/Headers/desktop_sdk_macos-Swift.h +6 -0
  14. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo +0 -0
  15. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo +0 -0
  16. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.abi.json +247 -3
  17. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.private.swiftinterface +7 -0
  18. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.swiftinterface +7 -0
  19. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.swiftmodule +0 -0
  20. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.abi.json +247 -3
  21. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.private.swiftinterface +7 -0
  22. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.swiftinterface +7 -0
  23. package/desktop_sdk_macos.framework/Versions/A/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.swiftmodule +0 -0
  24. package/desktop_sdk_macos.framework/Versions/A/desktop_sdk_macos +0 -0
  25. package/desktop_sdk_macos.framework/Versions/Current/Headers/desktop_sdk_macos-Swift.h +6 -0
  26. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo +0 -0
  27. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo +0 -0
  28. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.abi.json +247 -3
  29. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.private.swiftinterface +7 -0
  30. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.swiftinterface +7 -0
  31. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/arm64-apple-macos.swiftmodule +0 -0
  32. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.abi.json +247 -3
  33. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.private.swiftinterface +7 -0
  34. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.swiftinterface +7 -0
  35. package/desktop_sdk_macos.framework/Versions/Current/Modules/desktop_sdk_macos.swiftmodule/x86_64-apple-macos.swiftmodule +0 -0
  36. package/desktop_sdk_macos.framework/Versions/Current/desktop_sdk_macos +0 -0
  37. package/desktop_sdk_macos.framework/desktop_sdk_macos +0 -0
  38. package/index.d.ts +5 -0
  39. package/index.js +8 -1
  40. package/package.json +6 -3
  41. package/src/RecallAiDesktopSdk.h +4 -1
  42. package/src/main.cc +82 -31
@@ -840,6 +840,62 @@
840
840
  "declKind": "Import",
841
841
  "moduleName": "desktop_sdk_macos"
842
842
  },
843
+ {
844
+ "kind": "Import",
845
+ "name": "Foundation",
846
+ "printedName": "Foundation",
847
+ "declKind": "Import",
848
+ "moduleName": "desktop_sdk_macos"
849
+ },
850
+ {
851
+ "kind": "Import",
852
+ "name": "SystemExtensions",
853
+ "printedName": "SystemExtensions",
854
+ "declKind": "Import",
855
+ "moduleName": "desktop_sdk_macos"
856
+ },
857
+ {
858
+ "kind": "Import",
859
+ "name": "os",
860
+ "printedName": "os",
861
+ "declKind": "Import",
862
+ "moduleName": "desktop_sdk_macos"
863
+ },
864
+ {
865
+ "kind": "TypeDecl",
866
+ "name": "RecallAiSdkEvent",
867
+ "printedName": "RecallAiSdkEvent",
868
+ "children": [
869
+ {
870
+ "kind": "Function",
871
+ "name": "serialize",
872
+ "printedName": "serialize()",
873
+ "children": [
874
+ {
875
+ "kind": "TypeNominal",
876
+ "name": "String",
877
+ "printedName": "Swift.String",
878
+ "usr": "s:SS"
879
+ }
880
+ ],
881
+ "declKind": "Func",
882
+ "usr": "s:17desktop_sdk_macos16RecallAiSdkEventV9serializeSSyF",
883
+ "mangledName": "$s17desktop_sdk_macos16RecallAiSdkEventV9serializeSSyF",
884
+ "moduleName": "desktop_sdk_macos",
885
+ "declAttributes": [
886
+ "AccessControl"
887
+ ],
888
+ "funcSelfKind": "NonMutating"
889
+ }
890
+ ],
891
+ "declKind": "Struct",
892
+ "usr": "s:17desktop_sdk_macos16RecallAiSdkEventV",
893
+ "mangledName": "$s17desktop_sdk_macos16RecallAiSdkEventV",
894
+ "moduleName": "desktop_sdk_macos",
895
+ "declAttributes": [
896
+ "AccessControl"
897
+ ]
898
+ },
843
899
  {
844
900
  "kind": "Import",
845
901
  "name": "ApplicationServices",
@@ -2553,6 +2609,44 @@
2553
2609
  ],
2554
2610
  "funcSelfKind": "NonMutating"
2555
2611
  },
2612
+ {
2613
+ "kind": "Function",
2614
+ "name": "registerEventCallback",
2615
+ "printedName": "registerEventCallback(callback:)",
2616
+ "children": [
2617
+ {
2618
+ "kind": "TypeNominal",
2619
+ "name": "Void",
2620
+ "printedName": "()"
2621
+ },
2622
+ {
2623
+ "kind": "TypeFunc",
2624
+ "name": "Function",
2625
+ "printedName": "(desktop_sdk_macos.RecallAiSdkEvent) -> ()",
2626
+ "children": [
2627
+ {
2628
+ "kind": "TypeNominal",
2629
+ "name": "Void",
2630
+ "printedName": "()"
2631
+ },
2632
+ {
2633
+ "kind": "TypeNominal",
2634
+ "name": "RecallAiSdkEvent",
2635
+ "printedName": "desktop_sdk_macos.RecallAiSdkEvent",
2636
+ "usr": "s:17desktop_sdk_macos16RecallAiSdkEventV"
2637
+ }
2638
+ ]
2639
+ }
2640
+ ],
2641
+ "declKind": "Func",
2642
+ "usr": "s:17desktop_sdk_macos18RecallAiDesktopSdkC21registerEventCallback8callbackyyAA0degI0Vc_tF",
2643
+ "mangledName": "$s17desktop_sdk_macos18RecallAiDesktopSdkC21registerEventCallback8callbackyyAA0degI0Vc_tF",
2644
+ "moduleName": "desktop_sdk_macos",
2645
+ "declAttributes": [
2646
+ "AccessControl"
2647
+ ],
2648
+ "funcSelfKind": "NonMutating"
2649
+ },
2556
2650
  {
2557
2651
  "kind": "Function",
2558
2652
  "name": "installCameraExtension",
@@ -3175,6 +3269,39 @@
3175
3269
  ],
3176
3270
  "funcSelfKind": "NonMutating"
3177
3271
  },
3272
+ {
3273
+ "kind": "Function",
3274
+ "name": "RecallAiSdkRegisterCallback",
3275
+ "printedName": "RecallAiSdkRegisterCallback(callback:userData:)",
3276
+ "children": [
3277
+ {
3278
+ "kind": "TypeNominal",
3279
+ "name": "Void",
3280
+ "printedName": "()"
3281
+ },
3282
+ {
3283
+ "kind": "TypeNominal",
3284
+ "name": "UnsafeRawPointer",
3285
+ "printedName": "Swift.UnsafeRawPointer",
3286
+ "usr": "s:SV"
3287
+ },
3288
+ {
3289
+ "kind": "TypeNominal",
3290
+ "name": "UnsafeMutableRawPointer",
3291
+ "printedName": "Swift.UnsafeMutableRawPointer",
3292
+ "usr": "s:Sv"
3293
+ }
3294
+ ],
3295
+ "declKind": "Func",
3296
+ "usr": "c:(cm)RecallAiSdkRegisterCallbackWithCallback:userData:",
3297
+ "mangledName": "$s17desktop_sdk_macos27RecallAiSdkRegisterCallback8callback8userDataySV_SvtF",
3298
+ "moduleName": "desktop_sdk_macos",
3299
+ "declAttributes": [
3300
+ "AccessControl",
3301
+ "CDecl"
3302
+ ],
3303
+ "funcSelfKind": "NonMutating"
3304
+ },
3178
3305
  {
3179
3306
  "kind": "Import",
3180
3307
  "name": "AVFoundation",
@@ -3356,6 +3483,116 @@
3356
3483
  }
3357
3484
  ]
3358
3485
  },
3486
+ {
3487
+ "kind": "Var",
3488
+ "name": "titleContains",
3489
+ "printedName": "titleContains",
3490
+ "children": [
3491
+ {
3492
+ "kind": "TypeNominal",
3493
+ "name": "Optional",
3494
+ "printedName": "Swift.String?",
3495
+ "children": [
3496
+ {
3497
+ "kind": "TypeNominal",
3498
+ "name": "String",
3499
+ "printedName": "Swift.String",
3500
+ "usr": "s:SS"
3501
+ }
3502
+ ],
3503
+ "usr": "s:Sq"
3504
+ }
3505
+ ],
3506
+ "declKind": "Var",
3507
+ "usr": "s:17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvp",
3508
+ "mangledName": "$s17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvp",
3509
+ "moduleName": "desktop_sdk_macos",
3510
+ "declAttributes": [
3511
+ "HasInitialValue",
3512
+ "HasStorage",
3513
+ "AccessControl"
3514
+ ],
3515
+ "hasStorage": true,
3516
+ "accessors": [
3517
+ {
3518
+ "kind": "Accessor",
3519
+ "name": "Get",
3520
+ "printedName": "Get()",
3521
+ "children": [
3522
+ {
3523
+ "kind": "TypeNominal",
3524
+ "name": "Optional",
3525
+ "printedName": "Swift.String?",
3526
+ "children": [
3527
+ {
3528
+ "kind": "TypeNominal",
3529
+ "name": "String",
3530
+ "printedName": "Swift.String",
3531
+ "usr": "s:SS"
3532
+ }
3533
+ ],
3534
+ "usr": "s:Sq"
3535
+ }
3536
+ ],
3537
+ "declKind": "Accessor",
3538
+ "usr": "s:17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvg",
3539
+ "mangledName": "$s17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvg",
3540
+ "moduleName": "desktop_sdk_macos",
3541
+ "implicit": true,
3542
+ "accessorKind": "get"
3543
+ },
3544
+ {
3545
+ "kind": "Accessor",
3546
+ "name": "Set",
3547
+ "printedName": "Set()",
3548
+ "children": [
3549
+ {
3550
+ "kind": "TypeNominal",
3551
+ "name": "Void",
3552
+ "printedName": "()"
3553
+ },
3554
+ {
3555
+ "kind": "TypeNominal",
3556
+ "name": "Optional",
3557
+ "printedName": "Swift.String?",
3558
+ "children": [
3559
+ {
3560
+ "kind": "TypeNominal",
3561
+ "name": "String",
3562
+ "printedName": "Swift.String",
3563
+ "usr": "s:SS"
3564
+ }
3565
+ ],
3566
+ "usr": "s:Sq"
3567
+ }
3568
+ ],
3569
+ "declKind": "Accessor",
3570
+ "usr": "s:17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvs",
3571
+ "mangledName": "$s17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvs",
3572
+ "moduleName": "desktop_sdk_macos",
3573
+ "implicit": true,
3574
+ "accessorKind": "set"
3575
+ },
3576
+ {
3577
+ "kind": "Accessor",
3578
+ "name": "Modify",
3579
+ "printedName": "Modify()",
3580
+ "children": [
3581
+ {
3582
+ "kind": "TypeNominal",
3583
+ "name": "Void",
3584
+ "printedName": "()"
3585
+ }
3586
+ ],
3587
+ "declKind": "Accessor",
3588
+ "usr": "s:17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvM",
3589
+ "mangledName": "$s17desktop_sdk_macos17UiElementSelectorV13titleContainsSSSgvM",
3590
+ "moduleName": "desktop_sdk_macos",
3591
+ "implicit": true,
3592
+ "accessorKind": "_modify"
3593
+ }
3594
+ ]
3595
+ },
3359
3596
  {
3360
3597
  "kind": "Var",
3361
3598
  "name": "desc",
@@ -7399,6 +7636,13 @@
7399
7636
  "length": 4,
7400
7637
  "value": "true"
7401
7638
  },
7639
+ {
7640
+ "filePath": "\/Users\/runner\/work\/nebula\/nebula\/desktop-sdk\/macos\/desktop-sdk.macos\/desktop-sdk.macos\/RecallAiDesktopSdk.swift",
7641
+ "kind": "Array",
7642
+ "offset": 642,
7643
+ "length": 2,
7644
+ "value": "[]"
7645
+ },
7402
7646
  {
7403
7647
  "filePath": "\/Users\/runner\/work\/nebula\/nebula\/desktop-sdk\/macos\/desktop-sdk.macos\/desktop-sdk.macos\/webrtc\/WebRtcClient.swift",
7404
7648
  "kind": "Array",
@@ -7500,21 +7744,21 @@
7500
7744
  {
7501
7745
  "filePath": "\/Users\/runner\/work\/nebula\/nebula\/desktop-sdk\/macos\/desktop-sdk.macos\/desktop-sdk.macos\/ui-scraping\/UiScrapingService.swift",
7502
7746
  "kind": "IntegerLiteral",
7503
- "offset": 567,
7747
+ "offset": 603,
7504
7748
  "length": 2,
7505
7749
  "value": "10"
7506
7750
  },
7507
7751
  {
7508
7752
  "filePath": "\/Users\/runner\/work\/nebula\/nebula\/desktop-sdk\/macos\/desktop-sdk.macos\/desktop-sdk.macos\/ui-scraping\/UiScrapingService.swift",
7509
7753
  "kind": "IntegerLiteral",
7510
- "offset": 596,
7754
+ "offset": 632,
7511
7755
  "length": 2,
7512
7756
  "value": "10"
7513
7757
  },
7514
7758
  {
7515
7759
  "filePath": "\/Users\/runner\/work\/nebula\/nebula\/desktop-sdk\/macos\/desktop-sdk.macos\/desktop-sdk.macos\/ui-scraping\/UiScrapingService.swift",
7516
7760
  "kind": "StringLiteral",
7517
- "offset": 680,
7761
+ "offset": 716,
7518
7762
  "length": 13,
7519
7763
  "value": "\"RecallAiSdk\""
7520
7764
  },
@@ -49,6 +49,9 @@ extension desktop_sdk_macos.ScreenShareFrame : Swift.Equatable {
49
49
  public protocol AudioDeviceAudioDelegate {
50
50
  func handleDeviceAudioBuffer(sampleBuffer: AVFAudio.AVAudioPCMBuffer)
51
51
  }
52
+ public struct RecallAiSdkEvent {
53
+ public func serialize() -> Swift.String
54
+ }
52
55
  public struct Meeting : Swift.CustomDebugStringConvertible, Swift.Equatable {
53
56
  public var title: Swift.String?
54
57
  public var meetingId: Swift.String?
@@ -83,6 +86,7 @@ public struct MeetingParticipant : Swift.CustomDebugStringConvertible, Swift.Equ
83
86
  public class RecallAiDesktopSdk {
84
87
  public init(config: desktop_sdk_macos.RecallAiDesktopSdkConfig)
85
88
  public func toggle(enabled: Swift.Bool)
89
+ public func registerEventCallback(callback: @escaping (desktop_sdk_macos.RecallAiSdkEvent) -> Swift.Void)
86
90
  public func installCameraExtension(extensionBundleIdentifier: Swift.String)
87
91
  public func uninstallCameraExtension(extensionBundleIdentifier: Swift.String)
88
92
  @objc deinit
@@ -106,8 +110,11 @@ public protocol MeetingAppMediaCapturerDelegate {
106
110
  public func RecallAiSdkInit(configJson: Swift.UnsafePointer<Swift.Int8>)
107
111
  @_cdecl("recallai_sdk_toggle")
108
112
  public func RecallAiSdkToggle(enabled: Swift.Bool)
113
+ @_cdecl("recallai_sdk_register_callback")
114
+ public func RecallAiSdkRegisterCallback(callback: Swift.UnsafeRawPointer, userData: Swift.UnsafeMutableRawPointer)
109
115
  public struct UiElementSelector {
110
116
  public var title: Swift.String?
117
+ public var titleContains: Swift.String?
111
118
  public var desc: Swift.String?
112
119
  public var descContains: Swift.String?
113
120
  public var label: Swift.String?
@@ -49,6 +49,9 @@ extension desktop_sdk_macos.ScreenShareFrame : Swift.Equatable {
49
49
  public protocol AudioDeviceAudioDelegate {
50
50
  func handleDeviceAudioBuffer(sampleBuffer: AVFAudio.AVAudioPCMBuffer)
51
51
  }
52
+ public struct RecallAiSdkEvent {
53
+ public func serialize() -> Swift.String
54
+ }
52
55
  public struct Meeting : Swift.CustomDebugStringConvertible, Swift.Equatable {
53
56
  public var title: Swift.String?
54
57
  public var meetingId: Swift.String?
@@ -83,6 +86,7 @@ public struct MeetingParticipant : Swift.CustomDebugStringConvertible, Swift.Equ
83
86
  public class RecallAiDesktopSdk {
84
87
  public init(config: desktop_sdk_macos.RecallAiDesktopSdkConfig)
85
88
  public func toggle(enabled: Swift.Bool)
89
+ public func registerEventCallback(callback: @escaping (desktop_sdk_macos.RecallAiSdkEvent) -> Swift.Void)
86
90
  public func installCameraExtension(extensionBundleIdentifier: Swift.String)
87
91
  public func uninstallCameraExtension(extensionBundleIdentifier: Swift.String)
88
92
  @objc deinit
@@ -106,8 +110,11 @@ public protocol MeetingAppMediaCapturerDelegate {
106
110
  public func RecallAiSdkInit(configJson: Swift.UnsafePointer<Swift.Int8>)
107
111
  @_cdecl("recallai_sdk_toggle")
108
112
  public func RecallAiSdkToggle(enabled: Swift.Bool)
113
+ @_cdecl("recallai_sdk_register_callback")
114
+ public func RecallAiSdkRegisterCallback(callback: Swift.UnsafeRawPointer, userData: Swift.UnsafeMutableRawPointer)
109
115
  public struct UiElementSelector {
110
116
  public var title: Swift.String?
117
+ public var titleContains: Swift.String?
111
118
  public var desc: Swift.String?
112
119
  public var descContains: Swift.String?
113
120
  public var label: Swift.String?
package/index.d.ts CHANGED
@@ -1,9 +1,14 @@
1
1
  declare module '@recallai/desktop-sdk' {
2
2
  export function init(config: RecallAiSdkConfig): void;
3
3
  export function toggle(enabled: boolean): void;
4
+ export function callback(callback: (event: RecallAiSdkEvent) => void): void;
4
5
 
5
6
  interface RecallAiSdkConfig {
6
7
  api_key: string
7
8
  recording_config: RecordingConfig
8
9
  }
10
+
11
+ interface RecallAiSdkEvent {
12
+ type: "recording_start" | "recording_stop"
13
+ }
9
14
  }
package/index.js CHANGED
@@ -8,7 +8,14 @@ function toggle(enabled) {
8
8
  addon.toggle(enabled)
9
9
  }
10
10
 
11
+ function callback(callback) {
12
+ addon.callback((eventJson) => {
13
+ callback(JSON.parse(eventJson))
14
+ })
15
+ }
16
+
11
17
  module.exports = {
12
18
  init,
13
- toggle
19
+ toggle,
20
+ callback
14
21
  }
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@recallai/desktop-sdk",
3
- "version": "2024.02.01-4bd5d080eda7b15e0578cfddf2c5de2bba06bc6c",
3
+ "version": "2024.02.01-5afb463f5e16c658dd0ce05298eb93a1dd6da1ed",
4
4
  "description": "Recall Desktop SDK (Alpha)",
5
5
  "gypfile": true,
6
6
  "main": "./index.js",
7
7
  "types": "./index.d.ts",
8
- "dependencies": {}
9
- }
8
+ "dependencies": {
9
+ "node-addon-api": "7.1.0",
10
+ "node-addon-api": "^7.1.0"
11
+ }
12
+ }
@@ -1,2 +1,5 @@
1
- void recallai_sdk_init(char* configJson);
1
+ typedef void (*recallai_sdk_event_callback)(const char* event, void* userdata);
2
+
3
+ void recallai_sdk_init(const char* configJson);
2
4
  void recallai_sdk_toggle(bool enabled);
5
+ void recallai_sdk_register_callback(recallai_sdk_event_callback callback, void* userdata);
package/src/main.cc CHANGED
@@ -1,47 +1,98 @@
1
- #include <node.h>
1
+ #include <napi.h>
2
2
 
3
- extern "C" {
4
- #include "RecallAiDesktopSdk.h"
3
+ extern "C"
4
+ {
5
+ #include "RecallAiDesktopSdk.h"
5
6
  }
6
7
 
8
+ using Napi::Function;
9
+ using Napi::Object;
10
+ using Napi::Persistent;
11
+ using Napi::Reference;
12
+ using Napi::String;
13
+ using Napi::Value;
7
14
 
8
- using v8::FunctionCallbackInfo;
9
- using v8::Isolate;
10
- using v8::Local;
11
- using v8::Object;
12
- using v8::String;
13
- using v8::Value;
14
-
15
- void SdkInit(const FunctionCallbackInfo<Value>& args) {
16
- Isolate* isolate = args.GetIsolate();
17
- if (args.Length() < 1) {
18
- isolate->ThrowException(v8::Exception::TypeError(
19
- String::NewFromUtf8(isolate, "Wrong number of arguments").ToLocalChecked()));
15
+ void SdkInit(const Napi::CallbackInfo &args)
16
+ {
17
+ Napi::Env env = args.Env();
18
+ if (args.Length() < 1)
19
+ {
20
+ Napi::TypeError::New(env, "Wrong number of arguments").ThrowAsJavaScriptException();
20
21
  return;
21
22
  }
22
-
23
- String::Utf8Value str(isolate, args[0]);
24
- char* cstr = *str;
25
- recallai_sdk_init(cstr);
26
- args.GetReturnValue().Set(Undefined(isolate));
23
+
24
+ Napi::String str(env, args[0]);
25
+ std::string cstr = str.Utf8Value();
26
+ recallai_sdk_init(cstr.data());
27
27
  }
28
28
 
29
- void SdkToggle(const FunctionCallbackInfo<Value>& args) {
30
- Isolate* isolate = args.GetIsolate();
31
- if (args.Length() < 1) {
32
- isolate->ThrowException(v8::Exception::TypeError(
33
- String::NewFromUtf8(isolate, "Wrong number of arguments").ToLocalChecked()));
29
+ void SdkToggle(const Napi::CallbackInfo &args)
30
+ {
31
+ Napi::Env env = args.Env();
32
+ if (args.Length() < 1)
33
+ {
34
+ Napi::TypeError::New(env, "Wrong number of arguments").ThrowAsJavaScriptException();
34
35
  return;
35
36
  }
36
37
 
37
- bool enabled = args[0]->BooleanValue(isolate);
38
+ bool enabled = args[0].As<Napi::Boolean>();
38
39
  recallai_sdk_toggle(enabled);
39
- args.GetReturnValue().Set(Undefined(isolate));
40
40
  }
41
41
 
42
- void Initialize(Local<Object> exports) {
43
- NODE_SET_METHOD(exports, "init", SdkInit);
44
- NODE_SET_METHOD(exports, "toggle", SdkToggle);
42
+ struct EventUserData
43
+ {
44
+ Napi::ThreadSafeFunction callback;
45
+ };
46
+
47
+ void SdkHandleEvent(const char *event, void *userdata)
48
+ {
49
+ EventUserData *data = (EventUserData *)userdata;
50
+ data->callback.BlockingCall(event, [](Napi::Env env, Napi::Function jsCallback, const char *event)
51
+ { jsCallback.Call({Napi::String::New(env, event)}); });
52
+ }
53
+
54
+ void SdkRegisterEventCallback(const Napi::CallbackInfo &args)
55
+ {
56
+ Napi::Env env = args.Env();
57
+ if (args.Length() < 1)
58
+ {
59
+ Napi::TypeError::New(env, "Wrong number of arguments").ThrowAsJavaScriptException();
60
+ return;
61
+ }
62
+
63
+ if (!args[0].IsFunction())
64
+ {
65
+ Napi::TypeError::New(env, "First argument must be a function").ThrowAsJavaScriptException();
66
+ return;
67
+ }
68
+
69
+ Reference<Value> *context = new Reference<Value>(Persistent(args.This()));
70
+
71
+ EventUserData *userdata = new EventUserData();
72
+ userdata->callback = Napi::ThreadSafeFunction::New(
73
+ env,
74
+ args[0].As<Napi::Function>(),
75
+ "RecallAiSdkCallback", // Resource name
76
+ 0, // Max queue size (0 = unlimited).
77
+ 1, // Initial thread count
78
+ context, // Context,
79
+ [](Napi::Env,
80
+ Reference<Value> *ctx) { // Finalizer used to clean threads up
81
+ delete ctx;
82
+ });
83
+
84
+ recallai_sdk_register_callback(SdkHandleEvent, userdata);
85
+ }
86
+
87
+ Napi::Object Init(Napi::Env env, Napi::Object exports)
88
+ {
89
+ exports.Set(Napi::String::New(env, "init"),
90
+ Napi::Function::New(env, SdkInit));
91
+ exports.Set(Napi::String::New(env, "toggle"),
92
+ Napi::Function::New(env, SdkToggle));
93
+ exports.Set(Napi::String::New(env, "callback"),
94
+ Napi::Function::New(env, SdkRegisterEventCallback));
95
+ return exports;
45
96
  }
46
97
 
47
- NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize)
98
+ NODE_API_MODULE(hello, Init)