@dawidzawada/bonjour-zeroconf 1.0.0 → 1.1.0

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 (66) hide show
  1. package/README.md +274 -10
  2. package/android/src/main/java/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourZeroconf+AddressResolver.kt +14 -0
  3. package/android/src/main/java/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourZeroconf.kt +25 -1
  4. package/ios/AddressResolverError.swift +13 -10
  5. package/ios/BonjourZeroconf+AddressResolver.swift +58 -21
  6. package/ios/BonjourZeroconf.swift +21 -0
  7. package/ios/LocalNetworkAuthorization.swift +0 -1
  8. package/lib/typescript/src/specs/BonjourZeroconf.nitro.d.ts +1 -0
  9. package/lib/typescript/src/specs/BonjourZeroconf.nitro.d.ts.map +1 -1
  10. package/nitrogen/generated/android/c++/JBonjourFail.hpp +1 -1
  11. package/nitrogen/generated/android/c++/JBonjourListener.hpp +1 -1
  12. package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
  13. package/nitrogen/generated/android/c++/JFunc_void_BonjourFail.hpp +1 -1
  14. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
  15. package/nitrogen/generated/android/c++/JFunc_void_std__vector_ScanResult_.hpp +1 -1
  16. package/nitrogen/generated/android/c++/JHybridBonjourZeroconfSpec.cpp +35 -8
  17. package/nitrogen/generated/android/c++/JHybridBonjourZeroconfSpec.hpp +2 -1
  18. package/nitrogen/generated/android/c++/JScanOptions.hpp +1 -1
  19. package/nitrogen/generated/android/c++/JScanResult.hpp +1 -1
  20. package/nitrogen/generated/android/dawidzawada_bonjourzeroconf+autolinking.cmake +1 -1
  21. package/nitrogen/generated/android/dawidzawada_bonjourzeroconf+autolinking.gradle +1 -1
  22. package/nitrogen/generated/android/dawidzawada_bonjourzeroconfOnLoad.cpp +1 -1
  23. package/nitrogen/generated/android/dawidzawada_bonjourzeroconfOnLoad.hpp +1 -1
  24. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourFail.kt +1 -1
  25. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourListener.kt +1 -1
  26. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void.kt +1 -1
  27. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void_BonjourFail.kt +1 -1
  28. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void_bool.kt +1 -1
  29. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void_std__vector_ScanResult_.kt +1 -1
  30. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/HybridBonjourZeroconfSpec.kt +6 -1
  31. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/ScanOptions.kt +1 -1
  32. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/ScanResult.kt +1 -1
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/dawidzawada_bonjourzeroconfOnLoad.kt +1 -1
  34. package/nitrogen/generated/ios/BonjourZeroconf+autolinking.rb +1 -1
  35. package/nitrogen/generated/ios/BonjourZeroconf-Swift-Cxx-Bridge.cpp +17 -17
  36. package/nitrogen/generated/ios/BonjourZeroconf-Swift-Cxx-Bridge.hpp +73 -52
  37. package/nitrogen/generated/ios/BonjourZeroconf-Swift-Cxx-Umbrella.hpp +1 -1
  38. package/nitrogen/generated/ios/BonjourZeroconfAutolinking.mm +1 -1
  39. package/nitrogen/generated/ios/BonjourZeroconfAutolinking.swift +1 -1
  40. package/nitrogen/generated/ios/c++/HybridBonjourZeroconfSpecSwift.cpp +1 -1
  41. package/nitrogen/generated/ios/c++/HybridBonjourZeroconfSpecSwift.hpp +14 -5
  42. package/nitrogen/generated/ios/c++/HybridLocalNetworkPermissionSpecSwift.cpp +1 -1
  43. package/nitrogen/generated/ios/c++/HybridLocalNetworkPermissionSpecSwift.hpp +1 -1
  44. package/nitrogen/generated/ios/swift/BonjourFail.swift +1 -1
  45. package/nitrogen/generated/ios/swift/BonjourListener.swift +1 -1
  46. package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
  47. package/nitrogen/generated/ios/swift/Func_void_BonjourFail.swift +1 -1
  48. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
  49. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
  50. package/nitrogen/generated/ios/swift/Func_void_std__vector_ScanResult_.swift +6 -6
  51. package/nitrogen/generated/ios/swift/HybridBonjourZeroconfSpec.swift +2 -1
  52. package/nitrogen/generated/ios/swift/HybridBonjourZeroconfSpec_cxx.swift +26 -1
  53. package/nitrogen/generated/ios/swift/HybridLocalNetworkPermissionSpec.swift +1 -1
  54. package/nitrogen/generated/ios/swift/HybridLocalNetworkPermissionSpec_cxx.swift +1 -1
  55. package/nitrogen/generated/ios/swift/ScanOptions.swift +1 -1
  56. package/nitrogen/generated/ios/swift/ScanResult.swift +1 -1
  57. package/nitrogen/generated/shared/c++/BonjourFail.hpp +1 -1
  58. package/nitrogen/generated/shared/c++/BonjourListener.hpp +1 -1
  59. package/nitrogen/generated/shared/c++/HybridBonjourZeroconfSpec.cpp +2 -1
  60. package/nitrogen/generated/shared/c++/HybridBonjourZeroconfSpec.hpp +6 -4
  61. package/nitrogen/generated/shared/c++/HybridLocalNetworkPermissionSpec.cpp +1 -1
  62. package/nitrogen/generated/shared/c++/HybridLocalNetworkPermissionSpec.hpp +1 -1
  63. package/nitrogen/generated/shared/c++/ScanOptions.hpp +1 -1
  64. package/nitrogen/generated/shared/c++/ScanResult.hpp +1 -1
  65. package/package.json +18 -2
  66. package/src/specs/BonjourZeroconf.nitro.ts +7 -0
