@dawidzawada/bonjour-zeroconf 1.0.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 (125) hide show
  1. package/BonjourZeroconf.podspec +30 -0
  2. package/LICENSE +20 -0
  3. package/README.md +35 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +128 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +2 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourZeroconf+AddressResolver.kt +182 -0
  10. package/android/src/main/java/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourZeroconf+Listeners.kt +45 -0
  11. package/android/src/main/java/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourZeroconf.kt +183 -0
  12. package/android/src/main/java/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourZeroconfPackage.kt +22 -0
  13. package/ios/AddressResolverError.swift +20 -0
  14. package/ios/BonjourZeroconf+AddressResolver.swift +133 -0
  15. package/ios/BonjourZeroconf+Listeners.swift +26 -0
  16. package/ios/BonjourZeroconf.swift +201 -0
  17. package/ios/LocalNetworkAuthorization.swift +66 -0
  18. package/ios/LocalNetworkPermission+Listeners.swift +14 -0
  19. package/ios/LocalNetworkPermission.swift +41 -0
  20. package/ios/ServiceCache.swift +30 -0
  21. package/ios/Utils/Loggy.swift +37 -0
  22. package/lib/module/index.js +9 -0
  23. package/lib/module/index.js.map +1 -0
  24. package/lib/module/package.json +1 -0
  25. package/lib/module/permissions.ios.js +23 -0
  26. package/lib/module/permissions.ios.js.map +1 -0
  27. package/lib/module/permissions.js +9 -0
  28. package/lib/module/permissions.js.map +1 -0
  29. package/lib/module/specs/BonjourFail.js +9 -0
  30. package/lib/module/specs/BonjourFail.js.map +1 -0
  31. package/lib/module/specs/BonjourListener.js +2 -0
  32. package/lib/module/specs/BonjourListener.js.map +1 -0
  33. package/lib/module/specs/BonjourZeroconf.nitro.js +4 -0
  34. package/lib/module/specs/BonjourZeroconf.nitro.js.map +1 -0
  35. package/lib/module/specs/LocalNetworkPermission.nitro.js +4 -0
  36. package/lib/module/specs/LocalNetworkPermission.nitro.js.map +1 -0
  37. package/lib/module/specs/ScanResult.js +2 -0
  38. package/lib/module/specs/ScanResult.js.map +1 -0
  39. package/lib/module/useIsScanning.js +19 -0
  40. package/lib/module/useIsScanning.js.map +1 -0
  41. package/lib/typescript/package.json +1 -0
  42. package/lib/typescript/src/index.d.ts +9 -0
  43. package/lib/typescript/src/index.d.ts.map +1 -0
  44. package/lib/typescript/src/permissions.d.ts +3 -0
  45. package/lib/typescript/src/permissions.d.ts.map +1 -0
  46. package/lib/typescript/src/permissions.ios.d.ts +3 -0
  47. package/lib/typescript/src/permissions.ios.d.ts.map +1 -0
  48. package/lib/typescript/src/specs/BonjourFail.d.ts +6 -0
  49. package/lib/typescript/src/specs/BonjourFail.d.ts.map +1 -0
  50. package/lib/typescript/src/specs/BonjourListener.d.ts +4 -0
  51. package/lib/typescript/src/specs/BonjourListener.d.ts.map +1 -0
  52. package/lib/typescript/src/specs/BonjourZeroconf.nitro.d.ts +19 -0
  53. package/lib/typescript/src/specs/BonjourZeroconf.nitro.d.ts.map +1 -0
  54. package/lib/typescript/src/specs/LocalNetworkPermission.nitro.d.ts +9 -0
  55. package/lib/typescript/src/specs/LocalNetworkPermission.nitro.d.ts.map +1 -0
  56. package/lib/typescript/src/specs/ScanResult.d.ts +8 -0
  57. package/lib/typescript/src/specs/ScanResult.d.ts.map +1 -0
  58. package/lib/typescript/src/useIsScanning.d.ts +2 -0
  59. package/lib/typescript/src/useIsScanning.d.ts.map +1 -0
  60. package/nitro.json +20 -0
  61. package/nitrogen/generated/android/c++/JBonjourFail.hpp +62 -0
  62. package/nitrogen/generated/android/c++/JBonjourListener.hpp +68 -0
  63. package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
  64. package/nitrogen/generated/android/c++/JFunc_void_BonjourFail.hpp +76 -0
  65. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +74 -0
  66. package/nitrogen/generated/android/c++/JFunc_void_std__vector_ScanResult_.hpp +97 -0
  67. package/nitrogen/generated/android/c++/JHybridBonjourZeroconfSpec.cpp +96 -0
  68. package/nitrogen/generated/android/c++/JHybridBonjourZeroconfSpec.hpp +69 -0
  69. package/nitrogen/generated/android/c++/JScanOptions.hpp +57 -0
  70. package/nitrogen/generated/android/c++/JScanResult.hpp +74 -0
  71. package/nitrogen/generated/android/dawidzawada_bonjourzeroconf+autolinking.cmake +82 -0
  72. package/nitrogen/generated/android/dawidzawada_bonjourzeroconf+autolinking.gradle +27 -0
  73. package/nitrogen/generated/android/dawidzawada_bonjourzeroconfOnLoad.cpp +52 -0
  74. package/nitrogen/generated/android/dawidzawada_bonjourzeroconfOnLoad.hpp +25 -0
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourFail.kt +22 -0
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/BonjourListener.kt +42 -0
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void.kt +80 -0
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void_BonjourFail.kt +80 -0
  79. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void_bool.kt +80 -0
  80. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/Func_void_std__vector_ScanResult_.kt +80 -0
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/HybridBonjourZeroconfSpec.kt +90 -0
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/ScanOptions.kt +38 -0
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/ScanResult.kt +50 -0
  84. package/nitrogen/generated/android/kotlin/com/margelo/nitro/dawidzawada/bonjourzeroconf/dawidzawada_bonjourzeroconfOnLoad.kt +35 -0
  85. package/nitrogen/generated/ios/BonjourZeroconf+autolinking.rb +60 -0
  86. package/nitrogen/generated/ios/BonjourZeroconf-Swift-Cxx-Bridge.cpp +90 -0
  87. package/nitrogen/generated/ios/BonjourZeroconf-Swift-Cxx-Bridge.hpp +282 -0
  88. package/nitrogen/generated/ios/BonjourZeroconf-Swift-Cxx-Umbrella.hpp +65 -0
  89. package/nitrogen/generated/ios/BonjourZeroconfAutolinking.mm +41 -0
  90. package/nitrogen/generated/ios/BonjourZeroconfAutolinking.swift +40 -0
  91. package/nitrogen/generated/ios/c++/HybridBonjourZeroconfSpecSwift.cpp +11 -0
  92. package/nitrogen/generated/ios/c++/HybridBonjourZeroconfSpecSwift.hpp +120 -0
  93. package/nitrogen/generated/ios/c++/HybridLocalNetworkPermissionSpecSwift.cpp +11 -0
  94. package/nitrogen/generated/ios/c++/HybridLocalNetworkPermissionSpecSwift.hpp +87 -0
  95. package/nitrogen/generated/ios/swift/BonjourFail.swift +44 -0
  96. package/nitrogen/generated/ios/swift/BonjourListener.swift +47 -0
  97. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  98. package/nitrogen/generated/ios/swift/Func_void_BonjourFail.swift +47 -0
  99. package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
  100. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  101. package/nitrogen/generated/ios/swift/Func_void_std__vector_ScanResult_.swift +47 -0
  102. package/nitrogen/generated/ios/swift/HybridBonjourZeroconfSpec.swift +60 -0
  103. package/nitrogen/generated/ios/swift/HybridBonjourZeroconfSpec_cxx.swift +203 -0
  104. package/nitrogen/generated/ios/swift/HybridLocalNetworkPermissionSpec.swift +57 -0
  105. package/nitrogen/generated/ios/swift/HybridLocalNetworkPermissionSpec_cxx.swift +155 -0
  106. package/nitrogen/generated/ios/swift/ScanOptions.swift +48 -0
  107. package/nitrogen/generated/ios/swift/ScanResult.swift +149 -0
  108. package/nitrogen/generated/shared/c++/BonjourFail.hpp +63 -0
  109. package/nitrogen/generated/shared/c++/BonjourListener.hpp +75 -0
  110. package/nitrogen/generated/shared/c++/HybridBonjourZeroconfSpec.cpp +26 -0
  111. package/nitrogen/generated/shared/c++/HybridBonjourZeroconfSpec.hpp +80 -0
  112. package/nitrogen/generated/shared/c++/HybridLocalNetworkPermissionSpec.cpp +22 -0
  113. package/nitrogen/generated/shared/c++/HybridLocalNetworkPermissionSpec.hpp +66 -0
  114. package/nitrogen/generated/shared/c++/ScanOptions.hpp +75 -0
  115. package/nitrogen/generated/shared/c++/ScanResult.hpp +92 -0
  116. package/package.json +169 -0
  117. package/src/index.ts +22 -0
  118. package/src/permissions.ios.ts +27 -0
  119. package/src/permissions.ts +7 -0
  120. package/src/specs/BonjourFail.ts +5 -0
  121. package/src/specs/BonjourListener.ts +3 -0
  122. package/src/specs/BonjourZeroconf.nitro.ts +20 -0
  123. package/src/specs/LocalNetworkPermission.nitro.ts +7 -0
  124. package/src/specs/ScanResult.ts +7 -0
  125. package/src/useIsScanning.ts +17 -0
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// Func_void_BonjourFail.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.dawidzawada.bonjourzeroconf
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
14
+
15
+
16
+ /**
17
+ * Represents the JavaScript callback `(fail: enum) => void`.
18
+ * This can be either implemented in C++ (in which case it might be a callback coming from JS),
19
+ * or in Kotlin/Java (in which case it is a native callback).
20
+ */
21
+ @DoNotStrip
22
+ @Keep
23
+ @Suppress("ClassName", "RedundantUnitReturnType")
24
+ fun interface Func_void_BonjourFail: (BonjourFail) -> Unit {
25
+ /**
26
+ * Call the given JS callback.
27
+ * @throws Throwable if the JS function itself throws an error, or if the JS function/runtime has already been deleted.
28
+ */
29
+ @DoNotStrip
30
+ @Keep
31
+ override fun invoke(fail: BonjourFail): Unit
32
+ }
33
+
34
+ /**
35
+ * Represents the JavaScript callback `(fail: enum) => void`.
36
+ * This is implemented in C++, via a `std::function<...>`.
37
+ * The callback might be coming from JS.
38
+ */
39
+ @DoNotStrip
40
+ @Keep
41
+ @Suppress(
42
+ "KotlinJniMissingFunction", "unused",
43
+ "RedundantSuppression", "RedundantUnitReturnType", "FunctionName",
44
+ "ConvertSecondaryConstructorToPrimary", "ClassName", "LocalVariableName",
45
+ )
46
+ class Func_void_BonjourFail_cxx: Func_void_BonjourFail {
47
+ @DoNotStrip
48
+ @Keep
49
+ private val mHybridData: HybridData
50
+
51
+ @DoNotStrip
52
+ @Keep
53
+ private constructor(hybridData: HybridData) {
54
+ mHybridData = hybridData
55
+ }
56
+
57
+ @DoNotStrip
58
+ @Keep
59
+ override fun invoke(fail: BonjourFail): Unit
60
+ = invoke_cxx(fail)
61
+
62
+ @FastNative
63
+ private external fun invoke_cxx(fail: BonjourFail): Unit
64
+ }
65
+
66
+ /**
67
+ * Represents the JavaScript callback `(fail: enum) => void`.
68
+ * This is implemented in Java/Kotlin, via a `(BonjourFail) -> Unit`.
69
+ * The callback is always coming from native.
70
+ */
71
+ @DoNotStrip
72
+ @Keep
73
+ @Suppress("ClassName", "RedundantUnitReturnType", "unused")
74
+ class Func_void_BonjourFail_java(private val function: (BonjourFail) -> Unit): Func_void_BonjourFail {
75
+ @DoNotStrip
76
+ @Keep
77
+ override fun invoke(fail: BonjourFail): Unit {
78
+ return this.function(fail)
79
+ }
80
+ }
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// Func_void_bool.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.dawidzawada.bonjourzeroconf
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
14
+
15
+
16
+ /**
17
+ * Represents the JavaScript callback `(isScanning: boolean) => void`.
18
+ * This can be either implemented in C++ (in which case it might be a callback coming from JS),
19
+ * or in Kotlin/Java (in which case it is a native callback).
20
+ */
21
+ @DoNotStrip
22
+ @Keep
23
+ @Suppress("ClassName", "RedundantUnitReturnType")
24
+ fun interface Func_void_bool: (Boolean) -> Unit {
25
+ /**
26
+ * Call the given JS callback.
27
+ * @throws Throwable if the JS function itself throws an error, or if the JS function/runtime has already been deleted.
28
+ */
29
+ @DoNotStrip
30
+ @Keep
31
+ override fun invoke(isScanning: Boolean): Unit
32
+ }
33
+
34
+ /**
35
+ * Represents the JavaScript callback `(isScanning: boolean) => void`.
36
+ * This is implemented in C++, via a `std::function<...>`.
37
+ * The callback might be coming from JS.
38
+ */
39
+ @DoNotStrip
40
+ @Keep
41
+ @Suppress(
42
+ "KotlinJniMissingFunction", "unused",
43
+ "RedundantSuppression", "RedundantUnitReturnType", "FunctionName",
44
+ "ConvertSecondaryConstructorToPrimary", "ClassName", "LocalVariableName",
45
+ )
46
+ class Func_void_bool_cxx: Func_void_bool {
47
+ @DoNotStrip
48
+ @Keep
49
+ private val mHybridData: HybridData
50
+
51
+ @DoNotStrip
52
+ @Keep
53
+ private constructor(hybridData: HybridData) {
54
+ mHybridData = hybridData
55
+ }
56
+
57
+ @DoNotStrip
58
+ @Keep
59
+ override fun invoke(isScanning: Boolean): Unit
60
+ = invoke_cxx(isScanning)
61
+
62
+ @FastNative
63
+ private external fun invoke_cxx(isScanning: Boolean): Unit
64
+ }
65
+
66
+ /**
67
+ * Represents the JavaScript callback `(isScanning: boolean) => void`.
68
+ * This is implemented in Java/Kotlin, via a `(Boolean) -> Unit`.
69
+ * The callback is always coming from native.
70
+ */
71
+ @DoNotStrip
72
+ @Keep
73
+ @Suppress("ClassName", "RedundantUnitReturnType", "unused")
74
+ class Func_void_bool_java(private val function: (Boolean) -> Unit): Func_void_bool {
75
+ @DoNotStrip
76
+ @Keep
77
+ override fun invoke(isScanning: Boolean): Unit {
78
+ return this.function(isScanning)
79
+ }
80
+ }
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// Func_void_std__vector_ScanResult_.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.dawidzawada.bonjourzeroconf
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
14
+
15
+
16
+ /**
17
+ * Represents the JavaScript callback `(results: array) => void`.
18
+ * This can be either implemented in C++ (in which case it might be a callback coming from JS),
19
+ * or in Kotlin/Java (in which case it is a native callback).
20
+ */
21
+ @DoNotStrip
22
+ @Keep
23
+ @Suppress("ClassName", "RedundantUnitReturnType")
24
+ fun interface Func_void_std__vector_ScanResult_: (Array<ScanResult>) -> Unit {
25
+ /**
26
+ * Call the given JS callback.
27
+ * @throws Throwable if the JS function itself throws an error, or if the JS function/runtime has already been deleted.
28
+ */
29
+ @DoNotStrip
30
+ @Keep
31
+ override fun invoke(results: Array<ScanResult>): Unit
32
+ }
33
+
34
+ /**
35
+ * Represents the JavaScript callback `(results: array) => void`.
36
+ * This is implemented in C++, via a `std::function<...>`.
37
+ * The callback might be coming from JS.
38
+ */
39
+ @DoNotStrip
40
+ @Keep
41
+ @Suppress(
42
+ "KotlinJniMissingFunction", "unused",
43
+ "RedundantSuppression", "RedundantUnitReturnType", "FunctionName",
44
+ "ConvertSecondaryConstructorToPrimary", "ClassName", "LocalVariableName",
45
+ )
46
+ class Func_void_std__vector_ScanResult__cxx: Func_void_std__vector_ScanResult_ {
47
+ @DoNotStrip
48
+ @Keep
49
+ private val mHybridData: HybridData
50
+
51
+ @DoNotStrip
52
+ @Keep
53
+ private constructor(hybridData: HybridData) {
54
+ mHybridData = hybridData
55
+ }
56
+
57
+ @DoNotStrip
58
+ @Keep
59
+ override fun invoke(results: Array<ScanResult>): Unit
60
+ = invoke_cxx(results)
61
+
62
+ @FastNative
63
+ private external fun invoke_cxx(results: Array<ScanResult>): Unit
64
+ }
65
+
66
+ /**
67
+ * Represents the JavaScript callback `(results: array) => void`.
68
+ * This is implemented in Java/Kotlin, via a `(Array<ScanResult>) -> Unit`.
69
+ * The callback is always coming from native.
70
+ */
71
+ @DoNotStrip
72
+ @Keep
73
+ @Suppress("ClassName", "RedundantUnitReturnType", "unused")
74
+ class Func_void_std__vector_ScanResult__java(private val function: (Array<ScanResult>) -> Unit): Func_void_std__vector_ScanResult_ {
75
+ @DoNotStrip
76
+ @Keep
77
+ override fun invoke(results: Array<ScanResult>): Unit {
78
+ return this.function(results)
79
+ }
80
+ }
@@ -0,0 +1,90 @@
1
+ ///
2
+ /// HybridBonjourZeroconfSpec.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.dawidzawada.bonjourzeroconf
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.core.HybridObject
14
+
15
+ /**
16
+ * A Kotlin class representing the BonjourZeroconf HybridObject.
17
+ * Implement this abstract class to create Kotlin-based instances of BonjourZeroconf.
18
+ */
19
+ @DoNotStrip
20
+ @Keep
21
+ @Suppress(
22
+ "KotlinJniMissingFunction", "unused",
23
+ "RedundantSuppression", "RedundantUnitReturnType", "SimpleRedundantLet",
24
+ "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
25
+ )
26
+ abstract class HybridBonjourZeroconfSpec: HybridObject() {
27
+ @DoNotStrip
28
+ private var mHybridData: HybridData = initHybrid()
29
+
30
+ init {
31
+ super.updateNative(mHybridData)
32
+ }
33
+
34
+ override fun updateNative(hybridData: HybridData) {
35
+ mHybridData = hybridData
36
+ super.updateNative(hybridData)
37
+ }
38
+
39
+ // Default implementation of `HybridObject.toString()`
40
+ override fun toString(): String {
41
+ return "[HybridObject BonjourZeroconf]"
42
+ }
43
+
44
+ // Properties
45
+ @get:DoNotStrip
46
+ @get:Keep
47
+ abstract val isScanning: Boolean
48
+
49
+ // Methods
50
+ @DoNotStrip
51
+ @Keep
52
+ abstract fun scan(type: String, domain: String, options: ScanOptions?): Unit
53
+
54
+ @DoNotStrip
55
+ @Keep
56
+ abstract fun stop(): Unit
57
+
58
+ abstract fun listenForScanResults(onResult: (results: Array<ScanResult>) -> Unit): BonjourListener
59
+
60
+ @DoNotStrip
61
+ @Keep
62
+ private fun listenForScanResults_cxx(onResult: Func_void_std__vector_ScanResult_): BonjourListener {
63
+ val __result = listenForScanResults(onResult)
64
+ return __result
65
+ }
66
+
67
+ abstract fun listenForScanState(onChange: (isScanning: Boolean) -> Unit): BonjourListener
68
+
69
+ @DoNotStrip
70
+ @Keep
71
+ private fun listenForScanState_cxx(onChange: Func_void_bool): BonjourListener {
72
+ val __result = listenForScanState(onChange)
73
+ return __result
74
+ }
75
+
76
+ abstract fun listenForScanFail(onFail: (fail: BonjourFail) -> Unit): BonjourListener
77
+
78
+ @DoNotStrip
79
+ @Keep
80
+ private fun listenForScanFail_cxx(onFail: Func_void_BonjourFail): BonjourListener {
81
+ val __result = listenForScanFail(onFail)
82
+ return __result
83
+ }
84
+
85
+ private external fun initHybrid(): HybridData
86
+
87
+ companion object {
88
+ protected const val TAG = "HybridBonjourZeroconfSpec"
89
+ }
90
+ }
@@ -0,0 +1,38 @@
1
+ ///
2
+ /// ScanOptions.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.dawidzawada.bonjourzeroconf
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+
14
+ /**
15
+ * Represents the JavaScript object/struct "ScanOptions".
16
+ */
17
+ @DoNotStrip
18
+ @Keep
19
+ data class ScanOptions(
20
+ @DoNotStrip
21
+ @Keep
22
+ val addressResolveTimeout: Double?
23
+ ) {
24
+ /* primary constructor */
25
+
26
+ private companion object {
27
+ /**
28
+ * Constructor called from C++
29
+ */
30
+ @DoNotStrip
31
+ @Keep
32
+ @Suppress("unused")
33
+ @JvmStatic
34
+ private fun fromCpp(addressResolveTimeout: Double?): ScanOptions {
35
+ return ScanOptions(addressResolveTimeout)
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,50 @@
1
+ ///
2
+ /// ScanResult.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.dawidzawada.bonjourzeroconf
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+
14
+ /**
15
+ * Represents the JavaScript object/struct "ScanResult".
16
+ */
17
+ @DoNotStrip
18
+ @Keep
19
+ data class ScanResult(
20
+ @DoNotStrip
21
+ @Keep
22
+ val name: String,
23
+ @DoNotStrip
24
+ @Keep
25
+ val ipv4: String?,
26
+ @DoNotStrip
27
+ @Keep
28
+ val ipv6: String?,
29
+ @DoNotStrip
30
+ @Keep
31
+ val hostname: String?,
32
+ @DoNotStrip
33
+ @Keep
34
+ val port: Double?
35
+ ) {
36
+ /* primary constructor */
37
+
38
+ private companion object {
39
+ /**
40
+ * Constructor called from C++
41
+ */
42
+ @DoNotStrip
43
+ @Keep
44
+ @Suppress("unused")
45
+ @JvmStatic
46
+ private fun fromCpp(name: String, ipv4: String?, ipv6: String?, hostname: String?, port: Double?): ScanResult {
47
+ return ScanResult(name, ipv4, ipv6, hostname, port)
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,35 @@
1
+ ///
2
+ /// dawidzawada_bonjourzeroconfOnLoad.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.dawidzawada.bonjourzeroconf
9
+
10
+ import android.util.Log
11
+
12
+ internal class dawidzawada_bonjourzeroconfOnLoad {
13
+ companion object {
14
+ private const val TAG = "dawidzawada_bonjourzeroconfOnLoad"
15
+ private var didLoad = false
16
+ /**
17
+ * Initializes the native part of "dawidzawada_bonjourzeroconf".
18
+ * This method is idempotent and can be called more than once.
19
+ */
20
+ @JvmStatic
21
+ fun initializeNative() {
22
+ if (didLoad) return
23
+ try {
24
+ Log.i(TAG, "Loading dawidzawada_bonjourzeroconf C++ library...")
25
+ System.loadLibrary("dawidzawada_bonjourzeroconf")
26
+ Log.i(TAG, "Successfully loaded dawidzawada_bonjourzeroconf C++ library!")
27
+ didLoad = true
28
+ } catch (e: Error) {
29
+ Log.e(TAG, "Failed to load dawidzawada_bonjourzeroconf C++ library! Is it properly installed and linked? " +
30
+ "Is the name correct? (see `CMakeLists.txt`, at `add_library(...)`)", e)
31
+ throw e
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,60 @@
1
+ #
2
+ # BonjourZeroconf+autolinking.rb
3
+ # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ # https://github.com/mrousavy/nitro
5
+ # Copyright © 2025 Marc Rousavy @ Margelo
6
+ #
7
+
8
+ # This is a Ruby script that adds all files generated by Nitrogen
9
+ # to the given podspec.
10
+ #
11
+ # To use it, add this to your .podspec:
12
+ # ```ruby
13
+ # Pod::Spec.new do |spec|
14
+ # # ...
15
+ #
16
+ # # Add all files generated by Nitrogen
17
+ # load 'nitrogen/generated/ios/BonjourZeroconf+autolinking.rb'
18
+ # add_nitrogen_files(spec)
19
+ # end
20
+ # ```
21
+
22
+ def add_nitrogen_files(spec)
23
+ Pod::UI.puts "[NitroModules] 🔥 BonjourZeroconf is boosted by nitro!"
24
+
25
+ spec.dependency "NitroModules"
26
+
27
+ current_source_files = Array(spec.attributes_hash['source_files'])
28
+ spec.source_files = current_source_files + [
29
+ # Generated cross-platform specs
30
+ "nitrogen/generated/shared/**/*.{h,hpp,c,cpp,swift}",
31
+ # Generated bridges for the cross-platform specs
32
+ "nitrogen/generated/ios/**/*.{h,hpp,c,cpp,mm,swift}",
33
+ ]
34
+
35
+ current_public_header_files = Array(spec.attributes_hash['public_header_files'])
36
+ spec.public_header_files = current_public_header_files + [
37
+ # Generated specs
38
+ "nitrogen/generated/shared/**/*.{h,hpp}",
39
+ # Swift to C++ bridging helpers
40
+ "nitrogen/generated/ios/BonjourZeroconf-Swift-Cxx-Bridge.hpp"
41
+ ]
42
+
43
+ current_private_header_files = Array(spec.attributes_hash['private_header_files'])
44
+ spec.private_header_files = current_private_header_files + [
45
+ # iOS specific specs
46
+ "nitrogen/generated/ios/c++/**/*.{h,hpp}",
47
+ # Views are framework-specific and should be private
48
+ "nitrogen/generated/shared/**/views/**/*"
49
+ ]
50
+
51
+ current_pod_target_xcconfig = spec.attributes_hash['pod_target_xcconfig'] || {}
52
+ spec.pod_target_xcconfig = current_pod_target_xcconfig.merge({
53
+ # Use C++ 20
54
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
55
+ # Enables C++ <-> Swift interop (by default it's only C)
56
+ "SWIFT_OBJC_INTEROP_MODE" => "objcxx",
57
+ # Enables stricter modular headers
58
+ "DEFINES_MODULE" => "YES",
59
+ })
60
+ end
@@ -0,0 +1,90 @@
1
+ ///
2
+ /// BonjourZeroconf-Swift-Cxx-Bridge.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "BonjourZeroconf-Swift-Cxx-Bridge.hpp"
9
+
10
+ // Include C++ implementation defined types
11
+ #include "BonjourZeroconf-Swift-Cxx-Umbrella.hpp"
12
+ #include "HybridBonjourZeroconfSpecSwift.hpp"
13
+ #include "HybridLocalNetworkPermissionSpecSwift.hpp"
14
+ #include <NitroModules/NitroDefines.hpp>
15
+
16
+ namespace margelo::nitro::dawidzawada_bonjourzeroconf::bridge::swift {
17
+
18
+ // pragma MARK: std::function<void()>
19
+ Func_void create_Func_void(void* NON_NULL swiftClosureWrapper) noexcept {
20
+ auto swiftClosure = BonjourZeroconf::Func_void::fromUnsafe(swiftClosureWrapper);
21
+ return [swiftClosure = std::move(swiftClosure)]() mutable -> void {
22
+ swiftClosure.call();
23
+ };
24
+ }
25
+
26
+ // pragma MARK: std::function<void(const std::vector<ScanResult>& /* results */)>
27
+ Func_void_std__vector_ScanResult_ create_Func_void_std__vector_ScanResult_(void* NON_NULL swiftClosureWrapper) noexcept {
28
+ auto swiftClosure = BonjourZeroconf::Func_void_std__vector_ScanResult_::fromUnsafe(swiftClosureWrapper);
29
+ return [swiftClosure = std::move(swiftClosure)](const std::vector<ScanResult>& results) mutable -> void {
30
+ swiftClosure.call(results);
31
+ };
32
+ }
33
+
34
+ // pragma MARK: std::function<void(bool /* isScanning */)>
35
+ Func_void_bool create_Func_void_bool(void* NON_NULL swiftClosureWrapper) noexcept {
36
+ auto swiftClosure = BonjourZeroconf::Func_void_bool::fromUnsafe(swiftClosureWrapper);
37
+ return [swiftClosure = std::move(swiftClosure)](bool isScanning) mutable -> void {
38
+ swiftClosure.call(isScanning);
39
+ };
40
+ }
41
+
42
+ // pragma MARK: std::function<void(BonjourFail /* fail */)>
43
+ Func_void_BonjourFail create_Func_void_BonjourFail(void* NON_NULL swiftClosureWrapper) noexcept {
44
+ auto swiftClosure = BonjourZeroconf::Func_void_BonjourFail::fromUnsafe(swiftClosureWrapper);
45
+ return [swiftClosure = std::move(swiftClosure)](BonjourFail fail) mutable -> void {
46
+ swiftClosure.call(static_cast<int>(fail));
47
+ };
48
+ }
49
+
50
+ // pragma MARK: std::shared_ptr<HybridBonjourZeroconfSpec>
51
+ std::shared_ptr<HybridBonjourZeroconfSpec> create_std__shared_ptr_HybridBonjourZeroconfSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
52
+ BonjourZeroconf::HybridBonjourZeroconfSpec_cxx swiftPart = BonjourZeroconf::HybridBonjourZeroconfSpec_cxx::fromUnsafe(swiftUnsafePointer);
53
+ return std::make_shared<margelo::nitro::dawidzawada_bonjourzeroconf::HybridBonjourZeroconfSpecSwift>(swiftPart);
54
+ }
55
+ void* NON_NULL get_std__shared_ptr_HybridBonjourZeroconfSpec_(std__shared_ptr_HybridBonjourZeroconfSpec_ cppType) {
56
+ std::shared_ptr<margelo::nitro::dawidzawada_bonjourzeroconf::HybridBonjourZeroconfSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::dawidzawada_bonjourzeroconf::HybridBonjourZeroconfSpecSwift>(cppType);
57
+ #ifdef NITRO_DEBUG
58
+ if (swiftWrapper == nullptr) [[unlikely]] {
59
+ throw std::runtime_error("Class \"HybridBonjourZeroconfSpec\" is not implemented in Swift!");
60
+ }
61
+ #endif
62
+ BonjourZeroconf::HybridBonjourZeroconfSpec_cxx& swiftPart = swiftWrapper->getSwiftPart();
63
+ return swiftPart.toUnsafe();
64
+ }
65
+
66
+ // pragma MARK: std::function<void(const std::exception_ptr& /* error */)>
67
+ Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept {
68
+ auto swiftClosure = BonjourZeroconf::Func_void_std__exception_ptr::fromUnsafe(swiftClosureWrapper);
69
+ return [swiftClosure = std::move(swiftClosure)](const std::exception_ptr& error) mutable -> void {
70
+ swiftClosure.call(error);
71
+ };
72
+ }
73
+
74
+ // pragma MARK: std::shared_ptr<HybridLocalNetworkPermissionSpec>
75
+ std::shared_ptr<HybridLocalNetworkPermissionSpec> create_std__shared_ptr_HybridLocalNetworkPermissionSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
76
+ BonjourZeroconf::HybridLocalNetworkPermissionSpec_cxx swiftPart = BonjourZeroconf::HybridLocalNetworkPermissionSpec_cxx::fromUnsafe(swiftUnsafePointer);
77
+ return std::make_shared<margelo::nitro::dawidzawada_bonjourzeroconf::HybridLocalNetworkPermissionSpecSwift>(swiftPart);
78
+ }
79
+ void* NON_NULL get_std__shared_ptr_HybridLocalNetworkPermissionSpec_(std__shared_ptr_HybridLocalNetworkPermissionSpec_ cppType) {
80
+ std::shared_ptr<margelo::nitro::dawidzawada_bonjourzeroconf::HybridLocalNetworkPermissionSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::dawidzawada_bonjourzeroconf::HybridLocalNetworkPermissionSpecSwift>(cppType);
81
+ #ifdef NITRO_DEBUG
82
+ if (swiftWrapper == nullptr) [[unlikely]] {
83
+ throw std::runtime_error("Class \"HybridLocalNetworkPermissionSpec\" is not implemented in Swift!");
84
+ }
85
+ #endif
86
+ BonjourZeroconf::HybridLocalNetworkPermissionSpec_cxx& swiftPart = swiftWrapper->getSwiftPart();
87
+ return swiftPart.toUnsafe();
88
+ }
89
+
90
+ } // namespace margelo::nitro::dawidzawada_bonjourzeroconf::bridge::swift