react-native-maps 1.21.0-alpha.99 → 1.22.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 (234) hide show
  1. package/README.md +9 -4
  2. package/android/build.gradle +65 -72
  3. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  4. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  5. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  6. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  7. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  8. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  9. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  10. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  11. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  12. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  13. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  14. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +45 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +22 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  25. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  26. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
  27. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
  28. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
  29. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
  30. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +5 -1
  31. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +1 -1
  32. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +9 -3
  33. package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
  34. package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
  35. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +19 -3
  36. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +608 -603
  37. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  38. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +2 -22
  39. package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +23 -1
  40. package/android/src/main/java/com/rnmaps/maps/MapUrlTile.java +18 -18
  41. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +10 -14
  42. package/android/src/main/java/com/rnmaps/maps/MapView.java +58 -49
  43. package/android/src/main/java/com/rnmaps/maps/MapWMSTile.java +3 -3
  44. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +10 -10
  45. package/android/src/main/jni/CMakeLists.txt +36 -0
  46. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  47. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  48. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
  49. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
  50. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
  51. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
  52. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
  53. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1297 -0
  54. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  55. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  56. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
  57. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
  58. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  59. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
  60. package/app.plugin.js +1 -0
  61. package/ios/AirGoogleMaps/AIRGoogleMap.h +13 -13
  62. package/ios/AirGoogleMaps/{AIRGoogleMap.m → AIRGoogleMap.mm} +32 -34
  63. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +1 -0
  64. package/ios/AirGoogleMaps/AIRGoogleMapManager.mm +543 -0
  65. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +3 -3
  66. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  67. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  68. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +2 -2
  69. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +5 -2
  70. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +41 -33
  71. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  72. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +23 -14
  73. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +1 -0
  74. package/ios/AirMaps/AIRMap.h +8 -9
  75. package/ios/AirMaps/{AIRMap.m → AIRMap.mm} +18 -14
  76. package/ios/AirMaps/AIRMapManager.m +8 -19
  77. package/ios/AirMaps/AIRMapMarker.m +57 -44
  78. package/ios/AirMaps/AIRMapOverlay.m +2 -2
  79. package/ios/AirMaps/AIRMapWMSTile.m +8 -8
  80. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +25 -0
  81. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +77 -0
  82. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  83. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +51 -0
  84. package/ios/AirMaps/RNMapsAirModule.h +2 -3
  85. package/ios/AirMaps/RNMapsAirModule.mm +14 -0
  86. package/ios/AirMaps/RNMapsDefines.h +1 -0
  87. package/ios/AirMaps/RNMapsMapView.h +5 -2
  88. package/ios/AirMaps/RNMapsMapView.mm +16 -6
  89. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  90. package/ios/AirMaps/RNMapsMarkerView.mm +12 -4
  91. package/ios/AirMaps/RNMapsMarkerViewManager.mm +7 -0
  92. package/ios/AirMaps/module.modulemap +6 -0
  93. package/ios/AirMaps.xcodeproj/project.pbxproj +15 -55
  94. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  95. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  96. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  97. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  98. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  99. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  100. package/ios/{AirMaps → generated}/RNMapsAirModuleDelegate.h +1 -1
  101. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  102. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  103. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  104. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  105. package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
  106. package/ios/generated/RNMapsSpecs/Props.h +1224 -0
  107. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  108. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  109. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  110. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  111. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  112. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  113. package/ios/generated/RNMapsSpecs/States.h +113 -0
  114. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  115. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  116. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  117. package/ios/generated/module.modulemap +15 -0
  118. package/package.json +34 -27
  119. package/plugin/build/android.js +58 -0
  120. package/plugin/build/index.js +10 -0
  121. package/plugin/build/ios.js +172 -0
  122. package/react-native-google-maps.podspec +27 -0
  123. package/react-native-maps-generated.podspec +31 -0
  124. package/react-native-maps.podspec +52 -46
  125. package/react-native.config.js +16 -0
  126. package/src/AnimatedRegion.ts +169 -0
  127. package/src/Geojson.tsx +541 -0
  128. package/src/MapCallout.tsx +77 -0
  129. package/src/MapCalloutSubview.tsx +64 -0
  130. package/src/MapCircle.tsx +162 -0
  131. package/src/MapHeatmap.tsx +125 -0
  132. package/src/MapLocalTile.tsx +60 -0
  133. package/src/MapMarker.tsx +531 -0
  134. package/src/MapMarkerNativeComponent.ts +51 -0
  135. package/src/MapOverlay.tsx +178 -0
  136. package/src/MapPolygon.tsx +188 -0
  137. package/src/MapPolygon.types.ts +25 -0
  138. package/src/MapPolyline.tsx +215 -0
  139. package/src/MapUrlTile.tsx +169 -0
  140. package/src/MapView.tsx +1230 -0
  141. package/src/MapView.types.ts +212 -0
  142. package/src/MapView.web.ts +2 -0
  143. package/src/MapViewNativeComponent.ts +86 -0
  144. package/src/MapWMSTile.tsx +148 -0
  145. package/src/ProviderConstants.ts +2 -0
  146. package/src/createFabricMap.tsx +253 -0
  147. package/src/decorateMapComponent.ts +229 -0
  148. package/src/fixImageProp.ts +17 -0
  149. package/src/index.ts +52 -0
  150. package/src/sharedTypes.ts +101 -0
  151. package/{specs → src/specs}/NativeComponentCircle.ts +3 -4
  152. package/{specs → src/specs}/NativeComponentGoogleMapView.ts +15 -9
  153. package/{specs → src/specs}/NativeComponentMapView.ts +61 -32
  154. package/{specs → src/specs}/NativeComponentOverlay.ts +11 -2
  155. package/{specs → src/specs}/NativeComponentPolyline.ts +1 -1
  156. package/src/specs/NativeComponentUrlTile.ts +128 -0
  157. package/src/specs/NativeComponentWMSTile.ts +107 -0
  158. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -533
  159. package/lib/AnimatedRegion.d.ts +0 -19
  160. package/lib/AnimatedRegion.js +0 -134
  161. package/lib/Geojson.d.ts +0 -204
  162. package/lib/Geojson.js +0 -166
  163. package/lib/MapCallout.d.ts +0 -40
  164. package/lib/MapCallout.js +0 -51
  165. package/lib/MapCalloutSubview.d.ts +0 -34
  166. package/lib/MapCalloutSubview.js +0 -48
  167. package/lib/MapCircle.d.ts +0 -117
  168. package/lib/MapCircle.js +0 -53
  169. package/lib/MapHeatmap.d.ts +0 -78
  170. package/lib/MapHeatmap.js +0 -59
  171. package/lib/MapLocalTile.d.ts +0 -35
  172. package/lib/MapLocalTile.js +0 -44
  173. package/lib/MapMarker.d.ts +0 -322
  174. package/lib/MapMarker.js +0 -158
  175. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  176. package/lib/MapMarkerNativeComponent.js +0 -15
  177. package/lib/MapOverlay.d.ts +0 -88
  178. package/lib/MapOverlay.js +0 -65
  179. package/lib/MapPolygon.d.ts +0 -140
  180. package/lib/MapPolygon.js +0 -53
  181. package/lib/MapPolygon.types.d.ts +0 -18
  182. package/lib/MapPolyline.d.ts +0 -156
  183. package/lib/MapPolyline.js +0 -53
  184. package/lib/MapUrlTile.d.ts +0 -134
  185. package/lib/MapUrlTile.js +0 -44
  186. package/lib/MapView.d.ts +0 -703
  187. package/lib/MapView.js +0 -427
  188. package/lib/MapView.types.d.ts +0 -161
  189. package/lib/MapView.types.js +0 -2
  190. package/lib/MapView.web.d.ts +0 -1
  191. package/lib/MapView.web.js +0 -9
  192. package/lib/MapViewNativeComponent.d.ts +0 -18
  193. package/lib/MapViewNativeComponent.js +0 -19
  194. package/lib/MapWMSTile.d.ts +0 -116
  195. package/lib/MapWMSTile.js +0 -44
  196. package/lib/ProviderConstants.d.ts +0 -2
  197. package/lib/ProviderConstants.js +0 -5
  198. package/lib/createFabricMap.d.ts +0 -24
  199. package/lib/createFabricMap.js +0 -188
  200. package/lib/decorateMapComponent.d.ts +0 -36
  201. package/lib/decorateMapComponent.js +0 -120
  202. package/lib/fixImageProp.d.ts +0 -4
  203. package/lib/fixImageProp.js +0 -16
  204. package/lib/index.d.ts +0 -38
  205. package/lib/index.js +0 -81
  206. package/lib/sharedTypes.d.ts +0 -81
  207. package/lib/sharedTypes.js +0 -2
  208. package/lib/sharedTypesInternal.js +0 -2
  209. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  210. package/lib/specs/NativeAirMapsModule.js +0 -4
  211. package/lib/specs/NativeComponentCallout.d.ts +0 -46
  212. package/lib/specs/NativeComponentCallout.js +0 -9
  213. package/lib/specs/NativeComponentCircle.d.ts +0 -74
  214. package/lib/specs/NativeComponentCircle.js +0 -7
  215. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  216. package/lib/specs/NativeComponentGoogleMapView.js +0 -22
  217. package/lib/specs/NativeComponentGooglePolygon.d.ts +0 -75
  218. package/lib/specs/NativeComponentGooglePolygon.js +0 -7
  219. package/lib/specs/NativeComponentMapView.d.ts +0 -847
  220. package/lib/specs/NativeComponentMapView.js +0 -20
  221. package/lib/specs/NativeComponentMarker.d.ts +0 -258
  222. package/lib/specs/NativeComponentMarker.js +0 -19
  223. package/lib/specs/NativeComponentOverlay.d.ts +0 -67
  224. package/lib/specs/NativeComponentOverlay.js +0 -7
  225. package/lib/specs/NativeComponentPolyline.d.ts +0 -101
  226. package/lib/specs/NativeComponentPolyline.js +0 -7
  227. /package/ios/AirMaps/{UIView +AirMap.m → UIView+AirMap.m} +0 -0
  228. /package/ios/{AirMaps → generated}/RNMapsHostVewDelegate.h +0 -0
  229. /package/{lib/MapPolygon.types.js → plugin/build/types.js} +0 -0
  230. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
  231. /package/{specs → src/specs}/NativeAirMapsModule.ts +0 -0
  232. /package/{specs → src/specs}/NativeComponentCallout.ts +0 -0
  233. /package/{specs → src/specs}/NativeComponentGooglePolygon.ts +0 -0
  234. /package/{specs → src/specs}/NativeComponentMarker.ts +0 -0
