@maplibre/maplibre-react-native 10.0.0-alpha.6 → 10.0.0-alpha.8

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 (113) hide show
  1. package/.eslintrc.js +3 -1
  2. package/.yarn/sdks/eslint/bin/eslint.js +8 -1
  3. package/.yarn/sdks/eslint/lib/api.js +8 -1
  4. package/.yarn/sdks/eslint/lib/unsupported-api.js +8 -1
  5. package/.yarn/sdks/prettier/bin/prettier.cjs +8 -1
  6. package/.yarn/sdks/prettier/index.cjs +8 -1
  7. package/.yarn/sdks/typescript/bin/tsc +8 -1
  8. package/.yarn/sdks/typescript/bin/tsserver +8 -1
  9. package/.yarn/sdks/typescript/lib/tsc.js +8 -1
  10. package/.yarn/sdks/typescript/lib/tsserver.js +20 -6
  11. package/.yarn/sdks/typescript/lib/tsserverlibrary.js +20 -6
  12. package/.yarn/sdks/typescript/lib/typescript.js +8 -1
  13. package/CHANGELOG.md +7 -0
  14. package/CONTRIBUTING.md +10 -9
  15. package/android/build.gradle +1 -1
  16. package/android/rctmln/build.gradle +5 -5
  17. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/MarkerView.java +2 -2
  18. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/MarkerViewManager.java +6 -6
  19. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java +5 -5
  20. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java +9 -8
  21. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/CameraStop.java +14 -12
  22. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/CameraUpdateItem.java +10 -10
  23. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/CameraUpdateQueue.java +1 -1
  24. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java +26 -26
  25. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java +1 -1
  26. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java +12 -12
  27. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/location/LocationComponentManager.java +9 -9
  28. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java +7 -7
  29. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java +1 -1
  30. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/LayerSourceInfo.java +9 -9
  31. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +2 -2
  32. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +2 -2
  33. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java +43 -43
  34. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java +6 -6
  35. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java +3 -3
  36. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java +14 -14
  37. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java +2 -2
  38. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java +2 -2
  39. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTLayer.java +8 -8
  40. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +1 -1
  41. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java +2 -2
  42. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java +2 -2
  43. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java +2 -2
  44. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java +2 -2
  45. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java +2 -2
  46. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +1 -1
  47. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java +2 -2
  48. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java +6 -6
  49. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java +3 -3
  50. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java +1 -1
  51. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java +3 -3
  52. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java +9 -9
  53. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java +1 -1
  54. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java +2 -2
  55. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java +4 -4
  56. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTSource.java +7 -7
  57. package/android/rctmln/src/main/java/com/maplibre/rctmln/events/FeatureClickEvent.java +2 -2
  58. package/android/rctmln/src/main/java/com/maplibre/rctmln/events/MapClickEvent.java +1 -1
  59. package/android/rctmln/src/main/java/com/maplibre/rctmln/events/PointAnnotationClickEvent.java +2 -2
  60. package/android/rctmln/src/main/java/com/maplibre/rctmln/events/PointAnnotationDragEvent.java +2 -2
  61. package/android/rctmln/src/main/java/com/maplibre/rctmln/location/LocationManager.java +6 -6
  62. package/android/rctmln/src/main/java/com/maplibre/rctmln/location/UserLocation.java +1 -1
  63. package/android/rctmln/src/main/java/com/maplibre/rctmln/location/UserTrackingMode.java +3 -3
  64. package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java +2 -2
  65. package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java +2 -2
  66. package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java +8 -8
  67. package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java +11 -11
  68. package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java +7 -7
  69. package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/ClusterPropertyEntry.java +1 -1
  70. package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/DownloadMapImageTask.java +5 -5
  71. package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/ExpressionParser.java +2 -2
  72. package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/GeoJSONUtils.java +13 -13
  73. package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/GeoViewport.java +3 -3
  74. package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/SimpleEventCallback.java +2 -2
  75. package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/SphericalMercator.java +1 -1
  76. package/docs/Camera.md +3 -3
  77. package/docs/MapView.md +9 -33
  78. package/docs/UserLocation.md +10 -2
  79. package/docs/docs.json +16 -31
  80. package/javascript/Maplibre.ts +5 -1
  81. package/javascript/components/BackgroundLayer.tsx +27 -20
  82. package/javascript/components/Callout.tsx +40 -40
  83. package/javascript/components/Camera.tsx +421 -478
  84. package/javascript/components/CircleLayer.tsx +29 -22
  85. package/javascript/components/FillExtrusionLayer.tsx +23 -23
  86. package/javascript/components/FillLayer.tsx +22 -19
  87. package/javascript/components/HeatmapLayer.tsx +21 -19
  88. package/javascript/components/ImageSource.tsx +25 -32
  89. package/javascript/components/Images.tsx +36 -35
  90. package/javascript/components/Light.tsx +20 -47
  91. package/javascript/components/LineLayer.tsx +23 -20
  92. package/javascript/components/MapView.tsx +604 -554
  93. package/javascript/components/MarkerView.tsx +23 -38
  94. package/javascript/components/NativeUserLocation.tsx +3 -5
  95. package/javascript/components/PointAnnotation.tsx +111 -87
  96. package/javascript/components/RasterLayer.tsx +21 -18
  97. package/javascript/components/RasterSource.tsx +39 -42
  98. package/javascript/components/ShapeSource.tsx +287 -239
  99. package/javascript/components/Style.tsx +1 -1
  100. package/javascript/components/SymbolLayer.tsx +34 -28
  101. package/javascript/components/UserLocation.tsx +164 -151
  102. package/javascript/components/VectorSource.tsx +128 -117
  103. package/javascript/components/annotations/Annotation.tsx +105 -79
  104. package/javascript/{components/AbstractLayer.tsx → hooks/useAbstractLayer.ts} +54 -37
  105. package/javascript/hooks/useAbstractSource.ts +34 -0
  106. package/javascript/hooks/useNativeBridge.ts +125 -0
  107. package/javascript/hooks/useNativeRef.ts +13 -0
  108. package/javascript/hooks/useOnce.ts +12 -0
  109. package/javascript/utils/Logger.ts +3 -3
  110. package/package.json +2 -1
  111. package/scripts/templates/RCTMLNStyleFactory.java.ejs +14 -14
  112. package/javascript/components/AbstractSource.tsx +0 -27
  113. package/javascript/components/NativeBridgeComponent.tsx +0 -117
