General

For information on BlueWorx general licensing see: How is BlueWorx Licensed?

BlueWorx is a suite of applications for the Neptune DXP SAP Edition application platform. The Neptune platform uses several open source and commercial libraries.


Neptune Platform

Neptune provides information on the open-source software used in their product. See the following links or search the Neptune Software website for up-to-date information.


SAP UI5

Neptune makes available packaged versions of SAP UI5. SAP releases most of UI5 under open-source licensing as Open UI5. Some components of SAP UI5 are made available to SAP customers under SAP commercial licensing.

See differences between OpenUI5 and SAPUI5 at https://sapui5.hana.ondemand.com/#/topic/5982a9734748474aa8d4af9c3d8f31c0


Library / Project

Description

Licenses / More Information

OpenUI5

Open-source components of SAP UI5

http://openui5.org/index.html 

License: Apache License 2.0

https://github.com/SAP/openui5/blob/master/LICENSE.txt

 

SAP UI5

Commercially licensed components of SAP UI5

All BlueWorx users are required to be licensed SAP users.

 

OpenUI5 and SAP UI5 in turn leverage open-source libraries.

 

Cordova

The mobile client application prepared by the Neptune DXP application platform uses the open-source Cordova project, as well as commercial and community plugins in the application build and build process.


Library / Project

Description

Licenses / More Information

Cordova

Apache foundation project to create mobile applications from HTML, JavaScript, CSS and native application code via plugins.

https://cordova.apache.org

 

License: Apache License 2.0
https://www.apache.org/licenses/

 

 

Core Plugins

These are the core plugins used by the Neptune Platform application packaging (Mobile Client) as at version DXP23 (23.10.0008). Plugins provide a native device functionality to the application. Some plugins are shared by all mobile platforms, others are specific to Android or iOS. There are additional plugins required for a mobile application prepared for BlueWorx and these are list further down in this document under the BlueWorx section.

The included plugins should be reviewed when building mobile clients. Plugins listed in this section are dependent on the Neptune version, the mobile client configuration, and the client environment. Neptune may change any, at any time.


Library / Project

Description

Licenses / More Information

cordova-plugin-camera

Provides an API for taking pictures and for choosing images from the system's image library.

https://www.npmjs.com/package/cordova-plugin-camera

License: Apache 2.0
https://github.com/apache/cordova-plugin-camera/blob/master/LICENSE

cordova-plugin-cookiemaster

Allows you to get and set cookie values from your WebView through a simple interface.

https://www.npmjs.com/package/cordova-plugin-cookiemaster

 

License: MIT
https://github.com/edwardgaoyb/cordova-cookie-master/blob/master/LICENSE 

cordova-plugin-device

This plugin defines a global device object, which describes the device's hardware and software.

https://www.npmjs.com/package/cordova-plugin-device

 

License: Apache 2.0
https://github.com/apache/cordova-plugin-device/blob/master/LICENSE 

cordova-plugin-dialogs

 

This plugin provides access to some native dialog UI elements.

https://www.npmjs.com/package/cordova-plugin-dialogs

 

License: Apache 2.0

https://github.com/apache/cordova-plugin-dialogs/blob/master/LICENSE 

cordova-plugin-file

 

This plugin implements a File API allowing read/write access to files residing on the device.

https://www.npmjs.com/package/cordova-plugin-file

 

License: Apache 2.0

https://www.npmjs.com/package/cordova-plugin-file 

cordova-plugin-geolocation

 

This plugin provides information about the device's location, such as latitude and longitude.

https://www.npmjs.com/package/cordova-plugin-geolocation

 

License: Apache 2.0
https://github.com/apache/cordova-plugin-geolocation/blob/master/LICENSE 

cordova -plugin-inappbrowser

 

You can show helpful articles, videos, and web resources inside of your app.[1]

https://www.npmjs.com/package/cordova-plugin-inappbrowser

 

License: Apache 2.0