@@ -0,0 +1,268 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleH.js
8
+ */
9
+
10
+ #pragma once
11
+
12
+ #include <ReactCommon/TurboModule.h>
13
+ #include <react/bridging/Bridging.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+
19
+ #pragma mark - NativeAirMapsModuleLatLng
20
+
21
+ template <typename P0, typename P1>
22
+ struct NativeAirMapsModuleLatLng {
23
+ P0 latitude;
24
+ P1 longitude;
25
+ bool operator==(const NativeAirMapsModuleLatLng &other) const {
26
+ return latitude == other.latitude && longitude == other.longitude;
27
+ }
28
+ };
29
+
30
+ template <typename T>
31
+ struct NativeAirMapsModuleLatLngBridging {
32
+ static T types;
33
+
34
+ static T fromJs(
35
+ jsi::Runtime &rt,
36
+ const jsi::Object &value,
37
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
38
+ T result{
39
+ bridging::fromJs<decltype(types.latitude)>(rt, value.getProperty(rt, "latitude"), jsInvoker),
40
+ bridging::fromJs<decltype(types.longitude)>(rt, value.getProperty(rt, "longitude"), jsInvoker)};
41
+ return result;
42
+ }
43
+
44
+ #ifdef DEBUG
45
+ static double latitudeToJs(jsi::Runtime &rt, decltype(types.latitude) value) {
46
+ return bridging::toJs(rt, value);
47
+ }
48
+
49
+ static double longitudeToJs(jsi::Runtime &rt, decltype(types.longitude) value) {
50
+ return bridging::toJs(rt, value);
51
+ }
52
+ #endif
53
+
54
+ static jsi::Object toJs(
55
+ jsi::Runtime &rt,
56
+ const T &value,
57
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
58
+ auto result = facebook::jsi::Object(rt);
59
+ result.setProperty(rt, "latitude", bridging::toJs(rt, value.latitude, jsInvoker));
60
+ result.setProperty(rt, "longitude", bridging::toJs(rt, value.longitude, jsInvoker));
61
+ return result;
62
+ }
63
+ };
64
+
65
+
66
+
67
+ #pragma mark - NativeAirMapsModuleMapBoundaries
68
+
69
+ template <typename P0, typename P1>
70
+ struct NativeAirMapsModuleMapBoundaries {
71
+ P0 northEast;
72
+ P1 southWest;
73
+ bool operator==(const NativeAirMapsModuleMapBoundaries &other) const {
74
+ return northEast == other.northEast && southWest == other.southWest;
75
+ }
76
+ };
77
+
78
+ template <typename T>
79
+ struct NativeAirMapsModuleMapBoundariesBridging {
80
+ static T types;
81
+
82
+ static T fromJs(
83
+ jsi::Runtime &rt,
84
+ const jsi::Object &value,
85
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
86
+ T result{
87
+ bridging::fromJs<decltype(types.northEast)>(rt, value.getProperty(rt, "northEast"), jsInvoker),
88
+ bridging::fromJs<decltype(types.southWest)>(rt, value.getProperty(rt, "southWest"), jsInvoker)};
89
+ return result;
90
+ }
91
+
92
+ #ifdef DEBUG
93
+ static jsi::Object northEastToJs(jsi::Runtime &rt, decltype(types.northEast) value) {
94
+ return bridging::toJs(rt, value);
95
+ }
96
+
97
+ static jsi::Object southWestToJs(jsi::Runtime &rt, decltype(types.southWest) value) {
98
+ return bridging::toJs(rt, value);
99
+ }
100
+ #endif
101
+
102
+ static jsi::Object toJs(
103
+ jsi::Runtime &rt,
104
+ const T &value,
105
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
106
+ auto result = facebook::jsi::Object(rt);
107
+ result.setProperty(rt, "northEast", bridging::toJs(rt, value.northEast, jsInvoker));
108
+ result.setProperty(rt, "southWest", bridging::toJs(rt, value.southWest, jsInvoker));
109
+ return result;
110
+ }
111
+ };
112
+
113
+
114
+
115
+ #pragma mark - NativeAirMapsModulePoint
116
+
117
+ template <typename P0, typename P1>
118
+ struct NativeAirMapsModulePoint {
119
+ P0 x;
120
+ P1 y;
121
+ bool operator==(const NativeAirMapsModulePoint &other) const {
122
+ return x == other.x && y == other.y;
123
+ }
124
+ };
125
+
126
+ template <typename T>
127
+ struct NativeAirMapsModulePointBridging {
128
+ static T types;
129
+
130
+ static T fromJs(
131
+ jsi::Runtime &rt,
132
+ const jsi::Object &value,
133
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
134
+ T result{
135
+ bridging::fromJs<decltype(types.x)>(rt, value.getProperty(rt, "x"), jsInvoker),
136
+ bridging::fromJs<decltype(types.y)>(rt, value.getProperty(rt, "y"), jsInvoker)};
137
+ return result;
138
+ }
139
+
140
+ #ifdef DEBUG
141
+ static double xToJs(jsi::Runtime &rt, decltype(types.x) value) {
142
+ return bridging::toJs(rt, value);
143
+ }
144
+
145
+ static double yToJs(jsi::Runtime &rt, decltype(types.y) value) {
146
+ return bridging::toJs(rt, value);
147
+ }
148
+ #endif
149
+
150
+ static jsi::Object toJs(
151
+ jsi::Runtime &rt,
152
+ const T &value,
153
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
154
+ auto result = facebook::jsi::Object(rt);
155
+ result.setProperty(rt, "x", bridging::toJs(rt, value.x, jsInvoker));
156
+ result.setProperty(rt, "y", bridging::toJs(rt, value.y, jsInvoker));
157
+ return result;
158
+ }
159
+ };
160
+
161
+ class JSI_EXPORT NativeAirMapsModuleCxxSpecJSI : public TurboModule {
162
+ protected:
163
+ NativeAirMapsModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
164
+
165
+ public:
166
+ virtual jsi::Value getCamera(jsi::Runtime &rt, double tag) = 0;
167
+ virtual jsi::Value getMarkersFrames(jsi::Runtime &rt, double tag, bool onlyVisible) = 0;
168
+ virtual jsi::Value getMapBoundaries(jsi::Runtime &rt, double tag) = 0;
169
+ virtual jsi::Value takeSnapshot(jsi::Runtime &rt, double tag, jsi::String config) = 0;
170
+ virtual jsi::Value getAddressFromCoordinates(jsi::Runtime &rt, double tag, jsi::Object coordinate) = 0;
171
+ virtual jsi::Value getPointForCoordinate(jsi::Runtime &rt, double tag, jsi::Object coordinate) = 0;
172
+ virtual jsi::Value getCoordinateForPoint(jsi::Runtime &rt, double tag, jsi::Object point) = 0;
173
+
174
+ };
175
+
176
+ template <typename T>
177
+ class JSI_EXPORT NativeAirMapsModuleCxxSpec : public TurboModule {
178
+ public:
179
+ jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
180
+ return delegate_.create(rt, propName);
181
+ }
182
+
183
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
184
+ return delegate_.getPropertyNames(runtime);
185
+ }
186
+
187
+ static constexpr std::string_view kModuleName = "RNMapsAirModule";
188
+
189
+ protected:
190
+ NativeAirMapsModuleCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
191
+ : TurboModule(std::string{NativeAirMapsModuleCxxSpec::kModuleName}, jsInvoker),
192
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
193
+
194
+
195
+ private:
196
+ class Delegate : public NativeAirMapsModuleCxxSpecJSI {
197
+ public:
198
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
199
+ NativeAirMapsModuleCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
200
+
201
+ }
202
+
203
+ jsi::Value getCamera(jsi::Runtime &rt, double tag) override {
204
+ static_assert(
205
+ bridging::getParameterCount(&T::getCamera) == 2,
206
+ "Expected getCamera(...) to have 2 parameters");
207
+
208
+ return bridging::callFromJs<jsi::Value>(
209
+ rt, &T::getCamera, jsInvoker_, instance_, std::move(tag));
210
+ }
211
+ jsi::Value getMarkersFrames(jsi::Runtime &rt, double tag, bool onlyVisible) override {
212
+ static_assert(
213
+ bridging::getParameterCount(&T::getMarkersFrames) == 3,
214
+ "Expected getMarkersFrames(...) to have 3 parameters");
215
+
216
+ return bridging::callFromJs<jsi::Value>(
217
+ rt, &T::getMarkersFrames, jsInvoker_, instance_, std::move(tag), std::move(onlyVisible));
218
+ }
219
+ jsi::Value getMapBoundaries(jsi::Runtime &rt, double tag) override {
220
+ static_assert(
221
+ bridging::getParameterCount(&T::getMapBoundaries) == 2,
222
+ "Expected getMapBoundaries(...) to have 2 parameters");
223
+
224
+ return bridging::callFromJs<jsi::Value>(
225
+ rt, &T::getMapBoundaries, jsInvoker_, instance_, std::move(tag));
226
+ }
227
+ jsi::Value takeSnapshot(jsi::Runtime &rt, double tag, jsi::String config) override {
228
+ static_assert(
229
+ bridging::getParameterCount(&T::takeSnapshot) == 3,
230
+ "Expected takeSnapshot(...) to have 3 parameters");
231
+
232
+ return bridging::callFromJs<jsi::Value>(
233
+ rt, &T::takeSnapshot, jsInvoker_, instance_, std::move(tag), std::move(config));
234
+ }
235
+ jsi::Value getAddressFromCoordinates(jsi::Runtime &rt, double tag, jsi::Object coordinate) override {
236
+ static_assert(
237
+ bridging::getParameterCount(&T::getAddressFromCoordinates) == 3,
238
+ "Expected getAddressFromCoordinates(...) to have 3 parameters");
239
+
240
+ return bridging::callFromJs<jsi::Value>(
241
+ rt, &T::getAddressFromCoordinates, jsInvoker_, instance_, std::move(tag), std::move(coordinate));
242
+ }
243
+ jsi::Value getPointForCoordinate(jsi::Runtime &rt, double tag, jsi::Object coordinate) override {
244
+ static_assert(
245
+ bridging::getParameterCount(&T::getPointForCoordinate) == 3,
246
+ "Expected getPointForCoordinate(...) to have 3 parameters");
247
+
248
+ return bridging::callFromJs<jsi::Value>(
249
+ rt, &T::getPointForCoordinate, jsInvoker_, instance_, std::move(tag), std::move(coordinate));
250
+ }
251
+ jsi::Value getCoordinateForPoint(jsi::Runtime &rt, double tag, jsi::Object point) override {
252
+ static_assert(
253
+ bridging::getParameterCount(&T::getCoordinateForPoint) == 3,
254
+ "Expected getCoordinateForPoint(...) to have 3 parameters");
255
+
256
+ return bridging::callFromJs<jsi::Value>(
257
+ rt, &T::getCoordinateForPoint, jsInvoker_, instance_, std::move(tag), std::move(point));
258
+ }
259
+
260
+ private:
261
+ friend class NativeAirMapsModuleCxxSpec;
262
+ T *instance_;
263
+ };
264
+
265
+ Delegate delegate_;
266
+ };
267
+
268
+ } // namespace facebook::react
@@ -0,0 +1,34 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ version = "0.77.2"
7
+ source = { :git => 'https://github.com/facebook/react-native.git' }
8
+ if version == '1000.0.0'
9
+ # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
10
+ source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
11
+ else
12
+ source[:tag] = "v#{version}"
13
+ end
14
+
15
+ Pod::Spec.new do |s|
16
+ s.name = "ReactAppDependencyProvider"
17
+ s.version = version
18
+ s.summary = "The third party dependency provider for the app"
19
+ s.homepage = "https://reactnative.dev/"
20
+ s.documentation_url = "https://reactnative.dev/"
21
+ s.license = "MIT"
22
+ s.author = "Meta Platforms, Inc. and its affiliates"
23
+ s.platforms = min_supported_versions
24
+ s.source = source
25
+ s.source_files = "**/RCTAppDependencyProvider.{h,mm}"
26
+
27
+ # This guard prevent to install the dependencies when we run `pod install` in the old architecture.
28
+ s.pod_target_xcconfig = {
29
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
30
+ "DEFINES_MODULE" => "YES"
31
+ }
32
+
33
+ s.dependency "ReactCodegen"
34
+ end
@@ -0,0 +1,15 @@
1
+ framework module ReactNativeMapsGenerated {
2
+ header "RNMapsAirModuleDelegate.h"
3
+ header "RNMapsHostVewDelegate.h"
4
+
5
+ explicit module RNMapsSpecs {
6
+ header "ComponentDescriptors.h"
7
+ header "EventEmitters.h"
8
+ header "Props.h"
9
+ header "RCTComponentViewHelpers.h"
10
+ header "RNMapsSpecs.h"
11
+ export *
12
+ }
13
+
14
+ export *
15
+ }
package/package.json CHANGED
@@ -2,31 +2,33 @@
2
2
  "name": "react-native-maps",
