Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
773f144
feat: introduce a NOTICE file
cristian-situm Jul 31, 2026
77845fe
chore: correct type in CHANGELOG_UNRELEASED.md
cristian-situm Jul 31, 2026
64d0bce
chore: increase npmMinimalAgeGate to 7 days (recommended by semgrep s…
cristian-situm Aug 3, 2026
44d044c
chore: remove unused react-dom dependency from plugin + improve NOTIC…
cristian-situm Aug 3, 2026
1b88ac7
chore: remove unused dependencies from example/ and plugin/
cristian-situm Aug 3, 2026
ee63398
chore: remove 'release-it' unused devDep in plugin/package.json + fix…
cristian-situm Aug 3, 2026
8e1bbc3
chore: added CHANGELOG_UNRELEASED.md
cristian-situm Aug 3, 2026
57097bf
refactor: change NOTICE format to markdown
cristian-situm Aug 4, 2026
7306a1a
chore: fix all vulnerabilities of transitives dependencies in all 3 p…
cristian-situm Aug 4, 2026
55e509b
refactor: remove unneccessary section at NOTICE.md
cristian-situm Aug 4, 2026
bc421e3
chore: put years range in NOTICE + LICENSE
cristian-situm Aug 5, 2026
e28fd3a
refactor: change semgrep config file format to make azure-templates/s…
cristian-situm Aug 6, 2026
3cf246a
chore: added NOTICE's file important corrections in attributions
cristian-situm Aug 6, 2026
1bf1720
fix: fix packaging mistakes on package.json and other files + added p…
cristian-situm Aug 6, 2026
d529979
feat: added a bash script to verify legal state of the plugin before …
cristian-situm Aug 6, 2026
ef16adf
refactor: simplify prepack scripts in just two commands in package.js…
cristian-situm Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -186,3 +186,10 @@ DerivedData/

# Yarn
**/.yarn

# Files copied from monorepo root folder by scripts/prepack.js
plugin/README.md
plugin/LICENSE
plugin/SECURITY-POLICY.md
plugin/security.txt
plugin/.packed-root-files.json
File renamed without changes.
6 changes: 5 additions & 1 deletion .yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ enableGlobalCache: true
nodeLinker: node-modules
# Security configuration
enableScripts: false
npmMinimalAgeGate: "3d"
npmMinimalAgeGate: "7d"
Comment thread
R-lagoman marked this conversation as resolved.
npmPreapprovedPackages:
- brace-expansion@1.1.18
- brace-expansion@2.1.4
- brace-expansion@5.0.9
checksumBehavior: throw
enableHardenedMode: true

Expand Down
34 changes: 18 additions & 16 deletions CHANGELOG_UNRELEASED.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
### Added

- Added JWT token authentication support through `SitumPlugin.setToken()` and the new optional `SitumProvider.token` property.
- MapView authentication can now be updated at runtime when using JWT token authentication.
- The most recently updated credential becomes the active authentication method, regardless of whether it is added through a `SitumPlugin` method or via a `SitumProvider` prop.
## Changelog

### Changed
### Added

- `SitumProvider.apiKey` is now optional. If no credentials are available when the MapView loads, it waits until authentication is provided.
- Updated the example application React Native from 0.79.1 to 0.83.10 to fix an issue that prevented the app from compiling on iOS.
- Updated Android example application targetSdkVersion from 35 to 37.
- Aligned the `react-native-webview` versions in the plugin's `peerDependencies` and the example app so that changes to `react-native-webview` are picked up during testing.
- Added a `NOTICE` file documenting the plugin's declared native, peer, and
transitive dependencies, including applicable third-party notices.
- Included `NOTICE` in the published npm package and preserved it in the iOS
podspec.
- Included the root `LICENSE` file in the package published to npm.

### Removed

- Removed routing and navigation bridge between MapView and native SDK as the MapView now always uses its own routing and navigation library.
- Removed the unused `react-dom` peer dependency from the plugin and the
unused `react-dom` development dependency from the example application.
- Removed unused Babel, TypeScript, test, lint, commit, and release tooling
dependencies from the plugin and example application.
- Removed the unused `release-it` configuration and dependency from the
plugin.
- Removed obsolete commented test imports that referenced
`jest-mock-extended`.

### Fixed
### Updated

- AccessibilityMode documentation now mentions DirectionsOptions instead of DirectionsRequest.
- Fixed removeNavigationUpdates never resolving when navigation was not running.
- Fixed navigationRunning remaining active after reaching the destination.
- Added workaround to TS regression at react-native-webview (https://github.com/react-native-webview/react-native-webview/issues/3977).
- Updated the React Native CLI and transitive tooling dependencies to resolve
known vulnerabilities.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023 Situm Technologies
Copyright (c) 2020 - 2026 Situm Technologies

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
11 changes: 1 addition & 10 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -188,19 +188,10 @@ steps:
echo -e "\n[+] Configure NPM login"
echo "//registry.npmjs.org/:_authToken=$(NPM_TOKEN)" > ~/.npmrc

echo -e "\n[+] Copy README.MD to plugin folder to display it at npm.js\n"
cp README.md plugin/

# Important: ensure we are working at plugin folder before publishing.
cd plugin

# Publish!
echo -e "\n[+] Publish NPM packages"
cd plugin
YARN_NPM_AUTH_TOKEN=$NPM_TOKEN yarn npm publish --access public

echo -e "\n[+] Delete README.MD from plugin folder\n"
rm -rf README.md

displayName: NPM publish

- template: azure-templates/commit-doc.yaml@sys_kubernetes_templates
Expand Down
6 changes: 3 additions & 3 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2616,7 +2616,7 @@ PODS:
- React-perflogger (= 0.83.10)
- React-utils (= 0.83.10)
- SocketRocket
- ReactNativeSitumPlugin (3.18.27):
- ReactNativeSitumPlugin (3.19.1):
- boost
- DoubleConversion
- fast_float
Expand Down Expand Up @@ -3008,7 +3008,7 @@ SPEC CHECKSUMS:
FBLazyVector: 07433c4ab85da44d0b5ceac374ff4e1d57c7aa23
fmt: 530618a01105dae0fa3a2f27c81ae11fa8f67eac
glog: 0456694f3aaf09460b660ea327cfc11defbeea4c
hermes-engine: 5bc5db41131a9d77115ac7e0a10ca8311901f60a
hermes-engine: f37e1d6f1eb198649a60b3f17b6f685a6ac12470
RCT-Folly: 121436bcc4611f6bde5c09bf35f0a7a82cef1969
RCTDeprecation: f05668eea7b0e209e77e8ab1dc6a5e3b342f6f65
RCTRequired: c1ddbcb9ab4d51c36bda2a96556d064cb8825357
Expand Down Expand Up @@ -3081,7 +3081,7 @@ SPEC CHECKSUMS:
ReactAppDependencyProvider: 38aa49711b58e4f7e27033cb218bb804eadc7356
ReactCodegen: d90f4973af8a40c3bd7c17a5f1ba9267ef27d744
ReactCommon: ddccb5fdac38485ab6cf9e2a5099b31d96a42328
ReactNativeSitumPlugin: 42899a97b93abddf78379f5b6428061cd36553fa
ReactNativeSitumPlugin: aa10a88b926969763c56b80342780728afa7bbe9
RNScreens: 7179cc1ba31b4e18ed29f10abf20c24a7961cf4c
RNVectorIcons: 6acc19c833be864e9c70894e101a587fe491150a
SitumSDK: 172f2a95374f51d19ee33abc86b870a227043b1d
Expand Down
17 changes: 3 additions & 14 deletions example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,15 @@
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/plugin-transform-strict-mode": "^7.25.9",
"@babel/preset-env": "^7.25.3",
"@babel/preset-typescript": "^7.27.0",
"@babel/runtime": "^7.25.0",
"@react-native-community/cli": "18.0.0",
"@react-native-community/cli-platform-android": "18.0.0",
"@react-native-community/cli-platform-ios": "18.0.0",
"@react-native-community/cli": "18.0.1",
"@react-native-community/cli-platform-android": "18.0.1",
"@react-native-community/cli-platform-ios": "18.0.1",
"@react-native/babel-preset": "0.83.10",
"@react-native/eslint-config": "0.83.10",
"@react-native/metro-config": "0.83.10",
"@react-native/typescript-config": "0.83.10",
"@types/jest": "^29.5.13",
"@types/react": "19.1.2",
"@types/react-native": "^0.73.0",
"@types/react-native-vector-icons": "^6.4.18",
"@types/react-test-renderer": "^19.0.0",
"babel-plugin-module-resolver": "^5.0.2",
Expand All @@ -45,17 +41,10 @@
"eslint": "^8.44.0",
"jest": "^29.6.3",
"metro-config": "^0.82.1",
"metro-react-native-babel-preset": "^0.77.0",
"prettier": "2.8.8",
"react-dom": ">=17.0.0",
"react-test-renderer": "19.0.0",
"typescript": "5.0.4"
},
"resolutions": {
"react": "19.1.2",
"@types/react": "19.1.2",
"react-dom": "19.1.2"
},
"engines": {
"node": ">=18"
}
Expand Down
7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@
},
"resolutions": {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Que é esto?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

E un apartado para fijar versions de dependencias transitivas; para que cando yarn instale, por ejemplo, react-native, e meta as suas propias dependencias (p.e. brace-expansion) pois que instale unha versions sin vulnerabilidades

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esto entón paréceme peligroso... Si o integrador pode sobrescribir as versións, por que non deixalo da súa man?
Reconozco que no SDK de android estamos facendo o mismo con OkIo, pero fixéronse probas concretas para ver que non rompíamos nada a nivel comunicationManager e ademais o integrador sigue podendo escoller. React-native paréceme moito máis complexo en canto a xestión de paquetes, dame algo de miedito.
Que ocorre si a instalación do integrador quería resolver unha versión maior e nós estamos levándoo a unha menor? Meter este cambio vainos obligar a estar constantemente revisando? Ademais parece que estás pineando versións... Si queres declarar mínimos aínda o vexo, pero así cóstame.
Ou quizais non estou entendendo ben como funciona ollo.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ollo, estas resolucions son a nivel de repo porque estou declarando este "resolutions" no package.json raiz.
Estas versions pinneadas solo aplican para a xente que use o repo directamente, xa que distribuimos por npm unicamente o plugin/package.json

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Entón que utilidade ten o cambio?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Para que a nivel de repo non poidamos meter vulnerabilidades. E dicir, sin estas "resolutions" podriamos estar metendo paquetes comprometidos a hora de desarrollar

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, eu non o teño claro pero si ti o tes claro adiante.

"@react-native/gradle-plugin": "0.83.10",
"eslint-plugin-prettier": "^5.4.1"
"brace-expansion@^1.1.7": "1.1.18",
"brace-expansion@^2.0.1": "2.1.4",
"brace-expansion@^5.0.5": "5.0.9",
"eslint-plugin-prettier": "^5.4.1",
"fast-xml-parser@^4.0.12": "5.7.0",
"fast-xml-parser@^4.4.1": "5.7.0"
},
"description": "Situm React Native plugin monorepo.",
"private": true,
Expand Down
96 changes: 96 additions & 0 deletions plugin/NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Notices for @situm/react-native