https://www.npmjs.com/package/cordova-plugin-inappbrowser?activeTab=code (Navigate to LICENSE file)

 

cordova-plugin-media

 

This plugin provides the ability to record and play back audio files on a device.

https://www.npmjs.com/package/cordova-plugin-media

 

License: Apache 2.0

https://github.com/apache/cordova-plugin-media/blob/master/LICENSE 

cordova-plugin-media-capture

 

Provides access to the device's audio, image, and video capture capabilities.

https://www.npmjs.com/package/cordova-plugin-media-capture

 

License: Apache 2.0
https://github.com/apache/cordova-plugin-media-capture/blob/master/LICENSE 

cordova-plugin-network-information

 

Provides information about the device's cellular and wifi connection, and whether the device has an internet connection.

https://www.npmjs.com/package/cordova-plugin-network-information

 

License: Apache 2.0

https://github.com/apache/cordova-plugin-network-information/blob/master/LICENSE 

cordova-plugin-screen-orientation

 

Set/lock the screen orientation in a common way for iOS, Android, and windows-uwp.

https://www.npmjs.com/package/cordova-plugin-screen-orientation

 

License: Apache 2.0

https://www.npmjs.com/package/cordova-plugin-screen-orientation 

cordova-plugin-secure-key-store

 

This plugin will add three new methods to window scope, for saving sensitive data, retrieving saved data and for removing data.

https://www.npmjs.com/package/cordova-plugin-secure-key-store

 

License: MIT

https://github.com/pradeep1991singh/cordova-plugin-secure-key-store/blob/master/LICENSE 

cordova-plugin-theme-detection

 

Detects whether the dark mode is enabled on the device or not.

https://www.npmjs.com/package/cordova-plugin-theme-detection

 

License: MIT

https://github.com/mariusbackes/cordova-plugin-theme-detection (No license file. README.MD states MIT license)

 

cordova-plugin-vibration

 

Provides a way to vibrate the device.

https://www.npmjs.com/package/cordova-plugin-vibration

 

License: Apache 2.0

https://github.com/apache/cordova-plugin-vibration/blob/master/LICENSE 

 

Android

The following plugins are additional to the core plugins when producing the Neptune Mobile Client for Android.


Library / Project

Description

Licenses / More Information

cordova-plugin-android-fingerprint-auth

Provides the ability to use fingerprint in place of a PIN Code.

https://www.npmjs.com/package/cordova-plugin-android-fingerprint-auth

 

License: Apache 2.0
https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth/blob/master/LICENSE 

cordova-plugin-androidx-adapter

Provides a shim to migrate references to the legacy Android Support Library to the new AndroidX mappings in a Cordova Android platform project.

https://www.npmjs.com/package/cordova-plugin-androidx-adapter 

License: MIT
https://github.com/dpa99c/cordova-plugin-androidx-adapter/blob/master/README.md
 

cordova-plugin-splashscreen[2]

Displays and hides a splash screen while your web application is launching. Using its methods you can also show and hide the splash screen manually.

https://www.npmjs.com/package/cordova-plugin-splashscreen

 

License: Apache 2.0
https://github.com/apache/cordova-plugin-splashscreen/blob/master/LICENSE 

cordova-plugin-statusbar

Provides some functions to customize the iOS and Android StatusBar.

https://www.npmjs.com/package/cordova-plugin-statusbar

 

License: Apache 2.0

https://github.com/apache/cordova-plugin-statusbar/blob/master/LICENSE 

cordova-plugin-webview-checker

Returns the version of the Android webview.

https://www.npmjs.com/package/cordova-plugin-webview-checker

 

License: MIT

https://github.com/NoNameProvided/cordova-plugin-webview-checker/blob/master/LICENSE 

cordova-plugin-whitelist[3]

 

No longer available. Not required since Cordova android version 10 (released in July 2021) as the whitelist was integrated into the Cordova platform code for Android.

 