3
3
  "description": "React Native Mapview component for iOS + Android",
4
4
  "source": "src/index",
5
- "main": "lib/index.js",
5
+ "main": "src/index.ts",
6
6
  "author": "Leland Richardson <leland.m.richardson@gmail.com>",
7
7
  "homepage": "https://github.com/react-native-maps/react-native-maps#readme",
8
- "version": "1.21.0-alpha.99",
8
+ "version": "1.22.0",
9
9
  "license": "MIT",
10
10
  "scripts": {
11
11
  "lint": "eslint . --max-warnings 0",
12
12
  "tscheck": "tsc --noEmit",
13
13
  "format-check": "prettier --check .",
14
- "build": "tsc --project tsconfig.build.json",
14
+ "build": "tsc --project tsconfig.build.json && tsc --project plugin/tsconfig.json",
15
15
  "test": "jest",
16
16
  "prepare": "husky install",
17
17
  "release": "semantic-release",
18
18
  "bundle-install": "cd example && bundle install",
19
- "pod-install": "cd example/ios && bundle exec pod install",
20
- "bootstrap": "yarn --cwd example && yarn && yarn bundle-install && yarn pod-install",
21
- "prepack": "node updateCodegenConfig.js"
19
+ "pod-install": "cd example/ios && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install",
20
+ "bootstrap": "yarn --cwd example && yarn && yarn bundle-install && yarn pod-install"
22
21
  },
