@nuinalp/atomvpn-node
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

AtomVPN

AtomVPN by Secure.com API NodeJS library with full support of all the AtomVPN API services.

## Table of Contents

Install

# Install from npm
npm install @nuinalp/atomvpn-sdk

# Install from yarn
yarn add @nuinalp/atomvpn-sdk

# Install from pnpm
pnpm install @nuinalp/atomvpn-sdk

Getting Started

NodeJS

// ES6 (>=node 10.16.0 LTS)
import { AtomVpn } from '@nuinalp/atomvpn-sdk/node'; // All Resources
import { Vam } from '@nuinalp/atomvpn-sdk/node'; // Just the Vam (VPN Account Management) Resource
//...etc

// ES5, assuming native or polyfilled Promise is available
const { AtomVpn } = require('@nuinalp/atomvpn-sdk/node');

Browser

// ES6 (>=node 10.16.0 LTS)
import { AtomVpn } from '@nuinalp/atomvpn-sdk/browser'; // All Resources
import { Vam } from '@nuinalp/atomvpn-sdk/browser'; // Just the Vam (VPN Account Management) Resource
//...etc

// ES5, assuming native or polyfilled Promise is available
const { AtomVpn } = require('@nuinalp/atomvpn-sdk/browser');

OR through the script tag:

<script src="node_modules/@nuinalp/atomvpn-sdk/browser/index.js" />
<script>
  const { Vam } = AtomVpn;
</script>

Instantiate the library using a secretKey created in your Atom Profile

const sdk = new AtomVpn({
  secretKey: 'secretKey',
});

Available instantiating options:

Name Optional Default Description
secretKey No Secret key
grantType Yes secret Secret Key provided in Reseller Dashboard/Console. Mandatory if "grantType" is "secret"
accessToken Yes Access token
refreshToken Yes Refresh token
host Yes AtomVpn Instance Host URL

Docs

All apis were added following the official documentation.

Supported APIs

The API's that are currently supported are:

// API Access Authentication
Get Access Token

// Inventory Management
Get List of All Subscribed Services
Get List of subscribed Countries
Get Subscribed Protocols
Get Subscribed Protocols(v2)
Get Subscribed Cities
Get Subscribed Regions
Get Subscribed Countries
Get Subscribed Countries(v2)
Get Subscribed DataCenters
Get Subscribed Protocols mapping with Cities
Get Subscribed Protocols mapping with Countries
Get Subscribed Countries’ Purposes
Get OVPN Configuration
Get Subscribed All DataCenters
Get List of firewall Settings

// VPN Account Management (VAM)
Get VPN Account Status
Create VPN Account
Generate VPN Account
Renew VPN Account
Update Preferences of a VPN Account
Update Advance Features of a VPN Account
Delete VPN Account
Enable VPN Account
Disable VPN Account
Extend Subscription of a VPN Account
Update VPN Account’s Advance Features preferences
Change Password of a VPN Account

// SpeedTest - Get Fastest Server
Get Fastest Server without Pre-Shared Key
Get Pre-Shared Key
Get Servers with PSK

// Connection Accounting
Get Last Connection Details
Post VPN Error
Get User Assigned Bandwidth
Set User Bandwidth Quota
GetUser Consumed Bandwidth

// VPN Account Profile (VAP)
Get User
List users

Examples

Once you have your library instantiated, you can utilize many of the API's functionality:

Using the await/async method

import { Vam } from '@nuinalp/atomvpn-sdk';

// Initialize the SDK Instance
const sdk = new Vam({
  secretKey: 'secretKey',
});

// Get the accessToken
await sdk.getAccessToken();

// Get VPN Account Status
await sdk.accountStatus({ vpnUsername: 'vpnUsername' });

// Or using Promise-Then notation
await sdk.accountStatus({ vpnUsername: 'vpnUsername' }).then((status) => {
  console.log(status);
});

Documentation

You can check our Wiki to help you get started. Full documentation will be added soon.

Testing

Testing will be added soon

Support

Do you have a question? Please open an issue on our main repo.

License

BSD Clause 3

Copyright (c) 2021 The Nuinalp Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

Package Sidebar

Install

npm i @nuinalp/atomvpn-node

Weekly Downloads

5

Version

0.0.4

License

BSD-3-Clause

Unpacked Size

469 kB

Total Files

28

Last publish

Collaborators

  • patrickalima98
  • thanakin