munim-wifi 0.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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/MunimWifi.podspec +31 -0
  3. package/README.md +591 -0
  4. package/android/CMakeLists.txt +32 -0
  5. package/android/build.gradle +148 -0
  6. package/android/fix-prefab.gradle +51 -0
  7. package/android/gradle.properties +5 -0
  8. package/android/src/main/AndroidManifest.xml +6 -0
  9. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  10. package/android/src/main/java/com/munimwifi/HybridMunimWifi.kt +283 -0
  11. package/android/src/main/java/com/munimwifi/MunimWifiPackage.kt +20 -0
  12. package/ios/Bridge.h +8 -0
  13. package/ios/HybridMunimWifi.swift +222 -0
  14. package/lib/commonjs/index.js +216 -0
  15. package/lib/commonjs/index.js.map +1 -0
  16. package/lib/commonjs/package.json +1 -0
  17. package/lib/commonjs/specs/munim-wifi.nitro.js +6 -0
  18. package/lib/commonjs/specs/munim-wifi.nitro.js.map +1 -0
  19. package/lib/module/index.js +198 -0
  20. package/lib/module/index.js.map +1 -0
  21. package/lib/module/specs/munim-wifi.nitro.js +4 -0
  22. package/lib/module/specs/munim-wifi.nitro.js.map +1 -0
  23. package/lib/typescript/src/index.d.ts +120 -0
  24. package/lib/typescript/src/index.d.ts.map +1 -0
  25. package/lib/typescript/src/specs/munim-wifi.nitro.d.ts +118 -0
  26. package/lib/typescript/src/specs/munim-wifi.nitro.d.ts.map +1 -0
  27. package/nitro.json +24 -0
  28. package/nitrogen/generated/.gitattributes +1 -0
  29. package/nitrogen/generated/android/MunimWifi+autolinking.cmake +85 -0
  30. package/nitrogen/generated/android/MunimWifi+autolinking.gradle +27 -0
  31. package/nitrogen/generated/android/MunimWifiOnLoad.cpp +44 -0
  32. package/nitrogen/generated/android/MunimWifiOnLoad.hpp +25 -0
  33. package/nitrogen/generated/android/c++/JChannelInfo.hpp +61 -0
  34. package/nitrogen/generated/android/c++/JHybridMunimWifiSpec.cpp +262 -0
  35. package/nitrogen/generated/android/c++/JHybridMunimWifiSpec.hpp +78 -0
  36. package/nitrogen/generated/android/c++/JLocation.hpp +61 -0
  37. package/nitrogen/generated/android/c++/JScanOptions.hpp +61 -0
  38. package/nitrogen/generated/android/c++/JVariant_NullType_ChannelInfo.cpp +26 -0
  39. package/nitrogen/generated/android/c++/JVariant_NullType_ChannelInfo.hpp +71 -0
  40. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
  41. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
  42. package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
  43. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
  44. package/nitrogen/generated/android/c++/JVariant_NullType_WifiNetwork.cpp +26 -0
  45. package/nitrogen/generated/android/c++/JVariant_NullType_WifiNetwork.hpp +73 -0
  46. package/nitrogen/generated/android/c++/JWifiFingerprint.hpp +89 -0
  47. package/nitrogen/generated/android/c++/JWifiNetwork.hpp +86 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/ChannelInfo.kt +41 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/HybridMunimWifiSpec.kt +107 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/Location.kt +41 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/MunimWifiOnLoad.kt +35 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/ScanOptions.kt +41 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/Variant_NullType_ChannelInfo.kt +59 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/Variant_NullType_Double.kt +59 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/Variant_NullType_String.kt +59 -0
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/Variant_NullType_WifiNetwork.kt +59 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/WifiFingerprint.kt +44 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimwifi/WifiNetwork.kt +59 -0
  59. package/nitrogen/generated/ios/MunimWifi+autolinking.rb +60 -0
  60. package/nitrogen/generated/ios/MunimWifi-Swift-Cxx-Bridge.cpp +105 -0
  61. package/nitrogen/generated/ios/MunimWifi-Swift-Cxx-Bridge.hpp +653 -0
  62. package/nitrogen/generated/ios/MunimWifi-Swift-Cxx-Umbrella.hpp +64 -0
  63. package/nitrogen/generated/ios/MunimWifiAutolinking.mm +33 -0
  64. package/nitrogen/generated/ios/MunimWifiAutolinking.swift +26 -0
  65. package/nitrogen/generated/ios/c++/HybridMunimWifiSpecSwift.cpp +11 -0
  66. package/nitrogen/generated/ios/c++/HybridMunimWifiSpecSwift.hpp +189 -0
  67. package/nitrogen/generated/ios/swift/ChannelInfo.swift +35 -0
  68. package/nitrogen/generated/ios/swift/Func_void_WifiFingerprint.swift +47 -0
  69. package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
  70. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  71. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__ChannelInfo_.swift +59 -0
  72. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__WifiNetwork_.swift +59 -0
  73. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__double_.swift +59 -0
  74. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__string_.swift +59 -0
  75. package/nitrogen/generated/ios/swift/Func_void_std__vector_WifiNetwork_.swift +47 -0
  76. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +47 -0
  77. package/nitrogen/generated/ios/swift/HybridMunimWifiSpec.swift +68 -0
  78. package/nitrogen/generated/ios/swift/HybridMunimWifiSpec_cxx.swift +382 -0
  79. package/nitrogen/generated/ios/swift/Location.swift +47 -0
  80. package/nitrogen/generated/ios/swift/ScanOptions.swift +47 -0
  81. package/nitrogen/generated/ios/swift/Variant_NullType_ChannelInfo.swift +18 -0
  82. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
  83. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +18 -0
  84. package/nitrogen/generated/ios/swift/Variant_NullType_WifiNetwork.swift +18 -0
  85. package/nitrogen/generated/ios/swift/WifiFingerprint.swift +52 -0
  86. package/nitrogen/generated/ios/swift/WifiNetwork.swift +103 -0
  87. package/nitrogen/generated/shared/c++/ChannelInfo.hpp +87 -0
  88. package/nitrogen/generated/shared/c++/HybridMunimWifiSpec.cpp +33 -0
  89. package/nitrogen/generated/shared/c++/HybridMunimWifiSpec.hpp +90 -0
  90. package/nitrogen/generated/shared/c++/Location.hpp +87 -0
  91. package/nitrogen/generated/shared/c++/ScanOptions.hpp +87 -0
  92. package/nitrogen/generated/shared/c++/WifiFingerprint.hpp +97 -0
  93. package/nitrogen/generated/shared/c++/WifiNetwork.hpp +112 -0
  94. package/package.json +122 -0
  95. package/src/index.ts +221 -0
  96. package/src/specs/munim-wifi.nitro.ts +140 -0