23
22
  "files": [
24
- "specs",
25
- "lib",
23
+ "src",
26
24
  "android",
27
25
  "ios",
26
+ "app.plugin.js",
27
+ "plugin/build",
28
+ "react-native-maps-generated.podspec",
29
+ "react-native-google-maps.podspec",
28
30
  "react-native-maps.podspec",
29
- "react-native.config.json",
31
+ "react-native.config.js",
30
32
  "!android/build",
31
33
  "!ios/build",
32
34
  "!**/__tests__",
@@ -47,8 +49,8 @@
47
49
  "mapkit"
48
50
  ],
49
51
  "peerDependencies": {
50
- "react": ">= 19.0.0",
51
- "react-native": ">= 0.78.0",
52
+ "react": ">= 18.3.1",
53
+ "react-native": ">= 0.76.0",
52
54
  "react-native-web": ">= 0.11"
53
55
  },
54
56
  "peerDependenciesMeta": {
@@ -57,29 +59,29 @@
57
59
  }
58
60
  },
59
61
  "devDependencies": {
60
- "@babel/core": "^7.26.9",
61
- "@babel/preset-env": "^7.26.9",
62
- "@babel/runtime": "^7.26.9",
62
+ "@babel/core": "^7.25.2",
63
+ "@babel/preset-env": "^7.25.3",
64
+ "@babel/runtime": "^7.25.0",
63
65
  "@commitlint/cli": "17.6.1",
64
66
  "@commitlint/config-conventional": "17.6.1",
65
- "@react-native-community/cli": "15.1.3",
66
- "@react-native/babel-preset": "0.78.0",
67
- "@react-native/eslint-config": "0.78.0",
68
- "@react-native/metro-config": "0.78.0",
69
- "@react-native/typescript-config": "0.78.0",
67
+ "@expo/config-plugins": "^9.0.17",
68
+ "@react-native-community/cli": "15.0.1",
69
+ "@react-native/babel-preset": "0.76.8",
70
+ "@react-native/eslint-config": "0.76.8",
71
+ "@react-native/metro-config": "0.76.8",
72
+ "@react-native/typescript-config": "0.76.8",
70
73
  "@semantic-release/changelog": "6.0.3",
71
74
  "@semantic-release/git": "10.0.1",
72
- "@types/jest": "29.5.14",
73
- "@types/react": "^19.0.10",
74
- "@types/react-native": "0.73.0",
75
- "@types/react-test-renderer": "^19.0.0",
75
+ "@types/react": "^18.2.6",
76
+ "@types/react-test-renderer": "^18.0.0",
77
+ "babel-jest": "^29.6.3",
76
78
  "eslint": "^8.19.0",
77
79
  "husky": "8.0.3",
78
80
  "jest": "^29.6.3",
79
81
  "prettier": "2.8.8",
80
- "react": "^19.0.0",
81
- "react-native": "^0.78.0",
82
- "react-test-renderer": "19.0.0",
82
+ "react": "^18.3.1",
83
+ "react-native": "^0.77.1",
84
+ "react-test-renderer": "18.3.1",
83
85
  "semantic-release": "24.2.0",
84
86
  "typescript": "5.0.4"
85
87
  },