@cristian-situm cristian-situm Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Este texto legal deberia de revisalo Canedo / Angel / Cris / alguen fora de desarrollo ?

Preguneille a OpenCode e en teoria non e un texto legal ou xuridico. Simplemente e un texto para cumplir cas indicacions das licencias das nosas dependencias

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simplemente revisa o formato do SDK de Android e tira.


Copyright (c) 2020 - 2026 Situm Technologies

The plugin source code is licensed under the MIT License. The complete license
text is provided in the accompanying LICENSE file in the published package.

## Declared native dependencies

| Component | Platform | Version | License or terms |
| ---------------------------------------------------- | -------- | ---------- | ------------------------------------- |
| SitumSDK | iOS | 3.40.0 | Applicable Situm terms and conditions |
| SitumSDK | Android | 3.38.0@aar | Applicable Situm terms and conditions |
| React Native (`com.facebook.react:react-native`) | Android | matches installed peer | MIT |
| JTS Topology Suite (`org.locationtech.jts:jts-core`) | Android | 1.16.1 | EDL-1.0 |

SitumSDK is a separate product of Situm Technologies. The MIT License for this
plugin does not grant rights to SitumSDK beyond its applicable terms and
conditions. SitumSDK for Android is resolved transitively; components it may
pull in are governed by their own respective terms.