@@ -0,0 +1,120 @@
1
+ import type { WifiNetwork, WifiFingerprint, ScanOptions, ChannelInfo, Location } from './specs/munim-wifi.nitro';
2
+ /**
3
+ * Check if Wi-Fi is enabled on the device.
4
+ *
5
+ * @returns Promise resolving to true if Wi-Fi is enabled, false otherwise.
6
+ */
7
+ export declare function isWifiEnabled(): Promise<boolean>;
8
+ /**
9
+ * Request Wi-Fi permissions (Android) or check authorization status (iOS).
10
+ * On Android, this requests location permission which is required for Wi-Fi scanning.
11
+ * On iOS, this checks location authorization status.
12
+ *
13
+ * @returns Promise resolving to true if permissions are granted, false otherwise.
14
+ */
15
+ export declare function requestWifiPermission(): Promise<boolean>;
16
+ /**
17
+ * Scan for nearby Wi-Fi networks.
18
+ *
19
+ * @param options - Optional scan configuration including max results and timeout.
20
+ * @returns Promise resolving to array of discovered Wi-Fi networks.
21
+ */
22
+ export declare function scanNetworks(options?: ScanOptions): Promise<WifiNetwork[]>;
23
+ /**
24
+ * Start continuous Wi-Fi scanning. Results will be emitted via events.
25
+ *
26
+ * @param options - Optional scan configuration.
27
+ */
28
+ export declare function startScan(options?: ScanOptions): void;
29
+ /**
30
+ * Stop continuous Wi-Fi scanning.
31
+ */
32
+ export declare function stopScan(): void;
33
+ /**
34
+ * Get list of SSIDs (network names) from the last scan.
35
+ *
36
+ * @returns Promise resolving to array of SSID strings.
37
+ */
38
+ export declare function getSSIDs(): Promise<string[]>;
39
+ /**
40
+ * Get Wi-Fi fingerprint containing all network information.
41
+ * This includes SSIDs, BSSIDs, RSSI, channels, and frequencies.
42
+ *
43
+ * @returns Promise resolving to Wi-Fi fingerprint data.
44
+ */
45
+ export declare function getWifiFingerprint(): Promise<WifiFingerprint>;
46
+ /**
47
+ * Get RSSI (signal strength) for a specific network by SSID.
48
+ *
49
+ * @param ssid - The SSID of the network.
50
+ * @returns Promise resolving to RSSI value in dBm, or null if network not found.
51
+ */
52
+ export declare function getRSSI(ssid: string): Promise<number | null>;
53
+ /**
54
+ * Get BSSID (MAC address) for a specific network by SSID.
55
+ *
56
+ * @param ssid - The SSID of the network.
57
+ * @returns Promise resolving to BSSID string, or null if network not found.
58
+ */
59
+ export declare function getBSSID(ssid: string): Promise<string | null>;
60
+ /**
61
+ * Get channel and frequency information for a specific network by SSID.
62
+ *
63
+ * @param ssid - The SSID of the network.
64
+ * @returns Promise resolving to object with channel and frequency, or null if network not found.
65
+ */
66
+ export declare function getChannelInfo(ssid: string): Promise<ChannelInfo | null>;
67
+ /**
68
+ * Get all available information for a specific network by SSID.
69
+ *
70
+ * @param ssid - The SSID of the network.
71
+ * @returns Promise resolving to WifiNetwork object, or null if network not found.
72
+ */
73
+ export declare function getNetworkInfo(ssid: string): Promise<WifiNetwork | null>;
74
+ /**
75
+ * Add a network found event listener (for continuous scanning).
76
+ *
77
+ * @param callback - Function to call when a network is found
78
+ * @returns A function to remove the listener
79
+ */
80
+ export declare function addNetworkFoundListener(callback: (network: WifiNetwork) => void): () => void;
81
+ /**
82
+ * Add an event listener.
83
+ *
84
+ * @param eventName - The name of the event to listen for.
85
+ * @param callback - The callback to invoke when the event occurs.
86
+ * @returns A function to remove the listener
87
+ */
88
+ export declare function addEventListener(eventName: string, callback: (data: any) => void): () => void;
89
+ /**
90
+ * Add an event listener (legacy method).
91
+ *
92
+ * @param eventName - The name of the event to listen for.
93
+ */
94
+ export declare function addListener(eventName: string): void;
95
+ /**
96
+ * Remove event listeners.
97
+ *
98
+ * @param count - Number of listeners to remove.
99
+ */
100
+ export declare function removeListeners(count: number): void;
101
+ export type { WifiNetwork, WifiFingerprint, ScanOptions, ChannelInfo, Location };
102
+ declare const _default: {
103
+ isWifiEnabled: typeof isWifiEnabled;
104
+ requestWifiPermission: typeof requestWifiPermission;
105
+ scanNetworks: typeof scanNetworks;
106
+ startScan: typeof startScan;
107
+ stopScan: typeof stopScan;
108
+ getSSIDs: typeof getSSIDs;
109
+ getWifiFingerprint: typeof getWifiFingerprint;
110
+ getRSSI: typeof getRSSI;
111
+ getBSSID: typeof getBSSID;
112
+ getChannelInfo: typeof getChannelInfo;
113
+ getNetworkInfo: typeof getNetworkInfo;
114
+ addNetworkFoundListener: typeof addNetworkFoundListener;
115
+ addEventListener: typeof addEventListener;
116
+ addListener: typeof addListener;
117
+ removeListeners: typeof removeListeners;
118
+ };
119
+ export default _default;
120
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,QAAQ,EACT,MAAM,0BAA0B,CAAA;AAuBjC;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAExE;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GACvC,MAAM,IAAI,CAUZ;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC5B,MAAM,IAAI,CAUZ;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEnD;AAID,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;AAGhF,wBAgBC"}
@@ -0,0 +1,118 @@
1
+ import { type HybridObject } from 'react-native-nitro-modules';
2
+ export interface Location {
3
+ latitude?: number;
4
+ longitude?: number;
5
+ }
6
+ export interface ChannelInfo {
7
+ channel: number;
8
+ frequency: number;
9
+ }
10
+ export interface WifiNetwork {
11
+ ssid: string;
12
+ bssid: string;
13
+ rssi: number;
14
+ frequency: number;
15
+ channel?: number;
16
+ capabilities?: string;
17
+ isSecure?: boolean;
18
+ timestamp?: number;
19
+ }
20
+ export interface WifiFingerprint {
21
+ networks: WifiNetwork[];
22
+ timestamp: number;
23
+ location?: Location;
24
+ }
25
+ export interface ScanOptions {
26
+ maxResults?: number;
27
+ timeout?: number;
28
+ }
29
+ export interface MunimWifi extends HybridObject<{
30
+ ios: 'swift';
31
+ android: 'kotlin';
32
+ }> {
33
+ /**
34
+ * Check if Wi-Fi is enabled on the device.
35
+ *
36
+ * @returns Promise resolving to true if Wi-Fi is enabled, false otherwise.
37
+ */
38
+ isWifiEnabled(): Promise<boolean>;
39
+ /**
40
+ * Request Wi-Fi permissions (Android) or check authorization status (iOS).
41
+ * On Android, this requests location permission which is required for Wi-Fi scanning.
42
+ * On iOS, this checks location authorization status.
43
+ *
44
+ * @returns Promise resolving to true if permissions are granted, false otherwise.
45
+ */
46
+ requestWifiPermission(): Promise<boolean>;
47
+ /**
48
+ * Scan for nearby Wi-Fi networks.
49
+ *
50
+ * @param options - Optional scan configuration including max results and timeout.
51
+ * @returns Promise resolving to array of discovered Wi-Fi networks.
52
+ */
53
+ scanNetworks(options?: ScanOptions): Promise<WifiNetwork[]>;
54
+ /**
55
+ * Start continuous Wi-Fi scanning. Results will be emitted via events.
56
+ *
57
+ * @param options - Optional scan configuration.
58
+ */
59
+ startScan(options?: ScanOptions): void;
60
+ /**
61
+ * Stop continuous Wi-Fi scanning.
62
+ */
63
+ stopScan(): void;
64
+ /**
65
+ * Get list of SSIDs (network names) from the last scan.
66
+ *
67
+ * @returns Promise resolving to array of SSID strings.
68
+ */
69
+ getSSIDs(): Promise<string[]>;
70
+ /**
71
+ * Get Wi-Fi fingerprint containing all network information.
72
+ * This includes SSIDs, BSSIDs, RSSI, channels, and frequencies.
73
+ *
74
+ * @returns Promise resolving to Wi-Fi fingerprint data.
75
+ */
76
+ getWifiFingerprint(): Promise<WifiFingerprint>;
77
+ /**
78
+ * Get RSSI (signal strength) for a specific network by SSID.
79
+ *
80
+ * @param ssid - The SSID of the network.
81
+ * @returns Promise resolving to RSSI value in dBm, or null if network not found.
82
+ */
83
+ getRSSI(ssid: string): Promise<number | null>;
84
+ /**
85
+ * Get BSSID (MAC address) for a specific network by SSID.
86
+ *
87
+ * @param ssid - The SSID of the network.
88
+ * @returns Promise resolving to BSSID string, or null if network not found.
89
+ */
90
+ getBSSID(ssid: string): Promise<string | null>;
91
+ /**
92
+ * Get channel and frequency information for a specific network by SSID.
93
+ *
94
+ * @param ssid - The SSID of the network.
95
+ * @returns Promise resolving to object with channel and frequency, or null if network not found.
96
+ */
97
+ getChannelInfo(ssid: string): Promise<ChannelInfo | null>;
98
+ /**
99
+ * Get all available information for a specific network by SSID.
100
+ *
101
+ * @param ssid - The SSID of the network.
102
+ * @returns Promise resolving to WifiNetwork object, or null if network not found.
103
+ */
104
+ getNetworkInfo(ssid: string): Promise<WifiNetwork | null>;
105
+ /**
106
+ * Add an event listener for network found events (when using startScan).
107
+ *
108
+ * @param eventName - The name of the event to listen for.
109
+ */
110
+ addListener(eventName: string): void;
111
+ /**
112
+ * Remove event listeners.
113
+ *
114
+ * @param count - Number of listeners to remove.
115
+ */
116
+ removeListeners(count: number): void;
117
+ }
118
+ //# sourceMappingURL=munim-wifi.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"munim-wifi.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/munim-wifi.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAGD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAGD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,SACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAEjC;;;;;;OAMG;IACH,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAEzC;;;;;OAKG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAE3D;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAEtC;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAA;IAEhB;;;;OAIG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAE7B;;;;;OAKG;IACH,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;IAE9C;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAE7C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAE9C;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAEzD;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAIzD;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAEpC;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC"}
package/nitro.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://nitro.margelo.com/nitro.schema.json",
3
+ "cxxNamespace": [
4
+ "munimwifi"
5
+ ],
6
+ "ios": {
7
+ "iosModuleName": "MunimWifi"
8
+ },
9
+ "android": {
10
+ "androidNamespace": [
11
+ "munimwifi"
12
+ ],
13
+ "androidCxxLibName": "MunimWifi"
14
+ },
15
+ "autolinking": {
16
+ "MunimWifi": {
17
+ "swift": "HybridMunimWifi",
18
+ "kotlin": "HybridMunimWifi"
19
+ }
20
+ },
21
+ "ignorePaths": [
22
+ "**/node_modules"
23
+ ]
24
+ }
@@ -0,0 +1 @@
1
+ ** linguist-generated=true
@@ -0,0 +1,85 @@
1
+ #
2
+ # MunimWifi+autolinking.cmake
3
+ # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ # https://github.com/mrousavy/nitro
5
+ # Copyright © Marc Rousavy @ Margelo
6
+ #
7
+
8
+ # This is a CMake file that adds all files generated by Nitrogen
9
+ # to the current CMake project.
10
+ #
11
+ # To use it, add this to your CMakeLists.txt:
12
+ # ```cmake
13
+ # include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/MunimWifi+autolinking.cmake)
14
+ # ```
15
+
16
+ # Define a flag to check if we are building properly
17
+ add_definitions(-DBUILDING_MUNIMWIFI_WITH_GENERATED_CMAKE_PROJECT)
18
+
19
+ # Enable Raw Props parsing in react-native (for Nitro Views)
20
+ add_definitions(-DRN_SERIALIZABLE_STATE)
21
+
22
+ # Add all headers that were generated by Nitrogen
23
+ include_directories(
24
+ "../nitrogen/generated/shared/c++"
25
+ "../nitrogen/generated/android/c++"
26
+ "../nitrogen/generated/android/"
27
+ )
28
+
29
+ # Add all .cpp sources that were generated by Nitrogen
30
+ target_sources(
31
+ # CMake project name (Android C++ library name)
32
+ MunimWifi PRIVATE
33
+ # Autolinking Setup
34
+ ../nitrogen/generated/android/MunimWifiOnLoad.cpp
35
+ # Shared Nitrogen C++ sources
36
+ ../nitrogen/generated/shared/c++/HybridMunimWifiSpec.cpp
37
+ # Android-specific Nitrogen C++ sources
38
+ ../nitrogen/generated/android/c++/JHybridMunimWifiSpec.cpp
39
+ ../nitrogen/generated/android/c++/JVariant_NullType_Double.cpp
40
+ ../nitrogen/generated/android/c++/JVariant_NullType_String.cpp
41
+ ../nitrogen/generated/android/c++/JVariant_NullType_ChannelInfo.cpp
42
+ ../nitrogen/generated/android/c++/JVariant_NullType_WifiNetwork.cpp
43
+ )
44
+
45
+ # From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
46
+ # Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
47
+ target_compile_definitions(
48
+ MunimWifi PRIVATE
49
+ -DFOLLY_NO_CONFIG=1
50
+ -DFOLLY_HAVE_CLOCK_GETTIME=1
51
+ -DFOLLY_USE_LIBCPP=1
52
+ -DFOLLY_CFG_NO_COROUTINES=1
53
+ -DFOLLY_MOBILE=1
54
+ -DFOLLY_HAVE_RECVMMSG=1
55
+ -DFOLLY_HAVE_PTHREAD=1
56
+ # Once we target android-23 above, we can comment
57
+ # the following line. NDK uses GNU style stderror_r() after API 23.
58
+ -DFOLLY_HAVE_XSI_STRERROR_R=1
59
+ )
60
+
61
+ # Add all libraries required by the generated specs
62
+ find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
63
+ find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
64
+ find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
65
+
66
+ # Link all libraries together
67
+ target_link_libraries(
68
+ MunimWifi
69
+ fbjni::fbjni # <-- Facebook C++ JNI helpers
70
+ ReactAndroid::jsi # <-- RN: JSI
71
+ react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
72
+ )
73
+
74
+ # Link react-native (different prefab between RN 0.75 and RN 0.76)
75
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
76
+ target_link_libraries(
77
+ MunimWifi
78
+ ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
79
+ )
80
+ else()
81
+ target_link_libraries(
82
+ MunimWifi
83
+ ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
84
+ )
85
+ endif()
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// MunimWifi+autolinking.gradle
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /// This is a Gradle file that adds all files generated by Nitrogen
9
+ /// to the current Gradle project.
10
+ ///
11
+ /// To use it, add this to your build.gradle:
12
+ /// ```gradle
13
+ /// apply from: '../nitrogen/generated/android/MunimWifi+autolinking.gradle'
14
+ /// ```
15
+
16
+ logger.warn("[NitroModules] 🔥 MunimWifi is boosted by nitro!")
17
+
18
+ android {
19
+ sourceSets {
20
+ main {
21
+ java.srcDirs += [
22
+ // Nitrogen files
23
+ "${project.projectDir}/../nitrogen/generated/android/kotlin"
24
+ ]
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,44 @@
1
+ ///
2
+ /// MunimWifiOnLoad.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #ifndef BUILDING_MUNIMWIFI_WITH_GENERATED_CMAKE_PROJECT
9
+ #error MunimWifiOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
10
+ #endif
11
+
12
+ #include "MunimWifiOnLoad.hpp"
13
+
14
+ #include <jni.h>
15
+ #include <fbjni/fbjni.h>
16
+ #include <NitroModules/HybridObjectRegistry.hpp>
17
+
18
+ #include "JHybridMunimWifiSpec.hpp"
19
+ #include <NitroModules/DefaultConstructableObject.hpp>
20
+
21
+ namespace margelo::nitro::munimwifi {
22
+
23
+ int initialize(JavaVM* vm) {
24
+ using namespace margelo::nitro;
25
+ using namespace margelo::nitro::munimwifi;
26
+ using namespace facebook;
27
+
28
+ return facebook::jni::initialize(vm, [] {
29
+ // Register native JNI methods
30
+ margelo::nitro::munimwifi::JHybridMunimWifiSpec::registerNatives();
31
+
32
+ // Register Nitro Hybrid Objects
33
+ HybridObjectRegistry::registerHybridObjectConstructor(
34
+ "MunimWifi",
35
+ []() -> std::shared_ptr<HybridObject> {
36
+ static DefaultConstructableObject<JHybridMunimWifiSpec::javaobject> object("com/munimwifi/HybridMunimWifi");
37
+ auto instance = object.create();
38
+ return instance->cthis()->shared();
39
+ }
40
+ );
41
+ });
42
+ }
43
+
44
+ } // namespace margelo::nitro::munimwifi
@@ -0,0 +1,25 @@
1
+ ///
2
+ /// MunimWifiOnLoad.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include <jni.h>
9
+ #include <NitroModules/NitroDefines.hpp>
10
+
11
+ namespace margelo::nitro::munimwifi {
12
+
13
+ /**
14
+ * Initializes the native (C++) part of MunimWifi, and autolinks all Hybrid Objects.
15
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
16
+ * Example:
17
+ * ```cpp (cpp-adapter.cpp)
18
+ * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
+ * return margelo::nitro::munimwifi::initialize(vm);
20
+ * }
21
+ * ```
22
+ */
23
+ int initialize(JavaVM* vm);
24
+
25
+ } // namespace margelo::nitro::munimwifi
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JChannelInfo.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "ChannelInfo.hpp"
12
+
13
+
14
+
15
+ namespace margelo::nitro::munimwifi {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "ChannelInfo" and the the Kotlin data class "ChannelInfo".
21
+ */
22
+ struct JChannelInfo final: public jni::JavaClass<JChannelInfo> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/munimwifi/ChannelInfo;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct ChannelInfo by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ ChannelInfo toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldChannel = clazz->getField<double>("channel");
35
+ double channel = this->getFieldValue(fieldChannel);
36
+ static const auto fieldFrequency = clazz->getField<double>("frequency");
37
+ double frequency = this->getFieldValue(fieldFrequency);
38
+ return ChannelInfo(
39
+ channel,
40
+ frequency
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JChannelInfo::javaobject> fromCpp(const ChannelInfo& value) {
50
+ using JSignature = JChannelInfo(double, double);
51
+ static const auto clazz = javaClassStatic();
52
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
+ return create(
54
+ clazz,
55
+ value.channel,
56
+ value.frequency
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::munimwifi