@@ -2,7 +2,7 @@
2
2
  /// BonjourListener.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// Func_void.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// Func_void_BonjourFail.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// Func_void_bool.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// Func_void_std__exception_ptr.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,28 +2,28 @@
2
2
  /// Func_void_std__vector_ScanResult_.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
9
9
  import NitroModules
10
10
 
11
11
  /**
12
- * Wraps a Swift `(_ results: [ScanResult]) -> Void` as a class.
12
+ * Wraps a Swift `(_ value: [ScanResult]) -> Void` as a class.
13
13
  * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
14
14
  */
15
15
  public final class Func_void_std__vector_ScanResult_ {
16
16
  public typealias bridge = margelo.nitro.dawidzawada_bonjourzeroconf.bridge.swift
17
17
 
18
- private let closure: (_ results: [ScanResult]) -> Void
18
+ private let closure: (_ value: [ScanResult]) -> Void
19
19
 
20
- public init(_ closure: @escaping (_ results: [ScanResult]) -> Void) {
20
+ public init(_ closure: @escaping (_ value: [ScanResult]) -> Void) {
21
21
  self.closure = closure
22
22
  }
23
23
 
24
24
  @inline(__always)
25
- public func call(results: bridge.std__vector_ScanResult_) -> Void {
26
- self.closure(results.map({ __item in __item }))
25
+ public func call(value: bridge.std__vector_ScanResult_) -> Void {
26
+ self.closure(value.map({ __item in __item }))
27
27
  }
28
28
 
29
29
  /**
@@ -2,7 +2,7 @@
2
2
  /// HybridBonjourZeroconfSpec.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -15,6 +15,7 @@ public protocol HybridBonjourZeroconfSpec_protocol: HybridObject {
15
15
 
16
16
  // Methods
17
17
  func scan(type: String, domain: String, options: ScanOptions?) throws -> Void
18
+ func scanFor(time: Double, type: String, domain: String, options: ScanOptions?) throws -> Promise<[ScanResult]>
18
19
  func stop() throws -> Void
19
20
  func listenForScanResults(onResult: @escaping (_ results: [ScanResult]) -> Void) throws -> BonjourListener
20
21
  func listenForScanState(onChange: @escaping (_ isScanning: Bool) -> Void) throws -> BonjourListener
@@ -2,7 +2,7 @@
2
2
  /// HybridBonjourZeroconfSpec_cxx.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -133,6 +133,31 @@ open class HybridBonjourZeroconfSpec_cxx {
133
133
  }
134
134
  }
135
135
 
136
+ @inline(__always)
137
+ public final func scanFor(time: Double, type: std.string, domain: std.string, options: bridge.std__optional_ScanOptions_) -> bridge.Result_std__shared_ptr_Promise_std__vector_ScanResult____ {
138
+ do {
139
+ let __result = try self.__implementation.scanFor(time: time, type: String(type), domain: String(domain), options: options.value)
140
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__vector_ScanResult___ in
141
+ let __promise = bridge.create_std__shared_ptr_Promise_std__vector_ScanResult___()
142
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__vector_ScanResult___(__promise)
143
+ __result
144
+ .then({ __result in __promiseHolder.resolve({ () -> bridge.std__vector_ScanResult_ in
145
+ var __vector = bridge.create_std__vector_ScanResult_(__result.count)
146
+ for __item in __result {
147
+ __vector.push_back(__item)
148
+ }
149
+ return __vector
150
+ }()) })
151
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
152
+ return __promise
153
+ }()
154
+ return bridge.create_Result_std__shared_ptr_Promise_std__vector_ScanResult____(__resultCpp)
155
+ } catch (let __error) {
156
+ let __exceptionPtr = __error.toCpp()
157
+ return bridge.create_Result_std__shared_ptr_Promise_std__vector_ScanResult____(__exceptionPtr)
158
+ }
159
+ }
160
+
136
161
  @inline(__always)
137
162
  public final func stop() -> bridge.Result_void_ {
138
163
  do {
@@ -2,7 +2,7 @@
2
2
  /// HybridLocalNetworkPermissionSpec.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// HybridLocalNetworkPermissionSpec_cxx.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// ScanOptions.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// ScanResult.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// BonjourFail.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// BonjourListener.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridBonjourZeroconfSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridBonjourZeroconfSpec.hpp"
@@ -16,6 +16,7 @@ namespace margelo::nitro::dawidzawada_bonjourzeroconf {
16
16
  registerHybrids(this, [](Prototype& prototype) {
17
17
  prototype.registerHybridGetter("isScanning", &HybridBonjourZeroconfSpec::getIsScanning);
18
18
  prototype.registerHybridMethod("scan", &HybridBonjourZeroconfSpec::scan);
19
+ prototype.registerHybridMethod("scanFor", &HybridBonjourZeroconfSpec::scanFor);
19
20
  prototype.registerHybridMethod("stop", &HybridBonjourZeroconfSpec::stop);
20
21
  prototype.registerHybridMethod("listenForScanResults", &HybridBonjourZeroconfSpec::listenForScanResults);
21
22
  prototype.registerHybridMethod("listenForScanState", &HybridBonjourZeroconfSpec::listenForScanState);
@@ -2,7 +2,7 @@
2
2
  /// HybridBonjourZeroconfSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -15,19 +15,20 @@
15
15
 
16
16
  // Forward declaration of `ScanOptions` to properly resolve imports.
17
17
  namespace margelo::nitro::dawidzawada_bonjourzeroconf { struct ScanOptions; }
18
- // Forward declaration of `BonjourListener` to properly resolve imports.
19
- namespace margelo::nitro::dawidzawada_bonjourzeroconf { struct BonjourListener; }
20
18
  // Forward declaration of `ScanResult` to properly resolve imports.
21
19
  namespace margelo::nitro::dawidzawada_bonjourzeroconf { struct ScanResult; }
20
+ // Forward declaration of `BonjourListener` to properly resolve imports.
21
+ namespace margelo::nitro::dawidzawada_bonjourzeroconf { struct BonjourListener; }
22
22
  // Forward declaration of `BonjourFail` to properly resolve imports.
23
23
  namespace margelo::nitro::dawidzawada_bonjourzeroconf { enum class BonjourFail; }
24
24
 
25
25
  #include <string>
26
26
  #include "ScanOptions.hpp"
27
27
  #include <optional>
28
- #include "BonjourListener.hpp"
29
28
  #include "ScanResult.hpp"
30
29
  #include <vector>
30
+ #include <NitroModules/Promise.hpp>
31
+ #include "BonjourListener.hpp"
31
32
  #include <functional>
32
33
  #include "BonjourFail.hpp"
33
34
 
@@ -63,6 +64,7 @@ namespace margelo::nitro::dawidzawada_bonjourzeroconf {
63
64
  public:
64
65
  // Methods
65
66
  virtual void scan(const std::string& type, const std::string& domain, const std::optional<ScanOptions>& options) = 0;
67
+ virtual std::shared_ptr<Promise<std::vector<ScanResult>>> scanFor(double time, const std::string& type, const std::string& domain, const std::optional<ScanOptions>& options) = 0;
66
68
  virtual void stop() = 0;
67
69
  virtual BonjourListener listenForScanResults(const std::function<void(const std::vector<ScanResult>& /* results */)>& onResult) = 0;
68
70
  virtual BonjourListener listenForScanState(const std::function<void(bool /* isScanning */)>& onChange) = 0;
@@ -2,7 +2,7 @@
2
2
  /// HybridLocalNetworkPermissionSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridLocalNetworkPermissionSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridLocalNetworkPermissionSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// ScanOptions.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// ScanResult.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dawidzawada/bonjour-zeroconf",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "React Native Zeroconf scanner using Bonjour (iOS) and NSD (Android). Powered by Nitro Modules.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -45,8 +45,24 @@
45
45
  },
46
46
  "keywords": [
47
47
  "react-native",
48
+ "bonjour",
49
+ "zeroconf",
50
+ "mdns",
51
+ "nsd",
52
+ "service-discovery",
53
+ "network-discovery",
54
+ "local-network",
55
+ "nitro-modules",
48
56
  "ios",
49
- "android"
57
+ "android",
58
+ "expo",
59
+ "typescript",
60
+ "swift",
61
+ "kotlin",
62
+ "device-discovery",
63
+ "multicast-dns",
64
+ "dns-sd",
65
+ "avahi"
50
66
  ],
51
67
  "repository": {
52
68
  "type": "git",
@@ -10,7 +10,14 @@ export interface ScanOptions {
10
10
  export interface BonjourZeroconf
11
11
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
12
12
  readonly isScanning: boolean;
13
+
13
14
  scan(type: string, domain: string, options?: ScanOptions): void;
15
+ scanFor(
16
+ time: number,
17
+ type: string,
18
+ domain: string,
19
+ options?: ScanOptions
20
+ ): Promise<ScanResult[]>;
14
21
  stop(): void;
15
22
  listenForScanResults(
16
23
  onResult: (results: ScanResult[]) => void