@@ -96,7 +98,12 @@
96
98
  "codegenConfig": {
97
99
  "name": "RNMapsSpecs",
98
100
  "type": "all",
99
- "jsSrcsDir": "./specs",
101
+ "jsSrcsDir": "./src/specs",
102
+ "outputDir": {
103
+ "ios": "ios/generated",
104
+ "android": "android/src/main"
105
+ },
106
+ "includesGeneratedCode": true,
100
107
  "android": {
101
108
  "javaPackageName": "com.rnmaps.fabric"
102
109
  }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var config_plugins_1 = require("@expo/config-plugins");
40
+ var Manifest_1 = require("@expo/config-plugins/build/android/Manifest");
41
+ var withMapsAndroid = function (config, props) {
42
+ config = (0, config_plugins_1.withAndroidManifest)(config, function (conf) { return __awaiter(void 0, void 0, void 0, function () {
43
+ var manifest, mainApplication;
44
+ return __generator(this, function (_a) {
45
+ manifest = conf.modResults;
46
+ mainApplication = (0, Manifest_1.getMainApplicationOrThrow)(manifest);
47
+ if (props === null || props === void 0 ? void 0 : props.androidGoogleMapsApiKey) {
48
+ (0, Manifest_1.addMetaDataItemToMainApplication)(mainApplication, 'com.google.android.geo.API_KEY', props === null || props === void 0 ? void 0 : props.androidGoogleMapsApiKey);
49
+ }
50
+ else {
51
+ (0, Manifest_1.removeMetaDataItemFromMainApplication)(mainApplication, 'com.google.android.geo.API_KEY');
52
+ }
53
+ return [2 /*return*/, conf];
54
+ });
55
+ }); });
56
+ return config;
57
+ };
58
+ exports.default = withMapsAndroid;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var ios_1 = require("./ios");
4
+ var android_1 = require("./android");
5
+ var withMaps = function (config, props) {
6
+ config = (0, ios_1.withMapsIOS)(config, props);
7
+ config = (0, android_1.default)(config, props);
8
+ return config;
9
+ };
10
+ exports.default = withMaps;
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.addMapsCocoapods = exports.removeGoogleMapsAppDelegateInit = exports.addGoogleMapsAppDelegateInit = exports.removeGoogleMapsAppDelegateImport = exports.addGoogleMapsAppDelegateImport = exports.withMapsIOS = exports.MATCH_INIT = void 0;
40
+ var ios_plugins_1 = require("@expo/config-plugins/build/plugins/ios-plugins");
41
+ var generateCode_1 = require("@expo/config-plugins/build/utils/generateCode");
42
+ var debug = require('debug')('expo:config-plugins:ios:maps');
43
+ exports.MATCH_INIT = /\bsuper\.application\(\w+?, didFinishLaunchingWithOptions: \w+?\)/g;
44
+ var withMapsIOS = function (config, props) {
45
+ // Set in Info.plist
46
+ if (props === null || props === void 0 ? void 0 : props.iosGoogleMapsApiKey) {
47
+ config = (0, ios_plugins_1.withInfoPlist)(config, function (conf) { return __awaiter(void 0, void 0, void 0, function () {
48
+ return __generator(this, function (_a) {
49
+ conf.ios.infoPlist.GMSApiKey = props === null || props === void 0 ? void 0 : props.iosGoogleMapsApiKey;
50
+ return [2 /*return*/, conf];
51
+ });
52
+ }); });
53
+ }
54
+ // Technically adds react-native-maps (Apple maps) and google maps.
55
+ debug('Google Maps API Key:', props === null || props === void 0 ? void 0 : props.iosGoogleMapsApiKey);
56
+ config = withMapsCocoaPods(config, {
57
+ useGoogleMaps: !!(props === null || props === void 0 ? void 0 : props.iosGoogleMapsApiKey),
58
+ });
59
+ // Adds/Removes AppDelegate setup for Google Maps API on iOS
60
+ config = withGoogleMapsAppDelegate(config, {
61
+ apiKey: props === null || props === void 0 ? void 0 : props.iosGoogleMapsApiKey,
62
+ });
63
+ return config;
64
+ };
65
+ exports.withMapsIOS = withMapsIOS;
66
+ function addGoogleMapsAppDelegateImport(src) {
67
+ var newSrc = ['#if canImport(GoogleMaps)', 'import GoogleMaps', '#endif'];
68
+ return (0, generateCode_1.mergeContents)({
69
+ tag: 'react-native-maps-import',
70
+ src: src,
71
+ newSrc: newSrc.join('\n'),
72
+ anchor: /@UIApplicationMain/,
73
+ offset: 0,
74
+ comment: '//',
75
+ });
76
+ }
77
+ exports.addGoogleMapsAppDelegateImport = addGoogleMapsAppDelegateImport;
78
+ function removeGoogleMapsAppDelegateImport(src) {
79
+ return (0, generateCode_1.removeContents)({
80
+ tag: 'react-native-maps-import',
81
+ src: src,
82
+ });
83
+ }
84
+ exports.removeGoogleMapsAppDelegateImport = removeGoogleMapsAppDelegateImport;
85
+ function addGoogleMapsAppDelegateInit(src, apiKey) {
86
+ var newSrc = [
87
+ '#if canImport(GoogleMaps)',
88
+ "GMSServices.provideAPIKey(\"".concat(apiKey, "\")"),
89
+ '#endif',
90
+ ];
91
+ return (0, generateCode_1.mergeContents)({
92
+ tag: 'react-native-maps-init',
93
+ src: src,
94
+ newSrc: newSrc.join('\n'),
95
+ anchor: exports.MATCH_INIT,
96
+ offset: 0,
97
+ comment: '//',
98
+ });
99
+ }
100
+ exports.addGoogleMapsAppDelegateInit = addGoogleMapsAppDelegateInit;
101
+ function removeGoogleMapsAppDelegateInit(src) {
102
+ return (0, generateCode_1.removeContents)({
103
+ tag: 'react-native-maps-init',
104
+ src: src,
105
+ });
106
+ }
107
+ exports.removeGoogleMapsAppDelegateInit = removeGoogleMapsAppDelegateInit;
108
+ /**
109
+ * @param src The contents of the Podfile.
110
+ * @returns Podfile with react-native-maps integration configured.
111
+ */
112
+ function addMapsCocoapods(src, useGoogleMaps) {
113
+ var newSrc = ' rn_maps_path = File.dirname(`node --print "require.resolve(\'react-native-maps/package.json\')"`) \n';
114
+ if (useGoogleMaps) {
115
+ newSrc += " pod 'react-native-google-maps', :path => rn_maps_path \n";
116
+ }
117
+ newSrc += " pod 'react-native-maps-generated', :path => rn_maps_path \n";
118
+ return (0, generateCode_1.mergeContents)({
119
+ tag: 'react-native-maps',
120
+ src: src,
121
+ newSrc: newSrc,
122
+ anchor: /use_native_modules/,
123
+ offset: 0,
124
+ comment: '#',
125
+ });
126
+ }
127
+ exports.addMapsCocoapods = addMapsCocoapods;
128
+ var withMapsCocoaPods = function (config, _a) {
129
+ var useGoogleMaps = _a.useGoogleMaps;
130
+ return (0, ios_plugins_1.withPodfile)(config, function (conf) { return __awaiter(void 0, void 0, void 0, function () {
131
+ var results;
132
+ return __generator(this, function (_a) {
133
+ try {
134
+ results = addMapsCocoapods(conf.modResults.contents, useGoogleMaps);
135
+ }
136
+ catch (error) {
137
+ if (error.code === 'ERR_NO_MATCH') {
138
+ throw new Error("Cannot add react-native-maps to the project's ios/Podfile because it's malformed. Please report this with a copy of your project Podfile.");
139
+ }
140
+ throw error;
141
+ }
142
+ if (results.didMerge || results.didClear) {
143
+ conf.modResults.contents = results.contents;
144
+ }
145
+ return [2 /*return*/, conf];
146
+ });
147
+ }); });
148
+ };
149
+ var withGoogleMapsAppDelegate = function (config, _a) {
150
+ var apiKey = _a.apiKey;
151
+ return (0, ios_plugins_1.withAppDelegate)(config, function (conf) {
152
+ if (!apiKey) {
153
+ conf.modResults.contents = removeGoogleMapsAppDelegateImport(conf.modResults.contents).contents;
154
+ conf.modResults.contents = removeGoogleMapsAppDelegateInit(conf.modResults.contents).contents;
155
+ return conf;
156
+ }
157
+ if (conf.modResults.language !== 'swift') {
158
+ throw new Error("Cannot setup Google Maps because the project AppDelegate is not a supported language: ".concat(conf.modResults.language));
159
+ }
160
+ try {
161
+ conf.modResults.contents = addGoogleMapsAppDelegateImport(conf.modResults.contents).contents;
162
+ conf.modResults.contents = addGoogleMapsAppDelegateInit(conf.modResults.contents, apiKey).contents;
163
+ }
164
+ catch (error) {
165
+ if (error.code === 'ERR_NO_MATCH') {
166
+ throw new Error("Cannot add Google Maps to the project's AppDelegate because it's malformed. Please report this with a copy of your project AppDelegate.");
167
+ }
168
+ throw error;
169
+ }
170
+ return conf;
171
+ });
172
+ };