cordova-plugin-googleplus
Advanced tools
@@ -32,4 +32,4 @@ #!/usr/bin/env node | ||
| var contents = fs.readFileSync(files[i]).toString(); | ||
| fs.writeFileSync(files[i], contents.replace(/WEB_APPLICATION_CLIENT_ID/g, WEB_APPLICATION_CLIENT_ID)); | ||
| fs.writeFileSync(files[i], contents.replace(/client_id: "[^"]+"/g, `client_id: "${WEB_APPLICATION_CLIENT_ID}"`)); | ||
| } catch(err) {} | ||
| } |
+1
-1
| { | ||
| "version": "7.0.2", | ||
| "version": "8.0.0", | ||
| "name": "cordova-plugin-googleplus", | ||
@@ -4,0 +4,0 @@ "cordova_name": "Google SignIn", |
+12
-10
@@ -5,3 +5,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| id="cordova-plugin-googleplus" | ||
| version="7.0.2"> | ||
| version="8.0.0"> | ||
@@ -85,11 +85,2 @@ <name>Google SignIn</name> | ||
| <!-- Google frameworks --> | ||
| <!-- Downloaded here: https://developers.google.com/identity/sign-in/ios/sdk/ (changelog: https://developers.google.com/identity/sign-in/ios/release) --> | ||
| <framework src="src/ios/libs/GoogleAppUtilities.framework" custom="true" /> | ||
| <framework src="src/ios/libs/GoogleAuthUtilities.framework" custom="true" /> | ||
| <framework src="src/ios/libs/GoogleNetworkingUtilities.framework" custom="true" /> | ||
| <framework src="src/ios/libs/GoogleSignIn.framework" custom="true" /> | ||
| <framework src="src/ios/libs/GoogleSymbolUtilities.framework" custom="true" /> | ||
| <framework src="src/ios/libs/GoogleUtilities.framework" custom="true" /> | ||
| <!-- System frameworks --> | ||
@@ -104,2 +95,13 @@ <framework src="AddressBook.framework" weak="true" /> | ||
| <!-- Google frameworks --> | ||
| <podspec> | ||
| <config> | ||
| <source url="https://github.com/CocoaPods/Specs.git"/> | ||
| </config> | ||
| <pods use-frameworks="true"> | ||
| <pod name="GoogleSignIn" spec="4.4.0"/> | ||
| <pod name="GoogleUtilities" spec="6.2.3"/> | ||
| </pods> | ||
| </podspec> | ||
| <hook type="after_plugin_install" src="hooks/ios/prerequisites.js"/> | ||
@@ -106,0 +108,0 @@ <hook type="after_plugin_install" src="hooks/ios/install_entitlements.js" /> |
+29
-10
@@ -24,7 +24,8 @@ # Google Sign-In Cordova/PhoneGap Plugin | ||
| 5. [Installation (PhoneGap Build)](#5-installation-phonegap-build) | ||
| 6. [Usage](#6-usage) | ||
| 7. [Exchanging the `idToken`](#7-exchanging-the-idtoken) | ||
| 8. [Exchanging the `serverAuthCode`](#8-exchanging-the-serverauthcode) | ||
| 9. [Troubleshooting](#9-troubleshooting) | ||
| 10. [Changelog](#10-changelog) | ||
| 6. [Installation (iOS and Cocoapods)](#6-installation-ios-and-cocoapods) | ||
| 7. [Usage](#7-usage) | ||
| 8. [Exchanging the `idToken`](#8-exchanging-the-idtoken) | ||
| 9. [Exchanging the `serverAuthCode`](#9-exchanging-the-serverauthcode) | ||
| 10. [Troubleshooting](#10-troubleshooting) | ||
| 11. [Changelog](#11-changelog) | ||
@@ -158,3 +159,19 @@ ## 1. Description | ||
| ## 6. Usage | ||
| ## 6. Installation (iOS and Cocoapods) | ||
| This plugin use the [CocoaPods dependency manager](https://cocoapods.org) in order to satisfy the iOS Google SignIn SDK library dependencies. | ||
| Therefore please make sure you have Cocoapods installed in your iOS build environment - setup instructions can be found [here](https://cocoapods.org/). Also make sure your local Cocoapods repo is up-to-date by running `pod repo update`. | ||
| If building your project in Xcode, you need to open `YourProject.xcworkspace` (not `YourProject.xcodeproj`) so both your Cordova app project and the Pods project will be loaded into Xcode. | ||
| You can list the pod dependencies in your Cordova iOS project by installing [cocoapods-dependencies](https://github.com/segiddins/cocoapods-dependencies): | ||
| ``` | ||
| sudo gem install cocoapods-dependencies | ||
| cd platforms/ios/ | ||
| pod dependencies | ||
| ``` | ||
| ## 7. Usage | ||
| Check the [demo app](demo) to get you going quickly, or hurt yourself and follow these steps. | ||
@@ -271,3 +288,3 @@ | ||
| ## 7. Exchanging the `idToken` | ||
| ## 8. Exchanging the `idToken` | ||
@@ -287,3 +304,3 @@ Google Documentation for Authenticating with a Backend Server | ||
| ## 8. Exchanging the `serverAuthCode` | ||
| ## 9. Exchanging the `serverAuthCode` | ||
@@ -297,2 +314,4 @@ Google Documentation for Enabling Server-Side Access | ||
| Only in the initial login request `serverAuthCode` will be returned. If you wish to receive the token a second time, you can by using logout first. | ||
| You have a couple options when it comes to this exchange: you can use the Google REST Apis to get those in the hybrid app itself or you can send the code to your backend server to be exchanged there, using whatever method necessary (Google provides examples for Java, Python, and JS/HTTP). | ||
@@ -302,3 +321,3 @@ | ||
| ## 9. Troubleshooting | ||
| ## 10. Troubleshooting | ||
| - Q: I can't get authentication to work on Android. And why is there no ANDROID API KEY? | ||
@@ -406,3 +425,3 @@ - A: On Android you need to execute the `keytool` steps, see the installation instructions for details. | ||
| ## 10. Changelog | ||
| ## 11. Changelog | ||
| - 5.3.2: Allow override of Play services version via `PLAY_SERVICES_VERSION`. | ||
@@ -409,0 +428,0 @@ - 5.3.1: Capacitor compatibility. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
| /* | ||
| * GIDAuthentication.h | ||
| * Google Sign-In iOS SDK | ||
| * | ||
| * Copyright 2014 Google Inc. | ||
| * | ||
| * Use of this SDK is subject to the Google APIs Terms of Service: | ||
| * https://developers.google.com/terms/ | ||
| */ | ||
| #import <Foundation/Foundation.h> | ||
| @protocol GTMFetcherAuthorizationProtocol; | ||
| @class GIDAuthentication; | ||
| // @relates GIDAuthentication | ||
| // | ||
| // The callback block that takes a GIDAuthentication, or an error if attempt to refresh was | ||
| // unsuccessful. | ||
| typedef void (^GIDAuthenticationHandler)(GIDAuthentication *authentication, NSError *error); | ||
| // @relates GIDAuthentication | ||
| // | ||
| // The callback block that takes an access token, or an error if attempt to refresh was | ||
| // unsuccessful. | ||
| typedef void (^GIDAccessTokenHandler)(NSString *accessToken, NSError *error); | ||
| // This class represents the OAuth 2.0 entities needed for sign-in. | ||
| @interface GIDAuthentication : NSObject <NSCoding> | ||
| // The client ID associated with the authentication. | ||
| @property(nonatomic, readonly) NSString *clientID; | ||
| // The OAuth2 access token to access Google services. | ||
| @property(nonatomic, readonly) NSString *accessToken; | ||
| // The estimated expiration date of the access token. | ||
| @property(nonatomic, readonly) NSDate *accessTokenExpirationDate; | ||
| // The OAuth2 refresh token to exchange for new access tokens. | ||
| @property(nonatomic, readonly) NSString *refreshToken; | ||
| // An OpenID Connect ID token that identifies the user. Send this token to your server to | ||
| // authenticate the user there. For more information on this topic, see | ||
| // https://developers.google.com/identity/sign-in/ios/backend-auth | ||
| @property(nonatomic, readonly) NSString *idToken; | ||
| // The estimated expiration date of the ID token. | ||
| @property(nonatomic, readonly) NSDate *idTokenExpirationDate; | ||
| // Gets a new authorizer for GTLService, GTMSessionFetcher, or GTMHTTPFetcher. | ||
| - (id<GTMFetcherAuthorizationProtocol>)fetcherAuthorizer; | ||
| // Get a valid access token and a valid ID token, refreshing them first if they have expired or are | ||
| // about to expire. | ||
| - (void)getTokensWithHandler:(GIDAuthenticationHandler)handler; | ||
| // Refreshes the access token and the ID token using the refresh token. | ||
| - (void)refreshTokensWithHandler:(GIDAuthenticationHandler)handler; | ||
| // Gets the access token, which may be a new one from the refresh token if the original has already | ||
| // expired or is about to expire. Deprecated: use |getTokensWithHandler:| to get access tokens | ||
| // instead. | ||
| - (void)getAccessTokenWithHandler:(GIDAccessTokenHandler)handler | ||
| DEPRECATED_MSG_ATTRIBUTE("Use |getTokensWithHandler:| instead."); | ||
| // Refreshes the access token with the refresh token. Deprecated: Use |refreshTokensWithHandler:| | ||
| // to refresh access tokens instead. | ||
| - (void)refreshAccessTokenWithHandler:(GIDAccessTokenHandler)handler | ||
| DEPRECATED_MSG_ATTRIBUTE("Use |refreshTokensWithHandler:| instead."); | ||
| @end |
| /* | ||
| * GIDGoogleUser.h | ||
| * Google Sign-In iOS SDK | ||
| * | ||
| * Copyright 2014 Google Inc. | ||
| * | ||
| * Use of this SDK is subject to the Google APIs Terms of Service: | ||
| * https://developers.google.com/terms/ | ||
| */ | ||
| #import <Foundation/Foundation.h> | ||
| @class GIDAuthentication; | ||
| @class GIDProfileData; | ||
| // This class represents a user account. | ||
| @interface GIDGoogleUser : NSObject <NSCoding> | ||
| // The Google user ID. | ||
| @property(nonatomic, readonly) NSString *userID; | ||
| // Representation of the Basic profile data. It is only available if |shouldFetchBasicProfile| | ||
| // is set and either |signInWithUser| or |SignIn| has been completed successfully. | ||
| @property(nonatomic, readonly) GIDProfileData *profile; | ||
| // The authentication object for the user. | ||
| @property(nonatomic, readonly) GIDAuthentication *authentication; | ||
| // The API scopes requested by the app in an array of |NSString|s. | ||
| @property(nonatomic, readonly) NSArray *accessibleScopes; | ||
| // For Google Apps hosted accounts, the domain of the user. | ||
| @property(nonatomic, readonly) NSString *hostedDomain; | ||
| // An OAuth2 authorization code for the home server. | ||
| @property(nonatomic, readonly) NSString *serverAuthCode; | ||
| @end |
| /* | ||
| * GIDProfileData.h | ||
| * Google Sign-In iOS SDK | ||
| * | ||
| * Copyright 2014 Google Inc. | ||
| * | ||
| * Use of this SDK is subject to the Google APIs Terms of Service: | ||
| * https://developers.google.com/terms/ | ||
| */ | ||
| #import <Foundation/Foundation.h> | ||
| // This class represents the basic profile information of a GIDGoogleUser. | ||
| @interface GIDProfileData : NSObject <NSCoding> | ||
| // The Google user's email. | ||
| @property(nonatomic, readonly) NSString *email; | ||
| // The Google user's full name. | ||
| @property(nonatomic, readonly) NSString *name; | ||
| // The Google user's given name. | ||
| @property(nonatomic, readonly) NSString *givenName; | ||
| // The Google user's family name. | ||
| @property(nonatomic, readonly) NSString *familyName; | ||
| // Whether or not the user has profile image. | ||
| @property(nonatomic, readonly) BOOL hasImage; | ||
| // Gets the user's profile image URL for the given dimension in pixels for each side of the square. | ||
| - (NSURL *)imageURLWithDimension:(NSUInteger)dimension; | ||
| @end |
| /* | ||
| * GIDSignIn.h | ||
| * Google Sign-In iOS SDK | ||
| * | ||
| * Copyright 2012 Google Inc. | ||
| * | ||
| * Use of this SDK is subject to the Google APIs Terms of Service: | ||
| * https://developers.google.com/terms/ | ||
| */ | ||
| #import <Foundation/Foundation.h> | ||
| #import <UIKit/UIKit.h> | ||
| @class GIDGoogleUser; | ||
| @class GIDSignIn; | ||
| // The error domain for NSErrors returned by the Google Identity SDK. | ||
| extern NSString *const kGIDSignInErrorDomain; | ||
| // A list of potential error codes returned from the Google Identity SDK. | ||
| typedef NS_ENUM(NSInteger, GIDSignInErrorCode) { | ||
| // Indicates an unknown error has occured. | ||
| kGIDSignInErrorCodeUnknown = -1, | ||
| // Indicates a problem reading or writing to the application keychain. | ||
| kGIDSignInErrorCodeKeychain = -2, | ||
| // Indicates no appropriate applications are installed on the user's device which can handle | ||
| // sign-in. This code will only ever be returned if using webview and switching to browser have | ||
| // both been disabled. | ||
| kGIDSignInErrorCodeNoSignInHandlersInstalled = -3, | ||
| // Indicates there are no auth tokens in the keychain. This error code will be returned by | ||
| // signInSilently if the user has never signed in before with the given scopes, or if they have | ||
| // since signed out. | ||
| kGIDSignInErrorCodeHasNoAuthInKeychain = -4, | ||
| // Indicates the user canceled the sign in request. | ||
| kGIDSignInErrorCodeCanceled = -5, | ||
| }; | ||
| // A protocol implemented by the delegate of |GIDSignIn| to receive a refresh token or an error. | ||
| @protocol GIDSignInDelegate <NSObject> | ||
| // The sign-in flow has finished and was successful if |error| is |nil|. | ||
| - (void)signIn:(GIDSignIn *)signIn | ||
| didSignInForUser:(GIDGoogleUser *)user | ||
| withError:(NSError *)error; | ||
| @optional | ||
| // Finished disconnecting |user| from the app successfully if |error| is |nil|. | ||
| - (void)signIn:(GIDSignIn *)signIn | ||
| didDisconnectWithUser:(GIDGoogleUser *)user | ||
| withError:(NSError *)error; | ||
| @end | ||
| // A protocol which may be implemented by consumers of |GIDSignIn| to be notified of when | ||
| // GIDSignIn has finished dispatching the sign-in request. | ||
| // | ||
| // This protocol is useful for developers who implement their own "Sign In with Google" button. | ||
| // Because there may be a brief delay between when the call to |signIn| is made, and when the | ||
| // app switch occurs, it is best practice to have the UI react to the user's input by displaying | ||
| // a spinner or other UI element. The |signInWillDispatch| method should be used to | ||
| // stop or hide the spinner. | ||
| @protocol GIDSignInUIDelegate <NSObject> | ||
| @optional | ||
| // The sign-in flow has finished selecting how to proceed, and the UI should no longer display | ||
| // a spinner or other "please wait" element. | ||
| - (void)signInWillDispatch:(GIDSignIn *)signIn error:(NSError *)error; | ||
| // If implemented, this method will be invoked when sign in needs to display a view controller. | ||
| // The view controller should be displayed modally (via UIViewController's |presentViewController| | ||
| // method, and not pushed unto a navigation controller's stack. | ||
| - (void)signIn:(GIDSignIn *)signIn presentViewController:(UIViewController *)viewController; | ||
| // If implemented, this method will be invoked when sign in needs to dismiss a view controller. | ||
| // Typically, this should be implemented by calling |dismissViewController| on the passed | ||
| // view controller. | ||
| - (void)signIn:(GIDSignIn *)signIn dismissViewController:(UIViewController *)viewController; | ||
| @end | ||
| // This class signs the user in with Google. It also provides single sign-on via a capable Google | ||
| // app if one is installed. | ||
| // | ||
| // For reference, please see "Google Sign-In for iOS" at | ||
| // https://developers.google.com/identity/sign-in/ios | ||
| // Here is sample code to use |GIDSignIn|: | ||
| // 1. Get a reference to the |GIDSignIn| shared instance: | ||
| // GIDSignIn *signIn = [GIDSignIn sharedInstance]; | ||
| // 2. Set the OAuth 2.0 scopes you want to request: | ||
| // [signIn setScopes:[NSArray arrayWithObject:@"https://www.googleapis.com/auth/plus.login"]]; | ||
| // 3. Call [signIn setDelegate:self]; | ||
| // 4. Set up delegate method |signIn:didSignInForUser:withError:|. | ||
| // 5. Call |handleURL| on the shared instance from |application:openUrl:...| in your app delegate. | ||
| // 6. Call |signIn| on the shared instance; | ||
| @interface GIDSignIn : NSObject | ||
| // The authentication object for the current user, or |nil| if there is currently no logged in user. | ||
| @property(nonatomic, readonly) GIDGoogleUser *currentUser; | ||
| // The object to be notified when authentication is finished. | ||
| @property(nonatomic, weak) id<GIDSignInDelegate> delegate; | ||
| // The object to be notified when sign in dispatch selection is finished. | ||
| @property(nonatomic, weak) id<GIDSignInUIDelegate> uiDelegate; | ||
| // The client ID of the app from the Google APIs console. Must set for sign-in to work. | ||
| @property(nonatomic, copy) NSString *clientID; | ||
| // The API scopes requested by the app in an array of |NSString|s. The default value is |@[]|. | ||
| // | ||
| // This property is optional. If you set it, set it before calling |signIn|. | ||
| @property(nonatomic, copy) NSArray *scopes; | ||
| // Whether or not to fetch basic profile data after signing in. The data is saved in the | ||
| // |GIDGoogleUser.profileData| object. | ||
| // | ||
| // Setting the flag will add "email" and "profile" to scopes. | ||
| // Defaults to |YES|. | ||
| @property(nonatomic, assign) BOOL shouldFetchBasicProfile; | ||
| // The language for sign-in, in the form of ISO 639-1 language code optionally followed by a dash | ||
| // and ISO 3166-1 alpha-2 region code, such as |@"it"| or |@"pt-PT"|. Only set if different from | ||
| // system default. | ||
| // | ||
| // This property is optional. If you set it, set it before calling |signIn|. | ||
| @property(nonatomic, copy) NSString *language; | ||
| // The login hint to the authorization server, for example the user's ID, or email address, | ||
| // to be prefilled if possible. | ||
| // | ||
| // This property is optional. If you set it, set it before calling |signIn|. | ||
| @property(nonatomic, copy) NSString *loginHint; | ||
| // The client ID of the home web server. This will be returned as the |audience| property of the | ||
| // OpenID Connect ID token. For more info on the ID token: | ||
| // https://developers.google.com/identity/sign-in/ios/backend-auth | ||
| // | ||
| // This property is optional. If you set it, set it before calling |signIn|. | ||
| @property(nonatomic, copy) NSString *serverClientID; | ||
| // The OpenID2 realm of the home web server. This allows Google to include the user's OpenID | ||
| // Identifier in the OpenID Connect ID token. | ||
| // | ||
| // This property is optional. If you set it, set it before calling |signIn|. | ||
| @property(nonatomic, copy) NSString *openIDRealm; | ||
| // The Google Apps domain to which users must belong to sign in. To verify, check |GIDGoogleUser|'s | ||
| // |hostedDomain| property. | ||
| // | ||
| // This property is optional. If you set it, set it before calling |signIn|. | ||
| @property(nonatomic, copy) NSString *hostedDomain; | ||
| // Returns a shared |GIDSignIn| instance. | ||
| + (GIDSignIn *)sharedInstance; | ||
| // This method should be called from your |UIApplicationDelegate|'s | ||
| // |application:openURL:sourceApplication:annotation|. Returns |YES| if |GIDSignIn| handled this | ||
| // URL. | ||
| - (BOOL)handleURL:(NSURL *)url | ||
| sourceApplication:(NSString *)sourceApplication | ||
| annotation:(id)annotation; | ||
| // Checks whether the user has either currently signed in or has previous authentication saved in | ||
| // keychain. | ||
| - (BOOL)hasAuthInKeychain; | ||
| // Attempts to sign in a previously authenticated user without interaction. The delegate will be | ||
| // called at the end of this process indicating success or failure. | ||
| - (void)signInSilently; | ||
| // Starts the sign-in process. The delegate will be called at the end of this process. Note that | ||
| // this method should not be called when the app is starting up, (e.g in | ||
| // application:didFinishLaunchingWithOptions:). Instead use the |signInSilently| method. | ||
| - (void)signIn; | ||
| // Marks current user as being in the signed out state. | ||
| - (void)signOut; | ||
| // Disconnects the current user from the app and revokes previous authentication. If the operation | ||
| // succeeds, the OAuth 2.0 token is also removed from keychain. | ||
| - (void)disconnect; | ||
| @end |
| /* | ||
| * GIDSignInButton.h | ||
| * Google Sign-In iOS SDK | ||
| * | ||
| * Copyright 2012 Google Inc. | ||
| * | ||
| * Use of this SDK is subject to the Google APIs Terms of Service: | ||
| * https://developers.google.com/terms/ | ||
| */ | ||
| #import <UIKit/UIKit.h> | ||
| // The various layout styles supported by the GIDSignInButton. | ||
| // The minimum size of the button depends on the language used for text. | ||
| // The following dimensions (in points) fit for all languages: | ||
| // kGIDSignInButtonStyleStandard: 230 x 48 | ||
| // kGIDSignInButtonStyleWide: 312 x 48 | ||
| // kGIDSignInButtonStyleIconOnly: 48 x 48 (no text, fixed size) | ||
| typedef NS_ENUM(NSInteger, GIDSignInButtonStyle) { | ||
| kGIDSignInButtonStyleStandard = 0, | ||
| kGIDSignInButtonStyleWide = 1, | ||
| kGIDSignInButtonStyleIconOnly = 2 | ||
| }; | ||
| // The various color schemes supported by the GIDSignInButton. | ||
| typedef NS_ENUM(NSInteger, GIDSignInButtonColorScheme) { | ||
| kGIDSignInButtonColorSchemeDark = 0, | ||
| kGIDSignInButtonColorSchemeLight = 1 | ||
| }; | ||
| // This class provides the "Sign in with Google" button. You can instantiate this | ||
| // class programmatically or from a NIB file. You should set up the | ||
| // |GIDSignIn| shared instance with your client ID and any additional scopes, | ||
| // implement the delegate methods for |GIDSignIn|, and add this button to your | ||
| // view hierarchy. | ||
| @interface GIDSignInButton : UIControl | ||
| // The layout style for the sign-in button. | ||
| // Possible values: | ||
| // - kGIDSignInButtonStyleStandard: 230 x 48 (default) | ||
| // - kGIDSignInButtonStyleWide: 312 x 48 | ||
| // - kGIDSignInButtonStyleIconOnly: 48 x 48 (no text, fixed size) | ||
| @property(nonatomic, assign) GIDSignInButtonStyle style; | ||
| // The color scheme for the sign-in button. | ||
| // Possible values: | ||
| // - kGIDSignInButtonColorSchemeDark | ||
| // - kGIDSignInButtonColorSchemeLight (default) | ||
| @property(nonatomic, assign) GIDSignInButtonColorScheme colorScheme; | ||
| @end |
| // | ||
| // GoogleSignIn.h | ||
| // | ||
| // Copyright 2016 Google Inc. | ||
| // | ||
| #ifndef GOOGLESIGNIN_H | ||
| #define GOOGLESIGNIN_H | ||
| #import "GIDAuthentication.h" | ||
| #import "GIDGoogleUser.h" | ||
| #import "GIDProfileData.h" | ||
| #import "GIDSignIn.h" | ||
| #import "GIDSignInButton.h" | ||
| #endif |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
437
4.55%2
-75%83170
-99.4%17
-46.87%