See https://cordova.apache.org/news/2021/06/28/whitelist-plugin-release.html which notes that the plugin is locked to less that version 10.

 

iOS

The following plugins are additional to the core plugins when producing the Neptune Mobile Client for iOS.


Library / Project

Description

Licenses / More Information

@castana/cordova-plugin-ios-xhr[4]

Provides a native network layer is response to the change of WebView with Cordova platform-ios version 6.

https://www.npmjs.com/package/@castana/cordova-plugin-ios-xhr 

License: MIT
https://github.com/CASTANA-Solutions/cordova-plugin-ios-xhr/blob/master/LICENSE 

cordova-plugin-wkwebview-inject-cookie

 

Fixes an issue with syncing of cookies to the WebView.

https://www.npmjs.com/package/cordova-plugin-wkwebview-inject-cookie

 

License: Apache 2.0
 https://github.com/CWBudde/cordova-plugin-wkwebview-inject-cookie/blob/master/LICENSE

cordova-plugin-ios-faceid

 

Faceid support

https://www.npmjs.com/package/cordova-plugin-ios-faceid

 

License: Apache 2.0

https://github.com/Cheney925/cordova-plugin-ios-faceid/blob/master/LICENSE 

 

Environment Specific Plugins

The plugins that a packaged by the Neptune Platform into a Cordova application package depend on the configuration set in the Neptune Mobile Client. The plugins should always be reviewed. The following is provided as an example:


Library / Project

Description

Licenses / More Information

cordova-plugin-oauth

Added when using the OAuth2 authentication flow.

https://www.npmjs.com/package/cordova-plugin-oauth 

License: Apache 2.0
https://github.com/AyogoHealth/cordova-plugin-oauth/blob/main/LICENCE 

cordova-client-cert-authentication

 

Client certificate authentication (Android).

https://www.npmjs.com/package/cordova-client-cert-authentication

 

License: Apache 2.0
https://github.com/johannes-staehlin/cordova-client-cert-authentication/blob/master/LICENSE 

cordova-plugin-client-certificate-support

 

Client certificate authentication (iOS).

https://www.npmjs.com/package/cordova-plugin-client-certificate-support

 

License: Apache 2.0
https://github.com/cordova-ccafix/cordova-plugin-client-certificate-support/blob/master/LICENSE 

@brodybits/cordova-plugin-ios-xhr

 

Required for client certificate authentication (iOS).

https://github.com/brody4hire/cordova-plugin-ios-xhr

 

License: MIT

https://github.com/brody4hire/cordova-plugin-ios-xhr/blob/main/LICENSE 

@havesource/cordova-plugin-push

 

Push notification support

https://www.npmjs.com/package/@havesource/cordova-plugin-push

 

License: MIT
https://github.com/havesource/cordova-plugin-push/blob/master/MIT-LICENSE 

pushwoosh-pgb-plugin

 

Push notification support

https://www.npmjs.com/package/pushwoosh-pgb-plugin 

 

License: Custom

https://github.com/Pushwoosh/pushwoosh-phonegap-plugin/blob/master/LICENSE.md

 