package/.eslintrc.js CHANGED
@@ -159,8 +159,10 @@ module.exports = {
159
159
  '@typescript-eslint/no-explicit-any': 'off',
160
160
  'no-unused-vars': 'off',
161
161
  'no-use-before-define': 'off',
162
- '@typescript-eslint/no-use-before-define': ['warn'],
162
+ '@typescript-eslint/no-use-before-define': 'off',
163
163
  'react/prop-types': 'off',
164
+ 'react-hooks/rules-of-hooks': 'error',
165
+ 'react-hooks/exhaustive-deps': 'warn',
164
166
  },
165
167
  },
166
168
  ],
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require eslint/bin/eslint.js
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require eslint
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require eslint/use-at-your-own-risk
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require prettier/bin/prettier.cjs
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require prettier
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require typescript/bin/tsc
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require typescript/bin/tsserver
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require typescript/lib/tsc.js
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
@@ -1,14 +1,28 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
16
+ if (existsSync(absPnpApiPath)) {
17
+ if (!process.versions.pnp) {
18
+ // Setup the environment to be able to require typescript/lib/tsserver.js
19
+ require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
23
+ }
24
+ }
25
+
12
26
  const moduleWrapper = tsserver => {
13
27
  if (!process.versions.pnp) {
14
28
  return tsserver;
@@ -214,11 +228,11 @@ const moduleWrapper = tsserver => {
214
228
  return tsserver;
215
229
  };
216
230
 
217
- if (existsSync(absPnpApiPath)) {
218
- if (!process.versions.pnp) {
219
- // Setup the environment to be able to require typescript/lib/tsserver.js
220
- require(absPnpApiPath).setup();
221
- }
231
+ const [major, minor] = absRequire(`typescript/package.json`).version.split(`.`, 2).map(value => parseInt(value, 10));
232
+ // In TypeScript@>=5.5 the tsserver uses the public TypeScript API so that needs to be patched as well.
233
+ // Ref https://github.com/microsoft/TypeScript/pull/55326
234
+ if (major > 5 || (major === 5 && minor >= 5)) {
235
+ moduleWrapper(absRequire(`typescript`));
222
236
  }
223
237
 
224
238
  // Defer to the real typescript/lib/tsserver.js your application uses
@@ -1,14 +1,28 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
16
+ if (existsSync(absPnpApiPath)) {
17
+ if (!process.versions.pnp) {
18
+ // Setup the environment to be able to require typescript/lib/tsserverlibrary.js
19
+ require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
23
+ }
24
+ }
25
+
12
26
  const moduleWrapper = tsserver => {
13
27
  if (!process.versions.pnp) {
14
28
  return tsserver;
@@ -214,11 +228,11 @@ const moduleWrapper = tsserver => {
214
228
  return tsserver;
215
229
  };
216
230
 
217
- if (existsSync(absPnpApiPath)) {
218
- if (!process.versions.pnp) {
219
- // Setup the environment to be able to require typescript/lib/tsserverlibrary.js
220
- require(absPnpApiPath).setup();
221
- }
231
+ const [major, minor] = absRequire(`typescript/package.json`).version.split(`.`, 2).map(value => parseInt(value, 10));
232
+ // In TypeScript@>=5.5 the tsserver uses the public TypeScript API so that needs to be patched as well.
233
+ // Ref https://github.com/microsoft/TypeScript/pull/55326
234
+ if (major > 5 || (major === 5 && minor >= 5)) {
235
+ moduleWrapper(absRequire(`typescript`));
222
236
  }
223
237
 
224
238
  // Defer to the real typescript/lib/tsserverlibrary.js your application uses
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const {existsSync} = require(`fs`);
4
- const {createRequire} = require(`module`);
4
+ const {createRequire, register} = require(`module`);
5
5
  const {resolve} = require(`path`);
6
+ const {pathToFileURL} = require(`url`);
6
7
 
7
8
  const relPnpApiPath = "../../../../.pnp.cjs";
8
9
 
9
10
  const absPnpApiPath = resolve(__dirname, relPnpApiPath);
10
11
  const absRequire = createRequire(absPnpApiPath);
11
12
 
13
+ const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
14
+ const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
15
+
12
16
  if (existsSync(absPnpApiPath)) {
13
17
  if (!process.versions.pnp) {
14
18
  // Setup the environment to be able to require typescript
15
19
  require(absPnpApiPath).setup();
20
+ if (isPnpLoaderEnabled && register) {
21
+ register(pathToFileURL(absPnpLoaderPath));
22
+ }
16
23
  }
17
24
  }
18
25
 
package/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ Please add unreleased changes in the following style:
5
5
  PR Title ([#123](link to my pr))
6
6
  ```
7
7
 
8
+ ## 10.0.0-alpha.8
9
+ feat: [Updated Android SDK from 10.2.0 to 11.0.1 #412](https://github.com/maplibre/maplibre-react-native/pull/412)
10
+
11
+ ## 10.0.0-alpha.7
12
+
13
+ feat: [Migrate MapView to react function component (#408)](https://github.com/maplibre/maplibre-react-native/pull/408)
14
+
8
15
  ## 10.0.0-alpha.6
9
16
  fix: [cameraRef?.current?.setCamera causing markerpoint get detached from maps-base](https://github.com/maplibre/maplibre-react-native/issues/409)
10
17
  fix: round compass margins and attribution position to nearest integers [android] ([#294](https://github.com/maplibre/maplibre-react-native/pull/294))
package/CONTRIBUTING.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Contributing
2
2
 
3
3
  PRs are most welcome! This doc covers some basic things you'll need to know to set up
4
- your dev environment and streamline the review process.
4
+ your dev environment and streamline the review process.
5
5
 
6
6
  ## Environment Setup
7
7
 
@@ -12,6 +12,8 @@ This project uses `yarn` as a package manager. DO NOT install `yarn` using `npm`
12
12
  the outdated 1.x branch. Full instructions are in the [yarn docs](https://yarnpkg.com/getting-started/install),
13
13
  but here's the quick checklist at the time of this writing.
14
14
 
15
+ Make sure to correctly configure your Editor following [this docs](https://yarnpkg.com/getting-started/editor-sdks).
16
+
15
17
  1. `corepack enable`
16
18
  2. `corepack prepare yarn@stable --activate`
17
19
  3. On first install, the above may change your yarn config away from `pnp`; check your git working copy for changes and revert if necessary.
@@ -19,8 +21,8 @@ but here's the quick checklist at the time of this writing.
19
21
 
20
22
  ## Testing
21
23
 
22
- The metro bundler under `/example` is set up to use the libraries files under root.
23
- Which means, when you change something within `javascript/components/UserLocation.js`
24
+ The metro bundler under `/example` is set up to use the libraries files under root.
25
+ Which means, when you change something within `javascript/components/UserLocation.js`
24
26
  it will be reflected in any scene in example that uses that component.
25
27
 
26
28
  TODO: A better overview of how we use jest, detox, etc. (issue #22)
@@ -33,7 +35,6 @@ While it's not easy to do this out of the box with `yarn` or `npm`.
33
35
  [`yalc`](https://www.viget.com/articles/how-to-use-local-unpublished-node-packages-as-project-dependencies/)
34
36
  can mitigate some of the pain with this.
35
37
 
36
-
37
38
  ## Best practices for PRs
38
39
 
39
40
  - If you add a feature, make sure you add it to the documentation
@@ -45,10 +46,10 @@ can mitigate some of the pain with this.
45
46
 
46
47
  ## Documentation
47
48
 
48
- Documentation is generated from code blocks and comments.
49
- It will be auto-generated when you commit changes.
50
- If any changes are generated from your edits, the changed files will need to be added using `git add` before attempting the commit again.
51
- To manually generate the changes, run `yarn generate`.
49
+ Documentation is generated from code blocks and comments.
50
+ It will be auto-generated when you commit changes.
51
+ If any changes are generated from your edits, the changed files will need to be added using `git add` before attempting the commit again.
52
+ To manually generate the changes, run `yarn generate`.
52
53
 
53
- Notice, that changing the documentation in the individual <COMPONENT>.md within `/docs` will not suffice.
54
+ Notice, that changing the documentation in the individual <COMPONENT>.md within `/docs` will not suffice.
54
55
  The correct way is the above described
@@ -4,7 +4,7 @@ buildscript {
4
4
  ext {
5
5
  buildToolsVersion = "33.0.0"
6
6
  minSdkVersion = 16
7
- compileSdkVersion = 33
7
+ compileSdkVersion = 34
8
8
  targetSdkVersion = 33
9
9
  supportLibVersion = "28.0.0"
10
10
  }
@@ -33,8 +33,8 @@ dependencies {
33
33
  implementation("com.facebook.react:react-android")
34
34
 
35
35
  // MapLibre SDK
36
- implementation "org.maplibre.gl:android-sdk:10.2.0"
37
- implementation "org.maplibre.gl:android-sdk-turf:5.9.0"
36
+ implementation "org.maplibre.gl:android-sdk:11.0.1"
37
+ implementation "org.maplibre.gl:android-sdk-turf:6.0.1"
38
38
 
39
39
  // Dependencies
40
40
  implementation "androidx.vectordrawable:vectordrawable:1.1.0"
@@ -45,9 +45,9 @@ dependencies {
45
45
 
46
46
 
47
47
  // MapLibre plugins
48
- implementation ("org.maplibre.gl:android-plugin-localization-v9:2.0.1")
49
- implementation ("org.maplibre.gl:android-plugin-annotation-v9:2.0.1")
50
- implementation ("org.maplibre.gl:android-plugin-markerview-v9:2.0.1")
48
+ implementation ("org.maplibre.gl:android-plugin-localization-v9:3.0.0")
49
+ implementation ("org.maplibre.gl:android-plugin-annotation-v9:3.0.0")
50
+ implementation ("org.maplibre.gl:android-plugin-markerview-v9:3.0.0")
51
51
  }
52
52
 
53
53
  allprojects {
@@ -4,12 +4,12 @@ import android.view.View;
4
4
 
5
5
  import androidx.annotation.NonNull;
6
6
 
7
- import com.mapbox.mapboxsdk.geometry.LatLng;
7
+ import org.maplibre.android.geometry.LatLng;
8
8
 
9
9
  /**
10
10
  * Subclass of MarkerView so we MarkerViewManager can implement remove/restoreViews
11
11
  */
12
- public class MarkerView extends com.mapbox.mapboxsdk.plugins.markerview.MarkerView {
12
+ public class MarkerView extends org.maplibre.android.plugins.markerview.MarkerView {
13
13
  View view;
14
14
 
15
15
  public MarkerView(@NonNull LatLng latLng, @NonNull View view) {
@@ -2,8 +2,8 @@ package com.maplibre.rctmln.components.annotation;
2
2
 
3
3
  import androidx.annotation.NonNull;
4
4
 
5
- import com.mapbox.mapboxsdk.maps.MapView;
6
- import com.mapbox.mapboxsdk.maps.MapboxMap;
5
+ import org.maplibre.android.maps.MapView;
6
+ import org.maplibre.android.maps.MapLibreMap;
7
7
 
8
8
  import java.util.ArrayList;
9
9
  import java.util.List;
@@ -13,15 +13,15 @@ import java.lang.reflect.InvocationTargetException;
13
13
  /**
14
14
  * Subclass of MarkerViewManager implementing removeViews and restoreViews
15
15
  */
16
- public class MarkerViewManager extends com.mapbox.mapboxsdk.plugins.markerview.MarkerViewManager {
16
+ public class MarkerViewManager extends org.maplibre.android.plugins.markerview.MarkerViewManager {
17
17
  private final List<MarkerView> markers = new ArrayList<>();
18
18
  private MapView mapView;
19
19
  private java.lang.reflect.Method markerUpdate;
20
20
 
21
- public MarkerViewManager(MapView mapView, MapboxMap mapboxMap) {
22
- super(mapView, mapboxMap);
21
+ public MarkerViewManager(MapView mapView, MapLibreMap map) {
22
+ super(mapView, map);
23
23
  this.mapView = mapView;
24
- // this.mapboxMap = mapboxMap;
24
+ // this.map = map;
25
25
 
26
26
  try {
27
27
  markerUpdate = MarkerView.class.getSuperclass().getDeclaredMethod("update");
@@ -6,9 +6,9 @@ import android.view.View;
6
6
 
7
7
  import androidx.annotation.NonNull;
8
8
 
9
- import com.mapbox.geojson.Point;
10
- import com.mapbox.mapboxsdk.maps.MapboxMap;
11
- import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
9
+ import org.maplibre.geojson.Point;
10
+ import org.maplibre.android.maps.MapLibreMap;
11
+ import org.maplibre.android.maps.OnMapReadyCallback;
12
12
  import com.maplibre.rctmln.components.AbstractMapFeature;
13
13
  import com.maplibre.rctmln.components.mapview.RCTMLNMapView;
14
14
  import com.maplibre.rctmln.utils.GeoJSONUtils;
@@ -65,8 +65,8 @@ public class RCTMLNMarkerView extends AbstractMapFeature implements MarkerView.O
65
65
  mMapView.getMapAsync(
66
66
  new OnMapReadyCallback() {
67
67
  @Override
68
- public void onMapReady(@NonNull MapboxMap mapboxMap) {
69
- mMarkerViewManager = mMapView.getMarkerViewManager(mapboxMap);
68
+ public void onMapReady(@NonNull MapLibreMap mapLibreMap) {
69
+ mMarkerViewManager = mMapView.getMarkerViewManager(mapLibreMap);
70
70
 
71
71
  if (mChildView != null) {
72
72
  mMarkerView = new MarkerView(GeoJSONUtils.toLatLng(mCoordinate), mChildView);
@@ -6,13 +6,14 @@ import android.graphics.Bitmap;
6
6
  import android.view.View;
7
7
  import androidx.annotation.NonNull;
8
8
 
9
- import com.mapbox.geojson.Point;
10
- import com.mapbox.mapboxsdk.geometry.LatLng;
11
- import com.mapbox.mapboxsdk.maps.Style;
12
- import com.mapbox.mapboxsdk.plugins.annotation.Symbol;
13
- import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager;
14
- import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions;
15
- import com.mapbox.mapboxsdk.maps.MapboxMap;
9
+ import org.maplibre.geojson.Point;
10
+ import org.maplibre.android.geometry.LatLng;
11
+ import org.maplibre.android.maps.Style;
12
+ import org.maplibre.android.plugins.annotation.Symbol;
13
+ import org.maplibre.android.plugins.annotation.SymbolManager;
14
+ import org.maplibre.android.plugins.annotation.SymbolOptions;
15
+ import org.maplibre.android.maps.MapLibreMap;
16
+
16
17
  import com.maplibre.rctmln.components.AbstractMapFeature;
17
18
  import com.maplibre.rctmln.components.mapview.RCTMLNMapView;
18
19
  import com.maplibre.rctmln.events.PointAnnotationClickEvent;
@@ -25,7 +26,7 @@ public class RCTMLNPointAnnotation extends AbstractMapFeature implements View.On
25
26
  private Context mContext;
26
27
  private RCTMLNPointAnnotationManager mManager;
27
28
  private Symbol mAnnotation;
28
- private MapboxMap mMap;
29
+ private MapLibreMap mMap;
29
30
  private RCTMLNMapView mMapView;
30
31
 
31
32
  private boolean mHasChildren;
@@ -5,19 +5,21 @@ import androidx.annotation.NonNull;
5
5
  import android.util.DisplayMetrics;
6
6
 
7
7
  import com.facebook.react.bridge.ReadableMap;
8
- import com.mapbox.geojson.FeatureCollection;
9
- import com.mapbox.geojson.Point;
10
- import com.mapbox.mapboxsdk.camera.CameraPosition;
11
- import com.mapbox.mapboxsdk.camera.CameraUpdate;
12
- import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
13
- import com.mapbox.mapboxsdk.geometry.LatLng;
14
- import com.mapbox.mapboxsdk.geometry.LatLngBounds;
15
- import com.mapbox.mapboxsdk.maps.MapboxMap;
8
+ import org.maplibre.geojson.FeatureCollection;
9
+ import org.maplibre.geojson.Point;
10
+ import org.maplibre.android.camera.CameraPosition;
11
+ import org.maplibre.android.camera.CameraUpdate;
12
+ import org.maplibre.android.camera.CameraUpdateFactory;
13
+ import org.maplibre.android.geometry.LatLng;
14
+ import org.maplibre.android.geometry.LatLngBounds;
15
+ import org.maplibre.android.maps.MapLibreMap;
16
16
  import com.maplibre.rctmln.components.camera.constants.CameraMode;
17
17
  import com.maplibre.rctmln.utils.GeoJSONUtils;
18
18
 
19
19
  import com.maplibre.rctmln.components.mapview.RCTMLNMapView;
20
20
 
21
+
22
+
21
23
  /**
22
24
  * Created by nickitaliano on 9/5/17.
23
25
  */
@@ -36,7 +38,7 @@ public class CameraStop {
36
38
 
37
39
  private int mMode = CameraMode.EASE;
38
40
  private int mDuration = 2000;
39
- private MapboxMap.CancelableCallback mCallback;
41
+ private MapLibreMap.CancelableCallback mCallback;
40
42
 
41
43
  public CameraStop() {
42
44
  }
@@ -61,7 +63,7 @@ public class CameraStop {
61
63
  mDuration = duration;
62
64
  }
63
65
 
64
- public void setCallback(MapboxMap.CancelableCallback callback) {
66
+ public void setCallback(MapLibreMap.CancelableCallback callback) {
65
67
  mCallback = callback;
66
68
  }
67
69
 
@@ -81,7 +83,7 @@ public class CameraStop {
81
83
  }
82
84
 
83
85
  public CameraUpdateItem toCameraUpdate(RCTMLNMapView mapView) {
84
- MapboxMap map = mapView.getMapboxMap();
86
+ MapLibreMap map = mapView.getMapboxMap();
85
87
  CameraPosition currentCamera = map.getCameraPosition();
86
88
  CameraPosition.Builder builder = new CameraPosition.Builder(currentCamera);
87
89
 
@@ -144,7 +146,7 @@ public class CameraStop {
144
146
  return new CameraUpdateItem(map, CameraUpdateFactory.newCameraPosition(builder.build()), mDuration, mCallback, mMode);
145
147
  }
146
148
 
147
- public static CameraStop fromReadableMap(Context context, @NonNull ReadableMap readableMap, MapboxMap.CancelableCallback callback) {
149
+ public static CameraStop fromReadableMap(Context context, @NonNull ReadableMap readableMap, MapLibreMap.CancelableCallback callback) {
148
150
  CameraStop stop = new CameraStop();
149
151
 
150
152
  if (readableMap.hasKey("pitch")) {