### JTS Topology Suite

JTS 1.16.1 is dual-licensed under the Eclipse Public License 1.0 (EPL-1.0) and
the Eclipse Distribution License 1.0 (EDL-1.0). This distribution uses the
EDL-1.0 option.

Source files in JTS 1.16.1 carry the following notice:

Copyright (c) 2016 Vivid Solutions.

All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
and Eclipse Distribution License v. 1.0 which accompanies this distribution.
The Eclipse Public License is available at
http://www.eclipse.org/legal/epl-v10.html
and the Eclipse Distribution License is available at
http://www.eclipse.org/org/documents/edl-v10.php.

JTS also includes content sourced from the GeoTools project, licensed to JTS
under the OSGeo BSD License by the GeoTools PSC. See:
https://github.com/locationtech/jts/blob/jts-1.16.1/LICENSES.md

#### Eclipse Distribution License - v 1.0

Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors.

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- Neither the name of the Eclipse Foundation, Inc. nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

## Peer dependencies

The following peer dependencies are installed and version-selected by the
consuming application. They are not bundled in the published npm package.

| Component | Version range | License |
| -------------------- | ------------- | ------- |
| React | >=17.0.0 | MIT |
| React Native | * | MIT |
| react-native-webview | >=11.0.0 | MIT |

React is Copyright (c) Meta Platforms, Inc. and affiliates.
React Native is Copyright (c) Meta Platforms, Inc. and affiliates.
react-native-webview is Copyright (c) 2015-present, Facebook, Inc.
(verify against the LICENSE file of the version you resolve).