Copyright (c) 2014 Pushwoosh (http://www.pushwoosh.com)

 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

 

(i) the original and/or modified Software should be used exclusively to work with Pushwoosh services,

 

(ii) the above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

  

BlueWorx

In addition to the content provided by Neptune Software, BlueWorx contains some additional libraries and requires some additional Cordova plugins.


JavaScript Libraries

These libraries are provided either as:

  • Part of a content bundle for the mobile application, and/or,
  • As MIME repository content delivered in the BlueWorx transports, and/or
  • Embedded into the BlueWorx Neptune applications.


Mobile Application Bundle/MIME Repository

These libraries are bundled for inclusion in mobile application packages and are supplied in by transport to the SAP MIME repository unless it is explicitly noted that they as in a single location.


Library / Project

Description

Licenses / More Information

DOMPurify

Sanitisation of user input for Rich Inspection Text.

MIME Repository only

https://github.com/cure53/DOMPurify/tree/3.0.5 

License: Apache 2.0 and Mozilla Public License
https://github.com/cure53/DOMPurify/blob/3.0.5/LICENSE 

Leaflet

JS Library for interactive maps.

https://github.com/Leaflet/Leaflet/tree/v1.2.0 

 

License: BSD 2-Clause License
https://github.com/Leaflet/Leaflet/blob/v1.2.0/LICENSE

Esri-leaflet-cluster

Enables visualization of ArcGIS Feature Services as clusters using the L.MarkerCluster Leaflet Plugin.

https://github.com/Esri/esri-leaflet-cluster/tree/v2.0.0

 

License: Apache 2.0

https://github.com/Esri/esri-leaflet-cluster/blob/v2.0.0/LICENSE 

Esri-leaflet

Leaflet plugins for working with a handful of the most popular ArcGIS Service types. 

 

https://github.com/Esri/esri-leaflet/tree/v2.1.1

 

License: Apache 2.0

https://github.com/Esri/esri-leaflet/blob/v2.1.1/LICENSE 

Google-mutant-leaflet

Allows Google maps to be displayed by Leaflet.

Custom created in 2017 using code from:
https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant

License: THE BEER-WARE LICENSE

https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant/-/blob/master/LICENSE?ref_type=heads 

 

and

 

https://github.com/shramov/leaflet-plugins

License: MIT

https://github.com/shramov/leaflet-plugins/blob/master/LICENSE 

 

Leaflet-marker-cluster

Provides Beautiful Animated Marker Clustering functionality for Leaflet.

 

https://github.com/Leaflet/Leaflet.markercluster 

 

License: MIT
https://github.com/Leaflet/Leaflet.markercluster/blob/master/MIT-LICENCE.txt 

Leaflet-shape-markers

Leaflet plugin to draw simple shape markers with fixed width.

https://github.com/Esri/Leaflet.shapeMarkers/releases/tag/v1.0.6

 

License: Apache 2.0
 https://github.com/Esri/Leaflet.shapeMarkers/blob/v1.0.6/LICENSE

Proj4

JavaScript library to transform point coordinates from one coordinate system to another.

https://github.com/proj4js/proj4js/tree/2.4.4

 

License: Custom

https://github.com/proj4js/proj4js/blob/2.4.4/LICENSE.md

 

##Proj4js -- Javascript reprojection library.

 

Authors:

 

Mike Adair madairATdmsolutions.ca

Richard Greenwood richATgreenwoodmap.com

Didier Richard didier.richardATign.fr

Stephen Irons stephen.ironsATclear.net.nz

Olivier Terral oterralATgmail.com

Calvin Metcalf cmetcalfATappgeo.com

Copyright (c) 2014, Mike Adair, Richard Greenwood, Didier Richard, Stephen Irons, Olivier Terral and Calvin Metcalf

 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

 

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Proj4Leaflet

Adds support for using projections supported by Proj4js.

https://github.com/kartena/Proj4Leaflet/blob/1.0.2

 

License: BSD 2-Clause "Simplified" License

https://github.com/kartena/Proj4Leaflet/blob/1.0.2/LICENSE 

Turf

A modular geospatial engine written in JavaScript.

https://github.com/Turfjs/turf/blob/v3.0.11

 

License: MIT
https://github.com/Turfjs/turf/blob/v3.0.11/LICENSE 

Moment

JavaScript date library for parsing, validating, manipulating, and formatting dates.

https://github.com/moment/moment/tree/2.29.1

 

License: MIT
https://github.com/moment/moment/blob/2.29.1/LICENSE 

Moment-timezone

IANA Time zone support for Moment.js.

https://github.com/moment/moment-timezone/tree/0.5.33

 

License: 

https://github.com/moment/moment-timezone/blob/0.5.33/LICENSE 

Json-rules-engine-simplified

Used for evaluating various application rules.

https://github.com/RxNT/json-rules-engine-simplified

 

License: Apache 2.0

https://github.com/RxNT/json-rules-engine-simplified/blob/master/LICENSE 

PapaParse

For JSON to CSV and CSV to JSON conversion.

https://github.com/mholt/PapaParse/tree/4.1.0 

 

License: MIT

https://github.com/mholt/PapaParse/blob/4.1.0/LICENSE 

 

Embedded into the BlueWorx Neptune applications 

These libraries are embedded as script objects in the BlueWorx application content rather than loaded from packaged script files.


Library / Project

Description

Licenses / More Information

Poly-decomp

This library allows for decomposing polygons into constituent convex polygons.

https://github.com/schteppe/poly-decomp.js

License: MIT
 https://github.com/schteppe/poly-decomp.js/blob/master/LICENSE

FileSaver

(1.3.2)

FileSaver.js is the solution to saving files on the client-side.

 

https://github.com/eligrey/FileSaver.js/tree/1.3.2

 

License: Custom
https://github.com/eligrey/FileSaver.js/tree/1.3.2

 

Copyright © 2016 Eli Grey.

 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

 

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

  

Cordova

These plugins are used by both Android and iOS packages.

Required Plugins

These plugins are in addition to the standard Neptune plugins as at Neptune DXP23 (as Neptune standard plugins can change with Neptune updates).


Library / Project

Description

Licenses / More Information

cordova-sqlite-evcore-extbuild-free

SQLite database for storing large offline data sets

https://github.com/storesafe/cordova-sqlite-evcore-extbuild-free

 

License: Commercial[5]/GPL3

https://github.com/litehelpers/Cordova-sqlite-evcore-extbuild-free/blob/master/LICENSE.md 

cordova-plugin-file-opener2

Opens a file in the native application, e.g. Gallery for photos.

https://www.npmjs.com/package/cordova-plugin-file-opener2

 

License: MIT
 https://github.com/pwlin/cordova-plugin-file-opener2/blob/master/LICENSE

cordova-plugin-insomnia

Prevent the screen of the mobile device from falling asleep during sync.

https://www.npmjs.com/package/cordova-plugin-insomnia

 

License: MIT
https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin/blob/master/README.md 

 

Optional Plugins

Plugins that enable specific features to BlueWorx but are not required for core functionality.


Library / Project

Description

Licenses / More Information

cordova-plugin-app-version         

Provides version information for the app.

https://www.npmjs.com/package/cordova-plugin-app-version

 

License:

https://github.com/sampart/cordova-plugin-app-version/blob/master/LICENSE  

cordova-plugin-chooser

Displays a file picker to allow a database to be selected when importing a map database

https://github.com/soltius/cordova-plugin-chooser

 

License: Apache 2.0
https://github.com/soltius/cordova-plugin-chooser/blob/master/LICENSE 

phonegap-plugin-barcodescanner

Enable barcode scanning.

https://github.com/soltius/phonegap-plugin-barcodescanner

 

License: MIT
https://github.com/soltius/phonegap-plugin-barcodescanner/blob/master/LICENSE.txt 

cordova-plugin-x-socialsharing

Export of map database.

https://www.npmjs.com/package/cordova-plugin-x-socialsharing

 

License: MIT
https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/blob/master/LICENSE 

 

[1] The inappbrowser plugin is used in authentication flows in Neptune DXP.

[2] Not required for the cordova android platform from version 12 following changes to splashscreen handling and should be removed before building the mobile application.

[3] Not required and should be removed before building the mobile application.

[4] This plugin is not required if the customer environment has been set up to allow CORS. See https://cordova.apache.org/announcements/2020/06/01/cordova-ios-release-6.0.0.html for information on the origin app://localhost.

[5] This was an original standard component of Neptune and has been licensed by Neptune them for Neptune customers.