npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@approov/nativescript-approov

v3.2.3

Published

Approov support for NativeScript with Angular/Vue support and TLS pinning

Downloads

28

Readme

NativeScript Approov Plugin

This provides the source code for the plugin that provides Approov functionality for NativeScript applications on Android and iOS.

In order to minimize the necessary code changes the integration hooks the underlying network stack in order to add dynamic pinning and Approov functionality (such as Approov token addition) as required.

Structure

A Typescript interface allows configuration and control of Approov, and for accessing more advanced functionality. This Typescript layer actually bridges to a native code layer that sits on top of the Approov SDK itself. This bridging layer has to be pre-built and packaged with the plugin. Its source code can be found in the approov-service-native folder at the top level of the repo.

For Android the Approov SDK itself is included via a gradle jitpack dependency to the repo holding the latest SDK. For iOS the SDK is actually included in this repo.

Example Comparator Project

The structure of this plugin project seems unusually complex compared to most plugins which only include typescript code, and it requires the use of bridge typings to cross call to native libraries.

This project requires custom native code in addition to the bridging layer and the inclusion of the proprietary Approov SDK itself. The closest exemplar can be found at https://github.com/NativeScript/plugins/tree/main/packages/local-notifications. The local-notifications plugin also requires a special Android .aar and .xcframework library.

Development

For development it is not advised to include the plugin locally using a file path. Although this is supported, and mostly works, this seems to generate numerous issues with the build process because it results in a file system symbolic link being generated.

Instead for local development it is advised to ganerate a plugin .tgz and install that for each required change.

A local plugin can be generatee by changing the working directory to publish and executing ./pack.sh. This generates a new package in publish/package/approov-nativescript-approov.x.y.z.tgz. For clarity it is suggested the version number is changed in src/package.json each time.

Add it to an app project with ns plugin add ${REPO-ROOT}/publish/package/approov-nativescript-approov.x.y.z.tgz. This will automatically replace any previous version of the plugin.