## Source manifests

Dependency declarations are maintained in `package.json`,
`ReactNativeSitumPlugin.podspec`, and `android/build.gradle`.

Development-only dependencies used to build, test, lint, or release this
package are not part of the published runtime artifact.
3 changes: 2 additions & 1 deletion plugin/ReactNativeSitumPlugin.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ Pod::Spec.new do |s|
s.version = package['version']
s.summary = package["description"]
s.homepage = package["homepage"]
s.license = "../LICENSE"
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.preserve_paths = "NOTICE.md"
s.authors = package["author"]
s.platform = :ios, "8.0"
s.source = { :http => 'file:' + __dir__ + '/' }
Expand Down
43 changes: 5 additions & 38 deletions plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@
"lib",
"android",
"ios",
"cpp",
"*.podspec",
"README.md",
"LICENSE",
"NOTICE.md",
"SECURITY-POLICY.md",
"security.txt",
"!lib/typescript/example",
Expand All @@ -53,7 +53,10 @@
"typescript": "tsc --noEmit",
"prepare": "yarn bob build; yarn doc",
"doc": "typedoc --readme ../README.md --out ./docs/types ./src --tsconfig ./tsconfig.json && mkdir -p ./docs/types/docs/assets && cp -r ./docs/assets/* ./docs/types/docs/assets/",
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build"
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build",
"verify:licenses": "node scripts/verify-licenses.js",
"prepack": "cp ../README.md ../LICENSE ../SECURITY-POLICY.md ../security.txt . && bob build && yarn doc && node scripts/verify-pack.js",
"postpack": "rm README.md LICENSE SECURITY-POLICY.md security.txt"
},
"keywords": [
"react-native",
Expand All @@ -66,40 +69,26 @@
],
"devDependencies": {
"@babel/core": "^7.22.5",
"@babel/eslint-parser": "^7.22.5",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Porfa revisade que ningun paquete de desarrollo e necesario para desarrollar o plugin. Pedinlle a OpenCode que revisara todas as dependencias que non se estaban a usar no proyecto e quitou todas estas; reviseinas e non boto ningunha en falta

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non entendo que é o que nos pides. Penso que esa revisión é parte da tarefa, non?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simplemente un repaso visual de que non estou eliminando ninguna dependencia que sexa importante

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O analisis das dependencias que eliminei deixeino no ticket

"@babel/plugin-transform-strict-mode": "^7.25.9",
"@babel/preset-env": "^7.22.5",
"@babel/runtime": "^7.22.5",
"@commitlint/config-conventional": "^17.6.7",
"@react-native-community/eslint-config": "^3.2.0",
"@types/jest": "^29.5.3",
"@types/react": "^18.2.7",
"@types/react-native": "0.72.2",
Comment thread
R-lagoman marked this conversation as resolved.
"@types/react-test-renderer": "^18.0.0",
"commitlint": "^17.6.6",
"del-cli": "^5.0.0",
"eslint": "^8.44.0",
"jest": "^29.5.0",
"jest-mock-extended": "^3.0.5",
"metro-react-native-babel-preset": "0.73.7",
"prettier": "^3.2.4",
"react-native": "^0.72.12",
"react-native-builder-bob": "^0.35.0",
"react-native-webview": ">=11.0.0",
"react-test-renderer": "18.2.0",
"release-it": "^16.1.3",
"typedoc": "^0.28.2",
"typescript": "^5.5.2"
},
"peerDependencies": {
"react": ">=17.0.0",
"react-dom": ">=17.0.0",
"react-native": "*",
"react-native-webview": ">=11.0.0"
},
"resolutions": {
"@types/react": "19.0.0"
},
"engines": {
"node": ">= 16.0.0"
},
Expand All @@ -115,11 +104,6 @@
"<rootDir>/example/"
]
},
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
},
"react-native-builder-bob": {
"source": "src",
"output": "lib",
Expand All @@ -134,23 +118,6 @@
]
]
},
"release-it": {
"git": {
"commitMessage": "chore: release ${version}",
"tagName": "v${version}"
},
"npm": {
"publish": true
},
"github": {
"release": true
},
"plugins": {
"@release-it/conventional-changelog": {
"preset": "angular"
}
}
},
"eslintIgnore": [
"node_modules/",
"lib/"
Expand Down
Loading